2014-02-14 4 views
8
In order to find avg memory access time we have the formula : 

Tavg = h*Tc +(1-h)*M 

where h  = hit rate 
     (1-h) = miss rate 
     Tc = time to access information from cache 
     M  = miss penalty (time to access main memory) 

저는이 개념에 대한 많은 문제를 최근에 해결했습니다. 때때로 나는이 방해 불일치가 있음을 발견 :캐시 메모리를 구현하는 시스템에서 평균 메모리 액세스 시간 계산

Case 1: M = Tm + Tc 
Case 2: M = Tm 

의미의 솔루션, 'M'의 값이 '사례 1'이상과 같이 몇 가지 질문 X에 대해 계산되어 표시 다른 문제의 Y하면서, 위의 '사례 2'와 동일하게 계산됩니다. 나는이 질문을 분석하여 계산을 다른 것으로 만드는 요인을 찾기 위해 최선을 다했습니다. 도움이 안돼. 나는 X & Y가 정확히 같은 상황을 만났습니다. 단지 값이 다르기 때문에 Case 1과 같이 X와 Y에 대해서도 계산이 이루어집니다.

다른 이유는 무엇입니까? 어떤 계산이 다른지 알지 못합니까? 미리 감사드립니다.

답변

6

차이점은 누락 시간을 계산 한 때입니다. 문제가있는 시간이 페널티이 아님을 나타내면 이어야합니다.은 캐시 적중 시간 외에 시간을 의미합니다. 총 누락 대기 시간은 캐시 히트의 대기 시간에 페널티를 더한 것입니다. (분명히 당신의 수식과 변수는 미스 페널티와 같은 총 접근 시간 인 M이라는 라벨을 붙인이 접근 방식을 사용하지 않습니다.)

슬프게도 "메모리 액세스 대기 시간"또는 " L2 액세스 대기 시간 "이라면, 액세스 지연 시간을 의미하는지 (즉, L1 히트 시간 포함) 또는 L1 누락에 의해 요구되는 추가 시간을 의미하는지 여부는 훨씬 명확하지 않습니다. 전자는 몇 가지 개념상의 이점이 있습니다 (예 : 데이터 액세스가 시작되기 전에 L2 액세스와 같은 세부 사항을 숨길 수 있습니다. 예를 들어 조기 발견 또는 미스 예측 또는 L1 및 L2에 대한 병렬 태그 검색을 사용). 후자는 L2 크기 또는 연관성의 대기 시간 효과를보다 간단하게 설명 할 수 있습니다 (예 : 배로 크기가 L2 전용 액세스 대기 시간을 50 % 증가시키는 경우 크기를 두 배로 늘림으로써 L2 전용 대기 시간을 8 사이클에서 12 사이클로 늘리는 것이 더 쉽습니다. (Tc = 2에서 14 사이클 및 20 사이클까지 총 대기 시간이 증가하는 것을 볼 때보 다 4 배로 크기로 18 사이클까지). ​​

(또한 페널티 번호를 사용하면 액세스 시간이 약간 간소화됩니다 수식 - Tavg = Tc + (1-h) Tm - Tc가 항상 소모되기 때문에.)

비슷한 문제가 실행 대기 시간에 발생합니다. 스칼라 파이프 라인에서 한 사이클을 실행하는 데 필요한 명령은 후속 종속 명령을 실행하는 데 지연이 없기 때문에 대기 시간이 없다고 종종 말합니다. 그러나이 지연 시간 사용은 수퍼 스칼라 구현을 고려할 때 혼란 스러울 수 있습니다.

2

평균 메모리 액세스 시간 = % 명령 * + % 데이터 * (시간 + 명령 미스 속도 * 미스 페널티를 명중) (시간을 명중 + 데이터 속도 * 미스 페널티 그리워) 이와 관련된 질문이 의견에서 제기 된

+0

나는 이것이 1 레벨의 캐시에 있다고 가정합니다. 캐시 레벨이 L1과 L2 인 경우 어떻게 변경됩니까? – nikk

+0

수식에 히트 율이없는 이유는 무엇입니까? – enitihas

0

를 :

댓글 : 수식에 히트 율이없는 이유는 무엇입니까? - enitihas 5 월 13 일 18시 9 분

수식에 적중률이없는 이유는 첫 번째 수준의 캐시에 도달했는지 또는 놓치 든 모든 액세스가 첫 번째 수준에 액세스해야하므로 적중 시간이 즉 Access입니다. 첫 번째 레벨 캐시의 대기 시간.

평균 액세스 시간을 계산하려면 액세스가 히트/미스인지 여부에 관계없이 공식에 히트 시간 (첫 번째 레벨 캐시의 액세스 대기 시간)을 포함해야합니다.

+0

진짜 이유는 miss penalty가 L1 hit에 상대적이라는 것입니다. L1 miss/L2 hit에 대한 총 시간보다는 "penalty"라고 불리는 이유입니다. 대부분의 L1 캐시 설계는 태그와 병렬로 데이터를 가져 오므로 히트/미스가 결정된 후 데이터를 준비 할 시간이 없습니다. 하지만 수식이 작동하는 데 반드시 필요한 것은 아닙니다. 이 수식은 L1을 확인하는 것과 동시에 요청이 L2로 보내지는 미친 시스템에서도 여전히 작동합니다 (따라서 L1 히트는 나머지 계층의 요청에 대한 볼륨/대역폭을 줄이지 않습니다). –

+0

hrm,주의 깊게 질문을 읽은 후, 질문의 주된 주제는 미스 페널티가 "누락 된 요청에 대한 총 시간", "L1 적중 시간 초과"또는 "나머지 시간 (폴 클레이튼 (Paul Clayton)의 탁월한 대답은 L1 히트 시간과 같지 않다. 히트에서 데이터를 검색하는 것보다 미스 탐지가 약간 빠르기 때문이다). –