Dimensione: px
Iniziare la visualizzazioe della pagina:

Download ""

Transcript

1 Esercitazione 4 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 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?

14 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 PC SPIM) 0 se il processore è in kernel mode Interrupt mask esprime gli interrupt abilitati it interruptt mask user mode interrupt enable exception level

15 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

16 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

17 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)

18 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

19 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)

20 .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

21 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?

22 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:

23 Esempio Exceptions.s Come si finisce di trattare una interruzione?

24 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

25 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

26 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

27 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"

28 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

29 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

30 Esercizio 2 Si chiede di modificare il codice dell Exceptions.s in modo tale da stampare a console il parametro dell istruzione break

31 Bibliografia Appendice A Sezione A.7

32 Interruzioni in PCSPIM Input/Output

33 Interrupt Sono tipicamente causati da dispositivi hardware esterni, e collegati al processore attraverso delle linee di controllo di bus, come ad esempio le periferiche I/0 Quando le periferiche i sono pronte ad effettuare operazioni impostano una linea di interruzione collegata alla CPU Quando viene attivata una linea di interruzione, se il sistema ha abilitato le interruzioni i i della CPU, il normale flusso di esecuzione viene interrotto, e la CPU passa a gestire l interrupt

34 Interrupt abilitati All interno dell interrupt mask (del Status Register) ciascun bit corrisponde all abilitazioneabilitazione di una differente linea di interruzione collegata ad una o piu periferiche Se il bit è impostato a 1 il corrispondente interrupt è abilitato e la periferica può generare una eccezione Se il bit è impostato a 0 il corrispondente interrupt NON è abilitato e anche se la linea di interruzione è attivata dalla periferica, la CPU non genera l eccezione Quando viene sollevata una eccezione a seguito di un interruzione abilitata, nel registro Cause viene impostato a 1 il bit corrispondente all interruzione

35 Interrupt t abilitati ti Registro Cause Registro Status Interruzione interrupt pendenti codice eccezione it interruptt mask user mode interrupt enable exception level

36 Input/Output p PCSPIM simula un terminale/console (una periferica di I/O) che permette di visualizzare caratteri sul video e leggere caratteri dalla tastiera Il terminale è composto da due dispositivi distinti e indipendenti: Transmitter: visualizza caratteri ASCII sulla Console Receiver: accetta caratteri ASCII dalla tastiera Osservazione: essendo indipendenti, un tasto premuto sulla tastiera non viene automaticamente mostrato sulla console; un programma deve esplicitamente fare l eco di un carattere letto dal Receiver inviandolo al Transmitter

37 Input/Output p In PCSPIM i dispositivi Receiver e Transmitter sono controllati tramite 4 registri i cui contenuti appaiano a specifici indirizzi di memoria: Receiver Control 0xFFFF0000 Receiver Data 0xFFFF0004 Transmitter Control 0xFFFF0008 Transmitter Data 0xFFFF000c Per utilizzare i dispositivi di I/O memory-mapped è necessario abilitare l opzione relativa nel Settings di PCSPIM

38 Il Receiver: Receiver Control Receiver Control Ready: 1 carattere ricevuto dal Receiver 0 nessun carattere ricevuto dal Receiver 1 0 It Interrupt tenable: 1 Interrupt Receiver Abilitati 0 Interrupt Receiver Disabilitati Il bit di Ready è in sola lettura (le scritture vengono ignorate) Il bit di Ready passa da 0 a 1 quando un carattere è arrivato dalla tastiera, ma non è stato ancora prelevato dal Receiver Data

39 Il Receiver: Receiver Data Receiver Data 7 0 Codice ASCII del tasto premuto Il codice ASCII del tasto premuto è valido soltanto se p Ready = 1 (nel Receiver Control)

40 Il Transmitter: Transmitter Control o Ready: 1 Transmitter pronto ad inviare il prossimo carattere 0 Transmitter occupato a scrivere il precedente carattere Trasmitter Control 1 0 Interrupt Enable: 1 Interrupt Transmitter Abilitati 0 Interrupt Transmitter Disabilitati Il bit di Ready è in sola lettura (le scritture vengono ignorate) Ready = 1 se il Transmitter è pronto a scrivere un nuovo carattere, e 0 se è occupato a scrivere il carattere precedente

