Zkosení hodin - Clock skew

Zkosení hodin (někdy nazývané zkreslení časování ) je jev v synchronních digitálních obvodových systémech (například v počítačových systémech), kdy stejný hodinový signál pochází z různých komponent v různých časech. Okamžitý rozdíl mezi údaji jakýchkoli dvou hodin se nazývá jejich zkosení.

Činnost většiny digitálních obvodů je synchronizována periodickým signálem známým jako „hodiny“, který určuje posloupnost a stimulaci zařízení v obvodu. Tyto hodiny jsou distribuovány z jednoho zdroje do všech paměťových prvků obvodu, kterými mohou být například registry nebo klopné obvody . V obvodu využívajícím hrany spouštěné registry, když hodinová hrana nebo tik dorazí do registru, registr přenese vstup registru na výstup registru a tyto nové výstupní hodnoty protékají kombinační logikou, aby poskytly hodnoty na vstupech registru pro další tik hodin. V ideálním případě vstup pro každý paměťový prvek dosáhne své konečné hodnoty v čase pro další tikot hodin, aby bylo možné přesně předpovědět chování celého obvodu. Maximální rychlost, při které může systém běžet, musí zohledňovat rozptyl, ke kterému dochází mezi různými prvky obvodu v důsledku rozdílů ve fyzickém složení, teplotě a délce dráhy.

V synchronním obvodu se říká, že dva registry nebo klopné obvody „sousedí postupně“, pokud je spojuje logická cesta. Vzhledem k tomu, že jsou dva postupně sousedící registry R i a R j s hodinami příchodu hodin na hodinové kolíky zdrojového a cílového registru stejné jako T C i, respektive T C j , šikmé hodiny lze definovat jako: T zkosení i, j = T C i - T C j .

V návrhu obvodu

Zkosení hodin může být způsobeno mnoha různými věcmi, jako je délka propojení vodičů, kolísání teploty, rozdíly v mezilehlých zařízeních, kapacitní vazba , nedokonalosti materiálu a rozdíly ve vstupní kapacitě na hodinových vstupech zařízení využívajících hodiny. Jak se taktovací frekvence obvodu zvyšuje, časování se stává kritičtějším a lze tolerovat menší odchylky, pokud má obvod správně fungovat.

Existují dva typy zkosení hodin: negativní zkosení a pozitivní zkosení . K pozitivnímu zkosení dochází, když přijímací registr přijímá zatržítko hodin později než vysílací registr. Negativní zkreslení je opak: vysílající registr dostane tikot hodin později než přijímací registr. Zkosení nulových hodin se týká příchodu hodinového ticku současně do vysílacího a přijímacího registru.

Škodlivé zkosení

Zkosení hodin může být způsobeno dvěma typy porušení. Jeden problém je způsoben tím, že hodiny dosáhnou prvního registru a hodinový signál směrem k druhému registru se pohybuje pomaleji než výstup prvního registru do druhého registru - výstup prvního registru dosáhne vstupu druhého registru rychleji, a proto je taktován nahrazením počáteční data na druhém registru, nebo možná zničení integrity zablokovaných dat. Tomu se říká narušení držení, protože předchozí data nejsou v cílovém klopném obvodu držena dostatečně dlouho, aby byla správně taktována. Další problém je způsoben, pokud cílový klopný obvod přijme zaškrtnutí hodin dříve než zdrojový klopný obvod-datový signál má mnohem méně času na dosažení cílového klopného obvodu před dalším zaškrtnutím hodin. Pokud tak neučiní, dojde k narušení instalace , takzvaně proto, že nová data nebyla nastavena a stabilní, než dorazil další zatržítko hodin. Porušení držení je vážnější než narušení nastavení, protože jej nelze napravit prodloužením doby. Pozitivní zkosení a negativní zkosení nemůže negativně ovlivnit nastavení a držet časová omezení (viz nerovnosti níže).

Prospěšné zkosení

Zkosení hodin může také prospět obvodu snížením lokální periody hodin, ve které bude obvod fungovat správně. Pro každý zdrojový registr a cílový registr spojený cestou musí být dodrženy následující nerovnosti nastavení a přidržení:

kde

  • T je perioda hodin,
  • reg jsou hodiny zdrojového registru na zpoždění Q,
  • je cesta s nejdelším zpožděním od zdroje k cíli,
  • J je horní hranice chvění,
  • S je čas nastavení cílového registru
  • představuje vychýlení hodin ze zdroje do cílových registrů,
  • je cesta s nejkratším zpožděním od zdroje k cíli,
  • H je doba pozastavení registru cílů,
  • je posunutí hodin do registru cílů a
  • jsou hodiny zkosené ke zdrojovému registru.

