HTG vysvetľuje: Ako funguje procesor?

Obsah:

HTG vysvetľuje: Ako funguje procesor?
HTG vysvetľuje: Ako funguje procesor?

Video: HTG vysvetľuje: Ako funguje procesor?

Video: HTG vysvetľuje: Ako funguje procesor?
Video: 2.4 GHz vs 5 GHz WiFi: What is the difference? - YouTube 2024, Marec
Anonim
Väčšina vecí v počítači je pomerne jednoduchá na pochopenie: pamäť RAM, pamäť, periférne zariadenia a softvér spolu pracujú na vytvorení počítačovej funkcie. Ale srdce vášho systému, CPU, sa zdá byť magické aj pre mnohých tech ľudí. Tu sa budeme snažiť, aby sme to prelomili.
Väčšina vecí v počítači je pomerne jednoduchá na pochopenie: pamäť RAM, pamäť, periférne zariadenia a softvér spolu pracujú na vytvorení počítačovej funkcie. Ale srdce vášho systému, CPU, sa zdá byť magické aj pre mnohých tech ľudí. Tu sa budeme snažiť, aby sme to prelomili.

Väčšina výskumu pre tento článok pochádza z "Ale ako to pozná?" Od J. Clark Scott. Je to fantastické čítanie, ide do oveľa väčšej hĺbky, ako tento článok bude, a stojí za pár pár dolárov na Amazon.

Jedna poznámka predtým, než začneme: moderné CPU sú príkazy oveľa zložitejšie než to, čo tu uvádzame. Je takmer nemožné, aby jedna osoba pochopila každú nuanciu čipu s viac ako miliardou tranzistorov. Základné princípy toho, ako to všetko spoločne zapadajú, zostávajú rovnaké a porozumenie základom vám poskytne lepšie pochopenie moderných systémov.

Počnúc malým

Počítače pracujú v binárnom formáte. Chápu iba dva stavy: zapnuté a vypnuté. Ak chcete vykonať výpočty v binárnom, používajú to, čo sa nazýva tranzistor. Tranzistor dovoľuje, aby prúdový prúd pretekal cez ňu do odtoku, ak je prúd cez bránu. V podstate ide o binárny spínač, ktorý v závislosti od druhého vstupného signálu preruší kábel.
Počítače pracujú v binárnom formáte. Chápu iba dva stavy: zapnuté a vypnuté. Ak chcete vykonať výpočty v binárnom, používajú to, čo sa nazýva tranzistor. Tranzistor dovoľuje, aby prúdový prúd pretekal cez ňu do odtoku, ak je prúd cez bránu. V podstate ide o binárny spínač, ktorý v závislosti od druhého vstupného signálu preruší kábel.

Moderné počítače používajú miliardy tranzistorov na vykonanie výpočtov, ale na najnižšej úrovni potrebujete len niekoľko hrán na vytvorenie najzákladnejších prvkov, známych ako brány.

Logické brány

Zapojte niekoľko tranzistorov správne a máte takzvanú logickú bránu. Logické brány odoberajú dva binárne vstupy, vykonávajú operáciu a vrátia výstup. Napríklad brána OR vráti true, ak je jeden z vstupov pravdivý. Strana AND skontroluje, či sú obidva vstupy pravdivé, XOR kontroluje, či je pravdivý iba jeden zo vstupov a že N varianty (NOR, NAND a XNOR) sú obrátené verzie ich základných brán.
Zapojte niekoľko tranzistorov správne a máte takzvanú logickú bránu. Logické brány odoberajú dva binárne vstupy, vykonávajú operáciu a vrátia výstup. Napríklad brána OR vráti true, ak je jeden z vstupov pravdivý. Strana AND skontroluje, či sú obidva vstupy pravdivé, XOR kontroluje, či je pravdivý iba jeden zo vstupov a že N varianty (NOR, NAND a XNOR) sú obrátené verzie ich základných brán.

Robiť matematiku s bránami

