- Computer Architecture
- Summary
Course Syllabus
Obiettivi
Alla fine del corso lo studente avrà conoscenza degli elementi dell’architettura di un semplice elaboratore e delle basi della programmazione assembly, abilità di progettare piccole modifiche alla struttura interna di un calcolatore e di scrivere semplici programmi assembly, e infine competenza nel valutare le tecnologie più adeguate, in termini di prestazioni, per diversi ambiti di elaborazione.
Contenuti sintetici
- Principali elementi dell’architettura hardware di un elaboratore.
- Instruction set architecture.
- Catena programmativa.
- Controllo del percorso dei dati.
- Gestione delle eccezioni.
- Tecniche di gestione dell'ingresso/uscita.
- Gerarchie di memoria: cache.
Programma esteso
- Rappresentazione del'informazione
- rappresentazione dell'informazione non numerica,
- rappresentazione dei numeri interi con e senza segno,
- rappresentazione dei numeri in virgola fissa e mobile.
- Circuiti logici
- reti combinatorie,
- reti sequenziali e FSM (Finite State Machine),
- rassegna di circuiti notevoli (decoder, multiplexer, register file, ALU, etc.).
- Instruction Set Architecture
- schema di von Neumann,
- CPU, registri, ALU e memoria,
- ciclo fondamentale di esecuzione di una istruzione (fetch/decode/execute),
- tipi e formati di istruzioni MIPS32,
- modalità di indirizzamento.
- Linguaggio Assembly
- formato simbolico delle istruzioni,
- catena di programmazione (compilatore, assembler, linker, loader, etc.),
- pseudo-istruzioni e direttive dell'assemblatore,
- scrittura di semplici programmi assembly,
- convenzioni programmative (memoria, nomi dei registri, etc.).
- Datapath
- percorsi dei dati per le diverse classi di istruzioni,
- controllo del percorso dei dati con FSM (implementazione multi-ciclo).
- +: pipelining e gestione hazard
- Gestione delle eccezioni
- tassonomia di eccezioni in terminologia MIPS32,
- modifiche alla FSM di controllo, registro Cause, etc.
- Tecniche di gestione dell'ingresso/uscita
- controllo di programma,
- interruzione di programma,
- accesso diretto alla memoria.
- Gerarchie di memoria: cache
- cache a mappatura diretta,
- cache fully associative,
- cache n-way set associative
- +: rimpiazzamento con LRU.
Prerequisiti
Nessuno
Modalità didattica
- 14 lezioni da 2 ore svolte in modalità erogativa in presenza;
- 2 lezioni da 2 ore svolte in modalità erogativa in remoto asincrono;
- 10 esercitazioni da 2 ore svolte in presenza in modalità 50% erogativa 50% interattiva;
- 8 attività di laboratorio da 3 ore svolte in modalità interattiva in presenza;
Materiale didattico
- Libro di testo: David Patterson, John Hennessy: Computer Organization and Design, The Hardware/Software Interface, 5th edition, Morgan Kaufmann (Elsevier) / "Struttura e progetto dei calcolatori" Zanichelli
- Materiale disponibile su elearning relativo a lezioni, esercitazioni e laboratorio, alcune prove di autovalutazione, etc.
Periodo di erogazione dell'insegnamento
Secondo semestre
Modalità di verifica del profitto e valutazione
L'esame potrà essere svolto in due prove parziali, tenute una a metà e una a fine semestre, o come sempre in un unico appello tra quelli a calendario lungo tutto l'anno accademico.
Ogni prova prevede una sessione al calcolatore, comprendente una parte filtro ed una estesa. Il voto si ottiene solo svolgendo anche la parte estesa.
La prima parte è costituita da domande a risposte chiuse (prevalentemente esercizi).
La seconda parte è a risposte chiuse e aperte e verrà valutata solo per chi ha riportato un esito sufficiente nella prima parte. Questa parte verte anche su argomenti non inclusi nella prima parte, indicati con '+' nel programma in questo syllabus.
Orario di ricevimento
Inviare email per concordare un appuntamento
Aims
At the end of the course the student will knowledge of the components of a basic computer architecture and of the basics of assembly programming, skills for designing small modifications to the internal structure of a computer and for writing simple assembly programs, a also competence in choosing the best technology, in terms of performance, for some specific computing tasks.
Contents
- Main components of the hardware architecture of a computer.
- Instruction set architecture.
- Programming toolchain.
- Control of the datapath.
- Exception handling.
- I/O techniques.
- Memory hierarchies: cache
Detailed program
- Information representation in digital computers
- representation of non numeric information
- representation of positive and negative integer numbers
- fixed and floating point representation of numbers.
- Logic circuits
- combinatorial circuits
- sequential circuits and FSMs (Finite State Machines)
- overview of relevant circuits: decoder, multiplexer, register file, ALU, etc.
- Instruction Set Architecture
- von Neumann architecture,
- CPU, registers, ALU and memory,
- fundamental cycle of instruction execution (fetch/decode/execute),
- types and formats of MIPS instructions,
- addressing modes.
- Assembly language
- Symbolic format of instructions,
- Software development toolchain (compiler, assembler, linker, loader, debugger, etc.),
- Pseudo-instructions and assembler directives,
- Development of simple assembly programs,
- Programming conventions (memory, register names, etc.).
- Datapath
- Data path for each type of instruction,
- Data path control with FSM (multi-cycle implementation).
- +: pipelining and hazard handling
- Exception handling
- Taxonomy of exceptions in MIPS32 parlance.
- Modifications to the Control Unit FSM, Cause register, etc.
- Techniques for handling I/O
- Polling (transfers under program control),
- Interrupt,
- Direct Memory Access.
- Memory classess : cache
- Direct mapping cache,
- Fully associative cache,
- N-way set associative cache
- +: LRU replacement.
Prerequisites
Nothing
Teaching form
- 14 frontal lessons of 2 hours each held by the teacher in presence;
- 2 frontal lessons of 2 hours each held by the teacher remotely in asynchronous mode;
- 10 sessions for exercises of 2 hours each held by the teacher in presence, 50% frontal 50% interactive;
- 8 interactive laboratory lessons of 3 hours each held by the teacher in presence;
Textbook and teaching resource
- Textbook: David Patterson, John Hennessy: Computer Organization and Design, The Hardware/Software Interface. Fifth edition. Morgan Kaufmann (Elsevier)
- Other teaching material available on the elearning platform concerning lectures, practices, and laboratory, some self-evaluation tests, etc.
Semester
Second semester
Assessment method
The exam will be possible to be completed in two partial tests, to be held around mid-course and at the end of the period, or as always in a single test among those scheduled all aorund the academic year.
Each test is based only on a two-part computer-based assessment, one part blocking and one extended. A valid score is attainable only after the extended part.
The first part is built around questions with closed answers (mainly exercises).
The second part is with closed and open answers and can be taken only by students who passed the first assessment. This assessment revolves also around topics not asked in the first part, marked with '+' in the program in this syllabus.
Office hours
Send email to arrange an appointment.