Gli indirizzi occupano spazio! Gli indirizzi occupano spazio! Corso di Architettura degli Elaboratori. Indirizzamento immediato



Documenti analoghi
Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione

Vari modi di specificare l indirizzo degli operandi

Procedure e variabili locali. Corso di Architettura degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

Modi di indirizzamento

Esercizi su Linguaggi gg Macchina. Università Roma Tre

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Corso di Laurea in Informatica Architetture degli Elaboratori

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Corso di. Stack: Procedure e variabili locali. Architetture degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

L insieme delle istruzioni (6)

Calcolatori Elettronici B a.a. 2004/2005

Calcolatori Elettronici B a.a. 2006/2007

Struttura CPU. CPU con bus di sistema. Compiti CPU:

ISA e linguaggio assembler

Il linguaggio macchina

FONDAMENTI DI INFORMATICA Lezione n. 11

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Implementazione semplificata

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Istruzioni e linguaggio macchina

Corso di Laurea in Informatica Architetture degli Elaboratori

Linguaggio Assembly e linguaggio macchina

Corso di Laurea in Informatica Architetture degli Elaboratori

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Il linguaggio assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Macchina di Riferimento: argomenti

Modi di indirizzamento

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina

Fetch Decode Execute Program Counter controllare esegue prossima

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 -

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

Linguaggi e moduli. Dott. Franco Liberati

Fondamenti di Informatica B

Programmazione in linguaggio assembly per architetture Intel 8088

Introduzione al linguaggio macchina. Istruzione l/m

Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis. Corso di Laurea in Ingegneria Elettronica

Il linguaggio macchina

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Architettura del set di istruzioni (ISA)

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Istruzioni di trasferimento dati

Corso di Laurea in Informatica

Lezione 17 Il Set di Istruzioni (3)

Corso di Laurea in Ingegneria Elettronica

Progetto CPU a singolo ciclo

L'architettura del processore MIPS

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Calcolatori Elettronici A a.a. 2008/2009

Lezione 18 Il Set di Istruzioni (4)

Una microarchitettura per IJVM. Corso di Architettura degli Elaboratori. Architetture degli Elaboratori. Central Processing Unit (richiamo)

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

ISA e linguaggio assembler

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione

Introduzione al linguaggio macchina

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Istruzioni di controllo del flusso

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014

Architettura e funzionamento del calcolatore

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

Ricevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1]

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I

Architettura di una CPU

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

L Instruction Set Architecture ed il Linguaggio Assembly

L Instruction Set Architecture ed il Linguaggio Assembly

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Lezione 15 Il Set di Istruzioni (1)

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Il Linguaggio Assembly

Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12

Architettura degli Elaboratori

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Fondamenti di Informatica A. A / 1 9

Corso di Laurea in Informatica

ISA (Instruction Set Architecture) della CPU MIPS

FONDAMENTI DI INFORMATICA Lezione n. 10

Fondamenti di Informatica B

ISA e linguaggio macchina

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti

FONDAMENTI DI INFORMATICA Lezione n. 10

Introduzione al linguaggio macchina

Transcript:

