본문 바로가기
Computer Architecture/컴퓨터구조[01]

[혼자 공부하는 컴퓨터구조] 08-1. 장치 컨트롤러와 장치 드라이버

by leziwn.cs 2023. 12. 4.
장치 컨트롤러 (device controller)

▷ Device controller가 필요한 이유?

  • I/O device의 종류가 너무 많다.
  • 일반적으로 CPU와 메모리의 데이터 전송률은 높지만, I/O device의 데이터 전송률은 낮다.

--> I/O device는 컴퓨터에 직접 연결되지 않고 device controller라는 하드웨어를 통해 연결된다.

 

▷ Device controller의 역할:

  • CPU와 I/O device 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링
    **버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여, 전송률을 비슷하게 맞추는 방법이다. 즉, 버퍼에 데이터를 조금씩 모았다가 한꺼버내 내보내거나, 데이터를 한 번에 많이 받아 조금씩 내보내는 방법이다.

버퍼링(buffering)

 

▶ Device controller의 내부 구조

Device controller의 내부 구조

  • Data register: CPU와 I/O device 사이에 주고받을 데이터가 담기는 레지스터
  • State register: I/O device가 입출력 작업을 할 준비가 되었는지, 입출력 작업이 완료되었는지, I/O device에 오류는 없는지 등의 상태 정보가 저장된다.
  • Command register: I/O device가 수행할 내용에 대한 제어 정보와 명령을 저장한다.

--> 이 레지스테들에 담긴 값들이 bus를 타고 CPU나 다른 I/O device로 전달되기도 하고, device controller에 연결된 I/O device로 전달된다.

 

 

장치 드라이버 (device driver)

: Device controller의 동작을 감지하고, 제어함으로써 device controller가 내부와 정보를 주고받을 수 있게 하는 프로그램

--> 프로그램이기 때문에, 메모리에 저장된다.

  • Device controller: CPU와 I/O device를 연결하기 위한 하드웨어적인 통로
  • Device driver: Device controller를 I/O device와 연결하기 위한 소프트웨어적인 통로

장치 드라이버 (device driver)