AMD 프로세서에서 L3 캐시는 얼마나 중요합니까?

실제로 사용 가능한 모든 코어에서 공유할 전용 메모리를 멀티 코어 프로세서에 장착하는 것이 합리적입니다. 이 역할에서 빠른 L3 캐시는 가장 자주 요청되는 데이터에 대한 액세스 속도를 크게 높일 수 있습니다. 그런 다음 코어는 이러한 기회가 있으면 느린 주 메모리(RAM, RAM)에 액세스할 필요가 없습니다.

적어도 이론상으로는. 최근 AMD Athlon II X4 프로세서 발표, L3 캐시가 없는 Phenom II X4 모델이므로 그렇게 필요하지 않음을 암시합니다. 캐시가 성능에 어떤 영향을 미치는지 알아보기 위해 두 프로세서(L3 캐시가 있는 것과 없는 것)를 직접 비교하기로 결정했습니다.

사진을 클릭하면 확대됩니다.

캐시는 어떻게 작동합니까?

테스트에 들어가기 전에 몇 가지 기본 사항을 이해하는 것이 중요합니다. 캐시의 원리는 매우 간단합니다. 캐시는 더 멀고 느린 메모리에 대한 CPU 요청을 줄이기 위해 프로세서의 처리 코어에 최대한 가깝게 데이터를 버퍼링합니다. 최신 데스크탑 플랫폼에서 캐시 계층에는 랜덤 액세스 메모리. 또한 두 번째, 특히 세 번째 수준의 캐시는 데이터 버퍼링에만 사용되는 것이 아닙니다. 그 목적은 코어가 정보를 교환해야 할 때 CPU 버스 과부하를 방지하는 것입니다.

히트 및 미스

캐시 아키텍처의 효율성은 적중률로 측정됩니다. 캐시가 충족할 수 있는 데이터 요청은 적중으로 간주됩니다. 이 캐시에 필요한 데이터가 없으면 요청이 메모리 파이프라인을 따라 더 전달되고 누락이 계산됩니다. 물론 놓치면 정보를 얻는 데 더 많은 시간이 걸립니다. 결과적으로 "버블"(다운타임)과 지연이 계산 파이프라인에 나타납니다. 반면에 조회수를 사용하면 최대 성능을 유지할 수 있습니다.

캐시 쓰기, 독점성, 일관성

대체 정책은 새 항목에 대해 캐시 공간을 사용할 수 있는 방법을 지정합니다. 캐시에 기록된 데이터는 조만간 주 메모리에 나타나야 하므로 시스템은 캐시에 기록하는 것과 동시에 이를 수행하거나(write-through) 데이터 영역을 "더티"(write-back)로 표시할 수 있습니다. 캐시에서 제거될 때 메모리에 씁니다.

여러 캐시 수준의 데이터는 중복 없이 독점적으로 저장할 수 있습니다. 그러면 두 개의 다른 캐시 계층에서 동일한 데이터 라인을 찾을 수 없습니다. 또는 캐시가 포괄적으로 작동할 수 있습니다. 즉, 캐시의 하위 수준이 캐시의 상위 수준(프로세서 코어에 더 가까움)에 있는 데이터를 포함하도록 보장됩니다. AMD Phenom은 독점적인 L3 캐시를 사용하는 반면 Intel은 포괄적인 캐시 전략을 따릅니다. 일관성 프로토콜은 코어, 캐시 계층 및 프로세서 전반에 걸쳐 데이터를 일관되고 최신 상태로 유지합니다.

캐시 크기

캐시가 클수록 더 많은 데이터를 저장할 수 있지만 대기 시간이 증가하는 경향이 있습니다. 또한 대용량 캐시는 상당한 수의 프로세서 트랜지스터를 소비하므로 트랜지스터의 "예산", 다이 크기, 전력 소비 및 성능/대기 시간 간의 균형을 찾는 것이 중요합니다.

연관성

RAM의 레코드는 캐시에 직접 매핑될 수 있습니다. 즉, RAM의 데이터 복사본에 대한 캐시의 한 위치만 있거나 n방향 연관일 수 있습니다. 즉, 캐시에 n개의 가능한 위치가 있습니다. 이 데이터가 저장될 수 있는 위치. 더 높은 온도연관성(최대 완전 연관 캐시)은 캐시의 기존 데이터를 덮어쓸 필요가 없기 때문에 최상의 캐싱 유연성을 제공합니다. 즉, 높은 n차 연관성은 높은 적중률을 보장하지만 적중에 대해 이러한 모든 연관을 테스트하는 데 더 많은 시간이 걸리기 때문에 대기 시간이 늘어납니다. 일반적으로 마지막 수준의 캐싱에는 가장 높은 연결 수준이 합당합니다. 왜냐하면 그곳에서 최대 용량을 사용할 수 있고 이 캐시 외부의 데이터를 검색하면 프로세서가 느린 RAM에 액세스하기 때문입니다.

