컴퓨터에서 정확히 L1, L2 및 L3 캐시가 어디에 있습니까?


32

정확히 L1, L2 및 L3 캐시가 컴퓨터의 어디에 있습니까?

우리는 캐시를 사용하여 주 메모리 대신 캐시에서 DATA 및 INSTRUCTIONS를 선택하여 성능을 향상시킵니다.

다음은 내 질문입니다

  1. 정확히 L1 캐시는 어디에 있습니까? . CPU 칩에 있습니까?
  2. 정확히 L2 캐시는 어디에 있습니까?

  3. 정확히 L3 캐시는 어디에 있습니까? 마더 보드에 있습니까?

최신 SMP 프로세서는 3 단계 캐시를 사용하므로 캐시 수준 계층과 아키텍처를 이해하고 싶습니다.


1
정확한 계층 구조는 프로세서마다 다릅니다. 자신의 컴퓨터에서 캐시 계층을 찾으려면 SysInternal의 CoreInfo.exe 유틸리티 ( technet.microsoft.com/en-us/sysinternals/cc835722.aspx )를 사용할 수 있습니다.

2
또한 캐시 자체가 커질수록 (L3> L2> 1) 코어 자체에서 멀수록 멀어집니다 (예 : L3에 대한 액세스 대기 시간이 L1보다 높음).

답변:


48

이것으로 시작하자 :

최신 SMP 프로세서는 3 단계 캐시를 사용하므로 캐시 수준 계층과 아키텍처를 이해하고 싶습니다.

캐시를 이해하려면 몇 가지 사항을 알아야합니다.

CPU에는 레지스터가 있습니다. 그 값을 직접 사용할 수 있습니다. 더 빠른 것은 없습니다.

그러나 칩에 무한 레지스터를 추가 할 수는 없습니다. 이것들은 공간을 차지합니다. 칩을 크게하면 더 비싸집니다. 그 중 일부는 더 큰 칩 (더 많은 실리콘)이 필요하기 때문에 문제가있는 칩의 수가 증가하기 때문입니다.

