Microsoft PowerPoint - 09-컴구조-5-프로세서

Similar documents
Chapter ...

Microsoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hw8.ppt [호환 모드]

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

Microsoft PowerPoint - 30.ppt [호환 모드]

Computer Architecture

hwp

Microsoft PowerPoint - CSharp-10-예외처리

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

Microsoft PowerPoint - 사본 - OAS04-사무자동화 기술(HW-CPU).ppt

PowerPoint 프레젠테이션

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

마이크로프로세서 개요

PowerPoint 프레젠테이션

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Computer Architecture

sw $6,50($1) I3 If register read/write can be done in one cycle, only 2 s are needed. (Both are correct) lw $1,40($6) I1 add $6,$2,$2 I2 sw $6,50($1)

Microsoft PowerPoint - hy2-12.pptx

ºÎ·ÏB

PowerPoint 프레젠테이션

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - 15-MARS

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

Microsoft PowerPoint - M08_CPUcontrol.ppt [호환 모드]

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Computer Architecture

슬라이드 1

Microsoft PowerPoint os2.ppt [호환 모드]

정보보안 개론과 실습:네트워크

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Lectures for 2nd Edition

OCW_C언어 기초

Microsoft PowerPoint - DSD06c_ISA.pptx

untitled

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

슬라이드 1

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6397E3131B0AD20B9AEC1A62BC1A4B4E42E687770>

9

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

8장 조합논리 회로의 응용

JVM 메모리구조

PowerPoint Presentation

Microsoft PowerPoint - DSD03_verilog3b.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - DSD06b_Cont.pptx

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

adfasdfasfdasfasfadf

Microsoft PowerPoint - polling.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx

3차시.ppt

Computer Architecture

<4D F736F F F696E74202D2037C0E52DC4B3BDC3BFCDB8DEB8F0B8AE>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

JAVA PROGRAMMING 실습 08.다형성

ADP-2480

API 매뉴얼

ARM 프로세서 입문

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

PowerPoint 프레젠테이션

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft Word - logic2005.doc

Introduction to LMC

6주차.key

Microsoft PowerPoint - VHDL08.ppt [호환 모드]

ARM01

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

Chap 6: Graphs

Microsoft PowerPoint - o8.pptx

제11장 프로세스와 쓰레드

초급과정 목차

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

PowerPoint 프레젠테이션

PRO1_09E [읽기 전용]

Microsoft Word - PLC제어응용-2차시.doc

Microsoft PowerPoint - chap04-연산자.pptx

리눅스 프로세스 관리

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint Template

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

hlogin2

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - 강의2.ppt

Microsoft PowerPoint - ch11_reg.pptx

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt

Microsoft PowerPoint - a2.ppt [호환 모드]

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Transcription:

5 장. 프로세서 : 데이터패스및제어유닛 서론 논리설계관례 데이터패스만들기 단순한구현 다중사이클구현 예외 순천향대학교컴퓨터학부이상정 1 51 5.1 서론 순천향대학교컴퓨터학부이상정 2

기본적인 MIPS 구현 MIPS 핵심명령어일부를갖는기본프로세서구현 구현되는명령어 메모리참조명령어 (memory-reference instructions) lw, sw 산술 / 논리명령어 (arithmetic/logical instructions) add, sub, and, or, slt 분기명령어 (branch instructions) beq, j 순천향대학교컴퓨터학부이상정 3 구현개요 모든명령어처리시작 2 단계 1. 명령어인출 (Instruction Fetch) 프로그램카운터 (PC) 를메모리에전송하여주소지정 지정된메모리에저장된명령어를읽어들임 PC = PC + 4 2. 명령해독 (Instruction Decode) Opcode 해독 레지스터미리읽기 (prefetch) 순천향대학교컴퓨터학부이상정 4

마지막단계 각명령어종류에따라 3 번째단계수행 메모리참조명령어 (memory-reference instructions) sw: 메모리에데이터저장 lw: 메모리데이터를읽음 산술 / 논리명령어 (arithmetic/logical instructions) ALU 연산결과를레지스터에저장 분기명령어 (branch instructions) 비교결과에따라 PC 변경 순천향대학교컴퓨터학부이상정 5 기본 MIPS 의추상적관점구현 그림 51 5.1 순천향대학교컴퓨터학부이상정 6

