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

Woong·2022년 12월 23일
0

컴퓨터 구조

목록 보기
15/15

입출력장치

→ 앞서 게시한 CPU와 메모리보다 다루기가 더 까다롭다..

  1. 입출력장치에는 종류가 너무나도 많다.
  2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.

장치 컨트롤러

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

출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 234쪽
하드 디스크의 장치 컨트롤러

장치 컨트롤러의 역할

  1. CPU와 입출력장치 간의 통신 중개 → CPU와 레지스터의 데이터가 무조건 거치게 된다
  2. 오류 검출
  3. 데이터 버퍼링 → 참 많이 들어본 키워드 ..

데이터 버퍼링

버퍼링 → 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법

출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 235쪽

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


출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 235쪽
버스 → 데이터들이 움직이는 통로로 앞에서 공부했다.
데이터 레지스터 → CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
상태 레지스터 → 입출력장치가 입출력 작업을 할 준비가 되었는지, 완료되었는지, 오류는 없는지 등 상태 정보를 저장하는 레지스터
제어 레지스터 → 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장하는 레지스터

장치 드라이버

장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램 → 가끔.. 새로 산 키보드를 연결할때 설치되는 녀석들이 얘넨가..?

장치 컨트롤러와 CPU는 어떻게 정보를 주고 받을까 ??

프로그램 입출력(PROGRAMMED I/O)

기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법

출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령을 보낸다.

출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
하드 디스크 컨트롤러는 하드 디스크 상태를 확인하고 준비된 상태이면 상태 레지스터에 준비되었다고 표시한다.
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
백업할 메모리의 정보를 데이터 레지스터에 쓴다. 쓰기가 끝나면 작업을 종료한다.

메모리 맵 입출력(MEMORY-MAPPED I/O)
→ 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법

고립형 입출력(ISOLATED I/O)
→ 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법


출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 244쪽


출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, ~244쪽

profile
공부하는 주니어 개발자

0개의 댓글