- 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,
- +: dettagli dei calcoli in virgola mobile con IEEE754.
- 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
- lezioni
- esercitazioni
- laboratorio
- studio individuale
Le lezioni sono tenute in italiano e come usuale in aula.
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 obbligatoria ed una facoltativa. Il voto pieno si ottiene solo svolgendo anche la parte facoltativa.
La prima parte è costituita da domande a risposte chiuse (prevalentemente esercizi) e aperte, e verte su un insieme ridotto di argomenti, definiti come "Non Eludibili".
La seconda parte è a risposte aperte e verrà valutata solo per chi ha riportato un esito sufficiente nella prima parte. Questa parte è di approfondimento e 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 number
- +: details of computing with IEEE754 floating point 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
- lectures
- practice / exercise
- laboratory
- personal study
The course is taught in Italian and are as usual held in the lecture room.
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 mandatory and one optional. Full score is attainable only after the optional part.
The first part is built around questions with closed answers (mainly exercises) and open answers, and it revolves around "Non Eludibili" (which cannot be eluded) subset of topics.
The second part is with open answers and can be taken only by students who passed the first assessment. This assessment is "Approfondimento", i.e., more in-depth, as it 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.
Key information
Staff
-
Giulia Cisotto
-
Federica Di Lauro
-
Claudio Ferretti
-
Elisabetta Fersini
-
Sara Lucia Manzoni
-
Lorenzo Olearo