제5장 기억장치 5.1 기억장치 시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억 장치 5.4 기억장치 모듈의 설계

Slides:



Advertisements
Similar presentations
Flash SSD 강원대학교 `01 최경집.
Advertisements

컴퓨터와 인터넷.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
제7장: 메모리 시스템(2) 컴퓨터구조.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제2장 주파수 영역에서의 모델링.
4. 컴퓨터 조직 순천향대학교 정보기술공학부 이상정.
제14장 동적 메모리.
연결리스트(linked list).
제7장: 메모리 시스템(3).
컴퓨터 프로그래밍 기초 [Final] 기말고사
3장. 컴퓨터의 기억장치 학번 : 이름 : 김현화.
램( RAM ) 램의 개념 램 선택법 듀얼채널의 의미.
제7장: 메모리 시스템(1).
Windows Server 장. 사고를 대비한 데이터 백업.
Lecture #7 제5장 기억장치 (2).
임베디드 시스템.
6장. 기 억 장 치 Lecture #6.
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
어셈블리 문법 보강 4월 10일.
5장 Mysql 데이터베이스 한빛미디어(주).
제 3장 컴퓨터 시스템의 구조.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
컴퓨터 기억장치 문수영 ` = ,./][.
제10강 중앙처리장치 1.
Chapter 02 시스템 구조(System Structure)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
제 3 장 Memory - SRAM.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
6장. 주 기억장치 다루는 내용 주기억장치 살펴보기 반도체를 사용한 주기억장치 기억장치 모듈 설계 오류 정정회로
5장 Mysql 데이터베이스 한빛미디어(주).
프로그래밍 개요
제5장 기억장치 5.1 기억장치 시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억 장치 5.4 기억장치 모듈의 설계
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
27장. 모듈화 프로그래밍.
뇌를 자극하는 Windows Server 2012 R2
컴퓨터시스템 구조 Computer System Architecture.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
ARM Development Suite v1.2
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Lecture #6 제5장 기억장치 (1).
ATmega128의 특징 아이티즌 기술연구소
CHAP 21. 전화, SMS, 주소록.
과제 1 4bit x 4 SRAM이 있다 아래 (1), (2) 두 입력에 대한 출력값 [3:0] Dout을 나타내시오 (1)
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
4장 가상 기억장치 관리 4.1 가상 기억 장치의 개요 4.2 주소사상 기법 4.3 블록 사상(block mapping)
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
8장 가상 기억장치의 구성 C반 권예용.
컴퓨터구조 연습문제 발표 Chapter 3 - 컴퓨터의 기능 및 상호연결의 최상위 관점
논리회로 설계 및 실험 4주차.
System Security Operating System.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
제 4 장 Record.
 6장. SQL 쿼리.
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
Presentation transcript:

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

기억장치 액세스(memory access): CPU가 어떤 정보를 기억장치에 쓰거나 기억장치로부터 읽는 동작. 기억장치의 액세스 유형들 순차적 액세스(sequential access): 저장된 정보를 처음부터 순서대로 액세스하는 방식. [예] 자기 테이프 직접 액세스(direct access): 액세스할 위치 근처로 직접 이동한 다음에 순차적 검색을 통하여 최종 위치에 도달하는 방식. [예] 디스크, CD-ROM 임의 액세스(random access): 주소에 의해 직접 기억장소를 찾아 액세스하며, 어떤 기억장소든 액세스하는 시간이 동일. [예] 반도체 기억장치 연관 액세스(associative access): 저장된 내용의 특정 비트들을 비교하여, 일치하는 내용을 액세스. [예] 연관 기억장치(associative memory): 특수목적용 기억장치.

기억장치 시스템을 설계하는 데 있어서 고려해야할 주요 특성들 용량(capacity) 액세스 속도 전송 단위(unit of transfer) CPU가 한 번의 기억장치 액세스에 의하여 읽거나 쓸 수 있는 비트 수. 주기억장치의 경우: 단어(word) 보조저장장치: 블록(512 바이트 혹은 1K 바이트) 주소지정 단위(addressable unit) 바이트 혹은 단어 주소 비트의 수 A와 주소지정 단위의 수 N과의 관계: 2A = N

액세스 속도를 나타내는 파라메터들 액세스 시간(access time) 기억장치 사이클 시간(memory cycle time) = 액세스 시간 + 데이터 복원 시간(data restoration time) 전송률(transfer rate) 임의 액세스 기억장치의 경우에는 전송률이 (1 / 사이클 시간) 다른 저장장치들에서는 다음 관계식이 성립: TN = TA + (N / R) (5-1) 단, TN = N 개의 비트들을 읽거나 쓰는 데 걸리는 평균 시간 TA = 평균 액세스 시간 N = 비트의 수 R = 전송률, 초당 비트 수(bits per second[bps])

삭제불가능 기억장치(nonerasable memory): 내용 변경이 불가능한 기억장치. [예] ROM 기억장치의 제조 재료에 따른 유형 반도체 기억장치(semiconductor memory) : 반도체 물질인 실리콘(Si) 칩을 이용한 기억장치. 자기-표면 기억장치(magnetic-surface memory): 자화 물질로 코팅된 표면에 정보를 저장하는 기억장치. [예] 디스크, 자기 테이프 데이터를 저장하는 성질에 따른 유형 휘발성 기억장치(volatile memory) : 전원 공급이 중단되면 내용이 지워지는 기억장치. [예] RAM 비휘발성 기억장치(nonvolatile memory) : 전원 공급에 관계없는 영구 저장장치. [예] ROM, 디스크, CD-ROM 삭제불가능 기억장치(nonerasable memory): 내용 변경이 불가능한 기억장치. [예] ROM

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

기억장치 설계에 있어서 가장 중요한 요소들 기억장치 특성들간의 관계 용량 속도 가격 기억장치 특성들간의 관계 액세스 속도가 높아질수록, 비트당 가격은 높아진다. 용량이 커질수록, 비트당 가격은 낮아진다. 용량이 커질수록, 액세스 시간은 길어진다. 계층적 기억장치시스템(hierarchical memory system): 기억장치의 성능대가격비(performance/cost ratio)를 향상시키기 위하여 한 시스템내에 다양한 종류의 기억장치들을 사용하는 방식. 계층적 기억장치시스템의 구성 방법 첫 번째 계층 기억장치: 속도가 빠르나 가격은 높은 기억장치 사용 두 번째 계층 기억장치: 속도는 느리지만, 가격은 낮은 기억장치 사용

계층적 기억장치에 의한 성능 향상의 예 [예] 첫 번째 계층 기억장치의 액세스 시간 = 50 ns 두 번째 계층 기억장치의 액세스 시간 = 500 ns 액세스할 정보가 첫 번째 계층에 있을 확률 = 50 % 평균 기억장치 액세스 시간 = (0.5 × 50ns) + (0.5 × 500ns) = 275ns. [표 5-1] 데이터가 첫 번째 계층에 있는 비율에 따른 평균 액세스 시간의 변화

지역성의 원리가 적용되면 높은 성능 향상을 얻을 수 있음. 지역성의 원리가 적용되면 높은 성능 향상을 얻을 수 있음. 지역성의 원리(principle of locality): 기억장치의 액세스가 몇몇 특정 영역에 집중되는 현상. 즉, 짧은 시간을 기준으로 보면 프로세서가 기억장치의 한정된 위치들만을 액세스하면서 작업을 수행. ♠ 프로그램이 실행되는 동안에 일반적으로 지역성의 원리에 의하여 첫 번째 계층의 기억장치에 대한 액세스 횟수가 두 번째 계층의 기억장치에 대한 액세스보다 훨씬 더 많다. 전형적인 기억장치 계층(그림 5-1)에서 상위 층으로 갈수록 다음과 같은 특성이 나타난다 : 비트당 가격이 높아지고, 용량이 감소하며, 액세스 시간은 짧아지고, CPU에 의한 액세스 빈도는 높아진다.

그림 5-1. 기억장치 계층

내부 기억장치: CPU가 직접 액세스할 수 있는 기억장치들 내부 기억장치: CPU가 직접 액세스할 수 있는 기억장치들. [예] CPU 레지스터, 캐쉬 기억장치, 주기억장치, 디스크 캐쉬, 등. 외부 기억장치(external memory): CPU가 직접 액세스할 수 없고, 장치 제어기(device controller)를 통해서만 액세스할 수 있는 기억장치들. [예] 디스크, 자기 테이프, 등. 캐쉬 기억장치(cache memory): 주기억장치의 액세스 속도가 CPU에 비하여 현저히 느리기 때문에 주기억장치로부터 데이터를 읽어오는 동안에 CPU가 오랫동안 기다려야 하는데, 그에 따른 성능 저하를 줄이기 위하여 CPU와 주기억장치 사이에 설치하는 고속의 반도체 기억장치.

디스크 캐쉬(disk cache): 디스크와 주기억장치의 액세스 속도 차이를 줄이기 위하여 그 사이에 설치하는 반도체 기억장치. 위치:주기억장치, 입출력 프로세서 보드 혹은 제어기 보드(그림5-2참조) 주기억장치로부터 디스크로 읽혀나갈(swap-out) 정보들을 일시적으로 저장하는 버퍼 역할. 그림 5-2. 디스크 캐쉬의 위치

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

5.3.1 RAM(Random Access Memory) 특성 : 임의 액세스 방식 반도체 집적회로 기억장치(semiconductor IC memory) 데이터를 읽는 것과 쓰는 것이 모두 가능 휘발성(volatile) 그림 5-3. 전형적인 RAM 칩. (a) RAM의 블록 선도 (b) 제어 신호들에 따른 RAM의 동작

제조 기술에 따른 분류 DRAM SRAM DRAM(Dynamic RAM) SRAM(Static RAM) 캐패시터(capacitor)에 전하(charge)를 충전하는 방식으로 데이터를 저장하는기억 소자들(memory cells)로 구성 → 집적 밀도가 높다. 데이터의 저장 상태를 유지하기 위하여 주기적인 재충전(refresh) 필요 밀도가 더 높으며, 같은 용량의 SRAM 보다 가격이 더 싸다. 용량이 큰 주기억장치로 사용 SRAM 기억 소자로서 플립-플럽(flip-flop)을 이용 → 집적 밀도가 낮다. 전력이 공급되는 동안에는 재충전 없이도 데이터를 계속 유지 가능 DRAM보다 다소 더 빠르다. 높은 속도가 필요한 캐쉬 기억장치로 사용.

RAM의 내부 조직 (예: 64-비트 RAM) 1) 8 x 8 조직 8 비트로 이루어진 8 개의 기억장소들로 구성 세 개의 주소 비트들(A2, A1, A0)이 필요 (23 = 8) 그림 5-4. 8 × 8 조직에서의 주소지정

