4. 명령실행과 제어
4.1 마이크로 오퍼레이션 Micro Operation
(1) 마이크로 오퍼레이션 (마이크로 명령)
1) 명령을 수행하기 위해 클럭펄스에 기준을 두고 CPU 내의 레지스터와 플래그의 상태변환을 일으키는 작업
2) 레지스터에 저장된 데이터에 의해서 이루어지는 동작
3) 마이크로 오퍼레이션을 순서적으로 일어나게 하는 신호를 제어신호(Control Signal)라고 함
4) 마이크로 오퍼레이션은 Clock 펄스에 기준을 두고 실행
5) 동기 디지털 시스템에 내장된 모든 레지스터의 타이밍은 마스트 클록 발생기로 제어됨
기출) 마이크로 오퍼레이션에 대한 설명 중 옳지 않은 것은?
① 마이크로 오퍼레이션은 CPU 내의 레지스터들과 연산장치에 의해서 이루어진다.
② 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.
③ 마이크로 오퍼레이션 중에 CPU 내부의 연산 레지스터, 인덱스 레지스터는 프로그램으로 레지스터의 내용을 변경할 수 없다.
④ 마이크로 오퍼레이션이 실행될 때마다 CPU 내부의 상태는 변하게 된다.
기출) 중앙연산처리 장치에서 Micro Operation이 순서적으로 일어나게 하려면 무엇이 필요한가?
라) 제어신호(Control Signal)
(2) 마이크로 사이클 타임 Micro Cycle Time
1) 마이크로 사이클 타임 : 마이크로 오퍼레이션 수행에 필요한 시간. CPU 속도를 나타냄.
2) 마이크로 사이클 타임 부여 방식 : 동기고정식, 동기가변식, 비동기식
동기 고정식 Synchronous Fixed
- 마이크로 오퍼레이션 중 수행시간이 가장 긴 것을 클럭주기로 정함.
동기 가변식 Sycchronous Variable
- 마이크로 오퍼레이션에 따라 수행시간을 다르게 하는 것.
- 각 마이크로 오퍼레이션의 사이클 타임이 현저한 차이를 나타낼 때 사용
- 중앙처리장치의 시간을 효율적으로 이용할 수 있음
- 마이크로 오퍼레이션에 대해 서로 다른 사이클 정의 가능
비동기식 Asynchronous
4.2 메이저 스테이트 Major State
(1) 메이저 스테이트 (메이저 상태)
1) 중앙 처리 장치가 무엇을 하고 있는가를 나타내는 것.
기억장치 사이클을 단위로 해당 사이클 동안 무엇을 위해 기억 장치를 접근하는가를 나타내 주는 것.
2) 메이저 스테이트의 변화 과정
F와 R의 플립플롭 상태에 따라 메이저 스테이트가 결정.
플립플롭 상태: F |
플립플롭 상태: R |
메이저 스테이트 |
0 |
0 |
인출 사이클 (Fetch Cycle) |
0 |
1 |
실행 사이클 (Excute Cycle) |
1 |
0 |
간접 사이클 (Indirect Cycle) |
1 |
1 |
인터럽트 사이클 (Interrupt Cycle) |
인출(Fetch) ↔ 실행(Excute) → 인터럽트(Interrupt) → 인출(Fetch)
인터럽트는 Fetch, Excute, Indirect 어느 상태에서나 발생할 수 있고 인터럽트가 끝나면 반드시 Fetch로 간다.
인출(Fetch) ↔ 간접(Indirect) → 실행(Excute) ↔ 인출(Fetch)
Fetch에서 Indirect로 갈 수 있고 Indirect 다음에는 Excute로 가게 된다.
기출) 컴퓨터의 메이저 상태에 대한 설명 중 옳지 않은 것은?
① EXECUTE 상태가 끝나면 항상 FETCH 상태로만 간다. (X)
② memory reference 인 간접 주소 인스트럭션을 수행하기 위해서는 fetch-indirect-execute 순서로 진행 되어야 한다. (O)
③ 특정한 인스트럭션에 대해서는 INDIRECT 상태가 필요 없다. (O)
④ FETCH 상태에서는 기억 장치에서 인스트럭션을 읽어 중앙연산처리 장치로 가져온다. (O)
기출) 메이저 상태(major state)에 대한 설명 중 옳은 것은?
가. execute state가 끝나면 항상 fetch state로 간다. (X)
나. 특정한 명령에 대해서는 indirect state가 필요하다. (X)
다. 메이저 사이클은 fetch, indirect, execute, interrupt 과정을 반드시 수행해야 한다. (X)
라. indirect state는 데이터의 유효번지를 얻기 위해 기억장치에 접근하는 상태이다. (O)
인출 단계 (Fetch Cycle)
- 주기억장치 지정장소로부터 명령을 읽어 중앙처리장치에 가져오는 단계
- 명령의 오퍼레이션부를 명령 레지스터에 세트(Set) 시켜서 해독
- 다음에 실행할 명령의 기억장소를 세트(Set) 시킴
- 인스트럭션 종류에 대한 판단이 이루어지는 상턔(명령을 읽어내는 스테이트)
- 인터럽트를 처리한 후 다음으로 전환해야 할 메이저 스테이트
- 패치 사이클에서 사용하는 것: PC, MBR, MAR
- PC의 내용은 Fetch Cycle 동안 1 증가
- Fetch Cycle에서 일어나는 마이크로 오퍼레이션
T1 : MAR ← PC // PC에 있는 번지를 MAR로 전송
T2 : MBR ← M[MAR], PC ← PC+1 // 메모리에서 MAR이 지정하는 위치값을 MBR로 전송, 다음 실행 명령 위치를 지정하기 위해 PC값을 1 증가시킴
T3 : OPR ← MBR[OP], I ← MBR[I] // 명령어 OP코드 부분을 명령 레지스터에 전송, 명령어 모드비트를 플립플롭 I에 전송
T4 : F ← 1 OR R ← 1 // I가 0이면 F 플립플롭에 1 전송하여 실행 사이클로, I가 1이면 R 플립플롭에 1 전송하여 간접 사이클로 변함
기출) 컴퓨터 시스템이 작동되면 먼저 프로그램 카운터의 초기 주소값이 결정되고 주소에 의하여 명령어가 기억장치로부터 읽혀지는 것은? 인출(fetch)
기출) 한 명령의 excute cycle 중에 interrupt 요청을 받아 interrupt를 처리한 후 실행되는 사이클은?
fetch cycle
기출) 어떤 명령이 수행되기 위해 가장 우선적으로 이루어져야 하는 마이크로 오퍼레이션은?
PC → MAR
간접 단계 (Indirect Cycle)
- 인스트럭션의 수행 시 유효 주소를 구하기 위한 메이저 상태
- Fetch 단계에서 해석된 명령의 주소부가 간접 주소인 경우 수행
- 간접 단계 동안 기억장치로부터 오퍼랜드(데이터) 번지(Address)를 인출
- 특정 인스트럭션에 대해서는 Indirect 상태가 필요없음
기출) 간접 사이클 중에는 어떤 동작이 수행되는가?
- 기억장치로부터 [데이터의 주소]를 인출한다
실행 단계 (Excute Cycle)
인터럽트 단계 (Inturupt Cycle)
5) BUN (Branch UNconditionally)
PC ← MBR(AD)
6) BSA
7) ISZ
4.3 제어장치와 마이크로 프로그램
(1) 제어 데이터
1) 제어 데이터의 종류
- 각 메이저 스테이트 사이의 변천을 제어하는 제어 데이터
- 중앙처리장치의 제어점을 제어하는데 필요한 제어 데이터
- 인스트럭션의 수행 순서를 결정하는데 필요한 제어 데이터
2) 제어 데이터가 될 수 있는 것
- 연산자의 종류, 인스트럭션의 주소지정방식, 연산 결과에 대한 상태 플래그 내용
수치데이터는 아님!!!
(2) 제어장치(제어기)의 구현
1) 하드 와이어드 방식 = 고정 배선 방식 (Hard-wired Control Unit)
속도가 빠름, 마이크로 프로그램 방식에 비해 비쌈
반응속도 고속, 회로 복잡, 비경제적, 융통성 없음, 하드웨어 구성, 제어메모리 불필요
2) 마이크로 프로그램 방식
반응속도 저속, 회로 간단, 경제적, 융통성 있음, 소프트웨어 구성, 제어메모리 필요
기출) 제어 데이터가 될 수 없는 것은?
가. 연산자의 종류 (O)
나. 연산을 위한 수치 데이터 (X)
다. 인스트럭션의 주소지정방식 (O)
라. 연산 결과에 대한 상태 플래그 내용 (O)
기출) 하드와이어드 방식이 마이크로 프로그래밍 방식보다 좋은 점은?
가. 다양한 어드레스 모드를 갖는다. (X)
나. 인스트럭션 세트를 변경하기가 쉽다. (X)
다. 컴퓨터의 속도가 향상된다. (O)
라. 비교적 복잡한 명령 세트를 가진 시스템에 적합하다. (X)
(3) 마이크로 프로그램 (Micro Program) = 펌웨어(Firmware)
1) 어떤 명령을 수행할 수 있도록 된 일련의 제어 워드가 특수한 기억장치 속에 저장된 것으로 각종 제어 신호를 발생시킴
2) 마이크로 명령으로 형성되어 있음
3) 전자계산기의 제작 단계에서 컨트롤 스토레이지(Control Storage) 속에 저장됨
4) 제어기를 구성하는 방법으로 마이크로 프로그램이 이용될 수 있음
5) 마이크로 프로그램이 저장되는 제어 메모리는 ROM이 주로 사용되고, 사용자가 변경시킬 수 없음
6) 별도의 번역과 RAM으로의 접근이 필요하지 않기 때문에 일반적인 소프트웨어와 구별하여 펌웨어(Firmware)라고도 함.
7) 마이크로 프로그램에서 제어 메모리의 번지 결정 방법
- 마이크로 명령에서 지정하는 번지로 무조건 분기, 서브루틴의 call과 return, 상태 비트에 따른 조건부 분기
명령어 분석의 조건부 분기는 아님!!!!
8) 마이크로 명령 형식 : 수평, 수직, 나노
수평 마이크로 명령, 수직 마이크로 명령, 나노 명령
기출) 어떤 명령을 수행할 수 있도록 된 일련의 제어 워드가 특수한 기억장치 속에 저장된 것을 무엇이라 하는가?
가. 제어 메모리 (X)
나. 제어 데이터 (X)
다. 마이크로 프로그램 (O)
라. 고정배선제어 (X)
기출) 마이크로컴퓨터 내에는 동작 제어에 항상 필요한 모니터 프로그램이 있다.
이러한 모니터 프로그램이 기억되기에 적당한 장소는?
가. RAM (X)
나. I/O port (X)
다. ROM (O)
라. CPU (X)
기출) 제어 메모리에서 번지를 결정하는 방법으로서 옳지 않은 것은?
가. 마이크로 명령에서 지정하는 번지로 무조건 분기 (O)
나. 서브루틴은 call과 return (O)
다. 상태 비트에 따른 조건부 분기 (O)
라. 명령어 분석에 따른 조건부 분기 (X)
기출) 마이크로 명령 형식을 표기한 것이다. 적합하지 않은 것은?
가. 수평 마이크로 명령 (O)
나. 제어 마이크로 명령 (X)
다. 수직 마이크로 명령 (O)
라. 나노 명령 (O)
'정보처리기사' 카테고리의 다른 글
| 데이터베이스: 데이터 모델, 관계형 데이터 베이스, 관계대수/관계해석, 정규화 (0) | 2016.02.16 |
|---|---|
| 전자계산기: 입출력장치, 병렬 컴퓨터 구조 (0) | 2016.02.13 |
| 전자계산기: 기억장치 (1) | 2016.02.12 |
| 전자계산기: 중앙처리장치, 명령어, 주소지정 방식, 연산 (0) | 2016.02.08 |
| 전자계산기: 논리회로, 진법계산, 보수, 자료의 내부적/외부적 표현 (0) | 2016.02.02 |


