본문 바로가기
컴퓨터 구조

[컴퓨터 구조] 명령어 구조 및 실행 과정과 Hardwired 제어 장치

by IT 정복가 2022. 5. 11.
728x90

*[Mano의 컴퓨터 시스템 구조 3판]의 공부할겸 요약한 내용입니다.


1. 명령어 코드(Instruction Codes)

1) 마이크로 연산들로 구성된 프로그램에 의해 디지털 컴퓨터가 작동된다.

2) 복수개의 마이크로 연산들이 하나의 매크로 연산과 연관 관계가 있음

3) 매크로 연산은 우리가 사용하는 컴퓨터 언어(어셈블리어)의 명령어를 뜻한다.

*여기서 I = 0이나 1로 Mode를 나타내며 Opcode는 명령어 종류를, 그리고 Address는 Operand(Data, 피연산자)의 저장 위치를 가리킨다.

 

주소 모드(Addressing Mode)

1) 즉치 주소(Immediate Address): 주소 부분에 데이터를 저장한다.

2) 직접 주소(Direct Address): 한 번 메모리 접근으로 데이터를 가져온다.

3) 간접 주소(Indirect Address): 두번 메모리 접근으로 데이터를 가져온다. 유효 주소는 레지스터에 저장이 가능하다. 명령어의 작은 주소 부분을 가지고 큰 주소의 데이터에 접근이 가능하다는 장점이 있다. 

*유효주소: 데이터를 직접 가리키는 주소


2. 컴퓨터 레지스터(Computer Registers)

레지스터들은 CPU의 수행에 필요한 명령어, 데이터, 주소를 임시 저장한다. 그 중에서 중요한 레지스터들은 다음과 같다.

1) 데이터 레지스터(DR): 메모리에서 읽어 온 피연산자를 저장한다.

2) 누산기 레지스터(AC): 범용 처리 레지스터로 사용된다.

3) 명령어 레지스터(IR): 메모리에서 읽어온 명령어를 저장한다.

4) 임시 레지스터(TR): 계산 도중의 임시 데이터를 저장한다.

5) 메모리 주소 레지스터(AR), 프로그램 카운터(PC): 메모리의 주소를 나타내어야 하므로 12비트로 구성되어 있다.

6) 입력 레지스터(INPR), 출력 레지스터(OUTR): 8비트 문자 정보를 송수신 한다.

 

공통 버스 시스템(Common Bus System)

1) 메모리와 레지스터들 사이의 정보 전송을 위한 길을 버스라고 한다.

2) 레지스터가 많은 시스템에서 정보를 전송하기 위한 보다 효율적인 방식은 공통버스를 사용하는 것이다.

3) 아래 그림은 레지스터와 메모리를 공통 버스 시스템으로 연결하는 방법을 보여준다.

공통 버스에 연결된 기본 컴퓨터의 레지스터

4) 공통 버스는 정보 전송에 필요한 가장 큰 비트 수의 대역폭(Band Width)를 갖는다.

5) MUX나 3-상태 버터 게이트에 의해 선택 되어진 메모리 또는 레지스터로 부터 데이터가 출력되어 공통버스 위에 놓여진다.

6) 로드(LD): 입력이 인에이블되어 있는 레지스터가 다음 클럭 펄스에서 버스의 데이터를 받아 저장한다.

*LD가 1일때는 정보를 받고, 0일때는 정보를 받지 않는다.


3. 컴퓨터 명령어(Computer Instruction)

1) 기본 컴퓨터는 세 가지 명령어 코드 형식을 가지고 있다.

1-1) 메모리 참조 명령

1-2) 레지스터 참조 명령

1-3) 입출력 명령

2) 각 명령어에서는 3비트로 구성된 연산 코드에 의해 나머지 13비트의 의미가 결정된다.

기본 컴퓨터의 명령어 형식

*메모리 참조 명령: 12비트를 주소지정에 사용하고, 주소 모드 I를 위해 맨 왼쪽의 한 비트를 사용한다. 

레지스터 참조 명령: 연산 코드가 111이고 최상위 비트는 0으로 되어있으며, 주로 AC레지스터에 대한 연산을 지정한다.

입출력 명령: 연산 코드에 111, 최상위 비트에 1을 가진다. 나머지 12비트를 입출력 연산의 종류를 나타내는데 사용한다. 


4. 타이밍과 제어(Timing and Control)

1) 기본 컴퓨터의 모든 플립플롭과 레지스터는 주 클럭 발생기에 의하여 제어된다.

2) 클럭 펄스만으로는 레지스터 상태를 변경시킬 수 없고, 제어 장치에서 생성된 제어신호가 인에이블 시켜 주어야한다.

3) 제어 장치는 하드와이어 제어 방식과 마이크로 프로그램 제어 방식의 두 종류가 있다.*하드와이어(Hardwired Control) 방식: 하드웨어 > 게이트, 플립플롭, 디코더 등의 디지털 회로를 이용하여 제어 논리를 구현한다. 속도면에서는 유리하지만, 컴퓨터의 구조가 변경되었을 때 여러 부품들 사이의 배선까지 바꾸어 주어야 하는 단점이 있다.

 

*마이크로 프로그램(Micro-programmend Control) 방식: 소프트웨어 > 제어 메모리에 저장된 제어 정보를 이용하여 마이크로 연산을 순차적으로 수행시킨다. 설계가 변경되더라도 제어 메모리의 마이크로 프로그램만 갱신해 주면 되지만, 속도면에서 상대적으로 느리다는 단점이 있다.

 

하드와이어 제어 방식(Hardwired Control Unit)

1) Control Outputs이 생성되는 Control Signal이다.

2) Control Signal에 의해 해당되는 마이크로 연산이 수행된다.


5. 명령어 사이클(Instruction Cycle)

1) 기본 컴퓨터에서 각 명령어 사이클은 다음과 같은 단계들로 이루어져 있다.

1-1) 명령어를 메모리에서 가져온다.(fetch)

1-2) 명령어를 디코딩한다.

1-3) 간접 주소 방식의 명령어일 경우에 메모리로부터 유효 주소를 읽어온다.

1-4) 명령어를 실행한다.

1-5) 처음으로 돌아간다.

2) Major Cycle(Machine Cycle) = Instruction Cycle + Interrupt Cycle

3) Fetch와 디코드

T0: AR <- PC;
T1: IR <- M[AR], PC = PC + 1;
T2: D0...D7 <- Decode IR(12~14), AR <- IR(0~11), I <- ID(15);
T3: AR <- M[AR]; //간접 주소일 경우/ 직접 주소일 경우 skip
T4: DR <- M[AR];
T5: Execution;

 

명령어 사이클에 대한 흐름도

728x90