우리가 사용하는 컴퓨터에는 다양한 입출력 장치가 존재한다. 그럼 그들은 어떻게 CPU 랑 소통을 할까?

그래서 장치 컨트롤러와 장치 드라이버라는 개념을 통해서 다양한 외부 장치가 컴퓨터 내부와 어떻게 소통하는지 알아보자.

장치 컨트롤러가 필요한 이유

입출력 장치는 CPU와 메모리가 다루기 까다롭다 , 왜 그런지 살펴보자

입출력 장치에는 종류가 너무나도 많다

스피커 , 마우스 , 마이크 , 프린터 , CD , SSD 등등 입출력 장치는 종류가 너무나도 많다. 그렇기 때문에 다양한 입출력장치와 정보를 주고받는 방식을 규격화 하기가 어렵다.

CPU 와 메모리의 데이터 전송률에 비해서 입출력 장치의 데이터 전송률은 매우 낮다

Transfer Rate_전송률 이란 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표이다. 전송률이 낮은 장치는 같은 시간 동안 데이터를 조금씩만 주고받을 수 있다, 반면에 CPU는 수많은 데이터를 주고받을 수 있다.

장치 컨트롤러

위와 같은 문제를 해결하기 위해서 장치 컨트롤러 라는게 생겼다. 장치 컨트롤러를 통해서 직접적으로 컴퓨터에 연결되지 않고 , 장치 컨트롤러 Device Controller 을 통해서 연결이 된다.

장치 컨트롤러의 구성

그렇기 때문에 모든 입출력 장치는 각자의 장치 컨트롤러를 통해서 컴퓨터 내부와 정보를 주고받고 , 장치 컨트롤러는 하나 이상의 입출력장치와 연결되어 있다

장치 컨트롤러의 역할

  1. CPU 와 입출력 장치 간의 통신 중개
  2. 오류 검출
  3. 데이터 버퍼링

CPU 와 입출력 장치 간의 통신 중개

위의 입출력장치 간의 통신 중개 덕분에 입출력장치의 종류가 너무 많아 규격화하기 어려웠던 문제를 해결하게 된다. 일종의 입출력 장치가 번역기의 역할을 하는 셈이다.