Perché la trasmissione seriale dei dati è più veloce del parallelo?


133

Intuitivamente, si potrebbe pensare che la trasmissione di dati paralleli dovrebbe essere più veloce della trasmissione di dati seriale; in parallelo stai trasferendo molti bit contemporaneamente, mentre in seriale stai facendo un bit alla volta.

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


Forse lo è, ma in tal caso, vedo tutti questi intel.com/content/www/us/en/chipsets/performance-chipsets/… dice più corsie per PCIe, e ho cercato IDE su Wikipedia e ha detto " 2 collegamenti / canali / tubi a frequenza fissa a 4 bit indipendenti "e colloqui DMI di 4 collegamenti. (aggiunto - La risposta di Scott potrebbe in parte coprirlo)
barlop

2
Tutto si riduce alla frequenza di clock.
Daniel R Hicks,

36
Le tre risposte esistenti non menzionano l'economia, vale a dire il costo . È semplicemente più economico creare un'interfaccia seriale molto veloce rispetto a un'interfaccia parallela molto veloce. Per le linee di trasmissione, un cavo seriale che utilizza solo pochi fili è più economico di un cavo parallelo che sarà difficile e costoso da schermare.
segatura

13
Ai tempi delle connessioni DB25 e DB9 , sei stato fortunato a spingere 115 kbit / s in seriale mentre in parallelo hai ottenuto 12 Mbit / s con otto pin di dati paralleli.
un CVn

Risposte:


145

Non puoi formularlo in questo modo.

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

Il motivo per cui i dispositivi moderni utilizzano la trasmissione seriale è il seguente:

  • Non è possibile aumentare la frequenza del segnale di trasmissione in parallelo senza limiti, in quanto, di progettazione, tutti i segnali dal trasmettitore devono arrivare al ricevitore al tempo stesso . Questo non può essere garantito per le alte frequenze, in quanto non è possibile garantire che il tempo di transito del segnale sia uguale per tutte le linee di segnale (si pensi a percorsi diversi sulla scheda madre). Maggiore è la frequenza, più piccole sono le differenze. Quindi il ricevitore deve attendere fino a quando tutte le linee di segnale sono sistemate - ovviamente, l'attesa riduce la velocità di trasferimento.

  • Un altro punto positivo (da questo post ) è che bisogna considerare il crosstalk con linee di segnale parallele. Maggiore è la frequenza, maggiore è la diafonia pronunciata e con essa maggiore è la probabilità di una parola corrotta e la necessità di ritrasmetterla. 1

Quindi, anche se trasferisci meno dati per ciclo con una trasmissione seriale, puoi andare a frequenze molto più alte che si traducono in una velocità di trasferimento netta più alta.


1 Questo spiega anche perché i cavi UDMA (Parallel ATA con velocità di trasferimento maggiore) avevano il doppio dei fili rispetto ai pin. Ogni secondo filo era collegato a terra per ridurre la diafonia.


9
Il ricevitore non deve attendere che tutte le linee si stabilizzino contemporaneamente: la trasmissione parallela veloce al giorno d'oggi comporta la misurazione e quindi la compensazione del ritardo di arrivo su ciascun filo separatamente . Questo vale anche per i brevi collegamenti integrati come CPU <-> DRAM! Ciò è diventato possibile adottando alcune tecniche seriali come orologi incorporati (ad es. Codifica 8b / 10b) e / o sequenze di allenamento.
Beni Cherniavsky-Paskin,

La tua elaborazione è in contraddizione con la tua affermazione. Inizi a dichiarare che il seriale è più lento e spiega perché è più veloce. Penso che sia fonte di confusione e mi chiedo come possa rispondere.
Val

11
@Val Non stai leggendo l'intera risposta. Un autobus muove più persone di un'auto quando percorrono la stessa velocità, ma a causa del modo in cui la fisica funziona, queste auto possono andare molto più velocemente di un autobus, quindi è più veloce spostare le persone usando auto che autobus. Lo stesso vale per i collegamenti dati: alla stessa velocità, i cavi paralleli spostano più dati di un cavo seriale; tuttavia, possiamo spingere un cavo seriale per operare molto, molto più velocemente di un cavo parallelo. Se proviamo ad accelerare il cavo parallelo, la fisica fa diventare i dati inutili.
Darth Android

