[혼자하는 컴퓨터 구조 +운영체제]-명령어 사이클과 인터럽트

Ethan·2023년 8월 10일
0

1. 명령어 사이클이란?

인출사이클 : 가장 먼저 CPU로 갖고 와야 한다.

실행 사이클: 갖고 왔으면 실행해야 한다

반복

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

So 메모리 접근이 더 필요한 경우 간접사이클 과정을 추가할 수 도 있다(인터럽트).

2. 인터럽트란?

(Interrupt):방해하다, 중단시키다

  • cpu가 꼭 주목해야할때, CPU가 꼭 처리해야할 일이 생겼을 때

  • 비동기 인터럽트(하드웨어 인터럽트):주로 입출력 장치에 의해 발생한다. 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트 사용

  • 하드웨어 인터럽트의 처리 순서

  1. 순차적으로 프로그램 실행
  2. 입출력 장치 CPU에 인터럽트 요청 신호 전송
  3. 현재 스택의 실행사이클 종료 후 명령어 인출직전 인터럽트 요청 확인과 인터럽트 플래그 1 확인완료
  4. 지금까지의 카운터, 메모리주소 레지스터, 메모리 버퍼 레지스터, 명령어 레지스터에 저장되어있었던 값을 다른 스택영역에 백업
  5. 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴 A~C까지 처리
  6. 4에서 백업해둔 작업 복구하여 실행 재개

인터럽트 요청 신호:cpu의 작업을 방해하는 인터럽트에 대한 요청
인터럽트 플래그: 인터럽트 요청신호를 받아들일지 무시할지를 결정하는 비트
인터럽트 벡터: 인터럽트 서비스 루틴의 시작주소를 포함하는 인터럽트 서비스 루틴의 식별정보
인터럽트 서비스 루틴: 인터럽트를 처리하는 프로그램

3. 정전 하드웨어 고장같은것들은 막을 수 없는 인터럽트다

5.각각의 인터럽트를 구분하기 위한 정보 cpu가 각 인터럽스 서비스의 시작주소를 알아내기 위해 => 인터럽트 벡터

  • 동기 인터럽트(예외): CPU가 예기치 못한 상황을 접했을 때 발생

profile
코딩하는 알파카

0개의 댓글