Computer Science/컴퓨터 구조

[컴퓨터 구조] The Basic of Cache

바보1 2022. 11. 22. 22:43

 

 


앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Introduction to the Memory Hierarchy

 

[컴퓨터 구조] Introduction to the Memory Hierarchy

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.10.01 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] RISC-V 명령어 작동 과정 (RISC-V Instruction Operation Process) [컴퓨터 구조] RISC-V 명령어 작동 과정 (RISC-V

hi-guten-tag.tistory.com

2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Memory Technologies

 

[컴퓨터 구조] Memory Technologies

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Introduction to the Memory Hierarchy [컴퓨터 구조] Introduction to the Memory Hierarchy 앞의 글을 읽으시면 이해

hi-guten-tag.tistory.com


1. Cache

 

 

Cache는 하드웨어에 의해 관리되는 작고, 빠른 SRAM 기반의 memory입니다.

Main memory와 비교해서 자주 접근되는 block을 가지고 있습니다.

또한 Cache는 multi-level 구조를 가지고 있습니다. (L1, L2, L3 Cache)

Cache 구조

만약 Multi-Core 환경이라면 L1, L2는 Core마다 종속되지만, L3는 Core 들의 공용 Cache로 사용됩니다.

 

효율성을 위하여 Cache는 작고, 빠른 특성 때문에 Locality가 높은 data를 가져갑니다.

또한, 메모리에 있는 데이터의 작은 부분만 cache에 저장할 수 있습니다.

 

Processor는 데이터를 찾기 위해서는 Cache를 맨 먼저 봅니다.

그러면 Processor가 Cache 안에 있는 Data를 어떻게 찾을까요?


2. Simple Cache

 

 

맨 처음에는 아주 간단한 Cache만 생각해봅시다.

Processor는 한 번에 하나의 word만 요구하며, block은 하나의 word로 이루어져 있다고 가정합니다.

 

Cache

위의 그림에서 Processor가 \(X_n\)을 찾는다고 가정해봅시다.

기존의 Cache에는 \(X_n\)이 없기 때문에(miss), 메모리에 가서 해당 데이터를 찾습니다.

이후 Cache의 빈 자리에 \(X_n\)을 업데이트하고, 이를 Processor에 제공합니다.

그렇다면 Processor는 찾는 데이터가 존재하는지, 존재한다면 어디에 있는지를 알아야 합니다.


3. Mapping

 

 

 

Cache를 하나하나 순차적으로 찾는 것은 너무 비효율적이기 때문에, 이를 해결하는 방법이 바로 mapping 기법입니다.

 

mapping 기법은 크게 두 가지로 나눌 수 있습니다.

 

Direct mapping 

2022.11.23 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Direct Mapping

 

Associative mapping (fully, set)

2022.12.04 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Associative Mapping, Cache

 

mapping 방식의 비교

2022.12.04 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Mapping 방식의 비교

 

(cache miss가 발생했을 때와 cache write를 했을 때, 메모리 write에 대한 글)

Handling Miss & Write

2022.11.23 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Handling Cache Miss

 

 

 

mapping 기법은 여러 개로 나누어져 있으며, 다음 글에서는 dircet mapping 기법에 대해서 알아보겠습니다.

 

감사합니다.

 

지적 환영합니다.