DevGang
[CA-16] 입/출력 장치 본문
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