그림 5.2 기본 MIPS 의구현 순천향대학교컴퓨터학부이상정 7 52 5.2 논리설계관례 순천향대학교컴퓨터학부이상정 8

조합논리, 상태소자 모서리구동방법론 (edge triggered methodology) 전형적인동작 상태소자내용읽음 조합논리회로로값을보냄 결과를하나이상의상태소자에저장 그림 52 5.2 순천향대학교컴퓨터학부이상정 9 5.3 데이터패스만들기 순천향대학교컴퓨터학부이상정 10

명령인출데이터패스구성요소 명령메모리 (Instruction memory) 프로그램의명령어저장 프로그램카운터 (PC) 명령어의주소를저장 덧셈기 (Adder) 다음명령어의주소를지정하기위해 PC 를증가 그림 5.6 순천향대학교컴퓨터학부이상정 11 R- 형식명령어실행 단계 3 opcode 연산을수행 단계 4 ALU의결과를레지스터에저장 그림 57 5.7 순천향대학교컴퓨터학부이상정 12

R- 형식명령어데이터패스 순천향대학교컴퓨터학부이상정 13 메모리참조명령어실행 단계 3 베이스레지스터와 16 비트오프셋을더하여메모리주소를계산 단계 4 sw $t1,offset_value($t2) $t1 을메모리에저장 lw $t1,offset_value($t2) 메모리로부터값을읽어서 $t1 에저장 주요구성요소 구성 부호확장유닛과데이터메모리 순천향대학교컴퓨터학부이상정 14

load/store 명령을위한데이터패스 순천향대학교컴퓨터학부이상정 15 분기명령어실행 단계 3 비교를위해 ALU를사용 부호확장된오프셋과 PC 를더하여분기타겟주소를계산 단계 4 비교의결과에근거하여 PC 를변경 주요구성요소 Shift-left-2 unit 분리된덧셈기 순천향대학교컴퓨터학부이상정 16

분기명령어를위한데이터패스 그림 59 5.9 순천향대학교컴퓨터학부이상정 17 단일데이터패스로합치기 가장단순한데이터패스 한클럭사이클에명령어를실행 어떤데이터패스도명령당두번이상사용될수없음 명령어와데이터메모리분리 두개의다른명령군사이에데이터패스구성요소공유 멀티플렉서와데이터패스공유 순천향대학교컴퓨터학부이상정 18

예제 : 데이터패스구성하기 산술 / 논리 (R 형식 ) 연산명령어데이터패스와메모리명령어 데이터패스를결합 [Answer] 그림 5.10 순천향대학교컴퓨터학부이상정 19 그림 5.11 MIPS 기본데이터패스 순천향대학교컴퓨터학부이상정 20

54 5.4 단순한구현 순천향대학교컴퓨터학부이상정 21 ALU 제어 명령군에따라 ALU 는다음 5 가지기능중하나를수행 순천향대학교컴퓨터학부이상정 22

명령어 Op 코드, 기능필드와 ALU 제어입력 ALUOp 제어신호와 6 비트기능코드입력 ALU 제어신호출력 그림 5.12 순천향대학교컴퓨터학부이상정 23 ALU 제어비트진리표 그림 513 5.13 순천향대학교컴퓨터학부이상정 24

ALU 제어구현 부록 C2 C.2 절참조 Operation3 = 0 Operation2 = ALUOp0 + ALUOp1 F1 Operation1 = ALUOp1' + F2' Operation0 = ALUOp1 (F0 + F3) 순천향대학교컴퓨터학부이상정 25 주제어유닛설계하기 세종류의명령어 그림 5.14 순천향대학교컴퓨터학부이상정 26

데이터패스의제어선 그림 5.15 순천향대학교컴퓨터학부이상정 27 제어신호기능 그림 5.16 순천향대학교컴퓨터학부이상정 28

제어유닛 PCSrc =Branch Zero (from ALU) 그림 517 5.17 순천향대학교컴퓨터학부이상정 29 명령어의제어신호 그림 5.18 순천향대학교컴퓨터학부이상정 30

