1. 개념

주기억장치에 저장되어 있는 명령어와 데이터 중의 일부를 임시적으로 복사해서 저장하는 장치

cpu안에 있는 것이 아니며 주기억장치와 분리되어 있다. cpu안에 있는 것은 레지스터이다.

 

 

2. 특징

자주 사용되는 명령어들을 저장하고 있다가 cpu가 필요할 때 빠르게 제공하며 데이터를 저장하고 인출하는 속도가 주기억장치보다 빠르다. 속도가 주기억장치보다 빠르고 cpu보다 느리기 때문에 둘의 속도 차이를 줄여주는 고속완충기억장치이며 용량이 작고 비싸지만 빠르다는 장점이 있다.

 

 

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

-동작원리

1단계: CPU가 명령어와 데이터를 인출하기 위해서 주기억장치에 접근한다.

2단계: 주기억장치에서 명령어나 필요한 정보를 획득하여 CPU내의 명령어 레지스터 등에 저장한다.

 

-특징: 주기억장치에 매번 접근해야하기 때문에 속도가 너무 느리다는 단점이 있다.

 

 

4. 캐시 기억장치가 있는 시스템

-동작원리

CPU가 명령어 또는 데이터를 인출하기 위해 주기억장치보다 캐시기억장치를 먼저 조사한다. 만약 캐시기억장치에서 그 명령어 또는 데이터가 있으면 적중(hit)이라고 하고, 없으면 실패(miss)라고 한다.

 

적중일 경우 주기억장치를 방문하지 않고 캐시기억장치에서 얻어진 정보를 CPU로 전송한다.

실패일 경우 주기억장치 들려서 캐시기억장치에 넣고 캐시에서 가져온다. 이때, 굳이 캐시에 넣고 다시 캐시에서 꺼내오는 이유는 나중에 다시 쓸 수도 있기 때문이다.

 

 

4-1. miss

CPU가 1000번지의 워드가 필요한 경우, 지금 상황에서는 캐시기억장치가 빈 상태이기 때문에 실패상태가 된다. 

실패상태일 경우 1000번지가 필요하니까 1000번지를 가져오는데 1001, 1002, 1003도 나중에 CPU가 사용할 것이라고 유추되면 가져온다.

 

 

4-2. hit

CPU가 1002번지의 워드가 필요한 경우

캐시기억장치에 먼저 접근해서 1002번지 워드가 있는지 검사하는데 지금 상황의 경우 캐시기억장치에 1002번 워드가 있기 때문에 주기억장치에 접근하지 않고 캐시기억장치에서 바로 가져온다.

 

 

5. 캐시 기억장치의 적중률

적중률: 캐시 기억장치의 성능을 나타내는 척도

적중률이 높을수록 데이터 액세스 속도가 향상된다.

적중률은 0에서 1사이의 값으로 나타낼 수 있으며 예를들어 10번 캐시기억장치에 접근했을 때 3번 hit을 했다면 3/10으로 적중률은 0.3(30%)이다.

 

이를 기반으로 주기억장치와 캐시기억장치에서 데이터를 인출하는데 소요되는 평균 기억장치 접근시간을 알 수 있다.

Taverage

주기억장치와 캐시기억장치에서 데이터를 인출하는데 소요되는 평균 기억장치 접근 시간

Tmain

주기억장치 접근시간

Tcache

캐시기억장치 접근 시간

Hhit_ratio

적중률

결론적으로 Taverage = Hhit_ratio * Tcache + (1-Hhit_ratio) * Tmain으로 구할 수 있다.

 

예제) Tcache = 50ns, Tmain = 400ns일 때, 적중률을 증가시키면서 기억장치 접근시간 계산을 하면

적중률 70% Taverage = 0.7 * 50ns + 0.3 * 400ns = 155ns
적중률 80% Taverage = 0.8 * 50ns + 0.2 * 400ns = 120ns
적중률 90% Taverage = 0.9 * 50ns + 0.1 * 400ns = 85ns
적중률 95% Taverage = 0.95 * 50ns + 0.05 * 400ns = 67.5ns
적중률 99% Taverage = 0.99 * 50ns + 0.01 * 400ns = 53.5ns

