Hlavní navigace

Čipy DaVinci aneb úspěšná kombinace jader ARM a DSP s architekturou­ VLIW

31. 1. 2017
Doba čtení: 16 minut

Sdílet

V předchozím článku jsme si popsali čipy OMAP, v nichž se kombinují jádra ARM s DSP řady TMS320C55× a TMS320C64×. Kromě těchto čipů společnost TI navrhla i čipy DaVinci, které jsou určeny především pro práci s video signálem.

Obsah

1. Čipy DaVinci aneb úspěšná kombinace jader ARM a DSP s architekturou VLIW

2. Typy čipů vyvinutých v rámci série DaVinci

3. Skupiny čipů DM36×, DM38×, DM812×, DM814× a DM816×

4. Rozdíly mezi čipy ve skupině DM3×x

5. Modulární struktura čipů DaVinci

6. Modul s ARMovským jádrem a jeho paměťovým subsystémem

7. ARM9

8. Cortex-A8

9. Modul s DSP jádrem a jeho paměťovým subsystémem

10. Násobičky a teoretický špičkový výpočetní výkon DSP

11. Video-Imaging Coprocessor (VICP) a Video-Imaging Subsystem (VPSS)

12. Front-end VICP (VPFE)

13. Back-end VICP (VPBE)

14. Odkazy na Internetu

1. Čipy DaVinci aneb úspěšná kombinace jader ARM a DSP s architekturou VLIW

Minule jsme se seznámili s digitálními signálovými procesory řady C5000 (konkrétně se jednalo o čipy s DSP jádry TMS320C54× a TMS320C55×). Připomeňme si, že tyto relativně jednoduché čipy určené pro typické DSP aplikace, mezi než patří zpracování audio signálu atd., začaly být kombinovány s mikroprocesorovými jádry ARM. Tímto způsobem, který je dnes s úspěchem používán i mnoha dalšími firmami, vznikla série OMAP, jež se v minulosti velmi často používala v mobilních telefonech, handheldech a dalších podobných aplikacích. Později, kdy již výpočetní výkon jader TMS320C55× přestal pro některé aplikace dostačovat, se v rámci novější série OMAP 2 a OMAP 3 začaly používat výkonnější DSP jádra TMS320C64×+ (fixed point) a dokonce i TMS320C674× (kombinace fixed point + floating point):

Série OMAP Označení DSP Jádro ARM
OMAP 1 OMAP171× TMS320C55× ARM926EJ-S
OMAP 1 OMAP162× TMS320C55× ARM926EJ-S
OMAP 1 OMAP5912 TMS320C55× ARM926EJ-S
OMAP 1 OMAP161× TMS320C55× ARM926EJ-S
OMAP 1 OMAP1510 TMS320C55× ARM925T
OMAP 1 OMAP5910 TMS320C55× ARM925T
       
OMAP 2 OMAP2431 TMS320C64× ARM1136
OMAP 2 OMAP2430 TMS320C64× ARM1136
OMAP 2 OMAP2420 TMS320C55× ARM1136
       
OMAP 3 OMAP3430 TMS320C64×+ Cortex-A8 + GPU
OMAP 3 OMAP3530 TMS320C64×+ Cortex-A8 + GPU
OMAP 3 OMAP3611 TMS320C64×+ Cortex-A8 + GPU
OMAP 3 OMAP3621 TMS320C64×+ Cortex-A8 + GPU
OMAP 3 OMAP3622 TMS320C64×+ Cortex-A8 + GPU
       
OMAP 4 OMAP4430 TMS320C64×+ (Tesla) Cortex-A9 popř. ARMv7 + GPU
OMAP 4 OMAP4460 TMS320C64×+ (Tesla) Cortex-A9 popř. ARMv7 + GPU
OMAP 4 OMAP4470 TMS320C64×+ (Tesla) Cortex-A9 popř. ARMv7 + GPU
       
