![Page 1: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/1.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 1
Questi trasparenti sono una versione estesa di quelli
prodotti per il consorzio NETTUNO
Questi trasparenti sono una versione estesa di quelli
prodotti per il consorzio NETTUNO
![Page 2: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/2.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 2
Giugno 1978: 8086Giugno 1978: 8086
�40 piedini�40 piedini
�29.000 transistori�29.000 transistori
� f = 5 Mhz� f = 5 Mhz
�CPI = 15�CPI = 15
![Page 3: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/3.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 3
80868086
� tempo medio per istruzione:15 * 200 ns = 3 micro secondiequivalenti a 0,33 MIPS
� tempo medio per istruzione:15 * 200 ns = 3 micro secondiequivalenti a 0,33 MIPS
�Spazio memoria: 1 Mbyte�Spazio memoria: 1 Mbyte
�Parallelismo: 16 bit, interno(registri) ed esterno (bus dati)
�Parallelismo: 16 bit, interno(registri) ed esterno (bus dati)
� L’8088 differiva solo per il bus datia 8 bit
� L’8088 differiva solo per il bus datia 8 bit
![Page 4: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/4.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 4
Modello di ProgrammazioneModello di Programmazione
� 8 registri di uso generale� 8 registri di uso generale
� 4 registri di segmento� 4 registri di segmento
�1 registro di stato (FLAGS)�1 registro di stato (FLAGS)
�1 instruction pointer (IP)�1 instruction pointer (IP))
![Page 5: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/5.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 5
Modello di ProgrammazioneModello di Programmazione
![Page 6: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/6.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 6
Registri datiRegistri dati
� (Quasi) intercambiabili� (Quasi) intercambiabili
� Ma hanno anche ruoli specifici:AX: accumulatoreBX: baseCX: contatoreDX: indirizzamento I/O
� Ma hanno anche ruoli specifici:AX: accumulatoreBX: baseCX: contatoreDX: indirizzamento I/O
![Page 7: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/7.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 7
Registri puntatoriRegistri puntatori
� SP: Stack Pointer� SP: Stack Pointer
� BP: Base Pointerper puntare entro entro lo stack
� BP: Base Pointerper puntare entro entro lo stack
� SI: Source Index� SI: Source Index
� DI: Destination Index� DI: Destination Index
![Page 8: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/8.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 8
CSCS
SSSS
DSDS
ESES
REGISTRI DISEGMENTOREGISTRI DISEGMENTO
IPIP
FLAGSFLAGS
Altri registriAltri registri
![Page 9: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/9.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 9
CSCS IPIPMEMMEM
IPIP
� Instruction Pointer inaccoppiamento con CS ha lafunzione di puntatore di programma
� Instruction Pointer inaccoppiamento con CS ha lafunzione di puntatore di programma
![Page 10: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/10.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 10
0716
TFTF ZFZF PFPFSFSF AFAF CFCFIFIFDFDFOFOF
FLAGS (8086)FLAGS (8086)
�bit di stato e di controllo�bit di stato e di controllo
� Stato: CF, AF, OF, SF, ZF, PF� Stato: CF, AF, OF, SF, ZF, PF
� Controllo: DF, IF, TF� Controllo: DF, IF, TF
![Page 11: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/11.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 11
Con l’80386 (1985):Con l’80386 (1985):
� I registri di uso generale (GPR),IP e FLAGS diventano a 32 bit
(EAX, EBX, ECX, …., EIP, EFLAGS)
� I registri di uso generale (GPR),IP e FLAGS diventano a 32 bit
(EAX, EBX, ECX, …., EIP, EFLAGS)
� Tutti GPR sono usabili perindirizzare
� Tutti GPR sono usabili perindirizzare
EvoluzioneEvoluzione
![Page 12: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/12.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 12
Modello a 32 bitModello a 32 bit
Dal 386 in poiDal 386 in poi
A 16 bit
![Page 13: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/13.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 13
Organizzazionedella
memoriae
segmentazione
(8086)
Organizzazionedella
memoriae
segmentazione
(8086)
![Page 14: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/14.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 14
Organizzazione della memoriaOrganizzazione della memoria
� Lo spazio di memoria è logicamentediviso in segmenti
� Lo spazio di memoria è logicamentediviso in segmenti
�Segmento: unità di memoria conestensione massima di 216=64 K
�Segmento: unità di memoria conestensione massima di 216=64 K
� Un segmento può essere sistemato inqualunque posizione di memoria
� Un segmento può essere sistemato inqualunque posizione di memoria
� I segmenti possono essere adiacenti,disgiunti, parzialmente o totalmentesovrapposti
� I segmenti possono essere adiacenti,disgiunti, parzialmente o totalmentesovrapposti
![Page 15: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/15.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 15
SegmentazioneSegmentazione
CS, DS, SS, ES contengonol’indirizzo di partenzadei segmenti correnti
CS, DS, SS, ES contengonol’indirizzo di partenzadei segmenti correnti
� CS -> segmento di codice� CS -> segmento di codice
� DS -> segmento dati� DS -> segmento dati
� SS -> segmento stack� SS -> segmento stack
� ES -> segmento “extra”� ES -> segmento “extra”
![Page 16: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/16.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 16
Indirizzo logico: SR:OFFSETIndirizzo logico: SR:OFFSET
0 <= indirizzo fisico < 1 M0 <= indirizzo fisico < 1 M
SRSRSR00
1M1M
OFFSETOFFSETindirizzofisicoindirizzofisico
basebase
MemoriaMemoria
![Page 17: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/17.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 17
Calcolo dell’indirizzoCalcolo dell’indirizzo
![Page 18: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/18.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 18
Esempio
![Page 19: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/19.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 19
La segmentazioneLa segmentazione
� I segmenti di codice, dati e stackrappresentano tre spazi logiciassociabili in modo naturale allastruttura dei programmi
� I segmenti di codice, dati e stackrappresentano tre spazi logiciassociabili in modo naturale allastruttura dei programmi
� Codice, Dati, Var. temporanee� Codice, Dati, Var. temporanee
� Programma:� Programma:
![Page 20: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/20.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 20
� Tende a oscurarne la leggibilitàrispetto a uno spazio di indirizzipiatto
� Tende a oscurarne la leggibilitàrispetto a uno spazio di indirizzipiatto
� Semplifica la rilocazione(basta aggiustare i registri disegmento)
� Semplifica la rilocazione(basta aggiustare i registri disegmento)
La segmentazione
![Page 21: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/21.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 21
FetchFetchFetch
StackStackStack
VariabiliVariabiliVariabili
Regnormale
Regnormale
CSCS
SSSS
DSDS
--- ------
CS,ES,SSCS,ES,SSCS,ES,SS
Regalternativo
RegRegalternativoalternativo
--- ------
OFFSETOFFSETOFFSET
IPIPIP
SPSPSP
EAEAEA
Indirizzi logici (composizione)Indirizzi logici (composizione)
Str. SorgStrStr. . SorgSorg
Str. DestStrStr. Dest. Dest
BP (base)BP BP (base)(base)
DSDS
ESES
SSSS CS,DS,SSCS,DS,SSCS,DS,SS
SISISI
DIDIDI
EAEAEA
CS,ES,SSCS,ES,SSCS,ES,SS
--- ------
![Page 22: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/22.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 22
� I registri di segmento restano a 16 bit� I registri di segmento restano a 16 bit
� Col 386 i registri di segmento diventano6 e i segmenti possono arrivare fino a 1Mbyte o 4 Gbyte (a seconda dellagranularità)
� Col 386 i registri di segmento diventano6 e i segmenti possono arrivare fino a 1Mbyte o 4 Gbyte (a seconda dellagranularità)
� Con il 286 il contenuto dei registri disegmento viene interpretato comeselettore di segmento (modo virtualeprotetto)
� Con il 286 il contenuto dei registri disegmento viene interpretato comeselettore di segmento (modo virtualeprotetto)
EvoluzioneEvoluzione
![Page 23: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/23.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 23
�� L’8086 è stato progettato a metà anni ‘70L’8086 è stato progettato a metà anni ‘70�� All’epoca la densità di integrazione eraAll’epoca la densità di integrazione era
(relativamente) bassa: “(relativamente) bassa: “solo” solo” 29.00029.000transistoritransistori
�� Non esistevano integrati commerciali con piùNon esistevano integrati commerciali con piùdi 40 piedinidi 40 piedini
�� I progettisti hanno dovuto bilanciare leI progettisti hanno dovuto bilanciare ledifferenti esigenzedifferenti esigenze
�� Trade-Trade-offoff tra: obiettivi, costi (col vincolo della tra: obiettivi, costi (col vincolo dellatecnologia)tecnologia)
OsservazioniOsservazioni
![Page 24: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/24.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 24
ConseguenzeConseguenze
�� Numero limitato di registri di CPUNumero limitato di registri di CPU�� Registri e percorsi interni a 16 bitRegistri e percorsi interni a 16 bit�� Indirizzo (fisico) a 20 bit solo in uscita dalla CPUIndirizzo (fisico) a 20 bit solo in uscita dalla CPU�� Segmentazione della memoriaSegmentazione della memoria�� BusBus multiplexed multiplexed (indirizzi e dati) (indirizzi e dati)
�� Previsione di componenti di corredoPrevisione di componenti di corredo(coprocessore)(coprocessore)
Tipica CPUTipica CPU microprogrammata microprogrammata: repertorio di: repertorio diistruzioni “complesso” e “disordinato”istruzioni “complesso” e “disordinato”
![Page 25: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/25.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 25
![Page 26: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/26.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 26
L’integrato
![Page 27: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/27.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 27
L’integrato:
Alimentazionee
Clock
![Page 28: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/28.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 28
RESET e READYRESET e READY
Quando RESET è asserito:Quando RESET è asserito:
�� CS viene posto a FFFF (CS viene posto a FFFF (hexhex))
�� IP viene posto a 0IP viene posto a 0�� la prima istruzione eseguita è quella allala prima istruzione eseguita è quella alla
locazione FFFF0locazione FFFF0
�� ReadyReady: se non asserito determina: se non asserito determinacicli di cicli di waitwait
![Page 29: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/29.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 29
�� Selezionato attraverso il piedinoSelezionato attraverso il piedino
MIN/MAXMIN/MAX
�� Il modo massimo prevede l’uso delIl modo massimo prevede l’uso delcoprocessore esterno o di uncoprocessore esterno o di uneventuale processore di I/Oeventuale processore di I/O
Modo Minimo/MassimoModo Minimo/Massimo
![Page 30: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/30.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 30
Bus 8086Bus 8086
�� Bus dati e indirizzi su linee condiviseBus dati e indirizzi su linee condiviseADAD15-0 15-0 (più A(più A19-1619-16))
�� Occorrono:Occorrono:��Latch Latch per il bus indirizziper il bus indirizzi��Transceiver Transceiver per il bus datiper il bus dati
ALEALE:: Address Latch Enable Address Latch Enable
![Page 31: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/31.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 31
L’integrato 8086L’integrato 8086
Linee Linee
IndirizziIndirizzi
ee
DatiDati
![Page 32: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/32.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 32
L’integrato 8086L’integrato 8086
ModoModo
minimominimo
Vcc
![Page 33: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/33.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 33
Ricostruzione busRicostruzione bus
(in modo Minimo)(in modo Minimo)
![Page 34: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/34.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 34
Ciclo di letturaCiclo di lettura
A partire dal 286 (1982)A partire dal 286 (1982)bus dati e indirizzi sonobus dati e indirizzi sono
separatiseparati
![Page 35: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/35.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 35
L’integrato 8086L’integrato 8086
ModoModo
massimomassimo GND
![Page 36: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/36.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 36
Ricostruzione busRicostruzione bus
(in modo Massimo)(in modo Massimo)
![Page 37: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/37.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 37
CPUCPU DBUS DBUS (16 bit)(16 bit)
Linee di controlloLinee di controllo
ABUS ABUS (20 bit)(20 bit)
Schema Schema di riferimentodi riferimento
![Page 38: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/38.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 38
![Page 39: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/39.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 39
Accesso alla memoriaAccesso alla memoria
�� l’8086 può leggere/scrivere 16 bitl’8086 può leggere/scrivere 16 bit(word) o 8 bit (byte)(word) o 8 bit (byte)
�� l’8088 legge/scrive sempre un bytel’8088 legge/scrive sempre un byte
�� OrganizzazioneOrganizzazione Little endianLittle endian
I+1I+1
MSBMSB LSBLSB
II
ParolaParola
![Page 40: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/40.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 40
La memoriaLa memoria
3344
0022
11
55
FFFFFFFFFF FFFFEFFFFE
44 33 22 11 00
Parola Parola aaindirizzoindirizzo
paripari
![Page 41: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/41.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 41
3344
0022
11
55
FFFFFFFFFF FFFFEFFFFE
44 33 22 11 00
Parola Parola aaindirizzoindirizzodisparidispari
La memoriaLa memoria
![Page 42: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/42.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 42
Accesso alla memoriaAccesso alla memoria
�� lettura/scrittura a 16 bit (8086):lettura/scrittura a 16 bit (8086):�� parola allineata ad indirizzo parola allineata ad indirizzo paripari: 1 ciclo: 1 ciclo
di lettura/scritturadi lettura/scrittura
�� parola allineata agli indirizzi parola allineata agli indirizzi disparidispari: 2: 2cicli di lettura/scritturacicli di lettura/scrittura
![Page 43: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/43.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 43
Accesso alla memoriaAccesso alla memoria
![Page 44: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/44.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 44
SelezioneSelezione
BHE A0BHE A0
0 00 0 ParolaParola1 01 0 Byte a indirizzo pariByte a indirizzo pari
0 10 1 Byte a indirizzo dispariByte a indirizzo dispari
1 11 1 N. A.N. A.
![Page 45: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/45.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 45
EvoluzioneEvoluzione
�� Quando l’architettura diventa a 32 bitQuando l’architettura diventa a 32 bit(80386) la lettura è sempre per parole(80386) la lettura è sempre per paroleallineate a indirizzi multipli di 4allineate a indirizzi multipli di 4
�� Dal Dal Pentium Pentium il bus dati diventa a 64il bus dati diventa a 64bit: lette sempre due parole allineatebit: lette sempre due parole allineate
![Page 46: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/46.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 46
![Page 47: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/47.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 47
Struttura internaStruttura interna
![Page 48: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/48.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 48
Perché due unità ?Perché due unità ?
�� BIU ed EU possono lavorare inBIU ed EU possono lavorare inparalleloparallelo
�� Quando EU è impegnata e non staQuando EU è impegnata e non staindirizzando la memoria, BIU puòindirizzando la memoria, BIU puòleggere dalla memoria la prossimaleggere dalla memoria la prossimaistruzione in sequenzaistruzione in sequenza
![Page 49: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/49.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 49
La codaLa coda
�� E’ una E’ una memoria di passaggiomemoria di passaggio(buffer) (buffer) per le istruzioniper le istruzioni
�� E’ una forma elementare di E’ una forma elementare di pipelinepipeline
�� Dimensione:Dimensione:
��6 byte nell’80866 byte nell’8086
��4 byte nell’80884 byte nell’8088
![Page 50: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/50.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 50
Gestione della coda (8086)Gestione della coda (8086)
�� Per ottimizzare l’uso del bus esternoPer ottimizzare l’uso del bus esternoè bene che la lettura sia a 16 bitè bene che la lettura sia a 16 bit
�� Se un’istruzione di salto porta ad unSe un’istruzione di salto porta ad unindirizzo dispari, viene letto un soloindirizzo dispari, viene letto un solobyte, in modo che le successivebyte, in modo che le successiveletture siano a 2 byte alla voltaletture siano a 2 byte alla volta
Nell’immagine seguente si suppone che la lettura siaNell’immagine seguente si suppone che la lettura siaad un indirizzo pariad un indirizzo pari
![Page 51: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/51.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 51
Stato iniziale (coda vuota)Stato iniziale (coda vuota)
![Page 52: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/52.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 52
Istr. 1Istr. 1
Primo fetchPrimo fetch
![Page 53: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/53.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 53
Istr. 2Istr. 2
Secondo fetchSecondo fetch
Istr. 1Istr. 1
![Page 54: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/54.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 54
Istr. 3Istr. 3
Terzo fetchTerzo fetch
Istr. 2Istr. 2
Istr. 1Istr. 1
![Page 55: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/55.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 55
Prelievo Istr.1Prelievo Istr.1
Istr. 3Istr. 3
Istr. 2Istr. 2
![Page 56: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/56.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 56
Istr. 3Istr. 3
Prelievo Istr.2Prelievo Istr.2
![Page 57: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/57.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 57
Istr. 3Istr. 3
Quarto fetchQuarto Quarto fetchfetch
Istr. 4Istr. 4
![Page 58: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/58.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 58
Istr. 4Istr. 4
Prelievo Istr. 3Prelievo Istr. 3
![Page 59: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/59.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 59
Istr. 4Istr. 4
Quinto fetchQuinto fetch
Istr. 5Istr. 5
![Page 60: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/60.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 60
Istr. 4Istr. 4
Istr. 5Istr. 5
Sesto fetchSesto fetch
Istr. 6Istr. 6
![Page 61: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/61.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 61
EvoluzioneEvoluzione
Nella versione attuale (P6)Nella versione attuale (P6)
�� La CPU ha una cache istruzioni internaLa CPU ha una cache istruzioni interna
�� Dalla cache vengono prelevati 32 byteDalla cache vengono prelevati 32 bytealla voltaalla volta
![Page 62: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/62.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 62
CacheCacheIstruzioniIstruzioni
DBUS (64 bit)DBUS (64 bit)
(linee di 32 byte)(linee di 32 byte)
DecodificatoreDecodificatore
MarcamentoMarcamento
![Page 63: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/63.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 63
CacheCacheIstruzioniIstruzioni
DBUS (64 bit)DBUS (64 bit)
EIPEIP
(linee di 32 byte)(linee di 32 byte)
DecodificatoreDecodificatore
MarcamentoMarcamento
![Page 64: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/64.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 64
CacheCacheIstruzioniIstruzioni
DBUS (64 bit)DBUS (64 bit)
EIPEIP
(linee di 32 byte) (linee di 32 byte)
DecodificatoreDecodificatore
32 byte32 byte
MarcamentoMarcamento
![Page 65: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/65.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 65
CacheCacheIstruzioniIstruzioniEIPEIP
16 byte16 byte
DecodificaDecodifica
MarcamentoMarcamento
DBUS (64 bit)DBUS (64 bit)
![Page 66: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/66.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 66
CacheCacheIstruzioniIstruzioniEIPEIP
MarcamentoMarcamento
DBUS (64 bit)DBUS (64 bit)
![Page 67: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/67.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 67
CacheCacheIstruzioniIstruzioniEIPEIP
DecodificaDecodifica
DBUS (64 bit)DBUS (64 bit)
![Page 68: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/68.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 68
CacheCacheIstruzioniIstruzioniEIPEIP
MarcamentoMarcamento
DBUS (64 bit)DBUS (64 bit)
![Page 69: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/69.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 69
![Page 70: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/70.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 70
Repertorio IstruzioniRepertorio Istruzioni
�� Molto ampioMolto ampiotipico di CPU tipico di CPU microprogrammatemicroprogrammate
�� Istruzioni di dimensione variabile, inIstruzioni di dimensione variabile, inbase al codice di operazione e allabase al codice di operazione e allamodalità di indirizzamentomodalità di indirizzamento
�� L’istruzione MOV ha circa 30 variazioniL’istruzione MOV ha circa 30 variazioni
![Page 71: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/71.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 71
Trasferimento dell’informazioneTrasferimento dell’informazione
MOVMOV destination,sourcedestination,source
PUSHPUSH source source
POPFPOPF
OUTOUT port, accumulator port, accumulator
…..…..
![Page 72: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/72.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 72
Aritmetiche e logicheAritmetiche e logiche
ADDADD destination,sourcedestination,sourceDECDEC destination destinationIDIVIDIV source sourceCBWCBWSHRSHR destination,count destination,count
![Page 73: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/73.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 73
Trasferimento del controlloTrasferimento del controllo
JMPJMP targettargetCALL CALL procedureprocedureJZJZ short-label short-labelLOOP LOOP short-labelshort-labelRETRET
-128-128
+127+127
IPIP
![Page 74: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/74.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 74
FormatoFormato
�� Istruzioni di dimensione variabile, inIstruzioni di dimensione variabile, inbase al codice di operazione e allabase al codice di operazione e allamodalità di indirizzamentomodalità di indirizzamento
�� Almeno 1 byte per il codice diAlmeno 1 byte per il codice diistruzioneistruzione
�� Da 0 a 5 byte aggiuntiviDa 0 a 5 byte aggiuntivi
![Page 75: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/75.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 75
Nei byte aggiuntiviNei byte aggiuntivi
��Il tipo di indirizzamentoIl tipo di indirizzamento
��Gli eventuali registri implicatiGli eventuali registri implicati
��UnoUno scostamento scostamento
��Un dato immediatoUn dato immediato
��Uno Uno scostamento scostamento e un datoe un datoimmediatoimmediato
![Page 76: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/76.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 76
Istruzioni di 1 byteIstruzioni di 1 byte
CLI CLI
�� OperandiOperandi impliciti impliciti OPOP
�� Con registro Con registro OPOP RR
PUSH AXPUSH AX
![Page 77: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/77.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 77
Istruzioni di 2 byteIstruzioni di 2 byte
MOV AL,BLMOV AL,BL
MOV AX,[BX]MOV AX,[BX]
�� Registro-registro Registro-registro OPOP RR1111 R/MR/M
�� Registro-memoria Registro-memoria OPOP RRmm R/MR/M
![Page 78: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/78.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 78
Istruzioni di 4 byteIstruzioni di 4 byte
�� RegReg--mem mem con con scostamentoscostamento
ADD AL,VAR[BX]ADD AL,VAR[BX]
Offset VAROffset VAROPOP RRmm R/MR/M
![Page 79: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/79.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 79
FetchFetch istruzioni istruzioni
�� La decodifica delle istruzioni è basataLa decodifica delle istruzioni è basatasu OP, m, R/Msu OP, m, R/M
�� La loro combinazione determina ilLa loro combinazione determina ilnumero dei byte da estrarre dallanumero dei byte da estrarre dallacoda istruzioni.coda istruzioni.
![Page 80: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/80.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 80
Esempi di istruzioniEsempi di istruzioni
8A8A C3C3
B0B0 5151
5050�� PUSH AX PUSH AX
��MOV AL,BLMOV AL,BL
��MOV AL,BL??????MOV AL,BL??????
![Page 81: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/81.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 81
Esempi di istruzioniEsempi di istruzioni
A0A0 Offset VAROffset VAR
Offset VAROffset VAR8A8A 8787
Offset VAR +3Offset VAR +38A8A 8080
�� MOV AL, VAR MOV AL, VAR
�� MOV AL,VAR[BX] MOV AL,VAR[BX]
�� MOV AL,VAR[BX][SI+3] MOV AL,VAR[BX][SI+3]
![Page 82: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/82.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 82
Esempi di istruzioniEsempi di istruzioni
�� MOV VAR[BX],077FFH MOV VAR[BX],077FFH
Offset VAROffset VARC7C7 8787 77FF77FF
![Page 83: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/83.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 83
![Page 84: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/84.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 84
IndirizzamentoIndirizzamento
Tra registriTra registri
MOV MOV AL, BLAL, BL ;AL := BL;AL := BL
MOV MOV CX, DXCX, DX ;CX := DX;CX := DX
ImmediatoImmediato
MOVMOV AL, 27 AL, 27 ;AL := 27;AL := 27
MOVMOV BX, 0A1C0H ;BX, 0A1C0H ;BX := A1C0 (BX := A1C0 (hexhex))
![Page 85: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/85.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 85
Riferimento alla memoriaRiferimento alla memoria
�� Il normaleIl normale reg reg di segmento è DS di segmento è DS
MOVMOV AX, VARAX, VAR ; AX<- M[DS:offset(VAR)] ; AX<- M[DS:offset(VAR)]
�� Registro alternativo a DSRegistro alternativo a DS
MOVMOV AX, ES:VARAX, ES:VAR ; ES in luogo di DS ; ES in luogo di DS
; AX <- M[ES:offset(VAR)]; AX <- M[ES:offset(VAR)]
![Page 86: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/86.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 86
Indirizzamento in memoriaIndirizzamento in memoria
�� DirettoDiretto
MOV MOV VAR,AXVAR,AX ; M[Offset(VAR)]:= AX; M[Offset(VAR)]:= AX
�� Indiretto attraverso registriIndiretto attraverso registri
MOVMOV [BX],AX[BX],AX ;M[BX] := AX ;M[BX] := AX
![Page 87: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/87.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 87
�� RelativoRelativo MOVMOV AX,VAR[BX]AX,VAR[BX]
;AX := M[Offset(VAR) + BX];AX := M[Offset(VAR) + BX]
�� Indiretto e Indiretto e indiciatoindiciato
MOVMOV AX,[BX] [SI]AX,[BX] [SI]
;AX := M[BX + SI];AX := M[BX + SI]
Indirizzamento in memoriaIndirizzamento in memoria
![Page 88: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/88.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 88
�� Forma generaleForma generale
MOVMOV AX,V [BX] [SI]AX,V [BX] [SI]
;EA = Offset(V) + BX + SI;EA = Offset(V) + BX + SI
;AX := M[DS:EA];AX := M[DS:EA]
Indirizzamento in memoriaIndirizzamento in memoria
![Page 89: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/89.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 89
Riferimento alloRiferimento allo stack stack
�� Le istruzioni PUSH e POP depositanoLe istruzioni PUSH e POP depositanoe prelevano un dato a 16 bit dallae prelevano un dato a 16 bit dallatesta dellotesta dello stack stack (e aggiornano SP) (e aggiornano SP)
PUSH PUSH CXCXPOPPOP SISI
![Page 90: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/90.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 90
StackStack
![Page 91: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/91.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 91
Riferimento alloRiferimento allo stack stack
�� Entro loEntro lo stack stack si indirizza con BP si indirizza con BP
MOV MOV [BP][DI+40], AL[BP][DI+40], AL
;EA= BP+DI+40;EA= BP+DI+40
; M[SS:EA]:= AL; M[SS:EA]:= AL
![Page 92: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/92.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 92
Calcolo ind di memoria
![Page 93: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/93.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 93
EvoluzioneEvoluzione
� Col 386 tutti i GPR diventanoutilizzabili come puntatori
� Col 386 tutti i GPR diventanoutilizzabili come puntatori
� Viene introdotto il fattore discala
� Viene introdotto il fattore discala
� Lo scostamento è a 8, 16 o32 bit
� Lo scostamento è a 8, 16 o32 bit
![Page 94: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/94.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 94
CSCS
ESES
DSDS
FSFS
SSSS
GSGS
ECXECX
ESIESI
EAXEAXEBXEBX
EDXEDXEBPEBP
EDIEDI
++ECXECX
ESIESI
EAXEAXEBXEBX
EDXEDXEBPEBP
EDIEDI
++ **
1122
4488
++NO DNO D
8b D8b D
32b D32b D
SEG+BASE+(INDEX*SCALE)+DISPLSEG+BASE+(INDEX*SCALE)+DISPL
EvoluzioneEvoluzione
![Page 95: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/95.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 95
Indirizzamento porte di I/OIndirizzamento porte di I/O
Diretto (256 porte IN e 256 OUT )Diretto (256 porte IN e 256 OUT )
ININ AL,PORTAAL,PORTA
OUT OUT PORTA,AXPORTA,AX
Attraverso DX (64 K porte)Attraverso DX (64 K porte)
ININ AX,DXAX,DX
OUTOUT DX,ALDX,AL
![Page 96: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/96.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 96
Indirizzamento istruzioniIndirizzamento istruzioni
�� il contatore di programma è il contatore di programma è sempresempredato dalla coppia CS:IP dato dalla coppia CS:IP (equivalente(equivalenteall’usualeall’usuale Program Counter Program Counter))
�� salti/chiamate disalti/chiamate di soubroutine soubroutine::IntrasegmentoIntrasegmento - modificano solo IP - modificano solo IPIntersegmentoIntersegmento - modificano sia CS - modificano sia CSche IPche IP
![Page 97: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/97.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 97
Trasferimento del controlloTrasferimento del controllo
IntrasegmentoIntrasegmento: : sostituisce IPsostituisce IP
�� DirettoDiretto: IP:= IP + SCOST: IP:= IP + SCOST�� SCOST: 16/8 bit codificati nell’istruzioneSCOST: 16/8 bit codificati nell’istruzione�� Nei salti condizionati SCOST è sempre di 8Nei salti condizionati SCOST è sempre di 8
bitbit
CALL NEAR_CALL NEAR_ProcProcJMP NEL_SegmentoJMP NEL_SegmentoJNEJNE NOT_ NOT_EqualEqual
![Page 98: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/98.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 98
Trasferimento del controlloTrasferimento del controllo
IntrasegmentoIntrasegmento: : sostituisce IPsostituisce IP
IndirettoIndiretto: : IP viene sostituito con ilIP viene sostituito con ilcontenuto di un registro o di unacontenuto di un registro o di unaparola di memoriaparola di memoria
JMPJMP CX CXJMPJMP [BX].TARGET [BX].TARGET
![Page 99: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/99.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 99
Trasferimento del controlloTrasferimento del controllo
IntersegmentoIntersegmento: : sostituisce CS,IPsostituisce CS,IP
�� DirettoDiretto: (CS,IP):= SCOST: (CS,IP):= SCOSTHH + SCOST + SCOSTLL
�� SCOST: 32 bit codificati nell’istruzioneSCOST: 32 bit codificati nell’istruzione
JMPJMP FAR_LABEL FAR_LABELCALLCALL FAR_PROC FAR_PROC
![Page 100: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/100.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 100
Trasferimento del controlloTrasferimento del controllo
IntersegmentoIntersegmento: : sostituisce CS,IPsostituisce CS,IP
�� Indiretto:Indiretto:�� CS,IP vengono sostituiti con il contenutoCS,IP vengono sostituiti con il contenuto
di due parole consecutive di memoriadi due parole consecutive di memoria
JMP DWORD PTR[BX]JMP DWORD PTR[BX]CALL [BX].TASK[SI]CALL [BX].TASK[SI]
![Page 101: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/101.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 101
Salti condizionatiSalti condizionati
JNEJNE NOT_ NOT_EqualEqual JZJZ IS_0 IS_0
Massimo Massimo scostamentoscostamento::�� In avanti di 127 posizioni In avanti di 127 posizioni�� Indietro di 128 Indietro di 128
![Page 102: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/102.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 102
Modello diModello diprogrammazioneprogrammazione
attualeattuale
![Page 103: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/103.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 103
Aritmetica FloatingAritmetica Floating
�� L’8086 non aveva istruzioni inL’8086 non aveva istruzioni invirgolavirgola
�� Il coprocessore 8087:Il coprocessore 8087:�� Concepito per lavorare in parallelo e inConcepito per lavorare in parallelo e in
collaborazione con la CPUcollaborazione con la CPU
�� Estende il repertorio istruzioniEstende il repertorio istruzioni
�� Estende il modello di Estende il modello di programmazprogrammaz. con 8. con 8registri da 80 bitregistri da 80 bit
![Page 104: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/104.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 104
Il coprocessore x87Il coprocessore x87
�� Aritmetica floating velocizzata di unAritmetica floating velocizzata di unfattore 2.fattore 2.
�� Esempio: FADDEsempio: FADD�� 1,61,6 ms ms solo 8086 solo 8086�� 14 14 micromicro s con 8087 s con 8087
![Page 105: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/105.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 105
Modello CPU-CoprocessoreModello CPU-Coprocessore
Il risultato è un processore conIl risultato è un processore conrepertorio estesorepertorio esteso
CPUCPU NPXNPX
Bus esternoBus esterno
Numeric Numeric ProcessorProcessorExtensionExtension
![Page 106: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/106.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 106
Modello esteso
![Page 107: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/107.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 107
Estensione repertorio
� Attraverso il codice (prefisso) diescape ESC
![Page 108: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/108.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 108
Collegamenti
![Page 109: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/109.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 109
Interazione
![Page 110: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/110.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 110
Interazione
![Page 111: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/111.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 111
Interazioni
Interazione Sincronizzazione
![Page 112: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/112.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 112
Esecuzione istruzione
Esempio: FADD Num
� CPU esegue il fetch� 8087 riconosce ESC, preleva codice e indirizzo
istruzione
� CPU legge alla prima posizione del dato(dummy read)� 8087 preleva indirizzo del dato
� 8087 legge il resto del dato contendendoil bus alla CPU
� 8087 completa l’istruzione
![Page 113: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/113.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 113
Controllo condivisione bus
Controllo
Bus locale
![Page 114: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/114.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 114
Protocollo Request/Grant
![Page 115: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/115.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 115
IntegrazioneIntegrazione
��Con il 486 (1989) il coprocessore èCon il 486 (1989) il coprocessore èstato integrato nella CPUstato integrato nella CPU
��Il 486 integrava 1,2 M transistoriIl 486 integrava 1,2 M transistori
![Page 116: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/116.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 116
MMX: Multimedia MMX: Multimedia ExtensionExtension
��Col Col PentiumPentium MMX (1997) è stato MMX (1997) è statoaggiunto un insieme di registri e diaggiunto un insieme di registri e diistruzioni per la multimedialitàistruzioni per la multimedialità
��SIMD: Single SIMD: Single Instruction Instruction MultipleMultipleData Data modelmodel
![Page 117: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/117.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 117
MMXMMX
��8 nuovi registri da 64 bit8 nuovi registri da 64 bit(MM0, MM1, ….. MM7)(MM0, MM1, ….. MM7)
��57 istruzioni SIMD57 istruzioni SIMD
77 66 00
Esempio: Esempio: packed packed byte byte integersintegers
![Page 118: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/118.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 118
StreamingStreaming SIMD SIMD ExtensionsExtensions
��Introdotte col Introdotte col Pentium Pentium III (1999)III (1999)
��8 nuovi registri da 128 bit8 nuovi registri da 128 bit(XMM0, XMM1, ….. XMM7)(XMM0, XMM1, ….. XMM7)
�Istruzioni per packed and scalarsingle-precision floating-point
![Page 119: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/119.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 119
SSESSE
003131127127 6464 3232
Esempio:128-Bit Packed Single-PrecisionFloating-Point
(4 valori Floating singola precisione)
![Page 120: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/120.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 120
Prestazioni in MIPS delle CPU Intel dall'8086 al Pentium
218,9
100
70,7
41
20
11,4
3,6
2,66
1,2
0,75
0,33
0 50 100 150 200 250
PENTIUM 133MHz
(1993) PENTIUM 60MHz
486DX4 100MHz
486DX2 50MHz
(1989) 486DX 25MHz
(1989) 386DX 33MHz
(1985) 386DX 16MHz
286 12MHz
(1982) 286 8 MHz
8086 10MHz
(1979) 8086 5MHz
![Page 121: Questi trasparenti sono una versione estesa di quelli …unina.stidue.net/Calcolatori Elettronici 2/Materiale/X86.pdf · 2009-10-20 · CSCS IPIP MEMMEM IP Instruction Pointer in](https://reader030.vdocuments.net/reader030/viewer/2022011805/5bbca46609d3f2fe038b6ac1/html5/thumbnails/121.jpg)
01/04/03 G. Bucci - Calcolatori Elettoronici 121
Prestazioni Spec95 delle CPU Intel a partire dal Pentium
12,8
9,47
8,66
6,08
7,12
5,6
5,17
2,74
2,31
9,14
7,04
6,8
5,42
5,21
4,34
4,32
2,39
2,02
0 2 4 6 8 10 12 14
Pentium II 333MHz (Gen 1998)
Pentium II 233MHz (Mag 1997)
Pentium PRO 200MHz, 1MB L2 (Ago 1997)
Pentium PRO 150MHz, 256K L2 (Nov 1995)
Pentium MMX 233MHz (Giu 1997)
Pentium MMX 166MHz (Gen 1997)
Pentium 200MHz (Giu 1996)
Pentium 100MHz (Mar 1994)
Pentium 75MHz (Ott 1994)
SPECfpP95
SPECint95