컴퓨터 공학 기초/컴퓨터 구조

명령어 사이클과 인터럽트

jjjjjjyun 2025. 4. 22. 21:34

  • 명령어 사이클: CPU는 명령어를 수행하는데 일정 주기를 반복한다. 이를 명령어 사이클이라고 한다.
    • 메모리에 저장된 명령어를 실행하려면? 메모리에 저장된 명령어를 인출해 CPU로 가져온다. (인출 사이클) - 인출한 것을 실행한다. (실행 사이클) 이 과정을 반복한다.

 

 

인터럽트의 종류에는 동기 인터럽트, 비동기 인터럽트가 있다.

 

 

 

 

 


비동기, 하드웨어 인터럽트

 

  • 비동기 인터럽트가 없다면 작업이 완료되었는지 계속해서 확인을 해주어야 한다.

 

 

 

입출력장치가 CPU에 인터럽트 요청 신호를 보낸다.

항상 실행사이클이 끝나고 플래그 레지스터에서 인터럽트 플래그를 확인한다. 하지만 모든 인터럽트를 인터럽트 플래그로 막을 수 있는 것은 아니다. 하드웨어 고장이나 정전 같은 경우가 있을 수 있기 때문이다.

  • Maskable interrupt: 막을 수 있는 인터럽트
  • Non maskable interrupt: 막을 수 없는 인터럽트

 

인터럽트 요청 신호

 

 

인터럽트 서비스 루틴

 

  • 인터럽트 서비스 루틴도 프로그램이기 때문에 메모리에 저장된다.
  • 인터럽트를 수행한다 = CPU가 명령을 수행하며 인터럽트가 있으면 인터럽트 서비스 루틴을 실행 후 다시 명령을 재개한다. 인터럽트의 시작 주소는 인터럽트 벡터를 통해 알 수 있다.

 

 

비동기, 하드웨어 인터럽트의 처리 순서

 

 

 

  • 인터럽트 벡터를 통해 인터럽트 서비스 루틴의 시작점을 알 수 있다.

 

 

1500번지 프로그램을 수행하다 인터럽트 서비스 루틴으로 인해 10번지 프로그램을 수행해야 할 경우 진행하던 것을 저장해야 한다. 이는 스택에 저장하고 이후 프로그램 카운터는 서비스 루틴에서 수행할 것을 받아 진행한다.

 

 

정리