DevGang

[CA-16] 입/출력 장치 본문

정보처리/CA

[CA-16] 입/출력 장치

별천랑 2021. 2. 6. 17:11

1. 입/출력 장치의 구성

  • 입/출력 제어장치는 입/출력 장치와 컴퓨터 사이의 자료 전송을 제어하는 장치
  • 제어신호의 논리적, 물리적 변환 그리고 오류를 제어함
  • DMA, 채널, 입/출력 컴퓨터 등이 입/출력 제어장치에 해당됨
  • 데이터 버퍼 레지스터를 이용하여 두 장치 간의 속도 차를 조절함

2. 입/출력 인터페이스

  • 메모리나 CPU 레지스터와 같은 내부 저장 장치와 외부 I/O 장치 간에 2 정보를 전송하는 방법을 제공
  • 기계적인 장치인 주변 장치와 전자적인 장치인 CPU와의 동기화, 신호 값 변환, 주변 장치와 CPU 속도 차이를 해결하며, 각각의 주변 장치들이 서로 방해되는 일이 없도록 하는 기능
  • 입출력 장치 인터페이스에 포함되어야 하는 하드웨어 - 데이터 레지스터, 장치의 동작 상태를 나타내는 플래그, 장치 번호 디코더

3. 입/출력 인터페이스 실행 Command 종류

  • 제어 명령어
  • 데이터 출력 명령어
  • 데이터 입력 명령어

4. 입/출력 장치의 종류

  • 입력장치 : OMR, OCR, MICR, 스캐너, 마우스, 라이트 팬, 디지타이저, 키보드
  • 출력장치: 모니터, 프린터, 플로터
  • 보조기억장치(입출력 겸용 장치) : 자기 테이프, 자기 디스크, 자기 드럼 등등

5. 기억장치와 입/출력 장치의 동작 차이

  • 기억장치는 처리속도가 Nano(10^(-9)) 단위인 전자적인 장치이고, 입출력 장치는 milli(10^(-3)) 단위인 기계적인 장치이므로 동작 방식에는 많은 차이가 있음
비교 항목 입/출력 장치 기억장치
동작의 속도(가장 중요) 느림 빠름
동작의 자율성 타율/자율 타율
정보의 단위 Byte(문자) Word
착오 발생률 많음 적음

6. 비동기 데이터 전송

- 핸드 세이킹(Handshaking) 방식

  • 컴퓨터와 주변장치 사이에 Data전송을 입출력의 준비나 완료를 나타내는 신호(BDY, STB)를 사용하여 Data 입출력을 하는 방식
  • 스트로브 제어 방법보다 높은 융통성과 신뢰성을 가짐
  • 2~3개의 제어선을 이용

- 스트로브 펄스(Strobe Pulse) 방식

  • 데이터 버스와 1개의 제어선을 이용, 메모리와 CPU사이의 정보교환 이용

7. 버퍼링과 스풀링

- 버퍼링(buffering)

  • 저속의 입출력 장치와 고속의 CPU 처리 속도 차이 개선하기 위한 방법
  • 주기억장치의 일부 공간을 버퍼 공간으로 할당하여 처리할 데이터를 임시 기억하여 처리하는 방식
  • 버퍼의 위치는 주기억장치
  • 한번 나와 있는 데이터가 CPU에서 여러 사용

- 스풀링(Spooling)

  • I/O 효율을 높이기 위해 I/O 내용을 디스크 등에 모아두었다가 처리하는 방식(프린터)
  • 디스크 일부를 매우 버퍼처럼 사용
  • 스풀의 위치는 보조기억장치
  • 어떤 작업의 입출력과 다른 작업의 계산을 병행 처리하는 기법

- 버퍼링과 스풀링의 차이점

  • 버퍼링은 일반적으로 하드웨어적 구현 스풀링은 소프트웨어적 구현
  • 버퍼링은 일반적으로 단일 작업 단일 사용자, 스풀링은 다중작업 다중 사용자
  • 버퍼링에서 일반적으로 버퍼의 위치는 주기억장치, 스풀링은 디스크

* 고급언어는 하드웨어에 독립적이고, 컴파일러에 종속적이다.

8. 입/출력 제어 방식

  • Program I/O, Interrupt I/O (CPU 관여)
  • DMA I/O, Channel 의한 I/O (CPU 관여 x)

1. Program 의한 I/O

  • 프로그램통한 입/출력 장치 인터페이스에 포함되어야 하는 하드웨어

2. Interrupt 의한 I/O

  • CPU 계속 FLAG를 검사하지 않고 데이터가 준비되면 인터페이스가 CPU 입/출력 요구, 입/출력 전송이 완료되면 CPU 수행 중이던 프로그램으로 돌아가서 수행을 재개하는 입/출력 방식

3. DMA(Direct Memory Access) 의한 I/O

  • 데이터 입/출력 전송이 CPU 통하지 않고 직접 주기억장치와 주변장치 사이에서 수행되는 방식
  • CPU를 거치지 않고 메모리와 입/출력장치가 직접 통신하기 때문에 CPU 부하가 증가되지 않음
  • CPU DMA제어기는 메모리와 버스를 공유함
사이클 스틸(Cycle Steal) 인터럽트(Interrupt)
Cpu 상태를 보존할 필요가 없음 CPU상태를 보존해야 함
잠시 CPU가 쉼 CPU는 인터럽트를 처리해야 함
아무 사이클이나 상관없이 훔치는 것이 가능 항상 실행 사이클 이후에만 인터럽트가 인지
  • DMA 구성 - 워드 카운트 레지스터, 주소 레지스터, 자료 버퍼 레지스터
  • DMA 과정에서 인터럽트가 발생하는 시점 - DMA 제어기가 자료 전송을 종료했을

4. Channel 의한 I/O

- 채널(Channel)

  • 신호를 보낼 수 있는 전송로
  • CPU 명령을 받고 입/출력 조작을 개시하면 CPU와는 독립적으로 조작함

- 채널 제어장치

  • 입/출력 장치와 CPU사이에 존재하는 속도의 차이 인해 발생하는 단점을 해결하기 위해 고려됨

- 채널의 종류

  • Selector Channel : 특정한 한 개의 장치를 독점하여 입출력함
  • Multiplexer Channel : 동시에 여러 개의 입출력 장치를 제어(저속)
  • Block Multiplexer Channel : 동시에 여러 개의 입출력 장치를 제어(고속)

- 입출력 스루풋(throughput) 비율이 증가하는 순서

  • 폴링 < 인터럽트 < DMA

'정보처리 > CA' 카테고리의 다른 글

[CA-18] 병렬 컴퓨터  (0) 2021.02.06
[CA-17] 인터럽트  (0) 2021.02.06
[CA-15] 특수 기억장치  (0) 2021.02.06
[CA-14] 기억장치  (0) 2021.02.06
[CA-13] 명령 실행과 제어  (0) 2021.02.06
Comments