Ako pracuje počítač

Hoci sa počítačové technológie od čias prvých elektronických všeobecných počítačov zo štyridsiatych rokov dramaticky zmenili, väčšina stále používa von Neumannovu architektúru.
Fungovanie takéhoto počítča je principiálne pomerne jednoduché. Zvyčajne v každom hodinovom cykle prenesie počítač inštrukcie a dáta z pamäte. Inštrukcie sa vykonajú, výsledky uložia a prinesie sa ďalšia inštrukcia. Procedúra sa opakuje až do výskytu inštrukcie pre zastavenie.
Von Neumannova architektúra opisuje počítač pomocou štyroch hlavných častí: aritmeticko-logická jednotka (ALU), radiaca jednotka (CU), pamäť a vstupno/výstupné zariadenia (spoločne označované V/V). Tieto časti sú poprepájané kabelážou (zbernica) a zvyčajne synchronizované hodinami (hoci môžu byť riadené aj inými udalosťami).

Inštrukcie
Inštrukcie počítača nemusia byť nevyhnutne výrazovo bohaté ako ľudský jazyk. Počítač pracuje s obmedzeným počtom dobre definovaných, jednoduchých, jednoznačných inštrukcií. Typickou inštrukciou, implementovanou vo väčšine počítačov, je „skopíruj obsah pamäťovej bunky 5 do pamäťovej bunky 10“, „pričítaj obsah bunky 7 k obsahu bunky 13 a ulož výsledok do bunky 20“, „ak obsah bunky 999 je 0, ďalšiu inštrukciu nájdeš v bunke 30“.
Inštrukcie sú v počítači reprezentované binárnym kódom. Napríklad kód jednej z operácií kopírovania v mikroprocesoroch radu Intel je 10110000. Inštrukčná sada podporovaná počítačom, vyjadrená vo forme čísel tak, ako je reprezentovaná v stroji, je známa ako strojový kód.
V praxi sa nepíše program priamo v strojovom kóde, ale používajú sa programovacie jazyky "vyššej úrovne", ktoré do strojového kódu automaticky prekladajú špecializované programy (interpreter alebo kompilátor). Niektoré programovacie jazyky, ako assembler, sú mapované veľmi blízko na strojový kód (jazyky "nízkej úrovne"); na druhej strane jazyky ako Prolog sú založené na abstraktných princípoch nezávislých na skutočnej reprezentácii operácií strojom (jazyky „vyššej úrovne“).

Pamäť je postupnosť očíslovaných homogénnych buniek, z ktorých každá obsahuje malé množstvo informácie. Informáciou môže byť inštrukcia, ktorá hovorí počítaču, čo má robiť. Bunka môže obsahovať údaje, ktoré počítač potrebuje na vykonanie inštrukcie. Ľubovoľná bunka môže obsahovať inštrukciu alebo údaj a reprezentácia uloženej hodnoty môže byť v čase odlišná.
Vo všeobecnosti je možné obsah ktorejkoľvek pamäťovej bunky kedykoľvek zmeniť.
Veľkosť jednotlivej bunky a počet buniek sa medzi rôznymi počítačmi výrazne líši, ako aj technológie použité na implementáciu pamäte -- od elektromechanických relé, cez ortuťou naplené tuby (a neskôr pružiny) v ktorých sa formujú akustické impulzy, jednotlivé tranzistory až po integrované obvody s miliónmi tranzistorov a kondenzátorov na jedinom čipe.

Aritmeticko-logická jednotka (ALU) je zariadenie, vykonávajúce jednotlivé operácie ako aritmetické operácie (sčítanie, odčítanie atď.), logické operácie (and, or, not) a operácie porovnania (napr. porovnanie rovnosti dvoch bajtov). Toto je jednotka, ktorá vykonáva výpočty.

Radiaca jednotka
Radiaca jednotka (CU) sleduje, ktoré bajty v pamäti obsahujú aktuálne vykonávanú inštrukciu, hovorí aritmeticko-logickej jednotke, ktorú operáciu má vykonať, získava informácie (z pamäte), ktoré sú potrebné na jej vykonanie a prenáša výsledok naspäť na správne miesto v pamäti. Po dokončení tohto cyklu sa prejde na ďalšiu inštrukciu (zvyčajne sa nachádza v ďalšej pamäťovej bunke -- na ďalšej adrese, v prípade, že nenastala inštrukcia skoku oznamujúca počítaču, že ďalšia informácia sa nachádza na inom mieste). Keď hovoríme o pamäti, pri hľadaní aktuálnej inštrukcie je možné použiť niekoľko adresných modelov určenia relevantnej adresy. Niektoré základné dosky tiež podporujú dva alebo viac procesorov. Počítačové servery často využívajú dva a viac procesorov na zvýšenie výkonu.

V/V umožňuje počítaču výmenu informácií s vonkajším svetom. Existuje široké spektrum V/V zariadení, od známej klávesnice, myši, monitora a tlačiarne po menej zvyčajné ako scanner, webkamera a dotyková obrazovka.
Všetky vstupné zariadenia chrakterizuje to, že kódujú (konvertujú) určitý druh informácie na dáta, ktoré je schopný počítač ďalej spracovať. Výstupné zariadenia zasa dekódujú dáta na informáciu, ktorá je zrozumiteľná používateľovi. V tomto zmysle je počítač príkladom systému spracovania dát.

Architektúra
Súčasné počítače integrujú aritmeticko-logickú jednotku a riadiacu jednotku do jediného integrovaného obvodu známeho ako Centrálna procesná jednotka alebo CPU. Počítačová pamäť sa zvyčajne nachádza na niekoľkých integrovaných obvodoch v blízkosti CPU. Prevažnú väčšinu hmotnosti počítača tvoria pomocné systémy (napríklad zdroj napätia) alebo V/V zariadenia.
Niektoré veľké počítače sa líšia od hore uvedeného modelu v jednom bode -- majú viaceré CPU pracujúce súčasne. Naviac sa niekoľko počítačov používaných prevažne na výskumné a vedecké účely od modelu významne líšili, ale našli len malé komerčné uplatnenie, pretože ich programovací model nebol štandardizovaný.