프로그램 속 명령어들은 일정한 주기로 반복되며 실행되는데 이 주기를 "명령어 사이클" 이라고함.
인출 사이클: 메모리에서 CPU로 데이터를 가지고 오는 것.

실행 사이클: CPU에서 실행하는 것.


CPU로 명령어를 가지고 와도 바로 실행이 불가능한 경우도 있다.



인터럽트(interrupt): CPU의 정해진 흐름을 끊어버리는 현상.
- 'CPU가 꼭 주목해야 할때', 'CPU가 우선 처리해야 할 다른 작업이 생겼을 때' 발생


ex) cpu가 접근하고자 하는 메모리에 접속했을때 원하는 데이터가 없는 현상, 디버깅을 하는 현상, 실행할 수 없는 명령어


1) 알림과 같은 인터럽트: 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트 사용



1) 인터럽트 요청 신호: CPU의 작업을 방해하는 인터럽트에 대한 요청

2) 인터럽트 플래그: 인터럽트 요청 신호를 받아들일지 무시할지를 결정하는 비트
* 모든 인터럽트를 인터럽트 플래그로 막을 수 있는 건 아님!


3) 인터럽트 벡터: 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별 정보
(각각의 인터럽트를 구분하기 위한 정보)

4) 인터럽트 서비스 루틴: 인터럽트를 처리하는 프로그램

CPU가 인터럽트를 받아들이기로 했다면 인터럽트 서비스 루틴 실행함.
인터럽트 서비스 루틴도 프로그램이기 때문에 메모리에 저장되어 있음.


인터럽트 작업을 처리하기 전 지금까지의 작업 내용을 레지스터의 값들을 스택에 백업을 해둠.



'CONCEPT > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 명령어 병렬 처리 기법 (0) | 2025.02.18 |
---|---|
[컴퓨터구조] 빠른 CPU를 위한 설계 기법 (0) | 2025.02.18 |
[컴퓨터구조] 레지스터 (0) | 2025.02.17 |
[컴퓨터구조] ALU와 제어장치 (0) | 2025.02.16 |
[컴퓨터구조] C언어의 컴파일과정 (0) | 2025.02.16 |
댓글