본문으로 이동

위키배움터:편집은 과감하게

위키배움터

데이터 전송은 한 위치에서 다른 위치로 어떠한 데이터(디지털 비트스트림이나 디지털화된 아날로그 신호[1])나 정보를 전송하는 것이다. 예전에는 모닥불 등으로 전송했지만, 모스 부호를 사용하여 이루어지게 되었다. 또한 텔렉스와 컴퓨터를 사용하여 비트 또는 바이트의 스트림을 다양한 기술을 구사하여 전송하게 되었다. 전송 수단으로는 구리 와이어, 광섬유, 레이저, 무선, 적외선 등이 있다. 예를 들어, 웹사이트를 방문하여 저장 장치에서 데이터를 검색하여 웹서버에서 웹브라우저로 데이터 전송이 이루어진다. 데이터 전송 개념으로 통신 프로토콜이있다. 현재는 패킷 기반 프로토콜에 의한 통신이 많다.

(1)입출력 데이터 전송 느리게 동작하는 입출력 장치는 상대적으로 고속으로 동작하는 중앙 처리 장치와 속도 차이가 크게 난다. 따라서 중앙 처리 장치와 입출력 장치는 속도를 동기 전송하지 않는다. 동기 전송을 하지 않는 경우와 속도가 다른 두 장치가 비동기 데이터 전송을 하는 경우에는 두 장치 간 데이터 전송을 하는 특별한 방법이 필요하다. 컴퓨터에서는 스트로브(strobe) 신호 방식과 핸드셰이킹(handshaking) 방식을 이용한다.

1 스트로브 신호 ■ 입출력 장치는 중앙 처리 장치와 속도 차가 많이 나기 때문에 중앙 처리 장치의 속도에 맞출 수 없고 별도의 클럭 신호를 가지고 있다. ■ 속도가 다른 두 장치가 통신할 때는 별도의 신호를 이용하여 자료 전송의 시작을 알리는 정보를 보내주어야 한다. ■ 데이터를 전송할 때 실제로 전송되는 것을 알려 주기 위해 보내는 신호를 스트로브 신호라고 한다. ■ 스트로브 신호를 보내기 위해서는 별도의 회선이 필요하므로 데이터 버스 외에 스트로브 신호를 보내기 위한 회선을 설치해야 한다. ■ 스트로브 신호를 보내는 방법은 두 가지가 있다. ① 송신에서 수신으로 ② 수신에서 송신으로 ■ 스트로브를 이용한 데이터 전송은 간편하지만, 수신 측에서 자료를 정확하게 받았는지 알 수 없는 문제가 있다.


2 핸드셰이킹 전송 스트로브 전송 방법이 수신 측에 자료를 정확하게 보냈는지를 확인할 수 없는 단점을 보완하기 위해 송신 측과 수신 측에서 상대편에게 제어 신호를 보내 확인하는 별도의 신호 선을 갖춘 방식을 핸드셰이킹 전송 방식이라고 한다.


1 핸드셰이킹 원리 ■ 데이터 버스 외에 제어 버스를 이용하여 데이터 활성 신호(Data Valid), 데이터 확인(Data Acknowledge) 신호를 송수신할 수 있다. ■ 데이터 전송이 시작되면 중앙 처리 장치는 송신 제어 신호를 전송하고, 출력 장치는 송신 신호를 확인하고 데이터를 수신한다. ■ 수신이 완료되면 출력 장치는 중앙 처리 장치에 수신 확인 신호를 전송하여 수신이 완료된 것을 확인해 준다.

2 핸드셰이킹의 특징 송신 측과 수신 측이 동시에 동작하는 방식으로 어느 한 쪽의 장치가 잘못되면 데이터의 전송이 이루어지지 않기 때문에 높은 신뢰성을 갖는다. 또한 이 방법은 하나의 송신 장치에서 여러 개의 수신 장치에 데이터를 전송할 수도 있다.

2 직렬 전송 두 장치 사이의 데이터 전송은 병렬이나 직렬로 수행할 수 있으며, 병렬 데이터 전송의 각 메시지 비트는 각각의 경로를 통해 동시에 전송된다. 이것은 n개의 비트 메시지는 n개의 개별적인 도체 경로를 통해서 병렬로 전송됨을 의미한다. 직렬 데이터 전송에서는 메시지의 각 비트는 한 번에 하나씩 순서대로 보내지게 된다. 병렬 전송이 직렬 전송보다 빠르지만 배선이 많이 요구되므로 단거리용이나 속도가 중요시되는 곳에 쓰인다. 직렬 전송은 느리기는 하지만 단지 한 쌍의 도선만 필요하기 때문에 비용이 싸다. 직렬 데이터 전송은 동기화 또는 비동기화될 수 있으며, 동기식 전송에서 두 장치는 같은 클럭 주파수를 공유하며, 비트는 채택된 속도로 연속적으로 전송된다. 동기신호는 장치들의 클럭 주파수를 맞추기 위해 두 개의 장치 사이에서 주기적으로 전송된다. 비동기 전송에서는 2진 정보가 유효하고 회선이 전송되는 정보가 하나도 없는 유휴 상태가 될 때만 전송된다. 이것은 비트들이 동기화된 양쪽 장치에서 클럭 주파수를 유지하도록 계속 전송되어야 하는 동기 전송과는 반대이다. 근래 많이 사용하고 있는 USB도 직렬 전송 방식을 사용하며, 장치에 따라서 동기 또는 비동기 전송을 사용한다.

