5장. 프로세서: 데이터패스및 ... -...

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

Upload: vothuy

Post on 05-Mar-2018

244 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

5장. 프로세서: 데이터패스 및 제어유닛

서론서론

논리 설계 관례

데이터패 만 기데이터패스 만들기

단순한 구현

다중 사이클 구현

예외

순천향대학교 컴퓨터학부 이 상 정 1

예외

5 1 서론5.1 서론

순천향대학교 컴퓨터학부 이 상 정 2

Page 2: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

기본적인 MIPS 구현기본적인 MIPS 구현

MIPS 핵심 명령어 일부를 갖는 기본 프로세서 구현MIPS 핵심 명령어 일부를 갖는 기본 프로세서 구현

구현되는 명령어구현되는 명령어

• 메모리 참조 명령어(memory-reference instructions)• lw sw• lw, sw

• 산술/논리 명령어(arithmetic/logical instructions)• add, sub, and, or, slt, , , ,

• 분기 명령어(branch instructions)• beq, j

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 3

컴퓨터구조

구현 개요구현 개요

모든 명령어 처리 시작 2 단계모든 명령어 처리 시작 2 단계

1. 명령어 인출 (Instruction Fetch)

• 프로그램 카운터(PC)를 메모리에 전송하여 주소지정• 프로그램 카운터(PC)를 메모리에 전송하여 주소지정

• 지정된 메모리에 저장된 명령어를 읽어 들임

• PC = PC + 4PC PC 4

2. 명령 해독 (Instruction Decode)

• Opcode 해독

• 레지스터 미리 읽기(prefetch)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 4

Page 3: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

마지막 단계마지막 단계

각 명령어 종류에 따라 3번째 단계 수행각 명령어 종류에 따라 3번째 단계 수행

메모리 참조 명령어(memory-reference instructions)메모리 참조 명령어(memory-reference instructions)• sw: 메모리에 데이터 저장

• lw: 메모리 데이터를 읽음lw 메 리 데이터를 읽음

산술/논리 명령어(arithmetic/logical instructions)• ALU 연산 결과를 레지스터에 저장

( )분기 명령어(branch instructions)• 비교 결과에 따라 PC 변경

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 5

컴퓨터구조

기본 MIPS의 추상적 관점 구현기본 MIPS의 추상적 관점 구현

그림 5 1

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 6

그림 5.1

Page 4: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

기본 MIPS의 구현기본 MIPS의 구현그림 5.2

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 7

5 2 논리 설계 관례5.2 논리 설계 관례

순천향대학교 컴퓨터학부 이 상 정 8

Page 5: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

조합 논리, 상태 소자조합 논리, 상태 소자

모서리 구동 방법론(edge triggered methodology)모서리 구동 방법론(edge triggered methodology)

전형적인 동작• 상태소자 내용 읽음상태소자 내용 읽음

• 조합 논리회로로 값을 보냄

• 결과를 하나 이상의 상태소자에 저장

그림 5 2

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 9

그림 5.2

5 3 데이터패스 만들기5.3 데이터패스 만들기

순천향대학교 컴퓨터학부 이 상 정 10

Page 6: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

명령 인출 데이터패스 구성요소명령 인출 데이터패스 구성요소

명령 메모리(Instruction memory)명령 메모리(Instruction memory)

• 프로그램의 명령어 저장

프로그램 카운터(PC)

• 명령어의 주소를 저장

덧셈기(Adder)

• 다음 명령어의 주소를 지정하기 위해 PC를 증가

그림 5.6

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 11

컴퓨터구조

R-형식 명령어 실행R 형식 명령어 실행

단계 3단계 3• opcode 연산을 수행

단계 4단계 4• ALU의 결과를 레지스터에 저장

그림 5 7

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 12

그림 5.7

Page 7: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

R-형식 명령어 데이터패스R 형식 명령어 데이터패스

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 13

컴퓨터구조

메모리 참조 명령어 실행메모리 참조 명령어 실행

단계 3단계 3 • 베이스 레지스터와 16 비트 오프셋을 더하여 메모리 주소를 계산

단계 4• sw $t1,offset_value($t2)