몇 가지 예를 들자면, Core i5 및 i7은 데이터에 대해 8방향 연관성이 있는 32KB의 L1 캐시를 사용하고 명령에 대해 4방향 연관성이 있는 32KB의 L1 캐시를 사용합니다. 인텔이 명령을 더 빨리 사용할 수 있기를 원하고 데이터용 L1 캐시에 최대 적중률이 있다는 것은 이해할 수 있습니다. L2 캐시 인텔 프로세서 8방향 연관성이 있으며 인텔의 L3 캐시는 히트를 최대화하기 위해 16방향 연관성을 구현하므로 훨씬 더 똑똑합니다.

그러나 AMD는 대기 시간을 줄이기 위해 양방향 연관성이 있는 L1 캐시를 사용하는 Phenom II X4 프로세서로 다른 전략을 추구하고 있습니다. 누락 가능성을 보완하기 위해 캐시 용량이 두 배로 늘어났습니다. 데이터용 64KB, 명령어용 64KB입니다. L2 캐시는 Intel 디자인과 같이 8방향 연관성이 있지만 AMD의 L3 캐시는 48방향 연관성으로 작동합니다. 그러나 하나의 캐시 아키텍처 또는 다른 캐시 아키텍처를 선택하는 결정은 전체 CPU 아키텍처를 고려하지 않고 판단할 수 없습니다. 테스트 결과가 실제적으로 중요하다는 것은 매우 자연스러운 일이며 우리의 목표는 이 복잡한 다단계 캐싱 구조 전체에 대한 실제 테스트일 뿐입니다.

모든 최신 프로세서에는 프로세서의 명령과 데이터를 저장하는 전용 캐시가 있어 거의 즉시 사용할 수 있습니다. 이 수준은 일반적으로 첫 번째 캐시 수준 또는 L1이라고 하며 486DX 프로세서와 함께 처음 도입되었습니다. 최근 AMD 프로세서는 코어당 64k L1 캐시(데이터 및 명령어용)를 사용하도록 표준화된 반면 Intel 프로세서는 코어당 32k L1 캐시(데이터 및 명령어용으로도 사용)를 사용합니다.

첫 번째 레벨 캐시는 486DX 프로세서에 처음 등장한 후 복합 함수모든 최신 CPU.

두 번째 레벨(L2) 캐시는 Pentium III 출시 이후 모든 프로세서에 나타났지만 패키지의 첫 번째 구현은 Pentium Pro 프로세서에 있었지만 칩에는 없었습니다. 최신 프로세서에는 최대 6MB의 온칩 L2 캐시가 장착되어 있습니다. 일반적으로 이러한 볼륨은 프로세서의 두 코어로 나뉩니다. 인텔 코어예를 들어 2 듀오. 일반 L2 구성은 코어당 512KB 또는 1MB의 캐시를 제공합니다. L2 캐시가 더 작은 프로세서는 더 낮은 가격 계층에 속하는 경향이 있습니다. 아래는 초기 L2 캐시 구현의 다이어그램입니다.

Pentium Pro에는 프로세서 패키지에 L2 캐시가 있습니다. Pentium III 및 Athlon의 후속 세대는 별도의 SRAM 칩을 통해 L2 캐시를 구현했는데 이는 당시에 매우 일반적이었습니다(1998, 1999).

최대 180nm 공정 기술의 후속 발표로 제조업체는 마침내 프로세서 다이에 L2 캐시를 통합할 수 있었습니다.


초기 듀얼 코어 프로세서는 패키지에 2개의 다이를 설치할 때 단순히 기존 설계를 사용했습니다. AMD는 모놀리식 다이에 듀얼 코어 프로세서를 도입하고 메모리 컨트롤러와 스위치를 추가했으며 인텔은 첫 번째 듀얼 코어 프로세서를 위해 단일 패키지에 두 개의 싱글 코어 다이를 조립했습니다.


처음으로 L2 캐시가 2개의 컴퓨팅 코어 간에 공유되기 시작했습니다. 코어 프로세서 2 듀오. AMD는 더 나아가서 처음부터 첫 번째 쿼드 코어 Phenom을 구축했으며 Intel은 비용을 낮추기 위해 첫 번째 쿼드 코어 프로세서에 두 개의 다이를 사용했으며 이번에는 두 개의 듀얼 코어 Core 2 다이를 사용했습니다.

L3 캐시는 Alpha 21165 프로세서(96kB, 1995년 도입) 또는 IBM Power 4(256kB, 2001년) 초기부터 존재했습니다. 그러나 x86 기반 아키텍처에서 L3 캐시는 인텔 모델 Itanium 2, Pentium 4 Extreme(Gallatin, 2003년 두 프로세서 모두) 및 Xeon MP(2006년).

