FACOLTA' DI INGEGNERIAUniversita' di Pavia
Home
  Teaching > Course1314 > Advanced Computer Architecture Translate this page in English
About the Faculty
Orientation
Teaching
Research
Services
Industry partnerships
Mobility Erasmus
Shortcuts
Search in this site
Advanced Computer Architecture

2012-13 Academic year

Lecturer: Marco Ferretti  

Course name: Advanced Computer Architecture
Course code: 504712
Degree course: Computer Engeneering
Disciplinary field of science: ING-INF/05
L'insegnamento è caratterizzante per: Computer Engeneering
University credits: ECTS 6
Course website: www.unipv.it/mferretti

Specific course objectives

The course describes the architecture of modern processors and multi-processors and introduces the principles of parallel programming. The student will understand the principle of operation of current processors and will be able to assess the distinctive features of general purpose vs embedded microprocessors. The emerging multi-core paradigm and the associated shared-memory architecture will be discussed and will be the basis for a parallel programming project following the OpenMP standard.

Course programme

The course is split into two major areas: a description of the architetures and a laboratory on parallel programming.

The processor
This part of the course introduces the basic concepts underlining the design of modern processors

  • The Instruction Set Architecture (ISA)
  • A Taxonomy for ISAs: CISC, RISC, general purpose, embedded, multimedia

Processor Implementation
The architecture of a uni-processor, in all its possible implementations, to support both general purpose and embedded processing.

  • Basic pipelining: control, hazards, exceptions
  • Superscalar pipelines: static multiple issue, the VLIW approach
  • Dinamic scheduling, speculative execution, predicate execution (hints)
  • Compiler support and software optimization

Caches and memory hierarchy
A description of caches and their hierarchy, excluding virtual memory.

  • Memory hierarchy and caches: locality
  • Structure and organization: direct mapping, associativity
  • Pipelined and multi-level caches
  • Streaming buffer and multimedia requirements

Multi-processors
A review of multi-processors and parallel architectures, with emphasis on multi-core processors.

  • Parallel processing: SIMD, MIMD, data parallelism, thread parallelism, coarse-grain parallelism
  • Parallel architectures: shared-memory, distributed memory, clusters
  • Cache coherency and memory consistency
  • Synchronization

Parallel programming
An introduction to parallel processing, with hands-on lab on OpenMP.

  • The available paradigms: SMP, MPI, graphics and CUDA
  • The OpenMp standard

Course entry requirements

Basic understanding of computer architecture and assembly language. The C-language is required for the programming lab and associated project.

Course structure and teaching

Lectures (hours/year in lecture theatre): 45
Practical class (hours/year in lecture theatre): 16
Practicals / Workshops (hours/year in lecture theatre): 0

Suggested reading materials

J. L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Approach, 3rd - 4rth and 5th editions. Elsevier - Morgan Kaufmann. See detailed instructions on the course website for editions and chapters to be used..

D. A. Patterson & J. L. Hennessey. Computer Organization and Design: The Hardware/Software Interface, Revised 4th Edition. Morgan Kauffman. See deteiled instruction in the Course website for chapters to be used.

M. Ferretti, D. Gunetti. Course charts (in pdf). available for download form the course website.

Testing and exams

The final assessment is composed of a parallel programming project, of a discussion of the project and of a written test (oral examination is optional).

Copyright © Facoltà di Ingegneria - Università di Pavia