2) 16 x 4 조직 4 비트로 이루어진 16 개의 기억장소들로 구성 네 개의 주소 비트들이 필요 (24 = 16) 그림 5-5. 16 × 4 조직에서의 주소지정

한 비트씩으로 이루어진 64 개의 기억장소들로 구성 3) 64 × 1 조직 한 비트씩으로 이루어진 64 개의 기억장소들로 구성 6개의 주소 비트들이 필요 (64=26) : 상위 세 비트들은 8개의 열(row)들 중에서, 하위 세비트들은 8개의 행(column)들 중에서 한 개를 선택. 두 개의 3 × 8 해독기가 필요 그림 5-6. 64 × 1 조직의 주소지정

4) 4M × 4 조직 기억 소자들이 2048 × 2048 × 4 비트 형태로 배열 : 2048 개의 열과 2048 개의 행들로 이루어진 장방형 구조. 각 기억장소에는 4 개의 데이터 비트들을 저장. 전체 22 비트의 주소 선들이 필요: RAS(Row Address Strobe) 신호와 CAS(Column Address Strobe) 신호를 이용하여 실제로는 주소 선을 11 개만 사용 그림 5-7. 16M (4M×4) DRAM의 내부 조직

5.3.2 ROM(Read Only Memory) [특성] 영구 저장이 가능한 반도체 기억장치 읽는 것만 가능하고, 쓰는 것은 불가능 다음 내용들의 저장에 사용: 시스템 초기화 프로그램 및 진단 프로그램 서브루틴들 빈번히 사용되는 함수 프로그램들 제어 유니트의 마이크로프로그램 그림 5-9. ROM의 블록 선도.

