본문 바로가기

기억 장치의 계층 구조

1. 개념 및 필요성

기억 장치를 접근속도 및 경제적으로 실현하기 위해 계층 구조로 나눕니다. 예를 들어 기억 장치의 용량이 커질수록 2진 정보를 저장하기 위한 비트당 비용은 감소하지만 접근시간은 길어집니다. 기억 장치 계층 구조를 보면 보조기억 장치는 주기억 장치에 비해 가격이 싸며 용량이 크고 캐시는 가격이 비싸고 용량도 작지만 접근 속도가 빠릅니다. 그러므로 즉시 사용할 정보는 소용량의 고속기억 장치에 저장하고 나머지는 대용량의 지속 기억 장치에 저장하도록 한다면 비교적 싼 비용으로 대용량의 기억 장치를 만들 수 있습니다. 이와 같이 기억 장치 계층 구조의 목적은 기억 장치 시스템의 가격을 최소화하면서 최대의 성능을 얻기 위해 가능한 최고의 평균 접근 속도를 얻고자 함에 있습니다.

 

2. 기억 장치의 계층 구조

기억 장치 계층 구조는 지속 대용량의 보조 기억 장치와 비교적 고속의 주기억 장치, 고속 소용량의 캐시 메모리 등의 기억 장치로 구성합니다. 계층 구조의 하위단계에는 파일을 저장하기 위한 저속의 마그네틱 테이프와 백업용으로 사용하는 마그네틱 디스크나 드럼이 있습니다. 이와 같은 보조기억 장치는 CPU가 현재 사용하지 않지만 저장할 필요가 있는 데이터 또는 정보를 저장합니다. CPU는 보조기억 장치를 직접 접근할 수 없으며 주기억 장치와 보조기억 장치 사이는 DMA 장치에 의해 전송합니다. 주기억 장치는 CPU 또는 I/O 프로세서를 이용해 입출력 장치와 직접 통신하며 주기억 장치에 저장되어 있지 않은 프로그램이 CPU에 필요한 경우에는 보조기억 장치에서 읽어옵니다. 주기억 장치의 필요 없는 프로그램은 현재 실행되는 프로그램과 데이터를 위한 공간을 위해 보조기억 장치에 저장합니다.

 

CPU가 번번히 사용하는 프로그램이나 데이터를 저장하는 캐시 메모리는 주기억 장치의 접근 시간과 프로세서의 속도 차이를 줄이기 위해 사용합니다. 프로세서 논리 회로는 보통 주기억 장치보다 속도가 빠르기 때문에 처리 속도는 주기억 장치 속도에 의해 제한됩니다. 따라서 프로세서 논리 회로의 속도와 비슷한 접근 시간을 갖는 기억 장치를 주기억 장치와 CPU 사이에 연결하여 현재 실행되는 프로그램의 일부와 자주 쓰이는 임시 데이터를 저장합니다.

 

3. 연산기억 장치

기억 장치에 저장된 항목을 찾아야 할 경우 탐색 절차는 연속한 주소를 선택하여 각 주소의 내용을 읽어 지정된 항목을 찾을 때까지 찾아낼 항목과 비교합니다. 이때 기억 장치 접근 횟수는 항목 위치와 탐색 알고리즘에 따라 다릅니다.

 

기억 장치에 저장된 항목을 찾는 시간은 저장된 데이터를 주소보다 저장된 내용 자체로 찾을 수 있다면 단축할 수 있습니다. 내용에 의해 접근되는 기억 장치를 연상기억 장치 또는 CAM이라 합니다. 연상기억 장치는 데이터를 내용으로 병렬 탐색하여 워드 또는 워드의 일부만으로 탐색할 수 있습니다. 연상기억 장치는 각 셈이 저장 기능뿐 아니라 외부 데이터와 내용을 비교하기 위한 논리 회로를 갖고 있습니다.

 

구성을 알아보자면 m워드와 워드당 n비트의 기억소자 배열과 논리 회로로 구성되어 있습니다. 인자 레지스터와 키 레지스터는 n비트이며 매치 레지스터는 워드당 1비트씩 m비트로 구성됩니다. 각워드는 인자 레지스터와 비교하여 같은 경우에 매치 레지스터의 해당 비트의 상태가 1로 표시됩니다. 매칭 과정이 끝난 후 매치 레지스터의 상태가 1인 비트는 이에 대응하는 워드가 찾고 있는 항목과 같음을 표시합니다. 따라서 기억 장치에 접근하여 해당 워드를 읽습니다. 키 레지스터는 인자의 일부분을 선택하기 위한 마스크의 역할을 합니다. 예를 들어 키 레지스터가 모두 1이면 전체 인자를 기억 장치 워드와 비교하고 그렇지 않으면 1인 비트에 해당하는 인자 비트만 기억 장치 워드와 비교합니다.

 

