티스토리 뷰

컴퓨터 공학

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.버스 중재회로 : 버스 마스터 및 버스 중재기




'컴퓨터 공학' 카테고리의 다른 글

메모리 계층 구조  (0) 2020.10.04
CPU 스케쥴링 알고리즘  (0) 2020.10.04
프로세스 와 쓰레드  (0) 2020.10.04
인터럽트 & 시스템 콜  (0) 2020.10.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함