Computer Architecture and Lab A - E
Module LAB

Academic Year 2024/2025 - 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

Frontal lessons, examples and exercises done in the classroom.

The material projected during the lesson is available in the telegram channel accessible at the following link: https://t.me/architetturaFN

If the teaching is taught in mixed mode or remotely, the necessary changes may be introduced with respect to what was previously declared, in order to respect the planned program and reported in the syllabus.

Students with disabilities and/or DSA must contact the teacher, the CInAP representative of the DMI and the CInAP well in advance of the exam date to communicate that they intend to take the exam using the appropriate compensatory measures (which will be indicated by the 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

  1. Exercises on binary system and binary data representation
  2. Exercises on analysis and synthesis of logical functions
  3. Exercises on sequential circuits
  4. Exercises in assembly (scalar product and minimum search)
  5. Exercises in assembly (subroutine call)
  6. Exercises on RISC microarchitectures
  7. Exercises on pipelining
  8. Exercises on I/O interfaces
  9. Exercises on arithmetic circuits

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
1Exercises on binary system and binary data representationChapter 1 (1.4-1.5) 
2Exercises on analysis and synthesis of logical functionsAppendix A (A.1-A4) 
3Exercises on sequential circuits Appendix A (A.5-A.10) 
4Exercises in assembly (scalar product and minimum search)Chapter 2 (2.1-2.5, 2.11, App 2.1-2.2(ARM)) 
5Exercises in assembly (subroutine call)Chapter 2 (2.6-2.10, 2.12-2.13 App 2.3-2.4(ARM)) 
6Exercises on RISC microarchitecturesChapter 5
7Exercises on pipeliningChapter 6
8Exercises on I/O interfacesChapter 7
9Exercises on arithmetic circuitsChapter 9 (9.1-9.4, 9.6-9.8)  

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