Källsynkront
Källa-synkron klockning hänvisar till en teknik som används för timing av symboler på ett digitalt gränssnitt. Specifikt hänvisar det till tekniken att låta sändningsanordningen skicka en klocksignal tillsammans med datasignalerna. Tidpunkten för de enkelriktade datasignalerna refereras till klockan (ofta kallad stroben) som kommer från samma enhet som genererar dessa signaler, och inte till en global klocka (dvs genererad av en bussmaster). Jämfört med andra digitala klockningstopologier som systemsynkrona klockor, där en global klockkälla matas till alla enheter i systemet, kan en källsynkron klocktopologi uppnå mycket högre hastigheter.
Denna typ av klockning är vanlig i höghastighetsgränssnitt mellan mikrochips, inklusive DDR SDRAM , SGI XIO- gränssnitt, Intel Front Side Bus för x86- och Itanium -processorer, HyperTransport , SPI-4.2 och många andra.
Orsaker till användning
En anledning till att källsynkron klockning är användbar är att det har observerats att alla kretsar inom en given halvledarenhet upplever ungefär samma process-spänning-temperatur (PVT) variation. Detta innebär att signalutbredningsfördröjning som upplevs av data via en enhet spårar fördröjningen som klockan upplever genom samma enhet över PVT. Denna fördel tillåter drift med högre hastighet jämfört med den traditionella tekniken att tillhandahålla klockan från en tredje enhet till både sändaren och mottagaren. En annan fördel är att dataåterställnings- eller klockdataåterställningskretsar med högre komplexitet (såsom PLL ) inte krävs när denna teknik används.
Eller snarare än högre klockhastigheter, kan stora system som drar fördel av källsynkron klockning ha fördelen av en högre tolerans för PVT-variation av dess individuella komponenter.
Tidsanalys
Synkrona logiska element som flip-flops har statiska tidskriterier som måste uppfyllas för att de ska fungera korrekt. I en systemsynkron klocktopologi där en snedställd klocka matas till alla enheter, är kriterierna
En källsynkron klocktopologi eliminerar två av dessa faktorer, och . Den förstnämnda elimineras eftersom både klock- och datasignaler drivs av identiska vippor på samma kisel vid samma temperatur och spänning, vilket utjämnar T k o {\ som ses av både klocka och data. Det senare elimineras av samma anledning - eftersom klockan och data drivs av identiska enheter och (helst) anslutna med ledningar av lika långa längder, minskar skevheten mellan klocka och data avsevärt. Av denna anledning kan Eftersom frekvensen är omvänt proportionell mot klockperioden, ökar klockfrekvensen som ett resultat.
Nackdelar
En nackdel med att använda källsynkron klockning är skapandet av en separat klockdomän vid den mottagande anordningen, nämligen klockdomänen för stroben som genereras av den sändande anordningen. Denna stroboklockdomän är ofta inte synkron med kärnklockdomänen hos den mottagande enheten. För korrekt drift av den mottagna datan med andra data som redan finns i anordningen, krävs ett ytterligare steg av synkroniseringslogik för att överföra mottagna data till den mottagande anordningens kärnklockdomän. Detta steg kan ofta hittas vid sidan av källsynkron logik. Detta resulterar vanligtvis i större systemkomplexitet jämfört med globalt klockade system, men fördelarna är generellt sett mycket större än denna ökning i komplexitet.
Implementeringsvariationer
I dubbelriktade dataöverföringsbussar kan två motsatta enkelriktade strober skickas från varje enhet. Ofta är stroben frigående i detta fall. Det vill säga, stroben fortsätter att växla om det finns data som överförs eller inte.
En annan variant är att dela samma buss för att överföra stroben. I det här fallet kan stroben endast överföras av enheten som sänder data och kan kräva överföring av pre-ambles och post-ambles för att indikera början och slutet av strober. (Exempel: DDR2 ).
I stora ASIC: er eller processorer kan flera strober och datagrupper (databitar som är associerade till samma strobe) existera mellan samma två enheter för att ta hänsyn till de något olika PVT-variationerna i olika regioner av samma dyna.