45
컴컴컴 컴컴 컴컴컴 컴컴 5 5 컴컴 컴컴컴컴 컴컴 컴컴컴컴 (Cache Memory) (Cache Memory)

제 5 강 캐시 기억장치 (Cache Memory)

Embed Size (px)

DESCRIPTION

제 5 강 캐시 기억장치 (Cache Memory). 학습 목차. 컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리 캐시 기억장치의 설계 다중 프로세서를 사용하는 시스템에서의 캐시 기억장치. 학습 목표. 기억장치들간의 상호 연관성에 대해 이해한다 . 캐시 기억장치의 원리에 대해서 이해한다 . 캐시 기억장치와 주기억장치 사이의 정보교환 방법에 대해 이해한다 . 캐시 기억장치의 교환 알고리즘에 대해 이해한다. 컴퓨터 기억장치의 계층적 구조. - PowerPoint PPT Presentation

Citation preview

Page 1: 제  5  강   캐시 기억장치 (Cache Memory)

컴퓨터 구조컴퓨터 구조

제 제 5 5 강강 캐시 기억장치 캐시 기억장치 (Cache (Cache Memory) Memory)

Page 2: 제  5  강   캐시 기억장치 (Cache Memory)

- 2 -

IT COOKBOOKIT COOKBOOK학습 목차학습 목차

컴퓨터 본체에서 기억장치 위치 살펴보기컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리캐시 기억장치 원리 캐시 기억장치의 설계캐시 기억장치의 설계 다중 프로세서를 사용하는 시스템에서의 캐시 다중 프로세서를 사용하는 시스템에서의 캐시

기억장치기억장치

Page 3: 제  5  강   캐시 기억장치 (Cache Memory)

- 3 -

IT COOKBOOKIT COOKBOOK학습 목표학습 목표

기억장치들간의 상호 연관성에 대해 기억장치들간의 상호 연관성에 대해 이해한다이해한다 ..

캐시 기억장치의 원리에 대해서 이해한다캐시 기억장치의 원리에 대해서 이해한다 .. 캐시 기억장치와 주기억장치 사이의 캐시 기억장치와 주기억장치 사이의

정보교환 방법에 대해 이해한다정보교환 방법에 대해 이해한다 .. 캐시 기억장치의 교환 알고리즘에 대해 캐시 기억장치의 교환 알고리즘에 대해

이해한다이해한다 ..

Page 4: 제  5  강   캐시 기억장치 (Cache Memory)

- 4 -

IT COOKBOOKIT COOKBOOK컴퓨터 기억장치의 계층적 구조컴퓨터 기억장치의 계층적 구조

컴퓨터의 기억장치의 용량컴퓨터의 기억장치의 용량 , , 접근 속도접근 속도 , , 가격의 가격의 상관관계상관관계 접근 속도를 감소시켜 데이터의 읽고접근 속도를 감소시켜 데이터의 읽고 , , 쓰기 속도를 쓰기 속도를

향상시키기 위해서는 고가이지만 고속의 기억장치가 향상시키기 위해서는 고가이지만 고속의 기억장치가 필요필요

많은 양의 데이터를 저장하기 위해서 기억장치의 용량이 많은 양의 데이터를 저장하기 위해서 기억장치의 용량이 커져야 한다커져야 한다 . . 그러나 적정 비용을 위해서는 저가의 그러나 적정 비용을 위해서는 저가의 기억장치를 필요로 하게 된다기억장치를 필요로 하게 된다 . .

저가의 기억장치를 사용하면 기억장치의 접근속도는 저가의 기억장치를 사용하면 기억장치의 접근속도는 그만큼 증가하게 된다그만큼 증가하게 된다 . .

이 요건들의 적절한 상호 조정이 필요하며이 요건들의 적절한 상호 조정이 필요하며 , , 이를 위해서 이를 위해서 기억장치 계층 구조가 이용된다기억장치 계층 구조가 이용된다 . .

Page 5: 제  5  강   캐시 기억장치 (Cache Memory)

- 5 -

IT COOKBOOKIT COOKBOOK기억장치의 계층 구조기억장치의 계층 구조

CPU : Register내의 레지스터

(Cache Memory) : Static RAM캐쉬 기억장치

(Main Memory) : Dynamic RAM주 기억장치

(Secondary Memory) : HDD, FDD, Magnetic Tape보조 기억장치

용량속도

가격

High

Low

Low

High

Page 6: 제  5  강   캐시 기억장치 (Cache Memory)

- 6 -

IT COOKBOOKIT COOKBOOK기억장치의 동작 방법 기억장치의 동작 방법

자기 테이프

자기 디스크

입출력프로세서 주기억 장치

CPU 캐쉬

기억장치

보조 기억 장치

Page 7: 제  5  강   캐시 기억장치 (Cache Memory)

- 7 -

IT COOKBOOKIT COOKBOOK캐시 기억장치 원리캐시 기억장치 원리

빠른 접근 시간을 제공하는 기억장치빠른 접근 시간을 제공하는 기억장치 수행할 명령어나 오퍼랜드를 주기억장치로부터 수행할 명령어나 오퍼랜드를 주기억장치로부터

가져와 저장하고 있다가 빠른 속도로 가져와 저장하고 있다가 빠른 속도로 중앙처리장치에 제공중앙처리장치에 제공

