> 일반적인 문제 > 캐시란 무엇입니까?

캐시란 무엇입니까?

青灯夜游
풀어 주다: 2022-11-25 11:48:13
원래의
32076명이 탐색했습니다.

캐시는 캐시 메모리라고 하는데 중앙 처리 장치와 메인 메모리 사이에 있는 고속, 소용량 메모리입니다. 일반적으로 이런 종류의 로컬 메모리는 CPU를 지향합니다. CPU와 메인 메모리 간의 연결을 줄이거나 제거하기 위해 도입되었습니다. 메모리 간의 속도 차이가 시스템 성능에 미치는 영향. 캐시 용량은 작지만 빠르며, 메모리 속도는 낮지만 용량이 큽니다. 스케줄링 알고리즘을 최적화하면 시스템 성능이 크게 향상됩니다.

캐시란 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

캐시란?

캐시 메모리: 컴퓨터의 캐시 메모리는 CPU와 메인 메모리 사이에 위치한 작지만 고속의 메모리인 DRAM(Dynamic Random Access Memory)으로, 일반적으로 SRAM(Static)으로 구성됩니다. 랜덤 액세스 메모리).

캐시란 무엇입니까?

그림 3.28에서 볼 수 있듯이 캐시는 CPU와 메인 메모리 M2 사이의 소용량 메모리이지만, 액세스 속도는 메인 메모리보다 빠르고 용량도 메인 메모리에 비해 훨씬 작습니다. 캐시는 CPU에 명령과 데이터를 고속으로 제공하여 프로그램 실행 속도를 높일 수 있습니다. 기능적으로 보면 고속 SRAM으로 구성된 주 메모리의 버퍼 메모리이다. 고속을 추구하기 위해 관리를 포함한 모든 기능이 하드웨어로 구현되므로 프로그래머에게 투명합니다.

현재 반도체 소자 집적화의 발전으로 소용량 캐시와 CPU를 하나의 칩에 집적할 수 있고, 이들의 동작 속도는 CPU 속도에 가까워 2레벨 이상의 캐시 시스템을 구성하고 있다. .

캐시의 기능

캐시의 기능은 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 요구 사항을 충족하기 위해 캐시가 충족하는 비율이 높아야 합니다. 즉, 캐시 적중률이 1에 가까워야 합니다. 이 목표를 달성하는 것은 프로그램 액세스의 지역성으로 인해 가능합니다.

프로그램 실행 중 Nc는 캐시가 완료된 총 액세스 횟수, Nₘ는 주 메모리가 완료된 총 액세스 횟수, h를 적중률로 정의하면 h=Nc/( Nc+Nₘ)

tc가 적중 발생 시 캐시 접근 시간, tₘ가 미스 발생 시 주 메모리 접근 시간, 1-h가 미스율(missing rate)을 나타내고, 캐시의 평균 접근 시간 tₐ를 나타낸다면/ 메인 메모리 시스템은

tₐ=htc+(1−h)tₘ
로그인 후 복사

저희가 추구하는 목표는 적은 하드웨어 비용으로 캐시/메인 메모리 시스템의 평균 액세스 시간 tₐ를 tc에 최대한 가깝게 만드는 것입니다. r=tₘ/tc는 메인 메모리와 캐시 사이의 접근 시간 비율을 나타내고, e는 접근 효율을 나타낸다고 가정하면

e=tc/ta=tc/(htc+(1−h)tm)=1/(h+(1−h)r)=1/(r+(1−r)h)
로그인 후 복사

이 공식을 보면 접근 효율을 높이기 위해서는 적중률 h가 가까울수록 1로 하면 더 좋습니다. 적절한 r 값은 5~10이며 너무 커서는 안 됩니다.

적중률 h는 프로그램 동작, 캐시 용량, 구성 방법 및 블록 크기와 관련이 있습니다.

캐시 구조 설계에서 해결해야 할 문제

캐시 설계는 두 가지 원칙을 따라야 한다는 것은 캐시의 기본 작동 원리에서 알 수 있습니다. 첫째, 캐시 적중률이 다음과 같이 높기를 바랍니다. 두 번째는 캐시가 CPU에 투명하기를 바라는 것입니다. 즉, 캐시가 있든 없든 CPU는 동일한 방식으로 메모리에 액세스하고 소프트웨어는 액세스할 수 있기를 바랍니다. 명령어를 추가하지 않고 캐시를 삭제합니다. 적중률과 투명성 문제가 해결되어 CPU가 메모리에 접근하는 관점에서 볼 때 메모리는 메인 메모리의 용량과 캐시에 가까운 속도를 갖게 됩니다. 이를 위해서는 제어 기능을 완성하기 위한 특정 하드웨어 회로, 즉 캐시 컨트롤러를 추가해야 합니다.

캐시 구조를 설계할 때 다음과 같은 몇 가지 문제를 해결해야 합니다. ① 주 메모리의 내용을 캐시로 전송할 때 어떻게 저장합니까? ② 메모리에 액세스할 때 캐시에 있는 정보를 어떻게 찾나요? 캐시 공간이 부족할 때 캐시에 있는 기존 정보 내용은 무엇입니까? ④ 쓰기 작업이 필요할 때 캐시 내용을 다시 쓰는 방법은 무엇입니까?

그중 처음 두 질문은 서로 관련이 있습니다. 즉, 캐시 내용을 찾는 방법은 무엇입니까? 캐시의 메인 메모리 정보, 메인 메모리 주소를 캐시 주소로 변환하는 방법. 주 메모리 용량에 비해 캐시 용량은 매우 작습니다. 저장되는 내용은 주 메모리 내용의 일부일 뿐이며 캐시와 주 메모리 간의 데이터 교환은 블록 단위입니다. 주 메모리 블록을 캐시에 넣기 위해서는 캐시에서 주 메모리 주소를 찾는 몇 가지 방법을 사용해야 하는데, 이를 주소 매핑이라고 합니다. 매핑(mapping)이라는 단어의 물리적인 의미는 위치 간의 대응 관계를 파악하고 이를 하드웨어로 구현하는 것입니다. 이런 방식으로 CPU가 메모리에 액세스하면 CPU가 제공한 워드의 메모리 주소가 자동으로 캐시 주소로 변환됩니다. 즉, 캐시 주소 변환이 이루어집니다.

캐시 교체 문제는 주로 캐시가 누락되었을 때 캐시에 있는 내용을 교체하는 교체 알고리즘을 선택하고 실행하는 것입니다. 마지막 질문은 업데이트 중에 주 메모리와 캐시 간의 일관성을 유지하는 데 초점을 맞춘 캐시의 쓰기 작업 전략과 관련이 있습니다.

관련 지식이 더 궁금하시다면 FAQ 칼럼을 방문해 주세요!

위 내용은 캐시란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