33
11 Hipotetički procesori x86 - 1 Matematička gimnazija Beograd Računarstvo i informatika III Lekcija 11 - Hipotetički procesori x86 886, 8286, 8486 i 8686

Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

  • Upload
    marcos

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86. 886, 8286, 8486 i 8686. U ovoj lekciji. A rhitektura procesora x86. CPU registri - 16 bitova OpštiSpecijalizovani AX - AkumulatorIP - instruction pointer BX - Bazni registar Registar stanja (Flag) - PowerPoint PPT Presentation

Citation preview

Page 1: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 1 Matematička gimnazija Beograd

Računarstvo i informatika III

Lekcija 11 - Hipotetički procesori x86 886, 8286, 8486 i 8686

Page 2: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 2 Matematička gimnazija Beograd

Šta ćemo učiti

skup instrukcija

načini adresiranja

kodiranje instrukcija

sekvencijalno izvršavanje

bafer naredbi (prefetch queue)

tekuće linije (pipelines)

superskalarne operacije

U ovoj lekciji...U ovoj lekciji...U ovoj lekciji...U ovoj lekciji...

Page 3: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 3 Matematička gimnazija Beograd

Arhitektura procesora x86

° CPU registri - 16 bitova- Opšti Specijalizovani- AX - Akumulator IP - instruction pointer- BX - Bazni registar Registar stanja (Flag)- CX - Count - DX - Data

° Aritmetičko - logički uređaj (ALU)

° Bus interface unit (BIU)

Page 4: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 4 Matematička gimnazija Beograd

Skup instrukcija x86

° 20 instrukcija• 7 sa 2 argumenta

MOV (2 forme), ADD, SUB, CMP, AND, OR• 8 sa jednim

NOT, JE, JNE, JB, JBE, JA, JAE, JMP• 5 bez, argumenta

BRK, IRET, HALT, GET i PUT

° Instrukcija za prenošenje podataka MOV

° Aritmetičke i logičke instrukcije

° Instrukcije za predaju upravljanja

Page 5: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 5 Matematička gimnazija Beograd

Instrukcije za prenošenje podataka

° MOV reg, reg/mem/imm

° MOV mem, reg

Konvencije:mem (memory) - argument u memorijireg (register) - argument u procesorskom registruimm (immediate) - neposredni argument (konstanta)

Page 6: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 6 Matematička gimnazija Beograd

Aritmetičke i logičke instrukcije

° ADD reg, reg/mem/imm

° SUB reg, reg/mem/imm

° CMP reg, reg/mem/imm

° AND reg, reg/mem/imm

° OR reg, reg/mem/imm

° NOT reg/mem

Page 7: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 7 Matematička gimnazija Beograd

Instrukcije za predaju upravljanja

° JA destskok ako je prvi veći (Above)

° JAE dest skok ako je prvi veći ili jednak (Above or Equal)

° JB destskok ako je prvi manji (Below)

° JBE dest skok ako je prvi manji ili jednak (Below or Equal)

° JE destskok ako su jednaki (Equal)

° JNE dest skok su različiti (Not Equal)

° JMP dest bezuslovni skok

° IRET povratak iz interapta (Interrupt RETurn)

Page 8: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 8 Matematička gimnazija Beograd

Ostale instrukcije

° GET čita heksadek. podatak sa ulaza u AX

° PUT štampa heksadek. podatak iz AX

° HALT završava rad programa

° BRK privremeno prekida rad programa

Page 9: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 9 Matematička gimnazija Beograd

Mesta sa kojih naredbe dobavljaju argumente

Page 10: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 10 Matematička gimnazija Beograd

Vreme izračunavanja argumenata

vreme argumenti

asembliranja punjenja izvršavanja

NEPOSREDNI *****

REGISTARSKI *****MEMORIJSKI direktni indirektni ***** *****

Page 11: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 11 Matematička gimnazija Beograd

Načini adresiranja

° forma zadavanja adrese argumenta