Corso di Architettura degli Elaboratori Il livelo ISA: modalità di indirizzamento Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/ ~baldoni 1 Gli indirizzi occupano spazio! Una generica operazione necessita che si specifichi dove recuperare gli operandi (compresa la del risultato) RISULTATO = OPERANDO1 'Op' OPERANDO2 Se la macchina ha indiririzzi di di 32 bit allora questa necessita almeno di 9 bit per essere specificata! Vari metodi: appoggiarsi a registri (se ho 32 registri sono allora 5 bit) un operando implicito (REGISTRO2 = REGISTRO2 + SORGENTE1 due operandi impliciti (REGISTRO2 e`un accumulatore) tre operandi impliciti (JVM!) 2 Gli indirizzi occupano spazio! Indirizzamento immediato Una attenta progettazione dei metodi di indirizzamento disponibili nell'isa (e quindi al programmatore assembler o al compilatore) e`di fondamentale importanza per la realizzazione di codice efficiente Sono definite varie modalita`di indirizzamento: immediato diretto indiretto mnediante registro indiretto mediante registro indicizzato based-indexed mediante stack costante MOV R1 # R1 L'istruzione contiene l'operando stesso Non richiede accessi supplementari alla Utilizzabile solo per le costanti Es. IJVM: BIPUSH 3 4

R1 Indirizzamento diretto MOV R1 0xA2 indirizzo 0xA2 Consiste nell'indicare l'indirizzo completo in memori di un operando Utilizzato solitamente per accedere a variabili globali il cui indirizzo è conosciuto al momento della compilazione Non è possibile utilizzarla per accedere alle variabili locali di un metodo (poichè la loro posizione non è conosciuta a tempo di compilazione) 5 Indirizzamento indiretto L'indirizzo dell'operando è contenuto in all'indirizzo specificato nell'istruzione Duplice accesso alla per reperire il valore dell'operando Indirizzamento dei registri Indirizzamento indiretto dei registri Consiste nell'indicare l'indirizzo di un registro che contiene un operando L'indirizzo della locazione dell'operando è contenuto in un registro sorgente MOV R1 R2 R1 È il metodo più comune nelle istruzioni dello UltraSPARC II (come in tutte le architetture load/ store) Istruzioni più corte (meno bit necessari per specificare il registro) R1 MOV R1 (R2) indirizzo in un registro 0xA2 Permette di fare riferimento alla senza dover sprecare spazio nell'istruzione Doppio accesso: prima al registro quindi alla Utile per percorrere strutture dati omogenee R2 R2 0xA2 7 8

Esempio: Pentium II Indirizzamento indicizzato MOV R2, #A MOV R3, #A+409 ADD R1, (R2) Indirizzamento immediato Aggiunge in R1 il valore in il cui indirizzo è specificato in R2 Si specifica un operando mediante: un registro (esplicito o implicito) e un offset costante contenuto nell'istruzione (Es.IJVM: ILOAD 5) un puntatore di nell'istruzione e l'offset nel registro 9 10 Indirizzamento indicizzato Indirizzamento based-indexed R1 indirizzo in un registro MOV R1 0xA2(R2) R2 2 0xA2 +2 indirizzamendo indice Utile per percorrere vettori (array) o accedere alle variabili locali di una procedura MOV R2, #0 MOV R3, #409 MOV R4, A(R2) AND R4, B(R2) OR R1, R4 MOV R2, #0 MOV R3, #409 MOV R5, #A MOV R, #B MOV R4, (R2+R5) AND R4, (R2+R) OR R1, R4 Simile all'indirizzamento indice ma anche l'indirizzo di è contenuto in un registro oltre che l'offset 11 12

Indirizzamento dello stack Indirizzamento per i salti È quella che abbiamo discusso con la IJVM Indirizzamento diretto: l'indirizzo di del salto è contenuto nell'istruzione stessa È detta anche indirizzamento a zero indirizzi in quanto tutti gli indirizzi sono espiciti Codice molto compatto vs molti accessi alla Indirizzamento indiretto dei registri: permette di calcolare l'indirizzo a tempo di esecuzione Indirizzamento indicizzato: somma un offset al valore di un registro. Il registro è esplicito o implicito, in questo caso è inteso, solitamente, il registro program counter (come le istruzioni di salto in IJVM!) È basata sulla RPN (Reverse Polish Notation), si vedano i lucidi già presentati a tal proposito 13 14 Opcode vs modalità di indiriz. Esempio: a tre indirizzi Riepilogando: Obiettivo del progetto di un'isa è di facilitare il più possibile la generazione di codice da parte dei compilatori in modo che questo sia il più possibile efficiente e compatto e di buona qualità Obiettivo del progetto di un'isa è di essere il più possibile una buova interfaccia con l'hardware e di permettere che il codice prodotto lo sfrutti a fondo Il buon bilanciamento tra lo spazio riservato agli opcode e la modalità della loro decodifica e quello riservato agli operandi e le modalità offerte per reperire tali valori durante l'esecuzione è cruciale Macchina con 3 indirizzi 8 bit di opcode Operazioni di salto o LOAD e STORE con offset grandi istruzioni da 32 bit distingue i due formati 1 opcode per fp + codice operazione specificata qui costante immediata da 13 bit LOAD e STORE di variabili locali 15 1

Esempio: a due indirizzi Riepilogo Macchina con 2 indirizzi: si isprira al PDP-11 e VAX Forte ortogonalità tra opcode e modalità di indirizzamento Pentium II: indirizzameto immediato, diretto, diretto dei registri, indiritto dei registri, indice UltraSPARC II: indirizzamento immediato, diretto dei registri, indice, based-indexed JVM: indirizzamento immediato, indice, stack Indirizzi di se necessari Facile per i compilatori produrre codice ma troppo facile produrre codice che accede molto alla! 17 Per un compilatore, data la tecnologia attuale, è importante che le modalità di indirizzamento siano poche e chiare con limiti molto severi al loro utilizzo L'architettura di tipo RISC è quella che più si adatta alla tecnologia attuale con forte utilizzo dei registri che permettono l'avvio di più istruzioni in parallelo in modo più semplice 18