41 Il Transmitter: Transmitter Data Transmitter Data 7 0 Codice ASCII del carattere da stampare È possibile stampare un carattere solo scrivendolo nel Transmitter Data quando il bit di Ready del Transmitter Control è 1; Altrimenti, se il bit di Ready è zero il carattere non sarà visualizzato e andrà perso

42 Tastiera È collegata alla linea di interruzione che fa capo al bit 8 dei registri Status e Cause Per abilitare le interruzioni dalla tastiera si abilita il bit 8 del registro Status Per scoprire se l interruzione è stata provocata dalla tastiera si verifica il valore del bit 8 nel registro Cause

43 Esempio di uso Exceptions.s # Il programma scrive una successione infinita di 0 # Alla pressione di un tasto stampa una stringa di avviso # Interrupt.globl start.data car0:.asciiz 0.text start: # Abilita gli interrupt in generale mfc0 $t0, $12 # Leggi Status Register (12) ori $t0, $t0, 1 # Abilita in generale gli INT ori $t0, $t0, 0x100 # Abilita gli INT da Tastiera mtc0 $t0, $12 #S Scrivi iil nuovo Status t Register

44 Esempio di uso Exceptions.s s # Abilita gli interrupt dalla periferica I/O, dal Receiver lw $t1, 0xFFFF0000 # Leggi attuale Receiver Control ori $t1,,$ $t1, 2 # Abilita gli INT da Receiver sw $t1, 0xFFFF0000 # Scrivi il nuovo Receiver Control Receiver Control Ready: 1 carattere ricevuto dal Receiver 0 nessun carattere ricevuto dal Receiver 1 0 Interrupt Enable: 1 Interrupt Receiver Abilitati 0 Interrupt Receiver Disabilitati

45 Esempio di uso Exceptions.s s # Stampa in un ciclo infinito il carattere 0 ciclo: la $a0, car0 # stringa 0" li $v0, 4 # print string syscall li $t0, 0x00000fff perdi_tempo: addi $t0, $t0, -1 bnez $t0, perdi_tempo b ciclo # costante grande # decrementa # gira a vuoto # ciclo infinito

46 Esempio di uso Exceptions.s s # DISABILITA Interruzioni dal Receiver (tastiera) lw $a0, 0xffff0000 # Leggi attuale Receiver Control andi $a0, $a0, 0xfffd # Azzera bit 1 = INT enable sw $a0, 0xffff0000 # Scrivinuovo ReceiverControl # DISABILITA Interrupt dalla tastiera nella CPU mfc0 $a0, $12 # Leggi il CPU Status Reg. andi $a0, $a0, 0xfeff # Azzera il bit INT della tastiera mtc0 $a0, $12 # Scrivi il nuovo CPU Status Reg.

47 Esercizio Si chiede di utilizzare il Receiver Control and Data per leggere i caratteri inseriti dalla tastiera. Si chiede di stampare il carattere inserito utilizzando una syscall.

48 Esercizio i - Soluzione.data Fine:.ascii "q" # carattere da premere per finire Messaggio:.ascii "Il tasto premuto e':" # nota: questa stringa non e' 'terminata t con byte 0! Carattere:.asciiz "\n\n" # due a capo (il primo verra' sovrascritto).text main:

49 Esercizio - Soluzione li $t0, 0xFFFF0000 # Receiver Control li $t2, 0xFFFF0004 # Receiver Data lb $t4, Fine # carattere per finirei BusyWaitRead: # "busy wait" lw $t1, 0($t0) # ReceiverControlRegister Register andi $t1, $t1, 0x1 # tiene solo il bit 0 beqz $t1, BusyWaitRead # se e' 0, non e' ancora arrivato nulla # Ready = 1, e' arrivato un carattere lb $t3, 0($t2) # legge byte dal Receiver Data beq $t3, $t4, fine # se e' il tasto di fine, esci sb $t3, Carattere # e lo salva in memoria li $v0, 4 # Stampa il carattere con la syscall la $a0, Messaggio # il carattere e' incorporato! syscall # stampa con syscall b BusyWaitRead fine:

