Modern Computers and technological evolution. The role of performance. Introduction to Assembly languages. The MIPS language. The SPIM simulator. Logic circuits (combinatorial and sequential). Fundamentals of number representation and binary arithmetic. The design of an ALU. Multiplication and division. Floating point numbers. Design of a CPU (single cycle and multiple cycles). Exceptions. Pipelining. The interrupt system. Interactions with devices.
D. Patterson, J. Hennessy. Computer Organization and Design, Fifth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design), Morgan & Kaufmann, 5/e, 2013 (Italian edition: Struttura e progetto dei calcolatori. Con Contenuto digitale (fornito elettronicamente) – 1 dic 2014)).
C. Bolchini, C. Brandolese, F. Salice e D. Sciuto. Reti logiche, 2/e, Apogeo, 19 settembre 2013.
Learning Objectives
The course aims to provide the basic elements in order to understand computer architecture and the interface between this and the higher levels of abstraction of a computation system. Moreover, teaching an assembly language (MIPS) intends to give the elements to understand assembly languages and the interface that they constitute between hardware architecture and the higher level of abstraction of a computation system. The description of both the Processor structure and the system organization including memories and devices aims at providing a global perception of computing systems.
Prerequisites
None
Teaching Methods
CFU: 12
Total hours of the course: 300
Hours reserved to private study and other individual formative activities: 194
Prof. Andrea Bondavalli, by appointment.
Contact professor by phone number or e-mail (bondavalli@unifi.it).
DiMaI, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751481
Dott. Paolo Lollini, by appointment.
Contact professor by phone number or e-mail (lollini@unifi.it).
DiMaI, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751486
Type of Assessment
Preparation is verified through a written part where the sudent has to solve a few exercises, a specific small project on the assembly coding and an oral part.
Course program
Modern computers and technological evolution.
The role of performance.
Combinatorial logic circuits: specification, synthesis, minimization.
Clock and memory elements.
Finite state machine and sequential circuits.
Introduction to assembly language of MIPS system.
QtSpim simulator.
Lab activities: programming in QtSpim environment.
Fundamental notions of numbers representation and binary arithmetic.
Design of an ALU.
Multiplication and division.
Floating points numbers.
Design of a single cycle CPU: data progress and control.
Design of a multiple cycle CPU: data progress and control.
Exceptions.
Enhancing performance by Pipeling: data progress and control.
Memory hierarchy.
Peripheral interactions and interrupt system.