그렇다면 왜 계층적 메모리 구성인가?
우리는 빠르고 큰 메모리를 원함 근데 싱글 level of memory에서는 제약이 많다.
Idea : processor에 가까이있을수록 memory faster하다. 따라서 processor가 필요한 data를 빠른쪽에 두자.
Locality
Temporal Locality : cpu가 뭔가를 했으면 곧 똑같은 행동을 또 할것이다.
int a b c 선언해놓고 쓰면 높은 확률로 a b c 쓸거니까 캐시에 올려놓고 쓰면 개이득
Spatial Locality : a를 갖다쓰는 순간에 근접한 b c 도 그냥 줘버림
이 두가지 원칙으로 cache 만든다.
책장으로 메모리구조를 비유하자면
내 손에 있는 책 : 레지스터파일
Desk : level 1 cache
Bookshelf : level 2 cache
Boces at home : DRAM
Boxes in storage : hdd
cache는 insturction-cache data-cache있어서 각각 따로 data 가져옴(havard 구조)
i-cache는 메모리의 text
d-cache는 그외에서가져옴
출처 : https://parksb.github.io/article/29.html
요즘엔 level 3까지있는데 각 캐시 size는 가장 효율적인 크기로 결정된다.
32KB면 4byte짜리 8천개 갖고놀수있다. 효율 ㅅㅌㅊ
'학교공부 > 컴퓨터구조' 카테고리의 다른 글
컴퓨터구조 SingleCycle (0) | 2020.06.15 |
---|---|
컴퓨터구조 MIPS - 2 (0) | 2020.06.14 |
컴퓨터구조 MIPS (0) | 2020.06.14 |
컴퓨터구조 Performance (0) | 2020.06.14 |
컴퓨터구조 19 - Memory Hierarchy (0) | 2020.05.20 |