(이미지 500cm와 가상의 웨이퍼 2 . 나는 그것에서 각 칩 50cm (10 개) 칩을 잘라 2 . 그 중 하나가 나뉩니다. 크기가 나는 그것을 버리고 난 9 일 개 칩을 왼쪽으로하고있다. 지금 같은 웨이퍼와 I 컷을 각각 10 배씩 작은 칩 100 개로 고장난 경우 그 중 하나 칩 칩을 버리고 99 개의 작동 칩이 남게되는데 이는 다른 손해로 인한 손실의 일부입니다. 칩은 더 높은 가격을 요구해야 할 것이다.

이것이 우리가 작고 저렴한 칩을 원하는 이유 중 하나입니다.

그러나 캐시가 CPU에 가까울수록 더 빠르게 액세스 할 수 있습니다.

이것은 또한 설명하기 쉽다; 전기 신호는 광속 근처로 이동합니다. 그것은 빠르지 만 여전히 유한 속도입니다. 최신 CPU는 GHz 시계와 함께 작동합니다. 또한 빠릅니다. 4GHz CPU를 사용하면 전기 신호가 클럭 틱당 약 7.5cm 이동할 수 있습니다. 직선으로 7.5cm입니다. (칩은 직선 연결 이외의 것입니다). 실제로 칩이 요청 된 데이터를 표시하고 신호가 다시 이동할 수있는 시간을 허용하지 않기 때문에 7.5cm보다 훨씬 작아야합니다.

결론적으로, 우리는 캐시를 가능한 한 물리적으로 가깝게 만들고 싶습니다. 큰 칩을 의미합니다.

이 두 가지의 균형을 유지해야합니다 (성능 대 비용).

컴퓨터에서 L1, L2 및 L3 캐시는 정확히 어디에 있습니까?

PC 스타일의 하드웨어 만 가정 (성능 대 비용 균형을 포함하여 메인 프레임은 상당히 다릅니다).

IBM XT
원래 4.77Mhz 1 : 캐시 없음. CPU가 메모리에 직접 액세스합니다. 메모리에서 읽은 패턴은 다음과 같습니다.

  • CPU는 메모리 버스에서 읽고 자하는 주소를 넣고 읽기 플래그를 지정합니다.
  • 메모리는 데이터를 데이터 버스에 넣습니다.
  • CPU는 데이터 버스에서 내부 레지스터로 데이터를 복사합니다.

80286 (1982)
여전히 캐시가 없습니다. 메모리 액세스는 저속 버전 (6Mhz)에는 큰 문제가 아니었지만 더 빠른 모델은 최대 20Mhz까지 실행되었으며 종종 메모리에 액세스 할 때 지연해야했습니다.

그러면 다음과 같은 시나리오가 나타납니다.

  • CPU는 메모리 버스에서 읽고 자하는 주소를 넣고 읽기 플래그를 지정합니다.
  • 메모리가 데이터를 데이터 버스에 놓기 시작합니다. CPU가 기다립니다.
  • 메모리가 데이터 가져 오기를 완료했으며 이제 데이터 버스에서 안정적입니다.
  • CPU는 데이터 버스에서 내부 레지스터로 데이터를 복사합니다.

그것은 메모리를 기다리는 데 필요한 추가 단계입니다. 쉽게 12 단계가 될 수있는 최신 시스템에서 캐시를 사용하는 이유 입니다.

80386 : (1985)
CPU가 더 빨라집니다. 클럭 당 및 더 높은 클럭 속도로 실행합니다.
RAM은 더 빠르지 만 CPU만큼 빠르지는 않습니다.
결과적으로 더 많은 대기 상태가 필요합니다. 일부 마더 보드 캐시를 추가하여이 문제를 해결 (즉 한 것 번째 마더 보드 레벨 캐시).

메모리에서 읽기는 이제 데이터가 이미 캐시에 있는지 확인하는 것으로 시작합니다. 그렇다면 훨씬 빠른 캐시에서 읽습니다. 80286에서 설명한 것과 동일한 절차가 아닌 경우

80486 : (1989)
이것은 CPU에 캐시가있는이 세대의 첫 번째 CPU입니다.
8KB 통합 캐시이므로 데이터 및 지침에 사용됩니다.

이시기에 256KB의 빠른 정적 메모리를 메인 보드에 2 캐시 로 넣는 것이 일반적 입니다. 따라서 1 번째 는 CPU의 캐시 레벨, 2 마더 보드 레벨 캐시.

CPU 위치 및 2 단계 캐시가 표시된 486 마더 보드

80586 (1993)
586 또는 Pentium-1은 분할 수준 1 캐시를 사용합니다. 데이터 및 지침은 각각 8KB입니다. 캐시는 분할되어 특정 용도에 맞게 데이터 및 명령어 캐시를 개별적으로 조정할 수 있습니다. 당신은 여전히 작지만 매우 빠른 일이 번째 는 CPU 근처에 캐시를, 그리고 더 큰하지만 느린 2 마더 보드의 캐시. (더 큰 물리적 거리에서).

같은 펜티엄 1 지역에서 인텔은 펜티엄 프로 ( '80686')를 생산했습니다 . 모델에 따라이 칩에는 256Kb, 512KB 또는 1MB 온보드 캐시가있었습니다. 또한 훨씬 비싸서 다음 그림과 같이 설명하기 쉽습니다.

펜티엄 프로 CPU, 256KB 캐시 모델 그림

칩에서 절반의 공간이 캐시에 의해 사용됩니다. 그리고 이것은 256KB 모델을위한 것입니다. 더 많은 캐시가 기술적으로 가능했으며 일부 모델은 512KB 및 1MB 캐시로 생성되었습니다. 이것들에 대한 시장 가격은 높았다.

또한이 칩에는 두 개의 다이가 포함되어 있습니다. 하나는 실제 CPU와 1 캐시, 256KB 2 캐시가 있는 두 번째 다이를 포함 합니다.

펜티엄 -2

펜티엄 2는 펜티엄 프로 코어입니다. 경제적 인 이유로 CPU 에는 두 번째 캐시가 없습니다 . 대신에 CPU로 판매되는 것은 CPU (및 1 캐시) 및 2 캐시를 위한 별도의 칩이있는 PCB를 우리에게 제공 합니다.

기술이 발전하고 더 작은 부품으로 칩을 만들기 시작 하면 실제 CPU 다이에 2 캐시를 다시 넣는 것이 재정적으로 가능해집니다 . 그러나 여전히 분할이 있습니다. 매우 빠른 1 캐시가 CPU에 밀려났습니다. CPU 코어 당 하나의 1 캐시와 코어 옆에 더 크지 만 덜 빠른 2 캐시가 있습니다.

펜티엄 2 'CPU'그림 (커버 포함 및 미포함)

펜티엄 -3
펜티엄 -4
펜티엄 -3 또는 펜티엄 -4에서는 변경되지 않습니다.

이 시점에서 우리는 CPU를 얼마나 빨리 클럭 할 수 있는지에 대한 실질적인 한계에 도달했습니다. 8086 또는 80286은 냉각이 필요하지 않았습니다. 3.0GHz에서 실행되는 펜티엄 -4는 많은 열을 생성하고 그 전력을 많이 사용하므로 하나의 빠른 CPU 대신 두 개의 개별 CPU를 마더 보드에 배치하는 것이 더 실용적이됩니다.

두 개의 2.0GHz CPU는 동일한 단일 3.0GHz CPU보다 적은 전력을 사용하지만 더 많은 작업을 수행 할 수 있습니다.

이것은 세 가지 방법으로 해결할 수 있습니다.

  1. CPU를보다 효율적으로 만들어 동일한 속도로 더 많은 작업을 수행하십시오.
  2. 여러 개의 CPU 사용
  3. 동일한 '칩'에 여러 개의 CPU를 사용하십시오.

1) 지속적인 프로세스입니다. 새로운 것이 아니며 멈추지 않을 것입니다.

