자격증/IT / / 2021. 4. 10. 11:02

정보처리산업기사(필기) - 전자계산기 구조 : 명령 실행과 제어 (마이크로 오퍼레이션 (Micro Operation), 메이저 스테이트(Major State))

728x90
반응형

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

  • Instruction 수행을 위해 CPU내 레지스터와 플래그의 상태를 변환
  • 모든 명령을 구성하는 기본 동작
  • 프로그램에 의한 명령은 마이크로 오퍼레이션으로 이루어짐
  • 레지스터에 저장된 데이터에 의해 이루어짐
  • CPU의 Clock 펄스에 맞춰 실행
  • 마이크로 오퍼레이션의 순서 결정을 위한 제어장치의 신호를 제어신호라 함
  • Instruction 과정 중 한 단계식 이루어지는 동작, 한 개의 Instruction은 여러 개의 Micro Operation의 동작
  • Micro Cycle Time
     - 한 개의 Micro Operation의 수행 시간
     - CPU Cycle Time 또는 CPU Clock Time 이라고도 함, CPU 속도의 척도

제어 워드와 마이크로 프로그램

  • 제어 워드 (마이크로 명령어) : 레지스터 선택, 산술 논리연산장치 역할 및 마이크로 연산 결정을 하는 비트의 모임
  • 마이크로 프로그램 : 일련의 제어 워드가 기억장치 속에 저장된 것

Micro Cycle Time 부여 방식

Mivro Cycle Time : 한 개 Micro Operation 수행을 위한 시간

동기 고정식
(Synchronous
Fixed)
 - 모든 마이크로 오퍼레이션 동작시간이 갖다 가정했을 때 CPU Clock 주기를 Micro Cycle Time과 같도록 정의
 - 동작시간이 가장 긴 마이크로 오퍼레이션을 Micro Cycle Time으로 정함
 - 모든 마이크로 오퍼레이션 동작시간이 비슷할 때 유리 
 - 장점 : 제어기 구현 단순
 - 단점 : CPU의 시간 낭비가 심함
동기 가변식
(Synchronous
Variable)
 - 동작 시간이 유사한 Micro Operation끼리의 그룹별로 Micro Cycle Time정의 
 - 동기 고정식에 비해 CPU 시간 낭비가 적으나 제어기 구현 복잡
 - 마이크로 오퍼레이션의 수행시간이 현저히 차이날 때 사용
 - 그룹 간 사이클 타임의 동시를 맞추기 위해 사이클 타임을 정수배로 설정
비동기식
(Asynchronous)
 - 모든 마이크로 오퍼레이션에 다른 Micro Cycle Time 정의
 - 제어기가 매우 복잡해져 실제로는 거의 사용하지 않음

메이저 스테이트

  • CPU의 상태 표시 (Fetch, Indirect, Execute, Interrupt)
  • CPU는 4가지 단계를 반복하며 동작 수행
  • 메이저 스테이트 레지스터로 알 수 있음
  • Major Cycle 또는 Machine Cycle이라고도 함
  • 변천 과정

인출 단계(Fetch Cycle)

  • 명령어를 주기억장치에서 중앙처리장치의 명령 레지스터로 가져와 해독
  • 명령어가 1Cycle 명령이면 수행 후 Fetch Cycle로 변천
  • 1Cycle 명령이 아니면, 명령어의 모드 비트에 따라 직접주소, 간접주소 판단
     - 모드 비트 0 : 직접주소. Execute 단계로 변천

     - 모드 비트 1 : 간접주소. Indirect 단계로 변천
Micro Operation 의미
MAR PC  PC에 있는 번지를 MAR에 전송
MBR M[MAR],

PC PC + 1
 - MAR이 지정하는 위치 값을 MBR에 전송

 - PC 값을 1 증가시켜 다음 명령어 위치 지정
IR MBR[OP]


I MBR[I]
 - 명령어 OP-Code 부분을 명령 레지스터에 전송
  (MBR에는 주기억장치에서 읽은 명령이 있음)

 - 명령어 모드 비트를 플립플롭 I에 전송
F 1
또는 R 1
 I가 0 : F 플립플롭에 1을 전송하여 Execute 단계 변천
 I가 1 : R 플립플롭에 1을 전송하여 Indirect 단계 변천

간접 단계 (Indirect Cycle)

  • Fetch 단계의 명령의 주소부가 간접주소일 때 수행
  • Fetch 단계에서 해석한 주소가 간접주소이면 유효주소를 계산하기 위해 다시 Indirect 수행
  • 간접주소가 아닌 경우 명령어에 따라 Execute 혹은 Fetch 로 이동
  • 동작 순서
Micro Operation 의미
MAR ← MBR[AD]  MBR의 명령어 번지 부분 MAR에 전송
MBR ← M[MAR]  메모리의 MAR이 지정하는 위치 값을 MBR에 전송
No Operation  동작 없음
F ← 1, R ← 0  F에 1, R에 0을 전송하여 Execute 단계로 변천

실행 단계(Execute Cycle)

  • Fetch 단계에서 해석한 명령 실행
  • 플래그 레지스터 상태 변화를 검사하여 Interrupt 단계로의 변천 판단
  • Interrupt 플래그 래지스터의 변화가 없으면 Fetch로 변천
Micro Operatoin 의미
MAR ← MBR[AD]  - MBR 명령어 번지 MAR에 전송
MBR ← M[MAR]  - 메모리에서 MAR이 지정하는 위치 값을 MBR에 전송
AC ← AC + MBR  - 누산기 값과 MBR값의 합을 누산기에 전송
F ← 0, R ← 1  - Execute Cycle은 F=1,R=0
 - F에 0 전송시 Fetch 단계 변천, R에 1 전송시 Interrupt 단계 변천

인터럽트 단계(Interrept Cycle)

  • 인터럽트 발생시 복귀주소(PC) 저장, 제어순서를 인터럽트 처리의 첫 번째로 옮김
  • 마친 후 Fetch 단계로 변천
  • Interrupt 시 다른 처리하고 돌아오므로 서브루틴(부 프로그램) 호출이라고도 함
  • 동작 순서
Micro Operation 의미
MBR[AD] ← PC,

PC ← 0
 - PC의 다음 실행 명령 주소를 MBR의 주소 부분으로 전송

 - 복귀주소를 저장한 0번지를 PC에 전송
MAR ← PC
PC ← PC + 1
 - PC가 가진 값 0번지를 MAR에 전송
 - 인터럽트 루틴으로의 벡터 위치를 지정하기 위해 PC 값을 1 증가시켜 1로 세트
M[MAR] ← MBR,

IEN ← 0
 - MBR이 가진 다음 실행 명령의 주소를 메모리의 MAR이 가리키는 위치(0번지)에 저장

 - 인터럽트 단계가 끝날 때 까지 다른 인터럽트를 막기 위해 IEN에 0 전송
F ← 0, R ← 0  - F에 0, R에 0을 전송하여 Fetch단계로 변천

 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유