주기억장치 캐시 메모리

CPU 블록 전송 워드 전송

Page 8: 제  5  강   캐시 기억장치 (Cache Memory)

- 8 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 동작 원리캐시 기억장치의 동작 원리

캐시 기억장치가 없는 시스템캐시 기억장치가 없는 시스템

① ① 중앙처리 장치의 주기억장치 접근중앙처리 장치의 주기억장치 접근② ② 주기억장치로부터 명령어나 필요한 정보 획득주기억장치로부터 명령어나 필요한 정보 획득

CPU

주 기억장치

1

2

Page 9: 제  5  강   캐시 기억장치 (Cache Memory)

- 9 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 동작 원리캐시 기억장치의 동작 원리

캐시 기억장치가 있는 시스템캐시 기억장치가 있는 시스템 중앙처리 장치가 기억장치를 참조할 필요가 있을 경우 캐시 중앙처리 장치가 기억장치를 참조할 필요가 있을 경우 캐시

기억장치를 먼저 조사기억장치를 먼저 조사 캐시 기억장치에 접근하여 그 내용을 찾았을 때 적중캐시 기억장치에 접근하여 그 내용을 찾았을 때 적중 (hit)(hit) 이라고 이라고

하고하고 , , 찾지 못하였을 경우를 실패찾지 못하였을 경우를 실패 (miss)(miss) 라고 한다라고 한다 . . 중앙처리장치가 중앙처리장치가 10001000 번지 워드를 필요로 하는 경우번지 워드를 필요로 하는 경우

캐시 기억장치를 검사하고캐시 기억장치를 검사하고 실패실패 (miss)(miss) 하면하면 주기억장치로부터 정보를 획득하여 캐시 기억장치에 전송주기억장치로부터 정보를 획득하여 캐시 기억장치에 전송 캐시 기억장치는 정보를 다시 중앙처리장치로 전송캐시 기억장치는 정보를 다시 중앙처리장치로 전송

CPU

1000 번지 워드

1001 번지 워드

1002 번지 워드

1003 번지 워드

주 기억장치

1

캐쉬 기억장치

21000 번지 워드

1001 번지 워드

1002 번지 워드

Page 10: 제  5  강   캐시 기억장치 (Cache Memory)

- 10 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 동작 원리캐시 기억장치의 동작 원리

캐시 기억장치가 있는 시스템에서 중앙 처리장치가 캐시 기억장치가 있는 시스템에서 중앙 처리장치가 10021002번지의 워드를 필요로 하는 경우번지의 워드를 필요로 하는 경우 캐시 기억장치 검사캐시 기억장치 검사 적중적중 (hit)(hit) 캐시 기억장치에서 얻어진 정보를 중앙처리장치로 전송캐시 기억장치에서 얻어진 정보를 중앙처리장치로 전송

주기억장치를 거치는 것보다 훨씬 빠른 속도로 정보 획득주기억장치를 거치는 것보다 훨씬 빠른 속도로 정보 획득

CPU

1000 번지 워드

1001 번지 워드

1002 번지 워드

1003 번지 워드

주 기억장치

1 캐쉬 기억장치

2

1000 번지 워드

1001 번지 워드

1002 번지 워드

Page 11: 제  5  강   캐시 기억장치 (Cache Memory)

- 11 -

IT COOKBOOKIT COOKBOOK참조의 지역성참조의 지역성 (locality of reference) (locality of reference)

캐시는 중앙처리장치가 수행할 명령어와 필요한 캐시는 중앙처리장치가 수행할 명령어와 필요한 정보를 저장하고 있다가 즉시 제공함으로써 처리가 정보를 저장하고 있다가 즉시 제공함으로써 처리가 신속하게 이루어지도록 함신속하게 이루어지도록 함

캐쉬 동작은 프로그램 내장형 컴퓨터의 특성인 캐쉬 동작은 프로그램 내장형 컴퓨터의 특성인 기억장치 참조의 지역성기억장치 참조의 지역성 (locality of (locality of reference)reference) 으로 인하여 가능으로 인하여 가능

참조의 지역성참조의 지역성주어진 시간 동안 중앙처리장치의 기억장치 참조는 주어진 시간 동안 중앙처리장치의 기억장치 참조는

제한된 영역에서만 이루어지는 현상제한된 영역에서만 이루어지는 현상짧은 시간 동안 중앙처리장치가 접근하는 범위는 짧은 시간 동안 중앙처리장치가 접근하는 범위는

지역적으로 제한되는 것을 의미지역적으로 제한되는 것을 의미

Page 12: 제  5  강   캐시 기억장치 (Cache Memory)

- 12 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 동작 순서 캐시 기억장치의 동작 순서

시작

Cache 내에 ?명령어 존재

CPU 로부터 주소 전달

명령어를 포함한 주기억 장치에 접근

획득한 명령어를CPU 로 전송

완료

주기억 장치로부터 명령 어 블럭을 전송받기 위한

캐쉬 슬롯 할당

주기억 장치의 명령어 블럭을 캐쉬에 저장

명령어 블럭을CPU 에 전송

아니오

Page 13: 제  5  강   캐시 기억장치 (Cache Memory)

- 13 -

IT COOKBOOKIT COOKBOOK적중률적중률 (Hit ratio)(Hit ratio)

