캐시(Cache) 메모리와 지역성::하드웨어

2020. 7. 6. 00:13computer science/hardware

1. 캐시의 정의

 

 CPU의 처리속도와 메모리의 속도 차이로 인한 병목현상을 완화하기 위해 사용하는 고속 버퍼 메모리입니다.

 

 주기억장치에 있는 데이터를 액세스 하려면 비교적 오랜 시간이 걸리게 됩니다. 따라서 데이터를 빠르게 액세스 할 수 있도록 중간에 캐시 메모리를 두었습니다. 주기억장치 내에서 자주 읽고 쓰는 데이터의 일부를 캐시 메모리에 불러와 속도 차이를 줄이고, 주기억장치와 CPU 간 신호 교환에 이용되는 Memory Bandwidth를 I/O 사용에 집중할 수 있기 때문에 궁극적으로 성능 향상의 결과를 불러옵니다.

 

 

2. 캐시의 종류

 

L1 Cache

 - 프로세서와 가장 가까운 캐시

 - 속도를 위해 IC와 DC로 나뉩니다.

 - IC(Instruction Cache) : 메모리에서 text 영역의 데이터를 다루는 캐시

 - DC(Data Cache) : 메모리에서 text 영역을 제외한 모든 데이터를 다루는 캐시

 

L2 Cache

 - 용량이 큽니다.

 - 크기를 위해 L1 Cache와 같이 나누지 않습니다.

 

L3 Cache

 - 멀티 코어 시스템에서 여러 코어가 공유하는 캐시

 

 

3. 캐시의 지역성

 

유형 설명 사례
시간적 지역성
(Temporal Locality)
 최근 액세스 된 기억 장소가 가까운 미래에 다시 액세스 될 가능성이 높음 - Super Loop 내 반복 루프
- 서브루틴
- 공통 변수
- LRU: Least Recently Used
 (가장 오랫동안 참조되지 않은 페이지 교체)
공간적 지역성
(Spatial Locality)
 액세스 된 기억장소와 인접한 기억장소가 액세스 될 가능성이 높음 - Sequential Execution
 (for 반복문의 변수와 같은 순차적 실행)
- 배열
- Prefetch
 (연산에 필요한 data를 미리 가져옴)
순차적 지역성
(Sequential Locality)
 분기가 발생하지 않는 한 명령어들은 기억장치에 저장된 순서대로 인출되어 실행  

 

 

4. AMAT(Average Memory Access Time: 평균 메모리 액세스 시간)

 

 CPU가 주기억장치 메모리에 접근하기 전에 캐시 메모리에서 원하는 데이터 존재 여부를 확인하는데, 이때 필요한 데이터가 있는 경우 Hit(적중), 없는 경우 Miss(실패) 라고 합니다.

 

 요청한 데이터를 캐시 메모리에서 찾을 확률은 Hit Ratio(적중률)이라고 합니다.

 캐시 메모리의 성능은 적중률에 의해 결정됩니다.

 

   적중률 = 캐시 메모리 적중 횟수 / 전체 메모리 참조 횟수

 

 Miss Ratio(실패율)1 - 적중률로 구할 수 있습니다.

 CPU는 데이터를 가져오기 위해

 

레지스터 -> L1 캐시(SRAM) -> L2 캐시 -> 주기억장치(DRAM) -> 보조기억장치(EEPROM)

 

순으로 접근합니다.

 

캐시 적중  캐시 메모리의 데이터를 CPU 레지스터에 복사합니다.
캐시 실패 & 주기억장치 적중  주기억장치 메모리의 데이터를 캐시 메모리에 복사하고,
캐시 메모리에 복제된 데이터를 CPU 레지스터에 복사합니다.
캐시 실패 & 주기억장치 실패  보조기억장치 메모리의 데이터를 주기억장치 메모리에 복사하고,
주기억장치 메모리에 복제된 데이터를 캐시 메모리에 복사하고,
캐시메모리에 복제된 데이터를 CPU 레지스터에 복사합니다.

 

 이제 평균 메모리 액세스 시간을 구하면,

 

   AMAT = Hit Ratio * Hit Time + Miss Ratio * Miss Penalty

            = (1 - Miss Ratio) * Hit Time + Miss Ratio * (Hit Time + Miss Penalty)

            = Hit Time + Miss Ratio * Miss Penalty

 

* Miss Penalty : Miss가 발생했을 때, 현재 처리하고 있는 동작에 stall(pipeline stage에서 진행하지 않고 멈추는 것)을 걸고, instruction을 수행하게 되는데 이때 해당 데이터를 대체하는 데 걸린 시간

 

 

5. Cache Line의 구성 요소

 

Tag

 - 메모리와 캐시 메모리 간 mapping

 - Instruction Address의 상위 bit면서 Virtual Memory Address의 상위 bit

 

Data

 - 캐시 메모리가 가지고 있는 데이터

 

Valid bit

 - Miss 시 0으로 표시한다.

 - Invalidation Protocol에서 사용

 

Dirty bit

 - 어떤 block에 쓰기 동작이 일어났을 때, 메모리와 일관성이 유지되지 않는 상태를 표시

'computer science > hardware' 카테고리의 다른 글

RAM, ROM, Flash 메모리::하드웨어  (0) 2020.07.03