현대 아키텍처는 L3 캐시를 코어 간의 데이터 교환을 위한 대규모 공유 버퍼로 사용하지만 첫 번째 구현은 캐시 계층 구조에서 또 다른 수준을 제공했습니다. 멀티 코어 프로세서. 이것은 또한 높은 n차 연관성에 의해 강조됩니다. 여러 코어가 주 RAM에 매우 느린 액세스를 사용하는 상황을 얻는 것보다 캐시에서 데이터를 조금 더 오래 찾는 것이 좋습니다. AMD는 이미 언급한 Phenom 라인과 함께 데스크탑 프로세서에 L3 캐시를 처음 도입했습니다. 65nm Phenom X4에는 2MB의 공유 L3 캐시가 포함되어 있는 반면 현재 45nm Phenom II X4에는 6MB의 공유 L3 캐시가 있습니다. Intel Core i7 및 i5 프로세서는 8MB의 L3 캐시를 사용합니다.

최신 쿼드 코어 프로세서에는 각 코어에 대한 전용 L1 및 L2 캐시와 모든 코어가 공유하는 대용량 L3 캐시가 있습니다. 일반 캐시 L3는 또한 코어가 병렬로 작업할 수 있는 데이터 교환을 허용합니다.


다양한 작업을 수행할 때 RAM에서 필요한 정보 블록이 컴퓨터 프로세서에서 수신됩니다. 처리 후 CPU는 계산 결과를 메모리에 쓰고 처리를 위해 후속 데이터 블록을 수신합니다. 이것은 작업이 완료될 때까지 계속됩니다.

위의 프로세스는 매우 빠른 속도로 수행됩니다. 그러나 가장 빠른 RAM의 속도도 약한 프로세서의 속도보다 훨씬 낮습니다. 정보를 기록하거나 정보를 읽는 각 작업에는 많은 시간이 걸립니다. RAM의 속도는 프로세서의 속도보다 10배 낮습니다.

이러한 정보 처리 속도의 차이에도 불구하고 PC 프로세서는 유휴 상태가 아니며 RAM이 데이터를 발행하고 수신할 때까지 기다리지 않습니다. 프로세서는 캐시 메모리가 있기 때문에 항상 작동합니다.

캐시는 특별한 종류의 RAM입니다. 프로세서는 캐시 메모리를 사용하여 가까운 장래에 액세스할 가능성이 있는 컴퓨터의 주 RAM 정보 사본을 저장합니다.

본질적으로 캐시 메모리는 프로세서에 필요할 수 있는 정보를 저장하는 고속 메모리 버퍼 역할을 합니다. 따라서 프로세서는 필요한 데이터를 RAM에서 읽을 때보다 10배 빠르게 수신합니다.

캐시 메모리와 일반 버퍼의 주요 차이점은 내장된 논리 기능입니다. 버퍼는 무작위 데이터를 저장하며 일반적으로 "최초 수신, 최초 발행" 또는 "최초 수신, 마지막 발행" 방식에 따라 처리됩니다. 캐시에는 가까운 장래에 액세스할 가능성이 있는 데이터가 포함되어 있습니다. 따라서 "스마트 캐시" 덕분에 프로세서는 최고 속도로 실행되고 느린 RAM에서 데이터가 검색될 때까지 기다리지 않아도 됩니다.

L1 L2 L3 캐시의 주요 유형 및 수준

캐시 메모리는 SRAM(Static Random Access Memory) 칩의 형태로 만들어집니다. 시스템 보드또는 프로세서에 내장되어 있습니다. 다른 유형의 메모리와 비교할 때 정적 메모리는 매우 빠른 속도로 작동할 수 있습니다.

캐시 속도는 특정 칩의 볼륨에 따라 다르며, 칩의 볼륨이 클수록 달성하기가 더 어렵습니다. 고속그녀의 일을 위해. 이 기능이 주어지면 프로세서 캐시 메모리는 레벨이라고 하는 여러 개의 작은 블록 형태로 수행됩니다. 오늘날 가장 일반적인 것은 3단계 캐시 시스템 L1, L2, L3입니다.

첫 번째 레벨 L1의 캐시 메모리 - 볼륨은 가장 작지만(수십 킬로바이트에 불과), 속도는 가장 빠르고 가장 중요합니다. 프로세서에서 가장 자주 사용하는 데이터가 포함되어 있으며 지연 없이 실행됩니다. 일반적으로 L1 메모리 칩의 수는 프로세서 코어의 수와 동일하며 각 코어는 자체 L1 칩에만 액세스합니다.

L2 캐시 L1 메모리에 비해 속도는 떨어지지만 이미 수백 킬로바이트 단위로 측정되는 볼륨에서는 우위를 점하고 있다. 임시 보관용입니다. 중요한 정보, L1 캐시에 저장된 정보보다 접근 확률이 낮다.

3단계 L3 캐시 - 세 가지 수준 중 가장 큰 볼륨(수십 메가바이트에 도달할 수 있음)을 가지고 있지만 가장 느린 속도를 가지며 여전히 RAM 속도보다 훨씬 높습니다. L3 캐시는 모든 프로세서 코어에서 공유됩니다. 메모리 레벨 L3은 중요한 데이터를 임시로 저장하기 위한 것으로 처음 두 레벨 L1, L2에 저장된 정보보다 액세스 확률이 약간 낮습니다. 또한 프로세서 코어 간의 상호 작용을 보장합니다.

