본문 바로가기
책/혼공 컴퓨터구조+운영체제

컴퓨터 구조 - 장치 컨트롤러, 장치 드라이버

by 코딩하는 돼징 2023. 12. 6.
반응형

입출력 장치는 CPU, 메모리보다 다루기 어렵다. 

01 입출력 장치에는 종류가 너무나도 많다(Diversity)

매우 다양한 종류가 존재한다. 각 장치는 다양한 속도, 데이터 전송 형식등을 가지고 있다. 이러한 다양성으로 인해 각 장치와 정보를 주고 받는 방식을 규격화하기 어렵다. CPU와 메모리는 특정한 규격에 따라 동작하며 데이터를 주고 받지만 입출력 장치는 다양한 특성을 가지고 있어 통일된 방식으로 처리하기 어렵다.

출처 : https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard


02 전송률 차이

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

전송률(transfer rate)이란

데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표이다. CPU와 메모리처럼 전송률이 높은 장치는 1초에도 수 많은 데이터를 주고 받을 수 있지만 키보드나 마우스와 같이 상대적으로 전송률이 낮은 장치는 같은 시간 동안 데이터를 조금씩만 주고 받을 수 있다.

출처 : https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

1초에 1000마디를 내뱉는 사람과 1초에 한 마디를 내뱉는 사람끼리 제대로 대화하기란 어렵다. 그러므로 전송률의 차이는 CPU와 메모리, 입출력장치 간의 통신을 어렵게 한다.

입출력 장치는 CPU나 메모리보다 전송률이 높은 경우도 있다. 하지만 결과적으로 CPU나 메모리와 전송률이 비슷하지 않기 때문에 같은 어려움을 겪게 된다.


장치 컨트롤러 

입출력 장치는 CPU와 메모리보다 처리 속도가 낮으며 다양한 종류가 있기 때문에 이들과 효율적으로 통신하기 어렵다. 이러한 어려움을 해결하기 위해 입출력 장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 를 통해 연결된다. 장치 컨트롤러는 여러 명칭으로 불리며 입출력 제어기(I/O Controller), 입출력 모듈(I/O Module)등으로 다양하게 불리기도 한다.

 

모든 입출력 장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받고 장치 컨트롤러는 하나 이상의 입출력 장치와 연결되어 있다. 예를 들어 하드 디스크 또한 장치 컨트롤러가 있다.


장치 컨트롤러 역할

01 CPU와 입출력장치 간의 통신 중개

종류가 많아 정보 규격화가 어려웠던 문제는 장치 컨트롤러가 일종의 번역가 역할을 함으로써 해결된다.

02 오류 검출

그 과정에서 장치 컨트롤러는 자신과 연결된 입출력 장치에 문제는 없는지 오류를 검출하기도 한다.

03 데이터 버퍼링

버퍼링이란 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법이다. 쉽게 말해 버퍼링은 버퍼에 데이터를 조금씩 모았다가 한꺼번에 내보내거나 데이터를 한 번에 많이 받아 조금씩 내보내는 방법이라고 보면된다.

출처 : https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

즉 장치 컨트롤러는 일반적으로 전송률이 높은 CPU와 일반적으로 전송률이 낮은 입출력 자잋와의 전송률 차이를 데이터 버퍼링으로 완화된다.


장치 컨트롤러의 간략화된 내부

장치 컨트롤러는 입출력 버스에 연결이 된다. 정보를 주고 받는 정보엔느 데이터, 상태, 제어 각각 레지스터에 담기게 된다. 

 

 

01 데이터 레지스터 

CPU와 입출력 장치 사이에 주고 받을 데이터가 담기는 레지스터이다. 이는 데이터를 임시로 저장하는 버퍼 역할을 한다. RAM을 사용하기도한다.

02 상태 레지스터

상태 정보 저장하는 레지스터이다.

- 입출력 장치가 입출력 작업을 할 준비가 되었는지

- 입출력 작업이 완료되었는지

- 입력 장치에 오류는 없는지 등의 상태 정보

03 제어 레지스터

입출력 장치가 수행할 내용에 대한 제어 정보를 저장하는 레지스터이다.


장치 드라이버(Device Driver)

장치 컨트롤러의 동작을 감지하고 제어하는 프로그램으로 입출력 자잋와 컴퓨터간의 상호 작용을 중재한다. 이는 하드웨어적인 통로인 장치 컨트롤러가 컴퓨터에 연결된 입출력 자잋를 효과적으로 제어할 수 있도록 소프트웨어적인 통로를 제공하는 역할을 한다.

출처 : https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

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

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

 

 

 

참고 :  본 내용은개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제강의를 수강하여 작성하였습니다. https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard 

 

 

 

 

반응형

댓글