마하데이터
주기억장치의 정의 본문
카테고리 없음

주기억장치의 정의

마하데이터 2025. 4. 6.

주기억장치의 정의에 대해서

주기억장치의 정의에 대해서 알아보도록 하겠습니다. 주기억장치는 컴퓨터 시스템에서 굉장히 필수적인 장치입니다. 1970년대 초반에는 자기코어를 주기억장치로 사용했으나 오늘날에는 반도체 기술의 발달로 여러 가지 장점을 가진 반도체 메모리가 사용됩니다. 특히 대규모로 집적된 것은 가격, 크기, 속도 및 밀도가 아주 우수합니다. 이러한 주기억장치의 접근시간은 시스템 성능의 중요한 제한 요소가 되며, 접근시간, 기억장치 대역폭, 기억용량은 주기억장치 성능을 평가하는 데 있어서 가장 중요한 요소입니다. 또한 중앙처리장치와 주기억장치 간의 속도의 개선은 컴퓨터 시스템의 전체적인 성능 향상에 절대적인 영향을 미칩니다. 주기억장치와 중앙처리장치의 속도 차이를 개선하고 주기억장치의 용량과 대역폭의 한계를 극복하기 위한 여러 가지 방법이 있습니다. 바로 기억장치의 접근 속도를 증가시키기 위한 복수 모듈 기억장치와 연관 기억장치가 있고, 중앙처리장치의 가장 가까운 계층에서 기억장치의 접근속도를 향상하는 캐시기억장치가 있으며, 기억용량을 증가시키는 가상기억장치가 있습니다. 먼저 복수 모듈 기억장치에 관해서 설명해 드리겠습니다. 주기억장치를 이용하는 데 있어서 중앙처리장치와 입출력장치가 경쟁하기 때문에 주기억장치에 병목 현상이 일어나는데 이러한 현상을 바로 폰 노이만 병목현상이라고 합니다. 주기억장치의 대역폭을 증가시키는 방법은 빠른 속도의 기억장치를 이용하는 방법과 주기억장치에서 한 번에 읽고 쓰는 단어의 비트 수를 증가시키는 것입니다. 이렇게 복수 모듈 기억장치란 기억장치의 구조적 개선으로 접근 속도를 향상한 것으로 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치입니다. 다음으로 연관 기억장치입니다. 일반적으로 기억장치에 접근하려면 원하는 정보가 기억되어 있는 워드의 주소를 알아야 합니다. 그러나 연관 기억장치는 CAM이라고도 하는데 이 CAM이란 정보를 얻기 위해 기억장치의 주소를 사용하지 않고 기억되어 있는 정보의 일부분을 참조하여 정보가 있는 워드를 찾아내며, 그 워드에 접근하여 원하는 정보를 찾는 기억장치입니다. 검색 과정에서 한 비트씩 순서대로 비교하는 비트별 순차 구조와 모든 비트 슬라이스를 동시에 비교하는 비트별 병렬 구조가 있습니다. 이러한 연관 기억장치는 주소에 의한 접근이 가능한 기억장치보다는 정보 검색이 빠르며, 속도는 기억장치보다 빠르고 캐시기억장치의 내부에서 사용된다는 특징이 있습니다. 다음으로 캐시기억장치입니다. 캐시기억장치는 주기억장치의 수행 속도가 중앙처리장치의 속도에 비해 느리기 때문에 해결 방법의 하나라고 볼 수 있습니다. 또한 주기억장치보다 빠른 기억소자로 구성하여 중앙처리장치와 주기억장치 사이에서 속도의 차이를 줄여주는 장치입니다. 이러한 캐시기억장치는 고가이므로 캐시기억장치의 용량은 주기억장치의 용량에 비해서 작습니다. 또한 중앙처리장치를 액세스하려면 미리 주기억장치의 데이터를 캐시기억장치에 저장해야 하며, 주기억장치를 액세스하는 대신 속도가 빠른 캐시기억장치에 접근하여 데이터를 액세스합니다. 더불어 접근의 지역성을 이용하여 중앙처리장치가 어떤 워드에 접근하였다면 빠른 시간 안에 다시 접근할 가능성이 크고 그 워드 주위에 있는 단어를 액세스할 확률이 높으므로 이를 구현하기 위해서는 주기억장치에서 캐시기억장치로 워드를 전공할 때 그 주위에 있는 워드도 같이 전송합니다. 이것은 즉 주기억장치에서 캐시기억장치로 워드를 전송한다면 그 워드를 포함하여 블록을 캐시기억장치로 이동시키는 것을 말합니다. 다음으로 가상기억장치입니다. 컴퓨터가 수행한다는 것은 주기억장치의 프로그램과 데이터를 읽어와서 처리하는 것입니다. 주기억장치는 보통 램 메모리를 사용하는데 가격이 높기 때문에 고안된 것이 바로 이 가상기억장치입니다. 즉 저렴한 보조기억장치와 같은 큰 기억장치를 마치 주기억장치처럼 사용하는 개념입니다. 이러한 가상기억장치의 특징은 보조기억장치를 사용하여 주기억장치가 연장된 것과 같이 처리하여 처리 속도에서는 영향이 없지만 기억 용량의 확장에는 큰 영향을 줍니다. 그리고 프로그램을 기억만 하므로 주기억장치의 일부가 아니라 보조기억장치에 설정할 수도 있으며, 가상기억장치로 사용되는 보조기억장치는 직접 액세스가 가능합니다. 하지만 기억 용량이 커야 하므로 대형 컴퓨터나 PC에서는 자기디스크나 하드디스크를 가장 많이 사용합니다. 또한 프로그램의 명령어가 사용하는 주소를 가상주소라고 하며, 주기억장치에 접근하기 위한 주소를 물리적 주소라고 합니다. 특히 중앙처리장치에서 참조하는 가상주소는 실제 주소로 변환되어야 하며, 이것을 맵핑이라고 합니다. 이러한 맵핑방식에는 페이징 기법과 세그먼트 기법이 있습니다. 먼저 페이징 기법은 가상 기억공간과 실제 기억공간의 프로그램 블록의 크기가 같고, 각 블록의 크기도 모두 동일할 때 이 블록을 페이지라고 하고 이 페이지를 이용하는 기법입니다. 이때 가상주소가 보조기억장치에 있다면 보조기억장치에서 요구되는 페이지를 가져오고 주기억장치에 저장된 페이지와 교체해야 합니다. 하지만 주기억장치에서 페이지를 찾지 못하는 경우가 있는데 이것을 바로 폴트라고 합니다. 이러한 폴트가 자주 발생할수록 시스템의 효율이 떨어집니다. 또한 페이징 기법은 일정한 크기로 페이지를 나누기 때문에 프로그램을 논리적으로 구분하여 나누기 힘듭니다. 페이지를 크게 하면 단편화 현상이 발생하기 때문에 기억장치의 이용 효율이 떨어지고, 페이지를 작게 하면 너무 자주 발생하여 시스템 효율이 떨어집니다. 따라서 프로그램의 논리적 구조에 따라 세그먼트를 다양하게 나누는 방법이 바로 세그먼트 기법입니다. 지금까지 주기억장치의 정의에 대해서 알아봤습니다.

Comments