Architettura degli Elaboratori II - Laboratorio
|
|
- Martina Alfieri
- 7 anni fa
- Visualizzazioni
Transcript
1 Pietro Codara dantona/arch Prima lezione 24 Ottobre 2012 Informazioni pratiche Lezioni frontali: Mer 24 Ottobre 2012, , Aula 200 (via Celoria) Ven 26 Ottobre 2012, , Aula 200 (via Celoria) Mer 31 Ottobre 2012, , Aula 200 (via Celoria) Sezione laboratorio del sito web del corso.
2 Informazioni pratiche Esercitazioni a distanza: Per il turno serale del corso parte delle esercitazioni saranno svolte a distanza. Dopo il ciclo di lezioni frontali verranno pubblicate sul web del corso cinque esercitazioni. Al rilascio di ogni esercitazione seguirà una lezione a distanza nella quale il docente cercherà di risolvere eventuali dubbi e problemi relativi alla risoluzione degli esercizi assegnati. Le lezioni a distanza saranno tenute via Skype TM, con possibilità di condivisione del desktop. Account Skype: architetturaii_unimi Informazioni pratiche Calendario esercitazioni a distanza: Mer 7 Novembre 2012, , Skype TM Mer 14 Novembre 2012, , Skype TM Mer 28 Novembre 2012, , Skype TM Mer 5 Dicembre 2012, , Skype TM Mer 12 Dicembre 2012, , Skype TM
3 Informazioni pratiche Esercitazioni in laboratorio e simulazione prova d esame: Le lezioni a distanza saranno intervallate da esercitazioni in laboratorio. In chiusura del corso si terrà, in laboratorio, una simulazione della prova d esame. Sab 10 Novembre 2012, , Aula σ (via Comelico). Sab 24 Novembre 2012, , Aula σ (via Comelico). Sab 1 Dicembre 2012, , Aula σ (via Comelico). Mer 9 Gennaio 2012, , Aula ω (via Comelico). Informazioni pratiche Esame: i corsi di Architettura degli Elaboratori I e II prevedono un esame comune. La parte di laboratorio inciderà per 1 3 sul voto finale. La prova d esame, per quanto riguarda la parte di laboratorio, consisterà in un quiz comprendente domande a risposta multipla e domande aperte relative alla programmazione assembly e agli argomenti trattati nelle lezioni frontali e nelle esercitazioni a distanza. Le date degli esami saranno pubblicate sul sito d ateneo. È necessaria l iscrizione alla prova di laboratorio tramite SIFA. Ricevimento su appuntamento. Mail a: codara@di.unimi.it Web del corso: Dettagli sulla modalità d esame, materiale didattico e altre informazioni sono pubblicati sulla pagina web del corso.
4 Obiettivi del corso Dare un occasione agli studenti di fare un minimo di esperienza nella programmazione a basso livello. Insegnare i rudimenti della programmazione assembly. Implementare correttamente chiamate di procedura ricorsive in linguaggio assembly. Programma del corso - 1 a lezione frontale Introduzione alla programmazione assembly. Il processore MIPS e il simulatore MARS. Introduzione all assembly MIPS. Primi esempi di programmazione in assembly MIPS.
5 Perchè studiare la programmazione assembly? La conoscenza della programmazione assembly chiarisce come vengono eseguite le istruzioni, mostra come i dati sono rappresentati in memoria, (?) rende i programmatori in linguaggi ad alto livello migliori, fornendo loro un idea del linguaggio di destinazione nel quale il linguaggio ad alto livello deve essere tradotto. Un linguaggio di programmazione a basso livello Il linguaggio assembly è un linguaggio di programmazione a basso livello, più vicino all architettura del calcolatore. Il linguaggio assembly è una rappresentazione simbolica del linguaggio macchina. Linguaggio assembly e linguaggio macchina LINGUAGGIO ASSEMBLY: add $t0,$s1,$s2 LINGUAGGIO MACCHINA:
6 Un linguaggio di programmazione a basso livello Spesso, ma non sempre, ad ogni istruzione in linguaggio assembly corrisponde esattamente una istruzione in linguaggio macchina. Il linguaggio assembly è strettamente dipendente dall hardware: le istruzioni utilizzano codici operativi specifici e registri specifici del processore. Un programmatore assembly deve conoscere e capire l architettura del calcolatore. Linguaggio assembly e assemblatore Assemblatore Uno strumento chiamato assemblatore (assembler) traduce il linguaggio assembly in istruzioni binarie in linguaggio macchina. Il linguaggio assembly permette agli utenti l uso di etichette, che verranno risolte opportunamente dall assemblatore (o dal linker, quando le etichette fanno riferimento a moduli esterni). L assemblatore mette inoltre a disposizione alcuni strumenti utili al programmatore. Tra questi, la possibilità di utilizzare macro, di fornire direttive, di utilizzare pseudoistruzioni.
7 Quando si usa il linguaggio assembly Il linguaggio assembly permette un maggior controllo da parte del programmatore su dimensione e velocità di un programma. Può essere utile programmare in assembly alcune applicazioni critiche, in particolare in calcolatori embedded. Spesso viene utilizzato un approccio ibrido: gran parte del codice è scritto in un linguaggio ad alto livello e solo le parti più critiche sono scritte in linguaggio assembly. Tra gli altri possibili utilizzi: sviluppo di compilatori, cracking, hacking. Il linguaggio assembly è anche utilizzato quando nessun linguaggio di alto livello è disponibile o per accedere a istruzioni inaccessibili ad un linguaggio di alto livello. Con il miglioramento dei compilatori e la crescente disponibilità di memoria a basso costo la programmazione assembly è oggi meno utilizzata. Svantaggi della programmazione assembly Codice strettamente dipendente dall architettura originale. Programmi più lunghi: più lungo è il codice, più errori può contenere, più lungo è il codice, più difficile è da leggere, più lungo è il codice, più tempo è necessario per scriverlo. Il controllo di flusso è gestito dal programmatore mediante go to.
8 Il processore MIPS R2000 RISC Microprocessore RISC (Reduced instruction Set Computer). Architetture per microprocessori formate da un un set di istruzioni ridotto: le istruzioni sono in grado di eseguire operazioni semplici, eseguibili in tempi simili. È una filosofia opposta alla CISC (Complex Instruction Set Computer). Microprocessori CISC forniscono istruzioni anche molto complesse, in grado, ad esempio, di leggere un dato dalla memoria, elaborarlo, e salvare il risultato in memoria. Processori della famiglia MIPS sono diffusi, ad esempio, in dispositivi portatili (cellulari, tablet), router (CISCO) e console (Nintendo, Sony Playstation). Il MIPS R2000 è il primo progetto della MIPS technologies ( e risale al Il processore MIPS R2000 Architettura RISC pura. Istruzioni di load e store Le uniche istruzioni che accedono alla memoria sono le istruzioni di load e store. lw (load word) sw (store word) Vi sono poi le varianti lb, sb etc. Studieremo in dettaglio più avanti il set di istruzioni del MIPS R2000: per ora basta tenere a mente il fatto importante che solo le istruzioni delle famiglie load e store accedono alla memoria centrale.
9 Il processore MIPS R2000 Architettura a 32 bit Architettura orientata alla computazione con parole (dati di 32 bit). Per esempio, i registri sono da 32 bit. Tuttavia, ciò non significa che il MIPS possa accedere alla memoria indirizzando solo parole. Il set di istruzioni permette di indirizzare byte, mezzeparole, parole e doppieparole. BIT: minima quantità di informazione trattabile, unità di misura dell informazione. BYTE = 8 bit. PAROLA (WORD) = 32 bit. MEZZAPAROLA (HALFWORD) = 16 bit. DOPPIAPAROLA = 64 bit. Il processore MIPS R2000 Banco di 32 registri da 32 bit Registro Numero Uso (Convenzione compilatori) zero 0 Costante 0 at 1 Riservato per l assemblatore v0-v1 2-3 Valutazione espressioni, valori restituiti dalle procedure a0-a3 4-7 Argomenti passati a procedure t0-t Temporanei, non preservati s0-s Temporanei, preservati t8-t Temporanei, non preservati k0-k Riservati al kernel gp 28 Puntatore all area globale (global pointer) sp 29 Puntatore allo stack (stack pointer) fp 30 Puntatore al frame (frame pointer) ra 31 Indirizzo di rientro (return address) Indicheremo un registro, ad esempio, con $a0 (equivalente a $4).
10 Il processore MIPS R2000 Coprocessori La CPU MIPS R2000 esegue solo calcoli in aritmetica intera, e non gestisce le eccezioni. L aritmetica in virgola mobile è gestita da un coprocessore FPU (Floating Point Unit), chiamato coprocessore 1. Un altro coprocessore, chiamato coprocessore 0, si occupa, tra l altro, di gestire le eccezioni. Il processore MIPS R2000
11 Convenzioni di utilizzo della memoria I sistemi MIPS fanno riferimento a una organizzazione convenzionale della memoria. La memoria accessibile dal codice assembly è divisa in segmento dati, segmento testo e segmento stack. Vi è poi una porzione di memoria riservata alla quale il codice non può accedere, pena la generazione di una eccezione di indirizzamento. Essa è dedicata, per esempio, a contenere il kernel del sistema operativo. Questa organizzazione è convenzionale nel senso che non è imposta dall hardware, ma grazie a un accordo tra programmatori che decidono di seguire le stesse regole per far funzionare insieme al meglio programmi scritti da diverse persone. Convenzioni di utilizzo della memoria Segmento dati Il segmento dati contiene i dati su cui opera il programma. Se, per esempio, il programma deve mantenere in memoria una costante intera da usare ripetutamente, tale costante andrà collocata in questo segmento. Segmento testo Il segmento testo contiene il codice macchina del programma. Segmento stack Anche il segmento stack contiene dati su cui opera il programma, ma questo segmento cresce verso il basso, con una politica LIFO.
12 Convenzioni di utilizzo della memoria Indirizzi di memoria La memoria centrale cui il MIPS accede è da pensarsi come una sequenza di locazioni di memoria numerate progressivamente. Poiché MIPS è in grado di indirizzare i singoli byte, ciascuna locazione di memoria contiene un singolo byte di informazione. Ne segue anche che la numerazione naturale delle locazioni è riferita ai byte: cioè, all indirizzo 4 della memoria centrale trovo l inizio della seconda parola di memoria, all indirizzo 0 trovo l inizio del primo byte, oppure della prima parola.
13 Il simulatore MARS Con l utilizzo di un simulatore saremo in grado di assemblare codice in linguaggio assembly MIPS, simularne l esecuzione, effettuare il debugging, etc., sulle nostre macchine (tipicamente Windows, Linux o Mac su piattaforma Intel). MARS (MIPS Assembler and Runtime Simulator) è un simulatore in grado di eseguire linguaggio assembly scritto per architetture MIPS32. E stato sviluppato da un team della Missouri State University. MARS è scritto in Java e può essere eseguito su diverse piattaforme. MARS, come gli altri simulatori, legge ed esegue programmi assembly scritti per MIPS, ma non può trattare file eseguibili per processori MIPS. Il simulatore MARS Il simulatore fornisce un terminale per input/output, e mette a disposizione del programmatore utili servizi di sistema, che permettono, ad esempio, di gestire l input da tastiera e l output sul terminale. Il simulatore supporta un sottoinsieme delle direttive dell assemblatore MIPS. Non tutte le funzionalità di un sistema MIPS sono implementate. MARS è un sistema integrato di sviluppo e, oltre all editor, offre numerose funzionalità per il debugging e la verifica del codice. L ultima versione di MARS, la 4.2, è stata rilasciata nell agosto 2011 (dimensione file: 3Mb).
14 Spim, xspim, PCSpim, e Mipster Vi sono altri simulatori per MIPS. All indirizzo sono disponibili diverse versioni di SPIM: spim, dotato di una interfaccia a terminale (Windows, Unix, Mac OS X); xspim, dotato di una interfaccia grafica (Unix, Mac); PCSpim, dotato di una interfaccia grafica (Windows). Un comodo ambiente di sviluppo integrato per MIPS, basato su SPIM, è MIPSter. Una versione di MIPSter è scaricabile dal sito web del corso. Un primo programma in assembly Esempio 1 Un primo esempio ci mostra la struttura di un programma assembly MIPS, scritto per il simulatore MARS. Nell esempio, la stringa Hello world! viene stampata sul terminale. I commenti vengono preceduti dal simbolo #, le etichette sono seguite da :, le direttive iniziano con un punto. È buona norma commentare attentamente un programma assembly. Un programma assembly non commentato risulterebbe difficilmente leggibile anche ad un buon programmatore..data segnala all assemblatore l inizio dell area dati..text segnala l inizio del segmento di testo (codice del programma).
15 Direttive Alcune delle direttive accettate da MARS.ascii str.asciiz str.byte b1,....data.globl sym.half h1,....text.word w1,... Memorizza la stringa str, senza carattere di terminazione. Memorizza la stringa str, con carattere di terminazione. Memorizza i byte b1,... Indica l inizio del segmento dati. Ciò che segue viene memorizzato nell area riservata ai dati. Dichiara globale l etichetta sym, in modo da renderla accessibile da altri programmi. Memorizza le mezze parole h1,... Indica l inizio del segmento di testo. Le seguenti linee conterranno solo istruzioni o intere parole. Memorizza le parole w1,... Chiamate di sistema Codici per le chiamate di sistema Service Codes Arguments Result print_int 1 $a0 = integer print_string 4 $a0 = string read_int 5 integer in $v0 read_string 8 $a0 = buffer, $a1 = lenght print_char 11 $a0 = char read_char 12 char in $a0 Per richiedere un servizio di sistema occorre caricare nel registro $v0 il codice della chiamata di sistema, e quindi invocare una syscall.
16 Alcune operazioni aritmetiche Esempio 2 Il secondo esempio mostra l utilizzo di alcune funzioni aritmetiche. Viene calcolata la somma (g + h) - (i + j). Per default i numeri interi vengono rappresentati in base dieci. Per rappresentare dei numeri in base 16 occorre anteporre 0x. Modificando l esempio 2 appena visto, possiamo vedere come lavorare con numeri esadecimali. L esempio 3 mostra come effettuare lo stesso calcolo dell esempio appena visto utilizzando valori inseriti dall utente. Eccezioni Esempio 4 Il quarto esempio mostra come un evento possa sollevare un eccezione. Non ci occuperemo in questa lezione della gestione delle eccezioni. L eccezione viene sollevata a causa di un accesso illegale all area di memoria riservata. Modificando l esempio 4 appena visto, possiamo provare ad accedere, legalmente, ad aree di memoria non riservate.
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
DettagliMacchina 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
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
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
DettagliMIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie
MIPS & SPIM Modulo del Corso di Architettura degli Elaboratori Nicola Paoletti Università di Camerino Scuola di Scienze e Tecnologie 10 Aprile 2013 AA 2012/2013 Informazioni utili (1/2) Email: nicola.paoletti@unicam.it
DettagliLecture 2: Prime Istruzioni
[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 2: Prime Istruzioni
DettagliCorso di Architettura (Prof. Scarano) 09/04/2002
Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno
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
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
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
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
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
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
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
DettagliCalcolatori Elettronici
Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio
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
DettagliIl linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
DettagliArchitettura 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
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docenti: Silvia Crafa, Nicolò Navarin (lab), Alessandro Sperduti Docenti Silvia Crafa Nicolò
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
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
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
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
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
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
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
DettagliLinguaggi, compilatori e interpreti
Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011
DettagliLaboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes
Laboratorio di Architettura lezione 11 Massimo Marchiori W3C/MIT/UNIVE La scorsa lezione Nove gradi di separazione Procedure ricorsive Stack Push / Pop Fibonacci Word e bytes Finora, abbiamo solo agito
DettagliIl 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
DettagliLinguaggio 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
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 Andrea Sterbini e Franco Liberati Tratto da dispense di Alberto Montresor, Riccardo
DettagliIl 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
DettagliL insieme delle istruzioni (6)
L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso
DettagliUn 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
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
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
DettagliUniversità 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).
DettagliAlgoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
DettagliLe 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
DettagliLa macchina programmata Instruction Set Architecture (1)
Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliElementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:
Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004 1 Docente Patrizia Boccacci Ufficio 332 III piano Dipartimento di Informatica e Sc. Inf. Tel. 010-3536732 E-mail: boccacci@disi.unige.it
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
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
DettagliLecture 1: Course Overview -Introduzione al corso - Course Schedule - Administration
[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 1: Course Overview
DettagliArchitettura degli elaboratori
Architettura degli elaboratori Ottavio D Antona dantona@di.unimi.it Maria Luisa Damiani damiani@di.unimi.it Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori -
DettagliLa programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello
La programmazione dei calcolatori L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliL insieme delle istruzioni
L insieme delle istruzioni Architetture dei Calcolatori (lettere A-I) La programmazione dei calcolatori Linguaggio macchina (codifica con numeri binari) Linguaggio direttamente comprensibile dal calcolatore
DettagliArchitettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)
INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliCALCOLATORI ELETTRONICI
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria elettronica Anno accademico 2017/2018-3 anno CALCOLATORI ELETTRONICI 9 CFU - 2 semestre Docente titolare dell'insegnamento
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
DettagliAXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
DettagliConcetti Introduttivi
Concetti Introduttivi Architettura del Computer http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione In questo corso ci occuperemo
DettagliCALCOLATORI ELETTRONICI
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-3 anno CALCOLATORI ELETTRONICI 9 CFU - 1 semestre Docente titolare dell'insegnamento
DettagliArchitettura 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
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
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
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):
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)
DettagliRichiami 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
DettagliLinguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliAssembly. 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
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
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
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
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)
DettagliAssembly. Modello x86
Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore
DettagliIl Modello di von Neumann (2) Prevede 3 entità logiche:
Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura
DettagliCorso di Laurea in Informatica
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 13 Dicembre 2004 Esercizio 1 (punti -1, 3) Si consideri l architettura nota come macchina di von Neumann (a) Come le
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
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
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:
DettagliTraduzione e interpretazione
Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore
DettagliSistemi di Elaborazione delle Informazioni 6 CFU. Il software di sistema
Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Sistemi di Elaborazione delle Informazioni 6 CFU Anno Accademico 2015/2016 Docente: ing. Salvatore
DettagliPROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliINFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
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
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliSistema Operativo (Software di base)
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
DettagliInformatica Generale Andrea Corradini I linguaggi di programmazione
Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi
DettagliISA (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
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
DettagliTraduzione ed Interpretazione
Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L Macchina astratta di L M 0 Macchina ospite Implementazione interpretativa di L Implementazione compilativa di L Simulazione
DettagliInformatica Generale 06 - Introduzione ai Sistemi Operativi
Informatica Generale 06 - Introduzione ai Sistemi Operativi Cosa vedremo: Funzionalità dei sistemi operativi Bootstrap Stato utente e stato supervisore Componenti di un Sistema Operativo Cos è un sistema
DettagliCalcolatori Elettronici Parte VIII: linguaggi assemblativi
Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliFondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1)
Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1) Docente: Eugenia Occhiuto e-mail: occhiuto@di.unipi.it web: http://www.di.unipi.it/~occhiuto Ricevimento al Polo
DettagliCosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
Dettagli