Nech už chceme čokoľvek robiť so softvérom počítača, tento musí vždy byť v súlade s hardvérom počítača. Preto každý programátor by mal mať základné vedomosti o tom ako počítač pracuje aby rozumel čo môže od počítača požadovať.
Každý Počítačový Systém (PS) je zložený z dvoch častí - HARDWARE, ktorý predstavuje jeho materiálnu podstatu a je fyzicky hmatateľný a SOFTWARE, ktorý tento hardware riadi, ktorý je v počítačoch prezentovaný formou dátových záznamov na pamäťovom médiu.
Čo je to vlastne počítač?
Väčšina dnešných personálnych počítačov je Von NEUMANOVEJ koncepcie, t.j. sú to počítače, ktoré majú jedinú pracovnú pamäť t.j. Operačnú pamäť v ktorej uchovávajú ako programy tak aj údaje. V svojej podstate aj programy sú len údaje, ktoré informujú počítač aký pracovný algoritmus, resp. aký pracovný postup má vykonať aby dosiahol požadovaný cieľ práce.
Operačná pamäť nazývaná aj pamäť s náhodným prístupom Random access memory (RAM) je sústava veľkého množstva pamäťových registrov rovnakej dĺžky t.j. rovnakého počtu bitov, ktoré sú všetky naraz paralelne napojené na jedinú Dátovú zbernicu, ktorú predstavujú vo svojej podstate len paralelné vodiče (obyčajné drôty). Počet týchto vodičov určuje triedu počítača. Prvé mikropočítače použiteľné v domácnosti a na kancelárske práce mali datovú zbernicu 8 bitovú, preto sme hovorili o týchto počítačoch ako o 8 bitových počítačoch. Pred nimi existovali len veľké sálové počítače, ktoré mali 64 bitové dátové zbernice a málokto si vedel predstaviť že za jeden ľudský život sa stane počítač ľudovou záležitosťou. Prvé personálne počítače typu IBM PC mali už 16 bitovú datovú zbernicu a ich výkon niekoľkonásobne prevýšil výkon 8 bitových počítačov. Do roku 2003 sa najviac rozšírili 32 bitové počítače a v tomto roku nastala historická udalosť - začali sa vyrábať prvé 64 bitové personálne počítače.
V Operačnej pamäti pamätové bunky, správajúce sa ako sústava pamätových registrov pre uchovávanie binárnych slov, sú zoradené v presnom poradí tak, že každý z nich má svoje jedinečné poradové číslo. Aby sa údaje z "registra operačnej pamäti" preniesli na dátovú zbernicu a naopak z dátovej zbernice do registra, musí register dostať príkaz a na to slúžia jeho tri riadiace signály.
Tento princip - používajúci 3 zbernice dátovú, adresnú a riadiacu - je základným principom riadenia všetkých procesov v počítači. Základom komunikácie rôzných prídavných zariadení je matičná doska, ktorá obsahuje spomenuté tri zbernice. Matičná doska obsahuje päticu do ktorej sa zaúva mikroprocesor, a cez ktorú sa napája na tieto tri zbernice. Cez ďalšie obvody tzv chipset sa napája procesor na Operačnú pamäť a sústavu konektorov ISA, PCI a AGP, na ktoré sú napojené prídavné zariadenia.
Hlavným zariadením, ktorý riadi všetky procesy v počítači je procesor, ktorý obsahuje Register inštrukcií, Riadiacu jednotku, Generátor hodinových impulzov, Pracovné registre, a Aritmeticko logickú jednotku. Všetky tieto zariadenia procesora sú napojené na spoločnú datovú, adresnú a riadiacu zbernicu počítača na matičnej doske, cez ktorú riadi chod všetkých pripojených zariadení.
Ako je možné že všetky zariadenia sú napojené paralelne na tri zbernice a predsa sa dohovoria? To všetko je možné vďaka dodržiavaniu princípu, že na dátovej zbernici môžu jeden čas komunikovať len dve zariadenia medzi sebou. Tento princip zabezpečuje riadiaca zbernica riadená riadiacou jednotkou procesora. V jeden čas dve zariadenia sú nastavené tak, že jeden dáta posiela a druhý ich prijíma. Takto komunikuje procesor medzi svojimi pracovnými registrami, registre procesora s registrami pamäte, procesor s registrami prídavných zariadení (tlačiareň, myška, monitor, ...).
Funkcia Aritmeticko logickej jednotky.
Aritmeticko logická jednotka ako zariadenie vo svojej podstate predstavuje kombináciu pracovných registrov tzv. (AKUMULÁTORA a POMOCNÝCH REGISTROV) s kombinačnou logikou. Kombinančná logika zabezpečuje vykonávanie jednak operácií boolovej algebry a jednak realizáciu algebraickej sčítačky sčítavajúcej dve binárne čísla a jeden prenosový bit z nižšieho rádu pre každý bit AKUMULÁTORA. Akumulátor v procesore počítača predstavuje jeden z registtrov, ktorý jednak vysiela údaje do aritmeticko logickej jednotky, ale čo je hlavné, je registrom ktorý prijíma výsledky aritmeticko logickej jednotky.
Logické operácie.
Matematickou analýzou číslicovej logiky sa zaoberal v rokoch 1815-1864 anglický matematik Georg Boole. Jeho algebra narába s dvomi hodnotami 0 a 1, ktoré majú význam ako PRAVDA t.j TRUE a NEPRAVDA t.j. FALSE. Inak povedané aj svieti a nesvieti keď by sme pravidlo aplikovali na žiarovku, resp. tečie prúd alebo netečie ak by sme ho aplikovali na prúd vo vlákne žiarovky. Booleova algebra používa tri základné operácie AND, OR a NOT, na to aby pomocou nich vyjadrila všetky možné logické stavy ktoré môžu nsatať, či už v bežnom živote alebo v obvodoch počítača.
AND - logický súčin, môžeme nahradiť výrokom "A SÚČASNE". Logický súčin nadobudne pravdivostnú hodnotu pravda , keď platí že dva javy platia súčasne. 1*1=1. Aritmeticko logická jednotka vykonáva Logický súčin nad obsahmi dvoch registrov tak, že porovnáva pozíciu každého bitu samostatne. Logiacká operácia AND sa vykonáva súčasne s 8 bitmi 8 bitového počítača, resp. 16 bitmi 16 bitového počítača a t.ď.
Príklad: A = 0 1 0 1 1 0 0 1
B = 0 1 1 0 1 0 1 0
logic A*B = 0 1 0 0 1 0 0 0
OR - logický súčet, môžeme nahradiť výrokom "ALEBO". Logický súčet nadobudne pravdivú hodnotu ak z dvoch javov minimálne jeden platí. 1+0=0+1=1+1=1
Príklad: A = 0 1 0 1 1 0 0 1
B = 0 1 1 0 1 0 1 0
logic A+B = 0 1 1 1 1 0 1 1
NOT - negácia, môžeme nahradiť výrokon "OPAK HODNOTY". Negácia mení stav pravdivý na nepravdivý a nepravdivý na pravdivý. Negovaná hodnota sa nazýva aj DOPLNOK.
Príklad: A= 0 1 0 1 1 0 0 1
A\ = 1 0 1 0 0 1 1 0
XOR - Súčasťou inštrukčného súboru procesora je aj logická operácia XOR t.j. EXCLUSIVE OR resp. NON EKVIVALENCIA. Operácia nadobúda pravdivý hodnotu ak porovnávame rôzne hodnoty. 1 * 0\ alebo 0\*1
Aritmetické operácie.
Všetky aritmetické operácie vykonávané aritmeticko logickou jednotkou sú postavené na základe operácie sčítania. Dokonca aj operácia odčítania.
Príklad: A= 1 1 1 1
1 1 1 0 254 d
A = 0 1 1 1 1 0 0 1
0(+) 1 1 1 1 0 0
1
121 d
B= 0 0 0 0 0 0 0 1 001 d
B = 0 1 1 0 1 0 1 0
1 (-) 0 0 1 0 1 1 0
<<< druhý doplnok -106
d
algb A+B
= 1 1 1 1 1 1 1 1
255 d A-B
=
1 0(+) 0 0 0 1 1 1
1
15 d
Ak sa rozhodneme, že jedno 8 bitové slovo je vždy len kladná hodnota 0 až 255, potom sčítanie nám dá vždy kladný vysledok, ale musíme si dať pozor, aby nedošlo k pretečeniu. Pri pretečení je súčet vyšší než sa dá zobraziť v 8 bitovom binárnom slove. Podstata pretečenia spočíva v tom, že pri sčítqaní nám vznikne prenos do vyššieho bitu ale počet bitov v registri nepostačuje na zobrazenie toho najvyyšieho bitu. Ten nam jednoducho vypadne von a stratíme ho. Ak chceme zobrazovať záporné čísla musíme urobiť sami so sebou dohodu: záporné čísla budeme zobrazovať v dátových slovách tak, že miesto znamienka využijeme najvyšší bit v zmysle 1 je - (mínus) 0 je + (plus). Týmto strácame najvyšší "hodnotový" bit (nakoľko sa zmenil na informáciu + -). Absolutná hodnota čísel v slovách sa nám tým zmenší na polovičku.
Záporné čísla môžu byť ukladané v priamom kóde, t.j. kladnú hodnotu v bitoch 0-6 (t.j. 7 bitová informácia) doplníme o bit 1(t.j. znak -) v 7-mom t.j. najvyššom bite 8 bitového slova (počítame od 0). Takto upravená hodnota však nie je použiteľná pre matematické úkony v procesore počítača. Toto je len "ludská" informácia. Skutočné záporné číslo sa vytvorí metódou "druhého doplnku" kladného čísla. Ten dostaneme tak, že kladnú hodnotu v binárnom slove celú logicky znegujeme a k takto upravenému číslu pripočítame 1. Druhý doplnok je záporné číslo ktoré môžeme použiť pri operácii sčítania s kladným číslom, pričom výsledok je správné platné číslo. Pretečenie nenastane ak súčasne pri oprácii sčítania nastane prenos zo 6 bitu do 7 a zo 7 do 8 (počítame od 0) , alebo v týchto bitoch prenos nebude vôbec - tento stav procesor detekuje automaticky a vieme ho ošetriť ako pretečenie signalizované v PSW (Program Status Word) registri.
Jazyk ktorému rozumie priamo počítač je strojový jazyk a je daný inštrukčným súborom konkrétneho typu procesora. Inštrukcia v strojovom kóde predstavuje jedno a viac binárnych čísel, ktorých veľkosť každého je daná datovou zbernicou. Podľa toho koľko bitov má dátová zbernica poznáme počítače 8, 16, 32, 64 bitové a v budúcnosti to bude šete viac.
Inštrukcie v strojovom kóde zaberajú minimálne jedno dátové slovo, ale môže aj viac. Každá inštrukcia sa skladá z Operačného kódu a Adresnej časti. Operačný kód predstavuje kódovaný príkaz, ktorý riadi riadiacu jednotku procesora. Toto je kód ktorý určuje ako sa daná inštrukcia bude vykonávať. Adresná časť inštrukcie je buď časť prvého slova kódu inštrukcie, ale ak je to viacslovná inštrukcia môžu adresnú časť tvoriť aj ďalšie slová inštrukcie. Podľa toho rozlišujeme jednoslovné, dvojslovné i trojslovné instrukcie, zvyčajne aj podľa potreby ak datové slovo je príliš krátke.
V počítačoch typu Von Neumana nie je rozdiel medzi uložením dát a programu, obe predstavujú kódy ukladané do tej istej RAM pamäte. Jednotlivé dátové objekty predstavujú konštrukcie ktoré môžu byť jedno a viac slovné, podľa ich typu. Niektoré číselné typy zaberajú jedno datové slovo, iné môžu aj viac. Čím sú kratšie tým rýchlejšie ich vie počítač spracovať. Takým príkladom sú celočíselné premenné typu Integer. Tieto môžu zaberať adresný priestor jednoho byte, ale môžu byť aj dvoj, alebo trojslovné.
B
[1. ]
CPU- Central procesor unit. - Centrálna procesorová jednotka spracúvava dáta, ktoré dostala z pamäti (RAM, HD, FDD, CD) a vstupných jednotiek podľa programu (softwaru) uloženého v RAM (Random access memory) pamäti t.j. pamäti s náhodným prístupom - inak aj pracovná pamäť počítača.
RAM - Random access memory
HD- Hard disk
FDD- Floppy disk drive
CD - Compact disk