본문 바로가기
IT

기억장치의 계층 구조, 주기억장치의 종류, 캐시 메모리, 보조기억장치

by EDMBLACKBOX 2020. 12. 26.
728x90

중앙처리장치(CPU)가 어떤 작업을 처리하기 위해서는 데이터와 이를 처리할 프로그램이 필요합니다. 기억장치는 데이터와 프로그램, 연산의 중간 결과 등을 일시적 또는 영구적으로 저장하는 장치입니다.

 

기억장치의 계층 구조(Memory Hierarchy)

기억장치는 접근 속도, 기억 용량의 크기, 용도에 따라 레지스터, 캐시 메모리, 주기억장치, 보조기억장치로 구분합니다. 레지스터는 중앙처리장치 내에 존재하며, 중앙처리장치의 처리 속도와 비슷한 접근 시간(Access Time)을 가집니다. 그리고 캐시 메모리는 중앙처리장치가 주기억장치에 접근 시 속도 차이를 줄이기 위해 사용됩니다. 또한 실행 중인 프로그램의 명령어와 데이터를 저장하며, 기억 용량은 적지만 접근 시간이 주기억장치보다 5~10배 정도 빠릅니다. 주기억장치는 중앙처리장치가 직접 데이터를 읽고 쓸 수 있는 장치로, 레지스터나 캐시 메모리보다 기억 용량이 큽니다. 보조기억장치는 주기억장치에 비해 접근 시간은 느리지만 기억 용량이 큽니다. 접근 시간은 주기억장치보다 약 1000배 정도 느립니다.

기억장치는 읽고 쓰는 속도에 비례하여 가격이 올라갑니다. 따라서 보통 중앙처리장치에 직접 연결된 기억장치에는 기억 용량이 작고 속도가 빠른 비싼 장치를 사용하고, 보조기억장치에는 속도는 느리지만 가격이 저렴하고 기억 용량이 큰 것을 사용합니다. 아래는 기억장치의 계층 구조(Memory Hierarchy)를 나타낸 이미지입니다.

기억장치 계층 구조, 출처 Geeksforgeeks

 

기억장치의 계층 구조를 살펴보면, 위로 올라갈수록 데이터를 읽고 쓰는 접근 속도는 빨라지지만, 기억 용량은 감소하고 비트 당 저장 비용이 상승합니다. 따라서 기억장치의 구성 비용과 성능을 감안하여 중앙처리장치가 자주 사용하는 데이터를 상위 계층에 저장해야 기억장치를 효율적으로 사용할 수 있습니다.

아래 이미지는 기억장치에서 정보의 흐름을 보여줍니다. 중앙처리장치는 보조기억장치에 직접 접근할 수 없기 때문에 보조기억장치에 저장된 프로그램을 실행하려면 프로그램과 데이터를 주기억장치로 옮겨야 합니다. 중앙처리장치가 프로그램과 데이터를 주기억장치로부터 처음 가져올 때는 우선 캐시 메모리로 가져옵니다. 왜냐하면 중앙처리장치가 필요로 하는 프로그램과 데이터가 캐시 메모리에서 발견되면 즉시 가져올 수 있어 접근 시간이 크게 단축되기 때문입니다.

기억장치에서 정보의 흐름

 

주기억장치

주기억장치는 컴퓨터가 동작하는 동안 프로그램과 데이터, 연산의 중간 결과 등을 저장합니다. 주기억장치는 중앙처리장치와 직접 데이터를 주고받을 수 있도록 내부 버스로 연결되어 있습니다. 일반적으로 기억장치는 주기억장치를 의미합니다.

초기의 주기억장치에는 아래의 사진과 같은 자기 코어(Magnetic Core)가 널리 사용되었으나, 현재는 반도체 기억장치를 주로 사용합니다. 보편적인 반도체 기억장치로는 램(RAM : Random Access Memory)과 롬(ROM : Read Only Memory)이 있습니다.

자기 코어, 출처 : 위키페디아

 

램(RAM)

램은 전원 공급이 중단되면 저장된 정보가 모두 지워지는 휘발성 메모리로 정보의 기록과 해독을 할 수 있으며, 정보의 저장 위치에 관계없이 일정한 시간 내에 읽거나 쓸 수 있는 임의 접근(Random Access) 기억장치입니다. 램은 제조 기술에 따라 DRAM(Dynamic RAM)과 SRAM(Static RAM)으로 구분됩니다.

