1

최종 시험에서 두 건의 사례를 만났습니다. 첫 번째 경우의 메모리는 0x101,0x102,0x101,0x102,0x101,0x102,0x101,0x102와 같은 위치에서 정보를 가져옵니다.시간적 지역성 및 공간적 지역성에 관한 몇 가지 문제점

같은 위치에서 두 번째 사례의 메모리 가져 오기 정보 : 0x101,0x101,0x101,0x101,0x111,0x109,0x102xx100

질문은 시간적인 지역성을 사용합니다.

여기에 제 요점이 있습니다. 첫 번째 경우입니다. 실제로 0x101에 액세스 할 때 메모리는 0x102를 캐시에 액세스합니다. 다음 6 번의 페치에서는 벌칙이 없습니다. 즉,이 경우에는 캐시 미스가 하나뿐입니다. 여기에서 저는 우리가 시간적 지역성과 공간적 지역성 모두로부터 이익을 얻는다고 생각합니다. 첫 번째 네 단계의 두 번째 경우에는 시간적 지역성의 이점을 얻지 만 다음 단계에서는 시간적 지역성이 없습니다. 사실 이것은 첫 번째 선택보다 더 많은 캐시 누락을 초래합니다. 둘 다 맞다고 생각하지만 혼란 스러울 정도로 한 가지 대답 만 할 수 있습니다.

답변

0

두 번째 투표에 대한 투표를 원합니다. 당신이 말했듯이, 그것은 처음 4 단계에서 시간적 지역성의 명백한 경우를 가지고 있습니다.

캐시에 메모리에 두 개 이상의 항목을 저장할 공간이 있다고는 결코 말할 수 없습니다. 그것은 단지 하나의 레지스터 또는 뭔가와 함께 CPU가 될 수 있습니다. 따라서 첫 번째 사례가 지역을 전혀 나타내지 않을 수도 있습니다.

질문은 시스템 아키텍처에 대한 자세한 내용을 제공합니까?

+0

더 자세한 정보는이 질문에서 제공하지 않습니다. 나는이 시험에서 틀린 대답을 선택하는 것이 궁금하다. 동정심. ... – user3180776

0

확실히 두 번째 선택입니다. 질문은 분명합니다. 두 번째 경우에 0x101에 여러 번 연속해서 액세스하기 때문에 명시 적으로 시간의 지역성을 사용하고 있습니다.

이 질문을 참조하십시오 : Spatial vs. Temporal locality

시간적 지역은 당신이 시간에 상대적으로 가깝게, 같은 주소를 여러 번에 액세스 할거야 것을 의미한다.

첫 번째 사례도 임시 지역을 사용한다고 말하지만, 2 개의 인접 위치간에 번갈아 가며 공간적 지역성으로 인해 캐시 미스가 최소화되므로 공간 지역성에 맞다고 말할 수 있습니다. 일시적인 지역 때문이 아닙니다.

두 번째 경우에는 시간상의 지역성으로 인해 캐시 누락이 최소화됩니다. 시간적 지역성에 따르면 지금 바로 X 위치에 액세스하면 곧 다시 그렇게 할 것입니다. 이것은 두 번째 경우에서 탐구되는 속성입니다.

+0

그러나 "곧"의 의미는 무엇입니까? 나는 2 ~ 3 개의 시스템 클럭에서 매우 빨리 불려지는지 의심 스럽다. – user3180776

+0

@ user3180776 2 또는 3 시스템 클럭은 아무것도 아닙니다. 100 시스템 클럭은 아직 매우 빠릅니다. 상황에 따라 다르지만 CPU주기가 매우 빠름을 기억하십시오. 귀하의 질문에 옵션을 감안할 때, 거기에 시간적 지역성이 정말 분명하기 때문에 2로 갈 것입니다. –

+0

@ user3180776은 곧 주관적인 정의입니다. 캐시에 남아있는 동안 동일한 행에 액세스하면 곧 고려해야합니다 (실제 거리는 캐시 크기/연관성, 액세스 패턴 등에 따라 다릅니다). – Leeor