[CS] 8. 입출력장치

eunoia73·2025년 4월 7일
1

TIL

목록 보기
25/32

1. 장치 컨트롤러와 장치 드라이버

1) 장치 컨트롤러 (하드웨어)

  • CPU와 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링 (버퍼에 데이터를 조금씩 모았다가 한꺼번에 재보내거나 데이터를 한 번에 많이 받아 조금씩 내보내는 방법)

장치 컨트롤러의 내부에는 데이터 레지스터, 상태 레지스터, 제어 레지스터 등이 있다.

** 장치 컨드롤러가 필요한 이유
입출력장치는 종류가 매우 많아서 정보를 주고받는 방식을 규격화하기 어려움
일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률(얼마나 빨리 교환할 수 있는가)은 낮음

2) 장치 드라이버

장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램

2. 다양한 입출력 방법

1) 프로그램 입출력

프로그램 속 명령어로 입출력장치를 제어하는 방법

  • 메모리 맵 입출력 - 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법
  • 고립형 입출력 - 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법. 입출력 전용 명령어 사용.

2) 인터럽트 기반 입출력

장치 컨트롤러에 의해 발생하는 하드웨어 인터럽트를 기반으로 하는 입출력

  • 장치 컨트롤러가 입출력 작업을 끝내고 CPU에게 인터럽트 요청 신호를 보내면 CPU는 하던 일을 백업하고 인터럽트 서비스 루틴을 실행함

  • CPU는 인터럽트 간 우선순위를 고려하여 우선순위가 높은 인터럽트 순으로 여러 인터럽트를 처리할 수 있음

  • NMI(Non-Maskable Interrupt) - 인터럽트 비트를 활성화해도 무시할 수 없는 인터럽트. 발생시, CPU는 우선순위가 높은 인터럽트부터 처리

  • 프로그래머블 인터럽트 컨트롤러(PIC) - 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청의 우선순위를 판별한 후, CPU에 처리해야할 하드웨어 인터럽트를 알려주는 장치

3) DMA 입출력

입출력장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식. 직접 메모리에 접근할 수 있는 입출력 기능. 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요하다.

  • 입출력 버스 - 입출력장치와 컴퓨터 내부를 연결 짓는 통로. 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여줌

[혼자 공부하는 컴퓨터구조 + 운영체제] 책을 읽고 정리한 기록입니다.

0개의 댓글