CPU 캐시: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
시들해봇 (토론 | 기여)
Maybee (토론 | 기여)
잔글편집 요약 없음
12번째 줄:
그러므로 파이프라인은 자연스레 적어도 세 개의 구분된 캐시(명령어, TLB, 데이터)에서 작업이 끝나며 각각 저마다 특정한 역할을 수행한다.
===== 빅팀 캐시 =====
'''빅팀 캐시'''(victim cache)는 충돌이나 용량 문제로 CPU 캐시에서 빠져나간 블럭을블록을 유지시키는 데 이용하는 캐시이다. 빅팀 캐시는 메인 캐시와 리필(refill) 패스 사이에 위치해 있으며 캐시 쪽에서 나온 문제가 된 블럭만블록만 유지시킨다. 이 기술은 캐시에서 초래한 불리한 조건을 줄이기 위해 사용한다.
 
HP PA7200에 있던 원래의 빅팀 캐시는 작고 완전히 연결되어 있는 캐시였다. 나중에 AMD K7과 K8과 같은 프로세서들은 더 큰 2차 캐시를 빅팀 캐시로 이용하였으며 커다란 1차 캐시의 콘텐츠에 데이터가 중복되는 현상을 제거하였다.
22번째 줄:
처음 출판했을 때의 미국 특허 5,381,533에서는 인텔사의 [[알렉스 펠레그]]와 [[우리 웨슬러]]가 "Dynamic flow instruction cache memory organized around trace segments independent of virtual address line"라는 설명으로 1994년 3월 30일에 공표하였지만 1992년에 이에 대한 응용 분야가 계속되면서 버려지게 되었다.
 
트레이스 캐시는 디코딩 된 뒤나 빠져나온 뒤의 명령어를 저장한다. 일반적으로 명령어들은 개별 기본 블럭이나블록이나 동적 명령어 트레이스를 대표하는 그룹에서 트레이스 캐시들에 추가된다. 기본 블럭은블록은 분기가 있는 비분기 명령어들의 한 그룹으로 구성되어 있다. 동적 트레이스 (트레이스 패스)는 결과가 실제로 사용된 명령어들만 포함하고 있으며 분기들을 따라가는 명령어들을 제거한다. (실행 중이 아니기 때문에) 동적 트레이스는 여러 개의 기본 블럭이블록이 모인 것으로 표현할 수 있다. 이로써 실행 중에 있는 분기들을 걱정하지 않아도 프로세서의 명령어 페치 장치가 여러 개의 기본 블럭을블록을 페치할 수 있다.
 
트레이스 캐시는 [[인텔 펜티엄 4]]와 같은 프로세서에서 쓰이며 이미 디코딩된 마이크로 연산들을 저장하거나 복잡한 x86 명령어를 번역하며, 추후 명령어가 필요하면 다시 디코딩할 필요가 없어진다.