|
|
- Aurelio Antonini
- 7 anni fa
- Visualizzazioni
Transcript
1 Esercitazione 8 Eccezioni & Interruzioni in MIPS 32 Claudia Raibulet raibulet@disco.unimib.it
2 Eccezioni Le eccezioni = variazioni delle condizioni normali di funzionamento della CPU Conseguenze delle eccezioni => cambiamento del normale flusso di esecuzione di un programma La CPU solleva una eccezione e quindi cambia il flusso di esecuzione a seguito di: errore del programma (non voluto dal programmatore) richiesta del programma (voluta dal programmatore) evento esterno (indipendente dal programma in esecuzione) In tutti i casi, il flusso di esecuzione passa ad una locazione prefissata, dove si trova il gestore delle eccezioni (exception handler)
3 Tre categorie: Tipi di eccezioni sincrone involontarie (impreviste, causate da elaborazioni con valori non-ammissibili o indirizzi di memoria non accessibili o fuori range) o accessi scorretti a locazioni di memoria (non allineati o fuori dallo spazio del processo) o overflow aritmetico sincrone volontarie (previste e richieste dal programmatore) o syscall, break asincrone (indipendenti dall esecuzione del programma in corso) o provocate dalle periferiche di I/O
4 Gestione delle eccezioni in MIPS Il processore risponde ad una eccezione salvando l indirizzo dell istruzione che ha causato l eccezione, ed eseguendo una procedura detta gestore delle eccezioni (in PCSPIM Exceptions.s) collocata nello spazio kernel text a partire dalla locazione 0x Il compito dell Exceptions.s p è di: salvare lo stato corrente dei registri (Salvataggio) svolgere le operazioni necessarie ad affrontare e risolvere l eccezione (Trattamento) ripristinare lo stato della macchina al momento dell eccezione (Ripristino)
5 Tipi di registri Per determinare la causa dell eccezione l Exception.s osserva i registri del co-processore 0 relativi alla gestione delle eccezioni: Registro Numero Significato BadVAddr 8 Indirizzo di memoria il cui riferimento ha provocato l eccezione Status 12 Maschera delle interruzioni e bit di abilitazione Cause 13 Tipo di eccezione e interrupt in attesa di servizio EPC 14 Indirizzo dell istruzione che ha causato l eccezione Si usano le istruzioni mtc0 move to c0 mfc0 move from c0 per accedere ai valori di tali registri
6 Schema del processore MIPS Memory CPU Coprocessor 1 (FPU) Registers $0 Registers $0 $31 $31 Arithmetic unit Multiply divide Lo Hi Arithmetic unit Coprocessor 0 (traps and memory) Registers BadVAddr Status Cause EPC
7 Registro Cause 8 bit per interrupt pendenti 5 bit per il codice dell eccezione Branch dl delay interrupt pendenti codice eccezione
8 Tabella delle eccezioni Numero Nome Descrizione 0 INT Interrupt esterno (periferica) 4 AdEL Load da indirizzo di memoria non allineato 5 AdES Store ad indirizzo di memoria non allineato 6 IBE Bus errore durante l istruzione fetch 7 DBE Bus error durante load o store 8 Sys Invocazione syscall 9 Bp Eccezione causata da breakpoint 10 RI Eccezione causata dall istruzione riservata 11 CpU Co-processore non utilizzabile 12 Ov Overflow aritmetico 15 FPE Eccezione causata da floating gpoint
9 Esempio overflow aritmetico.text main: # Genera un overflow aritmetico addizionando "con segno" due numeri # positivi la cui somma NON e' rappresentabile in complemento a 2 li $t0, 0x7fffffff # massimo positivo in complemento a 2 li $t1, 2 # aggiungo abbastanza per superare il massimo positivo add $a0, $t0, $t1 # cosa succede dopo aver eseguito questa istruzione? li $v0, 1 # stampa il risultato dell'operazione aritmetica syscall jr $ra #fine
10 Esempio Overflow Aritmetico Il contenuto dei registri quanto si solleva l eccezione: PC = EPC = Cause = BadVAddr= Status = 3000ff12 HI = LO = Il messaggio scritto nel Messagge Window: [0x c] 0x ori $9, $0, 2 ; 13: li $t1, 2 # aggiungo abbastanza per superare il massimo positivo [0x ] ] 0x add $4, $8, $9 ; 14: add $a0, $t0, $t1 # cosa succede dopo aver eseguito questa istruzione? Exception occurred at PC=0x Arithmetic overflow
11 Osservazioni Si noti che quando avviene l eccezione: appare un messaggio sulla Messagge Window Exception occured... ; tale stampa è effetuata internamente dal simulatore e NON dal Exceptions.s che non ha ancora iniziato l esecuzione PC assume il valore 0x , l indirizzo i iniziale i i dell Exceptions.s EPC assume il valore 0x , l indirizzo della istruzione che ha provocato l eccezione Il registro Cause assume il valore 0x
12 EPC Registri EPC e BadVAddr Dopo che è avvenuta una eccezione il registro EPC contiene l indirizzo dell istruzione in corso di esecuzione (PC) quando è avvenuta l eccezione BadVAddr Se avviene una eccezione a seguito di un accesso illegale alla memoria, questo registro contiene l indirizzo della locazione alla quale il programma ha tentato di accedere
13
14 Esercizio 1 Si consideri il seguente esercizio: dato: main:.data.word 42.text la $t0, dato lw $t1, 0($t0) lw $t2, 3($t0) jr $ra # indirizzo in data segment # lettura da locazione # lettura da locazione nop # fine Considerando che il programma è memorizzato partendo dall indirizzo 0x e i dati dall indirizzo 0x si chiede: Quale istruzione genera l eccezione? Cosa indica il registro Cause? Quali valori assumono i registri EPC e BadVAddr?
15 Registro Status Interrupt enable: 1 interruzioni sono abilitate 0 interruzioni non sono abilitate Exception level: 1 settato a 1 dopo che una eccezione è sollevata 0 il valore di default User mode: 1 se il processore è in user mode (come sempre in SPIM) 0 se il processore è in kernel mode Interrupt mask esprime gli interrupt abilitati it interruptt mask user mode interrupt enable exception level
16 Break Interrompe con una eccezione l esecuzione di un programma e avvia l esecuzione dell Exceptions.ss Utilizzata principalmente dai debugger che assistono it il programmatore nella correzione dei di programmi permettendone l arresto in punti arbitrari, l ispezione ione delle variabili e della memoria, la eventuale modifica del codice, e la prosecuzione dell esecuzione break code # causa l eccezione code (1 riservata al debugger) 0 0xD 6 bit code su 20 bit 6 bit
17 Esempio - Break main:.text break 5 # genera break (parametro 5) jr $ra # fine Il contenuto dei registri quanto si solleva l eccezione: PC = EPC = Cause = BadVAddr= Status = 3000ff12 HI = LO = Il messaggio scritto nel Messagge Window: [0x ] 0x d break $5 ; 8: break 5 # genera break (parametro 5) Exception occurred at PC=0x
18 Osservazioni - Break La descrizione di break fa erroneamente intendere che genera una eccezione arbitraria, specificata dal parametro In realtà, sia su un vero sistema che sul simulatore, l eccezione generata è sempre la stessa: con Exception Code 9 La codifica dell istruzione non è conforme alla specifica: considera solo i primi 5 bit del parametro e li colloca a partire dal bit 11 su 5 bit (quindi 16-11) 11)
19 Exceptions.s Contiene il codice che gestisce le eccezioni Si trova alla locazione fissa 0x in area ktext riservata al sistema operativo Dal momento che viene eseguito dopo l interruzione di un programma utente in un punto qualsiasi, è tenuto a preservare TUTTI i registri macchina Ad esso sono riservati due registri $k0, $k1 che può utilizzare senza doverne preservare i contenuti Al termine del trattamento dell eccezione Exceptions.s ritorna al programma interrotto o termina il programma
20 Exceptions.s s MIPS e quindi anche PCSPIM rileva e tratta le eccezioni i PRIMA dell esecuzione della istruzione i corrente: se l eccezione corrente era una interruzione, l esecuzione del programma deve riprendere dall istruzione corrente (salvata nel registro EPC) se si tratta di un altro tipo di eccezione ed è possibile proseguire (se non è avvenuto un errore irreparabile o si tratta di un break), l esecuzione deve riprendere dall istruzione successiva (EPC+4)
21 .kdata save0: word 0 save1: word 0 Esempio Exceptions.s.ktext 0x move $k1, $at sw $v0, save0 sw $a0, save1 # kernel text segment # used in pseudo-instructions #i in the handler code Salvataggio: salva lo stato corrente di dei registri i
22 Esempio Exceptions.s mfc0 $k0, $13 # moves coprocessor 0 s # register 13 (Cause register) # into CPU register $k0 Come si puo sapere se si tratta di una eccezione o di una interruzione?
23 Esempio Exceptions.s # Riconosce e distingue tra le eccezioni e gli interrupt andi $a0, $k0, 0x007c # Excp mask: 0x007c 007 = bgtz $a0, Excp_ret # salta se e' una eccezione (XXXX XXXX X000 00XX) # Stampa Interrupt rilevato li $v0, 4 la $a0, m3_ syscall # print " Interrupt # Gestione dell'interrupt da XXXX non trattata in questo esempio # Gestione dell Interrupt da XXXX non trattata in questo esempio IntXXXX:... EndIntXXXX:
24 Esempio Exceptions.s Come si finisce di trattare una interruzione?
25 Esempio Exceptions.s # Rientro dalla gestione degli interrupt # Si resetta il Cause register mtc0 $0, $13 # Ripristino registri salvati lw $v0, save0 lw $a0, save1 move $at, $k1 # Si preleva l'indirizzo di ritorno # e salta all'indirizzo di ritorno eret # Return from exception handler
26 Esempio Exceptions.s # Gestione delle eccezioni Excp_ret: # Stampa le info sulla eccezione li $v0, 4 la $a0, m1_ syscall # print " Exception " li $v0, 1 srl $a0, $k0, 2 # shift right logical - estrae il Codice eccezione andi $a0, $a0, 0x1f syscall # print Codice eccezione li $v0, 4 lw $a0, excp($k0) syscall srl $k0, $k0, 2 # print stringa def eccezione # estrae il Codice eccezione perche # era in $a0 che e stato sovracritto
27 Esempio Exceptions.s Excp_Break: bne $k0, 0x9, End_Excp_Break # non è break li $v0, 4 # syscall 4 (print_str) la $a0, _brk_msg # eccezione break! syscall j End_Excp_Hnd End_Excp_Break: # Fine gestione break
28 Esempio Exceptions.s # Gestione dell'eccezione "Bad address" Excp_Bad_addr: # Salta se non e' l'eccezione Load from Bad address" bne $k0, 0x4, End_Excp_Bad_addr mfc0 $a0, $8 # carica BadVAddr andi $a0, $a0, 0x3 # E allineato alla word? # Uno dei 2 bit è a 1? beq $a0, $0, End_Excp_Hnd li $v0, 10 # Exit nel caso di "Bad address" syscall #10 codice di EXIT j End_Excp_Hnd Excp End_Excp_Bad_addr: Excp addr: # Fine gestione "Bad address"
29 Esempio Exceptions.s End_Excp_Hnd: mtc0 $0, $13 lw $v0, save0 lw $a0, save1 move $at, $k1 # Epilogo del gestore delle Eccezioni # Si resetta il Cause register # Si ripristina i registri salvati # Si preleva l'indirizzo di ritorno e salta all'indirizzo di ritorno mfc0 $k0, $14 # carica EPC in $k0 addi $k0, $k0, 4 # Ritorna alla istruzione successiva mtc0 $k0, $14 eret # Return from exception handler
30 Istruzioni di accesso ai registri del co-processore 0 mfc0 move from coprocessor 0 mtc0 move to coprocessor 0 eret return from Exceptions.s s Osservazione eret ritorna alla istruzione specificata in EPC Eccezioni: si deve incrementare e e EPC di 4 e salvare il nuovo valore in EPC nel coprocessore Interruzioni: non si deve eseguire nessuna modifica
31 Esercizio 2 Si chiede di modificare il codice dell Exceptions.s in modo tale da stampare a console il parametro dell istruzione break
32 Bibliografia Appendice A Sezione A.7
Modi di esecuzione user / kernel
Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione
DettagliEsercitazione 7 Interruzioni in PCSPIM Input/Output Chiamate di procedure
Esercitazione 7 Interruzioni in PCSPIM Input/Output Chiamate di procedure Claudia Raibulet raibulet@disco.unimib.it Interruzioni in PCSPIM Input/Output Interrupt Sono tipicamente causati da dispositivi
DettagliSono tipicamente causati da dispositivi hardware. normale flusso di esecuzione viene interrotto, e la CPU passa a gestire l interrupt
Interruzioni in MIPS 32 Input/Output Interrupt Sono tipicamente causati da dispositivi hardware esterni, e collegati al processore attraverso delle linee di controllo di bus, come ad esempio le periferiche
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
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
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
DettagliArchitetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica
SPIM Architetture dei Calcolatori (Lettere A-I) SPIM Ing.. Francesco Lo Presti Simulatore che esegue programmi assembler per architetture RISC MIPS R2000/R3000 Legge programmi in assembler MIPS e li traduce
DettagliProgetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando
Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando Arch. Elab. - S. Orlando 1 Eccezioni e interruzioni Il progetto del controllo del processore si complica
DettagliCOMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME
MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni
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
DettagliEsercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS
Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS Claudia Raibulet raibulet@disco.unimib.it Codifica e Rappresentazione dell Informazione Informazioni Generali (I)
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
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
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
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliIl ciclo del processore semplificato BOOTSTRAP FETCH EXECUTE
Roadmap Inquadramento del problema La fase di interrupt nel ciclo del processore Le cause di interruzione Le fasi di uninterruzione Ripristino del programma Latenza Identificazione di dispositivi: soluzioni
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
DettagliSystem Calls, Register Spilling
System Calls, Register Spilling Ultimo aggiornamento: 8/4/2016 UNIVERSITÀ DEGLI STUDI DI MILANO nicola.basilico@unimi.it http://basilico.di.unimi.it/ Esercizio 3.1 Eseguire il seguente codice assembly
DettagliStruttura dei Sistemi di Calcolo
Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2009-2010 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella sua integrità
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
DettagliIl simulatore SPIM SPIM
Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html
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):
DettagliLezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario
Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliArchitettura dei calcolatori
Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Architettura dei calcolatori 2 Cos'è un computer?
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
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10)
ARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10) Chip con 40 piedini e 29000 transistori Progettato a metà degli anni 70, periodo in cui la densità di integrazione era relativamente bassa ( solo
DettagliARCHITETTURA DI UN SISTEMA DI ELABORAZIONE
ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente
DettagliEsercitazione su Instruction Level Parallelism Salvatore Orlando
Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a
DettagliArchitettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?
Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Cos'è un computer? 3 Cos'è un computer? E' un dispositivo in grado di Elaborare
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
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
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
DettagliPeriferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus
Periferiche Interface Interface Interface Interface CPU SREG CREG DREG Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data
DettagliRiprendiamo l esercizio calcolatrice
Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:
DettagliLezione4: MIPS e Istruzioni (1 Parte)
Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA
DettagliAssemblatori, linker ed il simulatore SPIM. Università di Bergamo - corso di Calcolatori Elettronici
Assemblatori, linker ed il simulatore SPIM 1 Progetto di un sistema basato su microprocessore PROBLEMA REALE SVILUPPO HARDWARE SVILUPPO SOFTWARE INTEGRAZIONE DEL SISTEMA 2 Sviluppo hardware SPECIFICHE
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
Dettaglimemoria virtuale protezione
Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.
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 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
DettagliAssembly III SPIM: un ambiente di simulazione MIPS
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly III SPIM: un ambiente di simulazione MIPS Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
DettagliINFORMATICA GENERALE
INFORMATICA GENERALE a.a. 2006/2007 COGNOMI A-L Silvano Antonelli -Ricevimento : durante il corso: Martedì ore 15.30 presso Dipartimento di Informatica, Largo Pontecorvo 2 Stanza 394 negli altri periodi:
DettagliEsercitazione su Instruction Level Parallelism
Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a
Dettagli[http://www.di.univaq.it/muccini/labarch]
[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 3: Introduzione a SPIM
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
DettagliAssembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive
Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly
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
DettagliLaboratorio di Architetture degli Elaboratori II (A.A )
Laboratorio di Architetture degli Elaboratori II (A.A. 2015-2016) Matteo Re, matteo.re@unimi.it [cognomi G-Z] (Nicola Basilico, [cognomi A-D]) Ufficio S210, Dipartimento di Informatica, Via Comelico 39/41-20135
DettagliMacchine Astratte. Luca Abeni. February 22, 2017
Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria
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.
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
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
DettagliMicroelettronica Corso introduttivo di progettazione di sistemi embedded
Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti
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:
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
DettagliIl calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica
Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione
DettagliInformatica Generale 07 - Sistemi Operativi:Gestione dei processi
Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei
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
DettagliRappresentazione dei dati
Rappresentazione dei dati Rappresentazione in segno e modulo Rappresentazione in complementi alla base Rappresentazione per eccessi F Tortorella Corso di Calcolatori Elettronici Rappresentazione dei numeri
DettagliARCHITETTURA DI UN CALCOLATORE ELETTRONICO
ARCHITETTURA DI UN CALCOLATORE ELETTRONICO Per architettura di un calcolatore elettronico si intende l'insieme delle principali unità funzionali di un calcolatore ed il modo in cui queste interagiscono.
DettagliEsempio: aggiungere j
Esempio: add Esempio: load Esempio: beq Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione
DettagliMIPS Instruction Set 2
Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general
DettagliIndice lezione: Pagina 2
Abbiamo visto: sistema monolitico (I + E + O) dividiamo I e O da E, e affidiamo loro una CPU replichiamo gli I e gli O per parallelizzare singolarmente gli I e O Pagina 1 Indice lezione: Parallelizzazione
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:
DettagliCapitolo 5 Elementi architetturali di base
Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo
DettagliLaboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Introduzione a MARS: interfaccia, struttura di un programma, gestione dell input L assemblatore e simulatore MARS Permette di eseguire
DettagliSOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004
SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (9 punti) Si
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28
DettagliI Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliSottosistemi ed Architetture Memorie
Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di
DettagliArchitettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf
Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici
DettagliAssembly MIPS: gestione degli array strutture di controllo. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Assembly MIPS: gestione degli array strutture di controllo A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1 Istruzione MIPS: lw (load
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: motivi didattici: l architettura dei processori Intel
DettagliIntroduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
DettagliAssembler MIPS R2000/3000
TITLE Assembler MIPS R2000/3000 Alberto Montresor Programma delle lezioni! Introduzione ai concetti di assembler, compilatore, linker, programma eseguibile! Introduzione all assembly Sintassi del linguaggio
DettagliSistemi di numerazione
SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica
DettagliArchitettura degli Elaboratori II - Laboratorio
Pietro Codara http://homes.di.unimi.it/ dantona/arch Prima lezione 24 Ottobre 2012 Informazioni pratiche Lezioni frontali: Mer 24 Ottobre 2012, 18.30-21.30, Aula 200 (via Celoria) Ven 26 Ottobre 2012,
DettagliArchitettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H
Architettura dei calcolatori e sistemi operativi Sottoprogrammi e MIPS Espressioni algebriche Capitolo 2 P&H Sottoprogrammi Modello di chiamata Area di attivazione Calcolare un espressione algebrica 2
DettagliUniversità degli Studi di Cassino
Corso di MIPS: modello di programmazione Anno Accademico 2007/2008 Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva eseguibili dalla CPU
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
DettagliLezione 15. L elaboratore Elettronico
Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente
DettagliAssembly. Motivazioni. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
DettagliArchitettura di un calcolatore
Architettura di un calcolatore Corso di Informatica A Vito Perrone Indice La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L algoritmo Il programma Fasi di esecuzione di un istruzione 2 1
DettagliSistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
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
DettagliSommario. Premessa Architettura ARM Programmer's model (ARM7) Sistemi di sviluppo. S. Salvatori - Microelettronica aprile 2016 (13 di 45)
Sommario Premessa Architettura ARM Programmer's model (ARM7) Sistemi di sviluppo S. Salvatori - Microelettronica aprile 2016 (13 di 45) Architettura di ARM Elevato numero di di registi 31 31 registri interni
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: motivi didattici: l architettura dei processori Intel
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
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
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
DettagliUniversità degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori
Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori Esercitazione di Reti Logiche Realizzazione completa di un'architettura di processore attraverso strumenti
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
DettagliLezione 2 Assembly MIPS (2)
Lezione 2 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliArchitettura 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.
Dettagli