1
In effetti vedo sottosopra. È il trasporto passeggeri (pubblico) che ha un rendimento maggiore, perché non si trasporta l'automobile con tutti, anche se le persone preferiscono spostarsi individualmente, in automobili parallele e, quindi, sviluppare ampie infrastrutture di periferia invece di imballare le persone in città compatte e 3D. Vedo l'esplosione di bit seriali come un treno. In sostanza, l'invio di un pacchetto è costoso ma non importa quanti dati si inviano per pacchetto. Pertanto, è 1000 volte più economico inviare un treno di 1000 bit anziché 1000 macchine parallele.
Val

1
@Val Ecco come funziona il trasporto, sì, ma non è così che funziona la fisica dell'elettromagnetismo e non si adatta come un'analogia. Nessuno parla di efficienza qui, solo velocità e produttività. Anche se un collegamento parallelo può spostare più dati per ciclo di clock, un collegamento seriale può spostare meno dati per ciclo di clock ma ha così tanti più cicli di clock nello stesso lasso di tempo che ha comunque un throughput più elevato.
Darth Android,

70

Il problema è la sincronizzazione.

Quando invii in parallelo devi misurare tutte le linee nello stesso preciso istante, man mano che vai più veloce la dimensione della finestra per quel momento diventa sempre più piccola, alla fine può diventare così piccola che alcuni dei fili potrebbero ancora stabilizzarsi mentre altri hanno finito prima che tu abbia finito il tempo.

Inviando in seriale non è più necessario preoccuparsi di stabilizzare tutte le linee, solo una linea. Ed è più conveniente far stabilizzare una linea 10 volte più velocemente che aggiungere 10 linee alla stessa velocità.

Alcune cose come PCI Express fanno il meglio dei due mondi, fanno un insieme parallelo di connessioni seriali (la porta 16x sulla scheda madre ha 16 connessioni seriali). In questo modo non è necessario che ogni riga sia perfettamente sincronizzata con le altre, purché il controller all'altra estremità possa riordinare i "pacchetti" di dati che arrivano nell'ordine corretto.

La pagina How Stuff Works per PCI-Express fa un'ottima spiegazione approfondita su come PCI Express in seriale può essere più veloce di PCI o PCI-X in parallelo.


Versione TL; DR: è più semplice eseguire una singola connessione 16 volte più velocemente di 8 connessioni 2 volte più veloci una volta raggiunte frequenze molto alte.


1
@barlop Puoi fare parallelo in Ethernet, ma non è molto comune nell'uso da parte del consumatore, il termine per esso si chiama Channel Bonding . --correction : è diventato comune nell'uso da parte dei consumatori, usando il collegamento della frequenza wireless. è così che 802.11n può ottenere velocità fino a 600 Mbit / s , usano fino a 4 flussi seriali simultanei.
Scott Chamberlain,

1
@barlop Ti ho dato il termine sbagliato, Channel Bonding è il termine generico più ampio, in particolare per Ethernet il termine corretto per quello che stai chiedendo si chiama Link aggregation .
Scott Chamberlain,

2
Rich Seifert ha scritto "In effetti, molte persone chiamano IEEE 802.11" Wireless Ethernet ". Mentre questo sicuramente vola di fronte a qualsiasi argomento tecnologico (non usa nemmeno lo stesso formato di frame di IEEE 802.3), posso conviverci quando parlo alle persone per le quali la differenza tecnologica non è importante . " <- le sue parole. Ho letto alcuni anni fa che presiede e modifica 802.3x e ha presieduto Ethernet II (apparentemente DIX Ethernet, Ethernet 10 Mbps) - e ho letto che è "un partecipante attivo alla Task Force IEEE 802.3z Gigabit Ethernet". Quindi, una vera autorità per dire che 802.11 non è Ethernet.
barlop

