320 likes | 1.04k Views
5 장 . 캐시 기억장치. 다루는 내용 컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리 캐시 기억장치의 설계 다중 프로세서를 사용하는 시스템에서의 캐시 기억장치. Section 01 컴퓨터 본체에서 기억장치 위치 살펴보기. [그림 5-1] 메인보드에서의 메모리 위치. Section 02 컴퓨터 기억장치의 계층적 구조. 기억장치의 용량 , 접근 속도 , 가격의 상관관계 데이터의 읽고 , 쓰기 속도를 향상시키기 위해서는 고가이지만 고속의 기억장치가 필요
E N D
5장. 캐시 기억장치 • 다루는 내용 • 컴퓨터 본체에서 기억장치 위치 살펴보기 • 컴퓨터 기억장치의 계층적 구조 • 캐시 기억장치 원리 • 캐시 기억장치의 설계 • 다중 프로세서를 사용하는 시스템에서의 캐시 기억장치
Section 01 컴퓨터 본체에서 기억장치 위치 살펴보기 [그림 5-1] 메인보드에서의 메모리 위치
Section 02 컴퓨터 기억장치의 계층적 구조 • 기억장치의 용량, 접근 속도, 가격의 상관관계 • 데이터의 읽고, 쓰기 속도를 향상시키기 위해서는 고가이지만 고속의 기억장치가 필요 • 데이터를 많이 저장하기 위해서 기억장치는 대용량이 필요하나 적정 비용을 위해 저가의 기억장치 필요 • 저가의 기억장치를 사용하면 기억장치의 접근속도는 그만큼 감소하게 된다. • 적절한 상호 조정이 필요하며, 이를 위해서 기억장치 계층 구조가 이용됨
기억장치의 계층 구조 [그림 5-2] 기억장치의 계층 구조
Section 03 캐시 기억장치 원리 • 빠른 접근 시간을 제공하는 기억장치 • 명령어나 오퍼랜드를 주기억장치로부터 가져와 저장하고 있다가 고속으로 중앙처리장치에 제공 [그림 5-4] 캐시 기억장치
캐시 기억장치의 동작 원리 • 캐시 기억장치가 있는 시스템에서는 중앙처리 장치가 기억장치를 참조할 필요가 있을 경우 캐시 기억장치를 먼저 조사 • 캐시 기억장치에 접근하여 그 내용을 찾았을 때 적중(hit) : 빠르게 제공 가능 • 캐시 기억장치에서 찾지 못하였을 경우 실패(miss) : 기억장치에서 가져와야 함. 느림.
캐시 기억장치의 동작 원리 • CPU가 1000번지 워드를 필요로 하는 경우 • CPU가 1002번지의 워드를 필요로 하는 경우 [그림 5-6] 캐시 기억장치의 동작 원리 1 [그림 5-7] 캐시 기억장치의 동작 원리 2
참조의 지역성 • 주어진 시간 동안 중앙처리장치의 기억장치 참조는 제한된 영역에서만 이루어지는 현상 • 짧은 시간 동안 중앙처리장치가 접근하는 범위는 지역적으로 제한되는 것을 의미
캐시 기억장치의 동작 순서 [그림 5-9] 캐시 기억장치의 동작 순서
적중률(Hit ratio) • 캐시 기억장치 성능은 적중률(hit ratio)에 의해 측정 • 주기억장치와 캐시 기억장치 사이에서의 평균 기억장치 접근 시간 Taverage = Hhit_ratio × Tcache + (1-Hhit_ratio) × Tmain Taverage = 평균 기억장치 접근시간 Tmain = 주기억장치 접근시간 Tcache = 캐시 기억장치 접근시간 Hhit_ratio = 적중률 • 적중률이 높으면 평균 기억장치 접근 시간은 캐시 액세스 시간에 접근
Section 04 캐시 기억장치의 설계 • 캐시 기억장치를 설계함에 있어 공통적인 목표 • 적중 시 캐시 기억장치로부터 데이터를 읽어오는 시간을 짧게 • 실패 시 주기억장치로부터 캐시로 데이터를 읽는 시간을 최소화 • 주기억장치와 캐시 사이에 데이터의 일관성을 유지 • 캐시 기억장치를 설계할 때 고려 사항 • 캐시 기억장치의 크기(Size) • 인출방식(fetch algorithm) • 사상함수(Mapping function) • 교체 알고리즘(Replacement algorithm) • 쓰기 정책(write policy) • 블록 크기(Block size) • 캐시 기억장치의 수(Number of caches)
캐시의 크기와 인출 방식 • 캐시 기억장치의 크기 • 용량이 크면 적중률은 높지만, 비용 또한 증가 • 적절한 용량과 비용 결정 필요 • 용량이 크면 주변 회로가 더 복잡해져 액세스 시간이 더 길어진다. • 인출방식 • 요구 인출(demand fetch) 방식 • 현재 필요한 정보만 주기억장치로부터 인출해 오는 방식 • 선인출(prefetch) 방식 • 현재 필요 정보와 앞으로 필요할 예측 정보도 미리 인출 • 지역성이 높은 경우에 효과적이지만 그렇지 못한 경우 효율이 저하
사상(mapping)함수 • 주기억장치와 캐시 사이에서 정보를 옮기는 것 • 직접사상(direct mapping) • 연관사상(associative mapping) • 집합 연관사상(set-associative mapping) [그림 5-10] 사상함수
직접사상(Direct mapping) • 주기억장치의 블록이 특정 라인에만 적재 • 주기억장치의 블록이 적재 될 수 있는 라인이 하나 밖에 없음 • 캐시의 적중 여부는 그 블록이 적재 될 수 있는 라인만 검사 • 특징 • 간단하고 비용이 저렴한 장점 • 프로그램이 동일한 라인에 적재되는 두 블록들을 반복적으로 액세스하는 경우 캐시 실패율이 매우 높아진다.
직접 사상의 동작 • 중앙 처리장치가 10001번지 워드를 필요 하는 경우 [그림 5-13] 직접 사상 3
직접 사상의 동작 • 처음의 2-bits(10)는 태그를 표시하고, 다음 3-bits(001)는 캐시 기억장치의 주소를 표시. • 캐시 기억장치에서 001번지 획득, 태그가 00으로 불일치 • 주기억장치로부터 워드 획득 • 캐시 기억장치의 해당 주소에 데이터와 태그 저장
직접 사상의 동작 • CPU 00010번지 워드를 필요하는 경우 [그림 5-14] 직접 사상 4
직접 사상의 동작 • 처음의 2-bits(00)는 태그를 표시하고, 다음 3-bits(010)는 캐시 기억장치의 주소를 표시 • 캐시 기억장치에서 워드 획득 • 캐시 기억장치에서 010번지 획득, 태그가 00으로 일치
연관사상(Associative mapping) • 주기억장치의 블록이 캐시의 어느 라인에든 적재될 수 있어 직접사상에서 발생하는 단점을 보완 • 적중 검사가 모든 라인에 대해서 이루어져야 하므로 검사 시간이 길어진다. • 캐시 슬롯의 태그를 병렬로 검사하기 위해서는 매우 복잡하고 비용이 높은 회로가 필요하다.
연관사상의 동작 [그림 5-15] 연관 사상의 동작
집합 연관사상(Set-associative mapping) • 직접사상과 연관사상 방식을 조합한 방식 • 하나의 주소 영역이 서로 다른 태그를 갖는 여러 개의 집합으로 이루어지는 방식 [그림 5-16] 두 개의 집합을 갖는 집합 연관 캐시 기억장치의 구조
집합 연관사상 • 집합 1과 집합 2, 두 개의 집합으로 구분 • 같은 주소 번지 000 번지에 서로 다른 태그 00, 01로 구분되는 두 개의 데이터가 동시에 저장 • 동일한 주소를 가지고 다른 태그 번호를 갖는 번지에 접근하는 경우 • 직접사상의 경우 실패 • 집합 연관사상 방식의 경우 적중
두 개의 집합을 갖는 집합 연관 캐시 기억장치의 동작 [그림 5-17] 두 개의 집합을 갖는 집합 연관 캐시 기억장치의 동작
교체 알고리즘 • 캐시가 가득 차 있는 상태에서 캐시의 일부를 제거하고 주기억장치로부터 새로운 데이터를 가져와야 하는 경우 캐시의 내용을 제거하는 방식 • 직접사상 방식 • 주기억장치의 데이터가 캐시의 같은 주소에 저장 • 교체 알고리즘을 사용할 필요가 없다. • 연관사상 및 집합 연관사상 방식의 경우 교체 알고리즘이 필요하게 된다.
교체 알고리즘 [표 5-2] 교체 알고리즘 종류
쓰기 정책(Write Policy) • 캐시와 주기억장치에 기록하는 시점 • 즉시 쓰기(Write-though) 방식 • 쓰기 동작이 캐시와 주기억장치에서 동시에 발생 • 주기억장치와 캐시 기억장치가 항상 동일한 내용을 기록 • 기억장치들 간 접근이 빈번하고 쓰기 시간이 길어진다. • 나중 쓰기(Write-back) 방식 • 새로운 데이터가 캐시에서만 갱신 • 캐시에서 데이터 변경이 있다면 교체 전 먼저 주기억장치에 갱신 • 주기억장치와 캐시의 데이터가 서로 일치하지 않는 경우도 발생 • 쓰는 시간이 짧은 장점
캐시의 수 • 계층적 캐시(Hierarchical Cache) • 온-칩 (On-chip) 캐시를 1차 캐시(L1)로 사용 하고 칩 외부에 더 큰 용량의 오프-칩 (Off-Chip) 캐시를 2차 캐시(L2)로 설치 [그림 5-19] 계층적 캐시
Section 05 다중 프로세서를 사용하는 시스템에서의 캐시 기억장치 [그림 5-22] 다중 프로세서 시스템에서의 캐시 기억장치
즉시 쓰기 정책에서의 데이터의 불일치 상태 [그림 5-23] 즉시 쓰기 정책에서의 데이터 불일치
나중 쓰기 정책에서의 데이터의 불일치 상태 [그림 5-24] 나중 쓰기 정책에서의 데이터 불일치
캐시 기억장치의 데이터 일관성 유지 방법 • 공유 캐시 기억장치를 사용하는 방법 • 다수의 프로세서가 하나의 캐시 기억장치를 공유 • 캐시의 데이터들이 항상 일관성 있게 유지되는 장점 • 동시에 캐시 기억장치에 접근하면 프로세서들간의 충돌이 발생 • 공유 변수는 캐시 기억장치에 저장하지 않는 방법 • 수정 가능한 데이터는 캐시 기억장치에 저장하지 않는 방법 • 캐시에 저장 가능 여부를 사용자가 선언 하는 단점 • 버스 감시 시스템을 사용하는 방법 • 일관성 유지를 위해 감시 장비를 시스템 버스상에 추가로 설치 • 모든 데이터 들은 캐시 기억장치에 저장이 가능, 캐시가 데이터를 수정했다면 그 정보를 다른 캐시와 주기억장치에 알려주게 된다. • 시스템 버스에 통신 량이 증가하는 단점이 있다