50 Esercizio Si chiede di modificare l esercizio precedente utilizzando gli interrupt per evitare di fare busy wait. # Da inserire nel Exceptions.s nella gestione degli interrupt IntKbd: andi $a0, $k0, 0x0100 # Receiver mask: 0x = beq $a0, $0, EndIntKbd # branch se e' interrupt ma non di Receiver # E' interrupt del Receiver, quindi... # Stampa le info sull'interrupt li $v0, 4 la $a0,, m5_ syscall # print " by Receiver "

51 Exceptions.s - Interrupt dalla tastiera # DISABILITA Interruzioni dal Receiver (tastiera) lw $a0, 0xFFFF0000 # Leggi attuale Receiver Control andi $a0, $a0, 0xfffd # Azzera bit 1 = INT enable sw $a0, 0xFFFF0000 # Scrivi nuovo Receiver Control # DISABILITA Interrupt Receiver nella CPU mfc0 $a0, $12 # Leggi il CPU Status Reg. andi $a0, $a0, 0xfeff # Azzera il bit INT del Receiver mtc0 $a0, $12 # Scrivi il nuovo CPU Status Reg. # Gestione del char digitato lw $a0, 0xFFFF0004 # prelevo il carattere dal Data Reg. sw $a0, BuffKbd # e lo metto nel buffer comune EndIntKbd:

52 Esempio uso Exceptions.s s # Abilita interrupt della CPU mfc0 $t0, $12 # Leggi il CPU Status Reg. ori $t0, $t0, 1 # abilita in generale gli INT ori $t0, $t0, 0x100 # abilita il bit INT del Receiver mtc0 $t0,,$ $12 # Scrivi il nuovo CPU Status Reg. # Abilitazione Interrupt dal Receiver (tastiera) lw $t1, 0xFFFF0000 # Leggi attuale Receiver Control Reg. ori $t1, $t1, 2 # bit 1 = INT enable sw $t1, 0xFFFF0000 # scrivinuovo ReceiverControlReg Reg.

53 Esercizi

54 Esercizio 1 Dato il seguente frammento di codice, in quale punto avviene un'eccezione dioverflow (considerando d che i numeri sono interi positivi in CA2)? li $t0, 0x7FFFFFFD li $t1, 1 add $t0, $t0, $t1 # riga 1 add $t0, $t0, $t1 # riga 2 add $t0, $t0, $t1 # riga 3 add $t0, $t0, $t1 # riga 4 lw $t2, 0($t0) # riga 5 b k 2 # i 6 add $t0 $t0 $t1 #riga1 1. Alla riga 1 2. Alla riga 2 3. Alla riga 3 4. Alla riga 4 5. Alla riga 5 break 2 # riga 6 6. Alla riga 6 7. Non avviene nessuna eccezione 8. Nessuna delle altre

55 Esercizio 2 Se il registro Cause assume il valore 0x , quale eccezione si è verificata? 1. Break Exception 2. Syscall Exception 3. AdES (scrittura non allineata in memoria) 4. AdEL (lettura non allineata da memoria) 5. Interrupt Exception 6. Overflow Exception 7. Nessuna delle altre

56 Esercizio 3 Dato il seguente frammento di codice di un Exceptions.s, s specificare quale riga riconosce correttamente un'eccezione di tipo Interrupt.... mfc0 $k0, $13 # Cause register srl $k0, $k0, 2 andi $k0, $k0, 0x1f Riga 1: bnez $k0, is_irq # riga 1 Riga 2: bgtz $k0, is_irq # riga 2 Riga 3: bltz $k0, is_irq # riga 3 Riga 4: beqz $k0, is_irq # riga 4... is_irq: # gestione Interrupt 1. Alla riga 1 2. Alla riga 2 3. Alla riga 3 4. Alla riga 4 5. Nessuna delle altre