• $t1을 메모리에 저장

• lw $t1,offset_value($t2)

• 메모리로부터 값을 읽어서 $t1 에 저장• 메모리로부터 값을 읽어서 $t1 에 저장

주요 구성 요소주 구성• 부호 확장 유닛과 데이터 메모리

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 14

Page 8: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

load/store 명령을 위한 데이터패스load/store 명령을 위한 데이터패스

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 15

컴퓨터구조

분기 명령어 실행분기 명령어 실행

단계 3단계 3 • 비교를 위해 ALU를 사용

• 부호 확장된 오프셋과 PC를 더하여 분기 타겟 주소를 계산

단계 4• 비교의 결과에 근거하여 PC를 변경

주요 구성 요소• Shift-left-2 unit

• 분리된 덧셈기

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 16

Page 9: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

분기 명령어를 위한 데이터패스분기 명령어를 위한 데이터패스

그림 5 9

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 17

그림 5.9

컴퓨터구조

단일 데이터패스로 합치기단일 데이터패스로 합치기

가장 단순한 데이터패스가장 단순한 데이터패스

한 클럭 사이클에 명령어를 실행

• 어떤 데이터패스도 명령 당 두 번 이상 사용될 수 없음어떤 데이터패스도 명령 당 두 번 이상 사용될 수 없음

• 명령어와 데이터 메모리 분리

두 개의 다른 명령 군 사이에 데이터패스 구성요소 공유두 개의 다른 명령 군 사이에 데이터패스 구성요소 공유

• 멀티플렉서와 데이터패스 공유

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 18

Page 10: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

예제: 데이터패스 구성하기예제 데이터패스 구성하기

산술/논리(R형식) 연산 명령어 데이터패스와 메모리 명령어산술/논리(R형식) 연산 명령어 데이터패스와 메모리 명령어

데이터패스를 결합

[A ][Answer] 그림 5.10

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 19

컴퓨터구조

MIPS 기본 데이터패스MIPS 기본 데이터패스그림 5.11

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 20

Page 11: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

5 4 단순한 구현5.4 단순한 구현

순천향대학교 컴퓨터학부 이 상 정 21

컴퓨터구조

ALU 제어ALU 제어

명령군에 따라 ALU는 다음 5가지 기능 중 하나를 수행명령군에 따라 ALU는 다음 5가지 기능 중 하나를 수행

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 22

Page 12: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

명령어 Op 코드, 기능필드와 ALU 제어입력명령어 Op 드, 기능필드와 ALU 제어입력

ALUOp 제어신호와 6비트 기능코드 입력ALUOp 제어신호와 6비트 기능코드 입력

ALU 제어신호 출력

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 23

그림 5.12

컴퓨터구조

ALU 제어비트 진리표ALU 제어비트 진리표

그림 5 13

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 24

그림 5.13

Page 13: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

ALU 제어 구현ALU 제어 구현

부록 C 2절 참조부록 C.2절 참조Operation3 = 0

Operation2 = ALUOp0 + ALUOp1 · F1

Operation1 = ALUOp1' + F2'

Operation0 = ALUOp1 · (F0 + F3)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 25

컴퓨터구조

주 제어유닛 설계하기주 제어유닛 설계하기

세 종류의 명령어세 종류의 명령어

그림 5.14

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 26

Page 14: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

데이터패스의 제어선데이터패스의 제어선

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 27

그림 5.15

컴퓨터구조

제어신호 기능제어신호 기능

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 28

그림 5.16

Page 15: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

제어유닛제어유닛

PCSrc = Branch · Zero (from ALU)PCSrc = Branch · Zero (from ALU)

그림 5 17

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 29

그림 5.17

컴퓨터구조

명령어의 제어신호명령어의 제어신호

그림 5.18

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 30

Page 16: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

R 형식 명령 실행R 형식 명령 실행

add $t1 $t2 $t3add $t1,$t2,$t3

1. 명령어를 메모리에서 인출하고, PC 값 증가

2. 레지스터 값을 읽고 ($t2, $t3), 동시에 주 제어유닛이 제

어 신호를 생성

