주기억장치 블록이 적재될

Download Report

Transcript 주기억장치 블록이 적재될

컴퓨터시스템구조론
제4장
캐시 기억장치(Cache Memory)
4.1 컴퓨터 기억장치시스템의 개요
 기억장치시스템의 특성들
 위치(location) : 컴퓨터의 내부 혹은 외부
 내부기억장치 : 주 기억장치, 레지스터, 캐시
 외부기억장치 : 디스크, 자기 테이프 등
 용량(capacity) : 기억용량, 바이트(byte=8bit),
단어(word=8,16,32 bits)로 표현
 전송 단위(unit of transfer) : 기억장치 모듈로 들어 가고
나오는 데이터 선들의 수.
 단어(word) : 기억장치 조직의 기본, 수의 표현에 사용되는 비트
수(16비트, 32비트 등), 명령어의 길이
 주소지정 단위(addressing unit) : 단어 혹은 바이트 단위,
N = 2A, 단, N : 주소지정 단위의 수, A : 주소비트의 길이
기억장치 액세스(memory access)의 유형
 순차적 액세스(sequential access) : 저장된 순서에 따라
액세스. 액세스 시간이 위치에 따라 결정.
[예] 테이프(tape)
 직접 액세스(direct access) : 기억장소 근처로 이동한 다음에
순차적 검색으로 최종 위치에 도달. 액세스 시간이 위치 및
이전 액세스의 위치에 따라 결정. [예] 디스크
 임의 액세스(random access) : 어떤 위치를 액세스하는데
걸리는 시간이 이전의 액세스 순서와는 무관하며, 항상 일정.
[예] 반도체 기억장치 (RAM, ROM)
 연관(associative) : 임의 액세스의 일종, 단어 내의 특정
비트를 비교하여 일치하는 단어를 액세스
성능 지표
 엑세스 시간 : 읽거나 쓰는 동작 수행 시간
 기억장치 사이클 시간 ; 임의 엑세스 기억장치에 적용
 전송률 : 데이터가 들어가거나 나오는 비율
 임의 엑세스
: 1/사이클시간
 비임의 엑세스 :
TN  TA 
N
R
 컴퓨터 기억장치 설계상의 주요 요건들
 용량 : How much?
 속도 (액세스 시간) : How fast?
 가격 : How cheap?
o 요건들간의 상관관계
• 액세스 시간이 적게 들수록, 비트 당 가격 상승
• 용량이 커질수록, 비트 당 가격 하락
• 용량이 커질수록, 액세스 시간 증가
 적절한 상호조정(trade-off)을 위하여 기억장치 계층
(memory hierarchy) 이용
기억장치 계층(Memory Hierarchy)
•
•
•
•
비트 당 가격 하락
용량 증가
액세스 시간 증가
액세스 빈도 감소
기억장치 계층의 효과
 적중률(hit ratio) H : 액세스할 단어가 상위 계층의 기억장치에 있을
확률
평균 기억장치 액세스 시간 Ta = H x T1 + (1 - H) x (T1+T2)
단, T1 : 첫번째 기억장치의 액세스 시간
T2 : 두번째 기억장치의 액세스 시간
[예] 2-단계 기억장치(Two-level Memory)
T1 = 0.1 µs, T2 = 1 µs
H(액세스할 단어가 첫번째 계층에 있을 확률) = 95%
Ta = 0.95 x 0.1 µs + 0.05 x (0.1 µs + 1 µs) = 0.15 µs
2-단계 기억장치의 성능
(적중률의 변화에 따른 평균 액세스 시간)
참조의 지역성(Locality of Reference)
 프로그램이 실행되는 동안, 프로세서가 액세스 하는
기억장치의 위치가 특정 영역에 집중되는 현상.
 하위 계층의 기억장치에 대한 참조 빈도 감소
(평균 기억장치 액세스 시간의 단축)
 참조의 지역성 현상으로 인하여 계층적 기억장치 사용
효과가 증대됨.
[예] 프로그램 : 반복 루프(iterative loop), 서브루틴
데이터 : 표(table), 배열(array), 등
 2개 기억장치 사용 => 평균 엑세스 시간 감소
4.2 캐시 기억장치
 CPU와 주기억장치의 속도 차이를 보완해주기 위한 적은
용량의 빠른 기억장치
 주기억장치 : 용량은 크나 속도는 느림
 캐시 기억장치 : 프로세서와 주기억장치에 있는 고속, 소용량
