Computer Architecture and Lab F - N
Module Computer Architecture

Academic Year 2022/2023 - Teacher: EMILIANO ALESSIO TRAMONTANA

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

Classroom lectures and lab tutorials with exercises

Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Required Prerequisites

No previous exam or knowledge required.

Attendance of Lessons

To fully understand the content of the course and the presented solutions, attending lessons and laboratory lessons is highly recommended.

Detailed Course Content

  1. Computing machines: historical background
  2. Computing machines: functional units, architectures
  3. Algebraic structures, Boole algebra
  4. Logic gates, sequential circuits, flip-flops
  5. RISC and CISC architectures, addressing modes
  6. Type and format of instructions, examples of real assembly languages
  7. I/O operations, interrupt control and service
  8. Supporting software, assembly languages and C language, operating systems
  9. Basic structure of a processor, microarchitectures RISC and CISC
  10. High-performance processors, prediction techniques, superscalar processors
  11. Main memory devides, DMA, hierarchy of memories, cache
  12. Efficient circuits for binary arithmetic

Textbook Information

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

Course Planning

 SubjectsText References
1Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.C. 1
2Macchine da calcolo: unità funzionali, architettureC. 1
3Strutture algebriche, algebre di Boole.C. 2
4Realizzazione di porte logiche, circuiti sequenziali, flip-flop.A
5Architetture RISC e CISC, modi d'indirizzamentoC. 2
6Tipi e formati di istruzioni, esempi di linguaggi assemblativiC.2
7Operazioni di I/O, controllo e servizio delle interruzioni.C. 3
8Software di supporto, linguaggi assemblativi e C, sistema operativoC. 4
9Struttura di base del processore, microarchitetture RISC e CISCC. 5
10Processori ad alte prestazioni, tecniche predittive, processori superscalariC. 6
11Dispositivi di memoria principale, DMA, gerarchia delle memorie, cacheC. 8
12Circuiti efficienti per l'aritmetica binariaC. 9

Learning Assessment

Learning Assessment Procedures

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

Working on a project is optional.

If some conditions arise it would be possible that the exam will be performed remotely.

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