일부 프로세서 모델은 L2가 L2와 L3의 모든 기능을 결합한 두 가지 수준의 캐시 메모리로 만들어집니다.

많은 양의 캐시가 유용할 때.

3D 게임, 비디오 처리 및 인코딩 중에 아카이버 프로그램을 사용하면 대용량 캐시에서 상당한 효과를 느낄 수 있습니다. 상대적으로 "가벼운" 프로그램 및 응용 프로그램에서는 차이가 거의 눈에 띄지 않습니다( 사무 프로그램, 플레이어 등).

모든 사용자는 데이터 처리를 담당하는 프로세서와 데이터 저장을 담당하는 랜덤 액세스 메모리(RAM 또는 RAM)와 같은 컴퓨터의 이러한 요소를 잘 알고 있습니다. 그러나 모든 사람이 프로세서 캐시(캐시 CPU), 즉 프로세서 자체의 RAM(소위 슈퍼 RAM 메모리)이 있다는 것을 아는 것은 아닙니다.

컴퓨터 개발자가 프로세서에 특수 메모리를 사용하도록 유도한 이유는 무엇입니까? 컴퓨터에 RAM이 충분하지 않습니까?

진짜, 오랫동안개인용 컴퓨터는 캐시 메모리가 없었습니다. 그러나 아시다시피 프로세서는 개인용 컴퓨터에서 가장 빠른 장치이며 CPU의 새로운 세대가 나올 때마다 속도가 빨라졌습니다. 현재 그 속도는 초당 수십억 번의 작업으로 측정됩니다. 동시에 표준 RAM은 진화 과정에서 성능이 크게 향상되지 않았습니다.

일반적으로 메모리 칩에는 정적 메모리와 동적 메모리의 두 가지 주요 기술이 있습니다. 구조의 세부 사항을 탐구하지 않고 정적 메모리는 동적 메모리와 달리 재생성을 필요로 하지 않는다는 것만 말할 것입니다. 또한 4~8개의 트랜지스터는 정적 메모리의 1비트 정보에 사용되는 반면 1~2개의 트랜지스터는 동적 메모리에 사용됩니다. 따라서 동적 메모리는 정적 메모리보다 훨씬 저렴하지만 동시에 훨씬 느립니다. 현재 RAM 칩은 동적 메모리를 기반으로 제조됩니다.

프로세서와 RAM의 속도 비율의 대략적인 진화:

따라서 프로세서가 항상 RAM에서 정보를 가져오면 느린 시간을 기다려야 합니다. 동적 메모리, 그리고 그는 항상 유휴 상태일 것입니다. 같은 경우 정적 메모리를 RAM으로 사용하면 컴퓨터 비용이 몇 배나 증가합니다.

그래서 합리적인 타협안이 개발되었습니다. RAM의 주요 부분은 동적 상태를 유지하는 반면 프로세서는 정적 메모리 칩을 기반으로 하는 자체 빠른 캐시를 갖습니다. 그 볼륨은 상대적으로 작습니다. 예를 들어 L2 캐시의 볼륨은 몇 메가바이트에 불과합니다. 그러나 여기서 첫 번째 RAM의 모든 RAM이 IBM 컴퓨터 PC는 1MB 미만이었습니다.

또한 캐싱 기술 도입의 용이성은 다음과 같은 요인에 의해 영향을 받습니다. 다른 응용 프로그램, RAM에 있는 프로세서는 다른 방식으로 프로세서를 로드하며, 결과적으로 나머지 데이터에 비해 우선 처리해야 하는 데이터가 많습니다.

캐시의 역사

엄밀히 말하면 캐시 메모리가 개인용 컴퓨터로 이동하기 전에 수십 년 동안 슈퍼 컴퓨터에서 성공적으로 사용되었습니다.

처음으로 16KB의 캐시 메모리가 i80386 프로세서 기반 PC에 등장했습니다. 오늘날의 프로세서는 첫 번째(가장 작은 크기의 가장 빠른 캐시 - 일반적으로 128KB)에서 세 번째(가장 큰 크기의 가장 느린 캐시 - 최대 수십 MB)까지 다양한 수준의 캐시를 사용합니다.

처음에는 프로세서의 외부 캐시 메모리가 별도의 칩에 있었습니다. 그러나 시간이 지남에 따라 캐시와 프로세서 사이에 위치한 버스가 병목 현상이 발생하여 데이터 교환 속도가 느려졌습니다. 최신 마이크로프로세서에서 캐시 메모리의 첫 번째 및 두 번째 레벨은 모두 프로세서 코어 자체에 있습니다.

오랫동안 프로세서에는 두 가지 수준의 캐시만 있었지만 Intel Itanium CPU에서는 처음으로 모든 프로세서 코어에 공통적인 3단계 캐시가 등장했습니다. 4단계 캐시가 있는 프로세서도 개발되었습니다.

캐시 작동의 아키텍처 및 원리