57 Esercizio 4 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?.data dato:.word 33.text main: la $t0, dato lw $t1, 0($t0) li $t2, 1 add $t2, $t2, $t0 sw $t2, 0($t2) jr $ra

58

Sono tipicamente causati da dispositivi hardware. normale flusso di esecuzione viene interrotto, e la CPU passa a gestire l interrupt

Sono 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

Dettagli

Esercitazione 8 Eccezioni & Interruzioni in MIPS 32 Claudia Raibulet raibulet@disco.unimib.it Eccezioni Le eccezioni = variazioni delle condizioni normali di funzionamento della CPU Conseguenze delle eccezioni

Dettagli

Esercitazione 6 Datapath multiciclo Eccezioni in PCSPIM

Esercitazione 6 Datapath multiciclo Eccezioni in PCSPIM Esercitazione 6 Datapath multiciclo Eccezioni in PCSPIM Claudia Raibulet raibulet@disco.unimib.it Esercizio 1 Esercizio 1 Si chiede di aggiungere l istruzione jal 2500 al set delle istruzioni del datapath

Dettagli

Esercitazione 7 Interruzioni in PCSPIM Input/Output Chiamate di procedure

Esercitazione 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

Dettagli

7 May INTERRUPT ED ECCEZIONI I. Frosio

7 May INTERRUPT ED ECCEZIONI I. Frosio 1 INTERRUPT ED ECCEZIONI I. Frosio SOMMARIO Eccezioni ed interrupt Esempi Gestione SW delle eccezioni: i dettagli 2 CICLO DI ESECUZIONE DI UN ISTRUZIONE Fecth (prelievo istruzione dalla RAM) Decodifica

Dettagli

Modi di esecuzione user / kernel

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

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2004/2005 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale Università degli Studi di Cassino e del Lazio Meridionale di Calcolatori Elettronici Eccezioni ed Interruzioni Anno Accademico 2013/2014 Alessandra Scotto di Freca Si ringrazia il prof.francesco Tortorella

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 15: - Macro - Eccezioni e interruzioni

Dettagli

Istruzioni di trasferimento dati

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:

Dettagli

MIPS! !

MIPS! ! 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

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

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

Dettagli

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

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini 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

Dettagli

Il sistema delle interruzioni nel processore MC68000 (cenni)

Il sistema delle interruzioni nel processore MC68000 (cenni) Corso di Calcolatori Elettronici I A.A. 2011-2012 Il sistema delle interruzioni nel processore MC68000 (cenni) Lezione 33 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Struttura dei Sistemi di Calcolo

Struttura 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à

Dettagli

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

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à

Dettagli

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

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

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

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

Dettagli

Università degli Studi di Cassino

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

Dettagli

Le 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) 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

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Componenti e connessioni. Capitolo 3

Componenti 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

Dettagli

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il problema dello I/O e gli Interrupt Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il Calcolatore e le periferiche Periferica Decodifica Indirizzi Circuiti di Controllo Registri

Dettagli

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS

Esercitazione 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)

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

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

Dettagli

ISA Input / Output (I/O) Data register Controller

ISA Input / Output (I/O) Data register Controller ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),

Dettagli

5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio

5 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

Dettagli

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Architetture 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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

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

Dettagli

Architettura degli Elaboratori

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

Dettagli

Assembly (3): le procedure

