Università degli Studi di Cassino
|
|
|
- Feliciano Gambino
- 9 anni fa
- Просмотров:
Транскрипт
1 Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella
2 Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri else $t1=0 (con segno) slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante else $t1=0 (con segno) sltu $t1,$t2,$t3 if ($t2<$t3) t$1=1; Cfr. tra registri else $t1=0 (senza segno) sltiu $t1,$t2,100 if ($t2<100) $t1=1; Cfr. registro-costante else $t1=0 (senza segno) Lezione 4-1
3 Istruzioni per il controllo di flusso Sono istruzioni che permettono di alterare il flusso sequenziale di esecuzione delle istruzioni del programma, trasferendo il controllo ad una istruzione diversa da quella che segue immediatamente nel programma ( salto ). Se il salto è realizzato sulla base del verificarsi di una condizione, si parla di istruzioni di salto condizionato, altrimenti si definiscono istruzioni di salto incondizionato. Lezione 4-2
4 Istruzioni per il controllo di flusso A seconda di come viene specificata la destinazione del salto nella codifica in linguaggio macchina dell istruzione, le istruzioni di salto si dividono in due classi: Istruzioni di branch la destinazione del salto è specificata tramite uno spiazzamento rispetto al valore del PC. Istruzioni di jump la destinazione del salto è specificata tramite un indirizzo assoluto. Lezione 4-3
5 Istruzioni di branch beq $t1,$t2,label if ($t1 == $t2) Test di uguaglianza branch label bne $t1,$t2,label if ($t1!= $t2) Test di disuguaglianza branch label bgez $t1,label if ($t1>= $zero) Verifica se il valore in $t1 è non negativo branch label bgtz $t1,label if ($t1> $zero) Verifica se il valore in $t1 è positivo branch label blez $t1,label if ($t1<= $ zero) Verifica se il valore in $t1 è non positivo branch label bltz $t1,label if ($t1< $ zero) Verifica se il valore in $t1 è negativo branch label Lezione 4-4
6 Istruzioni di jump Istruzione Significato j label jump label Salta all istruzione all indirizzo label (indirizzo da 26 bit) jr $t0 jump ($t0) Salta all istruzione all indirizzo contenuto nel registro $t0 (indirizzo da 32 bit) Uso particolare di jr jr $ra jump ($ra) Per i ritorni da procedura (indirizzo da 32 bit) Lezione 4-5
7 Istruzioni per la chiamata di sottoprogramma Sono particolari istruzioni per il controllo di flusso. Prima del salto, l indirizzo dell istruzione successiva viene salvato nel registro $ra ($31). bgezal $t1,label if ($t1>= $zero) { salto condizionato $ra = PC + 4; branch label } bltzal $t1, label if ($t1< $zero) { salto condizionato $ra = PC + 4; branch label } jal label $ra = PC + 4; salto incondizionato jump label jalr $t1 $ra = PC + 4; salto incondizionato jump ($t1) Lezione 4-6
8 Rappresentazione delle istruzioni Le istruzioni sono rappresentate tramite stringhe di bit memorizzate nei registri di memoria (come i dati numerici). Conseguenza: interi programmi (dati+istruzioni) possono essere memorizzati sullo stesso organo di memoria semplificando l architettura degli elaboratori. Sia dati che istruzioni sono quindi identificabili tramite indirizzi. Lezione 4-7
9 Rappresentazione delle istruzioni I dati con cui opera il MIPS sono organizzati in word (blocchi da 32 bit) Ogni registro ospita una word lw e sw accedono in memoria una word alla volta Per mantenere semplice (e quindi efficiente) l architettura del processore, anche le istruzioni sono di dimensione fissa e pari ad una word La word contenente un istruzione è strutturata come un insieme di campi (fields), ognuno dei quali riporta un informazione relativa all istruzione. Lezione 4-8
10 Formati delle istruzioni Esistono 3 possibili formati per le istruzioni: opcode rs rt rd shamt funct formato R opcode rs rt immediate formato I 6 26 opcode address formato J Lezione 4-9
11 Formati delle istruzioni Formato I : usato per le istruzioni con immediati, lw e sw (gli offset sono di fatto immediati) e i salti di tipo branch (beq e bne) Formato J : usato per i salti di tipo jump (j e jal) Formato R : usato per tutte le altre istruzioni Lezione 4-10
12 Formato R: significato dei campi opcode: specifica (parzialmente) il codice operativo presente nell istruzione Questo campo è pari a 0 per tutte le istruzioni con formato R funct: insieme con opcode, specifica esattamente il codice operativo presente nell istruzione Lezione 4-11
13 Formato R: significato dei campi rs (Source Register): in genere usato per specificare il registro contenente il primo operando rt (Target Register): in genere usato per specificare il registro contenente il secondo operando rd (Destination Register): in genere usato per specificare il registro che riceverà il risultato dell elaborazione Note: Ogni campo contiene 5 bit (indirizza uno dei 32 registri) Alcune istruzioni non usano determinati campi, es.: mult e div usano solo rs e rt (hanno come destinazione hi e lo) mfhi e mflo usano solo rd (l operando sorgente è specificato dall istruzione) Lezione 4-12
14 Formato R: significato dei campi shamt (SHift AMounT): contiene l ampiezza dello scorrimento eseguito da un istruzione di shift. Su una word di 32 bit il massimo scorrimento possibile è di 31 posizioni, perciò questo campo è costituito da 5 bit. Note: Questo campo è messo a 0 in tutte le istruzioni diverse da quelle di shift Lezione 4-13
15 Formato R: esempio Consideriamo l istruzione add $t0,$t1,$t2 Consultiamo il manuale MIPS I campi sono quindi così definiti: opcode: 0 funct: 32 rd: 8 ($t0) rs: 9 ($t1) rt: 10 ($t2) shamt: 0 Lezione 4-14
16 Formato R: esempio add $t0,$t1,$t opcode rs rt rd shamt funct opcode rs rt rd shamt funct Istruzione in linguaggio macchina Lezione 4-15
17 Formato I Il formato I è parzialmente consistente con il formato R (sui primi 16 bit), mentre gli altri 16 bit sono usati per ospitare un operando immediato opcode rs rt rd shamt funct formato R opcode rs rt immediate formato I Le istruzioni con questo formato usano al più due registri Lezione 4-16
18 Formato I: significato dei campi opcode: specifica (completamente) il codice operativo presente nell istruzione rs : specificare l unico (eventuale) registro operando rt: specifica il registro che riceverà il risultato dell elaborazione immediate: operando immediato che può essere Un operando immediato vero e proprio (con sign extension): addi $s5,$s6,-50 Un offset (con sign extension) per specificare un indirizzo: sw $t2,-64($20) Lezione 4-17
19 Formato I: esempio Consideriamo l istruzione addi $s5,$s6,-50 Consultiamo il manuale MIPS I campi sono quindi così definiti: opcode: 8 rs: 22 ($s6) rt: 21 ($s5) immediate: -50 Lezione 4-18
20 Formato I: esempio addi $s5,$s6, opcode rs rt immediate opcode rs rt immediate Istruzione in linguaggio macchina Lezione 4-19
21 Formato I: questioni Come fare se l operando immediato di un istruzione è più ampio di 16 bit? Es.: addi $t0,$t0,0xabcd1234 Soluzione software: si impiega l istruzione lui per cui l istruzione viene tradotta come: lui $at, 0xABCD ori $at, $at, 0x1234 add $t0, $t0, $at In questo modo, tutte le istruzioni hanno operandi immediati da 16 bit Lezione 4-20
22 Formato I: indirizzamento PC-relative Il formato I è usato anche dalle istruzioni di branch (beq, bne). Es.: Loop: beq $t1,$zero,end add $t0,$t0,$10 addi $t1,$t1,-1 j Loop End: slt $t5,$t6,$t7 Gli indirizzi delle istruzioni sono a 32 bit. Come rappresentare su 16 bit l indirizzo cui saltare? Lezione 4-21
23 Formato I: indirizzamento PC-relative In effetti, le istruzioni beq, bne vengono solitamente usate per realizzare costrutti di selezione (if, if-else) o cicli (while, for). In questi casi, l ampiezza del salto è limitata: l istruzione cui saltare è nelle vicinanze dell istruzione di branch. Soluzione: non è necessario specificare l intero indirizzo cui saltare, ma basta specificare lo spiazzamento rispetto all indirizzo corrente (presente nel Program Counter) indirizzamento PC-relative Lezione 4-22
24 Formato I: indirizzamento PC-relative Nel campo immediate viene quindi rappresentato l offset dell istruzione rispetto al contenuto attuale del PC. L offset sarà negativo se l istruzione precede l istruzione di branch, altrimenti sarà negativo. Achtung: al momento dell aggiornamento, il PC contiene l indirizzo dell istruzione successiva a quella di branch. Lezione 4-23
25 Formato I: indirizzamento PC-relative Da notare: gli indirizzi delle istruzioni sono allineati alla word (multipli di 4), per cui si considera come offset il numero di word da aggiungere al PC Ampiezza del salto: ± 2 15 words = ± 128 Kbyte Esecuzione del branch: Nel caso non si operi il salto: PC=PC+4 In caso di salto: PC=(PC+4)+(immediate*4) Lezione 4-24
26 Formato I: esempio Loop: beq $t1,$zero,end add $t0,$t0,$10 addi $t1,$t1,-1 j Loop End: slt $t5,$t6,$t7 Consultiamo il manuale MIPS opcode: 8 rs: 9 ($t1) rt: 0 ($zero) immediate: opcode rs rt immediate Lezione 4-25
27 Formato J Le istruzioni di jump (j e jal) non pongono vincoli sulla destinazione del salto. In questo caso, non è possibile specificare lo spiazzamento, ma è necessario specificare (in linea di principio, l intero indirizzo a 32 bit. Problema 1: lo spazio a disposizione per un istruzione è di 32 bit. Come inserire l indirizzo? Problema 2: è necessario mantenere una consistenza con i formati R e I (primi 6 bit impegnati per opcode). Lezione 4-26
28 Formato J opcode rs rt rd shamt funct formato R opcode rs rt immediate formato I 6 26 opcode address formato J Restano quindi solo 26 bit per specificare l indirizzo Lezione 4-27
29 Formato J Da notare: gli indirizzi delle istruzioni sono allineati alla word (ultimi 2 bit: 00) quindi bisogna in effetti specificare solo i 30 bit più significativi. Soluzione: si assumono i 4 bit più significativi dal PC. In questo modo si possono rappresentare indirizzi in una pagina di 2 26 word o di 256 Mbyte 6 26 opcode address 4 32 PC Lezione 4-28
Corso 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
Il 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
Il 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
Linguaggio 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
Le 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):
Riassunto. 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
Il 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
Istruzioni 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:
Architettura 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
Richiami 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
Richiami 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
Lezione 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
Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly
Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università
Linguaggio 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
CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti
Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!
Istruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
Il linguaggio assembly
Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...
Istruzioni 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
Lezione 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
Calcolatori Elettronici Prof. Fabio Roli. Linguaggio Assembly. Capitolo 5. Corso di Laurea di Ingegneria Elettronica
Calcolatori Elettronici Prof. Fabio Roli Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto
ISA (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
Linguaggio 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
L unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica [email protected] Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
Linguaggio 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
Linguaggio 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
L'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
Architettura 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
Processore. 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
Il 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
Il 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
Architettura 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 [email protected] Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità
ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:
Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo
Il 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
Processore. 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
Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
Laboratorio 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
Calcolatori 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:
Elementi 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
Architettura 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
Sommario 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
Progetto 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