OMAP 5 OMAP5430 TMS320C64×+ (Tesla) Cortex-A15 (dual core) + Cortex-M4 + GPU
OMAP 5 OMAP5432 TMS320C64×+ (Tesla) Cortex-A15 (dual core) + Cortex-M4 + GPU
       
OMAP L-1× OMAP-L137 TMS320C674× ARM926EJ-S
OMAP L-1× OMAP-L138 TMS320C674× ARM926EJ-S

Kromě této série, kterou nalezneme například i na BeagleBoardu či PandaBoardu, však společnost Texas Instruments v roce 2005 představila i novou sérii čipů pojmenovaných DaVinci. Tyto čipy jsou určeny především pro ty aplikace, v nichž se zpracovává video signál a proto je i jejich interní podoba odlišná – obsahují ARMovská jádra ARM9 či A8 a pokud je použit DSP, jedná se o jádro TMS320C64× (+) s osmi paralelně pracujícími výkonnými jednotkami a architekturou VLIW. Navíc tyto čipy prakticky vždy obsahují i další specializované subsystémy určené pro zpracování videa.

2. Typy čipů vyvinutých v rámci série DaVinci

V sérii DaVinci bylo vyvinuto poměrně velké množství různých čipů, z nichž některé byly běžně prodávány prakticky všem zákazníkům a jiné byly vyvinuty na základě konkrétních požadavků jediného zákazníka (proto je o těchto čipech dostupných méně informací). V následující tabulce jsou vypsány ty základní čipy, které jsou či byly běžně dostupné. Povšimněte si zejména toho, že název každého čipu začíná písmeny „DM“ neboli „Digital Media“. Ve skutečnosti úplné názvy těchto čipů začínají na TMS320…, toto označení se však většinou vynechává, protože je z kontextu jasné, o jaké čipy se jedná:

Čip Jádro ARM Jádro DSP OSD VENC HDVPSS
DM6446 ARM9 TMS320C64× ×
DM6437 ARM9 TMS320C64× ×
DM6441 ARM9 TMS320C64× ×
DM648   TMS320C64× × × ×
DM355 ARM9   ×
DM6467 ARM9 TMS320C64× × × ×
DM335 ARM9   × × ×
DM357 ARM9   × × ×
DMVA2 ARM9   ×
DM8107 Cortex-A8   × ×
DMVA3 Cortex-A8   × ×

Význam zkratek použitých v předchozí tabulce:

Zkratka Význam Stručný popis
OSD On-Screen Display Modul umožňující přimíchat například menu do zpracovávaného video signálu. Podporována jsou většinou dvě samostatná okna (menu + například seznam programů atd.).
VENC Video Encoder Několik rychlých D/A převodníků použitých pro výstup v normě PAL, NTSC, S-video atd.
HDVPSS HD Video Processing Subsystem Jedna nebo dvě samostatné pipeline pro zpracování video signálu, včetně vstupního bloku (de-interlace, scale atd.) a bloku výstupního (HD video, demultiplexing, kompozitního výstupu atd.)

3. Skupiny čipů DM36×, DM38×, DM812×, DM814× a DM816×

Následující řady čipů rodiny DM jsou nabízeny v současnosti. Povšimněte si, že čipy jsou rozděleny do pěti skupin: DM36×, DM38×, DM812×, DM814× a DM816×. V každé skupině se nachází čipy se stejným ARMovským jádrem, stejným DSP (pokud je použit) i podobnými subsystémy.

Čip Jádro ARM Jádro DSP OSD VENC HDVPSS
DM365 ARM9   ×
DM368 ARM9   ×
DM369 ARM9   ×
           
DM385 Cortex-A8   × ×
DM388 Cortex-A8   × ×
           
DM8127 Cortex-A8 TMS320C64×+ × ×
           
DM8147 Cortex-A8 TMS320C64×+ × ×
DM8148 Cortex-A8 TMS320C64×+ × ×
           