현재까지 두 가지 주요 유형의 캐시 메모리 구성이 알려져 있으며, 이는 사이버네틱스 분야의 첫 번째 이론적 개발인 프린스턴 및 하버드 아키텍처에서 비롯됩니다. Princeton 아키텍처는 데이터와 명령을 저장하기 위한 단일 메모리 공간을 의미하는 반면 Harvard 아키텍처에는 별도의 메모리 공간이 있습니다. 대부분의 프로세서 개인용 컴퓨터 x86 라인은 별도의 캐시 유형을 사용합니다. 게다가 에 현대 프로세서세 번째 유형의 캐시도 나타났습니다 - 주소 변환 속도를 높이기 위해 설계된 소위 연관 변환 버퍼 가상 메모리운영 체제를 물리적 메모리 주소로

캐시 메모리와 프로세서 간의 상호 작용 방식을 단순화하면 다음과 같이 설명할 수 있습니다. 첫째, 프로세서에 필요한 정보의 존재 여부는 가장 빠른 첫 번째 수준 캐시에서 확인된 다음 두 번째 수준 캐시에서 확인하는 식으로 진행됩니다. 만약에 필요한 정보어떤 수준에도 캐시가 없으면 오류 또는 캐시 누락에 대해 말합니다. 캐시에 정보가 전혀 없는 경우 프로세서는 RAM에서 정보를 가져와야 합니다. 외부 메모리(와 함께 하드 드라이브).

프로세서가 메모리에서 정보를 검색하는 순서:

프로세서가 정보를 검색하는 방법입니다.

캐시 메모리의 작동과 프로세서의 컴퓨팅 장치 및 RAM과의 상호 작용을 제어하기 위해 특수 컨트롤러가 있습니다.

프로세서 코어, 캐시 및 RAM의 상호 작용 구성 체계:

캐시 컨트롤러는 프로세서, RAM 및 캐시 간의 핵심 링크입니다.

데이터 캐싱은 많은 기술과 수학적 알고리즘을 사용하는 복잡한 프로세스입니다. 캐싱에 사용되는 기본 개념 중 캐시를 작성하는 방법과 캐시 메모리 연관성 아키텍처를 꼽을 수 있습니다.

캐시 쓰기 방법

캐시에 정보를 쓰는 두 가지 주요 방법이 있습니다.

  1. 후기입 방식(역쓰기) - 데이터가 먼저 캐시에 기록된 다음 특정 조건, 그리고 RAM에서.
  2. 연속 기입 방법(쓰기를 통해) - 데이터가 RAM과 캐시에 동시에 기록됩니다.

캐시 연관성 아키텍처

캐시 연관성 아키텍처는 RAM의 데이터가 캐시에 매핑되는 방식을 정의합니다. 캐싱 연관성 아키텍처에는 다음과 같은 주요 변형이 있습니다.

  1. 직접 매핑된 캐시 - 캐시의 특정 영역이 RAM의 특정 영역을 담당합니다.
  2. 완전 연관 캐시 - 모든 캐시 영역은 모든 RAM 영역과 연관될 수 있습니다.
  3. 혼합 캐시(세트 연관)

다른 캐시 연관성 아키텍처는 일반적으로 다른 캐시 수준에서 사용할 수 있습니다. 직접 RAM 매핑된 캐싱은 가장 빠른 캐싱 옵션이므로 이 아키텍처는 일반적으로 대용량 캐시에 사용됩니다. 결과적으로 완전 연관 캐시는 캐시 오류(실패)가 더 적습니다.

결론

이 기사에서는 캐시 메모리의 개념, 캐시 메모리 아키텍처 및 캐싱 방법에 대해 알게 되었고 이것이 현대 컴퓨터의 성능에 어떤 영향을 미치는지 배웠습니다. 캐시 메모리가 있으면 프로세서의 성능을 크게 최적화하고 유휴 시간을 줄이며 결과적으로 전체 시스템의 성능을 높일 수 있습니다.

90년대 후반 이후의 모든 프로세서에는 내부 캐시(또는 그냥 캐시)가 있습니다. 캐시는 프로세서에서 직접 처리되는 명령과 데이터를 전송하는 고속 메모리입니다.

최신 프로세서에는 첫 번째(L1)와 두 번째(L2) 레벨의 캐시 메모리가 내장되어 있습니다. L1 캐시의 내용으로 프로세서는 다소 빠르며 L2 캐시는 일반적으로 약간 더 큽니다. 캐시 메모리는 대기 상태 없이 액세스됩니다. 첫 번째 수준 캐시(온칩 캐시)는 프로세서와 동일한 주파수에서 실행됩니다.

즉, 프로세서에 필요한 데이터가 캐시에 있으면 처리에 지연이 없습니다. 그렇지 않으면 프로세서가 주 메모리에서 데이터를 가져와야 하므로 시스템 성능이 크게 저하됩니다.

양 수준의 캐시 메모리 동작 원리를 질적으로 이해하기 위해 국내 상황을 예로 들어 살펴보자.

