캐시 크기와 액세스 대기 시간이 일치합니까?


9

캐시 크기와 액세스 대기 시간 사이에 대응 관계가 있습니까? 다른 모든 것들은 같고, 더 큰 캐시는 느리게 작동합니까? 그렇다면 왜 그렇습니까? 얼마나 느려?


1
캐시 설계에서 일부 절충점을 탐색하려는 경우 HP 는 설계 특성에 따라 대기 시간 및 전력 사용량에 대한 추정치를 제공 하는 도구 CACTI 를 개발했습니다 . 버전 5.3웹 인터페이스도 제공 됩니다.
Paul A. Clayton

답변:


5

손에 든 물건은 주머니에 넣은 물건보다 빠르게 액세스 할 수 있습니다.이 방법은 찬장에있는 물건보다 빠르게 액세스 할 수 있으며 Digikey의 물건보다 빠르게 액세스 할 수 있습니다. 내가 나열한 각 연속 스토리지 유형은 이전 스토리지보다 크지 만 느립니다.

따라서 두 세계를 모두 최대한 활용합시다. Digikey 창고만큼 손을 크게 잡자! 아니요, 이제 더 이상 손을 대지 않기 때문에 작동하지 않습니다. 그들은 당신의 무게를 측정하는 대포입니다.

더 큰 스토리지가 액세스하는 속도가 느린 이유는 거리 입니다. 더 큰 스토리지는 평균적으로 더 멀리 떨어져 있습니다. 이는 실제 항목과 RAM에 해당됩니다.

컴퓨터 메모리는 실제 공간을 차지합니다. 이러한 이유로 더 큰 메모리는 물리적으로 더 크며 해당 메모리의 일부 위치는 물리적으로 더 멀어 질 것입니다. 속도 제한이 있기 때문에 멀리 떨어진 것들에 액세스하는 데 시간이 더 걸립니다. 포켓과 Digikey의 경우 속도 제한은 팔의 속도와 고속도로 속도 제한입니다.

RAM의 경우 속도 제한은 전기 신호의 전파 속도, 게이트 및 드라이버의 전파 지연 및 동기식 클록의 일반적인 사용입니다. 돈이 목적이 아니고 오늘날 가장 빠른 RAM 기술을 원하는만큼 살 수 있다고해도 모든 혜택을 누릴 수는 없습니다. 원하는 경우 A4 크기의 L1 캐시 시트를 배치하고 CPU를 중앙에 배치하십시오. CPU가 메모리 구석에있는 일부 메모리에 액세스하려고하면 요청이 도착하는 데 문자 그대로 1 초가 걸리고 다시 돌아가려면 1 초가 걸립니다. 그리고 그것은 게이트와 드라이버를 통한 모든 전파 지연을 포함하지는 않습니다. 3GHz CPU 속도가 크게 느려질 것입니다.

동기식 로직은 비동기식 로직보다 설계하기가 훨씬 쉽기 때문에 RAM의 하나의 '블록'이 동일한 클럭으로 클럭됩니다. 전체 메모리를 L1 캐시로 만들려면 메모리에서 가장 먼 위치의 최악의 타이밍에 대처하기 위해 느린 클럭으로 전체 로트를 클럭해야합니다. 이것은 먼 메모리 위치가 이제 로컬 위치를 보류하고 있다는 것을 의미합니다. 따라서 가장 좋은 방법은 메모리를 구역화하는 것입니다. 캐시에서 가장 가깝고 가장 작은 섹션은 가장 빠른 시계를 사용합니다. 다음으로 가장 가깝고 작은 섹션은 약간 느린 시계 등을 사용합니다.

이제 L1 & L2 캐시와 RAM이 있습니다.

다음으로 전력 소비가 발생합니다.

캐시는 실제로 상당한 양의 전력을 소비합니다. 메모리 자체뿐만 아니라 캐시 라인과 기본 메모리 사이의 매핑을 처리하는 모든 논리. 이 추가 로직의 성능을 높이면 전력 소비가 증가 할 수 있습니다. 이제는 특정 응용 프로그램 (모바일, 임베디드)의 경우 캐시를 작게 유지하려는 동기가 더욱 커졌습니다.

