Hlavní navigace

Digitální signálové procesory řady Motorola 56000

7. 2. 2017
Doba čtení: 17 minut

Sdílet

Svět DSP není omezen pouze na řadu TSM320, s níž jsme se seznámili v předchozích článcích. Oblíbenými DSP používanými zejména při zpracování audio signálů (včetně zvukových karet Turtle Beach) jsou čipy Motorola 56000.

Obsah

1. Digitální signálové procesory řady Motorola 56000

2. Architektura DSP Motorola 56000

3. Datové sběrnice

4. Adresové sběrnice

5. Šířka zpracovávaných operandů

6. Sada pracovních registrů

7. Akumulátory

8. Násobička

9. Aritmeticko-logická jednotka

10. Použití DSP řady Motorola 56000

11. Doplněk na závěr – řada 56000 v porovnání s TMS320C10

12. Odkazy na Internetu

1. Digitální signálové procesory řady Motorola 56000

V předchozích sedmi částech seriálu o architekturách počítačů jsme se seznámili s některými milníky společnosti Texas Instruments ve vývoji digitálních signálových procesorů. Připomeňme si, že se jednalo o řadu TMS320×x, která se postupně vyvinula od poměrně jednoduchého čipu TMS32010 až k současným výkonným čipům OMAP a DaVinci. Dnes se ve stručnosti seznámíme s dalším čipem, který hrál velmi důležitou roli ve vývoji digitálních signálových procesorů. Jedná se o procesor nazvaný Motorola 56000 (neboli zkráceně 56k), který patří do druhé generace digitálních signálových procesorů. Tato generace je charakteristická použitím architektury s větším množstvím datových sběrnic, nabídkou speciálních typů adresování použitelných například pro výpočet FFT či různými instrukcemi pro optimalizaci programových smyček (DSP třetí generace šly ještě dále a nabídly specializované koprocesory pro FFT či násobení matic, ve čtvrté generaci se pak používá architektura VLIW, SIMD, popř. superskalární architektura). DSP druhé generace se již většinou programovaly v jazyku C s tím, že pro výpočty typické pro zpracování signálů byly vytvořeny optimalizované knihovny.

Všechny čipy ze základní série Motorola 56000 obsahují prakticky totožné jádro, ovšem liší se například kapacitami pamětí programu a dat, konfigurací periferních zařízení a taktéž tím, zda obsahují či naopak neobsahují takzvaný Port A, který zprostředkovává přístup k externím pamětem (u jednodušších čipů by byl tento port sestavený ze 16bitové adresové sběrnice, 24bitové datové sběrnice a deseti řídicích signálů příliš velkým luxusem). Ovšem kromě základní řady 56000 byly společností Motorola navrženy i další podobně koncipované digitální signálové procesory, které se od sebe odlišují šířkou zpracovávaných operandů i jejich typickým použitím:

Označení Typ čipu
DSP560XX původní série označovaná souhrnně 56000 či 56k, 24bitové zdrojové operandy, 56bitové mezivýsledky
DSP563XX hybridní 16/24bitový DSP
DSP566XX menší DSP se šestnáctibitovými vstupními operandy
DSP567XX takzvaný Digital Signal Controller, kombinace MCU a DSP
DSP568XX takzvaný Digital Signal Controller, kombinace MCU a DSP
DSP96000 nová řada zpětně kompatibilní s řadou 56000, ovšem rozšířená o FP operace (tato řada prozatím obsahuje jen čip 96002)
pc79

Obrázek 1: Osobní počítač Atari Falcon030, který je založen na kombinaci tří procesorů a koprocesorů – hlavního CPU Motorola 68030, digitálního signálového procesoru Motorola 56001 a volitelného matematického koprocesoru Motorola 68881/2.

2. Architektura DSP Motorola 56000

Digitální signálové procesory Motorola řady 56000 mají poměrně zajímavou strukturu, která byla navržena především s ohledem na zpracování zvukových signálů v kvalitě, která odpovídala možnostem tehdejší techniky (reálná přesnost A/D převodníků apod.). Interně je 56000 založena na modifikované Harvardské architektuře, což znamená, že paměť určená pro uložení programového kódu a konstant je oddělena od paměti určené pro data. Ve skutečnosti však šli návrháři Motoroly 56000 v rozdělování paměti na více samostatných bloků ještě dále, protože se používají celkem tři různé oblasti: paměť pro uložení programu označovaná P-space, první segment paměti pro data označovaný X-space/X data a druhý segment paměti pro data označovaný Y-space/Y data. Rozdělení datové paměti na dva segmenty dává pro mnoho operací smysl, jelikož v prvním segmentu mohou být například uloženy zdrojové digitalizované signály a v oblasti druhé výsledek jejich zpracování.

