새소식

Computer Science/Computer Architecture

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

  • -

 

본 게시물은 ‘강민철, ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022’ 을 인용하였습니다.

 

장치 컨트롤러

  • 입출력장치가 CPU, 메모리보다 다루기 까다로운 이유
    1. 입출력장치의 종류가 너무 많음
      • 장치마다 속도, 데이터, 전송 형식 등 다양
      • 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어려움
    2. 일반적으로 CPU, 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮음
      • 전송률(transfer rate) : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
      • 전송률의 차이가 CPU와 메모리, 입출력장치 간의 통신을 어렵게 함
  • 장치 컨트롤러(device controller) : 입출력장치가 컴퓨터에 직접 연결되지 않고 장치 컨트롤러를 통해 연결되어 컴퓨터 내부와 정보를 주고받음
    • 입출력 제어기(I/O controller), 입출력 모듈(I/O module) 등 다양하게 불림

 

장치 컨트롤러의 기능

  1. CPU와 입출력 장치 간의 통신 중개 : 정보 규격화가 어려웠던 문제를 장치 컨트롤러가 일종의 번역가 역할을 수행해 해결
  2. 오류 검출 : 자신과 연결된 입출력장치에 문제는 없는지 오류를 검출하기도 함
  3. 데이터 버퍼링 : 일반적으로 전송률이 높은 CPU와 전송률이 낮은 입출력장치와의 전송률 차이 완화
    • 버퍼링(buffering) : 전송률이 높은 장치, 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 공간에 저장해 전송률을 비슷하게 맞추는 방법
      • 즉, 버퍼에 데이터를 조금씩 모았다가 한꺼번에 보내거나, 데이터를 한 번에 많이 받아 조금씩 내보내는 방법

 

장치 컨트롤러의 내부 구조

  • 데이터 레지스터(data register) : CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
    • 버퍼 역할
    • 최근 주고받을 데이터 많은 입출력장치에서는 레지스터 대신 RAM을 사용하기도 함
  • 상태 레지스터(status register) : 입출력 장치가 입출력 작업 할 준비 되었는지, 작업이 완료되었는지, 오류는 없는 지 등의 상태 정보 저장
  • 제어 레지스터(control register) : 입출력장치가 수행할 내용에 대한 제어 정보와 명령 저장
  • 위의 레지스터들에 담긴 값들은 버스를 타고 CPU나 다른 입출력장치로 전달되기도, 장치 컨트롤러에 연결된 입출력장치로 전달되기도 함

 

 

 

장치 드라이버

  • 장치 컨트롤러의 동작을 감지/제어해 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
  • 프로그램이기에 실행 과정에서 메모리에 저장
  • 장치 컨트롤러가 입출력장치를 연결하기 위한 하드웨어적인 통로라면,
    장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적인 통로
  • 새로운 장치를 컴퓨터에 연결하려면 장치 드라이버를 설치해야 함
  • 장치 드라이버를 인식하고 실행하는 주체는 운영체제
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.