ROM의 종류 PROM(Programmable ROM): 사용자가 한 번은 쓰는 것이 가능한 ROM. EPROM(Erasable Programmable ROM): 자외선을 이용하여 내용을 지우는 것이 가능한 PROM. 여러 번 쓰기가 가능. EEPROM(Electrically Erasable PROM): 전기적으로 지울 수 있는 EPROM. 플래쉬 기억장치(flash memory): 블록 단위로 지우는 것이 가능한 EEPROM. EEPROM에 비하여 삭제 시간이 더 빠르고, 집적 밀도가 더 높다.

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

1) 각 기억장치 칩의 입출력 비트 수가 단어 길이보다 짧은 경우 [예] 1K×8 비트 RAM 칩들을 이용한 1K×32 비트 기억장치 모듈의 설계 방법: 4 개의 RAM 칩들을 병렬 접속 모듈의 용량 : (1K×8) × 4 개 = 1K×32 비트 = 1K 단어 주소 비트(10개: A9∼A0): 모든 칩들에 공통으로 접속 주소 영역 : 000H ∼ 3FFH (단, H는 16진수 표시) 데이터 저장: 동일한 기억장치 주소에 대하여 칩 당 (32비트들 중의) 8 비트씩 분산 저장

2) 필요한 기억장치 용량이 각 기억장치 칩의 용량보다 큰 경우 [예] 1K×8 비트 RAM 칩들을 이용한 4K×8 비트 기억장치 모듈의 설계 방법: 4 개의 RAM 칩들을 직렬 접속 모듈의 용량 : (1K×8) × 4 개 = 4K×8 비트 = 4K 바이트 주소 비트(12개: A11∼A0) 접속 방법: 상위 두 비트: 주소 해독기를 이용하여 4 개의 칩 선택 신호 발생 하위 8 비트: 모든 칩들에 공통으로 접속 주소 영역 : 000H ∼ FFFH 데이터 저장: 각 기억장치 주소 당 8 비트씩 저장

