[CS] 장치 컨트롤러와 장치 드라이버 읽기

정은아·2024년 1월 12일
post-thumbnail

입출력장치는 컴퓨터 외부에 연결되는 장치를 말한다. 어떻게 연결되어있을까?
장치 컨트롤러와 장치 드라이버에 대해 알아보자!

장치 컨트롤러(device controller)

  • 컴퓨터 내부와 정보를 주고받는 하드웨어 부품. 입출력 제어기(I/O controller), 입출력모듈((I/O module) 이라고도 함.
  • 다양한 입출력장치들로 인해서 CPU와 정보를 주고받는 형식 규격화 어려움.
  • CPU의 전송률에 비해 입출력장치들의 전송률은 매우 낮다.
  • 이러한 이유들로 인해서 CPU와 입출력장치는 장치 컨트롤러를 통해서 명령어를 수행함.
  • 데이터의 교환 속도를 전송률(transfer rate)이라고 한다.

장치 컨트롤러의 역할

  1. CPU와 입출력장치 간의 통신 중계
  2. 오류 검출
  3. 데이터 버퍼링
    • 버퍼링(buffering)이란? 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여 전송률의 균형을 맞추는 방식.

장치 컨트롤러의 내부

  1. 데이터 레지스터(data register)
    • CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터. 버퍼 역할을 하는 레지스터.
  2. 상태 레지스터(status register)
    • 입출력장치의 주요 상태 정보들이 저장되는 레지스터.
  3. 제어 레지스터(control register)
    • 입출력장치가 수행할 내용에 대한 정보와 명령이 저장되는 레지스터.

장치 드라이버(device driver)

  • 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램.
  • 장치 드라이버를 인식하고 실행하는 주체는 운영체제(윈도우, macOS 등).
  • 장치 드라이버는 운영체제가 기본적으로 제공하는 것도 있지만, 장치 제작자가 따로 제공하기도 한다.
    • 이 경우, 입출력장치는 해당 드라이버를 직접 설치해야만 사용 가능하다.
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글