입출력장치가 CPU, 메모리보다 다루기 까다로운 이유
- 입출력장치는 종류가 너무 많음 (즉, 정보를 주고받는 방식을
규격화하기 어려움
)
- 일반적으로 CPU와 메모리의 전송률은 높지만 입출력장치의 데이터 전송률은 낮음 (전송률의 차이는 통신을 어렵게 함)
전송률
: 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표
그래서, 입출력장치는 컴퓨터에 직접 연결하지 않고 장치 컨트롤러라는 하드웨어를 통해 연결함
모든 입출력장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받음 (장치 컨트롤러는 하나 이상의 입출력장치와 연결됨)
장치 컨트롤러의 역할
- CPU와 입출력장치 간의
통신중개
규격화하기 어렵던 문제를 장치 컨트롤러가 번역가 역할을 수행해서 해결- 오류 검출
번역하는 과정에서 문제가 없는지 오류 검출- 버퍼링
버퍼
라는 임시 저장 공간을 활용해서 전송률 차이를 완화시킴
장치 컨트롤러의 구조
- 데이터 레지스터
- CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터 (버퍼 역할)
- 데이터 레지스터 대신 RAM을 사용하기도 함
- 상태 레지스터
- 상태 정보 저장
- 입출력장치가 입출력 작업을 할 준비가 되었는가?
- 입출력 작업이 완료되었는가?
- 입출력장치에 오류는 없는지 등의 상태 정보
- 제어 레지스터
- 입출력장치가 수행할 내용에 대한 제어 정보
장치 드라이버
- 장치 컨트롤러의 동작을 감지하고 제어하는
프로그램
- 운영체제가 연결된 장치의 드라이버를 인식하고 실행할 수 있다면 컴퓨터 내부와 정보를 주고받을 수 있음
📝정리
장치 컨트롤러
: 입출력장치를 연결하기 위한
하드웨어적인 통로
장치 드라이버
: 입출력장치를 연결하기 위한
소프트웨어적인 통로
<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.04.30)
책과 강의를 통해 학습한 내용을 요약 정리했습니다.