관리 메뉴
Automotive Software
캐시 기본 본문
- 캐시 구조
- 직접 주소 매핑 (direct mapped cache) : 가장 간단한 방식으로 메인 메모리상의 주소가 하나의 캐시 블록에 매핑
- 전 연관 캐시 (fully associative cache) : 지정된 캐시 블록 없이 사용가능한 캐시에 동적으로 데이터 저장
- 집합 연관 캐시 (set associative cache) : 캐시 블록을 집합이라는 그룹으로 나누고 각 주소 영역의 하나의 집합에 매핑, 데이터는 해당 집합 내의 어느 주소에 저장 가능
- 예, 1블록으로 이루어진 8 세트 캐시가 있을 경우,
- 1 Way associative cache : direct mapped와 동일
- 2 - 4 way associative cache : 각각 2 블록(4 세트) / 4 블록(2세트)
- 8 way associative cache : fully associative와 동일
- 쓰기 동작
- 즉시 쓰기 (Write-through)
- 메인 메모리와 캐시 양쪽에 데이터를 동시에 기록하지만, 메인 메모리 접근 비용이 성능 저하로 나타나며, 이를 보완하기 위해 쓰기 버퍼를 (Write buffer)를 설계할 수 있으나 버퍼의 크기가 쓰기 요청주기를 처리하지 못하면 성능 개선이 어려움
- 나중 쓰기 (Write-back)
- 새로운 데이터는 캐시 내에만 저장되고, 쓰인 블록이 교체될 때 메인 메모리로 쓰임
- 즉시 쓰기 (Write-through)
- 읽기 동작
- 명령 캐시 실패 시의 동작
- 명령어 접근 실패 -> 하위 메모리 계층에 읽기 수행 요청 -> ALU를 이용하여 실패한 명령어 주소 산출 -> 주 기억 장치에 읽기 수행 요청 -> 메모리 응답 대기 (시간 소요) -> 읽어온 데이터 캐시로 복사 -> 실패한 명령어를 다시 캐시에서 실행
- 데이터 캐시 실패 시의 동작
- 기본적으로 명령 캐시 실패와 같이 프로세스를 지연시켜 필요한 데이터가 캐시로 복사되기를 기다리지만, 명령 캐시 실패와는 다르게 필요 데이터를 기다리는 동안 프로세서가 명령어를 수행할 수 있도록 허용
- 결국은 데이터가 필요하므로 실제 많은 사이클을 줄일 수는 없음
- 기본적으로 명령 캐시 실패와 같이 프로세스를 지연시켜 필요한 데이터가 캐시로 복사되기를 기다리지만, 명령 캐시 실패와는 다르게 필요 데이터를 기다리는 동안 프로세서가 명령어를 수행할 수 있도록 허용
- 명령 캐시 실패 시의 동작
- 참조
'프로그래밍 (Programming) > 컴퓨터 구조' 카테고리의 다른 글
멀티 코어 시스템에서의 캐시 일관성 (0) | 2023.10.31 |
---|---|
스누핑 (Snooping) (0) | 2023.08.02 |