→ 앞서 게시한 CPU와 메모리보다 다루기가 더 까다롭다..
- 입출력장치에는 종류가 너무나도 많다.
- 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
모든 입출력 장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받고, 장치 컨트롤러는 하나 이상의 입출력장치와 연결되어 있다.
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 234쪽
하드 디스크의 장치 컨트롤러
- CPU와 입출력장치 간의 통신 중개 → CPU와 레지스터의 데이터가 무조건 거치게 된다
- 오류 검출
- 데이터 버퍼링 → 참 많이 들어본 키워드 ..
버퍼링 → 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 235쪽
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 235쪽
버스 → 데이터들이 움직이는 통로로 앞에서 공부했다.
데이터 레지스터 → CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
상태 레지스터 → 입출력장치가 입출력 작업을 할 준비가 되었는지, 완료되었는지, 오류는 없는지 등 상태 정보를 저장하는 레지스터
제어 레지스터 → 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장하는 레지스터
장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램 → 가끔.. 새로 산 키보드를 연결할때 설치되는 녀석들이 얘넨가..?
프로그램 입출력(PROGRAMMED I/O)
기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령을 보낸다.
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
하드 디스크 컨트롤러는 하드 디스크 상태를 확인하고 준비된 상태이면 상태 레지스터에 준비되었다고 표시한다.
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 241쪽
백업할 메모리의 정보를 데이터 레지스터에 쓴다. 쓰기가 끝나면 작업을 종료한다.
메모리 맵 입출력(MEMORY-MAPPED I/O)
→ 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법
고립형 입출력(ISOLATED I/O)
→ 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, 244쪽
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, ~244쪽