캐시 기억장치 성능은 적중률캐시 기억장치 성능은 적중률 (hit ratio)(hit ratio) 에 의해 측정에 의해 측정

주기억장치와 캐시 기억장치 사이에서의 평균 기억장치 접근 주기억장치와 캐시 기억장치 사이에서의 평균 기억장치 접근 시간시간

TTaverageaverage = H = Hhit_ratiohit_ratio × T × Tcachecache + (1-H + (1-Hhit_ratiohit_ratio) × T) × Tmainmain

TTaverageaverage = = 평균 기억장치 접근시간평균 기억장치 접근시간TTmainmain = = 주기억장치 접근시간주기억장치 접근시간TTcachecache = = 캐시 기억장치 접근시간캐시 기억장치 접근시간HHhit_ratiohit_ratio = = 적중률적중률

캐시의 적중률이 높아질수록 평균 기억장치 접근 시간은 캐시 캐시의 적중률이 높아질수록 평균 기억장치 접근 시간은 캐시 액세스시간에 접근 액세스시간에 접근

횟수참조메모리전체적중수

적중률

Page 14: 제  5  강   캐시 기억장치 (Cache Memory)

- 14 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 설계캐시 기억장치의 설계

캐시 기억장치를 설계함에 있어 공통적인 목표캐시 기억장치를 설계함에 있어 공통적인 목표 캐시 적중 시 캐시 기억장치로부터 데이터를 읽어오는 시간을 짧게 캐시 적중 시 캐시 기억장치로부터 데이터를 읽어오는 시간을 짧게 캐시 실패 시 주기억장치로부터 캐시 기억장치로 데이터를 읽어 캐시 실패 시 주기억장치로부터 캐시 기억장치로 데이터를 읽어

오는 시간을 최소화 오는 시간을 최소화 주기억장치와 캐시 기억장치 사이에 데이터의 일관성을 유지주기억장치와 캐시 기억장치 사이에 데이터의 일관성을 유지

캐시 기억장치를 설계할 때 고려 사항캐시 기억장치를 설계할 때 고려 사항 캐시 기억장치의 크기캐시 기억장치의 크기 (Size)(Size) 인출방식인출방식 (fetch algorithm)(fetch algorithm) 사상함수사상함수 (Mapping function)(Mapping function) 교체 알고리즘교체 알고리즘 (Replacement algorithm)(Replacement algorithm) 쓰기 정책쓰기 정책 (write policy)(write policy) 블록 크기블록 크기 (Block size)(Block size) 캐시 기억장치의 수캐시 기억장치의 수 (Number of caches)(Number of caches)

Page 15: 제  5  강   캐시 기억장치 (Cache Memory)

- 15 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 크기와 인출 방식캐시 기억장치의 크기와 인출 방식

캐시 기억장치의 크기캐시 기억장치의 크기 용량이 커질수록 적중률은 높아지지만용량이 커질수록 적중률은 높아지지만 , , 이에 따른 비용 또한 증가이에 따른 비용 또한 증가 용량과 비용간의 조정을 통해 적절한 용량과 비용이 결정용량과 비용간의 조정을 통해 적절한 용량과 비용이 결정 용량이 커질수록 주소 해독 및 정보 인출을 위한 주변 회로가 더 용량이 커질수록 주소 해독 및 정보 인출을 위한 주변 회로가 더

복잡해지기 때문에 액세스 시간이 다소 더 길어진다복잡해지기 때문에 액세스 시간이 다소 더 길어진다 .. 인출방식인출방식

요구 인출요구 인출 (demand fetch) (demand fetch) 방식방식 현재 필요한 정보만 주기억장치로부터 인출해 오는 방식현재 필요한 정보만 주기억장치로부터 인출해 오는 방식

선인출선인출 (prefetch) (prefetch) 방식방식현재 필요한 정보 외에도 앞으로 필요할 것으로 예측되는 정보도 현재 필요한 정보 외에도 앞으로 필요할 것으로 예측되는 정보도

미리 인출하는 방식미리 인출하는 방식지역성지역성 (locality)(locality) 이 높은 경우에 효과가 높지만 그렇지 못한 이 높은 경우에 효과가 높지만 그렇지 못한

경우에는 인출 시간이 길어지기 때문에 효율이 떨어지게 된다경우에는 인출 시간이 길어지기 때문에 효율이 떨어지게 된다 . .

Page 16: 제  5  강   캐시 기억장치 (Cache Memory)

- 16 -

IT COOKBOOKIT COOKBOOK사상사상 (mapping)(mapping) 함수함수

주기억장치와 캐시 기억장치 사이에서 정보를 주기억장치와 캐시 기억장치 사이에서 정보를 옮기는 것옮기는 것직접사상직접사상 (direct mapping)(direct mapping)연관사상연관사상 (associative mapping) (associative mapping) 집합 연관사상집합 연관사상 (set-associative mapping)(set-associative mapping)

주소 데이터주소 태그 데이터

주기억장치 캐쉬 기억장치

00000

00001

00010

00011

000

001

111

CPU010

1. CPU에서 워드 요청

2. 캐쉬 기억장치에 요구한워드 존재하지 않음(Miss)

3. 주 기억장치에서 워드 획득

4. 캐쉬 기억장치 갱신

Page 17: 제  5  강   캐시 기억장치 (Cache Memory)

- 17 -

