Richiami sull architettura del processore MIPS a 32 bit
|
|
|
- Sofia Mosca
- 9 anni fa
- Просмотров:
Транскрипт
1 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 (Reduced Instruction Set Computer) Eseguire soltanto istruzioni brevi in un ciclo base ridotto, con l obiettivo di migliorare le prestazioni fornite dalle architetture CICS Principi progettuali di semplicità e regolarità Rendere il caso più comune il più veloce possibile Architettura di tipo registro-registro (load/store) Gli operandi della ALU possono provenire solo dai registri di uso generale interni al processore e non possono provenire direttamente dalla memoria Operazioni di load: caricamento dei dati dalla memoria ai registri del processore Operazioni di store: memorizzazione dei dati contenuti nei registri del processore in memoria AAC - Valeria Cardellini, A.A. 27/8
2 Richiami riguardanti Insieme di istruzioni semplificato Esecuzione delle istruzioni Struttura del processore AAC - Valeria Cardellini, A.A. 27/8 2 Insieme di istruzioni semplificato del MIPS Consideriamo un implementazione semplificata del processore MIPS In particolare, no istruzioni di I/O Tre classi di istruzioni Istruzioni logico-aritmetiche Istruzioni di trasferimento da/verso la memoria (load/store) Istruzioni di salto (condizionato e incondizionato) per il controllo del flusso di programma AAC - Valeria Cardellini, A.A. 27/8 3
3 Esempi di istruzioni Istruzioni logico-aritmetiche add $s, $s, $s # $s = $s + $s addi $t, $t, # $t = $t + and $s, $s2, $s3 # $s = $s2 && $s3 Istruzioni di trasferimento da/verso la memoria lw $s, 8($s2) # $s = M[$s2+8] sw $s, 8($s2) # M[$s2+8] = $s AAC - Valeria Cardellini, A.A. 27/8 4 Esempi di istruzioni (2) Istruzioni di salto condizionato beq $s, $s, L # salta a L se ($s == $s) bne $s, $s, L # salta a L se ($s!= $s) Istruzioni di salto incondizionato j L # salta a L jr $s # salta all indirizzo in $s jal L # salta a L; salva l indirizzo della prossima istruzione in $ra AAC - Valeria Cardellini, A.A. 27/8 5
4 Registri del processore MIPS a 32 bit 32 registri di uso generale Per convenzione si usano nomi simbolici preceduti da $ $s, $s,, $s7 (detti registri saved) per contenere variabili $t, $t,, $t9 (detti registri temporanei) per contenere variabili temporanee I registri possono anche essere indicati dal loro numero preceduto da $: $,, $3 Dei 32 registri alcuni sono special-purpose, ossia dedicati per l esecuzione di alcune istruzioni Es.: $ra (= $3) è il registro di ritorno 32 registri in virgola mobile $f,, $f3 AAC - Valeria Cardellini, A.A. 27/8 6 Formato delle istruzioni MIPS Tutte le istruzioni MIPS hanno la stessa lunghezza (32 bit) Le istruzioni MIPS sono di 3 formati Formato R (registro) Istruzioni logico-aritmetiche Formato I (immediato) Istruzioni con operandi immediati Istruzioni di accesso in memoria (load/store) Istruzioni di salto condizionato Formato J (jump) Istruzioni di salto incondizionato I diversi formati sono riconosciuti tramite il valore dei 6 bit del primo campo, detto codice operativo (opcode), che indica come trattare i rimanenti 26 bit dell istruzione AAC - Valeria Cardellini, A.A. 27/8 7
5 Formato delle istruzioni MIPS (2) Formato R Formato I Formato J op rs rt rd shamt funct 6 bit 26 5 bit 2 5 bit 6 5 bit 5 bit 6 bit op rs rt indirizzo/immediato 6 bit 5 bit 5 bit 6 bit 26 op indirizzo di destinazione 6 bit 26 bit I campi delle istruzioni op (opcode): identifica il formato di istruzione rs, rt, rd: registri sorgente (rs e rt) e registro destinazione (rd) shamt (shift amount): scorrimento funct: indica la variante specifica dell operazione nel campo op indirizzo/immediato: offset dell indirizzo o valore immediato indirizzo di destinazione: una parte dell indirizzo assoluto di destinazione del salto incondizionato AAC - Valeria Cardellini, A.A. 27/8 8 Modalità di indirizzamento Le modalità di indirizzamento indicano i diversi modi con i quali fare riferimento agli operandi nelle istruzioni MIPS ha solo 5 modalità di indirizzamento Tramite registro Immediato Tramite base o spiazzamento Relativo al Program Counter Pseudo-diretto Una singola istruzione può usare più modalità di indirizzamento (es.: addi $t, $t, 4) AAC - Valeria Cardellini, A.A. 27/8 9
6 Modalità di indirizzamento (2) Indirizzamento tramite registro L operando è il contenuto di un registro del processore Es: add $s, $s, $s2 (formato R) Indirizzamento immediato L operando è una costante, il cui valore è specificato nell istruzione Es: addi $s, $s, (formato I) Indirizzamento con base o spiazzamento 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) specificato nell istruzione Es: lw $t, 4($s) (formato I) AAC - Valeria Cardellini, A.A. 27/8 Modalità di indirizzamento (3) Indirizzamento relativo al Program Counter L operando è in una locazione di memoria, il cui indirizzo si ottiene sommando il contenuto del Program Counter (PC) ad un valore costante (offset o spiazzamento) specificato nell istruzione Es: beq $s, $s, L (formato I) Indirizzamento pseudo-diretto Una parte dell indirizzo è presente come valore costante (offset) nell istruzione, ma deve essere completato L indirizzo di destinazione del salto si ottiene traslando a sinistra di 2 bit i 26 bit di offset specificati nell istruzione e concatenando i 28 bit così ottenuti con i 4 bit più significativi del PC Es: j L2 (formato J) AAC - Valeria Cardellini, A.A. 27/8
7 Il processore Distinguiamo unità di elaborazione e unità di controllo Unità di elaborazione dati Hardware per compiere le operazioni necessarie all esecuzione delle istruzioni Unità di controllo Riceve dei segnali di ingresso e genera in uscita segnali per la lettura/scrittura degli elementi di memoria, segnali di selezione per i multiplexer, segnali per il controllo della ALU Implementazione dell unità di elaborazione a ciclo singolo Tutte le istruzioni vengono eseguite in un solo ciclo di clock, la cui lunghezza è determinata dal percorso critico E l implementazione usata per il pipelining Implementazione dell unità di elaborazione a ciclo multiplo L esecuzione di un istruzione richiede più cicli di clock AAC - Valeria Cardellini, A.A. 27/8 2 I cinque passi delle istruzioni I cinque passi di esecuzione delle istruzioni Prelievo dell istruzione (Instruction fetch: IF) Decodifica dell istruzione/caricamento dei registri (Instruction decode: ID) Esecuzione/calcolo dell indirizzo di memoria (Execute: EX) Accesso alla memoria (Memory access: MEM) Scrittura del risultato (Write-back: WB) IF Instruction Fetch ID Instruction Decode EX EXecute MEM MEMory access WB Write-Back AAC - Valeria Cardellini, A.A. 27/8 3
8 Esecuzione delle istruzioni logico-aritmetiche Esempio: op $x, $y, $z Un istruzione logico-aritmetica viene eseguita in 4 passi nell implementazione a ciclo singolo. Prelievo dell istruzione dalla memoria istruzioni e incremento del PC 2. Lettura dei due registri sorgente ($y e $z) dal banco dei registri 3. Esecuzione dell operazione (op) da parte dell ALU sui valori letti dal banco dei registri 4. Scrittura del risultato dell ALU nel registro destinazione ($x) del banco dei registri AAC - Valeria Cardellini, A.A. 27/8 4 Esecuzione delle istruzioni di load Esempio: lw $x, offset($y) Un istruzione di load viene eseguita in 5 passi nell implementazione a ciclo singolo. Prelievo dell istruzione dalla memoria istruzioni e incremento del PC 2. Lettura del registro base ($y) dal banco dei registri 3. Esecuzione dell operazione (somma) da parte dell ALU per calcolare l indirizzo di memoria ($y + offset) 4. Lettura del dato dalla memoria dati (M[$y + offset]) utilizzando come indirizzo il risultato della ALU 5. Scrittura del dato proveniente dalla memoria nel registro destinazione ($x) del banco dei registri AAC - Valeria Cardellini, A.A. 27/8 5
9 Esecuzione delle istruzioni di store Esempio: sw $x, offset($y) Un istruzione di store viene eseguita in 4 passi nell implementazione a ciclo singolo. Prelievo dell istruzione dalla memoria istruzioni e incremento del PC 2. Lettura del registro base ($y) dal banco dei registri 3. Esecuzione dell operazione (somma) da parte dell ALU per calcolare l indirizzo di memoria ($y + offset) 4. Scrittura del dato proveniente dal banco dei registri ($x) nella memoria dati (M[$y + offset]) utilizzando come indirizzo il risultato della ALU AAC - Valeria Cardellini, A.A. 27/8 6 Esecuzione delle istruzioni di salto condizionato Esempio: beq $x, $y, offset Un istruzione di salto condizionato viene eseguita in 4 passi nell implementazione a ciclo singolo. Prelievo dell istruzione dalla memoria istruzioni e incremento del PC 2. Lettura dei due registri sorgente ($x e $y) dal banco dei registri 3. Esecuzione dell operazione (sottrazione) da parte dell ALU per confrontare i valori letti dal banco dei registri ($x - $y) e calcolo dell indirizzo di destinazione del salto 4. L uscita Zero della ALU viene utilizzata per decidere quale valore deve essere memorizzato nel PC: (PC+4) oppure (PC+4+offset) AAC - Valeria Cardellini, A.A. 27/8 7
10 Esecuzione delle istruzioni Per ogni tipo di istruzione, i primi due passi da eseguire sono uguali Prelievo dell istruzione dalla memoria istruzioni e incremento del PC Lettura di uno o due registri dal banco dei registri, selezionando i registri a cui accedere tramite i campi dell istruzione Le azioni successive dipendono dal tipo di istruzione (codice operativo), sebbene tutte le istruzioni utilizzino l ALU dopo il secondo passo Le istruzioni logico-aritmetiche per eseguire l operazione Le istruzioni di load e store per calcolare l indirizzo di memoria Le istruzioni di salto condizionato per effettuare il confronto AAC - Valeria Cardellini, A.A. 27/8 8 Esecuzione delle istruzioni (2) Dopo aver utilizzato l ALU, le azioni richieste per completare le varie istruzioni si differenziano ulteriormente Le istruzioni logico-aritmetiche devono scrivere il risultato della ALU nel registro destinazione Le istruzioni di load richiedono l accesso in lettura alla memoria dati ed eseguono il caricamento del dato letto nel registro di destinazione Le istruzioni di store richiedono l accesso in scrittura alla memoria dati ed eseguono la memorizzazione del dato proveniente dal registro sorgente Le istruzioni di salto condizionato possono scrivere il valore del PC in base al risultato del confronto AAC - Valeria Cardellini, A.A. 27/8 9
11 Struttura di base del processore MIPS Data Register # PC Address Instruction Instruction Registers Register # ALU memory Register # Address Data memory Data Per eseguire tutte le istruzioni in un solo ciclo di clock Ogni risorsa/unità funzionale può essere utilizzata una sola volta per istruzione Occorre duplicare le risorse/unità funzionali di cui si ha bisogno più di una volta nello stesso ciclo di clock Memoria dati distinta dalla memoria istruzioni ALU e sommatori Alcune risorse/unità funzionali possono essere condivise da differenti flussi di esecuzione Tramite l introduzione di multiplexer AAC - Valeria Cardellini, A.A. 27/8 2 L unità di elaborazione a ciclo singolo con i segnali di controllo AAC - Valeria Cardellini, A.A. 27/8 2
12 Il significato dei segnali di controllo Segnale RegDst RegWrite ALUSrc PCSrc MemRead MemWrite MemtoReg Effetto quando vale Registro destinazione = rt Nessuno Il secondo operando di ALU viene da Read data 2 Scrittura di PC con PC+4 Nessuno Nessuno L ingresso Write data (banco registri) viene dalla ALU Effetto quando vale Registro destinazione = rd Nel registro indicato sull ingresso Write register viene scritto il valore Write data Il secondo operando di ALU viene dall estensione di segno Scrittura di PC con l output del sommatore per il branch Lettura della locazione di memoria indicata da Address Scrittura della locazione di memoria indicata da Address L ingresso Write data (banco registri) viene dalla memoria dati AAC - Valeria Cardellini, A.A. 27/8 22 L unità di elaborazione a ciclo singolo con l unità di controllo AAC - Valeria Cardellini, A.A. 27/8 23
13 Il valore dei segnali di controllo Istruzione RegDst ALUSrc Memto Reg Reg Write Mem Read Mem Write Branch ALUOp tipo-r lw sw X X beq X X AAC - Valeria Cardellini, A.A. 27/8 24 L unità di elaborazione a ciclo multiplo L esecuzione di un istruzione è distribuita su più cicli Si utilizza un ciclo di clock di durata inferiore rispetto a quello dell implementazione a ciclo singolo Implementazione dell unità di elaborazione a ciclo multiplo Più complessa del ciclo singolo Ogni fase di esecuzione di un istruzione richiede un ciclo di clock Un unità funzionale può essere usata più di una volta per istruzione in cicli differenti (condivisione di unità funzionali ed eliminazione di ridondanze hardware) Singola unità di memoria per istruzioni e dati anziché due memorie distinte Una sola ALU anziché una ALU e due sommatori Occorre introdurre dei registri interni addizionali per memorizzare i valori da usare nei cicli di clock successivi AAC - Valeria Cardellini, A.A. 27/8 25
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
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
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!
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
Architettura 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
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,
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
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à
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
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
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):
CPU 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 /9 Sommario! I problemi
Il Processore: l Unità di Controllo Principale Barbara Masucci
Architettura degli Elaboratori Il Processore: l Unità di Controllo Principale Barbara Masucci Punto della situazione Ø Abbiamo visto come costruire l Unità di Controllo della ALU per il processore MIPS
Implementazione 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
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
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
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:
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
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
Università 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
Introduzione all'architettura dei Calcolatori. Maurizio Palesi
Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle
Il pipelining: tecniche di base
Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di
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
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
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 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
La Microarchitettura. Davide Bertozzi
La Microarchitettura Davide Bertozzi Piano di Studio Dove Siamo Architettura del Set di Istruzioni (come «si parla» con un microprocessore, ovvero l interfaccia HW/SW) Microarchitettura di un processore:
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
Il pipelining: tecniche di base
Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione
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
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
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