참조 사례 연구 : 전원 및 성능 최적화를위한 캐시 디자인 전시회 오프 (칭 긴 스와 및 앨빈 M. Despain, 1995).


1
+1 나는 당신의 대답을 좋아합니다. 모든 관련 포인트를 명중하고 백업합니다. 읽기 쉬운
Gustavo Litovsky

맞습니까? 대답은 1 인치의 빛의 속도 대 수 인치의 지연에 전제 되는가?
Andyz Smith

1
이 답변은 일반적인 개요로는 좋지만 초기 질문에 답변하지 않은 것 같습니다. A4 크기 캐시가 실용적이지 않다는 것을 깨닫기 위해 uArch 전문가가되어서는 안됩니다. OP가 캐시 크기의 합리적인 증가 와이 증가가 캐시 액세스의 대기 시간에 미치는 영향에 대해 문의했다고 생각합니다.
Vasiliy

1
@AndyzSmith-그것은 과장과 과장이지만, 어느 시점에서 L1 캐시를 무한정 확대 할 수 없다는 일반적인 요점을 얻습니다. 어떤 시점에서 물리 법칙이 들어 와서 속도를 늦 춥니 다.
Rocketmagnet

온칩 신호의 지연은 빛의 속도가 아니며 네트 / 와이어 + 구동 게이트 커패시턴스를 RLC 네트워크로 고려하여 계산하면 더 복잡한 값입니다. 전송선이 되기에는 충분히 길지 않습니다. 네트가 길수록 구동 게이트가 커지거나 버퍼를 리피터로 삽입해야합니다. 모두 더 많은 전력을 소비합니다.
pjc50

4

모든 경제적 / 성능 / 전력 소비 요소를 제외하고 귀하의 질문에 대한 답변은 다음과 같습니다.

예를 들어이 참조 를 참조하십시오 . 테스트중인 모든 프로세서에 대해 측정 된 L1 액세스 대기 시간은 4 클럭주기입니다. 프로세서의 주파수는 거의 동일하지만 L1 캐시의 크기는 최대 3 배까지 다릅니다.

위 테스트에서 여러 다른 프로세서에서 L1에 대한 지속적인 대기 시간이 발생하는 이유는 캐시의 마이크로 아키텍처에 뿌리를두고 있습니다. 액세스 디코딩, 데이터 유무 확인 등을 위해 추가 세주기가 소요됩니다. 추가 단계의 수는 테스트중인 프로세서에서 동일하므로 액세스 지연 시간이 동일합니다.

위의 예에도 불구하고 캐시 대기 시간이 캐시 크기와 무관하다는 결론을 내릴 수 없습니다. 누군가가 엄청나게 큰 L1 캐시를 구현하려고하면 캐시 읽기에 필요한 모든 작업을 수행하는 논리도 커질 것입니다. 어떤 시점에서,이 모든 로직을 통한 전파 지연은 너무 길 수 있으며, 사전에 단일 클록 사이클을 수행 한 작업은 여러 클록 사이클로 분할되어야합니다. 대기 시간이 길어집니다.

문제의 캐시가 SRAM에서 구현되었다고 가정하면, 캐시 크기의 영향을 가장 많이받는 모듈은 행 디코더와 멀티플렉서입니다. 그러나 센스 앰프조차도 매우 큰 캐시에 영향을 미칩니다. 커패시턴스가 높기 때문에 비트 라인에서 작은 전압 스윙은 "강한"센스 앰프가 필요합니다. 로직 속도에 대한 가장 심각한 영향은 와이어 인터커넥트 커패시턴스에 의해 추가 될 것입니다.이 커패시턴스는 SRAM 크기에 대한 선형 의존성 이상입니다. 정확한 세부 사항은 구현에 따라 다릅니다.

이제 L1 캐시는 성능이 가장 중요하기 때문에 지연 시간이 상당히 안정적입니다. L2 및 L3 캐시를 분석하려고하면 그림이 많이 복잡해집니다.

멀티 코어 프로세서를 고려할 때 그림이 훨씬 복잡해집니다 . 캐시 일관성 을 보장하기위한 추가 논리가 있습니다. 이로 인해 캐시 액세스 대기 시간 ( 모든 코어의 메모리에 대한 액세스 기록)에 영향을주는 추가 요소가 발생합니다 .

