01signal.com

PMA: OOB 신호, 전기적 공회전 등

이 페이지는 Multi-Gigabit Transceiver (MGT)를 소개하는 일련의 페이지 중 여섯 번째이고, PMA에 관한 두 번째 페이지입니다.

소개

이전 페이지 에서는 PMA 의 도움으로 물리적 채널을 통한 bits 전송에 대해 논의했습니다. 그러나 이 데이터 스트림은 항상 켜지지는 않습니다. 전력을 절약하기 위해 MGT 의 큰 부분을 끌 수 있습니다. 이는 특히 MGT가 노트북 컴퓨터 내부에 SATA, PCIe또는 SuperSpeed USB를 구현할 때 중요합니다. 이러한 protocols가 적용될 때 전송할 데이터가 없을 때 물리적 링크를 활성 상태로 유지하는 것은 에너지 낭비입니다.

따라서 MGT는 저전력 상태로 전환할 수 있는 기능이 있어야 합니다. 더욱 중요한 것은 MGT가 이 저전력 상태에서 깨어날 때가 되면 상대방에게 알릴 수 있는 기능이 있어야 한다는 것입니다. PMA는 이 목적(및 다른 목적)을 위해 OOB signals를 생성하고 감지하는 역할을 합니다.

Out-of-band (OOB) 신호는 데이터 스트림을 전송하는 데 사용되는 동일한 차동 와이어에서 발생하는 간단한 전기 활동 패턴으로 구성됩니다. 이러한 OOB 신호는 일반 데이터 스트림이 꺼진 경우에만 전송할 수 있습니다. 이러한 신호에 대한 가장 중요한 점은 수신기가 매우 간단한 logic의 도움으로 감지할 수 있다는 것입니다. 이를 통해 OOB 신호를 수신하는 MGT는 이 MGT가 저전력 상태일 때에도 이를 감지할 수 있습니다.

MGTs가 지원하는 또 다른 기능은 송신기가 다른 MGT 에 물리적으로 연결되어 있는지 감지하는 기능입니다(다른 MGT 에 아무것도 하지 않고). 이 기능을 Receiver Detection 라고 합니다.

이 페이지에서는 다음 두 가지 기능을 소개합니다. OOB signals 와 receiver detection. 편의를 위해 이전 두 페이지의 블록 다이어그램을 여기에 다시 표시합니다.

Block diagram of typical Multi-Gigabit Transceiver

OOB signals전송

Out-Of-Band (OOB) 신호는 일반적으로 상수 frequency를 갖는 간단한 사각파 신호입니다. 이 signal은 일반 데이터 스트림 대신만 전송될 수 있으며 동시에 전송될 수 없습니다.

각 protocol은 OOB signal의 모양에 대한 요구 사항이 다릅니다. FPGA MGT는 일반적으로 input ports를 가지고 있어 application logic이 가장 일반적으로 사용되는 protocols (특히PCIe 및 SATA )에 따라 OOB signals를 요청할 수 있습니다.

OOB signals 의 명명법과 요구 사항은 protocol 마다 다릅니다. 예를 들어:

때때로 MGT는 특정 protocol에 적합한 OOB signal을 생성할 수 있는 기능이 없습니다. 이는 데이터를 전송하기 위해 송신기를 켜고 원하는 신호 패턴에 해당하는 데이터 스트림을 MGT 에 공급하여 해결할 수 있습니다. 특히 MGT의 인코딩 기능이 꺼진 경우 MGT는 간단한 SERDES처럼 작동합니다. 그런 다음 원하는 신호 패턴을 전송용 데이터의 도움으로 임의로 형성할 수 있습니다. 예를 들어, '0'와 '1'의 연속된 시퀀스를 전송하여 사각파를 생성할 수 있습니다. 이 솔루션의 주요 단점은 MGT의 인코딩 기능이 사용되지 않으므로 대신 application logic 에서 인코딩 기능을 구현해야 한다는 것입니다.

Electrical idle

MGT의 송신기가 꺼져 있거나 저전력 모드에 있을 때, output은 일반적으로 electrical idle 상태에 있습니다. 즉, 송신기는 두 개의 차동 출력 와이어(D+ 및 D-)를 ground에 연결합니다. 따라서 이러한 와이어 사이의 전압은 0이지만 각 와이어는 ground와 관련하여 0 전압을 갖습니다.

MGT가 절전 모드일 때, electrical idle 상태는 OOB signal을 전송하는 것과 반대입니다. 또는 송신기의 세 가지 가능한 상태를 요약하면 다음과 같습니다.

위에서 언급했듯이, OOB는 저전력 상태에서 다른 쪽을 깨우거나 링크를 시작하는 일부로 가끔만 사용됩니다. 따라서 대부분의 경우 MGT는 데이터를 전송하거나 electrical idle 상태에서 절전 모드에 있습니다.

OOB signals감지

MGT가 꺼져 있거나 저전력 상태일 때, 수신기는 다른 쪽에서 OOB가 전송되는지 감지해야 할 수 있습니다. 이는 특히 정상 작동을 재개하라는 요청에 응답하는 데 필요합니다.

대부분의 protocols는 OOB signal의 waveform을 정확하게 지정하지 않고, 오히려 다양한 가능성을 정의합니다. 따라서 수신기가 도착하는 signal을 예상하는 waveform와 비교할 수 없습니다. 대신, OOB signal은 차동 와이어에 활동이 있을 때 감지됩니다. 즉, 데이터 스트림이 꺼졌지만 차동 와이어의 전압이 electrical idle로 간주하기에는 너무 많이 변하면, 반대쪽에서 OOB signal이 전송된다는 설명입니다.