1
La 1000BASE-T Ethernet (802.3ab, "gigabit Ethernet") utilizza 4 coppie di cavi in ​​parallelo.
Saluti

4
L'economia di Ethernet è diversa da quella dei bus come SATA: i cavi sono molto lunghi e costosi da sostituire, quindi alla fine ti concentri sull'aggiornamento dell'elettronica. La prima Ethernet utilizzava 1 coppia di fili ma standardizzata su cavi a 4 coppie anticipando un uso futuro (a quell'epoca il parallelo era l'approccio ovvio alla trasmissione più veloce). Ciò si è rivelato difficile, a causa della diafonia, ma poiché i cavi sono già lì, è stato un peccato non usarli. Alla fine, è diventato possibile eseguire la cancellazione del crosstalk con elaborazione DSP molto complicata-> D2A-> ... cavo ... -> A2D-> elaborazione DSP.
Beni Cherniavsky-Paskin,

19

Il parallelo non è intrinsecamente più lento, ma introduce delle difficoltà rispetto alle comunicazioni seriali.

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

La sfida più pronunciata introdotta dal parallelismo è la "diafonia": quando la corrente del segnale inizia o si interrompe, induce momentaneamente una piccola corrente sui fili accanto ad essa. Più veloce è il segnale, più spesso ciò accade e più diventa difficile filtrare. L'IDE parallelo ha tentato di ridurre al minimo questo problema raddoppiando la quantità di fili nel cavo a nastro e collegando ogni altro filo a terra. Ma quella soluzione ti porta solo così lontano. Cavi lunghi, pieghe e anelli e vicinanza ad altri cavi a nastro rendono questa soluzione inaffidabile per segnali ad altissima velocità.

Ma se vai con una sola linea di segnale, allora sei libero di cambiarlo velocemente quanto l'hardware lo permetterà. Risolve anche sottili problemi di sincronizzazione con alcuni segnali che viaggiano più velocemente di altri.

Due fili sono sempre teoricamente due volte più veloci di uno, ma ogni linea di segnale che aggiungi sottilmente complica la fisica, che potrebbe essere meglio evitare.


L'FSB non fa parte dei progetti di CPU mainstream dall'era Intel Core 2, AMD l'ha lasciata alle spalle alcuni anni prima con il design AMD64. Invece entrambi hanno spostato il controller di memoria sulla CPU stessa e hanno collegato tutto il resto alla CPU con bus veloci / stretti invece del design (relativamente) largo / lento di un FSB.
Dan Neely,

Le tecniche di riduzione incrociata sono note da decenni, ma come notato nei commenti alle domande introducono costi aggiuntivi, e alcune di esse peggiorano il problema di sincronizzazione (le coppie intrecciate con diversi rapporti di rotazione presentano lievi variazioni di impedenza, il che significa lieve variazioni nelle velocità di trasmissione e ...).
dmckee,

13

La trasmissione seriale dei dati non è più veloce del parallelo. È più conveniente e quindi lo sviluppo è andato nel rendere l'interfaccia seriale esterna veloce tra le unità dell'apparecchiatura. Nessuno vuole occuparsi di cavi a nastro che hanno 50 o più conduttori.

Tra i chip su un circuito stampato, un protocollo seriale come I2C che richiede solo due fili è molto più semplice da gestire rispetto all'instradamento di numerose tracce parallele.

Ma ci sono molti esempi all'interno del tuo computer in cui il parallelismo viene utilizzato per aumentare in modo massiccio la larghezza di banda. Ad esempio, le parole non vengono lette un bit alla volta dalla memoria. E infatti, le cache vengono riempite in blocchi di grandi dimensioni. I display raster sono un altro esempio: accesso parallelo a più banchi di memoria per ottenere i pixel più velocemente, in parallelo. La banda di memoria dipende in modo critico dal parallelismo.