기억장치
 주기억장치 일부분(블록)을 복사하여 저장하고 있음
 자주 사용하는 내용을 저장하여 속도 향상 효과 가져옴
 위치 : 주기억장치와 CPU 사이,
CPU 모듈 내, 혹은 CPU 칩 내부
 전송 단위 : 블록 (주기억장치 – 캐시 간)
단어 (캐시 – CPU 간)
캐시 동작의 개요
(그림 4.5 참조 /다음장)
• CPU가 기억장치로부터 데이터 읽기를 시도한다.
• 캐시는 그 데이터를 가지고 있는지 검사한다.
• 만약 있다면(캐시 적중), 즉시 캐시로부터 데이터를
인출하여 CPU로 보내준다.
• 만약 없다면(캐시 미스), 주기억장치로부터 그 데이터가
포함된 블록을 인출하여 캐시에 적재한다.
동시에, 인출한 데이터를 CPU로 보내준다.
• 캐시는 적재된 블록이 주기억장치의 어떤 블록인지 구분
하기 위한 태그(tag)를 각 캐시 라인(cache line)에
포함시킨다.
캐시 읽기 동작 : 교재 내용 참조
캐시와 주기억장치의 구조 (1)
캐시와 주기억장치의 구조 (2)
• 주기억장치는 K단어의 M(=2n/K)개의 블럭으로 구성
• 캐시는 주기억장치로부터 블럭단위로 데이터를 복사하여
저장하고 있음
• 캐시의 라인용량(C)은 주기억장치(2n)에 비해 매우 적음
• 캐시의 라인수보다 기억장치의 블럭수가 많기 때문에 각
라인은 여러 블럭에 의해 공유됨
• 블럭 구분위한 Tag 필요
전형적인 캐시조직
캐시 설계의 요소들
 크기(size) = 1K~512K 사이가 효과적
 사상 함수(mapping function)
 교체 알고리즘(replacement algorithm)
 쓰기 정책(write policy)
 블록 크기(block size)
 캐시의 수(number of caches)
캐시의 크기(용량)
비용(cost)과의 관계
 용량이 커질수록 가격이 높아진다.
속도(speed)와의 관계
 용량이 커지면 (어느 정도까지는) 속도가 빨라진다
 용량이 커질수록 캐시 액세스 시간이 더 길어진다
(주소 해독 회로가 복잡해진다)
사상 함수(Mapping Function)
직접 사상(direct mapping)
연관 사상(associate mapping)
세트 연관 사상(set associate mapping)
직접 사상(direct mapping)
 원리 : 주기억장치의 각 블록은 캐시의 특정 라인에만
적재될 수 있다.
 적중(원하는 블록이 캐시에 있는지) 여부는 그 블록이
적재될 수 있는 라인만 검사해보면 알 수 있다.
 주소의 구성
• 최하위 w 비트 : 블록 내 특정 단어를 지정
• 최상위 s 비트 : 주기억장치 블록 지정
 s 비트 중 r 비트 : 캐시 라인 번호
s-r 비트 : 태그
직접 사상 캐시의 조직
직접 사상의 예
• 캐시 용량 : 64 Kbyte
• 블록 크기 : K=4 바이트
• 라인(line) 수 : C=64K/4
=16K 개 =(214)
• 주기억장치 용량 : 16 MBytes
• 주기억장치 블록개수 : M=16M/4
= 4 Mbytes(=222)
• 주기억장치 주소 : 24 bit
(224=16M)
주소 형식
tag
line
word
8
14
2
2tag=(M/C)
직접 사상의 장단점
 간단하다
 비용이 저렴하다
 주기억장치 블록이 적재될 수 있는 캐쉬 라인이
하나밖에 없다
 만약 프로그램이 동일한 라인에 적재되는 두 블록들
을 반복적으로 액세스하는 경우에는 적중률이 낮아짐
연관 사상(Associative Mapping)
원리 : 주기억장치 블록이 캐쉬의 어느 라인에든
적재될 수 있다.
 주기억장치로부터 새로운 블록이 캐쉬로 들어올 때,
비교하여 블록을 교체하는 데 융통성이 있다.
[장점] 직접 사상의 단점 보완
[단점] 적중(hit) 검사가 모든 라인들에 대하여 이루어
져야 한다 (검사 시간이 길어지고, 하드웨어 복잡)
 주소 : 태그(tag)와 단어(word)로 구성
 태그 : 주 기억장치내 블록위치 지정
