Fråga:
Varför används digital seriell överföring överallt? dvs. SATA, PCIe, USB
artemonster
2018-08-30 13:31:20 UTC
view on stackexchange narkive permalink

Medan jag tittade på SATA, PCIe, USB, SD UHS-II slog det mig att de alla är desamma: digital seriell bitström, sänds med differentiella par (vanligtvis 8b / 10b kodade), med vissa skillnader i länk / protokolllager.
Varför då?Varför blev detta standard?
Varför finns det inga utbredda systemkommunikationsprotokoll som kraftigt använder vissa avancerade moduleringsmetoder för en bättre symbolhastighet?Har jag missat något? Det här är inte en fråga om "serie mot parallell" utan en fråga om "digital signalering mot modulerad analog"

Tja, vilka alternativ finns det?
Det brukade vara parallellt, men du skulle behöva mycket koppar och mycket breda kablar.
Och det är naturligtvis hur DDR fortfarande fungerar idag.
Eftersom det fungerar.
Och seriell passerade parallellt för skrivarkablar, et al, när elektroniken blev så billig att den seriella parallellomvandlaren var billigare än ledningen.
Det här är en fantastisk fråga!Jag har undrat detta sedan jag först hörde talas om denna "SATA-sak" för ett decennium sedan (efter att ha varit ute av IT-slingan i ett antal år), och hade bara aldrig brytt mig om att fråga.
Varför föreslår du inte "några avancerade moduleringsmetoder", så att vi kan förstå vad du menar och jämföra med "seriella bitströmmar"?
@AliChen Varför sända direkt 1s och 0s, istället för att välja något (till exempel) AM-schema?
Det tar längre tid att mäta spänningen mer exakt.Om du börjar införa fler spänningsnivåer än 1 och 0 kommer din frekvens att sjunka och du kommer inte att ha någon nettovinst i bandbredd (eventuellt en förlust).
@PlasmaHH innan SATA-personer använde IDE, vilket är en parallellport.PCIe lyckas PCI, vilket är parallellt.Och före USB-tillkomsten är den snabbaste externa porten parallellporten, därför används den ofta för skrivare och skannrar
@phuclv det antyddes ganska att detta är för nu, inte för 20 år sedan.Eller använder du fortfarande ide- och parallellportar i stor utsträckning?
åtta svar:
Neil_UK
2018-08-30 14:31:44 UTC
view on stackexchange narkive permalink

Det finns två huvudsakliga orsaker till att serien ökar

1) Det är möjligt. Lågkostnadstransistorer har kunnat hantera GHz-omkoppling i ett decennium nu, tillräckligt länge för att kapaciteten ska kunna användas och bli standard.

2) Det är nödvändigt. Om du vill flytta data med mycket hög hastighet mer än några inches. Det här avståndet börjar utesluta mobo till PCI-kortlänkar och definitivt utesluta mobo till hårddisk eller mobo / settopbox för att visa anslutningar.

Anledningen till detta är skev. Om du sänder flera parallella signaler längs en kabel måste de anlända inom en liten bråkdel av samma klockperiod. Detta håller klockfrekvensen nere, så kabelbredden måste öka. När datahastigheterna stiger blir det mer och mer ogynnsamt. Utsikterna att öka takten i framtiden är obefintlig, dubbel eller fyrdubbel ATA någon?

Sättet att döda den skeva demon är att gå serievis. En rad synkroniseras alltid med sig själv, det finns inget som den kan ske med. Linjen bär data som är självklockade. Det vill säga använder ett datakodningsschema (ofta 8b / 10b, ibland mycket högre) som ger en minimal garanterad övergångstäthet som möjliggör klockxtraktion.