S dvoma bránami môžete vykonať základné binárne pridanie. Tento diagram zobrazuje polovicu rozšírenia vytvoreného pomocou Logicly, bezplatného online ihriska pre logické brány. XOR brána sa zapne, ak je zapnutý iba jeden zo vstupov, ale nie oba. Ak sú obidva vstupy zapnuté, brána sa zapne, ale ak nie je žiadny vstup, zostane vypnutý. Takže ak sú obidve zapnuté, XOR zostane a brána AND sa zapne a príde na správnu odpoveď dvoch:
S dvoma bránami môžete vykonať základné binárne pridanie. Tento diagram zobrazuje polovicu rozšírenia vytvoreného pomocou Logicly, bezplatného online ihriska pre logické brány. XOR brána sa zapne, ak je zapnutý iba jeden zo vstupov, ale nie oba. Ak sú obidva vstupy zapnuté, brána sa zapne, ale ak nie je žiadny vstup, zostane vypnutý. Takže ak sú obidve zapnuté, XOR zostane a brána AND sa zapne a príde na správnu odpoveď dvoch:
To nám dáva jednoduché nastavenie s tromi odlišnými výstupmi: nula, jedna a dve. Jeden bit však nemôže uložiť nič vyššie ako 1 a tento stroj nie je príliš užitočný, pretože rieši iba jeden z najjednoduchších matematických problémov. Ale je to len polovica sčítača, a ak spojíte dva z nich s iným vstupom, dostanete úplné sčítač:
To nám dáva jednoduché nastavenie s tromi odlišnými výstupmi: nula, jedna a dve. Jeden bit však nemôže uložiť nič vyššie ako 1 a tento stroj nie je príliš užitočný, pretože rieši iba jeden z najjednoduchších matematických problémov. Ale je to len polovica sčítača, a ak spojíte dva z nich s iným vstupom, dostanete úplné sčítač:
Úplný výčap má tri vstupy - dve čísla, ktoré sa majú pridať, a "prenášať". Nosenie sa používa, keď konečné číslo presahuje to, čo možno uložiť v jednom bit. Kompletné pridávače budú prepojené v reťazci a prenášanie prechádza z jedného nadstavca na druhý. Nosenie sa pripočíta k výsledku brány XOR v prvej polovici sčítača a je tu ďalšia OR brána na zvládnutie obidvoch prípadov, keď to tak bude musieť byť zapnuté.
Úplný výčap má tri vstupy - dve čísla, ktoré sa majú pridať, a "prenášať". Nosenie sa používa, keď konečné číslo presahuje to, čo možno uložiť v jednom bit. Kompletné pridávače budú prepojené v reťazci a prenášanie prechádza z jedného nadstavca na druhý. Nosenie sa pripočíta k výsledku brány XOR v prvej polovici sčítača a je tu ďalšia OR brána na zvládnutie obidvoch prípadov, keď to tak bude musieť byť zapnuté.

Keď sú oba vstupy zapnuté, prenos sa zapne a pošle ho na ďalší kompletný reťazec v reťazci:

A je to tak zložité ako prírastok. Pohyb na viac bitov v podstate len znamená viac plných adries v dlhšom reťazci.
A je to tak zložité ako prírastok. Pohyb na viac bitov v podstate len znamená viac plných adries v dlhšom reťazci.

Väčšina iných matematických operácií môže byť vykonaná s doplnením; násobenie je len opakované pridanie, odčítanie môže byť vykonané s nejakou fantazijnou bitovou inverziou a rozdelenie je len opakované odčítanie. A zatiaľ čo všetky moderné počítače majú hardvérové riešenia na zrýchlenie komplikovanejších operácií, môžete technicky robiť to všetko s plným rozšírením.

Autobus a pamäť

Práve teraz náš počítač nie je nič iné ako zlá kalkulačka. Je to preto, že si nič nemôže spomenúť a nerobí nič s výstupmi. Zobrazené vyššie je pamäťová bunka, ktorá dokáže všetko. Pod kapotou používa veľa NAND brán a v reálnom živote môže byť úplne odlišná v závislosti od techniky skladovania, ale jeho funkcia je rovnaká. Môžete dať nejaké vstupy, zapnúť "write" bit, a bude ukladať vstupy vnútri bunky. Nie je to len pamäťová bunka, pretože potrebujeme aj spôsob čítania informácií z nej. To sa robí s prídavným zariadením, ktoré je zbierkou AND vrátiek pre každý bit v pamäti, všetko viazané na iný vstup, čítací bit. Písma a čítacie bity sa často nazývajú "set" a "enable" rovnako.
Práve teraz náš počítač nie je nič iné ako zlá kalkulačka. Je to preto, že si nič nemôže spomenúť a nerobí nič s výstupmi. Zobrazené vyššie je pamäťová bunka, ktorá dokáže všetko. Pod kapotou používa veľa NAND brán a v reálnom živote môže byť úplne odlišná v závislosti od techniky skladovania, ale jeho funkcia je rovnaká. Môžete dať nejaké vstupy, zapnúť "write" bit, a bude ukladať vstupy vnútri bunky. Nie je to len pamäťová bunka, pretože potrebujeme aj spôsob čítania informácií z nej. To sa robí s prídavným zariadením, ktoré je zbierkou AND vrátiek pre každý bit v pamäti, všetko viazané na iný vstup, čítací bit. Písma a čítacie bity sa často nazývajú "set" a "enable" rovnako.

