8. 입출력장치
1. 장치 컨트롤러와 장치 드라이버
장치 컨트롤러
입출력 장치는 다음의 이유로 다른 하드웨어에 비해서 다루기가 매우 까다롭다.
첫째, 입출력장치에는 종류가 너무 나도 많다.
둘째, 일반적으로 CPU 와 메모리의 데이터 전송률은 높지만, 입출력장치의 데이터 전송률은 낮다.. -> 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
위와 같이 이유로 입출력장치는 컴퓨터에 직접 연결되지 않고, 장치 컨트롤러라는 하드웨어를 통해 연결된다. -> 장치 컨트롤러는 입출력 제어기, 입출력 모듈 등으로 다양하게 불리기도 한다.
장치 컨트롤러는 다음의 기능을 수행한다.
CPU 와 입출력장치 간의 통신 중개
오류 검출
데이터 버퍼링 -> 전송률이 높은 장치와 낮은 장치 사이에 주고 받는 데이터를 버퍼(buffer) 라는 임시 저장 공간에 저장해 전송률을 비슷하게 맞추는 방법이다. -> 리얼 타임 서비스에 경우에 버퍼 사용하지 않는 편이 좋을 수 있는데, 이 때 하드웨어의 상황까지 종합해서 생각해야 하는 부분이다! (소프트웨어적으로만 개선되지 않을수도 있다!)
장치 컨트롤러의 내부
장치 컨트롤러의 내부는 다음과 같은 장치로 구성되어 있다.
데이터 레지스터
CPU 와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
데이터 레지스터가 버퍼의 역할을 수행한다. -> 최근 주고받는 데이터가 많은 입출력장치에서는 레지스터 대신, RAM 로 버퍼의 역할을 수행하기도 한다.
상태 레지스터
입출력장치가 입출력 작업을 할 준비가 되었는지 저장되는 저장공간
제어 레지스터
입출력장치가 수행할 내용에 대한 제어 정보와 명령이 저장되는 저장공간
장치 드라이버
장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램이다. -> 쉽게 말해, 장치 컨트롤러를 제어하는 프로그램이다! -> 프로그램이기에, 당연히 실행 과정에서 메모리에 저장된다.
컴퓨터가 연결된 장치의 드라이버를 인식하고 실행할 수 없다면, 그 장치는 컴퓨터 내부와 정보를 주고받을 수 없다.
2. 다양한 입출력 방법
Last updated