그림 5-11.

[표 5-2] 각 RAM에 지정되는 주소 영역

기억장치 모듈의 설계 순서 (1) 컴퓨터시스템에 필요한 기억장치 용량 결정 (2) 사용할 칩들을 결정하고, 주소 표(address table 혹은 address map)를 작성 (3) 세부 회로 설계 [예] 8-비트 마이크로컴퓨터를 위한 기억장치의 설계 용량: 1K 바이트 RAM, 512 바이트 ROM 주소영역: RAM = 0 번지부터, ROM = 800H 번지부터 사용가능한 칩들: 256×8 비트 RAM, 512×8 비트 ROM

[표 5-3] 기억장치 주소 표

그림 5-12. CPU와 기억장치 칩들간의 상호 연결

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

사용 목적: CPU와 주기억장치의 속도 차이로 인한 CPU 대기 시간을 최소화시키기 위하여 CPU와 주기억장치 사이에 설치하는 고속 반도체 기억장치. [특징] 주기억장치보다 액세스 속도가 높은 칩 사용. 가격 및 제한된 공간 때문에 용량이 적다. 그림 5-13. 캐쉬의 위치

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

캐쉬의 적중률이 높아질수록 평균 기억장치 액세스 시간은 캐쉬 액세스 시간에 접근. [예제 5-1] Tc = 50 ns, Tm = 400 ns인 시스템에서 캐쉬 적중률이 70%, 80%, 90%, 95% 및 99%일 때의 평균 기억장치 액세스 시간을 각각 구하라. [풀이] 식 (5-3)에 따라, 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)에 크게 의존.

