<요약>
- 완전 연관 사상
- 태그 필드, 단어 필드
- 블록 크기 = 라인 크기
- 세트-연관 사상
- 태그 필드, 세트 필드, 단어 필드
- 태그 필드
- 한 “세트”를 공유하는 서로 다른 블록 구분
- 세트 수 = 라인 수
- ⇒ 직접 사상
- 세트 수 = 1
- ⇒ 완전 연관 사상
※세트 연관 사상
- 세트 안에 있는 라인 중 어느 라인을 택할지는 미리 정해놓음(알고리즘)
1. 완전 연관 사상
- 의미
- 모든 주기억장치 번지들이 모든 캐시 번지 접근 가능
- 블록의 크기 = 라인 크기
- 기억장치 형식
- CPU가 캐시, 기억장치에게 요구하는 명령어 형식
- (실제로 기억장치, 캐시에 저장되는 값이 아님)
<구조>
- 과정
- 캐시의 모든 태그를 비교(모든 태그에서 서로 맞는 태그를 찾음)
- = 연관 액세스
- 캐시 적중 시,
- 해당 캐시 내용을 cpu에게 반환
- 캐시 미스 시,
- 교체 알고리즘 사용
- 캐시의 모든 태그를 비교(모든 태그에서 서로 맞는 태그를 찾음)
※ 연관 액세스
- 캐시의 모든 번지와 비교
- 장점
- 캐시 적중률 상승
- 캐시 라인의 선택권 상승
- 단점
- 캐시 라인들을 전부 탐색하므로 회로가 복잡해짐
2. 세트-연관 사상
- 의미
- 직접, 완전 사상의 조합
- 세트를 사용
- ⇒ 캐시의 라인을 그룹화(=세트)하여 사용
- 세트 → 태그 → 번지 접근(해당 세트 안에서 태그 값들을 전부 비교함)
- 태그 필드
- 각 세트 안에서 각 블록들을 구분함
- 블록 수 / 세트 수 = 태그 필드 비트 수
- 태그 필드
- k-way
- 1 세트 = k개의 라인(같은 세트에 서로 다른 라인 여러개 적재)
- 전체 세트 = v * k
- (v = 세트 전부)
- 캐시 세트 번호
- i = j mod v
- i = 캐시 세트 번호, j = 주기억장치 블록 번호, v = 캐시 세트들의 수
- 기억장치 주소 형식
- CPU가 캐시, 기억장치에게 요구하는 명령어 형식
- (실제로 기억장치, 캐시에 저장되는 값이 아님)
- 예시
- 2-way 세트, 캐시 전체 8(태그 필드 = 3bit)
- ⇒ 세트 필드 = 2 = (2^3 / 2)
- 2-way 세트, 캐시 전체 8(태그 필드 = 3bit)
- 구조
- 과정
- 세트 → 태크 → 캐시 적중 or 미스
- 캐시 적중 시,
- 캐시 사용
- 캐시 미스 시,
- 교체 알고리즘 사용
3. 대용량 세트(실제 메모리 크기)
- 세트 연관 사상 방식
- 세트 수 = 라인 수
- ⇒ 직접 사상
- 세트 수 = 1
- ⇒ 완전 연관 사상
- 세트 수 = 라인 수
- 사상 방식 비교
- 문제 예시
- 가정
- 2-way 세트 연관 사상
- 주기억장치 용량 16M바이트
- 단어 길이 1바이트
- 각 블록의 용량 4byte
- 캐시 용량 64K바이트
- 문제
- 주기억장치 주소 비트?
- 24bit
- 16M개 주소 구분
- 블록의 개수?
- 4M개
- 라인 수?
- 16K개
- 세트 수?
- 8K 개
- 기억장치주소 형식?
- 태그 9bit
- 세트 13bit
- 단어 2bit
- 단어
- 블록 크기 = 4byte
- 단어 크기 = 1byte
- 블록 마다 4개의 번지 각 단어를 구분하기 위해 2^2의 값이 필요
- 2bit
- 세트
- 8K 구분 = 13bit
- 태그
- 전체에서 빼기
- 주소지정형식 크기 = 24bit( = 기억장치 번지 수)
- 24 - 15 = 9bit
- 태그 필드만 구하기
- 블록 수 / 세트 수 = 4M / 8K = 9bit
- 전체에서 빼기
- 주기억장치 주소 비트?
- 가정
'CS > 컴퓨터 구조' 카테고리의 다른 글
4장 : 기억장치 - (9) DDR SDRAM (0) | 2024.12.23 |
---|---|
4장 : 기억장치 - (8) 교체 알고리즘 (0) | 2024.12.20 |
4장 : 기억장치 - (6) 사상방식 (0) | 2024.12.16 |
4장 : 기억장치 - (5) 캐시 메모리 (0) | 2024.12.13 |
4장 : 기억장치 - (4) 기억장치 설계 (0) | 2024.12.11 |