Cache #2

charrrming·2022년 6월 2일

Computer Architecture

목록 보기
16/17
cpu time = # insts * CPI * T
		 = clock cycles * T
         = (cpu execution clock cycles + Memory-stall clock cycles) * T
         
* memory stall clock cycles = read-stall cycles + write-stall cycles
  만약 read miss, write miss의 penalty가 동일하다면
  -> memroy stall clocky cycles 
	= (memory access / program) * miss rate * miss penalty
    
    
* AMAT(평균 메모리 접근 시간) = Hit time + Miss rate * Miss penalty
캐시 성능 개선 방법: miss rate를 줄이거나 miss penalth를 줄이자

Reducing Cache Miss Rate

direct mapped cache는 하나의 cache line을 여러 메모리 블록이 겅유 -> conflict 발생
-> fully associative cache를 쓰자

* fully associative cache는 cache 내 아무데나 갈 수 있음
* n-way set associative cache는 direct랑 fully의 중간 형태
  -> cache를 다수의 set로 나누고 각 set는 n개의 way를 가짐
  -> 메모리 블록을 unique set에 mapping
cache 크기 고정된 상태에서, associativity를 두배로 늘리면 set 수는 절반으로 감소함
associativity 늘어나면 index는 감소, tag는 증가

* Replacement Policy
cache miss 발생 시 어떤 것을 replace?

1) LRU(Least-recently used) : 가장 오랜 시간동안 사용하지 않은 것을 방출
	cache contorller가 계속 tracking 해야함 (오래된 데이터 구분을 위해_
    2way면 저장된 순서 2!이므로 1bit면 충분
    4way면 저장된 순서 4!이므로 5bit면 충분
    
2) Random
3) NMRU(Not Most Recenlty Used): 가장 최근에 사용한 데이터만 피하자

Reducing Cache Miss Penalty

메모리 계층을 더 촘촘하게 두자 (여러 레벨의 캐시를 사용하자)

* multilevel cache performance (L1 캐시에 L2 캐시 추가했을 때의 성능 향상)

L1 캐시: hit time 감소에 초점, miss rate가 증가하더라도 L2, L3가 막아줄거라 믿음
L2 캐시: miss rate 감소에 초점 (for penalty 감소)
 

0개의 댓글