6장 메모리와 캐시 메모리
1. RAM의 특징과 종류
RAM의 특징
전원을 끄면 저장된 모든 내용이 사라지는 휘발성 저장 장치이다.
실행할 대상을 저장한다.
반대
비휘발성 저장장치
SSD, CD-ROM, USB 메모리
보조기억장치로 활용되어 보관할 대상을 저장한다.
RAM의 용량과 성능

CPU가 실행하고 싶은 프로그램이 보조 기억 장치에 있다면, 이를 RAM으로 가져와야 하는데, RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.
하지만, RAM의 용량에 항상 속도가 비례하여 증가하는 것은 아니다.
필요 이상으로 증가하게 되면, 별 차이가 없어짐
RAM의 종류
DRAM
Dynamic RAM의 준말
저장된 데이터가 동적으로 변하는, 즉 사라지는 RAM을 의미한다.
데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야한다.
소비전력이 비교적 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하다.
집적도가 높다 = 더 작고 빽빽하게 만들 수 있다.
주기억장치에 사용됨
SRAM
Static RAM의 준말
저장된 데이터가 변하지 않는, 즉 사라지지 않는 RAM을 의미한다.
하지만, 전원을 끄면 RAM 특성상 저장된 데이터가 사라진다.
DRAM에 비해 일반적으로 속도가 빠르다.
DRAM에 비해 집적도가 낮고, 소비전력도 크며, 가격도 비싸다.
캐시메모리에 활용됨
SDRAM
Synchronous Dynamic RAM의 준말
클럭과 동기화된 DRAM으로 클럭에 맞춰 동작하며, 클럭마다 CPU와 정보를 주고 받을 수 있다.
DDR SDRAM
Double Data Rate SDRAM의 준말
대역폭을 넓혀 속도를 빠르게 만든 SDRAM
대역폭 - 데이터를 주고받는 길의 너비
HBM
그렇다면, 하이닉스를 글로벌 시장 부동의 1위로 이끌어준 HBM은 무슨 기술일까?
High Bandwidth Memory의 준말로, 고대역폭 반도체를 의미한다.
DRAM을 수직으로 쌓아올리는 구조로, 병렬 연산에 매우 효과적이다.
GPU에 주로 활용됨.
2. 메모리의 주소 공간
물리주소와 논리주소
물리주소
정보가 실제로 저장된 하드웨어상의 주소
논리주소
실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미
CPU와 실행 중인 프로그램이 사용
MMU
Memory Management Unit의 준말로, 메모리 관리 장치이다.
CPU가 메모리와 상호작용하려면, 논리주소와 물리주소 간의 변환이 이뤄져야 한다.
베이스 레지스터: 프로그램의 가장 작은 물리주소, 즉 프로그램의 첫 물리주소를 저장한다.
논리주소: 프로그램의 시작점으로부터 떨어진 거리
메모리 보호기법

프로그램의 논리 주소 영역을 벗어나는 위험한 명령어의 실행을 방지하는 보호기법이 필요하다.
한계 레지스터: 논리주소의 최대 크기를 저장한다.
베이스 레지스터 값 <= 프로그램의 물리주소 < 베이스 레지스터 값 + 한계 레지스터 값
3. 캐시 메모리
저장 장치 계층 구조
컴퓨터가 사용하는 저장장치들을 CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낸 구조
CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비싸다.
캐시 메모리
CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리 보다 빠른 SRAM기반의 저장 장치
CPU의 연산 속도와 멤뢰 접근 속도의 차이를 조금 줄여준다.
종류
L1, L2, L3 캐시
L1, L2는 코어 내부에 위치하고 L3는 코어 외부에 위치한다.
L1의 경우, 명령어만을 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시로 분리하는 경우도 존재한다.
분리형 캐시라고도 부름
참조 지역성의 원리
캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다.
캐시 메모리 내 데이터가 CPU에 활용될 경우, 캐시 히트라고 한다.
예측이 틀려, 메모리에서 필요한 데이터를 직접 가져와야 하는 경우, 캐시 미스라고 한다.
캐시 적중률 = (캐시 히트 횟수) / (캐시 히트 횟수 + 캐시 미스 횟수)
캐시 적중률이 높으면 CPU 메모리 접근 횟수를 줄일 수 있다.
캐시 메모리는 참조 지역성의 원리를 따라 가져올 데이터를 결정한다.
시간 지역성
CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
공간 지역성
CPU는 접근한 메모리 근처를 접근하려는 경향이 있다.
Last updated