1. 마이크로 오퍼레이션(Micro Operation)의 정의

- Instruction을 수행하기 위해 CPU내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작이다.

- 레지스터에 저장된 데이터에 의해 이루어지는 동작이다.

- 한 개의 Clock 펼스 동안 실행되는 기본 동작이다.

- 마이크로 오퍼레이션의 순서를 결정하기 위하여 제어장치가 발생하는 신호를 제어신호라고 한다.

- 한 개의 Instruction은 여러 개의 Micro Operation이 동작되어 실행한다.

- Micro Cycle Time : 한 개의 Micro Operation을 수행하는데 걸리는 시간이다.


2. Micro Cycle Time 부여 방식

1) 동기고정식(Synchronous fixed)

- 모든 마이크로 오퍼레이션의 동작시간이 같다고 가정하여 CPU Clock의 주기를 Micro Cycle Time과 같도록 정의하는 방식이다,.

- 모든 마이크로 오퍼레이션 중에서 수행시간이 가장 긴 마이크로 오퍼레이션의 동작시간을 Micro Cycle Time으로 정한다.

- 모든 마이크로오퍼레이션의 동작시간이 비슷할 때 유리한 방식이다.

- 장점 : 제어기의 구현이 단순하다.

- 단점 : CPU의 시간 낭비가 심하다.

2) 동기가변식(Synchronous Variable)

- 수행시간이 유사한 Micro Operation끼리 그룹을 만들어, 각 그룹별로 서로 다른 Micro Cycle Time을 정의하는 방식이다.

- 동기 고정식에 비해 CPU 시간 낭비를 줄일 수 있는 반면, 제어기의 구현은 조금 복잡하다.

- 마이크로오퍼레이션의동작시간이차이가날때유리하다.(정수배)

3) 비동기식(Asynchronous)

- 모든 마이크로 오퍼레이션에 대하여 서로 다른 Micro Cycle Time을 정의하는 방식이다.

- CPU의 시간 낭비는 전혀 없으나, 제어기가 매우 복잡해지기때문에 실제로는 거의 사용되지 않는다.


3. 메이저 스테이트

- 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로서 fetch, indirect, execute, interrupt 이렇게 4개의 상태가 있다.

- CPU는 메이저 스테이트의 4가지 단계를 반복적으로 거치면서 동작을 수행한다.

- 메이저 스테이는 메이저 스테이트 레지스터를 통해서 알 수 있다.

- Major Cycle 또는 Machine Cycle라고도 한다.

- 메이저 스테이트의 변천 과정이다.


4. 인출단계

- 명령어를 주기억장치에서 중앙처리장치의 명령레지스터로 가져와 해독하는 단계이다.

- 읽어와 해석된 명령어가 1 Cycle 명령이면 이를 수행한 후 다시 Fetch Cycle 사이클로 변천한다.

- 1 Cycle 명령이 아니면, 해석된 명령어의 모드비트에 따라 직접주소와간접 주소를 판단한다.


제어신호 Micro Operation 의미

C0t0 MAR ← PC PC에 있는 번지를 MAR에 전송시킨다.

C0t1

MBR ←M[MAR],

PC ← PC + 1

- 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송한다.

- 다음에 실행할 명령의 위치를 지정하기 위해 PC의 값을 1 증가시킨다.

C0t2

IR ←MBR[OP],

I ← MBR[I]

- 명령어의 OP-code 부분을 명령레지스터에 전송한다.

※현재 MBR에는 주기억 장치에서 읽어온 명령이 들어있다.

- 명령어의 모드비트를 플립플롭 I에 전송한다.

C0t3

F ← 1

또는 R ← 1

- I가 0이면 F 플립플롭에 1을 전송하여Execute 단계로 변천하고, I가 1이면 R 플립플롭에 1을 전송하여 Indirect 단계로 변천한다.


5. 간접 단계(Indirect cycle)

- Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행된다.

- Fetch 단계에서 해석한 주소를 읽어온 후 그 주소가 간접주소이면 유효주소를 계산하기 위해 다시 Indirect 단계를 수행 한다.

- 간접 주소가 아닌 경우에는 명령어에 따라서 Execute 단계 또는 Fetch 단계로 이동할지를 판단한다.


제어신호 Micro Operation 의미

C1t0 MAR ← MBR[AD]

- MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C1t1 MBR ← M[MAR]

- 메모리에서 MAR이 지정하는 위치의 값을MBR에 전송한다.

C1t2 No Operation 동작없다.

C1t3 F ← 1, R ← 0

- F에 1, R에 0을 전송하여 Execute 단계로변천한다.


6. 실행 단계(Execute Cycle)

- Fetch 단계에서 인출하여 해석한 명령을 실행하는 단계이다.

- 플래그 레지스터의 상태 변화를 검사하여 Interrupt 단계로 변천할 것 인지를 판단한다.

- Interrupt 요청신호를 나타내는 플래그 레지스터의 변화가 없으면 Fetch 단계로 변천한다.

- ADD 연산을 수행하는 Execute 단계이다.


제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

- MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← M[MAR]

