메모리 계층 구조와 주소 체계의 이해
|
2 min read
휘발성 저장장치인 RAM부터 효율적인 데이터 처리를 위한 캐시 메모리, 그리고 논리 주소와 물리 주소의 변환 과정까지 메모리 시스템 전반을 정리합니다.
1. RAM과 ROM
우리가 흔히 '메모리'라고 부르는 것은 대부분 **RAM(Random Access Memory)**을 의미합니다.
- RAM: 전원이 꺼지면 데이터가 사라지는 휘발성 저장장치입니다. 주로 DRAM이 메인 메모리로 사용되며, 속도가 빠르고 집적도가 높습니다.
- ROM: 전원이 꺼져도 데이터가 유지되는 비휘발성 저장장치입니다. BIOS 등 부팅 시 필요한 핵심 정보를 저장하는 데 쓰입니다.
2. 바이트를 저장하는 순서: 엔디안(Endian)
멀티 바이트 데이터를 메모리에 어떤 순서로 저장하느냐에 따라 두 가지 방식으로 나뉩니다.
- 빅 엔디안 (Big-endian): 상위 바이트(큰 쪽)부터 저장합니다. 사람이 읽기 편해 디버깅에 유리합니다.
- 리틀 엔디안 (Little-endian): 하위 바이트(작은 쪽)부터 저장합니다. 대다수의 인텔 계열 CPU에서 사용하며 수치 계산이 효율적입니다.
3. 논리 주소와 물리 주소
CPU와 실행 중인 프로그램은 실제 하드웨어 주소를 직접 다루지 않습니다.
- 논리 주소: 프로그램마다 0번지부터 시작하는 가상의 주소 공간입니다.
- 물리 주소: 실제 RAM 칩에 할당된 하드웨어 주소입니다.
- MMU (Memory Management Unit): CPU가 내보낸 논리 주소를 실제 물리 주소로 실시간 변환해 주는 핵심 장치입니다.
4. 저장 장치 계층 구조와 캐시 메모리
CPU는 너무 빠르고 보조기억장치는 너무 느립니다. 이 속도 차이를 극복하기 위해 계층 구조를 사용합니다.
- 레지스터 > 캐시 메모리(L1, L2, L3) > 메인 메모리(RAM) > 보조기억장치
- 캐시 메모리: CPU와 RAM 사이의 속도 차이를 완화하기 위해 CPU 내부에 위치한 고속 메모리입니다. 참조 지역성(Locality of Reference) 원리를 이용해 곧 사용될 데이터를 미리 가져다 놓습니다.