Szmtgpek felptse 3 elads CPU utasts ciklus cmzs

  • Slides: 64
Download presentation
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés Dr. Istenes Zoltán ELTE-TTK 1

Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés Dr. Istenes Zoltán ELTE-TTK 1

3. előadás tartalma • • • A központi feldolgozó egység működése utasítás ciklus utasítás

3. előadás tartalma • • • A központi feldolgozó egység működése utasítás ciklus utasítás szerkezet címzési módok utasítás típusok, utasítás készlet 2

Turing gép 1928 David Hilbert : létezik-e olyan gép vagy eljárás, amivel minden matematikai

Turing gép 1928 David Hilbert : létezik-e olyan gép vagy eljárás, amivel minden matematikai kérdés eldönthető ? 1936 Alan Turing : véges állapotú gép T szimbólum irás / olvasás „rekeszek”. . . ) w 8 X A w O. a. . . végtelen szalag balra / jobbra mozdulás 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 3

Példa Turing gép működésére ”Ha „n” állapotban van, feladat : 01101110 -> 0111110 ha

Példa Turing gép működésére ”Ha „n” állapotban van, feladat : 01101110 -> 0111110 ha a fej „x” jelet olvas, szalag áll. megjegyzés írd az „y” jelet, 01101110 1 írj 0 -t, 2 -es állapot lépj balra vagy jobbra egyet, 01101110 2 végig az első szám 1 -esein legyen az új állapot „m”. 01101110 2 végig az első szám 1 -esein 01101110 2 első szám vége, 3 -as állapot áll. jel ír lép új áll. 01101110 3 1 -est 0 -ra átír, visszalép 01110110 4 0 -át 1 -re átír. . . 1 0 0 jobb 2 01110110 2 első szám vége, 3 -as állapot 2 0 0 jobb 3 01110110 3 1 -est 0 -ra átír, visszalép 2 1 1 jobb 2 01110010 4 0 -át 1 -re átír 3 0 üres bal 5 01111010 2 első szám vége, 3 -as állapot 3 1 0 bal 4 01111010 3 1 -est 0 -ra átír, visszalép 4 0 1 jobb 2 01111010 4 0 -át 1 -re átír 01111100 3 második szám vége, 0 -t 4 töröl 0111110 5 nincs ilyen állapot, vége

Egy egyszerű gép vázlata 5

Egy egyszerű gép vázlata 5

Egy egyszerű gép Cél : • műveletvégzés adatokkal • adatok tárolása • műveletek végzése

Egy egyszerű gép Cél : • műveletvégzés adatokkal • adatok tárolása • műveletek végzése és egymásutáni végrehajtása • eredmény eltárolása • . . . 6

2 tárolós egyszerű logikai gép vázlata (műveleti egység) eredmény műveleti egység művelet választás 1.

2 tárolós egyszerű logikai gép vázlata (műveleti egység) eredmény műveleti egység művelet választás 1. adat 2. adat 7

2 tárolós egyszerű logikai gép vázlata (program tároló) eredmény op program tároló műveleti egység

2 tárolós egyszerű logikai gép vázlata (program tároló) eredmény op program tároló műveleti egység művelet választás 1. adat 2. adat 8

2 tárolós egyszerű logikai gép vázlata (adat tároló) eredmény op x y program tároló

2 tárolós egyszerű logikai gép vázlata (adat tároló) eredmény op x y program tároló adat tároló műveleti egység művelet választás 1. adat címe 1. adat 2. adat címe 2. adat 9

2 tárolós egyszerű logikai gép vázlata (következő utasítás címe) eredmény következő utasítás címe op

2 tárolós egyszerű logikai gép vázlata (következő utasítás címe) eredmény következő utasítás címe op x y a program tároló adat tároló műveleti egység művelet választás 1. adat címe 1. adat 2. adat címe 2. adat 10

2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”) eredmény következő utasítás címe op x

2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”) eredmény következő utasítás címe op x y a program tároló adat tároló műveleti egység művelet választás 1. adat címe 1. adat 2. adat címe 2. adat 11

Neumann elvű számítógép • • • bináris (digitális) elektronikus belső programvezérlés memória tárolja a

Neumann elvű számítógép • • • bináris (digitális) elektronikus belső programvezérlés memória tárolja a programot és az adatokat soros feldolgozás 12

Egyszerű gép vázlata eredmény következő utasítás címe op x y a 1. adat címe

Egyszerű gép vázlata eredmény következő utasítás címe op x y a 1. adat címe memória (program+adat) műveleti egység művelet választás 2. adat címe 1. adat 2. adat 13

központi feldolgozó egység memória ki- és beviteli egység . . . 14

központi feldolgozó egység memória ki- és beviteli egység . . . 14