Pozitivní zkosení hodin je dobré k opravě porušení nastavení, ale může způsobit porušení blokování. Zkosení záporných hodin může zabránit narušení držení, ale může způsobit narušení nastavení.

Ve výše uvedených nerovností, jediný parametr, J , se používá k účtu pro jitter . Tento parametr musí být horní mezí pro rozdíl v chvění ve všech párech zdrojového registru/cílového registru. Je -li však známá struktura distribuční sítě hodin, různé páry zdrojového registru/cílového registru mohou mít různé parametry jitteru a pro omezení přidržení může být použita jiná hodnota jitteru, na rozdíl od hodnoty pro omezení nastavení. Pokud například zdrojový registr a cílový registr přijímají své hodinové signály ze společné blízké hodinové vyrovnávací paměti , jitter vázaný pro toto omezení držení může být velmi malý, protože jakákoli odchylka v tomto hodinovém signálu ovlivní oba registry stejně. Pro stejný příklad musí být jitter vázaný pro omezení nastavení větší než pro omezení podržení, protože chvění se může lišit od hodinového zaškrtnutí k hodinovému zaškrtnutí. Pokud zdrojový registr přijímá svůj hodinový signál z listové vyrovnávací paměti distribuční sítě hodin, která je daleko od listové vyrovnávací paměti napájející cílový registr, pak bude muset být jitter vázaný větší, aby odpovídal různým hodinovým cestám do obou registrů , které mohou mít různé zdroje hluku spojeny do nich.

Obrázek 1. Nebezpečí nulového zkosení. Cesta FF2 -> FF3 bude fungovat nesprávně s porušením pozastavení, pokud dojde k malému množství dodatečného zpoždění hodin pro FF3, jako je jitter hodin.
Obrázek 2. Malé množství zpoždění vloženého na hodinový vstup FF2 chrání proti narušení držení v dráze FF2 -> FF3 a současně umožňuje, aby cesta FF1 -> FF2 fungovala v nižší hodinové periodě. Tento záměrný zkosený obvod je bezpečnější a rychlejší než obvod nulového zkosení na obrázku 1.

Obrázky 1 a 2 ilustrují situaci, kdy záměrné zkosení hodin může být výhodné pro synchronní obvod. V obvodu nulového zkosení na obrázku 1 jde dlouhá cesta z klopného obvodu FF1 na klopný obvod FF2 a krátká cesta, například cesta posuvného registru, od FF2 do FF3. Cesta FF2 -> FF3 se nebezpečně blíží narušení přidržení: Pokud se na FF3 vyskytne i malé množství dalšího zpoždění hodin, mohlo by to zničit data na vstupu D FF3, než dorazí hodiny, aby je přetaktovaly na Q FF3 výstup. To by se mohlo stát, i když by FF2 a FF3 byly fyzicky blízko sebe, kdyby jejich hodinové vstupy pocházely z různých listových vyrovnávacích pamětí distribuční sítě hodin.

Obrázek 2 ukazuje, jak lze problém vyřešit záměrným zkosením hodin. Malé množství dodatečného zpoždění je vloženo před hodinový vstup FF2, který pak bezpečně umístí cestu FF2 -> FF3 mimo jeho narušení držení. Další výhodou je, že stejné dodatečné zpoždění hodin uvolňuje omezení nastavení pro cestu FF1 -> FF2. Cesta FF1 -> FF2 může fungovat správně v hodinovém období, které je menší než to, co je požadováno pro případ zkosení nulových hodin, o částku rovnou zpoždění přidané vyrovnávací paměti zpoždění hodin.

Běžná mylná představa o záměrném zkreslení hodin je, že je nutně nebezpečnější než zkosení nulových hodin, nebo že vyžaduje přesnější řízení zpoždění v distribuční síti hodin. Je to však obvod nulového zkosení na obrázku 1, který je blíže k poruše - malé množství pozitivního zkosení hodin pro pár FF2 -> FF3 způsobí narušení držení, zatímco záměrný zkosený obvod na obrázku 2 je tolerantnější k nezamýšlenému zpoždění rozdíly v rozložení hodin.

Optimální zkosení

