Digitalni signal procesori Milan Mijalkovi milan mijalkovicviser edu

  • Slides: 85
Download presentation
Digitalni signal -procesori Milan Mijalković milan. mijalkovic@viser. edu. rs 2018/19.

Digitalni signal -procesori Milan Mijalković milan. [email protected] edu. rs 2018/19.

Šta je obrada signala? Signal - ulaz Obrada (Analogni ili digitalni) Signal - izlaz

Šta je obrada signala? Signal - ulaz Obrada (Analogni ili digitalni) Signal - izlaz (Analogni ili digitalni) Operacija, transformacija n Primeri signala: Ø Analogni: Govor, muzika, fotografija, video, radar, sonar, … Ø Diskretni/digitalni: § Digitalizovan govor, muzika, digitalizovan radarski signal, signal sonara, digitalna fotografija. . . § Podaci sa berze, podaci o dnevnim temperaturama. . . 2

Šta je digitalna obrada signala? Digitalni signal - ulaz Digitalna obrada Digitalni signal -

Šta je digitalna obrada signala? Digitalni signal - ulaz Digitalna obrada Digitalni signal - izlaz Operacija ili transformacija nad digitalnim signalom (pomoću računara ili specijalizovanog hardvera) n Šta sa analognim signalima? Analogni signal – ulaz AD konverzija Digitalna obrada DA konverzija Analogni signal – izlaz 3

Primer obrade signala Analogni računar Digitalni računar Tiše, molim Čemu taj prelaz na digitalni

Primer obrade signala Analogni računar Digitalni računar Tiše, molim Čemu taj prelaz na digitalni ? ? 4

Tipični scenario Korak 1: Analogni senzor pretvara signal zvuka u električni Korak 2: Analogno

Tipični scenario Korak 1: Analogni senzor pretvara signal zvuka u električni Korak 2: Analogno – digitalna konverzija Korak 3: DSP obrađuje digitalni dignal (recimo, kompresija, potiskivanje šuma. . . ) Korak 4: Digitalno-analogna konverzija 5

Šta je DOS u realnom vremenu? Digitalni signal - ulaz Digitalna obrada Digitalni signal

Šta je DOS u realnom vremenu? Digitalni signal - ulaz Digitalna obrada Digitalni signal - izlaz Vremenski ograničena operacija ili transformacija nad digitalnim signalom (svaka mora da se završi pre nailaska sledećeg podatka) n Primer: Ø Procesor takta 120 MHz koji ostvaruje 120 MIPS § Odmeravanje 8 KHz (Ts =125 s) - govor, telefonija: broj instrukcija između odmeraka 15000. § Odmeravanje 48 KHz (Ts =21 s) - muzika CD kvaliteta: broj instrukcija između odmeraka 2500. § Odmeravanje 75 MHz (CIF 360 x 288 video sa 30 sl/s) broj instrukcija između odmeraka 1, 6. 6

DOS u realnom vremenu Trajanje obrade n n Slobodno vreme Perioda odmeravanja n+1 Ograničenje:

DOS u realnom vremenu Trajanje obrade n n Slobodno vreme Perioda odmeravanja n+1 Ograničenje: Ø Primenljivo samo ako između odmeraka imamo dovoljno vremena da završimo obradu tekućeg odmerka. n Šta treba uraditi: Ø Izraditi kôd koji obavlja željenu funkciju. Ø Kôd mora da bude dovoljno brz da se obrada tekućeg podatka završi u realnom vremenu (pre dolaska sledećeg) 7

Čemu taj prelaz na DOS? n n Mogućnost realizacije mnooogooo složenijih algoritama nego u

Čemu taj prelaz na DOS? n n Mogućnost realizacije mnooogooo složenijih algoritama nego u analognoj tehnici. Fleksibilnost Ø Skoro isti hardver za potpuno različite primene. Ø Jednostavne promene i proširenja. n Ponovljivost Ø Identično ponašanje svakog primerka. Ø Bez promena sa temperaturom i starenjem. n Manja osetljivost na šum i smetnje. 8

DOS - Primene n Obrada govora Ø Kompresija Ø Prepoznavanje govornika Ø Sinteza Ø

DOS - Primene n Obrada govora Ø Kompresija Ø Prepoznavanje govornika Ø Sinteza Ø Potiskivanje odjeka, poboljšanje govora n Obrada audio signala Ø Kompresija Ø Dodavanje efekata Ø 3 -D reprodukcija 9

DOS - Primene n Obrada slika Ø Kompresija Ø Prepoznavanje uzorka Ø Smanjenje šuma

DOS - Primene n Obrada slika Ø Kompresija Ø Prepoznavanje uzorka Ø Smanjenje šuma Ø Izoštravanje Ø Kompenzacije deformiteta Ø Poboljšanje kvaliteta (kontrast, zasićenje boja. . ) n Video obrada, kompresija, montaža. . . 10

DOS – Primene: komunikacije n Modemske komunikacije Ø Korelacija (matched filters) Ø Potiskivanje odjeka

DOS – Primene: komunikacije n Modemske komunikacije Ø Korelacija (matched filters) Ø Potiskivanje odjeka Ø Ekvilajzeri n Mobilna telefonija Ø Kompresija govora Ø Kontrola RF dela Ø Upravljanje saobraćajem n Softverski radio 11

