Articles

A HTG elmagyarázza:hogyan működik a CPU?

  • Anthony Heddings

    @anthonyheddings

  • Frissítve 2020.február 28., 4:58pm EDT
CPU
rost/

a legtöbb dolog a számítógép viszonylag egyszerű megérteni: a RAM, a tároló, a perifériák, és a szoftver minden együtt dolgozni, hogy egy számítógépes funkció. De a szíve a rendszer, a CPU, úgy tűnik, mint a mágia még sok tech emberek. Itt mindent megteszünk, hogy lebontsuk.

a cikk kutatásának nagy része a “De honnan tudja?”írta: J. Clark Scott. Ez egy fantasztikus olvasmány, sokkal mélyebbre megy, mint ez a cikk, és megéri a pár dollárt az Amazonon.

egy megjegyzés a kezdés előtt: a modern CPU-k nagyságrendekkel összetettebbek, mint amit itt felvázolunk. Szinte lehetetlen, hogy egy ember megértse a chip minden árnyalatát, több mint egymilliárd tranzisztorral. Azonban az alapelvek, hogy mindez hogyan illeszkedik egymáshoz, ugyanazok maradnak, az alapok megértése pedig jobban megérti a modern rendszereket.

kezdő kis

a számítógépek binárisan működnek. Csak két államot értenek meg: be-és ki. A bináris számítások elvégzéséhez az úgynevezett tranzisztort használják. A tranzisztor csak akkor engedi át a forrásáramot a lefolyóba, ha áram van a kapun. Lényegében ez egy bináris kapcsolót képez, amely a második bemeneti jeltől függően levágja a vezetéket.

kapcsolódó: mi a bináris, és miért használják a számítógépek?

reklám

a Modern számítógépek több milliárd tranzisztort használnak a számítások elvégzéséhez,de a legalacsonyabb szinteken csak egy maroknyi kell a legalapvetőbb összetevők kialakításához, gates néven ismert.

logikai kapuk

néhány tranzisztort megfelelően rakjon össze, és van úgynevezett logikai kapuja. A logikai kapuk két bináris bemenetet vesznek fel, egy műveletet hajtanak végre rajtuk, majd visszaadják a kimenetet. A vagy kapu például true értéket ad vissza, ha valamelyik bemenet igaz. Az AND gate ellenőrzi, hogy mindkét bemenet igaz-e, a XOR ellenőrzi, hogy csak az egyik bemenet igaz-e, az N-változatok (NOR, NAND, és XNOR) pedig az alapkapuk fordított változatai.

matek a kapukkal

csak két kapuval megteheti az alapvető bináris hozzáadást. Ez a fenti ábra azt mutatja, egy fél adder, segítségével létrehozott Logicly, egy ingyenes online játszótér logikai kapuk. Az XOR kapu itt bekapcsol, ha csak az egyik bemenet be van kapcsolva, de nem mindkettő. Az AND gate bekapcsol, ha mindkét bemenet be van kapcsolva, de maradj ki, ha nincs bemenet. Tehát ha mindkettő be van kapcsolva, akkor az XOR kikapcsol, és az AND gate bekapcsol, jön a két helyes válasz:

hirdetés

Ez egy egyszerű beállítást ad nekünk három különálló kimenettel: nulla, egy és kettő. De egy bit nem tud tárolni semmit magasabb, mint 1, és ez a gép nem túl hasznos, mert csak megoldja az egyik legegyszerűbb matematikai problémák lehetséges. De ez csak egy fél adder, és ha kettőt csatlakoztat egy másik bemenettel, akkor egy teljes adder-t kap:

a teljes addernek három bemenete van—a két számot hozzá kell adni, és egy “carry”.”A hordozót akkor használják, ha a végső szám meghaladja azt, amit egyetlen bitben lehet tárolni. A teljes addereket egy láncban kapcsolják össze, a hordozót pedig egyik adderről a másikra továbbítják. Az első félidőben a XOR-kapu eredményéhez hozzáadódik a carry, és van egy extra vagy kapu, amely mindkét esetet kezeli, amikor az így kell lennie.

ha mindkét bemenet be van kapcsolva, a carry bekapcsol, majd elküldi a lánc következő teljes adderjének:

és ez körülbelül olyan összetett, mint az összeadás. Mozgó akár több Bit lényegében csak azt jelenti, több teljes adders egy hosszabb lánc.

reklám

a legtöbb más matematikai művelet kiegészítéssel is elvégezhető; a szorzás csak ismételt összeadás, a kivonás valamilyen díszes bit inverzióval elvégezhető, a felosztás pedig csak ismételt kivonás. Míg az összes modern számítógép hardveres megoldásokkal rendelkezik a bonyolultabb műveletek felgyorsítása érdekében, technikailag mindent megtehet a teljes adderrel.

A busz és a memória

jelenleg a számítógépünk nem más, mint egy rossz számológép. Ez azért van, mert nem emlékszik semmire, és nem tesz semmit a kimeneteivel. Fent látható egy memória cella, amely mindezt megteheti. A motorháztető alatt sok NAND kaput használ, a való életben pedig a tárolási technikától függően egészen más lehet, de funkciója ugyanaz. Ad neki néhány bemenetet, bekapcsolja az “írás” bitet, és tárolja a bemeneteket a cellában. Ez nem csak egy memória cella, mivel szükségünk van arra is, hogy információt olvassunk belőle. Ez egy enabler-rel történik, amely a memória minden egyes bitjéhez kapuk gyűjteménye, amelyek mindegyike egy másik bemenethez van kötve, az “olvasás” bit. Az írási és olvasási biteket gyakran “set” – nek és “enable” – nek is nevezik.