3. ALU는 레지스터에서 읽어들인 값에 대해 연산을 수행, 기능레지 터에서 읽어 에 대해 수행, 기능

코드를 사용하여 ALU 기능을 결정

4 ALU 결과값이 레지스터 $t1 에 저장4. ALU 결과값이 레지스터 $t1 에 저장

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 31

컴퓨터구조

R 형식 명령어의 데이터패스 동작R 형식 명령어의 데이터패스 동작

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 32

그림 5.19

Page 17: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

적재(load) 명령어 실행적재(load) 명령어 실행

lw $t1 offset($t2)lw $t1,offset($t2)

1 명령어를 메모리에서 인출하고 PC 값 증가1. 명령어를 메모리에서 인출하고, PC 값 증가

2. 레지스터 값을 읽고 ($t2), 동시에 주 제어유닛이 제어 신호

를 생성를 생성

3. ALU는 $t2 의 읽어들이 값과 부호 확장된 오프셋을 더해

유효주소 계산

4. ALU 출력이 데이터 메모리의 주소로 지정

5. 메모리에서 읽어들 인 값을 $t1 에 저장

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 33

컴퓨터구조

적재 명령어의 데이터패스 동작적재 명령어의 데이터패스 동작

그림 5 20

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 34

그림 5.20

Page 18: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

Store 명령어의 실행Store 명령어의 실행

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 35

컴퓨터구조

분기 명령어의 실행분기 명령어의 실행

beq $t1 $t2 offsetbeq $t1,$t2,offset

1 명령어를 메모리에서 인출하고 PC 값 증가1. 명령어를 메모리에서 인출하고, PC 값 증가

2. 레지스터 값을 읽고 ($t1, $t2), 동시에 주 제어유닛이 제

어 신호를 생성어 신호를 생성

3. ALU는 두 레지스터에서 읽은 값에 뺄셈을 수행하고, PC+4

와 부호 확장 후 2비트 왼쪽 시프트한 오프셋을 더하여 타겟

주소를 계산한다.

4. ALU의 Zero 출력을 사용하여 PC에 저장될 덧셈기의 결과

값을 결정

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 36

Page 19: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

분기 명령어의 데이터패스 동작분기 명령어의 데이터패스 동작

그림 5 21

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 37

그림 5.21

컴퓨터구조

제어유닛 진리표제어유닛 진리표

그림 5 22

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 38

그림 5.22

Page 20: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

제어유닛 구현제어유닛 구현

그림 C.2.5

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 39

컴퓨터구조

예제: 점프 명령어 구현예제 점프 명령어 구현

PC[31-28] ←

PC 4[31 28]PC+4[31-28]

PC[27-2] ←PC[27 2] ←

instr[25-0]

(=immediate field)

PC[1-0] ← 00

그림 5 24

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 40

그림 5.24

Page 21: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

왜 단일 사이클 구현은 사용되지 않는가?왜 단일 사이클 구현은 사용되지 않는가?

단일 사이클 구현은 비효율적단일 사이클 구현은 비효율적• 모든 명령어에 대해 클럭 사이클이 같은 길이

• CPI = 1

• 클럭 사이클 길이는 가장 긴 경로의 명령어(load) 의해 결정

적재(l d) 명령어• 적재(load) 명령어

명령어 메모리

레지스터 파일

ALU

데이터 메모리데이터 메모리

레지스터 파일

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 41

컴퓨터구조

예제: 단일 사이클 컴퓨터의 성능예제 단일 사이클 컴퓨터의 성능

주요 기능유닛들의 작동 시간 가정주요 기능유닛들의 작동 시간 가정• 메모리유닛 : 200 ps

• ALU 및 덧셈기 : 100 psp

• 레지스터 파일(읽기 또는 쓰기) : 50 ps

• 멀티플렉서, 제어유닛, PC 접근, 부호확장유닛, 선(wires): 지연없다고 가정고 가정

명령어 사용빈도 가정• 25% lw 10% sw 45% R type 15% beq 5% j• 25% lw, 10% sw, 45% R-type, 15% beq, 5% j

