Articles

HTG vysvětluje: jak CPU skutečně funguje?

  • Anthony Heddings

    @anthonyheddings

  • Aktualizované 28. února 2020, 4:58 EDT
PROCESOR
Rost/

Většina věcí v počítači jsou poměrně jednoduché pochopit: RAM, úložiště, periferní zařízení a software všechny práce dohromady, aby funkce počítače. Ale srdce vašeho systému, CPU, vypadá jako kouzlo i pro mnoho technologických lidí. Uděláme, co bude v našich silách, abychom to rozebrali.

většina výzkumu tohoto článku pochází z „Ale jak to ví?“od J. Clarka Scotta. Je to fantastické čtení, jde do mnohem větší hloubky, než bude tento článek, a stojí za pár babek na Amazonu.

jedna poznámka, než začneme: moderní procesory jsou řádově složitější než to, co zde nastiňujeme. Je téměř nemožné, aby jeden člověk pochopil každou nuanci čipu s více než miliardou tranzistorů. Základní principy, jak to všechno do sebe zapadá, však zůstávají stejné a pochopení základů vám poskytne lepší pochopení moderních systémů.

začínající malé

počítače pracují v binárním formátu. Chápou pouze dva stavy: zapnutí a vypnutí. K provádění výpočtů v binárním formátu používají to, co se nazývá tranzistor. Tranzistor umožňuje, aby zdrojový proud protékal do odtoku, pouze pokud je proud přes bránu. V podstatě to tvoří binární přepínač, který odřízne vodič v závislosti na druhém vstupním signálu.

SOUVISEJÍCÍ: Co je binární a proč ho počítače používají?

Reklama

Moderní počítače používají miliardy tranzistorů provádět výpočty, ale na nejnižší úrovně, budete potřebovat pouze hrstka tvoří základní komponenty, známý jako gates.

logické brány

správně Naskládejte několik tranzistorů a máte to, co je známé jako logická brána. Logické brány vezmou dva binární vstupy, provedou na nich operaci a vrátí výstup. Brána OR například vrací true, pokud je některý ze vstupů true. AND gate kontroluje, zda jsou oba vstupy pravdivé, XOR kontroluje, zda je pravdivý pouze jeden ze vstupů, a n-varianty (NOR, NAND a XNOR) jsou obrácené verze jejich základních bran.

dělat matematiku s branami

s pouhými dvěma branami můžete provádět základní binární sčítání. Tento diagram výše ukazuje polovinu zmije, vytvořené pomocí Logicly, bezplatné online hřiště pro logické brány. Brána XOR se zde zapne, pokud je zapnutý pouze jeden ze vstupů, ale ne oba. Brána AND se zapne, pokud jsou oba vstupy zapnuté, ale zůstaňte vypnuto, pokud není vstup. Takže pokud oba jsou na, XOR zůstane vypnuto, A brána se zapne, přijde na správnou odpověď ze dvou:

Reklama

To nám dává jednoduché nastavení s tři různé výstupy: nula, jedna a dva. Jeden bit však nemůže uložit nic vyššího než 1 a tento stroj není příliš užitečný, protože řeší pouze jeden z nejjednodušších možných matematických problémů. Ale to je jen polovina zmije, a pokud připojíte dva z nich s jiným vstupem, dostanete plnou sčítačku:

plná sčítačka má tři vstupy—dva čísla, které chcete přidat, a „přenáší.“Přenášení se používá, když konečné číslo překročí to, co lze uložit v jednom bitu. Plné sčítače budou propojeny v řetězci a přenášení se přenáší z jedné zmije na druhou. Carry je přidán výsledek XOR brány v první polovině zmije, a tam je navíc, NEBO bránu, aby zvládnout i případy, kdy to tak, že by třeba na.

když jsou oba vstupy zapnuté, přenášení se zapne a odešle jej na další plnou zmije v řetězci:

a to je asi tak složité, jak sčítání dostane. Přesun na více bitů v podstatě znamená více plných sčítačů v delším řetězci.

Reklama

Většina ostatních matematické operace může být provedeno s sčítání; násobení je jen opakované sčítání, odčítání může být provedeno s nějakou parádní inverze, a rozdělení je jen opakované odčítání. A zatímco všechny moderní počítače mají hardwarová řešení pro urychlení složitějších operací, můžete to technicky udělat s plnou sčítačkou.

sběrnice a paměť

právě teď náš počítač není nic jiného než špatná kalkulačka. Je to proto, že si nic nepamatuje a nedělá nic se svými výstupy. Výše je zobrazena paměťová buňka,která to všechno dokáže. Pod kapotou používá mnoho bran NAND a v reálném životě se může zcela lišit v závislosti na technice skladování, ale jeho funkce je stejná. Dáte mu nějaké vstupy, zapnete bit „write“ a uloží vstupy uvnitř buňky. Není to jen paměťová buňka, protože potřebujeme také způsob, jak z ní číst informace. To se provádí pomocí enabler, což je sbírka a brány pro každý bit v paměti, vše vázáno na jiný vstup,“ číst “ bit. Bity pro zápis a čtení se často nazývají “ set “ a „enable“.

