ARCHITETTURA DEGLI ELABORATORI DELL'INFORMAZIONE

C. di Studio in Informatica, Univ. di Bologna, a.a. 2014-2015
Docente: Vittorio Ghini


Avviso alle Matricole
Avviso alle Matricole di Informatica

Annunci
........

Avviso 12 Febbraio 2016 -
- Annuncio "RISULTATI dell'ESAME del 12 Febbraio 2016".

Risultati Esame del 12 Febbraio 2016


Avviso 05 maggio 2015 -
- Annuncio "SPECIFICHE DEL PROGETTO ASSEMBLY PER LA SESSIONE ESTIVA E AUTUNNALE".

Le specifiche sono disponibili qui:
SPECIFICHE PROGETTO ASSEMBLY

Avviso 02 dicembre 2014 - ESERCIZI IN PREPARAZIONE ALL'ESAME
Ho aggiunto circa una 150-ina di esercizi del tipo che potrei proporre all'esame.
Nulla di eclatante, giusto quello che abbiamo visto a lezione
Cercate di risolverli e chiedetemi spiegazioni se non ce la fate.
ESEMPI_DOMANDE_ESAMI_aa_2014_15.pdf
Gli ultimi 30-40 esercizi sono relativi alle prossime 3-4 lezioni,
quindi vi sembreranno, per ora, un poco oscuri.
Tra 10 giorni saranno piu' chiari.
All' esame, nelle risposte sará apprezzata la chiarezza e la concisione, ed anche una scrittura comprensibile.

Scopo del Corso
comprendere l'organizzazione a livelli degli elaboratori dell'informazione,
dalla logica digitale al livello macchina e al sistema operativo,
dalla programmazione in assembly fino alla programmazione in linguaggio C.

Materiale didattico di supporto allo studio
Nota Bene:
Il livello di dettaglio degli argomenti del corso e' quello svolto a lezione.
In altre parole, il corso ufficiale e' quello presentato a lezione,
ed il materiale didattico suggerito ha solo funzione di supporto allo studio
ma non ricopre esattamente gli argomenti trattati a lezione.
Libro di testo:
Andrew S. Tanenbaum. Architettura dei Calcolatori. Un Approccio Strutturale. Pearson Prentice Hall, quinta edizione, 2006.
Selezione di Appunti delle lezioni del docente, disponibili online:
(vedere sotto)

Modalita' d'esame
Esame Classico negli appelli d'esame delle sessioni di giugno/luglio e di settembre:
L'esame consiste di una prova scritta e di un PROGETTO in assembly.
Lo scritto deve essere suparato almeno con voto 18.
Il voto del progetto (fino a 3 punti) sara' poi sommato al voto dello scritto.
NB- Solo per chi deve sostenere l'esame di Architettura a 9 CFU: valgono le stesse regole, ma la prova scritta si riferisce al programma del corso a 9 CFU. Occorre avvisare il docente entro tre giorni prima dalla prova scritta dell'intenzione di sostenere l'esame, per permettere al docente di preparare il testo della prova scritta.

Esame alla fine delle lezioni, nella sessione di gennaio/febbraio:
Poiche' tra la fine delle lezioni di architettura e la sessione d'esame c'e' poco tempo,
se si sostiene l'esame nella sessione di gennaio/febbraio, si deve superare solo lo scritto, e non si deve (e non si può) presentare il progetto assembly.


Appunti delle Lezioni

1. Introduzione all'Architettura dei Computer

      (Traccia delle lezioni)
      L'Informazione e l'Organizzazione degli Elaboratori dell'Informazione
......... introArch.pdf
......... InterfacciaUtenteACaratteri_SystemCall.pdf
......... esempio_script.sh
......... primo.c
......... CodificheTesto_EOL.pdf


2. Livello di Linguaggio - ANSI C

    Nota Bene: ANSI C è diverso da C++
          Dispense
......... c001a.pdf .......... Introduzione: il linguaggio C e i Compilatori
......... c002.pdf ............ Le Variabili e i moduli C
.................... Oracolo Esempio con piu' moduli:
                                 Makefile, oracolo.c, interroga.c, interroga.h
.................... Oracolo errato Esempio di Errore - Inclusione di file C:
                                 Oracolo_CheIncludeC.tgz

......... calling_convention.pdf ............ Uso dello Stack nelle Chiamate a Funzione