Utsikterna att öka datahastigheten eller avståndet in i framtiden är utmärkta. Varje generation ger snabbare transistorer och mer erfarenhet av att skapa mediium. Vi såg hur det spelade ut med SATA, som började med 1,5 Gb / s, sedan gick igenom 3 och nu är 6 Gb / s. Även billiga kablar kan ge tillräckligt konsekvent impedans och rimlig förlust, och utjämnare är inbyggda i gränssnittskisel för att hantera frekvensberoende förlust. Optisk fiber är tillgänglig för mycket långa körningar.

För högre datahastigheter kan flera seriella länkar drivas parallellt. Detta är inte detsamma som att sätta ledare parallellt, som måste matchas i tid till mindre än en klockcykel. Dessa seriella banor behöver bara matchas inom en högnivå dataram, som kan vara µs eller till och med ms lång.

Naturligtvis gäller inte fördelen med databredden kablar och kontakter. Serial gynnar också kretskortsområdet mellan kontakter och chip, chip pinout och chip silicon area.

Jag har en personlig inställning till detta. Som designer som arbetade med programvarudefinierad radio (SDR) från 90-talet och framåt, brukade jag träna på människor som Analog Devices och Xilinx (och alla andra ADC- och FPGA-företag) (de skulle besöka oss då och då) får mig att köra så många parallella differentialanslutningar mellan ADC: er och multi-100 MHz och FPGA, när vi precis började se SATA växa fram för ATA. Vi fick äntligen JESD204x, så nu kan vi ansluta omvandlare och FPGA med bara några seriella linjer.