여기서 알 수 있는 점은 먼저 Tcache, Tmain 값을 봤을 때 캐시 접근이 훨씬 적은 시간이 걸린다는 것과, 적중률이 커지면서 주기억장치에 접근하는 횟수가 적어지기 때문에 결론적인 기억장치 접근시간이 훨씬 줄어드는 것이다.

 

 

6. 캐시 기억장치의 설계

주기억장치와 캐시기억장치 간의 정보 공유

워드는 CPU가 한 번에 처리할 수 있는 데이터 단위이고 이 워드들이 모이면 블록이된다.

 

*캐시기억장치 설계시 고려해야할 요소

캐시기억장치의 크기(size)

인출방식(fetch algorithm)

사상함수(mapping function)

교체 알고리즘(replacement algorithm)

쓰기 정책(write policy)

블록 크기(block size)

캐시기억장치의 수(number of caches)

 

 

6-1. 캐시 기억장치의 크기

-캐시기억장치의 크기가 클수록 확보할 수 있는 요량이 커지기 때문에 적중률은 높아지지만 즉 hit하는 횟수가 많아지지만 캐시 내용을 모두 확인하는데 시간이 많이 걸리기 때문에 평균 접근 시간과 비용이 증가한다.

-적중률을 향상시키고 평균 접근시간에 대한 저하를 막는 최적의 크기 결정이 필요한데 1K ~ 128K 단어(word)가 최적이라고 한다.

 

 

6-2. 인출 방식

인출방식이란 주기억장치에서 캐시기억장치로 명령어나 데이터 블록을 인출해 오는 방식이다.

요구인출(Demand Fetch) 방식 CPU가 현재 필요한 정보만을 주기억장치에서 블록 단위로 인출해 오는 방식
선인출(Prefetch) 방식 CPU가 현재 필요한 정보 외에도 앞으로 필요할 것이 예측되는 정보도 미리 인출하여 캐시기억장치에 저장하는 방식이다. 예를 들어 어떠한 데이터를 인출할 때 그 정보와 이웃한 위치에 있는 정보들을 함께 인출하여 캐시에 적재한다. 이는 정보를 예측하기위해 학습시켜야하기 때문에 요구인출보다 어려운 방식이다.

 

 

6-3. 사상함수

사상이란 Mapping이라고 하며 주기억장치와 캐시기억장치 사이에서 정보를 옮기는 것을 말한다.

먼저 주기억장치의 구조를 보면 하나의 주소번지에 저장되는 데이터의 단위를 단어(word)라고 하며 단어가 모이면 블록이된다. 캐시기억장치의 구조를 보면 슬롯과 태그가 있는데 슬롯은 데이터 블록이 저장되는 장소이고, 태그는 슬롯에 적재된 데이터 블록을 구분해주는 정보이다.

캐시기억장치의 사상방법에는 직접사상, 연관사상, 집합 연관 사상으로 총 3가지가 있다.

 

6-3-1. 직접 사상(direct mapping)

특징: 캐시기억장치로부터 데이터 블록 인출을 위해 데이터 블록의 슬롯번호에 해당하는 슬롯만 검색하면 된다.

장점: 사상 과정이 간단함

단점: 동일 슬롯 번호를 갖지만 태그가 다른 데이터 블록들에 대한 반복적인 접근은 적중률을 떨어뜨림

 

예제)

1

CPU가 00001번지의 블록을 필요로 하는 경우 실행 전 캐시기억장치는 비어있기 때문에 먼저 주기억장치의 주소를 2개, 3개로 잘라서 앞에 00은 태그로, 뒤에 001은 슬롯번호로 가며 데이터는 그대로 데이터로 넣는다.

2

CPU가 10001번지 블록을 필요로하는 경우도 예제 1번과 똑같이 진행된다.

3

하지만 CPU가 00010번지 블록을 필요로 하는 경우 예제1번과 슬롯번호가 같기 때문에 혼동이 생기며, 태그번호는 다르기 때문에 다시 주기억장치에서 새로 데이터를 가져온다.

4

