컴퓨터 공학
I/O 방식
삼전동해커
2020. 10. 4. 20:56
I/O를 관리하기 위해서 CPU를 통해 관리하는 방법을 사용해 왔다.
하지만 이러한 인터럽트 방식은 CPU 연산에 방해가 된다.
CPU와 독립적으로 작동하기 위해 DMA 방식과 I/O processor 방식을 사용한다.
먼저 CPU를 사용해 관리하는 방법은 프로그램에 의한 I/O와 인터럽트에 의한 I/O 방식이 존재한다.
프로그램에 의한 I/O는 메모리에 있는 명령을 이용해 CPU를 거쳐 I/O를 받는다.
polling 방식을 이용하기 때문에 프로세서의 시간을 낭비하고 효율이 떨어진다.
polling 방식이란 하드웨어 장치의 레지스터를 주기적으로 읽는 방법이다. 주기적으로 실행되기 때문에 효율성이 떨어진다.
인터럽트에 의한 I/O는 CPU에 인터럽트를 걸어 진행중이던 작업을 중단하고 인터럽트를 처리하는 방식이다.
Direct Memory Access
많은 양의 데이터를 이동해야 한다면 CPU에게 많은 인터럽트를 걸게 되므로 오버헤드가 발생한다. 오버헤드를 줄이기 위해 CPU의 개입 없이 I/O와 메모리 사이에 데이터를 이동하도록 것을 DMA라고 한다.
DMA의 종류는
1.Cycle Stealing : DMA와 CPU가 버스(bus)를 공유하는 방식. CPU가 버스를 사용하지 않을 때만 접근한다.
2.Brust Mode : DMA가 버스를 점유. 동작 완료 후 버스 반납.
I/O processor
I/O 채널이라고도 하는 방식으로 CPU나 DMA대신 독립된 입출력 프로세서인 채널에 의해 입출력을 관리한다.
채널의 종류는
1.selector channel : 고속 입출력장치를 한번에 하나씩 데이터를 주기억장치에 보내는 방식.
2.multiplexer channel : 저속 입출력장치를 동시에 많은 데이터를 주기억장치에 보내는 방식.
3.block multiplexer channel : 동시에 여러 I/O 처리.블럭 단위.
4.byte multiplexer channel : 한개의 채널에 여러 개의 입출력 장치를 연결해 시분할 공유하는 방식.
I/O processor 구성요소는
1.프로세서 : I/O명령어들을 실행할 수 있는 프로세서.
2.지역 기억장치 : 대용량 데이터 블록들을 저장할 수 있는 저장소.
3.버스 인터페이스 : 시스템 버스에 대한 인터페이스
4.버스 중재회로 : 버스 마스터 및 버스 중재기