Co nejaky FPGA kde se naprogramuje digitalni obvod a ten pak dela potrebne prace s daty?
Napr. implementovat funkci Ronji Twistera by v mikroradici udelat neslo, protoze jsou extremni pozadavky na ryzhlost reakce na prochazejici data. Behem par set nanosekund se musi rozpoznavat zacatky a konce paketu spravne sestrihavat ruzne digitalni dignaly atd. Zvladne to ale mnohem jednodussi obvod architektury "vrabci hnizdo", slozeny z jednotlivych primitivnich jednotek, ktere jsou zapojeny do "grafu".
Kdyby se programaticky daly ty dratky prepojovat (coz se presne deje ve FPGA), dalo by se to zobecnit na libovolnou ulohu a vznikl by turingovsky ekvivalentni stroj ktery je koncepcne jednoduchy a ma dobry vykon.
Tak můžeš udělat FPGA, co má ochranu paměti a stránkování a pak se na to může napsat kompilátor a pouštět nad tím obyčejné operační systémy a programy :)
No, to bude az druha faze myslim. Ono je totiz tezke uz jenom udelat prostou alokaci toho FPGA, mala zmena v tom software muze zpusobit, ze se to tam nevejde nebo se nevejde s necim jinym. Jasne, muzete to vzdycky cele to FPGA naalokovat a nahrat znova, ale to je jako pred kazdou alokaci pameti pamet defragmentovat. Takze FPGA by melo obrovsky overhead pri prepinani uloh.
Nicmene, vubec nejsem proti te myslence, spis naopak.
FGPA jsou drahé, v porovnaní s tím, co umí třeba mikrořadič (a to výrazně). Pokud člověk zrovna nechce dělat něco ala hardcopy a vyrobit si svých pár miliónů čipů teda. To co píšeš, je běžná praxe a high end DSP maji celé bloky, už od výrobce, kde jsou mikrořadiče (typicky nějaké PPC). Ono z hlediska plochy, výkonu, spotřeby, ... je FPGA plýtvání, proto tak už jsou ty PPC bloky od výrobce. A to pomíjím, že se dělají bloky, ktere obsahují třeba celou MAC jednotku (ETH). Nebo řadiče pro PCIex, DDR, ... A to jen proto, aby se ušetřila ta plocha a zvedl výkon.... Ale ty ceny. A ceny dobrých syntetizátorů, to je taky kapitolka sama pro sebe. Nemám FPGA rád, ikdyž faktem je to, že se jim člověk často nevyhne....
Jinak tady párkrát padlo DSP. Krásné "hybridy" mezi DSP a klasickým CPU dělá třeba analog, Blackfin procesory. Krásné, levné stroje. 400-600MHz core, až 3 instrukce za takt, spotřeba menší cca 1W, na čipu 100K RAM na plné frekvency jádra, integrovaná SDRAM/DDR. A je to za pár dolarů. Dá se to na řadě míst použít místo kombinace DSP+CPU. Navíc na tom pěkně běží ucLinux.
Je fakt, ze mluvim z pozice cloveka, ktery delal na systemech vyrabenych v malych seriich (desitky kusu), kde nejvic stal vyvoj SW, takze nejaka cena FPGAcka nehrala tak vysokou roli (bylo tam FPGA, DSP a SRAM, tady je videt, ze se ani neresila nahrada SRAM za levnejsi DRAM). Ale je jasne, ze kdyz nekdo treba vyrabi HW kodek pro digital TV apod. (to se prodava v milionech kusu), tak si muze dovolit si nechat v tovarne vyrobit masku a pouzit vlastni cip.
Vim, ze se delal i nejaky European Logarithmic Processor nebo nejak podobne znejici CPU, na kterem participovali lidi z Akademie ved a ti si to opravdu nechali napalit do cipu. Ale to je samozrejme vyvoj podporovany granty, na coz Clock s Ronjou asi nedosahne :-(
Ta vyroba cipov nebude az taka draha. Ked som v 1995 dokoncil diplomovku ( jednalo sa o programovatelny digitalny filter), tak fakulta mikroelektroniky kde som studoval ( FEI STU v Bratislave) mala nejaku zmluvu so zdruzenim EuroChip a oni mi ten moj integrovany obvod vyrobili v mnozstve asi 5 kusov. Nejednalo sa o FPGA, vystupom mojho navrhu boli masky v 3um technologii (v tej dobe dost zastaralej) ktore sa posielali do EuroChipu.
Nekdy staci i malickost, napriklad se pokusit implementovat na FPGA treba FP nasobicku, delicku, scitacku se saturaci atd. Samozrejme to jde, ale zabere to strasne velkou cast plochy cipu a pritom to stejne (cele FPU) maji mnoha DSPcka, ktere se daji sehnat za par dolaru.
Jako idealni se pro tyto pripady ukazuje kombinace FPGA+mikroprocesor (treba nejake DSP). FPGAcko na rychle reakce (+se daji napriklad vyuzit jeho nasobicky) a DSPcko na zbytek. Nejsem si ted jistej, co pouzivaji treba ridici obvdody harddisku (to je dost podobny obvod, jako Ronja), ale tipnu si prave na tuto kombinaci, tj. programovatelne pole+rychle DSPcko.
Ale samozrejme je to projekt od projektu ruzne, nekdy se treba zjisti, ze to DSPcko utahne samo a potom je vyvoj levnejsi.
No myslím, že zrovna tohle by byla skoro ideální aplikace pro Mooreův zázrak jménem x25. ;-) Pár set nanosekund? Za tu dobu stihneš pár desítek tisíc operací. :-)