당신은 매일 같은 시간에 점심을 먹으러 카페에 와서 항상 같은 테이블에 앉습니다. 항상 주문 표준 세트세 코스에서.

웨이터가 주방으로 달려가면 셰프가 쟁반에 올려 주문한 음식을 가져옵니다. 그래서 3일째 되는 날 웨이터가 다시는 부엌으로 달려가지 않기 위해 쟁반에 준비된 따끈한 점심을 들고 약속된 시간에 당신을 만납니다.

주문을 기다리지 않고 많은 시간을 절약할 수 있습니다. 접시가 담긴 트레이는 첫 번째 레벨 캐시입니다. 그러나 넷째 날 갑자기 다른 요리를 추가하고 싶어집니다. 예를 들어 디저트를 가정해 봅시다.

주문한 쟁반이 약속된 시간에 이미 당신을 기다리고 있었지만, 웨이터는 여전히 디저트를 사러 부엌으로 달려가야 했습니다.

그리고 다섯 번째에는 다시 세 가지 항목의 메뉴가 있습니다. 여섯 번째 - 다시 디저트이지만 이전 디저트와 다릅니다. 그리고 웨이터는 어떤 종류의 디저트를 주문하고 싶은지 모르고(그리고 무엇을 주문할지 전혀 알지 못하는 상태에서) 다음 단계를 수행하기로 결정합니다. 테이블 옆에 여러 종류의 디저트가 담긴 캐비닛을 둡니다.

그리고 원하는 것을 표현하면 모든 것이 준비되어 있으므로 부엌으로 달려갈 필요가 없습니다. 디저트 보관함은 2단계 캐시입니다.

L1 캐시(16~128KB) 및 L2(64KB~512KB, Pentium III Cheop 및 AMD Opteron에서 최대 4MB)의 크기는 프로세서 성능에 상당한 영향을 미칩니다.

Intel Pentium III 프로세서 및 이를 기반으로 하는 Celeron 프로세서의 L1 캐시 크기는 32KB입니다. Intel Pentium 4와 이를 기반으로 하는 Celeron 및 Cheop 버전의 용량은 20KB에 불과합니다. AMD 프로세서 Duron, Athlon(XP/MP 포함) 및 Opteron 및 VIA S3에는 128KB의 L1 캐시가 포함되어 있습니다.

최신 듀얼 코어 프로세서에는 각 코어에 대해 개별적으로 1단계 캐시가 있으므로 때때로 캐시 설명에서 128x2라는 숫자를 볼 수 있습니다. 이는 각 프로세서 코어에 128KB의 L1 캐시가 있음을 의미합니다.

L1 캐시 크기는 대부분의 일반적인 작업에서 고성능을 얻는 데 중요합니다( 사무용 애플리케이션, 게임, 대부분의 서버 응용 프로그램 등). 그 효과는 스트리밍 계산(예: 비디오 이미지 처리)에서 특히 두드러집니다.

이것은 Pentium 4가 대부분의 일반적인 응용 프로그램에서 상대적으로 비효율적인 이유 중 하나입니다(높은 클럭 속도로 보상되지만). L1 캐시는 항상 프로세서의 내부 주파수에서 작동합니다(프로세서 코어와 정보 교환).

이에 반해 L2 캐시는 다른 모델프로세서는 서로 다른 주파수(및 그에 따른 성능)에서 작동합니다. Intel Pentium II부터 많은 프로세서가 프로세서 내부 주파수의 절반으로 실행되는 L2 캐시를 사용했습니다.

이 솔루션은 오래된 Intel Pentium III 프로세서(최대 550MHz) 및 오래된 AMD Athlon 프로세서(일부에서는 내부 L2 캐시가 프로세서 코어 주파수의 1/3에서 작동함)에 사용됩니다. L2 캐시의 양은 프로세서마다 다릅니다.

이전 및 일부 최신 Intel Pentium III 프로세서에는 512KB L2 캐시가 있는 반면 다른 Pentium III에는 256KB가 있습니다. 펜티엄 III 기반 인텔 셀러론 프로세서는 128KB 및 256KB의 L2 캐시와 함께 제공되는 반면 펜티엄 4 기반 프로세서는 128KB만 제공합니다. Intel Pentium 4의 다양한 Xeon 버전에는 최대 4MB의 L2 캐시가 있습니다.

새로운 Pentium 4 프로세서(일부 시리즈는 주파수가 2000MHz이고 모두 더 높은 주파수용)에는 512KB의 L2 캐시가 있고 나머지 Pentium 4에는 256KB가 있습니다. Cheop 프로세서(Pentium 4 기반)에는 256 또는 512KB의 L2 캐시가 있습니다.

또한 세 번째 레벨 L3의 캐시 메모리도 있습니다. 고속 시스템 버스와 결합된 통합 L3 캐시는 시스템 메모리에 대한 고속 데이터 링크를 형성합니다.

일반적으로 서버 솔루션용 프로세서 또는 "데스크톱" 프로세서의 특수 모델에만 L3 캐시 메모리가 장착되어 있습니다. L3 캐시 메모리는 예를 들어 Xeon DP, Itanium 2, Xeon MP와 같은 프로세서 라인에 의해 소유됩니다.