DM8165 Cortex-A8 TMS320C64×+ × ×
DM8167 Cortex-A8 TMS320C64×+ × ×
DM8168 Cortex-A8 TMS320C64×+ × ×

4. Rozdíly mezi čipy ve skupině DM3×x

Čipy patřící do jedné skupiny se od sebe liší dalšími vlastnostmi, které jsou shrnuty v poslední tabulce (jedná se konkrétně o řadu DM3×x, nikoli o řadu DM81×x):

Čip Jádro ARM Frekvence ARM Video vstupy Kodek(y) Max.video Filtry
DM365 ARM9 216–300 MHz 1×paralelní 8/16b H.264 BP/MP/HP 720p30 2G Motion
DM368 ARM9 432 MHz 1×paralelní 8/16b H.264 BP/MP/HP 1080p30 2G Motion
DM369 ARM9 432 MHz 1×paralelní 8/16b H.264 BP/MP/HP 1080p30 2G Motion
DM385 Cortex-A8 790–1000 MHz 1×paralelní 8/16b nebo 1×CSI-2 H.264 BP/MP/HP 1080p60 3G Motion
DM388 Cortex-A8 790–1000 MHz 1×paralelní 8/16b nebo 1×CSI-2 H.264 BP/MP/HP 1080p60 4G Motion

Poznámka: CSI znamená Camera Serial Interface.

Vidíme, že z hlediska zpracování video signálu skutečně mezi jednotlivými čipy existují rozdíly, a to zejména s ohledem na maximální podporované rozlišení a obnovovací frekvencí obrazu. Novější čipy navíc podporují rozhraní CSI-2 určené pro vstup video signálu.

5. Modulární struktura čipů DaVinci

Na schématu zobrazeném pod tímto odstavcem jsem se pokusil načrtnout modulární uspořádání čipů DaVinci:

Obrázek 1: Modulární struktura čipů DaVinci.

Všechny základní moduly jsou propojeny přes SCR neboli Switched Central Resource zajišťující plynulé toky dat. Nejedná se tedy o klasickou sběrnici, o níž by jednotlivé moduly musely „bojovat“, což by ostatně odporovalo požadavku na zpracování video signálu v reálném čase. K SCR je připojen modul s mikroprocesorovým jádrem ARM a svým vlastním paměťovým subsystémem, modul s digitálním signálovým procesorem a taktéž svým vlastním paměťovým subsystémem, modul pro řízení periferních zařízení (včetně sériových sběrnic a rozhraní, PWM, časovači a watchdogem) a v neposlední řadě taktéž blok nazvaný VPSS neboli Video Processing Subsystem, který je rozdělen na front end (zpracování vstupního video signálu, změna rozlišení, deinterlace) a back end (OSD+generování výstupního video signálu). U některých čipů je navíc přítomen i VICP neboli Video-Imaging Coprocessor popř. i GPIO, tedy vstupně-výstupní piny, které je možné programově ovládat.

6. Modul s ARMovským jádrem a jeho paměťovým subsystémem

První modul, který si popíšeme, obsahuje jako svůj ústřední prvek ARMovské jádro ARM9 nebo u novějších čipů Cortex-A8 (oba typy jader obsahují i MMU). Kromě toho na tomto modulu nalezneme i instrukční cache (I-Cache) o typické kapacitě 16 KB a datovou cache (D-Cache) o kapacitě 8 KB. U některých modernějších čipů DaVinci jsou tyto kapacity vyšší. Dále se na tomto modulu nachází blok RAM o velikosti 16 KB (rozdělená na dva bloky o poloviční velikosti pro souběžný přístup k instrukcím i datům) a ROM/Flash o kapacitě 8 KB, na níž se nachází bootloader. Samozřejmě se nejedná o jedinou paměť, ke které má ARMovské jádro přístup, protože přes SCR jde přistupovat k DRAM (většinou DDR2) popř. k externí paměti Flash.

Obrázek 2: Modul s ARMovským jádrem a jeho paměťovým subsystémem.

7. ARM9

