공부 Note/컴퓨터 구조

Chapter 03 중앙처리장치 (5)

AmyG 2022. 2. 24. 10:10

입출력과 인터럽트

   * 입출력 (input/output) 구성

   * 인터럽트 (interrupt)

 

입출력 (input/output) 구성

   * 컴퓨터는 사용자와 통신을 하기 위해서 외부 장치, 메모리로 데이터와 명령어를 읽어들일 입력장치(input-device) 계산 결과를 사용자에게 표시해 출력장치(output-device) 갖추어야 한다

   * 단밀장치(terminal device) : 키보드, 프린터

   * 입출력 구성

 

인터럽트 (interrupt)

   * 프로그램 제어 전송 (program controlled transfer) : 플래그를 사용한 통신 방법

   * 프로그램 제어 전송 방법은 프로세스와 입출력 장치와의 속도 차이 때문에 매우 비능률적이다

   * 인터럽트 에이블 플립플롭 (interrupt enable flip-flop) IEN

      - 프로그램 제어전송 대신에 외부장치가 전송 준비가 되었을 컴퓨터에 알리는 방법에 활용되는 플립플롭

      - 컴퓨터는 프로그램 실행 도중 플래그를 체크하지 않으며, 플래그가 세트되면 컴퓨터는 실행중이던 프로그램을 중지하고 플래그의 세트 정보를 받아들여 입출력을 실행

      - 입출력 실행 즉시 원프로그램으로 복귀

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

      - 컴퓨터의 프로세스 처리 속도 : 10us-fetch and excute cycle time

      - 입출력 장치의 처리 속도 : 10 문자/ 라고 가정을 한다면

      - 입출력 장치는 1분자 100,000us(=0.1sec) 시간이 소요된다.

      - 결론적으로 전송 5000번의 플래그 체크가 필요하다

 

 

   * 메모리 상태 예제에 대한 설명

      - 메모리 주소 255 있는 명령이 실행 , R=1 이고 인터럽트가 발생 했다고 가정

      - 현재 PC <- 256 복귀 주소이다

      - [before interrupt]에서와 같이 프로그래머는 입출력 서비스 프로그램을 주소 1120번지에 로드 시켜놓았고, 주소 1 <- BUN 1120 로드

      - [인터럽트 실행시] M[0] <- 256, PC <- 1, R <- 0 (clear)

      - Execute M[1] 이는 1120번지로 분기하여 I/O program 실행

      - ION instruction 의해 IEN 1 세트하고 프로그램 복귀 시도

 

출처 : 제로베이스