A központi feldolgozó egység • • feladata, kapcsolata a többi egységgel részei, felépítése működé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 15

A központi feldolgozó egység részei A központi feldolgozó egység (Central Processing Unit - CPU)

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) 16

A CPU működése A processzor utasításciklusa 17

A CPU működése A processzor utasításciklusa 17

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)

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ása Execute („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 18

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás funkcionális vázlata aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 19

Utasítás végrehajtás lépései 1. • meghatározni (címképzés) a tár címregiszterébe tölteni az 1. adat

Utasítás végrehajtás lépései 1. • 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 20

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás lépései 1. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 21

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 2. adat

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 2. adat címét • adat a tárból egy másik adatregiszterbe 22

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás lépései 2. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 23

Utasítás végrehajtás lépései 3. • utasítani az aritmetikai logikai egységet a művelet elvégzésére •

Utasítás végrehajtás lépései 3. • utasítani az aritmetikai logikai egységet a művelet elvégzésére • eredmény tárolása egy adatregiszterben 24

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás 3. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 25

Utasítás végrehajtás lépései 4. • meghatározni (címképzés) a tár címregiszterébe tölteni az eredmény címét

Utasítás végrehajtás lépései 4. • 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 26

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás 4. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 27

Utasítás végrehajtás lépései 5. • meghatározni a következő utasítás címét és a tár címregiszterébe

Utasítás végrehajtás lépései 5. • 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 28

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló

vezérlő jelek címsín ütemező utasítás dekodoló utasítás regiszter címképzés adat regiszterek adatsín utasítás számláló Utasítás végrehajtás 5. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 29

Utasítás végrehajtás lépések összefoglalása • • • 1. adat címe, elérése, előkészítése 2. adat

Utasítás végrehajtás lépések összefoglalása • • • 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 kővetkező utasítás címe, elérése, előkészítése 30

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.

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 ? ! 31

Utasítások tárolási formái utasítás szerkezet címzési módok utasítás típusok, utasítás készlet 32

Utasítások tárolási formái utasítás szerkezet címzési módok utasítás típusok, utasítás készlet 32

Egy utasítás felépítése, részei műveleti kód módósításra utaló rész címrész 33

Egy utasítás felépítése, részei műveleti kód módósításra utaló rész címrész 33

Utasítás formák 4, 3, 2, 1, 0 címes utasítás formák (a megadott címek száma

Utasítás formák 4, 3, 2, 1, 0 címes utasítás formák (a megadott címek száma szerint) 34

4 címes utasítás forma műveleti 1. adat 2. adat eredmény következő utasítás kód címe

4 címes utasítás forma műveleti 1. adat 2. adat eredmény következő utasítás kód címe 35

3 címes utasítás forma műveleti 1. adat 2. adat eredmény következő utasítás kód címe

3 címes utasítás forma műveleti 1. adat 2. adat eredmény következő utasítás kód címe program számláló utasítás számláló regiszter , Program Counter (PC) PC : = PC + utasítás hossz 36

2 címes utasítás forma műveleti 1. adat 2. adat eredmény kód címe az eredmény

2 címes utasítás forma műveleti 1. adat 2. adat eredmény kód címe az eredmény a 2. adat címére kerül 37

1 címes utasítás forma műveleti 1. adat 2. adat eredmény kód címe akkumulátor regiszter

1 címes utasítás forma műveleti 1. adat 2. adat eredmény kód címe akkumulátor regiszter 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űveleti 1. adat kód címe eredmény címe akkumulátor regiszter a

0 címes utasítás forma műveleti 1. adat kód címe eredmény címe akkumulátor regiszter a művelet az akkumulátor regiszteren hajtódik végre 39

Utasítás formák a címrész tartalma szerint 40

Utasítás formák a címrész tartalma szerint 40

jelölések • S : tárcím • R : regisztercím • A : akkumulátor regiszter

jelölések • S : tárcím • R : regisztercím • A : akkumulátor regiszter • I : közvetlen adat az utasításban • (S) : adat a tárban • (R) : adat a regiszterben • (A) : adat az akkumulátor regiszterben • MK : műveleti kód • @ : tetszőleges művelet • LI(n) : az n. utasítás hossza • SI(n) : az n. utasítás címe 41

4 címes : MK S 1 S 2 S 3 S 4 (S 1)

4 címes : MK S 1 S 2 S 3 S 4 (S 1) @ (S 2) -> (S 3), SI(n+1) = S 4 3 címes : MK S 1 S 2 S 3 (S 1) @ (S 2) -> (S 3), SI(n+1) = SI(n) + LI(n) 2 címes : MK S 1 S 2 (S 1) @ (S 2) -> (S 2) ” 1 címes : MK S 1 (S 1) @ (A) -> (A) ” 0 címes : MK @ (A) -> (A) ” 42

1 R címes : MK R: @ (R) -> (R) 1 + R címes

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 R 1 R 2 : (R 1) @ (R 2) -> (R 1) 3 R címes : MK R 1 R 2 R 3: (R 1) @ (R 2) -> (R 3) közvetlen operandusú : MK I S vagy MK I I @ (S) -> (S) vagy @ I -> (A) 43

Címzési módok címértelmezés címmegadás 44

Címzési módok címértelmezés címmegadás 44

Címértelmezés műv. kód adat közvetlen (immediat) adatmegadás regiszter adat műv. kód adat rejtett (inheritent),

Címértelmezés műv. kód adat közvetlen (immediat) adatmegadás regiszter adat műv. kód adat rejtett (inheritent), implicit címzés műv. kód 0 cím közvetlen (direkt) címzés műv. kód 1 cím közvetett (indirekt) címzés tár cím adat 45

Címmegadás műv. kód cím adat abszolút címmegadás bázis D + műv. kód cím (D)

Címmegadás műv. kód cím adat abszolút címmegadás bázis D + műv. kód cím (D) rövidített címmegadás adat D = displacement (eltolás) vagy „offset” 46

Rövidített címmegadás Mihez képest számítjuk a címet : • lapcímes : az adott lap

Rövidített címmegadás Mihez 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) 47

Kombinált címzési módok • . . . • Címmódósítás : indexelés (vektor feldolgozása :

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 48

Utasítások kódolása Példa : 8 bites utasításhossz, 3 bites címhossz • 3 címes címzés

Utasítások kódolása Pé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 50

Utasítások kódolása műveleti kód 1. cím 2 bit 3 bit 00 01 10 00

Utasítások kódolása műveleti kód 1. cím 2 bit 3 bit 00 01 10 00 xxx xxx 2. cím 3 bit yyy yyy 51

Utasítások kódolása („expanding”) 2 bit 3 bit 2 bites műveleti kód 00 01 10

Utasítások kódolása („expanding”) 2 bit 3 bit 2 bites műveleti kód 00 01 10 xxx yyy 3 db 2 címes utasítás 5 bites műveleti kód 11 11 000 001 010 011 100 101 110 111 8 db 1 címes utasítás yyy yyy 52

Eltérő címzésí módú gépek programozása példa (1) Adott 4 különféle típusú gép : •

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, MUL Kiszámolandó : • Z: = (A+B*C)/(D-E*F) 53

Eltérő címzésí módú gépek programozása példa (2) Adatok : • M - 20 bites

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 (R 0 -R 7) • a műveleti kód rész hossza 8 bit Kérdés mindegyik géptípusra (programra) : • az utasítások száma • a program mérete (bit-ben) 54 • a felhasznált regiszterek száma

Utasítás típusok 55

Utasítás típusok 55

Utasítás típusok • adat-töltő, adat átvitel a számítógép funkcionális részei között • aritmetikai, logikai

Utasítás típusok • 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 56 környezete között

Adat-töltő • • Regiszter -> Memória -> Regiszter Memória -> Memória 57

Adat-töltő • • Regiszter -> Memória -> Regiszter Memória -> Memória 57

Aritmetikai, Logikai • aritmetikai műveletek: + - * / (különféle adattípusokon) • logikai függvények:

Aritmetikai, Logikai • aritmetikai műveletek: + - * / (különféle adattípusokon) • logikai függvények: AND, OR, NOT, XOR • összehasonlítások, vizsgálatok • léptetések 58

Program vezérlő • feltétlen elágazás (ugró) • feltételes elágazás • szubrutin hívás 59

Program vezérlő • feltétlen elágazás (ugró) • feltételes elágazás • szubrutin hívás 59

Rendszer vezérlő • HALT, WAIT • megszakítás kezelés • kölcsönös kizárás megvalósítása (Test And

Rendszer vezérlő • HALT, WAIT • megszakítás kezelés • kölcsönös kizárás megvalósítása (Test And Set) 60

I/O • adatátvitel a periféria és a gép között • periféria vezérlése 61

I/O • adatátvitel a periféria és a gép között • periféria vezérlése 61

 • • REG ALU FLAG AC CU IR PC 62

• • REG ALU FLAG AC CU IR PC 62

Logikai struktura • • • adattípusok programozható regiszterek utasítás típusok (utasítás lista) utasítás formák

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 63

Fizikai struktura • • • operatív tár műveleti (aritmetikai logikai) egység vezérlőegység megszakítási rendszer

Fizikai struktura • • • operatív tár műveleti (aritmetikai logikai) egység vezérlőegység megszakítási rendszer I/O rendszer 64

Összefoglalás 65

Összefoglalás 65