/
프로그램 속 명령어로 입출력장치를 제어하는 방법
/
CPU가 입출력 작업을 하는 과정
메모리 맵 입출력 : 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주
고립형 입출력 : 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법
장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업하고 인터럽트 서비스 루틴을 실행
인터럽트를 기반으로 하는 입출력
NMI(Non-Maskable Interrupt) : 인터럽트 비트를 비활성화해도 무시할 수 없는 인터럽트
프로그래머블 인터럽트 컨트롤러(PIC, Programmable Interrupt Controller) : 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야 할 하드웨어 인터럽트는 무엇인지 알려주는 장치
PIC의 다중 인터럽트 처리 과정
DMA(Direct Memory Access) : 입출력장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 잇는 입출력 방식
DMA 입출력을 하기 위해 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어 필요
/
DMA 입출력 과정
입출력 버스