5 장 . 캐시 기억장치

32
1 5 장 . 장장 장장장장 다다다 다다 다다다 다다다다 다다다다 다다 다다다다 다다다 다다다다다 다다다 다다 다다 다다다다 다다 다다 다다다다다 다다 다다 다다다다다 다다다다 다다다다다다 다다 다다다다

Upload: melvin-higgins

Post on 31-Dec-2015

169 views

Category:

Documents


7 download

DESCRIPTION

5 장 . 캐시 기억장치. 다루는 내용 컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리 캐시 기억장치의 설계 다중 프로세서를 사용하는 시스템에서의 캐시 기억장치. Section 01 컴퓨터 본체에서 기억장치 위치 살펴보기. [그림 5-1] 메인보드에서의 메모리 위치. Section 02 컴퓨터 기억장치의 계층적 구조. 기억장치의 용량 , 접근 속도 , 가격의 상관관계 데이터의 읽고 , 쓰기 속도를 향상시키기 위해서는 고가이지만 고속의 기억장치가 필요 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 5 장 .  캐시 기억장치

1

5 장 . 캐시 기억장치

다루는 내용 컴퓨터 본체에서 기억장치 위치 살펴보기

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

캐시 기억장치 원리

캐시 기억장치의 설계

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

Page 2: 5 장 .  캐시 기억장치

2

Section 01 컴퓨터 본체에서 기억장치 위치 살펴보기

[ 그림 5-1] 메인보드에서의 메모리 위치

Page 3: 5 장 .  캐시 기억장치

3

Section 02 컴퓨터 기억장치의 계층적 구조

기억장치의 용량 , 접근 속도 , 가격의 상관관계 데이터의 읽고 , 쓰기 속도를 향상시키기 위해서는 고가이지만 고속의 기억장치가 필요 데이터를 많이 저장하기 위해서 기억장치는 대용량이 필요하나 적정 비용을 위해 저가의 기억장치 필요 저가의 기억장치를 사용하면 기억장치의 접근속도는 그만큼 감소하게 된다 .

적절한 상호 조정이 필요하며 , 이를 위해서 기억장치 계층 구조가 이용됨

Page 4: 5 장 .  캐시 기억장치

4

기억장치의 계층 구조

[ 그림 5-2] 기억장치의 계층 구조

Page 5: 5 장 .  캐시 기억장치

5

Section 03 캐시 기억장치 원리

빠른 접근 시간을 제공하는 기억장치

명령어나 오퍼랜드를 주기억장치로부터 가져와 저장하고 있다가 고속으로 중앙처리장치에 제공

[ 그림 5-4] 캐시 기억장치

Page 6: 5 장 .  캐시 기억장치

6

캐시 기억장치의 동작 원리

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

캐시 기억장치에 접근하여 그 내용을 찾았을 때 적중 (hit) : 빠르게 제공 가능 캐시 기억장치에서 찾지 못하였을 경우 실패 (miss) : 기억장치에서 가져와야 함 . 느림 .

Page 7: 5 장 .  캐시 기억장치

7

캐시 기억장치의 동작 원리

CPU 가 1000 번지 워드를 필요로 하는 경우

CPU 가 1002 번지의 워드를 필요로 하는 경우

[ 그림 5-7] 캐시 기억장치의 동작 원리 2

[ 그림 5-6] 캐시 기억장치의 동작 원리1

Page 8: 5 장 .  캐시 기억장치

8

주어진 시간 동안 중앙처리장치의 기억장치 참조는 제한된 영역에서만 이루어지는 현상

짧은 시간 동안 중앙처리장치가 접근하는 범위는 지역적으로 제한되는 것을 의미

참조의 지역성

Page 9: 5 장 .  캐시 기억장치

9

캐시 기억장치의 동작 순서[ 그림 5-9] 캐시 기억장치의 동작 순서

Page 10: 5 장 .  캐시 기억장치

10

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

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

Taverage = Hhit_ratio × Tcache + (1-Hhit_ratio) × Tmain

Taverage = 평균 기억장치 접근시간Tmain = 주기억장치 접근시간Tcache = 캐시 기억장치 접근시간Hhit_ratio = 적중률

적중률이 높으면 평균 기억장치 접근 시간은 캐시 액세스 시간에 접근

적중률 (Hit ratio)

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

적중률

Page 11: 5 장 .  캐시 기억장치

11

Section 04 캐시 기억장치의 설계

캐시 기억장치를 설계함에 있어 공통적인 목표적중 시 캐시 기억장치로부터 데이터를 읽어오는 시간을 짧게 실패 시 주기억장치로부터 캐시로 데이터를 읽는 시간을 최소화 주기억장치와 캐시 사이에 데이터의 일관성을 유지

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

Page 12: 5 장 .  캐시 기억장치

12

캐시 기억장치의 크기용량이 크면 적중률은 높지만 , 비용 또한 증가

• 적절한 용량과 비용 결정 필요

용량이 크면 주변 회로가 더 복잡해져 액세스 시간이 더 길어진다 .

인출방식요구 인출 (demand fetch) 방식

• 현재 필요한 정보만 주기억장치로부터 인출해 오는 방식

선인출 (prefetch) 방식• 현재 필요 정보와 앞으로 필요할 예측 정보도 미리 인출• 지역성이 높은 경우에 효과적이지만 그렇지 못한 경우 효율이 저하

캐시의 크기와 인출 방식

Page 13: 5 장 .  캐시 기억장치

13

주기억장치와 캐시 사이에서 정보를 옮기는 것직접사상 (direct mapping)

