지난 20 년 동안 L1 캐시 크기가 크게 증가하지 않은 이유는 무엇입니까?


35

인텔 i486이는 L1 캐시의 8킬로바이트있다. 인텔 할렘은 32킬로바이트 L1 명령어 캐시와 코어 당 32킬로바이트 L1 데이터 캐시를 갖는다.

L1 캐시의 양은 클럭 속도가 증가한 속도로 거의 증가하지 않았습니다.

왜 안돼?


사과와 오렌지를 비교하고 있습니다. 클럭 속도는 증가했지만 더 많은 캐시가 필요하다는 것은 상관이 없습니다. 더 빠른 작업을 할 수 있다고해서 더 큰 버킷으로 이익을 얻는 것은 아닙니다.
Keltari

과도한 캐시 및 관리 오버 헤드로 인해 시스템 속도가 느려질 수 있습니다. 그들은 스위트 스팟을 발견했고 거기에 남아있을 것입니다.
Fiasco Labs

답변:


17

30K의 위키 백과 텍스트는 너무 큰 캐시가 왜 최적이 아닌지를 설명하는 데 도움이되지 않습니다. 캐시가 너무 커지면 캐시에서 항목을 찾기위한 대기 시간 (캐시 미스를 고려한)이 주 메모리에서 항목을 조회하는 대기 시간에 접근하기 시작합니다. CPU 디자이너가 어떤 비율을 목표로 삼고 있는지는 모르겠지만 80-20 지침과 비슷한 것으로 생각합니다. 캐시의 80 %에서 가장 일반적인 데이터를 찾고 싶습니다. 그것을 찾기 위해 메인 메모리에 가야 할 시간의 %. (또는 CPU 설계자가 의도 한 비율에 관계없이)

편집 : 나는 그것이 80 % / 20 % 근처에 있다고 확신하지 않으므로 X와 1-X를 대체하십시오. :)


6
"캐시가 너무 커지면 캐시에서 항목을 찾기위한 대기 시간 (캐시 미스를 고려한)이 주 메모리에서 항목을 찾는 대기 시간에 접근하기 시작합니다." 이거 확실하니? 예를 들어 설치된 RAM의 양을 두 배로 늘려도 지연 시간이 증가하지는 않습니다. 왜 캐시에 해당합니까? 또한 이것이 문제라면 새로운 CPU로 L2 캐시가 더 커지는 이유는 무엇입니까? 나는 이것에 대해 전문가가 아니다. 나는 정말로 알고 싶다 :)
sYnfo

2
소프트웨어에서 캐싱에 대한 크고 긴 설명을 준비하고 캐시가 자라서 덤프 / 재 구축되어야하는 시점을 측정했지만 하드웨어 디자이너가 아니라고 인정하는 것이 가장 좋을 것이라고 결정했습니다. :) 두 경우 모두, 수익 감소 법칙에 의해 답을 요약 할 수 있다고 생각합니다. 즉, 항상 더 나은 것은 아닙니다.
JMD

3
저수준의 하드웨어를 다루었지만 실제로 디자이너가 아닌 오랜 역사에서 대기 시간은 크기가 아니라 캐시가 연관되는 방법의 수와 관련이 있다고 말합니다. 캐시에 들어가는 여분의 트랜지스터가 전반적인 성능에 다른 곳에서 더 효과적이라는 것이 제 생각입니다.
Brian Knoblauch

1
@JMD 그럼에도 불구하고 그 설명에 관심이있을 것입니다;) 의견은 아마도 이것에 대한 최고의 장소는 아니지만 사실입니다. @Brian 그래서, 내가 올바르게 이해한다면 그들은 L1 캐시에 더 적은 트랜지스터를 넣고 동시에 L2에 훨씬 더 많은 것을 넣기로 결정했습니다. 기분 나빠하지 마십시오, 그냥 궁금합니다 :)
sYnfo

10

한 가지 요인은 지연 시간을 줄이기 위해 TLB 변환이 완료되기 전에 L1 페치가 시작된다는 것입니다. 충분히 작은 캐시와 충분히 높은 방법으로 캐시의 인덱스 비트는 가상 주소와 물리적 주소간에 동일합니다. 이는 실제로 색인이 생성되고 물리적으로 태그가 지정된 캐시로 메모리 일관성을 유지하는 비용을 줄입니다.


1
가장 흥미로운 답변 :)
GameDeveloper

1
나는 이것이 이유라고 생각하지만 숫자를 알려 드리겠습니다. x86 아키텍처의 페이지 크기는 4096 바이트입니다. 캐시는 페이지 변환이 완료되기 전에 캐시 라인의 항목 (64 바이트)을 찾을 캐시 버킷을 선택하려고합니다. 버킷에서 너무 많은 항목을 결정해야하는 비용이 많이 들기 때문에 각 버킷에는 8 개의 항목 만 있습니다. 결과적으로, 지난 10 년 동안 모든 고가의 x86 CPU는 L1 데이터 캐시에 정확히 32768 바이트 (512 캐시 라인)가 있습니다.
b_jonas

