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

Documenti analoghi
7 May INTERRUPT ED ECCEZIONI I. Frosio

Università degli Studi di Cassino

Modi di esecuzione user / kernel


Esercitazione 6 Datapath multiciclo Eccezioni in PCSPIM

Università degli Studi di Cassino e del Lazio Meridionale

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

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


[

Lecture 2: Prime Istruzioni

Lecture 1: Course Overview -Introduzione al corso - Course Schedule - Administration

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Esercitazione 7 Interruzioni in PCSPIM Input/Output Chiamate di procedure

Macchine Astratte. Luca Abeni. February 22, 2017

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Spazio di indirizzamento virtuale

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

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

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

Architettura degli Elaboratori

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Le costanti Le modalità di indirizzamento L assembly del MIPS

Il simulatore SPIM SPIM

ISA e linguaggio macchina

Linguaggio Assembly e linguaggio macchina

Struttura dei Sistemi di Calcolo

Il sistema delle interruzioni nel processore MC68000 (cenni)

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Architettura di una CPU

Architetture dei Calcolatori

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

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

Linguaggi e moduli. Dott. Franco Liberati

Sistemi Operativi. Lezione 3 Processi e Thread

Università degli Studi di Cassino

Laboratorio di Architettura degli Elaboratori

CPU pipeline hazards

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

Macchina di Riferimento: argomenti

Quando mi collego ad alcuni servizi hosting ricevo un messaggio relativo al certificato di protezione del sito SSL, come mai?

Università degli Studi di Roma La Sapienza

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)

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

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del COGNOME NOME

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

Architettura degli Elaboratori II - Laboratorio

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Calcolatori Elettronici A a.a. 2008/2009

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

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

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

System Calls, Register Spilling

Laboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes

Linguaggio Assembly e linguaggio macchina

Il sistema di I/O. Sistemi Operativi 13.1

Sommario. Premessa Architettura ARM Programmer's model (ARM7) Sistemi di sviluppo. S. Salvatori - Microelettronica aprile 2016 (13 di 45)

Laboratorio di Architetture degli Elaboratori II (A.A )

Assembly (3): le procedure

Assemblatori, linker ed il simulatore SPIM. Università di Bergamo - corso di Calcolatori Elettronici

Schemi di paginazione nell architettura 86 (32 e 64 bit)

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Sistema Operativo. (hardware e software) della della macchina

Von Neumann Bottleneck

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

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

Linguaggio Assembly e linguaggio macchina

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Architettura degli Elaboratori B Introduzione al corso

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

Calcolatori Elettronici A a.a. 2008/2009

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

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

MAC1 Simulatore di Microprocessore

ARCHITETTURA DI UN ELABORATORE

Assembly. Motivazioni. Programmazione Assembly

Il processore: unità di controllo

ARM: stack e subroutine

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

Linguaggi, compilatori e interpreti

Laboratorio di Architettura degli Elaboratori

Istruzioni MIPS per floating point

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

Il linguaggio macchina

memoria virtuale protezione

ARCHITETTURA DI UN ELABORATORE

Calcolatori Elettronici B a.a. 2004/2005

Microelettronica. Architettura del processore ARM. Stefano Salvatori. Università degli Studi Roma Tre. Microelettronica

Assembly. Modello x86

Linguaggio Assembler MIPS

Architettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H

DESCRIZIONE PROFILO CONFIGURAZIONE DIP-SWITCH DIZIONARIO OGGETTI (OD)

MIPS! !

Esempio con Google Play tore Example with Google Play tore

L ambiente di simulazione SPIM

ISA (Instruction Set Architecture) della CPU MIPS

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

Architettura degli Elaboratori - 1

Transcript:

