본문 바로가기

Domain/컴퓨터구조

4. Cache Memory

Cache Memory

 CPU 근처 혹은 내부에 있는 소형 저장 장치로 CPU가 곧 필요로 할 데이터를 저장한다.

 

메모리에서 성능 평가 방법

1. 시간적 성능

  • Access time : 할당된 주소에 접근하여 해당하는 데이터를 받아 오기 까지 걸리는 시간
  • Cycle time : 하나의 요청 뒤 그 다음 요청까지 걸리는 시간 access time + α

2. 처리율(throughput)

  • Transfer rate (전송률, bps) : 초당 몇 비트 (혹은 바이트)를 전송하는가

 

 

Cache의 성능 평가

히트율이 높을 수록, 캐시가 메인메모리에 비해 빠를 수록 성능이 좋다.

 

 

 Cache의 종류

  1. Unified Cache : 명령어와 데이터가 같이 저장되는 캐시
  2. Split Cache : 명령어와 데이터를 따로 분리하여 저장하는 캐시

Unified cache의 경우 Instruction cycle이 파이프라인 구조로 실행될 때 cache에 의해 resource hazard가 발생하는 문제가 있다. 그 해결책으로 주로 Level 1 cache에서 split cache를 사용한다.

 

 

Memory Hierarchy (메모리 계층 구조)

 CPU에 비해 느린 메인 메모리를 보완하기 위해 메모리에 계층을 둔다. 가격 대비해서 큰 용량과 빠른 속도를 얻는 것을 목적으로 하는 구조이다.

 

메모리 접근 방법

  • Sequential Acccess : 순차적인 데이터 접근 방식으로 접근 시간이 가변적이다.
  • Direct Access : 직접 접근하는 방식으로 디스크 헤드가 해당 데이터 위치까지 이동하는 시간에 의해 가변적이다.
  • Random Access : 무작위로 데이터를 접근하는 방식이다. 데이터 접근 시간이 같다.
  • Associative : 주소가 없고 메모리에 저장된 내용으로 데이터를 찾는 방식. 극히 일부 메모리에서 사용한다.

 

MMU(Memory Management Unit)

 CPU가 처리하는 논리주소와 메모리가 처리할 수 있는 물리 주소를 중간에서 맞춰주는 작업을 한다.

Mapping

 메인 메모리의 물리 주소를 통해 캐시의 값을 읽기 위한 방법.

 

Mapping의 종류

  • Direct Mapping : 메모리 주소와 캐시의 순서를 일치 시킨다. 단순하다는 장점이 있지만 히트율이 낮다.
  • Associative Mapping : 메모리가 캐시의 어느 곳에나 접근할 수 있다. 히트율이 높지만 검색 과정이 느리다.
  • Set associative : 위 두 방식을 합쳐 그룹간의 순서는 direct mapping과 같이 일치 시키고 일정 그룹 내에서는 아무associative mapping과 같이 아무 곳에나 저장이 가능하다. 효율적이고 히트율이 높아 가장 대중적이다.

Mapping 방식도 중요하지만 결국 성능에 큰 영향을 미치는건 Cache의 용량이다.

 


Replacement Algorithm

 캐시의 용량이 부족할 경우 어떤 값을 제거(대체)할 지 결정하는 알고리즘

  • LRU(Least Recently Used) : 가장 참조한지 오래된 블럭을 제거한다. 대중적이고 효율적이다.
  • FIFO : 저장되었던 순서대로 제거한다.
  • LFU(Least Frequently Used) : 가장 참조가 적었던 블럭을 제거한다.

 매핑 별 대체, 제거

  • Direct Mapping : 순서대로 값이 저장되기 때문에 알고리즘을 고려할 필요가 없다.
  • Associative Mapping : 전체 값 중에 제일 필요 없는 값을 지운다.
  • Set Associative Mapping : 그룹은 순서대로, 그룹 내에서는 가장 필요 없는 값을 지운다.

Write Policy

 데이터를 저장하게 될 경우에는 cache와 memory에 값을 모두 쓰는 방식이다.

  • Write through : 데이터를 저장할 경우 cache를 통해서 쓰는 방식. cache를 거쳐 쓰므로 더 느리다.
  • Write back : write를 최소하 하는 방법이다. write 한 값은 메인 메모리에서 사용이 불가능하게 하고 캐시를 통해서만 접근하게 한다.  그리고 해당 블럭이 replace 될 때, 해당 블럭을 메모리에 저장한다.

'Domain > 컴퓨터구조' 카테고리의 다른 글

2. Performance Issue  (0) 2020.03.14
3. A Top-Level of Computer Function and Interconnection  (0) 2020.03.14
5. Internal Memory  (0) 2020.03.14
6. External Memory  (0) 2020.03.14
7. I/O (Input/Output)  (0) 2020.03.12