CS/컴퓨터 구조

[컴퓨터 구조] 8-2 다양한 입출력 방법

서니션 2024. 8. 15. 16:55
이 글을 혼자 공부하는 컴퓨터구조 + 운영체제 (한빛미디어) 책을 읽고 혼자 공부한 내용입니다.
잘못 이해한 부분이 있을 수 있고, 문제가 있는 부분 댓글로 알려주시면 수정하겠습니다.

 

프로그램 입출력

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

입출력장치에 연결된 장치 컨트롤러와 상호작용

 

'프로그램 입출력 방식' 에서의 입출력 작업은 CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어짐

 

메모리 맵 입출력

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

 

 

1024개의 주소를 표현할 수 있는 컴퓨터가 있을 때

512개는 메모리 주소, 나머지 512개는 장치 컨트롤러의 레지스터를 표현하기 위해 사용하는 것

 

메모리 접근 명령여 == 입출력장치 접근 명령어

 

고립형 입출력

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

 

활성화 될 때만 접근하면 됨

 

정리

메모리 맵 입출력 고립형 입출력
메모리와 입출력장치는 같은 주소 공간 사용 메모리와 입출력장치는 분리된 주소 공간 사용
메모리 주소 공간이 축소됨 메모리 주소 공간이 축소되지 않음
메모리와 입출력장치에 같은 명령어 사용 가능 입출력 전용 명령어 사용

 


인터럽트 기반 입출력

하드웨어 인터럽트는 장치 컨트롤러에 의해 발생

 

PIC (Programmable Interrupt Controller) 라는 하드웨어 사용

여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별

CPU에 지금 처리해야 할 하드웨어 인터럽트는 무엇인지를 알려주는 장치


DMA 입출력

 

CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식

DMA 입출력을 하기 위해서는 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어 필요

입출력 버스는 입출력 장치와 컴퓨터 내부를 연결 짓는 통로