10Aug

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å jobben enn bare alder.

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).

Årsaken 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 design må komme til mottakeren ved samtidig .Dette kan ikke garanteres for høye frekvenser, da du ikke kan garantere at -signalovergangstiden er lik for alle signallinjer( tenk på forskjellige baner 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 at man må vurdere crosstalk med parallelle signallinjer. Jo høyere frekvensen, jo mer utprøvde krysstal 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 på nøyaktig samme øyeblikk. Når du går raskere, blir vinduets størrelse for det øyeblikket mindre og mindre, til slutt kan det bli så lite at noen av ledningene fremdeles kan værestabiliserer mens andre er ferdig før du går tom for tid.

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 til PCI-Express, gjør det veldig bra å forklare hvordan PCI Express i seriell kan være raskere enn PCI eller PCI-X parallelt.

TL; DR Versjon: Det er enklere å gjøre en enkelt tilkobling gå 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.