PCI express 3 och 4 använder 128b / 130b-kodning.
Vad är den 'Nb / (N + 2) b' nomenklatur som människor använder här?
@detly Jag tror att de är nyttolast (N bitar) och enhet (N + 2 bitar) storlek.Enheten är en nyttolast som föregås av en ingress.
@detly [8b / 10b] (https://en.wikipedia.org/wiki/8b/10b_encoding), 64b / 66b är båda former av [Line-Code] (https://en.wikipedia.org/wiki/Line_code) kodning.I seriekommunikationssammanhang krävs linjekodning för att du ska kunna göra klockåterställning] (https://en.wikipedia.org/wiki/Clock_recovery).
Det kan vara värt att nämna några relevanta mått för att ge mer detaljerad information om ditt tredje stycke.Signaler kommer att spridas något långsammare än ljusets hastighet ~ 11,8 tum / ns.Vid 1 GHz, det är inte så illa, men vid 6 GHz betyder det att du har ungefär 3 tum innan dina signaler anländer vid olika tidpunkter.
@tolos - hastighetsfaktorn för de flesta smaker av * vanliga * PCB-material är cirka 50% (6 in / ns).
För att streama saker som video, skulle det finnas något särskilt hinder för att ha flera parallella anslutningar, var och en med sin egen interna klockning, varav en är specificerad att sändas något bakom de andra?En mottagare kan förväntas ta emot och lagra data från alla andra ledningar och sedan agera på den när data mottogs från den fördröjda kabeln.Det verkar som om det skulle möjliggöra en generös mängd skevhet, samtidigt som man lägger till minimal fördröjning, och skulle möjliggöra ökad bandbredd godtyckligt genom att lägga till fler ledningar.
@supercat det är precis hur flera körfält hanteras, varje fil har sin egen oberoende klockning.Data är inramad och sprids över alla banor.När mottagaren har alla ramar, fungerar den på data.Detta möjliggör skevhet relaterad till dataramen, vilket kan vara oss eller till och med ms som jag sa i mitt svar.Detta är betydelsen av antalet banor i PCIe, och hur 2xHDMI hanteras till en högpresterande skärm.
@Neil_UK: HDMI har en klockkabel tillsammans med en fil för varje RGB, även om jag måste erkänna att jag är osäker på vad syftet med klockkabeln skulle vara om kanalerna kunde ske ske mer än lite tid.Har 2xHDMI olika specifikationer för skevhet mellan de två uppsättningarna RGB-kablar än mellan ledningarna i varje RGB-grupp?
@supercat Klockkabeln är för I2C-datakanalen, video / ljud hanteras av differentiell seriell
Är inte en annan fördel med seriella mindre sändtagare \ stift \ ledningar och kiselområde?Jag skulle lägga till det i svaret
@laptop2d ja, det är värt ett kort stycke, thx.
@PeterSmith: fiberkanal (även om det sällan görs på koppar) använder 256/257 kodning jämnt
tack för ett detaljerat svar, men frågan var inte "varför är den seriell och inte parallell", men "varför är den digital och inte modulerad?"fortfarande ett bra svar :)
@artemonster ja, missade helt den exakta frågan, kanske för att svaret är så uppenbart.I en trådbunden miljö används binär digitalbasbas för att det kan vara, för det är så enkelt.De har gjort smartare användning av mediet som går från 33MHz TTL till 6GHz LVDS, jag skulle kalla det "avancerat".I en icke trådbunden miljö måste du modulera.Det har gått från AM via FM och QAM till OFDM, men det behöver en enorm mängd smart för att plocka ut data ur länken, medan digital bara behöver en komparator.
på något sätt fick jag intryck av att det är "enklare" att använda lägre frekvenser och kraftigt modulerad signal för att uppnå samma genomströmning mot att trycka signalfrekvensen i övre GHz och hantera alla problem som uppstår med det, för digital phy är inte "bara en jämförare"längre.
@artemonster Jag tror att det viktigaste (det finns flera viktiga saker) är att en binär komparator är enklare, lägre effekt, lägre felfrekvens etc, än en flernivå, liksom en binär sändare.Jag märker Ali Chens svar hänvisar till 1G-Ethernet, vilket kan vara lite ovanligt eftersom det försöker klämma igenom genomströmningen till en befintlig elektrisk specifikation, därav användningen av flernivå.Som alltid kommer det mesta att kosta.Det kan vara intressant att göra en detaljerad design av ett modulerat överföringssystem med samma genomströmning som 8-spårig PCIe, eller en 6G SATA, och se vad effektjämförelsen var.
@Neil_UK:-beskrivningar som jag hade läst om HDMI indikerade att det använde ett differentiellt par för att skicka en fyrkantvågssignal vars halvperiod var 1/10 datahastigheten, med förväntan att mottagare skulle använda en PLL för att skala upp den tio gånger.Var det i huvudsak övergett för den andra RGB-gruppen, eller är tanken att använda en klockkant som borde förekomma i mitten av varje pixeldata för att låsa utdata från föregående pixel på varje kanal (som alla borde ha kommit om de 'snedställs med 4 bitar eller mindre).
Om varje kanal matade en mottagningskrets som spärrade 8 parallella bitar efter varje byte var komplett på röret, och en av dem hade en krets som genererade en utgång i mitten av varje byte, med nästa kretsklocka alla grupper om 8 bitar ien FIFO skulle vara ett pålitligt sätt att få synkroniserade byte från alla kanaler med eller utan en separat klocka.Jag undrar vad syftet med klocksignalen var [eller, för den delen, varför det är så mycket långsammare att byta till HDMI-ingångar än att byta till analoga).
Andy aka
2018-08-30 13:56:42 UTC
view on stackexchange narkive permalink

Varför det inte finns några utbredda systemkommunikationsprotokoll som använder starkt några avancerade moduleringsmetoder för en bättre symbol ränta?

Om den grundläggande kopparförbindelsen mellan två punkter stöder en digital bithastighet som överstiger den datahastighet som behövs för att överföras av "applikationen", varför bry sig då om något annat än standarddifferentialhöghastighetssignalering?

Att använda ett avancerat moduleringsschema görs vanligtvis när "kanalen" har en bandbredd som är mycket mer begränsad än koppar eller fiber.

tack!även om det fanns riktigt bra svar så är det den jag letade efter!
En enkel fråga kräver ett enkelt svar men du kan inte stoppa folk som vill täcka mer mark än vad den ursprungliga frågan krävde.
och det här är bra :) Jag har lärt mig mycket av andra svar eftersom de var ganska informativa.
Simon B
2018-08-30 14:07:00 UTC
view on stackexchange narkive permalink

