PowerPoint 프레젠테이션

Download Report

Transcript PowerPoint 프레젠테이션

12장. 제어 장치
다루는 내용
 CPU속의 제어장치
 마이크로 연산
 제어장치의 동작
1
Section 01 개념으로 살펴본 CPU 속의 제어장치
중앙처리 장치
산술논리 연산장치(ALU)
레지스터 집합
제어장치
내부버스
제어장치
명령어를 수행하는데 필요한 제어신호를 만들어 내는 장치
제어장치 내의 구성
순서제어 논리 장치(sequencing logic)
제어장치 레지스터들(control unit registers)
명령어 해독기(decoder),
제어 메모리(control memory)
제어장치 레지스터
제어 주소 레지스터(control address register)
제어 버퍼 레지스터(control buffer register)
서브루틴 레지스터(subroutine register)
2
제어장치의 구성
[그림 12-1] 제어장치의 구성
3
Section 02 마이크로 연산
마이크로-연산(Micro-Operations)
명령어 인출 및 실행 사이클은 또한 여러 개의 단계(step) 에서 실제 수행되
는 동작
프로그램 수행에서 가장 기본단위의 수행
프로세서의 기능적 연산
원자 연산(atomic operation)
완전한 명령어의 사이클
인출 사이클
• 기억장치로부터 명령어를 CPU로 읽어오는 과정
간접 사이클
• 간접 주소지정 방법을 사용하는 경우, 유효를 주소를 찾는 사이클
실행되는 사이클
• 해당 명령어에 맞게 동작
인터럽트 사이클
• 인터럽트 발생여부를 파악, 인터럽트가 발생했으면 인터럽트 서브 루틴이 수행
될 수 있도록 해주는 사이클
4
프로그램 실행의 계층 구성
[그림 12-2] 프로그램 실행의 계층 구조
5
인출사이클의 마이크로 연산
명령어 인출에 필요한 레지스터
기억장치 주소 레지스터(Memory Address Register : MAR)
기억장치 버퍼 레지스터(Memory Buffer Register : MBR)
프로그램 카운터(Program Counter : PC)
명령어 레지스터(Instruction Register : IR)
6
인출사이클의 마이크로 연산
t1 : MAR ← (PC)
t2 : MBR ← memory
PC ← (PC) + 1
t3 : IR ← (MBR)
첫번째 클럭 : 다음 명령어의 주소가 저장된 PC 내용을 MAR로 이동
두번째 클럭 : MAR주소에 근거, 기억장치에 저장되어 있는 명령어를 MBR
로 이동.PC를 명령어 바이트 수만큼 증가시켜서 다음 명령어의 주소를 표시
세번째 클럭 : MBR에 저장된 명령어 내용을 실행하기 위해서 IR로 이동
인출단계에서 PC의 증가 단계가 세번째 클럭에서 수행
t1 : MAR ← (PC)
t2 : MBR ← memory
t3 : PC ← (PC) + 1
IR ← (MBR)
7
간접 사이클의 마이크로 연산
간접 사이클
간접 주소지정 방식을 사용하는 명령어에서 오퍼랜드부분의 유효주
소를 결정하는데 사용
[그림 12-3] 간접 주소 지정 방식
[그림 12-4] 레지스터 간접 주소 지정 방식
8
간접 사이클의 마이크로 연산
t1 : MAR ← (IR(addr))
t2 : MBR ← (memory or register)
t3 : IR(addr) ← (MBR(addr))
첫 번째 클럭
명령어 레지스터에 저장되어 있는 명령어의 오퍼랜드 부분 즉, 주소 부분을
MAR로 이동
유효주소가 아니면, 유효주소가 저장되어 있는 곳의 주소
두 번째 클럭
유효주소가 저장된 기억장치 또는 레지스터의 내용을 MBR에 저장
세 번째 클럭
MBR의 저장되어 있는 유효 주소를 명령어 레지스터의 주소부분으로 이동
9
실행 사이클의 마이크로 연산
ADD R1, X
; R 1← R1 + Memory(X)
마이크로-연산 표현
t1 : MAR ← (IR(addr))
t2 : MBR ← memory
t3 : R1 ← R1 + (MBR)
첫 번째 클럭 : 명령어 레지스터의 주소 부분을 MAR로 이동
두 번째 클럭 : 해당 주소의 기억장치 내용을 MBR로 이동
세 번째 클럭
기억장치에서부터 이동된 데이터가 저장된 MBR의 내용과 R1을 덧
셈, 그 결과값을 R1에 저장
10
실행 사이클의 마이크로 연산
ISZ (Increment and Skip-if-zero)
오퍼랜드가 지정하는 기억장치의 값을 하나 증가시키고 그 결과 값
이 0이면 다음 명령어를 실행하지 않고 건너뛰는 명령어
어셈블리 표현
ISZ X ; if (X)+1 = 0, Skip
마이크로-연산
t1 :
t2 :
t3 :
t4 :
MAR ← (IR(addr))
MBR ← memory
MBR ← (MBR)+1
memory ← (MBR)
If ((MBR) = 0) then (PC ← PC + I)
11
실행 사이클의 마이크로 연산
BSA(Branch and Save return address)
분기하고 복귀할 주소를 저장하는 명령어로 서브 루틴 프로그램으
로 분기하기 위하여 사용되는 명령
어셈블리 표현
BSA X
마이크로-연산
t1 : MAR ← (IR(addr))
MBR ← (PC)
t2 : PC ← (IR(addr))
memory ← (MBR)
t3 : PC ← PC + 1
12
BSA의 마이크로 연산
첫 번째 클럭
명령어 레지스터의 주소부분 내용(어셈블리 표현에서 X)을 MAR에
적재
동시에 프로그램 카운터의 내용, 다음 명령어 주소를 MBR에 적재
두 번째 클럭
명령어 레지스터의 주소부분 내용을 프로그램 카운터에 적재
X번지에 MBR의 내용 저장. 복귀 주소가 저장
세 번째 클럭
서브 루틴을 시작하기 위해서 X+1번지가 되도록 프로그램 카운터를
증가
13
스택(Stack)의 기본동작
Top
Top
I
J
J
K
K
K
L
L
L
L
M
M
M
M
Base
Base
(a) 시작
Top
J
Base
(b) I를 PUSH한 후
스택의 상태
Top
JXK
Base
(c) I를 POP 한 후
스택의 상태
(d) J와 K의 곱셈한 후
스택의 상태
14
인터럽트 사이클의 마이크로 연산
마이크로 연산
t1 : MBR ← (PC)
t2 : MAR ← SP(스택 포인터)
PC ← Routine-address
t3 : Memory ← (MBR)
첫 번째 클럭
복귀주소를 저장하기 위해서 프로그램 카운터 내용을 MBR로 이동
두 번째 클럭
스택 포인터를 MAR로 이동, 인터럽트 처리 루틴 시작 주소를 PC에 적재
스택 포인터는 MBR에 저장되어 있는 내용을 스택에 저장하기 위해 저장할
위치를 지정하기 위해 사용
세 번째 클럭
MBR의 내용을 MAR에 근거하여 해당 스택 포인터의 스택에 저장
15
Section 03 제어장치의 동작
프로세서가 수행할 마이크로-연산들을 정의
레지스터들 간의 데이터 전송 유형
레지스터로부터 외부로의 데이터 전송 유형
외부로부터 레지스터로의 데이터 전송 유형
산술 혹은 논리 연산의 수행 유형
제어 장치가 수행할 기능을 결정
순서 제어(Sequencing)기능
실행(Execution)기능
16
제어장치 모델
[그림 12-6] 제어장치 모델
17
제어장치로 들어오는 입력
클럭(Clock)신호
제어 장치 동작의 타이밍 기준이 되는 신호
하나의 클럭 펄스마다 하나의 마이크로-연산 이 수행
명령어 레지스터
연산 코드를 제어 장치로 입력시켜서 수행할 연산을 결정
플래그(flag)들
프로세서의 상태를 나타내거나 ALU 연산의 결과에 대한 검사
제어 버스로부터 입력되는 제어 신호들
시스템 버스의 제어 버스 부분을 통해 들어오는 신호
인터럽트 요구 신호 및 확인 신호
18
제어장치로부터 나가는 출력들
프로세서 내 제어 신호들
레지스터간의 데이터를 전송할 때 발생
특정 산술논리연산(ALU) 기능을 활성화시킬 때
제어 버스를 통해서 출력되는 제어 신호들
CPU 밖의 기억장치로 보내지는 제어신호
입출력 장치 모듈로 보내지는 제어 신호
19
제어장치의 구현
하드와이어 구현 (hardwired implementation) 또는 고정배
선 방식
제어신호 생성을 위해서 순차와 조합논리를 구성
이 회로의 입력 신호들은 출력 신호들로 변형
출력 신호들이 제어 신호
마이크로 프로그램을 이용한 구현(micro-programmed
implementation)
제어신호 생성을 위해서 순차 및 조합논리를 사용하지 않음
제어신호를 위한 마이크로 명령어를 저장 장치에 저장
이것을 실행시켜서 제어 신호를 발생
마이크로 순차기가 대표적
20
하드와이어 방식의 제어장치
[그림 12-8] 하드와이어 방식의 제어장치
21
마이크로 순차기 (Micro-sequencing)
[그림 12-9] 마이크로 순차기
22
Section 04 마이크로 프로그램을 이용한 제어
마이크로 명령어
제어장치의 구조와 동작
마이크로 명령어의 순서제어
마이크로 명령어의 실행
23
마이크로 명령어
마이크로-연산은 실제적으로 기계어
사용의 편리성을 위해, 기호들(symbols)로 표현해서 나타낸 것을 마이크
로 프로그래밍 언어(micro-programming language)라고 한다
마이크로 명령어(micro-instruction)
마이크로-연산들의 집합
마이크로 프로그램(micro-program)
마이크로 명령어 들을 이용하여 작성된 프로그램
펌웨어(firmware)
루틴(routine)
마이크로 프로그램에서 CPU의 특정 기능을 수행하기 위한 마이크로 명령
어들의 그룹
마이크로 명령어 사이클에서는 인출 사이클 루틴, 실행 사이클 루틴, 인
터럽트 사이클 루틴 등이 존재
24
마이크로 명령어 형식
[그림 12-10] 마이크로 명령어 형식
25
수평적 마이크로 명령어
마이크로 명령어의 각 필드의 비트가 각 제어 신호에 대응되
도록 하는 방식
CPU내부의 제어 신호들과 시스템 버스의 제어 신호들에 대
해 필드들이 할당
분기에서 사용될 조건을 나타내는 조건 필드와 분기 발생시
다음에 실행될 마이크로 명령어의 주소를 가지고 있는 필드
존재
수평 마이크로 명령어의 장단점
하드웨어가 간단하고, 해독에 따른 지연 시간이 없다.
더 큰 용량의 제어 기억장치가 필요하다
26
수직적 마이크로 명령어
코드화된 비트들을 이용하여 마이크로 명령어의 각 기능 코
드(function code)를 구성하는 방식
제어 기억장치의 용량 줄임
마이크로 명령어의 연산 필드에 적은 수의 코드화된 비트들을 포함
해독기를 이용하여 그 코드를 필요한 수만큼의 제어 신호들
로 확장하는 방식
장점
마이크로 명령어의 비트 수가 감소
단점
제어 신호 발생을 위하여 코드화 된 비트들을 해독하기 위한 지연이
발생
27
수직적 마이크로 명령어 제어신호 발생
[그림 12-11] 수직적 마이크로
명령어 제어 신호 발생
28
제어장치의 구조와 동작
명령어 해독기(instruction decoder)
제어 주소 레지스터(control address register: CAR)
제어 기억장치(control memory)
제어 버퍼 레지스터(control buffer register: CBR)
서브루틴 레지스터(subroutine register: SBR)
순서제어 모듈(sequencing module)
29
제어장치의 마이크로 구조
[그림 12-12] 제어장치의 마이크로 구조
30
제어 기억장치
전반부
명령어 사이클의 인출, 간접,
인터럽트 등의 부 사이클에 해
당하는 공통 루틴들을 저장
후반부
명령어의 실행 사이클 루틴들
이 저장
순차적으로 실행
[그림 12-13] 제어 기억장치의 조직
31
마이크로 프로그램을 이용한 제어장치의 동작과정
[그림 12-15] 마이크로 프로그램된 제어장치의 동작
32
Thank you