L1 캐시가 L2 캐시보다 빠른 이유는 무엇입니까?


14

특정 CPU 캐시 메모리가 다른 CPU 캐시보다 빠른 이유를 이해하려고합니다. 캐시 메모리를 주 메모리와 비교할 때 액세스 속도에 영향을 줄 수있는 메모리 유형 (SRAM 대 DRAM) 및 로컬 리티 문제 (온칩 대 메모리 버스 통과)가 있습니다. 그러나 L1과 L2는 일반적으로 동일한 칩 또는 적어도 동일한 다이에 있으며 동일한 유형의 메모리라고 생각합니다. 그렇다면 L1이 더 빠른 이유는 무엇입니까?


9
그렇게 만들어 졌기 때문입니다.
Ignacio Vazquez-Abrams 1

동일한 유형의 RAM을 구축하는 방법에는 여러 가지가 있습니다. 어떤 방식은 다른 방식으로 작성된 RAM보다 RAM이 빠릅니다.
Ignacio Vazquez-Abrams

DDR RAM이 HDD보다 빠른 이유와 동일한 이유
hassan789

1
관련 : 캐시 크기에 대한 나의 대답과 SO 질문은 또한 다중 레벨 캐시를 갖는 일부 속도 / 전력 소비 트레이드 오프 이유를 설명합니다. 기본적으로 캐시를 초고속으로 만들면 전력 및 다이 영역이 병렬로 더 많은 작업을 수행하고 마지막 수준 캐시에서 원하는 큰 크기 / 연관성과 호환되지 않습니다.
Peter Cordes

답변:


24

아니요, 동일한 제조 공정을 사용하는 동일한 칩에 있더라도 동일한 유형의 RAM이 아닙니다.

모든 캐시 중에서 L1 캐시는 적절한 "적중"속도를 제공하기 위해 필요한 용량과 비교하여 가장 빠른 액세스 시간 (가장 짧은 대기 시간)을 가져야합니다. 따라서 더 큰 트랜지스터와 더 넓은 금속 트랙을 사용하여 공간과 전력을 절약합니다. 높은 수준의 캐시는 더 높은 용량을 가져야하지만 속도가 느려질 수 있으므로 더 꽉 채워진 더 작은 트랜지스터를 사용합니다.


3
이것은 내가 찾고있는 것입니다. 감사합니다. 차이점에 대해 더 자세히 읽을 수있는 좋은 자료를 알고 있습니까?
ConditionRacer

아닙니다. 이러한 공간 / 전력 / 시간 트레이드 오프의 세부 사항과 캐시 용량 및 아키텍처에 대한 선택은 제조업체 프로세스의 독점적 인 세부 사항과 매우 밀접한 관련이 있으므로 관련 정보가 거의 게시되지 않습니다. 나는 일반적인 용어로만 말할 수 있습니다.
Dave Tweed

10
L1도 더 작아서 신호 전달에 걸리는 클록 사이클이 줄어 듭니다. 종종 L1의 크기는 1 (또는 2) 클록에서 액세스 할 수있는 가장 큰 메모리로 결정됩니다.
Brian Drummond

6
Brian Drummond의 요점 외에도 L1은 일반적으로 데이터 태그 병렬 액세스를 사용합니다. L2는 일반적으로 태그에 먼저 액세스 한 다음 (적중 한 경우 어떤 방식으로 결정되는지) 데이터를 대기 시간을 늘리지 만 에너지를 절약합니다 (큰 크기, 높은 연관성 및 높은 미스 레이트가 주어진 경우). (L2 접속이 보통 시작 L1 미스 효과적인 레이턴시를 증가시키는 확인된다.)
폴 A. 클레이튼

@BrianDrummond-와이어로드와 게이트 깊이 측면에서 더 작습니다 (귀하의 의견으로는 명확하지 않다고 생각합니다).
Sean Houlihane

5

L1은 일반적으로 디코딩 된 명령어의 저장소로 사용되는 반면 L2는 단일 코어의 일반 캐시입니다. 캐시가 작을수록 크기가 작고 일반적으로 빠릅니다. PC 프로세서의 대략적인 경험으로 :

L1 캐시 : 2-3 클록 사이클 액세스