1 비동기 직렬 전송 직렬 전송은 전화선과 같이 한 줄로 된 데이터 버스를 사용하는 장치에서 이루어지므로 자판에서 입력하거나 화면에 출력하는 등의 저속 장치에 많이 사용되 고 있다. 디스크에서 헤드가 디스크 표면에 기록할 때에도 사용된다. 보통 시프트 레지스터를 사용하여 1비트씩 단일 회선으로 된 입출력 버스에 보낸다. 직렬 전송을 위한 레지스터에는 1바이트 또는 1워드가 병렬로 전송되어 오지만, 이것을 1비트씩 시프트 시켜 전송하게 된다. 1비트씩 시프트 형태로 입력된 내용이 레지스터를 채우면 중앙 처리 장치에 병렬로 전송한다.자판과 같이 문자별 단위로 입력하는 장치는 데이터를 나타내는 8비트 외에 바이트의 시작을 나타내는 1비트와 바이트의 끝을 나타내는 2비트가 추가되어 11비트로 구성하여 전송한다. 데이터 비트는 ASCII 코드의 7비트에 패리티 비트가 한 개 추가되어 8비트가 된다. 직렬 전송 규칙은 다음과 같다. ■ 데이터가 전송되지 않을 때는 1의 상태를 유지한다. ■ 바이트의 전송 시작은 0비트로 나타낸다.

문자 코드는 비트 시작 다음부터이다.

■ 바이트의 끝은 1의 비트가 두 개 이상 연속된다. 직렬 전송을 동기화로 할 수는 있지만 대부분 저속 장치에 사용되므로 비동기적인 전송을 한다. 2 동기 전송 동기 전송은 문자의 틀을 구성하는데 시작과 끝 비트를 사용하지 않는다. <그림 Ⅴ-52>에서 보듯이 동기 전송은 통신을 할 두 장치 사이에 미리 정해 놓은 공통 클럭을 이용하여 자료를 보내고 받는다. 안정적인 사용을 위해 송수신기 변복조기의 클럭은 항상 동기화된 상태로 있을 필요가 있다. 주파수 동기는 수신을 받는 데이터에서 발생하는 신호 변환점에서 나오는 것을 받는 변복조기에 의해 이루어진다. 각 비트는 시작과 끝 비트를 가지고 개별적으로 전송될 수 있는 비동기 전송과는 반 대로, 동기 전송은 동기를 유지하기 위해 연속적인 메시지를 보내야 한다. 그 메시지는 한 블록의 데이터를 이루는 비트들의 그룹으로 구성되어 있다. 전체 블록을 정보의 한 단위로 만들기 위해 처음과 끝에서 특수한 제어 비트를 이용해 전체 블록을 전송한다. 3 병렬 전송 하나의 문자 또는 숫자 등과 같은 데이터를 구성하는 각 비트를 여러 개의 통신선을 사용하여 동시에 전송하는 데이터 전송 방식이다. 예전에 개인용 컴퓨터와 프린터 등 주변 기기 간의 데이터 전송에 가장 널리 사용되는 병렬 전송은 1바이트(8비트)를 8개의 통신선을 사용하여 동시에 전송하는 방식이다. 컴퓨터와 주변 기기가 8개의 통신선을 사용하여 데이터 비트를 동시에 전송하고, 복수의 다른 통신선을 사용하여 제어 비트를 동시에 전송하기 때문에, 데이터를 주고받는 속도가 한 번에 1비트씩을 전송하는 직렬 전송보다 빠르다. 반면, 케이블의 길이가 길어지면 통신선 간의 타이밍의 차이가 발생하기 때문에 장거리 전송에 적합하지 않고, 케이블의 값이 비싸 비용이 많이 든다. 병렬전송은 한 번에 많은 자료를 전송할 수 있으므로 컴퓨터 내부에서는 병렬 전송을 많이 사용한다. 중앙 처리 장치 안에 연산 장치와 각종 레지스터 간의 통신에서도 병렬 전송을 사용한다. 또한 중앙 처리 장치와 주기억 장치를 연결할 때 사용하는 버스도 병렬 전송을 위한 연결선이다.