celý tento balíček je zabalen do takzvaného registru. Tyto registry jsou připojeny ke sběrnici, což je svazek vodičů vedených kolem celého systému, připojených ke každé součásti. Dokonce i moderní počítače mají sběrnici, i když mohou mít více autobusů pro zlepšení výkonu multitaskingu.

každý registr má stále zápis a čtení bit, ale v tomto nastavení jsou vstup a výstup stejné. To je vlastně dobré. Příklad. Pokud byste chtěli zkopírovat obsah R1 do R2, zapnuli byste čtecí bit pro R1, což by posunulo obsah R1 na sběrnici. Zatímco je čtený bit zapnutý, zapnete zapisovací bit pro R2, který by zkopíroval obsah sběrnice do R2.

reklama

Registry se používají také k vytváření paměti RAM. RAM je často stanoveny v mřížce, s dráty jít ve dvou směrech:

dekodéry vzít binární vstup a zapněte odpovídající číslované vodiče. Například,“ 11 “ je 3 v binárním, nejvyšší 2-bitové číslo, takže dekodér by Zapnul nejvyšší vodič. Na každé křižovatce je registr. Všechny jsou připojeny k centrální sběrnici a centrálnímu vstupu pro zápis a čtení. Vstup pro čtení i zápis se zapne, pouze pokud jsou zapnuty také dva vodiče překračující registr, což vám umožní vybrat registr, ze kterého chcete psát a číst. Opět platí, že moderní RAM je mnohem složitější, ale toto nastavení stále funguje.

hodiny, Stepper a dekodér

Registry se používají všude a jsou základním nástrojem pro přesun dat a ukládání informací v CPU. Co jim tedy říká, aby věci pohnuli?

hodiny jsou první součástí jádra CPU a vypnou se a zapnou v nastaveném intervalu měřeném v hertzech nebo cyklech za sekundu. Toto je rychlost, kterou vidíte inzerovanou vedle procesorů; čip 5 GHz může provádět 5 miliard cyklů za sekundu. Rychlost hodin je často velmi dobrá metrika pro to, jak rychle je procesor.

Reklama

hodiny má tři různé stavy: základní hodiny, povolit clock a nastavte hodiny. Základní hodiny budou zapnuty na půl cyklu a vypnuty na druhou polovinu. Aktivační hodiny se používají k zapnutí registrů a budou muset být zapnuty déle, aby se ujistil, že jsou data povolena. Nastavené hodiny musí být vždy zapnuté ve stejnou dobu jako povolené hodiny, jinak by mohly být zapsány nesprávné údaje.

hodiny jsou připojeny k stepperu, který se bude počítat od jednoho do maximálního kroku a po dokončení se resetuje zpět na jeden. Hodiny je také připojen k A brány pro každý registr, který CPU může napsat:

Tyto A brány jsou také připojen k výstupu z jiné součásti, instrukční dekodér. Dekodér instrukcí vezme instrukci jako „SET R2 to R1“ a dekóduje ji do něčeho, čemu CPU rozumí. Má vlastní interní registr nazvaný „instrukční registr“, kde je uložena aktuální operace. Jak přesně to dělá, to přijde až na systému, který používáte, ale jakmile je dekódován, to bude zase na správné nastavení a povolit bitů pro správné rejstříky, které bude vypálit v souladu hodin.

instrukce programu jsou uloženy v paměti RAM (nebo L1 cache na moderních systémech, blíže k CPU). Protože data programu jsou uložena v registrech, stejně jako každá jiná proměnná, lze s nimi manipulovat za běhu a skákat kolem programu. Takto programy získají svou strukturu, se smyčkami a příkazy if. Instrukce skoku nastaví aktuální umístění v paměti, ze které dekodér instrukce čte, do jiného umístění.

jak se to všechno spojí

nyní je naše hrubé zjednodušení fungování CPU dokončeno. Hlavní sběrnice pokrývá celý systém a připojuje se ke všem registrům. Plné sčítače, spolu se spoustou dalších operací, jsou zabaleny do aritmetické logické jednotky nebo ALU. Tato ALU bude mít připojení ke sběrnici a bude mít také vlastní Registry pro ukládání druhého čísla, na kterém pracuje.

reklama

pro provedení výpočtu se programová data načtou ze systémové paměti RAM do řídicí sekce. Řídicí část přečte dvě čísla z paměti RAM, načte první do registru instrukcí ALU a poté načte druhé na sběrnici. Mezitím pošle ALU instrukční kód, který mu říká, co má dělat. ALU poté provede všechny výpočty a uloží výsledek do jiného registru, ze kterého může CPU číst a poté pokračovat v procesu.

Image Credit: Rost9/

Anthony Heddings
Anthony Heddings je rezidentem cloud inženýr pro LifeSavvy Média, technický spisovatel, programátor a odborník na Amazon AWS platformy. Napsal stovky článků pro How-To Geek a CloudSavvy IT, které byly přečteny milionkrát.Číst celé Bio “