L2 캐시 : ~ 10 클록 사이클 액세스

L3 캐시 : ~ 20-30 클록 사이클 액세스

L1 캐시의 설계는 캐시 레이턴시를 가능한 낮게 유지하면서 적중률 (원하는 명령 주소 또는 데이터 주소가 캐시에있을 확률)을 최대화해야합니다. 인텔은 3주기의 대기 시간으로 L1 캐시를 사용합니다. L2 캐시는 하나 이상의 L1 캐시간에 공유되며 종종 훨씬 더 큽니다. L1 캐시는 적중률을 최대화하도록 설계되었지만 L2 캐시는 미스 페널티 (L1 미스가 발생할 때 발생하는 지연)를 최소화하도록 설계되었습니다. L3 캐시가있는 칩의 경우 목적은 칩 설계에 따라 다릅니다. 인텔의 경우 L3 캐시는 2002 년에 4 방향 멀티 프로세서 시스템 (Pentium 4 Xeon MP 프로세서)에 처음 등장했습니다. 이러한 의미에서 L3 캐시는 멀티 스레드 환경에서 지연을 크게 줄이고 FSB에서 부하를 줄였습니다. 당시

견적은 공급 여기 "Pinhedd의"응답에서.


1
L1뿐만 아니라 일반적으로 데이터를 사용하지만 L2 공유하는 동안 자주 L1 데이터와 L1 명령이 분리되어 있다는 사실입니다 : programmers.stackexchange.com/questions/44731/... (가 공유 할 수있는 이유 중 하나는 더 많은 방법을 가지고 있다는 것입니다 ).
Guy Sirton

1
프로세서는 L1 수준에서 별도의 명령 및 데이터 캐시를 갖는 것이 일반적입니다. x86과 SPARC 칩의 경우에도 마찬가지입니다. 그리고 일부 L1 명령어 캐시는 디코딩 된 명령어를 저장하지 않습니다. 펜티엄 4는 디코딩 된 명령을 저장했지만 인텔은 일반 I- 캐시로 되돌아 간 다음 최근에 디코딩 된 명령 캐시를 칩에 다시 추가했습니다.
Craig S. Anderson

3

속도가 크기에 반비례하는 몇 가지 이유가 있습니다. 가장 먼저 떠오르는 것은 컨덕터의 물리적 지배입니다. 여기서 신호 전파 i는 빛의 속도에서 일부 요인으로 제한됩니다. 메모리 타일 내에서 가장 먼 거리를 이동하는 데 전기 신호가 걸리는 한 작업이 소요될 수 있습니다. 다른 관련 이유는 클럭 도메인의 분리 때문입니다. 각 CPU는 자체 클럭 생성기를 실행하여 CPU가 다중 GHz 클럭에서 실행될 수 있도록합니다. 레벨 1 캐시는 시스템에서 가장 빠른 CPU 클럭에서 실행되고 동기화됩니다. 반면에 레벨 2 캐시는 많은 CPU를 지원해야하며 다른 (느린) 클럭 도메인에서 실행되고 있습니다. L2 클럭이 느릴뿐만 아니라 (더 큰 타일) 클럭 도메인 경계를 넘어 가면 또 다른 지연이 발생합니다. 물론 팬 아웃 문제 (이미 언급)가 있습니다.


1

고유 한 성능 특성 외에도 로컬 리티도 중요한 역할을합니다 (L1이 CPU에 더 가깝습니다). 모든 프로그래머가 기억해야 할 것에 따르면 :

온다이 L2 캐시의 경우 액세스 시간의 대부분 (아마도 대부분)이 와이어 지연으로 인해 발생한다는 점에 주목해야합니다. 이는 캐시 크기가 증가 할 때만 악화 될 수있는 물리적 제한입니다. 프로세스 축소 만 (예를 들어, 인텔 라인업에서 Merom의 경우 60nm에서 Penryn의 경우 45nm로) 이러한 수치를 향상시킬 수 있습니다.


나는 이것이 캐시가 큰 곳에서 주로 적용된다고 생각합니다-이것은 모든 프로세서 유형에 적용되지는 않습니다 (와이어 지연은 중요하지만).
Sean Houlihane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.