다음 중 어느 방식이 얼마 만큼 더 빠른가 ?다음 중 어느 방식이 얼마 만큼 더 빠른가 ?(1) 고정된 길이의 단일 클럭 사이클

(2) 가변길이를 갖는 단일 클럭 사이클

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 42

Page 22: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

[Answer-1][Answer 1]

CPU 실행시간CPU 실행시간

= 명령어 수 x CPI x 클럭 사이클 시간

= 명령어 수 x 클럭 사이클 시간 (∵ CPI = 1 )

두 가지 구현에 대한 클럭 사이클 시간 비교두 가지 구현에 대한 클럭 사이클 시간 비교.

각 명령어에 대한 최장경로(critical path)를 조사하여 클럭

간 계산사이클 시간을 계산

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 43

컴퓨터구조

[Answer-2][Answer 2]

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 44

Page 23: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

[Answer-3][Answer 3]

• 고정된 길이의 클럭 구현의 경우,

Clock cycle = 600 ps.

• 가변 클럭 구현의 경우,

CPU clock cycle

= 600×25%+550×10%+400×45%+350×15%+200×5% = 447.5 ps

time executionCPUePerformancCPU clocksingleclockvariable

ll kCPUIC

cycle clock CPUIC

time execution CPUePerformanc CPUePerformanc CPU

clock single

clock variable

clock single

clock single

clock variable

×=

=

1.34447.5600

cycle clock CPU

cycle clock CPU

cycleclockCPUIC

clock variable

clock single

clock variable

===

×

• 가변길의의 클럭 구현이 1.34 배 더 빠르다.

• 가변길이의 클럭 구현은 매우 어려우며 오버헤드(overhead)가 크다.

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 45

컴퓨터구조

단일 사이클 구현의 문제점단일 사이클 구현의 문제점

부동소수점유닛과 복잡한 명령어 집합에 대해서는 클럭의 길이가 너무부동소수점유닛과 복잡한 명령어 집합에 대해서는 클럭의 길이가 너무

길어짐

자주 생기는 일은 빠르게 하라는 주요 설계 원칙 위반

각 기능유닛이 클럭 당 한 번밖에 사용할 수 없어서 일부 기능 유닛들은

중복되어야 함

성능 및 하드웨어 측면에서 비효율적 설계성능 및 하드웨어 측면에서 비효율적 설계

다중 사이클 데이터패스

짧은 클럭 사이클

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 46

각 명령어 당 다중 클럭 사이클

Page 24: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

5 5 다중 사이클 구현5.5 다중 사이클 구현

순천향대학교 컴퓨터학부 이 상 정 47

컴퓨터구조

다중 사이클 구현다중 사이클 구현

다중 사이클 구현다중 사이클 구현

• 명령어 실행의 각 단계는 1 클럭 사이클 걸림

다중 사이클 구현의 주요 장점

• 각 명령어 마다 다른 클럭 사이클 수• 각 명령어 마다 다른 클럭 사이클 수

• 단일 명령 실행 내에서 기능유닛 공유

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 48

Page 25: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

다중 사이클 데이터패스 구현 개요다중 사이클 데이터패스 구현 개요

명령어와 데이터용으로 하나의 메모리 유닛이 사용명령어와 데이터용으로 하나의 메모리 유닛이 사용

하나의 ALU 사용

각 기능 유닛 뒤에 한 두 개의 레지스터가 추가각 기능 유닛 뒤에 한 두 개의 레지스터가 추가• IR, MDR, A, B, ALUOut

그림 5 25

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 49

그림 5.25

컴퓨터구조

MPS의 다중 사이클 데이터패스 구현MPS의 다중 사이클 데이터패스 구현

그림 5.26

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 50

Page 26: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

ALU 입력ALU 입력

ALU 연산ALU 연산1. PC + 4

2. Reg[rs] op Reg[rt]g[ ] p g[ ]

3. Reg[rs] + sign-extended(offset)

4. (PC+4) + (sign-extended(offset) << 2)

ALU 입력-1• PC, Reg[rs]

입력ALU 입력-21. Constant 4

2 Reg[rt]2. Reg[rt]

3. sign-extended(offset),

4. sign-extended(offset)<<2

