- 명령어 사이클
CPU 가 한 개의 명령어를 실행하는데 필요한 전체 과정
명령어 인출과 명령어 실행으로 이루어짐
부 사이클 인 인출 사이클과 실행 사이클로 부름
- CPU 레지스터
명령어를 실행하기 위해 기본적으로 필요한 CPU 내부 레지스터
- 프로그램 카운터 (PC)
다음에 인출될 명령어 주소를 가지고 있는 레지스터
각 명령어 인출 후 내용이 자동으로 1(명령어 길이에 해당하는 주소 단위의 수만큼)이 증가됨
분기 명령어가 실행되는 경우 그 목적지 주소로 갱신됨
- 분기(branch) 명령어
PC 내용이 가리키는 위치가 아닌 다른 위치의 명령어로 실행 순서를 바꾸도록 해주는 명령어
- 누산기 (AC)
데이터를 일시적으로 저장하는 레지스터
레지스터의 비트 수는 단어 길이와 같다
- 명령어 레지스터 (IR)
가장 최근에 인출된 명령어가 저장되어 있는 레지스터
- 기억장치 주소 레지스터 (MAR)
PC 에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전 잠시 저장하고 있는 레지스터
출력 선들이 시스템 버스의 주소 버스와 직접 연결되어 있음
- 기억장치 버퍼 레지스터 (MBR)
기억장치에 저장되거나 읽혀진 데이터를 잠시 가지고 있는 레지스터
입력, 출력 선들이 시스템 버스의 데이터 버스와 연결되어 있음
- 클록 주기
명령어 인출에 각각 걸리는 시간
CPU 의 클록 주파수 1GHz 가 클록 주기의 1ns
- 인출 사이클
명령어를 인출하는 사이클
PC의 명령어 주소를 MAR 로 보내고 시스템 주소 버스를 통해 기억 장치로 전송됨
기억장치에서 인출된 명령어가 MBR 에 적재되며 PC 가 +1 됨. (MBR 은 각 기억 장치의 주소와 명령어 길이를 가지고 있음)
MBR 의 명령어가 IR 로 이동됨
- 실행 사이클
인출된 명령어 코드를 해독하고 그 결과에 따라 필요한 연산을 수행함
데이터 이동, 데이터 처리, 데이터 저장, 프로그램 제어로 분류됨
첫 번째로 수행되는 연산은 명령어의 오퍼랜드를 MAR 로 이동해 기억장치에서 데이터를 인출하는 것
- 인터럽트
프로그램 처리 중 CPU 에 순차적인 명령어 실행을 중단하고 다른 프로그램 처리를 요구하는 매커니즘
정전과 같은 급박한 상황에 대처하거나 외부 장치들과의 상호 작용을 위하여 반드시 필요한 기능
- 인터럽트 서비스 루틴 (ISR)
CPU 가 원래의 프로그램 수행을 중단하고 요구된 인터럽트를 처리해주기 위한 프로그램
- 인터럽트 사이클
인터럽트 요구 신호 검사, 현재 PC 내용을 스택에 저장, PC 에 해당 ISR 의 시작 주소를 적재하는 과정
- 마이크로 연산
PC의 주소가 MBR 에 적재됨
SP 의 내용이 MAR 을 통해 주소버스로 나가고 PC 에는 ISR 의 시작 주소 적재.
MBR 에 저장되어 있던 PC 내용 스택에 저장하고 SP의 내용을 1 감소시켜 TOS 주소 저장
- 인터럽트 상태
CPU 가 인터럽트를 받을 수 있는 상태인지 알려주는 신호
인터럽트를 받을 수 없으면 자동으로 넘어감
- 스택 포인터
CPU 내부에 있는 특수 목적용 레지스터들 중의 하나
인터럽트 사이클에 들어갈 시 원래 PC와 AC 를 저장함
스택의 최상위 주소를 가리킴
일반적으로 주기억장치의 끝 부분이 사용됨
- 다중 인터럽트
인터럽트가 실행되는 도중 다른 인터럽트가 들어오는 것
새로운 인터럽트 요구가 들어와도 인터럽트 사이클을 수행하지 않도록 하거나 인터럽트 요구들 간에 우선 순위를 정하고 우선 순위에 따라 먼저 수행하는 것이 있음.
- 간접 사이클
실행 사이클에서 사용될 데이터의 실제 주소를 기억 장치로부터 읽어오는 과정
- 마이크로 연산
IR 을 MAR 로 보냄
데이터 실제 주소 MBR 에 적재
MBR 의 데이터 실제 주소 IR 에 저장