[C.A]I/O 장치

touhou09·2024년 11월 17일
0

컴퓨터 이론

목록 보기
14/47

장치 컨트롤러

IO장치에는 많은 종류가 있다.
이들은 각각 속도, 데이터, 전송 형식을 가지고 있으며 데이터 전송에 대해 규격화를 하기 어렵다라는 특징을 가지고 있다.
또한 일반적으로 CPU와 memory에 비해 데이터 전송률이 낮다는 특징도 가지고 있다.

위와 같은 특징들 때문에 I/O 장치들은 컴퓨터에 직접 연결되는 것이 아닌 device controller라는 hardware를 통해 연결된다.
device controller는 I/O controller, I/O module 등으로 부르기도 한다.

device controller는 컴퓨터 내부와 정보를 주고받도록 하고 하나 이상의 입출력 장치와 연결되어 있다. HDD도 자신의 device controller가 있다.

대표적으로 아래와 같은 문제들을 해결하는데 사용된다.

  • CPU와 입출력 장치 간의 통신 중게
  • 오류 검출
  • 데이터 버퍼링

I/O device 종류가 많아 규격화가 어려운 문제는 device controller가 일종의 번역기 역할을 하면서 해결할 수 있고, 그 과정에서 I/O device에 문제는 없는지 오류를 검출하기도 한다.

Data buffering이란 전송률이 높은 장비와 낮은 장비 간에 주고 받는 데이터를 buffer라 부르는 임시 전송 공간에 저장하여 전송률을 맞추는 방식이다.
buffering은 쉽게 말하면 buffer에 조금씩 데이터를 모아 한번에 내보내거나, 한번에 많은 데이터를 입력받아 조금씩 내보내는 방법이라고 보면 된다.

device controller는 data register, status register, control register 세 가지로 구성된다.

  • data register
    CPU와 I/O device 사이에 주고받을 데이터가 담기는 register로 data buffering으로 전송률 차이를 완화하는 buffer 역할을 한다.
    최근 주고받는 데이터가 많은 I/O 장치에서는 RAM을 사용하기도 한다.
  • status register
    I/O장치가 입출력 작업을 할 준비가 되었는지, I/O 작업이 완료되었는지 오류 판별 등 상태 정보를 저장한다.
  • control register
    I/O 장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.

Device driver

새 장치를 컴퓨터에 연결하려면 device driver를 설치해야 한다.
device driver란 device controller의 동작을 감지하고 제어함으로써 device controller와 컴퓨터 간에 정보를 주고받을 수 있게 하는 프로그램이다.
당연시 실행과정에서 메모리에 저장되기도 한다.
IO 장치를 연결하기위한 software적인 통로이다.

profile
Engineer가 되기 위하여

0개의 댓글