12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.

Slides:



Advertisements
Similar presentations
13 강 논리회로 2 과목 전자계산기 구조 강사 이 민 욱. 13 강 논리회로  논리회로 1. 부울 대수 (Boolean Algebra) 에서 사용하는 기본 연산자 ① 논리부정 : NOT ( ` ) 논리부정은 F = NOT A 의 표현을 F =A` 로 표현 ② 논리곱.
Advertisements

컴퓨터시스템구조론 제 7 장 입력 / 출력 (Input/Output : I/O). 7.1 외부 장치들 (External Devices)  I/O 모듈에 접속  종류 인간이 읽을 수 있는 장치 : 비디오 단말기, 프린터, 등 기계가 읽을 수 있는 장치 : 자기 디스크,
컴퓨터와 인터넷.
3. 명령어 집합 구조 순천향대학교 정보기술공학부 이상정.
Lecture #2 제2장 CPU의 구조와 기능(1).
4장 마이크로프로세서 외부 신호 Slide 1 (of 22).
4. 컴퓨터 조직 순천향대학교 정보기술공학부 이상정.
2.1 CPU의 기본 구조 2.2 명령어 실행 2.3 명령어 파이프라이닝 2.4 명령어 세트
5 컴퓨터 시스템의 구성과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
Cpu 구조 및 기능 Cpu의 동작 명령어 집합 명령어 형식 주소 지정 방식
어셈블리 문법 보강 4월 10일.
컴퓨터시스템 구조 Computer System Architecture.
제 3장 컴퓨터 시스템의 구조.
1 컴퓨터 시스템 소개.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
AT MEGA 128 기초와 응용 I 기본적인 구조.
9장. 제어장치 Lecture #9.
제10강 중앙처리장치 1.
제2장 CPU의 구조와 기능. 제2장 CPU의 구조와 기능 CPU의 기능 명령어 인출(Instruction Fetch): 기억장치로부터 명령어를 읽어온다. 명령어 해독(Instruction Decode): 수행해야 할 동작을 결정하기 위하여 인출된 명령어를 해독한다.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
PSW : PROGRAM STATUS WORD
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
1장 컴퓨터 시스템의 개요 - 컴퓨터의 기본 시스템(프로세서)을 이해한다. - 명령어 실행 주기를 알아본다.
14 마이크로 연산과 제어장치 IT CookBook, 컴퓨터 구조와 원리 2.0.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
플립플롭, 카운터, 레지스터 순서회로 플립플롭 카운터 레지스터.
컴퓨터시스템 구조 Computer System Architecture.
DK-128 FND 실습 아이티즌 기술연구소
오브젝트 순서회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
논리회로 설계 및 실험 5주차.
6 레지스터와 카운터.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
2. 컴퓨터 시스템의 동작 명령어 구성 연산 종류와 기능에 따라 오퍼랜드 부분을 다양하게 활용 가능.
6. 레지스터와 카운터.
제4강 처리장치 1.
13장 CTC and DMA Slide 1 (of 10).
ARM Development Suite v1.2
UNIT 25 SPI 로봇 SW 교육원 조용수.
1 컴퓨터 시스템 소개.
ATmega128의 특징 아이티즌 기술연구소
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
제2강 : 전자계산기구조-컴퓨터 시스템 구성.
Lecture #3 제2장 CPU의 구조와 기능(2).
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
UNIT 25 SPI 로봇 SW 교육원 조용수.
ARM Development Suite v1.2
컴퓨터구조 연습문제 발표 Chapter 3 - 컴퓨터의 기능 및 상호연결의 최상위 관점
논리회로 설계 및 실험 4주차.
Lecture #5 제4장. 제어 유니트.
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
제10강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
제 4 장 Record.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
Assembly 05 방호남 07 반지훈 09 박상욱.
ARM Development Suite v1.2
2. 프로세스 B 안우진 - 운영체제 -.
Presentation transcript:

12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작

Section 01 개념으로 살펴본 CPU 속의 제어장치 중앙처리 장치 산술논리 연산장치(ALU) 레지스터 집합 제어장치 내부버스 명령어를 수행하는데 필요한 제어신호를 만들어 내는 장치 제어장치 내의 구성 순서제어 논리 장치(sequencing logic) 제어장치 레지스터들(control unit registers) 명령어 해독기(decoder), 제어 메모리(control memory) 제어장치 레지스터 제어 주소 레지스터(control address register) 제어 버퍼 레지스터(control buffer register) 서브루틴 레지스터(subroutine register)

제어장치의 구성 [그림 12-1] 제어장치의 구성

Section 02 마이크로 연산 마이크로-연산(Micro-Operations) 완전한 명령어의 사이클 명령어 인출 및 실행 사이클은 또한 여러 개의 단계(step) 에서 실제 수행되는 동작 프로그램 수행에서 가장 기본단위의 수행 프로세서의 기능적 연산 원자 연산(atomic operation) 완전한 명령어의 사이클 인출 사이클 기억장치로부터 명령어를 CPU로 읽어오는 과정 간접 사이클 간접 주소지정 방법을 사용하는 경우, 유효를 주소를 찾는 사이클 실행되는 사이클 해당 명령어에 맞게 동작 인터럽트 사이클 인터럽트 발생여부를 파악, 인터럽트가 발생했으면 인터럽트 서브 루틴이 수행 될 수 있도록 해주는 사이클

프로그램 실행의 계층 구성 [그림 12-2] 프로그램 실행의 계층 구조

인출사이클의 마이크로 연산 명령어 인출에 필요한 레지스터 기억장치 주소 레지스터(Memory Address Register : MAR) 기억장치 버퍼 레지스터(Memory Buffer Register : MBR) 프로그램 카운터(Program Counter : PC) 명령어 레지스터(Instruction Register : IR)

인출단계에서 PC의 증가 단계가 세번째 클럭에서 수행 인출사이클의 마이크로 연산 t1 : MAR ← (PC) t2 : MBR ← memory PC ← (PC) + 1 t3 : IR ← (MBR) 첫번째 클럭 : 다음 명령어의 주소가 저장된 PC 내용을 MAR로 이동 두번째 클럭 : MAR주소에 근거, 기억장치에 저장되어 있는 명령어를 MBR로 이동.PC를 명령어 바이트 수만큼 증가시켜서 다음 명령어의 주소를 표시 세번째 클럭 : MBR에 저장된 명령어 내용을 실행하기 위해서 IR로 이동 인출단계에서 PC의 증가 단계가 세번째 클럭에서 수행 t3 : PC ← (PC) + 1 IR ← (MBR)

간접 사이클의 마이크로 연산 간접 사이클 간접 주소지정 방식을 사용하는 명령어에서 오퍼랜드부분의 유효주소를 결정하는데 사용 [그림 12-3] 간접 주소 지정 방식 [그림 12-4] 레지스터 간접 주소 지정 방식

t2 : MBR ← (memory or register) t3 : IR(addr) ← (MBR(addr)) 간접 사이클의 마이크로 연산 t1 : MAR ← (IR(addr)) t2 : MBR ← (memory or register) t3 : IR(addr) ← (MBR(addr)) 첫 번째 클럭 명령어 레지스터에 저장되어 있는 명령어의 오퍼랜드 부분 즉, 주소 부분을 MAR로 이동 유효주소가 아니면, 유효주소가 저장되어 있는 곳의 주소 두 번째 클럭 유효주소가 저장된 기억장치 또는 레지스터의 내용을 MBR에 저장 세 번째 클럭 MBR의 저장되어 있는 유효 주소를 명령어 레지스터의 주소부분으로 이동

실행 사이클의 마이크로 연산 ADD R1, X ; R 1← R1 + Memory(X) 마이크로-연산 표현 t1 : MAR ← (IR(addr)) t2 : MBR ← memory t3 : R1 ← R1 + (MBR) 첫 번째 클럭 : 명령어 레지스터의 주소 부분을 MAR로 이동 두 번째 클럭 : 해당 주소의 기억장치 내용을 MBR로 이동 세 번째 클럭 기억장치에서부터 이동된 데이터가 저장된 MBR의 내용과 R1을 덧셈, 그 결과값을 R1에 저장

ISZ (Increment and Skip-if-zero) 실행 사이클의 마이크로 연산 ISZ (Increment and Skip-if-zero) 오퍼랜드가 지정하는 기억장치의 값을 하나 증가시키고 그 결과 값이 0이면 다음 명령어를 실행하지 않고 건너뛰는 명령어 어셈블리 표현 ISZ X ; if (X)+1 = 0, Skip 마이크로-연산 t1 : MAR ← (IR(addr)) t2 : MBR ← memory t3 : MBR ← (MBR)+1 t4 : memory ← (MBR) If ((MBR) = 0) then (PC ← PC + I)

BSA(Branch and Save return address) 실행 사이클의 마이크로 연산 BSA(Branch and Save return address) 분기하고 복귀할 주소를 저장하는 명령어로 서브 루틴 프로그램으로 분기하기 위하여 사용되는 명령 어셈블리 표현 BSA X 마이크로-연산 t1 : MAR ← (IR(addr)) MBR ← (PC) t2 : PC ← (IR(addr)) memory ← (MBR) t3 : PC ← PC + 1

BSA의 마이크로 연산 첫 번째 클럭 두 번째 클럭 세 번째 클럭 명령어 레지스터의 주소부분 내용(어셈블리 표현에서 X)을 MAR에 적재 동시에 프로그램 카운터의 내용, 다음 명령어 주소를 MBR에 적재 두 번째 클럭 명령어 레지스터의 주소부분 내용을 프로그램 카운터에 적재 X번지에 MBR의 내용 저장. 복귀 주소가 저장 세 번째 클럭 서브 루틴을 시작하기 위해서 X+1번지가 되도록 프로그램 카운터를 증가

스택(Stack)의 기본동작

인터럽트 사이클의 마이크로 연산 마이크로 연산 t1 : MBR ← (PC) t2 : MAR ← SP(스택 포인터) PC ← Routine-address t3 : Memory ← (MBR) 첫 번째 클럭 복귀주소를 저장하기 위해서 프로그램 카운터 내용을 MBR로 이동 두 번째 클럭 스택 포인터를 MAR로 이동, 인터럽트 처리 루틴 시작 주소를 PC에 적재 스택 포인터는 MBR에 저장되어 있는 내용을 스택에 저장하기 위해 저장할 위치를 지정하기 위해 사용 세 번째 클럭 MBR의 내용을 MAR에 근거하여 해당 스택 포인터의 스택에 저장

Section 03 제어장치의 동작 프로세서가 수행할 마이크로-연산들을 정의 제어 장치가 수행할 기능을 결정 레지스터들 간의 데이터 전송 유형 레지스터로부터 외부로의 데이터 전송 유형 외부로부터 레지스터로의 데이터 전송 유형 산술 혹은 논리 연산의 수행 유형 제어 장치가 수행할 기능을 결정 순서 제어(Sequencing)기능 실행(Execution)기능

제어장치 모델 [그림 12-6] 제어장치 모델

제어장치로 들어오는 입력 클럭(Clock)신호 명령어 레지스터 플래그(flag)들 제어 버스로부터 입력되는 제어 신호들 제어 장치 동작의 타이밍 기준이 되는 신호 하나의 클럭 펄스마다 하나의 마이크로-연산 이 수행 명령어 레지스터 연산 코드를 제어 장치로 입력시켜서 수행할 연산을 결정 플래그(flag)들 프로세서의 상태를 나타내거나 ALU 연산의 결과에 대한 검사 제어 버스로부터 입력되는 제어 신호들 시스템 버스의 제어 버스 부분을 통해 들어오는 신호 인터럽트 요구 신호 및 확인 신호

제어장치로부터 나가는 출력들 프로세서 내 제어 신호들 제어 버스를 통해서 출력되는 제어 신호들 레지스터간의 데이터를 전송할 때 발생 특정 산술논리연산(ALU) 기능을 활성화시킬 때 제어 버스를 통해서 출력되는 제어 신호들 CPU 밖의 기억장치로 보내지는 제어신호 입출력 장치 모듈로 보내지는 제어 신호

하드와이어 구현 (hardwired implementation) 또는 고정배선 방식 제어장치의 구현 하드와이어 구현 (hardwired implementation) 또는 고정배선 방식 제어신호 생성을 위해서 순차와 조합논리를 구성 이 회로의 입력 신호들은 출력 신호들로 변형 출력 신호들이 제어 신호 마이크로 프로그램을 이용한 구현(micro-programmed implementation) 제어신호 생성을 위해서 순차 및 조합논리를 사용하지 않음 제어신호를 위한 마이크로 명령어를 저장 장치에 저장 이것을 실행시켜서 제어 신호를 발생 마이크로 순차기가 대표적

하드와이어 방식의 제어장치 [그림 12-8] 하드와이어 방식의 제어장치

마이크로 순차기 (Micro-sequencing) [그림 12-9] 마이크로 순차기

Section 04 마이크로 프로그램을 이용한 제어 마이크로 명령어 제어장치의 구조와 동작 마이크로 명령어의 순서제어 마이크로 명령어의 실행

마이크로 명령어 마이크로-연산은 실제적으로 기계어 사용의 편리성을 위해, 기호들(symbols)로 표현해서 나타낸 것을 마이크로 프로그래밍 언어(micro-programming language)라고 한다 마이크로 명령어(micro-instruction) 마이크로-연산들의 집합 마이크로 프로그램(micro-program) 마이크로 명령어 들을 이용하여 작성된 프로그램 펌웨어(firmware) 루틴(routine) 마이크로 프로그램에서 CPU의 특정 기능을 수행하기 위한 마이크로 명령어들의 그룹 마이크로 명령어 사이클에서는 인출 사이클 루틴, 실행 사이클 루틴, 인터럽트 사이클 루틴 등이 존재

마이크로 명령어 형식 [그림 12-10] 마이크로 명령어 형식

마이크로 명령어의 각 필드의 비트가 각 제어 신호에 대응되도록 하는 방식 수평적 마이크로 명령어 마이크로 명령어의 각 필드의 비트가 각 제어 신호에 대응되도록 하는 방식 CPU내부의 제어 신호들과 시스템 버스의 제어 신호들에 대해 필드들이 할당 분기에서 사용될 조건을 나타내는 조건 필드와 분기 발생시 다음에 실행될 마이크로 명령어의 주소를 가지고 있는 필드 존재 수평 마이크로 명령어의 장단점 하드웨어가 간단하고, 해독에 따른 지연 시간이 없다. 더 큰 용량의 제어 기억장치가 필요하다

코드화된 비트들을 이용하여 마이크로 명령어의 각 기능 코드(function code)를 구성하는 방식 수직적 마이크로 명령어 코드화된 비트들을 이용하여 마이크로 명령어의 각 기능 코드(function code)를 구성하는 방식 제어 기억장치의 용량 줄임 마이크로 명령어의 연산 필드에 적은 수의 코드화된 비트들을 포함 해독기를 이용하여 그 코드를 필요한 수만큼의 제어 신호들로 확장하는 방식 장점 마이크로 명령어의 비트 수가 감소 단점 제어 신호 발생을 위하여 코드화 된 비트들을 해독하기 위한 지연이 발생

수직적 마이크로 명령어 제어신호 발생 [그림 12-11] 수직적 마이크로 명령어 제어 신호 발생

제어장치의 구조와 동작 명령어 해독기(instruction decoder) 제어 주소 레지스터(control address register: CAR) 제어 기억장치(control memory) 제어 버퍼 레지스터(control buffer register: CBR) 서브루틴 레지스터(subroutine register: SBR) 순서제어 모듈(sequencing module)

제어장치의 마이크로 구조 [그림 12-12] 제어장치의 마이크로 구조

제어 기억장치 전반부 후반부 명령어 사이클의 인출, 간접, 인터럽트 등의 부 사이클에 해당하는 공통 루틴들을 저장 명령어의 실행 사이클 루틴들이 저장 순차적으로 실행 [그림 12-13] 제어 기억장치의 조직

마이크로 프로그램을 이용한 제어장치의 동작과정 [그림 12-15] 마이크로 프로그램된 제어장치의 동작