장치 컨트롤러 (device controller)
▷ Device controller가 필요한 이유?
- I/O device의 종류가 너무 많다.
- 일반적으로 CPU와 메모리의 데이터 전송률은 높지만, I/O device의 데이터 전송률은 낮다.
--> I/O device는 컴퓨터에 직접 연결되지 않고 device controller라는 하드웨어를 통해 연결된다.
▷ Device controller의 역할:
- CPU와 I/O device 간의 통신 중개
- 오류 검출
- 데이터 버퍼링
**버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여, 전송률을 비슷하게 맞추는 방법이다. 즉, 버퍼에 데이터를 조금씩 모았다가 한꺼버내 내보내거나, 데이터를 한 번에 많이 받아 조금씩 내보내는 방법이다.
▶ Device controller의 내부 구조
- Data register: CPU와 I/O device 사이에 주고받을 데이터가 담기는 레지스터
- State register: I/O device가 입출력 작업을 할 준비가 되었는지, 입출력 작업이 완료되었는지, I/O device에 오류는 없는지 등의 상태 정보가 저장된다.
- Command register: I/O device가 수행할 내용에 대한 제어 정보와 명령을 저장한다.
--> 이 레지스테들에 담긴 값들이 bus를 타고 CPU나 다른 I/O device로 전달되기도 하고, device controller에 연결된 I/O device로 전달된다.
장치 드라이버 (device driver)
: Device controller의 동작을 감지하고, 제어함으로써 device controller가 내부와 정보를 주고받을 수 있게 하는 프로그램
--> 프로그램이기 때문에, 메모리에 저장된다.
- Device controller: CPU와 I/O device를 연결하기 위한 하드웨어적인 통로
- Device driver: Device controller를 I/O device와 연결하기 위한 소프트웨어적인 통로
'Computer Architecture > 컴퓨터구조[01]' 카테고리의 다른 글
[혼자 공부하는 컴퓨터구조] 07-2. RAID의 정의와 종류 (1) | 2023.12.04 |
---|---|
[혼자 공부하는 컴퓨터구조] 08-2. 다양한 입출력 방법 (1) | 2023.12.04 |
[컴퓨터구조] 1129 (2) (0) | 2023.11.29 |
[컴퓨터구조] 1129 (1) (0) | 2023.11.29 |
[혼자 공부하는 운영체제] 09-2. 운영체제의 큰 그림 (0) | 2023.11.29 |