A Neumann elvű számítógépek működése, a processzor
A Neumann elv szerint a számítógép egy olyan eszköz, amely legalább két részből áll. Az egyik rész a processzor, a másik a memória. A processzor feladata a műveletvégzés azokkal az adatokkal, amelyek a memóriában találhatók. A Neumann elv fontos kikötése még az, hogy a program, azaz a végrehajtandó utasítások sorozata is a memóriában van, sőt a program és az adat "ránézésre" nem különbözik egymástól, azaz nincs külön memória az utasítások és egy másik a program tárolására. Bár a Neumann elv nem írja elő, egy mai számítógépnek rendelkeznie kell egy harmadik részből is, amely a külvilággal való kapcsolattartást biztosítja, azaz egy olyan rendszerrel, amely az Input/Output (adatbevitel illetve adatkiadás) -ért felelős.
A processzor működése
1. Az utasítás beolvasása a processzorba
Ahhoz, hogy ezt képes legyen a processzor megtenni, szüksége van arra, hogy hol találja meg ezt az utasítást a memóriában. Ez a memóriacím található az IP (instruction pointer - utasítás mutató) regiszterben. Ez még kevés, ugyanis ha megtalálta az utasítást és kiolvasta a memóriából, akkor a kiolvasott utasítást valahol el kell tárolni. Erre való az IR (instruction - utasítás) regiszter. A pontos működés megértéséhez még annyit kell tudnunk, hogy a memória (az ábrán jól láthatóan, ha szembe ülsz a monitorral) mindössze két regiszterhez kapcsolódik, azaz az AR és a DR regiszterhez. Az AR (address - cím) regiszter tartalmazza azt a címet, amelyről olvasni szándékozunk illetve ahova írni szeretnénk. A DR (data - adat) regiszter pedig az olvasás után tartalmazni fogja a memória AR cím helyén levő adatot, míg az írás során a DR-ben levő adatot az AR címre fogja írni a memóriát vezérlő egység. Tehát az utasítás beolvasása valójában a következő műveletek végrehajtását jelenti: IP --> AR ; READ ; DR-->IR
2. A beolvasott utasitás kódolása, elemzése
Miután beolvastuk az utasítást, nekiláthatunk az értelmezésnek. Az utasítások mindig két részből állnak: az utasítás kódjából, amely meghatározza, hogy milyen műveletet kell végrehajtani, illetve az operandusokból, amelyek meghatározzák, hogy milyen adatokkal kell elvégezni az adott műveletet, illetve azt, hogy az eredmény hol tárolódjon. A beolvasott utasítás (IR) nem biztos, hogy a teljes utasítást tartalmazza, az viszont biztos, hogy az utasítás kódját igen. Azért nem tartalmazhatja minden esetben a szükséges adatokat (illetve azok címeit), mert az olvasáskor még nem tudjuk azt, hogy milyen műveletet olvasunk, így arról sincs információnk, hogy az adott műveletnek hány és milyen operandusa van. Utóbbi tulajdonságok viszont benne vannak az utasítás kódjában. (Nyilván egy összeadás utasítás több operandust tartalmaz, mint egy olyan utasítás, amely eggyel megnöveli egy regiszter értékét.) Azaz megtörténik az utasításkód értelmezése, melynek alapján az ALU (arithmetical and logical unit - aritmetikai és logikai műveletvégző egység) tudomást szerez arról, hogy milyen műveletet kell majd elvégeznie és kiderül, hogy még milyen egyéb részek tartoznak az utasításhoz, azaz mennyi adatot kell még beolvasni a memóriából ahhoz, hogy komplett legyen az utasítás és meghatározhatók legyenek az operandusok.
3. Az operandusok beolvasása
Ebben a fázisban kiolvasásra kerülnek a memóriából az operandusok címei (ha ez szükséges) illetve maguk az operandusok. Ezek kétfélék lehetnek, vagy a memóriában vannak (és akkor onnan ki kell olvasni őket) vagy regiszterek és akkor már a processzorban tartózkodnak. Az ALU két segédregisztere szolgál arra, hogy a kiolvasott operandusokat tárolja (LR1 és LR2, latch - segédregiszter). általában az ALU maximum kétoperandusú műveleteket képes végrehajtani, természetesen, ha speciális műveletvégző egységgel van dolgunk, akkor a maximális operandusszámnak megfelelő segédregiszterre van szükségünk.
4. A művelet végrehajtása
Miután összeállt, hogy mit kell csinálni és az, hogy milyen adatokkal, az ALU elvégezheti az utasítást. Az eredményt - a tárolás céljára - egy harmadik segédregiszterbe teszi (LR3).
5. Az eredmény tárolása
Az utasítás tulajdonságának függvényében az eredmény az LR3 regiszterből vagy valamelyik regiszterbe vagy az utasításban meghatározott memóriacímre kerül (persze két lépésben, először a DR regiszterbe és csak utána a memóriába).
6. A következő utasitás címének meghatározása
Miután az utasítást elvégezték, meg kell határozni azt a címet, ahol a programvégrehajtás folytatódni fog. Ha a programunk szekvenciális, azaz a memóriában a következő címen levő utasítást kell végrehajtani, akkor az IP-t annyival kell megnövelni, amilyen hosszú az adott utasítás volt. Ha valahol egészen máshol kell a programvégrehajtást folytatni, az általában olyan utasítás, amelynek végrehajtása után valamely regiszter tartalmazza a folytatás memóriacímét. Így ezt a címet kell az IP-be beírni. Az utasításciklus végetért és a processzor rátérhet a következő utasítás végrehajtására, azaz visszatérhet az 1. pontra. Az ábrán (feljebb egy kicsit) már csak három homályos pont van: a belső busz, a flag-ek, illetve az SP regiszter. A belő busz szolgál arra, hogy a processzoron belül adatok áramoljanak rajta az egyik helyről a másikra. A flag-ek (jelzők) olyan speciális, 1 bites regiszterek, amelyek a processzor űködését befolyásolják illetve állapotát mutatják. Nevezetes flag például a carry flag, amely azt mutatja, hogy az utolsó művelet (mondjuk összeadás vagy kivonás) alkalmával keletkezett-e átvitel/áthozat, vagy a zero-flag, amely akkor igaz, ha az utoljára végrehajtott művelet eredménye nulla volt. Az SP (stack pointer - verem mutató) regiszter az eljáráshívások és az eljárásokból való visszatérések során játszik jelentős szerepet.
![]() | ![]() |
processzor | Athlon 64 2800+ | Athlon 64 3000+ | Athlon 64 3200+ |
Orajel | 1800MHz | 2000MHz | 2000MHz |
Gyartastechnologia | 0,13 | 0,13 | 0,13 |
Tranzisztor (milliĂł) | 105,9 | 105,9 | 105,9 |
Magmeret (mm^2) | 144 | 144, 193 | 193 |
L1 cache | 64 KB adat, 64 KB utasitas | 64 KB adat, 64 KB utasitas | 64 KB adat, 64 KB utasitas |
L2 cache | 512KB (16-utas) | 512KB (16-utas) | 1MB (16-utas) |
L3 cache | Nincs | Nincs | Nincs |
Hyper-Threading | Nincs | Nincs | Nincs |
Foglalat | Socket 754 | Socket 754 | Socket 754 |
http://picasso.nejanet.hu/~ksanyi/proci/PROCI.HTM
http://www.prohardver.hu/rios3_content.php?mod=20&id=421
ön a .látogató
Készítette: Tóth Tibor Tankör: G-2MMI Dátum: 2005. 04. 06. 10:24