Mikrokontroleri

Autor: Branko Petljanski

E-mail: brankop@uns.ns.ac.yu

 

DIGITAL SIGNAL PROCESORI vs. UNIVERZALNI MIKROPROCESORI

Digitalna obrada signala zahteva veliki broj izračunavanja u realnom vremenu. Kao primer može poslužiti brza Furijeova transformacija (FFT). Izračunavanje FFT za N=1024, koristeći Turbo Lab program na IBM kompatibilnom računaru sa procesorom 386, traje oko 300ms. Za to vreme DSP procesoru TMS320C30 (koji je približno iste generacije kao i procesor 386) za izvršavanje iste operacije, potrebno je oko 1.5ms.

Digitalni signal procesori imaju približno isti nivo integracije, isti učestanost osnovnog takta kao i mikroprocesori opšte namene. Iako uobičajeni mikroprocesori opšte namene imaju i neke prednosti u stepenu integracije i brzine osnovnog takta, DSP je brži za dva do tri reda veličine. Glavni uzrok je u razlikama u arhitekturi. Među tim razlikama su:

  • Arhitektura
    • ALU-specijalizovan hardver(množači)
    • sličnost sa RISC arhitekturom
    • paralelno procesiranje
  • Harvardska arhitektura magistrala
  • Specifična interna memorijska organiz.
  • Mogućnost multiprocesorskog rada
    • povezivanje dva i više procesora (TMS320C40)
    • korištenjem istih memorijskih resursa (TMS320C80)

Treba napomenuti da se neke osobine DSP procesora ugrađuju u najnovije mikroprocesore opšte namene, ali ne i obrnuto jer DSP procesori predstavljaju inovaciju u oblasti projektovanja.

Aritmetičko logička jedinica (ALU)

Najčešće korišćena operacija u digitalnoj obradi signala je izračunavanje proizvoda dva vektora. Primer je dobro poznata Diskretna Furijeova Transformacija (DFT). Ovde je najsloženija operacija, operacija množenja. Na primeru proizvoda dva vektora može se uverljivo prikazati razlika u brzini izvršavnja ove operacije na mikroprocesorima opšte namene i DSP procesorima. Tako je mikroprocesoru 8086 za sabiranje dva broja potrebno tri ciklusa, dok je za množenje potrebno između 134-160 ciklusa. U standardnim zadacima koje ovaj procesor izvršava, vreme utošeno za množenje iznosi do 1% od uku-pno utrošenog vremena. Zbog toga, množač kao složena aritmetička jedinica, obično nije impleme-ntirna u procesore opšte namene. Ali u digitalnoj obradi signala, množenje predstavlja glavnu operaciju, pa je ugrađivanje te jedinice predstavljalo logičan i neophodan korak pri projektovanju DSP procesora. Da bi se povećala brzina, DSP procesori obično imaju mnogo specijalizovanih aritmetičkih jedinica, koji mogu da rade istovremeno. Za izračunavanje sume prozivoda, DSP procsor ima množač i akumulator s kojim operacije množenja i sumiranja se mogu izvršiti u jednom ciklusu. Svi DSP procsori imaju i jedinicu za pomeranje (shift unit), s kojim se može vršiti pomeranje operanda paralelno sa njegovim upisom u akumulator, tako da se ne stvaraju nepotrebni gubici u vremenu. Univerzalni CISC (Complex Instruction Set Computer) mikroprocesori imaju veoma različito vreme izvršavanja pojedinih instrukcija. Već je rečeno da mikroprocesoru 8086 treba za sumiranje 3 ciklusa, a preko 100 ciklusa je potrebno za množenje. Kod digitalne obrade signala je poželjno je da se instrukcije izvršavaju jednakom brzinom. Pokušajmo da zamislimo neki program u kome se vrši odluka između dve grane u zavisnosti od ulaznog podatka koji je slučajne prirode. Ako je vreme izvršavanja instrukcija veoma različito, vrlo je verovatno da će se vreme potrebno za izvršavanje tih grana veoma razlikovati (npr. u jednoj grani je množenje, a u drugoj sabiranje). Tako dolazimo do toga da je vreme izvršavanja algoritma nemoguće izračunati, a poznavanje tog vremena je vrlo važno kod obrada signala u realnom vremenu. Podjednako vreme potebno za izvršenje instrukcija je postignuto u RISC (Reduced Instruction Set Computer) mikroprocesorima, ali kod DSP procesora je isto postignuto hardverskim ubrzanjem kompleksnih instrukcija npr. množenja.