시간적 지역성(temporal locality): 최근에 액세스된 프로그램이나 데이터가 가까운 미래에 다시 액세스될 가능성이 높다. 공간적 지역성(spatial locality): 기억장치내에 인접하여 저장되어 있는 데이터들이 연속적으로 액세스될 가능성이 높다. 순차적 지역성(sequential locality): 분기(branch)가 발생하지 않는 한, 명령어들은 기억장치에 저장된 순서대로 인출되어 실행된다. 캐쉬 설계에 있어서의 공통적인 목표 캐쉬 적중률의 극대화 캐쉬 액세스 시간의 최소화 캐쉬 실패에 따른 지연 시간의 최소화 주기억장치와 캐쉬간의 데이터 일관성 유지 및 그에 따른 오버헤드의 최소화

용량이 커질수록 적중률이 커지지만, 비용이 증가한다. 5.5.1 캐쉬의 크기 용량이 커질수록 적중률이 커지지만, 비용이 증가한다. 용량이 커질수록 주소 해독 및 정보 인출을 위한 주변 회로가 더 복잡해지기 때문에 액세스 시간이 다소 더 길어진다. 5.5.2 인출 방식 요구 인출(demand fetch) 방식: 필요한 정보만 인출해 오는 방법 선인출(prefetch) 방식: 필요한 정보 외에 앞으로 필요할 것으로 예측되는 정보도 미리 인출하는 방식. 지역성이 높은 경우에 효과가 높다. 블록(block) : 주기억장치로부터 동시에 인출되는 정보들의 그룹. [예] 주기억장치 용량 = 2n 단어, 블록 = K 단어이면, 블록의 수 = 2n/K 개 슬롯(slot) : 캐쉬에서 한 블록이 저장되는 장소. 태그(tag) : 슬롯에 적재된 블록을 구분해주는 정보.

그림 5-14. 주기억장치와 캐쉬의 조직

어떤 주기억장치 블록들이 어느 캐쉬 슬롯을 공유할 것인 지를 결정해 주는 방법 5.5.3 사상 방식 어떤 주기억장치 블록들이 어느 캐쉬 슬롯을 공유할 것인 지를 결정해 주는 방법 직접 사상(direct mapping) 완전-연관 사상(fully-associative mapping) 세트-연관 사상(set-associative mapping) (1) 직접 사상 주기억장치의 블록들이 지정된 하나의 캐쉬 슬롯으로만 사상 주기억장치 주소 형식 태그 필드(t 비트): 태그 번호 슬롯 번호(s 비트): 캐쉬의 m = 2s 개의 슬롯들 중의 하나를 지정. 단어 필드(w 비트): 각 블록 내 2w 개 단어들 중의 하나를 구분 주기억장치의 블록 j가 적재될 수 있는 캐쉬 슬롯의 번호 i : i = j mod m (5-4) 단, j : 주기억장치 블록 번호, m : 캐쉬 슬롯의 전체 수

[표 5-4] 각 캐쉬 슬롯을 공유하는 주기억장치 블록들 직접 사상 캐쉬의 조직 각 캐쉬 슬롯은 2t 개의 블록들에 의하여 공유된다. 같은 슬롯을 공유하는 블록들은 서로 다른 태그를 가진다.

그림 5-15. 직접 사상 캐쉬의 조직

[동작 원리] 캐쉬로 기억장치 주소가 보내지면, 그 중 s-비트의 슬롯 번호를 이용하여 캐쉬의 슬롯을 선택. 선택된 슬롯의 태그 비트들을 읽어서 주소의 태그 비트들과 비교. 그 두 태그값이 일치하면, 캐쉬 적중 : 주소의 w 비트들을 이용하여 슬롯내의 단어들 중에서 하나를 인출하여 CPU로 보낸다. 태그값이 일치하지 않는다면, 캐쉬 미스 : 주소를 주기억장치로 보내어 한 블록을 액세스. 인출된 블록을 지정된 캐쉬 슬롯에 적재하고, 주소의 태그 비트들을 그 슬롯의 태그 필드에 기록. 만약 그 슬롯에 다른 블록이 이미 적재되어 있다면, 그 내용은 지워지고 새로이 인출된 블록을 적재. [장점] 하드웨어가 간단하고, 구현하는 비용이 적게 든다 [단점] 각 주기억장치 블록이 적재될 수 있는 캐쉬 슬롯이 한 개뿐이라는 점

