상위에서 하위의 값을 가져오는 방식으로 값을 읽음.
값이 없을 경우 더 아래 계층에서 값을 탐색하여 가져옴.
계층이 높을 수록 용량은 적지만 속도는 빠름
# Hit / Miss
- 값을 찾으면 "Hit"
> "Hit ratio" = 1 - "Miss ratio"
- 못찾으면 "Miss"
# 데이터 크기 구하기
- 총 32bit 에서
- 캐시 크기 2^n block
- 블록 크기 2^m words (== 2^m+2 bytes)
이면
byte offset : m+2 bits
Index : n bits
Tag : 32 - (n + m + 2) bits
Total : 2^n(2^m+5 + Tag + 1) bits
> 1은 vaild bit (값이 있는지 확인하는 bit)
# Mapping 방식
Direct mapped : 위치만 알면 바로 찾을 수 있음
Set associative : 해당 셋의 블록을 전부 탐색 해야함
Fully associative : 배치가 자유롭지만 찾을 때 전부 탐색해야함
공통 :
- 하위 bit 부터 Set 값이 됨, 상위 bit는 Tag 값 ( Set 값 만큼 value를 나눔)
- LRU (Least Resently Used) 방식으로 최근에 쓰지 않은 데이터부터 자리 뺏음
# 주소 전달
- 물리주소가 가상주소보다 작기 때문에 bit 수가 보통 작음
- Page offset 은 변하지 않음
#TLF (Transition Lookaside Buffer)
- 빠른 사용을 위해 TLB를 둚
- TLB에 존재하지 않으면 PageTable 에서 찾고 거기도 없으면 Storage에서 탐색함
- TLB에 Hit 한다는 것이 페이지가 메인메모리에 있다는 뜻은 아님
'공부 > CS' 카테고리의 다른 글
데이터 의존성 (0) | 2025.03.01 |
---|---|
C++ 과 C# 의 차이 (0) | 2024.05.22 |
파이프라인 데이터페스 (0) | 2023.06.28 |
MIPS 데이터 패스 구동 방식 (0) | 2023.06.28 |
MIPS 주소 방식 (0) | 2023.06.28 |