Pokud jsou časy příchodu hodin v jednotlivých registrech vnímány jako proměnné, které je třeba upravit, aby se minimalizovala perioda hodin při uspokojení nastavení a udržení nerovností pro všechny cesty obvodem, pak je výsledkem problém lineárního programování . V tomto lineárním programu je zkosení nulových hodin pouze proveditelným bodem - řešení lineárního programu obecně dává periodu hodin, která je menší, než jaké je dosaženo nulovým zkosením. Kromě toho lze bezpečnostní rozpětí větší nebo rovné nulovému případu zkosení zaručit nastavením časů nastavení a podržení a přiměřeně vázaných jitterů v lineárním programu.

Díky jednoduché formě tohoto lineárního programu je k dispozici snadno programovatelný algoritmus pro dosažení řešení. Většina systémů CAD pro návrh VLSI a FPGA obsahuje zařízení pro optimalizaci zkosení hodin.

Zmatek mezi zkosením hodin a chvěním hodin

Kromě zkreslení hodin v důsledku statických rozdílů v latenci hodin od hodinového zdroje ke každému taktovanému registru není žádný hodinový signál dokonale periodický, takže perioda hodin nebo doba cyklu hodin se mění i u jedné složky a tato variace je známá jako chvění hodin . V určitém bodě distribuční sítě hodin je jitter jediným přispěvatelem k nejistotě časování hodin.

Pro přiblížení je často užitečné diskutovat o celkové nejistotě časování hodin mezi dvěma registry jako součet zkosení prostorových hodin (prostorové rozdíly v latenci hodin od zdroje hodin) a jitteru hodin (což znamená neperiodicitu hodin) v určitém bodě sítě). Zkosení prostorových hodin se bohužel mění v čase od jednoho cyklu k druhému kvůli místním časově závislým změnám v napájení, místní teplotě a vazbě šumu na jiné signály.

V obvyklém případě odesílání a přijímání registrů na různých místech tedy neexistuje jasný způsob, jak oddělit celkovou nejistotu časování časování na prostorové zkosení a chvění. Někteří autoři tedy používají termín zkosení hodin k popisu součtu zkosení prostorových hodin a jitteru hodin. To samozřejmě znamená, že se hodiny překrývají mezi dvěma body v jednotlivých cyklech, což je složitost, o které se mluví jen zřídka. Mnoho dalších autorů používá termín zkosení hodin pouze pro prostorovou variaci časů hodin a termín jitter hodin představuje zbytek celkové nejistoty časování hodin. To samozřejmě znamená, že jitter hodin musí být u každé složky jiný, o čemž se opět málokdy mluví.

Naštěstí v mnoha případech zůstává zkosení prostorových hodin z cyklu na cyklus poměrně konstantní, takže zbytek celkové nejistoty časování hodin lze dobře aproximovat pomocí jedné společné hodnoty jitteru hodin.

Na síti

V síti, jako je internet , hodiny překroutit popisuje rozdíl ve frekvenci ( první derivace z přesazení s časem) různých hodiny v síti. Síťové operace, které vyžadují časová razítka, která jsou srovnatelná mezi hostiteli, mohou být ovlivněna zkosením hodin. Řada protokolů (např. Protokol Network Time Protocol ) byla navržena tak, aby redukovala zkreslení hodin a vytvářela stabilnější funkce. Některé aplikace (například herní servery ) mohou také používat vlastní synchronizační mechanismus, aby se předešlo problémům se spolehlivostí v důsledku zkosení hodin.

Rozhraní

Zkosení hodin je důvodem, proč jsou při vysokých rychlostech nebo na dlouhé vzdálenosti upřednostňována sériová rozhraní (např. Sériově připojené SCSI nebo USB ) před paralelními rozhraními (např. Paralelní SCSI ).

Viz také

Reference

  • Friedman, Eby G. (1995). Distribuční sítě hodin v obvodech a systémech VLSI . IEEE Press. ISBN 978-0780310582.
  • Friedman, Eby G. (květen 2001). „Distribuční sítě hodin v synchronních digitálních integrovaných obvodech“ (PDF) . Sborník IEEE . 89 (5): 665–692. CiteSeerX  10.1.1.7.7824 . doi : 10,1109/5,929649 . Archivováno z originálu (PDF) dne 2015-06-01 . Citováno 2017-01-09 .
  • Tam, S., Limaye, DL a Desai, OSN (duben 2004). „Generování a distribuce hodin pro 130nm procesor Itanium 2 s 6 MB mezipaměti L3 On-Die“. IEEE Journal of Solid-State Circuits . 39 odst.Správa CS1: používá parametr autorů ( odkaz )