RAM 💡
- RAM에 명령어와 데이터가 저장됨
- 휘발성 장치라, 프로그램을 보조기억장치에서 RAM으로 복사한 뒤 실행됨
- 일반적으로 용량이 클수록 속도가 빠름
RAM의 종류
1. DRAM
- Dynamic RAM의 준말
- 시간이 지나면 저장된 데이터가 점차 사라짐
- 전성비가 좋고 쌈
2. SRAM
- Static RAM의 준말
- 데이터가 안사라짐 but 비쌈
- Cache Memory에 사용
3. SDRAM
- Synchronous DRAM의 준말
- 발전된 DRAM으로, 클럭에 맞춰 CPU와 정보 주고받을 수 있음
4. DDR SDRAM
- SDRAM에서 대역폭을 늘려, 속도가 빠름
- 한클럭당 여러개의 데이터를 주고받을 수 있음
Memory Address
메모리에 저장된 정보의 위치인 주소는 물리 주소와 논리 주소로 나뉜다.
- 물리 주소: 메모리 하드웨어 상의 주소
- 논리 주소: 프로그램 각각에게 부여된 0번지부터 시작되는 주소
- 각 주소간 변환은 MMU라는 하드웨에 의해 수행됨
메모리 보호 기법
- 베이스 레지스터에 프로그램의 가장 작은 물리 주소 저장
- 한계 레지스터에 논리 주소의 최대 크기 저장
- 논리 주소와 한계 레지스터를 비교하므로써 다른 프로그램 침범X
Cache Memory
- 메모리의 데이터에 접근하는 시간이 느린 것을 극복하기 위함
- 캐시 메모리는 CPU와 메모리 사이에 위치한 SRAM 기반 저장장치
- L1, L2 캐시는 코어마다 고유하게 사용하고, L3 캐시는 여러 코어가 공유함
Memory Hierarchy
CPU와 가까운 저장장치일수록 빠르고 용량이 작고, 비싸다.

Locality of Reference
캐시 메모리는 캐시 적중률을 높여야 함.
→ Locality of Reference에 의해 메모리로부터 가져올 데이터를 정함
- Temporal Locality: 최근에 접근했던 메모리 공간에 다시 접근 경향
- Spatial Locality: 접근했던 메모리 공간 근처에 접근하려는 경향
보조기억장치
HDD
- 자기적인 방식으로 데이터를 저장하는 방식
- 데이터에 접근하는 시간은 탐색시간 + 회전지연 + 전송시간으로 계산함
플래시 메모리
- 전기적인 방식으로 데이터를 저장하는 반도체 기반 장치
- 셀 - 페이지 - 블록 - 플레인 - 다이로 구조화 됨
- 한 셀에 저장할 수 있는 비트 수에 따라 SLC, MLC, TLC 타입으로 나뉨
입출력장치
입출력장치는 장치 컨트롤러와 장치 드라이버를 통해 컴퓨터와 연결됨
1. 장치 컨트롤러: 입출력장치를 동작하게 하는 하드웨어
-
CPU와 장치 사이에 통신 중개, error detection, 데이터 버퍼링의 기능을 함
-
장치 컨트롤러는 데이터 레지스터(버퍼), 상태 레지스터, 제어 레지스터로 구성됨

2. 장치 드라이버: 장치 컨트롤러가 CPU와 정보를 주고 받을 수 있게 하는 프로그램
입출력 방법
프로그램 입출력
인터럽트 기반 입출력

DMA 입출력