pc79

Obrázek 2: Blokové schéma digitálního signálového procesoru Motorola 56000.

Na obrázku číslo 2 je zobrazeno blokové schéma jednoho konkrétního čipu ze série Motorola 56000. Základní jádro je u všech digitálních signálových procesorů z této série shodné (šedě podbarvená část), ovšem horní část schématu se může lišit. Týká se to především kapacit pamětí programu a obou segmentů paměti dat. Povšimněte si, že v tomto konkrétním čipu jsou v datových pamětech uloženy i tabulky konstant, zde konkrétně převodní tabulky pro funkce algoritmu A-law a µ-law (vlastně se nejedná o nijak komplikované algoritmy, ale o dvojici funkcí) a taktéž o tabulku hodnot funkce sinus (ve formátu s pevnou řádovou čárkou, resp. ještě přesněji řečeno ve formátu, kde je desetinná čárka umístěna ihned za znaménkový bit), což je pro mnoho algoritmů velmi užitečné. Nezávisle na tom, jak velkou mají jednotlivé paměťové bloky kapacitu je šířka slov vždy 24 bitů.

3. Datové sběrnice

Některé čipy z řady DSP 56000 mají vyvedenou jednu externí 24 bitovou datovou sběrnici (ta je součástí Portu A neboli Memory Expansion Portu zmíněného již v úvodní kapitole) umožňující připojení externích pamětí, dalších DSP či periferních zařízení. Interně se na čipu přenáší data po čtyřech nezávislých datových sběrnicích, přičemž každá sběrnice má šířku 24 bitů (viz též pátou kapitolu). V následující tabulce jsou uvedeny základní charakteristiky těchto sběrnic:

Zkratka Význam Popis
XDB X data bus přenos mezi ALU, pracovními registry a prvním segmentem paměti dat
YDB Y data bus přenos mezi ALU, pracovními registry a druhým segmentem paměti dat
PDB Program data bus přenos kódů instrukcí, generování adres
GDB Global data bus ostatní přenosy, I/O, komunikace apod.

Operandy vstupující do aritmeticko-logické jednotky mají většinou šířku 24 bitů, ovšem výsledek operace multiply-accumulate může být 56 bitový. V tomto případě je část výsledku (konkrétně 48 bitů vystupujících ze shifteru) přenášena po obou sběrnicích XDB+YDB současně.

4. Adresové sběrnice

Adresy instrukcí či zpracovávaných dat se přenáší po třech interních adresových sběrnicích. Tyto sběrnice mají na původních čipech šířku jen šestnáct bitů, z čehož vyplývají i omezení na maximální adresovatelný rozsah (adresuje se po 24bitových slovech, nikoli po bajtech, takže maximální kapacita datových RAM je 64K × 3 ×2 = 384 KB):

Zkratka Popis
XAB adresa pro operand přenášený po sběrnici XDB
YAB adresa pro operand přenášený po sběrnici YDB
PAB adresa další instrukce

Opět platí, že některé digitální signálové procesory řady 56000 mají vyvedenou jednu externí adresovou sběrnici, která společně s generátorem řídicích signálů a externí datovou sběrnicí tvoří již zmíněný Port A (Memory Expansion Port).

5. Šířka zpracovávaných operandů

Digitální signálové procesory Motorola 56000 zpracovávají vstupní operandy o šířce 24 bitů, což se sice na první pohled může zdát poněkud zvláštní (u běžných mikroprocesorů se většinou používají šířky 8, 16, 32 a 64 bitů, ostatně to bylo dodrženo i u naprosté většiny již popsaných DSP řady TMS320C10), ovšem pro zpracování zvukových signálů byla čtyřiadvacetibitová šířka více než vhodná, protože koresponduje s možnostmi v té době používaných D/A a A/D převodníků, které byly většinou dvacetibitové. Použitím šestnáctibitové datové šířky by bylo možné pracovat se signály s dynamickým rozsahem „pouze“ 96 dB (20×log 216), zatímco 24bitové vzorky mají dynamický rozsah 144 dB (20×log 224). Při zpracování 32bitových slov by se naopak musela používat zbytečně složitá aritmeticko-logická jednotka, která by zvyšovala cenu celého procesoru (navíc je násobení i pomalejší nebo by vyžadovalo příliš velkou plochu čipu – opět viz úspěšná minimalisticky pojatá TMS320C10 s násobičkou 16b×16b) a navíc by se při ukládání vzorků plýtvalo s operační pamětí. Mimochodem: Motorola 56000 při výpočtech používá aritmetiku s pevnou řádovou čárkou (tečkou), která se v materiálech nazývá fractional a popíšeme i ji v dalších kapitolách.

