Search

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

Last update: @1/7/2023
혼자 공부하는 컴퓨터구조 + 운영체제

컴퓨터 구조

01 컴퓨터 구조 시작하기

02 데이터

03 명령어

04 CPU의 작동 원리

05 CPU 성능 향상 기법

06 메모리와 캐시 메모리

07 보조기억장치

08 입출력장치

입출력장치가 다루기 까다로운 이유
종류가 너무 많음
따라서 속도, 데이터, 전송형식 등도 다양함
따라서 다양한 입출력장치와 정보를 주고 받는 방식을 규격화하기가 어려움
일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮음
전송률(transfer rate) 차이로 인해 CPU와 메모리, 입출력장치 간의 통신이 어려움
장치 컨트롤러(device controller = I/O controller(입출력 제어기) = I/O module(입출력 모듈)) : 입출력장치를 컴퓨터에 연결해주는 하드웨어
역할
CPU와 입출력장치 간의 통신 중개
오류 검출
데이터 버퍼링(data buffering) : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법. 쉽게 말해 버퍼에 데이터를 조금씩 모았다가 한꺼번에 내보내거나, 데이터를 한 번에 많이 받아 조금씩 내보내는 방법
구조
데이터 레지스터(data register) : CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터. 버퍼 역할을 함
최근 주고받는 데이터가 많은 입출력 장치에서는 레지스터 대신 RAM을 사용하기도 함
상태 레지스터(status register) : 입출력장치가 입출력 작업을 할 준비가 되었는지, 입출력 작업이 완료되었는지, 입출력장치에 오류는 없는지 등의 상태 정보가 저장됨
제어 레지스터(control register) : 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장함
상태 레지스터와 제어 레지스터는 하나의 레지스터(상태/제어 레지스터)로 사용되기도 함
장치 드라이버(device driver) : 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
프로그램이기에 실행 과정에서 메모리에 올라감
장치 드라이버를 인식하고 실행하는 주체는 정확히 말하자면 윈도우, macOS와 같은 운영체제임
따라서 드라이버를 운영체제가 기본으로 제공하는 것도 있고, 장치 메이커가 따로 제공하는 것도 있음. 후자의 경우 해당 드라이버를 직접 설치해야만 사용이 가능함