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
|
|
- Mauro Bernasconi
- 6 anni fa
- Visualizzazioni
Transcript
1 Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base in memoria Ponendo lo spiazzamento a zero, è possibile effettuare l indirizzamento indiretto Cosa altro è necessario? Possibilità di specificare costanti, ad esempio da usare nelle istruzioni aritmetiche o nelle istruzioni di salto Indirizzamento immediato Vogliamo avere istruzioni del tipo Somma la costante 4 al registro $t1 Setta il registro $t1 se il valore del registro $s0 è minore di 12 Valeria Cardellini 1 Istruzioni di somma e scelta con operando Istruzione addi (add immediate) addi $t1, $t1, 4 Somma la costante 4 al valore contenuto in $t1 e pone il risultato in $t1 Istruzione slti (set on less than immediate) slti $t0, $s0, 12 Se il valore del registro $s0 è minore di 12 allora pone a 1 il registro $t0, altrimenti pone a 0 il registro $t0 Formato delle istruzioni addi e slti Seguono il formato di istruzione di tipo I (immediate), usato anche dalle istruzioni lw e sw op rs rt address 6 bit 5 bit 5 bit 16 bit La costante è contenuta nel campo address (16 bit) Istruz. di somma e scelta con operando (2) Formato istruzione addi Codice MIPS: Formato istruzione slti Codice MIPS: addi $t0, $t1, slti $t0, $s0, Anche le istruzioni andi e ori seguono il formato di tipo I Istruzioni per utilizzare un valore costante nell operazione di AND e OR Valeria Cardellini 2 Valeria Cardellini 3
2 Dimensione delle costanti Le istruzioni di tipo I consentono di rappresentare nel campo address costanti esprimibili in 16 bit (valore massimo unsigned) I valori immediati sono rappresentati in assembler secondo la rappresentazione decimale, ma possono anche essere esadecimali o binari Un problema: come fare se 16 bit non sono sufficienti a rappresentare una costante? Osservazione: nella pratica le costanti sono piccole Esiste una soluzione costosa in due passi per i casi meno frequenti 1) Caricare una costante (16 bit) nei 16 bit più significativi di un registro (bit 31-16) utilizzando l istruzione lui (load upper immediate) 2) Aggiungere i 16 bit meno significativi (bit 15-0) utilizzando l istruzione ori Valeria Cardellini 4 Istruzione lui Istruzione lui (load upper immediate) lui rt, imm Carica i 16 bit del valore imm nei 16 bit più significativi del registro rt; i rimanenti 16 bit del registro rt sono posti a 0 Segue il formato di istruzione di tipo I Codice MIPS: lui $t2, Carica la costante 127 nei 16 bit più significativi del registro $t2 registro $t Valeria Cardellini 5 Caricamento di costanti a 32 bit Supponiamo di voler caricare il valore nel registro $s0 In binario Separiamo il valore in binario in 2 valori a 16 bit Il valore per i 16 bit più significativi In binario Il valore per i 16 bit meno significativi Pari a lui $s0, 61 # nei bit di $s0 ori $s0, $s0, 2304 # nei bit 15-0 di $s0 Valeria Cardellini 6 Esercizi Scrivere un programma in assembler MIPS che, dato l array di interi A di 100 elementi, effettua la somma solamente degli elementi di A minori di 10 sum = 0; for (i=0; i<100; i++) if (A[i] < 10) sum = sum + A[i]; Scrivere un programma in assembler MIPS che, dato l array di interi A di 100 elementi, effettua la somma solamente degli elementi di A minori di 10 e maggiori di 5 sum = 0; for (i=0; i<100; i++) if ((A[i] > 5) && (A[i] < 10)) sum = sum + A[i]; Valeria Cardellini 7
3 Indirizzamento nei salti Conosciamo diverse istruzioni che permettono di eseguire salti Istruzioni di salto condizionato (beq, bne) Istruzioni di salto incondizionato (j) Queste istruzioni hanno formati diversi Formato I per beq e bne op rs rt address 6 bit 5 bit 5 bit 16 bit Formato J per j op address 6 bit 26 bit Istruzioni di salto incondizionato (tipo J) Il campo address del formato J è di 26 bit Una parte (26 bit su 32) dell indirizzo assoluto di destinazione del salto Il registro Program Counter (PC), che nel MIPS contiene l indirizzo della prossima istruzione da eseguire, è grande 32 bit Ma l istruzione di tipo J ha un campo di 26 bit e dovrebbe indirizzare tutta la memoria Si adotta l indirizzamento pseudo-diretto; in effetti si usano due tecniche: Indirizzamento alla parola Concatenazione Valeria Cardellini 8 Valeria Cardellini 9 Istruzioni di salto incondizionato (2) Indirizzamento alla parola L indirizzo nel formato J indirizza le parole (word): quindi l indirizzo a cui saltare si ottiene moltiplicando per 4 il valore memorizzato nei 26 bit La moltiplicazione per 4 equivale a far scorrere la parola di 2 bit a sinistra E come se si esprimesse un indirizzo (a byte) di 28 bit Concatenazione I restanti 4 bit vengono presi dai 4 bit più significativi del PC (lasciandoli quindi inalterati) Quindi, l istruzione j rimpiazza solo i 28 bit più significativi del PC, lasciando inalterati i rimanenti 4 bit più significativi Sono possibili programmi di dimensione pari a 2 28 = = 256 MB Per saltare ad indirizzi maggiori di 256 MB: usare l istruzione jr che compie un salto a indirizzo di 32 bit (spazio di 2 32 byte ovvero 2 30 word) Valeria Cardellini 10 Esempio di indirizzamento per tipo J Per l istruzione di formato J j L indirizzo si riferisce al byte Si memorizza l indirizzo alla parola (ossia 10000/4 = 2500) Dal PC PC 31 PC 30 PC 29 PC bit 28 bit 32 bit Valeria Cardellini 11
4 Istruzioni di salto condizionato (tipo I) Il campo address del formato I è di 16 bit Usando le stesse tecniche viste per il formato J non potremmo saltare ad indirizzi più grandi di 2 18 Usando l indirizzamento alla parola (da 16 a 18 bit) e la concatenazione con i 14 bit più significativi di PC I programmi non potrebbero essere più grandi di 2 18 = = 256 KB: non è accettabile! Si adotta l indirizzamento relativo al Program Counter Il valore dei 16 bit è usato come un valore relativo alla posizione corrente L etichetta fornisce la distanza (in numero di parole) tra l istruzione corrente e l istruzione da eseguire se il test ha successo (indirizzamento alla parola) Viene sommato il valore del campo address al valore del registro PC Valeria Cardellini 12 Esempio di indirizzamento per tipo I Per l istruzione di formato I 1000 bne $t0, $t1, L1 L istruzione bne è memorizzata all indirizzo 1000 Il valore corrente del PC è quindi 1004 ( ) Supponiamo che l istruzione etichettata da L1 sia all indirizzo 1400 Quale è il valore dell etichetta L1 nel formato I? Occorre saltare di 99 parole, essendo ( )/4 = 99 Si memorizza il numero 99 nei 16 bit bit bit PC = Valeria Cardellini 13 Istruzioni di salto condizionato (2) La tecnica di indirizzamento utilizzata per il salto condizionato limita i salti a ± 2 15 parole (ovvero ± 2 17 byte) In pratica non è una grande limitazione I salti sono spesso di piccola entità Tipicamente i branch servono nei cicli, che normalmente non sono di grandi dimensioni Il limite è comunque superabile mediante l uso combinato di istruzioni di branch ed una istruzione di jump Esempio: l assemblatore può tradurre un salto che richiede 18 bit beq $t0, $t1, L1 bne $t0, $t1, L2 j L L2: Valeria Cardellini 14 Codice C Esempio while (A[i] ==k) i += 1; Codice MIPS Loop: sll $t1, $s3, 2 # $t1 = i * 4 add $t1, $t1, $s6 # $ti = indirizzo di A[i] lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 # i = i + 1 j Loop Exit: Assumiamo che la prima istruzione sia memorizzata alla locazione di indirizzo Valeria Cardellini 15
5 Esempio (2) Codice in linguaggio macchina Modalità di indirizzamento: riepilogo MIPS ha solo 5 modalità di indirizzamento A registro (register addressing) Immediato (immediate addressing) Con registro base o spiazzamento (base or displacement addressing) Relativo al Program Counter (PC-relative addressing) Pseudo-diretto (pseudodirect addressing) Una singola istruzione può usare più di un indirizzamento Modalità di indirizzamento semplificate rispetto ad altre architetture Valeria Cardellini 16 Valeria Cardellini 17 Indirizzamento a registro L operando è il contenuto di un registro della CPU: il nome del registro è specificato nell istruzione op rs rt rd shamt funct register Le istruzioni che usano questo tipo di indirizzamento hanno formato di tipo R (esempio: istruzioni logicoaritmetiche) Indirizzamento immediato L operando è una costante, il cui valore è contenuto nell istruzione L indirizzamento immediato si usa per specificare il valore di un operando sorgente, non ha senso usarlo come destinazione op rs rt operando Le istruzioni che usano questo tipo di indirizzamento hanno formato di tipo I La costante è memorizzata nel campo a 16 bit Esempio: istruzione logico-aritmetica con operando immediato, operazione di confronto con operando immediato Valeria Cardellini 18 Valeria Cardellini 19
6 Indirizzamento con base L operando è in una locazione di memoria, il cui indirizzo si ottiene sommando il contenuto di un registro base ad un valore costante (offset o spiazzamento) contenuto nell istruzione Indirizzamento relativo al PC L operando (istruzione) è in una locazione di memoria, il cui indirizzo si ottiene sommando il contenuto del Program Counter ad un valore costante (offset o spiazzamento) contenuto nell istruzione op rs rt offset indirizzo registro Le istruzioni che usano questo tipo di indirizzamento hanno formato di tipo I Esempio: istruzioni di load/store parola memoria Valeria Cardellini 20 + op rs rt offset indirizzo PC Le istruzioni che usano questo tipo di indirizzamento hanno formato di tipo I Esempio: istruzioni di salto condizionato parola memoria Valeria Cardellini 21 + Indirizzamento pseudo-diretto Una parte dell indirizzo è presente come valore costante (offset o spiazzamento) nell istruzione ma deve essere completato L indirizzo di salto si ottiene facendo uno shift a sinistra di 2 bit dei 26 bit di offset contenuti nell istruzione e concatenando i 28 bit con i 4 bit più significativi del PC op offset indirizzo parola PC Le istruzioni che usano questo tipo di indirizzamento hanno formato di tipo J Esempio: istruzioni di salto incondizionato memoria Valeria Cardellini 22 Altre modalità di indirizzamento Esistono anche altre modalità di indirizzamento in memoria usate in architetture diverse da MIPS (ad es. Intel 80x86) Tali modalità consentono ad esempio di avere gli operandi in memoria. Esempio: Diretto o assoluto (direct) L indirizzo di memoria assoluto è indicato direttamente nell istruzione Istruzione di esempio: add R1, (1001) Significato: Reg[R1] Reg[R1] + Mem[1001] L indirizzamento diretto si può simulare anche nel MIPS mediante l indirizzamento con base ed usando $zero come base register (range di memoria limitato) Indiretto con registro (register indirect) L indirizzo di memoria è in un registro Istruzione di esempio: add R4, (R1) Significato: Reg[R4] Reg[R4] + Mem[Reg[R1]] L indirizzamento indiretto si può simulare anche nel MIPS mediante l indirizzamento con base ed usando 0 come displacement Valeria Cardellini 23
7 Altre modalità di indirizzamento (2) Indiciato (indexed) L indirizzo di memoria è dato dalla somma di due registri Istruzione di esempio: add R3, (R1+R2) Significato: Reg[R3] Reg[R3] + Mem[Reg[R1]+Reg[R2]] Memoria indiretto (memory indirect) L indirizzo di memoria è dato dal contenuto di una locazione di memoria indicata da un registro Istruzione di esempio: add Significato: Reg[R1] Reg[R1] + Mem[Mem[Reg[R3]] Scalato (scaled) L indirizzo di memoria è dato da: offset + base + (d indice) Istruzione di esempio: add R1, 100(R2)[R3] Significato: Reg[R1] Reg[R1] + Mem[100+[Reg[R2]+d [Reg[R3]] In Intel e successivi processori 80x86: d=2 s (s=0,1,2,3) Valeria Cardellini 24 Pseudoistruzioni Il linguaggio assembler rappresenta una interfaccia verso il software di livello più alto Per semplificare la programmazione, è possibile che siano aggiunte un insieme di pseudoistruzioni Le pseudoistruzioni sono un modo compatto ed intuitivo per specificare un insieme di istruzioni Non hanno una corrispondenza uno-a-uno con le istruzioni presenti nel linguaggio macchina Non sono implementate in hardware Ma sono abbastanza semplici da tradurre in linguaggio macchina e rappresentano un aiuto per il programmatore, in quanto arricchiscono il set di istruzioni assembler La traduzione della pseudoistruzione nelle istruzioni equivalenti è attuata automaticamente dall assemblatore Valeria Cardellini 25 Le pseudoistruzioni MIPS La pseudoistruzione move permette di copiare il valore di un registro in un altro registro move $t0, $t1 Il registro $t0 prende il valore del registro $t1 Come viene tradotta move in istruzioni MIPS? Ricordiamo che il registro $zero è mantenuto sempre a zero move $t0, $t1 viene quindi tradotta in add $t0, $zero, $t1 Si possono caricare costanti a 32 bit in un registro tramite la pseudoistruzione li (load immediate) Vengono tradotte usando le istruzioni lui e ori E possibile specificare anche costanti in base esadecimale Valeria Cardellini 26 Le pseudoistruzioni MIPS (2) Le istruzioni di branch con slt possono essere complesse L assembler MIPS mette a disposizione alcune pseudoistruzioni di branch che vengono aggiunte a beq e bne Serve un registro riservato per l assemblatore ($at) Esempio: la pseudoistruzione blt (branch-on-less-than) viene implementata con slt e bne slt $at, $t0, $t1 blt $t0, $t1, 1000 bne $at, $zero, 1000 Esistono anche bgt (branch-on-greater-than) bge (branch-on-greater-than-or-equal) ble (branch-on-less-than-or-equal) Per esercizio, determinare come sono implementate in MIPS Valeria Cardellini 27
Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento
Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliIl linguaggio macchina
Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliIl linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio
DettagliLinguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.
Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio
DettagliIstruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
DettagliUniversità degli Studi di Cassino
Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliCorso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.
di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliLinguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)
Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliRiassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div
MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliL'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliArchitettura degli Elaboratori B Introduzione al corso
Componenti di un calcolatore convenzionale Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Studieremo il progetto e le prestazioni delle varie componenti
DettagliProgettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliArchitettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H
Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
DettagliISA (Instruction Set Architecture) della CPU MIPS
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
DettagliISA e linguaggio macchina
ISA e linguaggio macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/55
DettagliIl processore: unità di elaborazione
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliLa programmazione dei calcolatori. Architetture dei Calcolatori (Lettere. Benefici dei linguaggi ad alto livello. Vantaggi e svantaggi dell assembler
La programmazione dei calcolatori Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Prof. Francesco Lo Presti Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente
DettagliCalcolatori Elettronici
Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:
DettagliIl processore: unità di controllo
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
DettagliMIPS! !
MIPS! Sono descritte solamente le istruzioni di MIPS32, le pseudo-istruzioni, System Calls e direttive del linguaggio assembly che sono maggiormente usate.! MIPS è big-endian, cioè, lʼindirizzo di una
DettagliIl Linguaggio Assembly: Gestione della memoria e controllo
Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione
Dettagli21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio
02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni
DettagliArchitettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità
DettagliElementi base per la realizzazione dell unità di calcolo
Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni
DettagliModi di indirizzamento del processore MC68000 (parte prima)
Corso di Calcolatori Elettronici I A.A. 2011-2012 Modi di indirizzamento del processore MC68000 (parte prima) Lezione 21 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria
DettagliLa programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello
La programmazione dei calcolatori L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliAssembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.
Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile
DettagliIl linguaggio assembly
Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria
DettagliMIPS Instruction Set 1
Architettura degli Elaboratori e Laboratorio 20 marzo 2012 Istruzioni Comuni 1/3 Istruzioni Aritmetiche: Instruction Example Meaning Comments add add $1,$2,$3 $1=$2+$3 Always 3 operands subtract sub $1,$2,$3
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
DettagliLaboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini
[http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione
DettagliLinguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo
DettagliLe costanti Le modalità di indirizzamento L assembly del MIPS
Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/45 Sommario Le costanti
DettagliL insieme delle istruzioni
L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) La programmazione dei calcolatori Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock
DettagliUniversità degli Studi di Roma La Sapienza
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Indice degli argomenti Introduzione Assembler, compilatore, linker, programma
DettagliIstruzioni MIPS per floating point
Istruzioni MIPS per floating point Architetture dei Calcolatori (lettere A-I) Coprocessore per floating point L architettura MIPS ha un coprocessore (indicato con il numero 1) che opera sui numeri in virgola
DettagliSommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
DettagliDal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione
Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7
DettagliLABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 L'INDIRIZZAMENTO NEL PROCESSORE MC 68000
DettagliModi di indirizzamento del processore MC68000 (parte seconda)
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte seconda) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea
Dettagli5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio
5 April 2012 04 LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE I. Frosio 1 SOMMARIO If... Then... If... Then... Else... For... Break... While... Do Do... While Switch (jump address
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliLecture 2: Prime Istruzioni
[http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni
DettagliProgetto CPU (ciclo singolo) Salvatore Orlando
Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
Dettagli1. Schema generale di traduzione di un programma. Lo schema generale di un programma puo' essere cosi schematizzato:
1. Schema generale di traduzione di un programma Lo schema generale di un programma puo' essere cosi schematizzato: Inizializzazione delle variabili Input dei dati Elaborazione Output dei risultati Chiusura
DettagliArchitettura di tipo registro-registro (load/store)
Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche
DettagliStrutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register
Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di
DettagliMIPS Instruction Set 1
Laboratorio di Architettura 8 aprile 2011 1 SPIM 2 Architettura Mips 3 Esercitazione SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica
DettagliArchitettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e
DettagliAccesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.
< < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e
DettagliUn quadro della situazione. Lezione 13 Il Set di Istruzioni (1) Organizzazione della lezione. Dove siamo nel corso. Cosa abbiamo fatto
Un quadro della situazione Lezione Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Input/Output Sistema di Interconnessione Registri Central Processing Unit Principale
DettagliProcessore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite
Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:
DettagliAstrazione dell implementazione. Il processore: unità di elaborazione e unità di controllo (2) Il controllo della ALU.
Astrazione dell implementazione Il processore: nità di elaborazione e nità di lo (2) Architettre dei Calcolatori (lettere A-I) Ideal emory ress Net ress Rd Rs Rt 5 5 5 Rw Ra Rb -bit Registers A B als Conditions
DettagliCalcolatori Elettronici
Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio
DettagliLaboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni
Dettagli1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.
1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set
DettagliLe procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)
Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
DettagliImplementazione semplificata
Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento
DettagliArchitettura degli Elaboratori B Introduzione al corso
Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le prestazioni delle varie componenti
DettagliEsercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
DettagliArchitettura dei calcolatori e sistemi operativi. Set istruzioni e struttura del programma Direttive all Assemblatore.
Architettura dei calcolatori e sistemi operativi Set istruzioni e struttura del programma Direttive all Assemblatore Capitolo 2 P&H 23. 11. 2015 Istruzioni: sottoinsieme del linguaggio assembler MIPS Formati
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:
DettagliLezione 15 Il Set di Istruzioni (1)
Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,
DettagliCorso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo
Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliL insieme delle istruzioni (6)
L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso
DettagliIl linguaggio Assembly del MIPS
Il linguaggio Assembly del MIPS Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio
DettagliElementi di informatica
Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come
DettagliLinguaggi e moduli. Dott. Franco Liberati
(canale A-D) A Linguaggi e moduli Dott. Franco Liberati Linguaggi di programmazione Compilatore Assemblatore Linker (collegatore) LINKER COMPILATORE ASSEMBLATORE LINGUAGGI DI PROGRAMMAZIONE Linguaggio
DettagliLinguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Architettura MIPS Architettura RISC sviluppata
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis
Esercitazione di Ing. Gian Luca Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore v; &v[i] è il suo indirizzo.
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliSOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006
SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 26 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (8 punti)
DettagliStruttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:
Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema
DettagliCorso di Architettura (Prof. Scarano) 09/04/2002
Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno
DettagliSomma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
DettagliLINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA
LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma
DettagliArchitettura degli Elaboratori Lez. 2 Le istruzioni della CPU. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 2 Le istruzioni della CPU Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Motivazioni Nel resto del corso vedremo nel dettaglio la progettazione di una CPU MIPS,
DettagliMateriale didattico. Materiale didattico. Architettura MIPS. Il linguaggio Assembly parte I. Architettura degli Elaboratori e delle Reti
Materiale didattico Il linguaggio Assembly parte I Architettura degli Elaboratori e delle Reti Capitolo 3, 8 + Appendice A del testo: Struttura, organizzazione e progetto dei calcolatori: interdipendenza
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliCPU a ciclo multiplo
Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 1/8 Sommario! I problemi
DettagliArchitettura degli Elaboratori Modulo 2
Architettura degli Elaboratori Modulo 2 Salvatore Orlando http://www.dsi.unive.it/~architet Arch. Elab. - S. Orlando 1 Contenuti Approfondiremo il progetto e le prestazioni delle varie componenti di un
DettagliIl linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
Dettagli