5. 프로세서: 데이터패스 및 제어유닛

g ( )

순천향대학교 컴퓨터학부 이 상 정 51

컴퓨터구조

제어신호제어신호

메모리 PC 레지스터 IR 등을 위한 쓰기 제어신호메모리, PC, 레지스터, IR 등을 위한 쓰기 제어신호

메모리 읽기 제어신호

ALU 제어신호

MUX 제어신호MUX 제어신호

• 추가된 제어신호: ALUSrcA, IorD, ALUSrcB

• 제거된 제어신호: Jump, Branch, ALUSrc

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 52

Page 27: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

다중 사이클 데이터패스의 제어신호다중 사이클 데이터패스의 제어신호

그림 5 27

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 53

그림 5.27

컴퓨터구조

PC를 위한 제어신호PC를 위한 제어신호

PC의 3가지 소스PC의 3가지 소스(1) ALU 출력 : 다음 명령어 실행을 위한 PC + 4

(2) ALUOut 레지스터 : beq 명령어를 위한 분기 타겟주소q

(3) 왼쪽으로 2비트 이동된 IR의 하위 26 비트: 점프 명령어

PC 제어신호• PCSource: MUX select

• PCWrite: 무조건적인 쓰기(Unconditional update )

( 명령어 인출 점프 명령어)(e.g. 명령어 인출, 점프 명령어)

• PCWriteCond: 조건적인 쓰기(Conditional update)

(e.g. beq)(e.g. beq)

PC 쓰기신호• PC = PCWrite + PCWriteCond·Zero

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 54

Page 28: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

다중 사이클 데이터패스와 제어유닛다중 사이클 데이터패스와 제어유닛

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 55

그림 5.28

컴퓨터구조

1-비트 제어신호들의 동작1 비트 제어신호들의 동작

그림 5.29 (upper)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 56

Page 29: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

2-비트 제어신호들의 동작2 비트 제어신호들의 동작

그림 5.29 (lower)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 57

컴퓨터구조

명령어 실행을 여러 개의 클럭 사이클로 나누기명령어 실행을 여러 개의 클럭 사이클로 나누기

목적목적

• 성능 최대화

• 각 클럭 사이클에서 하는 일의 균형을 유지각 클럭 사이클에서 하는 일의 균형을 유지

5 개의 실행 단계5 개의 실행 단계

1. 명령어 인출 (Instruction fetch)