Všechny původní čipy DaVinci, včetně prvního čipu DM6446 (viz druhou kapitolu), byly (a některé dodnes jsou) vybaveny mikroprocesorovým jádrem ze skupiny ARM9. Do této skupiny řadíme větší množství mikroprocesorových jader, především pak jádra ARM9TDMI, ARM940T, ARM9E-S, ARM966E-S, ARM920T, ARM922T, ARM946E-S, ARM9EJ-S, ARM926EJ-S, ARM968E-S a ARM996HS. V čipech DaVinci se většinou používá jádro ARM926EJ-S podporující jak původní 32bitovou RISCovou instrukční sadu, tak i 16bitovou sadu Thumb, kterou lze použít při požadavku na strojový kód s větší hustotou a většinou nepatrně menším výkonem. Kromě toho tato jádra obsahují i implementaci technologie Jazelle, tedy podporu pro bajtkód virtuálního stroje Javy (tyto čipy jsou postaveny na mikroarchitektuře ARMv5TEJ).

Jádra ze skupiny ARM9 jsou sice postavena na starších, ovšem velmi úspěšných jádrech ARM7 (viz například text o čipech OMAP), ovšem interní struktura byla v mnoha ohledech vylepšena. Zásadní byl přechod na modifikovanou Harvardskou architekturu umožňující mj. rychlejší provádění instrukcí typu Load & Store (čtení a zápisy do datové paměti, resp. do datové cache neblokovaly čtení instrukčního kódu následujících instrukcí). Taktéž se změnil počet řezů pipeline ze tří na pět, což mimochodem znamenalo, že se při použití stejné výrobní technologie a hodinové frekvence mohl počet zpracovávaných instrukcí zvýšit prakticky na dvojnásobek (instrukce ovšem na druhou stranu měly delší latenci). Díky těmto úpravám se některé instrukce urychlily, takže původní strojový kód vygenerovaný pro jádra ARM7 byl po přenosu na jádra ARM9 až o 30% rychlejší. Změny se projevily i na menší spotřebě (přepočtené na počet provedených instrukcí).

8. Cortex-A8

Novější čipy DaVinci již namísto jádra ARM926EJ-S používají některé jádro Cortex-A8. Připomeňme si, že všechna nová ARMovská jádra jsou dělena do třech skupin začínající názvem Cortex následovaným jedním z těchto znaků: Application, Realtime, Microcontroller (název první skupiny pravděpodobně vznikl ze snahy o její „napasování“ na zkratku ARM):

# Architektura Adresová/datová sběrnice Jádro Poznámka/profil (u Cortex)
1 ARMv6-M 32 bitů Cortex-M0, Cortex-M0+, Cortex-M1 mikrořadiče (M v názvu)
2 ARMv7-M 32 bitů Cortex-M3 mikrořadiče (poznáme podle M v názvu)
3 ARMv7E-M 32 bitů Cortex-M4, Cortex-M7 mikrořadiče (M v názvu)
4 ARMv7-R 32 bitů Cortex-R4, Cortex-R5, Cortex-R7 realtime aplikace (R v názvu)
5 ARMv7-A 32 bitů Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, Cortex-A15, Cortex-A17 smartphony atd.
6 ARMv8-A 32/64 bitů Cortex-A35, Cortex-A53, A57, A72 a A73 smartphony atd.

Oproti ARM9 došlo u jader Cortex-A8 k mnoha interním úpravám i k rozšíření instrukční sady. Mezi interní úpravy a vylepšení patří použití pipeline se třinácti řezy pro celočíselné operace a pipeline s deseti řezy pro SIMD operace (NEON). Taktéž je použita superskalární architektura umožňující paralelní spuštění dvou instrukcí (díky pipeline a superskalární architektuře tedy Cortex-A8 v jeden okamžik zpracovává až dvě desítky instrukcí v různém stavu rozpracování). Vzhledem k tomu, že pipeline je velmi dlouhá, má velký vliv na celkový výpočetní výkon prediktor skoků, který byl taktéž vylepšen – udává se, že přesnost jeho odhadu je větší než 95 %.

