크래프톤정글/혼공컴운

[혼공컴운] CH06 메모리와 캐시 메모리

아람2 2024. 10. 8. 09:22
반응형

CH06 메모리와 캐시 메모리 

06-1 RAM 의 특성과 종류

 

주기억장치의 종류에는 크게 RAM 과 ROM 두 가지가 있고,
'메모리' 라는 용어는 그 중 RAM 을 지칭하는 경우가 많다 

 

CPU - RAM 으로부터 명령어와 데이터를 가져와서 실행

RAM - 실행할 대상 저장, 휘발성 

보조기억장치 - 보관할 대상 저장, 비휘발성 ex) SSD, USB, CD-ROM

 

비유 - 책장은 보조기억장치, 책상은 RAM, 올려놓은 책들을 읽는 것은 명령어/ 데이터 실행하는 것

 

 

DRAM Dynamic RAM 

저장된 데이터가 동적으로 사라지는 RAM (전원을 꽂고 있어도 데이터가 점점 사라진다)

데이터 소멸을 막기 위해 주기적으로 재활성화 Refresh 필요 

일반적으로 메모리로 사용됨 - 상대적으로 소비 전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이

SRAM Static RAM

저장된 데이터가 정적인 (사라지지 않는) RAM (전원을 꽂으면 괜찮지만 전원을 뽑으면 데이터가 날아간다, 휘발성)

DRAM 보다 일반적으로 더 빠름 

일반적으로 캐시 메모리에서 사용되는 RAM - 상대적으로 소비 전력이 높고 가격이 높고 집적도가 낮아 "대용량으로 설계할 필요는 없으나 빨라야 하는 장치" 에 사용 

DRAM 과 SRAM 의 상대적 비교

SDRAM Synchronous DRAM 

DRAM 의 발전된 형태, 클럭 신호와 동기화된 DRAM 

DDR SDRAM Double Data Rate SDRAM 

SDRAM 의 발전된 형태 (2배), 최근 가장 대중적으로 사용하는 RAM

대역폭을 넓혀 속도를 빠르게 만든 SDRAM (DDR2 는 4배, DDR3 은 8배, DDR4 는 16배)

 

06-2 메모리의 주소 공간

https://youtu.be/_mQNCRA1fVA?si=pTaPeRAD0sMcU_u7

 

 CPU 와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못 한다 

 그 이유는, 메모리에 저장된 값들은 시시각각 변하기 때문이다 

* 새롭게 실행되는 프로그램은 새롭게 메모리에 적재 

* 실행이 끝난 프로그램은 메모리에서 삭제 

* 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라진다 

 

물리 주소

메모리 입장에서 바라본 주소

말 그대로 정보가 실제로 저장된 하드웨어 상의 주소

논리 주소

CPU 와 실행 중인 프로그램 입장에서 바라본 주소 

실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 

물리 주소와 논리 주소의 변환 

MMU (메모리 관리 장치) 라는 하드웨어에 의해 변환 

MMU 는 논리 주소와 베이스 레지스터 (프로그램의 기준 주소) 값을 더하여 논리 주소를 물리 주소로 변환한다 

베이스 레지스터 안에는 물리 주소 상의 프로그램의 시작 주소가 담긴다 

베이스 레지스터

프로그램의 가장 작은 물리 주소 (프로그램의 첫 물리 주소) 를 저장하는 셈

논리 주소는 시작점으로부터 떨어진 거리라고 생각하면 된다 

기준 주소에서 떨어진 거리가 논리 주소, 기준 주소와 실제로 떨어진 거리를 더한 값이 물리 주소

 

한계 레지스터 Limit Register 

프로그램의 영역을 침범할 수 있는 명령어의 실행을 막는다 

베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장 

베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값 

CPU 가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 된다

이처럼 CPU 는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다 

 

실행 중인 프로그램의 독립적인 실행 공간을 확보하고

하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호한다 

 

6-3 캐시 메모리 

CPU 가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다 

https://youtu.be/qLCP0PwRp_w?si=qSkDSvchDEx0Sa8u

 

저장 장치 계층 구조 Memory Hierachy 

메모리 계층 구조, 

1) CPU 와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다 

2) 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다 

+ 여기서 '메모리' 라는 용어는 RAM 이 아닌 일반적인 저장 장치를 의미한다 

 

저장 장치들은 'CPU 에 얼마나 가까운가' 를 기준으로 계층적으로 나타낼 수 있다 

 

 

캐시 메모리

CPU 와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치

CPU 의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생

CPU 가 매번 메모리에 왔다갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU 가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 쓰자 

 

메모리에 접근하는 것은 물건을 사러 가는 것, 

메모리는 물건은 많지만 집과는 멀리 떨어져 있어 왕복이 오래 걸리는 대형 마트, 

캐시 메모리는 물건이 많지는 않지만 집과 가까이 있는 편의점으로 비유할 수 있다 

 

가장 일반적인 캐시 메모리 구조, 크기/ 용량은 L1<L2<L3, 속도는 L1>L2>L3

 

코어마다 각각의 캐시 메모리가 존재한다, 각 코어의 캐시 메모리가 동일한 내용을 가지게끔 싱크를 맞추는 게 중요
L1D Data 데이터만을 담는 메모리, L1I Instruction 명령어만을 담은 메모리

 

 

참조 지역성의 원리

캐시 메모리는 메모리보다 용량이 작다

당연하게도 메모리의 모든 내용을 저장할 수 없다 

CPU 가 자주 사용할 법한 내용을 예측하여 저장한다 

 

예측이 들어맞을 경우 (CPU 가 캐시 메모리에 저장된 값을 활용한 경우) = 캐시 히트

예측이 틀렸을 경우 (CPU 가 메모리에 접근해야 하는 경우) = 캐시 미스 

캐시 히트와 캐시 미스 상황

 

캐시 적중률 

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

캐시 적중률을 높여야 한다 == CPU 가 사용할 법한 데이터를 잘 예측해야 한다 

CPU 가 사용할 법한 데이터를 예측하는 방법이 참조 지역성의 원리이다 

 

참조 지역성의 원리 추가 설명

CPU 가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리

1) CPU 는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다 

2) CPU 는 접근한 메모리 공간 근처를 접근하려는 경향 (공간 지역성) 이 있다 

 

 

반응형