Presentazione di PowerPoint - Dipartimento di Ingegneria
Transcript
Presentazione di PowerPoint - Dipartimento di Ingegneria
Prof. G. Ascia Architettura del set di istruzioni (ISA) 1 Calcolatori Elettronici-Ingegneria Telematica Instruction Set Architecture Prof. G. Ascia Application (Netscape) Compiler Software Hardware Assembler Operating System (Windows) Processor Memory I/O system Instruction Set Architecture Datapath & Controllo Digital Design Circuit Design transistors Calcolatori Elettronici-Ingegneria Telematica 2 Classificazione dell’ISA Prof. G. Ascia Stack: Gli operandi sono implicitamente sulla cima dello stack 0 operandi add tos ← tos + next Stack Pointer tos next .. Accumulatore: Un operando è implicitamente l’accumulatore 1 operando add A acc ← acc + mem[A] 1+x operandi addx A acc ← acc + mem[A + x] 3 Calcolatori Elettronici-Ingegneria Telematica Classificazione dell’ISA General Purpose Register Prof. G. Ascia Gli operandi sono tutti espliciti: possono essere registri o memoria. Abbiamo tre classi di GPR Architecture: • Memoria-Memoria: 2 operandi add A B mem[A] ← mem[A] + mem[B] 3 operandi add A B C mem[A] ← mem[B] + mem[C] • Registro Memoria: 2 operandi add Ra,C Ra ← Ra+mem[C] 3 operandi add Ra,Rb,C Ra ← Rb+mem[C] • Registro-Registro (Load/Store): 3 operandi add Ra Rb Rc Ra ← Rb + Rc Calcolatori Elettronici-Ingegneria Telematica 4 Confronto Prof. G. Ascia • In riferimento all’istruzione di alto livello A:= B+C STACK REGISTROREGISTRO MEMORIAREGISTRO MEMORIAMEMORIA ADD PUSH B LOAD R1, B LOAD B PUSH C LOAD R2, C ADD C ADD R3,R1,R2 STORE STORE A, R3 ADD POP A A,B,C A 5 Calcolatori Elettronici-Ingegneria Telematica Alcuni esempi Prof. G. Ascia Machine EDSAC IBM 701 CDC 6600 IBM 360 DEC PDP-8 DEC PDP-11 Intel 8008 Motorola 6800 DEC VAX Intel 8086 Motorola 68000 Intel 80386 MIPS HP PA-RISC SPARC PowerPc DEC Alpha Number of registers 1 1 8 16 1 8 1 2 16 1 16 8 32 32 32 32 32 Calcolatori Elettronici-Ingegneria Telematica Architecture Style Year accumulator accumulator load-store register-memory accumulator register-memory accumulator accumulator register-memory, memory-memory extended-accumulator register-memory register-memory load-store load-store load-store load-store load-store 1949 1953 1963 1964 1965 1970 1972 1974 1977 1978 1980 1985 1985 1986 1987 1992 1992 6 General Purpose Registers Prof. G. Ascia • 1975-2004 tutte le macchine usano general purpose registers • Vantaggi dei registri: – Sono più veloci della memoria – Sono più facili da usare per un compilatore • Es., (A*B) – (C*D) – (E*F) A differenza dello stack, i prodotti possono essere eseguiti in qualsiasi ordine – Possono conservare variabili • Il traffico con la memoria è ridotto, cosicchè I programmi sono più veloci – La densità del codice aumenta (poichè la codifica del nome di un registro richiede meno bit dell’indirizzo di una locazione di memoria) 7 Calcolatori Elettronici-Ingegneria Telematica Indirizzamento della memoria Prof. G. Ascia • Ogni macchina usa indirizzi a livello di 8 bit (byte) • Due problemi per il progetto dell’ ISA: – Dal momento che una word di 32 bit può essere letta come una sequenza di quattro byte, come mappare gli indirizzi a livello di byte all’interno della word ? – L’indirizzo iniziale di una word può essere qualsiasi? Calcolatori Elettronici-Ingegneria Telematica 8 Ordinamento degli indirizzi • Big Endian: L’indirizzo del byte più significativo = indirizzo word (xx00 = Big End of word) Prof. G. Ascia – IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA • Little Endian: L’indirizzo del byte meno significativo = indirizzo word (xx00 = Little End of word) – Intel 80x86, DEC Vax, DEC Alpha (Windows NT) 9 Calcolatori Elettronici-Ingegneria Telematica Allineamento in memoria Prof. G. Ascia • Esempio: parole di 32 bit, formate da quattro banchi di 8 byte • La parola tratteggiata è non allineata; ha il byte meno significativo in i+6 (Little Endian) il più significativo in i+9 • Occorrerebbero due accessi alla memoria Calcolatori Elettronici-Ingegneria Telematica 10 Modalità di indirizzamento (dati) Significato Prof. G. Ascia Modalità Esempio Register Add R4,R3 R4 R4+R3 Immediate Add R4,#3 R4 R4+3 Displacement Add R4,100(R1) R4 R4+Mem[100+R1] Register indirect Add R4,(R1) R4 R4+Mem[R1] Indexed / Base Add R3,(R1+R2) R3 R3+Mem[R1+R2] Direct or absolute Add R1,(1001) R1 R1+Mem[1001] Memory indirect Add R1,@(R3) R1 R1+Mem[Mem[R3]] Post-increment Add R1,(R2)+ Pre-decrement Add R1,–(R2) R1 R2 R1+Mem[R2]; R2= R2+d R2–d; R1 = R1+Mem[R2] 11 Calcolatori Elettronici-Ingegneria Telematica Uso delle modalità di indirizzamento Prof. G. Ascia 3 programmi misurati su una macchina con tutte le modalità di indirizzamento (VAX) --- Displacement: 42% avg, 32% to 55% --- Immediate: 33% avg, 17% to 43% 75% 88% --- Register deferred (indirect): 13% avg, 3% to 24% --- Scaled: --- Memory indirect: --- Misc: 7% avg, 0% to 16% 3% avg, 1% to 6% 2% avg, 0% to 3% 75% displacement & immediate 85% displacement, immediate & register indirect Calcolatori Elettronici-Ingegneria Telematica 12 Modalità di indirizzamento (controllo) Prof. G. Ascia • Salto, salto condizionato, chiamata e ritorno da sottoprogrammi – Diretto – Relativo al PC o ad altro registro • Esempi JMP DEST ; Diretto o relativo a PC JZ wait ; Di solito relativo a PC callsub ; Di solito diretto BR R30 ; EA destinazione = R30 13 Calcolatori Elettronici-Ingegneria Telematica Dimensione dello spiazzamento Prof. G. Ascia Int. Avg. FP Avg. 30% 20% 10% 15 14 13 12 Address Bits 11 10 9 8 7 6 5 4 3 2 1 0 0% Solo 1% degli indirizzi > 16 bit Sono necessari 12 - 16 bit Calcolatori Elettronici-Ingegneria Telematica 14 Indirizzamento: riassumendo Prof. G. Ascia Modalità di indirizzamento dei dati più importanti: •Displacement, Immediate, Register Indirect Dimensione dello spiazzamento: •dai 12 ai 16 bit Dimensione degli operandi immediati: • dagli 8 ai 16 bit 15 Calcolatori Elettronici-Ingegneria Telematica Formato delle istruzioni Prof. G. Ascia Variabile: (VAX) … … Fissa: (MIPS,PowerPC) Ibrida: (Intel 80x86) Calcolatori Elettronici-Ingegneria Telematica 16 Formato delle istruzioni Prof. G. Ascia • Se la dimensione del codice è il requisito più importante, si usano istruzioni a lunghezza variabile – Questo stile è il migliore quando sono presenti molte modalità di indirizzamento e operandi • Se le prestazioni sono il requisito più importante, si usano istruzioni a lunghezza fissa – Questa scelta è particolarmente indicata quando l’operazione e la modalità di indirizzamento sono combinate nel codice operativo – Lavora bene quando sono presenti poche modalità di indirizzamento 17 Calcolatori Elettronici-Ingegneria Telematica MIPS: Modalità di indirizzamento Formato Istruzioni Prof. G. Ascia • Tutte le istruzioni solo di 32 bit Register (direct) op rs rt rd register Immediate Base+index op rs rt immed op rs rt immed register PC-relative op rs PC Calcolatori Elettronici-Ingegneria Telematica rt Memory + immed Memory + 18 Formato Power PC Prof. G. Ascia ADD ADD. ADDO ADDO. RD,RA,RB RD,RA,RB RD,RA,RB RD,RA,RB (OE=0, (OE=0, (OE=1, (OE=1, Rc=0) Rc=1) Rc=0) Rc=1) Calcolatori Elettronici-Ingegneria Telematica 19 PowerPC Prof. G. Ascia Calcolatori Elettronici-Ingegneria Telematica 20 Formato Intel Prof. G. Ascia Esempio MOV EAX, ES:V[EBX+EIX] PUSH EAX 6 byte 1 solo byte PUSH Var[EBX] fino a 6 byte 21 Calcolatori Elettronici-Ingegneria Telematica Le prime 10 istruzioni 80x86 Prof. G. Ascia ° Rank instruction Integer Average Percent total executed 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Total 96% ° Simple instructions dominate instruction frequency Calcolatori Elettronici-Ingegneria Telematica 22