Instrukční sada Cortex-A8 obsahuje jak již zmíněné SIMD instrukce NEON, tak i VFPv3, tedy instrukce matematického koprocesoru (viz též Mikroprocesory ARM a architektura VFP (Vector Floating Poin). Kromě toho je podporován i instrukční formát Thumb-2 s instrukcemi proměnné délky (16 bitů či 32 bitů) a především pak prefixem IT, díky němuž je možné do velké míry omezit počet podmíněných skoků.

9. Modul s DSP jádrem a jeho paměťovým subsystémem

Modul, který obsahuje digitální signálový procesor řady TMS320C64× či TMS320C64×+, se částečně podobá modulu s ARMovským jádrem. I zde kromě vlastního CPU nalezneme cache, zde je ovšem rozdělena na dvě úrovně. Cache první úrovně (L1-cache) obsahuje dva bloky – blok pro instrukce s kapacitou až 32 KB a blok pro data s kapacitou 80 KB. Cache druhé úrovně (L2-cache) je unifikovaná a její kapacita je typicky 64 KB. Povšimněte si, že v tomto modulu nenalezneme ROM, protože se o inicializaci DSP postará ARMovské jádro se svým vlastním bootloaderem (pokud se tyto čipy používají například v Linuxu, běží Linux na ARMu a DSP je ovládáno přes knihovnu).

Obrázek 3: Modul s DSP jádrem a jeho paměťovým subsystémem.

10. Násobičky a teoretický špičkový výpočetní výkon DSP

Samotný digitální signálový procesor TMS320C64× a TMS320C64×+ vznikl z řady TMS320C62×, kterou jsme si již popsali. Je taktéž založen na architektuře VLIW s instrukčními slovy, u nichž lze takzvanými p-bity určit ty instrukce, které se budou provádět paralelně. TMS320C64× obsahuje osm nezávisle pracujících jednotek a jeho nejdůležitější částí jsou čtyři 16bitové násobičky spojené se sčítačkami (takže mohou provádět operace MAC – Multiply Accumulate). Při paralelní práci dokážou tyto jednotky provést 3240 milionů MAC operací za sekundu při použití hodinové frekvence 810 MHz (v každém cyklu dokáže násobička dokončit jeden výpočet). Každou 16bitovou násobičku lze v případě potřeby použít ve funkci dvou osmibitových násobiček. V tomto případě dosahuje maximální počet operací u optimálně napsaných algoritmů 6480 MAC za sekundu (opět při frekvenci 810 MHz).

Poznámka: u mnoha algoritmů pro zpracování videa se setkáme právě s použitím osmibitových vzorků, takže se rozdělení každé 16bitové násobičky na dvě násobičky osmibitové využívá.

11. Video-Imaging Coprocessor (VICP) a Video-Imaging Subsystem (VPSS)

Čipy DaVinci se od běžných kombinací ARM CPU+DSP odlišují především tím, že obsahují blok VICP neboli Video-Imaging Coprocessor a VPSS neboli Video-Imaging Subsystem (někdyse před tuto zkratku přidává HD odkazující na možnost zpracování videa 1080p). VPSS je rozdělen na dvě části nazvané VPFE a VPBE, kde první zkratka znamená Video Processing Front-End a zkratka druhá Video Processing Back-End (IT firmy milují třípísmenné a čtyřpísmenné zkratky). Důvod, proč je VICP rozdělený na dvě části, je pochopitelný, protože celé zpracování videa má typicky tři části:

  1. Čtení video signálu, například přímo z CCD či CMOS prvků. Během čtení se většinou provádí i transformace barev, například aplikace Bayerova filtru. Možné jsou i další operace, typicky změna rozlišení, deinterlace atd. Tyto operace se provádí ve front-endu.
  2. Zpracování videa. Pro tyto účely mají vývojáři k dispozici výkonné DSP a univerzální ARM CPU. V případě kodeků lze využít VICP, takže není nutné tyto náročné algoritmy implementovat softwarově (MPEG-4, H.264 atd.)
  3. Výstup video signálu popř. automatické přidání dalších informací do video signálu (menu, titulky, …). Tyto operace se provádí v back-endu.

Obrázek 4: Video-Imaging Coprocessor a Video-Imaging Subsystem rozdělený na front end a back end.

ict ve školství 24

12. Front-end VICP (VPFE)

Modul VPFE se v první řadě stará o čtení video signálu z CCD či CMOS čipů, což kromě generování příslušných řídicích signálů většinou znamená i transformaci barev, aplikaci již zmíněného Bayerova filtru, změnu rozlišení apod. Tento modul navíc dokáže v reálném čase vypočítat histogram, provést vyvážení bílé barvy (white balance), vygenerovat náhled na obrázek ve formátu vhodném pro zobrazení na LCD apod. Výsledkem práce tohoto modulu je většinou kontinuální video signál ve zvoleném barvovém prostoru a formátu (RGB, YUV…), který může být zpracován dalšími moduly, uložen na externí médium, poslán přes EMAC (Ethernet Media Access Controller) na zvolené zařízení atd.

13. Back-end VICP (VPBE)

Jakmile je video signál zpracován, je nutné ho nějakým způsobem zobrazit resp. přesněji řečeno poslat na zvolené zobrazovací zařízení (monitor…). K tomuto účelu se používá modul VPBE vybavený čtveřicí rychlých D/A převodníků (frekvence vzorků vstupujících do těchto převodníků většinou překračuje 54 MHz; ostatně připomeňme si, že některé čipy DaVinci dokážou pracovat s videem 1080p60). Vstupy D/A převodníků jsou konfigurovatelné, takže je lze využít pro generování PAL či NTSC signálu (včetně synců), S-Videa, kompozitního videa, analogového RGB atd. Kromě toho tento modul obsahuje i digitální výstup s 24bitovým RGB signálem, BT.656 atd. (možnosti jednotlivých čipů DaVinci se v tomto ohledu mohou lišit). Navíc VPBE umožňuje do video signálu přimíchat další dvě nezávislá „okna“, v nichž může být zobrazeno menu, titulky, další informace (u kamery různé ikonky, zaměřovací kříž, histogram …).

14. Odkazy na Internetu

  1. DaVinci processor family
    http://www.ti.com/general/doc­s/datasheetdiagram.tsp?ge­nericPartNumber=TMS320DM365&di­agramId=64193
  2. Texas Instruments DaVinci
    https://en.wikipedia.org/wi­ki/Texas_Instruments_DaVin­ci
  3. TMS320DM6446 (DaVinci)
    http://www.ti.com/product/tms320dm6446
  4. Digital Media Video Processors (TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/media_processor­s/davinci/products.page#
  5. TI Wiki
    http://processors.wiki.ti­.com/index.php/Main_Page
  6. C5000 ultra-low-power DSP
    http://www.ti.com/lsds/ti/pro­cessors/dsp/c5000_dsp/over­view.page
  7. OMAP (Wikipedia)
    https://en.wikipedia.org/wiki/OMAP
  8. OMAP – TI Wiki
    http://processors.wiki.ti­.com/index.php/OMAP
  9. Why OMAP can't compete in smartphones
    http://www.eetimes.com/au­thor.asp?section_id=40&doc_id=1286602
  10. 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
  11. TI cuts 1,700 jobs in OMAP shift
    http://www.eetimes.com/do­cument.asp?doc_id=1262782
  12. VLIW: Very Long Instruction Word: Texas Instruments TMS320C6×
    http://www.ecs.umass.edu/e­ce/koren/architecture/VLIW/2/ti1­.html
  13. An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture
    Philips Semiconductors
  14. VLIW Architectures for DSP: A Two-Part Lecture (PDF, slajdy)
    http://www.bdti.com/MyBDTI/pub­s/vliw_icspat99.pdf
  15. Very long instruction word (Wikipedia)
    https://en.wikipedia.org/wi­ki/Very_long_instruction_word
  16. A VLIW Approach to Architecture, Compilers and Tools
    http://www.vliw.org/book/
  17. VEX Toolchain (VEX = VLIW Example)
    http://www.hpl.hp.com/downloads/vex/
  18. Elbrus (computer)
    https://en.wikipedia.org/wi­ki/Elbrus_%28computer%29
  19. Super Harvard Architecture Single-Chip Computer
    https://en.wikipedia.org/wi­ki/Super_Harvard_Architec­ture_Single-Chip_Computer
  20. Digital Signal Processors (stránky TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/overview.page
  21. C674× Low Power DSP (stránky TI)
    http://www.ti.com/lsds/ti/pro­cessors/dsp/c6000_dsp/c674×/o­verview.page
  22. TMS320C30 (stránky TI)
    http://www.ti.com/product/tms320c30
  23. TMS320C6722B
    http://www.ti.com/product/tms320c6722b/des­cription
  24. Introduction to DSP
    http://www.ti.com/lit/wp/spry281/spry­281.pdf
  25. The Evolution of TMS (Family of DSPs)
    http://www.slideshare.net/mo­to_modx/theevo1
  26. Datasheet k TMS32010
    http://www.datasheetarchi­ve.com/dlmain/49326c32a52050140ab­ffe6f0ac4894aa09889/M/TMS32010
  27. 1979: Single Chip Digital Signal Processor Introduced
    http://www.computerhistory­.org/siliconengine/single-chip-digital-signal-processor-introduced/
  28. The TMS32010. The DSP chip that changed the destiny of a semiconductor giant
    http://www.tihaa.org/histo­rian/TMS32010–12.pdf
  29. Texas Instruments TMS320 (Wikipedia)
    https://en.wikipedia.org/wi­ki/Texas_Instruments_TMS320
  30. 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
  31. Great Microprocessors of the Past and Present (V 13.4.0)
    http://jbayko.sasktelwebsi­te.net/cpu.html
  32. Introduction to DSP – DSP processors:
    http://www.bores.com/courses/in­tro/chips/index.htm
  33. The Scientist and Engineer's Guide to Digital Signal Processing:
    http://www.dspguide.com/
  34. Digital signal processor (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/Digital_signal_processor
  35. Digitální signálový procesor (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Digitální_signálový_pro­cesor
  36. Digital Signal Processing FAQs
    http://dspguru.com/dsp/faqs
  37. Reprezentace numerických hodnot ve formátech FX a FP
    http://www.root.cz/clanky/fixed-point-arithmetic/
  38. IEEE 754 a její příbuzenstvo: FP formáty
    http://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/
  39. Č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/
  40. Základní aritmetické operace prováděné v FX formátu
    http://www.root.cz/clanky/zakladni-aritmeticke-operace-provadene-ve-formatu-fx/
  41. 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/
  42. FIR Filter FAQ
    http://dspguru.com/dsp/faqs/fir
  43. Finite impulse response (Wikipedia)
    http://en.wikipedia.org/wi­ki/Finite_impulse_response
  44. DSPRelated
    http://www.dsprelated.com/
  45. Addressing mode (Wikipedia)
    https://en.wikipedia.org/wi­ki/Addressing_mode
  46. Orthogonal instruction set
    https://en.wikipedia.org/wi­ki/Orthogonal_instruction_set
  47. TI 16-bit and 32-bit microcontrollers
    http://www.ti.com/lsds/ti/mi­crocontrollers16-bit32-bit/overview.page
  48. TMS 32010 Assembly Language Programmer's Guide (kniha na Amazonu)
    https://www.amazon.com/32010-Assembly-Language-Programmers-Guide/dp/0904047423
  49. 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.