입출력 구조 - 입출력 수행과 인터럽트
Last updated
Last updated
패스트캠퍼스에서 컴퓨터 구조 강의 를 듣고 스스로 공부한 내용을 정리하고 있습니다.
우선 입출력장치에서 입출력 버스를 통해서 인터페이스로 신호가 전달되면
인터페이스에서는 데이터 전송준비 상태를 인터럽트 기능을 이용해서 CPU 에 알려준다.
CPU 는 인터럽트 신호를 수신하면 현재 수행중이던 프로그램을 중지하고
이때 PC (주소) 가 stack 에 저장된다.
IO 전송 서비스 루틴으로 제어를 변경한다.
인터럽트 종류에는 백터 인터럽트, 비벡터 인터럽트 등이 있을 수 있음!
IO 전송을 수행한 뒤
다시 원 프로그램으로 복귀한다.
컴퓨터는 주변 장치와의 인터페이스를 위해서 하드웨어적 뿐만 아니라 소프트웨어적인 루틴이 필요하다.
주변장치를 제어하고
프로세서와 주변 장치 사이에 데이터를 전송하기 위해서
IO 루틴은 주변장치의 활성화를 위해서 제어명령을 발송하거나 데이터 전송을 위한 준비상태 체크로직을 보유해야 한다.
입출력 소프트웨어는 시스템의 인터럽트제어를 활성화할 수 있어야 하며, 이를 실행할 주변 장치에 명령어를 보낼 수 있어야 한다.
DMA 전송시에 IO 소프트웨어는 DMA 채널을 개시 시킬 수 있어야 한다.
CPU - I/O 장치 사이의 데이터 전송은 CPU 로부터 시작이 된다.
각 장치는 통신 준비 여부에 따라서 CPU 와 통신이 가능하다.
시스템 전체의 퍼포먼스를 위해서 각 디바이스 인터페이스는 플래그가 enable 되었을때 비로소 CPU 에 인터럽트를 요청한다.