Celý tento balík je zabalený do takzvaného registra. Tieto registre sú pripojené k zbernici, ktorá je zväzok drôtov bežiacich po celom systéme, pripojených ku každému komponentu. Dokonca aj moderné počítače majú autobus, aj keď môžu mať viac autobusov na zlepšenie výkonu multitaskingu.

Každý register má stále zápisný a čítací bit, ale v tomto nastavení sú vstup a výstup rovnaké. To je vlastne dobré. Napríklad. Ak chcete skopírovať obsah R1 do R2, zapnete čítací bit pre R1, ktorý by tlačil obsah R1 na zbernicu. Zatiaľ čo čítací bit je zapnutý, mali by ste zapnúť zápisový bit pre R2, ktorý by skopíroval obsah zbernice do R2.
Každý register má stále zápisný a čítací bit, ale v tomto nastavení sú vstup a výstup rovnaké. To je vlastne dobré. Napríklad. Ak chcete skopírovať obsah R1 do R2, zapnete čítací bit pre R1, ktorý by tlačil obsah R1 na zbernicu. Zatiaľ čo čítací bit je zapnutý, mali by ste zapnúť zápisový bit pre R2, ktorý by skopíroval obsah zbernice do R2.

Registre sa používajú na vytváranie pamäte RAM. RAM sa často vyskytuje v mriežke, pričom drôt prechádza dvomi smermi:

Dekodéry majú binárny vstup a zapínajú príslušný očíslovaný vodič. Napríklad "11" je 3 v binárnom, najvyššom 2-bitovom čísle, takže dekodér zapne najvyšší vodič. Na každom križovatke je register. Všetky tieto sú pripojené k centrálnej zbernici a k ústrednému vstupu na zápis a čítanie. Vstup pre čítanie i zapisovanie sa zapne iba vtedy, ak sú zapnuté aj dva káble prechádzajúce cez register, čo vám umožní vybrať register, z ktorého chcete zapisovať a čítať. Opäť platí, že moderná RAM je oveľa zložitejšia, ale toto nastavenie stále funguje.
Dekodéry majú binárny vstup a zapínajú príslušný očíslovaný vodič. Napríklad "11" je 3 v binárnom, najvyššom 2-bitovom čísle, takže dekodér zapne najvyšší vodič. Na každom križovatke je register. Všetky tieto sú pripojené k centrálnej zbernici a k ústrednému vstupu na zápis a čítanie. Vstup pre čítanie i zapisovanie sa zapne iba vtedy, ak sú zapnuté aj dva káble prechádzajúce cez register, čo vám umožní vybrať register, z ktorého chcete zapisovať a čítať. Opäť platí, že moderná RAM je oveľa zložitejšia, ale toto nastavenie stále funguje.

Hodiny, krokov a dekodér

Registre sa používajú všade a sú základným nástrojom na presúvanie údajov a ukladanie informácií do CPU. Takže čo im povie, aby sa veci pohybovali?

Hodiny sú prvou zložkou v jadre CPU a zhasnú a zapnú v nastavenom intervale meranom v herte alebo v cykloch za sekundu. Toto je rýchlosť, ktorú vidíte inzerovanú popri procesoroch; čip 5 GHz môže vykonávať 5 miliárd cyklov za sekundu. Rýchlosť hodín je často veľmi dobrá metrika pre to, ako rýchlo je procesor.

