캐시 주소 분할과 평균 메모리 접근 시간

캐시 크기, 라인 크기, 연관도를 입력하면 주소가 태그, 인덱스, 오프셋으로 어떻게 나뉘는지를 비트 수와 막대로 보여 줍니다. 히트 시간, 미스율, 미스 페널티로 평균 메모리 접근 시간(AMAT)도 계산하므로 캐시 구성이 성능에 어떤 영향을 주는지 확인할 수 있습니다.

캐시 구성

결과

주소 분할 (왼쪽이 상위 비트)

라인 수
–
세트 수
–
태그
–
인덱스
–
오프셋
–
평균 메모리 접근 시간 (AMAT)
–

주소를 세 개의 필드로 나누기

캐시는 메인 메모리의 데이터를 라인(블록)이라는 단위로 보관합니다. 라인 수는 크기 ÷ 라인 크기이고, 세트 수는 라인 수 ÷ 연관도입니다. 주소의 하위 비트부터 보면, 오프셋은 라인 안의 바이트를 선택하며 log₂(라인 크기) 비트를 차지하고, 인덱스는 세트를 선택하며 log₂(세트 수) 비트를 차지하며, 나머지 상위 비트가 태그가 됩니다. 기본값인 32비트, 32 KB, 64 B, 8웨이에서는 라인이 512개, 세트가 64개이므로 오프셋 6비트, 인덱스 6비트, 태그 32 − 6 − 6 = 20비트가 됩니다.

연관도가 바꾸는 것

크기와 라인 크기가 같을 때 연관도를 두 배로 하면 세트 수가 절반이 되므로 인덱스는 1비트 줄고 태그는 1비트 늘어납니다. 1웨이는 다이렉트 매핑 캐시이고, 웨이 수를 라인 수(기본값에서는 512)와 같게 하면 세트가 하나뿐이고 인덱스가 0비트인 풀 연관 캐시가 됩니다. 연관도를 높이면 주소가 같은 세트에 몰려서 생기는 충돌 미스가 줄어들지만, 더 많은 태그를 병렬로 비교해야 하므로 비교기의 면적, 전력, 히트 시간이 늘어납니다.

평균 메모리 접근 시간 (AMAT)

캐시는 미스율만이 아니라 평균 메모리 접근 시간으로 비교해야 합니다. AMAT = 히트 시간 + 미스율 × 미스 페널티이며, 기본값에서는 4 + 0.05 × 100 = 9사이클입니다. 미스율이 5%에 불과해도 페널티가 크기 때문에 평균은 두 배 넘게 늘어납니다. 캐시를 키우거나 연관도를 높여 미스율을 낮추더라도 히트 시간이 늘어나면 모든 접근이 그 비용을 치르므로 효과가 없습니다. 다단 캐시에서는 L1 미스 페널티를 L2 히트 시간 + L2 미스율 × L2 미스 페널티로 바꾸어 계산합니다.

설계에서의 활용과 주의점

라인을 크게 하면 공간적 지역성을 활용해 미스율이 낮아지지만, 미스 한 번에 옮기는 데이터가 많아져 미스 페널티가 커지고 라인 수가 줄어 충돌이 늘어나므로, 현재 대부분의 CPU는 64 B를 사용합니다. L1 캐시는 TLB가 주소를 변환하는 동안 세트를 읽는 VIPT(가상 인덱스·물리 태그) 방식을 사용하는 경우가 많습니다. 인덱스와 오프셋을 페이지 오프셋 안에 두려면 크기가 페이지 크기 × 연관도로 제한되며, 예를 들어 4 KB × 8웨이 = 32 KB입니다. 태그 폭은 태그 저장 영역의 크기도 결정합니다.

메모리 계층 문제 풀어 보기

주소가 32비트, 용량 32 KB, 라인 크기 64바이트인 다이렉트 매핑 방식 캐시에서 태그는 몇 비트인가?

  1. A15비트
  2. B19비트
  3. C17비트
정답과 해설 보기

정답: C. 17비트

라인 크기 64바이트 = 2⁶이므로 오프셋은 6비트입니다. 라인 수는 32 KB ÷ 64 B = 32768 ÷ 64 = 512 = 2⁹이고, 다이렉트 매핑에서는 라인 수가 곧 세트 수이므로 인덱스는 9비트입니다. 나머지가 태그이며 32 − 9 − 6 = 17비트가 됩니다. 19비트는 4웨이 세트 어소시에이티브로 하여 인덱스가 2비트 줄었을 때의 값이며, 다이렉트 매핑에는 해당하지 않습니다.

주소가 32비트, 용량 32 KB, 라인 크기 64바이트인 4웨이 세트 어소시에이티브 방식 캐시의 세트 수는 얼마인가?

  1. A128
  2. B512
  3. C32
정답과 해설 보기

정답: A. 128

라인 수는 32 KB ÷ 64 B = 512입니다. 4웨이에서는 하나의 세트에 4개의 라인이 들어가므로 세트 수는 512 ÷ 4 = 128 = 2⁷이 되고, 인덱스는 7비트, 태그는 32 − 7 − 6 = 19비트가 됩니다. 512는 라인 수 자체이며 다이렉트 매핑일 때의 세트 수입니다. 연관도를 높이면 세트 수가 줄고 그만큼 태그 비트 수가 늘어나며 비교기도 늘어납니다. 32는 라인 크기 64를 잘못하여 웨이 수로 나눈 값입니다.