R 형식명령실행 add $t1,$t2,$t3$t2 $t3 1. 명령어를메모리에서인출하고, PC 값증가 2. 레지스터값을읽고 ($t2, $t3), 동시에주제어유닛이제 어신호를생성 3. ALU는레지스터에서읽어들인값에대해연산을수행, 기능 코드를사용하여 ALU 기능을결정 4. ALU 결과값이레지스터 $t1 에저장 순천향대학교컴퓨터학부이상정 31 R 형식명령어의데이터패스동작 그림 5.19 순천향대학교컴퓨터학부이상정 32

적재 (load) 명령어실행 lw $t1,offset($t2) 1. 명령어를메모리에서인출하고, PC 값증가 2. 레지스터값을읽고 ($t2), 동시에주제어유닛이제어신호 를생성 3. ALU 는 $t2 의읽어들이값과부호확장된오프셋을더해 유효주소계산 4. ALU 출력이데이터메모리의주소로지정 5. 메모리에서읽어들인값을 $t1 에저장 순천향대학교컴퓨터학부이상정 33 적재명령어의데이터패스동작 그림 520 5.20 순천향대학교컴퓨터학부이상정 34

Store 명령어의실행 순천향대학교컴퓨터학부이상정 35 분기명령어의실행 beq $t1,$t2,offset$t2 1. 명령어를메모리에서인출하고, PC 값증가 2. 레지스터값을읽고 ($t1, $t2), 동시에주제어유닛이제 어신호를생성 3. ALU 는두레지스터에서읽은값에뺄셈을수행하고, PC+4 와부호확장후 2비트왼쪽시프트한오프셋을더하여타겟주소를계산한다. 4. ALU의 Zero 출력을사용하여 PC에저장될덧셈기의결과값을결정 순천향대학교컴퓨터학부이상정 36

분기명령어의데이터패스동작 그림 521 5.21 순천향대학교컴퓨터학부이상정 37 제어유닛진리표 그림 522 5.22 순천향대학교컴퓨터학부이상정 38

제어유닛구현 그림 C.2.5 순천향대학교컴퓨터학부이상정 39 예제 : 점프명령어구현 PC[31-28] PC+4[31-28] PC[27-2] 2] instr[25-0] (=immediate field) PC[1-0] 00 그림 524 5.24 순천향대학교컴퓨터학부이상정 40

왜단일사이클구현은사용되지않는가? 단일사이클구현은비효율적 모든명령어에대해클럭사이클이같은길이 CPI = 1 클럭사이클길이는가장긴경로의명령어 (load) 의해결정 적재 (load) 명령어 명령어메모리 레지스터파일 ALU 데이터메모리레지스터파일 순천향대학교컴퓨터학부이상정 41 예제 : 단일사이클컴퓨터의성능 주요기능유닛들의작동시간가정 메모리유닛 : 200 ps ALU 및덧셈기 : 100 ps 레지스터파일 ( 읽기또는쓰기 ) : 50 ps 멀티플렉서, 제어유닛, PC 접근, 부호확장유닛, 선 (wires): 지연없다고가정 명령어사용빈도가정 25% lw, 10% sw, 45% R-type, 15% beq, 5% j 다음중어느방식이얼마만큼더빠른가? (1) 고정된길이의단일클럭사이클 (2) 가변길이를갖는단일클럭사이클 순천향대학교컴퓨터학부이상정 42

[Answer-1] CPU 실행시간 = 명령어수 x CPI x 클럭사이클시간 = 명령어수 x 클럭사이클시간 ( CPI = 1 ) 두가지구현에대한클럭사이클시간비교. 각명령어에대한최장경로 (critical path) 를조사하여클럭 사이클시간을계산 순천향대학교컴퓨터학부이상정 43 [Answer-2] 순천향대학교컴퓨터학부이상정 44

