Domain/컴퓨터구조

7. I/O (Input/Output)

Black.bean 2020. 3. 12. 21:33

I/O Module

  실제 I/O Device들은 I/O Module에 연결되어 있는 구조이다. I/O Module이 I/O device와 다른 컴퓨터 내부 장치들과의 상호작용에 기여한다.

실제 컴퓨터 구조

I/O Module을 사용하는 이유

  • I/O 장치들의 속도가 다양함
  • 데이터의 형태가 모두 다름.

 

I/O Device의 발전

 

Programmed I/O

Interrupt-driven I/O

DMA (I/O Processor)

Check status

CPU

I/O

I/O

Transfer data

CPU

CPU

I/O

▶ Programmed I/O Interrupt-driven I/O는 전송 속도가 제한되고 CPU I/O장치를 지속적으로 관리해야 되기 때문에 좋지 않다.

 

 * Direct Cache Access : I/OCache에 직접 접근한다.

 

 * DMA Breakpoint: DMA 과정에서 버스를 이용해야 되는데 Instruction cycle 또한 버스를 이용한다. 따라서 각 명령어 사이에 DMA Breakpoint를 두어 DMA를 한다.

 

I/O Mapping

Memory mapped I/O : I/O Main memory의 주소의 일정 부분을 사용. I/Omemory read/write와 사실상 같고 특별한 I/O 명령어가 필요하지 않다.

 

Isolated I/O : 주소 공간이 분리되어 있다. 따라서 I/O를 위한 별도의 명령어가 필요하다. Control bus가 해당 주소가 I/O의 주소인지 memory의 주소인지 구별할 수 있어야 함.


Vector Interrupt(Daisy chain) 

I/O Device에서 CPU로 interrupt를 요청하는데 각 device 별로 처리 순서를 정하기 위해 각 장치를 식별하는 방법.

인터럽트를 발생시키는 장치들을 우선순위에 맞게 직렬로 둔다.  Vector table에서 Vector value 값에 해당하는 ISR(Interrupt Service Routine)의 메모리 주소를 획득해 해당 메모리 주소로 접근하여 ISR 작업을 수행하게 된다.