이것이 증가하기가 어려워서 cpus는 중간 수준의 캐시를 추가하므로 이제 별도의 L2 및 L3 캐시가 있습니다. 또한 L1 코드 캐시와 L1 데이터 캐시는 CPU가 코드 또는 데이터에 액세스하고 있는지 알고 있기 때문에 별도입니다.
b_jonas

8

캐시 크기는 많은 요인에 의해 영향을받습니다.

  1. 전기 신호의 속도 (빛의 속도가 아니라면 같은 크기의 것이어야 함) :

    • 1 마이크로 초로 300 미터.
    • 1 나노초에서 30 센티미터.
  2. 경제적 인 비용 (다른 캐시 레벨의 회로는 다를 수 있으며 특정 캐시 크기는 중요하지 않을 수 있음)

    • 캐시 크기를 두 배로 늘리면 물리적으로 해당 크기가 작동하도록 허용하더라도 성능이 두 배로 증가하지 않습니다. 두 배로 작은 크기의 경우 두 배 이상의 성능을 제공하며, 크기가 두 배로 증가하면 캐시 크기가 거의 추가 성능을 제공하지 않습니다.
    • Wikipedia에서 Unworth가 캐시를 1MB보다 크게 만드는 방법을 보여주는 차트를 찾을 수 있습니다 (실제로 더 큰 캐시가 존재하지만 다중 프로세서 코어 수를 유지해야합니다).
    • L1 캐시의 경우 크기가 64Kb 인 편리한 다른 차트 (공급 업체가 표시하지 않음)가 있어야합니다.

64kb 이후 L1 캐시 크기가 변경되지 않으면 더 이상 가치가 없기 때문입니다. 또한 캐시에 대해 더 많은 "문화"가 있으며 많은 프로그래머가 "캐시 친화적"코드를 작성하거나 prefetech 명령어를 사용하여 대기 시간을 줄입니다.

한 번 배열 (무작위 메가 바이트)의 임의의 위치에 액세스하는 간단한 프로그램을 만들려고했습니다. 각 무작위 읽기마다 전체 페이지가 RAM에서 캐시로 이동했기 때문에 그 프로그램은 컴퓨터를 거의 동결 시켰습니다. 프로그램은 OS에 대한 리소스를 거의 남기지 않고 모든 대역폭을 소모했습니다.


6

캐시가 클수록 액세스 속도가 느려진다 고 간단히 요약 할 수 있다고 생각합니다. 따라서 캐시가 RAM으로의 느린 버스 통신을 줄 이도록 설계 되었기 때문에 더 큰 캐시는 단순히 도움이되지 않습니다.

프로세서 속도가 급격히 증가하고 있기 때문에 같은 크기의 캐시가 더 빠른 속도로 성능을 유지해야합니다. 따라서 캐시는 속도면에서 훨씬 우수하지만 스토리지 측면에서는 그렇지 않을 수 있습니다.

(나는 소프트웨어 녀석이므로 희망적으로 이것은 잘못되지 않습니다)


3

에서 L1 캐시 :

레벨 1 캐시 또는 1 차 캐시는 CPU에 있으며 32 바이트 블록으로 구성된 명령 및 데이터의 임시 저장에 사용됩니다. 기본 캐시는 가장 빠른 스토리지 형식입니다. 프로세서의 실행 장치에 대한 대기 상태 (지연) 인터페이스가없는 칩에 내장되어 있기 때문에 크기가 제한됩니다 .

SRAM은 비트 당 2 개의 트랜지스터를 사용하며 회로에 전원이 공급되는 한 외부 지원없이 데이터를 보유 할 수 있습니다. 이는 동적 RAM (DRAM)과 대조되며, 데이터 내용을 유지하려면 초당 여러 번 새로 고쳐야합니다.

1997 년 초에 출시 된 인텔의 P55 MMX 프로세서는 레벨 1 캐시의 크기가 32KB로 증가한 것으로 주목할 만하다. 그해 말에 출시 된 AMD K6 및 Cyrix M2 칩은 64KB의 레벨 1 캐시를 제공함으로써 그 가치를 더욱 높였습니다. 64Kb는 표준 L1 캐시 크기를 유지했지만 다양한 다중 코어 프로세서가이를 다르게 사용할 수 있습니다.

편집 :이 답변은 2009 년이며 CPU는 지난 10 년 동안 엄청나게 진화했습니다. 이 게시물에 도착한 경우 여기에 모든 답변을 너무 진지하게 받아들이지 마십시오.


