컴퓨터구조 #13 마이크로 명령 - 입출력과 인터럽트

underlier12·2020년 4월 21일
1

컴퓨터구조

목록 보기
13/26

13. 마이크로 명령 - 입출력과 인터럽트

입출력 구성

키보드 및 프린터와 같은 단말을 예시로 어떤 흐름을 가지고 입출력이 이루어지는지 확인한다.

간략히 본다면 키보드의 입력 값이 시리얼 통신 인터페이스를 통해 INPR(Input Register)로 전달이 되고 해당 레지스터의 값이 차면 FGI의 플래그가 활성화되어 AC로 전달하게 된다. 마찬가지 방식으로 OUTR에 값이 전달되고 이를 프린터로 순차적으로 전달한다.

인터럽트

위와 같이 플래그를 사용한 통신 방법을 프로그램 제어 전송이라하며 이는 프로세스와 입출력 장치와의 속도차이 때문에 비능률적이다.

IEN

Interrupt Enable flip-flop이라고 불리는 장치는 프로그램 제어 전송 대신 외부 장치가 전송 준비가 되었을 경우 컴퓨터에 알릴 수 있도록 활용되는 플립플롭이다. 프로그램 실행 도중 플래그를 체크하지 않으며 플래그가 셋되면 즉각 실행 중이던 프로그램을 중지하고 플래그의 세트 정보를 받아 입출력을 실행한 뒤 원 프로그램으로 복귀한다.

컴퓨터 실행 속도 대비 외부 입력 장치와의 입출력 속도 차이

컴퓨터의 프로세스 처리 속도는 보통 10us 정도인데 입출력 장치의 처리 속도를 10문자/초라고 가정한다면 입출력 장치는 1문자 장 100,000us의 시간이 소요 된다. 결론적으로 매 전송 마다 5000번의 플래그 체크가 필요하다(입/출력 각 5000번씩)

인터럽트 사이클 흐름도

사이클 흐름도 설명

  • 메모리 주소 255에 있는 명령이 실행 중 R=1이고 인터럽트가 발생
  • 현재 PC <- 256 (복귀 주소)
  • [before interrupt]에서와 같이 프로그래머는 입출력 서비스 프로그램을 주소 1120번지에 로드, 주소 1 <- BUN 1120 로드
  • [interrupt excute] M[0] <- 256, PC <- 1, R <- 0 (clear)
  • Execute M[1]은 1120번지로 분기하여 I/O program 실행
  • ION instruction에 의해 IEN을 1로 세트하고 프로그램 복귀

profile
logos and alogos

0개의 댓글