Domácí procesor. Centrální procesor - doma od nuly. Exclusive Or Element - XOR
Co si pamatuji, vždy jsem snil o výrobě procesoru. Konečně se mi to včera povedlo. Bůh ví co: 8 bit, RISC, proud provozní frekvence- 4 kHz, ale funguje to. Zatím v programu pro modelování logických obvodů, ale všichni víme: "dnes - v modelu, zítra - ve skutečnosti!"
Pod řezem je několik animací, krátký úvod binární logika pro nejmenší krátký příběh o hlavních procesorových logických čipech a vlastně i obvodu.
Binární logika
Binární číselný systém (pro ty, kteří neznají) je číselný systém, ve kterém nejsou žádné číslice větší než jedna. Tato definice mnohé mate, dokud si to nepamatují desítková soustava Neexistují žádná čísla větší než devět.
Binární systém se používá v počítačích, protože čísla v něm lze snadno zakódovat napětím: existuje napětí, což znamená jedno; žádné napětí znamená nulu. Navíc „nula“ a „jedna“ lze snadno chápat jako „nepravda“ a „pravda“. Navíc, většina z zařízení fungující v binární systém notace, obvykle odkazuje na čísla jako na pole „pravd“ a „nepravd“, to znamená, že s čísly pracuje jako logické hodnoty. Pro ty nejmenší a ty, kteří to neznají, řeknu a ukážu, jak fungují nejjednodušší prvky binární logiky.
Vyrovnávací prvek
Představte si, že sedíte ve svém pokoji a váš přítel je v kuchyni. Křičíš na něj: "Příteli, řekni mi, svítí na chodbě?" Přítel odpoví: "Ano, hoří!" nebo "Ne, nesvítí." Váš přítel je vyrovnávací paměť mezi zdrojem signálu (žárovka na chodbě) a přijímačem (vy). Navíc váš přítel není jen obyčejný buffer, ale řízený buffer. Byl by obyčejným nárazníkem, kdyby neustále křičel: „Žárovka svítí“ nebo „Žárovka nesvítí“.
Prvek „Ne“ – NE
Nyní si představte, že váš přítel je vtipálek, který neustále lže. A pokud světlo na chodbě svítí, pak vám řekne: "Ne, na chodbě je velmi, velmi tma," a pokud nesvítí, pak "Ano, na chodbě svítí." Pokud skutečně máte takového přítele, pak je ztělesněním prvku „Ne“.
Prvek „nebo“ - NEBO
Bohužel jedna žárovka a jeden přítel k vysvětlení podstaty prvku „Nebo“ nestačí. Potřebujete dvě žárovky. V chodbě tedy máte dvě žárovky – například stojací lampu a lustr. Křičíte: „Příteli, řekni mi, svítí na chodbě alespoň jedna žárovka?“ a váš přítel odpoví „Ano“ nebo „Ne“. Je zřejmé, že pro odpověď „Ne“ musí být všechna světla zhasnutá.
Prvek „AND“ - AND
Stejný byt, ty, přítel v kuchyni, stojací lampa a lustr na chodbě. Na vaši otázku "Svítí na chodbě obě světla?" dostanete odpověď „Ano“ nebo „Ne“. Gratulujeme, váš přítel je nyní prvkem „já“.
Exclusive Or Element - XOR
Zopakujme experiment znovu pro prvek „nebo“, ale přeformulujte naši otázku na přítele: „Příteli, řekni mi, je na chodbě jen jedna žárovka?“ Upřímný přítel na takovou otázku odpoví „Ano“ pouze v případě, že na chodbě skutečně svítí pouze jedna žárovka.
Zmije
Čtvrtletní zmije
Prvek „Exclusive Or“ se nazývá čtvrtinová sčítačka. Proč? Pojďme na to přijít.
Vytvořme sčítací tabulku pro dvě čísla v binární číselné soustavě:
0+0= 0
0+1= 1
1+0= 1
1+1= 10
Nyní si zapišme pravdivostní tabulku prvku „Exclusive Or“. Za tímto účelem označíme svítící žárovku 1, zhasnutou žárovku 0 a odpovědi přítele „Ano“/„Ne“ 1 a 0.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Velmi podobné, že? Tabulka sčítání a pravdivostní tabulka „Exclusive Or“ se zcela shodují, s výjimkou jednoho jediného případu. A tento případ se nazývá "Přetečení".
Poloviční sčítačka
Když dojde k přetečení, výsledek sčítání již není umístěn ve stejném počtu číslic, do kterého byly umístěny výrazy. Termíny jsou dvě jednociferná čísla (jedno platné číslo, rozumíte?) a součet je již dvouciferné číslo (dvě významné postavy). Již není možné zprostředkovat dvě čísla jednou žárovkou („Zapnuto“/„Vypnuto“). Potřebujete dvě žárovky. Potřebujeme to – uděláme to!
Kromě XOR potřebujeme prvek AND pro sčítačku.
0 XOR 0 = 0 0 A 0 = 0
0 XOR 1 = 1 0 A 1 = 0
1 XOR 0 = 1 1 A 0 = 0
1 XOR 1 = 0 1 A 1 = 1
Tadam!
0+0= 00
0+1= 01
1+0= 01
1+1= 10
Naše wunderwaffle poloviční sčítačka funguje. Dá se považovat za nejjednodušší specializovaný procesor, který sečte dvě čísla. Polosčítačka se nazývá polosčítačka, protože nemůže vzít v úvahu přenos (výsledek jiné sčítačky), to znamená, že není možné sečíst tři jednoznačné binární čísla. V tomto ohledu je nemožné vytvořit jednu vícebitovou polosčítačku z několika jednobitových polosčítaček.
Nebudu se rozepisovat o tom, jak fungují plné a vícebitové sčítačky, jen doufám, že získáte základní představu.
Složitější prvky
Multiplexer
Doporučuji znovu použít svou představivost. Tak si to představ. Bydlíte v soukromém jednobytovém domě, u dveří tohoto domu je váš Poštovní schránka. Když jdete na procházku, všimnete si podivného pošťáka stojícího poblíž této poštovní schránky. A dělá to: vytáhne z tašky hromadu dopisů, přečte číslo na schránce a podle čísla na schránce do ní hodí ten či onen dopis. Pošťák pracuje jako multiplexer. Určuje určitým způsobem (číslo na obálce), který signál (dopis) poslat po signální lince (schránce).
Multiplexery se obvykle skládají pouze z kombinací prvků „A“, „Nebo“ a „Ne“. Jednobitový multiplexer má jeden vstup nazývaný „výběr adresy“, dva vstupy s běžné jméno « vstupní signál“ a jeden výstup, který se nazývá: „výstupní signál“.
Když se na "výběr adresy" použije 0, "výstupní signál" se stane stejným jako první "vstupní signál". V souladu s tím, když je na „výběr“ aplikována 1, „výstupní signál“ se rovná druhému „vstupnímu signálu“.
Demultiplexor
Jenže tahle věc funguje přesně naopak. Pro „select address“ uvedeme adresu, pro „data input“ uvedeme data, na výstupu s číslem „address“ máme data ze vstupu.
Čelit
Abyste pochopili, jak měřič funguje, budete opět potřebovat svého přítele. Zavolejte mu z kuchyně (doufám, že se tam moc nenudil a hlavně nesnědl všechno vaše jídlo) a požádejte ho, aby udělal toto: ať si zapamatuje číslo 0. Pokaždé, když se ho dotknete , měl by přidat jedničku k číslu, které si pamatujete, říct výsledek a zapamatovat si ho. Když je výsledek (řekněme) 3, měl by zakřičet "Abrakadabra!" a při příštím dotyku odpovězte, že si nyní pamatuje číslo 0. Trochu obtížné? Vidět:
Dotkneš se přítele. Přítel říká "Jedna".
Dotkneš se přítele. Přítel říká "Dva."
Dotkneš se přítele. Přítel říká "Tři". Přítel křičí " Habrahabr!" Kritický útok! Jste dočasně paralyzováni a nemůžete se hýbat.
Dotkneš se přítele. Přítel říká "Nula".
No a tak dále. Velmi jednoduché, že?
Samozřejmě jste si uvědomili, že váš přítel je nyní počítadlo. Dotyk kamaráda lze považovat za „signál načasování“ nebo jednoduše řečeno za signál k pokračování v počítání. Výkřik „Abracadabra“ znamená, že uložená hodnota v počítadle je maximální a že další hodinový signál vynuluje počítadlo. Mezi binárním počítadlem a vaším přítelem jsou dva rozdíly. Za prvé: skutečný binární čítač vytváří uloženou hodnotu binární. Za druhé: vždy dělá jen to, co mu přikážete, a nikdy se nesníží k hloupým vtipům, které by mohly narušit chod celého procesorového systému.
Paměť
Spoušť
Pokračujme v zesměšňování vašeho nešťastného (možná i imaginárního) kamaráda. Ať si teď zapamatuje číslo nula. Když se dotknete jeho levé ruky, mělo by si zapamatovat číslo nula, a když se dotknete pravé ruky, mělo by si vzpomenout na číslo jedna. Na otázku "Jaké číslo si pamatuješ?" přítel musí vždy odpovědět číslem, které si zapamatoval - nula nebo jedna.
Nejjednodušší paměťovou buňkou je RS klopný obvod („spouštěč“ znamená „spínač“). RS klopný obvod může uložit jeden bit dat („nula“/„jedna“) a má dva vstupy. Vstup Set (stejně jako levá ruka vašeho přítele) zapíše „jedna“ do spouštěče a vstup Reset (respektive pravá ruka) zapíše „nulu“.
Registrovat
Registr je trochu složitější. Váš přítel se promění v registr, když ho požádáte, aby si něco zapamatoval, a pak řeknete: "Hej, připomeňte mi, co jsem vám řekl, abyste si zapamatovali?"
Registr může obvykle uložit o něco více než jeden bit. Nezbytně má datový vstup, datový výstup a vstup umožňující zápis. Z datového výstupu můžete kdykoli vyčíst, co je v tomto registru zapsáno. Můžete zadat datový vstup, který chcete zapsat do tohoto registru. Data můžete odesílat, dokud se nebudete nudit. Do registru se stejně nic nezapíše, dokud se na vstup oprávnění k zápisu nepoužije jednička, tedy „logická jednička“.
Posunový registr
Stáli jste někdy ve frontě? Pravděpodobně byli. Dokážete si tedy představit, jaké to je být daty v posuvném registru. Lidé přicházejí a stojí na konci řady. První člověk v řadě vstupuje do kanceláře velkého panáka. Ten, kdo byl druhý v řadě, se stává prvním, a ten, kdo byl třetí, je nyní druhý a tak dále. Fronta je takový složitý posuvný registr, ze kterého mohou „data“ (no, tedy lidé) pracovně utéct, když předtím varovali sousedy ve frontě. Ve skutečném posuvném registru samozřejmě „data“ nemohou uniknout z fronty.
Posuvný registr má tedy datový vstup (přes který data vstupují do „fronty“) a datový výstup (ze kterého lze číst úplně první záznam ve „frontě“). Posuvný registr má také vstup pro „posuvný registr“. Jakmile na tento vstup dorazí „logická jednička“, celá fronta se posune.
Mezi frontou a posuvným registrem je jeden důležitý rozdíl. Pokud je posuvný registr navržen pro čtyři záznamy (například čtyři byty), pak první záznam ve frontě dosáhne výstupu z registru až po čtyřech signálech na vstup „posuvný registr“.
RAM
Pokud je mnoho, mnoho klopných obvodů zkombinováno do registrů a mnoho, mnoho registrů je kombinováno v jednom mikroobvodu, dostanete mikroobvod paměť s náhodným přístupem. Paměťový čip má obvykle adresový vstup, obousměrný datový vstup (to znamená, že na tento vstup lze zapisovat a číst z něj) a vstup umožňující zápis. Na vstup adresy dodáme nějaké číslo a toto číslo vybere konkrétní paměťovou buňku. Poté na vstupu/výstupu dat můžeme přečíst, co je zapsáno právě do této buňky.
Nyní současně aplikujeme na vstup/výstup dat to, co chceme do této buňky zapsat, a na vstup oprávnění k zápisu – „logický“. Výsledek je trochu předvídatelný, ne?
procesor
BitBitJump
Procesory se někdy dělí na CISC – ty, které dokážou spouštět mnoho různých příkazů, a RISC – ty, které dokážou provádět málo příkazů, ale vykonávají je dobře. Jednoho krásného večera jsem si pomyslel: bylo by skvělé, kdybych to dokázal plný procesor, který může provést pouze jeden příkaz. Brzy jsem se dozvěděl, že existuje celá třída jednoinstrukčních procesorů - OISC, nejčastěji používají Subleq (odečíst, a pokud je menší nebo roven nule, pak jít) nebo Subeq (odečíst, a pokud se rovná nule, pak jít) pokyn. Studium různé možnosti OISC procesory, našel jsem na internetu stránky Olega Mazonky, který vyvinul nejjednodušší jednopříkazový jazyk BitBitJump. Jediný příkaz v tomto jazyce se nazývá BitBitJump (zkopírujte bit a přejděte na adresu). Tento zcela jistě esoterický jazyk je Turing kompletní – to znamená, že v něm lze implementovat jakýkoli počítačový algoritmus.
Detailní popis BitBitJump a assembler pro tento jazyk lze nalézt na webu vývojáře. K popisu algoritmu činnosti procesoru stačí znát následující:
1. Po zapnutí procesoru se do registrů PC, A a B zapíše 0
2. Načtěte paměťovou buňku s adresou PC a do registru A uložte načtené
3. Zvyšte PC
4. Přečteme paměťovou buňku s adresou PC a přečtené uložíme do registru B
5. Zvyšte PC
6. Do buňky s adresou zapsanou v registru B zapíšeme obsah bitu s adresou A.
7. Přečteme paměťovou buňku s adresou PC a přečtené uložíme do registru B
8. Zapište obsah registru B do registru PC
9. Přejděme k bodu 2 našeho plánu
10. ZISK!!!
Algoritmus je bohužel nekonečný, a proto nebude dosaženo ZISKU.
Vlastně schéma
Schéma bylo vytvořeno spontánně, takže vládne strach, hrůza a chaos. Nicméně to funguje a funguje to dobře. Chcete-li zapnout procesor, musíte:
1. Zadejte program do paměti RAM
2. Stiskněte spínač
3. Nastavte čítač do polohy 4 (to lze provést hardwarově, ale obvod by se stal ještě těžkopádnějším)
4. Povolte generátor hodin
Jak vidíte, používá se jeden registr, jeden posuvný registr, jeden čip RAM, dva binární čítače, jeden demultiplexor (reprezentovaný komparátory), dva multiplexory a nějaká čistá logika.
Neznámý inženýr Steve Chamberlin se rozhodl změnit obecně uznávaný názor, že není možné vytvořit procesor vlastníma rukama. Přesněji řečeno, procesor dostatečně složitého PC, který by mohl duplikovat funkce 8bitových výpočetních zařízení, která se rozšířila na počátku 80. let. Nejprve to byl malý projekt, který se postupem času rozrostl v něco většího. Nyní je BMOW 1 plnohodnotným PC založeným na domácím procesoru, který spouští programy, má klávesnici, VGA video a audio systém. Softwarové prostředí pro BMOW 1 - základní.
Procesor, který vytvořil Steve Chamberlin, se skládá z desítek jednoduchých logických čipů, takže ne všechno v tomto PC je drát a PCB. To vše však bylo sestaveno ručně, což Stevovi trvalo několik let. Jak již bylo zmíněno výše, nejprve chtěl pouze vytvořit procesor, který si sám sestavil, ale nakonec se rozhodl vytvořit funkční PC, které by dokázalo plnit určité úkoly.
Steve si stanovil několik cílů, z nichž všechny byly splněny:
Vytvořte procesor z jednoduché prvky, byly použity čipy řady 7400, bez součástek řady 6502, Z-80 atd.;
Snižte hardwarovou složitost na minimum;
Počítač musel spouštět „skutečné“ programy, ne být čistě „hračkou“;
Procesor se musí stát prvkem plnohodnotného PC systému;
Systém musí být dostatečně rychlý, aby spouštěl a spouštěl programy interaktivně.
Samotný nápad přišel Steve v listopadu 2007 a inženýr začal s realizací v únoru 2008. V dubnu 2008 byl poprvé spuštěn systém BMOW 1, což našeho tvůrce neuvěřitelně potěšilo. Postupně přibylo VGA video, audio systém, BASIC a bootloader, který umožňoval interakci s připojeným PC. Po nějaké době se BMOW 1 stal dostatečně sofistikovaným, aby podporoval komplexní programy. Hlavní práce na vytvoření BMOW 1 byly dokončeny v únoru 2009, PC bylo dokončeno až nyní.
Zde jsou některé podrobnosti o konfiguraci zařízení:
Aktuální frekvence procesoru je asi 2 MHz. Procesor lze "přetaktovat" na 3 MHz (teoreticky, zatím nezkoušeno);
512 KB RAM, 512 KB ROM;
Příkon 10 Watt, 2A při 5V;
„Výstupní“ obrázek má rozlišení 512*480, dvě barvy nebo 128*240 - 256 barev;
Audio - tříkanálový zvukový generátor;
Běžná klávesnice s konektorem PS\2;
Přídavný displej pro výstup textu, 24*2 znaků;
1250 drátových vodičů, tzn. asi 2500 spojení;
Další podrobnosti - na
Podobný problém mě zajímá poslední 3 roky - ale nevzdal jsem se původní myšlenky stavět na tranzistorech a nyní vám mohu sdělit své myšlenky a ukázat aktuální vývoj a také - chci se zeptat váš názor na to, co by podle vašeho názoru měl být _sériový_ tranzistorový dekorační počítač. Ale hned byste měli poznamenat, že je před námi ještě pár let práce :-)
Hlavní otázkou je, proč je to všechno potřeba, když existují FPGA a všechny druhy Raspberry Pis?
Odpověď je jednoduchá:
1) Mám o to zájem volný čas A
2) Dekorativní počítač (dekorativní je věcí postoje k počítači, ne jeho vzhledu) - je jako dekorativní mazlíčci: mops neukousne lupiči nohu a perská kočka neporazí v boji metrokrysu . Ale je zajímavé si s nimi hrát a ukazovat je hostům – i když v oblasti výpočetní techniky, bezpečnosti a lovu jsou mnohem horší než jejich „bojové“ protějšky.
Substituce problému a architektura
Jaké budou naše požadavky na dekorativní počítač?Ale je možné vyjít s pouhými 4 tranzistory? Udělal jsem si brainstorming a přišel jsem na toto:
Otevírací doba:
K dispozici je obvod pro simulaci v LTspice IV.
Princip fungování je následující: protože na pořadí pojmů nezáleží, jednoduše je analogově smícháme a přesným výběrem prahového napětí duálního invertoru okamžitě získáme převod. Potom odečtením přenosu na tranzistoru Q3 od analogového součtu získáme součet. To vše samozřejmě vyžaduje přesný výběr úrovní spouštění a simulaci s ohledem na teplotu. Schottkyho diody - zabraňují vstupu tranzistorů do hlubokého nasycení, což prudce snižuje provozní rychlost.
Použití tranzistorů s efektem pole je možné a poskytuje lepší teplotní stabilitu, pokud mají dostatečně nízké prahové napětí.
Posunový registr- nejdůležitější část tohoto tranzistorového počítače. Klasická implementace na synchronních D-klopných obvodech vyžaduje monstrózní počet tranzistorů na bit.
Podařilo se mi vejít do 2 tranzistorů na bit s následujícími vlastnostmi:
1) Registry jsou založeny na kondenzátorech a pokud je nepřemístíte, data se časem ztratí. Nos tranzistor s efektem pole Doba skladování je poměrně dlouhá.
2) Přenos dat do dalšího stupně - s bipolárním tranzistorem. Polovina času to funguje obráceně, nestandardní režim- průrazné napětí je mnohem nižší (ale 3,3V by mělo vydržet) a zesílení je mnohem nižší než přímé připojení (ale doufám, že to bude stačit).
3) Každý následující stupeň invertuje signál, to není problém, když je to potřeba sekvenční přístup(například v případě registrů procesoru). Pokud potřebujete neinvertovaný paralelní výstup, budete muset přidat 8 invertorů (to znamená, že 16bitový posuvný registr bude vyžadovat 40 tranzistorů, nikoli 32).
4) Zůstává problém se saturací bipolárního tranzistoru.
Plán:
S těmito kompaktními implementacemi digitální obvody- Myslím, že bude docela možné udržet do 1000 tranzistorů.
To je prozatím vše – čeká mě monstrózní množství práce
A teď - pár otázek pro čtenáře: Které možnosti se vám zdají přijatelné?
Málokdo si pamatuje, jak se v roce 1991 objevil 16bit na pultech obchodů. Osobní počítač"Vyhledávání". Tento monoblok pak mnohé uchvátil. Samozřejmě, z hlediska výkonu byl horší než IBM PC/XT, ale byl náš. Rozšiřující bloky umožnily mírně zvýšit jeho funkčnost. Díky tomuto PC začalo mnoho obyvatel naší země ovládat programování a obecně měli přístup High-tech. Dnes budeme mluvit o něčem podobném, ale sestaveném jednou osobou vlastníma rukama.Zatímco továrny chrlí stovky tisíc moderních procesorů denně, kalifornský nadšenec Steve Chamberlin se rozhodl postavit procesor vlastníma rukama. Výsledkem je výroba 8bitového procesoru, podobný tomu který stál v Počítače Apple II, Commodore 64 a starší modely herní konzole Atari, trvalo to 18 člověkoměsíců, 1000 amerických dolarů a 1"253 spojovacích drátů.
Při výrobě centrální procesorové jednotky pro celý počítač zvolil Chamberlain drátová připojení, spíše než koleje, protože dráty lze snadno vyměnit. Kvůli změti drátů dostal počítač název BMOW (Big Mess of Wires). Procesor obsahuje tři 8bitové datové registry, 24bitové adresování paměti a 12 režimů adresování. Instrukční sadou a designem je procesor BMOW nejblíže procesoru MOS Technology 6502 - takové procesory se stále používají v některých vestavěných systémech. Legendární procesor 6502 je navíc instalován v mozku robota Bender ze série Futurama a analogy tohoto procesoru byly instalovány v bulharských počítačích Pravets a sovětských počítačích Agat.
Komponenty procesoru BMOW jsou osazeny na 12x7palcovém panelu Augat obsahujícím 2832 pozlacených kontaktů – autor jej zakoupil v internetové aukci za 50 dolarů. V důsledku toho jsem musel použít 1"253 dráty k vytvoření 2"506 jednotlivá spojení– rychlost pájení byla přibližně 25 drátů za hodinu. Sám autor poznamenává, že i přes zdánlivou složitost pájení vodičů nezabralo tolik času. Většinu času strávil design, ladění a přemýšlení.
Na základě svého procesoru BMOW vytvořil Chamberlain téměř plnohodnotný počítač s klávesnicovým vstupem, jednořádkový LCD panel, USB zásuvka, tříhlas ozvučení a video výstup VGA. Pro zobrazení informací na barevném monitoru byl použit mikroobvod UMC 70C171, který se autorovi podařilo najít v šuplíku na nepotřebné díly ve skladu obchodu s elektronikou. Celý počítač je umístěn v pouzdře z počítače X Terminal, oblíbeného na počátku 90. let minulého století.
Chamberlain poznamenal, že je mnohem obtížnější pracovat s moderními díly, protože místo obvyklých nohou, které lze připájet do otvorů na tištěný spoj, pro instalaci se používají zcela jiné technologie, které jsou pro amatéry nepřístupné, včetně technologie pájení vlnou.
Specifikace BMOW:
Pracovní frekvence 2 MHz, i když testováno na 3 MHz;
kapacita RAM 512 KB;
objem ROM 512 KB;
Příkon 10 W;
Poskytuje rozlišení 512 x 480 nebo 128 x 240 v závislosti na barevné hloubce;
Programovatelný zvukový generátor;
Klávesnice má standardní PS/2 konektor.Steve Chamberlain představil svůj počítač na čtvrtém ročníku Maker Faire v San Mateo v Kalifornii v USA. Více o postupu prací na počítači BMOW si můžete přečíst na vlastním webu Chamberlain.
Pokud v v posledních letech 40 k provedení úkolu potřebujete mikroprocesor – jedinou zvažovanou možností je koupit si již hotový. No, nebo ve velmi vzácných případech „srolujte“ standardní konfigurovatelné jádro FPGA (například Nios II) s několika dalšími instrukcemi. Mnoho lidí si dnes už ani neumí představit, že se procesory dají vyrábět i jinak :-) Je to stejné, jako když si myslíte, že se produkty berou z obchodu a vypěstovat si je sami je absolutně nemožné.
Na jednu stranu, proč si pamatovat základy technologie, když se vše vyrábí průmyslově? Podle mého názoru - mít jistotu, že se technologie neztratí, že i kdyby došlo k jaderné válce, počítače se dají sestavit z odpadových materiálů (stejně jako s produkty na začátku 90. let - mnozí se museli vrátit k technologii před 100 lety kvůli kolapsu výrobní a dodavatelské infrastruktury).
Ukazuje se, že existují lidé, kteří jako hobby stále vyrábějí centrální procesory z diskrétních součástek (tranzistory, relé) a mikroobvodů s nízkou integrací (čítače, registry). Jediné použité mikroobvody jsou paměti (RAM a přeprogramovatelné).
V tomto článku chci krátce pohovořit o architektuře ao několika skutečně fungujících procesorech vyrobených doma.
Obecné architektonické poznámky:
Většina domácích procesorů funguje (téměř jako většina moderní procesory) – na mikrokódu načteném z paměti flash/SRAM – zde se obvykle nachází nejpomalejší místo: za posledních 20 let došlo k pokroku v latenci blesk funguje paměť zůstala téměř na svém místě a pro široce dostupné mikroobvody je to 70ns, proto není možné přetaktovat rychleji než 14 MHz na mikrokódovém procesoru ve flashi. Procesory mají většinou datovou sběrnici 8 nebo 16 bitů, adresovou sběrnici 16-20-24 bitů (nikdo se nechce omezovat na 65Kb, zvlášť při současných cenách pamětí). ALU (výpočetní jádro) je buď jednobitové (tj. pro 16bitový provoz je potřeba 16 hodinových cyklů), nebo se použije hotové ALU 2-4 bitů (z toho 8-16- bit ALU je sestaven). Mikrokódové procesory obvykle ukládají kód i data do stejné paměti (architektura Von Neumann). Procesory typu RISC bez mikrokódu obvykle pracují na architektuře Harvard (data a kód jsou oddělené, často program nemůže nic zapsat do paměti kódu). Úplně ve všech domácí procesory Délka všech pokynů je stejná - variabilní délka instrukce vytváří potíže i při vývoji „průmyslových“ procesorů. Jako paměť se obvykle používá SRAM - dříve se používala pouze pro cache kvůli skvělé ceny. Od konvenční paměti SDR/DDR se liší extrémně jednoduchým a nenáročným rozhraním, nemusíte sledovat „aktualizaci“ paměti (v konvenční paměti SDR/DDR data přežijí pouze 32-64 milisekund).Malé triky
Navzdory skutečnosti, že se obvykle používají jednoduché čipy, existují některé triky, které dříve (před 30 lety) nebyly k dispozici: hotové ALU (ne úplně jednoduchý čip), paměť SRAM (například 1 MB paměti SRAM je asi 48 milionů tranzistorů) a použití paměti EEPROM jako ALU (například na 65KB 8bitovém paměťovém čipu můžete vytvořit sčítačku nebo násobič a na 1MB čipu můžete „provádět“ 16 různých 8bitových operací - FPGA používá stejný princip k libovolnému sestavení logické obvody). Navíc teď toho můžete hodně využít více paměti pro uložení mikrokódu a programový kód na mysli.A nyní některé z nejvýznamnějších implementací:
BMOW – Velká změť drátů
http://www.stevechamberlin.com/cpu/bmow1Sestaven z jednoduchých mikroobvodů. Frekvence hodin– 2 MHz.
MyCPU
![](https://i0.wp.com/3.14.by/files/mycpu.jpg)
http://www.mycpu.eu/
Sestaven z jednoduchých mikroobvodů. Frekvence hodin – 8 MHz. Vyvinuté periferie – až po síťový přístup. Mimochodem, samotný web http://www.mycpu.eu/ je obsluhován přesně tímto domácí server. Design je přestavěn, bylo shromážděno mnoho kopií.
Relaový počítač Harryho Portera
![](https://i0.wp.com/3.14.by/files/relay.jpg)
http://web.cecs.pdx.edu/~harry/Relay/index.html
V sestavě s 415 relé to vypadá asi na 7Hz :-)
Magie-1
![](https://i0.wp.com/3.14.by/files/magic1.jpg)
http://www.homebrewcpu.com/
Sestaveno na ~200 jednoduchých mikroobvodech, pracovní frekvence až 4 MHz. Minux port, samotný web běží na tomto domácím serveru.
Mark-1 Čtvrtý počítač
![](https://i1.wp.com/3.14.by/files/mark1.jpg)
http://www.holmea.demon.co.uk/Mk1/Architecture.htm
Sestaveno na jednoduchých mikroobvodech, pracovní frekvence 1 MHz. Jak je snadno pochopitelné z názvu, je optimalizován pro programy v jazyce Forth. Mikrokód je uložen v diodové matici namísto „nesportovních“ flash paměťových čipů.
MT15
![](https://i1.wp.com/3.14.by/files/mt15.jpg)
http://www.6502.org/users/dieter/
To nejchutnější na konec: 16 bitový procesor, shromážděné na nejjednodušší nízké frekvenci bipolární tranzistory(cca 3000 kusů). Hodinová frekvence je 500KHz, jedinými mikroobvody jsou paměť a generování hodinového signálu. Je docela možné zavést výrobu takových tranzistorů v kuchyni do jednoho roku po jaderné válce