5장 메모리 계층

ys0820.kim·2022년 11월 3일
0

메모리 계층 구조 (Memory Hierachy)

CPU가 연산에 참조하는 메모리는 극히 일부분인데 반해 전체 메모리 용량은 크므로 메모리의 계층 구조를 나눠서 컴퓨터가 더 효율적으로 메모리에 접근할 수 있도록 설계한 것.

상위로 갈수록 CPU와 가까워지며 빈도/속도/용량은 높아지며 가격은 저렴해진다.

Register

CPU는 연산만 가능하다. -> 따라서 연산에 필요한 데이터를 저장할 수 있는 공간이 필요하다.

Register는 CPU 내부에 위치한 고속 메모리로 CPU 연산에 필요한 소량의 데이터를 저장할 수 있도록 고안됨.

ex. 메모리 주소 레지스터 / 메모리 버퍼 레지스터
-> 레지스터로 메모리의 주소 혹은 값을 저장하여 사용

Cache

메인 메모리와 CPU 사이에 위치한 고속 메모리로 메모리 접근 속도 차이에 따른 병목 현상을 완화시키는 역할을 한다.

Cache는 메인 메모리에서 최근에 사용할만한 데이터를 복사하여 저장해놓는다.

성능 개선이 가능한 이유는 Locality에 있다.

Locality(지역성) : 데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생함.

  • 공간 지역성 : 최근에 사용했던 데이터와 인접한 데이터가 참조될 가능성이 높다는 특성

  • 시간 지역성 : 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 

ex.) 공간적 지역성 : 반복문

int arr[10];

for(int i = 0; i < 10; i++){
	arr[i] += 1
}
  • Cache Miss : CPU가 참조하려는 데이터가 캐시에 없을 경우 -> Cache 데이터를 업데이트한다.

Main Memory

  • RAM (Random Access Memory)
    • 휘발성 : 전원이 꺼지면 Clear
    • 현재 컴퓨터 연산에 쓰이는 데이터 저장
    • ROM에 비해 상대적으로 빠르다.
    • Random Access : 메모리 주소만 알면 모든 데이터는 같은 속도로 접근할 수 있다.
  • ROM (Read Only Memory)
    • 비휘발성 : 영구저장
    • 부팅 프로그램 등 영구히 사용되는 데이터 저장

HDD or SSD

비휘발성 메모리이며 메모리 계층 구조에서 가장 크고 저렴하다.

HDD : 헤드가 물리적으로 돌아가며 데이터 기록 및 조회
SSD : 데이터를 전기적으로 기록 및 조회

출처

0개의 댓글