ADIlogo.jpg (16122 bytes)

 

Signálový procesor TS-201s

 

 

Jan Beránek, letní semestr 05/06

Úvod

Signálový procesor firmy Analog Devices Inc. (ADI) TS-201S je jedním z nejnovějších členů rodiny TigerSHARC, určený pro zpracování velkého množství signálů, multiprocesorové a výpočetně náročné operace, jako jsou radary a sonary, lékařská zobrazovací technika, nebo technika určená k řízení technologických procesů. Hlavní uplatnění nachází procesor v telekomunikacích, jako základní stavební kámen základnových stanic pro třetí generaci mobilních sítí ho používají například firmy Ericsson a Fujitsu-Alcatel. Díky vynikajícím výsledkům, kombinaci flexibility signálového procesoru a vysokému výkonu, se mu tak podařilo dostat na pole ovládané spíše uživatelskými obvody(ASIC).


 

Základní vlastnosti

ADSP TS-201s je vysoce výkonný procesor určený pro zpracování rozsáhlých signálů a komunikační infrastrukturu. Kombinuje velkou paměť s dvěma výpočetními bloky podporujícími operace v pohyblivé řádové čárce (IEEE 32-bit a rozšířená přesnost 40-bit) a v pevné řádové čárce (8, 16, 32, 64-bitů). Architektura umožňuje vykonat až čtyři instrukce během instrukčního cyklu, což znamená až 24 16-bitových operací v pevné řádové čárce nebo 6 operací v plovoucí řádové čárce. DSP obsahuje 4 nezávislé 128-bitové datové sběrnice, každá připojující 6 4Megabitových paměťových bloků, přenášející 4-slová data, instrukci, nebo I/O přístup s rychlostí 33.6 GB/s. Při taktovací rychlosti 600 MHz, tzn. instrukčním cyklu 1.67ns a využití možností single-instruction, multiple-data (SIMD) je procesor schopen vykonat 4.8 miliardy 40-bitových MAC, nebo 1.2 miliardy 80-bit MAC za sekundu.


TSbmarks.jpg (50588 bytes)

Tabulka 1: Rychlost vykonání vybraných operací

 

Architektura

Bloky procesoru:
TScore.jpg (32208 bytes)

Obr. 1: Blokové schéma procesoru TS-201s

TigerSHARC DSP používá "Static Superscalar" (ochranná známka ADI) architekturu, což znamená, že jádro procesoru může současně vykonat jednu až čtyři 32-bitové instrukce zakódované do velmi velkého instrukčního slova (very large instruction word = VLIW) za použití dvou výpočetních bloků a DSP neprovádí přeskupování instrukcí (=static), programátor určuje, které operace budou prováděny zároveň. Kromě několika vyjímek se řada instrukcí, ať už obsahuje jednu nebo více instrukcí, provede s propustností jednoho instrukčního cyklu v pipeline procesoru, která má hloubku deset. Pro optimální provádění programu musí programátor postupovat podle pravidel paralelismu instrukcí. Obecně záleží výběr instrukcí, které může procesor vykonávat paralelně na "zdrojích"(instruction line resources), které instrukce potřebuje a na zdrojových a cílových registrech použitých v instrukci. Programátor má přímou kontrolu nad třemi částmi jádra: IALU, výpočetními bloky a programovým řadičem. Kdykoliv není výsledek výpočtu připraven pro další operaci, která na něm závisí, přidá procesor automaticky podle potřeby jeden nebo více cyklů čekání. V dokumentaci je možné se dočíst, že: "Efektivním programováním je možné většinu zpomalujících závislostí odstranit." (Pro ilustraci, zde najdete příklad implementace fir filtru, 32-bit plovoucí řádová čárka.) Výpočetní bloky mohou být plněna stejnými (broadcast distribution) nebo rozdílnými (merged distribution) daty.


 

Programový řadič

Programový řadič podporuje plně přerušitelný programovací model s pružným programováním v asembleru a C/C++, zpracovává přerušení s vysokým výkonem a bez přerušených instrukčních cyklů. Pipeline procesoru je deseti-cyklová, první čtyři cykly jsou přípravné a šest cyklů probíhá provádění instrukce. Výsledek výpočtu je k dispozici dva cykly potom, co jsou k dispozici operandy. Řadič podporuje předpovídání větvení a má 128-mi položkovou paměť cílů větvení (branch target buffer = BTB) ke snížení zpoždění při výkonu podmíněných i nepodmíněných skoků a cyklů.


Vložení až čtyř 32-bitových instrukcí do velmi velkého instrukčního slova umožňuje již zmíněné vykonání více operací najednou. Některými zvláštnostmi instrukční sady jsou:

 