pc79

Obrázek 2: Karta pro zpracování audio signálů využívající DSP Motorola 56000.

6. Sada pracovních registrů

Digitální signálové procesory Motorola 56000 obsahují celkem čtyři pracovní registry a dva akumulátory, které je taktéž možné považovat za pracovní registry, i když akumulátory u DSP skutečně pracují jako akumulátory, na rozdíl od běžných CPU. Čtyři pracovní registry se jmenují X0, X1, Y0 a Y1, přičemž každý má šířku 24 bitů. V některých případech je možné vždy dvojici těchto registrů vzájemně spojit a vytvořit tak 48bitové registrové páry X1:X0 a Y1:Y0. Hlavní funkcí pracovních registrů je poskytovat data aritmeticko-logické jednotce, proto jsou registry připojeny mezi datové sběrnice XDB a YDB (tok dat může v tomto případě probíhat oběma směry) a násobičkou (tok dat probíhá jednosměrně registr→násobička). Tento koncept je odlišný od konceptu, který známe z řady TMS320.

Obrázek 3: Schéma jádra digitálního signálového procesoru Motorola 56000. Čtveřice pracovních registrů je zobrazena v horní části a je obarvena modře. Povšimněte si, jak jsou registry propojeny se sběrnicemi (obousměrně) i s násobičkou (jednosměrně). Čísla značí bitovou šířku dat.

Obrázek 4: Pro porovnání – interní struktura nejdůležitější části DSP TMS32010, v níž se provádí všechny výpočty.

7. Akumulátory