2. 명령어 해독 및 레지스터 읽기(Instruction decode and register( g

fetch)

3. 실행, 메모리 주소 계산 또는 분기의 완료

4. 메모리 접근 또는 R형식 명령어의 완료단계

5. 메모리 읽기 완료 단계

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 58

Page 30: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

클럭 1, 2클럭 1, 2

1 명령어 인출1. 명령어 인출IR ← Memory [PC]; /* MemRead, IRWrite, IorD=0 */

PC ← PC + 4; /* ALUSrcA=0, ALUSrcB=01,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);ALUOut ← PC + (sign extend (IR [15:0]) << 2);

/* ALUSrcA=0, ALUSrcB=11, ALUOp=00 */

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 59

컴퓨터구조

메모리 참조 명령어메모리 참조 명령어

메모리 주소 계산3. 메모리 주소 계산

ALUOut ← A + sign-extend (IR [15:0]);

/ ALUS A 1 ALUS B 10 ALUO 00 //* ALUSrcA=1, ALUSrcB=10, ALUOp=00 */

4. 메모리 접근[ ]lw: MDR ← Memory [ALUOut]; /* MemRead, IorD=1 */

or

sw: Memory [ALUOut] ← B; /* MemWrite IorD=1 */sw: Memory [ALUOut] ← B; /* MemWrite, IorD=1 */

5. 메모리 읽기 완료

lw: Reg[IR [20:16]] ← MDR;

/* MemtoReg=1, RegWrite, RegDst=0 */

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 60

Page 31: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

산술-논리 명령어산술 논리 명령어

3. 실행ALUOut ← A op B;

/* ALUSrcA=1, ALUSrcB=00, ALUOp=10 */

4. R형식 명령어 완료Reg [IR [15:11]] ← ALUOut;

/* RegDst=1, RegWrite, MemtoReg=0 */

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 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 */

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 62

Page 32: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

단계별 동작 요약단계별 동작 요약

단계 R 형식 명령어를

위한 동작메모리 참조 명령어를 위한 동작

분기를 위한

동작

점프를 위한

동작 위한 동작 동작 동작

1 IR ← Memory[PC]

PC ← PC + 4

2 A ← Reg[IR[25:21]] B ← Reg[IR[20:16]]

ALUO t PC + ( i t d(IR[15 0]) << 2)ALUOut ← PC + (sign-extend(IR[15:0]) << 2)

3 ALUOut ← A op B

ALUOut ← A + sign-extend(IR[15:0])

If(A == B) PC ←

ALUO t

PC ← PC[31:28] ||

(IR[25 0]<<2)p g ( [ ])

ALUOut (IR[25:0]<<2)

4 Reg[IR[15:11]] ← ALUOut

Load: MDR←Memory[ALUOut] or

Store: Memory[ALUOut] ← B

Store: Memory[ALUOut] ← B

5 Load : Reg[IR[20:16]] ← MDR

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 63

그림 5.30

컴퓨터구조

제어를 정의하기제어를 정의하기

예제: 다중 사이클 CPU의 CPI예제: 다중 사이클 CPU의 CPI• SPECINT2000 명령어 배합을 사용할 때 CPI 값은?

[Answer][Answer]loads: 25%, 5 clocks

stores: 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 (모든 명령어가 같은 클럭 사이클갖는 경우)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 64

Page 33: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

제어유닛의 구현제어유닛의 구현

다중 사이클 제어를 명시하는 2가지 기법다중 사이클 제어를 명시하는 2가지 기법(1) FSM (finite state machine) → hardwired control unit

(2) Microprogramming → microprogrammed control unit( ) p g g p g

상위수준의 FSM 제어도: 그림 5.31

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 65

컴퓨터구조

명령어 실행 및 제어신호명령어 실행 및 제어신호

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 66

Page 34: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

FSM – 명령어 인출 및 해독FSM 명령어 인출 및 해독

그림 5 32

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 67

그림 5.32

컴퓨터구조

FSM – 메모리 참조 명령어

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 68

그림 5.33

Page 35: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

FSM – R형식 명령어FSM R형식 명령어

Figure 5.34

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 69

Figure 5.34

컴퓨터구조

FSM – 분기 및 점프 명령어FSM 분기 및 점프 명령어

그림 5 35 그림 5 36

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 70

그림 5.35 그림 5.36

Page 36: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

완성된 FSM완성된 FSM

그림 5.38

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 71

컴퓨터구조

하드와이어드(hardwired) 제어의블록 다이어그램블록 다이어그램

그림 5.37

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 72

Page 37: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

PLA 구현PLA 구현

그림 C 3 9

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 73

그림 C.3.9

5 6 예외5.6 예외

순천향대학교 컴퓨터학부 이 상 정 74

Page 38: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

예외예외

예외(exception)와 인터럽트(interrupt)예외(exception)와 인터럽트(interrupt)

• 분기나 점프 명령어가 아니면서 명령어 실행의 정상적인 흐름을 바꾸

는 사건는 사건

예외

프로세서 내에서의 예기치 못한 사건• 프로세서 내에서의 예기치 못한 사건

• e.g. 산술 오버플로우(arithmetic overflow )

( f) 트랩( )• (cf) 트랩(rap)

인터럽트

• 프로세서 밖에서의 예기치 못한 사건

• 프로세서와 통신하기 위해 I/O 디바이스에서 사용

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 75

컴퓨터구조

MIPS 규약MIPS 규약

예외예외• 내부적인 요인에 의한 사건

인터럽트인터럽트• 외부적인 요인에 의한 사건

Intel IA-32 구조구• 모드 사건들을 인터럽트로 지칭

Type of event From where? MIPS terminology I/O device request external interrupt invoke OS from user program internal exception p g p arithmetic overflow internal exception using an undefined instruction internal exception hardware malfunction either exception or interrupt

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 76

hardware malfunction either exception or interrupt

Page 39: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

예외처리 방식예외처리 방식

기본적으로는 인터럽트 처리와 유사기본적으로는 인터럽트 처리와 유사

① EPC (exception program counter)

← 문제를 일으킨 명령어의 주소

② 운영제체로 제어를 이동

③ 사용자 프로그램에 서비스 제공,

오버플로우에 대해 미리 정의된 행동을 수행,

or

프로그램의 실행을 중지하고 에러를 보고

④ PC ← EPC or 프로그램 종료

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 77

컴퓨터구조

예외의 원인 구분예외의 원인 구분

(1) 상태 레지스터 사용 (e g Cause 레지스터)(1) 상태 레지스터 사용 (e.g. Cause 레지스터)

• 예외의 원인을 표시하는 필드 포함

(2) 벡터 인터럽트(Vectored interrupt)

• 제어가 이동되는 주소가 예외의 원인에 의해 결정

• 예

exception type exception vector address

undefined instruction C000 0000hex

hex

arithmetic overflow C000 0020hex

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 78

Page 40: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

예외 처리를 위한 레지스터예외 처리를 위한 레지스터

EPC : 중단된 명령어의 주소를 저장하기 위한 32 비트 레지스터Cause : 예외의 원인을 저장하는 32비트 레지스터• LSB = 0 , 정의 안된 명령어• LSB = 1 , 산술 오버플로우,

Cause in MIPS (cf) 부록 A.7• Cause[15-10] = 유보된 인터럽트 (pending interrupts)

Cause[5-2] = 예외 코드(exception code)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)