AMD Duron 프로세서에는 128KB L1 캐시와 64KB L2 캐시가 있습니다. Athlon 프로세서(이전 프로세서 제외), Athlon MP 및 대부분의 Athlon XP 변형에는 128KB L1 캐시와 256KB L2 캐시가 있으며 최신 Athlon XP(2500+, 2800+, 3000+ 이상)에는 512KB L2 캐시가 있습니다. . AMD Opteron에는 1MB의 L2 캐시가 포함되어 있습니다.

Intel Pentium D, Intel Pentium M, Intel Core 2 Duo 프로세서의 최신 모델에는 6MB L2 캐시와 Core 2 Quad(12MB L2 캐시)가 있습니다.

이 글을 쓰는 현재 최신 Intel Core i7 프로세서에는 4개의 코어 각각에 대해 64KB의 L1 캐시가 있고 각 코어에 대해 256KB의 L2 메모리가 있습니다. 첫 번째 및 두 번째 수준의 캐시 메모리 외에도 프로세서에는 8MB와 같은 세 번째 수준의 모든 코어에 대한 공통 캐시가 있습니다.

다른 L2 캐시 크기를 가질 수 있는 프로세서의 경우(또는 인텔 제온 MP - L3) 같은 모델의 경우 판매 시 이 크기를 지정해야 합니다(물론 프로세서 가격은 이에 따라 다름). 프로세서가 "박스형" 패키지(인박스 배송)로 판매되는 경우 일반적으로 캐시 크기를 나타냅니다.

일반 사용자 작업(게임 포함)의 경우 L2 캐시의 크기보다 속도가 더 중요합니다. 반대로 서버 작업의 경우 볼륨이 더 중요합니다. 가장 생산적인 서버, 특히 대용량 RAM(수 기가바이트)이 있는 서버는 최대 용량과 최고 속도 L2 캐시.

펜티엄 III 프로세서의 Cheop 버전은 이러한 매개변수에서 타의 추종을 불허합니다. ( 제온 프로세서 MP는 프로세서 자체와 메모리 버스의 더 높은 클럭 주파수로 인해 펜티엄 III 제온보다 서버 작업에서 여전히 더 생산적이며 데이터 처리 중에 발생하는 대기 시간을 최소화할 수 있습니다. 여기서 결정적인 역할은 프로세서 칩에 있는 2차 캐시 메모리에 의해 수행됩니다.

컴퓨터에서 가장 더러운 곳은? 바구니를 생각하십니까? 사용자 폴더? 냉각 시스템? 추측하지 않았다! 가장 더러운 곳은 캐시입니다! 결국, 그것은 끊임없이 청소해야합니다!

실제로 컴퓨터에는 많은 캐시가 있으며 폐기물 덤프가 아니라 장비 및 응용 프로그램의 가속기 역할을 합니다. "체계적인 쓰레기 낙하산"이라는 명성은 어디에서 왔습니까? 캐시가 무엇인지, 어떻게 발생하는지, 어떻게 작동하는지, 그리고 때때로 그 이유를 살펴보겠습니다.

캐시 메모리의 개념과 유형

Esh 또는 캐시 메모리는 자주 사용되는 데이터의 특수 저장소로, RAM 또는 기타 저장 매체보다 수십, 수백, 수천 배 빠르게 액세스됩니다.

애플리케이션(웹 브라우저, 오디오 및 비디오 플레이어, 데이터베이스 편집기 등), 운영 체제 구성 요소(썸네일 캐시, DNS 캐시) 및 하드웨어(CPU L1-L3 캐시, GPU 프레임 버퍼 등)에는 자체 캐시 메모리가 있습니다. 칩, 드라이브 버퍼). 소프트웨어 및 하드웨어와 같은 다양한 방식으로 구현됩니다.

  • 프로그램 캐시는 예를 들어 방문한 사이트의 사진, 메뉴, 스크립트, 멀티미디어 콘텐츠 및 기타 콘텐츠가 다운로드되는 별도의 폴더 또는 파일입니다. 이것은 웹 페이지를 다시 열 때 브라우저가 처음으로 잠수하는 폴더입니다. 일부 콘텐츠 교환 로컬 스토리지로딩 속도를 높이고 .

  • 특히 하드 드라이브에서 캐시는 전자 보드에 위치한 1-256Mb 용량의 별도 RAM 칩입니다. 자성층에서 읽은 정보 중 RAM에 아직 로드되지 않은 정보와 가장 자주 요청되는 데이터를 수신합니다. 운영 체제.

  • 현대의 CPU동일한 칩에 하드웨어 모듈 형태로 배치된 2-3개의 기본 수준 캐시 메모리(초고속 메모리라고도 함)를 포함합니다. 가장 빠르고 가장 작은 볼륨(32-64Kb)은 캐시 레벨 1(L1)이며 프로세서와 동일한 주파수에서 실행됩니다. L2는 속도와 용량 면에서 중간 위치에 있습니다(128Kb ~ 12Mb). 그리고 L3는 가장 느리고 볼륨이 가장 크며(최대 40Mb) 일부 모델에는 없습니다. L3의 속도는 더 빠른 속도에 비해 낮지만 가장 생산적인 RAM보다 수백 배 빠릅니다.