일반적인 SRAM 셀은 6 개의 MOSFET으로 구성됩니다. SRAM의 각 비트는 2 개의 교차 결합 인버터를 형성하는 4 개의 트랜지스터 (M1, M2, M3, M4)에 저장됩니다. 소스 두 번째 소스
lukecampbell 2016 년

이것은 상황에 대한 설명 일 뿐이며 그 이유에 대해서는 설명하지 않습니다.
Eonil

@Eonil-원한다면“왜”답변을 제공 할 수 없었습니다. 그러나 성과에 대한 수익 감소는 실행 가능한 합리적인 설명입니다. 이 질문이 거의 10 년 전에 쓰여졌을 때 성능 저하없이 크기를 늘리는 것이 훨씬 비쌌습니다. 이 답변은 최소한 의도 된 질문에 대한 답변을 시도했습니다.
Ramhound

-4

실제로 L1 캐시 크기는 최신 컴퓨터 속도의 가장 큰 병목 현상입니다. 매우 작은 L1 캐시 크기는 성능면에서 가격이 좋지 않을 수 있습니다. RAM 액세스 400 배 느린 속도와 달리 프로세서 작동과 동일한 GHz 주파수에서 L1 캐시에 액세스 할 수 있습니다. 현재의 2 차원 디자인으로 구현하기에는 비용이 많이 들고 어렵지만 기술적으로 구현 가능하며,이를 성공적으로 수행 한 첫 번째 회사는 컴퓨터를 100 배 더 빠르게 작동하고 여전히 시원하게 운영 할 것입니다. 비싸고 프로그래밍하기 어려운 ASIC / FPGA 구성을 통해서만 현재 액세스 할 수 있습니다. 이러한 문제 중 일부는 독점 / IP 문제 및 수십 년에 걸친 기업의 탐욕과 관련이 있습니다. 내부의 작업에 접근 할 수있는 유일하고 비효율적 인 엔지니어들이 유일하고 비용 효율적인 난독 화 된 보호 주의자 넌센스를 짜기 위해 행진 명령을받는 사람들이 유일하고 비효율적입니다. 과도하게 민영화 된 연구는 항상 이러한 기술적 정체 또는 조절로 이어집니다 (대형 제조업체가 항공 우주 및 자동차에서 보았고 곧 제약이되었습니다). 오픈 소스와 더 현명한 특허 및 영업 비밀 규정은 발명가와 일반인 (회사 상사 및 주주가 아닌)에게 도움이 될 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 그리고 비용 효율적인 난독 화 보호 주의자 넌센스를 짜기 위해 행진 명령을받는 사람들이 대부분입니다. 과도하게 민영화 된 연구는 항상 이러한 기술적 정체 또는 조절로 이어집니다 (대형 제조업체가 항공 우주 및 자동차에서 보았고 곧 제약이되었습니다). 오픈 소스와 더 현명한 특허 및 영업 비밀 규정은 발명가와 일반인 (회사 상사 및 주주가 아닌)에게 도움이 될 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 그리고 비용 효율적인 난독 화 보호 주의자 넌센스를 짜기 위해 행진 명령을받는 사람들이 대부분입니다. 과도하게 민영화 된 연구는 항상 이러한 기술적 정체 또는 조절로 이어집니다 (대형 제조업체가 항공 우주 및 자동차에서 보았고 곧 제약이되었습니다). 오픈 소스와 더 현명한 특허 및 영업 비밀 규정은 발명가와 일반인 (회사 상사 및 주주가 아닌)에게 도움이 될 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 과도하게 민영화 된 연구는 항상 이러한 기술적 정체 또는 조절로 이어진다 (우리가 대기업에 의해 항공 우주 및 자동차에서 보았고 곧 제약 회사가 됨). 오픈 소스와 더 현명한 특허 및 영업 비밀 규정은 발명가와 일반인 (회사 상사 및 주주가 아닌)에게 도움이 될 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 과도하게 민영화 된 연구는 항상 이러한 기술적 정체 또는 조절로 이어진다 (우리가 대기업에 의해 항공 우주 및 자동차에서 보았고 곧 제약 회사가 됨). 오픈 소스와 더 현명한 특허 및 영업 비밀 규정은 발명가와 일반인 (회사 상사 및 주주가 아닌)에게 도움이 될 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다. 훨씬 더 큰 L1 캐시를 만드는 것은 개발을위한 쉬운 방법이 아니어야하며 이는 수십 년 전에 개발되어 왔을 수도 있고 개발되지 않았을 수도 있습니다. 우리는 컴퓨터와 많은 과학 분야에서 훨씬 더 앞서 나갈 것입니다.

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