COMPUTER ARCHITECTURE A
Learning outcomes of the course unit
The purpose of the course is to give the students the basic concepts of the modern CPU architectures and computer systems. The course comprises the fundamental knowledge of the programming in language assembly. The concepts are exposed in a general way; when necessary it is made directed reference the architecture of the INTEL CPU family.
Prerequisites
Fondamenti di Informatica B
Course contents summary
.
* Advanced Computer architecture
Introduction to the architecture of the modern CPUs.
CISC and RISC approaches.
Pipeline and superscalar architectures.
Control unit. Hardwired control - Introduction to microprogramming.
* Computer System architecture
Interconnection Structures, data transfer and bus.
Distributed and concentrated arbiter
I/O subsystem: interrupt and DMA
* The Memories:
Memory systems hierarchy
Electronic and magnetic technologies. Memory technologies such as DRAM, EPROM.
Main memory organization: characteristics and performance
Latency, cycle time, bandwidth, and interleaving
Cache memories (address mapping, line size, replacement and write-back policies)
Virtual memory systems.
* Distributed and parallel architectures
Taxonomies: parallel machine models (SIMD, MIMD, SISD, MISD): Flynn’s taxonomy. Amdahl law and performance parameters.
Multiprocessors and multi-computers: topology, tightly coupled and loosely coupled architectures
Introduction to clusters.
* The logical Architecture of the CPU x86
Basic architecture
Registers and register files
Instruction types and addressing modes
Subroutine call and return mechanisms
Programming in assembly language
I/O techniques and interrupts
Recommended readings
G.Bucci, Calcolatori elettronici – Architetture ed organizzazione , McGraw-Hill, 2009.
Randall Hyde, “The art of Assembly Programming”; an online handbook on assembly language