요약

보시다시피 귀하의 질문은 사소한 것이 아니며 완전히 대답 할 수 없습니다. 그러나 경제적이고 성능이 우수한 캐시를 고려한다면 그 크기가 대기 시간에 영향을 미치지 않을 것이라고 생각합니다.

관심있는 독자 :

이 참조 는 최신 CPU의 성능 요소에 대한 심층 분석입니다. 거기에는 캐시 관련 자료가 많이 있습니다. 컴퓨터 아키텍처 및 마이크로 아키텍처 원칙에 대한 깊은 이해가 필요합니다 (또는이 분야의 전문가가되기 위해 알아야 할 주제에 대한 좋은 요약).


응답 해주셔서 감사합니다! 귀하와 @Rocketmagnet의 답변은 거의 보완 적입니다. 둘 다 선택할 수 있기를 바랍니다. 나는 이미 참고 문헌 사본을 인용했으며 최근 주제에 관심이 많았으므로 질문입니다.
ivanmp

읽기 작업을 수행하는 논리가 캐시 크기에 따라 달라지는 이유 또는 불연속 점프가없는 경우 액세스 시간과 크기의 공식은 무엇입니까?
Andyz Smith

"중요한 반복은 가산기, 디코더, SRAM 워드 라인, SRAM 비트 라인, 감지 증폭기, 바이트 스티어링 멀티 플렉스 및 바이 패스입니다. muxes. " 논리가 커지게 하는가? en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith

@AndyzSmith, 액세스 시간 대 크기의 공식은 캐시를 설계하고 시뮬레이션하는 사람 만 제공 할 수 있습니다. 내가 게시 한 참조에서 L1에서 데이터를 얻는 데 4 클럭 사이클이 걸리지 만 아무도이 읽기와 관련된 슬랙을 추정하려고 시도하지 않습니다. 공식을 요구하는 것은 많은 추가 구현 특정 정보가 없으면 실용적인 질문이 아닙니다.
Vasiliy

1
@AndyzSmith는 문제의 캐시가 SRAM에서 구현되었다고 가정 할 때 캐시 크기의 영향을 가장 많이받는 모듈은 행 디코더와 멀티플렉서입니다. 그러나 감지 증폭기조차도 매우 큰 캐시에 영향을 미칩니다. 커패시턴스가 높을수록 비트 라인에서 전압 스윙이 적어지고 "강한"감지 증폭기가 사용됩니다. 로직 속도에 대한 가장 심각한 영향은 와이어 인터커넥트 커패시턴스에 의해 추가 될 것입니다.이 커패시턴스는 SRAM 크기에 대한 선형 의존성 이상입니다. 다시, 세부 사항은 구현에 따라 다릅니다.
Vasiliy

3

CPU 캐시 테스트 엔지니어의 의견-Dave Tweed의 의견에 올바른 설명이 있습니다. 캐시는 CPU의 예상 가격대에서 성능을 최대화하도록 크기가 조정됩니다. 캐시는 일반적으로 다이 공간의 가장 큰 소비자이므로 크기가 경제적 (및 성능) 차이를 크게 만듭니다.

Intel의 Ivy Bridge CPU 제품군 페이지를 살펴보십시오. http://ark.intel.com/products/codename/29902/Ivy-Bridge

최고급 Xeon은 30MB의 캐시와 함께 12 개의 코어와 약 2700 달러의 비용이 듭니다. 3MB의 캐시 (i3-3217)를 갖춘 저가형 i3는 전체 노트북에 대해 500 달러에 불과합니다 (개별적으로 찾을 수 없음).

Xeon은 최고의 성능을 제공하지만 제조 및 테스트에 더 많은 비용이 듭니다. i3는 훨씬 저렴하지만 트레이드 오프는 캐시 크기가 가장 큰 다이 크기보다 작습니다.


2
매우 흥미로운 답변입니다. 그러나 질문에서 언급했듯이 경제적이고 명백한 대답을 찾지 않습니다. 내가 이해하려고하는 것은 매우 (> 512MB) 큰 캐시에 액세스하는 것과 관련된 성능과 관련이 있습니다. 크기가 캐시 성능을 저하 시킵니까?
ivanmp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.