-
장치 컨트롤러와 장치 드라이버
- 입출력 장친느 CPU, 메모리 보다 다루기가 까다롭다.
1. 입출력 장치에는 종류가 너무나도 많다.
- 장치가 다양하면 장치마다 속도, 데이터 전송 형식도 매우 다양하다.
2. CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다
- 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
-> 위와 같은 문제를 해결하기 위해 장치 컨트롤러가 등장
- 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결됨
장치 컨트롤러의 역할
- CPU와 입출력장치 간의 통신중개 -> 일종의 번역가 역할 수행
- 오류 검출
- 데이터 버퍼링
버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시저장 공간에 저장하여 전솔률을 비슷하게 맞추는 방법
장치 컨트롤러의 구조

장치 컨트롤러는 버스에 연결되어 데이터를 주고받는데, 데이터, 상태, 제어가 있다
데이터 레지스터
- CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터(버퍼)
- RAM을 사용하기도
상태 레지스터
- 상태 정보 저장
- 입출력장치가 입출력 작업을 할 준비가 되었는지,
- 입출력 작업이 완료되었는지,
- 입출력 장치에 오류는 없는지 등의 상태 정보
제어 레지스터
- 입출력장치가 수행할 내용에 대한 제어 정보
장치 드라이버
- 장치 컨트롤러의 동작을 감지하고 제어하는 프로그램
장치 컨트롤러가 입출력장치를 연결하기 위한 하드웨어적인 통로라면,
장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적인 통로

- 컴퓨터가 연결된 장치의 드라이버를 인식하고 실행할 수 있다면, 컴퓨터 내부와 정보를 주고 받을 수 있음
- 반대로 컴퓨터 장치 드라이버를 인식할 수 없다면 컴퓨터 내부와 정보를 주고받을 수 없음