Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
64
2.6 Parte di controllo (control path)
ha il compito di generare i segnali di comando sincronizzando le varie unità che compongono la parte operativa (data path) è un enorme automa sequenziale che ha come ingressi l’istruzione in corso e lo stato attuale della CPU, e come uscite i comandi alla parte operativa e lo stato successivo Central Process Unit Architettura degli elaboratori 1 - A. Memo
65
2.6 Parte di controllo i comandi del datapath
piccola sezione di datapath con evidenziati i comandi di sincronizzazione Central Process Unit Architettura degli elaboratori 1 - A. Memo
66
2.6 Parte di controllo diagramma degli stati
emettere IP nell’Address Bus: demux IPOUT emette dati in uscita A in attesa del dato dalla memoria: demux IPOUT emette dati in uscita B impostare inc/dec a incremento memorizzare il risultato in T1 aggiorna IP: mux IPIN legge dati da ingresso B memorizza il dato in registro IP Central Process Unit Architettura degli elaboratori 1 - A. Memo
67
2.6 Parte di controllo hardwired
implementazione tradizionale partendo dall’automa a stati finiti Central Process Unit Architettura degli elaboratori 1 - A. Memo
68
2.6 Parte di controllo microprogrammazione 1
La tendenza è quella di avere istruzioni sempre più complesse, il che comporta: semplificare la programmazione diminuire il numero di istruzioni per programma ridurre lo spazio in memoria complicare enormemente la logica di controllo La soluzione è adottare la microprogrammazione Central Process Unit Architettura degli elaboratori 1 - A. Memo
69
2.6 Parte di controllo microprogrammazione 2
Individuare per ogni istruzione (macro instruction) i comandi (micro code) da emettere, raggrupparli in blocchi eseguibili in parallelo (micro instruction), e implementarli in una struttura interna alla CPU simile ad un piccolo elaboratore, con la sua memoria programmi (microprogrammed ROM) Central Process Unit Architettura degli elaboratori 1 - A. Memo
70
2.6 Parte di controllo microprogrammazione 3
ogni macro instruction punta ad una sequenza di micro instruction Central Process Unit Architettura degli elaboratori 1 - A. Memo
71
2.6 Parte di controllo microprogrammazione 4
La microprogrammazione ... è facile da progettare ed implementare è flessibile negli sviluppi futuri rende poco influente l’architettura interna permette ottimizzazioni distinte è più lenta dell’implementazione hardwired Central Process Unit Architettura degli elaboratori 1 - A. Memo
72
Architettura degli elaboratori 1 - A. Memo
2.7 Set di istruzioni Il set di istruzioni di una CPU specifica quali sono le istruzioni previste quali operandi sono ammessi il formato con cui vengono codificate la loro durata in cicli di clock Central Process Unit Architettura degli elaboratori 1 - A. Memo
73
2.7 Set di istruzioni classificazioni
in base alla localizzazione interna degli operandi stack accumulatore registro (reg/mem) registro (reg/reg) ad accesso diretto (mem/mem) in base alle tecniche di indirizzamento in base alla complessità delle istruzioni Central Process Unit Architettura degli elaboratori 1 - A. Memo
74
2.7 Set di istruzioni a stack
gli operandi sono posti nella parte alta dello stack istruzioni molto corte codice poco efficiente valutatori delle espressioni semplificati (notazione polacca inversa) lo stack diventa un collo di bottiglia stack PUSH X PUSH Y ADD POP Z Central Process Unit Architettura degli elaboratori 1 - A. Memo
75
2.7 Set di istruzioni ad accumulatore
LOAD X ADD Y STORE Z l’ALU utilizza l’accumulatore come registro predefinito istruzioni corte semplifica il control path ed il data path frequenti spostamenti da/per altri registri poco efficente Central Process Unit Architettura degli elaboratori 1 - A. Memo
76
2.7 Set di istruzioni a registro (reg/mem)
registro (r/m) LOAD R1,X ADD R1,Y STORE Z, R1 in presenza di due operandi, almeno uno è un registro istruzioni lunghe buona efficienza di programmazione riduzione degli accessi alla memoria scarso bilanciamento delle istruzioni Central Process Unit Architettura degli elaboratori 1 - A. Memo
77
2.7 Set di istruzioni a registro (reg/reg)
gli operandi delle operazioni sono solo registri e quindi gli accessi alla memoria devono avvenire precedentemente tramite un registro (qualsiasi) codifica a lunghezza fissa istruzioni a durata bilanciata registro (reg/reg) LOAD R1,X LOAD R2,Y ADD R3,R1,R2 STORE Z, R3 Central Process Unit Architettura degli elaboratori 1 - A. Memo
78
2.7 Set di istruzioni ad accessi diretti (mem/mem)
uso delle locazioni di memoria come operandi massima semplicità di programmazione lunghezza delle istruzioni molto variabile alto sbilanciamento delle istruzioni l’accesso alla memoria diventa un collo di bottiglia memoria/memoria ADD Z,X,Y Central Process Unit Architettura degli elaboratori 1 - A. Memo
79
2.7 Set di istruzioni evoluzione commerciale
Accumulatore singolo (EDVAC) [1950] Accumulatore + registri indice (Mark 1, IBM 700) [1953] registri General Purpose CISC (VAX, Intel) Load/Store (CDC 6600, Cray 1) RISC (Mips, Spark, IBM) Central Process Unit Architettura degli elaboratori 1 - A. Memo
80
2.7 Set di istruzioni accesso alla memoria 1
la memoria viene vista (quasi) sempre dal programmatore in L.M. come un vettore lineare di elementi ad 8 bit ad ogni accesso alla memoria, alla CPU arriva un multiplo di byte (dimensione DB) memoria allineata memoria non allineata Central Process Unit Architettura degli elaboratori 1 - A. Memo
81
2.7 Set di istruzioni accesso alla memoria 2
Central Process Unit Architettura degli elaboratori 1 - A. Memo
82
2.7 Set di istruzioni accesso alla memoria 3
Central Process Unit Architettura degli elaboratori 1 - A. Memo
83
2.7 Set di istruzioni accesso alla memoria 4
memoria non allineata (Intel x86) accessi ottimizzati hardware più complesso memoria allineata (Motorola 68000) lettura più lenta dei dati disallineati con l’uso di compilatori adeguati i dati possono essere memorizzati opportunamente Central Process Unit Architettura degli elaboratori 1 - A. Memo
84
2.7 Set di istruzioni tecniche di indirizzamento 1
modalità esempio significato registro MOV AL,BL AL Ü AL+1 immediato MOV AL,10 AL Ü 10 diretto MOV AL,[0123] AL Ü Mem[0123] indicizzato MOV AL,[SI] AL Ü Mem[SI] con base MOV AL,[BX+30] AL Ü Mem[BX+30] index+base MOV AL,[SI+BX] AL Ü Mem[SI+BX] Central Process Unit Architettura degli elaboratori 1 - A. Memo
85
2.7 Set di istruzioni tecniche di indirizzamento 2
modalità esempio significato indiretto MOV AL Ü Mem[Mem[RX]] fatt. scala MOV AL,[BX +SI*d] AL Ü Mem[BX+SI*d] auto inc. MOV RX,[RY]+ AL Ü Mem[RY] RY = RY + d auto dec. MOV RX,-[RY] RY = RY - d AL Ü Mem[RY] Central Process Unit Architettura degli elaboratori 1 - A. Memo
86
2.7 Set di istruzioni indirizzamenti
Central Process Unit Architettura degli elaboratori 1 - A. Memo
87
2.7 Set di istruzioni tecniche di indirizzamento 4
più indirizzamenti ci sono e più semplice è la programmazione diretta più indirizzamenti ci sono e più complicati e difficilmente ottimizzati sono i compilatori più indirizzamenti ci sono e più complessa risulta la parte di controllo statisticamente sono pochi gli indirizzamen-ti utilizzati Central Process Unit Architettura degli elaboratori 1 - A. Memo
88
2.7 Set di istruzioni tipi di operazioni
Le istruzioni si possono dividere in trasferimento dati (*) aritmetiche e logiche (*) salto, ripetizione e controllo (*) gestione stack per dati specifici (FP, stringa) I/O Central Process Unit Architettura degli elaboratori 1 - A. Memo
89
2.7 Set di istruzioni trasferimento dati
da registro a registro MOV AL,BL da memoria a registro MOV AL,[0123] da registro a memoria MOV [0123],AL distinto tra lettura e scrittura LOAD R1,0123 STORE 0123,R1 Central Process Unit Architettura degli elaboratori 1 - A. Memo
90
2.7 Set di istruzioni aritmetiche e logiche
somma/sottrazione ADD AL,BL SUB CX,AX confronto CMP AL,33 TEST AH,CH moltiplic./divis. MUL BL DIV AX logiche OR AL,AH NEG AL spostamento bit ROL AH,2 SHR AL,1 sui bit di flag CLC STI Central Process Unit Architettura degli elaboratori 1 - A. Memo
91
2.7 Set di istruzioni salto, ripetizione e controllo
salto incondizionato JMP 0456 salto condizionato JZ JNC 2211 JNA 1234 JG 0101 ciclo di ripetizione LOOP 0345 salto a/da procedure CALL 0123 RET interruzione INT 21 IRET sistema HLT NOP Central Process Unit Architettura degli elaboratori 1 - A. Memo
92
2.7 Set di istruzioni gestione stack 1
lo stack è una coda LIFO che permette di salvare e recuperare dati senza curarsi del loro indirizzo è una tecnica a lettura distruttiva viene usato per salvataggio contesto durante le interruzioni o le chiamate a procedure passaggio parametri Central Process Unit Architettura degli elaboratori 1 - A. Memo
93
2.7 Set di istruzioni gestione stack 2
MOV AX,1234 PUSH AX PUSH AX DEC SP MOV [SP],AXhigh MOV [SP], AXlow prima dopo Central Process Unit Architettura degli elaboratori 1 - A. Memo
94
2.7 Set di istruzioni gestione stack 3
POP AX POP AX MOV AXlow,[SP] INC SP MOV AXhigh,[SP] prima dopo Central Process Unit Architettura degli elaboratori 1 - A. Memo
95
2.7 Set di istruzioni per dati specifici
per stringa LODSB CMPSW (implicito AL, sorgente DS:SI, destinazione ES:DI) ripetizione di stringa REPZ CMPSW Floating Point FADD ST, ST[2] BCD Packed DAA Central Process Unit Architettura degli elaboratori 1 - A. Memo
96
Architettura degli elaboratori 1 - A. Memo
2.7 Set di istruzioni I/O ingresso dati IN AL,DX emissione dati OUT DX,AL Central Process Unit Architettura degli elaboratori 1 - A. Memo
97
2.7 Set di istruzioni formato delle istruzioni 1
è il codice con cui vengono rappresentate le varie istruzioni dipende dal set di istruzioni e dall’architet-tura interna adottata può essere a lunghezza fissa o variabile (Intel da 1 a 12 byte) compatibilità verso il basso Central Process Unit Architettura degli elaboratori 1 - A. Memo
98
2.7 Set di istruzioni formato delle istruzioni 2
T T T T T T T T codice operativo (1 byte) T T T T T T T T codice operativo (eventuale secondo byte) mod TTT r/m modalità di indirizzamento (ed altri b.c.o.) ss_index fattore di scala, reg. indice e reg. base (1) displacemen spiazzamento, 0, 1, 2 o 4 byte immediate dato immediato, 0, 1, 2 o 4 byte Central Process Unit Architettura degli elaboratori 1 - A. Memo
99
2.7 Set di istruzioni formato delle istruzioni 3
Ad esempio ADD AL, BL codifica: 00 D8 formato reg1 to reg2 = 00TTT00w 11 reg1 reg2 oper. TTT ADD 000 ADC 010 AND 100 OR 001 SUB 101 SBB 011 XOR 110 reg cod AL 000 CL 001 DL 010 BL 011 AH 100 CH 101 DH 110 BH 111 dimensione operandi 8 bit w=0 16/32 bit w=1 TTT = (ADD) w = 0 (8 bit) reg1 = (BL) reg2 = 000 (AL) codifica = Central Process Unit Architettura degli elaboratori 1 - A. Memo
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.