° Registarsko- MOV AX,BX

° Neposredno- MOV AX,3

° Direktno- MOV AX, [1000]

° Indirektno- MOV AX, [BX]

° Indeksno- MOV AX, [1000+BX]

Page 12: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 12 Matematička gimnazija Beograd

Indirektno i indeksno adresiranje

Page 13: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 13 Matematička gimnazija Beograd

8 bitova za OPKOD 16-bitno polje kod JMP instrukcija ili ako se za memorijski argument koristi neposredno, indirektno ili indeksno adresiranje

I I I R R M M M

000 = special 00 = AX 000 = AX 001 = OR 01 = BX 001 = BX010 = AND 10 = CX 010 = CX011 = CMP 11 = DX 011 = DX100 = SUB 100 = [BX]101 = ADD 101 = [xxxx+BX]110 = MOV reg, reg/mem/imm 110 = [xxxx]111 = MOV mem, reg 111 = const

Kodiranje instrukcija sa dva argumenta

Page 14: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 14 Matematička gimnazija Beograd

000 + 5 bitova + 16-bitno polje jedino kod JMP instrukcija ili ako se za memorijski argument koristi neposredno,

OPKOD indirektno ili indeksno adresiranje I I M M M 00 =bez arg. 000 = AX 01 = JMP 001 = BX10 = NOT 010 = CX011 = ilegalna 011 = DX

100 = [BX]101 = [xxxx+BX]110 = [xxxx]111 = const

Kodiranje instrukcija sa jednim argumentom

Page 15: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 15 Matematička gimnazija Beograd

000 00 + 3 bita za OPKOD

000 = ilegalna 100 = IRET001 = ilegalna 101 = HALT010 = ilegalna 110 = GET011 = BRK 111 = PUT

Kodiranje instrukcija bez argumenata

Page 16: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 16 Matematička gimnazija Beograd

000 01 + OPKOD 16-bitno polje sadrži adresu na koju će skok predati upravljanje (adresu koja će biti upisana u IP)

000 = JE 001 = JNE010 = JB 011 = JBE100 = JA 101 = JAE110 = JMP111 = ilegalan

Kodiranje instrukcija skoka

Page 17: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 17 Matematička gimnazija Beograd

MOV reg, reg/mem/imm° K1 - Donošenje bajta sa opkodom instrukcije iz memorije 1

takt

° K2 - Uvećanje IP da pokazuje na sledeći bajt 1 takt

° K3 - Dekodiranje instrukcije 1 takt

° K4 - Ako je potrebno, donošenje 16-bitne const iz memorije 0-2 takta

° K5 - Ako je potrebno,uvećanje IP da pokazuje na bajt iza argumenta

0-1 takt

° K6 - Ako je potrebno, izračunavanje memorijske adrese0-2 takta

° K7 - Donošenje izvornog argumenta 0-3 takta

° K8 - Upisivanje donetog argumenta u procesorski registar 1 takt

ukupno: 5-11 taktova

Izvršavanje instrukcija na 886 procesoru

Page 18: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 18 Matematička gimnazija Beograd

Izvršavanje MOV reg,reg i MOV reg,mem

° MOV AX,BX 110 00 001 C1

- K1- K2- K3- K7- K8

° ukupno 5 taktova

° MOV AX,xxxx 110 00 111 xxxx C7 xxxx

- K1- K2- K3- K4- K5- K8

° ukupno 6-7 taktova

Page 19: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 19 Matematička gimnazija Beograd

Izvršavanje MOV reg,[BX] i MOV reg,[xxxx]

° MOV AX,[BX]110 00 100 C4

- K1- K2- K3- K6- K7- K8

° ukupno 7-8 taktova

° MOV AX,[xxxx]110 00 110 xxxx C6 xxxx

- K1- K2- K3- K4- K5- K7- K8

° ukupno 8-10 taktova

Page 20: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 20 Matematička gimnazija Beograd

