računarstvo i informatika iii lekcija 11 - hipoteti č ki procesori x86
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 PresentationTRANSCRIPT
![Page 1: Računarstvo i informatika III Lekcija 11 - Hipoteti č ki procesori x86](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081505/56815989550346895dc6ca9d/html5/thumbnails/33.jpg)
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