Arhitektura magistrale

Mikroprocesori opšte namene su dizajnirani za relativno jednostavne i jeftine personalne računare. Oni imaju jednostavniju, Von-Newman-ovu, arhitekruru magistrale: zaje-dnički prostor za podatke i program. Kada mikroprocesor izvršava neku instrukciju, on je mora pročitati iz memorije, dekodirati je, zatim iz memorije pročitati operand, i tek onda izvršiti operaciju. To oduzima veliku količinu vremena. Svaka komanda može uzeti samo jedan operand iz memorije, dok drugi operand potreban za izračunavanje uzima iz nekog od regi-stara. Svi DSP procesori imaju Harvardsku arhitekturu sa odvojenom magistralom za programske instrukcije od magistrale za podatke. DSP procesor može čitati instrukciju i podatke iz memorije istovremeno i tako značajno ubrzati rad celog procesora. Skoro svi DSP procesori imaju modifikovanu Harvardsku arhitekturu sa tri magistrale: jednu za program, a dve za podatke. Takva arhitektura omogućuje istovremeno čitanje instrukcije i dva opera-nda, a potreba za takvom operacija je vrlo česta kod digitalne oprade signala.

2b51.gif (17451 bytes)
Slika 1. Blok dijagram digital signal procesora TMS320C5X

Adresiranje

DSP procesori su dizajnirani za obradu velikih količina podataka koji se obično nalaze u nizovima. Kod klasičnih mikroprocesora opšte namene, često je vreme potrebno za izračunavanje adrese veće nego vreme potrebno za obradu podatka koji smo uzeli sa te adrese. Zato DSP procesori po pravilu imaju hardverski podržan rad sa nizovima u vidu specijalizovane jedinice - adresnog generatora. Zahvaljujući tome, nema gubljenja vremena na izračunava-nje adrese podatka koji obrađujemo. Modemski mikroprocesori također imaju odvojen generator adrese, koji omogućuje automatsko povećanje i smanjenje adrese, bez gubitka vremena. Ali DSP procesori imaju unapređene adresne ge-neratore, koji podržavaju i druge modove rada sem povećanja i smanjenja adrese po jedan korak, kao što je binarno inverzno adresiranje koje se susreće kod FFT.

2b52.gif (13536 bytes)
Slika 2. Mogućnost aritmetičko logičke jedinice digital signal procesora TMS320C5X

Memorija

Aritmetičke operacije često zahtevaju manje vremena nego uzimanje podataka iz memorije. Tako kod 8086 mikroprocesora za sabiranje dva broja u registrima potrebno je tri ciklusa, dok je za sabiranje na relaciji registar-memorija potrebno 14-21 ciklus. To je pod uslovom da je memorija dovoljno brza da nema potrebe za ubacivanjem praznih ciklusa kojim sinhronizujemo rad procesora i memorije. Moderni mikroprocesori imaju kompleksne memorijske mehanizme zbog velikih zahteva novih programa opšte namene. Ponekada nije dovoljan ni ceo hard-disk da bi smestili takvi programi sa odgovarajućim podacima. Nasuprot tome, DSP procesori imaju zadatak da mnogo računaju, ali je je sam algoritam relativno jednostavan, pa samim time se ceo program može smestiti u memoriju koja je na istom čipu. Postavljanje memorije uz sam procesor smanjuje vreme potrebno za prebacivanje podataka. Još jedan od razloga za postavljanje programske i memorije za podatke na isti čip je i smanjenje troškova.

2b53.gif (19299 bytes)
Slika 3. Interna arhitektura klasičnog mikrokontrolera


Pročitajte više o ovoj temi
Uvod u DSP
DSP u akviziciji podataka
MS 320 DSP solutions CD rom

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji