[컴퓨터구조] 메모리와 캐시 메모리
‘혼자 공부하는 컴퓨터구조+운영체제 - 강민철’ 책을 참고하여 작성한 포스트입니다.
RAM의 특징
- RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.
- 전원을 끄면 저장된 내용이 사라진다는 점에서 휘발성 저장 장치(volatile memory)라고 한다.
- 보조기억장치는 비휘발성 저장 장치(non-volatile memory)이다.
- CPU는 보조기억장치에 직접 접근하지 못하므로, 원하는 프로그램이 보조기억장치에 있다면 RAM으로 복사하여 저장한 뒤 실행한다.
RAM의 용량과 성능
- RAM의 용량이 크다면 보조기억장치에서 많은 데이터를 가져와 미리 저장할 수 있으므로 성능이 좋아 지겠죠.
- 그렇다고 필요 이상으로 크면 성능 증가 효과가 미미하겠지
RAM의 종류
- 크게 DRAM, SRAM, SDRAM, DDR SDRAM이 있다.
DRAM (dynamic RAM)
- 저장된 데이터가 동적으로(dynamic) 변하는(사라지는) RAM이다.
- 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
- 소비 전력이 비교적 낮고, 저렴하고, 집적도(더 작고 빽빽하게 만들 수 있는 정도)가 높아 대용량으로 설계하기 용이하다.
SRAM (static RAM)
- 저장된 데이터가 변하지 않는(static) RAM 이다.
- 물론 휘발성 메모리이므로 전원이 공급되지 않으면 저장된 내용이 날아간다.
- 집적도가 낮고, 소비 전력도 크고, 가격도 비싸 일반적으로 캐시 메모리에 사용된다.
SDRAM (Synchronous dynamic RAM)
- 클럭 신호와 동기화된, 발전된 형태의 RAM이다.
- 클럭 신호에 맞춰 CPU와 정보를 주고받는 DRAM 이다.
DDR SDRAM (Double Data Rate SDRAM)
- 가장 흔히 사용되는 RAM이다.
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
- 대역폭(data rate)이란 데이터를 주고받는 길의 너비를 의미한다.
- SDRAM에 비해 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고 받을 수 있어 두 배가량 빠르다.
- 기존의 SDRAM을 ‘SDR SDRAM(single data rate SDRAM)’이라 부르기도 한다.
- DDR2 는 DDR 보다 두배, DDR3은 DDR2보다 2배, DDR4는 DDR3보다 두 배 빠르다. 즉, DDR4는 SDR 보다 16배 빠르다.
메모리의 주소 공간
- 주소에는 두 종류가 있다. ‘물리 주소’ 와 ‘논리 주소’
- 물리 주소는 메모리 하드웨어가 사용하는 주소이고,
- 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소이다.
물리 주소와 논리 주소
- 메모리가 사용하는 물리 주소(physical address)는 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.
- CPU와 실행 중인 프로그램이 사용하는 논리 주소(logical address)는 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.
- 논리 주소와 물리 주소 간의 변화는 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU, Memory Management Unit)라는 하드웨어에 의해 수행된다.
- 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 셈이고,
- 논리 주소는 프로그램의 시작점으로부터 떨어진 거리이다.
메모리 보호 기법
- 논리 주소 범위를 벗어나는 명령어 실행을 방지하기 위해 한계 레지스터(limit register)가 있다.
- 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다.
저장 장치 계층 구조
- 저장 장치는 일반적으로,
- CPu와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
- 저장 장치들이 CPU에 얼마나 가까이 있느냐에 따라 계층적으로 나타낼 수 있는데, 이를 저장 장치 계층 구조(memory hierarchy)라고 한다.
캐시 메모리(cache memory)
- CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크며 메모리 보다 빠른 SRAM 기반의 저장 장치이다.
- CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치이다.
- 캐시 메모리는 여러 개 있는데 CPU(코어)와 가까운 순서대로 L1(level 1)캐시, L2 캐시, L3 캐시라고 부른다.
- 일반적으로 L1, L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치한다.
- L1, L2 캐시는 코어마다 고유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용된다.
- L1 캐시를 더 빠르게 하기 위해 명령어 만을 저장하는 L1I 캐시와 명령어만을 저장하는 L1D로 분리하는 경우도 있다. 이를 분리형 캐시(split cache)라고 한다.
참조 지역성 원리
- 캐시는 메모리의 일부를 복사하여 저장한다.
- 캐시가 예측한 데이터가 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트(cache hit)라고 한다.
- 예측에 실패해 메모리에서 필요한 데이터를 직접 가져와야 하는 경우를 캐시 미스(cache miss)라고 한다.
- 캐시 적중률(cache hit ratio)는 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) 이다.
- 현대 컴퓨터의 캐시 적중률은 대략 85~95% 이다.
- 캐시 메모리는 참조 지역성의 원리(locality of reference 혹은 principle of locality)에 따라 메모리로부터 가져올 데이터를 결정한다.
- 참조 지역성의 원리란 CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리다.
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- CPu는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
시간 지역성(temporal locality)
- 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
- 프로그래밍에서 변수에 저장된 값은 실행되는 동안 여러 번 사용되는데 이 데이터를 캐시 메모리에 저장한다.
공간 지역성(spatial locality)
- 접근한 메모리 공간 근처를 접근하려는 경향
- CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 한데 모여 있다.
- 그리고 하나의 프로그램 내에서도 관련 있는 데이터들은 모여서 저장되어 있다.
정리
- RAM은 휘발성 저장 장치, 보조기억장치는 비휘발성 저장 장치
- DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM, SRAM은 반대
- SDRAM은 클럭과 동기화된 DRAM
- DDR SDRAM 은 SDR SDRAM에 비해 두 배 빠름
- 물리 주소는 메모리 하드웨어상의 주소, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소
- MMU는 논리 주소를 물리 주소로 변환한다.
- 베이스 레지스터는 프로그램의 첫 물리 주소를 저장한다
- 한계 레지스터는 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다.
- 저장 장치 계층 구조는 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조
- 캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
- 캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
- 캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다
Leave a comment