DRAM은 트랜지스터 내의 축전지(Capacitor)에 충전된 전하를 이용하여 정보를 저장합니다. 축전지에 충전된 전하의 존재 유무에 따라 0과 1로 구분하는데, 축전지의 전하는 시간이 지나면 방전되므로 주기적인 재충전(Refresh)이 필요합니다. DRAM은 가격이 저렴하고 전력 소비가 적으며 동작 속도가 빠르고 집적도가 높습니다. 그러므로 대용량 메모리에 적합하여 주기억장치로 사용됩니다.

SPARM은 플립플롭(Flip-Flop) 기억소자로 구성되며 전원이 공급되는 동안 정보가 계속 유지되므로 DRAM처럼 주기적인 재충전이 필요 없습니다. SRAM은 DRAM에 비해 회로가 복잡하고 전력 소모가 크며 가격이 비싸다는 단점이 있지만 동작 속도가 빨라 캐시 메모리에 주로 사용됩니다.

램의 사진, 출처 : 위키페디아

 

롬(ROM)

롬은 저장된 프로그램과 데이터를 읽기만 하는 기억장치로 전원이 공급되지 않아도 저장된 정보를 영구적으로 보존할 수 있는 비휘발성 메모리입니다. 그러므로 시스템 동작 중 변하지 않는 프로그램이나 데이터를 저장하는 데 사용됩니다. 또한 부팅 시 시스템을 점검하고 주변 장치를 초기화하는 역할을 합니다. 롬은 주로 입출력 시스템의 정보를 저장하는 바이오스(BIOS : Basic Input Output System)에 주로 사용됩니다.

롬은 정보의 기록 횟수와 저장 방식에 따라 아래의 그림과 같이 마스크 ROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable PROM), EEPROM(Electrically Erasable PROM)으로 구분됩니다.

롬의 종류, 출처 : What Is Computer

마스크 ROM은 ROM을 제작할 때 공장에서 미리 정보를 기록하여 생산하기 때문에 저장된 정보를 변경할 수는 없지만 대량 생산에는 적합합니다.

PROM은 제조 과정에서 저장된 정보가 없습니다. 그리고 사용자가 PROM Writer라는 장치를 사용하여 원하는 정보를 한 번만 쓸 수 있습니다.

EPROM은 사용자가 자외선을 이용하여 저장된 정보를 지운 후 다시 새로운 정보를 기록할 수 있습니다. PROM에 비해 가격은 비싸지만 저장된 정보를 여러 번 쓰고 지울 수 있다는 장점이 있습니다.

EEPROM은 전기적인 펄스를 이용하여 저장된 정보를 지울 수 있습니다. EPROM처럼 여러 번 쓸 수 있고, 쓰기 전에 저장된 정보를 지울 필요가 없다는 점에서 편리하다는 장점이 있습니다.

 

플래시 메모리(Flash Memory)

플래시 메모리는 전력 소비가 적으며, 전원이 공급되지 않아도 저장된 정보가 보존되는 비휘발성 메모리입니다. 플래시 메모리는 전기적인 처리로 저장된 정보를 지울 수 있다는 점에서 EEPROM과 유사하지만, 한 번에 1바이트씩 지우는 EEPROM과 달리 블록 단위로 지웁니다. 정보의 입출력이 자유로워 아래의 이미지와 같이 USB 메모리(USB Flash Drive), 메모리 카드, 디지털카메라, 디지털 캠코더, PDA, MP3 플레이어 등에 폭넓게 사용됩니다. 플래시 메모리는 저장 용량이 큰 데이터 저장형(NAND)과 처리 속도가 빠른 코드 저장용(NOR)으로 구분됩니다.

플래시 메모리의 용도 USB 메모리, 출처 : 위키페디아
플래시 메모리의 용도 SD 카드, 출처 : 위키페디아

 

캐시 메모리(Cache Memory)

중앙처리장치는 주기억장치보다 속도가 빠르기 때문에, 주기억장치로부터 프로그램이나 데이터를 가져오려면 많은 시간이 소요됩니다. 이때 캐시 메모리는 중앙처리장치에서 주기억장치로의 긴 접근 시간으로 인해 성능이 저하되는 것을 방지합니다. 캐시 메모리는 중앙처리장치와 주기억장치 사이에 존재합니다.

캐시 메모리(Cache Memory), 출처 : CBR(Computer Business Review)

캐시 메모리는 주기억장치의 내용 중 일부만을 저장합니다. 중앙처리장치는 주기억장치로부터 프로그램이나 데이터를 가져올 때 우선적으로 원하는 정보가 캐시 메모리에 존재하는지 검사합니다. 만약 원하는 정보가 캐시 메모리에 존재하면 즉시 중앙처리장치로 읽어오고, 존재하지 않으면 주기억장치에서 캐시 메모리로 저장한 후 중앙처리장치로 읽어 옵니다.