- 메모리에서 MAR이 지정하는 위치의 값을MBR에 전송한다.

C2t2 AC ←AC + MBR

- 누산기의 값과 MBR의 값을 더해 누산기에전송한다.

※ 실질적인 ADD 연산이 이루어는 부분이다.

C2t3

F ← 0

또는 R ←1

- F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천하고, R에 1을 주면 F=1, R=1이 되어 Interrupt 단계로 변천한다.


7. 인터럽트 단계(Interrupt Cycle)

-인터럽트 발생시 복귀주소(PC)를 저장시키고, 제어순서를 인터럽트 처리 프로그램의 첫 번째 명령으로 옮기는 단계이다.

-인터럽트 단계를 마친 후에는 항상 Fetch 단계로 변천한다.


C3t0

MBR[AD] ←PC,

PC ← 0

- PC가 가지고 있는, 다음에 실행할 명령의 주소를 MBR의 주소 부분으로 전송한다.

․ 복귀 주소를 저장할 0번지를 PC에 전송한다.

C3t1

MAR ← PC,

PC ← PC + 1

․ PC가가지고있는, 값0번지를MAR에전송함․ 인터럽트 처리 루틴으로 이동할 수 있는 인터럽트 벡터의 위치를 지정하기 위해 PC의 값을 1 증가 시켜 1로 세트시킨다.

C3t2

M[MAR] ← MBR,

IEN ← 0

․ MBR이 가지고 있는, 다음에 실행할 명령의 주소를 메모리의 MAR이 가리키는 위치(0 번지)에 저장한다.

․ 인터럽트 단계가 끝날 때까지 다른 인터럽트가 발생하지 않게 IEN에 0을 전송한다.

C3t3 F ← 0, R ← 0 F에 0, R에 0을 전송하여 Fetch 단계로 변천한다.


8. 주요 명령의 마이크로 오퍼레이션

ADD : AC ← AC + M[AD]

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← M[MAR]

메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송한다.

C2t2 AC ←AC + MBR

누산기의 값과 MBR의 값을 더해 누산기에 전송한다.

C2t3

IEN' F ←0

F에 0을 전송하면 F=0, R=0이 되어 Fetch 단계로 변천한다.

IEN R ←1

R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천한다.

LDA(Load to AC) : AC ← M[AD]

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1

MBR ← M[MAR]

AC ← 0

․ 메모리에서 MAR이 지정하는 위치의값을 MBR에 전송한다.

․ AC에 0을 전송하여 AC를 초기화 한다.

C2t2 AC ← AC + MBR

․ 메모리에서 가져온 MBR과 AC를 더해AC에 전송한다.

․ 초기화된 AC에 더해지지므로 메모리의 값을 AC로 불러오는것과 같다.

C2t3

IEN' F ← 0

F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천한다.

IEN R ← 1

R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천한다.

STA(Store AC) : M[AD]← AC

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← AC AC의 값을 MBR에 전송한다.

C2t2 M[MAR] ←MBR

MBR의 값을 메모리의 MAR이 지정하는 위치에 전송한다.

C2t3

IEN' F ← 0

F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천한다.

IEN R ← 1

R에 1을 전송하면 F=1, R=1이 되어Interrupt 단계로 변천한다.


9. 제어 데이터

제어장치가 제어신호를 발생하기위한 자료로서, CPU가 특정한 메이저 상태와 타이밍 상태에 있을 때 제어자료에 따른 제어규칙에 의해 제어신호가 발생한다.

- 메이저 스테이트 사이의 변천을 제어하는 데이터이다.

- 중앙처리장치의 제어점을 제어하는 데이터이다.

- 인스트럭션의 수행 순서를 결정하는데 필요한 제어 테이터이다.


10. 제어장치의 비교

제어장치는 필요한 마이크로 연산들이 연속적으로 수행할 수 있도록 제어 신호를 보내는 역할을 한다.

고정배선 제어장치 마이크로 프로그래밍 기법

- 반응속도 고속 저속

- 회로 복잡도 복잡 간단

- 경제성 비경제적 경제적

- 융통성 없음 있음

- 구성 하드웨어 소프트웨어


11. 입/출력장치의 구성

- 입/출력제어 장치이다.

- 입/출력 장치와 컴퓨터 사이의 자료전송을 제어하는 장치이다.

- 데이터버퍼레지스터를 이용하여 두 장치간의 속도 차이를 조절한다.

- 제어신호의 논리적, 물리적 변환 그리고 에러를 제어한다.

- 종류 : DMA, 채널, 입/출력 프로세서, 입/출력 컴퓨터 입/출력 인터페이스가 있다.

- 동작방식이나 데이터 형식이 서로 다른 컴퓨터 내부의 주기억 장치나 CPU의 레지스터와 외부 입/출력 장치간의 이진 정보를 원활하게 전송하기 위한 방법을 제공한다.

- 컴퓨터와 각 주변 장치와의 다음과 같은 차이점을 해결하는 것이 목적이다.

- 전자기 혹은 기계적인 주변장치와 전기적인 CPU나 메모리 간의 동작방식의 차이

