Computer Architecture and Lab A - EModule Computer Architecture
Academic Year 2022/2023 - Teacher: CORRADO SANTOROExpected 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
Required Prerequisites
Nessuno
Attendance of Lessons
Detailed Course Content
- Computing machines: historical background
- Computing machines: functional units, architectures
- Algebraic structures, Boole algebra
- Logic gates, sequential circuits, flip-flops
- RISC and CISC architectures, addressing modes
- Type and format of instructions, examples of real assembly languages
- I/O operations, interrupt control and service
- Supporting software, assembly languages and C language, operating systems
- Basic structure of a processor, microarchitectures RISC and CISC
- High-performance processors, prediction techniques, superscalar processors
- Main memory devides, DMA, hierarchy of memories
- 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
- Supplementary notes provided by the teacher during lecture development.
Course Planning
Subjects | Text References | |
---|---|---|
1 | Course objectives; computing machines; historical background | 1: 1.7 |
2 | Computing machines: functional units, architectures | 1: 1.0-3, 1.6 |
3 | Algbraic structures; Boole algebra | 2 |
4 | Logic gates; sequential circuits; flip-flop | 1: A.5-6 |
5 | RISC/CISC, addressing modes, ISA | 1: 2.0-4, A2.1-2 |
6 | Instruction types and formats; examples of real assembly languages | 1: 2.8, 2.10.2, A2.4-5 |
7 | I/O operations, control and service of interrupts | 1: 3.0-2.5, A3.1 |
8 | Support software, assembly languages, C, operating system | 1: 4.0-9.2 |
9 | Structure of a processor, microarchitectures, RISC, CISC | 1: 5.0-4 |
10 | High-performace processors, prediction techniques, superscalar processors | 1: 6.6-10 |
11 | Main memory devices, DMA, memory gerarchies | 1: 8.0-5 |
12 | Efficient circuits for binary arithmetic | 1: 9.2-4, 9.6 |
Learning Assessment
Learning Assessment Procedures
- Practical test
- Oral examination
- Optional project
Examples of frequently asked questions and / or exercises
- binary/decimal/hexadecimal conversion
- Two's complement sum
- Floating point representation
- Logic function analysis
- Logic function synthesis, Karnaugh maps
- Binary adder circuit
- Multiplier and divider circuits
- Word alignment in memory
- Instruction-Set Architecture
- Data Path
- Pipeline
- CISC Processors, microprogrammazione
- RISC/CISC Comparison
- Cache Memory
- Exercises in assembly on vectors
- Sum of vectors
- Linear search in a vector
- Filtering of a vector