RAM
- RAM(Random Access Memory)
- 임의 접근(직접 접근): 저장된 요소에 순차적으로 접근할 필요 없이 임의의 위치에 곧장 접근 가능한 방식
DRAM(Dynamic)
- 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
- 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야 함
SRAM(Static)
- 시간이 지나도 저장된 데이터가 사라지지 않는 RAM
- DRAM에 비해 속도 빠름
- 주로 캐시 메모리에 사용
SDRAM(Synchronous)
- 클럭 신호와 동기화된 발전된 DRAM
- 클럭 타이밍에 맞춰 CPU와 정보를 주고받음
DDR SDRAM(Double Data Rate)
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 두 배의 대역폭으로 한 클럭당 두번씩 CPU와 데이터 주고받음
- DDR2(4배), DDR3(8배), DDR4(16배) …
메모리에 바이트를 밀어 넣는 순서 - 빅 엔디안, 리틀 엔디안
빅 엔디안
- 낮은 번지의 주소에 상위 바이트부터 저장하는 방식

- 일상적으로 숫자를 읽고 쓰는 순서와 동일
- 메모리 값을 직접 읽거나 디버깅할 때 편리
리틀 엔디안
- 낮은 번지의 주소에 하위 바이트부터 저장하는 방식

- 수치 계산이 편리
캐시 메모리
- CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위함
- SRAM 기반의 저장장치
- 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져옴

- 코어와 가까운 순으로 L1 캐시, L2 캐시, L3 캐시
- 크기: L1 < L2 < L3
- 속도: L3 < L2 < L1

- 멀티코어 프로세서의 경우 L1, L2 캐시 메모리는 코어마다 고유한 캐시 메모리로 할당, L3 캐시는 여러 코어가 공유

- 분리형 캐시: L1 캐시를 명령어만 저장하는 L1I 캐시와 데이터만 저장하는 L1D 캐시로 구분

캐시 히트와 캐시 미스
- 캐시 메모리는 메모리보다 용량이 작기 때문에 모든 내용을 저장할 수는 없음
- CPU가 사용할 법한 것을 저장
- 캐시 히트: 캐시 메모리가 예측하여 저장한 데이터가 CPU에 의해 실제로 사용되는 경우
- 캐시 미스: 자주 사용될 것으로 예측하여 저장했지만 틀려서 CPU가 메모리로부터 직접 데이터를 가져와야 하는 경우
- 캐시 적중률: 캐시가 히트되는 비율, 일반적으로 85~95% 이상
참조 지역성의 원리
- 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
- 예) 변수
- 공간 지역성: CPU는 접근한 메모리 공간 근처에 접근하려는 경향이 있다
- 예) 배열
캐시 메모리의 쓰기 정책과 일관성
CPU가 캐시 메모리에 데이터를 쓸 때는 캐시 메모리에 새롭게 쓰여진 데이터와 메모리 상의 데이터가 일관성을 유지해야 함
- 즉시 쓰기: 캐시 메모리와 메모리에 동시에 씀
- 장점: 메모리를 항상 최신 상태로 유지
- 단점: 데이터를 쓸 때마다 메모리를 참조해야 하므로 버스의 사용 시간과 쓰기 시간이 늘어남

- 지연 쓰기: 캐시 메모리에만 값을 써 두었다가 추후 수정된 데이터를 한번에 메모리에 반영
- 장점: 메모리 접근 횟수를 줄일 수 있어 속도 더 빠름
- 단점: 메모리와 캐시 메모리 간의 일관성이 깨질 수 있음