DSP podporuje zahnízděná a nezahnízděná přerušení (nested, nonnested interrupts). Každý typ přerušení má registr v tabulce vektorů přerušení, je pevně dáno, jestli je spouštěn hranou nebo hladinou, s vyjímkou hardwarových přerušení IRQ3-0, která jsou programovatelná. DSP rozlišuje hardwarová přerušení a softwarové vyjímky a rozdílně s nimi nakládá. Softwarová vyjímka způsobí přerušení vykonávání instrukcí v pipeline. Když se objeví hardwarové přerušení, procesor pokračuje ve vykonávání instrukcí, které už v pipeline jsou.


 

Paměť procesoru

Vnější i vnitřní paměť je organizována do jednotné paměťové mapy, která definuje adresu všech součástí v systému. Paměťová mapa je rozdělena na čtyři paměťové oblasti: prostor připojeného "hostujícího" procesoru (host memory), externí paměť, multiprocesorový prostor a vnitřní paměť. Kromě "host" paměti jsou všechny dále rozděleny na menší bloky.


TSmemmap.jpg (32193 bytes)

Obr. 3: Mapa paměti procesoru ADSP-TS201S

Vnitřní paměť ADSP-TS201s tvoří 24Mbit paměti DRAM na čipu, rozdělená na šest bloků po 4M bitech (128k slov po 32 bitech). Bloky jsou označené M0, M2, M4, M6, M8 a M10 a mohou obsahovat program, data nebo oboje, takže aplikace mohou užívat paměť tak, jak je to pro ně nejpříhodnější. Umístění programu a dat do různých bloků nicméně umožní DSP zároveň přístup k datům i k instrukcím. Každý segment obsahuje 128k bit vyrovnávací paměti (cache) pro umožnění jednocyklového přístupu do paměti. Paměťové bloky jsou připojeny přes čtyři 128-mi bitové sběrnice na křížové pole, čímž lze dosáhnout čtyř přístupů do paměti v jednom instrukčním cyklu. Celková šířka pásma interní sběrnice je 33.6GB/s.


TSdram.jpg (22191 bytes)

Obr. 4: Připojení paměťových bloků ke sběrnici

Možnosti paměťové struktury procesoru:

TSdram2.jpg (12124 bytes)

Obr. 5: Blokové schéma cache paměti

 

Externí port

Externí port připojuje paměť mimo čip a periferie. Čtyři miliardy slov adresovatelného prostoru je zahrnuto v jednotně adresovaném prostoru procesoru. Interní sběrnice ( čtyři datové po 128-mi bitech a čtyři adresové 32-bitové ) jsou multiplexovány na SOC rozhraní a přivedeny na externí port přes SOC sběrnici. Externí systémová sběrnice sestává z jedné 64-bitové datové a jedné 32-bitové adresové sběrnice, je schopná přenášet data rychlostí až 1GB/s. Může být nakonfigurována na 32- nebo 64-bitové, little-endian, operace. Pokud je systémová sběrnice konfigurována na 64-bitové operace, pak se dolních 32 bitů připojuje k sudým adresám a horních 32 k lichým.


Hostitelské rozhraní

Procesor poskytuje jednoduché, konfigurovatelné rozhraní mezi svou externí sběrnicí a jinými procesory přes externí port. Aby byl schopen komunikovat s velkou škálou procesorů, má několik protokolů s nastavitelnými přenosovými parametry jak pro jím řízenou komunikaci ( připojený procesor v pozici "slave" ), tak pro komunikaci řízenou připojeným procesorem. Připojený procesor má přímý přístup do paměti a většiny registrů procesoru TS201s.


Multiprocesorové rozhraní

Řada vlastností procesoru je šitá na míru multiprocesorovým systémům s DSP propojenými přes externí port a linkové porty. Je možné připojit až osm DSP na společnou sběrnici, procesor je přímo vybaven pro řízení této komunikace a navíc obsahuje linkové porty pro dvoubodovou komunikaci. Přidělování sběrnice probíhá rotačně. Doba, po kterou probíhá dohled nad sběrnicí, je omezená, aby sběrnici žádný procesor nedržel příliš dlouho. Čtyři linkové porty zajišťují druhou možnou komunikační cestu mezi procesory s komunikační rychlostí 4GB/s.


SDRAM rozhraní

Rozhraní SDRAM kontroluje přesuny dat procesoru z a do externí synchronní DRAM, za použití externího portu a SDRAM kontrolních pinů,s rychlostí 32 nebo 64 bitů za SCLK cyklus. SDRAM rozhraní umožňuje přímé připojení standartních SDRAM (16M, 64M, 128M, 256M a 512M bit). Procesor přímo podporuje maximálně čtyři banky 64M slov (32 bit) SDRAM. SDRAM rozhraní je mapováno ve vnější paměti jednotné paměťové mapy.