Hodiny majú tri rôzne stavy: základné hodiny, hodiny aktivácie a nastavené hodiny. Základné hodiny budú zapnuté počas pol roka a pre druhú polovicu budú vypnuté. Povolené hodiny sa používajú na zapnutie registrov a musia byť zapnuté dlhšie, aby sa ubezpečil, že údaje sú povolené. Nastavené hodiny musia byť vždy zapnuté v rovnakom čase ako hodiny na zapnutie alebo môžu byť zapísané nesprávne údaje.
Hodiny majú tri rôzne stavy: základné hodiny, hodiny aktivácie a nastavené hodiny. Základné hodiny budú zapnuté počas pol roka a pre druhú polovicu budú vypnuté. Povolené hodiny sa používajú na zapnutie registrov a musia byť zapnuté dlhšie, aby sa ubezpečil, že údaje sú povolené. Nastavené hodiny musia byť vždy zapnuté v rovnakom čase ako hodiny na zapnutie alebo môžu byť zapísané nesprávne údaje.

Hodiny sa pripájajú ku kroku, ktorý sa bude počítať od jedného do maximálneho kroku a samočinne sa vynuluje, keď je hotovo. Hodiny sú tiež spojené s bránami AND pre každý register, ktorý CPU môže zapisovať do:

Tieto brány AND sú tiež pripojené k výstupu iného komponentu, inštrukčného dekodéra. Dekodér inštrukcií prevezme inštrukciu ako "SET R2 TO R1" a dekóduje ho do niečoho, čo CPU dokáže pochopiť. Má vlastný vnútorný register nazývaný "Inštrukčný register", v ktorom je uložená aktuálna operácia. Ako presne to dopadá, ide o systém, na ktorom bežíte, ale akonáhle je dekódovaný, zapne sa správna sada a umožní sa bitom pre správne registre, ktoré sa budú vypínať podľa hodín.
Tieto brány AND sú tiež pripojené k výstupu iného komponentu, inštrukčného dekodéra. Dekodér inštrukcií prevezme inštrukciu ako "SET R2 TO R1" a dekóduje ho do niečoho, čo CPU dokáže pochopiť. Má vlastný vnútorný register nazývaný "Inštrukčný register", v ktorom je uložená aktuálna operácia. Ako presne to dopadá, ide o systém, na ktorom bežíte, ale akonáhle je dekódovaný, zapne sa správna sada a umožní sa bitom pre správne registre, ktoré sa budú vypínať podľa hodín.

Programové pokyny sú uložené v pamäti RAM (alebo L1 cache na moderných systémoch, bližšie k CPU). Keďže sú dáta programu uložené v registroch, rovnako ako každá ďalšia premenná, môže sa manipulovať za behu za účelom skoku cez program. Takto sa programy dostanú do svojej štruktúry, pomocou slučiek a ak sú to vyhlásenia. Pokyn na skok určuje aktuálnu polohu v pamäti, ktorú dekodér inštrukcií číta od iného miesta.

Ako to všetko prichádza spolu

Teraz je naše hrubé zjednodušenie fungovania CPU úplné. Hlavný autobus prechádza celý systém a pripája sa k všetkým registrom. Plné združovače, spolu s množstvom ďalších operácií, sú zabalené do Aritmetic Logic Unit alebo ALU. Táto ALU bude mať pripojenie na zbernicu a bude mať aj vlastné registre na ukladanie druhého čísla, na ktorom pracuje.
Teraz je naše hrubé zjednodušenie fungovania CPU úplné. Hlavný autobus prechádza celý systém a pripája sa k všetkým registrom. Plné združovače, spolu s množstvom ďalších operácií, sú zabalené do Aritmetic Logic Unit alebo ALU. Táto ALU bude mať pripojenie na zbernicu a bude mať aj vlastné registre na ukladanie druhého čísla, na ktorom pracuje.

Na vykonanie výpočtu sa dáta programu načítajú zo systémovej pamäte RAM do riadiacej sekcie. Riadiaca sekcia číta dve čísla z pamäte RAM, načíta prvú do registra výkazov ALU a potom načíta druhú na zbernicu. Medzitým pošle ALU inštrukčný kód, ktorý mu povie, čo má robiť. ALU potom vykoná všetky výpočty a uloží výsledok do iného registra, ktorý CPU môže čítať a potom pokračovať v procese.

Odporúča: