490 likes | 629 Views
Kreiranje VHDL k ô da za malu potrošnju. Kandidat: Vladimir Kovačević Br.ind. 9092. Sadržaj. Uvod Izvori disipacije Strategije za smanjenje potrošnje Metode projektovanja za malu potrošnju Optimizacija potrošnje ALU -a Zaključak. Uvod.
E N D
Kreiranje VHDL kôda za malu potrošnju Kandidat: Vladimir Kovačević Br.ind. 9092
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a • Zaključak Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Uvod • Zahtevi za mobilnošću postavljaju ograničenja u veličini, težini i potrošnji energije. (sateliti, mobilni telefoni, multimedija, wireless uređaji, notebook, instrumenti, medicinski uređaji, industrijski uređaji i mnogi drugi) • Ušteda u potrošnji je važna i za neprenosive aplikacije. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Uvod Your car starter ! Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
VDD, Power and Current Trend 2.5 200 500 Voltage 2 Power 1.5 Voltage [V] Current Power per chip [W] VDD current [A] 1 0.5 0 0 0 1998 2002 2006 2010 2014 Year International Technology Roadmap for Semiconductors 1999 update sponsored by the Semiconductor Industry Association in cooperation with European Electronic Component Association (EECA) , Electronic Industries Association of Japan (EIAJ), Korea Semiconductor Industry Association (KSIA), and Taiwan Semiconductor Industry Association (TSIA) (* Taken from Sakurai’s ISSCC 2001 presentation) Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Uvod • Prilikom projektovanja VLSI kola pored optimizacija za velike brzine i male površine neophodna je i optimizacija za malu potrošnju. • CPU • DSP • ASIC • FPGA • SoC Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a • Zaključak Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Izvori disipacije • Ukupna potrošnja CMOS kola je: Pdynamic, dinamička disipacija snage; Pstatic, statička disipacija snage Pcap, komutirana snaga Ileakage,struja curenja VDD, napon napajanja Pscc, snaga usled kratkog spoja Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a • Zaključak Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Strategije za smanjenje potrošnje • Redukcija dinamičke potrošnje • minimizacija α0→1, Cl, VDD ili fCLK • Redukcija statičke potrošnje • smanjenje struje curenja Ileakage i VDD-a Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Strategije za smanjenje potrošnje • Za tehnologije čije su širine kanala veće od 90 nm, dominantan uticaj ima dinamička potrošnja. • Dinamička potrošnja se veoma uspešno redukuje. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Strategije za smanjenje potrošnje • smanjenje VDD-a vodi ka najefikasnijoj redukciji potrošnje. • smanjenjem napona napajanja povećava se vreme propagacije signala kroz gejtove. • smanjenje VDD-a, takođe prati i smanjenje napona praga provođenja tranzistora (Vth ). • smanjenjem Vth se povećava struja curenja, pa sada statička disipacija ima dominantni uticaj kako na potrošnju tako i na performanse dizajna. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a • Zaključak Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Power downmetode za smanjenje potrošnje Isključivanje izvršnih jedinica koje ne obavljaju korisne operacije. • Ukidanje napona napajanja, • Dozvola/zabrana takta, • Korišćenje flip-flop-ova sa dozvolom i • Particionisanje memorije. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Dozvola/zabrana takta Podrazumeva uključenje /isključenje taktne pobude ćeliji, čitavom bloku ili modulu u dizajnu. architecture CG_DFF_a of CG_DFF_e is signal GCLK : std_logic; begin P1:process (GCLK) begin if GCLK'event and GCLK = '1' then D_out <= D_in; end if; end process; P2:process (CLK, EN) variable EN_int: std_logic; begin if CLK = ‘1' then EN_int := EN; end if; GCLK <= CLK and EN_int; end process; end; Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Skaliranje napona napajanja na arhitekturnom nivou Promenom arhitekture kola može se kompenzovati smanjenje brzine rada kola • Osnovna koncepcija • napon napajanja 5 V • kašnjenje T=25 ns Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Skaliranje napona napajanja • Paralelna implementacija • kašnjenje T=50 ns • napon napajanja 2.9 V Normalizovano kašnjenje VDD (V) Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Skaliranje napona napajanja • Protočna implementacija • Napon napajanja 2.9 V • bez narušavanja sistemske propusnosti Zahteva ugradnju samo protočnih registara • Kombinacija protočnosti i paralelizma Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Redukcija gličeva Propagacija gličeva se zaustavlja ugradnjom sekvencijalnih elemenata ili ugradnjom logike čije je vreme propagacije duže od vremena trajanja ovih impulsa. • korišćenje dizajna baziranog na protočnoj obradi • balans kašnjenja između različitih puteva u kombinacionoj mreži Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Redukcija gličeva • Upravljanje na nivou bloka • Balansiranje signala • Korišćenje protočnosti Regiatar Izvršna jedinica Regiatar ½ Izvršne jedinice Regiatar ½ Izvršne jedinice Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Konačni automati (FSM) Potrošači snage mogu biti logički blokovi ili deo za distribuciju takta flip-flop-ovima koji pripadaju registru stanja. • FSM troši najviše vremena u stanju WAIT Zamrzavanje takta i ulaznih signala sve dok se marker ZERO ne postavi u stanje "1" Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Konačni automati • Kodiranje stanja treba da smanji aktivnost logike u ulaznim i izlaznim kombinacionim blokovima Samo za male automate sa najviše 10 stanja • Grupisanje stanja koja generišu iste izlaze Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Konačni automati • Particija FSM-a Samo aktivni FSM prihvata takt i komutirane ulaze, ostali su statički i nemaju dinamičku potrošnju Novi FSM-ovi rade međusobno isključivo; kada je jedan operativni drugi se nalazi u stanju WAIT i štedi snagu Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Staze podataka Potrošnja usled komutatorskih aktivnosti koje ne doprinose fukcionalnosti kola. • Princip izračunavanja-unapred Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Staze podataka • Guarded evaluaciona tehnika entity GE_Alu is port ( A,B: inStd_Logic_Vector(31downto0); Datain: inStd_Logic_Vector(31downto0); Sel : inStd_Logic; Y : outStd_Logic_vector (31 downto 0)); end GE_Alu; architecture Garded_evaluation_Alu of GE_Alu is signal L_A, L_B : Std_logic_vector(31downto0); begin process (Sel, A, B) begin if Sel='1' then L_A<=A; L_B<=B; end if; end process; Y<=(L_A + L_B) when (Sel='1') else Datain; end Garded_evaluation_Alu; Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Staze podataka • Tehnike CG-ovanja upravljačkog signala Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
X Y Z mux = = T Sel Metode projektovanja za malu potrošnju Sel 16 • Magistrale Magistrale su veliki potrošači, zato treba izbegavati korišćenje obimnih magistrala. X 16 Realizacija sa dva Mux-a i jednim komparatorom 16 mux 1 Y = 16 Eq Z 16 mux T 16 Sel VHDL kôd 16 Realizacija sa dva komparatora i jednim Mux-om 1 process(X, Y, Z, T, Sel) begin if(Sel = ‘0’)then Eq <= (X = Y); else Eq <= (Z =T); end if; end process; 16 16 Eq 1 16 Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
tri_en1 mux_in4 tri_in1 mux_in3 tri_en2 mux_en3 tri_in2 mux_in2 tri_en3 mux_en2 tri_in3 mux_in1 tri_en4 mux_en1 tri_in4 Metode projektovanja za malu potrošnju tri_out • Izbegavanje korišćenja trostatičkih bafera tri_en1 tri_in1 tri_en2 tri_in2 tri_en3 tri_in3 tri_en4 tri_in4 mux_out Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Kodiranje magistrale Najprikladnije za VHDL kodiranje sa aspekta male potrošnje su tehnike za kodiranje podataka koji se prenose magistralom. Kodiranje sa inverzijom (bus invert encoding) Pre slanja podatka, predajnik poredi tekuću vrednost sa predhodnom i odlučuje da li da je preda ili da pošalje invertovanu vrednost zajedno sa polaritetom signala. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Optimizacija na logičkom nivou Redukuju potrošnju kola putem njihovih transformisanja u različite ali funkcionalno ekvivalentne implementacije. • Algebarske transformacije y=ab+bc+cd Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Metode projektovanja za malu potrošnju • Smanjenje potrošnje usled struje curenja Struja curenjapostoji i kada je kolo neaktivno. • Multipragovski dizajn • Promenljivi prag napona provođenja Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Optimizacija potrošnje ALU-a • Standardna 16 bit-na ALU Gradivni blokovi (Or, And, Not, Xor, Add, Sub i Neg) troše energiju pri svakoj promeni signala na AC ili DR, a da se pri tome koristi samo jedan izlaz ALU-a. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Standardna 16 bit-na ALU U2:Not_Nbit generic map (N=>N); port map (I0=>AC_in, Y=>Not_out); U3:Xor_Nbit generic map (N=>N) port map (I0=>AC_in,I1=>DR_in, Y=>Xor_out); U4:Add_Nbit generic map (N=>N) port map (I0=>AC_in,I1=>DR_in, Y=>Add_out); U5:Sub_Nbit generic map (N=>N) port map (I0=>AC_in,I1=>DR_in, Y=>Sub_out); U6:Neg_Nbit generic map (N=>N) port map (I0=>AC_in, Y=>Neg_out); U7:Mux_Nbit generic map (N=>N) port map (I0=>Or_out,I1=>And_out,I2=>Not_out,I3=>Xor_out,I4=>Add_out,I5=>Sub_out,I6=>Neg_out,I7=>DR_in,Sel=>Sel,Y=>O); end architecture; entity Alu_base is generic ( N: integer:=15); port( AC, DR: instd_logic_vector (N downto0); Sel: instd_logic_vector (2downto0); O: outstd_logic_vector (N downto0)); end entity; architecture Alu_base_a of Alu_base is -- Nakon deklarisanja komponenti -- Deklaracija unutrašnjih signala Signal AC_in,DR_in:std_logic_vector(N downto0); Signal Or_out,And_out,Not_out,Xor_out, Add_out,Sub_out,Neg_out:std_logic_vector (N downto0); begin AC_in<=AC; DR_in<=DR; -- Instanciranje gradivnih blokova U0:Or_Nbit generic map (N=>N) port map (I0=>AC_in,I1=>DR_in,Y=>Or_out); U1:And_Nbit generic map (N=>N) port map (I0=>AC_in,I1=>DR_in, Y=>And_out); Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Optimizacija potrošnje ALU-a • Modifikovana 16 bit-na ALU • Samo jedna funkcionalna jedinica je aktivna u toku izvršenja operacije, a ostale će biti inhibirane. • Nedostatak ovog pristupa ogleda se u ugradnji dodatnih lečeva na ulazima svake funkcionalne jedinice, leča na izlazu ALU-a, ugradnji dekodera opkoda ALU operacije, i redukciji brzine rada. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Modifikovana ALU Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Modifikovana ALU • Entity Dec i Latc_Nbit entity Dec is port ( Sel:instd_logic_vector(2 downto0); Y: outstd_logic_vector (7downto0)); end Dec; architecture Behavioral of Dec is begin with Sel select Y<="00000001" when "000", "00000010" when "001", "00000100" when "010", "00001000" when "011", "00010000" when "100", "00100000" when "101", "01000000" when "110", "10000000" when "111", "00000000" when others; end Behavioral; entity Latc_Nbit is generic (N: ininteger:=15); port ( I: instd_logic_vector (N downto0); Clk: in std_logic; Y: outstd_logic_vector ( N downto0)); end Latc_Nbit; architecture Latc_a of Latc_Nbit is begin P0: process (Clk) begin if Clk'event and Clk='1' then Y<=I; end if; end process; end architecture; Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Test Bench architecture TB_a of Alu_base_tb is component Alu_base is generic ( N: integer:=15); port( --Vektori ulaznih signala AC, DR: instd_logic_vector (N downto 0); Sel: instd_logic_vector (2 downto 0); O: outstd_logic_vector (N downto 0)); end component; Signal AC, DR, O: std_logic_vector (N downto 0); Signal Sel: std_logic_vector (2 downto 0); begin UUT:Alu_base generic map (N=>N) portmap(AC,DR,Sel,O); Sel<="000", "001" after 20ns,"010" after 40ns,"011" after 60ns, "001" after 80ns,"100" after 100ns,"000" after 120ns, "101"after 160ns,"101" after 180ns,"110" after 200ns, "111" after 220ns; -- Promena podataka na AC magistrali AC<="0000000000000000","0000000000000001" after30ns, "0000000000000111" after 40ns,"0000000000001011" after60ns, "0000000000000111" after 90ns,"0000000000000000" after 130ns, "0000000000001000" after 160ns,"0000000000000010" after 220ns; -- Promena podataka na DR magistrali DR<="0000000000000101","0000000000000001" after30ns, "0000000000000011" after 60ns,"0000000000000001" after100ns, "0000000000000010" after150ns,"0000000000000000" after200ns, "0000000000011111" after 240ns; end architecture; • Isti za oba ALU-a • testiranje svih instrukcija, koje su podržane od strane ALU-a Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Optimizacija potrošnje ALU-a Standardna ALU Dodatna ušteda u potrošnji Modifikovana ALU Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Izgled nakon obavljene faze sinteze Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Delovi reporta nakon sinteze Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Izgled ALU-a na tehnološkom nivou • Oba ALU-a implementirana na identičnim čipovima iz Xilinx-ove familije Virtex™ 2p sa oznakom xc2vp2fg256-6 Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Izgled čipa nakon mapiranja Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Izgled čipa nakon rutiranja Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Uvođenje dodatne logike uvećava broj iskorišćenih ćelija Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Analiza potrošnje • Izvršena analiza potrošnje oba ALU-a pod identičnim uslovima alatom XPower. • Usvojeno da se menja 50% ulaza • Postignuta ušteda snage od 25% Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Sadržaj • Uvod • Izvori disipacije • Strategije za smanjenje potrošnje • Metode projektovanja za malu potrošnju • Optimizacija potrošnje ALU-a • Zaključak Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir
Zaključak • VLSI kola postaju sve složenija, raste broj tranzistora i raste disipacija odnosno smanjuje se pouzdanost. • Potrošnju je najbolje sagledati u ranim fazama projektovanja. • Pravilnim VHDL kodiranjem uspešno se redukuje dinamička potrošnja dok statička predstavlja glavni problem. Kreiranje VHDL kôda za malu potrošnju-Kovačević Vladimir