[Answer-3] 고정된길이의클럭구현의경우, Clock cycle = 600 ps. 가변클럭구현의경우, CPU clock cycle = 600 25%+550 10%+400 45%+350 15%+200 5% = 447.5 ps CPU Performance CPU execution time variable clock single clock = CPU Performancesingle clock CPU execution timevariable clock IC CPU clock cyclesingle clock = IC CPU clock cycle variable clock CPU clock cyclesingle clock 600 = = = 1.34 CPU clock cycle 447.5 variable clock 가변길의의클럭구현이 1.34 배더빠르다. 가변길이의클럭구현은매우어려우며오버헤드 (overhead) 가크다. 순천향대학교컴퓨터학부이상정 45 단일사이클구현의문제점 부동소수점유닛과복잡한명령어집합에대해서는클럭의길이가너무 길어짐 자주생기는일은빠르게하라는주요설계원칙위반 각기능유닛이클럭당한번밖에사용할수없어서일부기능유닛들은중복되어야함 성능및하드웨어측면에서비효율적설계 다중사이클데이터패스 짧은클럭사이클각명령어당다중클럭사이클 순천향대학교컴퓨터학부이상정 46

55 5.5 다중사이클구현 순천향대학교컴퓨터학부이상정 47 다중사이클구현 다중사이클구현 명령어실행의각단계는 1 클럭사이클걸림 다중사이클구현의주요장점 각명령어마다다른클럭사이클수 단일명령실행내에서기능유닛공유 순천향대학교컴퓨터학부이상정 48

다중사이클데이터패스구현개요 명령어와데이터용으로하나의메모리유닛이사용 하나의 ALU 사용 각기능유닛뒤에한두개의레지스터가추가 IR,MDR,A,B,ALUOut 그림 525 5.25 순천향대학교컴퓨터학부이상정 49 MPS 의다중사이클데이터패스구현 그림 5.26 순천향대학교컴퓨터학부이상정 50

ALU 입력 ALU 연산 1. PC + 4 2. Reg[rs] op Reg[rt] 3. Reg[rs] + sign-extended(offset) 4. (PC+4) + (sign-extended(offset) << 2) ALU 입력 -1 PC, Reg[rs] ALU 입력-2 1. Constant 4 2. Reg[rt] 3. sign-extended(offset), 4. sign-extended(offset)<<2 순천향대학교컴퓨터학부이상정 51 제어신호 메모리, PC, 레지스터, IR 등을위한쓰기제어신호 메모리읽기제어신호 ALU 제어신호 MUX 제어신호 추가된제어신호 : ALUSrcA, IorD, ALUSrcB 제거된제어신호 : Jump, Branch, ALUSrc 순천향대학교컴퓨터학부이상정 52

다중사이클데이터패스의제어신호 그림 527 5.27 순천향대학교컴퓨터학부이상정 53 PC 를위한제어신호 PC 의 3 가지소스 (1) ALU 출력 : 다음명령어실행을위한 PC + 4 (2) ALUOut 레지스터 : beq 명령어를위한분기타겟주소 (3) 왼쪽으로 2 비트이동된 IR 의하위 26 비트 : 점프명령어 PC 제어신호 PCSource: MUXselect PCWrite: 무조건적인쓰기 (Unconditional update ) (e.g. 명령어인출, 점프명령어 ) PCWriteCond: 조건적인쓰기 (Conditional update) (e.g. beq) PC 쓰기신호 PC = PCWrite + PCWriteCond Zero 순천향대학교컴퓨터학부이상정 54

다중사이클데이터패스와제어유닛 순천향대학교컴퓨터학부이상정 55 그림 5.28 1- 비트제어신호들의동작 그림 5.29 (upper) 순천향대학교컴퓨터학부이상정 56

2- 비트제어신호들의동작 그림 5.29 (lower) 순천향대학교컴퓨터학부이상정 57 명령어실행을여러개의클럭사이클로나누기 목적 성능최대화 각클럭사이클에서하는일의균형을유지 5 개의실행단계 1. 명령어인출 (Instruction fetch) 2. 명령어해독및레지스터읽기 (Instruction decode and register fetch) 3. 실행, 메모리주소계산또는분기의완료 4. 메모리접근또는 R 형식명령어의완료단계 5. 메모리읽기완료단계 순천향대학교컴퓨터학부이상정 58

