본문 바로가기
CONCEPT/Computer Architecture

[컴퓨터구조] 명령어 사이클과 인터럽트

by 1005 2025. 2. 18.

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

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

명령어 사이클의 일부!

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

간접 주소 지정 방식

 
 

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

동기 인터럽트 = exception

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

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

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

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

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

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

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


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

댓글