1) read 동작

기억 장치 워드가 마스크 되지 않은 인자 필드에 매치되면 매치 레지스터의 해당 비트는 1로 되고 매치 레지스터의 상태가 1인 비트에 해당하는 워드에 Read 신호를 보내 읽습니다. 보통 연상기억 장치에 저장된 표는 주어진 키에 대해 동일한 두 항목을 갖고 있지 않기 때문에 하나의 워드만 매치될 수 있습니다. 따라서 연상기억 장치는 별도의 read 신호를 사용하지 않고 Mi를 동일 워드의 read 선으로 직접 연결하여 매치된 워드 내용을 자동적으로 출력하도록 할 수 있습니다.

 

2) write 동작

연상기억 장치는 탐색할 정보를 저장하기 위한 write 기능이 있어야 하고 탐색 동작 이전에 기억 장치에 새로운 정보를 저장해야 하므로 입력시에는 RAM과 같습니다. 필요 없는 워드를 삭제하거나 새 워드를 삽입하기 위해 삭제 또는 삽입할 워드를 구분하기 위한 태그 레지스터가 필요하며 길이는 기억 장치의 워드수와 같습니다. 유효 워드에 해당하는 태그 레지스터 비트는 1로 표시되므로 기억 장치의 한 워드를 삭제하는 과정은 그 태그 비트를 0으로 하면 됩니다. 새로운 워드를 삽입하려면 0 비트가 발견될 때까지 태그 레지스터를 찾아 처음 발견되는 비트에 해당하는 워드에 weite 합니다.

 

4. 캐시 메모리 

개념은 자주 참조하는 프로그램과 데이터를 고속 소용량의 기억 장치에 저장한다면 기억 장치 평균 접근 시간을 감소시킬 수 있으며 더불어 프로그램 실행 시간이 단축됩니다. 이와 같은 고속 소용량의 기억 장치를 캐시 메모리라 하며 CPU와 주기억 장치 사이에 위치합니다. 캐시는 기억 장치 계층 구조에서 가장 빠른 소자이며 CPU 처리속도에 근접합니다.

 

캐시의 기본 동작 원리는 다음과 같습니다. CPU가 기억 장치에 접근하고자 할 때 먼저 캐시를 조사하여 원하는 워드가 캐시에 있으면 읽어 오고 원하는 워드가 없으면 주기억 장치로 접근합니다. 이 경우 이 워드를 포함한 블락이 주기억 장치에서 캐시 메모리로 전송합니다. 가상 기억 장치는 보조기억 장치와 주기억 장치의 데이터 전송을 관리하지만 캐시는 주기억 장치와 CPU 사이의 정보 교환을 담당합니다. 가장 기억 장치와 캐시 메모리의 원리는 비슷하지만 목적이 다릅니다. 캐시는 가장 많이 사용하는 프로그램과 데이터를 저장하지만 보조기억 장치는 CPU가 현재 사용하지 않은 정보를 저장하는 목적으로 사용합니다. CPU는 캐시 메모리와 주기억 장치에 직접 접근할 수 있으나 가상 기억 장치에서 CPU는 주기억 장치에만 접근합니다. 가상 기억 장치의 블락 크기는 64 ~ 4090 워드이나 캐시의 블락 크기는 약 1 ~16 워드입니다. 또한 가상 기억 장치는 소프트웨어 및 하드웨어로 구성되지만 캐시 메모리는 가능한 최대 속도를 얻기 위해 하드웨어로 구성합니다. 성능은 히트 율로 표시합니다.

 

CPU가 기억 장치를 참조할 때 캐시에서 원하는 정보를 찾을 경우 히트라 하며 캐시에서 찾지 못하고 주기억 장치에서 찾을 때는 미스라 합니다. 히트수를 CPU의 총 기억 장치 참조수로 나눈 비율을 히트율이라 하며 기억 장치 참조의 국부성으로 인해 보통 히트율 0.9 이상입니다. 따라서 전체 100% 중에서 90% 이상의 정보를 찾을 수 있다는 이론적 계산을 산정할 수 있습니다.

'컴퓨터정보' 카테고리의 다른 글

입출력 장치를 알아보자  (0) 2022.01.08
가상 기억 장치  (0) 2022.01.07
기억 장치란 무엇일까?  (0) 2022.01.07
제어 장치에 대해 알아보자  (0) 2022.01.06
레지스터란 무엇인가?  (0) 2022.01.06