DSP architektúrák Texas Instruments DSP architektúrák
A TI úttörő a DSP-k kifejlesztésében. Ma is a piaci részesedés több mint felét magáénak tudja, három tipusú DSP van a TMS családban: − C2000 – Motor Control DSC − C5000 – általános célú DSP − C6000 – nagy kapacítású fix és lebegőpontos DSP, maximum 1GHz órajellel. Ebben az előadásban a C5000-es családra koncentrálunk, ez van a laborban is. A C2000 család architektúrája nagymértékben hasonlít a dsPIC családhoz, ezt részleteztük eddig, a C6000 családot is néhány mondatban elemezzük, ennek az architektúrája nagyon fejlett, bonyolult, nem tárgya egy bevezető előadásnak. A C5000 családnál két architektúrát külömböztetünk meg, a C54x valamint a C55x. Közös tulajdonságok: − Egy vagy több MAC művelet egy utasításciklus alatt − Belső regiszterek az operandusok és az eredmény tárolására − Többszintű belső adatmemória − Címgeneráló regiszterek (8 vagy több) − Dedikált ALU − Több buszrendszer az adat és kódmemória párhuzamos kezelésére − DMA(Direct Memory Acces) − Pipeline − Párhúzamos egységek, pl. két MAC − Specializált perifériák(dekodolók, AD konverter, stb.) − Specializált utasítások(Viterbi, LMS…) − Bit reverese címzés(FFT) − Körlista(FIR) MAC egység:
Buszrendszer:
Amint látjuk két adatolvasásra szánt busz(C,D), egy kódolvasás(P) valamint egy adat írást(E) szolgáló buszrendszer van. Ezeken ketesztül a belső és a külső memória egyaránt kezelhető. Pipeline
Egyszerűsített C54x architektúra
A CPU alegységek: − Két 40 bites akkumulátor − 40 bites ALU, egy 40 bites eltoló egységgel(Barrel shifter) − 17x17 bites szorzó és egy 40 bites összegző, ezek együtt a MAC − Compare, select, store (CSSU) egység − Komplex buszrendszer, egy programbusz, három adatbusz és négy címbusz − Két címgeneráló egység Memória: − 64K szó program memória − 64K szó adat memória − 64K szó IO memória Tehát a C54x család egy általános, 16 bites fixpontos DSP, ugyanazok az alegységek láthatók mint a dsPIC családnál. Az egyik fontos külömbség az adat írás busz. A TI architektúrához tartozik az AR címregiszterek, nem az általános célú regisztereket használja címgenerálásra, hanem az AR regisztereket. Még látható egy XPC, tehát kiterjesztett programszámláló, valamint DP – Data Page pointer.
C55x egyszerűsített architektúra:
CPU alegységek: − − − − − − −
32x16 bit utasítás buffer(IBQ) Két 17x17 bites MAC Egy 40 bites ALU Egy 40 bites Barrel Shifter Egy 16 bites ALU Négy 40 bites ACCU 12 busz: § 3 adat olvasás § 2 adat írás § 5 adat címzés § 1 program olvasás § 1 program írás Memória: − 176K szó egyesített memória(ugyanaz a fizikai zóna) A C55x ugyancsak 16 bites fixpontos DSP, de kétszer annyi párhúzamos egysége van mint a C54x-nek.
Összehasonlítás:
C54x architektúra részletes tárgyalása: A C54x processzáló valamint periféria egységei:
Érdekes észrevenni az EXP Encodert, vagyis exponenciálist számító egységet valamint a JTAG interfészt, ami teszt és debug funkciók egyszerű kezelését teszi lehetővé. Nagyon hasznos a DMA, ugyanis nagy mennyiségű adatátvitel lehetséges a memória és egy periféria között. Memória kezelés A C54x összesen 192k szó memóriát tud címezni. Ez három részre van osztva, 64k program, 64k adat, 64k IO memória. Az IO memória külső, memóriába vetített perifériák kezelésére szolgál, de lehet adatmemória is. Négy párhúzamos memóriaművelet végezhető egy utasításciklus alatt, program olvasás, két operandus olvasás és egy eredmény visszaírás. A TI architektúra memóriakezelése sokkal több lehetőséget biztosít mint a dsPIC, külső memóriakezelés valamint az adat és programmemória kölcsönösen egymásba ágyazható.
Memória konfigurácók
Vannak processzorok amelyek kiterjesztett kódmemórikezelésre képesek, a C548, C549 maximum 8Mx16 bit kódmemóriát képes megcímezni.
Adat memória Az adatmemória 64k szó, ennek egy része a belső memória. Ha a címgeneráló egység a belső címtartománynál nagyobb címet számol, akkor a processzor automatikusan külső olvasást végez.
A ROM tartalmaz egy bootloadert, amivel az eszköz programozható soros interfészen keresztül.
Perifériák:
Következtetések: − A C54x család a dsPIC-hez hasonló architektúrával rendelkezik − Több buszrendszere van, tehát gyorsabb − Több szintű pipeline − DMA lehetőség, gyorsabb periféria kezelés − Bootloader, könnyen programozható − JTAG interfész − Hardware exponenciális számítás − Külső memóriakezelés, programozható várakozások(wait state)
C55x architektúra:
A már említett CPU egységeken kivül a pipelinet is kiterjesztették. Két pipeline van, egy a program olvasásra és egy a program végrehajtásra. A program olvasás feltölti az IBQ(Intstruction Buffer Queue) listát, a program végrehajtó egység kiolvassa és végrehajtja.
Memória térkérp A C55x ugyanazt a fizikai memóriazónát osztja meg az adatok, program és perifériák kezelésére.
A memória címzése: − 16Mbit címezhető mint adat és program memória − A programot bytonként címezi, 24 bites a címbusz − Az adatokat szóként kezeli, ezért a címnek az utolsó bitje mindig 0. − Az adatmemória 128 lapra van osztva, mindenik 64K − Az adatmemória 0-s lapja tartalmazza a memóriába vetített regisztereket(MMR)
C55x Perifériák
EHPI – Enhanced Host Port Interface 16 bites interfész külső processzorral való komunikációhoz EMIF – External Memory Interface Következtetések: − A C55x fejlettebb architektúra, a C54x-hez képest kétszer annyi hardware egysége van − A memóriakezelése flexibilis − Két pipeline A két családról elmondható, hogy jobb architektúrájuk van mint az eddig tanulmányozott dsPIC-nek. Hátrányuk a kevés periféria, inkább olyan rendszerekben lehet sikeresen használni, ahol külső eszközökkel együtt nagysebességű jelfeldolgozási feladatokat kell elvégezni(hang, képfeldolgozás, stb). Az elektrónika tervezés nehezebb és költséges, de jobb eredményeket lehet elérni velük mint a dsPIC-el.
C67x család betekintés
C672x család 32 vagy 64 bites lebegőpontos DSP. Az architektúrája bonyolult, adatgyorsító(dMAX), buszok összekapcsolását végző egység(Crossbar Switch) és fejletteb periféria jellemzi.