본문 바로가기

입출력 장치를 알아보자

특정한 주변 장치가 컴퓨팅 시스템에 의해 직접 제어되는 상태를 온라인으로 연결되었다고 하며 이 같은 장치는 컴퓨터 명령에 따라 기억 장치로 정보를 직접 전송합니다. 따라서 컴퓨터에 연결된 입출력 장치에는 키보드, 디스플레이 장치, 프린터 등이 있으며 이를 주변 장치라 합니다. 또한 보조기억 장치인 마그네틱 테이프나 디스크도 주변 장치로 사용하고 있습니다. 컴퓨팅 시스템의 입출력 장치 구조는 컴퓨터의 성능이나 연결된 장치에 따라 구조가 서로 다릅니다. 따라서 주변 장치와 통신을 하기 위한 시스템 처리 능력과 연결되어 있는 주변 장치의 규모에 의해 대형 시스템과 소형 시스템을 구분할 수 있습니다.

 

입출력 인터페이스

컴퓨팅 시스템에 연결된 주변 장치들이 입출력 동작을 하려면 다음과 같이 컴퓨터와 각 주변 장치와의 차이점을 해결해야 합니다.

① 주변 장치는 전기, 기계 또는 전자기적인 장치로 동작 방식이 전기적 장치인 CPU나 기억 장치와 다르며 상호동작을 하기 위해 신호 변환이 필요할 수 있습니다.

② 주변 장치의 데이터 전송속도는 CPU의 전송속도보다 느리므로 동기절차가 필요합니다.

③ 주변 장치의 데이터 코드와 형식이 CPU나 기억 장치의 형식과 다르기 때문에 상호 인터페이스 작업이 필요합니다.

④ 주변 장치들의 동작 방식은 서로 다르므로 각 장치는 다른 주변 장치의 동작을 방해하지 않도록 제어되어야 합니다.

이와 같은 차이점을 해결하기 위해 컴퓨팅 시스템은 CPU와 주변 장치 사이의 전송을 감시하고 동기시키기 위한 인터페이스를 필요로 하고 인터페이스는 프로세서 버스와 주변 장치를 연결해 줍니다.

 

1) 입출력(I/O) 버스와 인터페이스

CPU와 주변 장치의 연결은 일반적으로 같은 구조로 연결되어 있습니다. CPU는 I/O 제어를 이용하여 입출력 버스의 정보 흐름을 관리하며 컴퓨터는 프로그램의 명령을 받아 인터페이스를 통해 주변 장치와 상호 교류하여 I/O를 제어합니다. 인터페이스는 I/O 버스로부터 받은 명령을 해석하여 주변 장치 제어기에 신호를 보냅니다. 또한 데이터 흐름을 동기 시키고 주변 장치와 컴퓨터 사이의 전송 속도를 관리합니다. 각 주변 장치는 해당 장치를 동작시키고 제어하는 자신의 제어기를 갖고 있으며, 제어기는 독립적으로 설치하거나 또는 주변 장치 내에 설치할 수 있습니다. I/O 버스는 모든 주변 장치의 인터페이스에 공통으로 연결된 버스입니다. CPU는 특정 장치와 통신하기 위해 장치 주소를 지정하고 공통 버스에 연결된 인터페이스는 주소선에 연결된 주소 디코더를 갖고 있습니다. 인터페이스가 자신의 주소를 검출하면 I/O 버스와 주변 장치 간의 통로가 활성화되며 주소가 일치하지 않는 주변 장치는 인터페이스에 의해 활성화되지 않습니다. 프로세서는 주소를 지정함과 동시에 제어선으로 기능 코드를 전송합니다. 지정된 인터페이스는 기능 코드와 응답하면서 입출력 동작을 실행합니다. 또한, 기능 코드를 I/O command라고 하며 command는 주변 장치와 인터페이스에서 실행되는 명령입니다. command의 해석은 주소로 지정된 주변 장치에 따라 다릅니다. 인터페이스에 의해 실행되는 command의 종류는 다음과 같이 분류할 수 있습니다.

 