......... Chiamata a Funzione: Esempio di traduzione in Assembly per Intel x386:
                      Makefile, chiamata_a_funzione.c, chiamata_a_funzione.h, main.c,
                      chiamata_a_funzione.s, chiamata_a_funzione.s.pdf, CHIAMATA_A_FUNZIONE.tgz,

......... Chiamata a Funzione e accesso a variabili locali e globali: Esempio di traduzione in Assembly per Intel 8086:
                      8088_fatt.c, 8088_fatt.SMALL.asm.pdf

......... esercizio1/
......... mistery.c ............ Un esempio da NON seguire
......... c003.pdf ............ Costanti, Operatori, Valutaz. Espress., Controllo del flusso di Istruzioni
......... c004.pdf ............ Struct, Puntatori, Arrays, Puntatori di Puntatori, Funzioni
......... stringhe_costanti.c Inizializzazione di Stringhe - decommentare una alla volta le dichiarazioni di str
..................... Assembly generato su Cygwin stringhe_costanti.cygwin.s vedere sezione rdata
..................... Assembly generato su Linux stringhe_costanti.s vedere sezione rodata
......... c005.pdf ............ Puntatori a funzione, funzioni ad argomenti variabili, I/O in C.
......... c006.pdf ............ Errno, eof, I/O a blocchi, Riga di Comando e I/O a basso livello
......... c008.pdf ............ Funzioni di libreria
......... vet.c ................... esempio con vettori
......... tree.c .................. esempio con alberi binari
......... debug_liste_inserisci_N_in_coda.c ... esempio creazione lista, aggiunta in coda, ricorsiva
......... loadmat1.c .......... esempio con matrici (a puntatori) e lettura da file
......... in1.txt ................. file di input per esempio lettura da file

          Il problema dell'allineamento dei dati nelle strutture
......... Makefile
......... sizeof.c
......... packed.c

     -----------------------------------------------------------
          Esercizi con puntatori in Linguaggio ANSI C
......... esercizi_improvvisati_17_nov_2011.txt - struct, puntatori, variabili locali e globali
......... es1c.pdf - ricerca su albero binario
......... es2c.pdf - ricerca su lista
......... es3c.pdf - inserimento in testa in una lista
......... es4c.pdf - inserimento in coda in una lista
......... es5c.pdf - inserimento ordinato in una lista
......... es6c.pdf - eliminazione di un elemento da una lista
......... es7c.pdf - inserimento ordinato in un albero binario
......... es8c.pdf - deallocazione nodi in un albero binario
......... es9c.pdf - modifica foglie in un albero binario

     -----------------------------------------------------------
          Esempi di Esercizi su Introd. Arch. Elab. Info e Ling. ANSI C
......... domande_varie_su Intro Arch Elab e Linguaggio ANSI C.pdf

     -----------------------------------------------------------
          Esercizi per familiarizzarsi con il linguaggio ANSI C
......... esercitazioni_C.pdf

     -----------------------------------------------------------

3. Livello di Sistema Operativo

      Traccia delle Lezioni
......... SistemaOperativo_intro.pdf
......... SistemaOperativo_SystemCalls.pdf
......... SistemaOperativo_Scheduler.pdf
......... SistemaOperativo_GestioneMemoria.pdf ... testo_29-11-2013.pdf
......... SistemaOperativo_Interrupt_Eccezioni.pdf
......... BUS.pdf BUS: Anticipazione del livello di Logica Digitale.

4. Livello ISA (Instruction Set Architecture)

......... ISA_I/O.pdf
      Argomenti gia' trattati parlando di Sistema Operativo
......... Istruzioni, Stack, Interrupt, Eccezioni

5. Livello ISA (Instruction Set Architecture)
Caso di Studio: Architettura Intel IA-32

      Traccia delle Lezioni
......... ISA di IA-32 - Supporto al Sistema Operativo (ISA_IA-32.pdf)
      Materiale Didattico
......... SELEZIONE IA-32 volume1_Basic_architecture.pdf Architettura di base dell' IA-32 (Selezione da manuale Intel)
......... SELEZIONE_IA-32 Volume 3A System Programming Guide.pdf Supporto al sistema operativo fornito dall' IA-32 (Selezione da manuale Intel)
............................N.B: alcuni paragrafi non sono necessari Elenco paragrafi da leggere.pdf