중앙처리장치가 필요로 하는 정보가 캐시 메모리에 존재하는 상황을 캐시 적중(Cache Hit)이라고 하고, 존재하지 않는 상황을 캐시 미스(Cache Miss)라고 합니다. 원하는 정보가 캐시 메모리에 존재할 확률을 나타내는 캐시 적중률(Hit Ratio)은 아래와 같이 정의하며, 캐시 적중률이 높을수록 성능이 우수한 것으로 정리합니다.

캐시 적중률(H) = 캐시 적중 횟수/전체 기억장치 참조 횟수

캐시 메모리를 사용하면 기억장치의 평균 접근 시간이 상당히 개선됩니다. 캐시 메모리를 사용할 때 기억장치의 유효 접근 시간은 아래와 같습니다.

유효 접근 시간(Effectove Access Time) = (H x 기억장치 접근 시간) + ((1-H) x기억장치 접근 시간)

아래의 그림과 같이 캐시 메모리는 주로 계층 구조로 사용됩니다. L1 캐시는 중앙처리장치 내부에 위치하여 내부 캐시라고도 하는데, 명령어 처리에 필요한 데이터를 저장하여 명령어 처리 시간을 줄여줍니다. L2 캐시는 중앙처리장치 외부에 위치하며 명령어가 처리하는 데이터를 저장하기 위해 동작 속도가 빠른 SRAM이 주로 사용됩니다. L2 캐시의 용량이 클수록 컴퓨터 시스템 성능이 향상됩니다. L3 캐시 메모리도 동일한 원리로 작동하지만 요즘의 프로세서에서는 L3 이상의 캐시 메모리를 달고 있지 않습니다. 충분히 L2 캐시로 커버할 수 있기 때문입니다.

캐시 메모리의 계층화, 출처 : Brown.edu

 

보조기억장치

주기억장치는 중앙처리장치가 현재 실행하는 프로그램과 데이터를 저장합니다. 주기억장치는 가격이 비싸고 기억 용량이 제한되어 있으므로, 접근 속도는 느리지만 가격이 저렴하고 많은 양의 정보를 저장할 수 있는 보조기억장치가 필요합니다. 보조기억장치는 중앙처리장치와 직접 정보를 주고받을 수 없지만, 중앙처리장치가 처리할 프로그램이나 데이터를 영구적으로 저장할 수 있는 대용량의 저장장치입니다.

보조기억장치는 저장된 정보의 접근 방식에 따라 순차 접근 기억장치(SASD : Sequential Access Storage Device)와 직접 접근 기억장치(DASD : Direct Access Storage Device)로 구분합니다. 순차접근 기억장치는 저장된 정보를 순차적으로 읽거나 씁니다. 따라서 원하는 정보를 찾을 때까지 앞에 위치한 모든 정보를 읽어야 하므로, 접근 시간이 수초에서 수분에 달합니다. 대표적인 순차접근 기억장치에는 자기 테이프(Magnetic Tape)가 있습니다. 한편 직접접근 기억장치는 정보의 저장 위치에 관계없이 임의의 주소에 직접 접근하여 정보를 읽고 쓸 수 있습니다. 직접접근 기억장치의 접근 시간은 몇천분의 1초 수준이지만, 주기억장치의 접근 시간에 비하면 수백~수천 배는 느린 수준입니다. 대표적인 직접접근 기억장치에는 자기 디스크(Magnetic Disk)와 광 디스크(CD-ROM, DVD) 등이 있습니다.

 

자기 테이프

자기 테이프는 자화 물질인 산화철이 코딩되어 있는 폴리에스터 필름 표면에 자성을 띤 점의 형태로 0과 1의 정보를 저장하는 장치입니다. 아래의 사진과 같이 릴(Reel)에 감아서 사용합니다.

자기 테이프, 출처 : 위키페디아

자기 테이프는 각 트랙(Track)에 1비트를 기록하고, 1인치당 저장할 수 있는 바이트 수(BPI : Byte Per Inch)로 기록 밀도를 나타냅니다. 읽기/쓰기 헤드(Read/Write Head)는 데이터를 기록하고 읽을 수 있도록 각 트랙마다 하나씩 설치되어 있습니다. 아래의 그림은 자기 테이프의 트랙 구성과 데이터의 저장 형태를 보여줍니다.