[사례] 직접 사상 방식의 경우 주기억장치 용량 = 16M (224) 바이트 주기억장치 주소 = 24 비트, 바이트 단위로 주소 지정 블록 크기 = 4 바이트 주기억장치: 4M (222) 개의 블록들로 구성 캐쉬 크기 = 64K (216) 바이트 캐쉬 슬롯 크기 = 4 바이트 전체 캐쉬 슬롯의 수 m = 16K (214) 개 직접 사상 방식의 경우 기억장치 주소 형식: 각 기억장치 블록이 공유하게 될 캐쉬 슬롯 번호 i = j mod 214

[표 5-5] 각 캐쉬 슬롯을 공유하는 주기억장치 블록들

그림 5-16. 직접 사상의 예

[예제 5-1] 직접 사상 캐쉬에서의 적중 검사 ---------------------------------- (1) FFFFF4 (2) 8C0004 (3) FEFFFC (4) 000004 [풀이] (1) 캐쉬 적중 : 현재 3FED번 슬롯에 적재되어 있음. (데이터 = 87654321) (2) 캐쉬 미스 : 이 블록이 적재될 수 있는 0001번 슬롯의 현재 태그는 00임. (3) 캐쉬 미스 : 이 블록이 적재될 수 있는 3FFF번 슬롯의 현재 태그는 FF임. (4) 캐쉬 적중 : 현재 0001번 슬롯에 적재되어 있음. (데이터 = 11223344) ------------------------------------------------------------------------------------------

(2) 완전-연관 사상 주기억장치 블록이 캐쉬의 어떤 슬롯으로든 적재 가능. 기억장치 주소 형식 : 태그 필드 = 주기억장치 블록 번호.

그림 5-17. 완전-연관 사상 캐쉬의 조직

앞의 [사례]에 완전-연관 사상 방식을 적용하면, 기억장치 주소 형식은 아래와 같이 구성 [장점] 새로운 블록이 캐쉬로 적재될 때 슬롯의 선택이 매우 자유롭다. 지역성이 높다면, 적중률이 매우 높아진다. [단점] 캐쉬 슬롯들의 태그들을 병렬로 검사하기 위하여 매우 복잡하고 비용이 높은 회로가 필요.

그림 5-18. 완전-연관 사상의 예

[예제 5-2] 완전-연관 사상 캐쉬에서의 적중 검사 --------------------------- (1) FFFFFC (2) 278608 (3) 16339C (4) 00000C [풀이] (1) 캐쉬 적중 : 현재 0001번 슬롯에 적재되어 있음. (2) 캐쉬 미스 (3) 캐쉬 적중 : 현재 3FFE번 슬롯에 적재되어 있음. (4) 캐쉬 미스 ------------------------------------------------------------------------------------------

(3) 세트-연관 사상 기억장치 주소 형식: 직접 사상과 완전-연관 사상의 조합 주기억장치 블록 그룹이 하나의 캐쉬 세트를 공유하며, 그 세트에는 두 개 이상의 슬롯들이 있음 캐쉬는 v 개의 세트들로 나누어지며, 각 세트들은 k 개의 슬롯들로 구성 캐쉬 슬롯의 수 m과 주기억장치 블록이 적재될 수 있는 캐쉬 세트 번호 i m = v x k (5-5) i = j mod v (5-6) 단, i : 캐쉬 세트의 번호 j : 주기억장치 블록 번호 m : 캐쉬 슬롯들의 수 기억장치 주소 형식: 태그 필드와 세트 필드를 합한 (t+d) 비트가 주기억장치의 2(t+d) 블록들 중의 하나를 지정.

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

그림 5-19. 세트-연관 사상 캐쉬의 조직

그림 5-20. 세트-연관 사상의 예

