들어가며
“메모리” 하면 사실 RAM이 가장 먼저 떠오릅니다. 하지만 여러 메모리 형태가 “메모리 계층”으로 분리되어 존재합니다.
레지스터, 캐시, 메인 메모리, 보조 메모리 이들은 어떤 역할을 하는 걸까요?
이번에는 “메모리 계층”을 공부한 내용을 정리해보았습니다.
메모리 계층
Register | Cache (SRAM) | Main Memory (DRAM) | 보조 메모리 | |
---|---|---|---|---|
접근 시간 | 나노초(가장 빠름) | 나노초(매우 빠름) | 나노초(빠름) | 밀리초(느림) |
변동성 | 휘발성 | 휘발성 | 휘발성 | 비휘발성 |
사이즈 | 아주 작은 | 작은 | 중간 | 대형 |
비용 | 비싼 | 보통 | 저렴 | 저렴 |
전력 소비 | 높음 | 보통 | 보통 | 낮음 |
사용법 | 고속 데이터 저장 및 처리 | 캐시 메모리, 프로세서 캐시 | 컴퓨터의 메인 메모리 | 대용량 저장소(예: 하드 드라이브, SSD) |
레지스터 (Registers)
레지스터는 CPU 내부의 작은 저장 공간과 같습니다. CPU가 작업하는 동안 중요한 데이터를 일시적으로 보관합니다.
캐시 메모리 (Cache)
캐시 메모리는 컴퓨터가 전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 저장공간 입니다.
레지스터란?, 캐시 메모리란?
메인 메모리 (Main memory)
주 메모리, 메인 메모리, 주 기억장치 또는 RAM(Random Access Memory)이라고도 불립니다.
RAM은 DRAM과 SRAM이 있는데 주기억장치는 주로 DRAM을 의미합니다.
(SRAM은 캐시 메모리에 사용되는 유형의 메모리)
주 메모리는 CPU(중앙 처리 장치)가 정상 작동 중에 빠르게 액세스해야 하는 데이터와 프로그램 명령을 임시로 저장하는 역할을 하는 컴퓨터 시스템의 중요한 구성 요소입니다.
저장된 데이터를 유지하려면 주기적으로 새로 고쳐야 하기 때문에 “동적”이라고 합니다.
DRAM은 SRAM보다 느리지만 더 저렴한 비용으로 훨씬 더 높은 용량을 제공합니다.
정상 작동 중에 CPU가 액세스하고 조작해야 하는 데이터 및 프로그램 명령을 저장하는 데 사용됩니다.
CPU와 메모리 구조
하버드 구조
명령어 메모리는 프로그램에서 사용할 명령어를 모아둔 메모리 입니다.
데이터 메모리는 명령어들로 사용될 메모리 입니다.
ALU는 데이터를 가지고 명령어를 읽어서 연산을 수행합니다.
CPU와 메모리는 독립적인 데이터 및 명령어 버스를 갖춘 별도의 개체이므로 데이터와 명령어에 동시에 액세스할 수 있습니다.
이 아키텍처는 마이크로 컨트롤러 및 임베디드 시스템에서 일반적입니다.
폰 노이만 구조
CPU와 메모리는 동일한 데이터 및 명령 버스를 공유하므로 순차적인 가져오기-디코드-실행 주기가 발생합니다.
이는 데이터와 명령이 동일한 메모리에 저장되는 대부분의 범용 컴퓨터에서 볼 수 있는 전통적인 아키텍처입니다.
참고하면 좋은 글
emerge: as devices grow in their storage capacities, their performance drops.
Said another way, we have devices that are fast and devices that store a large
amount of data, but no single device does both. This trade-off between
performance and capacity is known as the memory hierarchy, and figure NNN
depicts the hierarchy visually. Practical systems must offer a combination of
devices to meet the performance and capacity requirements of programs, and a
typical system today incorporates most if not all of the devices described in
the figure.