Obsah
1. Procesorové řezy AMD Am2900 a Intel 3000
2. Integrované obvody tvořící rodinu Intel 3000
3. Malá historická odbočka – statické a dynamické paměti firmy Intel
4. Integrovaný obvod Intel 3001 – mikroprogramový řadič
5. Význam klopných obvodů Z a C
6. Integrovaný obvod Intel 3002 – aritmeticko-logická jednotka
7. Integrovaný obvod Intel 3003 – rychlý generátor přenosů pro ALU
8. Obsah následující části seriálu
1. Procesorové řezy AMD Am2900 a Intel 3000
V předchozí části seriálu o architekturách počítačů jsme si stručně popsali úspěšnou rodinu čipů nesoucích pojmenování AMD Am2900. Jednalo se o sadu přibližně čtyřiceti typů integrovaných obvodů majících různé funkce, z nichž bylo možné sestavit plnohodnotný procesor zpracovávající operandy s volitelnou bitovou šířkou, která mohla dosahovat násobku čísla čtyři – bylo tedy možné zkonstruovat čtyřbitové, osmibitové, dvanáctibitové, šestnáctibitové atd. procesory (jednotlivé čtyřbitové aritmeticko-logické jednotky se nazývají „bitové či procesorové řezy“). Vzhledem k tomu, že takto sestavený procesor byl řízen mikroprogramem uloženým v samostatném paměťovém obvodu, mohli si jeho konstruktéři sami zvolit instrukční sadu takovým způsobem, aby co nejvíce odpovídala požadavkům aplikace, která měla být na procesoru spouštěna. Na základě operačního kódu instrukce se pomocí sekvencéru načítaly z paměti mikroprogramu jednotlivé mikroinstrukce používané jak pro řízení ALU, tak i dalších modulů procesoru, včetně vlastního mikroprogramového řadiče.
Obrázek 1: Čip Intel 3001 (mikroprogramový řadič) umístěný v keramickém pouzdře.
Díky tomu, že čipy z rodiny AMD Am2900 byly vytvořeny s využitím bipolární technologie (byly tedy relativně rychlé) a taktéž díky tomu, že se v čipové sadě Am2900 nacházela i aritmeticko-logická jednotka podporující provádění aritmetické operace násobení, používaly se tyto integrované obvody relativně často pro konstrukci DSP – digitálních signálových procesorů. Ovšem integrované obvody patřící do rodiny AMD Am2900 nebyly jediným procesorovým řezem, který byl na trhu v polovině sedmdesátých let minulého století dostupný. O rok dříve než firma AMD totiž začala svoje vlastní řešení nabízet i společnost Intel – ta přišla v roce 1974 s rodinou integrovaných obvodů pojmenovaných Intel 3000, z nichž taktéž bylo možné sestavit plnohodnotný procesor složený z procesorových řezů. Na tomto místě je možná vhodné poznamenat, že pouze o necelé tři roky dříve než čipová sada Intel 3000 (konkrétně koncem roku 1971) vznikla i čipová sada Intel 4000, jejímž ústředním prvkem byl první mikroprocesor na světě – slavný čtyřbitový Intel 4004.
Obrázek 2: Další varianta integrovaného obvodu Intel 3001.
2. Integrované obvody tvořící rodinu Intel 3000
Mezi základní integrované obvody tvořící čipovou sadu Intel 3000, patřily především integrované obvody nesoucí označení Intel 3001, Intel 3002 a Intel 3003. Tyto čipy budeme v dalším textu pro jednoduchost označovat pouze číslicemi, které byly při pojmenovávání obvodů používány i některými dalšími výrobci klonů těchto čipů, což mj. znamená, že integrovaný obvod Intel 3001 je po funkční stránce prakticky totožný s tuzemským integrovaným obvodem MH3001. Podobně jako u minule popsané čipové sady AMD Am2900, se i u rodiny Intel 3000 používal samostatný integrovaný obvod představující aritmeticko-logickou jednotku o malé bitové šířce, druhý typ integrovaného obvodu zabezpečoval generování příznaků nutných pro to, aby při sčítání a odečítání operandů mohly operace probíhat paralelně se všemi bity. Třetím integrovaným obvodem byl mikroprogramový řadič, který musel být doplněn pamětí mikroprogramu a popř. i dalšími podpůrnými obvody. Jednotlivé obvody budou podrobněji popsány v navazujících kapitolách.
Obrázek 3: Postupný růst kapacity dynamických pamětí v průběhu dvaceti let. Všimněte si, že na vertikální ose je logaritmické měřítko.
V tabulce zobrazené pod tímto odstavcem jsou vypsány základní typy integrovaných obvodů tvořících čipovou sadu Intel 3000:
Označení čipu | Stručný popis |
---|---|
3001 | mikroprogramový řadič, který je ústřední částí celé čipové sady |
3002 | dvoubitová aritmeticko-logická jednotka doplněná o pracovní registry |
3003 | obvod pro výpočet příznaků přenosu používaný při paralelním zapojení ALU |
3212 | záchytný registr |
3214 | obvod pro řízení přerušení |
3216 | řídicí obvod pro sběrnici |
3226 | řídicí obvod pro sběrnici, ovšem s negací signálů na výstupu |
3301 | bipolární paměť ROM (programovaná maskou při výrobě) s uspořádáním 256×4 bity |
3304A | bipolární paměť ROM (programovaná maskou při výrobě) s uspořádáním 256×8 bitů |
3601 | programovatelná paměť ROM (PROM) s uspořádáním 256×4 bity |
3604 | programovatelná paměť ROM (PROM) s uspořádáním 256×8 bitů |
Obrázek 4: Postupný pokles cen dynamických pamětí a porovnání těchto cen z cenami za jednotku kapacity pevných disků a pamětí typu FLASH. Na vertikální ose je opět logaritmické měřítko – jedná se o cenu za jeden megabajt paměťové kapacity.
3. Malá historická odbočka – statické a dynamické paměti firmy Intel
Paměti Intel 3301 a Intel 3601 (uvedené v předchozí tabulce) mezi sebou byly pinově kompatibilní a lišily se pouze tím, zda se programovaly přímo maskou při výrobě, nebo je bylo možné jednorázově naprogramovat až při vývoji procesoru (toho se využívalo u menších sérií výrobků). Totéž platí i pro dvojici paměťových integrovaných obvodů Intel 3304A a Intel 3604. Tyto paměťové čipy jsou ve skutečnosti ještě o tři roky starší než celá rodina Intel 3000 – začaly být totiž vyráběny již v roce 1971, tj. rok poté, co světlo světa spatřily dva velmi důležité integrované obvody – statická paměť RAM realizovaná na čipu Intel 1101 (kapacita 256 bitů, obrázek 6) a zejména pak dynamická paměť DRAM, jejíž čip nesl označení Intel 1103 (kapacita 1024 bitů se šířkou jeden bit, takže se nemuselo provádět multiplexování adresy). Právě tato dvojice paměťových obvodů dokázala nahradit až do té doby intenzivně používané paměti s feritovými jádry, které byly takřka nedílnou součástí mainframů první i druhé generace, stejně jako první generace minipočítačů (viz též informace uváděné v paralelně běžícím seriálu o (pre)historii výpočetní techniky).
Obrázek 5: Technologický vývoj dynamických pamětí. Vynesena je plocha jedné buňky, plocha celého čipu a kapacita „kondenzátorů“ (v podstatě parazitní kapacity tranzistorů) představujících jednotlivé bity. Zajímavé je, že kapacita zůstává téměř konstantní, a to i tehdy, když se plocha jednotlivých paměťových buněk razantně zmenšuje.
Teprve dostupnost statické a zejména dynamické paměti RAM realizované formou relativně levných čipů (cenu je nutné počítat při přepočtu na jeden bit) znamenala revoluci umožňující – současně s mikroprocesory – vznik mikropočítačů a tím pádem i moderní informatiky. Ostatně není bez zajímavosti, že se na samotném vzniku paměťového čipu Intel 1103 nepřímo podílela i firma Honeywell (jeden z tehdejších významných hráčů na poli mainframů), která již v roce 1969 začala s tehdy poměrně neznámou a malou společností Intel spolupracovat na návrhu čipu s paměťovými buňkami tvořenými třemi tranzistory. Výsledkem této spolupráce byl neúspěšný čip 1102, který pravděpodobně ani nebyl komerčně vyráběn. Mnohem úspěšnější však byl integrovaný obvod Intel 1103 navržený již samotnou firmou Intel. I přes určité technologické problémy (požadavek na vysoké napájecí napětí atd.) právě tento obvod způsobil to, že výrobci mainframů a minipočítačů přešli z technologie feritových pamětí na používání pamětí DRAM (jedním z prvních počítačů používajících novou technologii byl HP9800), což ve svém důsledku znamenalo, že původně maličká firma Intel (v podstatě startup z roku 1968) se již v roce 1972 stala největším výrobcem polovodičových čipů na světě.
Obrázek 6: Paměťový čip Intel 1101.
4. Integrovaný obvod Intel 3001 – mikroprogramový řadič
Vraťme se nyní k čipové sadě Intel 3000. Ústřední částí procesoru sestaveného z integrovaných obvodů této čipové sady byl mikroprogramový řadič Intel 3001. Podobně jako další obvody řady Intel 3000, používal i řadič bipolární technologii TTL se Schottkyho diodami. Díky použití této technologie se společnosti Intel podařilo snížit interval jednoho strojového cyklu (přesněji řečeno mikrocyklu) na 85ns, což znamená, že se jednalo o rychlejší obvod, než samotné aritmeticko-logické jednotky Intel 3002 s intervalem cyklu 100ns. Mikroprogramový řadič dokázal v součinnosti s pamětí programu (ta se však nepoužívala příliš často) a pamětí mikroinstrukcí generovat řídicí signály určené pro sadu teoreticky neomezeného počtu paralelně zapojených aritmeticko-logických jednotek Intel 3002 – řadič totiž obsahoval i logiku pro vytváření devítibitových adres, pomocí nichž se načítaly mikroinstrukce z paměti mikroinstrukcí (maximálně 512 adresovatelných mikroinstrukcí), přičemž sedm bitů načtených z této paměti bylo přímo nebo přes záchytný registr přiváděno na řídicí piny ALU a zbývajících jedenáct bitů (7+4 bity) se přivádělo zpět do řadiče.
Obrázek 7: Použití mikroprogramového řadiče v jednoduchém procesoru.
(ofoceno z katalogu podniku Tesla).
Způsob adresování mikroinstrukcí v paměti i rozdělení mikroinstrukčního slova na tři části je zobrazeno na ilustračních obrázcích umístěných nad i pod tímto odstavcem („trojrozměrné schéma“ pochází přímo od firmy Intel, „dvojrozměrné schéma“ pak od tuzemské Tesly). Mikroinstrukce je rozdělena na adresovou část AC0 až AC6, dále pak na řídicí část určenou pro ovládání samotného řadiče FC0 až FC3 a konečně pak na řídicí část aritmeticko-logických jednotek F0 až F6. Samotný mikroprogramový řadič byl rozdělen do několika modulů. Nejdůležitějším modulem mikroprogramového řadiče byla logická síť, která na základě stavu řadiče, hodnot některých vstupních signálů a taktéž na základě adresy přečtené z mikroprogramové paměti (viz též zmíněná adresová část mikroinstrukce AC0 až AC6) generovala adresu další mikroinstrukce – tím se ovlivnila další činnost samotného řadiče i ALU.
Obrázek 8: Použití mikroprogramového řadiče v jednoduchém procesoru.
(ofoceno z technické dokumentace firmy Intel).
5. Význam klopných obvodů Z a C
Další důležitou součástí řadiče byl modul obsahující dvojici klopných obvodů nazvaných C (carry) a Z (zero), které byly doplněny záchytným jednobitovým registrem F. Oba klopné obvody mohly být nastaveny přes vstupní pin FI programového mikrořadiče a interní demultiplexor (v tomto případě se jednalo o signály přečtené z ALU). Pomocí funkcí STZ a STC se mohl nastavit jeden z těchto klopných obvodů na logickou hodnotu přivedenou na pin FI, popř. se funkcí SCZ nastavily oba klopné obvody současně. Naopak se stav obou klopných obvodů přes multiplexor přenášel na výstupní pin FO; funkce FFC sloužila pro výstup stavu klopného obvodu C, funkce FFZ pro výstup stavu obvodu Z a funkce FF0 či FF1 nastavovaly výstupní pin F0 na úroveň logické nuly či logické jedničky. Kromě překlápění obou obvodů a přepínání jejich výstupů na pin FO se však oba stavové klopné obvody používaly pro implementaci podmíněných skoků, což je ostatně primární funkce těchto stavových klopných obvodů i v moderních mikroprocesorech (kde se hodnoty těchto klopných obvodů mapují do dvou bitů stavového registru).
Obrázek 9: Další schéma procesoru vytvořeného z integrovaných obvodů rodiny 3000. Pravděpodobně omylem jsou signály FI a FO označeny na tomto schématu symboly F1 a F0.
Všechny zmíněné operace byly vybírány na základě čtveřice řídicích signálů FC0 až FC3, které byly načítány z paměti mikroinstrukcí (viz též předchozí kapitolu). V následující dvojici tabulek jsou pro ilustraci všechny operace vypsány i s příslušnou bitovou kombinací řídicích signálů FC0 až FC3. Povšimněte si, že vstupní a výstupní operace mohly probíhat současně:
Operace | Význam | FC1 | FC0 |
---|---|---|---|
SCZ | nastav C i Z podle hodnoty na vstupu FI | 0 | 0 |
STZ | nastav Z podle hodnoty na vstupu FI | 0 | 1 |
STC | nastav C podle hodnoty na vstupu FI | 1 | 0 |
HCZ | neměň ani stav C ani stav Z | 1 | 1 |
Operace | Význam | FC3 | FC2 |
---|---|---|---|
FF0 | výstup FO se nastaví na 0 | 0 | 0 |
FFC | výstup FO se nastaví na stav obvodu C | 0 | 1 |
FFZ | výstup FO se nastaví na stav obvodu Z | 1 | 0 |
FF1 | výstup FO se nastaví na 1 | 1 | 1 |
Obrázek 10: Zapojení vstupních a výstupních pinů mikroprogramového řadiče MH3001.
(ofoceno z katalogu podniku Tesla)
6. Integrovaný obvod Intel 3002 – aritmeticko-logická jednotka
Druhým důležitým integrovaným obvodem patřícím do rodiny Intel 3000 byla aritmeticko-logická jednotka kombinovaná s maticí pracovních registrů. Tento čip nesl označení Intel 3002 a byl vytvořen, podobně jako výše popsaný mikroprogramový řadič, pomocí bipolární technologie TTL se Schottkyho diodami. Na rozdíl od většiny dalších procesorových řezů, které byly zkonstruovány a prodávány dalšími společnostmi, byla aritmeticko-logická jednotka 3002 pouze dvoubitová, tj. v jednom kroku dokázala zpracovat pouze dvojici dvoubitových operandů. Většina dalších procesorových řezů (AMD, Motorola, …) využívala čtyřbitové ALU, které měly tu výhodu, že počet těchto čipů zůstal relativně malý i při konstrukci šestnáctibitového procesoru (nemluvě o procesorech 24bitových a 32bitových). Nicméně volba „pouze“ dvoubitové ALU v případě čipu Intel 3002 přinášela některé výhody – celý čip byl například umístěn do pouzdra s pouhými 28 vývody, na rozdíl od 40 vývodových pouzder u jiných procesorových řezů (jediným čipem řady 3000, který měl 40 vývodů, byl programový mikrořadič).
Obrázek 11: Integrovaný obvod Intel 3002 v keramickém pouzdře.
Aritmeticko-logická jednotka Intel 3002 pracovala s cyklem pouhých 100 ns, což odpovídá mezní frekvenci hodinových cyklů 10 MHz, avšak u některých odvozených typů se doporučovalo používat frekvenci do 6 MHz (v první polovině sedmdesátých let minulého století se jednalo o poměrně vysoké frekvence). ALU dokázala na základě sedmibitových mikroinstrukcí (přiváděných po sedmi vstupních pinech) provádět jak součet a rozdíl operandů (navíc s možností detekce nuly), tak i základní bitové operace AND, OR, NOT a XOR, popř. bitové posuny operandů doleva a doprava. Vzhledem k tomu, že při bitových posunech musely být jednotlivé bity přesouvány mezi sousedními ALU, byly pro tento účel vyhrazeny dva piny. Kromě vlastní ALU se v čipu Intel 3002 nacházela i matice pracovních registrů R0 až R9, které mohly sloužit jako první z operandů vybrané aritmetické či bitové operace. Dále čip obsahoval trojici vstupních sběrnic a dvě sběrnice výstupní – vzhledem k tomu, že se vždy pracovalo pouze se dvěma bity, nezabíraly tyto sběrnice velký počet pinů integrovaného obvodu, jak by se z jejich celkového počtu (5 sběrnic) mohlo zdát.
Obrázek 12: Klon obvodu Intel 3002 – MH3002 tuzemského podniku Tesla.
7. Integrovaný obvod Intel 3003 – rychlý generátor přenosů pro ALU
Třetím integrovaným obvodem řady Intel 3000, který byl využíván pro konstrukci plnohodnotného procesoru, byl čip nesoucí označení Intel 3003. Jednalo se o pomocnou logickou síť, která sloužila pro rychlé generování příznaků přetečení (carry) takovým způsobem, aby tento příznak získaly všechny paralelně zapojené aritmeticko-logické jednotky bez toho, aby se příznak musel šířit sériově – což by ostatně bylo při použití pouze dvoubitových ALU po časové stránce velmi zdlouhavé. Integrovaný obvod Intel 3003 byl umístěn v pouzdru s 28 piny a dokázal na základě osmi dvojic příznaků propagate a delegate (zde však označovaných odlišným způsobem) odvodit osm příznaků přetečení carry. Vzhledem k tomu, že každá aritmeticko-logická jednotka Intel 3002 zpracovávala dvoubitové operandy, znamená to, že se s využitím jednoho čipu Intel 3003 dal sestrojit šestnáctibitový procesor (dva bity na jednu ALU krát osm příznaků přetečení).
Obrázek 13: Způsob zapojení většího množství čipů Intel 3003 za účelem zvýšení bitové šířky operandů.
Ovšem v případě, že konstruktér procesoru z procesorových řezů využívajících integrované obvody řady Intel 3000 potřeboval navrhnout takový procesor, který by dokázal zpracovávat operandy o větší šířce než šestnáct bitů, bylo nutné použít i větší množství obvodů Intel 3003. Způsob jejich zapojení je naznačen na předchozím schématu (obrázek číslo 13). Povšimněte si zejména toho, jak je pomocí vstupu ECn+8 určena pozice obvodu Intel 3003 v „baterii“ aritmeticko-logických jednotek. Na tomto schématu je taktéž zobrazeno vzájemné propojení aritmeticko-logických jednotek takovým způsobem, aby bylo možné provádět bitové posuny i rotace. Taktéž je zde naznačeno, jak jsou příznaky přetečení posílány do mikroprogramového řadiče na vstup FI (spodní šipka na levém okraji schématu), i to, jak je naopak výstup FO z mikrořadiče přiváděn přímo na vstup C první aritmeticko-logické jednotky (tato ALU je na schématu umístěna zcela vpravo).
Obrázek 14: Schéma sčítačky se zrychleným přenosem. Povšimněte si, že se zvyšující se bitovou šířkou sčítaných operandů roste i počet vstupů do hradel typu AND.
8. Obsah následující části seriálu
V dnešní části seriálu o architekturách počítačů jsme dokončili dvoudílnou (i když poměrně stručnou) exkurzi do poněkud svébytného světa procesorů sestavených z bitových řezů. I když se jedná o velmi zajímavé integrované obvody, které by i v současnosti našly svoje využití například při výuce mikroprocesorové techniky, jedná se z technologického hlediska pravděpodobně o již dále nerozvíjenou vývojovou větev. Jednou z příčin je i to, že jednotlivé čipy mají poměrně nízký počet hradel (a tím i tranzistorů), což při dnešním stavu technologií znamená, že plocha čipu není dostatečně využita a cena zařízení je zbytečně zvyšována kvůli většímu počtu integrovaných obvodů. Navíc je tvorba mikroprogramů sestavených z mikroinstrukcí složitější, než běžné programování v assembleru, které je již dnes stejně nahrazováno vyššími programovacími jazyky.
Obrázek 15: Klon čipu Intel 3002 pocházející ze SSSR.
V následující části seriálu se proto již vrátíme k popisu plnohodnotných digitálních signálových procesorů. Popíšeme si jak první čipy spadající do této kategorie, které byly navržené a vyráběné firmou NEC, tak i digitální signálové procesory zkonstruované společností Texas Instruments, které v oblasti digitálního zpracování signálů způsobily díky svým schopnostem téměř revoluci.
Obrázek 16: Paměťový čip Intel 1103A.
9. Odkazy na Internetu
- CPU World: Intel 3000 bit-slice processor family
http://www.cpu-world.com/CPUs/3002/ - Intel3000 – Schottky Bipolar LSI Microcomputer Set
http://datasheets.chipdb.org/Intel/3002_Family/3001/Intel3001.pdf - Katalog součástek TESLA: MH3000
http://www.amapro.cz/datove_zdroje/katalogy/katalog_tesla/katalog_tesla127.php - MH3001 (Tesla)
http://katalogy.ic.cz/MH3001.html - MH3002 (Tesla)
http://katalogy.ic.cz/MH3002.html - MH3003 (Tesla)
http://katalogy.ic.cz/MH3003.html - Russian and USSR (CPU, MCU, BSP and Multipliers)
http://www.cpucollection.ca/Russian_and_ussr.htm - CPU-zone: 3001
http://www.cpu-zone.com/3001.htm - CPU-zone: 3002 3002 Support Chips
http://www.cpu-zone.com/3002.htm - CPU-zone: 3003 Look-Ahead Carry Generator
http://www.cpu-zone.com/3003.htm - CPU-Zone: RAM History
http://www.cpu-zone.com/RAM_History.htm - Bit slicing
http://en.wikipedia.org/wiki/Bit_slicing - Bitslice DES
http://www.darkside.com.au/bitslice/ - Great Microprocessors of the Past and Present: Part VII: Advanced Micro Devices Am2901, a few bits at a time …
http://www.cpushack.com/CPU/cpu1.html#Sec1Part7 - 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 - Introduction to DSP – DSP processors:
http://www.bores.com/courses/intro/chips/index.htm - The Scientist and Engineer's Guide to Digital Signal Processing:
http://www.dspguide.com/ - Digital signal processor (Wikipedia EN)
http://en.wikipedia.org/wiki/Digital_signal_processor - Digitální signálový procesor (Wikipedia CZ)
http://cs.wikipedia.org/wiki/Digitální_signálový_procesor - Digital Signal Processing FAQs
http://dspguru.com/dsp/faqs - Reprezentace numerických hodnot ve formátech FX a FP
http://www.root.cz/clanky/fixed-point-arithmetic/ - IEEE 754 a její příbuzenstvo: FP formáty
http://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ - 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/ - Výpočet goniometrických funkcí pomocí algoritmu CORDIC
http://www.root.cz/clanky/vypocet-goniometrickych-funkci-algoritmem-cordic/ - Použití CORDICu pro výpočet dalších funkcí
http://www.root.cz/clanky/metoda-cordic-a-vypocet-funkci-tan-atan-a-length/ - Č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/ - Základní aritmetické operace prováděné v FX formátu
http://www.root.cz/clanky/zakladni-aritmeticke-operace-provadene-ve-formatu-fx/ - Implementace algoritmů pro aritmetické operace
http://www.root.cz/clanky/implementace-aritmetickych-operaci-s-fx-formatem-v-cecku/ - Algoritmus CORDIC s hodnotami uloženými ve formátu FX
http://www.root.cz/clanky/algoritmus-cordic-s-hodnotami-ulozenymi-ve-formatu-fx/ - Algoritmus CORDIC v FX formátu a goniometrické funkce
http://www.root.cz/clanky/algoritmus-cordic-v-fx-formatu-a-goniometricke-funkce/ - FIR Filter FAQ
http://dspguru.com/dsp/faqs/fir - Finite impulse response (Wikipedia)
http://en.wikipedia.org/wiki/Finite_impulse_response - DSPRelated
http://www.dsprelated.com/ - Uzebox project home page
http://code.google.com/p/Uzebox/ - The AVR Eclipse Plugin home page
http://sourceforge.net/projects/avr-eclipse/ - The AVR Eclipse Plugin description
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin - AVRDUDE – AVR Downloader/UploaDEr
http://www.nongnu.org/avrdude/ - AVRDUDE-gui (nadstavba nad AVRDUDE)
http://sourceforge.net/projects/avrdude-gui/ - USBtiny
http://www.xs4all.nl/~dicks/avr/usbtiny/ - USBtinyISP
http://www.ladyada.net/make/usbtinyisp/ - Uzebox pages: Introduction
http://belogic.com/uzebox/howitsmade.htm - Uzebox pages: Hardware Description
http://belogic.com/uzebox/hardware.htm - Uzebox pages: Video primer
http://belogic.com/uzebox/video_primer.htm - Uzebox pages: Schemas
http://belogic.com/uzebox/downloads.htm - AVRFreaks Wiki
http://www.avrfreaks.net/wiki/index.php/Main_Page - Atmel AVR 8-bit and 32-bit
http://www.atmel.com/products/avr/ - tinyAVR
http://www.atmel.com/dyn/products/devices.asp?category_id=163&family_id=607&subfamily_id=791 - AT-Mini
http://www.mikroe.com/eng/products/view/649/at-mini-board/ - Arduino
http://www.arduino.cc/ - AVR Microcontroller
http://www.engineersgarage.com/articles/avr-microcontroller - Atmel AVR – Wikipedia
http://en.wikipedia.org/wiki/Atmel_AVR - AVR instruction set
http://avr.hw.cz/architektura/instukce.html - Porovnání jednotlivých procesorů (mikrořadičů) AVR
http://avr.hw.cz/architektura/porovnani.html - 68HC11 Instruction Set
http://www.cs.uaf.edu/2007/fall/cs441/proj1notes/sawyer/inst.html - 68HC11 OpCode Map
http://home.earthlink.net/~tdickens/68hc11/68hc11_opcode_map.html - A Simple Robot Using the 68HC11 Processor
http://home.earthlink.net/~tdickens/68hc11/trp2/trp2.html - 68HC11 C-Compiler (Imagecraft)
http://microcontrollershop.com/product_info.php?products_id=188 - GNU Development Chain for 68HC11&68HC12
http://www.gnu.org/software/m68hc11/ - GNU C for 68HC11 – documentation
http://www.gnu.org/software/m68hc11/m68hc11_doc.html - The P-Brain tm Microcontroller Kit
http://www.futurebots.com/brain.htm - Wikipedia: Motorola 68HC05
http://en.wikipedia.org/wiki/Motorola_68HC05 - Wikipedia: Freescale 68HC08
http://en.wikipedia.org/wiki/68HC08 - Wikipedia: Freescale 68HC11
http://en.wikipedia.org/wiki/68HC11 - Wikipedia: Freescale 68HC12
http://en.wikipedia.org/wiki/Freescale_68HC12 - HC05 Processor Families
http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01624684498633 - HC08 Processor Families
http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01624684497663 - Digital Core Design 68HC08 – HDL IP Core
http://www.dcd.pl/acore.php?idcore=82 - Freescale 68HC11
http://www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=01624684498635 - Lifecycle of a CPU:
http://www.cpushack.net/life-cycle-of-cpu.html - Most wanted CPU of the world:
http://www.cpu-galaxy.at/CPU/Intel%20CPU/3002–8008/4004%20Grey.jpg - Wikipedia: 6502:
http://en.wikipedia.org/wiki/6502 - The Western Design Center, Inc.:
http://www.westerndesigncenter.com/ - Apple II History Home:
http://apple2history.org/ - www.6502.org:
http://www.6502.org/ - Stránky firmy Microchip Technology
http://www.microchip.com/ - Výběr z různých modelů (osmibitových) mikrořadičů PIC
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2661 - Řada (rodina) osmibitových mikrořadičů PIC 10
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1009&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 12
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1001&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 14
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1008&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 16
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 - Další výběr z různých modelů mikrořadičů PIC
http://www.microchip.com/maps/microcontroller.aspx - PIC microcontroller (Wikipedia EN)
http://en.wikipedia.org/wiki/PIC_microcontroller - Mikrokontrolér PIC (Wikipedia CZ)
http://cs.wikipedia.org/wiki/Mikrokontrolér_PIC - FLASHFORTH for the PIC18F and the dsPIC30F
http://flashforth.sourceforge.net/ - FlashForth
http://www.sourceforge.net/projects/flashforth - Free Pic software tools
http://softwarepic.50webs.com/freesoft.html - What is Amicus?
http://www.picbasic.org/proton_lite.php - Amicus FAQ
http://www.myamicus.co.uk/faq.php?s=2e8d12e7f4c23e775776f4916876354b& - Microcontrollers development tools
http://www.gnupic.dds.nl/ - gpsim (Wikipedia EN)
http://en.wikipedia.org/wiki/Gpsim - gpsim home page
http://gpsim.sourceforge.net/gpsim.html - The FreeRTOS Project
http://www.freertos.org/ - FreeRTOS (Wikipedia)
http://en.wikipedia.org/wiki/FreeRTOS - Serial EEPROM (93C46 / 93CS46) Routines
http://www.pjrc.com/tech/8051/serial-eeprom.html - Great Microprocessors of the Past and Present (V 13.4.0)
http://jbayko.sasktelwebsite.net/cpu.html - SPI interface tutorial
http://www.best-microcontroller-projects.com/spi-interface.html - Serial Peripheral Interface Bus
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus - EUSB to SPI bus Kit
http://www.eidusa.com/Electronics_Kits_EUSB_To_SPI_BUS.htm - SPI Block Guide V03.06, Freescale Semiconductor
http://www.freescale.com/files/microcontrollers/doc/ref_manual/S12SPIV3.pdf - What is SPI?
http://www.fpga4fun.com/SPI1.html - SPI – A simple implementation
http://www.fpga4fun.com/SPI2.html - Bit-banging
http://en.wikipedia.org/wiki/Bit-banging - Joint Test Action Group
http://en.wikipedia.org/wiki/JTAG - I2C
http://en.wikipedia.org/wiki/I2C - Seriál o programovacím jazyce Forth:
seriál o programovacím jazyce Forth - Display Data Channel
http://en.wikipedia.org/wiki/Display_Data_Channel - I2 Background
http://www.microport.tw/blognew.php?blog_no=7#theory - PIC16F87X, 28/40-pin 8-Bit CMOS FLASH Microcontrollers
Microchip Technology Inc.
http://www.microchip.com