online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

ARCHITEKTÚRÁK I



felso sarok

egyéb tételek

jobb felso sarok
 
 
bal also sarok   jobb also sarok

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:

  1. Min hajtjuk végre a számítást?
  2. Hogyan képezzük le a számítási feladatot?
  3. Mi vezérli a végrehajtást?


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:

  1. adatmanipuláció

  utasítások

  Min hajtjuk végre a számítást:

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.

  1. Hogyan képezzük le a számítási feladatot:

PC

 
Adatmanipuláló utasítások sorozatával.

  1. Mi vezérli a végrehajtást:

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:

  1. Min hajtjuk végre a számítást: Adatokon.
  2. Hogyan képezzük le a számítási feladatot:

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. Mi vezérli a végrehajtást: Adat.
    Stréber modell:

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

  transzparens


                     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:

  1. Több, egymástól független regiszterkészlet, pl.: 1964 - Sigma7.

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

  1. INS

     
    Átfedö regiszterkészlet, pl.: 1980 RISC I.

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.

  1. Stack-cache, pl.: 1982 C-Machine

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
helyiértékeinek száma

Bináris szám
helyiértékeinek száma

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<1. A kettedes pontot az elsö értékes jegy elé kell tennünk, annak tehát nincs információtartalma.

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:

  1. A kitevök megvizsgálása: csak azonos kitevöjü számok mantisszái adhatók össze.
  2. Amennyiben a kitevö eltérö, akkor a kisebb kitevöjü szám mantisszájában a törtpontot jobbra léptetjük és a kitevöt inkrementáljuk. Ez a ciklus addig fut, míg a kitevök meg nem egyeznek.
  3. Összeadjuk a közös kitevövel rendelkezö számok mantisszáit.
  4. Szükség esetén normalizálunk.

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: 524


Felhasználási feltételek