A cikk legnagyobb része a "De How Do It Know?" Című cikkből származik J. Clark Scott. Ez egy fantasztikus olvasmány, sokkal mélyebben megy, mint ez a cikk, és megéri a pár dollárt az Amazonon.
Egy megjegyzés, mielőtt elkezdenénk: a modern CPU-k nagyságrendje sokkal összetettebb, mint amit itt vázolunk. Szinte lehetetlen, hogy egy személy megértse egy chip forgalmát több mint egy milliárd tranzisztorral. Azonban az alapelvek, hogy hogyan illeszkedik együtt, ugyanaz marad, és az alapok megértése jobb megértést nyújt a modern rendszerek számára.
Kicsi kezdő
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 marékra van szükségük ahhoz, hogy a legegyszerűbb összetevőket, a kapukat nevezzék.
Logikai kapuk
Math a kapukkal
Mindössze két kaput használhatunk az alapvető bináris kiegészítéshez. Ez a fenti diagram egy fél adder-t tartalmaz, amelyet a Logicly, a logikai kapuk számára ingyenes internetes játéktér létrehozásával hoztak létre. A XOR kapu itt lesz bekapcsolva, ha csak az egyik bemenet van bekapcsolva, de nem mindkettő. Az AND kapu bekapcsol, ha mindkét bemenet be van kapcsolva, de maradjon le, ha nincs bemenet. Tehát ha mindkettő be van kapcsolva, a XOR nem működik, és az AND kapu bekapcsol, két helyes válaszra:
Ha mindkét bemenet be van kapcsolva, a hordozón bekapcsol, és elküldi a lánc következő teljes számlálójába:
A legtöbb más matematikai művelet elvégezhető kiegészítéssel; a szorzás csak ismétlődő hozzáadás, a kivonás bizonyos képzeletbeli inverzióval végezhető el, és a megosztás csak ismételt kivonás. És bár az összes modern számítógép hardveres megoldásokkal rendelkezik a bonyolultabb műveletek felgyorsítására, technikailag mindent megtehet a teljes adderrel.
A busz és a memória
Jelenleg 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. A fentiek szerint egy memóriakártya, amely mindent megtesz. A kapucnival alatt sok NAND kaput használ, és a való életben a tárolási technikától függően egészen más lehet, de funkciója ugyanaz. Adsz neki néhány bemenetet, kapcsolja be a 'write' bitet, és tárolja a bemeneteket a cellában. Ez nem csak memóriacellát jelent, hiszen szükségünk van arra is, hogy információt olvassunk róla. Ezt egy olyan enablerrel végezzük, amely az összes bitnek a memóriában található AND kapui gyűjteménye, mindez egy másik bemenethez, az "olvasott" bithez kötve. Az írási és olvasási biteket gyakran "set" és "enable" is nevezik.
Ez az egész csomag be van ágyazva a regiszterbe. Ezeket a regisztereket a buszhoz csatlakoztatják, ami egy csomó vezetékek, amelyek az egész rendszeren futnak, minden elemhez csatlakoztatva. Még a modern számítógépeknek is buszjuk van, bár több buszra is képesek lehetnek a multitasking teljesítmény növelése érdekében.
A regiszterek a RAM-ot is használják. A RAM-ot gyakran egy rácsban helyezik el, két vezetéknélküli vezetékekkel:
Az óra, a léptető és a dekóder
A nyilvántartásokat mindenhol használják, és alapvető eszközt jelentenek az adatok mozgatására és az adatok tárolására a CPU-ban. Tehát mi mondja nekik, hogy mozogjanak a dolgok körül?
Az óra a CPU magjában az első komponens, és egy meghatározott időközönként, hertzben vagy ciklusban másodpercenként kikapcsol és bekapcsol. Ez a sebesség, amelyet a CPU-k mellett hirdetnek; egy 5 GHz-es chip képes másodpercenként 5 milliárd ciklusot végrehajtani. Az óra sebessége gyakran nagyon jó mérőszám a CPU gyorsasága miatt.
Az óra csatlakozik a léptetőhöz, amely az egyiktől a maximális lépésig számít, és visszaállítja az egyiket, amikor elkészült. Az óra mindegyik regiszterhez csatlakozik az AND kapukhoz, amelyeket a CPU írhat:
A program utasításait a RAM-ban (vagy az L1 gyorsítótárban tárolja a modern rendszereknél, közelebb van a CPU-hoz). Mivel a programadatok a regiszterben tárolódnak, mint minden más változó, manipulálhatóak lennének, hogy ugorjanak a program körül. Így jutnak hozzá a programok a struktúrához, a hurkokhoz és a nyilatkozatokhoz. Egy ugrás utasítás beállítja az aktuális helyet a memóriában, amelyet az utasításdekódoló más helyre olvas.
Hogyan működik együtt?
Számítás elvégzéséhez programadatokat töltenek be a rendszer RAM-ból a vezérlőszakaszba. A vezérlő rész két számot olvasható a RAM-ból, az elsőt az ALU utasításregiszterébe terheli, majd betölti a másodikt a buszra. Eközben elküldi az ALU-nak egy utasításkódot, amely megmondja, mit kell tennie. Az ALU végzi el az összes számítást és tárolja az eredményt egy másik regiszterben, amelyet a CPU képes olvasni, majd folytatni a folyamatot.