[시스템] 입출력장치②-입출력방식(인터럽트/DMA/입출력프로세서IOP 이용 방식) 정리

입출력 방식

인터럽트 방식·DMA 제어 방식·입출력 프로세서 방식

 

1. 인터럽트 방식의 입출력 실행

o CPU에서 입출력 장치에 데이터 입력 요구(읽기)

1) CPU가 입출력 모듈로 읽기 명령 전송

  - CPU가 입출력 모듈에게 “보내봐!”

2) 입출력 모듈은 주변장치에서 데이터를 읽음

 - CPU는 기다릴 필요가 없음 → 시간낭비 방지를 위해 CPU는 명령 내리고 다른 일 수행

3) 입출력 모듈이 CPU로 인터럽트 신호를 전송

  - CPU가 인터럽트를 감지하면 하던 일을 중지함

4) CPU가 입력된 데이터를 요구

5) 입출력 모듈이 CPU로 데이터를 전송

  - 사실 CPU로 전송하는 것이 아니라 Memory로 전송하는데, 전송 역할을 CPU가 맡아 메모리에 쓴다는 것

 

* 왜 CPU가 바로 주변장치에서 데이터를 읽어오지 않는가?

 - 대전제 : CPU와 I/O는 직접 컨택할 수 없음. 즉 Direct Access 불가!

 

o 입출력 장치에서 시스템으로 입력 데이터 요구(읽기)

1) CPU는 인터럽트에 응답하기 전에 현재 실행 중인 명령어의 실행을 완료

  - I/O 장치가 인터럽트 신호 전송하면 CPU는 하나의 명령어 단위로 실행 완료 (하던 일 stop)

2) CPU는 인터럽트를 검사하고 인터럽트 요구가 있다면, 요구를 발생한 장치에 확인 신호 전송

  - CPU가 요청 장치에 답장 응답 “알았어! 신호 보내!”

3) CPU는 새로 시작될 프로그램(ISR)으로 제어를 넘겨줄 준비

  - 실행 상태 레지스터SR와 프로그램 카운터PC를 스택에 저장

  - 현재 상태(CPU 레지스터 + 사용자 레지스터)를 모두 스택에 저장

4) 새로운 프로그램의 시작 주소를 프로그램 카운터에 적재(= 인터럽트 서비스 시작 = 장치 드라이버 구동)

 

* 입출력 장치에서 시스템으로 입력 데이터 요구에서 새롭게 시작될 프로그램 = Device Driver!

 

 

 

2. DMA(Direct Memory Access)방식의 입출력 실행

DMA 제어기가 CPU, 주기억장치, 입출력 모듈과 함께 시스템 버스에 직접 연결된 형태의 입출력 방식

- 시스템버스에 바로 연결되어 있으므로 속도가 빠름

- CPU에서 명령을 수신한 DMA 제어기는 명령에 따라 주기억장치에서 데이터를 읽거나 쓰는 동작을 수행함

 

 

* 요즘 DMA 제어기 방식은 잘 쓰이지 않음

* CPU Cycle Steal : 인출, 실행 등의 CPU 사이클을 빼앗아 데이터를 읽고 씀

 

 

 

 3. 입출력 Processor를 사용한 입출력

입출력 처리를 전담하는 별도의 입출력 프로세서(I/O processor)를 두어, CPU의 효율을 높이는 입출력 제어방식

 

- 사용되는 입출력 프로세서는 DMA 제어기의 기능을 향상시킨 것으로 입출력 명령어들을 실행할 수 있는 프로세서로, 데이터 블록을 임시 저장할 수 있는 지역 기억장치를 포함

- 시스템 버스에 대한 인터페이스 및 시스템 버스회로와 입출력버스 중재회로를 포함

  * IOP는 데이터를 시스템 버스에 올려주는 역할을 함

- CPU는 연산에 필요한 데이터를 처리하고 IOP는 여러 주변 장치와 주기억장치 사이의 데이터 전송을 위한 통로를 제공

- 처음에는 CPU가 IOP의 입출력 전송을 시작하게 하지만 이후에는 CPU와 독립적으로 IOP동작

- 입출력 방식은 CPU의 간섭을 받게 되지만, IOP를 이용해 간섭을 최소화하여 CPU의 이용 효율을 증가시키나 별도의 입출력 프로세서로 인한 하드웨어 비용이 증가하는 단점이 있음

 * 그러나 단점보다는 이점이 많아 IOP를 쓰는 것이 더 효율적일 수 있으며 요즈에는 가격이 저렴해서 문제없음

 

 

 

* 입출력 프로세서는 입출력 전용 CPU  = IOP(I/O Processor)

* CPU ≠ IOP :  IOP의 수행능력은 CPU보다 떨어지며 하는 일이 제한적임

* CPU는 I/O 요청만 하고 나머지는 IOP가 전담 (← CPU가 신경 쓰지 않도록)

* 입출력 프로세서는 로컬 주소를 가지므로 시스템버스에 다이렉트로 읽기/쓰기가 가능하며, PCI 버스로 연결 가능

 

* DMA 제어기와 IOP

- DMA 제어기 : 명령어 실행 불가, 메모리 없음

- IOP : 명령어 실행 가능, 지역 기억장치를 가짐

 

* 메인 CPU의 효율을 극대화시키기 위해 IOP을 이용한 입출력을 이용

 

* 어떤 경우에 IOP를 쓰면 효율적인가?

- 입출력 종류 및 개수가 많고 입출력 처리가 많은 경우 시스템 성능이 떨어지므로 CPU의 대리 역할을 하는 IOP를 이용

- 메인 CPU의 오버헤드를 경감시키기 위해 사용

 

 

** 프로세스와 프로세서

- Process프로세스 : 소프트웨어

- Processor프로세서 : (=CPU) 하드웨어

 

반응형
그리드형

댓글

❤️김세인트가 사랑으로 키웁니다❤️