Questo dispositivo DAC pubblicizzato da Tektronix come "il DAC ad alta velocità a 10 bit disponibile in commercio più veloce del mondo" fa un uso pesante del parallelismo per portare i dati, che entrano nel DAC su 320 linee, che sono ridotte da 10 a due fasi di multiplexing guidato da diverse divisioni del master 12 orologio GHZ. Se il DAC a 10 bit più veloce del mondo potesse essere realizzato utilizzando una singola linea di ingresso seriale, probabilmente lo farebbe.


1
+1 per menzionare i cavi a nastro a 50 pin. Una delle motivazioni per andare ai cavi SAS / SATA era che i cavi larghi stavano influenzando il flusso d'aria all'interno della scatola.
jqa,

11

Parallelo era il modo ovvio per aumentare la velocità quando le porte logiche erano abbastanza lente da poter utilizzare tecniche elettriche simili per bus / cavi e trasmissione su chip. Se stai già attivando / disattivando il filo più velocemente che il tuo transistor consente, quindi l'unico modo per ridimensionare è utilizzare più fili.

Con il passare del tempo, la legge di Moore ha superato i vincoli elettromagnetici, quindi le trasmissioni su cavi, o persino su autobus di bordo, sono diventate un collo di bottiglia rispetto alle velocità su chip. OTOH, la disparità di velocità consente un'elaborazione sofisticata alle estremità per utilizzare il canale in modo più efficace.

  • Una volta che il ritardo di propagazione si avvicina all'ordine di alcuni orologi, inizi a preoccuparti degli effetti analogici come riflessioni => hai bisogno di impedenze abbinate lungo la strada (specialmente complicate per i connettori) e preferisci i cavi punto-punto rispetto ai bus multipunto. Ecco perché SCSI necessitava di terminazione, ed è per questo che USB ha bisogno di hub anziché semplici splitter.

  • A velocità più elevate si hanno più bit in volo in un dato momento lungo il filo => è necessario utilizzare protocolli con pipeline (motivo per cui i protocolli Intel FSB sono diventati terribilmente complicati; penso che protocolli a pacchetto come PCIe fossero una reazione a questa complessità).

    Un altro effetto è una penalità multi-ciclo per la commutazione della direzione del flusso del segnale, ecco perché Firewire e SATA e PCIe che utilizzano cavi dedicati per direzione hanno superato USB 2.0.

  • Il rumore indotto, noto anche come crosstalk, aumenta di frequenza. Il singolo più grande progresso nelle velocità è arrivato dall'adozione della segnalazione differenziale che ha ridotto drasticamente il crosstalk (matematicamente, il campo di una carica sbilanciata scende come R ^ 2, ma il campo di un dipolo scende come R ^ 3).

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

  • Il ritardo di propagazione del filo varia (sia perché le lunghezze del filo sono difficili da abbinare su curve a 90º, connettori ecc. Sia a causa degli effetti parassiti di altri conduttori) che hanno reso un problema la sincronizzazione.

    La soluzione era quella di avere ritardi sintonizzabili su ogni ricevitore e sintonizzarli all'avvio e / o continuamente dai dati stessi. La codifica dei dati per evitare strisce di 0 o 1 comporta un piccolo sovraccarico ma ha vantaggi elettrici (evita la deriva in corrente continua, controlla lo spettro) e, soprattutto, consente di far cadere del tutto i fili del clock (che non è un grosso problema in cima a 40 segnali ma è un grosso problema per un cavo seriale avere 1 o 2 coppie invece di 2 o 3).

Si noti che ci stiamo gettando il parallelismo al collo di bottiglia - chip BGA di oggi abbiamo centinaia o migliaia di spine, i PCB hanno più e più strati. Confronta questo con i vecchi microcontrollori a 40 pin e PCB a 2 strati ...

La maggior parte delle tecniche di cui sopra è diventata indispensabile sia per la trasmissione parallela che seriale. È solo che più lunghi sono i fili, più diventa attraente spingere i tassi più alti attraverso meno fili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.