YYYEJI

[MIPS] Memory hierarchy (locality) 본문

Computer architectures

[MIPS] Memory hierarchy (locality)

YEJI ⍢ 2022. 12. 3. 15:09
728x90

우리는 크고 빠른 메모리를 가지기를 원하지만 그것은 쉽지 않다.

 

작은 메모리가 빠른 속도를 가지고,

큰 메모리가 느린 속도를 가지게 된다.

 

하지만, user는 크고 빠른 메모리를 원하기 때문에 우리는 memory hierarchy를 이용한다.

 

SRAM(Static Random Access Memory) - 빠르지만 비싼 memory

DRAM(Dynamic Random Access Memory) - 속도는 SRAM보다 느리지만 SRAM보다 가격이 싼 memory

Disk - 속도는 굉장히 느리지만 가격이 싼 disk

 

NOTE) Static은 휘발성이 아니여서, 컴퓨터의 전원을 꺼도 정보가 날라가지 않지만

Dynamic은 휘발성이기 때문에, 컴퓨터의 전원을 끄면 정보가 날라간다.

(휘발성인 static도 있긴함)

 

SRAM의 속도를 가지고 DISK의 가격을 가지는 메모리를 만들면 어떨까?

그 해답은, memory hierachy를 만드는 것이다.

 

 

CPU

Level 1

Level 2

. . .

Level n

 

NOTE) CPU에 가까울수록 작으면서 빠른(비싼) 메모리

 

 

그러면 MEMORY HIERARCHY를 사용하면 user가 원하는 크고 빠른 메모리를 가질 수 있을까?

그것은 Locality로 대답할 수 있다.

 

Temporal locality - 시간적으로, 방금 사용된 변수가 곧 또 사용될 것이다.

Ex) a = b + c;

d = 2*a + 1;

Spatial locality - 공간적으로, 방금 사용된 변수 주변의 변수가 access 될 것이다.

Ex) for (i = 0; i<n; i++) sum += a[i];

 

이러한 이유로 memory hierarchy는 크고 빠른 메모리를 가질 수 있게 되는 것이다.

◡̈

'Computer architectures' 카테고리의 다른 글

[MIPS] Data Mapping(Direct Mapped)  (0) 2022.12.17
[MIPS] block, hit, miss (Memory Hierarchy)  (0) 2022.12.03
[MIPS] Performance  (0) 2022.11.28
[MIPS] Pipelining Hazard  (0) 2022.11.28
[MIPS] Pipelining Control Signal  (0) 2022.11.27