Machineboy空
입출력장치 ① 장치 컨트롤러와 장치 드라이버 본문
입출력장치 - CPU의 정보 주고 받기
입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다롭다.
- 입출력장치 종류가 너무 많아서 컴퓨터 내부와 정보를 주고 받는 방식을 규격화 하기 힘들다.
- CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
- 물론 CPU나 메모리 등 보다 훨씬 빠른 속도의 입출력장치도 있다.
장치 컨트롤러
이런 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다
장치 컨트롤러의 역할
- CPU와 입출력장치 간의 통신 중개
- 일종의 번역가 역할
- 입출력장치와 CPU의 정보 주고 받는 형식이 규격화하기 어렵다는 단점을 극복.
- 오류 검출
- 입출력장치에 어떤 문제가 있진 않은지
- 데이터 버퍼링
- *버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
장치 컨트롤러의 구조
데이터 레지스터 | CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터(버퍼) RAM을 사용하기도 한다. *최근에는 입출력장치도 주고받을 데이터가 너무나도 많아졌기 때문에 데이터 레지스터 대신 RAM하드웨어 쓰기도 함. |
상태 레지스터 | 상태정보 저장 - 입출력 장치가 입출력 작업을 할 준비가 되었는지, - 입출력 작업이 완료되었는지, - 입출력장치에 오류는 없는지 등의 상태 정보 |
제어 레지스터 | 입출력 장치가 수행할 내용에 대한 제어 정보 |
장치 드라이버
장치 컨트롤러의 동작을 감지하고 제어하는 프로그램.
장치 컨트롤러가 입출력장치를 연결하기 위한 하드웨어적인 통로라면,
장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적인 통로
'Computer > CS' 카테고리의 다른 글
(참고) ATmega128 GPIO 레지스터 직접 조작하며 입출력해보기 (0) | 2024.01.11 |
---|---|
입출력장치 ② 다양한 입출력 방법 - 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 (1) | 2024.01.10 |
보조기억장치 ② RAID Level (1) | 2024.01.09 |
보조기억장치 ① 하드디스크와 플래시 메모리, Garbage Collection (2) | 2024.01.09 |
메모리 ③ 캐시 메모리, 참조 지역성(Locality of Reference)의 원리 (1) | 2024.01.08 |