관리 메뉴

나만을 위한 블로그

[혼공컴운] 8. 입출력장치 본문

책/혼자 공부하는 컴퓨터 구조 + 운영체제

[혼공컴운] 8. 입출력장치

참깨빵위에참깨빵 2023. 12. 25. 20:43
728x90
반응형

입출력장치는 CPU, 메모리보다 다루기가 까다롭다. 이유는

 

  • 입출력장치 종류가 너무 많음. 그래서 장치마다 속도, 데이터 전송 형식도 다양해서 정보 주고받는 방식 규격화가 어려움
  • 일반적으로 CPU, 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮음

 

그래서 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러 하드웨어로 연결됨. 장치 컨트롤러는 입출력 제어기, 입출력 모듈 등으로도 불림

장치 컨트롤러는 아래 역할을 통해 위 문제들을 해결함

 

  • CPU, 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링

 

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

장치 컨트롤러에서 기억해야 할 것 : 데이터 레지스터, 상태 레지스터, 제어 레지스터

 

  • 데이터 레지스터 : CPU, 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
  • 장치 레지스터 : 작업 준비 여부, 입출력장치 오류 여부 등의 상태가 저장됨
  • 제어 레지스터 : 입출력장치가 수행할 내용에 대한 제어 정보, 명령 저장

 

장치 드라이버

 

장치 컨트롤러의 동작을 감지, 제어해서 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 되는 프로그램

 

다양한 입출력 방법

 

프로그램 입출력 : 프로그램 속 명령어로 입출력장치를 제어하는 방법. CPU가 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하며 입출력작업을 수행함

 

메모리 맵 입출력

 

메모리에 접근하기 위한 주소 공간, 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법

이 방식에서 CPU는 메모리 주소들이나 장치 컨트롤러의 레지스터들이나 모두 똑같이 메모리 주소처럼 취급함

 

고립형 입출력

 

메모리를 위한 주소 공간, 입출력장치를 위한 주소 공간을 분리하는 방법

 

인터럽트 기반 입출력

 

입출력장치에 의한 하드웨어 인터럽트는 장치 컨트롤러에 의해 발생한다. 이렇게 인터럽트를 기반으로 하는 입출력을 인터럽트 기반 입출력이라고 함

 

DMA 입출력

 

DMA : 입출력장치, 메모리가 CPU를 안 거치고도 상호작용할 수 있는 입출력 방식. 직접 메모리에 접근 가능한 입출력 기능

DMA 입출력을 하려면 시스템 버스에 연결된 DMA 컨트롤러 하드웨어가 필요함

반응형
Comments