하는 보조 태그 디렉토리로 삽입된다
.
다른 캐시에서 전달된 블록은 보조 태그 디렉토리로 삽입되지 않는다.
기존LRU
교체 정책과 마찬가지로 새 로운 블록은MRU
위치로 삽입되며 원래 존재하던 블록은LRU
위치로 한 칸 이동하고,
기존LRU
위치의 블록은 희생된다.
기존 캐시에서 적중 실패가 일어났을 경우,
보조 태그 디렉토리를 검색한다.
해당 주소의 블록 이 존재하여 보조 태그 디렉토리에서 적중할 경우,
적중한 위치(MRU
에서 적중한 블록까지의 거리)
를 알려준다[QP06].
그림2.11 (ㄱ)
은 캐시A
에서 희생된 블록이 보조 태그 디렉토리로 삽입되면서 교체-
재사용 시간이 시 작하는 모습을 보여준다.
그림2.11 (ㄴ)
은 시간이 흐른 후 삽입된 희생 블록이 적중하면서 교체-
재사용 시간이 종료하는 모습을 보여준다.
희생 블록이 발생하고 보조 태그 디렉토리에 삽입되면서 교체
-
재사용 시간이 시작한다.
그 후 삽입된 희생 블록은LRU
방향으로 이동하게 되 며,
이동한 정도는 다른 희생 블록이 보조 태그 디렉토리로 삽입되는 수 에 의존한다.
새로운 희생 블록의 삽입은 보조 태그 디렉토리 안의LRU
위치의 블록을 희생 시키며,
나머지 블록을 한 칸씩LRU
방향으로 이동 시킨다.
그리고 새로운 희생 블록은MRU
위치로 자리 잡는다.
결국 원래 이전에 삽입된 희생 블록은 보조 태그 디렉토리 안에서 적중하면서 교체-
재사용 시간이 끝나게 된다.
그림 2.12 보조 태그 디렉토리 적중의 예
그림
2.12
는 보조 태그 디렉토리에서 적중했을 때를 보여주는 한 예이다
.
캐시A
에서 캐시 적중 실패가 일어났을 경우 그 주소로 보조 태그 디 렉토리를 검색하여2
번 거리에서 적중이 일어남을 보여준다. MRU
위치 에서 적중이 일어나면 거리값이0
이고, LRU
위치에서 적중이 일어나면 거리값이3
이다.
본 논문에서는 캐시내부에서 희생 블록이 이동하는 모습으로 생존 시간 을 추측한 것처럼
,
희생 블록이 보조 태그 디렉토리에서 이동하는 현상을 이용하여 희생 블록의 교체-
재사용 시간을 추측한다.
희생 블록의 교체
-
재사용 시간은 보조 태그 디렉토리에 삽입된 시점에 시작하며 보조 태그 디렉토리에서 적중했을 때 끝이 난다.
따라서 희생 블록의 교체-
재사용 시간은 희생 블록이 보조 태그 디렉토리에 삽입된 때 로부터 보조 태그 디렉토리에 적중했을 때까지의 시간과 일치한다.
희생 블록의 교체-
재사용 시간 또한“
시간=
거리/
속도”
의 공식을 이용하여 추측할 수 있다.
거리는 보조 태그 디렉토리에서 적중한 위치에 해당한다
.
희생 블록의 보조 태그 디렉토리 안에서의 이동속도는 단위 시간당 이동한 거리이므 로,
이동한 거리를 측정 시간으로 나누면 된다.
이상에서와 같이 어떤 또 다른 희생 블록이 보조 태그 디렉토리로 삽입되었을 경우 또 다른 희생 블록이 보조 태그 디렉토리로 삽입되었을 때LRU
위치를 향해 한 칸 이 동한다.
따라서 이동 속도는 위의 사건이 일어난 수를 측정 시간으로 나 누면 된다.
종합해 보면,
희생 블록의 재사용 시간은 다음과 같이 표현될 수 있다.
정의
2.5
교체-
재사용 시간 예측 값(Replacement-Reuse Time
Prediction Value) :
캐시A
의 희생 블록의 교체-
재사용 시간 예측 값은다음과 같다
.
×
□
는 희생 블록이 캐시에 적중한
MRU
위치로 부터의 거리를 의 미하여,
는 사건 측정 시간을 의미한다.
는 캐시A
에서 일어난 블록 교체의 수이다.
이상의 제안된 방법은 보조 태그 디렉토리를 사용하여 희생 블록의 교 체
-
재사용 시간을 추측한다.
비록 보조 태그 디렉토리라는 추가 구조가 필요하긴 하지만,
모든 캐시set
에 설치하지 않고 일부분의set
에만 보조 태그 디렉토리를 설치하는set
표본(set sampling)
방식을 사용하여 하드웨 어 비용을 줄였다[QP06].
표본화된 보조 태그 디렉토리는 큰 캐시 사이즈 와 얻을 수 있는 성능향상에 비하면 큰 비용(overhead)
이 아니라고 할 수 있다.
Dalam dokumen
저작자표시-비영리-변경금지 2.0 대한민국 이용자는 ... - S-Space
(Halaman 42-45)