IT COOKBOOKIT COOKBOOK직접사상직접사상 (Direct mapping)(Direct mapping)

주기억장치의 블록이 특정 라인에만 적재주기억장치의 블록이 특정 라인에만 적재

캐시의 적중 여부는 그 블록이 적재 될 수 있는 캐시의 적중 여부는 그 블록이 적재 될 수 있는 라인만 검사라인만 검사

간단하고 비용이 저렴한 장점간단하고 비용이 저렴한 장점

주기억장치의 블록이 적재 될 수 있는 라인이 하나 주기억장치의 블록이 적재 될 수 있는 라인이 하나 밖에 없음밖에 없음프로그램이 동일한 라인에 적재되는 두 블록들을 프로그램이 동일한 라인에 적재되는 두 블록들을

반복적으로 액세스하는 경우 캐시 실패율이 매우 반복적으로 액세스하는 경우 캐시 실패율이 매우 높아진다높아진다 ..

Page 18: 제  5  강   캐시 기억장치 (Cache Memory)

- 18 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

중앙 처리장치가 중앙 처리장치가 0000100001 번지 워드를 필요로 하는 경우번지 워드를 필요로 하는 경우

주소 데이터

주소 태그 데이터주기억장치

캐쉬 기억장치

9999

1234

5678

9012

7890

00000

00001

00010

00011

10010 2750

000

001

111

10001

11111 2580

CPU 00001

1

2

010

000

001

111

010

(a) 실행 전

(b) 실행 후

주소

태그

일치001 001

00

캐쉬CPU 비교

데이터

태그

1234

00

변경후변경전

00 12343

Page 19: 제  5  강   캐시 기억장치 (Cache Memory)

- 19 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

1.1. 처음의 처음의 2-bits(00)2-bits(00) 는 태그는 태그 , , 다음 다음 3-3-bits(001)bits(001) 는 캐시 기억장치의 주소 표시는 캐시 기억장치의 주소 표시 . . 캐시 캐시 기억장치에서 기억장치에서 001001 번지 주소를 참조번지 주소를 참조 . . 해당 해당 번지가 비어 있으므로 실패번지가 비어 있으므로 실패 (miss) (miss) 주기억장치를 주기억장치를 참조참조

2.2. 주기억장치로부터 워드를 획득주기억장치로부터 워드를 획득

3.3. 캐시 기억장치의 해당 주소에 데이터와 태그 저장캐시 기억장치의 해당 주소에 데이터와 태그 저장

Page 20: 제  5  강   캐시 기억장치 (Cache Memory)

- 20 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

중앙 처리장치가 중앙 처리장치가 0001000010 번지 워드를 필요하는 번지 워드를 필요하는 경우경우

주소 데이터

주소 태그 데이터주기억장치

캐쉬 기억장치

9999

1234

5678

9012

7890

00000

00001

00010

00011

10010 2750

000

001

111

10001

11111 2580

CPU 00010

1

2

010

000

001

111

010

(a) 실행 전

(b) 실행 후

주소

태그

일치010 010

00

캐쉬CPU 비교

데이터

태그

5678

00

변경후변경전

123400

123400

5678003

Page 21: 제  5  강   캐시 기억장치 (Cache Memory)

- 21 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

1.1. 처음의 처음의 2-bits(00)2-bits(00) 는 태그를 나타내고는 태그를 나타내고 , , 다음 다음 3-bits(010)3-bits(010) 는 캐시 기억장치의 주소를 표시는 캐시 기억장치의 주소를 표시 . . 캐시 기억장치에서 캐시 기억장치에서 010010 번지 주소를 참조번지 주소를 참조 . . 해당 해당 번지가 비어 있으므로 실패번지가 비어 있으므로 실패 (miss) (miss) 주기억장치를 주기억장치를 참조참조

2.2. 주기억장치로부터 워드 획득주기억장치로부터 워드 획득

3.3. 캐시 기억장치의 해당 주소에 데이터와 태그 저장캐시 기억장치의 해당 주소에 데이터와 태그 저장

Page 22: 제  5  강   캐시 기억장치 (Cache Memory)

- 22 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

중앙 처리장치가 중앙 처리장치가 1000110001 번지 워드를 필요하는 번지 워드를 필요하는 경우 경우

주소 데이터

주소 태그 데이터주기억장치

캐쉬 기억장치

9999

1234

5678

9012

7890

00000

00001

00010

00011

10010 2750

000

001

111

10001

11111 2580

CPU 10001

1

2

010

000

001

111

010

(a) 실행 전

(b) 실행 후

주소

태그

일치

불일치

001 001

00 10

캐쉬CPU 비교

데이터

태그

7890

10

변경후

1234

00

변경전

123400

567800

789010

567800

3

Page 23: 제  5  강   캐시 기억장치 (Cache Memory)

- 23 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

1.1. 처음의 처음의 2-bits(10)2-bits(10) 는 태그를 표시하고는 태그를 표시하고 , , 다음 다음 3-bits(001)3-bits(001) 는 캐시 기억장치의 주소를 표시는 캐시 기억장치의 주소를 표시 . . 캐시 기억장치에서 캐시 기억장치에서 001001 번지 획득번지 획득 , , 태그가 태그가 0000으로 불일치으로 불일치

2.2. 주기억장치로부터 워드 획득주기억장치로부터 워드 획득

