Perché la trasmissione dati seriale è più veloce di quella parallela?

Intuitamente, si potrebbe pensare che la trasmissione parallela dei dati dovrebbe essere più veloce della trasmissione seriale dei dati; in parallelo stai trasferendo molti bit contemporaneamente, mentre in serie stai facendo un po 'alla volta.

Quindi, cosa rende le interfacce SATA più veloci di PATA, i dispositivi PCI-e più veloci di PCI e le porte seriali più veloci di quelle parallele?

Non puoi formularlo in questo modo.

La trasmissione seriale è più bassa della trasmissione parallela data la stessa frequenza del segnale . Con una trasmissione parallela è ansible trasferire una parola per ciclo (es. 1 byte = 8 bit) ma con una trasmissione seriale solo una frazione di esso (es. 1 bit).

Il motivo per cui i dispositivi moderni utilizzano la trasmissione seriale sono i seguenti:

  • Non è ansible aumentare la frequenza del segnale per una trasmissione parallela senza limiti perché, per progettazione, tutti i segnali provenienti dal trasmettitore devono arrivare al ricevitore contemporaneamente . Questo non può essere garantito per le alte frequenze, in quanto non è ansible garantire che il tempo di transito del segnale sia uguale per tutte le linee di segnale (pensi a diversi routes sulla scheda madre). Maggiore è la frequenza, le differenze più piccole sono importnti. Quindi il ricevitore deve aspettare fino a che tutte le linee di segnale siano state risolte – ovviamente, aspettando abbassa la velocità di trasferimento.

  • Un altro ottimo punto (da questo post ) è che bisogna considerare la cresta con linee di segnale parallele. Maggiore è la frequenza, la croce più pronunciata ottiene e con essa è maggiore la probabilità di una parola corrotta e la necessità di ritrasmetterlo. 1

Quindi, anche se si trasferiscono less dati per ciclo con una trasmissione seriale, è ansible andare a frequenze molto più elevate che comportno una maggiore velocità di trasferimento netto.


1 Questo spiega anche perché i cavi UDMA (Parallel ATA con una maggiore velocità di trasferimento) avevano due volte il numero di cavi rispetto ai pin. Ogni secondo filo è stato collegato a terra per ridurre la rumorosità.

Il problema è la sincronizzazione.

Quando si invia in parallelo è necessario misurare tutte le linee nello stesso momento, poiché si va più veloce la dimensione della window per quel momento diventa più piccola e più piccola, infine può diventare così piccola che alcuni dei fili potrebbero ancora essere stabilizzanti mentre altri sono finiti prima di uscire dal tempo.

Inviando in serie non c'è più bisogno di preoccuparsi di tutte le linee che si stabilizzano, solo una linea. Ed è più conveniente fare una linea stabilizzare 10 volte più velocemente che aggiungere 10 righe alla stessa velocità.

Alcune cose come PCI Express fanno il meglio di entrambi i mondi, fanno un insieme parallelo di connessioni seriali (la port 16x sulla scheda madre ha 16 connessioni seriali). Facendo così che each linea non deve essere in perfetta sincronizzazione con le altre righe, finché il controller all'altra estremità può riordinare i "pacchetti" dei dati quando vengono utilizzando l'ordine corretto.

La pagina How Stuff Works per PCI-Express esegue una profonda esplorazione su come PCI Express in serie può essere più veloce di PCI o PCI-X in parallelo.


TL: è più facile fare una singola connessione 16 volte più veloce di 8 connessioni andare 2 volte più velocemente una volta raggiunto frequenze molto elevate.

Il parallelismo non è inevitabilmente più lento, ma introduce sfide che la comunicazione seriale non lo fa.

Ma molti dei collegamenti più veloci sono ancora paralleli: il bus frontale del computer è in genere altamente parallelo e di solito è tra i più veloci interconnessioni in un computer. Le connessioni in fibra ottica possono anche essere altamente parallele portndo più lunghezze d'onda su una singola fibra. Questo è costoso e quindi non è tipico. La forma più comune di ethernet Gigabit è in realtà 4 canali paralleli di Ethernet 250Mbit in un solo filo.

La sfida più pronunciata introdotta dal parallelismo è "crosstalk": quando la corrente del segnale inizia o si ferma, induce momentaneamente una piccola corrente sui fili accanto ad essa. Più veloce è il segnale, più spesso ciò accade e più difficile viene filtrato. L'IDE parallelo ha tentato di minimizzare questo problema raddoublendo la quantità di fili nel cavo a nastro e collegando each altro filo a terra. Ma questa soluzione ti port solo finora. Cavi lunghi, pieghe e loops e vicinanza ad altri cavi a nastro costituiscono una soluzione inaffidabile per segnali ad alta velocità.

Ma se andate con una sola linea di segnale, quindi allora siete liberi di cambiarla velocemente come il tuo hardware consentirà. Risolve anche problemi di sincronizzazione sottili con alcuni segnali che viaggiano più velocemente di altri.

