728x90
명령어 사이클
CPU가 하나의 명령어를 실해하는데 필요한 기본적인 단계들의 집합입니다. CPU는 명령어를 하나씩 가져와 해석하고 실행하는 작업을 반복적으로 수행하는 데, 이 작업을 명령어 사이클이라고 합니다.
명령어 사이클의 단계
1. 가져오기
- CPU는 메모리로부터 다음 실행할 명령어를 가져옵니다.
- 프로그램 카운터는 다음 실행할 명령어의 주소를 가리키는 역할을 합니다.
- 가져온 명령어는 명령어 레지스터에 저장됩니다.
2. 해석
- 명령어 레지스터에 저장된 명령어는 제어장치에 의해 해석됩니다.
- 제어장치는 명령어를 분석하여 해당 명령어가 어떤 연산을 수행해야 하는지, 어떤 레지스터를 사용해야 하는지 등을 결정합니다.
3. 실행
- 명령어를 해석한 후, 제어장치는 명령어가 지시하는 연산을 실행합니다.
- 연산 결과는 레지스터나 메모리에 저장되거나, 다음 명령어의 실행 주소를 변경하여 프로그램 흐름을 제어합니다.
인터럽트
우선순위가 높은 작업을 처리하기 위해 실행 중인 프로그램을 일시적으로 중단하고 CPU가 다른 작업에 응답하는 것을 의미합니다.
인터럽트 종류에는 크게 동기 인터럽트와 비동기 인터럽트로 나누어 볼 수 있습니다.
먼저 동기 인터럽트는 실행 중인 프로그램의 명령어 수행과 밀접하게 연결된 인터럽트 형태를 말합니다. 프로세서가 명령어를 실행하는 도중에 발생하며 CPU가 해당 인터럽트를 처리하기 위해 현재 수행 중인 명령어를 중단하고 응답합니다.
비동기 인터럽트
입출력 장치에 의해 발생하는 인터럽트이며 CPU가 실행 중인 프로그램과는 독립적으로 발생하는 인터럽트 형태를 말합니다. 프로그램이 아닌 외부 장치나 하드웨어 등에서 갑작스럽게 발생하는 이벤트로 인해 발생합니다.
하드웨어 인터럽트
알림과 같은 인터럽트이며 하드웨어 장치에서 발생하는 인터럽트로 CPU가 실행 중인 프로그램을 중단하고 헤딩 장치로부터의 중요한 이벤트에 대응하는 메커니즘입니다.
하드웨어 인터럽트 처리 순서
- 입출력 장치는 CPU에 인터럽트 요청 신호를 보냅니다.
- CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인합니다.
- CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지를 확인합니다.
- 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업합니다.
- CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행합니다.
- 인터럽트 서비스 루틴 실행이 끝나면 4에서 백업해 둔 작업을 복구하여 실행을 재개합니다.
728x90
'컴퓨터구조' 카테고리의 다른 글
메모리& 캐쉬메모리 (0) | 2023.08.16 |
---|---|
CPU를 위한 설계 기법&CISC와 RISC (0) | 2023.08.16 |
ALU와 제어장치 (0) | 2023.08.16 |