#68_메이저 스테이트

 - 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로서, fetch(인출), indirect(간접), execute(실행), interrupt(인터럽트) 이렇게 4개의 상태가 있음

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

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

 - Major Cycle 또는 Machine Cycle라고도 함

 

#69_인출단계(fetch cycle)

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

 - 읽어와 해석된 명령어가 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],

1 <- MBR[I]

ㆍ명령어의 OP_code 부분을 명령 레지스터에 전송함

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

ㆍ명령어의 모드비트를 플립플롭 I에 전송함

C0T3

F <- 1 또는 R <- 1

ㆍI가 0이면 F 플립플롭에 1을 전송하여 Execute 단계로 변환하고, I가 1이면 R 플립플롭에 1을 전송하여 Indirect 단계로 변천함

 

#70_간접 단계(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 단계로 변천함

 

#71_실행 단계(Execute Cycle)

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

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

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

 - ADD 연산을 수행하는 Execute Cycle의 단계

제어신호 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 단계로 변천함

 

#72_인터럽트 단게(Interrupt Cycle)

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

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

제어신호 Micro Operation 의미
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 단계로 변천함

 

#73_주요 명령의 마이크로 오퍼레이션

 - 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 단계로 변천함
C2T3(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 단계로 변천함
C2T3(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 단계로 변천함
C2T3(IEN) R <- 1 R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천함

 - BUN(Branch unconditionally)

  ㆍBUN은 PC에 특정한 주소를 전송하여 실행명령의 위치를 변경하는 무조건 분기 명령임

제어신호 Micro Operation 의미
C2T0 PC<- MBR[AD]

ㆍMBR에 있는 명령어의 번지 부분을 PC에 전송함

※ 다음에 실행할 명령의 주소를 갖는 PC의 값이 변경되었으므로 변경된 주소에서 다음 명령이 실행됨

C2T1 no Operation 동작 없음
C2T2 no Operation 동작 없음
C2T3(IEN') F <- 0 F에 0을 전송하면 F=0, R=0이 되어 Fetch 단계로 변천함
C2T3(IEN) R <- 1 R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천함

 

#74_제어 데이터

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

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

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

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

 

#75_제어장치의 비교

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

  고정배선 제어장치 마이크로 프로그래밍 기법
반응 속도 고속 저속
회로 복잡도 복잡 간단
결제성 비경제적 경제적
융통성 없음 있음
구성 하드웨어 소프트웨어

 

#76_입/출력장치의 구성

 - 입/출력 제어 장치

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

  ㆍ데이터 버퍼 레지스터를 이용하여 두 장치간의 속도차이를 조절함

  ㆍ제어신호의 논리적, 물리적 변환 그리고 에러를 제어함

  ㆍ종류 : DMA, 채널, 입/출력 프로세서, 입/출력 컴퓨터

 - 입/출력 인터페이스

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

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

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

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

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

   ④ 동작 방식이 서로 다른 주변 장치들의 간섭 없는 제어

 - 입/출력 버스

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

  ㆍ데이터버스, 주소버스, 제어 버스로 구성되어 있음

 

#77_기억장치와 입출력 장치 동작의 차이

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

비교항목 입/출력 장치 기억 장치
동작의 속도 느리다 빠르다
동작의 자율성 타율/자율 자율
정보의 단위 Byte(문자) Word
착오 발생률 많다 적다

 

#78_스풀링(spooling)

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

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

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

+ Recent posts