Központi vezérlőegység A számítógép agya a központi vezérlőegység (CPU: Central Processing Unit). Két fő része a vezérlőegység (CU: Controll Unit), ami a memóriában tárolt program dekódolását és végrehajtását végzi, valamint az aritmetikai és logikai egység (ALU: Arithmetical and Logical Unit), ami a számítási és logikai műveletek eredményének kiszámításáért felelős. A központi vezérlőegységet processzornak is nevezzük. Feladata a gép irányítása, a feldolgozási folyamatok vezérlése, az adatok feldolgozása, számítások elvégzése, a memóriában tárolt parancsok kiolvasása és végrehajtása, illetve az adatforgalom vezérlése. Az utasítások végrehajtásához a CPU átmeneti tárolóhelyeket, ún. regisztereket használ, amelyek gyorsabban elérhetők, mint a memória. A CPU-t sínrendszer köti össze a memóriával és a perifériavezérlőkkel. Megkülönböztetünk cím-, adat-, valamint vezérlősíneket. A vezérlősínen jelenik meg az órajel, amely a processzor ütemezéséhez használt jelforrás. Az egyes utasítások végrehajtására előre meghatározott számú óraütés áll rendelkezésre, a processzor csak hiba esetén figyel a tényleges végrehajtás befejezésére. A CPU sebességét megahertzben (MHz) mérik. Az áramköröket vezérlő órajel frekvenciája a processzor sebességének mérőszáma. Ha az órajel például 300 MHz, akkor a processzor 300 millió műveleti ciklust végezhet el másodpercenként. A mai személyi számítógépek többségében az - eredetileg az Intel által kifejlesztett - x86-os (286, 386, stb.) elvek alapján működő processzorokat találunk. Processzorok általános felépítése A központi egység (CPU) részei: - vezérlõ egység - aritmetikai és logikai egység
- belsõ regisztertár - címképzõ egység - busz-(sín) vezérlõ egység A CPU a gép lelke. A vezérlõ egység irányítja a tárolt program alapján a mûveletek végrehajtását, így az aritmetikai egység munkáját is. A vezérlõ egység feladata a processzor és az I/O eszközök közötti adatátvitel irányítása is. Ezek alól csak az önálló vezérlõegységgel rendelkezõ perifériák a kivételek. A perifériák és a processzor közötti adatátvitelre a számítógép buszrendszere szolgál. Az egyes bonyolult számítási feladatok elvégzéséhez a processzor mellett egy társprocesszort (koprocesszor) alkalmaznak, amely a feladatok végzését gyorsítja. Újabban a társprocesszort beépítik magába a központi egységbe (például Intel i80486 esetében a koprocesszor a CPU része). Az Intel i80386-os processzora funkcionálisan négy részre osztható: - sínvezérlõ egység (BU)
- utasításfeldolgozó egység (IU) - végrehajtó egység (EU - ez tartalmazza az ALU-t és a regisztertárat) - címkiszámító egység (AU ) A vezérlõ egység (CU) Feladata a "felhozott" (IR regiszterbõl) gépi instrukció elemzése, dekódolása, és a CPU többi elemének, különösképpen a végrehajtó egységnek (ALU és regiszterek, esetleges védelmi egységnek) összehangolt mûködtetése.a vezérlõ egység az utasításregiszterben megjelenõ utasítás értelmezésével vezérlõ jeleket ad ki a processzor belsõ és a számítógép külsõ irányítására egyaránt. Ez összetett utasításkészletû processzorok (CISC) esetében mikroprogram segítségével történik. A belsõ vezérlõ jelek az aritmetikai egység és a regiszterek közötti adatfolyamot irányítják A külsõ vezérlõ jelek feladata - a processzor-memória, illetve a processzor és a perifériák közötti adatátvitel irányítása - a megszakítások kezelése - sín- (busz) vezérlés megoldása 2.1.2.Aritmetikai egység (ALU) Ha úgy tetszik, ez a CPU - egyben a számítógép - "kalkulátora", ami néhány alapvetõ mûveletet képes végrehajtani.az ALU feladatai közé tartozik:
- összeadás és kivonás. Kezeli a helyiérték átviteli biteket. - fixpontos szorzás és osztás. - léptetések (SHIFT), bitek mozgatása jobbra/balra (ami már a fixpontos szorzás/osztáshoz úgyis kell). - lebegõpontos aritmetikai mûveletek. Ezeket nem minden ALU képes elvégezni. Néha a processzoron kívül, néha azon belül külön komponens végzi ezeket a mûveleteket. Az ALU több fõ részre tagolható: - összeadó egység - léptetõ áramkörök - logikai áramkörök a logikai mûveletek végzéséhez - regiszterek ideiglenes adattárolásra Aritmetikai mûveletek végzésekor a processzor az állapotregiszter egyes jelzõ bitjeit beállítja, amelyek közül a legfontosabbak az átvitel-bit, a zero-bit, az elõjel-bit valamint a tólcsordulást jelzõ bit. Az ALU az alapvetõ logikai függvények (A+B ; A*B ; NOT A) elvégzésére alkalmas, amelyekkel a többi aritmetikai és logikai mûvelet is elvégezhetõ. Ezen feladatokat az egység ' huzalozott ' módon képes végrehajtani. Az aritmetikai egység tartalmaz egy akkumulátor (AC) nevû regisztert, amelyben a mûveletek végzése során a közbensõ eredményeket tárolja.
Belsõ regisztertömb A processzor rendelkezik egy úgynevezett belsõ regisztertömbel. A regiszterek a CPU belsõ tároló elemei. Tartalmuk gyorsan (a leggyorsabban) és egyszerûen elérhetõk a CPU elemei számára. "Munkamemóriát" biztosítanak az ALU számára, ideiglenes tárolást biztosítanak, segítik a címképzést, tárolnak állapotjellemzõket, státusokat (ezzel a vezérlést segítik).van nevük - ezeket az assembler programozó használhatja. Különbözõ hosszúságúak (1 byte, 2 byte-os szó stb.), ezeken belül lehetnek "átlapolások".
i80386/80486-os processzorok általános regiszterei A legfontosabb regiszterek a következõk: - Utasításmutató regiszter (PC, v. IP), ami mindíg a soron következõ instrukció tábeli címét tárolja. Saját hardver inkrementációja van, az instrukció feldolgozása során automatikusan növekszik a tartalma (nem szükséges gépi instrukcióval léptetni). Az "ugrások" (jump-ok) implementációja pedig éppen a PC/IP megváltoztatásával elõállítható, és lehetnek utasítások, melyeknek argumentuma éppen a PC/IP. - Verem-mutató regiszter (SP). A veremtároló egy speciális tároló, amely elsõsorban az alprogramok kezelését segíti. A verem nem része a belsõ regisztereknek, általában a fõtárolóban kerül kialakításra. Szervezése LIFO (Last in first out) jellegû, ami azt jelenti, hogy az uoljára bekerült adat vehetõ ki elõször (Több szintû verem létezhet, több SP is lehet).a "verem instrukciók" (PUSH,POP) automatikusan hivatkoznak az SP-re és automatikusan állítják A veremtároló használata - Utasításregiszter (IR). A vezérlõ egységhez tartozó regiszter, amelyben a memóriából lehozott utasítás tárolódik, amíg a CU az utasítás mûveleti jelrésze alapján meghatározza az elvégzendõ mûveletet és elindítja a mikroprogramot. A pipelining feldolgozásra alkalmas processzorok esetében az IR ebben a
formában már nem létezik. - Bázisregiszter (BR). Az operandus címzéséhez felhasznált regiszter, használata nem általános. Az utasításban a BR-ben levõ címhez (báziscím) viszonyítva adjuk meg az operandus helyét. - Szegmensregiszterek. A feladatuk hasonló a BR-hez, több processzorban is alkalmazzák õket. - Indexregiszter. Szintén a címzésnél van szerepe, elsõsorban az adatsorozatokon végzett mûveleteknél. - Állapotregiszterek és vezérlõregiszterek. A processzor belsõ állapotát jellemzõ biteket tartalmaz. Ilyen bitek: C - átvitel (carry) bit - 1, ha az eredmény legmagasabb helyiértékén átvitel keletkezik Z - zero bit - 1, ha az eredmény 0 S - elõjel (sign) bit - 1, ha az eredmény negatív O - túlcsordulás (overflow) bit - 1, ha az eredmény nagyobb, mint a tárolható legnagyobb érték P - paritás bit - 1, ha az eredmény páros H - half carry bit I - megszakítást engedélyezõ regiszter A jelzõbitek az instrukciók végrehajtása során beállnak, jeleznek egy állapotot. A feltételes ugró instrukciók éppezeket a jelzõbiteket használják a feltételre.
A címképzõ és buszcsatoló egység
A címképzõ egység alapfeladata az ún. virtuális címek leképzése valós címekre. Ezt szoros együtmûködésben végzi az operációs rendszer megfelelõ komponenseivel, ha va a proceszorban védelmi egység, akkor ezzel is. A buszcsatoló egység kezeli a sínt (síneket), adatforgalmat bonyolít le.
Eszköz szintű perifériakezelés Az eszközszintű perifériakezelés elve: a perifériális eszköz fizikai sajátosságainak megfelelő illesztési felületet és utasításkészletet biztosítunk. Ez kis rendszerek, beépített rendszerek esetén előnyös. Valamint jól kihasználhatók a processzor és a periféria sajátosságai. Logikai perifériakezelés LOGIKAI KEZELÉS: általánosított illesztési felületeket és beviteli/kiviteli eljárásokat alkalmazunk. Sokféle perifériális eszköz van, de általánosított beviteli/kiviteli eljárások és illesztési felülettel rendelkeznek. Az I/O PROCESSZORra, ill. CSATORNÁra alapozott kezelés céljai a következők: Önálló modulok melyek mindig ugyanazt a feladatot végzik, amellyel felszabadítják a processzort a periféria részletes kezelése alól. Az I/O processzor ezen felül, még átviteli műveletekre is optimalizált és általános adatfeldolgozási képességgel rendelkezik. Az I/O processzor elhelyezkedése a következő: Az univerzális perifériára illeszkedő I/O processzor a következőképpen néz ki: A periféria és az I/O processzor közötti kommunikáció hasonlít a szemaforos eszközszintű kezelésre. Az univerzális processzor és az I/O processzor között van egyszer adatáramlás, valamint az univerzális processzor küldhet egy parancsot az I/O processzornak, ami visszajelezheti az állapotát (például elkészült a feladattal ).
Feltétel nélküli bevitel/kivitel Ismertetői: A processzor és a periféria nincs szinkronizálva, azaz a processzornak és a perifériának mindig rendelkezésre kell állnia a sikeres átviteli művelethez. Egyszerű IN és OUT utasítások kellenek a periféria működtetéséhez. Jelzőbites (feltételes) bevitel/kivitel Az együttműködésért kizárólag a processzor a felelős, azaz a processzornak mindig rendelkezésre kell állnia. Szemaforos (feltételes) bevitel/kivitel Kölcsönös szinkronizálás (kézfogásos üzemmód), azaz mindkét fél képes a másikat bevárni, illetve a másikat várakozásra kényszeríteni, de általában nem minden periféria sebessége befolyásolható
Ha nagy a sebességingadozás, akkor FIFO tároló kell az átmeneti tároló helyett. KÉT szemafor kell (NINCS_TELE=ADAT ELVÉVE helyett és NEM_ÜRES=PERIFÉRIA KÉSZ helyett). További módosulások a BEOLVASÁS helyett ADAT ELVÉVÉT és az ÉRVÉNYES ADAT VAN helyett ADAT BEÍRÁSÁT kell írni.