Ez az egész csomag az úgynevezett regiszterbe van csomagolva. Ezek a regiszterek a buszhoz vannak csatlakoztatva, amely egy csomó vezeték, amely az egész rendszer körül fut, minden alkatrészhez csatlakoztatva. Még a modern számítógépeknek is van buszuk, bár lehet, hogy több buszuk van a multitasking teljesítmény javítása érdekében.

minden regiszternek van írási és olvasási bitje, de ebben a beállításban a bemenet és a kimenet ugyanaz. Ez tényleg jó. Például. Ha az R1 tartalmát R2-re szeretné másolni, bekapcsolná az R1 olvasási bitjét, amely az R1 tartalmát a buszra tolja. Amíg az olvasási bit be van kapcsolva, bekapcsolja az R2 írási bitjét, amely átmásolja a busz tartalmát az R2-be.

reklám

regisztereket használnak a RAM készítéséhez is. A RAM-ot gyakran rácsban helyezik el, a vezetékek két irányba mennek:

a dekóderek bináris bemenetet vesznek fel, majd bekapcsolják a megfelelő számozott vezetéket. Például a ” 11 ” 3 bináris, a legmagasabb 2 bites szám, így a dekóder bekapcsolja a legmagasabb vezetéket. Minden kereszteződésnél van egy nyilvántartás. Ezek mindegyike a központi buszhoz, valamint egy központi írási és olvasási bemenethez kapcsolódik. Mind az olvasás, mind az írás bemenet csak akkor kapcsol be, ha a regisztert keresztező két vezeték is be van kapcsolva, hatékonyan lehetővé téve a regiszter kiválasztását, ahonnan írni és olvasni lehet. Ismét a modern RAM sokkal bonyolultabb, de ez a beállítás még mindig működik.

az óra, a léptető, valamint a dekóder

regiszterek mindenütt használatosak, és az adatok mozgatásának és az információk tárolásának alapvető eszköze a CPU-ban. Tehát mi mondja nekik, hogy mozogjanak a dolgok körül?

az óra az első komponens a CPU magjában, majd egy meghatározott intervallumban kikapcsol és bekapcsol, Hertzben mérve, vagy másodpercenként ciklusonként. Ez az a sebesség, amelyet a CPU-k mellett hirdetnek; egy 5 GHz-es chip másodpercenként 5 milliárd ciklust képes végrehajtani. Az órajel gyakran nagyon jó mutató a CPU gyorsaságához.

hirdetés

Az órának három különböző állapota van: az alapóra, az engedélyező óra és a beállított óra. Az alapóra fél cikluson át lesz bekapcsolva, a másik fele pedig kikapcsolva. Az engedélyező óra a regiszterek bekapcsolására szolgál, és hosszabb ideig kell bekapcsolnia, hogy megbizonyosodjon arról, hogy az adatok engedélyezve vannak-e. A beállított órának mindig be kell kapcsolnia az óra engedélyezésével egyidejűleg, különben hibás adatokat lehet írni.

az óra csatlakozik a léptetőhöz, amely az egyiktől a max lépésig számít, majd visszaállítja magát az egyikre, amikor kész. Az óra minden olyan regiszterhez csatlakozik, amelyhez a CPU írhat:

ezek és a kapuk egy másik komponens, az utasítás dekóder kimenetéhez is kapcsolódnak. Az utasítás dekóder egy olyan utasítást vesz fel, mint az “R2 beállítása R1-re”, majd dekódolja azt valami olyanra, amelyet a CPU meg tud érteni. Saját belső nyilvántartással rendelkezik, az úgynevezett” Utasításregiszter”, ahol az aktuális műveletet tárolják. Hogy pontosan hogyan működik ez jön le, hogy a rendszer fut, de ha ez dekódolt, akkor kapcsolja be a megfelelő készlet, és lehetővé teszi a bitek a helyes regiszterek, amely kigyullad megfelelően az órát.

A Program utasításai RAM-ban (vagy L1 gyorsítótárban vannak a modern rendszereken, közelebb a CPU-hoz). Mivel a programadatokat nyilvántartásokban tárolják, csakúgy, mint minden más változó, menet közben manipulálható, hogy megkerülje a programot. Így jutnak el a programok a struktúrájukhoz, a hurkokhoz és az if-hez. A jump utasítás beállítja az aktuális helyet a memóriában, hogy az utasítás dekóder olvas egy másik helyre.

hogyan jön össze minden

most, a CPU teljes működésének bruttó egyszerűsítése. A főbusz az egész rendszert átöleli, és az összes regiszterhez csatlakozik. A teljes adderek, egy csomó más művelettel együtt, a számtani logikai egységbe vagy az ALU-ba vannak csomagolva. Ennek az ALU-nak összeköttetése lesz a busszal, és saját nyilvántartása is lesz a második szám tárolására, amelyen működik.

reklám

a számítás elvégzéséhez a programadatok a rendszer RAM-ból kerülnek a vezérlő szakaszba. A vezérlő rész két számot olvas a RAM-ból, az elsőt betölti az ALU utasítás-nyilvántartásába, majd a másodikat betölti a buszra. Eközben elküldi az ALU-nak egy utasításkódot, amely megmondja, mit kell tennie. Az ALU ezután elvégzi az összes számítást, majd az eredményt egy másik regiszterben tárolja, amelyről a CPU képes olvasni, majd folytatni a folyamatot.

Image Credit: Rost9 /

Anthony Heddings
Anthony Heddings a LifeSavvy Media rezidens felhőmérnöke, műszaki író, programozó és az Amazon AWS platformjának szakértője. Több száz cikket írt a How-To Geek és a CloudSavvy számára, amelyeket több millió alkalommal olvastak.Olvassa el a teljes Bio ”