시간 간격마다 캐시 적중
,
캐시 적중 실패,
캐시 블록 교체 정보를 이용하 여 를 새로 계산한다.
캐시 적중에 실패하고 보조 태그 디렉토리에 적중했을 경우,
적중한 블록의 거리값을 저장소에 저장한다.
희생 블록이 생길 때마다 그 희생블록의 보조 태그 디렉토리에서의 거리 값인 을 저장소에서 읽어온 후 미리 계산된와 비교한다
.
값이 작은 경우에만 해 당 캐시로 전달한다.
자세한 알고리즘은“2.3.6
희생 블록 전달 조절 동 작”
에서 설명한다.
그림 2.13 set 표본
그림
2.13
은set
표본 방법이 적용된 캐시의 그림이다.
예를 위해16
개 의set
만을 넣었다.
모든 캐시의set
에 보조 태그 디렉토리가 설치된 것이 아니라0
번, 5
번, 10,
번15
번의4
개set
에만 보조 태그 디렉토리가 설치되 어 과도하게 칩 면적을 차지하는 것을 막았다.
본 논문에서는
32
개의set
마다1
개의 태그 디렉토리를 사용되었다.
결국 태그 디렉토리가 붙은set
의 희생 블록의 정보만이 저장 된다.
그렇기 때문에 태그 디렉토리가 없는set
의 희생 블록이 생겼을 경 우,
태그 디렉토리가 붙은set
의 를 사용할 수 밖에 없 다.
응용 프로그램 특성상2
의 배수인 동일한 주소 차이(stride)
를 가지고 캐시를 접근 하는 경우가 많다.
이런 경우 캐시set
을 동일한set
간격을 두고 접근하게 되며,
이 간격이 보조 태그 디렉토리가 있는set
과 겹칠 수 도 있다.
이 경우 해당 메모리 주소열의 정보만이 보조 태그 디렉토리를 통해 저장되므로,
그 정보가 캐시를 대표하는 정보를 저장하고 있다고 보 기 힘들다.
이런 단점을 제거하기 위해32
개의set
마다1
개의 보조 태그 디렉토리를 두되,
그 위치를32
개의set
중에 일정하게 두지 않는다.
본 논문에서는 처음32
개의set
중에는 첫 번째set
에 보조 태그 디렉토리를장착했으며
,
다음32
개의set
중에는 두 번째set
에 장착하는 방식으로 보 조 태그 디렉토리 사이의set
수를2
의 배수인32
가 아닌33
으로 하였다.
캐시의 각 블록에는 기본 태그와 데이터 정보 뿐 아니라
8
비트의 프로 그램 카운터(PC, Program Counter)
해시(hash)
값을 저장한다.
프로그램 카운터 해시 값은 해당 블록을 접근한 프로그램 카운터의 해시 값이다.
이 해시 값은 값을 저장소로부터 읽어오기 위해 사용한 다.
보조 태그 디렉토리가 설치되어 있는set
의 블록일 경우 희생되어 보 조 태그 디렉토리로 삽입될 때 이 프로그램 카운터 해시 값 또한 같이 이 동한다.
나중에 보조 태그 디렉토리에서 적중이 일어나 값을 저장소에 저장할 때 사용한다
.
캐시의 각 블록에는
1
비트의 전달 신호(flag)
또한 저장한다.
이 신호 값은 현재 가지고 있는 블록이 다른 블록으로부터 전달된 희생 블록인지 표시한다.
이 전달 신호가 필요한 이유는 다른 캐시 조각으로 받은 블록 을 다시 전달하지 않기 위함이다.
또한 다른 캐시 조각으로 받은 블록이 보조 태그 디렉토리에 삽입되지 않게 하기 위해 쓰인다.
따라서
1MB, 1024 set, 16 way
의 캐시 조각4
개로 구성된 전용캐시에서
,
각 캐시 블록은9
비트가 추가되며,
더해지는 총 공간 비용(space overhead)
은72KB
이다.
보조 태그 디렉토리는 대응되는
set
에서 희생되어 나온 블록을 삽입한 다.
각 블록마다16
비트의 태그와8
비트의 프로그램 카운터 해시로 이루 어진다.
각각의set
에 대응되는 보조 태그 디렉토리가 저장할 수 있는 블 록의 수는48
개이다.
따라서 보조 태그 디렉토리로 인한 공간 비용은18KB
이다.
다음으로
,
을 저장할 공간이 필요하다.
본 논문에서는 이 공간을 거리 테이블(distance table)
이라고 명명하였다.
거리 테이블은 × 개의 칸으로 이루어진
2
차원SRAM
구조이며,
각 칸은6
비트의 거리 값이다.
각 차원은 프로그램 카운터 해시 값과 블록 주소의 해시 값 으로 접근하며,
다음과 같은XOR
함수를 사용하여8
비트 해시 값을 구하 였다.
⊕ ⊕ ⊕
⊕ ⊕ ⊕
따라서 거리 테이블의 총 공간 비용은
192KB
이다.
그림 2.14 희생 블록 전달 조절 기법의 추가 하드웨어
그림
2.14
는 앞서 설명한 희생 블록 전달 조절 기법을 위한 구조들을 종합한 그림이다.
이 그림은 하나의 코어에 해당하는 구조들만 표현했으며
,
다른 코어에 해당하는1
단계 캐시와2
단계 캐시 조각은 동일하기 때 문에 생략하였다.
아래 표
2.1
은 희생 블록 전달 기법으로 인한 추가 하드웨어 공간 비용 을 정리한 표이다.
캐시 블록당 추가 용량,
보조 태그 디렉토리와 거리 테 이블 모두 합쳐서282KB
의 용량을 차지한다. 4MB
캐시의 용량은 데이터4MB
와 태그128KB
이며,
추가로 캐시 구현에 따라 사용 비트(dirty bit),
코어 번호(core number),
일관성 비트(coherence bit), LRU
비트 등이 블 록마다 삽입된다.
따라서 희생 블록 전달 조절에 따른 성능 향상을 생각 한다면,
캐시 전체의 용량에 비해 희생 블록 전달 비용에 따른 공간 비용 은 크지 않다고 할 수 있다.
종류 용량
캐시 블록당 추가 용량 × × ×
보조 태그 디렉토리 × × ×
거리 테이블 × ×
총합
표 2.1 추가 하드웨어의 공간 비용
여기까지 공간적인 비용을 고려해 보았다
.
하지만 공간적인 비용 뿐 아 니라 시간적인 비용 또한 고려해야 한다.
거리 테이블은 희생 블록이 발 생한 경우에만 접근되며,
캐시에서 적중 실패하고 보조 태그 디렉토리에 서 적중한 경우에만 수정된다.
심지어 보조 태그 디렉토리는 표본set
에서 만 캐시에서 적중 실패 했을 경우에만 접근하고 변경된다.
위에서 설명한 희생 블록 전달 조절 알고리즘은 수백 사이클이 걸리는 메모리 접근과 겹 치며 보다 짧은 시간이 걸리기 때문에,
임계 경로(critical path)
에 영향을 주지 않으며 또한 캐시 접근 시간에도 영향을 주지 않는다.
On_Hit function::
Dalam dokumen
저작자표시-비영리-변경금지 2.0 대한민국 이용자는 ... - S-Space
(Halaman 49-54)