Computer Architecture

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2018/2019
Year: 
1
Academic year in which the course will be held: 
2018/2019
Course type: 
Basic compulsory subjects
Language: 
Italian
Credits: 
9
Period: 
First Semester
Standard lectures hours: 
80
Detail of lecture’s hours: 
Lesson (56 hours), Exercise (24 hours)
Requirements: 

No specific technical or scientific knowledge is required.
Comprehending written English is useful to get access the huge amount of available documentation.

Final Examination: 
Orale

The exam consists of a 1.5 hour written test. The test includes 4 exercises: 3 exercises require design skills, one tests the acquired knowledge. Every exercise is rated 0 to 8. An oral exam is carried out only upon request by the teacher, when the written test does not allow for a proper evaluation. As a result of the oral, the grade can change of up to 3 points.
Students can have a look at their corrected tests before the final grade is awarded.
No lab test is required, because lab activities are tested in the Interdisciplinary lab course.

Assessment: 
Voto Finale

The course provides the minimum knowledge and skills that are necessary to design electronic computer components and to program at the assembly level.
The computing machine is seen as a hierarchy of layers, involving abstract and/or concrete machines.
In detail the course aims at providing:
 Fundamentals of logic electronic circuits and the related design skills.
 The knowledge of the basic knowledge of computer hardware organization.
 Assembly programming skills.
 The basic understanding of the the functionality provided by hardware and used by operating systems and application programs.
 The basic knowledge of a real machine, namely the MIPS CPU.
An additional goal consists in teaching the specific technical language in English.
Expected outcomes:
 Knowledge and understanding
 Building principles and characteristics of memory circuits commonly used in electronic computers.
 Building principles and characteristics of cache memory circuits.
 Building principles of elaboration units (datapaths) and control units. Microprogramming.
 Building principles and working characteristics of buses.
 Knowledge of the structure and functionality of I/O devices.
 Applied knowledge and understanding
 Analysis, design and optimization of combinatorial circuits, both using Boolean algebra and using library components. Elementary performance analysis.
 Analysis, design and optimization of sequential circuits, possibly using library components.
 Elementary performance analysis of cache memories.
 Advanced assembly programming (including dynamic record allocation and recursion).
 Analysis skills
 Ability to evaluate trade-off concerning design issues involving cost of design, cost of components and performance.
 Learning skills
 The ability to relate techniques, methods and tools to the characteristics of computer organization and components –developed throughout the course– enable students to understand and learn new techniques, methods and tools, as well as to adapt and refine their knowledge and skills.
 Communication skills
 Knowledge of circuit and computer component description notations.
 Knowledge of computer design terminology and slang.

Layered architecture. Computer building elements and principles. Lesson hours: 3 Exercise hours: 0
Binary arithmetic. Binary representation of characters and other types of information. Lesson hours: 7 Exercise hours: 1
Boolean algebra. Equivalence of Boolean operators and logic ports. Lesson hours: 4 Exercise hours: 1
Combinatorial circuits. Synthesis, normal forms, Karnaugh maps. Lesson hours: 4 Exercise hours: 3
Combinatorial library circuits; ALU; synthesis of combinatorial circuits via library components. Lesson hours: 3 Exercise hours: 2
Flip-flop, sequential library components. Design of sequential circuits. Lesson hours: 5 Exercise hours: 1
Memories. Cache memory. Virtual memory. Paging. Lesson hours: 4 Exercise hours: 2
Building a data path. Single-cycle CPU. Multiple-cycle CPU. Lesson hours: 6 Exercise hours: 0
Hardwired and microprogrammed Control Unit. Microprogramming. 6 2
Pipeline architectures. Lesson hours: 2 Exercise hours: 0
I/O techniques (programmed, interrupt based, DMA). Buses Lesson hours: 4 Exercise hours: 0
Machine language. MIPS Instruction Set Architecture Lesson hours:4 Exercise hours: 0
MIPS assembly programming. Instructions; procedures; usage of the stack; activation record; recursion. Lesson hours: 4 Exercise hours: 12

The slides shown during lessons are available from the university e-learning site.
The following books can be consulted:
Patterson & Hennessy, “Computer organization and design – The hardware/software interface”, Elsevier
Bolchini & Sciuto, “Informatica 2 sistemi digitali”, Progetto Leonardo, Soc. Editrice Esculapio Bologna (or any other book dealing with circuit design)
On the university e-learning site, the texts of past exams are also available, together with the proposed solutions.

Lessons (56 hours) and exercise sessions (24 hours).
Assembly programming is supported by a tool that simulates the MIPS machine. Such tool will also be used by students in “Laboratorio interdisciplinare” (Interdisciplinary lab).
During exercise sessions, both general purpose tools (e.g., spreadsheets) and specific tools (e.g., Knarnaugh map solvers, data path simulators, etc.) are used.
The student is expected to work autonomously according to the equivalence 1 CFU = 25 hours.

By appointment.

Professors