메모리와 캐시 메모리
RAM의 특징과 종류
RAM의 특징
전원을 끄면 저장된 내용이 사라지는 저장장치 = 휘발성 저장 장치 (RAM)
전원을 꺼도 저장된 내용이 유지되는 저장장치 = 비휘발성 저장 장치 (보조기억장치)
보조기억장치 ➡️ RAM ➡️ CPU
RAM의 용량과 성능
RAM 용량이 크면 여러 프로그램을 동시에 빠르게 실행하는데 유리
RAM 용량이 필요이상으로 커질경우 그에 비례하여 증가하진 않음
RAM의 종류
RAM의 종류
- DRAM: 소비 전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이하지만 시간이 지나면 점차 데이터가 사라져 데이터의 소멸을 막기위해 일정 시간마다 데이터를 저장해줘야함
- SRAM: 시간이 지나도 저장된 데이터가 사라지지 않아 데이터를 주기적으로 저장해줄 필요가 없으며 DRAM보다 일반적으로 속도도 빨라 주로 캐시 메모리로 이용되는데 DRAM보다 소비 전력이 크고 집적도도 낮으며 가격도 비싸 일반적으로 DRAM을 메모리로 사용함
- SDRAM: 클럭 신호가 동기화되어 CPU와 정보를 주고받을수 있는 DRAM, SDR SDRAM 이라고도 부름
- DDR SDRAM: 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
메모리의 주소 공간
물리 주소와 논리 주소
RAM이 사용하는 정보가 실제로 저장된 하드웨어상의 주소 = 물리 주소
CPU가 사용하는 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소 = 논리 주소
CPU와 RAM이 상호작용 하려면 논리 주소와 물리 주소간의 변환이 필요
변환 방법 : CPU와 RAM 사이 주소 버스 사이에 위치한 메모리 관리 장치(MMU)에 의해 변환
베이스 레지스터: 프로그램의 첫 물리 주소를 저장
CPU ➡️ 논리 주소 ➡️ 베이스 레지스터 ➡️ 논리 주소 + 베이스 레지스터 ➡️ 실제로 사용되는 물리 주소
메모리 보호 기법
논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호 = 8한계 레지스터*
베이스 레지스터 = 실행중인 프로그램의 가장 작은 물리 주소를 저장한다면,
한계 레지스터는 논리 주소의 최대 크기를 저장
∴ 프로그램의 물리 주소 범위 = 베이스 레지스터 값 > 물리 주소 < 베이스 레지스터 값 + 한계 레지스터 값
한계 레지스터값 보다 높은 논리 주소에 접근할경우 = 인터럽트 발생하여 프로그램 실행 중단
캐시 메모리
저장 장치 계층 구조
CPU에 얼마나 가까운가를 계층적으로 구조를 나타낸것 = 저장 장치 계층 구조
레지스터 ➡️ 메모리 ➡️ 보조기억장치 (왼쪽부터 가까운 순)
캐시 메모리
CPU와 메모리 사이에 위치한 SRAM 기반의 저장 장치 = 캐시 메모리
∴ 저장 장치 계층 구조 = 레지스터 ➡️ 캐시 메모리 ➡️ 메모리 ➡️ 보조기억장치
캐시 메모리는 컴퓨터 내부에 여러개가 존재
CPU와 가까운 순서대로 CPU 내부에 L1 캐시, L2 캐시, CPU 외부에 L3 캐시가 계층을 구성
코어와 가장 가까운 L1 캐시는 조금이라도 접근 속도를 빠르게 하기 위해 명령어만을 저장하는 L1I 캐시와
데이터만을 저장하는 L1D 캐시로 분리하는 경우도 있음 = 분리형 캐시
참조 지역성 원리
보조기억장치 = 전원이 꺼져도 기억할 대상을 저장
메모리 = 실행중인 대상을 저장
캐시 메모리= CPU가 사용할 법한 대상을 예측해 저장
예측한 데이터가 들어맞아 캐시 메모리 내 데이터가 실제로 활용될 경우 = 캐시 히트
예측이 틀려 메모리에서 데이터를 직접 가져와야 하는경우 = 캐시 미스
CPU가 메모리에 접근할때의 주된 경향을 바탕으로 만들어진 원리 = 참된 지역성의 원리
접근한 메모리 공간 근처를 접근하려는 경향 = 공간 지역성