5. 프로세서: 데이터패스 및 제어유닛

12 for OVF (arithmetic overflow exception)

순천향대학교 컴퓨터학부 이 상 정 79

컴퓨터구조

예외처리를 위한 신호예외처리를 위한 신호

그림 5 39그림 5.39

EPCWrite, CauseWrite

• 레지스터 쓰기 신호

IntCause

• Cause 레지스터의 하위 비트를 설정하기 위한 1비트 제어 신호

PCSource = 11

• PC <- 예외주소 (8000 0180hex)PC < 예외주소 (8000 0180hex)

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 80

Page 41: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 81

그림 5.39

컴퓨터구조

예외처리를 위한 FSM예외처리를 위한 FSM

단계 11 정의 안된 명령어단계 11, 정의 안된 명령어Cause = 0; /* IntCause=0, CauseWrite */

EPC = PC – 4; /* ALUSrcA=0, ALUSrcB=01,, ,

ALUOp=01, EPCWrite */

PC = 8000 0180 /* PCSource=11, PCWrite */

단계 11, 산술 오버플로우C 1 / I tC 1 C W it /Cause = 1; /* IntCause=1, CauseWrite */

EPC = PC – 4; /* ALUSrcA=0, ALUSrcB=01,

ALUOp=01 EPCWrite */ALUOp 01, EPCWrite /

PC = 8000 0180 /* PCSource=11, PCWrite */

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 82

Page 42: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

예외가 포함된 FSM

그림 5.40

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 83

컴퓨터구조

예외 검출예외 검출

정의 안된 명령어정의 안된 명령어

• 상태 1에서 lw, sw, 0 (R-type), j and beq 외에 다른 모든 명령어 op

값값

• 다음 상태 = 10

산술 오버플로우

• 상태 7에서 ALU 오버플로우 신호 출력

• 다음상태 = 11

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 84

Page 43: 5장. 프로세서: 데이터패스및 ... - cs.sch.ac.krcs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-5-프로세서.pdf · ALU 결과값이 레지스터 $t1 에 ... 적재 (load)

컴퓨터구조

과제: 연습문제과제 연습문제

연습문제연습문제• 5.1: 조합논리와 순차논리 구분

• 5.2: 단일 사이클 데이터패스 stuck-at-0

• 5.8: jr (jump register) 추가, 그림 5.18에 추가

• 5.29 : 다중 사이클 데이터패스 stuck-at-0

5. 프로세서: 데이터패스 및 제어유닛순천향대학교 컴퓨터학부 이 상 정 85