Due fili sono sempre teoricamente due volte più veloci di uno, ma each linea di segnale aggiunta sottilmente complica la fisica, cosa che può essere meglio evitare.

La trasmissione seriale dei dati non è più veloce di quella parallela. È più conveniente e quindi lo sviluppo è andato a fare interfacce seriali esterne veloci tra unità di apparecchiature. Nessuno vuole trattare con cavi a nastro con 50 o più conduttori.

Tra chips su una scheda di circuito, un protocollo seriale come I2C che necessita solo di due fili è molto più facile da affrontare rispetto a routing numerose tracce parallele.

Ma ci sono molti esempi all'interno del tuo computer where il parallelismo viene utilizzato per aumentare in modo massiccio la width di banda. Ad esempio, le parole non vengono lette un po 'alla volta dalla memory. E infatti, le cache vengono ricaricate in grandi blocchi. Esempi di raster sono un altro esempio: accesso parallelo a più banche di memory per get più velocemente i pixel, in parallelo. La banda di memory dipende criticamente dal parallelismo.

Questo dispositivo DAC annunciato da Tektronix come "il più veloce al mondo a 10 bit ad alta velocità veloce a livello commerciale" fa un pesante uso del parallelismo per portre i dati che entrano nel DAC di oltre 320 righe, ridotti a 10 attraverso due fasi di multiplexing guidato da diverse divisioni del master 12 Orologio GHZ. Se il più veloce DAC a 10 bit a livello mondiale potrebbe essere fatto usando una singola linea di input seriale, allora probabilmente sarebbe.

Parallelamente è stato il modo evidente di aumentare la velocità quando le porte logiche erano abbastanza lente da poter utilizzare tecniche elettriche simili per gli autobus / cavi e la trasmissione su chip. Se stai già passando il filo velocemente come il tuo transistore consente, l'unico modo per scalare è quello di utilizzare più fili.

Con il tempo, la legge di Moore superò i vincoli elettromagnetici in modo che le trasmissioni sui cavi, o addirittura sui bus di bordo, diventassero un collo di bottiglia rispetto alle velocità del circuito integrato. OTOH, la disparità di velocità consente un'elaborazione sofisticata alle estremità per utilizzare il canale in modo più efficace.

  • Una volta che il ritardo della propagazione si avvicina all'ordine di alcuni orologi, si inizia a preoccuparsi degli effetti analogici come le riflessioni => necessità di impedenze abbinate lungo la strada (particolarmente difficile per i connettori) e preferiscono i fili punto-punto sui bus multipunto. Ecco perché SCSI ha bisogno di terminazione, ed è per questo che USB necessita di hub invece di semplici splitter.

  • A velocità più elevate si hanno più bit in volo in un determinato momento lungo il filo => è necessario utilizzare protocolli pipeline (è per questo che i protocolli FSB di Intel sono diventati spaventosamente complicati, penso che i protocolli packetizzati come PCIe siano una reazione a questa complessità).

    Un altro effetto è una penalità multi-ciclo per commutare la direzione del stream del segnale: per questo motivo Firewire e SATA e PCIe usano cavi dedicati per direzione superiori a USB 2.0.

  • Il rumore indotto, chiamato acustico, sale con frequenza. Il singolo incremento più veloce delle velocità è dovuto all'adozione di una segnalazione differenziale che ha ridotto drasticamente la crosstalk (mathmente, un field di carica squilibrato scende come R ^ 2, ma un field di dipolo scende come R ^ 3).

    Penso che questo è ciò che ha causato l'impressione "seriale è più veloce che parallela": il salto è stato così grande che potresti scendere a 1 o 2 coppie differenziali e ancora essere più veloce dei cavi LPT o IDE . C'era anche una vittoria di crosstalk da avere solo una coppia di segnali nel cavo, ma è minore.

  • Il ritardo di propagazione del filo varia (sia perché le lunghezze dei cavi sono difficili da abbinare a 90 °, connettori ecc. E per effetto parassitario di altri conduttori) che hanno reso la sincronizzazione un problema.

    La soluzione era quella di avere ritardi sintonizzabili ad each ricevitore e sintonizzarli all'avvio e / o continuamente dai dati stessi. La codifica dei dati per evitare le striature di 0s o 1s comport un piccolo sovraccarico, ma ha vantaggi elettrici (evita la deriva DC, controlla lo spettro) e soprattutto permette di abbandonare totalmente il filo (non più grande di 40) segnali ma è un grosso problema per un cavo seriale di avere 1 o 2 coppie invece di 2 o 3).

Si noti che stiamo gettando parallelismo al collo di bottiglia – i chip di oggi BGA hanno centinaia o migliaia di pin, i PCB hanno sempre più livelli. Confronta questo con i vecchi microcontrollori a 40 pin e PCB a 2 strati …

La maggior parte delle tecniche sopra indicate diventa indispensabile per la trasmissione parallela e seriale. È più che più i fili più lunghi, più attraente diventa per spingere più elevati tassi attraverso più fili.