Processzorok
fejlődése, működése
(Intel 80486-ig)
A CPU működése
A processzor főbb alkotórészei
-ALU: (Arithmetic and Logical Unit – Aritmetikai és Logikai Egység). A
processzor alapvető alkotórésze, ami alapvető matematikai és logikai
műveleteket hajt végre. Sebessége növelhető egy koprocesszor (FPU, Floating
Point Unit, lebegőpontos műveleteket végző egység) beépítésével. Az FPU korábban
külön részegység volt, manapság a processzorok mindegyike beépítve tartalmazza.
-AGU: (Address Generation Unit) - a címszámító egység, feladata a
programutasításokban található címek leképezése a főtár fizikai címeire és a
tárolóvédelmi hibák felismerése.
-CU: (Control Unit a.m. vezérlőegység vagy vezérlőáramkör). Ez szervezi, ütemezi
a processzor egész munkáját. Például lehívja a memóriából a soron következő
utasítást, értelmezi és végrehajtatja azt, majd meghatározza a következő
utasítás címét.
-Regiszter (Register): A regiszter a processzorba beépített nagyon gyors
elérésű, kis méretű memória. A regiszterek addig (ideiglenesen) tárolják az
információkat, utasításokat, amíg a processzor dolgozik velük. A mai gépekben
32/64 bit méretű regiszterek vannak. A processzor adatbuszai mindig akkorák,
amekkora a regiszterének a mérete, így egyszerre tudja az adatot betölteni ide.
Például egy 32 bites regisztert egy 32 bites busz kapcsol össze a RAM-mal. A
regiszterek között nem csak adattároló elemek vannak (bár végső soron mindegyik
az), hanem a processzor működéséhez elengedhetetlenül szükséges számlálók, és
jelzők is. Ilyen például :
utasításszámláló, (PC=program counter, IP=instruction
pointer) ami mindig a következő végrehajtandó utasítás címét,
utasításregiszter (IR=instruction register), mely a
memóriából kiolvasott utasítást tárolja. E kód alapján határozza meg a
vezérlőegység az elvégzendő műveletet
flagregiszter, amely a processzor működése közben létrejött
állapotok jelzőit (igaz, vagy hamis),
veremmutató (SP = Stack Pointer) ,
és az akkumulátor, (AC) amely pedig a logikai és aritmetikai
műveletek egyik operandusát, majd az utasítás végrehajtása után az eredményt
tartalmazza.
-Buszvezérlő: A regisztert és más adattárolókat összekötő buszrendszert
irányítja. A busz továbbítja az adatokat.
-Cache: A modern processzorok fontos része a cache (gyorsítótár). A cache a
processzorba, vagy a processzor környezetébe integrált memória, ami a viszonylag
lassú rendszermemória-elérést hivatott kiváltani azoknak a programrészeknek és
adatoknak előzetes beolvasásával, amikre a végrehajtásnak közvetlenül szüksége
lehet. A mai PC processzorok általában két gyorsítótárat használnak, egy kisebb
(és gyorsabb) első szintű (L1) és egy nagyobb másodszintű (L2) cache-t. A
gyorsítótár mérete ma már megabyte-os nagyságrendű.
A processzor működése
1.
Az utasítás beolvasása a
memóriából a processzorba: A memória címtárolójából, az AR-ból (address register
- címregiszter) kerül át a processzor címtárolójába az IP-be (instruction
pointer). Ezek után a memória adattároló regiszteréből, a DR-ből (data register
- adatregiszter) kerülnek át az adatok a processzor adattárolójába, az IR (instruction
register)-be.
2. A beolvasott utasítás
dekódolása, elemzése: Az ALU az utasítás kódját értelmezi, melyből kiderül
milyen műveletet kell elvégeznie, és hogy mennyi adatot kell beolvasni még
ahhoz, hogy meghatározhatóak legyenek az operandusok, amelyeken a műveleteket
végzi.
3. A művelet végrehajtása,
mely eredménye az LR3 segédregiszterbe kerül.
4. Eredmény tárolása: az
LR3 segédregiszterből egy másik regiszterbe, vagy a DR-en keresztül a
memóriacímre kerül.
5. A következő utasítás
címének meghatározása: A szekvenciális program esetében az IP értékének
megnövelésével jut el az ALU a következő utasítás címéhez. Ellenkező esetben egy
regiszter tartalmazza a következő utasítás címét, melyet a processzor az IP-be
ír.
Az óra és az órajel
Az óra az egész számítógép működéséhez szükséges ütemet biztosítja. Az óra
magában foglal egy kvarckristályt, ami az órajel előállításához szükséges rezgés
stabilitását adja. Sebességét Hertzben (vagy megahertzben) mérjük. Az
órajel-generátor néhány száz MHz-es rezgést ad, ezért a processzor órajelének
előállításához egy beállítható szorzót alkalmaznak, hogy többféle sebességű
processzort is a rendszerbe lehessen építeni.
A processzor részegységei (itt a legalapvetőbb műveleteket végző részegységekre
kell gondolni, tehát nem egy olyan nagy egységre, mint például az ALU.), az
órajel ütemére végzik feladataikat; amikor egy részegység megkapja az órajelet
egy elektronikus jel formájában, akkor elvégzi a soron következő műveletet,
amikor megkapja a következő jelet, akkor a következő műveletet végzi el. Egy
másodperc alatt egy mai processzor egysége több milliószor kap jelet. Az órajel
sebességének így ahhoz az időhöz kell alkalmazkodnia, amennyi időbe telik egy
részegységnek a rá kijelölt művelet elvégzése (különben akkor jönne a következő
művelet, amikor az előző még feldolgozás alatt van, és ez érthetően problémákat
okozna). Ez lényegében azt eredményezheti, hogy a processzor egységeinek a
leglassúbb elem miatt kell várakozniuk. Ezt persze különféle megoldásokkal
orvosolják.
Ám a műveletet nem szabad összetéveszteni az utasítással, ezek bonyolultsága
miatt egy utasítás végrehajtása több órajelciklust is igénybe vehet. Az is
lassító tényező, hogy a processzor az adatokat lassabban kapja, mint ahogy fel
tudná dolgozni őket, ilyenkor pedig várakoznia kell.
Gépi ciklusnak nevezzük azt az időt, amely alatt a számítógép egy gépi műveletet
végre tud hajtani. Egy gépi ciklus általában több órajelütemből áll, az egyes
utasítások végrehajtásához szükséges gépi ciklusok száma utasításonként más és
más lehet.
A processzor utasításkészlete
A processzor által ismert műveletek és utasítások összességét értjük a processzor utasításkészlete alatt. Legelőször a RISC (Reduced Instructions Set Computer) utasításkészletet használták, ez leegyszerűsített, rövid utasításokat tartalmazott. Elsődlegesnek tekintette a sebességet, és az egyszerűséget. Később a CISC-et (Complex Instructions Set Computer) alkalmazták, ez már több, hosszabb utasítást tartalmazott, ám a túl sok, bonyolult utasítás nem bizonyult célravezetőnek, ezért visszatértek a RISC-hez. Ma már persze rengeteg utasításkészlet van, melyben keverednek a RISC, és a CISC irányelvei (Pentium, Pentium MMX, SSE 3/4, 3D now!).
Történelem Működés Kronológia 4004 4040 8008 8080 8085 8086 8088 80186 80286 80386 80486