▶ 명령어 사이클
- CPU가 한 개의 명령어를 실행하는데 필요한 전체 처리 과정을 말한다.
- 명령어를 불러오고(인출(Ferch)) 실행(Excution)하는 과정을 반복한다.
▷ 인출 사이클 (Fetch cycle)
- 정의
- CPU가 기억장치로부터 명령어를 읽어오는 단계를 말한다.
- 인출 사이클의 마이크로 연산
- 인출 사이클의 마이크로 연산은 다음과 같다.
- t0 :
MAR ← PC
- PC에 저장된 명령어 주소를 CPU 내부 버스를 통해 MAR로 저장한다.
- t1 :
MAR ← M[MAR], PC ← PC + 1
- MAR 번지 명령어를 MBR로 저장하고, PC를 1 증가시켜 다음 명령어 번지를 준비한다.
- t2:
IR ← MBR
- MBR에 저장된 명령어를 IR(오퍼랜드)에 저장한다.
▷ 간접 사이클 (Indirect cycle)
- 정의
- 오퍼랜드 필드에 포함된 간접주소로부터 실제 피연산자가 저장된 위치를 가리키는 유효주소를 읽어들이는 과정을 말한다.
- 즉, 실행 사이클에서 사용될 데이터의 유효주소 (실제 주소)를 기억장치로부터 읽어오는 과정을 말한다.
- 간접 주소지정 방식에서 사용되므로, 기억장치 엑세스가 한번 더 이루어진다.
- 간접 사이클의 마이크로 연산
- t0 : IR(오퍼랜드 필드)의 간접주소를 MAR로 저장한다.
- t1 : MAR 번지에 저장된 유효주소를 MBR로 저장한다.
- t2 : MBR에 저장된 명령어 코드를 IR(오퍼랜드 필드)에 저장한다. (1단계 더 참조)
▷ 실행 사이클 (Execution cycle)
- 정의
- 인출된 명령어 코드를 해독하고 연산을 수행하는 단계
- 실행 사이클의 마이크로 연산⭐
- 실행 사이클에서 오퍼레이션 (연산 코드)에 따라 수행되는 마이크로 연산이 달라지며, 명령어 실행에 필요한 데이터가 저장된 주소는 IR(오퍼랜드)에 의해 결정된다.
- 연산의 종류 (필요에 따라 수행 가능)
- 데이터 이동 : CPU와 기억장치 간 혹은 I/O장치 간에 데이터를 이동
- 데이터 처리 : 데이터에 대하여 산술 혹은 논리 연산을 수행
- 데이터 저장 : 연산 결과 데이터 혹은 입력장치로부터 읽어들인 데이터를 기억장치에 저장
- 프로그램 제어 : 프로그램의 실행 순서를 결정
① LOAD addr 명령어
- IR(오퍼랜드 필드)에 저장된 데이터를 AC로 이동하는 명령어를 말한다.
- t0 :
MAR ← IR(addr)
- IR 안에 있는 오퍼랜드 필드의 주소를 MAR에 저장한다.
- t1 :
MBR ← M[MAR]
- MAR 번지 데이터를 읽어 MBR로 저장한다.
- t2 :
AC ← MBR
- MBR에 저장된 데이터를 AC에 저장하여 로드한다.
② STORE addr 명령어
- AC의 내용을 오퍼랜드 필드에 포함된 기억장치 번지에 저장하는 명령어를 말한다.
- t0 :
MAR ← IR(addr)
- IR 안에 있는 오퍼랜드 필드에 포함된 주소를 MAR로 저장한다.
- t1 :
MBR ← AC
- t2 :
M[MAR] ← MBR
- MBR의 내용을 MAR 번지 기억장치에 저장한다.
③ ADD addr 명령어
- 메모리에 저장된 데이터를 AC와 더하고, 그 데이터를 다시 AC에 저장하는 명령어를 말한다.
- t0 :
MAR ← IR(addr)
- t1 :
MBR ← MAR
- MAR 번지 메모리 내용을 MBR에 저장한다.
- t2 :
AC ← AC + MBR
- MBR에 저장된 데이터를 ALU에서 연산하여 그 결과값을 AC에 저장한다.
④ JUMP addr 명령어
- 오퍼랜드가 가리키는 주소의 명령어로 실행 순서를 변경하는 분기(branch) 명령어를 말한다.
- t0 :
PC ← IR(오퍼랜드)
- 오퍼랜드 필드에 포함된 분기 번지를 PC로 전송한다.
📎참조
- 『 성결대학교 김자원 교수님 』 - 컴퓨터 구조 (2023)
- 『 컴퓨터구조(제5판) 』 - 복두 출판사
- https://www.robotstory.co.kr/raspberry/?vid=142
- https://yz-zone.tistory.com/66
- https://dream-and-develop.tistory.com/84
- https://taegyunwoo.github.io/comput-struct/ComputerStructure_ProcessorGroupAndFunction
- https://huimang2.github.io/etc/computer-instruction-cycle.html
댓글남기기