CH06. 메모리와 캐시 메모리
RAM의 특징과 종류
- 특징
- 휘발성 메모리(volatile memory)
- CPU는 비휘발성 저장장치에 보관된 프로그램을 휘발성 저장장치인 메모리로 복사한 뒤 실행한다.
- RAM 용량이 클수록 프로그램들을 미리 저장해 둘 수 있으므로 많은 프로그램을 동시에 빠르게 실행 가능
- 종류
- DRAM(Dynamic RAM) : 시간이 지나면 저장된 데이터가 소멸되는 RAM
- 낮은 소비 전력, 저렴한 가격, 높은 집적도
- 대용량 설계에 유리하여 주기억장치에 사용
- SRAM(Static RAM) : 시간이 지나도 저장된 데이터가 소멸되지 않는 RAM
- 높은 소비 전력, 비싼 가격, 낮은 집적도
- 캐시 메모리 등 빠른 속도가 필요한 장치에 제한적으로 사용
- SDRAM(Synchronous Dynamic RAM) : 클럭 타이밍에 맞춰 CPU와 정보를 주고받는 RAM
- DDR SDRAM(Double Data Rate SDRAM) : SDRAM에 비해 대역폭이 두 배 늘어난 SDRAM
- 대역폭(data rate) : 데이터를 주고받는 통로로, 대역폭이 두 배 커지면 데이터를 주고받는 속도도 두 배 커진다.
- SDR SDRAM(Single Data Rate SDRAM) : 한 클럭 당 하나씩 데이터를 주고받는 SDRAM
- DDR$n$ SDRAM : 대역폭이 $2^n$배 늘어난 SDRAM
메모리의 주소 공간
- 물리 주소(physical address) : 프로그램 정보가 저장된 하드웨어 메모리 상의 주소
- 논리 주소(logical address) : 실행 중인 각각의 프로그램에 부여된 0부터 시작하는 가상 주소
- 메모리 관리 장치(MMU; Memory Management Unit) : 논리 주소를 물리 주소로 변환하는 장치
- 물리 주소 = 베이스 레지스터에 저장된 주소 + 논리 주소
- 베이스 레지스터에 저장된 주소 = 프로그램의 시작 물리 주소
- CPU가 발생시키는 논리 주소 = 프로그램 시작점으로부터 떨어진 거리
- 한계 레지스터(limit register) : 논리 주소의 최대 크기를 저장하는 레지스터
- CPU가 해당 프로그램과 전혀 상관없는 주소의 데이터를 조작하지 못하도록 범위 제한
- 베이스 레지스터에 저장된 주소 ≤ 물리 주소 ≤ 베이스 레지스터 + 한계 레지스터 주소
- CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 트랩 인터럽트 발생
캐시 메모리
- 캐시 메모리(cache memory) : CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 장치
- CPU가 메모리에 접근하는 속도가 느리기 때문에, CPU가 사용할 일부 데이터를 캐시 메모리에 저장해 두고 사용하여 메모리 접근 횟수를 줄임
- 레지스터는 빠르지만 용량이 작기 때문에, 레지스터보다 용량이 크고 속도가 빠른 SRAM 사용
- 종류
- CPU(코어)와 가까운 순서대로 L1, L2, L3 캐시 사용
- CPU와 가까울수록 속도가 빠르지만 가격은 비쌈
- L1, L2 캐시는 CPU(코어) 내부에 위치하여 고유 캐시 메모리로 할당
- L3 캐시는 CPU와 메모리 사이에 위치하여 공유 캐시 메모리로 사용
- 분리형 캐시(split cache) : L1 캐시를 데이터 종류에 따라 **L1I(명렁어만 저장)**와 **L1D(데이터만 저장)**로 분리하는 방식
- 참조 지역성 원리(locality of reference, principle of locality)
- 캐시 메모리가 CPU가 자주 사용할 데이터를 예측할 때 사용하는 원리
- 캐시 적중률(cache hit ratio) : 캐시 히트가 될 비율
- 캐시 히트(cache hit) : 예측이 맞아서 CPU가 캐시 메모리의 데이터를 사용하는 경우
- 캐시 미스(cache miss) : 예측이 틀려서 CPU가 메모리에 접근해야 하는 경우
- 시간 지역성(temoral locality) : 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
- 어떤 데이터를 저장해 둔 변수는 선언한 뒤에도 여러 번 사용됨
- 공간 지역성(spatial locality) : 접근했던 메모리 공간의 근처를 접근하려는 경향
- 어떤 프로그램과 관련된 명령어 및 데이터는 모여서 저장됨
- 즉, 어떤 프로그램 또는 특정 기능을 실행할 때는 관련 명령어가 모여있는 공간을 집중적으로 접근함
CH07. 보조기억장치
다양한 보조기억장치
하드디스크
- 하드디스크(HDD; Hard Disk Drive) : 자기적으로 데이터를 저장하는 장치 (N극과 S극으로 0, 1 표현)
- 플래터(platter) : 데이터가 저장되는 원판
- 트랙(track) : 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원
- 섹터(sector) : 트랙을 여러 조각으로 나누었을 때 그 중 하나
- 실린더(cylinder) : 플래터가 여러 개 겹쳐있을 때 각 플래터 상에 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
- 스핀들(spindle) : 플래터를 회전시키는 모터
- 헤드(head) : 플래터에 저장된 데이터를 읽고 쓰는 장치
- 디스크 암(disk arm) : 헤드를 원하는 위치로 이동시키는 장치
- 하드 디스크의 지연 시간
- 탐색 시간(seek time) : 헤드를 이동시키는 시간
- 회전 지연(rotational latency) : 플래터를 회전시키는 시간
- 전송 시간(transfer time) : 하드 디스크와 컴퓨터 간 데이터 전송 시간
- 플래터의 RPM을 높이고, 헤드를 조금만 옮겨도 접근할 수 있는 곳에 데이터를 저장하여 지연 단축