Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2020-2021
  6. 1st year
  1. Computer Architecture
  2. Summary
Insegnamento Course full name
Computer Architecture
Course ID number
2021-1-E3101Q104
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

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

  1. Rappresentazione del'informazione
    • rappresentazione dell'informazione non numerica,
    • rappresentazione dei numeri interi con e senza segno,
    • rappresentazione dei numeri in virgola fissa e mobile.
  2. Circuiti logici
    • reti combinatorie,
    • reti sequenziali e FSM (Finite State Machine),
    • rassegna di circuiti notevoli (decoder, multiplexer, register file, ALU, etc.).
  3. 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.
  4. 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.).
  5. Datapath
    • percorsi dei dati per le diverse classi di istruzioni,
    • controllo del percorso dei dati con FSM (implementazione multi-ciclo).
    • +: pipelining e gestione hazard
  6. Gestione delle eccezioni
    • tassonomia di eccezioni in terminologia MIPS32,
    • modifiche alla FSM di controllo, registro Cause, etc.
  7. Tecniche di gestione dell'ingresso/uscita
    • controllo di programma,
    • interruzione di programma,
    • accesso diretto alla memoria.
  8. Gerarchie di memoria: cache
    • cache a mappatura diretta,
    • cache fully associative,
    • cache n-way set associative.

Prerequisiti

Nessuno

Modalità didattica

  • lezioni
  • esercitazioni
  • laboratorio
  • studio individuale

Le lezioni sono tenute in italiano e prevedibilmente in aula con streaming.

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, se la situazione sanitaria lo permetterà, può essere svolto in due prove parziali, valide ciascuna per il 50% del voto finale, 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

Export

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

  1. Information representation in digital computers
    • representation of non numeric information
    • representation of positive and negative integer numbers
    • fixed and floating point representation of number
  2. Logic circuits
    • combinatorial circuits
    • sequential circuits and FSMs (Finite State Machines)
    • overview of relevant circuits: decoder, multiplexer, register file, ALU, etc.
  3. 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.
  4. 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.).
  5. Datapath
    • Data path for each type of instruction,
    • Data path control with FSM (multi-cycle implementation).
    • +: pipelining and hazard handling
  6. Exception handling
    • Taxonomy of exceptions in MIPS32 parlance. 
    • Modifications to the Control Unit FSM, Cause register, etc.
  7. Techniques for handling I/O
    • Polling (transfers under program control),
    • Interrupt,
    • Direct Memory Access.
  8. Memory classess : cache
    • Direct mapping cache,
    • Fully associative cache,
    • N-way set associative cache.

Prerequisites

Nothing

Teaching form

  • lectures
  • practice / exercise
  • laboratory
  • personal study

The course is taught in Italian and are expected to be held in the lecture room and streamed online.



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, if allowed by the health situation, can be completed in two partial tests, to earn in each of them 50% of the final score, 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.

Enter

Key information

Field of research
ING-INF/05
ECTS
8
Term
Second semester
Activity type
Mandatory
Course Length (Hours)
76
Degree Course Type
Degree Course

Staff

    Teacher

  • Claudio Ferretti
    Claudio Ferretti
  • EF
    Elisabetta Fersini
  • Simone Fontana
    Simone Fontana
  • Sara Lucia Manzoni
    Sara Lucia Manzoni
  • CR
    Claudia Raibulet
  • Assistant

  • FD
    Federica Di Lauro

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics