본문 바로가기
CS/Computer Architecture

Memory Hierarchy

by 테리는당근을좋아해 2019. 12. 16.

Ideal Memory(이상적인 메모리)

 - 지연시간이 코스트가 없고, 대역폭과 용량이 무한

 - 이상적인 메모리의 요구조건은 서로 상반됨(용량이 크면 느려지고, 빠르거나 대역폭이 높아지면 비싸짐)

 

1. 메모리 종류

1) 휘발성 메모리(volatile memory)

 

(1) SRAM(Static Random Access Memory)

 - 속도 : 빠름(커패시터가 없음)

 - 밀도 : 낮음(6T(트렌지스터) cell)

 - 비용 : 높음

 - 커패시터가 없으므로 refresh할 필요없음

 

(2) DRAM(Dynamic Random Access Memory)

  - 속도 : 느림(커패시터 있음)

  - 밀도 : 높음(1T(트렌지스터) 1C(커패시터) cell)

  - 비용 : 낮음

  - 커패시터로 인해 refresh(배터리를 충전하는 동작)해야함 ->  성능 감소, 하지만 비용이 싸서 main memory에 사용

 

2) 비휘발성 메모리(nonvolatile memory)

(1) SSD(Solid-state drive)

  - 속도 : 빠름

  - 비용 : 높음

  - flash memory 사용

 

(2) HDD(hard disk drive)

  - 속도 : 느림

  - 비용 : 낮음

  - magnetic storage 사용

 

각 메모리는 장단점을 가지고 있기 때문에 하나의 메모리 타입으로이상적인 메모리(ideal memory)가 될 수 없음

따라서, Memory hierarchy를 이용

 

2. 메모리 계층구조(Memory Hierarchy)

- 메모리 계층구조란 메모리를 필요에 따라 여러층으로 나누어 CPU가 메모리에 접근하는 속도를 높이는 것

- 메모리 계층구조가 동작할 수 이유는 '데이터의 지역성'때문이다.

 

 

 

1) 지역성(locality) : 지역성이란 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 의미

 (1) 시간적 지역성(Temporal Locality) : 특정 데이터가 한 번 접근되었을 때, 가까운 미래에 다시 접근할 가능성이 높은 것(반복문)

 

 (2) 공간적 지역성(Spatial Locality) : 특정 데이터와 가까운 데이터가 다시 접근할 가능성이 높은 것(ex : 배열, 순차 접근)

 

이러한 지역성을 활용해 모든 데이터를 디스크에 저장하고 필요에 최근에 접근된 데이터를 main memory, cache에 저장하는 방식으로 메모리 계층구조를 구현

 

 

2) 메모리 계층구조에서의 기본 동작

  (1) block(line) :

      cache의 기본 저장 단위 또는 메모리의 각 계층에서 데이터를 전송하는 기본 단위(multiple word)

      현대 컴퓨터의 block size는 64bytes. 즉 블록 당 16개의 word를 담고 있음(1 word는 4bytes)

 

 (2) hit :

      접근한 데이터가 상위 계층에 있을 때 (hit rate = hits/accesses)

 

 (3) miss :

      접근한 데이터가 상위 계층에 없을 때 (miss rate = misses/accesses = 1 - hit rage)

      miss 발생 시 하위 계층에서 블록은 복사해옴

 

 

 

 3) 파이프라인 디자인에서의 캐시

  - datapath에서 두가지 메모리가 사용됨(Instruction memory, data memory). 이 또한 캐시로 구현되어야한다.

  - 캐시는 용량이 커질수록 데이터 전송속도가 느려지기 때문에 역할에 따라 나누고 이를 다시 합치는 계층구조가 필요하다.

   (1) L1 cache : 프로세서와 가장 가까운 cache로 속도를 위해 instruction과 data로 분리

   (2) L2 cache : 용량이 큰 cache, 크기를 위해 L1 cache 통합

   (3) L3 cache : multicore 시스템에서 여러 코어가 공유하는 cache

'CS > Computer Architecture' 카테고리의 다른 글

Language of the Computer  (0) 2019.12.23
Computer Abstraction and Technology  (1) 2019.12.22
Processor - Datapath  (0) 2019.12.17
Processor - logic design basics  (0) 2019.12.16
Floating Point Number  (0) 2019.12.15

댓글