Izvršavanje MOV reg,[xxxx+BX]

° MOV AX,[xxxx+BX]110 00 110 xxxx C5 xxxx

- K1- K2- K3- K4- K5- K6- K7- K8

° ukupno 10-12 taktova

Page 21: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 21 Matematička gimnazija Beograd

Vreme izvršavanja instrukcija na procesoru 886

Page 22: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 22 Matematička gimnazija Beograd

Ubrzanja

° preklapanjem koraka izvršavanja

° dodavanjem bafera u procesor za čuvanje unapred donetih naredbi - bafer naredbi (prefetch queue) 8286

° korišćenjem tekućih linija (pipelines) 8486

° korišćenjem ugrađenog keša (cache) 8486

° korišćenjem više tekućih linija - superskalaranim izvršavanjem 8686

Page 23: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 23 Matematička gimnazija Beograd

Preklapanje koraka

° #1: K4, K5, K6, K7 (npr. MOV AX,[1000+BX]) K4, K5/6, K7

° #2: K4, K5, K7 (npr. MOV AX,[1000]) K4, K5/7

° #3: K6, K7 (npr. MOV AX,[BX]) K6, K7

° #4: K7 (npr. MOV AX,BX) K7

° K1' - Donošenje bajta instrukcije iz memorije;

° K2' - Dekodiranje instrukcije i ažuriranje IP;

° K3' - Ako je potrebno, donošenje 16-bitne konstante iz memorije;

° K4' - Ako je potrebno, izračunavanje memorijske adrese;

° K5' - Donošenje izvornog argumenta i ažuriranje IP;

° K6' - Upisivanje donetog argumenta na odredište.

Page 24: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 24 Matematička gimnazija Beograd

Korišćenje bafera naredbi

Prefetch queue kod realnih procesora8086 - 6 bajtova80386 - 16 bajtova8486 - 32 bajta

Page 25: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 25 Matematička gimnazija Beograd

Vreme izvršavanja instrukcija na procesoru 8286

Page 26: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 26 Matematička gimnazija Beograd

Korišćenje tekućih linija

Page 27: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 27 Matematička gimnazija Beograd

Prazni odeljci na tekućoj liniji (Pipeline Stall)

Page 28: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 28 Matematička gimnazija Beograd

Harvardska arhitektura računara

Page 29: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 29 Matematička gimnazija Beograd

Interna struktura procesora 8486

Page 30: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 30 Matematička gimnazija Beograd

Opasnost za podatake (data hazard)

Opasnost od mešanja podataka i njeno otklanjanje

Page 31: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 31 Matematička gimnazija Beograd

Interna struktura procesora 8686

Page 32: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 32 Matematička gimnazija Beograd

Pitanja i zadaci

1. Opišite arhitekturu hipotetičkih procesora x86.

2. Koje instrukcije čine skup instrukcija x86?

3. Koje načine adresiranja koriste procesori x86?

4. Kako se kodiraju instrukcije sa 2 argumenta, sa jednim argumentom i bez argumenata procesora x86?

5. Kako se kodiraju instrukcije skoka?

6. Opišite sekvencijalno izvršavanje instrukcija 886 proceosra.

7. Kako se može ubrzati izvršavanje instrukcija?

8. Šta je bafer naredbi (prefetch queue)?

9. Šta su tekuće linije (pipelines) i koji se problemi javljaju kada se koriste tekuće linije za izvršavanje instrukcija?

10. Kako se realizuje superskalarno izvršavanje?

Page 33: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86

RS11 Hipotetički procesori x86 - 33 Matematička gimnazija Beograd

Pogled unapred

Arhitektura i organizacija RS

Modul 7: Funkcije i organizacija OM

Modul 8: Organizacija I/O sistema i spoljašnje memorije

Modul 11:Hipotetički procesori x86

Modul 10: Arhitektura skupa instrukcija

Modul 9: Funkcije i organizacija CPU

Operativni sistemi