본문 바로가기
CS/컴퓨터구조와운영체제

장치 컨트롤러와 장치 드라이버

by cariño 2023. 7. 1.
728x90
반응형

입출력장치: 스피커, 마우스, 스피커 등등

어떻게 컴퓨터 내부와 데이터를 주고 받는 것일까?

 

보조기억장치도 메모리를 보조한다는 차이점을 가지고 있을 뿐 입출력장치의 한 종류로 볼수있다. 

장치 컨트롤러는 메모리보다 다루기 더 까다롭다.

왜일까?

 

 

장치 컨트롤러

 

 

1. 입출력장치의 종류는 너무나도 다양하다. 

장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다. 

다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다.

 

2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다. 

CPU는 주변장치와 데이터를 주고받을 때 1초에도 수많은 데이터를 주고 받지만, 입출력장치는 1초에도 데이터를 주고 받는 속도가 느리다.  전송률의 차이때문에 다소 다루기 어려운 부분이 있다. 

(일반적인 입출력장치의 전송률 기준)

 

 

이러한 이유들 때문에 등장한 것이 '장치 컨트롤러'이다.

 

장치 컨트롤러는 하드웨어이다. 입출력장치가 CPU를 비롯한 컴퓨터 내부와 정보를 주고받기 위해서는 장치컨트롤러라는 하드웨어를 통해서 정보를 주고 받는다.  모든 입출력장치는 하나 이상의 장치 컨트롤러와 연결되어 있고 장치컨트롤러 하나에도 여러개의 입출력장치가 연결되어 있을 수 있다.

 

 

[장치 컨트롤러의 역할]

  • CPU와 입출력장치 간의 통신 중개 (일종의 번역 수행)
    • 입출력장치의 종류가 너무나도 많아 정보를 주고받는 방식을 규격화하기 어렵기 때문
  • 오류검출
    • 입출력장치의 연결에 문제가 있지 않은지 확인
  • 데이터버퍼링
    • 버퍼링: 전송률이 높은 장치와 낮은 장치사이에 주고받는 데이터를 '버퍼'라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법 (전송률의 차이를 완화시킨다)
    • ex)

CPU 로 받은 데이터를 버퍼에 저장하여 비교적 전송률이 낮은 입출력 장치에게는 조금, 조금씩 데이터를 전송 (입출력장치의 데이터 전송률에 맞춰서 전송)   /  데이터를 모았다가 전송률이 높은 CPU에 한꺼번에 내보내는 방식

 

 

 

[장치 컨트롤러의 구조]

 

장치컨트롤러는 시스템버스에 연결되서 데이터, 상태, 제어 정보를 주고 받는다. 

 

데이터레지스터

  • 말그대로 CPU와 입출력사이에 주고받을 데이터가 담긴다. (버퍼의 역할을 한다고 보면된다. )
  • 최근에는 입출력장치도 주고받아야하는 데이터가 많아져서 램 하드웨어로 사용한다. 

상태 레지스터

  • 입출력장치가 입, 출력을 할 준비가 되었는지?
  • 다른 작업을 진행중인지?
  • 입출력작업의 완료가 되었는지?
  • 입출력장치에 오류는 없는지에 대한 상태 정보

제어 레지스터

  • 입출력장치가 수행할 내용에 대한 제어 정보

 

 


 

 

 

장치 드라이버

 

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

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

장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적 통로로 하드웨어와 밀접하게 연관되고 해당 장치를 제어하는 프로그램이다.

 

 

 

외부에서 새로운 장치를 구입해서 컴퓨터에 연결하려고 할 때 장치 드라이버는 장치 드라이버 설치에 대한 작업을 컴퓨터가 인식하고 사용할 수 있게 한다. 

 

장치드라이버를 통해 CPU가 장치컨트롤러를 어떻게 동작시키는지에 대한 정보를 알 수있게 된다.

 

 

 

[장치드라이버의 동작 여부]

- 컴퓨터가 연결된 장치의 드라이버를 인식하고 실행할 수 있다면 컴퓨터 내부와 정보를 주고 받을 수 있다.

- 반대로 컴퓨터가 장치 드라이버 인식하거나 실행 할 수 없다면 해당 장치는 컴퓨터 내부와 정보를 주고 받을 수 없게 된다. 

- 실은 장치 드라이버를 인식하고 실행하는 주체는 운영체제이다. 

 

 

728x90

'CS > 컴퓨터구조와운영체제' 카테고리의 다른 글

운영체제란 무엇인가?  (0) 2023.08.05
다양한 입출력 방법  (0) 2023.07.01
RAM의 특성과 종류  (0) 2023.06.06
컴퓨터구조_빠른 CPU 설계 기법  (0) 2023.05.20
CPU 내부 구성  (0) 2023.05.17

댓글