연관 사상 캐시의 조직
연관 사상의 예
주소 형식
tag
22
word
2
F
F
F
세트 연관 사상
(Set Associative Mapping)
 원리 : 캐시는 여러 개의 세트(set)들로 나누어 지며, 각
세트는 두 개 이상의 라인들을 가지고 있다.
 주기억장치 블록은 정해진 세트에만 적재 될 수 있다.
 그러나 세트내 어떤 라인에도 적재될 수 있다.
 캐시 검사 : 해당 주기억장치 블록이 적재될 수 있는 세트
내 라인들의 태그들과 기억장치 블럭주소의 태그
필드만을 비교
 연관사상에 비해 검사시간 및 태그비트 크기 감소
 직접 사상과 연관 사상의 장단점을 조합한 방식
세트 연관 사상 캐시의 조직
2-way 세트 연관 사상의 예
 세트 당 라인이 두 개가 존재(two sets per line)
 이 세트에 적재되도록 지정된 주기억장치 블록은
세트 내 두 라인들 중, 빈 곳에 적재된다.
주소 형식
세트 비트 = 캐시 내 세트위치 지정
태그 비트 = 중복된 캐시 대응시 구분 (직접사상과 일치)
태그
세트
단어
9
13
2
교체 알고리즘
(Replacement Algorithms)
직접 사상 방식 : 교체 알고리즘이 필요 없음
연관 사상 및 세트 연관 사상 방식 : 주기억장치
블록이 적재될 (세트 내) 라인들이 모두 채워져
있는 경우, 어떤 라인을 새로운 블록으로 교체할
것인지 결정하는 알고리즘
 최소 최근 사용(Least Recently Used : LRU) 알고리즘
: 사용된 지 가장 오래된 라인을 교체하는 방식
<USE 비트 사용>
 FIFO(First In First Out) 알고리즘 : 캐시에 적재된 지
가장 오래된 라인을 교체하는 방식
 LFU(Least Frequently Used) : 가장 적게 사용된
라인을 교체하는 방식 <카운터 사용>
 임의(Random) 알고리즘 : 임의의 라인을 선택 하여
교체하는 방식
쓰기 정책(Write Policy)
CPU가 캐시의 데이터를 변경하는 경우, 그것을
주기억장치에 갱신(update)하는 시점을 결정.
 Write through 방식
 Write back 방식
Write through
모든 쓰기 동작은 캐시뿐 아니라 주기억장치에도
동시에 이루어지는 방식.
[장점] 주기억장치의 내용이 항상 유효(valid)하다
(캐시의 내용과 같다).
[단점] 기억장치 통신량이 많아진다.
쓰기 시간이 길어진다.
Write back
 새로운 데이터에 대한 갱신이 캐시에서만 이루어 진다.
 캐시의 라인이 교체될 때, 만약 그 내용이 변경된 적이
있다면 (dirty 상태), 교체되기 전에 먼저 주기억장치에
갱신되어야 한다.
[장점] 쓰기 시간이 짧다.
[단점] 주기억장치의 일부분이 무효(invalid) 상태에 있다
(캐시의 내용과 다르다).
라인 크기(line size)
 주기억장치로부터 블록을 캐시로 읽어 올 때, 해당 단어뿐 아니라
인접한 단어들도 같이 읽어 올 수 있도록 블록(즉, 캐시 라인)의
크기를 결정해야 한다.
 지역성의 원리(principle of locality)에 근거 : 참조되었던 단어에
근접하여 있는 단어들이 가까운 미래에 참조될 가능성이 많아지는
특성에 의해 적중률이 높아질 수 있다.
 블록(라인) 크기에 따른 특성
 블록이 커질수록 캐시에 적재될 수 있는 블록의 수가 감소하기
때문에 블록들이 더 빈번히 교체된다.
 블록이 커질수록 멀리 떨어진 단어들도 같이 읽혀오기 때문에
가까운 미래에 사용될 가능성이 낮다.
 일반적인 블록(라인)의 크기 = 4 ~ 8 단어
캐시의 수(Number of caches)
다수 캐시(multiple cache) 사용의 보편화
 계층적 캐시 : 여러 단계(level)의 캐시들로 구성
 형태 : 통합(unified) 혹은 분리(split) 캐시
 위치 : 온-칩(on-chip) 혹은 오프-칩(off-chip) 캐시
[예] 2-단계 캐시(2-level cache)
 1차 캐시(L1) : 내부(온-칩) 캐시, 명령어 캐시와
데이터 캐시로 분리
 2차 캐시(L2) : 외부(오프-칩) 캐시, 통합 캐시