V dnešním druhém dílu miniseriálu o hardware se svobodným designem jsme oslovili projekt
Freedom CPU, zkráceně F-CPU. Na otázky odpovídal především Yan Guidon [YG], hlavní vývojář. Nebyl však sám, sekundoval mu Michael Riepe [MR], jeden z designérů.
HH: Můžete stručně popsat, co je cílem projektu F-CPU?
MR: Navrhnout CPU, které je každému volně dostupné. To je důležité, protože:
- Nejsme uzamčeni mezi malým počtem výrobců, kteří se snaží skrývat designy svých zařízení.
- Nejen, že každému poskytujeme přístup k designu, ale také ke znalostem. Čtením kódu cizích lidí se můžete naučit strašně moc – to je způsob, jakým se mnoho z nás naučilo programovat.
- Lidé se mohou podílet na dalším vývoji.
- Je to legrace! :)
YG: Tato ustanovení Freedom CPU jsme odhlasovali v roce 1999: „Vyvíjet a volně poskytovat architekturu a všechno ostatní intelektuální vlastnictví potřebné k výrobě jedné či více implementací této architektury, s následujícími prioritami (v sestupném pořadí):
- Všestrannost a použitelnost pro tak širokou škálu aplikací, jak jen to bude možné.
- Výkon, s důrazem na paralelismus na uživatelské úrovni, dosažený především inteligentní architekturou a nikoliv lepší silikonovou technologií.
- Životnost architektury a budoucí kompatibilita.
- Cena, jak z finančního, tak i tepelného hlediska.“
Lidé, kteří vytvořili tento projekt, se obávali, že jim monopol Intelu zabrání hackovat a vylepšovat jádro Linuxu. Jeden z nich, Richard Gooch, je znám tím, že do něj přidal podporu pro MTRR a devfsd. Napadlo je tedy, že pokud aplikují recept Linuxu na svět hardware, mohlo by to poskytnout dobrou alternativu. Projekt pojmenovali Freedom CPU Project, což se zkrátilo a postupně se z toho stalo F-CPU. Jak napovídá název, je to všechno o svobodě. To je velmi silný kulturní šok a utopický sen, ale bezesporu to přitáhlo mnoho lidí, kteří postupně pomáhají projektu uspět.
Poznamenejme však, že „designovat“ neznamená „stavět“ či „vyrábět“. Cílem je vytvořit „intelektuální vlastnictví“ (IP) pod copyleftem. Vlastní výroba není problémem. Stávající průmysl bude rád čipy vyrábět, protože cena IP se stále zvyšuje. Naším cílem je vytvořit nová spravedlivá pravidla a rozumné prostředí počítačového průmyslu pro všechny.
HH: Vaše motto je: „Design and let design“ („Designuj a nech designovat“), mohl byste to vysvětlit?
Napadlo mě to, když jsem připravoval prezentaci na 17C3 v Berlíně. Je to hříčka podle „žít a nechat žít“, protože pro lidi, jako jsme my, je design náš život (a opačně).
Toto motto obsahuje představu respektu, míru a svobody protože svoboda každého končí tam, kde začíná svoboda někoho jiného. Připomíná to lidem, že cílem je designovat, ne ztrácet čas nekonečnými diskuzemi o netechnických záležitostech. Nebo alespoň ne do té míry, kde by se kvůli tomu musel zdržovat vývoj.
HH: Proč si myslíte, že jsou tyto cíle důležité?
Pro mě, kdo pracuje ve světě elektroniky a software, se to zdá samozřejmé. Věřím, že tu je něco, co mohu dělat a vidím, že nejsem sám. To je pro mne dané a vyvstává pouze otázka „jak“.
K tomuto projektu jsem se připojil, protože jsem již předtím dělal něco podobného, ale sám. Můj osobní projekt byl motivován znechucením, které se ve mě nashromáždilo, když jsem programoval PC a DSP. Již tehdy jsem byl dost zklamán z toho, jak průmysl mikroelektroniky pracuje. Lidé vyvíjející F-CPU prožili ty samé problémy jako já: „non-disclosure agreements“, skryté chyby v čipech, nečisté obchodní praktiky, komplikované designy, které nakonec stejně nefungují, jak měly...
To je situace, která nastala, protože společnosti jsou orientované na zisk, upřednostňují na některých věcech šetřit svým úsilím a nic nezveřejňují, raději než aby pomohly zákazníkovi, když je to potřeba. Jak se často říká, společnosti nemají etiku. Copyleftovaný design může tuto situaci změnit: právní omezení spojené se svobodným designem nutí společnosti uvědomit si svou odpovědnost a svou roli. Zákazník není jen něco, odkud těžíte peníze. Neznám žádný jiný projekt, který by zdůrazňoval jak svobodu, tak osobní zodpovědnost a to je důvod, proč F-CPU stále podporuji.
HH: Řekněte nám něco o čistě technologických výhodách, které má F-CPU oproti proprietárním designům.
MR: Škálovatelná velikost registrů a podpora obecného SIMD.
YG: F-CPU nepřináší tolik převratně nových technických vylepšení oproti ostatním designům. Většina z nich je výsledkem cesty, kterou jsme zvolili. To, co náš model přináší, je zjednodušení a homogenizace vylepšení, jež nacházíme v jiných rodinách [procesorů]. Například:
- F-CPU je definováno jako „minimálně 64bitové“ CPU, protože se snažíme podporovat i širší data a ukazatele. Když se podíváte zpět na všechny větší migrace mezi architekturami, naleznete přechod z 8 bit na 16 bit, 16 bit na 32 bit, 32 bit na 64 bit. To jsou pro uživatele velké skoky a investice, protože každý software musí s šířkou registrů počítat. F-CPU bude pravděpodobně první počítač, který nebude vázat uživatele ke konkrétní velikosti registrů. Měla by být umožněna koexistence několika různých verzí s různými šířkami registrů, které mezi sebou budou kompatibilní, pokud bude programátor respektovat některá základní pravidla. To znamená, že dobře napsaný software poběží na větších počítačích rychleji, ale stále se bude dát spustit i na „základní“ 64bitové verzi.
- F-CPU má 64 registrů na všechny datové typy, ukazatele atd., takže když je potřeba, mohou být využity všechny (jako protiklad k registrům specializovaným na určitý typ dat: integer, float... – pozn. HH) To se dá dobře využít pro rozbalování smyček a náročné výpočty (grafické algoritmy, zpracování zvuku, kryptografie, fyzikální simulace, video...)
- S numerickými datovými typy můžete zacházet jako se skaláry nebo jako se SIMD (zabalenými) daty. To však není v F-CPU rozšíření (jako např. SSE, MMX, Altivec atd.) a je to od začátku kompletně integrováno v instrukční sadě. Programovat F-CPU v assembleru může být tak jednoduché jako v C, protože programátora nebudou omezovat žádná hloupá pravidla a omezení. Instrukční sada je navržena tak, aby uživateli poskytla co nejvíce výkonu.
To jsou některé z nejznatelnějších vylepšení, která přináší F-CPU. Většina z těch ostatních jsou pouze následky návrhů designu. Sice to může pro začátečníka vypadat jako 64bitové ortogonální MIPS, ale když se podíváte blíže, zjistíte spoustu rozdílů. Jedná se jak o „klasicky“ vypadající design i o úplně nový přístup, protože naše ranné pokusy se snažily odpoutat od existujícího modelu až příliš moc a nikdo nevěděl, jak to naprogramovat. Stávající stav věcí je uspokojující, protože stále ještě zbývá mnoho prostoru pro vylepšení, ale na druhé straně pokud přijde začátečník, který chce napsat nějaký kód, nebude to pro něj příliš komplexní a bude moci rychle pochopit základy a začít pracovat (ačkoliv nebude hned tak výkonný, jako ostatní).
Co se týče „mikroarchitektury“, „FC0“ jsme začali vyvíjet v polovině roku 1999 a půjčili jsme si kousky známých high-end počítačových architektur. Je to kombinace mezi rannými ALPHA čipy a výkonnými mainframy ze 70. a 80. let, takže bychom neměli narazit na žádný problém s patenty. Co se týče detailů, F-CPU je tak odlišné, že se nepodobá ničemu. Nemáme však žádná tajemství: vše je logickým důsledkem našich základních cílů. Pokud to některé čtenáře zajímá, doporučuji jim podívat se na náš „F-CPU Manuál“: aktuální je verze 0.2.6, nicméně některé části jsou již zastaralé.
HH: Jaké jsou vaše šance na opravdovou výrobu F-CPU. Jsou to FPGA? (programovatelné desky).
MR: To je především otázka peněz. Důležité je, jestli se někomu podaří nad CPU postavit celý počítač.
YG: Já si myslím, že šance jsou docela dobré. V podstatě se to redukuje na otázku, jestli budeme schopni kód dokončit. Až budeme mít F-CPU verze 1, zmrazíme základní koncepty a bude zaručena kompatibilita. Každý bude mít možnost stáhnout si zdroje a syntetizovat je ve svůj cíl (buď FPGA nebo semi-custom), přizpůsobit je svým potřebám a vydělávat na nich peníze.
To se zdá zajímavé mnohem více lidí, než jsem si původně myslel. Stávající ekonomické potíže nutí manažery, hledat cesty, jak snížit náklady. Cena stávajícího IP od ARM nebo MIPS je velmi vysoká a když společnost ušetří jeden milion na licenčních poplatcích, bude schopna redukovat cenu koncového produktu a investovat více do opravdového vývoje. Ve skutečnosti, znám pouze málo lidí (z průmyslu), kteří vidí F-CPU a Open [Source] Hardware jako nebezpečí a omezení rozpočtu není jediným důvodem. Dokonce i Intel by mohl vyrábět a prodávat F-CPU, pokud by respektovali náš copyright.
HH: Kdybych vás požádal, abyste zkusili odhadnout kolik procent designu F-CPU je v současnosti hotovo a kolik teprve čeká, až jej někdo začne hackovat, co byste odpověděli?
MR: To je těžké. Můj odhad je 30 %, když nepočítám cache (to bude sice dost siliconu, ale zase jsou hodně pravidelné, takže...). Právě vyvíjíme tu nejtěžší část.
YG: Já bych řekl 15 nebo 20 procent vlastního jádra. Zdrojový kód je velmi důležitý, ale ještě důležitější je proces ověřování a křížové testování mezi různými nástroji. Na každou 1 řádku kódu jádra připadá možná 5 řádek testovacího kódu, jak v C tak ve VHDL. Poslední dva roky jsme strávili budováním samotné metodologie, úplně od začátku, a pořád ještě nejsme hotovi.
Naštěstí ale už za sebou máme ty nejtěžší části a zbytek by měl být hotov rychleji: jak již jednou budeme mít soubory pro podporu testů, přizpůsobit je ostatním jednotkám bude pouze otázka cut & paste.
Designovat a hackovat F-CPU je snadnější pro „elektroniky“, protože jsou zvyklí tvořit testy a pozorně zkoumat všechny parametry. Klasický hacker nebo i inženýr v oboru počítačů nakóduje funkci v C, vloží ji do programu a zkusí, jestli pracuje, pak udělá další funkci ...
F-CPU není hack, všechno musí perfektně pracovat s ostatními částmi, při jakékoliv konfiguraci. Většina věcí se tedy dělá automatizací věcí, jejich testováním a psaním dokumentace. Tak jako v normální firmě, ale s odlišnými cíly. Zajistit svobodu designu vyžaduje mnoho úsilí a i přesto, že naše metody používají hacky, výsledkem není hack (v komerčních designech to většinou bývá opačně). To jsou některé z důvodů, proč je vývoj tak pomalý.
HH: Využíváte také nějaké jiné svobodné designy nebo děláte vše od začátku?
MR: Jelikož má F-CPU unikátní vlastnosti, děláme většinu věcí od začátku (minimálně to platí pro ty části, které jsem dělal já). Prostě např. neexistují žádné svobodné aritmetické jednotky (nebo jejich generátory), které by podporovaly SIMD operace tím způsobem, kterým je potřebujeme dělat my – kromě těch našich samozřejmě.
YG: A nejen, že musíme vyvíjet veškerý design od začátku, my také musíme vyvíjet od začátku všechno ostatní. Například já jsem napsal systém konfigurace zdrojových kódů. Není to tak jednoduché jako s konfigurací Linuxu, ale funguje to, takže si můžete zkonfigurovat vaše vlastní CPU bez toho, abyste museli procházet všechny zdrojové soubory. Protože je hlavním jazykem VHDL a to má jisté charakteristiky, běžný konfigurační software je k ničemu. Přesto ale využíváme m4.
Dalším kritickým bodem v zajištění svobody projektu je, že zdrojové kódy se nesmějí stát závislými na dodavatelích (narozdíl od mnoha zdrojových kódů vydaných s „nálepkou GPL“). V současnosti neexistují žádné opravdu svobodné programy pro VHDL design a ty, které jsme testovali, nedodržují své technické sliby. Tím pádem musíme používat proprietární nástroje.
První (nikoliv však poslední) společností, která nám nabídla pomoc, byla Cadence. To samé poté udělal Aldec. Náš tým je ale moc nevítá: jsou to velmi drahé nástroje, které vyžadují školení, speciální hardware, konfiguraci, právní dohody atd. Většina našich přispěvatelů používá i freewarové kompilery a simulátory VHDL.
Musel jsem proto napsal skript, který umožňuje naše zdroje využívat s různými nástroji. F-CPU tak zůstává svobodné, protože je nezávislé na nástrojích, které vývojáři používají. Kdyby se objevil nějaký problém s některým ze sponzorů, můžeme dále pokračovat ve svobodném vývoji. Nepoužíváme žádnou konstrukci, která by byla závislá na konkrétních nástrojích a všechny naše zdroje testujeme i oproti ostatním nástrojům.
Pokud by tedy F-CPU selhalo v plnění svých cílů, zbyde po něm alespoň tato práce [skripty, konfigurační nástroje, software].
HH: Takže jste donuceni používat nesvobodný software. Je nějaká naděje, že budou existovat svobodné náhrady za tyto nástroje?
MR: Já bych opravdu rád používal svobodné nástroje, ale ty, které jsou k dispozici (FreeHDL, Savant) jsou méně vyvinuté než jejich closed-source protějšky.
YG: Nedostatek rozumných svobodných EDA nástrojů je alarmující. Většina Open Hardware designů je vyvíjena s pomocí jednoho nebo dvou proprietárních nástrojů a tak posiluje jejich důležitost. Obchodníci s EDA jsou chytří.
Na druhé straně designy napsané se svobodnými nástroji se neshodují s průmyslovými standardy – tím se stávají neužitečnými.
V současnosti existuje řešení, jak zajistit, aby designy nebyly závislé na konkrétních proprietárních nástrojích. Cíl projektu F-CPU však není psát svobodné EDA nástroje. Kdyby tak alespoň fungovalo FreeHDL ...
HH: Vidíte nějaké přímé spojení mezi hardware se svobodným designem a svobodným software? Richard Stallamn říká, že otázka svobody není pro hardware důležitá, protože pouze málo lidí může ve skutečnosti „kopírovat“ hardware. Myslím, že vy to vidíte jinak. Souhlasíte spíše s Grahamem Seamanem?
MR: Doba se mění. Před deseti lety neznal svobodný software a projekt GNU téměř nikdo. Uživatelé PC museli používat téměř výhradně operační systémy od Microsoftu. Dnes máme Linux, *BSD, Hurd a masy dalšího volně dostupného software. Kdo ví, co se stane za deset let?
Dnes je poměrně těžké (a drahé) „kopírovat“ či „modifikovat“ hardware. Stejně tak bylo v 80. letech těžké kopírovat CD, ale dnes již to může dělat každé PC. V roce 2020 si možná budete moci koupit prázdnou bránu či pole buněk za 7.95 EUR v každém druhém supermarketu a sám si je naprogramovat. Projekty hardware se svobodným designem jako F-CPU či OpenCores jsou pouze začátkem.
YG: Myslím, že když o tom Richard mluvil, nepochopil některé věci. Bylo to nějak asi před dvěma roky a za tu dobu svůj názor změnil. My ale nepotřebujeme jeho požehnání, abychom vytvořili F-CPU a zdá se, že chápe, co je na této frontě v sázce. Hlavně když vezmete v úvahu DMCA a další zákony nebo monopol Intelu (MIPS a ALPHA jsou z trhu s pracovními stanicemi staženy a zdá se, že PowerPC bude brzy následovat).
Když jsem se připojil k F-CPU, viděl jsem to pro sebe jako jedinou cestu ven (neumím vyjádřit, jak jsem otráven svým PC). Od roku 2000 (zvěsti o ochraně proti kopírování zabudované v ATA, stažení ALPHY) jsem pochopil, že se to stane jediným východiskem i pro ostatní! Sám pracuji ze sobeckých důvodů, ale vím, že je to důležité nejen pro hnutí svobodného software, ale také pro počítačový průmysl. Když diskutuji s Richardem, nemáme mezi sebou žádné neshody. (pokud neberu v úvahu jeho obvyklou šťouravost :)
F-CPU určitě má filosofické a technické spojitosti s FSF a komunitou kolem Linuxu, ale my musíme vynalézt něco jiného. Graham Seaman jeví velmi hluboké pochopení hnutí hardware se svobodným designem, protože on elektronický průmysl pozoruje a interaguje s ním po několik desítek let. Je velmi poučný a jeho osobnost je pravděpodobně v mnoha bodech opakem Richarda (s oběma jsem se několikrát setkal). Nemohu říci, že by jeden z nich neměl pravdu. Oba mluví o úplně odlišných věcech, mají různý úhel pohledu a různé cíle (např: Graham nevede jihad ;-D)
Mě ale otázka pravdy či nepravdy nezajímá. Jediným hmatatelným důkazem je zdrojový kód a my ho píšeme. Ještě jednou, „Design and let design“ :)