자기 테이프의 트랙 구성과 데이터의 저장 형태, 출처 : TheFreeDictionary

 

자기 디스크

자기 디스크는 자성체를 코팅한 원형의 플라스틱이나 금속판에 정보를 저장하며, 자기 테이프와 달리 순차 접근과 직접 접근이 모두 가능합니다. 종류에는 얇은 플라스틱 판에 작은 용량의 정보를 저장하는 플로피 디스크(Floppy Disk)와 금속판에 대용량의 정보를 저장하는 하드 디스크(Hard Disk)가 있습니다.

하드 디스크(왼쪽)와 플로피 디스크(오른쪽), 출처 : 위키페디아

자기 디스크에서 데이터가 저장되는 원형 금속판을 플래터(Platter)라고 하고, 플래터 상의 동심원을 트랙(Track)이라고 합니다. 트랙을 동일한 크기로 나눈 것을 섹터(Sector)라고 하며, 회전축으로부터 동일한 거리에 잇는 트랙의 모임을 실린더(Cylinder)라고 합니다. 자기 디스크의 구조는 아래와 같습니다.

자기 디스크의 구조, 출처 : Preplnsta

자기 디스크는 각 디스크 면마다 하나의 읽기/쓰기(Read/Write) 헤드를 가지고 있으며, 액세스 암(Access Arm)을 움직여서 원하는 위치까지 찾아갑니다.

자기 디스크에 저장된 데이터를 판독하거나 기록하려면, 데이터가 저장된 트랙까지 액세스 암을 이동시킨 후, 찾는 데이터의 저장 위치가 읽기/쓰기 헤드의 아래에 올 때까지 기다려야 합니다. 이와 같이 특정 데이터를 찾기 위해 액세스 암이 트랙까지 이동하는 데 걸리는 시간을 탐색 시간(Seek Time)이라고 하며, 회전하는 디스크에서 찾는 데이터의 저장 위치가 헤드까지 오는 데 걸리는 시간을 회전 지연 시간(Rotational Delay Time)이라고 합니다. 그리고 찾은 데이터를 주기억장치에 전송하는 데 걸리는 시간을 데이터 전송 시간(Data Transfer Time)이라고 합니다. 다시 말해 디스크 접근 시간(Access Time)은 탐색 시간, 회전 지연 시간, 데이터 전송 시간의 합입니다.

 

광 디스크(Optical Disc)

광 디스크는 레이저 광선을 이용하여 원반 표면에 문서, 음성, 화상 등의 정보를 디지털 부호로 변화하여 기록하고 재생하는 기억장치입니다. 광디스크는 레이저 기술의 발달과 함께 1980년대 초에 실용화되었습니다. 광 디스크는 정보를 신속하게 읽을 수 있고, 대량의 정보를 저장하고 영구적으로 보존할 수 있습니다. 광 디스크 저장 매체로는 CD(Compact Disk), DVD(Digital Video Disk, Digital Versatile Disk), LD(Laser Disk) 등이 있습니다. 차세대 규격으로 블루레이 디스크(Blu-Ray Disk)도 있으며 블루레이 디스크는 적색 레이저를 사용하는 CD나 DVD와 달리 청색 레이저를 사용합니다. 블루레이 디스크는 기존 광 디스크 저장 매체보다 대용량의 데이터를 저장할 수 있습니다.

광 디스크의 종류, 출처 : Digital Thinker Help

광 디스크의 정보 기록 및 재생 방법은 유리나 플라스틱 원반에 얇은 금속막을 씌운 후, 디스크 표면에 레이저 광선을 쏘아 태운 부분과 그렇지 않은 부분으로 나누어 정보를 기록합니다. 기록된 정보는 레이저 광선을 디스크 표면에 쏘아 반사시킨 뒤 반사된 빛을 광 다이오드로 받아 읽습니다.

광 디스크는 데이터의 기록 가능 여부에 따라 판독형 디스크(Readable Disk), 판독/기록형 디스크(WORM : Write Once Read Many), 재기록형 디스크(Rewritable Disk)로 구분됩니다. 판독형 디스크는 기록된 정보의 판독만 가능하며, 종류로는 CD-ROM, BD-ROM 등이 있습니다. 판독/기록형 디스크는 데이터를 한 번만 기록할 수 있고, 이후에는 정보를 읽을 수만 있습니다. 그 종류는 CD-R, DVD-R, BD-R 등이 있습니다. 재기록형 디스크는 기록된 정보를 여러 번 지우고 기록할 수 있으며 종류는 MD, CD-RW, DVD, BE-RE 등이 있습니다.

728x90