데이터를 주고받는 두 장치에서 사용하는 클락의 특성에 따라 동기 전송 방식과 비동기 전송 방식으로 구분할 수 있습니다.
① 동기 전송 방식: 두 장치는 공통 클락을 이용하여 전송합니다. 예를 들어 컴퓨터의 내부 동작은 클락에 의해 동기 하기 때문에 레지스터 간의 전송은 동기 전송이라고 할 수 있습니다.
② 비동기 전송 방식: 두 장치가 자신의 클락을 이용하여 전송한다. 예를 들어 CPU와 입출력 장치간의 전송은 비동기 전송입니다. 비동기 전송 방식에는 전송 시간을 알리기 위해 저어 신호를 교환해야 하는 특징이 있습니다.
③ 병렬 전송: 한번의 1개의 워드를 전송할 수 있는 회선을 이용하며 전송할 워드를 동시에 전송합니다. 따라서 짧은 거리에서 고속으로 전송할 때 사용합니다.
④ 직렬 전송: 한 쌍의 선을 이용하여 한 번에 1비트씩 전송하므로 전송속도는 느리지만 비용이 적게 든다는 장점이 있습니다. 장거리의 동기 직렬 전송은 각 장치를 동기 시키기 위한 동기 신호를 주기적으로 전송합니다. 비동기 직렬 전송은 문자 코드의 양끝에 시작 비트와 정지 비트를 삽입하여 문자를 동기 시켜 전송하는 방식입니다.
1. 비동기 병렬 전송 방식
1) 스트로브 제어 방식
스토르브(strobe) 제어 방식은 스토로브 제어 신호를 이용하여 전송 시간을 알립니다. 이와 같이 유효한 데이터가 버스에 있음을 알리는 신호로 송신 장치나 수신 장치에서 발생시킵니다. 송신 장치는 먼저 데이터를 데이터 버스에 놓고 안정 상태가 되면 스트로브 신호를 발생시킵니다. 데이터 버스의 정보와 스트로브 신호는 수신 장치가 데이터를 받아들일 수 있도록 충분한 시간 동안 유효 상태로 유지됩니다. 보통 수신 장치는 스토로브 신호의 하강 모서리를 이용하여 데이터 버스의 정보를 내부 레지스터에 전송합니다. 스트로브 제어 방법은 마이크로프로세서와 기억 장치의 정보 교환 시 사용하며 인터페이스와 입출력 장치는 핸드셰이킹 방법으로 데이터를 전송합니다.
2) 핸드셰이킹 제어 방식
스트로브 제어 방식은 전송을 개시한 송신 장치가 버스로 송신한 데이터를 수신 장치가 받았는지 알 수 없고 마찬가지로 수신을 개시한 수신 장치는 송신 장치가 데이터를 데이터 버스로 수신하였는지 알 수 없다는 문제점이 있습니다. 핸드셰이킹 제어 방식은 두 제어 신호를 사용하여 이같은 문제를 해결합니다. 이 방법은 데이터 전송 방향과 같은 방향의 제어 신호를 이용하여 송신 장치가 전송함을 수신 장치에 알리고 수신 장치에서 송신 장치 방향으로 연결된 두 번째 제어 신호로 수신 장치가 데이터를 받았거나 또는 수신 가능 상태임을 송신 장치에 알립니다. 핸드셰이킹 회선은 송신 장치가 보내는 data valid 회선과 수신 장치가 보내는 data accepted 회선을 이용하여 전송합니다. 송신 장치는 버스에 데이터를 놓고 data valid 신호를 보내 전송을 시작합니다. 그다음에 수신 장치가 버스의 데이터를 받은 후 data accepted 신호를 보냅니다. 송신 장치는 data valid 신호를 오프 시키고 수신 장치도 data accepted 신호를 오프 시켜 원상태로 돌아갑니다. 수신 장치가 data accepted 신호를 off 시켜 새로운 데이터를 받아들일 준비가 되고 나면 송신 장치는 새로운 데이터를 보낼 수 있는 상태가 됩니다. 핸드셰이킹 방식은 전손이 완료되려면 송신 및 수신 장치가 정확히 동작해야 하므로 신뢰성과 융통성이 좋은 방법입니다. 어떠한 장치라도 잘못 동착하면 데이터가 전송될 수 없으며 이 같은 에러는 타임아웃 방식으로 검출할 수 있습니다.
2. 비동기 직렬 전송 방식
비동기 직렬 전송 방식으로 전송되는 문자는 시작 비트, 데이터 비트, 정지 비트의 3부분으로 구성됩니다. 정보를 전송하지 않을 때 송신기는 1 상태를 유지합니다. 수신부는 문자를 다음과 같은 규칙에 의해 검출합니다.
① 데이터가 전송되지 않을 때 회선은 1 상태를 유지하고 있습니다.
② 문자 전송의 시작은 시작 비트에 의하여 알 수 있으며 시작 비트는 0의 상태가 됩니다.
③ 시작 비트의 다음부터 문자 전송이 시작됩니다.
④ 정지 비트는 회선을 최소한 1비트 이상 1상태로 유지해야 합니다.
전송한 문자의 마지막에서 송수신 장치가 다시 동기할 수 있도록 최소한 1~2비트 시간 동안 회선을 1 상태로 유지하며 시간은 각 장치가 재동 되기 위해 필요한 시간에 따라 다릅니다. 보오율은 직렬 정보가 전송하는 속도를 말하며 일반적으로 초당 전송하는 데이터 비트 개수와 같습니다.
3. 큐(Queue)
큐 또는 FIFO 버퍼는 데이터가 들어온 순서대로 출력되는 버퍼로 입력과 출력 단자가 분리되어 있습니다. 이와 같이 한쪽으로 삽입되고 다른 쪽에서 삭제되며 가장 먼저 첨가된 노드가 가장 먼저 제거됩니다. 큐의 특징은 입력과 출력을 다른 속도로 할 수 있으나 데이터가 들어온 순서대로 출력하는 점입니다. 그러므로 큐는 데이터를 비동기 전송하는 경우에 적합하며 운영체제(OS)의 직접 스케줄링과 같은 대기 행렬 처리에 응용할 수 있습니다.
입출력 방식
입출력 방식의 종류는 다음과 같습니다.
① 프로그램에 의한 입출력 방식
② 인터럽트에 의한 입출력 방식
③ Direct Memory Access에 의한 입출력 방식
④ 채널(IOP)에 의한 입출력 방식
프로그램에 의한 입출력 방식은 기억 장치에 저장된 입출력 명령에 의해 이루어집니다. 데이터 전송은 프로그램 명령에 의해 시작되며 누산기와 같은 레지스터와 주변 장치에 의하여 전송됩니다. 프로그램에 의한 데이터 전송은 언제 전송이 가능한지 CPU가 항상 주변 장치의 플래그를 감시해야 합니다. 프로그램에 의한 전송에서 CPU는 입출력 준비 상태가 될 때까지 기다려야 하므로 많은 시간을 낭비합니다. 이와 같은 단점은 인터럽트를 이용하면 개선할 수 있습니다. 인터럽트에 의한 I/O에서 CPU는 다른 프로그램을 실행하고 인터페이스는 계속하여 주변 장치를 감시하여 데이터 전송을 위한 준비가 되면 CPU에게 인터럽트를 요청합니다. CPU가 인터럽트를 인식하고 실행하고 있는 작업을 중단하면 데이터를 전송하기 위한 서비스 루틴으로 분기합니다.
앞의 두 방식은 입출력 버스를 이용하여 CPU와 주변 장치 사이에서 데이터를 전송합니다. DMA에 의한 I/O는 기억 장치 버스를 통해 기억 장치와 직접 데이터를 전송합니다. CPU는 DMA 제어기에 기억 장치의 시작 주소와 전송량을 전달하여 DMA 전송을 개시시킨 후 다른 프로그램을 실행합니다. DMA 제어기는 사이클 스틸을 이용하여 데이터를 직접 기억 장치에 전송합니다. 채널은 DMA와 인터럽트를 이용하여 여러 주변 장치를 제어할 수 있는 입출력 프로세서입니다. 이와 같은 시스템에서 컴퓨터는 기억 장치, CPU, I/O 프로세서의 3 모듈로 구분합니다.
'컴퓨터정보' 카테고리의 다른 글
DMA(Direct Memory Access) 란? (0) | 2022.01.09 |
---|---|
데이터 전송 입출력 방식 (0) | 2022.01.09 |
입출력 장치를 알아보자 (0) | 2022.01.08 |
가상 기억 장치 (0) | 2022.01.07 |
기억 장치의 계층 구조 (0) | 2022.01.07 |