Chapter 08-1 | 장치 컨트롤러와 장치 드라이버
입출력 장치
- 입출력 장치의 종류가 다양하고, 각 장치마다 운용 방식이 다양하여 정보를 주고 받는 방식을 규격화하기 어려운 문제가 있다.
- 데이터를 전송하는 전송률이 다르기 때문에 CPU와 메모리, 입출력장치 간의 통신이 어려워진다.
이러한 이유로 컴퓨터에 직접 연결하지 않고, **장치 컨트롤(입출력 제어기, 입출력 모듈)**이라는 하드웨어를 통해 연결한다.
장치 컨트롤러
역할
- CPU와 입출력 장치 간의 통신 중개
- 오류 검출
- 데이터 버퍼링 - 전송률을 일정하게 맞춰주는 기능
내부 구조
- 데이터 레지스터 - CPU와 입출력장치 사이에 주고 받을 데이터가 담기는 레지스터로 버퍼 역할을 한다.
최근에는 RAM이 이 역할을 대신 하기도 한다.
- 상태 레지스터 - 입출력장치의 상태 정보가 저장된다.
- 제어 레지스터 - 입출력 장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.
장치 드라이버
장치 컨트롤러의 동작을 감지하고 제어하여 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 소프트웨어이다.
Chapter 08-2 | 다양한 입출력 방법
프로그램 입출력
기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법이다.
CPU가 입출력을 명령어를 만나면, 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.