CS/컴퓨터 구조

[컴퓨터 구조] 20. 입출력장치 (2)

JIN-JJS 2025. 6. 20. 19:04

1. 인터럽트 구동 입출력

프로그램 구동 입출력 (Programmed I/O)

 CPU가 모든 입출력 과정을 통제하며 수행.

 상태 검사

 데이터 저장 또는 출력 적재

 단점: 루프 사이클 낭비로 CPU 자원 소모

 

워치독 타이머 (Watch-dog timer)

 입출력 루틴 중 무한 루프를 방지하는 타이머.

 입출력장치 동작 최대 시간 설정

 대기 과정에서 시간 검사

 타이머 만료 시 오류 보고

 

인터럽트 구동 I/O

 CPU가 직접 입출력을 관리하지 않고 인터럽트 발생 시만 개입.

 인터럽트 서비스 루틴(ISR)을 주기억장치에 적재

 인터럽트 벡터 설정

 인터럽트 가능 플래그를 설정해 요청 허용

 

인터럽트 처리 과정

(1) 인터럽트 가능 플래그를 비활성화

(2) ISR에서 사용하는 레지스터 스택 저장

(3) 입출력 모듈 상태 확인

(4) 데이터 저장 및 기억장치에 저장

(5) 스택 복구 후 ISR 종료 → 원래 프로그램으로 복귀

 

 

2. 다중 인터럽트 처리

개요

 여러 입출력 장치에서 동시에 인터럽트를 요청할 수 있어, 이를 구분하고 처리해야 함.

 

CPU는 다음 기능을 수행할 수 있어야 함:

 요청 장치 식별

 ISR 탐색

 우선순위 선택

 

인터럽트 벡터와 인터럽트 벡터 테이블

 인터럽트 벡터: ISR 시작 주소

 인터럽트 벡터 테이블: 여러 벡터를 주기억장치 특정 영역에 저장
→ 장치 번호(n)에 따라 ISR 주소 결정

 

다중 인터럽트 처리 방법

(1) 소프트웨어 폴링

 대표 ISR에서 요청 장치를 프로그램적으로 확인

 우선순위는 코드상 정의된 순서로 결정

 

(2) 다중 인터럽트 요청선

 각 장치별로 독립된 인터럽트 요청선 보유

 각 요청선마다 별도의 ISR 존재

 하드웨어가 우선순위 결정

 

(3) 데이지 체인 (Daisy Chain = Hardware Polling)

 장치들을 연속 연결한 형태 (ex. A-B-C 순서)

 CPU에 가까운 장치부터 우선 처리

 하나의 인터럽트 요청선 사용

 IntAck 신호를 통해 인터럽트 확인 및 우선순위 결정

 

(4) 우선순위 인코더 (Priority Encoder)

 별도의 인터럽트 제어기 사용

 입력된 신호 중 우선순위가 가장 높은 장치를 식별

 IntAck 후 데이터 버스 통해 인터럽트 번호 확인 및 ISR 수행

 

 

3. 직접기억장치 액세스 (DMA)

개요

 CPU 개입 없이 입출력장치와 기억장치 사이에서 직접 데이터를 전송.

 속도 빠르고 대용량 데이터 전송 가능

 DMA 컨트롤러 필요

 전송 과정에서 CPU는 다른 작업 가능 (Cycle stealing)

 블록 단위(512B~4KB) 전송

 

DMA 동작 방식

(1) CPU → DMA 제어기에게 전송 명령

(2) CPU는 다른 작업 수행

(3) 입출력장치 준비되면 DMA가 버스 사용 요청

(4) DMA가 데이터 전송 수행

 

DMA 처리 과정

 준비: 기억장치 주소, 단어 수, 전송 방향, 채널 번호 설정

 처리 단계:
① DMA request
② Bus request
③ Bus grant
④ DMA acknowledge
⑤ Memory transfer by DMAC
⑥ Interrupt request
⑦ Interrupt acknowledge

 

구조 특징

 DMA는 일종의 버스 제어기 역할

 각 채널이 I/O 장치와 직접 송수신 수행

 CPU의 컨텍스트 스위치 필요 없음

 

 

4. 입출력장치 전체 정리

입출력장치(I/O)의 개요

 종류 다양, 기계적 요소 포함

 포트 입출력, 기억장치 맵 구조 존재

 

프로그램 구동 입출력

 CPU 직접 상태 검사 및 데이터 전송

 워치독 타이머로 무한루프 방지

 

인터럽트 구동 입출력

 인터럽트 벡터와 ISR 활용

 다중 처리 방식: 소프트웨어 폴링, 요청선, 데이지 체인, 인코더

 

DMA (직접기억장치 액세스)

 빠르고 효율적인 대량 데이터 전송

 DMA 컨트롤러 사용

 전송 전 준비사항 필수: 주소, 단어 수, 방향, 채널 번호


이 내용은 휴넷사회복지평생교육원의 컴퓨터 구조 강의를 듣고 정리한 것입니다.