컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

8.명령어 사이클과 인터럽트

공부를하자 2023. 6. 28. 21:32

1.명령어 싸이클(Instruction cycle)

 1)정의 :명령어를 처리하는 정형화된 흐름.

 2)종류

  -인출싸이클(fetch cycle) : 메모리에 있는 명령어를 가져오는 단계.

  -실행싸이클(execution cycle) : 가져온 명령어를  실행하는 단계.

  -간접싸이클(indirect cycle): 메모리 접근이   필요해질 경우 추가되는 싸이클.

2.인터럽트(Interrupt)

 1)정의: 정해진 흐름이 끊어지는 상태.

 2)종류

 -동기 인터럽트(syschronous interrupts)

  :CPU 명령어를 수행할 예상치 못한 상황에 처했을 발생하는 오류.

  동기 인터럽트는 예외(exception)이라고 부른다.

 -비동기 인터럽트(asynchronous interrupts)

 :주로 입출력장치에 의해 발생하는 인터럽트 CPU에게 알림 역할을 한다.

  하드웨어 인터럽트라고도 한다.

 3.하드웨어 인터럽트 처리순서

 -첫째. 입출력장치는 CPU 인터럽트 요청신호를 보낸다.

   *인터럽트 요청신호: 현재 실행되고있는 프로그램을 끊어도 되는지 파악하는 .

 

-둘째.  실행싸이클이 끝나고 명령어를 인출하기전 인터럽트 여부를 파악

-셋째. CPU 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 인터럽트를 받아들일 있는지 파악한다.

    *인터럽트 플래그: CPU 플래그 레지스터에 저장돼 있는 인터럽트 요청을 수용할 있는지에 대한 정보.

   

 

-넷째.인터럽트가 발생하면 여태까지의 작업을 백업한다.

 

-다섯 번째 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행.

  *인터럽트 서비스 루틴(ISR):인터럽트를 처리하기 위한 프로그램.인터럽트 핸들러라고도 불린다.

  *인터럽트 벡터: 인터럽트 서비스 루틴의 식별정보 프로그램 시작 정보.

-여섯 번째. 서비스 루틴 실행이 끝나면 저장해둔 백업 작업을 불러와 다시 재개한다.

*명령어 싸이클 구조

*예외의 종류

-폴트(falut): 예외를 처리한 직후 예외가 발생한 명령어부터 실행을 재개하는 .

-트랩(trap): 예외를 처리한 직후 예외의 다음 명령어부터 실행을 재개하는 .

-중단:프로그램을 강제로 중지시키는 .

-소프트웨어 인터럽트: 시스템호출이 일어났을 발생.