키보드 및 프린터와 같은 단말을 예시로 어떤 흐름을 가지고 입출력이 이루어지는지 확인한다.
간략히 본다면 키보드의 입력 값이 시리얼 통신 인터페이스를 통해 INPR(Input Register)로 전달이 되고 해당 레지스터의 값이 차면 FGI의 플래그가 활성화되어 AC로 전달하게 된다. 마찬가지 방식으로 OUTR에 값이 전달되고 이를 프린터로 순차적으로 전달한다.
위와 같이 플래그를 사용한 통신 방법을 프로그램 제어 전송이라하며 이는 프로세스와 입출력 장치와의 속도차이 때문에 비능률적이다.
Interrupt Enable flip-flop이라고 불리는 장치는 프로그램 제어 전송 대신 외부 장치가 전송 준비가 되었을 경우 컴퓨터에 알릴 수 있도록 활용되는 플립플롭이다. 프로그램 실행 도중 플래그를 체크하지 않으며 플래그가 셋되면 즉각 실행 중이던 프로그램을 중지하고 플래그의 세트 정보를 받아 입출력을 실행한 뒤 원 프로그램으로 복귀한다.
컴퓨터의 프로세스 처리 속도는 보통 10us 정도인데 입출력 장치의 처리 속도를 10문자/초라고 가정한다면 입출력 장치는 1문자 장 100,000us의 시간이 소요 된다. 결론적으로 매 전송 마다 5000번의 플래그 체크가 필요하다(입/출력 각 5000번씩)