DOS – Primene: upravljanje n Upravljanje motorima Ø Kontrola momenta i brzine obrtanja Ø

DOS – Primene: upravljanje n Upravljanje motorima Ø Kontrola momenta i brzine obrtanja Ø Umrežavanje Ø Oprimizacija rada Ø Aktivno filtriranje smetnji n Upravljanje elektro-mrežom Ø Kontrola toka snaga Ø Komunikacije po mreži (PLC) Ø HVDC prenos n Kontrola na automobilima 12

DSP Primena : mobilni telefon Blokove kontroliše i modul za kontrolu potrošnje RF prijemnik

DSP Primena : mobilni telefon Blokove kontroliše i modul za kontrolu potrošnje RF prijemnik Mikrokontroler Periferije telefona čip RF DSP kodek čip Govorni kodek - Prepoznavanje govora Ekvilizacija Potiskivanje šuma Poboljšanje slika - Poslovi oko frekv. skakanja (dekodovanje, sinhronizacija. . . 14

DSP Primena : mobilni telefon 15

DSP Primena : mobilni telefon 15

DSP Primena : Vo. IP Periferije Mikro DSP procesor čip Memorija Govorni (čip ili

DSP Primena : Vo. IP Periferije Mikro DSP procesor čip Memorija Govorni (čip ili kartica) kodek Audio kodeci -MP 3 -AC 3 -AAC 16

DSP Primena : Vo. IP Sa http: //focus. ti. com/vf/docs/blockdiagram. tsp? block. Diagram. Id=6022&app.

DSP Primena : Vo. IP Sa http: //focus. ti. com/vf/docs/blockdiagram. tsp? block. Diagram. Id=6022&app. Id=231 17

DSP Primena : Dig. kamera Audio obrada Kompresija audio sig Kompresija slike Poboljšanje slike

DSP Primena : Dig. kamera Audio obrada Kompresija audio sig Kompresija slike Poboljšanje slike Sa http: //focus. ti. com/vf/docs/blockdiagram. tsp? block. Diagram. Id=6046&app. Id=267 18

DSP Market – zarade Redosled: • Texas Instruments • Freescale Semiconductor • Analog Devices

DSP Market – zarade Redosled: • Texas Instruments • Freescale Semiconductor • Analog Devices • Philips Semiconductors • Agere Systems • Toshiba • DSP Group • NEC Electronics U laboratoriji imamo TI razvojne sisteme Ref: Reed Business Information http: //www. reed-electronics. com/moversandshakers/article/CA 6277494. html 19

DSP Market – zarade stanje 2017. http: //www. marketsandmarkets. com/Market-Reports/digital-signal-processors-market-794. html 20

DSP Market – zarade stanje 2017. http: //www. marketsandmarkets. com/Market-Reports/digital-signal-processors-market-794. html 20

DSP Market - kompanije Total Market = $7, 133 Million Total Market = $5,

DSP Market - kompanije Total Market = $7, 133 Million Total Market = $5, 641 Million Ref: Forward Concepts http: //www. fwdconcepts. com/Pages/press 42. htm 21

Prodaja DSP (podaci iz 2009. ) Ref: Forward Concepts http: //www. fwdconcepts. com/Pages/press 42.

Prodaja DSP (podaci iz 2009. ) Ref: Forward Concepts http: //www. fwdconcepts. com/Pages/press 42. htm 22

DSP Market – po primeni (iz 2006. ) Procenat primena u telekomunikacijama: Sa 68.

DSP Market – po primeni (iz 2006. ) Procenat primena u telekomunikacijama: Sa 68. 3% u 2003. na skoro 82% u 2005. Očekivanja: 1) DSP market će rasti po stopi od 9% u 2006. 2) I nastavkom rasta od 18% u 2007. 3) I čak 27% 2008 Ostvareni rast *: 2006. – 10% 2007. – 16% 2008. – 23% 2009. – 19% Ref: IC Insights http: //www. icinsights. com/news/releases/press 20051123. html * http: //www. marketsandmarkets. com/Market-Reports/digital-signal-processors-market-794. html 23

Potrebe za procesorskom snagom Ultra mala potrošnja P e rf o r m a

Potrebe za procesorskom snagom Ultra mala potrošnja P e rf o r m a n s e Mnogo bolje performanse P o tr o š n j a Još niža cena 2009. Značajno poboljšanje performansi Mala potrošnja Prosečne performanse Ref: http: //www. xilinx. com Niska cena 1999. ZAOKRET U KONCEPCIJI DSP Vreme 24

Prenosni uređaji n Obrada signala, naročito slika, u prenosnim uređajima zahteva veliku procesorsku snagu

Prenosni uređaji n Obrada signala, naročito slika, u prenosnim uređajima zahteva veliku procesorsku snagu Ø Bežične komunikacije (3 G, 4 G): mnogo složeniji signali i kompleksnija kontrola RF dela. Ø Video obrada (DTV, HDTV, Camkoderi, 3 DTV): kompresija, dekompresija, poboljšanje slike, montaža. . . Ø Obrada slike: fotoaparati, generisanje slika, 3 D efekti n n Zahtevi: Stotine, pa i hiljade GOP/s Mala potrošnja: Stotine MOPS/m. W Ograničena cena: Desetine GOPS/$ Fleksibilnost, lako prilagođavanje novim standardima 25

