Progetto MIPS/SPIM. Descrizione. Questa tipologia di progetto consiste in



Documenti analoghi
LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Studente: SANTORO MC. Matricola : 528

Alcune regole di base per scrivere un programma in linguaggio C

I sistemi di numerazione

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Introduzione al MATLAB c Parte 2

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Informatica. Rappresentazione dei numeri Numerazione binaria

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Informatica - A.A. 2010/11

Lezione 8. La macchina universale

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Sistemi di Numerazione

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Esempi di algoritmi. Lezione III

Tipi di dato-prima parte

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A Facoltà di Ingegneria Sede di Latina

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Elementi di Informatica

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

1. Definizione di budget e collocazione nel processo di programmazione e controllo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Algoritmi, dati e programmi

Appunti sulla Macchina di Turing. Macchina di Turing

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Descrizione di un algoritmo

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

INFORMATICA 1 L. Mezzalira

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Programmazione A.A Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

Modulo 3 - Elaborazione Testi Presentazione del corso

Test Excel conoscenze di Base

Funzioni in C. Violetta Lonati

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Il foglio elettronico: Excel

Università degli Studi di Pavia Insegnamento di Tecnologia Meccanica Anno accademico

anno Introduzione all'algoritmica per i Licei 5 Funzioni.

Corso di Analisi Matematica Serie numeriche

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

L interesse nella macchina di Turing

Programmazione I - Laboratorio

Esercitazione Informatica I AA Nicola Paoletti

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

Raggruppamenti Conti Movimenti

REGOLAMENTO - TESI DI LAUREA Valido per: CDL QUINQUENNALE IN ARCHITETTURA (VECCHIO ORDINAMENTO) Articolo 1

Università degli Studi di Padova Corso di Laurea in Informatica

Fondamenti di Programmazione

MIPS Instruction Set 2

Elementi di informatica

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Utilizzo delle formule in Excel

Programmazione dinamica

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella

FONDAMENTI di INFORMATICA L. Mezzalira

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

Origini e caratteristiche dei calcolatori elettronici

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

U N I V E R S I T À D E G L I S T U D I D I S A L E R N O

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

