입출력 구조 - 입출력 수행과 인터럽트

패스트캠퍼스에서 컴퓨터 구조 강의 를 듣고 스스로 공부한 내용을 정리하고 있습니다.

인터럽트에 의한 I/O

어떻게 동작하는가?

  1. 우선 입출력장치에서 입출력 버스를 통해서 인터페이스로 신호가 전달되면

  2. 인터페이스에서는 데이터 전송준비 상태를 인터럽트 기능을 이용해서 CPU 에 알려준다.

  3. CPU 는 인터럽트 신호를 수신하면 현재 수행중이던 프로그램을 중지하고

    1. 이때 PC (주소) 가 stack 에 저장된다.

    2. IO 전송 서비스 루틴으로 제어를 변경한다.

    3. 인터럽트 종류에는 백터 인터럽트, 비벡터 인터럽트 등이 있을 수 있음!

  4. IO 전송을 수행한 뒤

  5. 다시 원 프로그램으로 복귀한다.

소프트웨어 루틴의 필요성

  • 컴퓨터는 주변 장치와의 인터페이스를 위해서 하드웨어적 뿐만 아니라 소프트웨어적인 루틴이 필요하다.

    • 주변장치를 제어하고

    • 프로세서와 주변 장치 사이에 데이터를 전송하기 위해서

  • IO 루틴은 주변장치의 활성화를 위해서 제어명령을 발송하거나 데이터 전송을 위한 준비상태 체크로직을 보유해야 한다.

  • 입출력 소프트웨어는 시스템의 인터럽트제어를 활성화할 수 있어야 하며, 이를 실행할 주변 장치에 명령어를 보낼 수 있어야 한다.

  • DMA 전송시에 IO 소프트웨어는 DMA 채널을 개시 시킬 수 있어야 한다.

입출력장치와 CPU 간의 인터럽트 논리

  1. CPU - I/O 장치 사이의 데이터 전송은 CPU 로부터 시작이 된다.

    1. 각 장치는 통신 준비 여부에 따라서 CPU 와 통신이 가능하다.

    2. 시스템 전체의 퍼포먼스를 위해서 각 디바이스 인터페이스는 플래그가 enable 되었을때 비로소 CPU 에 인터럽트를 요청한다.

우선순위 인터럽트

Last updated