Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 7 ČASOVÁNÍ A SYNCHRONIZACE TECHNICKÉHO VYBAVENÍ doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze
ARCHITEKTURY SYNCHRONIZACE Synchronní obvod, jedna doména Synchronní obvod, více domén ve fázovém vztahu Synchronní systém s pomocnou doménou bez fázového vztahu Lokálně synchronní, globálně asynchronní systém (velké systémy) 2
PŘECHOD VÍCE SIGNÁLŮ Datové signály jsou synchronizovány řídícími signály Protokol řídících signálů je navržen tak, aby se měnil vždy jen jeden Jednosměrný protokol Obousměrný protokol (handshake) Fronta s nezávislými rozhraními 3
JEDNOSMĚRNÝ PROTOKOL ACLK ACLK DATA STROBE BCLK BDATA DATA STROBE BDATA BCLK 4
KONSTRUKCE PROTOKOLU - ZJEDNODUŠENO ACLK 1. 2a. tolik period ACLK, aby > než perioda BCLK 3a. 2b. nejbližší hrana ACLK 2 periody BCLK 3b. nejbližší hrana ACLK DATA STROBE BCLK BDATA 5
KONSTRUKCE PROTOKOLU - ROZPTYL ZPOŽDĚNÍ Signál DATA může mít větší nebo menší zpoždění než signál STROBE Kde není zaručeno min. zpoždění, je rozptyl roven max. zpoždění Rezerva na začátku a konci platnosti DATA musí být větší než rozptyl ACLK DATA komu je to málo, přidá si nejistotu hodin STROBE BCLK BDATA 6
POZNATKY O PŘECHODU MEZI HODINOVÝMI DOMÉNAMI Přechod vždy vnáší nezanedbatelné zpoždění (latenci) Na velikost latence má vliv rozptyl zpoždění Statická časová analýza nemá dost informací (např. algoritmus generování STROBE, DATA), aby zaručila správnost přechodu (nicméně nástroje pro verifikaci přechodu existují) 7
DVOUSMĚRNÝ PROTOKOL ACLK DATA STROBE BCLK BDATA BACK Používá se, jsou-li frekvence srovnatelné Existuje varianta, kde každá hrana STROBE a ACK má stejný význam událost se sděluje jakoukoli změnou signálu; časté v protokolech periferií 8
Hana Kubátová MI-SOC 2011/12 PŘECHOD POMOCÍ FRONTY WDATA WRITE RDATA READ FULL EMPTY WCLK RCLK 9
REALIZACE FRONTY MEZI DOMÉNAMI Diagram from Clifford Cummings prosté, že 10
PŘENOS ADRESY MEZI DOMÉNAMI Příznaky FULL, EMPTY vznikají odečtením adres v paměti Reagují na každou změnu těchto adres Mají tedy mít synchronizační protokol? Pomalé Jiné řešení: posloupnost adres je stálá, vyjádříme ji v Grayově (jednozměnovém) kódu patřičné délky 11
NÁVRHOVÁ PRAVIDLA výstup z hodinové domény z registru vždy 1 řídící signál se mění při přechodu přes hranici hodinové domény asychronní signál se synchronizuje 2 klopnými obvody, pak se teprve může větvit hodinová frekvence domény bere v úvahu metastabilitní charakteristiky synchronizéry domén (realizace protokolů a metastabilitní ochrany) ve zvláštních entitách 12
Hana Kubátová MI-SOC 2011/12 TECHNIKY ŠKÁLOVÁNÍ 13
PŘÍKLAD: ADVANCED ENCRYPTION STANDARD, AES typicky 10 iterací (AES128) vstup otevřeného textu (blok: 128 bitů) hodnoty předem odvozené z klíče; pro každou iteraci jiná registr výstup šifrovaného textu hlavní funkce AES ( runda ) složitý kombinační obvod, zahrnuje 32- bitové sčítání a operace nad GF(2 8 ), 14 které se často realizují tabulkami
AES zpoždění základní funkce: t šifrování: 10 hodinových taktů, >10t propustnost: 1 blok za 10 taktů možnost zrychlení? paralelizace proudové zpracování 15
Hana Kubátová MI-SOC 2011/12 PARALELIZACE 2 bloky za 10 taktů 16
PROUDOVÉ ZPRACOVÁNÍ 2 bloky za 10 taktů využívá skutečnosti, že každý blok musí projít 10 rund méně obecné, ale jednodušší než paralelizace 1 2 3 4 5 6 7 8 9 10 R 1 A 1 B 1 A 3 B 3 A 5 B 5 A 7 B 7 A R 2 maximum propustnosti: 10 bloků za 10 taktů latence: stejná (+ztráty) A 2 B 2 A 4 B 4 A 6 B 6 A 8 B R 1 R 2 9 8 B 9 A 1 0 17
DALŠÍ PROUDOVÉ ZPRACOVÁNÍ další zrychlení v poměru počtu stupňů ne každý kombinační obvod se dá dělit v každém místě (počet signálů!) Runda AES má 4 části, ale každá je jiná možnost: paralelizace jednotlivých (pod-) stupňů k vyrovnání zpoždění R 1a R 1b R 2a R 2b R 1 18
PŘÍKLAD ČASOVÁNÍ ZANEDBÁVÁME ZPOŽDĚNÍ REGISTRŮ A MULTIPLEXERŮ CLK f =166 MHz CLK f =166 MHz CLK f =333 MHz 1 blok za 10 taktů 10 bloků za 10 taktů 20 bloků za 20 taktů 1 blok za 60ns 10 bloků za 60ns 20 bloků za 60ns R 1 6ns R 1 6ns R 1A R 1B 3ns 3ns R 10 6ns R 10A 3ns R 10B 3ns 19
ZDVOJENÍ STUPNĚ ZANEDBÁVÁME ZPOŽDĚNÍ REGISTRŮ A MULTIPLEXERŮ CLK f =111 MHz CLK f =166 MHz CLK f =333 MHz 1 za 1 takt 2 za 2 takty 3 za 3 takty 1 za 9ns 2 za 12ns 3 za 9ns X 9ns X A 3ns X A 3ns X B 6ns X B X B nechť kombinační blok X lze rozdělit pouze naznačeným způsobem 20
ODKUD SE BERE VÝKON? Získáváme propustnost bez podstatného zvýšení latence (v ns, nikoli taktech) Proč? Šíření změny kombinační logikou: přes každé hradlo přejde jedna změna (několik málo, počítáme-li hazardy) po zbytek periody hodin hradlo zahálí Vložením registru lépe využijeme již instalovaný výkon 21
MEZE PARALELIZACE A PROUDOVÉHO ZPRACOVÁNÍ počáteční hodnota Zpětnovazební režim AES: šifrovaná hodnota jednoho bloku se promítá do bloku následujícího. Mezi bloky vzniká datová závislost. Nelze přímočaře nasadit proudové zpracování. 22
ZPĚTNOVAZEBNÍ REŽIM počáteční hodnota Dva nezávislé toky dat, pokud možno se stejným klíčem; např. dva pakety téhož spojení Vzrůst latence 23