Machineboy空

입출력장치 ① 장치 컨트롤러와 장치 드라이버 본문

Computer/CS

입출력장치 ① 장치 컨트롤러와 장치 드라이버

안녕도라 2024. 1. 10. 10:39

보조기억장치 = 메모리를 보조한다는 특수한 역할을 입출력장치


입출력장치 - CPU의 정보 주고 받기

 

입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다롭다.

 

  • 출력장치 종류가 너무 많아서 컴퓨터 내부와 정보를 주고 받는 방식을 규격화 하기 힘들다.
  • CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
    • 물론 CPU나 메모리 등 보다 훨씬 빠른 속도의 입출력장치도 있다.


장치 컨트롤러

 

이런 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다

장치 컨트롤러(하드웨어) == 입출력 제어기 == 입출력 모듈


장치 컨트롤러의 역할

  • CPU와 입출력장치 간의 통신 중개 
    • 일종의 번역가 역할
    • 입출력장치와 CPU의 정보 주고 받는 형식이 규격화하기 어렵다는 단점을 극복.
  • 오류 검출
    • 입출력장치에 어떤 문제가 있진 않은지
  • 데이터 버퍼링
    • *버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
     


장치 컨트롤러의  구조

 

데이터 레지스터 CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터(버퍼)

RAM을 사용하기도 한다.
*최근에는 입출력장치도 주고받을 데이터가 너무나도 많아졌기 때문에 데이터 레지스터 대신 RAM하드웨어 쓰기도 함.
상태 레지스터 상태정보 저장
- 입출력 장치가 입출력 작업을 할 준비가 되었는지,
- 입출력 작업이 완료되었는지,
- 입출력장치에 오류는 없는지 등의 상태 정보
제어 레지스터 입출력 장치가 수행할 내용에 대한 제어 정보

장치 드라이버

 

장치 컨트롤러의 동작을 감지하고 제어하는 프로그램.

 

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

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

 

장치 컨트롤러를 감지하고 실행하기 위한 것, 컴퓨터에게 그 방법을 알려주는 것