• Tidak ada hasil yang ditemukan

정의

2.5

교체

-

재사용 시간 예측 값

(Replacement-Reuse Time

Prediction Value) :

캐시

A

의 희생 블록의 교체

-

재사용 시간 예측 값은

다음과 같다

.

   

 ×

는 희생 블록이 캐시에 적중한

MRU

위치로 부터의 거리를 의 미하여

,

는 사건 측정 시간을 의미한다

.

는 캐시

A

에서 일어난 블록 교체의 수이다

.

이상의 제안된 방법은 보조 태그 디렉토리를 사용하여 희생 블록의 교 체

-

재사용 시간을 추측한다

.

비록 보조 태그 디렉토리라는 추가 구조가 필요하긴 하지만

,

모든 캐시

set

에 설치하지 않고 일부분의

set

에만 보조 태그 디렉토리를 설치하는

set

표본

(set sampling)

방식을 사용하여 하드웨 어 비용을 줄였다

[QP06].

표본화된 보조 태그 디렉토리는 큰 캐시 사이즈 와 얻을 수 있는 성능향상에 비하면 큰 비용

(overhead)

이 아니라고 할 수 있다

.

희생 블록이 전달될 캐시

B

의 생존 시간에 비해 작거나 같은 경우

,

캐시

A

의 희생 블록이 캐시

B

에 전달되었을 때 재사용이 일어난다고 예측한 다

.

이 재사용 조건을 캐시

A

에서 희생된 블록의 교체

-

재사용 시간 예측 값과 캐시

B

의 평균 캐시 생존 시간 예측 값으로 표현 하면 다음과 같다

.

≤ 



 ×

≤    × 

 ×

이상의 식에서처럼 를 기준으로 정리하면 다음과 같은 실제적 인 재사용 조건을 구할 수 있다

.

정의

2.6

실제적인 재사용 조건

(Reuse Condition) :

캐시

A

의 희생 블록 과 희생 블록 전달 상대인 캐시

B

가 있을 때

,

캐시

A

의 희생 블록이 캐 시

B

로 전달 됐을 경우 재사용 조건은 다음과 같다

.

 ≤   ×

 × 

결국 캐시

A

의 희생 블록이 발생했을 때

,

그 희생 블록의 보조 태그 디 렉토리에서의 거리값을 알고 있다면

,

오른쪽의

   × 

 × 

값과 어떤 것이 더 작은지 여부를 비교하여

,

캐시

B

로 전달 됐을 경우의 재사용 여부를 추측할 수 있다

.

이 값은 희생 블록의 보조 태그 디렉토리 거리값에 대해 희생 블록을 전달할지 여부를 결정하는 문턱 값 역할을 하

기 때문에 다음과 같이 문턱 거리로 정의한다

.

정의

2.7

문턱 거리

(Threshold Distance) :

캐시

A

에서

B

로의 문턱거리 는 다음과 같이 정의한다

.

  →     × 

 × 

위 문턱 거리 식에서 볼 수 있듯이 문턱 거리는 반사적

(Reflexive)

이지 않다

.

  →  는  →  와 다르다

.

따라서 가능한 캐시 순서쌍 마다 문턱 거리가 존재하며 개의 캐시 조각이 있을 경우  개의 문턱 거리 값들이 존재한다

.

예를 들면 캐시 조각

A, B, C

가 있을 경우

,

다음과 같은

6

개의 문턱 거리 값들 이 존재한다

.

  → 

 →  

  → 

 →  

 →  

 →  

정의된 값을 사용하여 다시 실제적인 재사용 조건을 정의하면 다음과 같다

.

정의

2.8

실제적인 재사용 조건

2 (Reuse Condition2) :

캐시

A

의 희생 블

록과 희생 블록 전달 상대인 캐시

B

가 있을 때

,

캐시

A

의 희생 블록이 캐시

B

로 전달 됐을 경우 재사용 조건은 다음과 같다

.

≤ →  

희생 블록을 다른 캐시 조각으로 전달할지의 여부는 희생 블록이 발생 하자마자 결정해야 한다

.

그에 따라 희생 블록의 보조 태그 디렉토리에서 의 거리인 와 값이 준비되어 있어야 비교할 수 있다

.

희생 블록의 보조 태그 디렉토리에서의 거리인  는 희 생 블록마다 차이가 크기 때문에 각각의 희생 블록마다 어딘가에 저장장 소를 만들어 저장해야 필요할 때 꺼내 사용할 수 있다

.

그렇기 때문에 희 생 블록이 보조 태그 디렉토리에서 캐시 적중이 일어날 때

,

그 값을 저장 해 두었다가 희생 블록이 생겼을 경우 이를 사용한다

.

그 구조는 다음 장 에서 설명한다

.

반면

,

값의 정의를 보면 알 수 있듯이

값은 캐시

A

와 캐시

B

의 전체적인 통계값을 사용하기 때문에

,

각 희생 블록의 특성이 아니라 캐시

A

와 캐시

B

의 전체 활동 특 성에 의해 결정된다

.

그렇기 때문에 값은 갑자기 크게 바뀌지 않는다

.

따라서 일정 시간 간격

(interval)

마다 이 값을 계산해서 가 지고 있어도 무리가 없다

.

이 값은 일정 시간 간격

(interval)

동안 모은 캐 시 적중

,

캐시 적중 실패

,

캐시 블록 교체 정보를 이용하여 계산하며 다음 시간 간격 동안 사용한다

.

종합해 보면

,

본 논문이 제안하는 희생 블록 조절 기법은 다음과 같다

.

시간 간격마다 캐시 적중

,

캐시 적중 실패

,

캐시 블록 교체 정보를 이용하 여 를 새로 계산한다

.

캐시 적중에 실패하고 보조 태그 디렉토리에 적중했을 경우

,

적중한 블록의 거리값을 저장소에 저장한다

.

희생 블록이 생길 때마다 그 희생블록의 보조 태그 디렉토리에서의 거리 값인 을 저장소에서 읽어온 후 미리 계산된

와 비교한다

.

값이 작은 경우에만 해 당 캐시로 전달한다

.

자세한 알고리즘은

“2.3.6

희생 블록 전달 조절 동 작

에서 설명한다

.