Om du vill ha ett exempel på något som används ofta, men annorlunda, titta på 1000BASE-T gigabit Ethernet.Det använder parallella kablar och icke-trivial signalkodning.

För det mesta använder människor seriella bussar eftersom de är enkla.Parallella bussar använder mer kabel och lider av signalförskjutning vid höga datahastigheter över långa kablar.

GbE skapades genom att kasta pengar på problemet att driva mer data över de stora mängderna av befintliga Cat 5-ledningar.Det skulle förmodligen inte riktigt se ut som om ett nytt gränssnitt designades utan bekymmer över bakåtkompatibilitet.Se hur 10GbE inte gör några allvarliga inbrott i kommersiella / inhemska miljöer eftersom det kräver installation av nya Cat 6a-kablar.
10GbE kan fortfarande fungera på cat5e eller cat5 beroende på kabellängd och / eller kvalitet.
DrSheldon
2018-08-30 22:35:27 UTC
view on stackexchange narkive permalink

För att lägga till andra fina svar:

Frågorna som noteras i andra svar (framför allt skev mellan parallella signaler och kostnaderna för extra ledningar i kabeln) ökar när avstånden för signalerna ökar.Således finns det ett avstånd där serier blir överlägsna parallella, och det avståndet har minskat i takt med att datahastigheterna har ökat.

Parallell dataöverföring sker fortfarande: insidan av chips och även de flesta signalerna i kretskorten.De avstånd som behövs för externa kringutrustning - och även för interna enheter - är nu för långa och för snabba för att parallella gränssnitt ska kunna förbli praktiska.Således är signalerna som en slutanvändare nu kommer att exponeras för till stor del seriella.

Förmodligen det bästa exemplet på höghastighets parallell signalering är RAM-minne, särskilt på datorer.
Utmärkt svar, pekar direkt på rotfrågan om tidssynkronisering över rumsliga domäner.En sak att notera, du kan fortfarande ha mer än två symboler på en seriell länk, vilket ger en viss fördel med parallellkommunikation genom att använda modulering för att koda fler bitar per baud
@JanDorniak, är det värt att notera att DDR * -minnet har datastrobitar som används för synkronisering.Detta gör att en bred buss kan delas upp i flera mindre bussar.Det är lättare att dirigera flera 8-bitars parallella bussar än det är att dirigera en enda 32-bitars buss.
@CalebReister visste inte det.Ändå är det parallellt.Jag hade personligen en situation där en modern dator skulle fungera eller inte beroende på vilken plats DDR4 sattes in.Det slutade som UEFI som tvingade lägre latens då minnet kunde.
Dmitry Grigoryev
2018-08-30 16:34:57 UTC
view on stackexchange narkive permalink

Avancerade moduleringstekniker kräver att du sänder och tar emot analoga signaler.ADC: er och DAC: er som körs på hundratals MHz tenderar att vara dyra och förbrukar en hel del ström.Signalbehandling som krävs för avkodning är också kostsam när det gäller kisel och effekt.

Det är helt enkelt billigare att skapa ett bättre kommunikationsmedium som kan stödja binära signaler.

bra poäng.Tack för svaret :)
Jim
2018-08-31 00:50:36 UTC
view on stackexchange narkive permalink

Varför blev den seriella bitströmmen så vanlig?

Att använda seriella länkar har fördelen att det minskar den fysiska storleken på anslutningen. Moderna integrerade kretsarkitekturer har så många stift på sig att detta skapade ett starkt behov av att minimera de fysiska samtrafikkraven för deras design. Detta ledde till att kretsar utvecklades som arbetar i extrema hastigheter vid gränssnitten mellan dessa kretsar och använder seriella protokoll. Av samma anledning är det naturligt att minimera kraven på fysisk samtrafik någon annanstans i någon annan datalänk.