(1) 제어

주변 장치를 활성화시키며 동작을 지시합니다. 예들 들어 마그네틱 테이프를 되감든가 또는 다른 레코드 위치로 이동시키는 동작을 지시합니다.

(2) 테스트

인터페이스, 제어기, 주변 장치의 상태를 테스트합니다. 예를 들어 전송을 시작하기 전에 주변 장치의 작동 상태를 검사하거나 전송 중에 발생하는 에러를 인터페이스를 통하여 테스트하고 결과를 상태 레지스터에 표시합니다.

(3) 출력

인터페이스가 입출력 버스의 데이터를 출력 받도록 지시합니다. 예를 들어 마그네틱 테이프의 경우 제어 command를 지시하여 테이프를 이동시키고, 테이프 command로 테이프 상태를 검사하여 테이프가 정확한 위치에 있으면 출력 command를 실행합니다.

(4) 입력

출력과 반대 기능을 실행하며 인터페이스는 주변 장치로부터 데이터를 받아 버퍼 레지스터에 저장한 후 입출력 버스로 전송합니다.

 

2) 입출력 버스 및 기억 장치 버스

프로세서는 입출력 장치뿐만 아니라 기억 장치와도 데이터를 주고받는다. 입출력 버스와 마찬가지로 기억 장치 버스도 데이터, 주소, 읽기/쓰기 제어선으로 구성합니다. 컴퓨팅 시스템에서 사용하는 버스가 기억 장치 또는 입출력 장치와 통신하는 방법은 다음과 같이 3가지가 가능합니다.

 

(1) 기억 장치와 입출력 장치가 분리된 버스를 사용하는 방법

독립적인 IOP가 장착된 컴퓨터에서 사용하는 방법으로 기억 장치는 기억 장치 버스를 통하여 CPU 및 IOP와 통신하고 IOP는 분리된 입출력 버스를 통하여 입출력 장치와 통신합니다. 즉, IOP는 외부 장치와 기억 장치 사이에 독립적인 전송로를 제공합니다. 예를 들어 데이터 채널을 이용하는 방법이 있습니다.

(2) 기억 장치와 입출력 장치가 공통 버스와 분리된 제어선을 사용하는 방법

분리형 입출력 방식이라 하며 공통 버스를 사용하여 CPU와 기억 장치, CPU와 I/O간 정보를 전송하지만 기억 장치 전송과 입출력 전송은 read 및 wrtie 제어선을 분리하여 작업한다. 이러한 구성은 입출력 인터페이스 주소를 기억 장치에 할당된 주소로부터 분리시키므로 분리형이라 합니다. 분리형 입출력 방식에서 프로세서는 입출력 명령으로 인터페이스 레지스터의 주소를 지정하고 동시에 read나 write 제어선을 선택합니다. 이와 같이 하여 외부 장치에게 주소가 인터페이스 레지스터를 지정함을 알립니다.

(3) 기억 장치와 입출력 장치가 공통 버스 및 제어선을 사용하는 방법

기억 장치 사상 입출력 방식이라 하며 기억 장치 주소를 인터페이스 레지스터까지 확장하여 지정하는 방법으로 read/write 신로는 하나만 필요하고 기억 장치와 입출력 장치를 구별하지 않습니다. 인터페이스 레지스터 주소는 기억 장치의 한 부분으로 취급하며 인터페이스 레지스터를 지정하는 주소는 기억 장치의 주소 지정에 사용할 수 없습니다. 따라서 기억 장치 주소 용량은 감소하는 이 방법은 입출력 명령이 필요 없으며 CPU는 기억 장치 참조 명령을 이용하여 인터페이스 레지스터의 입출력 데이터를 처리할 수 있습니다.

'컴퓨터정보' 카테고리의 다른 글

데이터 전송 입출력 방식  (0) 2022.01.09
데이터 전송 개념과 방식  (0) 2022.01.08
가상 기억 장치  (0) 2022.01.07
기억 장치의 계층 구조  (0) 2022.01.07
기억 장치란 무엇일까?  (0) 2022.01.07