다음으로 CPU가 00010번지의 블록을 필요로하는 경우 아까 예제 2에서 캐시 기억장치에 넣어놨으니 주기억장치에 접근하지 않고 캐시기억장치에서 바로 데이터를 가져온다.

 

 

6-3-2. 연관 사상(associative mapping)

캐시슬롯번호에 상관없이 주기억장치의 데이터블록을 캐시기억장치의 임의의 위치에 저장한다.

특징: 캐시기억장치로부터 데이터 블록 인출을 위해서 모든 슬롯에 대한 검색이 필요하다.

 

 

6-3-4. 집합 연관 사상(set-associative mapping)

직접 사상과 연관 사상 방식을 조합한 방식으로 아주 중요하다!

캐시는 v개의 집합들로 나뉘며, 각 집합들은 k개의 슬롯으로 구성된다.

직접 사상 방식에 의해 v개의 집합들 중 하나의 집합을 선택하고, 연관 사상 방식에 의해 선택한 집합 내의 k개의 슬롯 중에 하나의 슬롯을 선택한다.

집합은 무작위로 설정되며 여기서 하나의 집합에는 2개의 데이터 즉 2개의 태그가 있다.

 

 

 6-4. 교체 알고리즘

캐시기억장치의 모든 슬롯이 데이터로 채워져있는 상태 즉 full인 상태에서 실패일 때, 주기억장치에서 새로운 데이터 블록을 가져와서 캐시기억장치에 넣어야하는데 이 때 캐시에 있던 데이터 중 무엇을 제거할지 결정하는 방식이다.

직접사상은 교체 알고리즘이 필요지만 연관, 집합 연관 사상에는 교체 알고리즘이 필요하다.

 

종류

LRU(Least Recently Used) 최소 최근 사용 알고리즘
LFU(Least Frequently Used) 최소 사용 빈도 알고리즘
FIFO(First in First out) 선입력 선출력 알고리즘
Random 랜덤

 

 

6-5. 쓰기 정책

-즉시쓰기(Write-though) 방식

CPU에서 생성되는 데이터 블록을 캐시기억장치와 주기억장치에 동시에 기록한다. 이는 데이터의 일관성을 쉽게 보장할 수 있지만 매번 쓰기 동작이 발생할 때바다 캐시기억장치와 주기억장치간 접근이 빈번하게 일어나고 쓰기시간이 길어지게 된다는 단점이 있다.

 

-나중쓰기(Write-back) 방식

캐시기억장치에 기록한 후, 기록된 블록에 대한 교체가 일어날 때 주기억장치에 기록한다. 이는 주기억장치에 기록하는 동작을 최소화 할 수 있지만 중간에 데이터의 손실이나 변조의 위험성이 있어 캐시기억장치와 주기억장치 간에 데이터 불일치가 발생할 수도 있다.

 

 

6-6. 블록 크기

블록크기가 클수록 한 번에 많은 정보를 읽어올 수 있지만 블록 인출 시간이 길어지게 된다. 블록이 커질수록 캐시기억장치에 적재할 수 있는 블록의 수가 감소하기 때문에 블록이 더 빈번히 교체과 된다. 그래서 일반적으로 4 ~ 8 단어가 적당하다.

 

 

6-7. 캐시기억장치의 수

시스템 성능 향상을 위해서 다수의 캐시기억장치들을 사용하는 것이 보편화 되었다.

캐시기억장치들을 계층적 구조나 기능적 구조로 설치한다.

 


문제

더보기

1. 캐시 기억장치는 CPU안에 있으며 데이터를 임시 저장하는 역할을 한다. (O/X)

 

 

2. CPU가 명령어 또는 데이터 인출을 위해 캐시기억장치에 접근했을 때 그 정보가 있으면 (       ), 없으면 (       )라고 한다.

 

 

3. CPU가 캐시 기억장치에 100번 접근하고 80번 hit이었다고 할 때, 적중률은 (        )%이고, 캐시 접근 시간은 50ns, 주기억장치 접근 시간은 400ns일 때 평균 기억장치의 접근 시간은 (        )ns이다.

 

 