[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 - I/O mappato Software Engineering and Architecture Group 2006 Henry Muccini Linguaggio Assembler Quando conviene usare l assembler: Per avere maggior controllo sul sistema (su sistemi embedded con requisiti di basso tempo o bassa occupazione di spazio) Quando usato in congiunzione con 4GL Per implementare solo le sezioni critiche L ingegnosita del programmatore puo superare la capacita dei compilatori Se lavoriamo su di un calcolatore ad hoc, che non prevede nessun linguaggio ad alto livello 2/16 1

Linguaggio Assembler Quando NON usare l assembler: Specifici per un dato calcolatore Programmi piu lunghi (fattore di espansione) I programmatori scrivono stesso # di righe di codice al giorno, indipendentemente dal linguaggio Piu difficili da leggere e con un maggior numero di errori Piu difficili da comprendere logicamente 3/16 Macro Cosa sono Differenze con le procedure Inconvenienti delle macro: Il parametro passato non deve essere un registro gia usato all interno della macro 4/16 2

Macro: definizione Definizione dimacro.macro <nomemacro> (<par>).end_macro Esempio di definizione di una Macro:.text.macro print_int($arg) la $a0, int_str # Load string address into first arg mov $a1, $arg # Load macro s parameter jal printf # Call the printf routine.end_macro 5/16 Macro: chiamata Chiamata a macro <nome macro> (parametro) Esempio di chiamate alla macro: print_int($7) print_int($a0) [No].macro print_int($arg) la $a0, int_str # Load string address into first arg mov $a1, $a0 # Load macro s parameter jal printf # Call the printf routine.end_macro 6/16 3

Eccezioni e interruzioni in MIPS 4 registri nel coprocessore 0: EPC: registro contenente l indirizzo dell istruzione che ha causato l interruzione BadVAddr: registro contente l indirizzo di memoria a cui e stato fatto riferimento (in caso di eccezione generata da un accesso in memoria) Status (registro di Stato) Cause (registro di Causa) Istruzioni sui 4 registri: lwc0, swc0, mfc0, mtc0 7/16 Dalla Lezione 12 8/16 4

9/16 (8 bit) Registro Stato Maschera delle interruzioni: 5 livelli inter. Hw e 3 software Campi Kernel/utente abilitazione: k/u = 0, se il programma si trovava nel kernel al momento dell interrupt k/u = 1, modalita utente al momento dell interrupt abilitazione = 0, interrupt disabilitate abilitazione = 1, interrupt abilitate Al verificarsi di una interruzione, questi 6 bit vengono scalati a sinistra di 2 posizioni 10/16 5

Registro Causa 4 bit di Codifica delle eccezioni Interruzioni pendenti: Bit =1, se una delle interrupt Hw non e stata ancora servita Codifica delle eccezioni: Descrive la causa dell eccezione (secondo una codifica) Gestione eccezioni ed interruzioni: MIPS trasferisce il controllo al gestore delle interruzioni, che si trova in 80000080 esa 11/16 Gestore interruzioni 1. Salva il contenuto di $a0 e $a1 Visto che verranno usati per passare gli argomenti dell interrupt 2. Sposta il contenuto dei registri Causa e EPC nei registri della CPU 3. Controlla i valori all interno del registro Causa, per controllare il tipo di interruzione/eccezione e vedere se stampare un messaggio di errore oppure no 12/16 6

# This is the exception handler code that the processor runs when an exception occurs. #It only prints some information about the exception, but scan server as a model of how to write a handler. Because we are running in the kernel, we can use #$k0/$k1 without saving their old values..ktext 0x80000080.set noat 1 move $k1 $at # Save $at.set at sw $v0 s1 # Not re-entrent and we can't trust $sp sw $a0 s2 # But, we need to use these registers mfc0 $k0 $13 srl $a0 $k0 2 andi $a0 $a0 0xf blez $a0 int_ret nop # Cause register # Extract Exception Code Field # Don't print interrupts # Print information about exception. li $v0 4 # syscall 4 (print_str) la $a0 m1_ syscall li $v0 1 # syscall 1 (print_int) srl $a0 $k0 2 # Extract ExcCode Field andi $a0 $a0 0xf syscall 3 2 13/16 I/O mappato Cosa significa: Possibilita di inserire e stampare dati su terminale I/O mappato: I registri utilizzati vengono visti come una speciale locazione di memoria Il terminale e composto da: Ricevitore Legge I dati inseriti da tastiera Trasmettitore Visualizza su schermo I dati del ricevitore Per usare I/O mappato, occore avviare SPIM con l opzione mapped_io 14/16 7

4 registri: Controllo del ricevitore Dati del ricevitore Controllo del trasmettitore Dati del trasmettitore 15/16 Controllo del ricevitore: Bit di Pronto: =1 la tastiera ha inviato dati non ancora letti dal reg. Dati del Ricevitore Da 0 1, quando un carattere viene introdotto (*)Da 1 0, quando il carattere e letto dal registro dei Dati Bit diabilitazione: Se posto = 1, il terminale genera una interruzione. In tal caso, il registro Stato deve abilitare l interruzione. Dati del ricevitore: Contiene gli ultimi 8 bit inseriti Quando questo registro legge i dati, pone a 0 il Bit di pronto del Controllo ricevitore (*) 16/16 8

Controllo del trasmettitore: Primo bit =1 pronto ad accettare un nuovo carattere in uscita Secondo bit = abilitazione interruzioni Dati del trasmettitore: Contiene gli ultimi 8 bit inviati alla console 17/16 Il corso e finito, andate in pace, e soprattutto In bocca al lupo!!!... e non fatevi rivedere a luglio!!! 18/16 9