이런 이유로 FPGA MGT는 OOB를 감지하기 위한 output port가 없습니다. 대신 수신기가 electrical idle을 감지하면 높아지는 output port가 있습니다. 이 port 의 이름은 보통 "rx_elecidle"와 비슷합니다.

불행히도 electrical idle 에 대한 MGT의 감지 메커니즘은 신뢰할 수 없습니다. 특히, 다른 쪽에서 데이터 스트림을 전송할 때 수신기의 electrical idle 감지기의 동작은 MGT 마다 다릅니다. 이 상황에서 MGT가 electrical idle을 감지할 가능성이 있습니다. 마찬가지로 MGT가 electrical idle이 없다는 것을 확실히 감지할 가능성도 있습니다. 무작위 감지가 발생할 가능성도 있습니다. 각 FPGA는 다르게 동작합니다.

이론적으로 이는 문제가 되지 않습니다. 데이터 스트림이 활성화되어 있을 때 electrical idle을 확인할 필요가 왜 있을까요? 하지만 실제로는 MGT가 다른 쪽에서 예상하지 못할 때에도 데이터를 전송할 수 있습니다. 따라서 application logic은 다른 쪽이 꺼져 있을 것으로 예상하지만 대신 일반 데이터 스트림이 도착할 때 올바르게 반응하도록 설계되어야 합니다.

electrical idle 감지의 또 다른 문제는 노이즈에 대한 민감성입니다. 완벽한 electrical idle은 두 차동선 모두 전압이 0일 때입니다. 노이즈로 인해 수신기는 electrical idle을 배제하기에 충분한 전압을 측정할 수 있습니다. 그러면 application logic은 이를 OOB signal로 해석할 위험이 있습니다.

결론적으로, OOB signals를 안정적으로 감지할 수 있는 간단한 해결책은 없습니다. application logic은 electrical idle 감지기의 불완전성을 커버하도록 설계되어야 합니다.

Receiver detection

PCIe protocol 와 SuperSpeed USB는 링크의 다른 쪽에 무언가가 연결되어 있는지 감지할 수 있는 기능이 필요합니다. 이 감지는 다른 쪽과 통신을 시작하려고 시도하지 않고 수행되어야 합니다. 이 기능을 receiver detection 라고 합니다.

이것은 SuperSpeed USB에 필요한데, 컴퓨터는 장치가 물리적으로 분리되었을 때를 알아야 하기 때문입니다. 링크가 저전력 상태일 때 이러한 분리가 발생하면 컴퓨터는 무언가가 발생했다는 것을 알 수 없습니다. 어쨌든 전선에는 아무런 활동이 예상되지 않습니다. 따라서 protocol은 host가 100 ms마다 수신기 감지를 수행하도록 요구합니다. 이를 통해 컴퓨터는 에너지를 낭비하지 않고 장치가 여전히 연결되어 있는지 확인할 수 있습니다.

PCIe protocol은 이 slot에 연결된 장치와 링크를 시작하기 전에 각 PCIe slot 에서 receiver detection이 실행되어야 합니다. 링크를 시작하는 데는 데이터 전송을 위해 MGT (더 정확히는 training sequence)에 전원을 공급해야 하므로 불필요한 시도를 피하는 것이 에너지를 절약하는 데 중요합니다.

MGT의 송신기는 두 output wires (D+ 와 D-)에 짧은 전압 펄스를 생성하여 receiver detection을 수행합니다. 이것은 common mode 전압 펄스이므로 ground를 기준으로 동일한 전압이 두 전선에 적용됩니다. 반대편에 수신기가 있는 경우 측정 가능한 current가 수신기의 종단 저항을 통해 흐릅니다. 이 current는 송신기의 output전압에 영향을 미칩니다. 반대편에 수신기가 없는 경우 current는 무시할 수 있습니다. 따라서 송신기는 펄스가 시작된 직후 output 에서 전압을 측정하고 그에 따라 반대편에 수신기가 있는지 여부를 확인합니다.

펄스가 필요한 이유는(일반 DC 전압이 아닌) 송신기와 수신기 사이에 커패시터가 있기 때문입니다. 펄스 직후, 펄스 전압이 송신기와 수신기의 종단 저항에 떨어지면서 전류가 흐릅니다. 커패시터가 충전됨에 따라 current는 모든 RC circuit와 마찬가지로 낮아집니다. 전압이 일정하게 유지되면 current는 결국 0이 됩니다.

receiver detection은 수신기의 종단 저항이 D+ 와 D-둘 다에 대해 ground 에 연결된 경우에만 작동한다는 점에 유의하는 것이 중요합니다. 예를 들어, PCIe protocol은 이러한 종단 저항이 50Ω여야 합니다. ground에 연결하지 않고 D+ 와 D-사이에 100Ω 저항을 연결하여 동일한 차동 임피던스를 얻을 수 있습니다. 이런 방식으로 종단을 하면 receiver detection을 제외한 모든 기능이 제대로 작동합니다. 차이점은 다른 모든 기능은 D+ 와 D-사이의 차동 전압에 의존하지만 receiver detection은 두 전선에 동일한 전압을 적용하여 구현된다는 것입니다. 종단 저항이 중간에 ground 에 연결되지 않으면 current가 흐르지 않으므로 수신기가 감지되지 않습니다.

이것으로 MGTs에 대한 이 시리즈 의 여섯 번째 페이지를 마칩니다. 다음 페이지는 MGT의 clocking에 대한 몇 가지 설명으로 이 시리즈를 마무리합니다.

이 페이지는 영어에서 자동으로 번역됩니다. 불분명한 사항이 있으면 원본 페이지를 참조하십시오.
Copyright © 2021-2024. All rights reserved. (b4b9813f)