Computer Architecture and Lab A - E
Module Computer Architecture

Academic Year 2025/2026 - Teacher: GABRIELLA VERGA

Expected Learning Outcomes

Knowledge and understanding: To acquire knowledge and understanding of fundamental concepts of computer systems architecture and of methodological principles that drive its development, in the historical perspective of their evolution.

Applying knowledge and understanding: To acquire problem solving capabilities in computer system design, by trying to solve on-purpose proposed problems, and abilities to make use of, to design and to implement software tools, such as simulators and interpreters, for abstract machines at the lowest levels of computer system organization.

Making judgements: To be able to compare and evaluate the quality of solutions to design problems for computer systems.

Communication skills: To acquire communication skills and proper language to communicate, even with nonexpert people, about problems relating to functioning, design, implementation, and evaluation of computer systems.

Learning skills: To develop the ability to adapt one's own knowledge to the rapid evolution of the discipline and to keep up-to-date through specialized sources in the field.

Course Structure

Lectures, examples, and in-class exercises.

Students with disabilities and/or specific learning disorders (SLD) must contact, well in advance of the exam date, the instructor, the CInAP representative of the DMI, and CInAP itself to inform them of their intention to take the exam with the appropriate compensatory measures (as indicated by CInAP).

Required Prerequisites

No previous exam or knowledge required.

Attendance of Lessons

For a full understanding of the course topics and techniques presented, attendance at lectures and exercises is mandatory.

Detailed Course Content

Introduction to computers using categories, and the main functional components. Representation of numbers and characters using the binary system. Methods for hardware parallelization. Brief history of computers, and generations of computers.

RISC and CISC architectures, addressing modes. Types and formats of RISC instructions, examples of Assembly language programs in RISC. Stack management and subroutines. Logical instructions, shifting, rotation. CISC instruction set.

Input/output operations, access to I/O devices, receiving and serving interrupts.

Support software, assembly languages and C, operating system.

Base structure of the processor, hardware components for RISC architectures: register bank, ALU, data path, instruction fetching section. Execution steps, jumps, memory waiting. Wired control and control signals. CISC processors, bus architecture, microprogrammed control.

Pipeline organization, pipeline problems, data dependency, memory delays, jump delays, resource limitations. Pipeline performance evaluation. Superscalar processors.

Input/output system, bus structure, synchronous, asynchronous buses, bus arbitration.

Memory system, static, dynamic memories, memory cells, chip memory organization. Memory hierarchy, address schemes and replacement for cache memory.

Efficient circuits for binary arithmetic.

Textbook Information

C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori. Terza edizione, McGraw-Hill Education (Italy), 2013

Course Planning

 SubjectsText References
1Introduction to the course, computer categories, functional componentsC.1
2Instructions, execution, performance, technological generationsC.1
3Memory, addressing, operations, instructions, RTN notation, additions, addressing modes, assemblingC.2
4Stack, subroutines, parameter passing by registers and stack, activation areasC.2
5Arithmetic and logic operations, CISC instructions, flags, instructions codificationC.2
6I/O operations, interrupts, interrupt service routine, multiple interrupts, interrupt handlerC.3
7Tools for assembly languages, brief introduction to operating systemsC.4
8Hardware components, stages, register files, data path, address generator, execution steps, jumpsC.5
9Control signals, wired control, generation of control signals, CISC architecture, microprogrammed controlC.5
10Pipeline, data dependence, delays for memory and for jumpsC.6
11Jum predictions, automata, jump buffer, performance, superscalar architecture and its problemsC.6
12Bus: synchronous, multi cycle, asynchronous, arbitrationC.7
13Memory devices, memory hierarchy, static and dynamic memoryC.8
14Memory modules and their organization, locality principles, cache hit and cache missC.8
15Direct, associative, and group addressing, stale data, substitution algorithms, performanceC.8
16Circuits for binary operationsC.9

Learning Assessment

Learning Assessment Procedures

The exam consists of a written part and an oral part.


The exam will be given an excellent grade (28 to 30 cum laude) if the candidate demonstrates a deep knowledge of the course concepts and precision in their presentation. An intermediate grade (24 to 27) will be given if the exam shows a partial understanding of the topics. A barely sufficient grade (18 to 23) will be given when, although the topics are partially known, they are presented in a superficial way.

Examples of frequently asked questions and / or exercises

Convert from binary to decimal and vice versa

Logic gates and their truth tables 

Instructions in Assembly and Assembly programs

Data path for program execution

Execution in pipeline

VERSIONE IN ITALIANO