bevezetés, történet, fogalmak, adatábrázolás, globális...
TRANSCRIPT
bevezetés, történet, fogalmak, adatábrázolás, globális bemutatás, Neumann architektúraCPU, vezérlő egység, aritmetikai logikai egység, utasítás : készlet, típusok, felépítése, végrehajtásMEMÓRIA hierarchia, cache, virtuális tárkezelésI/O rendszerek, megszakítás rendszer, DMA, csatorna, perifériáktöbbprocesszoros, párhuzamos gépek, hálózatok, operációs rendszerek, egyebek...hardver, rendszer szoftver, alkalmazói szoftver
3
C nyelvű programból, gépi kódmagas szintű programozási
nyelv (C)
swap (int v[], int k){ int temp;
temp = v[k];v[k] = v[k+1];v[k+1] = temp;
}C fordító
assembler nyelvű program
swap:muli $2, $5,4add $2, $4,$2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 0($2)jr $31
bináris, gépi kódú program
assembler
00000010110110010001110100011010111011100101001010001011100000101111100100000001010000101000000111111001000000011000001100000001000110010000000110000010100000010001100100000001010000110000000100101011100000000000000001111111 4
Logikai fizikai szintek
elektronok, félvezető rétegek
tranzisztorok,félvezetők
logikai kapuk
0 - 1 logikai szintek
„0 - 5 Volt”
memória, CPU, IO egységek, stb.
CPU MEM„A számítógép”
ALU
CUREG logikai áramkörök
részegységek
Számológép :Főleg számtani műveletek végzésére alkalmas, gyakori, közvetlen emberi beavatkozást igénylő eszközSzámítógép :Belső programvezérlésű digitáliselektronikus gép,műveletek sorozatát képes adatokkal végezniemberi beavatkozás nélkül
Korai számoló gépek és felfedezők (1)• Eszközhasználat (~-300.000év)• Számfogalom (~-30.000év), számrendszerek, kéz• Abakusz, ~5000 éves, összeadás-kivonás, golyók tologatása rudakon,• Papír és toll (csillagászat, navigáció, táblázatok, trigonometrikus fv.)• Fizikai munka -> szellemi munka „gépesítése”• Nagyon erős technológiai korlátok (mechanika)
Számológépek készítése(1600- Ipari Forradalom)
• 1623 Wilheim Schickard, 4 alapművelet (terve)• 1642 Blaise Pascal,
tízes számrendszer, 8 jegyű, összeadó-kivonó, fogaskerék• 1694 Gottfried Wilhem von Leibniz, pascal gépe + szorzás váltó tárcsák
Automata, programvezérelt számítógép (gondolata)• Charles Xavier Thomas de Colmar, 4 alapművelet• 1769 Kempelen Farkas, billentyűvezérlésű hangszintetizátor• 1820 Joseph-Marie Jacquard, lyukkártya vezérlésű szövőgép program - minta tárolás - vezérlés
Babbage gépei (1)• Charles Babbage : "I wish to God these calculations had been performed by steam!"
1812 gépek és matematika közötti összhang• 1822 „Difference Engine”, gőz, tárolt program
(univerzális, külső programvezérlésű elektromechanikus számítógép terve)polinom helyettesítési értéket számol sorozatban ( ) 20 jegy, 6-od rendű
Babbage gépei (2)„Analytical Engine” általános célú számítógép:
• „malom” (processzor)• „tár” (memória)• utasítások lyukkártyán, algoritmus (vége, goto...)
Augusta Ada, Countesse of Lovelance (ADA nyelv) programozzaSzámoló gépek alkalmazásának a kezdete
• 1847-1854 George Boole, Boole algebra matematikai egyenletek : igaz/hamis • 1889 Herman Hollerith lyukkártya (1lyuk - 1szám, 2lyuk -1betű)
USA népszámlálás összesítés (10év -> 6hét) 1924 International Buisness Machines (IBM) alapítója• Kereskedelmi számológépek
32
3. Generáció
Tár modul
Átviteli sínrendszer (busz)
Aritmetikai, logikaiprocesszor
I/Oprocesszor
Tár modul Tár modul
I/Oprocesszor
adatátvitel
1. Generáció1945-1956 (1)
• 1941 Konrad Zuse, Z3, elekromágneses relék, repülő és rakéta tervezés• 1943 Alain Turing, Colossus, német rejtjel visszafejtés (célgép)• 1944 Howard H. Aiken, Mark I., lövedékpálya táblázatok,
fél focipálya méret, 800km vezeték, relé, 3-5 sec/számolás, alapműveletek, komplex egyenletek1945-1956 (2) (ENIAC)1946, ENIAC John Presper Eckert, John W. Mauchly, első elektronikus digitális számítógép18.000 vákuumcső, 70.000 ellenállás, 5 millió forrasztás, 160 kW fogyasztás5000 + /sec , 400 * /sec, 10 jegyű számok, 20 regiszter, 1000* gyorsabb mint Mark I.külső programvezérlés (huzalozás), 30 Tonna , MTBF 40sec
• 1945 EDVAC, Neumann János (John von Neumann 1903-1957) memória tárolja az adatokat és a programotfeltételes vezérlés átadásközponti vezérlő egység
• 1951 UNIVAC I.első kereskedelemben kapható számítógép
• 1964 IBM 360első „igazi” általános célú számítógép
23
1. Generáció blokkvázlata
Aritmetikailogikaiegység
Operatív tár(Memória)
Vezérlő egység
Beviteli egység(Input)
Kiviteli egység(Output)
Processzor
vezérlés
adatátvitelperifériák perifériák28
2. Generációprocesszor
Csatorna
Vezérlő egység
Aritmetikai logikai egység
Operatív tár(memória)
perifériák háttértárak
Csatorna
vezérlés
adatátvitel
1. Generáció összefoglalás• Rendelésre készült műveletek, az elvégzendő feladathoz : tudományos műszaki számítások• Binárisan kódolt gépi nyelvű program (minden gépnek különböző), programozás gépi kódban• Processzorcentrikus, soros feldolgozás• Vákuumcsövek (nagy méret), adattárolók : mágnesdobok elektroncsöves, 10e3..10e4 művelet/sec• 10..100kW teljesítményfelvétel, kis megbízhatóság, magas ár, néhány darab
2. Generáció: 1956-1963• 1948 Tranzisztor felfedezése, félvezetős áramkörök (tranzisztor, dióda), 10e4..10e5 művelet/sec• Megbízhatóbb, kisebb méret, teljesítmény felvétel csökken, Teljesítmény/ár arány megnő• Önálló (a központi feldolgozó egységtől függetlenül) párhuzamosan működő csatornák (I/O)• Memória centrikus, Perifériák, háttértárak, Ferritgyűrűs memória (megbízhatóbb, olcsóbb, gyorsabb,
nagyobb kapacitás), Gépcsaládok• Assembly nyelv (rövidített kódok), COBOL, FORTRAN, ALGOL, software ipar...• Kötegelt (batch) feldolgozás, gazdasági adatfeldolgozás, ipari folyamatirányítás
3. Generáció: 1964-1971• 1958 Jack Kilby (Texas Instruments), Integrált áramkör
(IC), 3 elektronikus elem 1 szilícium lapkán• Integrált áramkörök (10..1000 egy tokban), 10e5..10e6
művelet /sec• Modularitás, bővíthetőség, Párhuzamos működés, több
processzor, I/O processzorok, Olcsó nagy tárak• Operációs rendszerek, szoftverek• Multiprogramozott üzemmód• Időosztásos rendszerek (Time sharing), távoli terminálok• IBM 360 / 370, PDP 11 (DEC másolat)
4. Generáció: 1971-napjainkig (1)• Egyre több elem egy tokban (chipben) LSI, VLSI, ULSI (1e6 )• Csökkenő méret, csökkenő ár, növekvő teljesítmény, megbízhatóság• 1971 Intel 4004 : központi feldolgozó egység, memória, I/O vezérlés 1 chipben• Egy mikroprocesszor - több feladatra programozva , mikroszámítógépek• 1976 Cray 198 MFLOPS• Mini-számítógépek (Commodore, Apple, Atari)• 1981 IBM PC „személyi számítógép”• 1981: 2Millió, 1982: 5.5Millió, 1990: 65millió• Desktop, laptop, palmtop• 1984 Macintosh Apple, grafikus operációs rendszer• Hálózatok, LAN, internet
• Technológia : eletroncső, tranzisztor, integrált áramkör, LSI, VLSI• Operatív tár : művonal, ferritgyűrű, félvezető• Struktúra : processzorcentrikus, tárcentrikus, moduláris• Méret csökken („teremnyi” -> „körömnyi”), darabszám nő (1-2db. -> 10e6 db/típus.)• Alkalmazás : tudományos-műszaki számítások, gazdasági adatfeldolgozás, ipari folyamatirányítás,
általános• Programozás : gépi, assembler nyelv, magas szintű nyelvek, operációs rendszerek• Árarány : hardver / szoftver csökken
2. előadás tartalma• Informatikai fogalmak...• Turing gép• „Egyszerű gép”• Adat-tárolási formák, adatreprezentáció
– Bináris adat-tárolás– számok / betűk / egyebek– pozitív / negatív– egész / tört , fixpontos / lebegőpontos
• Informatika : „az a tudományág, amely az információk keletkezésével, továbbításával, feldolgozásával, hasznosításával foglalkozik a legszélesebb értelemben”(nem szűken számítógépes feldolgozás)
5
Hírközlési modell
forrás adó vevő címzetthír
kódol dekódolcsatorna
•kódolás•zajos csatorna•hibajavítás
6
Hír, adat, jel
hír adat
jel
feldolgozás céljából
továbbításcéljából
fizikaiábrázolása
fizikaiábrázolása
8
Közlemény, adat, információ
közlemény
adat információ
hasznos új ismeretforma tartalom
jelentéstől megfosztva
értelmezett ismeret
jelsorozat
9
Jelkészlet, kódrendszer, kódolás
kódrendszerjelkészlet
szabály-rendszer
kódrendszerjeljeljel
kódolás
közlemény
jel
SOS
Adat, információ, jel • Adat (data) = információ ami olyan formában van átalakítva hogy könnyebb legyen mozgatni vagy
feldolgozni.A mai számítógépekben: adat = információ bitek formájában
• Információ (information) = inger, ami a befogadójának értelemmel bír egy kontextusban.Információt át lehet alakítani adattá és átadni egy másik befogadónak.A mai számítógépekben: az információt adattá alakítják, az bekerül a számítógépbe, ahol tárolják és feldolgozzák, majd adatként kikerül és információként értelmezik.
• Jel (signal) = “amit küldünk vagy fogadunk”
10
Jel, karakterjel
a jel azon jellemzői amelyeknek az értékváltozása a hírt vagy az adatokat ábrázolja
analóg digitális
folytonosfüggvény
karakter
A/D átalakítás
D/A átalakítás
megállapodás szerintivéges halmaz (ABC)
jelparaméter
karakterkészlet
Algoritmus, program, utasítás• Feladat megoldása = műveletek, átalakítások sorozata• Algoritmus = egy feladatnak a megoldáshoz vezető lépéssorozata• Algoritmus elemi lépései = utasítások a feladatot megoldó számára• Program = utasítások sorozata• Meghatározott (megengedett) utasítások
Hardver - Szoftver• Hardver (hardware) : számítógép elektronikus áramkörei, mechanikus berendezései, kábelek,
csatlakozók, perifériák (önmagában nem működőképes) • Szoftver (software) : számítógépet működőképessé tevő programok és dokumentációi • Firmware : számítógép általános vezérlése (csak olvasható programok : ROM)
13
Turing gép
) w 8 X A w O . a... ... végtelen szalag„rekeszek”
T szimbólumirás / olvasás
véges állapotú gép
szimbólum
működés : az olvasott jel és az állapot alapján• egy más szimbólumot tud visszaírni• állapotot vált• balra vagy jobbra mozdul a szalagon
1928 David Hilbert : létezik-e olyan gép vagy eljárás,amivel minden matematikai kérdés eldönthető ?
1936 Alan Turing :
balra / jobbra mozdulás
14
Példa Turing gép működésére”Ha „n” állapotban van,ha a fej „x” jelet olvas,írd az „y” jelet,lépj balra vagy jobbra egyet,legyen az új állapot „m”.
áll. jel ír lép új áll.1 o o jobb 2 2 o o jobb 32 x x jobb 23 o üres bal 53 x o bal 44 o x jobb 2
szalag áll. megjegyzés oxxoxxxo 1 írj o-t, 2-es állapotoxxoxxxo 2 végig az első szám x-eseinoxxoxxxo 2 végig az első szám x-eseinoxxoxxxo 2 első szám vége, 3-as állapotoxxoxxxo 3 x-est o-ra átír, visszalépoxxxoxxo 4 o-át x-re átír...oxxxoxxo 2 első szám vége, 3-as állapotoxxxoxxo 3 x-est o-ra átír, visszalépoxxxooxo 4 o-át x-re átíroxxxxoxo 2 első szám vége, 3-as állapotoxxxxoxo 3 x-est o-ra átír, visszalépoxxxxoxo 4 o-át x-re átíroxxxxxoo 3 második szám vége, o-t töröloxxxxxo 5 nincs ilyen állapot, vége
feladat : oxxoxxxo -> oxxxxxo
Egy egyszerű gép
17
2 tárolós egyszerű logikai gép vázlata (műveleti egység)
műveletiegység
műveletválasztás
1. adat
2. adat
eredmény
18
2 tárolós egyszerű logikai gép vázlata (program tároló)
op
programtároló
műveletiegység
műveletválasztás
1. adat
2. adat
eredmény
19
2 tárolós egyszerű logikai gép vázlata (adat tároló)
op x y
programtároló
adattároló
műveletiegység
műveletválasztás
1. adat címe
2. adat címe
1. adat
2. adat
eredmény
20
2 tárolós egyszerű logikai gép vázlata (következő utasítás címe)
op x y a
programtároló
adattároló
műveletiegység
műveletválasztás
következőutasításcíme
1. adat címe
2. adat címe
1. adat
2. adat
eredmény
21
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
op x y a
programtároló
adattároló
műveletiegység
műveletválasztás
következőutasításcíme
1. adat címe
2. adat címe
1. adat
2. adat
eredmény
24
Egyszerű gép vázlata
op x y a
memória(program+adat)
műveletiegység
művelet választás
következőutasításcíme
1. adatcíme 2. adat címe
1. adat
2. adat
eredmény
Neumann elvű számítógép I.• bináris (digitális)• elektronikus• belső programvezérlés• memória tárolja a programot és az adatokat• soros feldolgozás• A (központi egység) részei:
• a vezérlõ egység (control unit),• az aritmetikai és logikai egység (ALU), • a tár (memory) és• a ki/bemeneti egységek.• Mindezek teljesen elektronikusak legyenek és bináris számrendszert használjanak. Az ALU
képes legyen elvégezni az alapvetõ logikai és aritmetikai mûveleteket (néhány elemi matematikai és logikai mûvelet segítségével elvileg bármely számítási feladat elvégezhetõ).
• Tárolt program elvû (a program és az adatok ugyanabban a belsõ tárban tárolódnak). • A vezérlõ egység határozza meg a mûködést a tárból kiolvasott utasítások alapján, emberi beavatkozás
nélkül.Szám - számrendszer
• “radix-weighted positional number system”(számrendszer alapján súlyozott helyiértékes számrendszer)
• számjegy (pld. 0,1,2,3,4,5,6,7,8,9)• számrendszer alapja (pld. 10)
szokványos 10-es számrendszer (0,1,2,3,4,5,6,7,8,9)564,2 = 5*10^2 + 6*10^1 + 4*10^0 + 2*10^-1
28
Számok szokásos írásmódja fixpontos írásmód
írásmód: A=(an an-1...a2a1a0,a-1...a m-1am)
ahol :an,...,a1,0,a-1,...,am
az egyes helyiértékekenszereplő számjegyekalaki értékei
jelentése r (radix) alapú számrendszerben :
és ahol rai i 0:in
miiraA
29
Lebegőpontos írásmód
a : mantissza (fixpontos szám)
p : karakterisztika, a hatványkitevő (fixpontos egész szám)
r : radix, a számrendszer alapszáma
lebegőpontos szám :
110*62,54
pra
30
Normalizálás
normalizálás (nullára) : 11a
r
normalizálás (egyesekre) : ra1
23 10*642,510*5642,02,564
Adatábrázolás kritériumai• Hatékony tárolás• Egyértelműség (könnyen értelmezhető)• Egyszerű, gyors műveletvégzés
Bináris adatfeldolgozás• számítógép : információ feldolgozó eszköz• információ : numerikus / nem-numerikus• bináris számábrázolás...• minden 0-k és 1-ek sorozatával van ábrázolva
Miért bináris? Miért a kettes számrendszert használjuk ?• Technikai okok :legjobban megkülönböztethető állapotok • Elvi, matematikai okok : „tömörség” (hány darab számjegy, hány féle számjegy)
36
Pozitív számok tárolása(Fixpontos tárolás)
egészek :
törtek :
8 7 6 5 4 3 2 10 0 1 0 1 1 0 0 .
8 7 6 5 4 3 2 11 0 1 1 0 0 0 0.
a tárolt számérték : 44
a tárolt számérték : 11/16= 0.6875
kettedespont
nA 20
12 An
n : a tárolócellák(bitek) száma
37
Pozitív számok tárolása, példák
egész, 2-es számrendszer :
tört :
7 6 5 4 3 2 1 00 0 1 0 1 1 0 0
-1 -2 -3 -4 -5 -6 -7 -81 0 1 1 0 0 0 0.
a tárolt számérték : 44
a tárolt számérték : 0.6875
02*0
02*0
322*1
02*0
82*1
42*1
02*0
02*0
7
6
5
4
3
2
1
0
0625,02*1
125,02*1
5,02*1
4
3
1
.
38
Előjel és abszolút értékes ábrázolás :első bit 0 : pozitív , első bit 1 : negatív, utána az abszolút értek (n-1 biten)
Pozitív és negatív egész számok ábrázolása
101100=44
előjelbit+44
-44
példa :
| 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
39
1-es komplemens :
Pozitív és negatív egész számok ábrázolása
101100=44példa :
... képzés
különben
ha A0
+44 00101100
-44k1 11010011
AAk1=
2n-1-|A|
40
2-es komplemens :
Pozitív és negatív egész számok ábrázolása
példa :
képzés ha Ak2<0 : Ak2 = Ak1 + 1ha A0 : Ak2 = Ak1 = A
ha A0
különben
+44 00101100-44k1 11010011-44k1+1 11010100
AAk2=
2n-|A|
41
többletes : At = A + tahol „t” a többlet
Pozitív és negatív egész számok ábrázolása
+44 „128+44” 172 10101100
- 44 „128 - 44” 84 01010100
példa 128 többletesre :
42
Pozitív és negatív egész számok tárolása, példák
számérték bitsorozat ábrázolás
+107 01101011 „sima”
-107 11101011 előjel, abszolútérték
-107 10010100 egyes komplemens
-107 10010101 kettes komplemens
-107 00010101 128 többletes
43
Számok lebegőpontos tárolásaANSI/IEEE 754
s : mantissza előjele (0 ha pozitív)b : mantissza törtrésze (egyesekre normalizált)p : karakterisztika értékee : eltolás (többlet)
előjel karakterisztika mantissza
S | (p+e) | b
A = a*2q = (-1)s * (1.b)*2p
44
Számok lebegőpontos tárolásaANSI/IEEE 754, példa
-13,375 : 13 + 0,375 : 1101,0112
negatív szám = előjel : 1egyesre normalizálva: 1,1010112*23
mantissza (szignifikandus): 101011000... 127 többletes karakterisztika = 130 : 100000102
előjel karakterisztika mantissza
1 1000001|0 1010110|00000000|0000000046
Számok lebegőpontos tárolásaANSI/IEEE 754, jellemzők
adatformátumok karakterisztika szignifikandus
normalizáltadatformátum
tetszőleges tetszőleges
denormalizáltadatformátum
0 <>0
nulla számérték 0 0végtelen értékénekadatformátuma
111... 0
nem meghatározottszámérték (NaNNot a Number)
111... <>0
47
BCD(Binary Coded Decimal)
példa:
1 9 7 3
0001 1001 0111 0011
1.byte 2.byte48
Gray kód
tulajdonsága: mindig csak 1 bit változik
Decimális Bináris Gray0 0000 00001 0001 00012 0010 00113 0011 00104 0100 01105 0101 01116 0110 01017 0111 0100… … …
49
Hexadecimális számábrázolás0000 00001 1........ ..1000 81001 91010 A1011 B1100 C1101 D1110 E1111 F
hexadecimális kódok
példa :107 = 0110 10112 = 6B16
6 B50
Alfanumerikus karakterábrázolás
• EBCDIC (Extended Binary Coded Decimalcode for Informations Change) zónarész + számjegyrész
• ASCII (American Standard Code forInformation Interchange)ISO 7 bites
betűk, számok, írásjelek, vezérlő karakterekpéldául : 32=„ ” (szóköz), 48=„0”, 65=„A”
Egyéb (öndefiniáló) adattárolási módok• jelölt adatábrázolás (tagged storage) : + adat típus, felhasználás módja• deszkriptoros tárolási forma (data descriptor) : + hozzáférési jogok, cél)• összetett strukturális forma
53
1/16 és 1/10 a kettes számrendszerben
0,0001 (1/16)0,0001 (1/16)0,0010 (1/8)0,0010 (1/8)0,0100 (1/4)0,0100 (1/4)0,1000 (1/2)0,1000 (1/2)1,0000 (1)
1/1610= ?2
= 0,00012
1/1010= ?2
= 0,000110011001100110...2végtelen szakaszos kettedes tört... 54
0,1+0,1+0,1+ 0,1+0,1+0,1+ 0,1+0,1+0,1+0,1
= ?0,0001100110011... (0,110)0,0001100110011... (0,110)0,0011001100110... (0,210)0,0011001100110... (0,210)0,0110011001100... (0,410)0,0110011001100... (0,410)0,1100110011000... (0,810)0,001100110011... (0,210)0,111111111111... (110)
3. előadás tartalma• utasítás típusok, utasítás készlet• a központi feldolgozó egység működése• utasítás ciklus• utasítás szerkezet• címzési módok• adat-töltő, adat átvitel a számítógép funkcionális részei között• aritmetikai, logikai műveletek végzése adatokkal • program vezérlő, vezérlésátadás a program egyik részéről egy másik részére• speciális, rendszer vezérlő, hatékony működést segítő• I/O, adat átvitel a számítógép és a környezete között
Regiszter -> RegiszterRegiszter -> MemóriaMemória -> RegiszterMemória -> Memóriaaritmetikai műveletek: + - * / (különféle adattípusokon)logikai függvények: AND, OR, NOT, XORösszehasonlítások, vizsgálatokléptetések
feltétlen elágazás (ugró)feltételes elágazásszubrutin hívásHALT, WAIT megszakítás kezeléskölcsönös kizárás megvalósítása (Test And Set)adatátvitel a periféria és a gép közöttperiféria vezérlése
A központi feldolgozó egység• feladata, kapcsolata a többi egységgel• részei, felépítése• működése• megvalósítása
18
Utasítás végrehajtás funkcionális vázlata
utas
ítás
szám
láló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
13
memória(MEM)
központi feldolgozó egység(CPU)
ALUCU
adatsín
címsín
vezérlősín
regiszterek
14
A központi feldolgozó egység részei
A központi feldolgozó egység(Central Processing Unit - CPU) részei :
• műveleti egység (aritmetikai logikai egység)(Arithmetic Logical Unit - ALU)
• vezérlő egység (Control Unit - CU)• regiszterek (registers)• sínek (bus)
17
memória(MEM)
központi feldolgozó egység
ALU
CU
adatsín
címsín
vezérlősín
utasítás tárolóregiszter
adatregiszterek
utasítás számlálóregiszter
16
Utasítás ciklus
Fetch („elérés”) :• Utasítás kód beolvasása• Utasítás kód értelmezése (dekódolás)• Operandusok beolvasásaExecute („végrehajtás”) :• Műveletvégzés (ALU)• Eredmény tárolása• Következő utasítás címének kiszámítása
Utasítás végrehajtás lépései 1.• meghatározni a következő utasítás címét és a tár
címregiszterébe tölteni • az utasítást a tárból az utasításregiszterbe tölteni
Utasítás végrehajtás lépései 2.• meghatározni (címképzés) a tár címregiszterébe tölteni
az 1. adat címét• adat a tárból az egyik adatregiszterbe
Utasítás végrehajtás lépései 3.• meghatározni (címképzés) a tár címregiszterébe tölteni a
2. adat címét• adat a tárból egy másik adatregiszterbe
Utasítás végrehajtás lépései 4.• utasítani az aritmetikai logikai egységet a művelet elvégzésére• eredmény tárolása egy adatregiszterben
Utasítás végrehajtás lépései 5.• meghatározni (címképzés) a tár címregiszterébe tölteni az eredmény címét• az eredmény az adatregiszterből a tárba
Utasítás végrehajtás lépéseinek összefoglalása• következő utasítás címe, elérése, előkészítése• 1. adat címe, elérése, előkészítése• 2. adat címe, elérése, előkészítése• művelet elvégzése• eredmény címe, eltárolása
Utasítás végrehajtáshoz szükséges „információk”• vezérlőegységnek információ <- utasítás
– elvégzendő művelet– 1. adat címe (helye)– 2. adat címe (helye)– erdmény címe (helye)– következő utasítás címe
• nem lehetne máshogy ?!
28
Utasítás végrehajtás 5.
utas
ítás
szám
láló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
20
Utasítás végrehajtás 1.ut
asítá
ssz
ámlá
ló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
22
Utasítás végrehajtás lépései 2.
utas
ítás
szám
láló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
24
Utasítás végrehajtás lépései 3.
utas
ítás
szám
láló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
26
Utasítás végrehajtás 4.
utas
ítás
szám
láló
utas
ítás
regi
szte
r
ütem
ező
vezérlőjelek
adat
regi
szte
rek
tár puffer-regiszter
tár cím-regiszter
utas
ítás
deko
doló
aritmetikai logikai egység
cím
sín
adat
sín
operatív tár
cím
képz
és
Utasítások tárolási formáiutasítás szerkezetcímzési módokutasítás típusok, utasítás készletEgy utasítás felépítése, részei
34
4 címes utasítás forma
műveletikód
1. adatcíme
2. adatcíme
eredménycíme
következő utasításcíme
35
3 címes utasítás forma
műveletikód
1. adatcíme
2. adatcíme
eredménycíme
program számláló
utasítás számláló regiszter , Program Counter (PC)PC := PC + utasítás hossz
következő utasításcíme
36
2 címes utasítás forma
műveletikód
1. adatcíme
2. adatcíme
eredménycíme
az eredmény a 2. adat címére kerül
37
1 címes utasítás forma
műveletikód
1. adatcíme
2. adatcíme
eredménycíme
akkumulátorregiszter
a 2. adat címe helyett akkumulátor regiszter,az eredmény az akkumulátor regiszterbe kerül 38
0 címes utasítás forma
műveletikód
1. adatcíme
eredménycíme
akkumulátorregiszter
a művelet az akkumulátor regiszteren hajtódik végre40
jelölések
• S : tárcím• R : regisztercím• A : akkumulátor
regiszter• I : közvetlen adat az
utasításban
• MK : műveleti kód• @ : tetszőleges
művelet
• (S) : adat a tárban • (R) : adat a regiszterben• (A) : adat az
akkumulátor regiszterben
• LI(n) : az n. utasítás hossza
• SI(n) : az n. utasítás címe
műveleti kódmódósításra utaló részcímrész
41
4 címes :MK S1 S2 S3 S4(S1) @ (S2) -> (S3), SI(n+1) = S4
3 címes :MK S1 S2 S3(S1) @ (S2) -> (S3), SI(n+1) = SI(n) + LI(n)
2 címes : MK S1 S2(S1) @ (S2) -> (S2) ”
1 címes :MK S1(S1) @ (A) -> (A) ”
0 címes :MK@ (A) -> (A) ” 42
1 R címes : MK R:@ (R) -> (R)
1 + R címes : MK R S :(R) @ (S) -> (R) vagy (R) @ (S) -> (S)
2 R címes : MK R1 R2 :(R1) @ (R2) -> (R1)
3 R címes : MK R1 R2 R3:(R1) @ (R2) -> (R3)
közvetlen operandusú :MK I S vagy MK II @ (S) -> (S) vagy @ I -> (A)
Címzési módokCímértelmezés, címmegadás
44
Címértelmezés
műv. kód adat
adatműv. kód
műv. kód
műv. kód
0
1
cím
cím
adat
cím
adat
közvetlen (immediat) adatmegadás
rejtett (inheritent), implicit címzés
közvetlen (direkt) címzés
közvetett (indirekt) címzés
regiszter
tár
45
Címmegadás
műv. kód
műv. kód
cím
cím (D)
adat
adat
abszolút címmegadás
rövidített címmegadás
bázis
+D
D = displacement (eltolás)vagy „offset”
Rövidített címmegadásMihez képest számítjuk a címet :
• lapcímes :az adott lap kezdetétől• bázisregiszteres : bázisregiszter értékétől (általában a bázisregiszter tartalma rögzített)• mutatós (pointeres) : a meghatározott regiszter értékétől (a regiszter tartalma a program végrehajtása
során változik, pld. PC) Kombinált címzési módok
• Címmódósítás : indexelés (vektor feldolgozása : első elem megadása, index automatikus növelése)• fix utasításhossz• változó utasításhossz
Az utasítások felépítése, szerkezete fix és változó utasításhosszPélda : 8 bites utasításhossz, 3 bites címhossz
• 3 címes címzés lehetetlen• 2 címes címzés : marad 2 bites műveleti kód : 4 féle utasítás• 1 címes címzés : marad 5 bites műveleti kód : 32 féle utasítás• 0 címes címzés : 8 bites műveleti kód : 256 féle utasítás
műveleti kód 1. cím 2. cím2 bit 3 bit 3 bit00 xxx yyy01 xxx yyy10 xxx yyy11 xxx yyy
52
Utasítások kódolása („expanding”)
3 db2 címes utasítás
8 db1 címes utasítás
2 bitesműveleti kód
5 bitesműveleti kód
2bit 3bit 3bit00 xxx yyy01 xxx yyy10 xxx yyy11 000 yyy11 001 yyy11 010 yyy11 011 yyy11 100 yyy11 101 yyy11 110 yyy11 111 yyy 53
Eltérő címzésí módú gépek programozása példa (1)
Adott 4 különféle típusú gép :• 0 címes gép (verem), pld.: ADD, PUSH, POP• 1 címes gép, pld.: ADD M = ACC <- (ACC) +
(M)• 2 címes gép, pld.: ADD X,Y = X <- (X) + (Y)• 3 címes gép, pld.: ADD X,Y,Z = Z <- (X) + (Y)műveletek : MOV, ADD, SUB, DIV, MULKiszámolandó :
• Z:= (A+B*C)/(D-E*F)
54
Eltérő címzésí módú gépek programozása példa (2)
Adatok :• M - 20 bites memóriacím• X,Y,Z - 20 bites memória cím, vagy 3
bites regisztercím (R0-R7)• a műveleti kód rész hossza 8 bitKérdés mindegyik géptípusra (programra)
:• az utasítások száma• a program mérete (bit-ben)• a felhasznált regiszterek száma
55
• REG• ALU• FLAG• AC• CU• IR• PC
57
Fizikai struktura
• operatív tár• műveleti (aritmetikai logikai) egység• vezérlőegység• megszakítási rendszer• I/O rendszer
56
Logikai struktura
• adattípusok• programozható regiszterek• utasítás típusok (utasítás lista)• utasítás formák• címzési módok
4. előadás tartalma• ALU áramköri megvalósítása
– logikai áramkörök– összeadó áramkörök
• vezérlő egységek megvalósítása– huzalozott vezérlők– mikroprogramozott vezérlők
• feladata, kapcsolata a többi egységgel• részei, felépítése• működése• megvalósítása (ALU+CU+regiszterek)
Arithmetical Logical Unit - ALU
6
„és”
„vagy”
7
Elemi logikai kapuk
& 1 1
x y x.y0 0 00 1 01 0 01 1 1
x y x+y0 0 00 1 11 0 11 1 1
AND OR NOTx -x0 11 0
xy
xy
xx.y x+y
xy
x.yxy
x+y x
-x
-x
8
Logikai kapuk
x y x NAND y0 0 10 1 11 0 11 1 0
x y x NOR y0 0 10 1 01 0 01 1 0
NAND
NOR
XOR
xy
xy
xy
x y x XOR y0 0 00 1 11 0 11 1 0
9
Multiplexer (2 bemenetű)
s0 z0 d01 d1 z
d0
d1
s0MUXd0
d1z
s0
10
Multiplexer (4x 2 bemenetű)
x3y3
x2y2
x1y1
x0y0
MUX
MUX
MUX
MUX
z3
z2
z1
z0
s 11
Multiplexer (4 bemenetű)
s1 s0 z0 0 d00 1 d11 0 d21 1 d3
MUXd0d1
zMUX
MUXd2
d3
s0 s1MUX
d0d1d2d3
s0 s1
z
12
4 bites logikai függvények (AND,
XOR) áramkör x3y3
x2y2
x1y1
x0y0
MUX
MUX
MUX
MUX
z3
z2
z1
z0
s 13
Félösszeadó (1bites)xy s
c
x XOR y
x.y
bemenet kimenetx y s c0 0 0 00 1 1 01 0 1 01 1 0 1
s = sum (összeg)c = carry (átvitel) 1/2+
xy
sc
14
Teljes-összeadó (1bites)bemenet kimenetx y cin s cout0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
cin = carry incout = carry out
1/2+xy s
cout
1/2+cin
1+xy
cin
scout
15
4 bites teljes összeadó („terjedő átvitel”, ripple carry)
1+
y3 x3
s3
1+
y2 x2
s2
1+
y1 x1
s1
1+
y0 x0
s0
c0
c4
c3 c2 c1
4 bites összeadó
y3 x3 y2 x2 y1 x1 y0 x0 cin
cout s3 s2 s1 s0
16
Kivonás kettes komplemenssel
5 0101+2 +0010
7 0111
5 0101-2 +1110
3 0011
2 0010-2 1101 egyes komplemens-2 1110 kettes komplemens
összeadás
kivonás 17
4 bites összeadó/kivonó áramkör
x3x2x1x0y3
y2
y1
y0
MUX
MUX
MUX
MUX
s cout
z3z2z1z0
A
B
C
4 bitesteljes
összeadó
cin
18
4 bites 4 műveletes ALU
aritmetikaiegység(+/-)
logikaiegység
(AND/XOR)
x
y
s0s1
4x 2 bemenetűmultiplexer
z
44
4
4
4
4
4
Buszok (sínek)• Adatsín • Címsín• Vezérlő sín• külső / belső sínek (a CPU-hoz képest)• busz-szélesség
20
„Kapuzás”, vezérlés
sín
„A”egység
„B”egység
„C”egység
RA
WBWC
21
„sín”
Kétirányú busz
C
x1
y1
x2
y2
xn
yn
„egység”
A vezérlő egység Control Unit - CUA vezérlő egység feladata, működéseAz adott utasítás alapján a szükséges elemi műveleteket kiváltó vezérlőjelek megfelelő sorrendben való előállítása, illetve a szükséges címek képzése.Vezérlő típusok :
• huzalozott vezérlők• mikroprogramozott vezérlők
24
Egy töltő utasítás elemi lépései (példa)LDA X azaz (X) -> AC :
• (PC) -> adatsín, adatsín -> címsín, címsín -> MAR• címdekódolás, mem(MAR) -> MDR• (MDR) -> adatsín, adatsín -> IR• IR(op.kód) -> dekódolás• IR(címrész) -> címsín, címsín -> MAR• címdekódolás, mem(MAR) -> MDR• (MDR) -> adatsín, adatsín -> AC
címsín
adatsín
PCMEM
MDR
MARIRAC „kapuzás”
Huzalozott vezérlő egység megvalósítása
26
Számláló
2 bitesszámlálóCLK
reset q0q1
1 11
1
1 1
1
111
1
1
1
1
1
10
0
0
0
00
0 0
CLK
q0
q1
0 000 00 027
Demultiplexer (1 ből 4)
bemenet kimenete s1 s0 y0 y1 y2 y30 x x 0 0 0 01 0 0 1 0 0 01 0 1 0 1 0 01 1 0 0 0 1 01 1 1 0 0 0 1
1 ből 4demultiplexer
y0y1y2y3
s0 s1
e
28
utasítás végrehajtás - kapuk vezérlése
MEM
ALU
ACC TMP OP
PC
MK
vezérlő
címsín
adatsín
k0
k1 k2
k3k4
k6
k5
k7
k8k9
1. utasítás elérés k4,k0,k1,k22. operandus elérés k3,k0,k1,k73. utasítás végrehajtás k5,k94. következő... ...
utasítástólfüggően
29
Kapuk vezérlése megfelelő sorrendben
...
clk
1. utasítás elérés k4,k0,k1,k22. operandus elérés k3,k0,k1,k73. utasítás végrehajtás k5,k94. következő... ...
a megfelelőutasítás számláló
demultiplexer
k0k1k2k3k4k5...
...
...
...
az utasításlépései
MK
demultiplexer
Mikroprogramozott vezérlő egység megvalósítása
31
Mikroprogramozott vezérlő
MAR
vezérlő jelek
következő mikro utasítás címe
mikroprogram tár
mikro utasítás
műveleti kód
...32
Mikroprogramozott vezérlő programja 1. utasítás elérés k4,k0,k1,k2
2. operandus elérés k3,k0,k1,k73. utasítás végrehajtás k5,k94. következő... ...
...1110100000 110 011101000100 110 100000010001 110 11... ...
vezérlő jelekkövetkező mikro utasítás címe
műveletikód
k0123456789
110 00 110 01110 10110 11
mikroprogram tár
mikro utasítás
memóriacímek
33
Huzalozott és mikroprogramozott vezérlők
összehasonlításaHuzalozott:• gyorsabb• egyszerűbb
Mikroprogramozott:• lassabb (ROM kiolvasás)• emuláció• kompatibilitás• speciális utasítások• pld. : IBM 370,
VAX 11, MC68000
RegiszterekRegiszterek szerinti osztályozás
• Általános regiszter készletű• Akkumulátoros• Verem alapú
Regiszterek• Általános célú regiszterek• Dedikált (speciális célú) regiszterek
– státusz regiszter (Status Register SR / Program Status Word PSW)– utasítás regiszter (Instruction Register IR)– utasítás számláló (Program Counter PC)– verem mutató (Stack Pointer SP)
5. előadás tartalma• Processzor gyorsítási lehetőségek• Pipeline feldolgozás• Cache gyorsító tár• CISC vs. RISC...• Bitszelet processzorok• Co-processzorok• Pédák processzorokra...
Órajelfrekvencia, idő, távolság• 1 „normál” kapu kapcsolási idő = 10ns• 600 MHz-es órajel => 1/600*10e6 s (két órajel közötti idő) ≈ 1.6ns• „fénysebesség” ≈ 300.000 km/s• (300000*10e3 m/s) * (1/600*10e6s) => ≈ 0.5m (utat tesz meg a fény két órajel között!)
művelet végzés gyorsítása ?utasítás végrehajtás gyorsítása ?párhuzamosítás !Műveletvégzés gyorsításaÖsszeadás átvitel-előrelátás(addition carry-lookahead)
6
Teljes összeadó „késleltetése”(ripple carry)
1+
y3 x3
s3
1+
y2 x2
s2
1+
y1 x1
s1
1+
y0 x0
s0
c0
c4
c3 c2 c1
késleltetés (3dt)
1 dt = 1 kapu kapcsolási idő (kb. 10ns)
7
Gyorsított összeadás
• Ci+1= (Xi AND Yi) OR (Xi AND Ci) OR(Yi AND Ci)
• Ci+1=(Xi * Yi) + (Xi * Ci) + (Yi * Ci)• Ci+1=(Xi * Yi) + ((Xi + Yi ) * Ci)• Gi = generate = Xi *Yi
• Pi = propagate =Xi + Yi• Ci+1=Gi+Pi*Ci
8
4bites átvitel-előrelátás („carry lookahead”)
• C1=G0+P0*C0• C2=G1+P1*C1 =G1+P1*G0+P1*P0*C0
• C3=G2+P2*C2=G2+P2*G1+P2*P1*G0+P2*P1*P0*C0
• C4=G3+P3*C3=G3+P3*G2+P3*P2*G1+P3*P2*P1*G0+P3*P2*P1*P0*C0
Ci+1=Gi+Pi*Ci
C4 független C1..C3-tól, csak X1..4 , Y1..4 és C0-tól függ
C1 behelyettesítve
9
Szorzás ROM-ból kiolvasássalX Y Z
0*0 00 00 00000*1 00 01 00000*2 00 10 00000*3 00 11 00001*1 01 01 00011*2 01 10 00101*3 01 11 00112*0 10 00 00002*1 10 01 00102*2 10 10 01002*3 10 11 01103*0 11 00 00003*1 11 01 00113*2 11 10 01103*3 11 11 1001
MEM16x 4bit
Z
XY
• gyors, egyszerű, olcsó• tetszőleges függvényre• csak kisméretben
alkalmazható
Pipeline feldolgozás(csővezeték, futószalag feldolgozás)„Pipelining”
• részfázisokra bontás• független részfázisok, önálló erőforrásokkal• az egyik fázis eredménye a következő induló adata
12
Utasítások egymás utáni végrehajtása
1. utasításfeldolgozása
idő
végrehajtásutasításelőkészítés
dekódolás operandusmeghatározás
2. utasításfeldolgozása
3. utasításfeldolgozása
13
Utasítás végrehajtásfokozatokra bontása
végrehajtásop. meghatározás
dekódolásút. előkészítés 1
11
1
utasítás feldolgozása
idő
végrehajtásutasításelőkészítés
dekódolás operandusmeghatározás
2
22
2
22
Cache memóriaProbléma : a központi memória általában
sokkal lassabb (5x-10x-...) mint a processzor...
Kicsi, gyors (drága!), puffer memória a központi memória és a processzor közé...
CPUKözpontimemória
Cachememória
14
Csővezetékszerű utasítás végrehajtás (pipelined)
végrehajtásop. meghatározás
dekódolásút. előkészítés 1
11
1
1. utasításfeldolgozása
idő2
22
23
33
34
44
45
55
56
67
...
...
...
3. utasításfeldolgozása2. utasítás
feldolgozása
15
Csővezetékszerű utasítás végrehajtás
végrehajtásop. meghatározás
dekódolásút. előkészítés 1
11
1 idő2
22
23
33
34
44
45 86 7 9
nem egyenlő hosszú fokozatok
Problémák a pipeline-naltárolóhivatkozás :
• lassú memória miatt várni kell az operandusokra• egyszerre kéne ugyanabból a tárból adatot és utasítást elérni
vezérlés átadó utasítások...megszakítások...->folyamatos pipeline feldolgozás megszakítása, felfüggesztéseMemória utasítások a pipeline-ban
• „Várakoztató utasítások” beiktatása - „lyukak” a pipeline-ben• késleltetett memória utasítás - utasítások átrendezése, üres utasítás beiktatása
load R1, (A)load R2, (B)add R1,R2,R3Elágazások kezelése a pipeline-ban
• az ugrási cím csak az utasítás feldolgozása után lesz ismert...• ha „rossz” ágat utasításait kezdi el feldolgozni akkor a pipeline-t (és az utasítások hatásait) törölni kell... • delayed branch (NOP utasítással feltöltés)
19
Adatok felhasználása a pipeline-ben
• adat függőség add R1,R2,R3 sub R3,R0,R4
ütközések :• írás utáni írás : 2. írás után ír az 1.• írás utáni olvasás : 2. előbb olvas mint az 1. ír• olvasás utáni írás : 2. előbb ír mint az 1. olvas• olvasás utáni olvasás :-)
scoreboarding...
internal forewarding...instruction scheduling...
20
Pipeline összefoglalás
• egyszerű elv• bonyolult, „trükkös” megvalósítás• sokat segíthet a fordítóprogram
Cache - „gyorsító” tár„Tipikus” cache
• 64 Mbyte memóriához 64 Kbyte cache• 20x gyorsabb• 1/1000 méret• 98% cache találat
Cache működés (olvasás)CPU által generált memóriacím küldése a cache-nek :1. ha az adat a cache-ben van
(cache hit, cache találat) :• adat elküldése a CPU-nak
2. ha az adat nincs a cache-ben (cache miss, cache „nemtalálat”, „találat hiba”) :
• a generált memóriacím küldése közp. memóriának• adat kiolvasása a központi memóriából,• adat elküldése a CPU-nak, és a cache-be
Cache• a memória és a cache között blokkos adatátvitel (4-64 szó) => programok lokalitása• teli cache esetén egy cache blokkot fel kell szabadítani (helyettesítési eljárások)
Cache hatása az átlagos elérési időre és a hatékonyságra
Adatok :• cache elérési idő tc = 160ns• memória elérési idő tm = 960ns• átlagos cache találati arány h = 90%
Kérdés : • mennyi az átlagos elérési idő ? (ta)• mekkora a hatékonyság növekedés ? (g)
ta = h*tc + (1-h)*(tc+tm)= 0.9*160 + 0.1*(960+160)= 256 ns (átlagos elérési idő)
r = tm/tc = 960/160 = 6g = 1/(1+r*(1-h)) =1/(1+6*0.1) = 0.625
= 62.5% (hatékonyság növekedés)Cache hatása (SuperSPARC példa)
• CPU 0.75 CPI (cycles per instruction)• 3% cache miss• memória késleltetés 10 ciklus• 1.33 memória referencia / utasítás• cache miss „büntetés” 0.4 CPI 0,75*1,33*3%*10• 35% teljesítmény csökkenés 1-1/(1+3%*(10+1))
Memória „leképzése” a cache-ra-Teljesen asszociatív cache-Közvetlen leképzésű cache-Csoport asszociatív cache
30
Teljesen asszociatív cache(fully associative cache)
központi memória blokk „i” (0<=i<=M-1) leképezhető bármelyik „j” (0<=j<=N-1) cache blokkra
memória
0
M-1
0
N-1
kk
M=2m N=2n
m
i„i”
...
blokkméret :
j
31
Közvetlen leképzésű cache(direct mapping cache)
egy-egy memória blokk csak meghatározott helyre kerülhet (I-way setassociative cache)
memória
0
M-1
0
N-1
kk
ii MOD N
m-n
i DIV N
32
Közvetlen leképzésű cache(direct mapping cache)
memória
0
M-1
0
N-1
kk
ii MOD N
m-n
i DIV N
Pld. 10-es számrendszer,M=1000, N=10
i=785
5. 78 xx785.
33
Közvetlen leképzésű cachecímformátuma
memória blokk címm bit
m-n bit n-bit
„tag” cache blokkcím
M=2m
N=2n
34
Közvetlen leképzésű cache
memória
0
M-1
0
N-1
kk
ii MOD N.
m-n
i DIV N
a memória cím„alsó” n bitje
„tag”
a memória cím„felső” m-n bitje
35
Csoport asszociatív cache(set associative cache)
memória
0
M-1
0
N-1km-n+s
j...
S=2sS csoport blokkonként
a memória cím„alsó” n-s bitje
„tag”
a memória cím„felső” m-n+s bitje
k
cachecsoportcím
blokk csoport
0
N/S-1
4
CPU - Memória
Processzor Memória
címsín
adatsín
Cache-ben lévő adat megváltoztatása cache - memória koherencia fenntartása !
• azonnali átírás (write-through) : blokk tartalom módosítás esetén a blokk visszaírása a memóriába• visszamásolási eljárás (write back) :
• a frissen betöltött blokk „dirty” („piszkos”) bitje = 0• blokk tartalom módosítás esetén dirty bit = 1• blokk cache-ból törlésekor : ha dirty bit = 1 akkor vissza kell írni a memóriába (különben
nem)CISC vs. RISC processzorokCISC = Complet Instruction Set Computer (teljes utasítás készletű számítógép)RISC = Reduced Instruction Set Computer (csökkentett utasítás készletű számítógép)CISC vs. RISC processzorokCISC
• „könnyebb programozás”• összetett utasítások, sokféle címzési mód• utasítás végrehajtás több órajel alatt• mikroprogramozott• ...
CISC (VAX)• 14 féle címzési mód• 250 utasítás
RISC• egyszerűbb, gyorsabb• optimalizált fordítók• kevés utasítás és címzési mód• rögzített utasítás forma• utasítás végrehajtás 1 órajel alatt• kevés memória hozzáférés• sok regiszter• huzalozott vezérlő• pipeline feldolgozás
RISC • 1 féle címzési mód• 32 (50) regiszter... • 30-40 utasítás
Bit-szelet processzorokBit-szelet (bit slice) processzor
• példa : AM 2901• 4 bites ALU + regisztertömb• 3 aritmetikai, 5 logikai művelet• 9 bites vezérlés• állapot jelek
Segédprocesszorokco-processzorok
• gyorsabb lebegőpontos, mátrix, grafikai műveletek• új utasítások, adattípusok, regiszterek• együttműködés a processzorral
6. előadás tartalma• Memória hierarchia• Tárolókezelő egység• Virtuális tárkezelés (logikai-fizikai címek)• Szegmentálás• Lapozás
Tárolókezelő egységMMU - Memory Management UnitTárolókezelés feladatai
• a CPU által megcímzett címen lévő érték elérése• tárhierarchia hatékony működtetése : virtuális-logikai
címek kezelése, lapozás, szegmentálás• memória „szétosztása”
(több program, több felhasználó között...)• „védelem”
– rendszer programok a felhasználótól– felhasználók adatai
• felhasználók programjai (de közös eljárások)
7
Overlay technika (átlapolásos technika)
Probléma : nagy program, kis memória
Program feldarabolása, csak a szükséges darab(ok) a memóriában
datap
p1
p2
p3
datap
p1
datap
p2
datap
p3 idő
program
memória
Virtuális tárkezelés
9
Cím, címtartomány, címszélesség
Címtartomány
Címszélesség
10010110
000000000001000010000011
111111
011010
memóriacímek
memóriaértékek
...
...
...
...
cím érték
címtartomány = 2címszélesség
10
Logikai - fizikai címek
Logikai cím(tartomány) Fizikai cím(tartomány)
központi memória mérete...a CPU által címezhető, programban használható
logikai - fizikai címek megfeleltetése ?!
11
MMU
logikaicím
fizikaicím
központimemória
program
MMU
i
j
logikaicímtartomány
fizikaicímtartomány
Szegmentálás (segmentation)
13
Szegmensek képzése
szegmens = nem rögzített méretű adatblokkdata1
p0
p1
stack
program
data2szegmensek
cím meghatározása =
szegmens meghatározása +
szegmensen belüli „eltolás” meghatározása 14
Szegmentált memória kezelés
szegmensszám eltolás
logikai cím:
s dszegmenstábla
báziscím hosszösszehasonlítóengedélyező
fizikai cím: eltolásbáziscím +
15
Szegmens elhelyezési stratégiák
p0
p1
p2
?Szegmens betöltési (elhelyezési) módszerek (stratégiák) :• első szabad hely (first fit)• következő szabad hely (next fit)• legjobb hely (best fit)• legrosszabb hely (worst fit)
16
„Szemétgyűjtés” (garbage collection, „memória kompaktálás”)
p0
p1
p2
p4
? p0
p1p2
szemétgyűjtés
nagyon időigényes !
szegmensek
Lapozás (paging)
18
Lapok képzéselapok = azonos, rögzített méretű adatblokkok
logikai címtartomány és a fizikai címtartomány
felosztása lapokra
logikaicímtartomány
fizikaicímtartomány
19
Lapok megfeleltetése
MMU
„logikai lapok”
„fizikai lapok”
?
20
Címkiszámítás (lapszám, eltolás)
lapszám
0.
1.
n.
lapon belüli „eltolás” k. d.
lapszám (k) eltolás (d)
cím:
m.
0.
i bit j bit
n = 2i m = 2j
21
Logikai-fizikai címképzés
q d
p
logikai cím
fizikai cím d
„MMU”
„lap leképző eljárás”
22
Logikai-fizikai címképzés
q d
p
logikai cím
fizikai cím d
p
„laptábla”
23
Logikai-fizikai címképzés
q d
p
logikai cím
fizikai cím d
p
„jelenléti bit” :lap a memóriában vanvagy háttértárolón
1
01
0
0...
...
...
...
...
háttértárolón a cím
„laptábla”
24
Lapcímzés (példa1)
Adatok :• logikai címtartomány : 15 bit• központi memória : 8 Kbyte• lapméret : 211 byte• háttértároló : 32 KbyteKérdés :• mekkora a laptábla mérete ?
25
Lapcímzés (példa1 megoldás)
• lapméret : 211 byte = 2 Kbyte • logikai címtartomány : 15 bit = 32 Kbyte = 16 lap• központi memória : 8 Kbyte = 4 lap• laptábla :
– 16 sor (a logikai lapokhoz)– soronként 16 bit (2 byte)
• 1 jelenléti bit, • 2 bit (a fizikai lapszám) vagy 15 bit (a
háttértároló)• laptábla mérete : 32 byte
Lapozási mechanizmusHa a lap nincs a memóriában : laphiba (page fault) -> megszakítás -> háttértárolóból a lap betöltéseHa nincs hely a memóriában : helyettesítési eljárás... („egy lap” eltávolítása a memóriából...)Helyettesítési eljárásokMelyik lapot kell cserélni (eltávolítani) ?
• optimal : „amire legkevésbé lesz szükség”...• legrégebben bentlévő (FIFO)• legrégebbi nem használt • legkevésbé használt (LRU - Least Recently Used)
4
Memória hierarchia
háttérmemória
„belső” memória–regiszterek–puffer memóriák–mikroprogram tár
központi memória (első szintű,
operatív)
~ns~100 bytea CPU-ban
~Mbyte, ~10 ns
végrehajtás alatti program, adatok
CPU által nem közvetlenül elérhetőnem aktív programok, nagymennyiségű adatok
~ Gbyte, ~ms
28
- 2 2 2 2 2 2 5 5 1 1 1- - 3 3 3 6 6 6 6 6 6 6- - - - 4 4 4 4 4 4 4 4
Optimális laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6• Optimális helyettesítés
2 3 2 4 6 2 5 6 1 4 6
ok ok ok okok
„találati arány” (hit ratio) = 5/1129
FIFO laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6• FIFO helyettesítés
- 2 2 2 2 6 6 6 6 1 1 1- - 3 3 3 3 2 2 2 2 4 4- - - - 4 4 4 5 5 5 5 6
2 3 2 4 6 2 5 6 1 4 6
okok
„találati arány” (hit ratio) = 2/11
30
LRU laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6• LRU helyettesítés
- 2 2 2 2 2 2 2 2 1 1 1- - 3 3 3 6 6 6 6 6 6 6- - - - 4 4 4 5 5 5 4 4
2 3 2 4 6 2 5 6 1 4 6
ok ok okok
„találati arány” (hit ratio) = 4/11
31
Lapcímzés (példa2)
Adatok :• logikai címtartomány : 32 bit• központi memória : 8 Mbyte• lapméret : 4 KbyteKérdés :• mekkora a laptábla mérete ?
32
Lapcímzés (példa2 megoldás)
• lapméret : 4 Kbyte = 12 bit • logikai címtartomány : 32 bit = 4 Gbyte• központi memória : 8 Mbyte = 23 bit• laptábla :
– 32-12=20 azaz 220 sor (a logikai lapokhoz)– soronként 12 bit (2 byte)
• 1 jelenléti bit, • 11 (a fizikai lapszám)
• laptábla mérete 220 x 2 byte = 2 Mbyte !!!?Egyéb lehetőségek...
• Szegmentált lapcímzés kezelés... (szegmentálás + lapozás)• Translation Lookaside Buffer...
(a legutóbbi logikai-fizikai (lap)címmegfelelés tárolása cache-ban)Egyéb tulajdonságok...
• „overhead”• „working set”• „demand paging”...• „trashing” - multiprogramozás• Belady anomália
Belady 123451251234565 FIFO 4 lappal 4/15 5 lappal 3/15 7. előadás tartalma
• Memória típusok csoportosítása, jellemzése• ROM, RWM, RAM, CAM• 1x1bit -> n x m bit
Memóriák jellemzése („mennyiségi”)• kapacitás : tárolható adat mennyisége• legkisebb címezhető egység• hozzáférési szélesség : egy hozzáféréssel elérhető
adatmennyiség• átlapolhatósági fok : egyszerre müködhető modulok• elérési rendszer ...
Memóriák jellemzése („időbeli”)• elérési idő : időtartam az olvasási igénytől az adat megérkezéséig• ciklusidő : két hozzáférés közti minimális idő• átlapolhatósági fok : egyszerre müködhető modulok• adatátviteli sebesség : ...
•7
1 byte 1 szó 1 byte8
Memóriák osztályozásafizikai működési elv szerint
mágneses(remanenes mágneses vektor)
félvezetős(bistabil multivibrátor)
elérés szerint
cím szerint elérhető tartalom szerint elérhető(asszociatív)
9
Memóriák elérési rendszere
„véletlen” elérésű (címfüggetlen) (RAM - Random Access Memory)
sorbaállásos(FIFO - First In First Out)
verem rendszerű(LIFO - Last In First Out)
asszociatív (tartalom címzésű) (CAM - Content Adressable Memory)
sorosciklikus 10
Memóriák a tárolt információ megváltoztathatósága
szempontjábólátírható (törölhető)
RWMRead Write Memory
csak kiolvasható (fix) ROM
Read Only Memory
energia kimaradás esetén : felejtő / nem felejtőkiolvasáskor : törlődő (destruktív) / nem-törlődőstatikus / dinamikus (szükséges az információ „mozgatása”)
11
Memóriák hardware felosztása
ROM RWM
maszkolt PROM EPROM SRAM DRAM ferrit
címezhető memória
ROM-ok• mask programmable ROM• PROM : programmable ROM (1x csak)• EPROM : erasable programmable PROM (UV fény vagy áram)
RWM-ek („RAM”-ok)• SRAM (statikus RAM) olyan memóriachip, amely állandó feszültség hatására működik• DRAM (dinamikus RAM) az állandó feszültség mellett rendszeres frissítést, kiolvasást igényel.
14
Paritásbites memória ellenőrzés
1001101011100000101101010011000011010110110011110010110010000101
01101111
1
memóriatartalom
paritásbitek
11001111paritás hiba
15
Paritás ellenőrző áramkör
xy
x y x XOR y0 0 00 1 11 0 11 1 0
d0
...
d7
„tárolt paritás” bit
„számolt paritás”
Memóriák megvalósításaROMRWM
17
multiplexeres tároló...
MUX8-1
a2 a1 a0
z
d0
d7d6d5d4
d1d2d3
címzés :
01001100
000001010011100101110111
a2 a1 a0
18
„egyeniráyító” (dióda)
I áram
19
„maszkolt” ROMcímkiválasztás
adatkiolvasás 20
„maszkolt” ROM (működés)címkiválasztás
Iolvasó
adatkiolvasás
21
10101100
01
b3 b2 b1 b0
1-2
s0
22
PROM
Iiró
Iiró >> Iolvasó
„kiégetés”
23
Egy furcsa (visszacsatolt) kapcsolás
x y x NOR y0 0 10 1 01 0 01 1 0
a
b
c
d
24
RSFF érték beírás
a=0
b=1
c=x
d=y
a=0
b=1
c=x -> ?
d=y -> 0 x
y
a=0
b=1?
0 c=? -> 1
d=0
a=0
b=1
c=1
d=0
25
RSFF érték tárolás
a=0
b=0
c=1
d=0
a=0
b=0
c=1
d=01
0
26
RSFF „nem megengedett állapot”
a=1
b=1
c=0
d=0
a=1
b=1
c=1
d=01
0
a=0
b=0
c=1
d=1
a=0
b=0
c=0
d=0 instabilállapot
27
RS flip-flop
R (reset)
S (set)
Q
_Q
R S Q(t) Q(t+1)1 0 x 00 1 x 10 0 x x1 1 x ???
R QS -Q
28
D flip-flop
R QS -Q
CLK
D (data)
Clk D Q(t) Q(t+1)0 x y y1 x y x
D Qclk -Q
állapotmegörzés
adateltárolás
29
1x1 bites memória cella
D Qclk
D-in D-out
CS___
WR/RD
1x1bitD-in D-out
CS___
WR/RD
ChipSelect Write/Read
30
1x4 bites memória
1x1bitD0-in D0-out
CS___
WR/RD
1x1bitD1-in D1-out
1x1bitD2-in D2-out
1x1bitD3-in D3-out
1x4 bit
d0 d1 d2 d3CS
R/W
31
4x8 bites memória
1x4 bit
CS
R/W
1-4
s0 s1
1x4 bit
1x4 bit 1x4 bit
1x4 bit 1x4 bit
1x4 bit 1x4 bit
d7-d4 d3-d0
32
MOSFET tárolócella
Gnd
C
T1 T2
T3
Töltéstárolás a C kondenzátoron
író vezeték olvasó vezeték
beírásengedélyezése
kiolvasásengedélyezése
Tartalom szerint elérhető memóriaasszociatív memória
34
Asszociatív keresés
kulcs (k)
kulcs (1)
kulcs (2)
kulcs (3)
kulcs (n)
érték (1)
érték (2)
érték (3)
érték (n)
összehasonlítás
összehasonlítás
összehasonlítás
összehasonlítás... ...
érték (k)találat esetén a keresett érték
maszkregiszter 43
DRAM olvasási ciklusa1. Sor cím a cím bemenetekre kerül az adatsínen keresztül2. /RAS aktiválás, amire sor cím bekerül a sor cím tárolókba3. Sor cím dekóder kiválasztja a megfelelő sort és az az
átmeneti tárolóba kerül4. Írás engedélyezés deaktiválás (NEM írás művelet)5. Oszlop cím a cím bemenetekre kerül az adatsínen keresztül6. /CAS aktiválás, amire oszlop cím bekerül az oszlop cím
tárolókba7. /CAS jelzi a kimenet engedélyezését,
amint a /CAS stabilizálódott az átmeneti tároló a kiválasztott sor/oszlopból az atatot áthelyezi az adat kimenetre, ami az adatsínen keresztül eljut a rendszerbe
8. /RAS és /CAS deakivizálódik
8-9. előadás tartalma• Kapcsolatok, Input / Output• Sínrendszer• Megszakítási rendszer• I/O Rendszerek
– Programozott I/O– DMA– I/O processzorok, csatornák
5
A ki/bemeneti egység feladata
ki/bemeneti eszköz input/output device
I/O eszközperiféria
• Kapcsolatok kezelése• Adatátvitel
processzor
memória I/O eszköz
9
I/O eszközök (portok) elérése
Memória I/O eszközCPU
címsínadatsín
Memória I/O eszközCPU
címsínadatsínMem/IO
IO eszközbizonyos címeket„felismer”
közvetlen I/O utasítások : közvetlenül az eszközvezérlő regiszterébe
tárolóhoz rendelt módon (memory mapped addressing) : a központi memórián keresztül
3
CPU, Memória, és még valami...
• Számítógép fő számítási funkciója csak a CPU-t és a Memóriát érinti.
• CPU beolvassa az utasításokat és az adatokat a memóriából, feldolgozza majd az eredményt a memóriában tárolja...
Hogyan kerülnek az adatok a memóriába ?
DE...
4
Kapcsolat a „külvilággal”A kimeneti és bemeneti egység feladata : információ csere a CPU vagy a központi memória és a külvilág között...
sín
CPU MEM
„külvilág”
Célok és problémák...Célok :
• eszközök minél gyorsabb, „jobb” kiszolgálása...• a CPU minél kisebb leterhelése...
Problémák :• eszközök (CPU - perifériák) eltérő sebessége...• eszközök különbözősége (kezelési mód)
7
Eszközök...
Bemeneti Be/kimeneti Kimeneti
nyomtató
képernyő
billentyűzet
scanner
egér
háttértárolók(lemezmeghajtók)
hálózat(modem)
CDROM
és még sokan mások...
8
Eszközökkel való kapcsolat (kezelése) port-okon keresztül
címsín
adatsín
s d
port-ok
eszközvezérlő
cparancs regiszter (c)
állapotjelző regiszter (s)
adat ki/bemenetiregiszter (d)
SínrendszerSínrendszer feladataA sínrendszer feladata :adatok, vezérlőjelek továbbításaÁtvitel létrehozásakor
• eszközök kijelölése („cím” megadás...)• adatátvitel iránya• eszközök szinkronizálása
(működésének összehangolása)
Sínrendszer struktúrája• Külső / belső sínrendszer (CPU-hoz képest)
– Belső : (pld. 3 sín, külön adatsín írásra, olvasásra...)– Külső:
• helyi sín (local bus) (pld. co-processzor)• rendszer sín (system bus) (pld. I/O)• memória sín (memory bus)
• Sínrendszer részei :– Címsín– Adatsín– Vezérlősín
13
Sínrendszer(közös / külön IO sínrendszer)
rendszer sín (system bus)
CPU MEM
I/O-1 I/O-n...
egyszeres osztott sín
rendszer sín (system bus)
CPU MEM
I/O-processzor
ki/bemeneti sín (i/o bus)
I/O-1 I/O-n...
külön memória és ki/bemeneti sín
14
Sínek...
CPU
ALU
co-processzor cache
MEM
IO processzor
MEM
vez
IO eszköz IO eszköz IO eszköz
belső sín
helyi sín
rendszer sín
IO sín
Vezérlő jelek (a vezérlősínen)• Adatátvitelt vezérlő jelek :
– memória /periféria M/IO - cím a sínen – írás / olvasás R/W - adat a sínen– szó / byte átvitel WD/B - átvitel vége
• Megszakítást vezérlő jelek • Sínvezérlő jelek (kérés, foglalás, visszaigazolás)• Egyéb... (órajel, ütemezés, táp,...)
Sínfoglalás (bus arbitration)-Soros kiszolgálás (daisy chain)-Lekérdezéses kiszolgálás (polling)-Párhuzamos kiszolgálás (independent requesting)
17
Soros kiszolgálás (daisy chain)
buszvezérlő
0.eszköz
1.eszköz
2.eszköz
sínkérés(BREQ - bus request)
sín engedélyezés(BG - bus grant)
sín18
Lekérdezéses kiszolgálás (polling)
buszvezérlő
0.eszköz
1.eszköz
2.eszköz
sínkérés(BREQ - bus request)
lekérdező szám(polling count)
sín
19
Párhuzamos kiszolgálás
buszvezérlő
0.eszköz
1.eszköz
2.eszköz
sínkérés(BREQ - bus request)
sín engedélyezés(BG - bus grant)
sín
prioritás ? 21
A „sínhasználók”
processzormemória
I/O eszközco-processzor
DMAI/Olebegőpontos
utasítás
adat, utasítás
adat
aktív eszköz(master)
sínhasználat kezdeményezés sínhasználat végrehajtás
passzív eszköz(slave)
26
Megszakítás vs. kivétel
megszakítás (interrupt) kivétel (exception)
n. utasítás n+1. utasítás
megszakítás kiszolgálása
megszakítás
n. utasítás
kivétel kiszolgálása
kivétel
...még a sínekhez kapcsolódik...• sínprotokoll (mechanikus, elektromos, logikai)• átlapolódó sínciklusok• blokk sínciklus (burst cycle)• sínfoglalás (bus arbitration)• Sínvezérlő (sínmeghajtó) egység (bus interface)• master / slave
Megszakítási rendszer - Interrupt systemMegszakítások
• „Váratlan események”...• megszakítás (interrupt)• megszakítási rendszer• megszakítási kérelem (IRQ - Interrupt Request)• megszakítási kérelem kiszolgálása
Cél :• események gyors kezelése...• minél kevésbé zavarja a feldolgozást...
24
Megszakítások
i.i+1.
megszakítástkiszolgálóprogram
megszakításkérelem
25
Megszakítási események kiváltója
program hardver
végrehajtás közbeni hiba0-val osztástúlcsorduláslapváltás
szinkron események
végrehajtás felfüggesztése aperiféria működése közben
aszinkron események
várható váratlan„hiba”„kért működés”
Megszakítás kezelés folyamata• megszakítás engedélyezés
– maszkolás– prioritás– megszakítható pont
• megszakítás analízis (kiszolgáló rutin ?)– kód - tárcím - utasítás
• állapotmentés• kiszolgálás• állapot visszaállítás
Maszkolás : bizonyos megszakítások „figyelmen kívül hagyása”megszakítási kérelmek engedélyezése / tiltása
Megszakítás-engedélyezés• megszakítás kérés „maszkolása”...• prioritások kezelése : ha több megszakítás egyidőben ?• többszörös megszakításkezelés : ha újabb megszakítás a megszakításkezelés közben ? • a megszakítást okozó eszköz megállapítása : ki kérte a megszakítást ?
30
Többszörös megszakításEgyszintű megszakítási rendszer : kiszolgáló rutin
nem megszakíthatóTöbbszintű megszakítási rendszer :
rutin-2
rutin-5
rutin-4
rutin-2
megszakítás kérelmek2 5 4
idő
prioritásszint
„normál” „normál”
prioritások31
Megszakítás analízisA megszakítást kezdeményező eszköz
megállapítása
Szoftver módszer
Hardver módszer
• operációs rendszer időnként megvizsgálja az eszközöket„lekérdezéses megszakításkezelés” (polling interrupt)
• 1 megszakítási vonal...• több megszakítási vonal...• vektoros módszer : kiszolgáló rutin kezdőcíme...
Vektoros módszer (a megszakítást kezdeményező eszköz megállapítása)• kiszolgáló rutint elindító utasítás átadása (pld.: CALL INT_RUT)• kiszolgáló rutint elindító utasítás címének az átadása (pld.: ADR, ahol [ADR]=CALL INT_RUT)• kiszolgáló rutint címének az átadása (pld.: INT_RUT)• sorszám átadása : megszakítási vektortáblában rutinok kezdőcímei, sorszám mint index a táblázatban
33
Megszakítás vektor tábla
CALL 4 01234
100
200
CALL 100CALL 200CALL ...A eszköz
beviteli rutin
A eszközkiviteli rutin
B eszközkiviteli rutin
CPU
IO port 0 IO port 1 IO port 2
A eszköz B eszköz
INT REQ 2
memória
adatsín
34
Megszakítás kiszolgálásának lépései (hardver által 1.)
eszköz
vezérlőmegszakítás
kezelő
processzor
adatsín
INT (1)
IACK (2)
megszakításivektor
sorszám (3)sorszám tárolás (4)
PC
PWSverem
IT vektortábla
PC és PWSelmentése (5)
rutin kezdőcíma táblázatból (6)
kezdőcím a PC-be (7)
35
Megszakítás kiszolgálásának lépései (2.)
Szoftver által :• regiszterek -> verem / memória• kiszolgáláshoz szükséges adatok
összegyűjtése• megszakítás kiszolgálása, kezelése
(kiszolgáló rutin lefutása...)• verem / memória -> regiszterekHardver által :• PC és PSW visszaállítása
állapotmentés
állapot visszaállítás
kiszolgálás
I/O rendszerek
2
I/O rendszerek
teljesen a CPU irányítja az I/O műveleteket
(DMA - Direct Memory Access) CPU csak „elindítja”, aztán az I/O eszköza CPU „nélkül” végzi az átvitelt
Megszakítás
memóriához hozzáférés, CPU felfüggesztése, I/O program végrehajtása
Programozott I/O
Közvetlen memória hozzáférés
I/O processzor
(interrupt)+
3
Programozott I/O
CPU
I/O eszköz
port
• IO eszköz kiválasztása a címsínnel• IO port : egy adott (memória)cím
memóriára leképzett IO (memory mapped IO)
Memória
adatátvitel a CPU-n keresztül
Programozott IO utasítások• alapvető IO utasítások :
– IN X : szó átvitele az X port-ról az akkumulátorba– OUT X : szó átvitele az akkumulátorból az X port-ra
• A beolvasott vagy kiírt szó lehet vezérlő, állapotjelző, stb. információ (a CPU nem értelmezi)• egyéb IO utasítások (teszt, blokk átvitel, ...)
5
Szó beolvasása programozott I/O-val
(Intel 8080 példa)
WAIT:IN 1
CPI ready
JNZ WAITIN 2...
státuszinformáció az 1-es port-on, az adat, ha kész az eszköz, a 2-es port-on
1-es port-ról státuszinformáció beolvasása az akkumulátorba...összehasonlítása a „ready” konstanssal,ha egyenlő Z flag = 1ha Z flag <> 1 ugrás WAIT-readat beolvasása a 2-es port-ról... 6
A programozott IO hátrányai
a CPU (feleslegesen) sok időt „veszít” az az eszköz állapotának a vizsgálatával és az adatátvitellel...
ha több (vizsgálandó) eszköz van...
az IO átvitel sebességét attól függ, hogy a CPU milyen gyorsan tudja az IO eszközt vizsgálni és kiszolgálni...
az adat a CPU-n halad keresztül, ahelyett hogy közvetlenül a memóriába jutna...
Megszakításos I/O• az eszköz megszakítás kérelemmel jelez ha készen van... (CPU-nak nem kell várnia...)• sok nagysebességű eszköznél (+blokkátvitel) használhatatlan...
8
Közvetlen memória hozzáférés(DMA - direct memory access)
nagysebességű eszközöknél...
CPU elindítja az átvitelt
DMA vezérlő önállóan irányítja az átvitelt(a tároló és az I/O eszköz között)
CPU - DMA közötti kapcsolat : megszakítások...
DMA : címsín, adatsín vezérlése...
9
Közvetlen memória hozzáférés
AR IODRIOARDCAC
adatsín
címsín
központi memória
vezérlő vezérlő
CPU IO egység
DMAkérelem
DMAengedélyezés
(1)
(2)
(3)
(5)
(6)
(4)
Közvetlen memória hozzáférésAdatátviteli módok :
• Tömb átvitel (DMA block transfer)• Cikluslopás (cycle stealing)
11
I/O processzor(IOP)
+ IO utasítások végrehajtásaIO műveletek végzése
programozott I/O
közvetlen memória hozzáférés
CPU idő pazarlás...
kevésbé rugalmas...
12
I/O processzor(IOP)
IOP = kommunikációs kapcsolat („csatorna - channel”)a központi memória és az IO eszközök között
PPU - Peripherial processing unit
IOP : korlátozott (speciális IO) utasításkészletű feldolgozó egység
13
I/O processzor elvi működés
CPU által elindítottIO művelet CPU MEM
IOP
I/O-1 I/O-2 I/O-3
IOP által végrehajtottutasítások (CCW)
IOP-n keresztüliadatátvitel
START_IOSTOP_IOTEST_IO
14
CPU és IOP utasítások a memóriában
központi memóriaCPU
IOP
start_io...
test_io
...
...07000400h
...
CPU által végrehajtottutasítások
IOP általvégrehajtott CCW utasítások
a CPU „elindítja” az IOP-t
15
Blokk írása I/O processzor-ral(IBM System 360-370 IO program példa)
CCW - Channel Command Wordopcode abs. memory address flag - data count0 8 32 37 48 63
07h. .40h.37h. .40h.01h.buffer .40h.1001Fh. .40h.07h. .00h.
szalag visszatekeréselső rekord átugrása„buffer” címről 100 byte írásamarker írásaszalag visszatekerés, stop
CCW utasítások az IOP-nak
16
I/O processzorok szervezése
IOPIO IO IO
IOPIO IO IO
IO sín
IOP
IOP
IO IO IO
kapcsoló hálózat(crossbar switch)
egy IOP - több lassú IO eszköz : multiplexer channel
egy IOP - egy gyors IO eszköz : selector channel
...
17
egyég lehetőség(ek)...(periféria cache/puffer tároló)
MEM
MEM
CPU
periféria
cache / puffer tároló
18
egyég lehetőség(ek)...(„periféria processzor”)
MEM
MEM
I/O eszköz memóriájaCPU
I/O eszköz processzora
periféria
PU
19
egyég lehetőség(ek)...(„memória lefedés”)
központi memória I/O eszköz memóriája
eszköza központi memória egy részétaz eszköz memóriája„lefedi”
Alpha 21164 processzor• 64-bit RISC• Superscalar: 4 utasítás órajel ciklusonként • Superpipelined:
– 7 lépcsős pipeline egész számos utasításokra, – 9 lépcsős pipeline lebegőpontos számos utasításokra
• 16K L1 cache (8K adat, 8K utasítás), 96K L2 cache • Pipelined Floating Point Unit: lebegőpontos egység 2 utasítás órajel ciklusonként (kivéve osztás)• órajel 600 MHz, 2.4 billió utasítás /sec• 9.6 millió tranzisztor • Dynamic Branch Prediction
Dinamikus elágazás előrelátás(Dynamic Branch Prediction)Probléma : feltételes elágazáskor a prefetch nem „tudja előre kitalálni” hogy lesz elágazás vagy sem (melyik lesz a következő utasítás) ->A végrehajtott feltételes elágazás utasításaihoz „elágazási információk” eltárolása...->az előző (két) esetben volt elágazás vagy sem...Prefetch and Dispatch Unit
• ensures that all execution units remain busy by fetching instructions before they are needed in the pipeline.
• Instructions can be prefetched from all levels of the memory hierarchy, including the I-cache, E-cache, and main memory.
• A 12-entry prefetch buffer decouples instruction prefetching from instruction dispatch and prevents pipeline stalls
• A 16 KB two-way associative I-cache that is physically indexed and tagged • Instructions in the I-cache are pre-decoded • A 9-stage instruction pipeline to minimize latency • Dynamic branch prediction to allow for greater prediction accuracy
Pipeline Organization• UltraSPARC-I uses a double-instruction-issue pipeline with nine stages: fetch, decode, grouping,
execution, cache access, load miss, integer pipe wait, trap resolution, and writeback. These stages imply that the latency (time from start to end of execution) of most instructions is nine clock cycles. However, at any given time, as many as nine instructions can execute simultaneously, producing an overall rate of execution of one clock per instruction in many cases. In reality, some instructions may require more than one cycle to execute due to the nature of the instruction, a cache miss, or other resource contentions.
• The first stage of the pipeline is a fetch from the I-cache.
• In the second stage, instructions are decoded and placed in the instruction buffer. • The third stage, grouping, groups and dispatches up to four instructions. • Next, integer instructions are executed and virtual addresses calculated during the execution stage. • In the fifth stage the D-cache is accessed. Cache hits and misses are determined, and branches are
resolved. If a cache miss was detected, the loaded miss enters the load buffer. At this point, the integer pipe waits for the floating-point/graphics pipe to fill and traps are resolved.
• In the final stage, writeback, all results are written to the register files and instructions are committed.Integer Execution Unit
• 2 ALUs for arithmetic, logical, and shift operations • 8-window register file • Result bypassing • A Completion Unit which allows a nine-stage pipeline with• minimal bypasses
CRAY - 1• Semour Cray (kb. 1977 ?)• hosszú ideig a leggyorsabb számítógép• „tiszta” tervezés, „semmivel se spórolni”, tudományos, sok-sok lebegőpontos számításra• vektor processzor• kb. 5 IBM 370/195• 138 MFLOP (250 MFLOPS burst), 12,5ns (80MHz)• 1 millió szavas tár, 1 szó = 64 bit• 115KW fogyasztás, freon hűtés..., kb. 5 tonna, nagyon drága...• 128 utasítás (egész + lebegőpontos)• 0-3 címes utasítások• nincs karakter művelet, sem egész osztás• adattípusok : 2-es komplemens, lebegőpontos• szó hozzáférésű tár, 1 szó = 64 bit • 12 műveletvégző egység, pipeline feldolgozás• 8x24 bites címregiszter (A), 64x64 bites átmeneti címregiszter (B), 8x64 bites skalár regiszter (S),
64x64 bites átmeneti skalár regiszter (T), 8x64 elemes vektor regiszter (64bit/elem) (V)
4Kbyte+ 6ns -os regiszter tároló• memoria blokk töltése T regiszterekbe• vektoron végzett műveletek• verem nincs• cache nincs
VAX• 1970 DEC (Digital Equipement Corp.), CISC• VAX 11/780 sebessége kb. 1MIPS• kb. „hűtőszekrény” méret• egész aritmetika : különféle adat-mérettel, logikai : különféle adat-mérettel• cím és bit manipulációk• vezérlés átadó utasítások (elágazás, ugrás, ciklusok, eljárások)• lebegőpontos műveletek, karakter-string műveletek (pld. edit)• crc (Cyclic Redundancy Check), BCD műveletek
összesen több mint 200 utasítás...• 16db 32 bites „általános célú”...• R15 = PC (szabadon módósítható)• R14 = SP (varem mutató)• R13 = „keret mutató” (memória kezelés)• R12 = „argumentum mutató” (eljárások paraméterei)• byte, word (16 bits), longword (32 bits), quadword (64 bits), octaword (128 bits)• F floating point (32 bit, 7 bites exponens), D floating point (64 bit, 7 bites exponens)• G floating point (64 bits,10 bites exponens), H floating point (128 bit, 15 bites exponens)• character string , numeric string (egészeket ábrázoló ASCII kódok), BCD string
Párhuzamos feldolgozás...
20
Neumann elv - soros feldolgozás
szekvenciális feldolgozás
Lassú
egy utasítás feldolgozásakor „több részegység tétlen”...
CPU
Mem
feladatot részlépésekre lehetne bontani...
Párhuzamosság...
párhuzamos feldolgozó egységek...párhuzamos számítógépek...
21
Párhuzamos számítás(Parallel computing)
párhuzamos programozás - operációs rendszer : • „látszólag” több program fut „egyszerre” • amíg egy prg. lassú I/O-ra várt egy másik prg.
fut• független folyamatok, „nem férnek egymáshoz”
program részeinek párhuzamos feldolgozása :• kommunikáció (információ csere)• szinkronizáció (összehangolt működés)
A párhuzamos programvégrehajtás szintjei • A hardver egységen belüli párhuzamosítás• Gépi utasítás végrehajtásán belüli párhuzamosítás• Párhuzamosítás a feldolgozott adatok szintjén• Gépi utasítások közötti párhuzamosítás• Eljárások (makro utasítások) közötti párhuzamosítás• Jobok közötti párhuzamosítás• Folyamatok közötti párhuzamosítás
1. szint: A hardver egységen belüli párhuzamosítás • Egyidejűleg több alkotóelem végez aktív feldolgozó munkát az aktuális programrészlet végrehajtása
érdekében. • Pl.: egy párhuzamos aritmetikai egységben az operandusok minden bitjén egyidejűleg történik az előírt
művelet végrehajtása, vagy egy buszon a memóriából felhozott utasításszó minden bitje egyidejűleg mozog.
2. szint: Gépi utasítás végrehajtásán belüli párhuzamosítás. • Egy gépi utasítás végrehajtása több fázisra bontható. A számítógépek sebessége nagymértékben
fokozható, ha ezeket a fázisokat átlapoltan, több utasításon párhuzamosan hajtja végre a számítógép. • Pld. az n-edik utasításhoz tartozó akciók végrehajtásával egyidejűleg folyik az n+1.-dik utasítás
dekódolása, és az n+2.-dik utasítás felhozása. • Ez a párhuzamosítási technika a pipeline (csővezeték) technika.
3. szint: Párhuzamosítás a feldolgozott adatok szintjén. • Vektorok feldolgozása esetén tipikus feladat, hogy ugyanazt a műveletet a vektor minden elemén végre
kell hajtani (pl. két vektor összeadása). N elemű vektor esetén a szokásos számítógépek az ilyen műveleteket N lépésben hajtják végre. Vannak azonban olyan többprocesszoros számítógépek, melyek ezt a műveletet egyetlen lépésben képesek végrehajtani. Ezek az ún. vektorprocesszorok, amelyekben N processzor egyidejűleg hajtja végre a vektor N elemén ugyanazt a műveletet.
4. szint: Gépi utasítások közötti párhuzamosítás. • A hagyományos számítógépekben az utasítások
végrehajtási sorrendje kötött, jóllehet legtöbb programban találhatók olyan utasítások, amelyeknek a végrehajtási sorrendje a program működésének helyességét nem befolyásolja. Az olyan utasítások, amelyek egymástól ily módon függetlenek, bármilyen sorrendben, akár egyidejűleg is végrehajthatók.
• A párhuzamosan végrehajtható utasítások automatikus felderítésére a Neumann-elvű többprocesszoros számítógépek nem voltak alkalmasak, mivel a párhuzamosítási előírások akkora túlmunkát jelentettek a
feldolgozó egységnek, hogy alapjaiban kérdőjelezte meg a gépi utasítások közötti párhuzamosítás létjogosultságát.
5. szint: Eljárások (makro utasítások) közötti párhuzamosítás. • Egy adott makro utasítást egyetlen gépi utasítás(ok) egy sorozata reprezentál• Mivel az eljárás végrehajtási ideje jelentős, ezért a párhuzamosítási előírások megvalósításából
származó többlet-ráfordítás elhanyagolható lehet az eljárás végrehajtási idejéhez képest. • Ezen a szinten már hatékonyan alkalmazhatók a Neumann-elvű processzorokból felépített
többprocesszoros számítógépek is.
6. szint: Jobok közötti párhuzamosítás. • Jobon olyan véges működésű programot értünk, amely önálló működésre képes és a rendszer
erőforrásait használja. • Az eljárás és a job közötti rokonság, hogy mindkettő véges lefutású, lényeges különbség viszont, hogy
amíg az eljárás sosem önálló, addig a jobok egymástól logikailag függetlenek, egy-egy virtuális gépet reprezentálnak.
• A közös erőforrások használata miatt egy szinkronizációs mechanizmust kell alkalmazni. 7. szint: Folyamatok közötti párhuzamosítás.
• Folyamat (process) alatt olyan nem feltétlenül véges működésű programot értünk, amely önálló működésre képes, a rendszer erőforrásait használja és a többi folyamattal kommunikál.
• Szinkronizációs mechanizmust, az üzenetátadást, és az eseménykezelést is biztosítani kell.Többprocesszoros rendszerekTöbbprocesszoros rendszerek megjelenését segítő tényezők
• hardware elemek árának a csőkkenése• számítógépes hálózatok elméletének és technikájának a fejlődése• technológiai korlátok (több alkatrész már nem fér a chip-be)
Multiprocesszoros rendszerek csoportosítása és osztályozása(alkalmazásuk szerint)
• Általános célú rendszerek : cél az egyprocesszoros számítógépek működési sebességének a fokozása az architektúra módosításával.
• A redundáns (hibatűrő) rendszerek : cél a számítógépek megbízhatóságának a növelése több processzor alkalmazásával.
• A számítógép-hálózatok : cél nagytávolságú elosztott információs rendszerek kialakítása. Számítógépek teljesítőképességét befolyásoló tényezők
• technológia - sebességnövekedés (gyorsabb alkatrészek, tárak, stb...)• architektúra - különböző egységek kapcsolatának a megszervezése, kezelése
Példa : gép órajel mátrixszorzás
EDSAC1 2000ns 100/sCRAY-1 12,5ns 130 millió/s
160x 1.000.000xa rendszerek csoportosítása logikai struktúra :
• horizontális• vertikális
fizikai struktúra• közös tárterület (centralizált)• sínrendszer (osztott)
kölcsönhatás módja, csatolás foka :• szorosan csatolt• lazán csatolt („on site computing”)
processzor és passzív elemek (tár, I/O) közötti kapcsolat :• közös sín• crossbar• többszörös hozzáférésű tárak
feldolgozási mód (Flynn)• SISD• MISD• SIMD• MIMD
Multiprocesszoros rendszerek(általános célú)
• SISD Single Instruction stream on Single Data stream (egy utasítás egy adat)
• SIMD Single Instruction stream on Multiple Data stream (egy utasítás több adat) • MISD Multiple Instruction stream on Single Data stream (több utasítás egy adat) • MIMD Multiple Instruction stream on Multiple Data stream (több utasítás több adat)
SISD, SIMD, MISD, MIMD• A SISD rendszerek : a szokásos egyprocesszoros számítógépek. • A SIMD rendszerek : a program párhuzamosítás 3. szintjének támogatását szolgáló vektor (hardver
megvalósítása a CrayX számítógép) -, tömb (Connection Machine) - ill. asszociatív processzorok (Staran).
• A MISD rendszerek : a program 2. párhuzamosítási szint megvalósítására szolgáló pipeline processzorok tartoznak.
• A MIMD architektúra : a program párhuzamosítás 4., 5., 6. és 7. szintjének megvalósítása. előnyökfeldolgozási teljesítőképesség :
• átbocsájtóképesség• közös erőforrás használat• megbízhatóság
többprocesszoros rendszerek architektúrája„egyes rendszerelemek (processzorok - tárak - I/O) egymáshoz kapcsolódása, együttműködése, közös feladatvégrehajtása”fogalmak : adatút, kapcsolóelem (osztott/központi vezérlésű hálózat), kommunikáció létrehozási módja, modularitás, bővíthetőség, hibatűrés, egyidejüség, üzenetterítés, összekötöttség...osztott feldolgozás (distributed processing) :
• feldolgozás • adatbázis
A processzorok közötti kapcsolat megvalósítása :• a csatolás topológiája• a processzorok csatolásánalk módja• a kapcsolat fizikai megvalósítása• a kommunikációs csatorna működési módja• a passzív elemek használata• a kapcsolat technológiája
A processzorok csatolási módja• tárcsatolt• be/kiviteli csatolású
A kapcsolat fizikai megvalósítása• időosztásos közös sínrendszer• crossbar kapcsolórendszer• többszörös hozzáférésű tárak
A kommunikációs csatorna működési módja• szó (byte) átviteli• blokkátviteli
• vegyes átviteli
A passzív elemek használata• csak globális• globális és lokális
A kapcsolat technológiája• fizikai elosztottság...