3.3. 캐시 기억장치의 해당 주소에 데이터와 태그 저장캐시 기억장치의 해당 주소에 데이터와 태그 저장

Page 24: 제  5  강   캐시 기억장치 (Cache Memory)

- 24 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

중앙 처리장치가 중앙 처리장치가 0001000010 번지 워드를 필요하는 번지 워드를 필요하는 경우 경우

주소 데이터주소 태그 데이터

주기억장치 캐쉬 기억장치

9999

1234

5678

9012

7890

00000

00001

00010

00011

10010 2750

000

001

111

10001

11111 2580

CPU 00010

1

2

010

주소

태그

일치

일치

010 010

00 00

캐쉬CPU 비교

789000

567800

Page 25: 제  5  강   캐시 기억장치 (Cache Memory)

- 25 -

IT COOKBOOKIT COOKBOOK직접 사상의 동작직접 사상의 동작

1.1. 처음의 처음의 2-bits(00)2-bits(00) 는 태그를 표시하고는 태그를 표시하고 , , 다음 다음 3-bits(010)3-bits(010) 는 캐시 기억장치의 주소를 표시는 캐시 기억장치의 주소를 표시 . . 캐시 기억장치에서 캐시 기억장치에서 010010 번지 획득번지 획득 , , 태그가 태그가 0000으로 일치으로 일치

2.2. 캐시 기억장치에서 워드 획득캐시 기억장치에서 워드 획득

Page 26: 제  5  강   캐시 기억장치 (Cache Memory)

- 26 -

IT COOKBOOKIT COOKBOOK연관사상연관사상 (Associative mapping)(Associative mapping)

주기억장치의 블록이 캐시의 어느 라인에든 적재될 주기억장치의 블록이 캐시의 어느 라인에든 적재될 수 있어 직접사상에서 발생하는 단점을 보완수 있어 직접사상에서 발생하는 단점을 보완

적중 검사가 모든 라인에 대해서 이루어져야 하므로 적중 검사가 모든 라인에 대해서 이루어져야 하므로 검사 시간이 길어진다검사 시간이 길어진다 . .

캐시 슬롯의 태그를 병렬로 검사하기 위해서는 매우 캐시 슬롯의 태그를 병렬로 검사하기 위해서는 매우 복잡하고 비용이 높은 회로가 필요하다복잡하고 비용이 높은 회로가 필요하다 . .

Page 27: 제  5  강   캐시 기억장치 (Cache Memory)

- 27 -

IT COOKBOOKIT COOKBOOK연관사상의 동작 연관사상의 동작

0000 'abcd'

0100 'fell'

0011 'info'

1010 'comp'

0001 'take'

1100 'tape'

0110 'down'

1111 'wake'

태그 데이터

태그 단어 데이터

00 'abcd'0000

00 'take'0001

000010

00 'info'0011

00 'fell'0100

000101

00 'down'0110

000111

001000

001001

00 'comp'1010

001011

00 'tape'1100

001101

001110

00 'wake'1111

슬롯번호

0

1

2

3

4

5

6

7

주 기억장치

캐쉬 기억장치

Page 28: 제  5  강   캐시 기억장치 (Cache Memory)

- 28 -

IT COOKBOOKIT COOKBOOK집합 연관사상 집합 연관사상 (Set-associative mapping)(Set-associative mapping)

직접사상과 연관사상 방식을 조합한 방식직접사상과 연관사상 방식을 조합한 방식 하나의 주소 영역이 서로 다른 태그를 갖는 여러 하나의 주소 영역이 서로 다른 태그를 갖는 여러

개의 집합으로 이루어지는 방식개의 집합으로 이루어지는 방식 두 개의 집합을 갖는 집합 연관 캐시 기억장치의 두 개의 집합을 갖는 집합 연관 캐시 기억장치의

구조 구조

111

000

주소 태그 데이터 태그 데이터

00 01

01 00

1 2 2 0 5 6 7 8

4 5 8 0 1 2 3 4

1집합 2집합

Page 29: 제  5  강   캐시 기억장치 (Cache Memory)

- 29 -

IT COOKBOOKIT COOKBOOK집합 연관사상 집합 연관사상 (Set-associative mapping)(Set-associative mapping)

집합 집합 11 과 집합 과 집합 2, 2, 두 개의 집합으로 구분두 개의 집합으로 구분

같은 주소 번지 같은 주소 번지 000 000 번지에 서로 다른 태그 번지에 서로 다른 태그 00, 00, 0101 로 구분되는 두 개의 데이터가 동시에 저장로 구분되는 두 개의 데이터가 동시에 저장

동일한 주소를 가지고 다른 태그 번호를 갖는 동일한 주소를 가지고 다른 태그 번호를 갖는 번지에 접근하는 경우 번지에 접근하는 경우 직접사상의 경우 실패직접사상의 경우 실패집합 연관사상 방식의 경우 적중집합 연관사상 방식의 경우 적중

Page 30: 제  5  강   캐시 기억장치 (Cache Memory)

- 30 -

IT COOKBOOKIT COOKBOOK두 개의 집합을 갖는 집합 연관 캐시 기억장치의 동작두 개의 집합을 갖는 집합 연관 캐시 기억장치의 동작

0집합

000 'abcd'

000 'take'

011 'down'

001 'info'

101 'comp'

