Learning objectives
Knowledge and understanding
The purpose of the course to illustrate the basic mechanisms of operation of computing systems and in particular the interaction between the modules (CPU, memory, I / O) of a computer.
Applying knowledge and understanding
The student will acquire the ability to understand the basic functioning of modern CPUs.
Students completing the course will be able to write simple programs in Assembly.
Prerequisites
- - -
Course unit content
The purpose of the course is to give the students the basic concepts of the modern CPU architectures and computer systems. The course comprises the fundamental knowledge of the programming in language Assembly. The concepts are exposed in a general way; when necessary it is made directed reference the architecture of the INTEL CPU family.
Program
Introduction and history of computers:
* Turing machine
* Von Neumann architecture
Introduction to the architecture of the modern CPUs.
* RISC vs CISC
* Brief introduction to RISC processor with examples
* CPU micro-architecture
* Monocycle architecture
* Multicycle architecture
Advanced architectures:
* Pipeline and hazards
* Superscalar architectures and conflict management
Memories:
* Basic principles, semiconductor memories (ROM and RAM)
* Secondary memories: technologies and performance
* Memory systems hierarchy
* Locality concept
* Cache memories (address mapping, line size, replacement and writeback policies)
* Virtual memory systems.
Input/output subsystem:
* Polling
* Interrupt
* DMA
Introduction to the Assembly language for x86 architecture:
* Logical architecture of x86 CPUs
* Syntax. Addressing modes. Operations and pseudo-operations.
* DOS and BIOS functions
* Examples of programs in Assembly
Full programme
- - -
Bibliography
- A.S. Tanenbaum e T. Austin, “Architettura dei Calcolatori: un approccio strutturale”, sesta ed., Pearson/Prentice Hall, 2013
- Giacomo Bucci, “Calcolatori elettronici – Architettura e organizzazione”, Mc Graw-Hill, 2009
- William Stallings, “Architettura e organizzazione dei calcolatori. Progetto e prestazioni”, ottava ed., Pearson Prentice-Hall, 2010
- Carl Hamacher, Zvonko Vranesic, Safwat Zaky, “Introduzione all'architettura dei calcolatori”, seconda ed., McGraw-Hill, 2007
Teaching methods
The course includes around 40 hours of traditional frontal lectures and 24 hours of training in the laboratory.
Assessment methods and criteria
The exam consists in two parts, which can be taken independently, in terms of both order and exam session. The first part consists in an oral examination made in written, with questions about the theory and an exercise on cache memories. The second part is a practical exam in laboratory requiring to write a program in Assembly x86. The final grade will be the average of the two grades.
Other information
- - -
2030 agenda goals for sustainable development
- - -