Computer Architecture Ii

A.Y. 2022/2023
6
Max ECTS
60
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course provides the knowledge of the digital architectures and in particular of pipelines, multi-core and memory hierarchies better understand operating systems and to deeply understand how software can be optimized. The instruments for a quantitative evaluation of an architecture are also provided.
Expected learning outcomes
The student will be able to understand how pipeline and multicore architectures work, how memory hierarchies are handled and what is the hardware support to virtual memory;
(s)he will understand the types of connections between different components and the various policies to handle I/O. The student will have the tools needed to evaluate computer performances and to optimize applications.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Edition 1

Lesson period
Second semester
Course syllabus
THEORY
Introduction. CPU and UC single cycle, multi-cycle and pipelined. Hazard and stalls. Advanced pipelines: multiple-issue and multi-core.
Interrupts and exceptions. HW processing of exceptions. Memory hierarchy. Virtual memory
Input/Output and evaluation metric.

LABORATORY
Laboratory on writing correctly programs in assembly language.
Prerequisites for admission
None. It is suggested to follow this course after Architettura degli Elaboratori I.
Teaching methods
frontal lessons + laboratory
Frequency modality: in presence.
Teaching Resources
Basic text (available in both English and Italian):
· "Computer Organization & Design: The Hardware/Software Interface", D.A. Patterson and J.L. Hennessy, Morgan Kaufmann Publishers, New Sixth Edition, 2020. NB Morgan Kaufman also published a version of the text for RISC-V and for ARM, not adopted in this course.
·
Assessment methods and Criteria
The evaluation is performed through a written exam followed by an oral exam and a laboratory test.
In the written exam, that lasts three hours, the student has to solve exercises that required to apply the concepts learnt in the course and to answer to some open questions. The oral exam is based on the discussion on what had been produced in the written exam and on questions related to the program.
The laboratory test consists of a realization on a PC of a set of exercises of digital architecture design.
Each exam is evaluated in thirtieth and final evaluation is the average of the score assigned to the three exams.
In all three exams, evaluation takes into consideration the level and depth of knowledge and the clarity of language.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 24 hours
Lessons: 36 hours
Shifts:
Turno A
Professor: Tarini Marco

Edition 2

Responsible
Lesson period
Second semester
For the theory part, lectures will be given synchronously from remote. A web conference platform (Teams or Zoom) will be used. Each lesson will be recorded and made available asynchronously through video files uploaded to the Ariel platform.

For the laboratory part, a synchronous mixed modality will be implemented: part of the students attending in class (on a voluntary basis and in compliance with health and fair-sharing constraints) and the rest from remote. For the remote part, a web conference platform (Teams or Zoom) will be used. The sessions will be recorded and made available to everyone asynchronously on the Ariel platform (https://nbasilicoae2.ariel.ctu.unimi.it/), where the instructions for participating in the sessions in person will also be described.

The programs will not be modified and the reference material will also include video lessons.

The written exam for the theory and laboratory parts will be done remotely (Exam.net platform or equivalent ones).

The modalities described above will be put in place in the event of restrictions imposed by the health emergency. They will be applied in whole or in part depending on the criticality of the specific situation. The organizational details will be communicated in time on the Ariel page of the course (https://nbasilicoae2.ariel.ctu.unimi.it/).
Course syllabus
For the theory part:
- Single-cycle and multiple-cycle CPU: pipeline, criticalities, interrupts, exceptions, and their management;
- static and dynamic memory, virtual memory, memory hierarchy;
- input/output;
- performance evaluation metrics.

For the laboratory part, in addition to a tutorial on the use of software tools, sessions will propose Assembly programming exercises covering the following topics:
- use of memory;
- system calls;
- flow control;
- definition and call to procedures;
- handling of exceptions.

The theory and laboratory parts are carried out in parallel. The beginning of the lab sessions is usually delayed of one/two weeks.
Prerequisites for admission
Attendance of the course Computer Architecture I is suggested.
Teaching methods
The theory part is given with frontal lectures where slides are presented. Slides are made available in PDF format through the Ariel platform (https://nbasilicoae2.ariel.ctu.unimi.it/).

The laboratory part proposes guided exercising sessions at the PC. The adopted software tools and the exercises (instructions and selected solutions) are made available through the Ariel platform.

Attendance is recommended for both the theory and the laboratory part.
Teaching Resources
Both the theory and the laboratory part are based on the topics covered in: "Computer Organization & Design: The Hardware/Software Interface" by David A. Patterson and John L. Hennessy, Morgan Kaufmann Publishers.

For further support, slides, ecxercises, and other supplementary material are provided during the course.
Assessment methods and Criteria
For the theory part, there will be a written test lasting at most 3 hours where the resolution of an adequate number of exercises is proposed. Each exercise involves the application of the principles and techniques presented during the lectures. During the exam, consulting any material is forbidden. "In itinere" tests could be done during the course.

For the laboratory part, the exam consists in carrying out some proposed exercises on the PC and lasts about 1 hour. Each exercise requires writing an Assembly program for the MIPS architecture according to specific functional requirements. During the exam, specific material approved by the teacher can be consulted.

Both tests, theory and laboratory, result in a grade out of thirty which is communicated through the Ariel platform (optionally also by email). If both grades are greater than or equal to 18, the exam is passed with a grade equal to the weighted average of the theory grade (weight 2/3) and the laboratory grade (weight 1/3). The two tests can be passed in different exam sessions but in a time span of at most three successive exam sessions or six months (the less restrictive rule will be applied).

The assessments will take into account: confidence in applying techniques, correctness and elegance of the solutions, clarity of presentation. The tests and their assessments will not be differentiated on the basis of attendance.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 24 hours
Lessons: 36 hours
Shifts:
Professor: Basilico Nicola
Turno C
Professor: Re' Matteo
Professor(s)
Reception:
Tuesday 14:30-17:30 (or by appointment)
Department (Via Celoria 18) -- 4th floor.