111 'wake'

110 'tape'

태그 데이터

집합태그 단어 데이터

00 'abcd'000 0

00 'take'000 1

00001 0

00 'info'001 1

00 'fell'010 0

00010 1

00 'down'011 0

00011 1

00100 0

00100 1

00 'comp'101 0

00101 1

00 'tape'110 0

00110 1

00111 0

00 'wake'111 1

1집합

주 기억장치

캐쉬 기억장치

Page 31: 제  5  강   캐시 기억장치 (Cache Memory)

- 31 -

IT COOKBOOKIT COOKBOOK교체 알고리즘교체 알고리즘 (Replacement Algorithms)(Replacement Algorithms)

캐시 기억장치가 가득 차 있는 상태에서 캐시 캐시 기억장치가 가득 차 있는 상태에서 캐시 기억장치의 일부를 제거하고 주기억장치로부터 기억장치의 일부를 제거하고 주기억장치로부터 새로운 데이터를 가져와야 하는 경우 캐시의 내용을 새로운 데이터를 가져와야 하는 경우 캐시의 내용을 제거하는 방식제거하는 방식

직접사상 방식에서는 주기억장치의 데이터가 캐시 직접사상 방식에서는 주기억장치의 데이터가 캐시 기억장치의 같은 주소에 저장되기 때문에 교체 기억장치의 같은 주소에 저장되기 때문에 교체 알고리즘을 사용할 필요가 없다알고리즘을 사용할 필요가 없다 . .

연관사상 및 집합 연관사상 방식의 경우 교체 연관사상 및 집합 연관사상 방식의 경우 교체 알고리즘이 필요하게 된다알고리즘이 필요하게 된다 ..

Page 32: 제  5  강   캐시 기억장치 (Cache Memory)

- 32 -

IT COOKBOOKIT COOKBOOK교체 알고리즘교체 알고리즘 (Replacement Algorithms)(Replacement Algorithms)

교체 알고리즘 종류 내용

최소 최근 사용 (LRU : Least Recently Used)

알고리즘

현재까지 알려진 교체 알고리즘 중에서 가장 효과적인 교체 알고리즘으로 이 방식은 캐시 기억장치 내에서 사용되지 않은 채로 가장 오랜 있었던 블록을 교체하는 방식이다 .

최소 사용 빈도 (LFU : Least Frequently Used) 알고리즘

캐시 기억장치에 적재된 후 가장 적게 사용된 블록을 교체하는 방식이다 .

선입력 선출력 (FIFO: First In First Out)

알고리즘

캐시 기억장치에 적재된 지 가장 오래된 블록을 교체하는 방식이다 .

랜덤 (Random)캐시 기억장치에서 임의의 블록을 선택하여 교체하는 방식이다 .

Page 33: 제  5  강   캐시 기억장치 (Cache Memory)

- 33 -

IT COOKBOOKIT COOKBOOK쓰기 정책쓰기 정책 (Write Policy)(Write Policy)

CPUCPU 가 프로그램을 수행하는 동안 결과를 캐시 기억장치에 가 프로그램을 수행하는 동안 결과를 캐시 기억장치에 쓰는 경우쓰는 경우 , , 캐시 기억장치와 주기억장치에 기록하는 시점캐시 기억장치와 주기억장치에 기록하는 시점

즉시 쓰기즉시 쓰기 (Write-though) (Write-though) 방식방식 모든 쓰기 동작이 캐시뿐만 아니라 주기억장치에서도 동시에 발생모든 쓰기 동작이 캐시뿐만 아니라 주기억장치에서도 동시에 발생 주기억장치와 캐시 기억장치가 항상 동일한 내용을 기록주기억장치와 캐시 기억장치가 항상 동일한 내용을 기록 기억장치들 간 접근이 빈번하게 일어나고 쓰기 시간이 길어지게 기억장치들 간 접근이 빈번하게 일어나고 쓰기 시간이 길어지게

된다된다 .. 나중 쓰기나중 쓰기 (Write-back) (Write-back) 방식방식

새로운 데이터가 캐시에서만 갱신새로운 데이터가 캐시에서만 갱신 캐시에서 데이터 내용이 변경된 적이 있다면 교체되기 전에 먼저 캐시에서 데이터 내용이 변경된 적이 있다면 교체되기 전에 먼저

주기억장치에 갱신주기억장치에 갱신 주기억장치와 캐시 기억장치의 데이터가 서로 일치하지 않는 경우도 주기억장치와 캐시 기억장치의 데이터가 서로 일치하지 않는 경우도

발생발생 쓰는 시간이 짧은 장점쓰는 시간이 짧은 장점

Page 34: 제  5  강   캐시 기억장치 (Cache Memory)

- 34 -

IT COOKBOOKIT COOKBOOK쓰기 정책쓰기 정책

CPU

캐쉬

주기억 장치

CPU

캐쉬

주기억 장치

(a) 즉시 쓰기(Write-though) (b) 나중 쓰기(Write-back)

Page 35: 제  5  강   캐시 기억장치 (Cache Memory)

- 35 -

IT COOKBOOKIT COOKBOOK캐시의 수캐시의 수 (Number of Caches)(Number of Caches)