Den ursprungliga efterfrågan på denna typ av teknik kan också ha sitt ursprung i fiberoptisk dataöverföringsdesign.

När tekniken för att stödja höghastighetslänkar blev mycket vanlig var det bara naturligt att använda den på många andra platser, eftersom den fysiska storleken på seriella anslutningar är så mycket mindre än parallella anslutningar.

Varför finns det inga utbredda systemkommunikationsprotokoll som kraftigt använder vissa avancerade moduleringsmetoder för en bättre symbolhastighet?

På kodningsnivå kan kodningsscheman för digital kommunikation vara så enkla som NRZ (Non-Return to Zero), en lite mer komplicerad Linjekod (t.ex. 8B / 10B), eller mycket mer komplicerat, som QAM (Quadrature Amplitude Modulation).

Komplexitet ökar kostnaden, men valen är också beroende av faktorer som i slutändan är beroende av informationsteori och kapacitetsgränserna för en länk. Shannons lag från Shannon-Hartley Theorem beskriver den maximala kapaciteten för en kanal (tänk på det som "anslutningen" eller "länk"):

Maximal kapacitet i bitar / sekund = bandbredd * Log2 (1 + signal / ljud)

För radiolänkar (något som LTE eller WiFi) kommer bandbredden att begränsas, ofta av lagliga bestämmelser. I dessa fall kan QAM och liknande komplexa protokoll användas för att ta bort den högsta möjliga datahastigheten. I dessa fall är signal / brusförhållandet ofta ganska lågt (10 till 100, eller i decibel 10 till 20 dB). Det kan bara gå så högt innan en övre gräns uppnås under angiven bandbredd och signal / brusförhållande.

För en trådlänk regleras inte bandbredden av något annat än genomförbarheten. Trådlänkar kan ha ett mycket högt signal / brusförhållande, större än 1000 (30 dB). Som nämnts i andra svar är bandbredden begränsad av utformningen av transistorerna som driver tråden och tar emot signalen, och i själva tråden (en överföringsledning).

När bandbredd blir en begränsande faktor men signal / brusförhållande inte är, hittar konstruktören andra sätt att öka datahastigheten. Det blir ett ekonomiskt beslut om man ska gå till ett mer komplext kodningsschema eller gå till mer tråd:

Du ser verkligen seriella / parallella protokoll som används när en enda kabel fortfarande är för långsam. PCI-Express gör detta för att övervinna maskinvarans begränsningar för bandbredd genom att använda flera banor.

I fiberöverföringar behöver de inte lägga till fler fibrer (även om de kanske använder andra om de redan är på plats och inte används). Den kan använda vågdelningsmultiplexing. Generellt görs detta för att tillhandahålla flera oberoende parallella kanaler, och den skeva frågan som nämns i andra svar berör inte oberoende kanaler.