클럭 1, 2 1. 명령어인출 IR Memory [PC]; /* MemRead, IRWrite, IorD=0 */ PC PC + 4; /* ALUSrcA=0, ALUSrcB=01, ALUOp=00, PCWrite, PCSource=00 */ 2. 명령어해독및레지스터읽기, 분기타겟주소계산 A Reg [IR [25:21]]; B Reg [IR [20:16]]; ALUOut PC + (sign-extend (IR [15:0]) << 2); /* ALUSrcA=0, ALUSrcB=11, ALUOp=00 */ 순천향대학교컴퓨터학부이상정 59 메모리참조명령어 3. 메모리주소계산 ALUOut A + sign-extend (IR [15:0]); 4. 메모리접근 /* ALUSrcA=1, A ALUSrcB=10, ALUOp=00 */ lw: MDR Memory [ALUOut]; /* MemRead, IorD=1 */ or sw: Memory [ALUOut] B; /* MemWrite, IorD=1 */ 5. 메모리읽기완료 lw: Reg[IR [20:16]] MDR; /* MemtoReg=1, RegWrite, RegDst=0 */ 순천향대학교컴퓨터학부이상정 60

산술- 논리명령어 3. 실행 ALUOut AopB; /* ALUSrcA=1, ALUSrcB=00, ALUOp=10 */ 4. R 형식명령어완료 Reg [IR [15:11]] ALUOut; /* RegDst=1, RegWrite, MemtoReg=0 */ 순천향대학교컴퓨터학부이상정 61 분기와점프명령어 3. 분기완료 if (A==B) PC ALUOut; /* ALUSrcA=1, ALUSrcB=00, ALUOp=01, PCSource=01, PCWriteCond */ 3. 점프완료 PC {PC[31:28], (IR[25:0] << 2)}; /* PCSource=10, PCWrite */ 순천향대학교컴퓨터학부이상정 62

단계별동작요약 단계 1 R 형식명령어를분기를위한점프를위한메모리참조명령어를위한동작위한동작동작동작 IR Memory[PC] PC PC + 4 2 3 4 A Reg[IR[25:21]] B Reg[IR[20:16]] ALUOut PC + (sign-extend(ir[15:0]) << 2) ALUOut ALUOut A op B A + sign-extend(ir[15:0]) Reg[IR[15:11]] ALUOut Load: MDR Memory[ALUOut] or Store: Memory[ALUOut] B If(A == B) PC ALUOut PC PC[31:28] (IR[25:0]<<2) 5 Load : Reg[IR[20:16]] MDR 순천향대학교컴퓨터학부이상정 63 그림 5.30 제어를정의하기 예제 : 다중사이클 CPU 의 CPI SPECINT2000 명령어배합을사용할때 CPI 값은? [Answer] loads: stores: 25%, 5 clocks 10%, 4 clocks branches: 11%, 3 clocks jumps: 2%, 3 clocks ALU: 52%, 4 clocks CPI = 0.25 5 + 0.10 4 + 0.52 4 + 0.11 3 + 0.02 3 = 4.12 최악의경우 CPI = 5 ( 모든명령어가같은클럭사이클갖는경우 ) 순천향대학교컴퓨터학부이상정 64

제어유닛의구현 다중사이클제어를명시하는 2 가지기법 (1) FSM (finite state machine) hardwired control unit (2) Microprogramming g microprogrammed control unit 상위수준의 FSM 제어도 : 그림 5.31 순천향대학교컴퓨터학부이상정 65 명령어실행및제어신호 순천향대학교컴퓨터학부이상정 66

FSM 명령어인출및해독 그림 532 5.32 순천향대학교컴퓨터학부이상정 67 FSM 메모리참조명령어 그림 5.33 순천향대학교컴퓨터학부이상정 68

FSM R 형식명령어 Figure 5.34 순천향대학교컴퓨터학부이상정 69 FSM 분기및점프명령어 그림 535 5.35 그림 536 5.36 순천향대학교컴퓨터학부이상정 70

완성된 FSM 그림 5.38 순천향대학교컴퓨터학부이상정 71 하드와이어드 (hardwired) 제어의블록다이어그램 그림 5.37 순천향대학교컴퓨터학부이상정 72

PLA 구현 그림 C39 C.3.9 순천향대학교컴퓨터학부이상정 73 56 5.6 예외 순천향대학교컴퓨터학부이상정 74