Assembly (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

Dettagli

Progetto 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 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

Dettagli

Architettura di una CPU

Architettura 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

Dettagli

1. 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. 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

Dettagli

L'architettura del processore MIPS

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

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori 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

Dettagli

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

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 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

Dettagli

MAC1 Simulatore di Microprocessore

MAC1 Simulatore di Microprocessore MAC1 Simulatore di Microprocessore INTRODUZIONE Architettura del MAC-1 - Indirizzabilità della memoria a 16 bit ( 64 Kb) - Indirizzabilità diretta a 12 bit (limitata ai primi 4 Kb) - 16 registri a 16 bit

Dettagli

Linguaggi e moduli. Dott. Franco Liberati

Linguaggi 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

Dettagli

Elementi di informatica

Elementi 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

Dettagli

Il ciclo del processore semplificato BOOTSTRAP FETCH EXECUTE

Il 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

Dettagli

Macchina di von Neumann/Turing

Macchina di von Neumann/Turing Macchina di von Neumann/Turing Concetto di programma memorizzato Memoria principale per dati e istruzioni ALU opera su dati in formato binario Unità di controllo che interpreta le istruzioni in memoria

Dettagli

Sottosistemi ed Architetture Memorie

Sottosistemi 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

Dettagli

Architetture dei Calcolatori

Architetture 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

Dettagli

Lezione XII: La gestione delle eccezioni in MINIX

Lezione XII: La gestione delle eccezioni in MINIX 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del 24.02.2016 Cognome e nome: Matricola: 1. [7] Data la CPU N. 1, specificare il contenuto di tutte le linee (dati e controllo).

Dettagli

Istruzioni assembler Istruzione N Registri

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

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione 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

Dettagli

Linguaggio Assembly e 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

Dettagli

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

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

Dettagli

Indice lezione: repeat. until CPU halt. Richiami e notazioni:

Indice lezione: repeat. until CPU halt. Richiami e notazioni: Richiami e notazioni: 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 - Un sistema di calcolo

Dettagli

Richiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis

Richiami: 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.

Dettagli

Riprendiamo l esercizio calcolatrice

Riprendiamo 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:

Dettagli

Il simulatore SPIM SPIM

Il 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

Dettagli

Il linguaggio macchina

Il 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

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

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

Dettagli

Linguaggio Assembly e 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

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio 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

Dettagli

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

Periferiche 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

Dettagli

L unità di controllo di CPU a singolo ciclo

L 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,

Dettagli

Linguaggio Assembly e 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

Dettagli

Indice lezione: Pagina 2

Indice 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

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

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):

Dettagli

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

Struttura 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

Dettagli

System Calls, Register Spilling

System 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

Dettagli

Università degli Studi di Roma La Sapienza

Università 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

Dettagli

Il processore: unità di controllo

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

Dettagli

Il processore: unità di elaborazione

Il 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

Dettagli

Capitolo 2: Strutture dei sistemi di calcolo

Capitolo 2: Strutture dei sistemi di calcolo Capitolo 2: Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Struttura delle reti di calcolatori

Dettagli

Il linguaggio assembly

Il 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

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste

Dettagli

Architettura dei Calcolatori elettronici

Architettura dei Calcolatori elettronici Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore

Dettagli

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella figura seguente è riportata la rappresentazione semplificata ed essenziale di un computer. RESET Canali Di Ingresso Uscita Uscita Ingressi Fig. 1 Rappresentazione semplificata di un computer

Dettagli

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

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

Dettagli

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura 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

Dettagli

Assembly III SPIM: un ambiente di simulazione MIPS

Assembly 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

Dettagli

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide

Dettagli

Dal 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 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

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

Corso di Calcolatori Elettronici I. Interruzioni. Prof. Roberto Canonico

Corso di Calcolatori Elettronici I. Interruzioni. Prof. Roberto Canonico Corso di Calcolatori Elettronici I Interruzioni Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso di Laurea

Dettagli

Esercitazione 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 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

Dettagli

Architettura dei calcolatori

Architettura 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?

Dettagli

L ambiente di simulazione SPIM

L 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/20

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

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

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 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

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Il sistema di Input-Output Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2014-2015 Roberto Canonico Corso di Calcolatori Elettronici I A.A. 2014-2015

Dettagli

il Nucleo e la gestione dei processi

il Nucleo e la gestione dei processi il Nucleo e la gestione dei processi 1. Programmi, processi e risorse Differenza fra programmi e processi Il Programma rappresenta la descrizione del procedimento logico (algoritmo) che deve essere eseguito

Dettagli

Memoria cache, interrupt e DMA

Memoria cache, interrupt e DMA FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

Assembly. 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. 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

Dettagli