COMPUTER ARCHITECTURES, MICROCONTROLLERS AND IoT TECHNOLOGIES M - Z
Module COMPUTER ARCHITECTURES

Academic Year 2025/2026 - Teacher: Giuseppe ASCIA

Expected Learning Outcomes

The course presents the fundamental concepts of computer architectures.

In the first part the course introduces the techniques and methodologies for the design of digital systems.

In the second part, the course presents the components of a computer and their organization, some instruction set architectures of the processors, some techniques for an efficient implementation of the processors and the memory subsystem.

Furthermore, in order to better understand the functioning of the processor, the course introduces the student to the assembly programming of a RISC processor.

Knowledge and understanding

The student will know:

- the basic techniques for the design of combinational and sequential digital circuits.

- the elementary modules of a computer

- the main  instruction set architectures.

- the basic architectures of RISC processors

- the assembly of a RISC processor

Applying knowledge and understanding

The student will be able to:

-design simple combinational and synchronous sequential circuits

- evaluate the performance of a computer and the impact of architectural choices on performance

-write programs in the assembly language of a RISC processor

Making judgements

The student will be able to assess the impact of architectural choices on the performance of a computer.

Communication skills

The student will be able to clearly and rigorously present the acquired knowledge and how to apply it for the design and evaluation of simple computing systems.

Learning skills

The student will be able to independently learn:

- additional basic features of processor architectures

- the assembly of other processors

Course Structure

The course will be organized in lectures, exercises, practical experiences and presentation of use cases.

If the teaching is given in a mixed or remote mode, the necessary changes with respect to what was previously stated may be introduced, in order to respect the  program  planned and reported in the syllabus.

Required Prerequisites

Information Representation in Computers. Algorithms. Control Sequences. Data types. Pointers. Functions. Parameters Passing to a function. State concept. Finite state machine.

Attendance of Lessons

Attendance is not required, although strongly recommended.

Detailed Course Content

Part I Digital Design

*1.1 Combinational circuits design 

Switching Algebra. Minimum Boolean expressions. Minimization using Karnaugh maps and Quine-McCluckey method.

*1.2 Synchronous sequential circuits Design

Introduction to sequential machines. The memory elements. Synthesis of synchronous sequential circuits. Minimization of finite state machines.

1.3 Design of a digital system

Design flow of a digital system. Datapath and control unit. Components of a digital system. Arithmetic circuits.

Part II Computer architecture 

*2.1 Computer abstractions and technology

The types of computers and their characteristics. The components of a computer. Computer Organization. Computer performance evaluation. Amdhal’s law.

*2.2 The computer language: the Assembly

Instruction Set Architecture. Translation and starting a program: assembler, linker, and loader. RISC-V Instruction Set Architecture. An Instruction Set Simulator for RISC-V processor. Assembly of RISC-V processor. Arithmetic/logical instructions. Memory access. System calls. Array. String. Procedure calls

*2.3 Computer Organization

Sequential organization of a processor. Datapath of a sequential processor. Control unit of a sequential processor.

Organization of pipelined processor. Pipeline Hazard. Performance evaluation of a pipelined processor. Techniques for detecting and resolving pipeline hazards. Code scheduling for hazard minimization.

2.4 The Memory subsystem.

Static and dynamic RAM memories. 

*Cache memories. Block placement policies, block identification, block replacement and write policy. Memory Performance. Techniques for improving cache performance. 


* Minimum knowledge required to pass the exam.


Knowledge of the topics marked with an asterisk is necessary but not sufficient to pass the exam. Answering questions on these topics adequately or more than adequately does not guarantee passing the exam.

Textbook Information

[T1] Fummi, Sami, Silvano, “Progettazione digitale”,  2/ed McGraw-Hill

[T2] Patterson, Hennessy, “Struttura e progetto dei calcolatori – Progettare con RISC-V”, Zanichelli

[T3] On line Course material ( Microsoft Teams Computer Architectures (M-Z), AA. 25-26 code: axe7wtv)

Course Planning

 SubjectsText References
1Combinational circuits design. Algebra. Minimum Boolean expressions. Minimization using Karnaugh maps.  Estimated time: Estimated time: 4 hours lectures + 4 hours exercisesT1 chapters 3 and 4, T3
2Synchronous sequential circuits design. Introduction to sequential machines. The memory elements. Synthesis of synchronous sequential circuits. Minimization of finite state machines.  Estimated time: 4 hours lectures + 8 hours exercisesT1 chapters 5 and 6, T3 
3Design of a digital system. Design flow of a digital system. Datapath and control unit. Components of a digital system. Arithmetic circuits.  Estimated time: 2 hours lectures + 2 hours exercisesT1 chapters 7 and 8, T2 chapter 3, T3
4The types of computers and their characteristics. The components of a computer. Computer Organization. Computer performance evaluation.  Estimated time: 1 hour lectures + 2 hours exercisesT2 chapter 1, T3  
5Instruction Set Architecture.  Estimated time: 2 hours lecturesT2 chapter 2, T3 
6Sequential organization of a processor. Datapath of a sequential processor. Control unit of a sequential processor. Estimated time: 2 hours lectures + 1 hour exercisesT2 chapter 4, T3 
7Organization of pipelined processor. Pipeline Hazards.  Estimated time: 4 hours lectures + 2 hours exercisesT2 chapter 4, T3
8Translation and starting a program: assembler, linker, and loader. An Instruction Set Simulator for RISC-V processor.  Estimated time: 1 hour lectures + 1 hour exercisesT3
9Arithmetic/logical instructions. Memory access.  Flow control instructions.  Estimated time: 1 hour lectures + 4 hours exercisesT3
10System calls. Array. Strings. Procedure calls.   Estimated time: 1 hour lectures + 4 hours exercisesT3
11Memory subsystem. Static and dynamic RAM memories.  Estimated time: 2 hours lecturesT2 chapter 5, T3 
12Cache memories. Block placement policies, block identification, block replacement and write policy. Cache Performance.  Estimated time: 2 hours lectures + 1 hour exercises T2 chapter 5, T3 
13Techniques for improving cache performance.  Estimated time: 2 hours lectures + 1 hour exercisesT2 chapter 5, T3 

Learning Assessment

Learning Assessment Procedures

The exam consists of a single written and computer test. The exam includes:

- two exercises on circuit design (11 points);

- the development of an assembly program (7 points);

-a computer performance evaluation exercise and two question on computer architectures (14 points).

To pass the test it is necessary to obtain a minimum score of 18, with at least 6/11 points for the questions on circuit design, at least 4/7 points for the development of the assembly program and at least 8/14 points for the questions on architectures ( performance evaluation + computer architectures).

There are no ongoing tests.

Verification of learning can also be carried out by telematic means, if the conditions require it.

Examples of frequently asked questions and / or exercises

Examples of frequently asked questions and / or exercises are available on Microsoft Teams  (Computer Architectures (M-Z), AA. 25-26 code: axe7wtv)