- 주변 장치와 CPU간의 데이터 전송속도의 차이

- 주변 장치의 데이터 코드와 CPU나 메모리의 워드 형식의 차이

- 동작 방식이 서로 다른 주변 장치들의 간섭 없는 제어 입/출력 버스

- 주기억장치와 입/출력장치 사이의 데이터 전송을 위해 모든 주변 장치의 인터페이스에 공통으로 연결된 버스

- 데이터버스, 주소버스, 제어 버스로 구성되어 있다.


12. 기억장치와 입출력 장치 동작의 차이

기억장치는 처리속도가 nano(10-9)의 단위인 전자적인 장치이고 입출력 장치는 milli(10-3)의 단위인 기계적인 장치이므로 동작방식에는 많은 차이가 있다.

비교항목 입/출력 장치 기억 장치

동작의 속도 느리다 빠르다

동작의 자율성 타율/자율 타율

정보의 단위 Byte(문자) Word

착오 발생률 많다 적다


13. 스풀링(spooling)

-다중 프로그래밍 환경 하에서 용량이 크고 신속한 액세스가 가능한 디스크를 이용하여 각 사용자 프로그램이 입.출력할 데이터를 직접 I/O장치로 보내지 않고 디스크에 모았다가 나중에 한꺼번에 입.출력함으로써 입.출력 장치의 공유 및 상대적으로 느린 입.출력 장치의 처리속도를 보완하는 기법이다.

-스풀링은 고속의 CPU와 저속의 입.출력장치가 동시에 독립적으로 동작하게 하여 높은 효율로 여러 작업을 병행 작업할 수 있도록 해줌으로써 다중 프로그래밍 시스템의 성능 향상을 가져올 수 있다.

-스풀링은 디스크 일부를 매우 큰 버퍼처럼 사용하는 방법이다.


14. 입/출력 방식

Programmed I/O

․ 원하는 I/O이 완료되었는지의 여부를 검사하기 위해서 CPU가 상태 Flag를 계속 조사하여 I/O가 완료 되었으면 MDR(MBR)과 AC 사이의 자료전송도 CPU 직접 처리하는 I/O방식이다.

․ 입/출력에 필요한 대부분의 일을 CPU가 해주므로 Interface는 MDR, Flag, 장치번호 디코더로만 구성하면 된다.

․ I/O 작업시 CPU는 계속 I/O 작업에 관여해야 하기 때문에 다른 작업을 할 수 없다는 단점이 있다.

Interrupt I/O

․ 입/출력을 하기 위해 CPU가 계속 Flag를 검사하지 않고, 데이터를 전송할 준비가 되면 입/출력 인터페이스가 컴퓨터에게 알려 입/출력이 이루어지는 방식이다.

․ 입/출력 인터페이스는 CPU에게 인터럽트 신호를 보내 입/출력이 있음을 알린다.

․ CPU는 작업을 수행하던 중 입/출력 인터럽트가 발생하면 수행중인 프로그램을 중단하고 입/출력을 처리한 후 원래의 작업으로 돌아와 작업을 계속 수행한다.

․ CPU가 계속 Flag를 검사하지 않아도 되기 때문에 Programm ed I/O 보다 효율적임 DMA (Di r e c t Memory Access)에 의한 I/O

․ 입/출력장치가 직접 주기억장치를 접근(Access)하여 Data Block을 입/출력하는 방식으로 입/출력 전송이 CPU의 레지스터를 경유하지 않고 수행된다.

․ CPU는 I/O에 필요한 정보를 DMA제어기에 알려서 I/O동작을 개시 시킨 후 I/O동작에 더 이상 간섭하지 않고 다른 프로그램을 할당하여 수행한다.

․ 입/출력 자료 전송시 CPU를 거치지 않기 때문에 CPU의 부담없이 보다 빠른 데이터의 전송이 가능한다.

․ 인터럽트 신호를 발생시켜 CPU에게 입/출력 종료를 알린다.

․ Cycle Steal 방식을 이용하여 데이터를 전송한다.

Channel에 의한 I/O

․ CPU를 대신하여 주기억장치와 입/출력장치 사이에서 입/출력을 제어하는 입/출력 전용 프로세서(IOP)이다.

․ 채널 제어기는 채널명령어로 작성된 채널 프로그램을 해독하고 실행하여 입/출력 동작을 처리한다.

․ CPU로부터 입/출력 전송을 위한 명령어를 받으면 CPU와는독립적으로 동작하여 입/출력을 완료한다.

․ CPU와 인터럽트로 통신한다.

․ 채널의 종류

- Selector Channel : 고속 입/출력장치(자기디스크, 자기테이프,자기드럼)1개와 입/출력하기 위해 사용한다.

- Multiplexer Channel : . 저속 입/출력장치(카드리더, 프린터)를 여러개를 동시에 제어하는 채널이다.

- Block Multiplexer Channel : 동시에 여러 개의 고속 입/출력장치를 제어한다.

'IT > 자격증' 카테고리의 다른 글

산업기사-전자계산기구조(3)  (0) 2017.05.31
산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(2)  (0) 2017.05.17
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05

+ Recent posts