Computer Architecture Single channel
Chair (Coordinator) and Rapporteur: DANIELE DE SENSI
Module 1: Unit 1
- Activity type
- Discipline Informatiche
- SSD
- INF/01
- Year
- 1st year
- Semester
- 2nd semester
- CFU
- 6
- Hours distribution
- 36 classroom hours, 24 seminars hours
- Lecturers
- ALESSANDRO MEI
Module 2: Unit 2
- Activity type
- Discipline Informatiche
- SSD
- INF/01
- Year
- 1st year
- Semester
- 1st semester
- CFU
- 6
- Hours distribution
- 36 classroom hours, 24 seminars hours
- Lecturers
- DANIELE DE SENSI
Objectives
General goals:
How to design combinational and sequential circuits and to make students understand the principles used to design modern computers. In particular, the course deals with the internal structure of the microprocessor and the ideas that have allowed the extraordinary evolution of computing power over the last 30 years. such as pipelining, caching, branch prediction, and multi-processing.
Specific goals:
binary encoding of different data types, boolean algebra, analysis and synthesis of combinational circuits, flip-flop, analysis and synthesis of sequential circuits, registers, , interconnection between register and functional units. Moreover, the course covers the basic principles of microprocessor organization and the concepts of pipelining, caching, branch prediction, virtualization and multi-processing. Furthermore, the course covers assembly programming.
Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer. Moreover, students will acquire knowledge about the organization of the microprocessor MIPS, as implementation of the general ideas that are part of the objectives of the course. Furthermore, the student will acquire knowledge on how the assembly programs are structured, including data structures, standard programming paradigms and recursion.
Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks. Moreover, the knowledge is applied to the MIPS architecture, enabling students to understand the implications of programming choices on the performance of programs on specific hardware. This result is obtained through programming and performance evaluation exercises.
Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task. Moreover, the student will be able to understand the problems related to the performance of the software on specific hardware and to independently evaluate their characteristics.
Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit. To instruct on the rigorous presentation of formal topics.
Learning skills:
Understanding the differences and advantages of the different design techniques. Moreover, the course lays the foundations for the comprehension of the modules constituting the course of Operating Systems and of all the courses of programming, including the programming of parallel systems.
Learning outcomes
Module: Unit 1
N/D
Module: Unit 2
General goals:
How to design combinational and sequential circuits and to make students understand the principles used to design modern computers. In particular, the course deals with the internal structure of the microprocessor and the ideas that have allowed the extraordinary evolution of computing power over the last 30 years. such as pipelining, caching, branch prediction, and multi-processing.
Specific goals:
binary encoding of different data types, boolean algebra, analysis and synthesis of combinational circuits, flip-flop, analysis and synthesis of sequential circuits, registers, , interconnection between register and functional units. Moreover, the course covers the basic principles of microprocessor organization and the concepts of pipelining, caching, branch prediction, virtualization and multi-processing. Furthermore, the course covers assembly programming.
Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer. Moreover, students will acquire knowledge about the organization of the microprocessor MIPS, as implementation of the general ideas that are part of the objectives of the course. Furthermore, the student will acquire knowledge on how the assembly programs are structured, including data structures, standard programming paradigms and recursion.
Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks. Moreover, the knowledge is applied to the MIPS architecture, enabling students to understand the implications of programming choices on the performance of programs on specific hardware. This result is obtained through programming and performance evaluation exercises.
Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task. Moreover, the student will be able to understand the problems related to the performance of the software on specific hardware and to independently evaluate their characteristics.
Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit. To instruct on the rigorous presentation of formal topics.
Learning skills:
Understanding the differences and advantages of the different design techniques. Moreover, the course lays the foundations for the comprehension of the modules constituting the course of Operating Systems and of all the courses of programming, including the programming of parallel systems.
Prerequisites
Module: Unit 1
No particular pre-requisite.
Module: Unit 2
Basic math
Programme
Module: Unit 1
1. Instructions: The language of the computer
2. The processor
3. Pipelining
4. Cache
5. Virtual memory
6. Parallelism
Module: Unit 2
- Number systems, operations on binary numbers, logic gates
- Combinational Logic Design: Boolean algebra, Karnaugh maps, combinational building blocks, timing
- Sequential Logic Design: Latches and FlipFlops, synchronous logic design, Finite State Machines, timing of sequential logic
- Digital Building Blocks: arithmetic circuits, sequential building blocks, memory arrays, logic arrays
Books
Module: Unit 1
Book: David A. Patterson & John L. Hennessy
Computer Organization and Design
The Hardware Software Interface: Risc-V Edition
Elsevier Science, 2017
Module: Unit 2
Digital Design and Computer Architecture, ARM Edition, by Sarah Harris and David Harris (ISBN: 978-0-12-800056-4)
Bibliography
Module: Unit 1
No other books are needed.
Module: Unit 2
N/D
Lessons mode
Module: Unit 1
N/D
Module: Unit 2
The course will be delivered through in-person lectures, integrating theoretical lessons with practical exercises. Students will participate in classroom sessions, supported by digital materials and optional online resources. Active engagement and hands-on design assignments will be emphasized to reinforce key concepts.
Frequency
Module: Unit 1
Attending class is not mandatory.
Module: Unit 2
It is not mandatory to attend classes, but it is strongly recommended.
Exam mode
Module: Unit 1
The exam consists of a midterm and a final exam. Both tests are written, the oral exam is optional.
Module: Unit 2
Written and oral exams, both covering the topics shown in the course
Example exam questions
Module: Unit 1
N/D
Module: Unit 2
N/D
Arguments
Module: Unit 1
N/D
Module: Unit 2
- Number Systems
- Boolean Algebra and Combinational Circuits
- Sequential Circuits
- Common Circuits
- Academic year2024/2025
- Degree program to which the course belongsApplied Computer Science and Artificial Intelligence
- Languageeng
- CFU12 CFU, distributed among 2 integrated didactic modules
- Total duration120 hours