| ||
|
||||||||||
ARCHITEKTÚRÁK I.
Számítási modellek
70-es évek: Az IBM 370-nel a Neumann architektúrájú gépek korlátjuk széléhez értek, teljesítményüket nem lehetett már jobban növelni. Ezért az újdonságok kerültek elötérbe, mint a RISC architektúra, futószalag elv (pipeline), programnyelvek (konkurens parancsnyelvek, objektum orientált nyelvek). Ezek már a számítási modelljükben különböznek.
A Számítási modell fogalma: A számításra vonatkozó alapelvek absztrakciója.
Jellemzöi:
Adatokon hajtjuk végre a számítást.
Fejlesztési kronológia:
A számítási modellek osztályozása:
Adatalapú számítási modell
Neumann féle számítási modell
adatfolyam számítási modell piaci megvalósítás
applikatív
Objektum alapú számítási modell 141h71b 141h71b 141h71b 141h71b 141h71b 141h71b bonyolultság
Predikátum - logikai számítási modell (prolog)
Tudás alapú számítási modell 141h71b kísérleti stádium
Hibrid számítási modell
Adatalapú számítási modell:
Az adatokat típusokba soroljuk (elemi és összetett). Az elemi adattípusok meghatározzák az adat értelmezési tartományát, érték készletét, az értelmezett müveletek halmazát. Pl.: integer (16 bites) esetén ÉT: -32768 - +32767, ÉK: egész értékek, értelmezett müveletek: +, -, ×, ÷.
Neumann féle számítási modell:
Adatokon.
deklarált
változók
Az adatokat a változók képviselik.
Az architektúra biztosítja, hogy a
változók
vezérlést átadó
utasítás
korlátlan számban változtathassák értékeiket.
PC
Adatmanipuláló
utasítások sorozatával.
Az adatmanipuláló utasítások implicit szekvenciája
Az explicit vezérlést átadó utasítás.
Nem számolja,
csak egyesével tudja növelni magát. Az adat elejét tudja értelmezni move
utasításként.
Programnyelvek: Imperatív (parancs) nyelvek,
pl.: Pascal, C, Basic, Fortran.
Architektúra: Neumann féle architektúra.
adatfolyam számítási modell:
Bemenö adatok halmaza.
Adatfolyam gráffal:
a) Csomópontok: müveletvégzök.
b) Élek: input/output lehetöségek, ahol az adat áramlik.
Pl.: Z=(X+Y)×(X-Y)
141h71b X Y bemenö adatok halmaza
141h71b + - párhuzamos müveletvégzés
141h71b 141h71b idömegtakarítást eredményez (33%)
141h71b × a Neumann féle szekvenciálisan dolgozott
141h71b Z
1. Még nincs operandus.
2. Az egyik operandus megjelent.
3. Összes operandus megérkezése → Müveletvégzés. 141h71b @
4. Megjelenik az eredmény.
Az utolsó operandus megjelenése indítja el a müveletet.
Lehet akárhány operandus, akár több száz is.
Programnyelv: Sisal.
Architektúra: The Manchester Dataflow Machine
Neumann féle számítási modell |
adatfolyam számítási modell |
1. Közös memória (adat + program) |
Müveletvégzöben "tárolhatóak" az adatok |
1. Változó |
Egyszeri értékadás (a bejött adat elveszik) |
2. Adatmanipuláló utasításokkal |
Adatfolyam gráffal |
3. Implicit szekvencia |
Adatvezérelt |
3. Explicit vezérlésátadás |
Nincs PC, nincs vezérlési szekvencia |
A Pentium processzorokban a CISC magban van adatfolyam.
Architektúra
1964 Amdahl: Azon ismeretek összessége, amelyeket egy alacsony szintü programnyelvben programozónak ismernie kell, hogy hatékony programot írjon, pl.: regiszterek, memória, címzési módok, utasításkészlet.
1970 Bell: szinteket rendelt az architektúrához
P.M.S. (processor, memory, switches)
Programozási szint:
Magas színtü programnyelvek
Alacsony szintü programnyelvek
Logikai tervezöi szint
Áramköri szint
A külsö jellemzök, a belsö felépítés és a müködés összessége.
Adott absztrakciós szinten (L) a számítási modell (M), a specifikáció (S) és az implementáció (I) összessége.
Számítási modell: L
Logikai architektúra + Fizikai architektúra
külsö 141h71b 141h71b belsö
absztrakt 141h71b 141h71b konkrét
ISA (Instruction Set Architecture) MA (Microarchitecture)
Logikai architektúra: L
Adott absztrakciós szinten a fizikai architektúra elvonatkoztatása.
A fekete doboz külsö megjelenése, viselkedése adott absztrakciós szinten.
A processzorszintü logikai architektúra részei:
Adattér.
Adatmanipulációs fa.
Állapottér.
Állapotmüveletek.
A fizikai architektúra részei: L
A logikai architektúra megvalósítása adott absztrakciós szinten.
Adott absztrakciós szinten a fekete doboz belseje.
A processzorszintü fizikai architektúra részei:
Müveletvégzö
Vezérlö
Memória
Sínrendszer
I/O rendszer
Megszakítási rendszer
Egy korszerü számítógép szintjei (Tannenbaum, 6 db):
Alkalmazások 141h71b 141h71b Word, Excel
5. Problémaorientált nyelvek 141h71b Pascal, C
4. Assembly szintü nyelvek
3. Operációs rendszerek 141h71b operációs rendszerek
2. Utasításrendszer architektúra (ISA) architektúra
1. Mikroarchitektúra (MA) 141h71b architektúra
0. Digitális elemek szintje 141h71b digitális technika
Áramköri szint
Adattér
A processzor által manipulálható tér.
Adattér |
|
Memóriatér |
Regisztertér |
Nagyobb |
Kisebb |
Lassúbb |
Gyorsabb |
Olcsóbb |
Drágább |
Processzoron kívül (külön lapkán) |
Processzoron belül |
Közös az I/O térrel |
Mindig önálló |
Memóriatér:
A legfontosabb jellemzöje a tárolási kapacitása.
Címtér:
a) Modell címtere: címsín szélessége határozza meg
b) Implementáció címtere: pénztárca
A valós memóriatér fejlödése:
a) 40-es évek: néhány száz szó.
b) 1950 IAS: 10 bites címsín, 210=1024 szó.
c) 1964 IBM 360: 16 Mbyte.
Virtuális tár
a) 1960-ban jelent meg az ötlete s az IBM 370-es gépcsalád vitte sikerre.
b) Alap jellemzöi:
1. kétféle címet értelmezünk:
a. valós cím (ezt látja a processzor)
b. virtuális cím (programozó)
Virtuális tér |
Valós címtér |
Nagyobb |
Kisebb |
Lassúbb |
Gyorsabb |
Háttértárolón helyezkedik el |
Alaplaphoz illesztve, félvezetö lapkán |
Programozó látja |
Processzor látja |
Várakozik a program |
Itt fut a program |
2. Létezik egy olyan, a programozó számára transzparens mechanizmus, mely:
a. Az éppen futó program számára szükséges program- és adatrészeket behozza a virtuális tárból a valós tárba, illetve
b. Az éppen futó program számára nem szükséges program- és adatrészeket kiviszi a valós tárból a virtuális tárba.
3. Létezik egy olyan, a felhasználó számára transzparens mechanizmus, mely a programozó által használt virtuális címeket a végrehajtási (execution) fázisban lefordítja valós címekké.
Valós
címek Virtuális
címek
2. pont
141h71b 141h71b 141h71b mechanizmus
3. pont
Az Intel processzorok valós és virtuális memóriájának fejlödése:
Típus |
Megjelenés éve |
Valós memória (Mbyte) |
Virtuális memória |
|
8086 |
1978 |
1 |
|
20 bit |
80286 |
1982 |
16 |
1 Gbyte |
24 bit |
80386 |
1985 |
4096 |
64 Tbyte |
32 bit |
Regisztertér:
Osztályozása:
egyszerü
adattípusonként különbözö
többszörös
Egyszerü regisztertér:
Egyszerü regisztertér
40-es évek egyetlen akkumulátor |
50-es évek egyetlen akkumulátor + dedikált regiszter |
60-as évek általános célú regiszterkészlet |
Verem regiszterek |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Egyetlen akkumulátor
Hátránya:
1. Szük keresztmetszet.
2. Két eredmény esetén csak az egyiket tudta tárolni (pl.: osztásnál a hányados és a maradék).
Egyetlen akkumulátor + dedikált regiszter
Elönye:
A hányados regiszter bevezetése felgyorsította az osztást.
Hátránya:
Igen drágán valósították meg, mégis gyakran kihasználatlan volt.
Általános célú regiszterkészlet
Elönye:
1. Minden regiszter kihasználtsága javul.
2. Új programozói stílus: a regiszter operandusú müveletek számának maximalizálása.
Verem regiszterek
Hátránya:
Szük keresztmetszet, mivel csak a verem tetejét látjuk.
Elönye:
Gyors.
Adattípusonként különbözö regiszterkészlet:
Megjelenésének oka a lebegöpontos feldolgozás gyorsítása.
MMX2 (Katmai) Egy utasítással több müveletvégzést
ér el. A vektorgrafikánál fontos. 12 bites, 3D filmeket ez tette
lehetövé. általános célú regiszterkészlet lebegöpontos regiszterkészlet
Megjelenés éve: |
Típus |
Általános célú regiszterkészlet |
Lebegöpontos regiszterkészlet |
Katmai (MMX2) |
1964 |
IBM 360 |
16x32 |
4x64 |
|
1985 |
Intel 80386 |
8x32 |
8x80 |
|
1990 |
IBM RISC 6000 |
32x32 |
32x64 |
|
1998 |
Pentium III |
8x32 |
8x80 |
8x128 |
Többszörös regiszterkészlet:
Háttérismeretek:
kontextus:
a) regiszterek aktuális értékei
b) az állapottér (flag, PC)
Megszakításkor a futó program kontextusát le kell menteni annak érdekében, hogy a megszakítás feldolgozása után azt visszatöltve a program futása folytatódhasson.
Többfeladatos és többfelhasználós környezetben igen sok megszakítás lép fel. A kontextus memóriába való mentése lassú → gyorsítás többszörös regiszterkészlet révén.
Fajtái:
Paraméterátadásos eljáráshívásoknál a paraméterátadás csak memórián keresztül történhet, így nem gyorsít.
Ideális
egymástól független megszakításoknál,
pl.: I/O megszakítások
|
Locals INS
A hívóeljárás OUTS része fizikailag megegyezik a
meghívott eljárás INS részével → nincs paraméterátadás
INS OUTS Locals INS OUTS
Regiszterek száma merev → viszonylag üres
regiszterkészlet esetén is elöfordulhat túlcsordulás.
Locals
A túlcsordult paraméterek mentése a memórián
keresztül történik → lassú.
OUTS
Konkrét regiszter számok: (ins/locals/outs)
RISC I: 6/10/6
SPARC: 8/8/8
regiszterkészletek
száma
Regiszterkészletek
száma:
A programozás módszertana sem ajánl nyolcnál több egymásba ágyazott eljárást, mivel az ennél több már nehezen tekinthetö át.
a stack verem szervezését és
a regiszterek közvetlen címzési lehetöségét egyesíti.
Müködése:
A compiler minden eljáráshoz hozzárendel egy változó hosszúságú aktiválási rekordot (regiszterkészlet).
A SP lehetövé teszi az aktiválási rekordok közvetlen elérését.
A SP és a relatív távolság megadásával bármely adat közvetlenül elérhetö a stack-cache-ben.
Az aktiválási rekordok számának csak a stack cache fizikai mérete szabhat határt.
Adatmanipulációs fa
Legfelsö szintjén az adattípusok 141h71b FX1 FX2 . FP4 ...
Müveletek 141h71b 141h71b 141h71b + - × ÷ ...
Operandustípusok 141h71b 141h71b rrr rmr mmm
Pl.: két regiszteroperandus és az eredmény is regiszter.
Címzési módok (memória) 141h71b R+D PC+D RI+D ...
Gépi kód 141h71b 141h71b ...... (minden architektúra más és más)
Az adatmanipulációs fa megmutatja:
egyrészt a lehetséges adattípusokat, müveleteket, operandustípusokat és címzési módokat.
másrészt egy alfája pedig megmutatja egy adott modell által megvalósított lehetöségeket.
A gyakorlati megvalósítás: 141h71b 141h71b általános célú
A nyolcvanas évekig: 141h71b 141h71b címszámító
technológiai korlát: a lapkaméret
adott, ezért lebegöpontos .
koprocesszorkészletként alakították ki.
gazdasági korlát (pl.: drága a bövítés, a lebegöpontos rendszer több millió Ft.)
Tudományos-müszaki célú konfiguráció: volt benne lebegöpontos aritmetika.
Gazdasági célú konfiguráció: Karakteres müveletek + BCD feldolgozás.
Adattípusok:
Elemi
Összetett adattípusok (adatstruktúrák vagy adatszerkezetek): elemi adattípusokból épülnek fel, pl.: tömb, verem, fa, sor.
Elemi adattípusok:
numerikus
karakteres
logikai
pixel
Numerikus:
fixpontos
a) egyes komplemens
b) kettes komplemens
1. elöjeles
a. byte 8 bit
b. félszó 16 bit
c. szó 32 bit
d. duplaszó 64 bit
e. quadroszó 128 bit
2. elöjel nélküli
c) többletes
lebegöpontos
a) normalizált
1. hexadecimálisan normalizált
a. IBM
2. binárisan normalizált
a. IEEE
1. egyszeres pontosságú 32 bit
2. kétszeres pontosságú 64 bit
3. kiterjesztett pontosságú 128 bit
b. VAX
b) nem normalizált
BCD (Binary Coded Decimal)
a) Pakolt
1. ASCII
Mikroszámítógépek
2. EBCDIC
IBM nagyszámítógépek
b) zónázott
Karakteres:
ASCII
a) Szabványos 7 bit (interneti)
b) Kiterjesztett 8 bit (nemzeti karakteres)
EBCDIC a decimális értékeket kiterjesztették karakterre is.
Unicode
Logikai:
1 byte
2 byte
4 byte
változó
Müveletek:
A müveleteket pontosan kell definiálni, beleértve a kivételek kezelését is (pl.: a nullával való osztás).
Az utasítás-feldolgozás:
MK: müveleti
kód, mit csináljon a processzor Címrész: mivel
tegye mindezt
Egy gépi kódú utasítás általános formátuma.
MK |
Címrész |
Az utasítás-feldolgozás nagyvonalú folyamatábrája:
MAR: Memory Address Register - memória-címregiszter (egyirányú).
PC: Program Counter.
MDR: Memory Data Register - memória-adatregiszter (kétirányú).
IR: Instruction Register - utasításregiszter.
DEC: Decoder.
ALU: Arithmetical Logical Unit - müveletvégzö (utasítást is képes továbbítani).
AC: Accumulator - általános célú regiszterkészlet.
Egy hagyományos szekvenciális feldolgozást végzö processzor részei:
141h71b 141h71b 141h71b 141h71b 141h71b adatsín
141h71b 141h71b 141h71b 141h71b 141h71b címsín
141h71b 141h71b 141h71b 141h71b 141h71b 141h71b 141h71b processzor
MAR MDR Vezérlö
egység PC IR AC DEC
I. Utasítás lehívás
A PC tartalmazza a következö végrehajtandó utasítás címét.
MAR ← PC
MDR ← (MAR) - nem a címét jutatja el, hanem a tartalmát.
IR ← MDR - itt már az IR-ben adat van.
PC ← PC + 1 - következö feldolgozandó utasításra mutat, a +1 egységre utal, 2, 4 byte lehet.
Ez a folyamat minden utasítás esetén megegyezik.
II. Utasítás végrehajtás
Betöltés (load):
DEC ← IR
MAR ← DECcímrész
MDR ← (MAR)
AC ← MDR
Aritmetikai-logikai utasítások:
DEC ← IR 141h71b értelmezi, hogy mi van a címrészben
MAR ← DECcímrész a másik tag
MDR ← (MAR) elmentése
AC ← AC + MDR vagy
AC ← AC - MDR vagy müveletvégzés
AC ← AC és MDR
Kiírás (store):
DEC ← IR
MAR ← DECcímrész
MDR ← AC
(MAR) ← MDR - meghatározott helyre történö visszaírás.
feltétlen vezérlésátadás (ne a soron következö utasítást végezze, hanem amit mi megadunk):
DEC ← IR
PC ← DECcímrész
8 egységes egy összeadás. A vezérlöegység és a dekóder hangolja össze.
Az utasítások fajtái (típusai):
op - operandus
s - source (forrás)
d - destination (cél)
@ - tetszöleges müvelet
4 címes utasítás
opd:=ops1@ops2, op4
MK |
Opd |
ops1 |
ops2 |
op4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Az op4 a következö utasításra mutat, csak néha van nagy ugrás. Neumann szerint PC és címregiszter legyen az op4 helyett.
Hátránya:
memóriapazarló
adatrögzítési hibák lehetösége nö
nehézkes a program karbantartása
3 címes utasítás
opd:=ops1@ops2;
Az eredmény helyének explicit deklarálása.
Elönye:
Az aktuális utasítás eredményének mentésével párhuzamosan betölthetjük a következö utasítás bemenö operandusait.
Hátránya:
Neumann szerint: Az aktuális müvelet eredménye tipikusan a következö müvelet egyik bemeneti operandusa.
Pl.: RISC számítógépek (processzorok).
2 címes utasítás
ops1:=ops1@ops2; a mai gyakorlat általában
ops2:=ops1@ops2;
Pl.: ADD[100],[102]; [memóriacímek]
Elönye:
Memória- vagy regisztertakarékosabb, kiküszöböli a Neumann által említett hátrányt.
Hátránya:
Az a forrásoperandus, ahol az eredmény képzödik értékét veszti, ha késöbb szükségünk van rá, a müvelet elött ki kell menteni.
Pl.: IBM 360/370, Intel processzorok.
1 címes utasítás
Az egyik forrásoperandust betöltjük az AC-ba: LOAD[100]
Az AC aktuális tartalmához hozzáadjuk az utasításban szereplö operandust: ADD[102]
Végül az AC tartalmát kimentjük az operatív tárba: STORE[100]
Elönye:
Rövidebb utasítások.
Hátránya:
Több utasítást kell használnunk.
Pl.: 1951 IAS (Neumann gépe), csak az 50-es 60-as években készült ilyen processzor.
0 címes utasítás
Fajtái:
NOP (no operation).
Veremmüveletek (csak a verem tetejét látja): POP, PUSH.
A müveleti kód tartalmazza az operandust, pl.: CLEAD (a D flag törlése).
Napjaink trendje:
CISC:
kétcímes
az elsö helyen képzödik az eredmény
tipikusan csak a második cím lehet memóriacím
RISC:
aritmetikai-logikai utasítások esetén háromcímes utasítások
mindhárom regisztercím
Az operandusok elhelyezkedése
Az operandusok elhelyezkedése |
||||
Akkumulátor A |
Memória M |
Regiszter R |
Verem (stack) S |
Immediate I |
Immediate: A programban adunk értéket → bemenö operandus.
Az architektúrák fajtái:
szabályos:
a) A
1. A-R
a. AAR
b. ARA
2. A-M
a. AAM
b. AMA
b) M
1. Kétcímes
a. M1M1M2
b. M2M1M2
2. Háromcímes
a. M1M2M3
c) R
1. Kétcímes
a. R1R1R2
b. R2R1R2
2. Háromcímes
a. R1R2R3
d) S
1. SSS
Kombinált architektúrák, pl.: M és R (CISC).
Akkumulátor:
Elöny: Gyors, rövid címrész.
Hátrány: Szük keresztmetszet.
Napjainkban nem aktuális.
Regiszter:
Elöny: Gyors, rövid címrész.
A mai RISC számítógépek mindegyike.
Memória:
Elöny: Nagy címtér.
Hátrány: Hosszú címrész, hosszú utasítások, lassú.
Napjainkban nem aktuális.
Verem:
Elöny: Gyors, rövid címrész (0 hosszúságú).
Hátrány: Szük keresztmetszet.
Pl.: HP3000, VT1005, Napjainkban nem aktuális.
Gépi kód
Minden architektúra esetében különbözö.
Állapottér
Felhasználó számára látható
a) PC
b) Állapot jelzök
1. CC (Condition Code)
2. Állapot indikátorok
3. Adattípusonként különbözö állapotindikátorok
c) Egyéb, a felhasználó számára látható állapotjelzök
1. Nyomkövetés (debug)
2. Címzés regiszterei (indexregiszter)
Felhasználó számára transzparens
a) Megszakítások
b) Virtuális tárkezelés
c) Veremkezelés
d)
Condition Code:
1964 → IBM360
2 bit → 4 értékkel
Állapotindikátorok:
Minden bithelyiérték jelentéssel rendelkezik, pl.: 0 negatív, túlcsordulás (flag).
Adattípusonként különbözö állapotindikátorok:
Minden regiszterkészlethez külön állapotregiszter tartozik (flag)
Általános célú állapotregiszter.
Lebegöpontos feldolgozás állapotregisztere.
Megszakításoknál (fejlödés íve):
1973 → IBM 370-es gépcsaládnál bevezetik a PSW-t (Program Status Word): megszakításoknál a PSW-t mentik el.
Kontextus:
a) A regiszterek aktuális értékei és
b) Az állapottér aktuális értékei (PC, flag)
Megszakításnál a kontextust mentik.
Állapotmüveletek |
|
PC |
Flag |
Inkrementálás (növelés) |
Set (beállítás) |
Felülírás |
Save (mentés) |
|
Load (visszatöltés) |
|
Clear (törlés) |
|
Reset (kezdeti értékek visszaállítása) |
Processzorszintü fizikai architektúra
Processzor: müveletvégzö + vezérlö.
Szinkron: egy elektronikus óra meghatározott idöközönként órajelet ad. Minden elemi müvelet órajelre kezdödik. Az elemi müveletek különbözö ideig tartanak → idöveszteség. Megvalósítása egyszerü és olcsó. Van olyan jel, ami nem hajtódik végre egy órajel alatt, ezt a gép lekezeli.
Aszinkron: minden elemi müvelet befejezése egyben jelzés a következö müvelet megkezdéséhez. Az elemi müveletek befejezésének észlelése bonyolult és drágán valósítható meg. Az elemi müvelet befejezésének észlelése is idöt igényel → itt is van holtidö.
A ma piacon lévö processzorok szinkron vezérlésüek, ~3 GHz a frekvenciájuk.
Müveletvégzö (ALU)
Részei:
Regiszterek
Adatutak
Kapcsolópontok
A szük értelemben vett ALU
Regiszterek:
Programozó által látható: a logikai architektúrában tárgyaltuk.
Rejtett regiszterek: az adatfeldolgozási technológiához szükséges puffer regiszterek.
Adatutak:
A müveletvégzö egységen belül nem értelmezett a címsín, hisz a memória hozzáférést a vezérlö végzi.
Egy aritmetikai-logiaki müvelet hipotézise (R2 ← R0@R1):
Src0 ← R0
Src1 ← R1
Rslt ← Src0@Src1
R2 ← Rslt
(Src - source, Rslt - result)
Rejtett regiszterek: Src0, Src1, Rslt.
Felhasználói regiszterek: R0, R1, R2.Rn.
Kapcsolópontok:
A sín megosztott eszköz, egyidejüleg csak egy adó lehet.
141h71b 141h71b 141h71b 141h71b 141h71b sín
141h71b 141h71b 141h71b 141h71b kapcsolópontok
Un U3 U2 U1
141h71b 141h71b ....
A kimenö kapcsolópontok háromállásúak: 0, 1, zárt.
A bemenö kapcsolópontok kétállásúak: nyitva, zárva.
A kapcsolópontok architekturálisan a regiszter részét képezik.
A szük értelemben vett ALU:
A szük értelemben vett ALU
Fixpontos |
Lebegöpontos |
BCD |
Egyéb |
Összeadás |
Összeadás |
Összeadás |
Logikai |
Kivonás |
Kivonás |
|
Címszámítás |
Szorzás |
Szorzás |
|
Léptetés |
Osztás |
Osztás |
|
|
Multimédia |
Multimédia |
|
|
Fixpontos összeadás
Az összeadás alapvetö müvelet, hiszen erre vezetjük majd vissza a szorzást, a kivonást és az osztást. Tehát a sebessége alapvetöen meghatározza a processzor sebességét.
Egybites félösszeadó 141h71b A B S C
A 1 141h71b 141h71b 0 0 0 0
B 1 141h71b 141h71b 0 1 1 0
S 0 141h71b 141h71b 1 0 1 0
141h71b 141h71b 141h71b 1 1 0 1
átvitel - carry (C); összeg - sum (S)
Logikai függvények felírása: S=A B; C=AB
Hátránya: Nem veszi figyelembe a bejövö átvitelt.
Egybites teljes összeadó
Figyelembe veszi a bejövö átvitelt (megvalósítása két félösszeadóból).
Az igazságtáblázat felírása:
A |
B |
Cin |
S |
Cout |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
A logikai függvények felírása (Cin jelölése C-vel):
S=A B C
Cout=ABC+ABC+ABC+ABC
Négy és kapu + egy vagy kapu = öt elem.
Azonos átalakítások a következö célfüggvényekkel:
Az elemszám minimalizálása.
Végrehajtási idö minimalizálása.
Felhasznált azonosságok: ABC=ABC+ABC+ABC; A+A=1.
Cout=ABC+ ABC+ ABC+ ABC+ ABC+ ABC=(A+A)BC+(B+B)AC+(C+C)AB = =BC+AC+AB=AB+(A+B)Cin
Megvalósítás összeadó (S):
Kimenö átvitel (Cout):
4 db elem → 20%-os megtakarítás.
d - egy elem késleltetése → T=3d
T=2d → végrehajtási idöben 33% a megtakarítás
n-bites soros összeadó
Megjelenésének oka az, hogy az összeadandók tipikusan n bit hosszúságú regiszterekben helyezkednek el. n fokozatosan növekszik (ma: 32/64).
Jellemzöi:
A két operandus léptetöregiszterben (shift) helyezkedik el.
Az eredmény az A operandus helyén képzödik.
A kimenö átvitelt tárolóba vagy késleltetöbe helyezzük, hogy a következö bitpároshoz (összeadáshoz) megfelelö idöben érkezzen.
A Cin csak az elsö bithelyiérték összeadásakor aktív.
Értékelése:
Ha az egybites teljes összeadó müveleti ideje t, akkor az n-bites összeadási ideje: T=n×t.
Gyorsítás:
t: A lehetö leggyorsabb kialakítást alkalmazzuk.
N: Az egybites teljes összeadók számát megtöbbszörözzük → n-bites párhuzamos összeadóra.
n-bites párhuzamos összeadó
4 bites párhuzamos összeadó tesztelése:
I. eset:
A 0101 Cin=0; T=t
B +1010
141h71b 1111
II. eset:
A 0101 Cin=1; T=n×t
B +1010
1. lépés 1110 C0=1
2. lépés 1100 C1=1
3. lépés 1000 C2=1
4. lépés 0000 Cout=1
Értékelés:
Igen komoly beruházás árán (egy darab helyett n db egybites teljes összeadó) csupán hullámzó teljesítményt értünk el. Az ok: meg kell várni az átvitel terjedését.
Az átvitel elörejelzéses összeadó (Carry Look-Ahead - CLA)
Cout=AB+(A+B)Cin
AB → G (Generate)
A+B → P (Propagate)
Az egyes bithelyiértékeken keletkezö átvitel függ
a bemenö operandusoktól és
a kívülröl beérkezö átviteltöl,
melyek elöre ismertek, de nem függ az elözö bithelyiértékeken keletkezö átviteltöl.
Az egyes bithelyiértékeken keletkezö átvitel:
Ci=Gi+Pi×Ci-1
C0=G0+P0×Cin
C1=G1+P1×C0=G1+P1×G0+P1×P0×Cin
C2=G2+P2×C1=G2+P2×G1+P2×P1×G0+P2×P1×P0×Cin
Értékelése:
Szorzatok sorozata: 141h71b 141h71b 1 fokozat
Összekapcsolásuk egy vagy kapuval: 141h71b 1 fokozat
P és G meghatározásához egy vagy és egy és kapu kell: +1 fokozat
141h71b 141h71b 141h71b 141h71b 3 fokozat
Amennyiben egy fokozat végrehajtási ideje d, akkor egy bithelyiérték átviteli idejének meghatározása: T=3d
Megvalósítási alternatívák
1. Katalógus áramkör egy bites teljes összeadók + CLA
2.
Az egybites teljes összeadókat
kiegészítjük a P és a G meghatározásához szükséges kapukkal (vagy valamint és
kapuk)
A vagy kapu bemeneteinek száma technológiai korlátba ütközik, ezért max. 8
bithelyiértékre alakítható ki a CLA.
3. 32 bites megoldás: A CLA-k között az átvitel sorosan terjed
4. A CLA-khoz is hozzárendelünk egy CLA-t
Fixpontos kivonás
Megtervezhetö az egybites félkivonó és az egybites teljes kivonó.
Alkalmazásuk hátrányai:
A kivonás csak akkor ad helyes eredményt, ha a nagyobb számból vonjuk ki a kisebbet. → Minden kivonást megelözöen komparálnunk kellene, ezért lassúbb.
A kivonó áramkörök megvalósításával megduplázódik a müveletvégzö helyfoglalása, a lapka mérete pedig korlátozott.
Megoldás:
Az operandusok átkódolása és a kivonás visszavezetése összeadásra.
Hagyományos kivonás:
A 13 1011
-B -(+7) 0111
X +6 elvetettük
Egyes komplemenses kivonás
Meghatározása:
A pozitív szám egyes komplemense maga a szám.
A negatív szám esetén pedig bitenként invertálnunk kell.
A 01101 13
-B +11000 +(-7)
X 100101 +5
1
0|0110 +6
Kettes komplemenses kivonás
Meghatározása:
Pozitív szám kettes komplemense megegyezik magával a számmal.
Negatív szám esetén:
a) Az egyes komplemenshez hozzáadunk egyet.
b) Hátulról az összes nullát és az elsö egyest leírjuk, a többit invertáljuk: 010010011000-ból 101101101000 lesz.
Példa:
A 13 01101
-B +(-7) +11001
X +6 00110B = +6D
Az ideális az lenne, ha tudna összeadni is → megoldása vezérelhetö TRANS egységgel:
Igazságtábla:
Vezérlés B B'
0 0 0
0 1 1 változatlan
1 0 1 invertált
1 1 0
Megvalósítás:
A 13 1101 összeadandó
-B +(-7) +1000 invertált összeadandó
X +6 1 a vezérléstöl ide vezetve
141h71b 0110B = +6D
Szorzás, osztás
Minden müveletvégzönek ismernie kell az összeadást, az invertálást és a léptetést, de nem kell tudnia a szorzást és az osztást.
Fejlödés:
Régen:
a) Olcsó processzor, aminél alacsonyszintü nyelven írt rutin végzi a szorzást és az osztást.
b) Középárú processzor, aminél mikroprogram végzi a szorzást és az osztást.
c) Drága processzor, aminél áramköri úton megvalósított a szorzás és az osztás.
Napjainkban:
a) PowerPC 604
1. Két darab müveltvégzö az egyszerü fixpontos müveletekhez (+,-).
2. Egy darab müvelet végzö az összetett fixpontos müveletekhez (×,÷).
b) PentiumPro
Fixpontos müveletvégzök:
általános célú
léptetö
egész osztó
összeadó / kivonó
szorzó
osztó
Szorzás
X=A×B
Hagyományos szorzás: Algoritmizált változat:
13×123 141h71b 141h71b 13×123
39 141h71b 141h71b 0000 felveszünk egy gyüjtöt, amit nullázunk
26 141h71b 141h71b 39
13 141h71b 0039
1599 141h71b 141h71b 260 10-zel szorozzuk
141h71b 141h71b 0299
141h71b 141h71b 1300 100-zal szorozzuk
141h71b 141h71b 1599
10/100-zal való szorzás helyett léptetés:
13×123
0000 141h71b Konklúzió (decimális számoknál):
39 141h71b Az összeadási ciklus annyiszor fut le,
0039 141h71b ahány helyiértékböl áll a szorzó.
26
0299
13
1599
A bináris szorzás sajátosságai:
A bináris szám hossza
Példa |
Decimális
szám |
Bináris
szám |
9 |
1 |
4 |
99 |
2 |
7 |
999 |
3 |
10 |
Konklúzió:
A bináris szám hosszabb, mint a decimális, ezért a ciklus többször fut le.
A szorzat hossza
|
A decimális helyiértékek száma |
Általánosítva |
|||
A |
1 |
2 |
2 |
m |
|
B |
1 |
1 |
2 |
n |
|
Xmax |
2 |
3 |
4 |
m+n |
|
Példa: |
|
9×9 |
99×9 |
99×99 |
|
A szorzó és a szorzandó egy-egy regiszterben helyezkedik el, ezért az eredmény két regiszterben képzödik.
Példa:
Legyen egy regiszterünk három helyiértékü, a szorzat kisebb helyiértékei keletkeznek a szorzó helyén:
|
|
|
|
1 |
2 |
3 |
|
|
|
|
|
9 |
1 |
2 |
|
|
|
|
|
9 |
9 |
1 |
|
0 |
0 |
1 |
|
5 |
9 |
9 |
eredmény |
A bináris szorzás gyorsítása:
Bitcsoportokkal való szorzás: A
szorzó helyiértékeit nem egyesével, hanem csoportokban kezeljük, így a
csoportokat léptethetjük, ami gyorsabb.
Pl.: kettes csoportokban:
00 - kettöt léptetünk balra.
01 - a gyüjtöhöz hozzáadjuk a szorzandó egyszeresét és kettöt
léptetünk balra.
10 - a gyüjtöhöz hozzáadjuk a szorzandó kétszeresét és kettöt
léptetünk balra.
11 - a gyüjtöhöz hozzáadjuk a szorzandó háromszorosát és kettöt
léptetünk balra.
Segédszámítás: a
szorzandó kétszerese: 0111 0111 1110 0111→1110
Példa:
7×9 = 0111×10|01
A: összeadással
0000
0111
0111
B: léptetéssel
1110
111111B = 63D
Booth féle algoritmus:
Bináris számok esetén az összeadási ciklus annyiszor fut le, ahány egyes van a szorzóban (nulla esetén csak léptetünk).
A szorzóban lévö egyesek számának csökkentése a cél.
Példa:
62-vel kell szorozni:
62=111110B 5 db összeadás.
Helyette:
×64=100000B 1 db összeadás Összesen 3 db müvelet, 40%-os
×2=000010B 1 db összeadás idömegtakarítás, pl.: mai processzorok
- 141h71b 1 db kivonás mindegyike.
Osztás
X=A/B
Hagyományos osztás:
150/48
150 I 141h71b Konklúzió: Minden kivonás elött
-48 141h71b 141h71b komparálunk (összehasonlítunk), ezért lassú.
102 II
-48 141h71b 3,1.
54 III
-48
60 I
-48
120 I
-48
72 II
Visszatérés a nullán át csak az elöjel flag-et vizsgálva:
150
-48
102 I
-48
54 II
-48
6 III
-48
-42 kiírja a gyüjtöt (3,)
+48 hozzáadja a maradékhoz az osztót (-42+48)
60 tízszerezi (6×10=60) és folytatja
-48
12
-48
-36 kiírja a gyüjtöt (,1).
+48
Itt minden kivonás automatikus (nincs komparálás, ami lassú). Mivel nem kell minden kivonás elött komparálni, csak a gyors elöjel flag vizsgálatot végezzük, a két felesleges müvelet (hozzáadás +48 és szorzás) ellenére gyorsabb.
Visszatérés nélküli osztás:
11/6
11 I 141h71b 1,8
-6
5 10. lépés 141h71b kiírja a gyüjtöt
-6
-10 9. lépés szorozza 10-zel
+6
-4 8. lépés
+6
+20 I
-6
14 II
-6
8 III
-6
2 10. lépés
-6
-40 9. lépés
Fixpontos multimédia feldolgozás
A probléma felvetése:
A, Hangfeldolgozás:
analóg jel
digitális jelfeldolgozásához digitalizálni kell analóg digitális (A-D) konverter
Amplitúdó vagy felbontás:
A leképezendö hanghullám minimális és maximális értékhez hozzárendeljük az értelmezési tartományunk minimális és maximális értéket.
8 bit 256 pontos felbontás
16 bit 65536 pontos felbontás (a mai gyakorlat)
Mintavétel:
Példán keresztül: Egy 50kHz-es mintavétel azt jelenti, hogy másodpercenként 50000 mintát veszünk az adott hullámból (minden egyes mintánál az amplitúdó értékét tároljuk el).
Mai példák:
Alkalmazás kHz
a) Telefon 141h71b 8
b) Audio CD 44
c) DVD 141h71b 48
d) DVD (minöségi) 96
Egy másodperc hanganyag tárolási igénye audio CD, 16 bites felbontás, sztereó esetén:
44000 minta×2 byte felbontás×2 a sztereó miatt = 176000 byte/sec ~ 170 kbyte/sec
Percenként: 60×170 ~ 10Mbyte/min
Feladat: Nagy tömegü fixpontos adat
tárolása
továbbítása
feldolgozása
B, Pixeles képfeldolgozás:
A fénykép és a festmények analóg formátumúak, hiszen a fények, árnyékok és színek folyamatos átvitelével írhatók le.
A képeket digitalizálnunk kell.
Felbontás:
A képeket képpontokra (pixel) bontjuk. Minél sürübb a rácsszerkezet, annál jobb minöségü képet kapunk a digitalizálás során. Minél kisebb egy pixel, annál jobb a leképezés. Pl.: 800×600; 1280×1024
Pixelek vagy képpontok:
Minden szín leírható három szín
összetételeként, tehát minden pixelhez három darab színkódot kellene
hozzárendelni, de helyette ezeket egyetlen vektorrá kódolták.
Pl.: 000 → 0, 001 → 1, 010 → 2 .
A pixelek lehetséges értékei:
1 bit: fekete-fehér, sötét-világos
1 byte: 256 féle színt írhatunk le
2 byte: 65536 féle szín (high-color)
3 byte: 224 féle szín (true-color) (az emberi szem ennyit nem tud megkülönböztetni, azért jó a sok szín, mert a számítógép ezt is tudja értelmezni)
4 byte: a negyedik byte az úgynevezett alfa csatorna, az effektek jelzésére szolgál (pl.:
átlátszóság mértéke)
Egy kép tárolásához szükséges memóriaterület:
|
egy byte |
két byte |
800×600 |
480000 byte |
960000 byte |
1280×1024 |
1,3 Mbyte |
2.6 Mbyte |
A képfeldolgozás feladata: Nagy tömegü fixpontos adat tárolása, továbbítása, feldolgozása.
Megoldás:
Tárolás, továbbítás hatékony tömörítéssel.
Feldolgozás:
Probléma: a 3 perces számot 3 perc alatt le kell tudni játszani
Hagyományos feldolgozás:
pl.: 2 kép összeadása a 800×600-as felbontás mellett
1. Az 1. kép 1. byte-ját betöltjük az AC-ba.
2. A 2. kép 1. byte-ját hozzáadjuk az AC-hoz, az eredmény az AC-ban keletkezik.
3.
Az AC tartalmát lementjük az
eredmény memóriaterületre.
Ez a ciklus 480000-szor fut le. (minden bájtra)
Megoldás SIMD módszerrel (single instruction, multiple data):
Több adattal ugyanazt az utasítást hajtja végre, ~ 8-szoros gyorsítást eredményez, 60000-szer fut le a ciklus.
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
141h71b 8 db
A gyakorlatban kétféle megoldás:
multimédia segédprocesszor
az általános célú processzorba beleintegrálják a multimédia feldolgozó egységét.
Az Intel MMX kiterjeszés:
a) 1997-ben jelent meg
b) Matrix Math Extension (Multimedia Extention)
c) Logikai architektúra:
1. Pakolt adattípusok bevezetése
a. Ezek mindegyike 64 bites, ami megegyezik a processzor belsö sínjének szélességével.
b.
Fajtái:
pakolt byte: 8 db 8 bites = 64 bit,
pakolt félszó: 4 db 16 bites = 64 bit,
pakolt szó: 2 db 32 bites = 64 bit.
2.
Új utasítások bevezetése
A négy aritmetikai müvelet (+,-,×,÷) és a logikai müveletek mindhárom
új adattípushoz.
d) Fizikai architektúra:
1. Az Intel nem akart új regisztereket bevezetni az új adattípusokhoz, hanem a 80 bites lebegöpontos regisztereket használja a 64 bites pakolt adattípusok feldolgozására.
2. Egy évre rá az MMX müveletvégzöket 2-re növelték, így a ciklusok száma 30000-re csökkent.
Lebegöpontos müveletvégzés
A lebegöpontos ábrázolás kialakulásának oka a fixpontos ábrázolás következö hiányosságai:
A szük értelmezési tartomány, pl.: integer esetén -32768 - +32767-ig.
A törtérték ábrázolásának
pontatlansága, pl.: 7/4=1.
Amennyiben a kettedes pontot a regiszter végére helyezzük, akkor 7/4=1, ami nem
elégíti ki a gyakorlati igényeket. Ha több a kettedes pont utáni hely, akkor
kevesebb jut az egész számok ábrázolására.
Ezen hátrányokat küszöböli ki a sokkal bonyolultabb lebegöpontos ábrázolás, itt a számokat hatványkitevös formában írjuk fel:
Mr k M a mantissza, r a radix (a számrendszer alapja), k a karakterisztika.
Története:
1933-ban Konrad Zuse elkészítette a Zuse-3 nevü jelfogós számítógépet, melyben alkalmazta a lebegöpontos ábrázolást.
Neumann két okból ellenezte:
a) Maguk a számok hosszúak sok memóriát igényel
b) A számítások bonyolultak bonyolult a müveletvégzö és annak vezérlése
70-es évek föbb formátumirányzatai:
a) Vax
b) Cray
c) IBM 370/390
1985: az IEEE szabványosítja
Jellemzöi:
Radix:
a) Architektúránként állandó
b) Tipikusan kettes számrendszer
c)
Az IBM 370/390 esetében 16
Nem normalizált:
123,456×100=0,123456×103=1234,56×10-1=.
Nagy szabadságfok
Napjainkban a piacon nincs ilyen
architektúra.
Normalizált:
a) Képlettel: 1/r M<1; 1/2 M<1; 1/10 M<1
b) Szöveggel: A törtpontot mindig az elsö értékes számjegy elé tesszük a mantisszában:
-0,9999×10n-1 141h71b -0,1×10-n 0,1×10-n 141h71b 0,9999×10n-1
141h71b túlcsordulási felhasználható alulcsordulási felh. túlcsordulási
141h71b régió régió 141h71b régió régió régió
Alulcsordulás - túlcsordulás:
a) Alulcsordulás iránti architektúrális követelmény:
1. Kijelzi.
2. Nullát vagy denormalizált számot ábrázol.
b) Túlcsordulás iránti architektúrális követelmény:
1. Kijelzi.
2.
Vagy a lehetö legnagyobb
számot vagy elöjeles végtelent ábrázol. Azért van a két végén (n-1), mert
az n fenn van tartva a végtelen jelzésére.
Denormalizált szám: Szabály szerint nem ábrázolhatom a 0,04-et (0 0,04 0,1), de egy flag helyiértéket hozzárendelek, és azzal jelzem, hogy ez egy
denormalizált szám.
Verseny van a processzorgyártók között a pontosság miatt, ezért a mai
architektúrák alkalmazzák.
Nulla környéki számok: Amennyiben
a mantissza nulla, akkor elvárt az architektúrától, hogy a karakterisztika is
nulla legyen.
Értelmezési tartomány:
A karakterisztika helyiértékeinek száma: |
Példa |
Konklúzió |
Tízes számrendszer |
||
1 |
99 milliárd |
Függ a karakterisztika helyiértékeinek számától. |
2 |
999 milliárd |
|
Kettes számrendszer |
||
1 |
21 egyesek |
Függ a számrendszer alapjától. |
Pontosság: Három helyiérték áll rendelkezésre a mantissza számára a regiszterben. Ábrázolni kell a 0,1234 mantisszát. Ekkor csak a 0,123 ábrázolható, s ha pl. a karakterisztika 106 (0,123400), akkor a pontatlanság 400 veszteséget okoz. Konklúzió: A pontosság függ a mantissza hosszától.
Rejtett bit:
Mantissza esetében a normalizálás
szabálya kettes számrendszerben 1/2≤M<
Ezért az operatív tárba vagy háttértárba való kiírás elött a rejtett bitet balra léptetjük és jobbról beléptetünk egy értékes helyiértéket. A mantissza hossza ezáltal 1 bit helyiértékkel nö, így növekszik a pontosság.
Az operatív tárból vagy háttértárról való beolvasás során a processzoron belül helyreállításra kerül a rejtett bit, így a beolvasott adat feldolgozásra kész formára alakul.
A Zuse-3 (1933) már alkalmazta a rejtett bitet, és napjainkban is valamennyi piacon lévö architektúra alkalmazza.
Őrzö bitek:
A lebegöpontos számok mantisszáját a processzoron belül hosszabb formátumban tároljuk, mint az operatív tárban.
Amikor az eredményt normalizáljuk, és jobbról további helyiértékeket beléptetünk, akkor az örzöbitek lehetövé teszik, hogy ezek értékes helyiértékek legyenek.
A rejtett bit balra kiléptetésekor így jobbról értékes bit kerül beléptetésre.
A legutolsó tárolt bit ily módon kerekített bit lehet.
Napjainkban minden architektúra alkalmazza az örtö bitet.
Mantissza kódolása: A mantissza a gyakorlatban mindig kettes komplemens formában tárolt.
Karakterisztika kódolása: A karakterisztika többletes formában tárolt.
a) A többletes kód gyorsabban alakítható ki, mint a kettes komplemens.
b) A karakterisztikával csak léptetést, összeadást és kivonást lehet végezni, s ez többletes kóddal is helyesen elvégezhetö.
IEEE 754-es lebegöpontos szabvány
1977-ben kezdték kidolgozni.
Cél: a különbözö architektúrák közti adatszintü kompatibilitás megteremtése.
Rendszerszintü szemlélet, azaz nem írták elö a gyártóknak, mit valósítsanak meg hardver, és mit szoftver úton.
Nem valamelyik gyártó által kialakított megoldást fogadták el, hanem valamennyi architektúra lebegöpontos megoldásából összegyüjtötték a legjobbakat.
A szabvány 1985-ben jelent meg, az elsö gyakorlati megvalósítása 1981-ben jelent meg.
A szabvány fejezetei:
Formátumok
Müveltek
Kerekítések
Kivételek kezelése
Formátumok:
a) Szabványos
1. Egyszeres pontosságú
2. Kétszeres pontosságú
b) Kiterjesztett
1. Egyszeres pontosságú
2. Kétszeres pontosságú
Szabványos - kiterjesztett:
a) A szabványos formátum az operatív tárban illetve a háttértárolón alkalmazott formátum ezt pontosan beszabályozták.
b) A kiterjesztett formátum a processzoron belül alkalmazott formátum → ennek a szabályozása igen laza.
Szabványos formátum:
A szabvány csak az egyszeres pontosság megvalósítását írja elö, a kétszeres pontosság megvalósítása opcionális.
Egyszeres pontosság: rövidebb adat, kisebb memóriaigény, gyorsabb feldolgozás, nem nagyon pontos eredmény.
Kétszeres pontosság: hosszabb adat, nagyobb memóriaigény, lassabb feldolgozás, pontosabb eredmény.
a) Egyszeres pontosság:
32 bites formátum
Az értelmezési tartomány: ~10-38-tól
1038-ig
1 8 23
mantissza elöjele karakterisztika mantissza
b) Kétszeres pontosság:
64 bites formátum
Az értelmezési tartomány: ~10-308-tól
10308-ig
1 11 52
Kiterjesztett formátum:
a) Egyszeres pontosság: min. 43 bit
b) Kétszeres pontosság: min. 79 bit
Müveletek:
Minimum:
a) Négy aritmetikai alapmüvelet (+,-,×,÷)
b) Maradékképzés
c) Négyzetgyökvonás
d) Bináris - decimális konverzió
Értelmezze a müveleteket a végtelennel is:
a) 3+(+∞)=+∞
b) 3+(-∞)=-∞
Kerekítések:
A legközelebbire való kerekítés (hagyományos kerekítés: 8,3 8; 8,9 9).
Negatív végtelen felé történö kerekítés.
Pozitív végtelen felé történö kerekítés.
Az utóbbi kettöt az
intervallum algebrában használjuk.
Kétszer hajtjuk végre a számítást:
Egyszer mindig mínusz végtelen felé kerekítve.
Egyszer mindig plusz végtelen felé kerekítve.
A helyes eredmény a két kapott eredmény között helyezkedik el.
Amennyiben a két eredmény közötti különbség a számításunk szempontjából kicsi, akkor az eredmény elfogadható.
Amennyiben nagy, elemeznünk kell a programot (pl.: részeredményeket ne írjunk be a memóriába) vagy magát az architektúrát.
levágás vagy truncate (pl.: 8,4 8; 8,9 8).
Kivételek kezelése:
Nullával való osztás
Alulcsordulás
Túlcsordulás
Gyök alatt negatív szám van
Esettanulmány: Intel processzorcsalád:
A szabvány elsö megvalósítása 1981-ben jelent meg: Intel 8087
Az összes mai processzor ilyen.
Logikai architektúra:
Radix: kettes számrendszer.
Alulcsordulás: denormalizált szám.
Túlcsordulás: elöjeles végtelen.
Létezik rejtett bit
Léteznek az örzö bitek
Mantissza: kettes komplemens
Karakterisztika: többletes kódolás
Mind az egyszeres, mind pedig a kétszeres pontosság megvalósításra került.
Kiterjesztett formátum: 80 bit hosszú (1, 15, 64), a programozó dönti el, hogy ezt egyszeres vagy kétszeres pontossággal írja ki az operatív tárba vagy a háttértárolóba.
Fizikai architektúra:
Az Intel 8087-es társprocesszor formájában került megvalósításra.
Az Intel 80287-es és az Intel 80387-es is.
Az Intel 80486DX-töl már közös lapkára integrálták az általános célú és a lebegöpontos processzort.
Teljesítmény jellemzök:
Relatív MIPS: a mértékegység az 1981-ben megjelent IBM PC teljesítménye.
Típus |
MHz |
relatív MIPS |
Intel 80386 |
25 |
17 |
Intel 80486DX |
66 |
~1700 |
Pentium I |
133 |
~6000 |
A 100-szoros növekedés a hardver úton megvalósított lebegöpontos feldolgozás eredménye.
A 3-szoros pedig a futószalagos feldolgozás és a kétszeres órajel eredménye.
Lebegöpontos müveletek
Összeadás:
X=A+B Példa: 0,9×103 Közös kitevöre kell hozni, a mantisszában a
A= mAr ka 141h71b +0,95×104 törtpontot ciklikusan léptetetem jobbra/balra.
B= mBr kb 141h71b 0,09×104
141h71b 141h71b +0,95×104
141h71b 141h71b 1,04×104 Mantissza vizsgálata, majd szükség esetén
141h71b 141h71b 0,104×105 normalizálása. Bonyolultabb, mint a fixpontos.
Algoritmus:
Szorzás:
X=A×B=mA×mBrka+kb
Algoritmus: A mantisszákat összeszorozzuk, a karakterisztikákat pedig összeadjuk.
Osztás:
X=A/B=mA/mBrka-kb
Algoritmus: A mantisszákat elosztjuk, a karakterisztikákat pedig kivonjuk egymásból.
Megvalósítás:
Univerzális müveletvégzö
az ALU parciálásával (részekre bontásával)
141h71b fixpontos ALU
Ez egy kicsit bonyolultabb vezérléssel megoldható.
Szervezési módosítással
a) Mind a mantisszát, mind a karakterisztikát külön-külön regiszterekben helyezzük el.
b) Egymás után elvégezzük a mantissza és a karakterisztika müveleteket.
c) Az eredményt pedig az egyik regiszterben összevonjuk.
Dedikált müveletvégzö
141h71b 141h71b 141h71b adatsín
Karakterisztika
egység Mantissza
egység
vezérlés
Következtetések:
Míg a mantissza egységnek ismernie kell a szorzást és osztást is, a karakterisztika egységnek elegendö az összeadást és a kivonást ismernie.
Párhuzamosan lehet végezni a karakterisztika és a mantissza müveleteket.
A szük keresztmetszetet a mantissza egység jelenti (a szorzás, osztás miatt), mivel a karakterisztika egység az összeadást és kivonást gyorsan el tudja végezni. A gyorsítást a mantissza egységnél kell végezni.
Lebegöpontos, vektorgrafikus multimédia müveletek:
Az egyenesekkel és görbékkel határolt objektumok geometriai jellemzöikkel leírhatók.
Elegendö a geometriai
jellemzök tárolása.
Például:
a) Egyenes esetén: Két pontjának koordinátáit.
b) Kör: A középpont koordinátáját és a sugár hosszát.
Jellemzök:
2D:
Egy kép igen sok objektumra (sokszögre, háromszögre) bontható egy átlagos kép objektumainak száma ~20000.
Miután a számítógép a geometriai jellemzök alapján meghatározza a ~20000 objektumot, a színek valósághübb átmenete érdekében egy úgynevezett textúrát alkalmaz.
A megoldandó feladat:
Viszonylag kevés lebegöpontos adaton
sok müveletet hajtunk végre.
3D:
Egy harmadik dimenzió kerül hozzáadásra.
a) Biztosítani kell a párhuzamosoknak a végtelenben való találkozását.
b) Az atmoszférikus sajátosságok is megvalósításra kerülnek, azaz a közelebb lévö tárgyak élesebbek, a távolabbiak kékesebbek és elmosódottabbak.
Sok 3D film készül, ahol minimum 15 képet kell vetíteni másodpercenként annak érdekében, hogy folyamatosnak láthassuk.
Pl.: képenként 20000 objektummal számolva 20000×15=300000 obj/sec feldolgozási sebesség szükséges.
A megoldandó feladat:
Viszonylag kevés lebegöpontos adaton
sok müveletet kell végrehajtanunk
adott idöegység alatt.
Megoldás az Intel processzoroknál:
1998: MMX2, azaz a KNI (Katmai New Instruction)
a megoldás: a SIMD elv (Single Instruction Multiple Data)
1985 óta elöször új regisztereket vezetett be az Intel: 8 db 128 bites regisztert.
Formátumok:
a) 4 db 1-szeres pontosságú vagy
b) 2 db 2-szeres pontosságú
számon hajt végre egy idöben müveletet:
141h71b 141h71b + + + +
141h71b 141h71b = = = =
70 db új utasítást vezettek be.
100%-osan megfelel az IEEE 754-es szabványának.
Megszakítás esetén az új regisztereket is menteni kell, ezt elöször a Win98 operációs rendszer végzi.
A lebegöpontos müveletvégzés jelentösége:
A tudományos és multimédia számításokhoz szükséges.
A miniatürizálás és a fajlagos árcsökkenés eredményeként a jelenleg kereskedelmi forgalomban lévö processzorok mindegyike hardver úton megvalósítja.
BCD - Binary Coded Decimal
Megjelenésének oka: A pontosság.
A fixpontos ábrázolásnál a törtek pontatlanok.
A lebegöpontos ábrázolásnál a mantissza, karakterisztika formátuma lényegesen pontosabb, de nem teljesen.
A tízes számrendszerböl a kettes számrendszerbe a számokat átszámítjuk, ezzel szemben a tízes számrendszerböl a BCD-be a számokat átkódoljuk.
A kódolás egyértelmü
megfeleltetést jelent.
Pl.: 12D=1100B=0001 0010BCD (átszámítás és
átkódolás)
Jellemzöi:
Ábrázolása:
a) Zónázott: Minden byte kisebb helyiértékü tetrádjában helyezkedik el a BCD szám, a nagyobb helyiértéküben pedig a zóna:
Zóna |
BCD |
Zóna |
BCD |
|
elöjel |
BCD |
A zóna értéke jellemzöen nyomtatható karakterre egészíti ki a BCD értékét. Azaz ASCII esetén általában 3 (Intel), EBCDIC esetén általában F (15). Általában nem lehet ezzel a formátummal számítást végezni (pl.: VAX, IBM), kivéve Intel.
b) Pakolt: Minden byteban 2 db BCD szám van:
elöjel |
BCD |
BCD |
|
BCD |
BCD |
Az Intel esetében 10 byte hosszú:
1. Az elsö byte esö bitje az elöjel, a többi bitet nem használjuk.
2.
A további 9 bájtban 18 db BCD szám
helyezkedik el:
-9.9-töl +9.9-ig (18 db 9-es lehet).
A szám hossza:
a) Fix hosszúságú.
b) Változó hosszúságú meg kell adni a szám hosszát is.
Az elöjel:
a) Hossza:
1. 4 bites (tipikusan a zónázott formátumnál)
2. 8 bites (tipikusan a pakolt formátumnál)
b) Elhelyezkedése:
1. a szám végén (tipikusan a zónázott formátumnál)
2. a szám elején (tipikusan a pakolt formátumnál)
c) Értéke:
1. az érvénytelen tetrádok segítségével:
a. ahol pozitív: A, C, E, F
b. ahol negatív: B, D
2. a + és a - ASCII kódjával
BCD összeadás:
Ugyanúgy végezzük, mint a bináris számokkal, csak:
Az összeg esetében fel kell ismernünk az érvénytelen tetrádokat,
Az érvénytelen tetrádok esetében korrekciót kell végrehajtanunk.
A, Az érvénytelen tetrádok:
A BCD kódkészlete:
Dec. szám BCD kódja
0 0000 141h71b 10 1010
1 0001 141h71b 11 1011
2 0010 141h71b 12 1100 érvénytelen tetrádok
3 0011 141h71b 13 1101
4 0100 141h71b 14 1110
5 0101 141h71b 15 1111
6 0110
7 0111 érvénytelen: az elsö bithelyiértéken egyes, és vagy
8 1000 a második vagy a harmadik helyen egyes szerepel.
9 1001
B, Korrekció:
Az érvénytelen tetrádokból:
kivonunk tizet és
generálunk egy tízes átvitelt
pl.: 8+7=15+(-10)=5 segédszámítás:
1000 141h71b 10D=1010B=0110kettes komplemens
+0111
1111
+0110
10101 5D
10-es átvitel
Megvalósítás:
Megvalósítási alternatívák:
Univerzális müveletvégzö, BCD-nek megfelelö vezérléssel.
Dedikált BCD müveletvégzö.
A BCD jelentösége:
Elönye: Pontos.
Hátránya:
a) Komplexebb müveletvégzés, ezért lassabb.
b) Nagyobb tárigény: a 16-os értékkészletböl csak tizet használ ki, tehát 40% kihasználatlan, pl.: 12D=1100B=0001 0010BCD 8 biten ábrázoljuk.
Érdekességek a BCD-vel kapcsolatban:
Basic programnyelv a BCD-t használja.
A számológépekben és a digitális órákban BCD-t alkalmaznak.
Fixpontos, lebegöpontos, BCD - Melyiket használjam?
Fixpontos:
Gyors végrehajtás.
Memóriatakarékos (8, 16, 32 bites formátumban létezik).
A formátumok között a szükséges értelmezési tartománynak megfelelöen válasszunk (a lehetö legrövidebb formátumút).
Egész számok esetén teljesen pontos: if a=1 csak fixpontos illetve BCD esetén alkalmazható, lebegöpontosnál nem.
Lebegöpontos:
Akkor alkalmazzuk
a) Ha a fixpontos értelmezési tartomány nem elegendö.
b) Amikor müveletet kell végeznünk a számokkal.
A lehetöségek közül csak indokolt esetben válasszuk a kétszeres pontosságút, mert annak számítása lassabb.
BCD:
Tipikusan a lebegöpontos ábrázolás egy alternatívája.
Az ALU egyéb müveletei
Valamennyi Boole müvelet (16 müvelet: vagy, és, kizáró vagy.).
Léptetés (szorzáshoz és osztáshoz kell).
Invertálás (kivonáshoz és osztáshoz kell).
Címszámítás:
a) A korai gépekben az általános célú ALU-val.
b) Napjainkban célhardverrel.
A karakteres müveleteket általában az általános célú müveletvégzö végzi.
Vezérlörész
Centralizált vagy szekvenciális vezérlés:
a) Huzalozott vezérlés.
1. 1947: elsö elektronikus számítógép
b) Mikroprogramozott vezérlés.
1. 1954: Wilkes
2. 1963: CDC6600
Decentralizált vagy párhuzamos vezérlés:
a) Szuperskalár.
1. 1966: IBM 360/91
b) Futószalag.
Huzalozott vagy áramköri vezérlés
Hátrányai:
Az ember számára nehézen áttekinthetö.
Nehézkesen módosítható.
Elönye:
Gyors.
Tervezése:
igazságtábla
logikai függvények
azonos átalakítások a következö célfüggvényekkel:
a) az elemek számának minimalizálása
b) a végrehajtási idö minimalizálása
megvalósítás
Megvalósítás:
Elv:
Egy forrásregiszterböl
módosító áramkörökön keresztül
egy célregiszterbe juttatjuk az adatot.
Regiszterek:
Memória regiszterek (MDR, MAR).
ALU regiszterei (AC, általános célú regiszterkészlet).
I/O regiszterek (vezérlökártyán).
Vezérlörész regiszterei (utasítás regiszter, PC).
Módosító áramkörök:
Összeadó
Invertáló
Inkrementáló
Léptetö.
Müködése:
A forrásregiszter kimenetét rákapuzzuk a módosító áramkör bemenetére.
Elöírjuk a módosító áramkör számára, hogy most éppen milyen módosítást hajtson végre. (Pl.: léptetés, összeadás.)
A módosító áramkör kimenetét rákapuzzuk a célregiszter bemenetére.
A mai processzorokban tipikusan több száz olyan vezérlési pont van, amit vezérelni kell.
Mikroprogramozott vezérlés
1954: Maurice Wilkes (University of Cambridge).
Cél:
Ember számára áttekinthetövé tenni a vezérlést.
a) Mikroutasítások, melyek meghatározott vezérlövonalat, vagy -vonalakat aktiválnak.
b) A gépi kódú utasítások végrehajtása mikroutasítások sorozatával érhetö el.
c)
A hagyományos (Neumann-elvü)
számítógépet tekinthetjük egy makroszámítógépnek, ezen belül helyezkedik el egy
mikroszámítógép mikroutasítássokkal, mikroprogrammal.
A vezérlést rugalmassá, könnyen módosíthatóvá alakítani.
a) A mikroprogramot tároló Control Memory-ban cserélhetjük, változtatjuk magát a mikroprogramot.
A Wilkes féle modell:
Címrész - a makroszámítógép címe
CMAR - Control Memory Address Register
S - feltétel
- Control Memory (CM)
Müködése:
A, Mikroutasítás szekvencia
a)
A gépi kódú utasításoknak a
müveletikód része - megfelelöen kódolva - beírásra kerül a CMAR-ba.
Megfelelö kódolás: Az adott gépi kódú utasítás (pl.: add) végrehajtását
elemi müveleti szinten végigvezérlö mikroprogram kezdöcíme.
b) Ez a cím beírásra kerül a dekóderbe. Az ily módon kiválasztott mikrotasítás
1. meghatározott ideig aktiválja a megfelelö vezérlövonalat, majd
2. a mikroutasítás címrésze beírásra kerül a CMAR-ba.
c) Ugrás a b) pontra.
Példa: egy elemi müvelet szekvenciája az add esetén:
MAR PC
MDR (MAR)
IR MDR
DEC IR
MAR DECcímrész
MDR (MAR)
AC AC+MDR
PC PC+1
B, Feltételes ugrás
a) Amennyiben ugrási mikroutasítás kerül feldolgozásra, akkor
1. a megfelelö vezérlövonalak meghatározott ideig aktiválásra kerülnek, majd
2. a feltétel igaz vagy hamis voltától függöen vagy az elsö vagy a második cím kerül letöltésre a CMAR-ba.
Egy korszerü mikroutasítás felépítése:
feltétel-kiválasztó mezö 141h71b ugrási cím vezérlörész
Feltétel-kiválasztó mezö: Tipikusan azt jelenti, hogy melyik flag-et teszteljük.
Ugrási cím: Amennyiben a feltételes ugrásnál a feltétel igaz, akkor ez a cím kerül az MPC-be.
Vezérlörész: Ez jelöli ki az aktiválandó vezérlövonalat, -vonalakat.
Egy korszerü mikrovezérlö megvalósítása:
MPC - Micro Program Counter
CM - Control Memory
CMDR - Control Memory Data Register
MUX - Multiplexer
Müködése:
A, Mikroutasítás szekvencia
a) Az MPC által kijelölt, következö végrehajtandó mikroutasítás a CM-böl eljut a CMDR-be.
b) Meghatározott ideig aktiválásra kerülnek a mikroutasítás vezérlörésze által kijelölt vezérlövonalak.
c) A MPC inkrementál, majd vissza az a) pontra.
B, Feltételes ugrás:
a) Meghatározott ideig aktiválásra kerülnek a mikroutasítás vezérlörésze által kijelölt vezérlövonalak.
b) A feltétel kiválasztó mezö által meghatározott külsö feltétel kiválasztásra kerül, s annak igaz vagy hamis voltától függöen
1. vagy a végrehajtás alatt álló mikroutasítás ugrási cím mezöjének tartalma felülírja az MPC tartalmát,
2. vagy a MPC inkrementálva határozza meg a következö végrehajtandó mikroutasítás címét.
Megjegyzések:
A huzalozott vezérlö ütemezöjét váltja ki a CM.
Míg a Neumann féle makroszámítógépben együt tároljuk a programot és az adatokat, a mikroszámítógép mikroprogram-tárában nincs adat, csak mikroutasítás. Ezért:
a) a Wilkes féle modell move jellegü felülírása miatt csak a CMAR,
b) a korszerü mikrovezérlö inkrementálási képessége miatt MPC alkalmazható.
A mikroutasítás hosszát meghatározó tényezök:
a) A CM drága, ezért célszerü takarékoskodnunk vele.
b) Feltétel kiválasztó mezö: Viszonylag rövid.
c) Címmezö:
1. A következö végrehajtandó mikroutasítás címe.
a. A Wilkes-féle modellben a mikroutasítás tartalmazza a következö végrehajtandó mikroutasítás címét.
b. A korszerü mikrovezérlö esetén az MPC képes
1. mind move jellegü cím-befogadásra,
2. mind pedig inkrementálásra
2. Ugrási cím
a. Az ugrási címtér rövidebb, mint a tár címtere. A tár címtere pl.: 1024 (10 bit), ugrási címtér 256 (8 bit).
b. Külsö forrásból töltjük le az ugrási címet.
c. Az ugrási cím mezöt viszonylag ritkán hasznosítják, ezért nem ugrás esetén vezérlömezöként is használható lehet.
141h71b 141h71b 141h71b ez a bit mutatja, hogy ugrási mezöt tartalmaz-e
ugrási cím
d) Kétszintü mikroutasítás (Motorola): Elönye, hogy több mikroutasításban is szerepelhet ugyanaz a vezérlörész, viszont csak egyszer tároljuk.
Vezérlörész
Horizontális vagy vízszintes mikroutasítás:
a) Hosszú formátum
b) Magas fokú párhuzamosság
c) Alacsony szintü kódolás
d) Pl.: IBM360, PDP8, Motorola
e) IBM360:
1. A vezérlörész hossza 90 bit.
2.
Ezt 21 változó hosszúságú vezérlömezöre osztották:
21 darab egymástól függetlenül is müködöképes hardver egységet
alakítottak ki, tehát elvben maximum 21 egység müködet párhuzamosan.
3. 65-67. bit vezérli az ALU jobb oldali bemenetét, azaz ezek jelölik ki, mely regiszterböl kerüljön betöltésre az egyik operandus.
4. 68-71. bit határozza meg, hogy az ALU milyen müveletet hajtson végre. Lehetöségek: fixpontos vagy BCD összeadás a bejövö és a kimenö átvitel különféle kezelésével.
f) PDP8
1. A vezérlörész 128 bit hosszú.
2. Hipotézis: 27=128 azaz 7 biten kódolhatjuk az értékeket. ez az elve a vertikális vagy függöleges mikroutasításoknak.
Vertikális vagy függöleges mikroutasítás:
a) Rövid
b) Alacsony szintü párhuzamosítás
c) Erös kódolás
d) Pl.: IBM370, Intel
e)
Esettanulmány: IBM370
müveleti kód (opcode) 1. operandus 2. op. CM címzési információ
1. 4 bájt hosszú
2. az operandusok regisztert címeznek
3. a címképzési információ a Wilkes féle modellre emlékeztet
Mai gyakorlat: hibrid változat:
A gyakran használatos vezérlések horizontálisak, míg a ritkábban használatosak
vertikálisak Kódoltak, dekóderen keresztül aktiválják
a vezérlövonalakat (idöveszteség)
A mikroutasítások végrehajtásának ütemezése
Fajtái:
Monofázisú mikroutasítások: egy mikroutasítás végrehajtási ciklus megegyezik az óra ciklussal.
Polifázisu mikroutasítások: egy
mikroutasítás végrehajtási ciklus több óraciklus alatt hajtódik végre egy mikroutasításon belül elemi müveleti szekvenciákat írhatunk
le. Pl.: r1 f(r0)
Végrehajtás menete:
a) A mikroutasítás lehívása a CM-böl.
b) Az r0 regiszter kimenetét rákapuzzuk az f módosító áramkör bemenetére.
c) Meghatározzuk, hogy az f módosító áramkör milyen módosítást hajtson végre.
d) Az f módosító áramkör kimenetét rákapuzzuk az r1 regiszter bemenetére.
Következtetés: Mivel a huzalozott vezérlés esetében nem értelmezett a mikroutasítás lehívása, ezért a huzalozott vezérlés mindig gyorsabb.
Gyorsítási lehetöségek:
Amennyiben mikroprogramozott vezérlés mellett döntünk, akkor a gyors vezérlés érdekében
horizontális mikroutasítás formátumot és
igen gyors CM-et választunk,
szervezési átalakítás: prefetch - elölehívás
a) Amíg a CMDR0-ból történik a vezérlés, addig a CMDR1-be lehívjuk a következö végrehajtandó mikroutasítást.
b) Szerepcsere.
Megjegyzés: a maradék vezérlés (residnal control)
A vezérlövonalak aktiválása tipikusan egy óraütem ideig tart.
Szükség lehet arra, hogy bizonyos vezérlövonalak több, mint egy óraütem alatt legyenek aktívak. (pl.: adatátvitel)
Ekkor a vezérlörészt egy regiszterbe mentik és onnan történik a vezérlés.
Mikroprogramozás
A mikroutasítások tipikusan assembly szintü programnyelvre emlékeztetnek (szintén mnemonikus kódok).
a) Létezik micro assambler, azaz fordítóprogram, mely a forrásnyelvü mikroprogramokat végrehajtható formátumra alakítja ez tölthetö be a CM-be.
b) A mikroprogramok írásához igen mély hardver ismeretre van szükségünk, amit a gyártók nem szoktak publikálni.
A mikroprogramozás veszélyei:
Hibás mikroprogram esetén müködésképtelenné válik a hardver (nem segít a reset gomb), az operációs rendszer sem müködik.
Huzalozott kontra mikroprogramozott vezérlés
sebesség |
gyors |
mindig lassabb |
áttekinthetöség |
ember számára nehezen áttekinthetö |
ember számára áttekinthetö |
módosíthatóság |
merev, nehézkesen módosítható |
rugalmas |
Sínrendszer
Az egységek közötti kommunikációt biztosítja.
Fejlödés eredménye, ez bizonyult a legjobbnak.
A sínrendszer fogalma alatt a kommunikációs infrastruktúrát értjük, az I/O rendszer a perifériának a processzorral és a memóriával történö kommunikációjának sajátosságaival foglalkozik.
Az egységek a sínrendszeren keresztül szabályozott, egységes módon kommunikálnak.
A kommunikáció fajtái:
Az egységen belüli kommunikáció (pl.: processzoron belül).
a) Kis távolság kis késleltetés
b) Az adó és a vevö közös óraütem adótól kapja az órajelet.
c) Viszonylag egyszerü megvalósítás
Az egységek közötti kommunikáció (pl.: processzor és a perifériák között).
a) Az adónak és a vevönek tipikusan külön óraütem adója van, mert:
1. Viszonylag nagyok a távolságok nagy a késleltetés.
2. A kommunikáló egységek sebesség paraméterei is igen eléröek.
Sín:
Fogalma:
Müszaki: Olyan vezetékköteg, melynek minden egyes erén vagy csak a logikai 0-nak megfelelö 0 Volt, vagy csak a logikai 1-nek megfelelö +12, +5, +3.3, +2.8 Volt jelenhet meg.
Funkcionális: Olyan vezetékköteg, mely lehetövé teszi egyszerre n bit továbbítását a forrástól a célig. Ebben a kontextusban a sín fogalmába beleértjük a sín forgalmát vezérlö intelligenciát is.
Jellemzöi:
A vezetékek száma.
Napjainkban tipikusan megosztott eszköz:
a) Minden vezeték egy idöpillanatban 1 bitnyi információt továbbíthat
b) Mindig csak egyetlen adó lehet, vevöoldalon lehet több eszköz is.
Regiszter tulajdonsággal
rendelkezik.
Értelmezett:
r1 r0 úgy történik, hogy:
databus r0
r1 databus
Fajtái:
Átvitel iránya szerint:
a) Szimplex: egyirányú.
b) Duplex: egy idöben egyirányú; kétirányú.
c) Full-duplex: egy idöben kétirányú (két vezeték van).
d)
U2 U1
Pl.: Egyirányú: órajel, reset, cím. Kétirányú:
adat.
Az átvitel jellege szerint:
a) Dedikált sín:
1.
Jellemzöi: Minden egységet
minden egységgel összekötünk.
U3 U4
Egysínes: n×(n-1) sín.
Kétsínes: (n×(n-1))/2 sín.
2. Elönyei:
a. Gyors: minden egység minden egységgel párhuzamosan kommunikálhat.
b. Megbízhatóság: amennyiben biztosított az infrastruktúra, akkor pl. az U1-U2 közötti szakadás esetén a két egység továbbra is kommunikálhat U3 vagy U4 egységen keresztül.
3. Hátrányai:
a. Drága.
b. Újabb egységek csatlakoztatása bonyolult.
c. Újabb csatlakozási felületek kialakítása bonyolult.
d. Újabb csatlakozási felületek kialakítása technológiai nehézséget jelent.
b) Közös (shared) sín:
1.
U1 U2 Un
Jellemzöje: Minden egység egyetlen közös
sínen keresztül kommunikálhat.
2. Elönyei: 141h71b 141h71b .
a. Olcsóbb. (nem sokkal)
b.
A szabványos 141h71b 141h71b 141h71b közös sín
csatlakozási felületek miatt könnyü
az újabb egységek csatlakoztatása.
3. Hátrányai:
a. Lassúbb, mivel egyidejüleg csak egyetlen adó lehet a sínen, a többinek várnia kell a sín felszabadulására.
b. Érzékeny a közös sínrendszer meghibásodására.
c.
A közös sínrendszer vezérlése
bonyolult (nem olcsó).
Funkcionális csoportosítás:
a) Címsín:
1. Feladata: Az egységek (pl.: hálókártya) illetve egységrészek (pl.: memóriacím) azonosítása.
2. Fejlödése az Intel esetében:
20 bitnél 1MB-ot tudunk megcímezni, 24 bitnél már 16MB-ot, 32 bitnél 4GB-ot. Napjainkban is 32 bit a címzési lehetöség.
3. A kompatibilitás megtartása nem eredményezett tiszta tervet.
b) Adatsín:
1. Feladata: Adatok továbbítása.
2. Fejlödése:
a. 8088 - 8 vezetékes volt.
b. 80286 - 16 vezetékes volt.
c. 80386- 32 vezetékes.
3. A kompatibilitás megtartása nem eredményezett tiszta tervet.
c) Közös adat- és címvezeték:
1. Akkor alkalmazzák, amikor:
a. vezetéket kívánnak megtakarítani, vagy
b. a csatlakozó lábak számát szeretnék csökkenteni.
2. Külön vezérlövezetékkel kell jelezni, hogy mi van az adott pillanatban a sínen (cím vagy adat).
3. Akkor érdemes alkalmazni, ha blokkos átvitelt használunk. A blokk kezdöcíme átvitele után a többi cím inkrementálással megállapítható.
4. Idöbeli multiplexelés elvén alapul.
5. Pl.: PCI.
d) Vezérlövezetékek (sín):
1. Számuk tipikusan 10-15 db.
2. Fajtái:
a. Adatátvitel vezérlése:
1.
R/W - read/write:
a processzor nézöpontjából mutatja az átvitel irányát.
2.
B/W - byte/word:
hány bitet kell párhuzamosan átvinni.
3.
A/D - address/data:
a közös vezetékeken cím vagy adat van-e.
4.
AS - address strobe:
a címet felhelyeztük a sínre.
5.
DS - data strobe:
az adatot felhelyeztük a sínre.
6.
M/U - memory/unit:
a címvezetéken memóriacím van-e vagy egységcím.
7.
RDY - ready:
kész.
b. A megszakítások vezérlése:
A megszakítások kérése és engedélyezése.
c. A sínhasználattal kapcsolatos vezérlövezetékek:
A sínhasználat kérése, engedélyezése, a sínfoglaltság jelzése.
d. Egyéb:
1. CLCK - órajel.
2. Reset - kezdeti értékek visszaállítása.
Mn M1 Sínvezérlö
Az
összekapcsolt területek alapján:
141h71b .
141h71b 141h71b 141h71b 141h71b bövítösín
rendszersín
I/On I/O1
141h71b 141h71b 141h71b 141h71b .
a) Rendszersín:
1. A rendszersín tipikusan gyorsabb, mint a bövítösín.
2. A rendszersín nehezen szabványosítható, mivel CPU közeli sajátosságok kihasználásával teljesítménye növelhetö.
3. Elnevezések:
a. Rendszersín: A rendszer adatforgalom itt zajlik.
b. Memóriasín: Memóriablokkok összekapcsolása.
c. Processzorsín:
1. A winchesteren tárolt adatokat a DMA vezérlö segítségével közvetlenül a memóriába visszük.
2. A processzor pedig a másodszintü gyorsítótárból dolgozik.
b) Bövítösín:
1. Feladata: az I/O egységek csatlakoztatása a processzor-memória kettöshöz.
2. Fejlödése:
a. Kábelekkel egyedi módon csatlakoztatták a perifériákat.
b. DEC elsö gépei sín-orientáltak voltak. Aljzatokat alakítottak ki tesztkészülékek csatlakoztatására. Megoldásaikat szerzöi jogi védelem alá helyezték.
c. 1976: az Altair tervezöje kialakította az S-100-as bövítösín architektúrát, mely 100 db érintkezö felületet biztosított. Ezt az IEEE szabványként fogadta el.
d. 1981: IBM PC
3. Elnevezések:
a. bövítösín
b. I/O sín
c. helyi sín
Találat: 621