프로세서의 스크래치 패드 메모리는 지속적으로 사용되는 데이터, RAM에서 펌핑된 데이터 및 기계어 코드 명령을 저장하는 데 사용됩니다. 클수록 프로세서가 빨라집니다.

오늘날 캐싱의 세 가지 수준은 더 이상 제한이 없습니다. Sandy Bridge 아키텍처의 도래와 함께 Intel은 제품에 추가 캐시 L0(복호화된 마이크로 명령 저장용)을 구현했습니다. 그리고 가장 고성능의 CPU에는 별도의 마이크로 회로 형태로 만들어진 4단계 캐시도 있습니다.

도식적으로 캐시 L0-L3 레벨의 상호 작용은 다음과 같습니다(예: Intel Xeon).

모든 것이 어떻게 작동하는지에 대한 인간의 언어

캐시 메모리가 작동하는 방식을 이해하려면 책상에서 일하는 사람을 상상해 보십시오. 그가 항상 사용하는 폴더와 문서는 테이블( 캐시에). 액세스하려면 손을 내밀기만 하면 됩니다.

덜 자주 필요로 하는 서류는 선반 근처에 보관됩니다( 램에서). 그것들을 얻으려면 일어나서 몇 미터를 걸어야합니다. 그리고 사람이 현재 작업하지 않는 것은 아카이브되었습니다 ( 하드 디스크에 기록).

테이블이 넓을수록 더 많은 문서가 들어갈 수 있으므로 직원이받을 수 있음을 의미합니다. 빠른 액세스더 많은 정보로 캐시 용량이 클수록 이론적으로 프로그램이나 장치가 더 빨리 작동합니다.).

때때로 그는 실수를 합니다. 그는 잘못된 정보가 포함된 종이를 테이블에 보관하고 작업에 사용합니다. 결과적으로 작업의 품질이 저하됩니다( 캐시 오류는 소프트웨어 및 하드웨어 오류로 이어집니다.). 상황을 바로 잡기 위해 직원은 오류가 있는 문서를 버리고 올바른 문서를 제자리에 넣어야 합니다( 캐시 메모리 지우기).

테이블은 제한된 영역( 캐시 메모리가 제한됨). 예를 들어 두 번째 테이블을 이동하여 확장할 수 있는 경우도 있고 확장할 수 없는 경우도 있습니다(프로그램에서 이러한 기회를 제공하면 캐시 크기를 늘릴 수 있습니다. 하드웨어 캐시는 하드웨어로 구현되므로 변경할 수 없음) .

테이블이 담을 수 있는 것보다 더 많은 문서에 대한 액세스 속도를 높이는 또 다른 방법은 선반에서 작업자에게 종이를 제공할 조수를 찾는 것입니다(운영 체제는 사용되지 않는 RAM 중 일부를 장치 데이터 캐시에 할당할 수 있음). 그러나 테이블에서 그들을 제거하는 것보다 여전히 느립니다.

손에 들고 있는 문서는 현재 작업과 관련이 있어야 합니다. 이것은 직원 자신의 책임입니다. 정기적으로 문서를 정리해야 합니다(캐시 메모리에서 관련 없는 데이터의 압출은 이를 사용하는 응용 프로그램의 "어깨"에 해당하며 일부 프로그램에는 자동 캐시 지우기 기능이 있습니다).

직원이 작업장에서 질서를 유지하고 문서를 최신 상태로 유지하는 것을 잊어버린 경우, 그는 스스로 테이블 청소 일정을 그려 알림으로 사용할 수 있습니다. 최후의 수단으로 이를 보조자에게 맡기십시오(캐시 메모리에 의존하는 응용 프로그램이 느려지거나 오래된 데이터를 자주 로드하는 경우 예약된 캐시 정리 도구를 사용하거나 며칠에 한 번씩 수동으로 이 작업을 수행하십시오).

우리는 실제로 "캐싱 기능"을 여기저기서 접하게 됩니다. 이것은 미래를 위한 제품의 구매이며, 우리가 지나가는 다양한 행동을 동시에 수행하는 등입니다. 사실 이것이 우리를 불필요한 소란과 불필요한 신체 움직임으로부터 구하고, 삶을 합리화하고, 일을 용이하게 하는 모든 것입니다. 컴퓨터도 마찬가지입니다. 한마디로 캐시가 없다면 수백, 수천 배는 더 느리게 작동할 것입니다. 그리고 우리는 그것을 좋아하지 않을 것입니다.

사이트에 대한 추가 정보:

캐시 란 무엇이며 왜 필요하며 어떻게 작동합니까?업데이트: 2017년 2월 25일 작성자: 조니 니모닉