Adattér, Adatmanipulációs Fa Flashcards
Az adattér fogalma
Olyan tér, ami biztosítja az adattárolást olyan formában, hogy az adattérben található adatok közvetlenül manipulálhatók legyenek a CPU által.
Az adattér két része és jellemzőik
Memóriatér
- nagyobb
- lassabb
- olcsóbb
- külső területen (lapkán) helyezkedik el
- címtere közös lehet az I/O eszközök címterével
Regisztertér
- kisebb
- gyorsabb
- drágább
- a processzorlapkán helyezkedik el
- külön címtere van
Adatmanipulációs fa fogalma
Megmutatja a potenciális adatmanipulációs lehetőségeket. Bizonyos részfái megmutatják például egy adott implementáció adatmanipulációs lehetőségeit.
A memória tér két része
- fizikai memória
* virtuális memória
A virtuális és fizikai memória kulcsjellemzői
a) két külön memória memóriatér létezik.
- Fizikai (CPU által látható, kisebb, így gyorsabb)
- Virtuális (programozó által látható, nagyobb)
b) létezik olyan transzparens (a felhasználó szempontjából) mechanizmus, amely az éppen futó program számára nem szükséges adatokat automatikusan a fizikai címtérből átteszi a virtuális memóriába. Kétirányú adatforgalom: FM (itt fut a program, sokkal kisebb, gyorsabb) VM (ezt látja a programozó, nagyobb, lassabb)
c) létezik olyan a felhasználó számára transzparens mechanizmus, amely a felhasználó által használt virtuális címet futási (execution) fázisban automatikusan lefordítja valós címekké. Egyirányú adatforgalom VM => FM (ma már erre a célra címfordító hardverek vannak a CPU- ban)
FMVM definíció
létezik olyan transzparens (a felhasználó szempontjából) mechanizmus, amely az éppen futó program számára nem szükséges adatokat automatikusan a fizikai címtérből átteszi a virtuális memóriába.
Kétirányú adatforgalom:
FM (itt fut a program, sokkal kisebb, gyorsabb)
VM (ezt látja a programozó, nagyobb, lassabb)
VM=>FM definíció
létezik olyan a felhasználó számára transzparens mechanizmus, amely a felhasználó által használt virtuális címet futási (execution) fázisban automatikusan lefordítja valós címekké. Egyirányú adatforgalom VM => FM (ma már erre a célra címfordító hardverek vannak a CPU- ban)
A regisztertér meghatározása
Az adattér egy nagyteljesítményű része.
A regisztertér osztályozása
I. egyszerű regisztertér
II. különféle adattípusokhoz különálló regiszterek
III. összetett (többszörös) regiszterkészlet
Az egyszerű regisztertér négy típusa
1) egyszerű regiszter struktúra AC-> akkumulátor regiszter (egyetlen, kitüntetett regiszter volt régebben, minden művelet után menteni kellett az eredményt az operatív tárba, hogy a következő operandust be tudjuk hívni)
2) +néhány dedikált adatregisztert AC + Data regiszterek (a programok feldolgozását felgyorsította)
3) univerzális regiszterkészlet (több regiszter volt, amit szabadon fel lehetett használni, hatékonyság növelése, gyorsabb, új programozási stílus, a gyakran használt változókat regiszterekbe lehetett menteni). Az első ilyen gép 1956-ban jelent meg, ami 8 db regisztert tartalmazott.
4) Stack Architektúra (regiszter): a processzor mindig a legfelső regisztert látja. Stack operandus: a regiszter címzés rövid, gyors, tulajdonképpen nem igényel címzést. Hátránya: szekvenciális hozzáférés a regiszter tartalmához, lassítja a feldolgozást, nem lehet a belső adatokat közvetlenül elérni (lehívás (fetch) szűk keresztmetszet).
Különféle adattípusokhoz különálló regiszterek
Cél a folyamatok felgyorsítása különös tekintettel a lebegőpontos (FP) műveletekre 4 byte (100szoros sebességnövekedés érhető el velük)
Egyszerű regiszterstruktúra
1) egyszerű regiszter struktúra AC-> akkumulátor regiszter (egyetlen, kitüntetett regiszter volt régebben, minden művelet után menteni kellett az eredményt az operatív tárba, hogy a következő operandust be tudjuk hívni)
Dedikált adatregiszterek
2) +néhány dedikált adatregisztert AC + Data regiszterek (a programok feldolgozását felgyorsította)
Univerzális regiszterkészlet
3) univerzális regiszterkészlet (több regiszter volt, amit szabadon fel lehetett használni, hatékonyság növelése, gyorsabb, új programozási stílus, a gyakran használt változókat regiszterekbe lehetett menteni). Az első ilyen gép 1956-ban jelent meg, ami 8 db regisztert tartalmazott.
Stack architektúra
4) Stack Architektúra (regiszter): a processzor mindig a legfelső regisztert látja. Stack operandus: a regiszter címzés rövid, gyors, tulajdonképpen nem igényel címzést. Hátránya: szekvenciális hozzáférés a regiszter tartalmához, lassítja a feldolgozást, nem lehet a belső adatokat közvetlenül elérni (lehívás (fetch) szűk keresztmetszet).
Összetett (többszörös) regiszterkészlet
Ciklusok, megszakítások, egymásba ágyazott folyamat.
Kontextus: a program végrehajtás során a regiszterek állapotát az állapot információkkal (PC, flag) együtt kontextusnak nevezzük.
Amennyiben egy eljárást hívunk kontextust kimentjük az operatív tárba LASSÚ folyamat!
Megoldás: ahány eljárás annyi regiszter, több regiszterkészlet.
Többszörös regiszterkészlet tervezési tere
- több egymástól független regiszterkészlet
Adatátadás (paraméterátadás) operatív táron keresztül történik. - átfedő regiszterkészlet (INS, OUTS, LOCALS)
Több egymásba ágyazott eljárások gyorsítására alkották meg.
Hátrány: fix és merev
A regiszterek száma és a regiszterkészletek száma szerint is lehet szűk a keresztmetszet, túlcsordulás léphet fel.
6-8 regiszterkészlet esetén már kezelhető (4-5%) a túlcsordulások számaMax. 8 egymásba ágyazott eljárás/folyamatunk legyen. - stack-cache
Ötvözi a:a. stack gyorsaságátb. veremregiszter szervezésétc. a regiszterek közvetlen címezhetőségétAktiválási rekordokat definiálunk, amelyek változó hosszúságúak, relatív távolság meghatározása.
Rugalmas, nincs túlcsordulás, paraméterek, visszaadása is megoldott, ma ezt használjuk.
Adatmanipulációs fa részei
- (Legfelső szintje)adattípusok:
FX1(Byte), FX2, FX4, BCD, FP4, FP8, boolean (FX = fix, FP = lebegő pontos, BCD = binárisan ábrázolt decimális) - Műveletek: például fix számosnál: +, -, *, /
- Operandusok típusai: rrr, rmr, …, mmm (r = regiszter, m = memória)
- Címzési módok: memória típusú operandusoknál R+D, PC+D, RI+D(D = displacement, R = regiszter, PC = program counter, RI = index register)
- Gépi kódok (utasítások): Pl.: 10011110
Numerikus adattípusok
- fixpontos
- lebegőpontos
- BCD
Fixpontos adattípusok
- egyes komplemens
- kettes komplemens
- többletes kódolás
Kettes komplemens adattípusok
Előjeles: byte, szó, dupla szó, quadro szó (128 bit)
Előjel nélküli
Lebegőpontos adattípusok
- normalizált
- nem normalizált
Normalizált adattípusok
- hexa
- bináris
Bináris adattípusok
IEEE: egyszeres pontosságú (32bit), kétszeres pontosságú (64bit), kiterjesztett pontosságú (128bit)
VAX
BCD adattípusok
- pakolt
- pakolatlan
Pakolt adattípusok
- EBDIC: változó hosszúságú, fix hosszúságú
- ASCII: szabványos (7bit), kiterjesztett (8bit)
Karakteres adattípusok
- EBDIC
- ASCII: szabványos (7bit), kiterjesztett (8bit)
- UNICODE (2 bájt)
Logikai adattípusok
- 1 bájtos (szemcsézettség)
- 2 bájtos
- 4 bájtos
- változó hosszúságú
Összetett adattípusok fajtái
Elemi adattípusokból épülnek fel. Adatszerkezetek • Többféle elemi adattípus esetén rekordoknak nevezzük • Egyféle adattípus esetén o Tömb:1dimenziós–vektor o Listao Fa(általábanbináris) o Sor (FIFO) o Halmaz o Szöveg o Verem(stack) Műveletek: a kivételeket pontosan tudni kell kezelni. Pld.: 0-val való osztás esetén mi a teendő? Műveletek készlete architektúra függő.
Címzési módok fogalma
Az egyes memória operandusok vonatkozásában a megengedett címzési módok deklarálása.
Címosztás fajtái
Címosztás (4GB->64GB)
a. Abszolút címzés (nem használjuk)
b. Relatív címzés (választunk egy bázis címet, és megadjuk a tőle való távolságot(különbséget). Y=B+D).
c. Báziscím lehet:
- i. Dedikált regiszter
- ii. Program counter
- iii. Top offsetiv. Bármilyen más mutató
Cím módosítás
- Cím módosítás
a. Egy adatblokk egymás követő elemeit (autóinkrementálás/autódeklarálás)
b. Egy adatblokk egyes speciális elemét.
S-Start
Rxi- az adott indexregiszter tartalma
Y: cím
-meghatározása: Ye=S+Rxi -kétdimenziós esetben: Ye=S+(Rbi)+(Rbj)
Tényleges cím deklarálása
- Tényleges (deklarált) cím interpretálása
a. Direkt vagy indirekt címzés
b. Valós vagy virtuális
c. Utasításos kódok