Lecture #7 제5장 기억장치 (2).

Slides:



Advertisements
Similar presentations
제 8 장 메모리 관리전략. 개요 2 기억장치 관리의 발전 개요 SSD(Solid State Drive) – 반도체 메모리 내장함, 처리속도 빠르고 소음이 없고 전력소모량이 적은 플래시 메모리 기반의 모델 주소 바인딩 (address binding) – 정의 논리적.
Advertisements

Flash SSD 강원대학교 `01 최경집.
컴퓨터와 인터넷.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
제5장 기억장치 5.1 기억장치 시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억 장치 5.4 기억장치 모듈의 설계
제7장: 메모리 시스템(2) 컴퓨터구조.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제14장 동적 메모리.
연결리스트(linked list).
제7장: 메모리 시스템(3).
램( RAM ) 램의 개념 램 선택법 듀얼채널의 의미.
제7장: 메모리 시스템(1).
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Root Filesystem Porting
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
Root Filesystem Porting
10 장 데이터 링크 제어(Data Link Control)
제 3 장 Memory - SRAM.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
Sungkyunkwan University OS Project Dongkun Shin
03. 병행 프로세스 (Parallel Process)
Computer System Architecture
프로그래밍 개요
제5장 기억장치 5.1 기억장치 시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억 장치 5.4 기억장치 모듈의 설계
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
4 장 신호(Signals) 4.1 아날로그와 디지털(Analog and Digital)
7장 주기억장치 관리 A박도하.
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
5장. 캐시 기억장치 다루는 내용 컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리
ARM Development Suite v1.2
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
ATmega128의 특징 아이티즌 기술연구소
CHAP 21. 전화, SMS, 주소록.
Canary value 스택 가드(Stack Guard).
4장 가상 기억장치 관리 4.1 가상 기억 장치의 개요 4.2 주소사상 기법 4.3 블록 사상(block mapping)
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
8장 가상 기억장치의 구성 C반 권예용.
컴퓨터구조 연습문제 발표 Chapter 3 - 컴퓨터의 기능 및 상호연결의 최상위 관점
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
제 4 장 Record.
06. 디바이스의 등록과 해제 김진홍
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
과 목 명 : 운영체제 담당교수 : 박 승 기 학 과 : 컴퓨터 소프트웨어 학 번 : 이 름 : 최 현 식
 6장. SQL 쿼리.
CODE INJECTION 시스템B 김한슬.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
7 생성자 함수.
6 객체.
Presentation transcript:

Lecture #7 제5장 기억장치 (2)

강의 목차 5.1 기억장치시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억장치 5.4 기억장치 모듈의 설계 5.5 캐쉬 기억장치

캐쉬 기억장치 개요 (1) 사용 목적 특징 CPU와 주기억장치의 속도 차이로 인한 CPU 대기 시간을 최소화 주기억장치보다 액세스 속도가 높은 칩 사용 가격 및 제한된 공간 때문에 용량이 적다 Computer Architecture

캐쉬 기억장치 개요 (2) CPU의 주기억장치 접근 동작-MMU(Memory Management Unit) 접근하려는 데이터가 캐쉬에 있는지를 검사한다 캐쉬에 있으면 바로 CPU로 데이터를 전송하거나 데이터를 수정한다 캐쉬에 없으면 주기억장치에 접근한다 주기억장치에 접근하여 읽어온 데이터를 캐쉬에 저장한다 데이터를 CPU에 전송한다 주기억장치로부터 캐쉬로 적재된 데이터는 CPU가 다시 접근할 때에 빠른 속도로 접근이 가능하다 캐쉬 기억장치에 있는 수정된 데이터는 주기적으로 주기억장치에 write-back되어 최근에 수정된 상태를 유지한다 Computer Architecture

캐쉬 기억장치 개요 (3) 캐쉬 성능 평가 캐쉬 적중(cache hit) : CPU가 원하는 데이터가 이미 캐쉬에 있는 상태 캐쉬 미스(cache miss) : CPU가 원하는 데이터가 캐쉬에 없는 상태 적중률(hit ratio) : 캐쉬에 적중되는 정도(H) 캐쉬에 적중되는 횟수 H = --------------------------- 전체 기억장치 액세스 횟수 캐쉬의 실패율(miss ratio) = (1 - H) 평균 기억장치 액세스 시간(Ta) : Ta = H × Tc + (1 - H) × Tm 단, Tc는 캐쉬 액세스 시간, Tm은 주기억장치 액세스 시간 Computer Architecture

캐쉬 기억장치 개요 (4) 평균 기억장치 액세스 시간 예: [예제 5-1] Tc = 50 ns, Tm = 400 ns인 시스템에서, 캐쉬 적중률이 70%, 80%, 90%, 95% 및 99%일 때의 평균 기억장치 액세스 시간을 각각 구하라 H = 70%의 경우 : Ta = 0.7 x 50 ns + 0.3 x 400 ns = 155 ns H = 80%의 경우 : Ta = 0.8 x 50 ns + 0.2 x 400 ns = 120 ns H = 90%의 경우 : Ta = 0.9 x 50 ns + 0.1 x 400 ns = 85 ns H = 95%의 경우 : Ta = 0.95 x 50 ns + 0.05 x 400 ns = 67.5 ns H = 99%의 경우 : Ta = 0.99 x 50 ns + 0.01 x 400 ns = 53.5 ns 캐쉬의 적중률이 높아질수록 평균 기억장치 액세스시간은 캐쉬 액세스 시간에 접근 캐쉬 적중률은 프로그램과 데이터의 지역성(locality)에 크게 의존 Computer Architecture

캐쉬 기억장치 개요 (5) 지역성(Locality) CPU가 주기억장치의 특정 부분(지역)에 위치한 프로그램 코드나 데이터를 빈번히 혹은 집중적으로 접근하는 현상 캐쉬 기억장치의 성능에 크게 영향을 미침 시간적 지역성(temporal locality) 최근에 액세스된 프로그램이나 데이터가 가까운 미래에 다시 액세스 될 가능성이 높다 반복 문장, 호출빈도가 높은 서브루틴, 공통 변수 등 공간적 지역성(spatial locality) 기억장치 내에 인접하여 저장되어 있는 데이터들이 연속적으로 액세스 될 가능성이 높다 표 또는 배열 형식의 데이터 등 순차적 지역성(sequential locality) 분기(branch)가 발생하지 않는 한, 명령어들은 기억장치에 저장된 순서대로 인출되어 실행된다 일반적으로 순차 실행과 비순차 실행의 비율은 5:1 정도 Computer Architecture

캐쉬 기억장치 개요 (6) 캐쉬 기억장치의 사용 목적 캐쉬 설계의 공통적인 목표 평균 기억장치 접근 시간의 단축 목적 달성을 위해 캐쉬 설계 시에 여러 가지 요인을 고려하여야 함 캐쉬 설계의 공통적인 목표 캐쉬 적중률의 극대화 – 프로그램 특성으로 한계성을 가짐 캐쉬 액세스 시간의 최소화 캐쉬 미스에 따른 지연 시간의 최소화 주기억장치와 캐쉬간의 데이터 일관성 유지 및 그에 따른 오버헤드의 최소화 Computer Architecture

캐쉬의 크기 캐쉬의 크기 용량이 커질수록 적중률이 높아지지만, 상대적으로 비용이 증가 용량이 커질수록 주소 해독 및 정보 인출을 위한 주변 회로가 더 복잡해지기 때문에 액세스 시간이 다소 더 길어진다 Chip의 종류 및 Board의 공간에 의한 제약 Computer Architecture

캐쉬 인출 방식 (1) 인출 방식 주기억장치에서 캐쉬 기억장치로 정보를 가져오는 방식 요구 인출(demand fetch) 방식 필요한 정보만 인출해 오는 방법 선인출(prefetch) 방식 필요한 정보 외에 앞으로 필요할 것으로 예측되는 정보도 미리 인출 지역성이 높은 경우에 효과가 높다. Computer Architecture

캐쉬 인출 방식 (2) 주기억장치와 캐쉬의 조직 블록(block) 슬롯(slot or line) 태그(tag) 주기억장치로부터 동시에 인출되는 정보들의 그룹 일반적으로 블록의 크기는 2~4 word 정도 주기억장치 용량 = 2n 단어, 블록 = K 단어  블록의 수 = 2n/K 개 슬롯(slot or line) 캐쉬에서 한 메모리 블록이 저장되는 장소 하나의 캐쉬 슬롯은 여러 개의 메모리 블록에 의해 공유 가능 태그(tag) 슬롯에 적재된 블록을 구분해주는 정보 Computer Architecture

캐쉬 인출 방식 (3) 주기억장치와 캐쉬의 조직 (계속) Computer Architecture

사상 방식(Mapping Scheme) 캐쉬 사상 방식 어떤 주기억장치 블록들이 어느 캐쉬 슬롯을 공유할 것인 지를 결정  주기억장치 블록이 로딩되는 캐쉬 슬롯을 결정 캐쉬 적중률에 크게 영향을 미치는 요소 캐쉬 기억장치의 내부 구조를 결정 종 류 직접 사상(direct mapping) 완전-연관 사상(fully-associative mapping) 세트-연관 사상(set-associative mapping) Computer Architecture

직접 사상 (Direct Mapping) (1) 주기억장치의 블록들이 지정된 하나의 캐쉬 슬롯으로만 적재 주기억장치 주소 해석 태그 필드(t 비트) : 태그 번호 슬롯 번호(s 비트) : 캐쉬의 m = 2s 개의 슬롯들 중의 하나를 지정 단어 필드(w 비트) : 각 블록 내 2w 개 단어들 중의 하나를 구분 주기억장치의 블록 j가 적재될 수 있는 캐쉬 슬롯의 번호 i : i = j mod m 단, j : 주기억장치 블록 번호, m : 캐쉬 슬롯의 전체 수 Computer Architecture

직접 사상 (Direct Mapping) (2) 캐쉬 슬롯을 공유하는 주기억장치 블록 및 식별 각 캐쉬 슬롯은 2t 개의 블록들에 의하여 공유 같은 슬롯을 공유하는 블록들은 서로 다른 태그를 가짐 캐쉬 슬롯에는 태그와 데이터 블록이 저장  캐쉬 적중 여부를 주소의 태그 비트와 슬롯에 저장된 태그 비트를 비교하여 결정 캐쉬 슬롯 주기억장치 블록 번호들 1 … m-1 0, m, …, 2t+s–m 1, m+1, …, 2t+s–m+1 m-1, 2m-1, …, 2t+s–1 Computer Architecture

직접 사상 캐쉬의 조직 Computer Architecture

직접 사상 캐쉬의 동작 원리 캐쉬로 기억장치 주소가 보내지면, 그 중 s-비트의 슬롯번호를 이용하여 캐쉬의 슬롯을 선택 선택된 슬롯의 태그 비트들을 읽어서 주소의 태그 비트들과 비교 두 태그값이 일치하면 (Cache Hit)  주소의 w 비트들을 이용하여 슬롯내의 단어들 중에서 하나를 인출하여 CPU로 전송 태그값이 일치하지 않는다면 (Cache Miss) 주소를 주기억장치로 보내어 한 블록을 액세스 인출된 블록을 지정된 캐쉬 슬롯에 적재하고, 주소의 태그 비트들을 그 슬롯의 태그 필드에 기록 만약 그 슬롯에 다른 블록이 이미 적재되어 있다면, 그 내용은 지워지고 새로이 인출된 블록을 적재 Computer Architecture

직접 사상 캐쉬의 동작 예 (1) 주기억장치 용량 = 128(27) 바이트 주기억장치 주소 = 7 비트 (바이트 단위 주소 지정) 블록 크기 = 4 바이트  주기억장치는 128/4 = 32 개의 블록들로 구성 캐쉬 크기 = 32 바이트 캐쉬 슬롯 크기 = 4 바이트 (블록 크기) 전체 캐쉬 슬롯의 수 m = 32/4 = 8 개  기억장치 주소 형식 : Computer Architecture

직접 사상 캐쉬의 동작 예 (2) 각 기억장치 블록이 공유하게 될 캐쉬 슬롯 번호 i = j mod 8 Computer Architecture

직접 사상 캐쉬의 동작 예 (3) Computer Architecture

직접 사상 캐쉬에서의 적중 검사 예 앞의 그림과 같이 메모리 블록이 적재되어 있다고 가정하고 다음과 같은 CPU의 메모리 접급에 대해 캐쉬 적중 여부를 판별 (1) 0101000 (2) 0001100 (3) 1110100 (4) 1011000 <풀이> (1) 캐쉬 미스  2번 슬롯의 데이터 필드 : ‘info’, 태그 : 01 (2) 캐쉬 적중 : 3번 슬롯에 적재되어 있음. (3) 캐쉬 미스  5번 슬롯의 데이터 필드 : ‘tech’, 태그 : 11 (4) 캐쉬 적중 : 6번 슬롯에 적재되어 있음. Computer Architecture

직접 사상 캐쉬의 장단점 [장점] [단점] 하드웨어가 간단하고, 구현 비용이 적게 든다 각 주기억장치 블록이 적재될 수 있는 캐쉬 슬롯이 한 개뿐이기 때문에, 그 슬롯을 공유하는 다른 볼록이 적재되는 경우에는 swap-out 됨 현재 실행중인 두 개의 프로그램인 같은 슬롯을 공유하는 경우에 캐쉬 슬롯에 대한 적중률이 떨어져 슬롯 교체가 빈번하게 발생  전체적인 캐쉬 성능이 저하 Computer Architecture

완전-연관 사상 (1) 완전 연관 사상(Full Associative mapping) 주기억장치 블록이 캐쉬의 어떤 슬롯으로든 적재 가능 직접 사상 방식의 단점을 보완 기억장치 주소 해석 태그 필드 = 주기억장치 블록 번호 직접 사상 캐쉬의 예에 완전-연관 사상 방식을 적용하면, Computer Architecture

완전-연관 사상 (2) 완전 연관 사상(Full Associative mapping) (계속) 하나의 블록이 캐쉬에 적재되면 블록 번호(태그) 필드 전체가 슬롯의 태그 영역에 저장 캐쉬 적중 여부 검사 방법 CPU의 메모리 접근에 대해 주기억장치 주소에서 태그 필드를 추출 캐쉬의 모든 슬롯들의 태그 영역과 내용을 비교 일치하는 슬롯이 있으면 캐쉬 적중(Cache Hit), 그렇지 않으면 캐쉬 미스(Cache Miss) Computer Architecture

완전-연관 사상 캐쉬의 조직 (1) Computer Architecture

완전-연관 사상 캐쉬의 조직 (2) 연관 기억장치(Associative Memory) 적용 캐쉬 적중을 검사하기 위해 주기억장치 주소 태그를 모든 캐쉬 슬롯의 태그와 비교 병렬적인 비교와 기억장치 접근을 위해 연관 기억장치를 사용 상대적으로 구현 비용이 높다 캐쉬 슬롯 교체(Replacement) 알고리즘 필요 주기억장치에서 인출된 데이터 블록을 적재할 캐쉬 슬롯을 결정 캐쉬의 빈 슬롯을 검사하여 있으면 비어있는 슬롯에 적재 만약 빈 슬롯이 없을 경우, 기존에 채워진 슬롯 중에 하나를 선택하여 새로운 데이터 블록으로 교체 (Replacement) 교체 슬롯 선택 방법에 따라 캐쉬 성능에 영향 Computer Architecture

완전-연관 사상의 예 Computer Architecture

완전-연관 사상 캐쉬에서의 적중 검사 예 앞의 그림과 같이 메모리 블록이 적재되어 있다고 가정하고 다음과 같은 CPU의 메모리 접급에 대해 캐쉬 적중 여부를 판별 (1) 1011000 (2) 0010100 (3) 0000000 (4) 0111100 <풀이> (1) 캐쉬 적중 : 현재 3번 슬롯에 적재되어 있음 (2) 캐쉬 미스 (3) 캐쉬 미스 (4) 캐쉬 적중 : 현재 1번 슬롯에 적재되어 있음 Computer Architecture

완전-연관 사상 캐쉬의 장단점 [장점] [단점] 새로운 블록이 캐쉬로 적재될 때 슬롯의 선택이 매우 자유롭다 지역성이 높다면, 적중률이 매우 높아진다 [단점] 캐쉬 슬롯들의 태그들을 병렬로 검사하기 위하여 매우 복잡하고 비용이 높은 회로가 필요 실제 시스템에서는 거의 사용되지 않음 Computer Architecture

세트-연관 사상 (1) 세트-연관 사상(Set-Associative Mapping) i = j mod v 직접 사상과 완전-연관 사상의 조합 캐쉬 슬롯을 두 개 이상의 슬롯을 갖는 캐쉬 세트(set)로 그룹핑하고 주기억장치 블록 그룹이 하나의 캐쉬 세트를 공유하도록 함 캐쉬는 v 개의 세트들로 나누어지고, 각 세트들은 k 개의 슬롯들로 구성됨을 가정  캐쉬 슬롯의 수 m과 주기억장치 블록이 적재될 수 있는 캐쉬 세트 번호 i : m = v x k i = j mod v 단, i : 캐쉬 세트의 번호, j : 주기억장치 블록 번호 m : 캐쉬 슬롯의 전체 수 Computer Architecture

세트-연관 사상 (2) 세트-연관 사상(Set-Associative Mapping) (계속) 기억장치 주소 해석 태그필드와 세트필드를 합한 (t+d)비트가 주기억장치의 2(t+d)블록들 중의 하나를 지정 직접 사상 캐쉬의 예에 완전-연관 사상 방식을 적용하면, 세트 수 = 캐쉬 슬롯 수 (v = m), 세트 내 슬롯의 수 k = 1  직접 사상 세트 수 = 1, 세트 내 슬롯의 수 = 캐쉬의 전체 슬롯 수 (k = m)  완전-연관 사상 세트 내의 슬롯 수 = 1 < k < m/v  k-way 세트 연관 사상 Computer Architecture

세트-연관 사상의 동작 원리 기억장치 주소의 세트 비트들을 이용하여 캐쉬 세트들 중의 하나를 선택 주소의 태그 필드 내용과 그 세트내의 태그들을 비교 일치하는 것이 있으면 (캐쉬 적중)  그 슬롯내의 한 단어를 w 비트에 의해 선택하여 인출 일치하는 것이 없다면 (캐쉬 미스)  주기억장치를 액세스 슬롯들 중의 어느 슬롯에 새로운 블록을 적재할 것인 지를 결정하여 교체 (교체 알고리즘 필요) Computer Architecture

세트-연관 사상 캐쉬의 조직 Computer Architecture

세트-연관 사상의 예 Computer Architecture

세트-연관 사상 캐쉬에서의 적중 검사 예 앞의 그림과 같이 메모리 블록이 적재되어 있다고 가정하고 다음과 같은 CPU의 메모리 접급에 대해 캐쉬 적중 여부를 판별 (1) 1011000 (2) 1110100 (3) 1000000 (4) 0001100 <풀이> (1) 캐쉬 적중 : 현재 2번 세트의 두 번째 슬롯에 적재되어 있음 (2) 캐쉬 미스  1번 세트의 두 번째 슬롯에 적재 (3) 캐쉬 미스  0번 세트의 첫 번째 슬롯에 적재 (4) 캐쉬 적중 : 현재 3번 세트의 첫 번째 슬롯에 적재되어 있음 Computer Architecture

세트-연관 사상의 적용 2-way 세트 연관 사상 조직인 보편적으로 사용 4-way 세트 연관 사상의 경우 캐쉬 세트 당 두개의 슬롯을 가지는 구조(v = m/k, k = 2) 직접 사상 보다 캐쉬 적중률이 훨씬 향상 4-way 세트 연관 사상의 경우 비교적 적은 추가 비용으로 성능을 더욱 향상 세트 당 슬롯 수를 4보다 높여도 성능은 크게 향상되지 않음 Computer Architecture

교체(Replacement) 알고리즘 (1) 세트-연관 사상에서 주기억장치로부터 새로운 블록이 캐쉬로 적재될 때, 만약 세트내 모든 슬롯들이 다른 블록들로 채워져 있다면, 그들 중의 하나를 선택하여 새로운 블록으로 교체 교체 알고리즘 : 캐쉬 적중률을 극대화할 수 있도록 교체할 블록을 선택하기 위한 알고리즘 최소 최근 사용(Least Recently Used: LRU) 알고리즘 : 사용되지 않은 채로 가장 오래 있었던 블록을 교체하는 방식 FIFO(First-In-First-Out: FIFO) 알고리즘 : 캐쉬에 적재된 지 가장 오래된 블록을 교체하는 방식 최소 사용 빈도(Least Frequently Used: LFU) 알고리즘 : 참조되었던 횟수가 가장 적은 블록을 교체하는 방식 Computer Architecture

교체 알고리즘 (2) LRU 교체 알고리즘 일반적으로 가장 효과적인 알고리즘으로 평가 캐쉬 슬롯 별로 use 비트를 가지도록 하고, 세트 내의 임의의 슬롯이 접근되면 해당 슬롯의 use 비트를 1로 설정하고 나머지 슬롯의 use 비트를 0으로 설정 교체가 필요한 경우에 use 비트가 0인 슬롯을 교체 Computer Architecture

교체 알고리즘 (3) LRU 교체 알고리즘을 사용하는 세트-연관 사상 캐쉬로 아래와 같은 블록들이 연속적으로 들어온다고 할 때, 각 슬롯에 적재되는 블록을 표시하고 적중률(H)을 구하라. 단, 각 세트의 슬롯 수는 (a) 2개, 혹은 (b) 3개이다. Computer Architecture

쓰기 정책 (Write Policy) (1) 캐쉬의 데이터 블록이 변경되었을 때 그 내용을 주기억장치에 갱신하는 시기와 방법의 결정 쓰기 정책 Write-through Write-back Computer Architecture

쓰기 정책 (Write Policy) (2) Write-through 모든 쓰기 동작들이 캐쉬로 뿐만 아니라 주기억장치로도 동시에 행해지는 방식 장점 - 캐쉬에 적재된 블록의 내용과 주기억장치에 있는 그 블록의 내용이 항상 같다 단점 - 모든 쓰기 동작이 주기억장치 쓰기를 포함하므로, 쓰기 시간이 길어진다 Computer Architecture

쓰기 정책 (Write Policy) (3) Write-back 캐쉬에서 데이터가 변경되어도 그 즉시 주기억장치에 갱신하지 않고 교체시에 갱신하는 방식 장점 - 기억장치에 대한 쓰기 동작의 횟수가 최소화되고, 쓰기 시간이 짧아진다 단점 - 캐쉬의 내용과 주기억장치의 해당 내용이 서로 다르다  블록을 교체할 때는 캐쉬의 상태를 확인하여 갱신하는 동작이 선행되어야 하며, 그를 위하여 각 캐쉬 슬롯이 상태 비트를 가지고 있어야 한다 Computer Architecture

쓰기 정책 (Write Policy) (4) Computer Architecture

다중프로세서시스템에서의 데이터 불일치 (1) 다중프로세서시스템에서의 데이터 불일치 문제(data inconsistency problem) 주기억장치에 있는 블록의 내용과 캐쉬 슬롯에 적재된 복사본들 간에 서로 달라지는 문제 Computer Architecture

다중프로세서시스템에서의 데이터 불일치 (2) Computer Architecture

다중 캐쉬(Multiple Cache) (1) 온-칩 캐쉬(on-chip cache) 캐쉬 액세스 시간을 단축시키기 위하여 CPU 칩 내에 포함시킨 캐쉬 계층적 캐쉬(hierarchical cache) 온-칩 캐쉬를 1차(L1) 캐쉬로 사용하고, 칩 외부에 더 큰 용량의 2차(L2) 캐쉬를 설치하는 방식 Computer Architecture

다중 캐쉬(Multiple Cache) (2) 계층적 캐쉬(hierarchical cache) (계속) L2는 L1의 슈퍼-세트(super-set)  L2의 용량이 L1보다 크며, L1의 모든 내용이 L2에도 존재 먼저 L1을 검사하고, 만약 원하는 정보가 L1에 없다면 L2를 검사하며, L2에도 없는 경우에만 주기억장치를 액세스 L1은 속도가 빠르지만, 용량이 작기 때문에 L2 보다 적중률은 더 낮다 2-단계 캐쉬 시스템의 평균 기억장치 액세스 시간 : Ta = H1 x TC1 + (H2 - H1) x TC2 + (1 - H2) x Tm L1과 L2에서 서로 다른 사상 알고리즘 및 교체 알고리즘 적용 가능 Computer Architecture

다중 캐쉬(Multiple Cache) (3) 분리 캐쉬 (split cache) 캐쉬를 명령어 캐쉬와 데이터 캐쉬로 분리 명령어 인출 유니트와 실행 유니트 간에 캐쉬 액세스 충돌 현상 제거 대부분의 고속 프로세서들(Pentium계열, PowerPC 등)에서 사용 Computer Architecture

다중 캐쉬(Multiple Cache) (4) 분리 캐쉬의 예: PowerPC 620 프로세서 캐쉬 용량 : 32 KB, 캐쉬 구조 : 8-way 세트 연관 사상 구조 Computer Architecture

다중 캐쉬(Multiple Cache) (5) 분리 캐쉬의 예: 인텔 이타늄(Itanium) 프로세서 3-계층 캐쉬 구조 1st Layer Cache(명령어 캐쉬 L1I & 데이터 캐쉬 L1D) 16 KB, 4-way 세트 연관 사상 구조(32 byte block size) Write-through 2nd Layer Cache 96 KB unified cache, 6-way 세트 연관 사상 구조(32 byte block size) Write-back 3rd Layer Cache 4MB unified cache, 4-way 세트 연관 사상 구조(64 byte block size) L2는 L1의 super-set, L3는 L2의 super-set L3 cache에 대해 128bit backside 버스를 사용하여 빠른 속도로 접근 Computer Architecture

다중 캐쉬(Multiple Cache) (6) 분리 캐쉬의 예: 인텔 이타늄(Itanium) 프로세서 (계속) Computer Architecture