핵심 키워드: 휘발성 저장 장치
, 비휘발성 저장 장치
, DRAM
, SRAM
, SDRAM
, DDR SDRAM
휘발성 저장 장치: 전원을 끄면 저장된 내용이 사라지는 저장 장치
비휘발성 저장 장치: 전원이 꺼져도 저장된 내용이 유지되는 저장 장치
CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 할 텐데, RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어집니다.
하지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않기 때문에 무한대로 늘리는 것은 의미가 없습니다.
DRAM (dynamic RAM) - 데이터가 시간이 지나면 점차 사라집니다. 그러므로 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야 합니다. 우리가 일반적으로 메모리로서 사용하는 RAM은 DRAM입니다.
SRAM (static RAM) - 시간이 지나도 저장된 데이터가 사라지지 않습니다. 하지만, 집적도가 낮고, 소비 전력도 크며, 가격도 더 비싸기 때문에 캐시 메모리에 사용합니다.
SDRAM (synchronous dynamic RAM) - CPU와 클럭 신호와 동기화된 형태의 DRAM입니다.
DDR SDRAM (double data rate SDRAM) - 최근 가장 흔히 사용되는 RAM으로 SDRAM에 비해 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고 받을 수 있습니다.
핵심 키워드: 물리 주소
, 논리 주소
, MMU
, 베이스 레지스터
, 한계 레지스터
물리주소: 메모리가 사용하는 정보가 실제로 저장된 하드웨어 상의 주소
논리주소: CPU와 실행 중인 프로그램이 사용하는 0번지부터 시작되는 주소
CPU가 메모리와 상호작용하려면 논리주소와 물리주소 간의 변환이 이루어져야 하는데, 이 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치 (memory management unit: MMU)라는 하드웨어에 의해 수행됩니다.
MMU는 CPU가 발생시킨 논리주소에 베이스 레지스터 값을 더하여 논리주소를 물리주소로 변환합니다.
다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하므로 한계 레지스터라는 레지스터에 프로그램의 논리주소의 최대 크기를 저장해 CPU가 더 큰 논리주소에 접근하려고 하면 인터럽트 (트랩)을 발생시켜 실행을 중단합니다.
핵심 키워드: 저장 장치 계층 구조
, 캐시 메모리
, 캐시 적중률
, 참조 지역성의 원리
이 원칙에 따라, CPU에 얼마나 가까운가를 기준으로 계층적으로 나타내면 이를 저장 장치 계층 구조라고 합니다.
CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치입니다.
이 캐시 메모리들은 CPU와 가까운 순서대로 계층을 구성합니다. 코어와 가장 가까운 캐시 메모리를 L1 캐시, 그 다음 가까운 캐시 메모리를 L2 캐시, 그 다음 가까운 캐시 메모리를 L3 캐시라고 부릅니다.
멀티 코어 프로세서에서 L1 캐시와 L2 캐시는 코어마다 고유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용됩니다.
캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장합니다. 이때 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트라고 합니다.
이와 반대로 예측이 틀려 메모리에서 필요한 데이터를 CPU가 직접 가져와야 하는 경우를 캐시 미스라고 합니다.
캐시가 히트되는 비율을 캐시 적중률이라하며, 우리가 사용하는 컴퓨터의 캐시 적중률은 대략 85~95% 이상입니다.
캐시 메모리는 어떻게 CPU가 사용할 법한 데이터를 어떻게 알 수 있을까요? - 답은 참조 지역성의 원리