• Tidak ada hasil yang ditemukan

전술 한 바와 같이 캐시는 수백 사이클에 이르는 메모리 접근을 막아주 기 때문에 성능에 지대한 영향을 끼친다

.

단순히 캐시의 크기를 늘리는 것은 많은 데이터를 가지고 있음으로 인해 캐시 적중을 늘리지만

,

많은 칩 공간을 차지하며 캐시 접근 시간을 늘리고 전력을 더 소모한다

.

따라 서 제한된 캐시 공간을 효율적으로 사용하기 위한 다양한 연구가 진행되 어 왔다

.

첫 번째로 어떤 블록을 캐시에 넣을지 선택하는 선택적 캐시

(selective

cache)

를 소개한다

.

캐시 우회

(bypass)

기법은 적중할 것이라고 예상되는

블록만 캐시에 삽입하고 나머지 블록은 캐시에 삽입하지 않는다

.

5%

의 읽기 명령어가 전체

99%

의 캐시 적중 실패를 일으킨다는 연구를 바탕 으로 특정 읽기 명령어로 인한 요청된 블록은 캐시에 삽입하지 않는 기법

이다

[TFM+95]. “

이중 데이터 캐시 기법

은 하나의 캐시는 두 개의 보조

캐시로 나누었다

.

시간 캐시

(temporal cache)

는 시간 지역성

(temporal

locality)

이 있는 블록만 삽입하고

,

공간 캐시

(spatial cache)

는 공간 지역성

(spatial locality)

이 있는 블록만 삽입하였다

[GAV95].

추가 확장 태그를 이

용하여 캐시 적중 실패가 충돌 적중 실패

(conflict miss)

인지 용량 적중 실

(capacity miss)

인지 판별하고 충돌 적중 실패인 블록만을 희생 캐시

(victim cache)

에 삽입하는 기법도 있다

[CT99].

다음으로 해시 함수에 관한 연구들이 있다

.

하나의 캐시에 서로 다른 해시 함수를 사용함으로써 충돌 적중 실패를 줄이는 방식이다

. “Skewed

Associativity”

는 각각의 캐시 웨이 마다 서로 다른 해시 함수를 사용하였

[BS97]. XOR-

기반의 해시 함수를 사용하여 충돌 적중 실패를 줄였으며

[GVT+97], “prime displacement”

는 소수를 사용한 해시 함수를 연구하였

[KIS04].

캐시의 효율적인 사용을 위한 또 다른 방법으로 캐시 교체 정책에 대한 다양한 연구들이 존재한다

. “adaptive group association”

방식은 직접 맵

(Direct mapped)

캐시 환경에서 희생 블록이 최근에 사용된 것이면 희

생시키지 않고 다른 캐시 공간에 삽입하였다

[PLH98].

또한 시간 지역성이 없는 블록을 우선적으로 희생시키는 캐시 교체 정책도 있다

[WB00].

“self-correcting LRU”

방식은 몇가지

LRU

교체 정책의 성능을 떨어뜨리

는 단점을 교정하는 교체 정책이다

[KSD04].

죽은 블록 예측

(Dead Block

Prediction)

기법은 캐시의 공간을 차지하며 희생될 때까지 더 이상 적중 되지 않는 죽은 블록

(Dead Block)

을 예측하여 죽은 블록을 먼저 희생 시 키는 방법이다

[KTJ10][KS08].

또한

V-way

캐시는 각각의

set

이 데이터보 다 많은 태그를 가지고 있고

,

태그와 데이터의

1:1

대응 관계를 끊음으로 서 많은 용량이 필요한

set

이 더 많은 공간을 차지하도록 하였다

.

그리고 한

set

에 할당된 블록들 사이에서는 전역적 교체 정책

(Global Replacement Policy)

을 사용하였다

[QTP05].

선인출

(Prefectch)

기법은 앞으로 사용될 블록을 예측하여 요청 없이 미

리 캐시에 삽입하는 기법이다

[FPJ92][EML09][EMP09].

선인출로 인해 성 능이 좋아 질 수 있지만 잘못 예측한 블록이 들어오면 기본 블록의 희생 으로 인한 성능 하락이 생길 수 있으므로 캐시 외부에 선인출한 블록만 삽입하는 선인출 버퍼를 사용하는 방법도 있다

[Joup90].

단일 코어의 캐시 분할 기법은 캐시에 대한 요청을 분류하여 분리된 캐 시 공간에 저장한다

.

명령어와 데이터를 분리하여 저장한 연구가 있으며

[STW92],

지역성이 부족한 스트리밍 데이터를 캐시의 분리된 공간에 삽

입하여 지역성이 있는 블록을 보호하는 연구도 있다

[CRD00].