Dvojice akumulátorů je pojmenována jednoduše A a B. Tyto akumulátory jsou připojeny na výstup z aritmeticko-logické jednotky (současně jsou připojeny na vstup ALU i na obě datové sběrnice XDB a YDB. Na rozdíl od pracovních registrů s šířkou 24 bitů mají akumulátory šířku 56 bitů. Proč tomu tak je? Hlavní operací, kterou DSP provádí, je násobení dvou operandů, přičemž v tomto případě akceptuje násobička dvojici operandů s šířkou 24 bitů. Výsledkem násobení je 48bitová hodnota, která je přičtena k akumulátoru s šířkou 56 bitů. Programátor má tedy k dipozici celých osm bitů navíc, takže se nemusí bát, že například při implementaci nějakého filtru dojde k přetečení mezivýsledků – tyto starosti bude muset řešit až při ukládání výsledků z akumulátorů zpět do paměti, k čemuž mj. slouží blok nazvaný shifter/limiter, jehož úkolem je získat z hodnoty akumulátoru použitelný 24bitový či 48bitový výsledek.

Poznámka: interně jsou akumulátory rozděleny na tři části, takže například akumulátor A je tvořen trojicí 24bitových registrů pojmenovaných A2, A1 a A0, přičemž v registru A2 má význam jen spodních osm bitů.

Obrázek 5: Akumulátory (zvýrazněné modrou barvou) jsou připojeny k výstupu z aritmeticko-logické jednotky. Dále je možné do akumulátorů zapisovat data přímo z datových sběrnic. Z akumulátorů si operandy čte ALU, a to jak přímo, tak i přes shifter. Zápis zpět do paměti se provádí vždy přes shifter/limiter, který zajistí konverzi dat.

8. Násobička

Ústředním prvkem prakticky všech digitálních signálových procesorů první i druhé generace je násobička. U DSP Motorola 56000 je násobička napevno umístěna mezi pracovní registry a aritmeticko logickou jednotku – vstupem do násobičky jsou tedy vždy pouze obsahy dvou vybraných pracovních registrů, tj. X0, X1, Y0 a/nebo Y1 (ty mají šířku 24 bitů, jak již víme z předchozího textu). Násobička oba 24bitové operandy vynásobí a pošle 48bitový výsledek do aritmeticko-logické jednotky, která dokončí operaci typu MAC, popř. „přičte nulu“ pokud je pouze vyžadováno násobeni.

U této architektury digitálních signálových procesorů je v souvislosti s násobičkou nutné poznamenat, že se používá formát čísel nazvaný fractional. Nejedná se vlastně o nic jiného, než o jednu z možností reprezentace hodnot v systému pevné řádové čárky (fixed point), ovšem tak, že čárka není ve slově umístěna libovolně, ale je vložena ihned za znaménkový bit (používá se běžný dvojkový doplněk). To znamená, že 24bitová slova vstupující do násobičky mají tento formát (s – znaménkový bit, čárka – binární čárka):

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9  8  7  6  5  4  3  2  1  0
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|s ,                                                                 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Minimální reprezentovatelná hodnota je rovna přesně –1, což odpovídá 24bitovému slovu s bitovým vzorkem 0×80000:

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9  8  7  6  5  4  3  2  1  0
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|-1, 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Maximální hodnota je rovna 1–2-23=.99999988 (tedy „skoro jedna“) a odpovídá 24bitovému slovu s bitovým vzorkem 0×7fffff:

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9  8  7  6  5  4  3  2  1  0
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0, 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Hodnotu 0,5 (1/2) lze zapsat takto:

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9  8  7  6  5  4  3  2  1  0
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 0, 1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Poznámka: pro aritmetické a logické operace není mezi celočíselnými hodnotami a hodnotami „fractional“ žádný podstatný rozdíl. Ten se projevuje pouze při násobení a dělení (výsledek má v případě „fractional“ vždy stejný formát, jako vstup, tj. první bit je znaménkový, za ním následuje binární čárka a za ní 2N-1 bitů výsledku, kde N je šířka vstupních operandů).

9. Aritmeticko-logická jednotka a shifter

Aritmeticko-logická jednotka má v řadě Motorola 56000 poněkud odlišnou strukturu, než na jakou jsme zvyklí z běžných mikroprocesorů. ALU je zde totiž rozdělena na tři bloky – vlastní univerzální ALU, sčítačku a blok pro zaokrouhlení výsledků:

Obrázek 6: Struktura ALU (žluté bloky + zelená sčítačka).

Vidíme, že sčítačka dokáže vstupní operandy přečíst z násobičky, z akumulátorů či z vlastní ALU. Pokud se sčítá výstup z násobičky a akumulátorů (hodnota přečtená z akumulátoru může být bitově posunuta v shifteru), jedná se o operaci typu MAC (Multiply Accumulate) s 56bitovým výsledkem (48 bitů má součin, dalších osm bitů umožňuje provést až 255 MAC bez kontroly přetečení). Vstupní operand vypočtený ALU má šířku 48 bitů. Ve skutečnosti je struktura celého bloku poněkud složitější, protože na základě součtu či rozdílu provedeného ve sčítačce, se nastavují příznakové bity, což je ovšem téma, kterému se budeme věnovat příště.

10. Použití DSP řady Motorola 56000

Digitální signálové procesory Motorola 56000 jsou, a to i přesto, že se jedná o poměrně starou architekturu, prakticky používány dodnes. Jádra 56000 najdeme například v některých systémech pro zpracování audio signálu v reálném čase (tento čip má dostatečný výkon i pro MP3 kodeky). Ovšem zajímavé je i použití tohoto čipu v minulosti. Příkladem může být zabudování DSP řady 56000 do mnoha profesionálních zvukových karet Turtle Beach, použití v počítači Atari Falcon030, což byla na dobu vzniku unikátní kombinace (CPU Motorola 68030, volitelný FPU Motorola 68881/2 a DSP Motorola 56001), nebo do pracovních stanic Indigo firmy SGI. V počítači Atari Falcon byl sice DSP určen primárně pro zpracování zvuku, používal se však i pro dekompresi JPEG obrázků či pro renderování 3D grafiky (vznikla dokonce celá dema, jejichž grafická část běžela kompletně na DSP).

pc79

Obrázek 7: Profesionální karta pro zpracování zvuků, která je vybavena DSP Motorola 56000.

11. Doplněk na závěr – řada 56000 v porovnání s TMS320C10

Digitální signálové procesory Motorola 56000 byly po svém uvedení na trh velmi často porovnávány jak s již popsanými čipy firmy Texas Instruments TMS320, tak i s čipy od AT&T (tyto DSP byly používány pouze interně v této obří společnosti), Fujitsu (řada MB87×x), Hitachi (HD61810), NEC (řady µPD77×x) a taktéž Toshiba. Z následující tabulky je dobře patrné, jak se výkonnost digitálních signálových procesorů postupně zvyšovala:

ict ve školství 24

Čip Rok vydání ns/MAC Mil.MACs/sec Šířka operandů (zdroj/cíl)
TMS32010 1982 390 2,6 16/32
TMS32020 1985 195 5,1 16/32
TMS320C25 1987 100 10,0 16/32
TMS320C30 1988 60 16,6 24/32
DSP56001 1987 74 13,5 24/56
DSP96002 1989 75 13,5 32/64

Poznámka: výkonnost DSP se uvádí buď v MIPS (což nemusí být nejdůležitější veličina), u procesorů s operacemi s plovoucí řádovou čárkou ve FLOPS (MFLOPS, GFLOPS) a taktéž v rychlosti provedení operací MAC (Multiply-Accumulate), což je v kontextu porovnávaných DSP mnohem důležitější veličina, protože tyto čipy jsou postaveny na rychlých násobičkách a sčítačkách. Aby bylo porovnání férové, jsou uvedeny i šířky zpracovávaných operandů (čtvrtý sloupec udává pouze čistě teoretický maximální výkon v milionech MAC za sekundu, praktický dosažitelný výkon bude vždy menší):

pc79

Obrázek 8: Zadní strana počítače Atari Falcon030 obsahuje mj. i konektor pro přístup k DSP i konektor rozhraní SCSI-II.

12. Odkazy na Internetu

  1. Motorola DSP56k
    https://www.rockbox.org/wi­ki/MotorolaDSP56k
  2. Motorola 56000 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Motorola_56000
  3. Using the Motorola DSP56002EVM for Amateur Radio DSP Projects
    http://www.johanforrer.net/EV­M/article.html
  4. The Atari Falcon030 „Personal Integrated Media System“
    http://www.atarimuseum.com/com­puters/16bits/falcon030.html
  5. Turtle Beach Corporation (stránky společnosti)
    http://www.turtlebeach.com/
  6. Turtle Beach Corporation (Wikipedia)
    https://en.wikipedia.org/wi­ki/Turtle_Beach_Corporati­on
  7. Atari Falcon 030 DSP 3D engine test
    http://www.digiti.info/vi­deo/WHQwMjNRaExfLWs=/atari_fal­con030_dsp_3d_engine_test
  8. Atari Falcon030 (německy)
    http://www.maedicke.de/ata­ri/hardware/falcon.htm
  9. Old-computers.com: Atari Falcon030
    http://www.old-computers.com/museum/compu­ter.asp?c=125&st=1
  10. Atari Falcon030 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Atari_Falcon
  11. Past and current projects (including Falcon stuff)
    http://os.inf.tu-dresden.de/~nf2/projects/projects.html
  12. Atari Falcon 030: The Case For The Defence
    http://www.soundonsound.com/sos/1994_ar­ticles/sep94/atarifalcon.html
  13. DaVinci processor family
    http://www.ti.com/general/doc­s/datasheetdiagram.tsp?ge­nericPartNumber=TMS320DM365&di­agramId=64193
  14. Texas Instruments DaVinci
    https://en.wikipedia.org/wi­ki/Texas_Instruments_DaVin­ci
  15. TMS320DM6446 (DaVinci)
    http://www.ti.com/product/tms320dm6446
  16. Digital Media Video Processors (TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/media_processor­s/davinci/products.page#
  17. TI Wiki
    http://processors.wiki.ti­.com/index.php/Main_Page
  18. C5000 ultra-low-power DSP
    http://www.ti.com/lsds/ti/pro­cessors/dsp/c5000_dsp/over­view.page
  19. OMAP (Wikipedia)
    https://en.wikipedia.org/wiki/OMAP
  20. OMAP – TI Wiki
    http://processors.wiki.ti­.com/index.php/OMAP
  21. Why OMAP can't compete in smartphones
    http://www.eetimes.com/au­thor.asp?section_id=40&doc_id=1286602
  22. Applications Processors – The Heart of the Smartphone
    http://www.engineering.com/E­lectronicsDesign/Electronic­sDesignArticles/ArticleID/5791/Ap­plications-Processors-The-Heart-of-the-Smartphone.aspx
  23. TI cuts 1,700 jobs in OMAP shift
    http://www.eetimes.com/do­cument.asp?doc_id=1262782
  24. VLIW: Very Long Instruction Word: Texas Instruments TMS320C6×
    http://www.ecs.umass.edu/e­ce/koren/architecture/VLIW/2/ti1­.html
  25. An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture
    Philips Semiconductors
  26. VLIW Architectures for DSP: A Two-Part Lecture (PDF, slajdy)
    http://www.bdti.com/MyBDTI/pub­s/vliw_icspat99.pdf
  27. Very long instruction word (Wikipedia)
    https://en.wikipedia.org/wi­ki/Very_long_instruction_word
  28. A VLIW Approach to Architecture, Compilers and Tools
    http://www.vliw.org/book/
  29. VEX Toolchain (VEX = VLIW Example)
    http://www.hpl.hp.com/downloads/vex/
  30. Elbrus (computer)
    https://en.wikipedia.org/wi­ki/Elbrus_%28computer%29
  31. Super Harvard Architecture Single-Chip Computer
    https://en.wikipedia.org/wi­ki/Super_Harvard_Architec­ture_Single-Chip_Computer
  32. Digital Signal Processors (stránky TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/overview.page
  33. C674× Low Power DSP (stránky TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/c6000_dsp/c674×/o­verview.page
  34. TMS320C30 (stránky TI)
    http://www.ti.com/product/tms320c30
  35. TMS320C6722B
    http://www.ti.com/product/tms320c6722b/des­cription
  36. Introduction to DSP
    http://www.ti.com/lit/wp/spry281/spry­281.pdf
  37. The Evolution of TMS (Family of DSPs)
    http://www.slideshare.net/mo­to_modx/theevo1
  38. Datasheet k TMS32010
    http://www.datasheetarchi­ve.com/dlmain/49326c32a52050140ab­ffe6f0ac4894aa09889/M/TMS32010
  39. 1979: Single Chip Digital Signal Processor Introduced
    http://www.computerhistory­.org/siliconengine/single-chip-digital-signal-processor-introduced/
  40. The TMS32010. The DSP chip that changed the destiny of a semiconductor giant
    http://www.tihaa.org/histo­rian/TMS32010–12.pdf
  41. Texas Instruments TMS320 (Wikipedia)
    https://en.wikipedia.org/wi­ki/Texas_Instruments_TMS320
  42. Great Microprocessors of the Past and Present: Part IX: Signetics 8×300, Early cambrian DSP ancestor (1978):
    http://www.cpushack.com/CPU/cpu2­.html#Sec2Part9
  43. Great Microprocessors of the Past and Present (V 13.4.0)
    http://jbayko.sasktelwebsi­te.net/cpu.html
  44. Introduction to DSP – DSP processors:
    http://www.bores.com/courses/in­tro/chips/index.htm
  45. The Scientist and Engineer's Guide to Digital Signal Processing:
    http://www.dspguide.com/
  46. Digital signal processor (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/Digital_signal_processor
  47. Digitální signálový procesor (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Digitální_signálový_pro­cesor
  48. Digital Signal Processing FAQs
    http://dspguru.com/dsp/faqs
  49. Reprezentace numerických hodnot ve formátech FX a FP
    http://www.root.cz/clanky/fixed-point-arithmetic/
  50. IEEE 754 a její příbuzenstvo: FP formáty
    http://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/
  51. Čtyři základní způsoby uložení čísel pomocí FX formátů
    http://www.root.cz/clanky/binarni-reprezentace-numerickych-hodnot-v-fx-formatu/
  52. Základní aritmetické operace prováděné v FX formátu
    http://www.root.cz/clanky/zakladni-aritmeticke-operace-provadene-ve-formatu-fx/
  53. Aritmetické operace s hodnotami uloženými ve formátu FP
    http://www.root.cz/clanky/aritmeticke-operace-s-hodnotami-ve-formatu-plovouci-radove-carky/
  54. FIR Filter FAQ
    http://dspguru.com/dsp/faqs/fir
  55. Finite impulse response (Wikipedia)
    http://en.wikipedia.org/wi­ki/Finite_impulse_response
  56. DSPRelated
    http://www.dsprelated.com/
  57. Addressing mode (Wikipedia)
    https://en.wikipedia.org/wi­ki/Addressing_mode
  58. Orthogonal instruction set
    https://en.wikipedia.org/wi­ki/Orthogonal_instruction_set
  59. TI 16-bit and 32-bit microcontrollers
    http://www.ti.com/lsds/ti/mi­crocontrollers16-bit32-bit/overview.page
  60. TMS 32010 Assembly Language Programmer's Guide (kniha na Amazonu)
    https://www.amazon.com/32010-Assembly-Language-Programmers-Guide/dp/0904047423
  61. COSC2425: PC Architecture and Machine Language, PC Assembly Language
    http://www.austincc.edu/rblac­k/courses/COSC2425/index.html

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.