Elenco Argomenti da studiare riguardanti le parti "Sistema Operativo" ed "ISA" Argomenti_su_SistOperativo_ed_ISA.txt
           NB: gli argomenti sono stati trattati a lezione con diversi gradi di approfondimento,
           non sempre il libro di testo approfondisce nello stesso modo.
           Gli appunti delle lezioni sono sempre il supporto didattico migliore.


6. Livelli di Logica Digitale, ISA e Assembly - Caso di Studio processore Intel 8088

           Lezioni del Dott. Bruno Iafelice
......... Nota generale sul sotto-corso di assembly
......... Concetti di base
......... Architettura 8088
......... Assembly 8088
......... Chiamate a sottoprocedure
......... Assemblatore

           Emulatore 8088 del Tanenbaum (solo per arch. LittleEndian Unix-like
......... versione numero 7, un grazie a Sofia, Vincenzo, Federico e Marco
......... per avere fatto da cavie volontarie.
......... EMULATORE_8088_LittleEndian_OK7.tgz
......... piu una versione speciale (numero 8) con output lineare, solo per VINCENZO
......... EMULATORE_8088_LittleEndian_OK8_VINCENZO.tgz

......... - Istruzioni per l'installazione
......... scaricare il file su disco, aprire una shell e spostarsi nella directory contenente il file.tgz
......... scompattare il file usando il comando tar xvzf EMULATORE_8088_LittleEndian_OK7.tgz
......... per compilare e installare l'emulatore
......... spostarsi nella directory creata EMULATORE_8088_LittleEndian_OK7
......... e qui eseguire ./asinstal.sh
......... directory example contiene gli esempi
......... assemblare usando il comando ./as88.exe nomefile.s
......... eseguire usando il comando ./s88.exe nomefile (senza estensione)
......... eseguire passo passo (trace) usando il comando ./t88.exe nomefile (senza estensione)
......... README.txt
......... HlloWrld.s
......... inp.s
......... sscanf3.s
......... vecprod.s
......... vicsommavetstack.s

           Libro di testo
......... Fare riferimento al libro di testo, Appendice C - Programmazione in Linguaggio Assemblativo

7. Livello di Micro-Architettura

......... Cenni sulla microarchitettura, slides commentate a lezione (MicroArchitettura.pdf)
......... (Per approfondire, vedere il libro di testo, cap. 4, paragrafi 4.1, 4.1.1, 4.1.2, 4.1.3, 4.3.1


......... Esempi di Esercizi su Logica Digitale, ISA e Assembly 8088, MicroArchitettura Mic-1.
......... Esercizi Assembly preparati dal Dott. Di Felice
......... Domande varie su Logica Digitale, Assembly e Microarchitettura


8. Progetto in Assembly 8088

           SPECIFICHE PROGETTO ASSEMBLY


===========================================================================
Materiale didattico per Integrazione di 3CFU (per vecchio ordinamento a 9CFU)

Selezione del Materiale didattico dei precedenti corsi di architettura
tenuti dai Dottori Dal Lago e Kiziltan
:

Reti Combinatorie e Algebra di Boole
Pagine 131-141 da [1].
Pagine 29-42 da [2].
Lucidi [ 04_PORTEALGEBRE_Ott18.pdf ] [ 04_Esercizi.pdf ]

Sintesi di Reti Combinatorie
Pagine 42-67 da [2].
Lucidi [ 05_SINTESICOMBINATORIE-Ott24-25.pdf ] [ 05_Esercizi.pdf ]

Complementi sulle Reti Combinatorie
Pagine 141-152 da [1].
Pagine 68-100, 109-144, 340-344 da [2].
Lucidi [ 06_COMPLEMENTICOMBINATORIE_Ott30-31.pdf ] [ 06_Esercizi.pdf ]

Reti Sequenziali
Pagine 154-159 da [1].
Pagine 197-215 da [2].
Lucidi [ 07_SEQUENZIALI-Nov7-8.pdf ]

Analisi e Sintesi di Reti Sequenziali
Pagine 215-241 da [2].
Lucidi [ 08_SINTESISEQUENZIALI-Nov8.pdf ] [ 08_Esercizi.pdf ]

Bibliografia
[1] Andrew S. Tanenbaum. Architettura dei Calcolatori. Un Approccio Strutturato. Pearson Prentice Hall, quinta edizione, 2006.
[2] M. Morris Mano and Charles R. Kime. Reti Logiche. Pearson Addison Wesley, 2002.


~