연관사상 (associative mapping)

집합 연관사상 (set-associative mapping)

사상 (mapping) 함수

[ 그림 5-10] 사상함수

Page 14: 5 장 .  캐시 기억장치

14

직접사상 (Direct mapping)

주기억장치의 블록이 특정 라인에만 적재주기억장치의 블록이 적재 될 수 있는 라인이 하나 밖에 없음 캐시의 적중 여부는 그 블록이 적재 될 수 있는 라인만 검사특징

간단하고 비용이 저렴한 장점프로그램이 동일한 라인에 적재되는 두 블록들을 반복적으로 액세스하는 경우 캐시 실패율이 매우 높아진다 .

Page 15: 5 장 .  캐시 기억장치

15

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

직접 사상의 동작

[ 그림 5-13] 직접 사상 3

주소 데이터

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

캐쉬 기억장치

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

10 00

캐쉬CPU 비교

데이터

태그

7890

10

변경후

1234

00

변경전

123400

567800

789010

567800

3

Page 16: 5 장 .  캐시 기억장치

16

직접 사상의 동작

처음의 2-bits(10) 는 태그를 표시하고 , 다음 3-bits(001)

는 캐시 기억장치의 주소를 표시 .

캐시 기억장치에서 001 번지 획득 , 태그가 00 으로 불일치

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

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

Page 17: 5 장 .  캐시 기억장치

17

직접 사상의 동작

CPU 00010 번지 워드를 필요하는 경우

[ 그림 5-14] 직접 사상 4

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

주기억장치 캐쉬 기억장치

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 18: 5 장 .  캐시 기억장치

18

직접 사상의 동작

처음의 2-bits(00) 는 태그를 표시하고 , 다음 3-bits(010)는 캐시 기억장치의 주소를 표시

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

캐시 기억장치에서 010 번지 획득 , 태그가 00 으로 일치

Page 19: 5 장 .  캐시 기억장치

19

연관사상 (Associative mapping)

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

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

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

Page 20: 5 장 .  캐시 기억장치

20

연관사상의 동작

[ 그림 5-15] 연관 사상의 동작

Page 21: 5 장 .  캐시 기억장치

21

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

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

[ 그림 5-16] 두 개의 집합을 갖는 집합 연관 캐시 기억장치의 구조

Page 22: 5 장 .  캐시 기억장치

22

집합 1 과 집합 2, 두 개의 집합으로 구분같은 주소 번지 000 번지에 서로 다른 태그 00, 01 로 구분되는 두 개의 데이터가 동시에 저장동일한 주소를 가지고 다른 태그 번호를 갖는 번지에 접근하는 경우

직접사상의 경우 실패집합 연관사상 방식의 경우 적중

집합 연관사상

Page 23: 5 장 .  캐시 기억장치

23

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

[ 그림 5-17] 두 개의 집합을 갖는 집합 연관 캐시 기억장치의 동작

Page 24: 5 장 .  캐시 기억장치

24

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

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

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

교체 알고리즘

Page 25: 5 장 .  캐시 기억장치

25

교체 알고리즘

[ 표 5-2] 교체 알고리즘 종류

교체 알고리즘 종류 내용

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

알고리즘

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

최소 사용 빈도 (LFU : Least Frequently Used)

알고리즘

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

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

알고리즘

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

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

Page 26: 5 장 .  캐시 기억장치

26

쓰기 정책 (Write Policy)

캐시와 주기억장치에 기록하는 시점

즉시 쓰기 (Write-though) 방식쓰기 동작이 캐시와 주기억장치에서 동시에 발생주기억장치와 캐시 기억장치가 항상 동일한 내용을 기록기억장치들 간 접근이 빈번하고 쓰기 시간이 길어진다 .

나중 쓰기 (Write-back) 방식새로운 데이터가 캐시에서만 갱신캐시에서 데이터 변경이 있다면 교체 전 먼저 주기억장치에 갱신주기억장치와 캐시의 데이터가 서로 일치하지 않는 경우도 발생쓰는 시간이 짧은 장점

Page 27: 5 장 .  캐시 기억장치

27

계층적 캐시 (Hierarchical Cache)온 - 칩 (On-chip) 캐시를 1 차 캐시 (L1) 로 사용 하고 칩 외부에 더 큰 용량의 오프 - 칩 (Off-Chip) 캐시를 2 차 캐시 (L2) 로 설치

캐시의 수

[ 그림 5-19] 계층적 캐시

Page 28: 5 장 .  캐시 기억장치

28

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

[ 그림 5-22] 다중 프로세서 시스템에서의 캐시 기억장치

Page 29: 5 장 .  캐시 기억장치

29

즉시 쓰기 정책에서의 데이터의 불일치 상태

[ 그림 5-23] 즉시 쓰기 정책에서의 데이터 불일치

Page 30: 5 장 .  캐시 기억장치

30

나중 쓰기 정책에서의 데이터의 불일치 상태

[ 그림 5-24] 나중 쓰기 정책에서의 데이터 불일치

Page 31: 5 장 .  캐시 기억장치

31

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

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

버스 감시 시스템을 사용하는 방법일관성 유지를 위해 감시 장비를 시스템 버스상에 추가로 설치모든 데이터 들은 캐시 기억장치에 저장이 가능 , 캐시가 데이터를 수정했다면 그 정보를 다른 캐시와 주기억장치에 알려주게 된다 . 시스템 버스에 통신 량이 증가하는 단점이 있다

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

Page 32: 5 장 .  캐시 기억장치

Thank you