👉 한 개의 명령어를 처리하는 과정
명령어 처리에 사용되는 특수 목적 레지스터
⚙️ 프로그램 카운터 (PC)
다음에 실행할 명령어의 주소를 저장, 실행 시마다 PC <- PC+1⚙️ 누산기 (AC)
연산의 결과 데이터가 저장⚙️ 명령어 레지스터 (IR)
최근에 실행된 명령어를 저장⚙️ 기억장치 주소 레지스터 (MAR)
PC의 내용 (명령어의 주소) 를 저장⚙️ 기억장치 버퍼 레지스터 (MBR)
기억장치로부터 읽은 명령어를 저장⚙️ 스택 포인터 (SP)
인터럽트 서비스 루틴을 위해, 다음에 실행할 명령어의 주소를 저장
👉 기억장치에서 명령어를 읽어오는 과정
♻️ PC -> MAR -(주소버스)-> 기억장치 -(데이터버스)-> MBR -> IR
👉 명령어에 맞는 연산을 수행
♻️ IR -> MAR -(주소버스)-> 기억장치 -(데이터버스)-> MBR -> ALU(AC를 호출) -> AC
👉 명령어 실행을 중단하고 다른 프로그램을 실행하도록 요구하는 것
👉 해당 프로그램 : 인터럽트 서비스 루틴 (ISR)
( Stack[SP] <- PC )
MBR <- PC
MAR <- SP
M[MAR] <- MBR
PC <- ISR의 시작 주소
SP <- SP-1 (일반적으로 주기억장치의 끝 부분을 스택의 시작지점으로 사용하므로 +1이 아닌 -1)
👉 주소를 통해 읽은 데이터가 주소인 경우
♻️ IR(addr) -> MAR -(주소버스)-> 기억장치 -(데이터버스)-> MBR -> IR(addr)
김종현 저, 『컴퓨터구조론』, 생능출판, 2019.