Bra svar.Det gör mig nyfiken på om någon kunde (eller redan har?) Göra något som att implementera 256-QAM med USB3-hastigheter för riktigt fantastiska överföringshastigheter ...
FWIW, fibervärlden börjar utveckla och distribuera mer komplexa moduleringsscheman.PAM-4 kommer för 100 och 400 G Ethernet, och telekommunikationssystem börjar (tror jag, men det är inte mitt område) att använda en sammanhängande QAM.
men egentligen, om SNR för en trådledning är så bra, varför inte pressa ut alla möjliga bandbredd?Varför trycka in i GHZ-frekvenser (med alla relevanta problem), där du kan gå mycket långsammare och använda lite modulering / kodning.Skulle det inte vara bekvämare?
Det kan du göra.Det blir ett ekonomiskt beslut.
QAM kräver en operatör, så det är inte mycket meningsfullt att göra något annat än PAM för "basband" digital.Den används i den optiska domänen och använder sig av ljuset som bärare.Över koppar skulle du i princip bara bygga en radiosändare.Detta skulle kräva mycket mer analoga kretsar med hög hastighet, och all komplexitet och ökad energiförbrukning som följer med det.Serializers och deserializers är relativt enkla i jämförelse.IMHO, vi är mer benägna att se integrerade kiselfotonmodulatorer och detektorer än att flytta till QAM över koppar.
För fiber använder de säkert parallella fibrer.Något multimode vid denna tidpunkt gör inte WDM.Så 100G LR4 är 4 25 Gbps-länkar vid 850 nm över 8 multimodefibrer.Det finns också en PSM4-standard, som är 4 banor med 25 Gbps vid 1310 nm över 8 single-mode fibrer.CWDM-sändtagare i 1310 nm-bandet finns, men de tenderar att vara mycket dyrare än sändtagare med flera lägen.Långväga saker använder WDM, men i så fall betalar de en enorm premie på sändtagarna för bandbreddseffektivitet.
old_timer
2018-08-31 05:57:17 UTC
view on stackexchange narkive permalink

Ta fyra semi-lastbilar med nyttolast. Fyra körfält per sidoväg. För att lastbilarna ska lyckas dra nyttolasten parallellt måste de vara perfekt sida vid sida, man kan inte vara framför eller bakom de andra med mer än en tum kan säga. Kullar, kurvor, spelar ingen roll. Variera för mycket och det misslyckas totalt.

Men låt dem ta en körfält och avståndet mellan dem kan variera. Även om det stämmer linjärt tar det över fyra gånger avståndet från den första lastbilens framsida till den sista för att flytta nyttolasten, men de behöver inte vara perfekt placerade. Precis inom längden på en lastbil måste hytten och nyttolasten och nyttolastens längd vara korrekt placerade och placerade på avstånd.

De går till och med så långt att de är parallella, pcie, nätverk, etc, men även om de är tekniskt flera separata datavägar är de inte parallella eftersom de måste lämna och anlända samtidigt med lastbilanalogin de fyra lastbilarna kan köra på fyra körfält ungefär parallellt men kan variera, lastbilarna är markerade med vilken körfält de anlände så att när de anländer till andra änden kan nyttolasten kombineras till den ursprungliga datamängden. Och / eller varje körfält kan vara en datamängd i serie och genom att ha fler körfält kan du flytta fler datamängder samtidigt.

Fälten behöver inte vara perfekt "inriktade".Moderna gränsöverskridande gränssnitt använder mer sofistikerade metoder för symbolinriktning än att vara perfekt sida vid sida.
Okej, det är vad jag sa.
Tillo Reilly
2018-09-03 15:48:15 UTC
view on stackexchange narkive permalink

Som ett tillägg till Dmitry Grigoryev s kommentar.

Analog överföring är alltid mer benägen än digital överföring. En digital seriell överföring har till exempel klockade flanker, där en analog signal på något sätt flyter mellan 0V och VDD. Så störningar är mycket svårare att upptäcka. Man kan ta hänsyn till det och använda differentiell signalering, som gjort i Audio.

Men då stöter du på den hastighet mot noggrannhet av DAC / ADC. Om du måste digitala system prata med varandra är det vettigare att använda en digital överföring, eftersom du inte behöver lite tidskrävande DA-AD-översättning.

Men om du har en analog dator som körs på analoga styrspänningar, finns det fortfarande några runt, de ser ut som analoga modulära syntar i princip, saker och ting är annorlunda, och vanligtvis kan du bara bygga analoga datorer för specifika uppgifter. Rolig presentation på tyska om analog datoranvändning.

När vi pratar om analoga modulära syntar är de också någon form av analoga datorer, speciellt utformade för att göra samtalsberäkningar för att ändra signaler.

Så det finns analog överföring i datorer, men begränsad till mycket specifika fält.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 4.0-licensen som det distribueras under.
Loading...