[

Elementi di informatica

GUIDA PER LA PROPOSTA DI TIROCINI O STAGES DA PARTE DI SOGGETTI OSPITANTI

Università di Bologna Facoltà di Lettere e Filosofia Corso di Laurea DAMS, Indirizzo Cinema

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

ESTRAZIONE DI RADICE

Programmi e Oggetti Software

Il Processore: i registri

AREA INFORMATICA & TELEMATICA. Mini Giuda (lato studente) Area Informatica e Telematica 1

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

USO DI EXCEL CLASSE PRIMAI

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Questionario di gradimento del Museo di Palazzo Grimani Estratto dalla relazione sui dati raccolti giugno 2011 luglio 2012

Gli algoritmi: definizioni e proprietà

Laurea Specialistica in Ingegneria Energetica Corso di Modellazione CAD Avanzata Prof. Paolo Rissone

Università degli Studi di Napoli Federico II

Corso di Informatica

Programmazione funzionale

la scienza della rappresentazione e della elaborazione dell informazione

CAMBIO DI GESTIONE DEGLI ESEMPLARI RICHIESTI DALLE BIBLIOTECHE

Rappresentazione di informazioni con un alfabeto finito

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Introduzione alla programmazione in C

WORKFLOW TESI ON-LINE CORSI DI LAUREA TRIENNALI

La macchina programmata Instruction Set Architecture (1)

Transcript:

Progetto MIPS/SPIM Descrizione Questa tipologia di progetto consiste in Inoltre, Infine, Sviluppare un programma in linguaggio MIPS assembly Simulare il programma in QtSPIM Preparare una relazione del progetto (max 20 pagine) Si può presentare il progetto individualmente o in coppie Al momento dell esame, occorre presentare una copia cartacea della relazione e una copia digitale (CD o DVD, comprensiva di codice) Lo studente potrà scegliere tra i progetti presenti in questo documento, oppure proporre progetti differenti. Nel secondo caso, il Professore valuterà la coerenza e la fattibilità della proposta. In ogni caso, il progetto scelto va comunicato al Prof. Leonardo Pasini via mail (leonardo.pasini@unicam.it), mettendo in cc anche il sottoscritto (nicola.paoletti@unicam.it ) Nella pagina seguente, sono elencati alcuni progetti disponibili e un template esemplificativo per la relazione.

Lista dei progetti disponibili Progetto 1 Reverse string Implementare una procedura in MIPS che presa in input una stringa, stampa la stringa inversa, ovvero con ordine dei caratteri invertiti. Es. Input: pippo, Output: oppip. Input: anna, Output: anna. Progetto 2 Calculator Implementare una procedura in MIPS che simula una calcolatrice. Ovvero prende in input una stringa o un codice che identifica l operazione da eseguire (addizione, sottrazione, moltiplicazione, divisione, elevamento a potenza), poi prende in input gli operandi (interi), e stampa il risultato. La procedura termina solo quando l utente immette un apposito codice/stringa. Progetto 3 Analisi di procedure MIPS Implementare una procedura in MIPS per confrontare le performance delle due implementazioni (iterativa e ricorsiva) dell elevamento a potenza (vedere slides e codice). Il tempo di esecuzione (somma pesata del numero dei passi) è calcolato come segue (vedi App. A di http://cad6.csie.fju.edu.tw/comorg97/download/mips_assembly_language_programming_(2003).pdf ): - mul ha peso 33. - Istruzioni di salto condizionato quali bge, bgt, ble, blt hanno peso 2. - li e la hanno peso 2. - Tutto il resto (lw, sw, syscall, ) ha peso 1. In input: base e esponente. In output si restituisce il tempo di esecuzione nel caso ricorsivo e nel caso iterativo. La procedura va testata con diversi input, in particolare va tenuta fissa la base e vanno confrontati i tempi con esponenti crescenti. I risultati vanno discussi nella relazione. Progetto 4 String replace Implementare una procedura in MIPS che prende in input una stringa s, un carattere c1 e un carattere c2. Restituisce (stampa) la stringa s in cui ogni occorrenza di c1 è sostituita da c2. Es. Input: pippo, p, c. Output: cicco. Progetto 5 Funzione esponenziale Implementare una procedura in MIPS che effettua il calcolo della funzione esponenziale. Il programma prende in input un numerico n 0 e restituisce l esponenziale di n, calcolato attraverso lo sviluppo di Taylor, per cui e n = max i!0 n i i! Max è il numero massimo di iterazioni da eseguire. Suggerimenti: Avrete bisogno di utilizzare i registri floating- point Non è necessario ogni volta calcolare x i e i!. Infatti ad ogni iterazione, per il primo basta moltiplicare ad ogni passo x i- 1 per x, e per il secondo basta moltiplicare (i- 1)! per i.

Progetto 6 Print memory Implementare una procedura in MIPS che stampa il contenuto della memoria in un dato intervallo. In input prende due indirizzi di memoria (due numerici) a1 e a2. Supposto che a1 <= a2, per ogni word di memoria a partire da a1 fino a a2, stampa una riga della forma: word [a1;a1+3]: contenuto word [a1+4;a1+7]: contenuto La procedura si ferma non appena l indirizzo corrente è >= a2. Progetto 7 String concatenation Implementare una procedura in MIPS che date in input due stringhe s1 e s2, restituisce la stringa concatenata s1s2. Progetto 8 Substring Implementare una procedura in MIPS che dati in input una stringa s1, un numerico beginidx e un numerico endidx, restituisce la sottostringa di s1 compresa tra gli indici beginidx e endidx. Es. Input: pippo, 1, 3. Output: ip Vanno effettuati controlli sugli indici, ovvero - beginidx < endidx - 0<=beginIdx < length(s1) - 0<endIdx <=length(s1) Progetto 9 Numbers to letters Implementare una procedura in MIPS che dato in input un intero, restituisce il valore in lettere (separato da spazi). Es. Input: 321. Output: tre due uno. Progetto 10 Sezione aurea Implementare una procedura in MIPS che effettua il calcolo approssimato della sezione aurea φ. φ = 1 + 5 2 φ è calcolata a partire dai numeri di Fibonacci nel seguente modo: φ = lim F!!!!"# F!!! in cui F n è l n- esimo numero di Fibonacci. I numeri di Fibonacci sono dati dalla successione: F n = F n- 1 + F n- 2 con F 0 = 0 e F 1 = 1 La procedura prende in input un numero massimo di passi (max) e restituisce φ come

φ = F!"# F!"#!! NOME PROGETTO Progetto di Architettura degli Elaboratori Prof. Leonardo Pasini Corso di Laurea in Informatica Scuola di Scienze e Tecnologie Università di Camerino Anno Accademico: 2011/2012 Candidati: Candidato 1 Matricola n. 1 Candidato 2 Matricola n. 2...

Specifica del problema Descrivere il problema da risolvere. La lunghezza di questa parte dipende naturalmente dal progetto scelto. Descrizione dell algoritmo Descrivere in modo dettagliato e più formale l algoritmo da implementare. In questa parte, si consiglia di inserire lo pseudocodice dell algoritmo e la sua codifica in un linguaggio ad alto livello a scelta (C, Java,...). Si spieghino e si giustifichino in modo dettagliato le scelte adottate. Implementazione In questa parte va aggiunto il codice MIPS assembly implementato e commentato in modo chiaro ed esauriente. Sono consigliati commenti all interno del codice, e commenti più ampi nella relazione. Simulazione In questa sezione andranno gli screenshot commentati di una simulazione- tipo.