캐시의 히트 시간이 2사이클, 미스율이 4%, 미스 페널티가 150사이클일 때, 평균 메모리 접근 시간은 몇 사이클인가?

  1. A8사이클
  2. B6사이클
  3. C152사이클
정답과 해설 보기

정답: A. 8사이클

평균 메모리 접근 시간 = 히트 시간 + 미스율 × 미스 페널티 = 2 + 0.04 × 150 = 2 + 6 = 8사이클입니다. 히트 시간은 모든 접근에서 소요되고, 미스했을 때만 미스 페널티가 더해진다고 생각합니다. 6사이클은 미스 분량만 계산하고 히트 시간을 더하는 것을 잊은 값입니다. 152사이클은 미스한 접근 1회에 걸리는 시간이며 평균이 아닙니다. 미스율이 겨우 4%여도 평균이 4배가 된다는 것을 알 수 있습니다.

라인 크기 64바이트, 세트 수 64인 캐시에서 주소 0x1234의 데이터가 들어가는 세트 번호는?

  1. A4
  2. B52
  3. C8
정답과 해설 보기

정답: C. 8

오프셋은 64 = 2⁶이므로 하위 6비트, 인덱스는 세트 수 64 = 2⁶이므로 그 위의 6비트입니다. 0x1234 = 4660을 64로 나누면 4660 ÷ 64 = 72 나머지 52이므로 라인 번호는 72입니다. 세트 번호는 라인 번호를 세트 수로 나눈 나머지로, 72 mod 64 = 8이 됩니다. 52는 64로 나눈 나머지로 라인 내 위치(오프셋)를 나타내는 값입니다. 4는 주소 16진수의 마지막 한 자리를 꺼낸 것뿐인 값이며 세트와는 관계가 없습니다.

자주 묻는 질문

라인 크기 64 B, 32비트 주소인 32 KB 다이렉트 매핑 캐시의 태그는 몇 비트입니까?

오프셋은 log₂64 = 6비트이고, 32 KB ÷ 64 B = 512라인이므로 인덱스는 9비트가 되어 태그는 32 − 9 − 6 = 17비트입니다. 8웨이로 하면 세트가 64개로 줄어 인덱스는 6비트, 태그는 20비트가 됩니다.

풀 연관 캐시의 인덱스는 몇 비트입니까?

0비트입니다. 세트가 하나뿐이므로 오프셋을 제외한 모든 비트가 태그이며, 태그를 모든 라인과 비교합니다. 이 계산기에서 연관도를 라인 수와 같게 설정하면 확인할 수 있습니다.

미스율을 절반으로 줄이는 것과 히트 시간을 1사이클 줄이는 것 중 어느 쪽이 더 효과적입니까?

기본값(히트 시간 4사이클, 미스율 5%, 미스 페널티 100사이클)에서 미스율을 2.5%로 하면 AMAT가 9사이클에서 6.5사이클로 줄고, 히트 시간을 3사이클로 하면 8사이클이 되므로 여기서는 미스율 쪽이 더 중요합니다. 미스 페널티가 작으면 결과가 뒤바뀔 수 있으므로 AMAT 공식으로 비교하십시오.

관련 용어

캐시 메모리 캐시 라인(Cache Line) 다이렉트 매핑 방식(direct-mapped) 세트 연관(Set-associative) 방식 풀 연관 방식(Fully Associative) 평균 메모리 접근 시간(AMAT) 미스 페널티(miss penalty) 충돌 미스(conflict miss)

반도체 계산 도구

웨이퍼당 다이 수 및 수율 계산기웨이퍼 지름·다이 크기·결함 밀도로 다이 수, 수율, 양품 1개당 비용을 계산노광 해상도 및 초점 심도 계산기파장, NA, k1로 해상도(하프 피치), 초점 심도, 피치 분할 수 계산셋업·홀드 타이밍 계산기플립플롭 간 경로의 셋업·홀드 슬랙과 최대 클럭 주파수MOSFET I-V 특성 (ID–VDS)Vth, W/L, λ를 바꿔 ID–VDS 곡선과 동작점(영역, ID, gm, ro)을 확인합니다퀴즈 세트 만들기주제와 문항 수를 고르면 수업과 교육에 공유할 수 있는 퀴즈 링크를 만들어 드립니다접합 온도 및 열저항 계산기소비 전력과 열저항으로 접합 온도, Tj(max)까지의 여유, 최대 전력 계산메모리 대역폭 계산기전송 속도와 버스 폭으로 DDR, LPDDR, GDDR, HBM의 피크 및 실효 대역폭 계산ADC SNR과 유효 비트 수(ENOB)분해능, 클럭 지터, 오버샘플링으로 ADC의 SNR과 유효 비트 수 계산암달의 법칙과 병렬 속도 향상병렬화 비율과 프로세서 수로 암달의 법칙과 구스타프슨의 법칙에 따른 속도 향상률과 병렬 효율 계산CMOS 소비 전력 (동적·정적)활동률, 용량, 전압, 주파수, 누설 전류로 동적·정적 소비 전력과 DVFS 적용 후 전력 계산PN 접합의 내장 전위와 공핍층 폭도핑 농도와 역방향 바이어스로 PN 접합의 내장 전위, 공핍층 폭, 최대 전계, 접합 용량 계산열산화막 두께 (Deal-Grove 모델)온도, 시간, 건식·습식 분위기, 면방위로 Deal-Grove 모델에 따른 실리콘 산화막 두께와 소비되는 실리콘 계산