Hvorfor er seriell dataoverføring raskere enn parallell dataoverføring?
SATA-harddiskforbindelser er raskere enn eldre PATA-harddiskforbindelser, og det samme kan sies for eksterne kablingsstandarder, men dette er mot-intuitivt: hvorfor ville ikke parallelloverføringen bli raskere?
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser leser Modest er nysgjerrig på dataoverføringshastighetene for parallelle og serielle tilkoblinger:
Intuitivt, tror du at parallell dataoverføring bør være raskere enn seriell dataoverføring; Parallelt overfører du mange biter samtidig, mens i seriell gjør du en bit om gangen.
Så hva gjør SATA-grensesnitt raskere enn PATA, PCI-e-enheter raskere enn PCI, og serielle porter raskere enn parallelle?
Selv om det er lett å falle inn i argumentet om at SATA er nyere enn PATA, må det være en mer konkret mekanisme på jobb enn bare å bli gammel.
Svaret
SuperUser-bidragsyter Mpy gir litt innsikt i overføringstypenes natur:
Du kan ikke formulere det på denne måten.
Seriell overføring er tregere enn parallell overføring gitt samme signalfrekvens. Med en parallell overføring kan du overføre ett ord per syklus (for eksempel 1 byte = 8 biter), men med en seriell overføring bare en brøkdel av den (f.eks. 1 bit).
Grunnen til at moderne enheter bruker seriell overføring er følgende:
- Du kan ikke øke signalfrekvensen for en parallell overføring uten grense, fordi alle signaler fra senderen ved utforming må ankomme mottakeren ved samtidig. Dette kan ikke garanteres for høye frekvenser, da du ikke kan garantere at signal transittid er lik for alle signallinjer (tenk på forskjellige veier på hovedkortet). Jo høyere frekvensen, jo flere små forskjeller er det. Derfor må mottakeren vente til alle signallinjer er avgjort - åpenbart, venting senker overføringshastigheten.
- Et annet godt poeng (fra dette innlegget) er det man må vurdere crosstalk med parallelle signallinjer. Jo høyere frekvensen, jo mer utprøvde krysstalk blir, og jo høyere er sannsynligheten for et ødelagt ord og behovet for å sende det videre. [1]
Så selv om du overfører færre data per syklus med en seriell overføring, kan du gå til mye høyere frekvenser som resulterer i en høyere nettoverføringshastighet.
[1] Dette forklarer også hvorfor UDMA-kabler (parallell ATA med økt overføringshastighet) hadde dobbelt så mange ledninger som pinner. Hver andre ledning ble jordet for å redusere krysset.
Scott Chamberlain echo Myps svar og utvider seg på designens økonomi:
Problemet er synkronisering.
Når du sender parallell må du måle alle linjene nøyaktig samme øyeblikk, da du går raskere, blir vinduets størrelse for det øyeblikket mindre og mindre, så det kan bli så lite at noen av ledningene fremdeles kan stabilisere seg mens andre er ferdige før du løp ut av tiden.
Ved å sende inn seriell trenger du ikke lenger å bekymre deg for alle linjene som stabiliserer, bare en linje. Og det er mer kostnadseffektivt å få en linje til å stabilisere seg 10 ganger raskere enn å legge til 10 linjer med samme hastighet.
Noen ting som PCI Express gjør det beste fra begge verdener, de gjør et parallelt sett med serielle tilkoblinger (16x-porten på hovedkortet ditt har 16 serielle tilkoblinger). Ved å gjøre at hver linje ikke trenger å være i perfekt synkronisering med de andre linjene, så lenge kontrolleren i den andre enden kan omordne "pakker" med data etter hvert som de kommer inn med riktig ordre.
Hvordan fungerer Works-siden for PCI-Express, gjør det veldig bra å undersøke hvordan PCI Express i seriell kan være raskere enn PCI eller PCI-X parallelt.
TL; DR Versjon: Det er lettere å lage en enkelt tilkobling 16 ganger raskere enn 8 tilkoblinger, gå 2 ganger raskere når du kommer til svært høye frekvenser.
Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.