CPU와 메인 메모리 간의 속도 일치 문제를 해결하기 위해 캐시 메모리를 사용할 수 있습니다. 캐시 메모리는 CPU와 메인 메모리 DRAM 사이에 위치한 작지만 고속의 메모리로, 주로 정적 메모리로 구성됩니다. 정적 메모리(Static Memory)는 CPU와 메모리 사이에 위치한 소용량이지만 고속의 메모리이다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
CPU와 메인 메모리 사이의 속도 일치 문제를 해결하기 위해 구현에서는 CPU와 메인 메모리 사이에 캐시를 사용할 수 있습니다.
캐시란
컴퓨터의 캐시 메모리인 캐시 메모리는 CPU와 메인 메모리 사이에 위치한 작지만 고속의 메모리인 DRAM(Dynamic Random Access Memory)으로, 일반적으로 구성되어 있습니다 SRAM(정적 랜덤 액세스 메모리). CPU와 메모리 사이에 위치한 소용량이지만 고속 메모리이다.
CPU의 속도는 메모리의 속도보다 훨씬 빠릅니다. CPU가 메모리의 데이터에 직접 액세스할 때 일정 시간 동안 기다려야 하는 반면, 캐시는 CPU가 저장하는 데이터의 일부를 저장할 수 있습니다. 방금 사용했거나 재활용한 경우, CPU가 데이터의 이 부분을 다시 사용해야 하는 경우 캐시에서 직접 호출할 수 있으므로 데이터에 대한 반복적인 액세스를 방지하고 CPU의 대기 시간을 줄여 시스템 효율성을 향상시킵니다. .
캐시의 기능
캐시의 기능은 CPU 데이터 입출력 속도를 높이는 것입니다. 캐시 용량은 작지만 빠르며, 메모리 속도는 낮지만 용량은 크다. 스케줄링 알고리즘을 최적화하면 마치 스토리지 시스템 용량이 메모리와 같고 액세스 속도가 비슷한 것처럼 시스템 성능이 크게 향상됩니다. 캐시.
CPU의 속도는 메모리의 속도보다 훨씬 빠릅니다. CPU가 메모리의 데이터에 직접 액세스할 때 일정 시간 동안 기다려야 하는 반면, 캐시는 CPU가 저장하는 데이터의 일부를 저장할 수 있습니다. 방금 사용했거나 재활용한 경우, CPU가 데이터의 이 부분을 다시 사용해야 하는 경우 캐시에서 직접 호출할 수 있으므로 데이터에 대한 반복적인 액세스를 방지하고 CPU의 대기 시간을 줄여 시스템 효율성을 향상시킵니다. . 캐시는 L1Cache(레벨 1 캐시)와 L2Cache(레벨 2 캐시)로 구분됩니다. L1Cache는 주로 CPU 내부에 통합되는 반면, L2Cache는 마더보드나 CPU에 통합됩니다.
캐시의 기본 원리
캐시에는 SRAM 외에 제어 로직도 있습니다. 캐시가 CPU 칩 외부에 있는 경우 해당 제어 논리는 일반적으로 주 메모리/체이스 컨트롤러라고 하는 주 메모리 제어 논리와 결합됩니다. 캐시가 CPU 내부에 있는 경우 CPU는 제어 논리를 제공합니다. C CPU와 캐시 사이의 데이터 교환은 워드를 기반으로 하고, 캐시와 메인 메모리 사이의 데이터 교환은 블록을 기반으로 한다. 블록은 여러 단어로 구성되며 길이가 고정되어 있습니다. CPU가 메모리의 단어를 읽으면 해당 단어의 메모리 주소를 캐시와 주 메모리로 보냅니다. 이때, 캐시 제어 로직은 주소를 기준으로 해당 워드가 현재 캐시에 있는지 여부를 판단합니다. 그렇다면 캐시에 적중되고 해당 워드가 즉시 CPU로 전송되며, 그렇지 않으면 캐시가 누락(missing)됩니다. 주 메모리 읽기 주기는 주 메모리에서 단어를 읽는 데 사용되며, 동시에 이 단어가 포함된 전체 데이터 블록을 주 메모리에서 읽어 캐시로 보냅니다.
그림 3.29는 캐시의 개략도를 보여줍니다. 캐시 읽기 시간이 50ns이고 메인 메모리 읽기 시간이 250ns라고 가정합니다. 스토리지 시스템은 모듈식이며 메인 메모리의 각 8K 모듈은 16워드 용량의 캐시와 연결됩니다. 캐시는 4개의 라인으로 나누어지며, 각 라인에는 4개의 워드(W)가 있습니다. 캐시에 할당된 주소는 콘텐츠 주소 지정이 가능한 메모리인 연관 메모리 CAM에 저장됩니다. CPU가 메모리 액세스 명령을 실행할 때 액세스할 단어의 주소를 CAM으로 보냅니다. W가 캐시에 없으면 W가 주 메모리에서 CPU로 전송됩니다. 동시에 W를 포함하는 4개의 연속 단어로 구성된 데이터 행이 캐시로 전송되어 캐시에 있는 원래 데이터 행을 대체합니다. 여기서 교체 알고리즘은 항상 캐시 사용량을 관리하는 하드웨어 논리 회로로 구현됩니다.
캐시 구조 설계에서 해결해야 할 문제캐시 설계는 두 가지 원칙을 따라야 한다는 것은 캐시의 기본 작동 원리에서 알 수 있습니다. 첫째, 캐시 적중률이 다음과 같이 높기를 바랍니다. 두 번째는 캐시가 CPU에 투명하기를 바라는 것입니다. 즉, 캐시가 있든 없든 CPU는 동일한 방식으로 메모리에 액세스하고 소프트웨어는 액세스할 수 있기를 바랍니다. 명령어를 추가하지 않고 캐시를 삭제합니다. 적중률과 투명성 문제가 해결되어 CPU가 메모리에 접근하는 관점에서 볼 때 메모리는 메인 메모리의 용량과 캐시에 가까운 속도를 갖게 됩니다. 이를 위해서는 제어 기능을 완성하기 위한 특정 하드웨어 회로, 즉 캐시 컨트롤러를 추가해야 합니다.
캐시 구조를 설계할 때 다음과 같은 몇 가지 문제를 해결해야 합니다. ① 주 메모리의 내용을 캐시로 전송할 때 어떻게 저장합니까? ② 메모리에 액세스할 때 캐시에 있는 정보를 어떻게 찾나요? 캐시 공간이 부족할 때 캐시에 있는 기존 정보 내용 ④ 쓰기 작업이 필요할 때 캐시 내용을 다시 쓰는 방법은 무엇입니까?
그 중 처음 두 질문은 서로 연관되어 있습니다. 즉, 캐시에서 메인 메모리 정보를 찾는 방법과 메인 메모리 주소를 캐시 주소로 변환하는 방법입니다. 주 메모리 용량에 비해 캐시 용량은 매우 작습니다. 저장되는 내용은 주 메모리 내용의 일부일 뿐이며 캐시와 주 메모리 간의 데이터 교환은 블록 단위입니다. 주 메모리 블록을 캐시에 넣기 위해서는 캐시에서 주 메모리 주소를 찾는 몇 가지 방법을 사용해야 하는데, 이를 주소 매핑이라고 합니다. 매핑(mapping)이라는 단어의 물리적인 의미는 위치 간의 대응 관계를 파악하고 이를 하드웨어로 구현하는 것입니다. 이런 방식으로 CPU가 메모리에 액세스하면 CPU가 제공한 워드의 메모리 주소가 자동으로 캐시 주소로 변환됩니다. 즉, 캐시 주소 변환이 이루어집니다.
캐시 교체 문제는 주로 캐시가 누락되었을 때 캐시에 있는 내용을 교체하는 교체 알고리즘을 선택하고 실행하는 것입니다. 마지막 질문은 업데이트 중에 주 메모리와 캐시 간의 일관성을 유지하는 데 초점을 맞춘 캐시의 쓰기 작업 전략과 관련이 있습니다.
(학습 영상 공유: 프로그래밍 영상)
위 내용은 CPU와 메인 메모리 간의 속도 일치 문제를 해결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!