[예제 5-3] 세트-연관 사상 캐쉬에서의 적중 검사 --------------------------- (1) 1111 1111 0111 1111 1111 1100 (2) 0000 0000 0000 0000 0000 0100 (3) 1010 0011 1111 1111 1111 0100 (4) 0000 0001 0000 0000 0000 0100 [풀이] (1) 캐쉬 적중 : 현재 1FFF번 세트의 두 번째 슬롯(데이터 = 77777777)에 적재되어 있음. (2) 캐쉬 적중 : 현재 0001번 세트의 첫 번째 슬롯(데이터 = 11223344)에 적재되어 있음. (3) 캐쉬 미스 : 1FFD번 세트에는 태그가 1FF인 블록만 적재되어 있음. (4) 캐쉬 미스 : 0001번 세트에는 태그가 000인 블록만 적재되어 있음. ------------------------------------------------------------------------------------------ 세트 수 = 캐쉬 슬롯 수 (v = m), 세트내 슬롯의 수 k = 1 → 직접 사상 세트 수 v =1, 세트내 슬롯의 수 = 캐쉬의 전체 슬롯 수 (k = m) → 완전-연관 사상

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

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

캐쉬의 블록이 변경되었을 때 그 내용을 주기억장치에 갱신하는 시기와 방법을 결정하는 정책. 5.5.5 쓰기 정책(write policy) 캐쉬의 블록이 변경되었을 때 그 내용을 주기억장치에 갱신하는 시기와 방법을 결정하는 정책. Write-through : 모든 쓰기 동작들이 캐쉬로 뿐만 아니라 주기억장치로도 동시에 행해지는 방식. 그림 5-22. [장점] 캐쉬에 적재된 블록의 내용과 주기억장치에 있는 그 블록의 내용이 항상 같다. [단점] 모든 쓰기 동작이 주기억장치 쓰기를 포함하므로, 쓰기 시간이 길어진다.

Write-back : 캐쉬에서 데이터가 변경되어도 주기억장치에는 갱신되지 않는 방식. [장점] 기억장치에 대한 쓰기 동작의 횟수가 최소화되고, 쓰기 시간이 짧아진다. [단점] 캐쉬의 내용과 주기억장치의 해당 내용이 서로 다르다 : 블록을 교체할 때는 캐쉬의 상태를 확인하여 갱신하는 동작이 선행되어야 하며, 그를 위하여 각 캐쉬 슬롯이 상태 비트를 가지고 있어야 한다. 다중프로세서 시스템에서의 데이터 불일치 문제(data inconsistency problem) : 주기억장치에 있는 블록의 내용과 캐쉬 슬롯에 적재된 복사본들 간에 서로 달라지는 문제.

그림 5-23. 다중프로세서시스템에서의 데이터 불일치 현상

5.5.6 다중 캐쉬(Multiple-cache) 1) 계층적 캐쉬 온-칩 캐쉬(on-chip cache) : 캐쉬 액세스 시간을 단축시키기 위하여 CPU 칩내에 포함시킨 캐쉬. 계층적 캐쉬(hierachical cache) : 온-칩 캐쉬를 1차(L1) 캐쉬로 사용하고, 칩 외부에 더 큰 용량의 2차(L2) 캐쉬를 설치하는 방식. 그림 5-24. 2-단계 캐쉬를 가진 시스템

L2는 L1의 슈퍼-세트(super-set) : L2의 용량이 L1보다 크며, L1의 모든 내용이 L2에도 존재. 2-단계 캐쉬 시스템의 평균 기억장치 액세스 시간 Ta = H1 x TC1 + (H2 - H1) x TC2 + (1 - H2) x Tm (5-7)

목적: 명령어 인출 유니트와 실행 유니트 간에 캐쉬 액세스 충돌 현상 제거. 2) 분리 캐쉬(split cache) 캐쉬를 명령어 캐쉬와 데이터 캐쉬로 분리. 목적: 명령어 인출 유니트와 실행 유니트 간에 캐쉬 액세스 충돌 현상 제거. 대부분의 고속 프로세서들(Pentium II, PowerPC 등)에서 사용. 그림 5-25. PowerPC 620 프로세서의 내부 조직