최근에는 캐시 기억장치들이 계층적 구조로 설치 최근에는 캐시 기억장치들이 계층적 구조로 설치 되거나 기능별로 분리된 다수의 캐시 기억장치들을 되거나 기능별로 분리된 다수의 캐시 기억장치들을 사용하는 것이 보편화 되었다사용하는 것이 보편화 되었다 . .

온온 -- 칩칩 (On-chip) (On-chip) 캐시 기억장치캐시 기억장치캐시 기억장치를 캐시 기억장치를 CPUCPU 의 내부에 포함시키는 것의 내부에 포함시키는 것

오프오프 -- 칩칩 (Off-Chip) (Off-Chip) 캐시 기억장치 또는 외부 캐시 기억장치 또는 외부 캐시 기억장치캐시 기억장치캐시 기억장치가 캐시 기억장치가 CPU CPU 외부에 위치외부에 위치

최근의 고성능 컴퓨터 들은 온최근의 고성능 컴퓨터 들은 온 -- 칩 캐시 기억장치칩 캐시 기억장치와와 , , 외부 기억장치를 동시에 포함하고 있다외부 기억장치를 동시에 포함하고 있다 . .

Page 36: 제  5  강   캐시 기억장치 (Cache Memory)

- 36 -

IT COOKBOOKIT COOKBOOK캐시의 수캐시의 수 (Number of Caches)(Number of Caches)

계층적 캐시계층적 캐시 (Hierarchical Cache)(Hierarchical Cache)온온 -- 칩 캐시를 칩 캐시를 11 차 캐시차 캐시 (L1)(L1) 로 사용 하고 칩 외부에 더 로 사용 하고 칩 외부에 더

큰 용량의 오프큰 용량의 오프 -- 칩 캐시를 칩 캐시를 22 차 캐시차 캐시 (L2)(L2) 로 설치하는 로 설치하는 방식방식

CPU

L2

주기억 장치

L1

Page 37: 제  5  강   캐시 기억장치 (Cache Memory)

- 37 -

IT COOKBOOKIT COOKBOOK계층적 캐시 기억장치계층적 캐시 기억장치

계층적 캐시 기억장치를 조사할 때는 먼저 계층적 캐시 기억장치를 조사할 때는 먼저 L1L1 을 검사하고 실패인 경우 을 검사하고 실패인 경우 L2L2 를 검사하고 를 검사하고 L2L2 도 실패인 경우 주기억장치 조사도 실패인 경우 주기억장치 조사

L1 L1 캐시기억장치는 속도는 빠르지만 용량이 작기 때문에 적중률이 캐시기억장치는 속도는 빠르지만 용량이 작기 때문에 적중률이 L2L2 에 비해 낮다에 비해 낮다 ..

계층적 캐시 기억장치구조에서 평균기억장치 접근시간계층적 캐시 기억장치구조에서 평균기억장치 접근시간

TTaverageaverage = H = HL1L1 × T × TL1L1 + (H + (HL2L2 - H - HL1L1) × T) × TL2L2 + (1 - H + (1 - HL2L2) × T) × Tmainmain

TTaverageaverage = = 평균 기억장치 접근시간평균 기억장치 접근시간TTmainmain = = 주기억장치 접근시간주기억장치 접근시간TTL1L1 = L1 = L1 캐시 기억장치 접근시간캐시 기억장치 접근시간TTL2L2 = L2 = L2 캐시 기억장치 접근시간캐시 기억장치 접근시간HHL1L1 = L1 = L1 캐시 적중률캐시 적중률HHL2L2 = L2 = L2 캐시 적중률캐시 적중률

Page 38: 제  5  강   캐시 기억장치 (Cache Memory)

- 38 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 통합과 분리캐시 기억장치의 통합과 분리

통합 캐시 통합 캐시 온온 -- 칩 캐시 기억장치에서 데이터와 명령어들을 모두 칩 캐시 기억장치에서 데이터와 명령어들을 모두

저장 하는 형태저장 하는 형태분리 캐시보다 적중률이 더 높다분리 캐시보다 적중률이 더 높다 . . 이유는 명령어와 이유는 명령어와

데이터간의 균형을 자동적으로 유지해주기 때문이다데이터간의 균형을 자동적으로 유지해주기 때문이다 . . 분리 캐시분리 캐시

명령어만 저장하는 명령어 캐시와 데이터만 저장하는 명령어만 저장하는 명령어 캐시와 데이터만 저장하는 데이터 캐시로 분리하여 두 개의 온데이터 캐시로 분리하여 두 개의 온 -- 칩 캐시를 사용칩 캐시를 사용

고성능 프로세서에서는 활용 경향이 뚜렷고성능 프로세서에서는 활용 경향이 뚜렷장점은 명령어 인출과 실행 유니트 간 캐시의 충돌이 장점은 명령어 인출과 실행 유니트 간 캐시의 충돌이

발생하지 않는다발생하지 않는다 . .

Page 39: 제  5  강   캐시 기억장치 (Cache Memory)

- 39 -

IT COOKBOOKIT COOKBOOKPentium IIPentium II 의 캐시 조직 블록도 의 캐시 조직 블록도

Bus Interface Unit

System BusL2 Cache

L1Instruction

cacheL1 data Cache

Instruction Pool

Instructionfetch and

decode UnitRetire Unit

Dispatch andExecute Unit

Fetch StoreLoad

Page 40: 제  5  강   캐시 기억장치 (Cache Memory)