Šta ima toliko specijalno u obradi signala? n n Veliki broj podataka (u jedinici

Šta ima toliko specijalno u obradi signala? n n Veliki broj podataka (u jedinici vremena) se kontinualno dovodi sistemu. Operacije se ponavljaju: Ø Isti niz operacija se primenjuje samo sa različitim ulaznim podacima. Ø Paralelna obrada. n n Operacije sa vektorima i matricama Rad u realnom vremenu 26

Primer: Digitalno filtriranje n Najčešće korišćeni digitalni filtri: Ø Finite Impulse Response filter (FIR)

Primer: Digitalno filtriranje n Najčešće korišćeni digitalni filtri: Ø Finite Impulse Response filter (FIR) Ø Infinite Impulse Response filter (IIR) n Osnovni izraz za realizaciju FIR filtera: § Realizacija u C-u: //Za svako novo x[n] na ulazu, treba izračunati: for (k = 0; k<N; k++) y[n] = y[n] + h[k]*x[n-k]; Nova vrednost y[n] gde je h[k] niz koeficijenata filtra, a N red filtra Samo množenje i sabiranje (MAC će dobro doći)! Stara vrednost y[n], izračunata u prethodnom koraku 27

Trećeg reda N=3 x[n] 6 h =[1/3 1/3] 4 h[0]=1/3 h[1]=1/3 h[2]=1/3 2 n

Trećeg reda N=3 x[n] 6 h =[1/3 1/3] 4 h[0]=1/3 h[1]=1/3 h[2]=1/3 2 n x=0 2 2 1 -1 -2 -1 1 2 4 6. . . y = 0 0, 7 1, 3 y[n] 6 y[2] = h[0] x[2] + h[1] x[1]+h[2] x[0] = 1, 333 4 2 //Za svako novo x[n] na ulazu, treba izračunati: n for (k = 0; k<N; k++) y[n] = y[n] + h[k]*x[n-k]; 28

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2 4 6. . . y = 0 0, 7 1, 3 1, 7 0, 7 -1, 3 -0, 7 0, 6 2, 3 4 y[n] 6 4 y[2] = h[0] x[0]+ h[1] x[1]+ h[2] x[2] = 1, 333 2 y[3] = h[0] x[1]+ h[1] x[2]+ h[2] x[3] = 1, 666 n 29

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2 4. . . y = 0 0, 7 1, 3 1, 7 0, 7 -1, 3 -0, 7 0, 6 2, 3… y[n] 6 4 y[2] = h[0] x[2] + h[1] x[1]+ h[2] x[0] = 1, 333 2 y[3] = h[0] x[3] + h[1] x[2]+ h[2] x[1] = 1, 666 n y[n] = h[0] x[n] + h[1] x[n-1]+ h[2] x[n-2] 30

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2

x[n] 6 4 2 n x=0 2 2 1 -1 -2 -1 1 2 4 6. . . y = 0 0, 7 1, 3 1, 7 0, 7 -1, 3 -0, 7 0, 6 2, 3 4 y[n] 6 4 2 n 31

32

32

Nedostaci standardnih mikrokontrolera u odnosu na DSP Treba im više instrukcija za isti posao

Nedostaci standardnih mikrokontrolera u odnosu na DSP Treba im više instrukcija za isti posao n Imaju zajedničku prog. i data magistralu n ØOgraničen protok po magistrli Rešenje : DSP Arhitekture 33

Fon Nojmanova i Harvard arhitektura Adresna magistrala Magistrala podataka Instrukcije i podaci Fon Nojman

Fon Nojmanova i Harvard arhitektura Adresna magistrala Magistrala podataka Instrukcije i podaci Fon Nojman arhitektura Instrukcije i podaci u istom memorijskom prostoru. Jedinstvena magistrala predstavlja usko grlo za protok podataka Instrukcije Podaci HARVARD arhitektura Instrukcije i podaci odvojeni Posebne magistrale za podatke i instrukcije moguć paralelni istovremeni prenos podataka i instrukcija 34

Standardni mikroprocesori (samo magistrala podataka) Magistrala podataka Memorija Registar 1 Registar 2 ALU Fon

Standardni mikroprocesori (samo magistrala podataka) Magistrala podataka Memorija Registar 1 Registar 2 ALU Fon Nojman arhitektura: Ista memorija (i magistrala) se koristi i za podatke i za instrukcije 35

Digitalni signal-procesori (samo magistrala podataka) Programska magistrala podataka Magistrala podataka za podatke Programska memorija

Digitalni signal-procesori (samo magistrala podataka) Programska magistrala podataka Magistrala podataka za podatke Programska memorija n n Memorija podataka Harvard arhitektura: dozvoljava istovremeno čitanje dva podatka. Arhitektura je projektovana za brže izvršavanje instrukcija čestih u obradi signala (MAC) Multiplekser ALU Accumulator 36

37

37

DSP u odnosu na GPP n Više paralelnih operacija Ø Multiply and accumulate -

DSP u odnosu na GPP n Više paralelnih operacija Ø Multiply and accumulate - MAC (i po nekoliko sklopova) Ø Paralelno preračunavanje adrese (poseban ALU za formiranje adresa) Ø Pomerački registar Barrel shifter koji radi paralelno sa ALU ili MAC n Pristup memoriji Ø Uslovno izvršavanje instrukcija (da bi se izbeglo grananje) Ø Bit-reverzno adresiranje (jako korisno za FFT) Ø Cirkularno adresiranje za pristup cirkularnim baferima n Automatske petlje Ø Softverski skok : asemblerska instrukcija inicira skok Ø Hardverski skok : poseban hardver – brojački registar inicira skok n Hardver podržava aritmetičke operacije (skaliranja i ograničenja) Ø Pomerački registri Ø Zaštitni dodatni biti Ø Podržana aritmetika sa zasićenjem SPREČAVA PREKORAČENJE!! 38

Zasićenje - prekoračenje n 16 bitna aritmetika sa označenim brojevima Ø Opseg od 32768

Zasićenje - prekoračenje n 16 bitna aritmetika sa označenim brojevima Ø Opseg od 32768 do +32767 Zasićenje 39

Zasićenje - prekoračenje n 16 bitna aritmetika sa označenim brojevima Ø Opseg od 32768

Zasićenje - prekoračenje n 16 bitna aritmetika sa označenim brojevima Ø Opseg od 32768 do +32767 Prekoračenje 32767 = 0111 11112 + 3 = 0000 00112 32766 = 1000 0000 00102 40

Tipične primene DSP n Arhitektura DSP je optimizovana da brzo i jednostavno obavlja pre

Tipične primene DSP n Arhitektura DSP je optimizovana da brzo i jednostavno obavlja pre svega 4 algoritma: Ø FIR filtriranje Ø IIR filtriranje § MAC § Barrel shifter kao podrška skaliranju u aritmetici fiksnog zareza § Paralelno preračunavanje adrese novog podatka ili koeficijenta Ø Izračunavanje FFT § Bit-reverzno adresiranje § Cirkularno adresiranje Ø Konvolucija § MAC § Cirkularno adresiranje n Ako primena zahteva izvršavanje ovih algoritama, treba svakako koristiti DSP 41

Kako poboljšati DSP? n Više paralelne obrade Ø Povećati broj operacija koje mogu da

Kako poboljšati DSP? n Više paralelne obrade Ø Povećati broj operacija koje mogu da se obave u istom ciklusu § Dodavanje novih množača, adresnih ALU. . . Ø Povećati broj instrukcija koje mogu da se obave u jednom ciklusu (protočna arh. ) n Dodavanje specijalizovanog hardvera Ø Na primer, hardver za FFT n Dodavanje ko-procesora Ø Viterbi ko-procesor, koprocesor za kompleksnu aritm. n Dodavanje DSP jezgara 42

Alternativa DSP (čemu to? ) 43

Alternativa DSP (čemu to? ) 43

Alternativa DSP (čemu to? ) n Bežični sistemi zahtevaju puno veće propusne opsege nego

Alternativa DSP (čemu to? ) n Bežični sistemi zahtevaju puno veće propusne opsege nego ranije Brzina DSP 3 G 2. 5 G 2 G ~100 MIPS 8 -13 Kbps ~100, 000 MIPS 384 -2000 Kbps ~10, 000 MIPS 64 -384 Kbps Brzina DSP teško prati potrebe propusnog opsega budućih generacija mobilnih komunikacija Propusni opsezi 44

Šta umesto DSP? n Visoko kvalitetni C sa DSP unapređenjima. Ø Mnoge primene traže

Šta umesto DSP? n Visoko kvalitetni C sa DSP unapređenjima. Ø Mnoge primene traže kombinaciju C i DSP. Ovako se pojednostavljuje hardver i snižava cena Ø Primer: Pentium 4, Ds. PIC § Instrukcije i hardver slični MAC. § 144 novih instrukcija prilagođenih obradi grafike i zvuka. § ALU može da radi sa više tipova podataka n n Kombinacija DSP - C u jednom čipu Više-jezgarni DSP Application Specific Integrated Circuits (ASIC) Field Programmable Gate Array (FPGA) 45

Šta je ASIC? Koriste fiksno povezana logička kola u čipu da bi obavili neku

Šta je ASIC? Koriste fiksno povezana logička kola u čipu da bi obavili neku funkciju (na primer hardverski realizova FFT u 256 tačaka) n Mogu da uključe kompetne standardne DSP (Intellectual Properties – IP) n 46

ASIC - Dobre strane Brzina n Manja potrošnja u odnosu na DSP n Odnos

ASIC - Dobre strane Brzina n Manja potrošnja u odnosu na DSP n Odnos cena/karakteristike n Ogromne mogućnosti prilikom projektovanja n 47

ASIC- Nedostaci Velika cena razvoja n Dugotrajan razvoj n Nepromenljivost gotovog proizvoda n Rešenje

ASIC- Nedostaci Velika cena razvoja n Dugotrajan razvoj n Nepromenljivost gotovog proizvoda n Rešenje FPGA 48

Šta je FPGA Mreža logičkih kola čije se veze mogu programirati n Dugo su

Šta je FPGA Mreža logičkih kola čije se veze mogu programirati n Dugo su korišćeni samo u razvoju (za prototip) n Odskora postoji IP za poznate DSP n ØTrenutno: DSP + FPGA: § ALTERA (Stratex) § XILINX (Virtex II) 49

FPGA – Dobre strane Fleksibilniji u odnosu na ASIC n Za neke primene, veliki

FPGA – Dobre strane Fleksibilniji u odnosu na ASIC n Za neke primene, veliki dobitak na brzini u odnosu na DSP n Isti hardver se može ponovo koristiti u drugim primenama n 50

FPGA - Nedostaci Ponovo spor razvoj n Visoka cena u odnosu na DSP n

FPGA - Nedostaci Ponovo spor razvoj n Visoka cena u odnosu na DSP n Veća potrošnja u odnosu na DSP n Dugo vreme do pojave proizvoda na tržištu u odnosu na DSP n 51

A gde je naš DSP? n Mnoge primene se teško mogu realizovati pomoću FPGA

A gde je naš DSP? n Mnoge primene se teško mogu realizovati pomoću FPGA Ø Paralelizam je često vrlo ograničen samom primenom Ø Brzina nije uvek jedini faktor o kome treba voditi računa n FPGA su još uvek preskupi za proizvode masovne proizvodnje (npr. mob. telefoni) 52

A gde je naš DSP? n Poređenje: DSP, FPGA, ASIC* ASIC § Do 1000

A gde je naš DSP? n Poređenje: DSP, FPGA, ASIC* ASIC § Do 1000 GOp. S maksimalno § 50 -200 MOp. S/m. W § 2 -10 GOp. S/$ § 10 M-15 M $ cena razvoja § Nepromenljivi DSP § do 10 GOp. S maksimalno § < 10 MOp. S/m. W § ~0. 1 GOp. S/$ § 1 M $ cena programiranja § Programabilni FPGA § Do 500 GOp. S maksimalno § 2 -10 MOp. S/m. W § ~1 GOp. S/$ § ~5 M $ cena razvoja § Promenljivi * ref: Bill Dally, Stanford University, IEEE ICASSP 04 53

Podsetnik o načinu upisa brojeva Svi primeri ovde se odnose na osmobitne podatke Celi

Podsetnik o načinu upisa brojeva Svi primeri ovde se odnose na osmobitne podatke Celi neoznačeni brojevi: Opseg: 0: 128: 255: 0 do 255 00002 1000 00002 11112 Primer: 154: 1001 10102 27 24 2 3 21 Celi označeni brojevi: Opseg: -128: -127: -1: 0: +127: -128 do +127 1000 00002 1000 00012 11112 00002 0000 00012 0111 11112 Primer: – 102: 1001 10102 – 27 24 2 3 21 54

Razlomljeni brojevi, fiksni zarez n n Razlomljeni brojevi se zamenjuju celim Računske operacije se

Razlomljeni brojevi, fiksni zarez n n Razlomljeni brojevi se zamenjuju celim Računske operacije se obavljaju nad zamenjenim brojevima Programer mora da vodi računa o zamenama i da koriguje rezultat Programer mora u svakoj operaciji da vodi računa i o: o o Opsegu ulaznih podataka da ne bi došlo do prekoračenja prilikom operacija. Preciznosti ulaznih podataka da se ne bi izgubila rezolucija izlaznih. 55

Razlomljeni brojevi, fiksni zarez 13, 25 = 1101, 012 Zamena: ili: * * 001101012

Razlomljeni brojevi, fiksni zarez 13, 25 = 1101, 012 Zamena: ili: * * 001101012 (53 = 13, 25 * 4 = 13, 25 * 22) 011010102 (106 = 13, 25 * 8 = 13, 25 * 23) 110101002 (212 = 13, 25 * 16 = 13, 25 * 24) samo pod uslovom da je neoznačen! 13, 25 = 001101012 u formatu Q 6, 2 ili: 13, 25 = 011010102 u formatu Q 5, 3 Osnova (Radix) 56

Razlomljeni brojevi, fiksni zarez Sabiranje, oduzimanje: Formati sabiraka moraju biti isti QA, B =

Razlomljeni brojevi, fiksni zarez Sabiranje, oduzimanje: Formati sabiraka moraju biti isti QA, B = QA, B Ako nisu isti, menja se format broju sa većom osnovom (B) PROMENA FORMATA: • Kad treba smanjivati B - pomeranje nadesno • Kad treba povećavati B - pomeranje nalevo Množenje: QA, B * QC, D = QA+C, B+D Deljenje: QA, B / QC, D = QA-C, B-D 57

Često korišćeni formati Za neoznačene brojeve Q 0, 32 - Najmanji broj različit od

Često korišćeni formati Za neoznačene brojeve Q 0, 32 - Najmanji broj različit od nule: 2 32 2, 33 10 10 Najveći broj: 1 2 32 0, 99999767 Koristi se za normalizovane brojeve Za označene brojeve Qs 1, 31 - Najmanji pozitivan broj različit od nule: 0000 0000 00012 = +2 31 +4, 65 10 10 - Najveći negativan broj različit od nule: 1111 111112 = 2 31 4, 65 10 10 58

Razlomljeni brojevi, pokretni zarez n n Zapis podatka u memoriji sadrži i informaciju o

Razlomljeni brojevi, pokretni zarez n n Zapis podatka u memoriji sadrži i informaciju o poziciji zareza. Programer ne mora da vodi računa o svakoj operaciji pošto se položaj zareza automatski koriguje. Jednostavnije za programiranje, manja verovatnoća prekoračenja ili gubitka rezolucije. Ne mogu se koristiti standardne binarne operacije ugrađene u ALU. n Puno sporije ako se ne doda posban Fp. ALU. 59

Razlomljeni brojevi, pokretni zarez NORMALIZACIJA PODATKA: U decimalnom sistemu: Dovođenje u formu 0, x.

Razlomljeni brojevi, pokretni zarez NORMALIZACIJA PODATKA: U decimalnom sistemu: Dovođenje u formu 0, x. . . 10 E gde je prva cifra x ≠ 0 mantisa eksponent 205641, 45 = 0, 20564145 106 m=0, 20564145, E=6 Ili m=0, 325, E= – 3 0, 000325 = 0, 325 10– 3 60

Razlomljeni brojevi, pokretni zarez NORMALIZACIJA PODATKA: U binarnom sistemu: Dovođenje u formu 0, 1.

Razlomljeni brojevi, pokretni zarez NORMALIZACIJA PODATKA: U binarnom sistemu: Dovođenje u formu 0, 1. . . 2 E mantisa eksponent 100110, 012 = 0, 10012 26 m=0, 10012; E= 6 Ili m=0, 10012; E= – 3 0, 00010012 = 0, 10012 2– 3 61

Pokretni zarez, 1 -7 -24 format 32 -bitna reč se formira na sledeći način:

Pokretni zarez, 1 -7 -24 format 32 -bitna reč se formira na sledeći način: Bit 31: Biti 30 do 24: Biti 23 do 0: 31 Z znak (Z) eksponent uvećan za 64 (E+64) mantisa u formatu Q 0, 24 (mantisa) 24 E+64 23 0 mantisa Z: bit znaka: 0 za pozitivne, 1 za negativne brojeve E+64: eksponent uvećan za 64 (uvek pozitivan broj) mantisa: u formatu Q 0, 24, (24 bita iza zareza) 62

Pokretni zarez, 1 -7 -24 format 31 Z 24 23 E+64 Polje se obično

Pokretni zarez, 1 -7 -24 format 31 Z 24 23 E+64 Polje se obično označava sa b (biased exponent) Odnos E i b za polje 7 -bita E b – 64 0 00000002. . . – 1 63 01111112 0 64 10000002 +1 65 10000012. . . +63 127 11111112 0 mantisa “Višak”, obično označen sa a. Bira se tako da b bude uvek pozitivno. Za polje dužine 7 bita, a=64, Za polje dužine 8 bita, a=128 Za polje dužine 11 bita, a=1024 Za polje dužine 7 bita, eksponent može biti od – 64 do +63. Dodavanjem viška a = 64 izbegava se zapis negativnog broja u polju 63

Pokretni zarez, 1 -7 -24 format Primer: 13, 25 = 1101, 012 = 0,

Pokretni zarez, 1 -7 -24 format Primer: 13, 25 = 1101, 012 = 0, 1101012 24 Z=0 E = 4 b = E+64 = 68 = 10001002 mantisa = 1101 0100 00002 31 24 23 1 bit 7 bita 24 bita 0 13, 25 = 0100 1101 0100 0000 64

Pokretni zarez, IEEE 754 format Bit najveće pozicione vrednosti (msb) mantise je uvek 1!

Pokretni zarez, IEEE 754 format Bit najveće pozicione vrednosti (msb) mantise je uvek 1! Zašto onda upisivati tu jedinicu? • Polje mantise gubi bit br. 23 • • Jedinica na mestu bita 23 mantise se ne upisuje Ostali biti (22 do 0) ostaju isti kao u 1 -7 -24 formatu Polje za uvećani eksponent postaje 8 bita (biti 30 -23) Višak postaje 126 umesto 64 • Standardom je usvojeno da višak bude 126, a ne 128 što bi bi dalo opseg eksponenata isti kao oseg označenih brojeva! 65

Pokretni zarez, IEEE 754 format 31 24 23 0 1101 0100 0000 13, 25

Pokretni zarez, IEEE 754 format 31 24 23 0 1101 0100 0000 13, 25 = 0100 IEEE 754: 31 13, 25 = 0100 0001 0100 0000 b = 4+126 IEEE 754: 31 Z 23 22 E+126 0 mantisa_1 mantisa bez prve jedinice 66

Pokretni zarez, IEEE 754 format • 32 -bitni: 1 -8 -23 bita za znak,

Pokretni zarez, IEEE 754 format • 32 -bitni: 1 -8 -23 bita za znak, b i mantisu bez prve 1 • • 64 -bitni: 1 -11 -52 bita • • float (u C-jeziku) - single precision Najmanji broj 1, 2 10– 38, najveći 3, 4 10+38 Oko 6 -7 značajnih cifara u decimalnom sistemu double (u C-jeziku) - double precision Najmanji broj 1, 8 10– 308, najveći 2, 2 10+308 Oko 12 -15 značajnih cifara u decimalnom sistemu Specijalni slučajevi: 0 : mantisa_1 = 0; b = 0; Na. N; : mantisa_1 = 0; b = 111. . . 12 67

68

68

Pokretni zarez ne rešava sve! Primer: x = 10, 0 + y = 0,

Pokretni zarez ne rešava sve! Primer: x = 10, 0 + y = 0, 000000240 z = 10, 000000240 (0 x 41200000) (0 x 3480 D 959) NETAČNO! Tačno? Nemoguće je predstaviti 10, 000000240 pomoću 32 -bitnog “float” broja! 0 x 412000000 0 x 412000001 = 10, 000000240 ne postoji! = 10, 000001000 Zato rezultat z ostaje 10, 00000 69

Može bolje u fiksnom zarezu! Na primer : x = 10, 0 + y

Može bolje u fiksnom zarezu! Na primer : x = 10, 0 + y = 0, 000000240 (0 x 0 A 000000) Q 8, 24 (0 x 00000004) Q 8, 24 z = 10, 000000240 (0 x 0 A 000004) Q 8, 24 Tačan rezultat! 70

Fixed-point and Floating-point n n n 1. 2. 3. Benchmark: Multiply Operation k=i*i Test

Fixed-point and Floating-point n n n 1. 2. 3. Benchmark: Multiply Operation k=i*i Test setup: Integer multiply operation Floating-Point multiply by Floating-Point Library Floating-Point multiply by Floating-Point Hardware unit Benchmark result: code size (words) clock cyc. (6. 67 ns) Fixed-point Floating-Point. Library Floating-Point. Hardware 3 3 89 112 9 5 71

DSP sa aritmetikom u fiksnom ili u pokretnom zarezu ? n Procesori sa aritm.

DSP sa aritmetikom u fiksnom ili u pokretnom zarezu ? n Procesori sa aritm. u fiksnom zarezu: Ø Ø Jeftiniji su Manji su, mehanički Imaju manju potrošnju Teži su za programiranje § Potrebno je veliko iskustvo i veština programera § Lako se potkradu greške kod premašenja, zaokruživanja, odsecanja. . . Ø Ograničenog dinamičkog opsega Ø Ipak, koriste se u preko 95% proizvoda široke potrošnje n Procesori sa aritm. u pokretnom zarezu: Ø U krajnjoj liniji, imaju bolju preciznost (USLOVNO!) Ø Mnogo se lakše programiraju! n Puno je teže, naročito u C jeziku, izraditi efikasan kôd sa procesorima u fiksnom zarezu Sve ove karakteristike treba shvatiti vrlo uslovno! 72

DSP sa aritmetikom u fiksnom ili u pokretnom zarezu ? Tipične primene DSP sa

DSP sa aritmetikom u fiksnom ili u pokretnom zarezu ? Tipične primene DSP sa aritm. u pokretnom zarezu Tipične primene DSP sa aritm. u fiksnom zarezu • Modemi • Prenosni uređaji • Digitalna pretplatnička lin. (DSL) • Mob. telefoni do 3 G • Bežične bazne stanice • Digitalni audio plejeri • Komutacioni centri • Digitalni foto aparati • Privatne tel. centrale (PBX) • Elektronske knjige (kindle) • Uređaji intenzivnom obradom slike (skeneri, MR, montaža. . . ) • GPS prijenmici • Uređaji sa 3 D grafikom • Uređaji za prepoznavanje govora ili govornika • Kućni bežični telefoni • Upravljanje motorima i u industriji • DSP u automobilima (ABS, EPS. . . ) 73

Softver: kako se danas najčešće radi n n n Kôd se piše u C-jeziku.

Softver: kako se danas najčešće radi n n n Kôd se piše u C-jeziku. Kompajler ga prevodi na asemblerski izvorni kôd. Asembler prevodi ovaj izvorni kôd u objektni. Povezivač (linker) povezuje objektne kodove. Koristi se simulator (ili razvojni hardver) da se proveri funkcija i brzina. Ako kôd nije dovoljno brz – unapredi C-kôd i testiraj ponovo. Ako još uvek nije dovoljno brz, modifikuj asemblerski izvorni kôd ili programiraj ponovo kritične delove koristeći asemblerski jezik ! 74

Čemu taj asembler? n Većina C kompajlera za DSP proizvodi kôd koji ne koristi

Čemu taj asembler? n Većina C kompajlera za DSP proizvodi kôd koji ne koristi u potpunosti prednosti DSP arhitekture: Ø Paralelno izvršavanje više instrukcija Ø Prenos podataka paralelno sa izvršavanjem n Malo je C kompajlera koji su namenjeni samo jednom tipu DSP. Ø Univerzalnost ugrožava efikasnost koda. n n C kod može i do 30 puta* da bude sporiji od optimalno napisanog asemblerskog koda. Problem je naročito izražen kod DSP sa aritmetikom u fiksnom zarezu. 75

76

76

Ali ja neću da pišem u asembleru !! n Pustite neka neko drugi to

Ali ja neću da pišem u asembleru !! n Pustite neka neko drugi to uradi za vas. Ø Koristite biblioteke ili gotove module. n Upoznajte arhitekturu DSP i principe rada kompajlera! Ø Tako ćete pisati efikasniji C-kod. n n Upoznajte algoritme za obradu signala i kako se oni izvršavaju u DSP. Definišite vremenski kritične delove koda i samo njih izradite u asembleru: Ø Najčešće su takvi delovi samo par procenata ukupnog koda. Ø Izmenom par procenata koda, mogu se značajno poboljšati karakteristike celog programa. Ø Nepisano 5/80 % pravilo: § Samo 5% koda često uzima 80% procesorskog vremena 77

Kako praviti efikasniji C-kôd? n Mislite na asembler! n Pravite kratke, jednostavne petlje Izbegavajte

Kako praviti efikasniji C-kôd? n Mislite na asembler! n Pravite kratke, jednostavne petlje Izbegavajte if u petljama, kad god je to moguće Izbegavajte pozive potprograma u petljama, kad god je to moguće Koristite makroe n n n Ø Makroi izbegavaju trošenje vremena na poziv, povratak, a naročito na čuvanje i obnavljanje registara Ø Makroi se ugrađuju u izvorni kôd što može povećati veličinu koda n Izbegavajte operacije deljenja Koristite log. operacije (&, >>, |) Puno zavisi od konkretnog DSP, upoznajte njegovu arhitekturu! n 78

Texas Instruments Portfolio Microcontrollers 16 -bit MCU 32 -bit Real-time MSP 430 C 2000™

Texas Instruments Portfolio Microcontrollers 16 -bit MCU 32 -bit Real-time MSP 430 C 2000™ Ultra-Low Power Fixed & Floating Point Up to 25 MHz Arm-Based 32 -bit ARM DSP ARM+ ARM + DSP ARM 9 Cortex A-8 C 64 x+ plus ARM 9/Cortex A-8 C 647 x, C 64 x+, C 55 x Industry Std Low Power Industry-Std Core, High-Perf GPP Industry-Std Core + DSP for Signal Proc. Leadership DSP Performance Up to 150 MHz Up to 100 MHz Accelerators 4800 MMACs/ 1. 07 DMIPS/MHz 24, 000 MMACS Flash 1 KB to 256 KB Flash 32 KB to 512 KB Flash 8 KB to 256 KB MMU, Cache Up to 3 MB L 2 Cache Analog I/O, ADC LCD, USB, RF PWM, ADC, CAN, SPI, I 2 C USB, ENET, ADC, PWM, HMI USB, LCD, MMC, EMAC Measurement, Sensing, General Purpose Motor Control, Digital Power, Lighting Host Control, general purpose, motor control Linux/Win. CE User Apps Linux/Win + Video, Imaging, Multimedia Comm, Wi. MAX, Industrial/ Medical Imaging $0. 49 to $9. 00 $1. 50 to $20. 00 $2. 00 to $8. 00 to $35. 00 $12. 00 to $65. 00 $4. 00 to $99. 00+ Stellaris Cortex™ M 3 VPSS, USB, EMAC, MMC 1 G EMAC, SRIO, DDR 2, PCI-66 79

Texas Instruments TMS 320 DSP/DSC Dedicated families to support different market needs C 2000

Texas Instruments TMS 320 DSP/DSC Dedicated families to support different market needs C 2000 Lowest Cost C 6000 C 5000 Efficiency Control Systems Best MIPS per Motor Control Watt / Dollar / Size Storage Wireless phones Digital Control Systems Internet audio players Power Supply Control Digital still cameras Modems Telephony Vo. IP Performance & Ease-of-Use Multi Channel and Multi Function App's Communication Infrastructure Wireless Base-stations DSL Imaging Multi-media Servers 80 Video

TMS 320 C 2000™ DSC Family 81

TMS 320 C 2000™ DSC Family 81

82

82

2019. 83

2019. 83

2019. 84

2019. 84

Versatile C 2000 Application Areas E-bike Digital Motor Control Renewable Energy Wind Power Inverters

Versatile C 2000 Application Areas E-bike Digital Motor Control Renewable Energy Wind Power Inverters Power Tools Solar Power Inverters White Goods Digital Power DC/DC Converters Industrial Drives & Motion Control Lighting LED Street Lighting C 2000 Uninterruptable Power Supplies Auto HID Telecom / Server AC/DC Rectifiers Radar / Collision Avoidance Laser Ranging Power Line Communication Hybrid Electric Vehicles Medical Oxygen Concentrators LED TV Backlighting Optical Networking Electric Power Steering RFID Readers Automotive Precision Sensing & Control 85

TMS 320 C 28 x DSC Block Diag. TMS 320 F 28335 Code security

TMS 320 C 28 x DSC Block Diag. TMS 320 F 28335 Code security 68 KB RAM 512 KB Flash Boot ROM 18 PWM (6 HRPWM) Memory Bus 6 CAP 2 QEP DMA C 28 x 32 -bit DSC TM 32 x 32 -bit Multiplier 32 -bit Timers (3) Real-Time JTAG R M W Atomic ALU 32 -bit Floating-Point Unit Peripheral Bus Interrupt Management 12 -bit ADC 88 GPIO 16/32 -bit EMIF SPI 3 SCI 2 Mc. BSP I²C 2 CAN 86