4. 직접사상 방식에서 CPU가 01010번지의 블록을 필요로 하고 있다. 현재 캐시기억장치는 MISS여서 주기억장치에서 데이터를 가져왔다고한다. 이 때, 데이터를 가져온 후 캐시기억장치의 슬롯번호에는 (      ), 태그에는 (        )가 저장되어 있다.

 

 

5. 인출방식의 종류 중 CPU가 현재 필요한 정보 외에도 앞으로 필요할 것으로 예측되는 정보를 미리 인출하여 캐시 기억장치에 저장하는 방식은 (           )방식이라고 한다.

 

 

6. 캐시 기억장치의 크기가 클수록, 적중률은 (높아/낮아)지고, 평균 접근 시간과 비용이 (증가/감소)한다.

 

 

7. 집합 연관 사상방식은 (        )와 (              )방식을 조합한 방식이다.

 

 

답안

더보기

1. x

CPU안에 있는 임시 기억장치는 레지스터이다.

 

 

2. 적중(hit), 실패(miss)

 

 

3. 80, 120

적중률은 적중 수 / 전체 메모리 참조 횟수이므로 100번중에 80번 적중했다고 하니 0.8인데 퍼센트로하면 80퍼센트이다. 또한 평균 기억장치 접근시간은 적중률 * 캐시접근시간 + (1 - 적중률) * 주기억장치 접근시간으로 나타낼 수 있으므로 0.8 * 50 + 0.2 * 400 = 120이다.

 

 

4. 010, 01

직접 사상에서 주소 앞 2개는 태그로 뒤 3개는 슬롯번호로 들어간다.

 

 

5. 선인출방식

이는 주기억장치에서 명령어나 데이터를 인출할 때 필요한 정보와 이웃한 위치에 있는 정보들을 함께 인출하여 캐시에 적재하는 방식이다.

 

 

6. 높아, 증가

 

 

7. 직접 사상, 연관 사상

 


추가 문제

더보기

1. 보조기억장치 중 접근 방식이 다른 하나를 고르시오.

1)하드 디스크

2)자기 테이프

3)플로피 디스크

4)DVD

5)CD-ROM

 

 

2. 입출력 처리 속도를 높이기 위해서, 입출력장치들과 중앙처리장치, 주기억장치사이에서 제어 역할을 하는 장치를 (             )이라고 한다.

 

 

3. 입출력 명령에 대한 내용으로 알맞은 것은?

입출력 명령 내용: 주변 장치를 활성화 시키고 무엇을 해야 하는지 알리는 데 사용한다.

1) 제어

2) 검사

3) 읽기

4) 쓰기

 

 

4. 직접 기억장치 액세스(DMA) 방식에 대한 설명으로 옳지 않은 것을 고르시오.

1) DMA 제어기는 CPU로 버스 요구 신호를 전송한다.

2) CPU는 DMA 제어기로 버스 승인 신호를 전송한다.

3) CPU의 도움으로 DMA 제어기가 주기억장치에 데이터를 읽거나 쓴다.

4) 전송할 데이터가 남아있으면, 1단계부터 3단계까지 다시 반복한다.

5) 모든 데이터의 전송이 완료되면 CPU로 INTR신호를 전송한다.

 

 

5. 시스템 버스는 데이터, 주소, 제어 버스로 분류할 수 있으며 인터럽트와 관련된 버스는 제어버스이다. (O / X)

 

 

답안

더보기

1.  2

자기 테이프는 순차적 접근 방법이며, 나머지는 직접 접근 방법이다.

 

 

2. 입출력 모듈

 

 

3. 1

해당 내용은 입출력 명령 중 제어에 해당한다.

 

 

4. 3

DMA 제어기가 주기억장치에 데이터를 읽거나 쓸 때 CPU는 개입하지 않는다.

DMA 제어기가 모든 입출력 동작을 전담하고, CPU는 전송의 시작과 마지막에만 입출력 동작에 관여한다.

 

 

5. O

인터럽트는 제어 버스와 관련있으며 관련 주요 신호에는 인터럽트 요구, 인터럽트 확인 신호가 있다.

 

+ Recent posts