- 40 -

IT COOKBOOKIT COOKBOOKPower PC G3Power PC G3 의 캐시 조직 블록도 의 캐시 조직 블록도

SimpleInteger Unit

ComplexInteger Unit

IntegerRegisters

Load/StoreUnit

Floating -Point

Registers

Floating -Point ALU

InsructionCache

Date Cache

InstructionUnit

L2 BusInterface

Page 41: 제  5  강   캐시 기억장치 (Cache Memory)

- 41 -

IT COOKBOOKIT COOKBOOK다중 프로세서를 사용하는 시스템에서의 캐시 기억장치다중 프로세서를 사용하는 시스템에서의 캐시 기억장치

다중 프로세서 시스템다중 프로세서 시스템단일 시스템 버스에 여러 개의 단일 시스템 버스에 여러 개의 CPUCPU 들이 접속들이 접속

캐시 기억장치의 쓰기 정책인 즉시 쓰기 정책과 나중 캐시 기억장치의 쓰기 정책인 즉시 쓰기 정책과 나중 쓰기 정책을 사용하는 경우 주기억장치와 각각의 쓰기 정책을 사용하는 경우 주기억장치와 각각의 CPUCPU에 해당되는 캐시 기억장치들 사이에 데이터의 불일치 에 해당되는 캐시 기억장치들 사이에 데이터의 불일치 현상 발생현상 발생

여러 개의 여러 개의 CPUCPU 와 그에 따르는 캐시들간의 데이터의 와 그에 따르는 캐시들간의 데이터의 불일치 현상은 프로그램이 올바르게 동작하지 않은 원인불일치 현상은 프로그램이 올바르게 동작하지 않은 원인

Page 42: 제  5  강   캐시 기억장치 (Cache Memory)

- 42 -

IT COOKBOOKIT COOKBOOK다중 프로세서를 사용하는 시스템에서의 캐시 기억장치다중 프로세서를 사용하는 시스템에서의 캐시 기억장치

CPU 1

D

CPU 2

D

CPU 3

캐쉬

CPU

D 주 기억장치

시스템 버스

Page 43: 제  5  강   캐시 기억장치 (Cache Memory)

- 43 -

IT COOKBOOKIT COOKBOOK즉시 쓰기즉시 쓰기 (write-though) (write-though) 정책에서의 데이터의 불일치 상태 정책에서의 데이터의 불일치 상태

CPU 1

X

CPU 2

D

CPU 3

캐쉬

CPU

X 주 기억장치

시스템 버스

Page 44: 제  5  강   캐시 기억장치 (Cache Memory)

- 44 -

IT COOKBOOKIT COOKBOOK나중 쓰기나중 쓰기 (write-back) (write-back) 정책에서의 데이터의 불일치 상태정책에서의 데이터의 불일치 상태

CPU 1

X

CPU 2

D

CPU 3

캐쉬

CPU

D 주 기억장치

시스템 버스

Page 45: 제  5  강   캐시 기억장치 (Cache Memory)

- 45 -

IT COOKBOOKIT COOKBOOK캐시 기억장치의 데이터 일관성 유지 방법캐시 기억장치의 데이터 일관성 유지 방법

공유 캐시 기억장치를 사용하는 방법공유 캐시 기억장치를 사용하는 방법 시스템에 있는 다수의 프로세서가 하나의 캐시 기억장치를 공유시스템에 있는 다수의 프로세서가 하나의 캐시 기억장치를 공유 캐시 기억장치의 데이터들이 항상 일관성 있게 유지되는 장점캐시 기억장치의 데이터들이 항상 일관성 있게 유지되는 장점 다중 프로세서들이 동시에 캐시 기억장치에 접근하면 다중 프로세서들이 동시에 캐시 기억장치에 접근하면

프로세서들간의 충돌이 발생프로세서들간의 충돌이 발생 공유 변수는 캐시 기억장치에 저장하지 않는 방법공유 변수는 캐시 기억장치에 저장하지 않는 방법

수정 가능한 데이터는 캐시 기억장치에 저장하지 않는 방법수정 가능한 데이터는 캐시 기억장치에 저장하지 않는 방법 캐시 기억장치에 저장 가능 여부를 사용자가 선택하여 선언해 캐시 기억장치에 저장 가능 여부를 사용자가 선택하여 선언해

주어야 하는 단점이 있다주어야 하는 단점이 있다 .. 버스 감시 시스템을 사용하는 방법버스 감시 시스템을 사용하는 방법

시스템 버스에 데이터의 일관성 유지를 위해 감시 기능을 가진 시스템 버스에 데이터의 일관성 유지를 위해 감시 기능을 가진 장비를 시스템 버스상에 추가로 설치장비를 시스템 버스상에 추가로 설치

모든 데이터 들은 캐시 기억장치에 저장이 가능하며 어떤 캐시 모든 데이터 들은 캐시 기억장치에 저장이 가능하며 어떤 캐시 기억장치가 데이터를 수정했다면 그 정보를 다른 캐시 기억장치와 기억장치가 데이터를 수정했다면 그 정보를 다른 캐시 기억장치와 주기억장치에 알려주게 된다주기억장치에 알려주게 된다 . .

시스템 버스에 통신 량이 증가하는 단점이 있다시스템 버스에 통신 량이 증가하는 단점이 있다 . .