Hovedartikkel: Central Processing Unit og Microprocessor En generell datamaskin har fire hovedkomponenter: aritmetisk logisk enhet (ALU), styringsenhet, minnet, og inn- og ut-enheter (samlet betegnet I /O). Disse delene er forbundet med hverandre ved busser, ofte laget av grupper av ledninger. Inne i hver av disse delene er tusenvis til billioner av små elektriske kretser som kan slås av eller på ved hjelp av en elektronisk bryter.
Hver krets representerer en bit (binære siffer) av informasjon, slik at når kretsen er på den representerer en "1", og da av den representerer en "0" (i positiv logikk representasjon). Kretsene er anordnet i logiske porter, slik at en eller flere av de kretser som kan kontrollere tilstanden til ett eller flere av de andre kretser. Kontrollenheten, ALU, registrerer, og grunnleggende I /O (og ofte andre hardware nært knyttet til disse) er kollektivt kjent som en sentralenhet (CPU).
Tidlig CPUer var sammensatt av mange separate komponenter, men siden midten av 1970-tallet CPUer har vanligvis blitt konstruert på en enkelt integrert krets kalles en mikroprosessor. Styreenhet Utdypende artikler: CPU design og kontroll enhet diagram som viser hvordan en bestemt MIPS-arkitektur instruksjon ville bli dekodet av kontrollsystemet. Styreenheten (ofte kalt et kontrollsystem eller sentral kontroller) styrer maskinens forskjellige komponenter; den leser og tolker (dekoder) programinstruksjoner, forvandle dem inn i en serie av styresignaler som aktiverer andre deler av datamaskinen.
[40] Styringssystemer i avanserte datamaskiner kan endre rekkefølgen på noen instruksjoner slik som å forbedre ytelsen. En viktig komponent er felles for alle CPUer er programmet teller, et spesielt minne celle (et register) som holder styr på hvilket sted i minnet neste instruksjon skal leses fra. [41] Kontrollsystemet funksjon er som følger-notat som Dette er en forenklet beskrivelse, og noen av disse trinnene kan utføres samtidig eller i en annen rekkefølge, avhengig av hvilken type CPU: 1. Les koden for den neste instruksjon fra cellen indikert av programtelleren. 2.
dekode sifferkoden for den instruksjon i et sett av kommandoer eller signaler for hvert av de andre systemene. 3. Trinnvis programmet teller så den peker til neste instruksjon. 4. Les hva data undervisningen krever fra celler i minnet (eller kanskje fra en inndataenhet). Plasseringen av dette påkrevde data blir typisk lagret i instruksjonskoden. 5. Gi de nødvendige data til en ALU eller regist