캐시란 무엇입니까? 캐시의 용도는 무엇입니까? 캐시의 여러 대체 전략을 설명하십시오.
Cache 란
Cache 는 Cache 스토리지 부품과 Cache 제어 부품으로 구성된 특수 스토리지입니다. 캐시 저장 부품은 일반적으로 CPU 와 같은 유형의 반도체 저장 장치를 사용하여 메모리보다 몇 배 또는 10 배 이상 빠르게 액세스할 수 있습니다. 캐시 컨트롤러 부품에는 주 메모리 주소 레지스터, 캐시 주소 레지스터, 주 메모리-캐시 주소 변환 부품 및 대체 제어 부품 등이 포함됩니다. 그들이 각각 어떻게 작동하는지, 어떤 역할을 하는지에 관해서는, 우리는 더 이상의 연구를 할 필요가 없다고 생각합니다. 일반적인 캐시가 L1 캐시 (그 중 데이터 캐시, 코드 캐시), L2 캐시로 나뉘어지는 것을 알면 됩니다. (주: L1 캐시, 코드 캐시, 코드 캐시, 코드 캐시, 코드 캐시, 코드 캐시, 코드 캐시, 코드 캐시, 코드 캐시)
프로그램 로컬성 법칙에 따르면 프로그램이 실행 중일 때 최근에 사용된 명령과 데이터를 자주 사용한다는 것을 알 수 있습니다. 이것은 대체 전략의 이론적 근거를 제공한다. 종합 적중률, 실현의 난이도 및 속도의 속도, 대체 전략에는 무작위법, 선입선출 방법, 최근 최소 사용법 등이 있을 수 있습니다.
1. 무작위 방법 (RAND 방법)
무작위 방법은 대체 저장 블록을 무작위로 결정하는 것입니다. 생성된 난수에 따라 대체 블록을 결정하는 난수 생성기를 설정합니다. 이 방법은 간단하고 구현하기 쉽지만 적중률은 비교적 낮다.
2. 선입선출 (FIFO 법)
< P > 선입선출법은 가장 먼저 전입한 블록을 선택하여 교체하는 것이다. 먼저 전입되어 여러 번 명중된 블록은 우선 교체될 가능성이 높기 때문에 국지성 법칙에 부합하지 않는다. 이런 방법의 적중률은 무작위 방법보다 좋지만, 아직 요구를 충족시키지 못한다. SOLAR-16/65 기계 캐시 (SOLAR-16/65 기계 캐시) 는 그룹 연결 방식, 그룹당 4 개 블록, 블록당 2 개의 카운터를 설정합니다. 블록이 마운트되거나 교체될 때 해당 블록의 카운터가 0 으로 지워지고, 같은 그룹의 다른 각 블록에 대한 카운터가 1 씩 증가되어 교체가 필요할 때 가장 큰 수의 블록이 교체됩니다.3. 최근 최소 사용 (LRU 방법)
LRU 방법은 각 블록의 사용 방법에 따라 가장 최근에 가장 적게 사용된 블록을 항상 선택하여 교체하는 것입니다. 이 방법은 절차 국부성의 법칙을 비교적 잘 반영한다.
LRU 정책을 구현하는 방법에는 여러 가지가 있습니다. 다음은 카운터 방법, 레지스터 스택 방법 및 하드웨어 논리 비교 방법 설계 아이디어에 대한 간략한 설명입니다.
카운터 방법: 캐시의 각 조각마다 카운터가 설정됩니다. 카운터의 작동 규칙은
(1) 전입되거나 대체된 블록의 카운터에는 "0" 이 표시되고 다른 카운터에는 "1" 이 추가됩니다
(2) 적중에 액세스할 때 모든 블록의 개수 값을 적중 블록의 개수 값과 비교하며, 개수 값이 적중 블록의 개수 값보다 작으면 해당 블록의 개수 값에 "1" 을 더합니다. 블록의 개수 값이 적중 블록의 개수 값보다 크면 숫자 값은 변경되지 않습니다. 마지막으로 히트 블록의 카운터를 0 으로 정리합니다.
(3) 대치가 필요한 경우 선택 개수가 가장 큰 블록이 대치됩니다.