Operace ALU INP 2008 FIT VUT v Brně 1
Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá 3) Budeme se zabývat implementací posuvů a rotací řadič cin 2) Budeme se zabývat implementací sčítání 2
Poloviční sčítačka A B HA S Cout S: A C: A 0 1 0 0 1 0 B 0 1 B 3
Úplná sčítačka A B CI S Cout 0 0 0 0 0 A 0 0 1 1 0 0 1 0 1 0 B 0 1 1 0 1 CI 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 S FA Cout Cout: A 0 0 1 0 0 1 1 1 B S: A 0 1 0 1 1 0 1 0 B CI CI 4
Sériová sčítačka n-1 n bitů 0 A i B i C i Σ S i n-1 0 C i+1 paměť přenosu Jde o jednobitovou sčítačku použitou pro sériové sčítání dvou n- bitových čísel, připravených ve vstupních registrech Na výstupu S i se postupně objevují bity součtu počínaje nejnižším bitem 0, a výstup přenosu C i+1 se zachycuje na dobu jednoho taktu (T c ) v klopném obvodu (Carry Save) (Předpokládáme, že jde o synchronní sčítačku s taktem T c ) 5
Paralelní sčítačka s postupným přenosem B n-1 A n-1 B 1 A 1 B 0 A 0 C n C n-1 C 2 C 1 C 0 Σ Σ Σ S n-1 S 1 S 0 Objeví-li se u první sčítačky výstup přenosu za dobu 2, kde je přenosové zpoždění jednoho logického členu, na výstupu druhé sčítačky je to již 4, atd Výstup přenosu se u poslední sčítačky objeví za dobu 2n Pro prakticky používané šířky sčítaček 32 a 64 bitů je tato doba nepřijatelně dlouhá Je proto snaha navrhovat sčítačky s rychlým přenosem (např CLA - Carry Look - Ahead) 6
Rozšířená sčítačka Ci Ai Bi Si Pi Gi Ci+1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 P i - propagate carry (prostup původní hodnoty Ci na výstup Ci+1) G i - generate carry (vznik přenosu bez ohledu na hodnotu Ci) Si = Ai Bi Ci (zpoždění: 2 ) Pi = Ai Bi ( ) Gi = AiBi ( ) Ci+1 = PiCi + Gi (3 ) Ai Bi Rozšířená sčítačka: Ci+1 Si Ci Gi Pi 7
A3 4b sčítačka s CLA zpoždění 4 B3 A2 B2 A1 B1 A0 B0 4 S3 3 3 3 3 C3 C2 C1 S2 G3 P3 4 G2 P2 GP (zde již nevyužito) GG=CO (3 ) Obecně pro N-bitovou CLA: S1 4 4b CLA G1 P1 S0 2 G0 P0 C 0 =CI C 1 =C 0 P 0 +G 0 C 2 =C 1 P 1 +G 1 =C 0 P 0 P 1 +G 0 P 1 +G 1 C 3 =C 2 P 2 +G 2 =C 0 P 0 P 1 P 2 +G 0 P 1 P 2 +G 1 P 2 +G 2 C 4 =C 3 P 3 +G 3 =C 0 P 0 P 1 P 2 P 3 +G 0 P 1 P 2 P 3 +G 1 P 2 P 3 +G 2 P 3 +G 3 GP C 0 =CI C i =C 0 P i-1 +G i-1 GG=CO pro 1<i N, kde G N-1 =CO CI C0 8
Logický obvod CLA C 0 P 0 G 0 C 0 P 0 P 1 G 0 P 1 G 1 C 0 P 0 P 1 P 2 G 0 P 1 P 2 & 1 & & 1 & & 1 C 1 (2, 4 vstupy) C 2 (2, 8 vstupů) C 3 (2, 13 vstupů) C 0 P 0 P 1 P 2 P 3 G 0 P 1 P 2 P 3 G 1 P 2 P 3 G 2 P 3 G 3 & & & 1 & C 4 (2, 19 vstupů) G 1 P 2 & G 2 Pěkná úloha určit obecný matematický výraz pro složitost tedy pro počet vstupů u jednotlivých funkcí C i a celkové složitosti obvodu CLA 9
N-bitová sčítačka s CLA konst zpoždění 4 Cesty pro šíření postupného přenosu jsou zrušeny a na vstupy přenosu všech sčítaček se přivádějí příslušné výstupy generátoru přenosu Funkce Pi, Gi se tvoří se zpožděním, v čase 3 jsou k dispozici všechny rychlé přenosy, a součet je tedy vytvořen v čase 4 Popsané uspořádání sčítačky je nejrychlejší možné řešení Složitost (plocha) dvoustupňového generátoru přenosu však roste pro rostoucí šířku sčítačky s druhou mocninou šířky Pro šířky 32 a 64 bitů je toto řešení již nepřijatelné Byla proto navržena řešení umožňující za cenu nárůstu zpoždění zmenšit potřebnou plochu na čipu: stromový generátor přenosu výběr přenosu přeskakování přenosu (nebudeme probírat) atd 10
Hodnocení složitosti logických obvodů Jde o nalezení optimálního řešení k zadanému poměru cena výkonnost Cena popíše se součtem počtu vstupů všech použitých logických členů (Přepočet na počet členů v ekvivalentním obvodu, složeném pouze z 2-vstupovýchčlenů není správný) Výkonnost popíše se hodnotou nejdelšího přenosového zpoždění daného obvodu Tato kritéria vedou v tomto případě k rozhodnutí, jaký typ obvodů pro urychlení přenosu se použije 11
16b sčítačka se stromovým generátorem přenosů (použit 4b CLA) A15 B15 A14 B14 A13 B13 A12 B12 A11 B11 A10 B10 A9 B9 A8 B8 A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0 S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 P15 G15 P13 G13 P11 G11 P9 G9 P7 G7 P5 G5 P3 G3 P1 G1 P14 G14 P12 G12 P10 G10 P8 G8 P6 G6 P4 G4 P2 G2 P0 G0 CLAU CLAU CLAU CLAU GP3 GG3 GC3 GP2 GG2 GC2 GP1 GG1 GC1 GP0 GG0 GC0 GP (nevyužito) GG=CO CLAU CI Přenosové zpoždění sčítačky se stromovým generátorem přenosu vede na logaritmickou složitost 12
Osmibitová sčítačka s výběrem přenosu C 8 1 C 8 0 C 8 1 & C 4 a b a b 7 7 4 4 Σ a b a b 7 7 4 4 Σ MX s s s s 7 6 5 4 0 1 C 4 a b a b a b a b 3 3 2 2 1 1 0 0 C 0 Σ s s s s 3 2 1 0 Je rozdělena na dvě 4-bitové sčítačky Horní sčítačka je zdvojená, přičemž jedna má vstup přenosu 0, a druhá 1 Obě připraví výsledek, a 4- vstupový multiplexor pak vybere jednu z nich podle hodnoty přenosu C4 Obvodovéřešení se tedy prodražilo o více než 50% Pro větší šířky sčítaček se postupuje obdobně; každý blok je zdvojen a je přidán výběrový multiplexor Výstupní přenosy z obou bloků se logicky sčítají, ale přenos z bloku se vstupem C4 = 1 (dolní sčítačka) je ještě hradlován výběrovým signálem C4 13
Operační rychlost a plocha různých typů sčítaček šířky n Typ čas plocha Postupný přenos O(n) O(n) 2 stupňový CLA 4 O(n 2 ) Stromový CLA k-nární O(log k n) O(n log k n) Přeskakování přenosu O(sqrt n) O(n) Výběr přenosu O(sqrt n) O(n) kde k je počet dílčích přenosů, které se skládají v jednom uzlu stromu 14
Řetězení aritmetických obvodů (1) Optimalizace počtu stupňů struktury pipeline Kombinační obvod R Zpoždění: P R Kombinační obvod se rozřeže na k stupňů, mezi jednotlivé stupně se musí vložit registry R pro mezivýsledky Zpoždění jednoho stupně bude tedy P/k Budeme se řídit součinitelem kvality Q = V/N 15
Řetězení aritmetických obvodů (2) K1 R K2 R Kk R P/k R P/k R P/k R Zpoždění v jedné sekci je P/k + R = T = 1/f, kde f je frekvence přivádění operandů na vstup pipeline Nová cena: původní cena operačních obvodů (C) + kcena registru (L), tedy N = C + kl, po dosazení do výrazu pro kvalitu systému dostaneme Q = V/N = 1/(P/k + R)(kL + C) = 1/(PL + PC/k + klr + RC) Nalezneme extrém tohoto výrazu, který nastává pro hodnotu k k opt = PC/LR Této přesné hodnoty v praxi nemůžeme většinou dosáhnout, protože každý aritmetický obvod má jistou strukturu, která určuje, ve kterých místech lze řezy provést Hodnota je tedy orientační, která nám říká, zda se máme ještě snažit o zvyšování počtu stupňů, nebo naopak počet stupňů snižovat Q kopt k 16
Řetězená sčítačka s postupným přenosem B n-1 A n-1 B 2 A 2 B 1 A 1 B 0 A 0 C 0 T Σ T Σ C 1 S 0 T T Σ C 3 Σ S 2 C 2 S 1 C n S n-1 17
Řetězená sčítačka s postupným přenosem - komentář Jednobitové sčítačky se postupně zařazují do samostatných stupňů a struktura se standardním způsobem doplní vloženými registr z paměťových členů typu, které umožňují taktovat synchronně sčítací strukturu pomocí hodinového signálu Složitost, tedy cena je daná počtem registrů n x n tj 2 x n x n klopných obvodů typu, tedy 2n 2 rychlost, tedy výkonnostní parametr je n Pozn Např addovy sčítačky umožňují redukovat počet paměťových prvků 18
alší operace ALU posuvy a rotace a) 16 16 ALU 16 SH-ROT 16 řízení operací 0-15 Blok posuvů a rotací je umístěn buď za výstupem ALU, nebo paralelně k bloku ALU Řídicí vstupy: směr posuvu, jeho typ (logický nebo aritmetický), a počet bitů, o které se posouvá U každého operačního bloku se musí pamatovat na operaci identity Implementace: válcový posouvač (Barrel Shifter) pomocí multiplexorů, ne posuvný registr!! b) 16 16 ALU řízení operací SH-ROT 0-15 L/R 16 19
a0 a1 0 1 2 3 x y 0 1 2 3 x y mpx mpx b0 b1 4b válcový posouvač pro rotace vpravo (zpoždění 2 ) a2 0 1 2 3 x y mpx b2 b 3 b 2 b 1 b 0 a 3 a 2 a 1 a 0 0 bit a 0 a 3 a 2 a 1 1 bit a3 2 0 1 2 3 x y mpx b3 a 1 a 0 a 3 a 2 2 bit a 2 a 1 a 0 a 3 3 bit 20
21 Možnosti realizace 16b válcového posouvače - 16 x 16-vstupový multiplexor drahé řešení, zpoždění 2-2-vst multiplexory (2,2,2,2) levnější (64 x 2-MUX), zpoždění 8 0 1 2 3 4 8 15 15 0 4 3 1 7 0, 8 0, 4 0, 2 0, 1 2 2 2 2 Τ = 8 2-MUX
Optimalizace válcového posouvače Při optimalizaci vnitřní struktury válcového posouvače se kromě základních kritérií, což je cena (počet logických členů příp počet vstupů logických členů) a přenosové zpoždění, používá pro každou technologii ještě povolené vstupní a výstupní větvení, příp ještě další kritéria Může se pak dospět ke struktuře, která používá v jednotlivých stupních muptiplexory s rozdílným počtem vstupů Je vhodné pak popisovat struktury symbolicky Jednostupňové uspořádání s 16-vstupovými multiplexory se zapíše (16), čtyřstupňové uspořádání se 2-vstupovými multiplexory jako (2,2,2,2), se 4-vstupovými MPX (4,4), smíšená struktura např (2,4,2) atd Přenosové zpoždění válcového posouvače se strukturou (2,2,2,2) je 8 jednotkových zpoždění Poznámka: Logická struktura multiplexoru je dvoustupňová, s přenosovým zpožděním 2 22