2) 초기에 수행되었습니다 (예 : 듀얼 펜티엄 -1 마더 보드 및 NX 칩셋 사용). 지금까지는 더 빠른 PC를 구축 할 수있는 유일한 옵션이었습니다.

3) 여러 개의 'CPU 코어'가 단일 칩에 구축 된 CPU가 필요합니다. (우리는 혼란을 증가시키기 위해 CPU를 듀얼 코어 CPU라고 불렀습니다. 마케팅 감사합니다 :))

요즘 우리는 혼동을 피하기 위해 CPU를 '핵심'이라고 부릅니다.

이제 같은 칩에 기본적으로 2 개의 펜티엄 -4 코어 인 펜티엄 -D (duo)와 같은 칩이 제공됩니다.

초기 펜티엄 -D (2 P4 코어)

구 펜티엄 프로의 사진을 기억하십니까? 캐시 크기가 큰가?
참고 항목 이 개 그림에서 넓은 지역을?

두 CPU 코어간에 두 번째 캐시를 공유 할 수 있습니다 . 속도는 약간 떨어지지 만 512KiB 공유 2nd 캐시는 크기가 절반 인 2 개의 독립적 인 2nd level 캐시를 추가하는 것보다 빠릅니다 .

이것은 귀하의 질문에 중요합니다.

즉, 한 CPU 코어에서 무언가를 읽은 후 나중에 캐시 적중과 동일한 캐시를 공유하는 다른 코어에서 읽으려고 시도합니다. 메모리에 액세스 할 필요가 없습니다.

로드, 코어 수 및 스케줄러에 따라 프로그램이 CPU간에 마이그레이션되므로 동일한 데이터를 사용하는 프로그램을 동일한 CPU (L1 이하의 캐시 적중) 또는 동일한 CPU에 고정하여 추가 성능을 얻을 수 있습니다. L2 캐시를 공유합니다 (따라서 L1에서는 누락이 발생하지만 L2 캐시 읽기에서는 적중).

따라서 이후 모델에서는 공유 레벨 2 캐시가 표시됩니다.

개방형 Core2 CPU 이미지

최신 CPU를 프로그래밍하는 경우 두 가지 옵션이 있습니다.

  1. 귀찮게하지 마십시오. OS는 일정을 잡을 수 있어야합니다. 스케줄러는 컴퓨터 성능에 큰 영향을 미치며 사람들은이를 최적화하기 위해 많은 노력을 기울였습니다. 이상한 일을하거나 특정 PC 모델 하나를 최적화하지 않는 한 기본 스케줄러를 사용하는 것이 좋습니다.
  2. 모든 마지막 성능이 필요하고 더 빠른 하드웨어가 옵션이 아닌 경우 동일한 캐시 또는 공유 캐시에 액세스 할 수있는 코어에서 동일한 데이터에 액세스하는 트레드를 남겨 두십시오.


