북 스터디/혼자 공부하는 컴퓨터구조 + 운영체제

장치 컨트롤러와 장치 드라이버

EnoughTT 2023. 11. 1. 12:21

장치 컨트롤러와 장치 드라이버

 

장치 컨트롤러

CPU, 메모리보다 다루기가 더까다로움

  • 입출력장치에는 종류가 너무 많음
    • 키보드, 모니터, USB 메모리, SSD, 마우스 등 많음
    • 장치마다 속도, 데이터 전송 형식 등도 다양하기 때문에 입출력장치와 정보를 주고받는 방식을 규격화하기 어려움
  • 입출력장치의 데이터 전송률은 낮음
    • 전송률: 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
    • CPU나 메모리와 전송률이 비슷하지 않기 때문에 통신이 어려움

 

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

 

 

장치 컨트롤러의 역할

  • CPU와 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링
    • 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법

 

 

장치 컨트롤러 내부

  • 데이터 레지스터: CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
    • 버퍼 역할 (전송률 차이 완화), RAM을 사용하기도 함
  • 상태 레지스터: 입출력장치가 입출력 작업을 할 준비가 되었는지, 입출력 작업이 완료되었는지, 입출력장치에 오류는 없는지 등의 상태 정보가 저장
  • 제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장

 

 

장치 드라이버

컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램

실행 과정에서 메모리에 저장됨

장치 컨트롤러가 입출력장치를 연결하기 위한 하드웨어적인 통로라면, 장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적인 통로