Szmtgpek felptse 3 elads CPU utasts ciklus cmzs

  • Slides: 57
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 • • • utasítás típusok, utasítás készlet a központi feldolgozó egység

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 2

Utasítás típusok 3

Utasítás típusok 3

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 környezete között 4

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

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

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 6

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

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

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

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

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

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 10

központi feldolgozó egység (CPU) memória (MEM) vezérlő egység (CU) művelet végző egység (ALU) 11

központi feldolgozó egység (CPU) memória (MEM) vezérlő egység (CU) művelet végző egység (ALU) 11

címsín központi feldolgozó egység (CPU) memória (MEM) vezérlő sín vezérlő egység (CU) művelet végző

címsín központi feldolgozó egység (CPU) memória (MEM) vezérlő sín vezérlő egység (CU) művelet végző egység (ALU) adatsín 12

címsín központi feldolgozó egység (CPU) memória (MEM) vezérlő sín CU ALU regiszterek adatsín 13

címsín központi feldolgozó egység (CPU) memória (MEM) vezérlő sín CU ALU regiszterek adatsín 13

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

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

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

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 16

címsín memória (MEM) vezérlő sín központi feldolgozó egység utasítás számláló ALU regiszter CU utasítás

címsín memória (MEM) vezérlő sín központi feldolgozó egység utasítás számláló ALU regiszter CU utasítás tároló regiszter adat regiszterek adatsín 17

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 18

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

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 19

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 1. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 20

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

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 21

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 22

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

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 3. aritmetikai logikai egység tár pufferregiszter operatív tár címregiszter 24

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

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 25

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 26

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

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 27

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 28

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

Utasítás végrehajtás lépések ö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 29

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

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

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 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 32

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

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 34

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 35

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 36

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 37

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 38

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

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

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 40

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) ” 41

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

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

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

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 44

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” 45

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

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 47

48

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 11

Utasítások kódolása műveleti kód 1. cím 2 bit 3 bit 00 01 10 11 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 (M), POP (M) • 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, (LDA, STA) 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

 • • REG ALU FLAG AC CU IR PC 55

• • REG ALU FLAG AC CU IR PC 55

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 56

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 57

Összefoglalás 58

Összefoglalás 58