아직 L3 캐시를 언급하지 않았지만 다르지 않습니다. L3 캐시는 같은 방식으로 작동합니다. L2보다 크고 L2보다 느립니다. 그리고 종종 코어간에 공유됩니다. 그것이 존재한다면 L2 캐시보다 훨씬 크며 (그렇지 않으면 이해할 수 없을 것입니다) 종종 모든 코어와 공유됩니다.

modernCPUwithL3.png


대단한 글입니다!
lukas.pukenis

"하지만 512MB 공유 2 차 캐시는"512KB라고 생각합니다.
lukas.pukenis

그런 훌륭한 답변! 공유 주셔서 감사합니다
samsamara

14

캐시는 프로세서 내부입니다. 일부는 코어간에 공유되고 일부는 개별적이며 구현에 따라 다릅니다. 그러나 그들 모두는 칩에 있습니다. 일부 세부 정보 : 인텔 ® 코어 ™ i7의 프로세서는, 촬영 여기 :

  • 각 코어에 대한 32KB 명령어 및 32KB 데이터 1 단계 캐시 (L1)
  • 각 코어에 대한 256KB 공유 명령어 / 데이터 2 차 수준 캐시 (L2)
  • 모든 코어에서 공유되는 8MB 공유 명령 / 데이터 마지막 ​​레벨 캐시 (L3)

프로세서 칩 사진 (죄송합니다. 정확한 모델을 모릅니다). 캐시가 칩에서 많은 영역을 차지한다는 것을 알 수 있습니다.

대체 텍스트


1
칩 단위로 실리콘 다이를 의미하는 경우 마지막 캐시 레벨은 칩 외부에있을 수 있습니다. 예를 들어, IBM의 zEC12 ( en.wikipedia.org/wiki/IBM_zEC12_(microprocessor) )는 6 개의 프로세서 칩과 2 개의 공유 캐시 칩과 L4 캐시가있는 멀티 칩 모듈을 사용합니다. 인텔의 Crystal Well 은 또한 L4 오프 칩 캐시 (eDRAM 사용)도 제공합니다.
Paul A. Clayton

5

가장 빠른 액세스를 위해 캐시는 거의 항상 칩 위에 있습니다. 다음은 L3 캐시가 강조된 쿼드 코어 Intel CPU 다이를 보여주는 멋진 다이어그램입니다. CPU 다이와 같은 그림을 볼 때 일반적으로 넓은 균일 영역은 캐시로 사용되는 온칩 메모리 뱅크입니다.

네 할렘 다이 (http://www.legitreviews.com/article/824/1/)


5

요즘 캐시는 모두 CPU 다이에 있습니다. 예전에는 마더 보드 나 CPU 도터 보드에 있었지만 칩 캐시를 사용하지 않는 현재 프로세서는 없다고 생각합니다.


1
요일 부분에 +1 옛날에는 달라졌습니다. (예 : Cyrix / Pentium-1 시간에 마더 보드의 L2 캐시)
Hennes

0

L3에 대해서는 확실하지 않지만 L1 / L2는 항상 CPU에 있습니다. 계층 적으로, 기본적으로 L1은 일반적으로 명령어 캐시이고, L2와 L3은 데이터 캐시입니다.


L1은 공유 캐시 (명령 및 데이터 캐시) 일 수 있습니다. L1 데이터 및 L1 명령어 캐시가있는 CPU도 있습니다. 그리고 L2 캐시는 항상 CPU에 위치하지는 않습니다 (L1조차도 CPU에있을 필요는 없지만 그 경우에 한 대의 컴퓨터 만 기억합니다).
Hennes

0

L1은 CPU 칩에 위치하고 L2는 프로세서와 주 메모리 사이에 있지만 일부 시스템에서는 L2가 CPU 칩에 있고 다른 시스템에서는 L2가 마더 보드 자체에 있고 L3이 지속적으로 있다는 것을 알 수 있습니다 메인 보드 칩에 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.