명령어의수행과제어 명령어에대해서학습하고, 명령어가수행되는과정에대하여학습한다. 1. 명령어의개요 2. 주소지정법 3. CPU 구조 4. 명령어의수행과제어
1. 명령 (Instruction) 개요 1.1 명령의구조 (1) OP Code(Operation Code) 1) 동작을지시 ( 동작부, 연산부, 명령부 ) 2) 명령의형식이나주소부의자료종류를지정. 3) 실행시스템의명령어개수와관련. 예 ) 명령어의수 32 개일경우 2 5 =32 이므로 OP Code 는 5 비트가필요 (2) Operand(Address 부 ) 1) OP Code 의실행대상. 2) 자료, 자료의주소, 자료주소를구하는데필요한정보수록. 3) 주소부, 한명령내에여러개가존재. (3) Mode Field 1) 오퍼랜드나유효번지가결정되는방법. OP Code Mode Field Operand(Address 부 ) 2) 0 이면직접번지지정방식, 1 이면간접번지방식.
1.2 명령어의형식 (1) Operand 개수를기준으로분류 1) 0 번지명령어 (Zero Address Instruction) : 스택을이용. 정리 OP Code 2) 1 번지명령어 (One Address Instruction) : 누산기 (AC) 를이용. OP Code Operand 1 3) 2 번지명령어 (Two Address Instruction) : 가장범용적, 원시자료보존안됨. OP Code Operand 1 Operand 2 4) 3 번지명령어 (Three Address Instruction) : 원시자료보존이필요한특수용. OP Code Operand 1 Operand 2 Operand 3
(2) OP Code 를기준으로분류 1) MRI(Memory Reference Instruction) : 메모리참조명령어 정리 Mode Field OP Code Operand 2) RRI(Register Reference Instruction) : 레지스터참조명령어 0 1 1 1 Register 동작 or Test 3) IOI(Input Output Instruction) : 입출력명령 1 1 1 1 Input/Output 동작 or Test
1.3 명령의기능 - 명령의기능이란 OP Code에나타낸명령들의하는일을의미 (1) 함수, 연산기능 (Function Operation) - 산술연산과논리연산명령. 정리 (2) 전달기능 (Transfer Operation) - 중앙처리장치와주기억장치사이에정보교환과관련된명령 LOAD 주기억장치 CPU STORE
정리 (3) 제어기능 (Control Operation) - 프로그램명령어의수행순서를결정하는명령 - 분기 ( 조건, 무조건 Jump) (4) 입, 출력기능 (Input/Output Operation) - 프로그램의입력과출력에관련된명령.
2. 주소지정법 - 융통성을제공, 명령어의오퍼랜드의비트수를줄임 2.1 종류 (1) 자료자신 (Immediate Addressing Mode : 즉치주소 ) - 명령어의오퍼랜드부에자신의데이터를포함하므로메모리접근없이처리가가능 OP Code 실제데이터 - 레벨수 =0( 레벨이란실제데이터를얻기위해메모리에접근하는회수 )
(2) 직접주소지정 (Direct Addressing Mode) - 오퍼랜드내의주소가실제데이터가있는장소이므로직접매핑 (Mapping) Operand 메모리 OP Code 100 실제데이터 - 레벨수 =1
(3) 간접주소지정 (Indirect Addressing Mode) -오퍼랜드내의주소가실제데이터의주소의위치 Operand 메모리 정리 OP Code 100 100 1000 1000 실제데이터 - 레벨수 > 2 - 융통성이크나메모리접근회수가많음
(4) 레지스터주소지정 (Register Addressing Mode) - 중앙처리장치내의레지스터가명령에따라지정되는것. Operand OP Code 100 Register 실제데이터 - 레벨수 = 0.5 (5) 레지스터간접지정 (Register Indirect Addressing Mode) - 오퍼랜드가레지스터를지정하고다시그레지스터의값이기억장소에실제데이터가있는위치를지정 OP Code Operand Register 100 실제데이터 - 레벨수 = 1.5
(6) 계산에의한주소지정 - 주어진오퍼랜드부에특정레지스터값을가감하여자료가기억된유효주소를구하는주소지정방식. 1) 상대주소지정 (Relative Addressing Mode) - 프로그램처리순서를변경하는분기명령에이용되는방식으로 PC의내용을이용. Operand 메모리 OP Code 100 + 200 100 실제데이터 PC
2) 인덱스주소지정 (Indexed Addressing Mode): 인덱스레지스터를이용하여반복적인가감을할때이용 OP Code X 100 + 200 실제데이터 100 Index Register 3) 베이스레지스터주소지정 (Base Register Addressing Mode) : 베이스레지스터를기준주소로사용 ( 재배치 ) OP Code 100 + 200 실제데이터 100 Base Register
(4) 스택주소지정 (Stack Addressing Mode) - 스택을이용할때에는 0주소명령을이용. - 묵시적주소지정 - 특별히주소부가없어도자료선택이가능. 정리 예제 ) LOAD 200 Main Memory 200 400 400 800 즉치주소방식 - 200 직접주소방식 - 400 간접주소방식 - 800
3. CPU 구조 3.1 CPU 의구조 - 연산부, 제어부, 레지스터부
3.2 CPU의기능 (1) 연산기능 - 연산부에서수행하는기능 : 산술연산, 논리연산 - 누산기를이용 : 연산용레지스터로서연산과정에서발생하는계산값들의일시기억장소. (2) 제어기능 - 제어부에서제어신호를발생시켜명령들의순차처리를가능 - 명령레지스터 (Instruction Register : IR) - 현재 - 명령부를기억. - 해독기 : 명령을해독.
(3) 기억기능 1) CPU 내의레지스터부에서행해지는작업, 레지스터는일시기억장소로사용 2) 사용자용레지스터 - 범용레지스터 (General Purpose Register) - 데이터레지스터 (Data Register) - 주소용레지스터 (Address Register) : 인덱스레지스터 (Index Register), 베이스레지스터 (base Register) 3) 제어용레지스터 - CPU 동작제어를위해제어장치나운영체제를사용. - PC(Program Counter): 다음에수행될명령의번지. - MAR(Memory Address Register): 현재수행되는명령의주소. - MBR(Memory buffer Register): 기억장치에서잃고쓸자료. - IR(Instruction Register): 현재수행중인명령부. - PSR(Program status Register): 조건코드와상태정보를수록해서 PSW(Program status Word) 를 만들어서 CPU 상태정보. < 상태정보 : 부호 (sign), 0(zero), carry, overflow, Interrupt>
(4) 전달기능 1) CPU 내의각장치를연결하는회선, 공통회선이집합인 Bus를이용. 2) 버스 (Bus) : 공통회선의집합으로결선의수감소. - 내부버스 : 연산기와레지스터간을연결 (Control Bus) - 외부버스 : 주변장치사이를연결. (Data Bus, Address Bus)
정리
정리
4. 명령의수행과제어 4.1 마이크로오퍼레이션 (1) Operation과 Micro Operation 1) Operation : 메모리에저장되어서중앙처리장치에의해실행되기위한 2진수코드 2) Micro Operation : CPU 내에서동작을하는기본단위로서한클럭펄스동안실행되는기본동작으로이것이모여서커다란오퍼레이션이됨 (2) 종류 1) R-R 마이크로오퍼레이션 : 상태변화없음 2) F(R,R) R 마이크로오퍼레이션 : 상태변화있음
(3) 마이크로싸이클타임 (Micro Cycle Time) - 마이크로오퍼레이션수행에필요한시간 1) 동기식 (Synchronous) - 동기고정식 (Synchronous Fixed) : 마이크로오퍼레이션중에서수행시간이가장긴것을마이크로 싸이클타임으로정함. 마이크로오퍼레이션수행시간이비슷할 때는유리하나차이가클때는중앙처리장치시간이낭비 ( 일정하게 ) - 동기가변식 (Synchronous Variable) : 마이크로오퍼레이션수행시간이유사한것들끼리모아서각집합에대해서로다른마이크로사이클타임을정의 ( 정수배 ) 중앙처리장치의이용률이증가되고제어가복잡 ( 긴, 중, 짧 ) 2) 비동기식 (Asynchronous) - 하나의동작완료후그자리에서다음동작이시작되는방식 - 중앙처리장치의효율은좋으나제어가복잡해서이용 - 명령에따라클럭주파수다르게
4.2 명령실행과정정리
플립플롭 F R 디코더출력컴퓨터싸이클 0 0 0 1 1 0 1 1 C0 C1 C2 C3 Fetch Cycle(Read Instruction) Indirect Cycle(Read Address of Operand) Execute Cycle(Read Operand) Interrupt Cycle
4.3 타이밍스테이트 (Timing State) - 마이크로사이클타임과같은간격으로결정되며, 클록펄스에의해주기적으로변함 (1) 레지스터간전송 - 병렬전송 (Paralled Transfer) : 주고받는레지스터의모든비트가한클록펄스동안동시에전송 - 마이크로오퍼레이션은 P:A B 로표시, 전송속도는빠르나제어가복잡
2) 직렬전송 (Serial Transfer) : 한클럭펄스에한비트씩전송 (Bit Time) - 시프트레지스터를이용, 전송할양을모두전송하는데걸리는워드타임. - 제어는간단, 속도가느림 3) 버스전송 (Bus Transfer) - 공통회선의집합인버스를이용해서레지스터간전송이이루어짐 - 버스선의개수는레지스터를구성하는플립플롭의수와일치함 4) 메모리전송 (Memory Transfer) : 메모리를이용경우. MAR 주기억장치 read write MBR
4.4 제어장치 (Control Unit) 의구현 - 제어신호생성, 구현방법에는논리회로에의한구현과마이크로프로그램에의한구현방법등. 4.4.1 논리회로에의한제어장치 (HCU : Hardwired Control Unit) - 제어신호가 Gate와 Flip-Flop으로구성된순차논리회로에서생성 ( 고정배선방식 ) - 제어기가단순한 H/W 작동만수행하므로속도신속 - 불규칙한회로이므로복잡하고어려워서수정을할때는재설계가필요 - 비경제적이어서특수용컴퓨터에만이용 (RISC형) 4.4.2 마이크로프로그램에의한제어장치 (MCU : Microprogrammed Control Unit) - 제어워드를이용해서시스템의각부분의동작을프로그래밍할수있는방법 ( 마이크로프로그램 ) - 이제어워드를메모리에저장시켜서사용하는데이를제어메모리 ROM, PROM, WCS(Writable Control Storage) - 마이크로프로그램을다른내용으로교환이가능. - 기억장치의일부를이용하므로비용이절약.
4.4.3 마이크로명령어형태 (1) 수평마이크로명령어 (Horizontal Micro Instruction) - n개의마이크로오퍼레이션이있을 n bit의명령부. - 동시에여러명령수행이가능해서속도가빠르나, 비경제적. (2) 수직마이크로명령어 (Vertical Micro Instruction) - n개의명령어를위해 2 K =n개의 k bit 조합으로명령부를구성. - 비트조합을분석하기위해해독기이용. - 경제적, 한번에한명령식만수행이가능. 예제 ) 명령어의개수가 32 개인시스템이있음 - 수평마이크로명령어방식일경우 OP Code bit 수는 32 비트가필요함 - 수직마이크로명령어방식일경우 OP Code bit 수는 2 5 =32 이므로 5 비트가필요함