예외 예외 (exception) 와인터럽트 (interrupt) 분기나점프명령어가아니면서명령어실행의정상적인흐름을바꾸 예외 는사건 프로세서내에서의예기치못한사건 e.g. 산술오버플로우 (arithmetic overflow ) (cf) 트랩 (rap) 인터럽트 프로세서밖에서의예기치못한사건 프로세서와통신하기위해 I/O 디바이스에서사용 순천향대학교컴퓨터학부이상정 75 MIPS 규약 예외 내부적인요인에의한사건 인터럽트 외부적인요인에의한사건 Intel IA-32 구조 모드사건들을인터럽트로지칭 Type of event From where? MIPS terminology I/O device request external interrupt invoke OS from user program internal exception arithmetic overflow internal exception using an undefined instruction internal exception hardware malfunction either exception or interrupt 순천향대학교컴퓨터학부이상정 76

예외처리방식 기본적으로는인터럽트처리와유사 1 EPC (exception program counter) 문제를일으킨명령어의주소 2 운영제체로제어를이동 3 사용자프로그램에서비스제공, 오버플로우에대해미리정의된행동을수행, or 프로그램의실행을중지하고에러를보고 4 PC EPC or 프로그램종료 순천향대학교컴퓨터학부이상정 77 예외의원인구분 (1) 상태레지스터사용 (e.g. Cause 레지스터 ) 예외의원인을표시하는필드포함 (2) 벡터인터럽트 (Vectored interrupt) 제어가이동되는주소가예외의원인에의해결정 예 exception type undefined instruction arithmetic overflow exception vector address C000 0000 hex C000 0020 hex 순천향대학교컴퓨터학부이상정 78

예외처리를위한레지스터 EPC : 중단된명령어의주소를저장하기위한 32 비트레지스터 Cause : 예외의원인을저장하는 32비트레지스터 LSB = 0, 정의안된명령어 LSB = 1, 산술오버플로우 Cause in MIPS (cf) 부록 A.7 Cause[15-10] = 유보된인터럽트 (pending interrupts) Cause[5-2] = 예외코드 (exception code) 예외코드 (exception code) 0 for INT (external interrupt) 4 for ADDRL (address error, load or instr. fetch) 5 for ADDRS (address error, store) 6 for IBUS (bus error on instr. fetch) 7 for DBUS (bus error on data load or store) 8 for SYSCALL (system call exception) 9 for BKPT (breakpoint exception) 10 for RI (reserved instruction exception) 12 for OVF (arithmetic overflow exception) 순천향대학교컴퓨터학부이상정 79 예외처리를위한신호 그림 5.39 EPCWrite, CauseWrite 레지스터쓰기신호 IntCause Cause 레지스터의하위비트를설정하기위한 1 비트제어신호 PCSource =11 PC <- 예외주소 (8000 0180 hex ) 순천향대학교컴퓨터학부이상정 80

그림 5.39 순천향대학교컴퓨터학부이상정 81 예외처리를위한 FSM 단계 11, 정의안된명령어 Cause = 0; /* IntCause=0, CauseWrite */ EPC=PC 4; /* ALUSrcA=0, ALUSrcB=01, ALUOp=01, EPCWrite */ PC = 8000 0180 /* PCSource=11, PCWrite */ 단계 11, 산술오버플로우 Cause = 1; /* IntCause=1, CauseWrite */ EPC = PC 4; /* ALUSrcA=0, ALUSrcB=01, ALUOp=01 01, EPCWrite */ PC = 8000 0180 /* PCSource=11, PCWrite */ 순천향대학교컴퓨터학부이상정 82

예외가포함된 FSM 그림 5.40 순천향대학교컴퓨터학부이상정 83 예외검출 정의안된명령어 상태 1 에서 lw, sw, 0 (R-type), j and beq 외에다른모든명령어 op 값 다음상태 = 10 산술오버플로우 상태 7 에서 ALU 오버플로우신호출력 다음상태 = 11 순천향대학교컴퓨터학부이상정 84

과제 : 연습문제 연습문제 5.1: 조합논리와순차논리구분 5.2: 단일사이클데이터패스 stuck-at-0 5.8: jr (jump register) 추가, 그림 5.18에추가 5.29 : 다중사이클데이터패스 stuck-at-0 순천향대학교컴퓨터학부이상정 85