Memory Architecture#
컴퓨터 시스템의 메모리 아키텍처는 데이터를 효율적으로 저장하고 접근하기 위한 구조이다.
컴퓨터에서는 빠른 속도와 큰 용량을 동시에 얻기가 어렵다. 빠른 메모리는 비용이 매우 높고, 큰 용량의 메모리는 상대적으로 느리다. 이러한 기술적, 경제적 제약을 해결하기 위해 여러 층의 메모리를 계층적으로 구성하게 되었다.
메모리 계층 구조#
메모리 계층 구조는 접근 속도와 용량에 따라 여러 단계로 구성된다:
- 레지스터:
CPU 내부에 위치한 소용량의 초고속 메모리로, 현재 실행 중인 명령어와 관련된 데이터를 저장한다. 일반적으로 몇 비트에서 수십 비트 정도의 용량을 가지며, 접근 속도는 한 사이클 이내로 가장 빠르다. - 캐시 메모리:
주기억장치와 CPU 레지스터 사이에 위치하여, 자주 사용되는 데이터를 일시적으로 저장함으로써 CPU의 처리 속도를 향상시킨다. 일반적으로 L1, L2, L3 등의 여러 레벨로 구성되며, 레벨이 높아질수록 용량은 증가하지만 접근 속도는 감소한다. - 주 메모리 (RAM):
프로그램과 데이터를 일시적으로 저장하는 휘발성 메모리로, 시스템의 작업 공간 역할을 한다. 용량은 수 기가바이트에서 수십 기가바이트에 이르며, 캐시 메모리보다 접근 속도는 느리지만 더 많은 데이터를 저장할 수 있다. - 보조 기억 장치:
하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD)와 같은 비휘발성 저장 장치로, 대용량의 데이터를 영구적으로 저장한다. 주기억장치보다 접근 속도는 느리지만, 데이터의 영구 저장이 가능하다.
이러한 계층 구조는 데이터 접근 시간을 최소화하고 전체 시스템의 성능을 향상시킨다.
주요 메모리 유형#
RAM (Random Access Memory):
- 휘발성 메모리로, 전원이 꺼지면 데이터가 사라진다.
- SRAM(Static RAM)과 DRAM(Dynamic RAM)으로 구분된다.
ROM (Read Only Memory):
- 비휘발성 메모리로, 데이터가 영구적으로 저장된다.
- PROM, EPROM, EEPROM 등 여러 종류가 있다.
캐시 메모리:
- CPU와 주 메모리 사이에 위치한 고속 메모리이다.
- 자주 사용되는 데이터를 저장하여 접근 속도를 높인다.
- 운영체제는 페이징이나 세그먼테이션을 통해 가상 주소를 물리 주소로 변환한다.
메모리 관리 기법#
가상 메모리:
- 물리적 메모리 크기의 한계를 극복하기 위한 기술이다.
- 하드 디스크의 일부를 RAM처럼 사용한다.
메모리 매핑:
- 물리적 메모리 주소와 논리적 메모리 주소를 연결한다.
- 프로그램의 메모리 접근을 관리한다.
최적화#
- 캐싱: 자주 사용되는 데이터를 고속 메모리에 저장한다.
- 병렬 처리: 여러 메모리 유닛을 동시에 접근하여 처리 속도를 높인다.
- 메모리 인터리빙: 연속된 메모리 주소를 여러 메모리 뱅크에 분산 저장한다.
참고 및 출처#
메모리 보호와 안전 (Memory Protection and Safety) 메모리 보호와 안전은 현대 컴퓨터 시스템에서 매우 중요한 요소이다.
메모리 보호는 컴퓨터 시스템에서 프로세스가 허가되지 않은 메모리 영역에 접근하는 것을 방지하는 메커니즘이다.
주요 목적은 다음과 같다:
프로세스 간 격리 유지 운영 체제 커널 보호 버그나 악성 소프트웨어로부터 시스템 보호 메모리 보호 기술 하드웨어 기반 보호 메모리 관리 장치 (MMU): 가상 주소를 물리적 주소로 변환하고 접근 권한을 확인한다. 보호 키: 메모리 영역에 키를 할당하여 접근을 제어한다. 보호 링: 권한 수준에 따라 메모리 접근을 제어한다. 세그먼테이션: 메모리를 논리적 세그먼트로 나누어 보호한다. 소프트웨어 기반 보호 가상 메모리: 각 프로세스에 독립적인 주소 공간을 제공한다. 주소 공간 레이아웃 랜덤화 (ASLR): 메모리 주소를 무작위화하여 공격을 어렵게 한다. 데이터 실행 방지 (DEP): 데이터 영역에서 코드 실행을 방지한다. 메모리 안전성 (Memory Safety) 메모리 안전성은 프로그램이 할당된 메모리 범위 내에서만 작동하도록 보장하는 개념이다.
...
Byte Addressable Memory vs. Word Addressable Memory Byte Addressable Memory와 Word Addressable Memory는 컴퓨터 메모리의 주소 지정 방식을 설명하는 개념이다.
이 두 가지 방식은 메모리의 구조와 데이터 접근 방법에 중요한 차이를 나타낸다.
Sourece: https://examradar.com/memory-organisation/
Byte Addressable Memory Byte Addressable Memory는 각 바이트(8비트)마다 고유한 주소가 할당되어 개별적으로 접근할 수 있는 메모리 구조이다.
가장 작은 주소 지정 단위(smallest addressable unit)는 1바이트(8비트)이며, 이를 통해 메모리의 각 바이트에 직접 접근할 수 있다.
CPU는 개별 바이트 단위로 메모리에 접근할 수 있으며, 워드(일반적으로 4바이트 또는 8바이트) 단위의 접근도 가능하다.
32비트 시스템에서는 2^32개의 주소를 가질 수 있어 최대 4GB의 메모리를 지원하며, 64비트 시스템에서는 훨씬 더 큰 주소 공간을 제공한다.
...
메모리 접근 방식 (Memory Access Methods) 컴퓨터 시스템에서 메모리에 접근하는 주요 방식은 다음과 같다:
순차적 접근 (Sequential Access)
메모리를 선형적인 순서로 접근하는 방식. 데이터를 처음부터 순서대로 읽거나 쓰며, 특정 위치에 접근하려면 그 앞의 모든 데이터를 거쳐야 한다. 주로 자기 테이프와 같은 저장 장치에서 사용된다. 직접 접근 (Direct Access)
각 메모리 블록이 고유한 주소를 가지고 있어 직접 접근이 가능하다. 일반적인 위치로 직접 접근한 후, 순차적 검색을 통해 최종 목적지에 도달한다. 하드 디스크와 같은 저장 장치에서 주로 사용된다. 랜덤 접근 (Random Access)
...
메모리 주소 지정 방식 (Memory Address Modes) 메모리 주소 지정 방식(Memory Address Modes)은 CPU가 메모리의 특정 위치에 어떻게 접근하는지를 나타내는 방법이다.
유형 즉시 주소 지정 방식 (Immediate Addressing):
데이터가 명령어 자체에 포함되어 있다. 예: “5를 더해라” 라고 직접 지시하는 것과 같다. 가장 빠르지만, 큰 데이터를 다루기 어렵다. 직접 주소 지정 방식 (Direct Addressing):
명령어에 데이터가 있는 메모리 주소를 직접 지정한다. 예: “주소 100번에 있는 값을 가져와라” 라고 지시하는 것과 같다. 간단하고 이해하기 쉽다. 간접 주소 지정 방식 (Indirect Addressing):
...
메모리의 계층 구조 (Memory Hierarchy) 메모리 계층 구조는 컴퓨터 시스템에서 데이터 접근의 효율성을 극대화하고 전체 시스템 성능을 향상시키기 위해 설계된 구조.
이 구조는 속도, 용량, 비용 간의 균형을 고려하여 여러 종류의 메모리를 계층적으로 배치한다.
메모리 계층 구조의 각 레벨은 위로 올라갈수록 다음과 같은 특성을 가진다.
접근 속도가 빨라짐 용량이 작아짐 비트당 가격이 높아짐 CPU에 의한 접근 빈도가 증가함 1 2 3 4 5 6 7 8 계층 구조 (위에서 아래로): 레지스터 ↓ 캐시 (L1 → L2 → L3) ↓ 메인 메모리 (RAM) ↓ 보조 기억 장치 (SSD/HDD) 이러한 계층 구조는 ‘참조 지역성(Locality of Reference)’ 원리를 활용하여 전체 시스템의 성능을 최적화한다.
자주 사용되는 데이터를 빠른 상위 계층에 유지함으로써, 평균 데이터 접근 시간을 줄이고 전체적인 시스템 성능을 향상시킨다.
...