- Architettura degli Elaboratori
- Introduzione
Syllabus del corso
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
- 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. Fifth edition. Morgan Kaufmann (Elsevier)
- 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.
La prima parte è costituita da domande a risposta chiusa (prevalentemente esercizi), 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. Verrà indicato a lezione quali argomenti saranno nelle due parti.
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
- 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.
The first part is built around closed answer questions (mainly exercises), 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. During the lectures it will be explained which topics will be in each part.
Office hours
Send email to arrange an appointment.
Scheda del corso
Staff
-
Giulia Cisotto
-
Claudio Ferretti
-
Elisabetta Fersini
-
Simone Fontana
-
Sara Lucia Manzoni
-
Domenico Giorgio Sorrenti
-
Federica Di Lauro