EPROM rozhraní

DSP může být nastaven tak, aby při resetu bootoval z externí 8-mi bitové EPROM paměti přes externí port. Automatický proces, následující po resetu, nahraje program z EPROM do vnitřní paměti. Časování tohoto procesu je šestnáct čekacích cyklů na jeden čtecí přístup. Během bootování funguje pin označený BMS jako chip select pro EPROM paměť. Tato procedura používá DMA kanál nula, který ukládá byty do 32-bitových instrukcí. Aplikace mohou též přistupovat do EPROM ( nebo flash ) pamětí během normálního běhu přes DMA. EPROM nebo flash paměť není mapována do jednotné paměťové mapy procesoru. Maximální velikost paměti je omezena 24-bitovou adresou ( 16MB prostoru ).


 

DMA řadič

14-kanálový DMA řadič, obsažený na čipu procesoru, umožňuje přenosy dat bez zásahu procesoru. Řadič z pohledu jádra pracuje nezávisle a neviditelně, takže operace mohou probíhat zatímco jádro zpracovává další instrukce. Řadič provádí přenosy mezi vnitřní a vnější pamětí a paměťově mapovanými periferiemi, vnitřní pamětí jiných procesorů na společné sběrnici, hostujícím procesorem nebo linkovým portem, mezi externí pamětí a externími periferiemi nebo linkovým portem, a mezi externím procesorem řídícím společnou sběrnici a interní pamětí nebo linkovým portem.


 

Linkový port

DSP má čtyři plně duplexní linkové porty pro doplňující čtyř-bitovou komunikaci, využívající technologii nízkonapěťového diferenčního signálu ( Low-Voltage, Differential-Signal = LVDS ). Při schopnosti pracovat při dvojité rychlosti, při sestupné i náběžné hraně SCLK, umožňuje každý port přenést až 500MB oběma směry, dohromady tedy až přibližně 4GB/s. Přenos může probíhat buď přímo čtením a zápisem jádra procesoru do registrů portu, nebo pomocí osmi kanálů DMA řadiče. Řídícími signály přenosu jsou: LxCLKOUT ( hodiny vysílače ), LxACKI ( "handshake" výstup pro kontrolu toku dat ), LxCLKIN ( hodiny přijímače ), LxBCMPO ( "přenos bloku je hotov" ). Aplikace nastavují rychlost přenosu a velikost přenášených bloků a samy provádí případnou kontrolu chyb.


 

Časování

Procesor užívá k chodu hodinové signály, jejichž generování ze základního kmitočtu SCLK, je naznačeno na obrázku. Rychlost výkonu instrukcí je dána hodinami CCLK, fázově zavěšenými na SCLK. Piny SCLKRATx nastavují poměr mezi SCLK a CCLK. Hodiny linkového portu jsou generovány z CCLK pomocí softwarově programovatelného děliče, sběrnice SOC pracuje na polovině CCLK. Paměťové přenosy na buffery externího a linkového portu probíhají při rychlosti SOCCLK. Rozhraní externí sběrnice pracuje na frekvenci SCLK. Maximum této frekvence je čtvrtina vnitřních hodin procesoru (CCLK).


TSclock.jpg (8920 bytes)

Obr. 6: Hodinové signály procesoru

 

Cena a balení

Veškeré varianty procesoru jsou dodávány ve standartním pouzdru BGA s 576 vývody pro povrchovou montáž. Ceny se pohybují kolem 250 USD za kus ( při odběru 1000-4999 kusů ).


 

Závěr

Jak již bylo zmíněno, procesor ADSP TS-201S je určen pro ty nejnáročnější aplikace. Podle dostupných článků je velkým, rozhodně ne samozřejmým, úspěchem, že ho Ericsson začal užívat v základnových stanicích třetí generace mobilních sítí. Ačkoliv odborníci soudí, že jeho využití je pouze přechodné a až dojde k ustálení procesů používaných v těchto technologiích a nebude již třeba algoritmy upravovat ve stávajícím hardwaru, dojde k jejich opětovnému ústupu na vrub obvodů ASIC. Předpokládá se nicméně, že bude tento úspěch impulzem pro řadu výrobců, aby pozorněji sledovali možnosti signálových procesorů. Jejich stále rostoucí výkon a obrovská flexibilita si tuto pozornost jistě zaslouží.


 

Literatura

Veškeré informace použité v této práci lze nalézt na stránkách Analog Devices Inc.