<aside> 💡 Miss 가 발생하면 다음과 같은 시간비용이 발생된다

하위 레벨 메모리까지 도달하는 시간

새로운 데이터 저장하기 위해서 기존 데이터 지우고 새 데이터 덮어쓰는 시간


메모리는 어떤 데이터를 요청받을지 모르니 항상 많은 데이터를 보유하고 있으려고 한다

요청한 레이어에게 Miss 났다고 응답하는 시간

</aside>

<aside> 💡 [Hit & Miss](https://cybecho.notion.site/Hit-Miss-062f0119afc6470bb7428598b35a3f58) 에서 다음과 같이 설명했었다.

만약 레지스터가 SRAM에 있는 데이터를 찾다가 성공하면 10ns가 소요되겠지만

SRAM에 데이터가 없어서 DRAM까지 가서 데이터를 찾으면 100ns가 소요될것이다.

즉, 바로찾으면 10배 느리고 바로 못찾으면 
100배, 10,000,000 배 까지도 
늘어날 수 있다는 소리

</aside>

Hit Time

사실 그래도 히트타임은 CPU타임과 거의 동일하게 발생해서 속도가 매우 빠르다.

→ Hit Rate

<aside> 💡 만약 100번중 50miss가 발생하면


Miss rate : 0.5

Hit rate : 0.5

</aside>

Miss penalty (Miss 패널티)

→ Hit Rate

<aside> 💡 만약 한 사이클에 100클럭이 소요되는 어떤 명령어가

99% Hit

1% Miss

가 발생했다면, 사용한 총 클럭은 200개가 된다.

왜?


![Hit = 99

miss = 1

error response = 1

= 101

근데 한 사이클에 100클럭이라 했지? 에러 났다고 알려주는 1클럭 때문에 100클럭을 초과해서 99클럭을 만야 기다리고만 있어야함.

이러면 사실상 1miss 때문에 성능이 절반이 되버림](https://prod-files-secure.s3.us-west-2.amazonaws.com/09ccd4d5-876c-4bba-bbdf-cc77a0a11257/d5c33d0d-9b59-4ddb-92ed-d5969dcbd5b6/Untitled.png)

Hit = 99

miss = 1

error response = 1

= 101

근데 한 사이클에 100클럭이라 했지? 에러 났다고 알려주는 1클럭 때문에 100클럭을 초과해서 99클럭을 만야 기다리고만 있어야함.

이러면 사실상 1miss 때문에 성능이 절반이 되버림

→ 이거 99/1 인줄 알았는데, 99/200 이 되어버렸다!

</aside>