직렬(Serial) 통신과 병렬(Parallel) 통신이란? 개념 정리



image

1. 직렬(Serial) 통신

  • 직렬 통신은 순차적으로 데이터를 한번에 하나의 비트만을 전송한다.
  • 양단간 통신 거리가 먼 경우에도 사용하기 용이
  • 구현이 비교적 쉬움
  • USB, RS232, PCIe 가 사용하는 방식
  • 병렬 방식에서의 한계(아래에서 설명. 전자기 간섭, 전파 지연 문제)로 최근에는 직렬 통신을 여러개 사용하는 방식을 많이 채택하고 있습니다.
    • 직렬 통신은 D+, D- 와 같은 형태로 서로 반대되는 데이터를 2개의 데이터 선을 이용하여 전송합니다. 이는, D+ - (D-) = 2D+ 와 같은 방식으로 이루어지며, 신호를 만드는 차등 전송 방식(differential transmission) 이라고 합니다.
    • (D+ + a) - (D- + a) = 2D+ 와 같이, 두 신호에 잡음이 끼더라도 차이에서 상쇄되기 때문에 문제가 없습니다.
  • 반이중(full-duplex) 방식 사용. 송신과 수신 라인이 다름. 두 장치가 동시에 데이터 전송 가능

2. 병렬(Parallel) 통신

  • 여러 개의 병렬 채널 위로 동시에 여러 개의 데이터 신호를 보내는 방식
  • 양단간 통신 거리가 먼 경우에는 사용하기 어려움
  • 구현이 기술적인 어렵고, 비용이 많이 듬
  • HDD IDE, PCI 가 사용하는 방식
  • 전송이 더 높은 클럭 속도에 도달하지 못하게하는 일부 문제 존재. 클럭이 높을수록 전자기 간섭 (EMI) 및 전파 지연 문제 발생. 즉, 전송 속도에 한계가 존재합니다.
    • 전류가 와이어를 통해 흐를 때, 전자기장이 그 주위에 생성됩니다. 이 필드는 인접한 와이어에 전류를 유도하여 전송되는 정보를 손상시킬 수 있습니다. 병렬 전송에서와 같이 한 번에 여러 비트가 전송되며 각 비트는 하나의 와이어를 사용하여 전송에 포함됩니다. 예를 들어, 표준 PCI 슬롯과 같은 32 비트 통신에서는 데이터를 전송하기 위해 32 개의 와이어가 필요합니다. 클럭이 높을수록 전자기 간섭 문제가 커집니다.
    • 병렬 통신의 각 비트는 별도의 와이어로 전송되지만 32 개의 와이어를 마더 보드에서 정확히 동일한 길이로 만드는 것은 거의 불가능합니다. 더 높은 클럭 속도에서 더 짧은 와이어를 통해 전송 된 데이터는 더 긴 와이어를 통해 전송 된 데이터보다 먼저 도착합니다. 즉, 병렬 통신의 비트가 지연 도착할 수 있다는 말입니다. 수신 장치는 완전한 데이터를 처리하기 위해 모든 비트가 도착할 때까지 기다려야하며, 이는 성능의 현저한 손실을 나타낸다. 이 문제는 전파 지연으로 알려져 있으며 클럭 속도가 증가하면 악화됩니다.
  • 반이중(half-duplex) 방식 사용. 한 선에서 데이터 송수신이 모두 이루어짐. 두 장치가 동시에 데이터 전송 불가능

3. 비교

  • 클럭 주기 당 32 비트를 전송하는 33MHz의 병렬 통신을 비교하면 한 번에 한 비트 만 전송하는 33MHz의 직렬 통신보다 32 배 더 빠릅니다. 그러나 동일한 병렬 통신을 훨씬 높은 클럭 속도로 작동하는 직렬 통신과 비교하면 실제로 직렬 통신이 훨씬 빠를 수 있습니다.
    • PCI 버스의 대역폭 (133MB / s (33MHz x 32 비트))과 PCI Express 연결 (250MB / s, 2.5GHz x 1 비트)로 얻을 수 있는 가장 낮은 대역폭을 비교하면 됩니다.

4. Serial을 병렬로 사용한다면? PCIe는 lane이 여러개인데 왜 serial 통신이라고 할까?

  • PCIe 통신의 경우에는 Serial 통신이라고 말했지만, x1, x2, x4, x16 과 같은 형태로 lane을 늘려 대역폭을 늘리고 있습니다. 이 방식과 병렬 통신과의 차이가 무엇일까요? Serial 통신의 병렬 연결의 병렬 통신과의 근본적인 차이는 각 lane이 bit 단위로 서로 동기화되지 않았다는 것입니다. 각 차선에는 자체적으로 clock이 있습니다. 여러 레인이 동기 방식으로 전송 되더라도(레인의 길이가 정확히 동일하지 않거나, 지연이 발생하더라도) 비동기적으로 수신 할 수 있습니다.

출처

  • https://ko.wikipedia.org/wiki/%EB%B3%91%EB%A0%AC_%ED%86%B5%EC%8B%A0
  • https://www.hardwaresecrets.com/everything-you-need-to-know-about-the-pci-express/2/
  • https://electronics.stackexchange.com/questions/193189/pci-express-data-transfer-method-serial-vs-parallel