Computer Architecture

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

No particular knowledge is required.
A good knowledge of written English is required, to get access to a large amount of didactic material, publications, manuals, programs, etc.

Final Examination: 
Orale
Assessment: 
Voto Finale

Course description and learning objectives

The aim of the course is to provide students with the basic knowledge needed to design and program the building blocks of computers. The architecture of computer is illustrated as layered virtual or real machines. More speicifically, the course topics include:
 Electronic circuit fundamentals and basic design techniques;
 Basic computer hardware organization;
 Assembly programming;
 Hardware functionality used by operating systems and applications;
 The MIPS machine as a typical microprocessor.

In the course, the technical terminology of computer hardware and architecture is used, usually in English to make students used to it.

It is expected that student learn the following.

Knowledge and understanding
- Knowledge of building principles and characteristics of memories.
- Knowledge of building principles and characteristics of cache memories.
- Knowledge of building principles of datapaths and control units. Microprogramming.
- Knowledge of functionality and building principles of buses.
- Knowledge of organization, usage, and programming of I/O devices.

Knowledge and applied understanding
- Analyzing, designing, optimizing combinatorial circuits, via Boolean algebra and via library components. Analysis of circuit performance.
- Analyzing, designing, optimizing sequential circuits, also using library components.
- Cache memort performance analysis.
- MIPS assembly programming.

Autonomous judgement
- Evaluating conflicting needs in circuit design (cost of design, cost of components, elaboration speed) and design making.

Learning
- Thanks to the ability –acquired during the course– to relate techniques, methods and tools to the characteristics of computers’ organization and elements, students learn to learn new techniques, methods and tools, and to refine and adapt already known techniques, methods and tools.

Communication ability
- Knowing and using formalisms generally used to describe circuits and computer elements.
- Knowing specific English terminology.

Final assessment

The final exam consists of a written essay, including 4 exercises, three of which dedicated to testing practical design ability and one dedicated to test the knowledge of theory. Every execise is worth eight points. Students can discuss the discussion of the written essay.
An oral examination is required only when the written essay does not allow for a proper evaluation, and aims at evaluating the ability to identify the theory elements to be used in design and programming activities
The oral examination is generally worth three points.

Layered architecture of computers. Building princles and building blocks of a typical electronic computers.
Lessons: 3 hours; exercises: none.

Binary representation of numbers, characters and othe rinformation
Lessons: 7 hours; exercises: 1 hour.

Boolean algebra operators and properties. Relationship between Boolean operators and logic ports.
Lessons: 4 hours; exercises: 1 hour.

Combinatorial circuits – Combinatorial network synthesis, normal forms, Karnaugh maps.
Lessons: 4 hours; exercises: 3 hours.

Combinatorial circuit libraries, ALU, combinatorial circuit design using library elements.
Lessons: 3 hours; exercises: 2 hours.

Bistables, sequential library elements (especially registers). Sequential circuit design.
Lessons: 5 hours; exercises: 1 hour.

Memories. Principle of locality and memory hierarchies, cache, virtual memory, paging.
Lessons: 4 hours; exercises: 2 hours.

Data path building. Single cycle CPU. Multi-cycle CPU.
Lessons: 6 hours; exercises: none.

Hardwired and microprogrammed control unit.Implementing instructions via microprogramming.
Lessons: 6 hours; exercises: 2 hours.

Pipeline architecture (essentials)
Lessons: 2 hours; exercises: none.

I/O (programmed, interrupt, DMA), BUS
Lessons: 4 hours; exercises: none.

Machine language structure and instructions. MIPS machine Instruction Set Architecture.
Lessons: 4 hours; exercises: none.

MIPS assembly programming: instructions, procedures, stack, activation record, recursion.
Lessons: 4 hours; exercises: 12 hours.

Lecture and exercise slides are available on the University e-learning site (http://elearning2.uninsubria.it/).
Reading the following books is recommended:
Sono consigliati anche i seguenti testi:
• Patterson & Hennessy, “Computer organization and design – The hardware/software interface”, Elsevier
• Bolchini & Sciuto, “Informatica 2 sistemi digitali”, Progetto Leonardo, Soc. Editrice Esculapio Bologna
On the University e-learning site, previous exam texts and suggested solutions are available.

Professors

TARINI MARCO