CSA
Computer Systems and Architectures
Objectives
This course unit is structured as software/hardware binomial to understand the basics of computing systems and the relationships between algorithms and application workloads.
- Recognize the computer organization and its structure
- Analyze the functionality of imperative programs (C-like)
- Use tools to effectively compile HLL programs
- Characterize the performance metrics and their relation to code
- Assess the impact of implicit and explicit use of the memory hierarchy
- Analyze the impact of superscalarity and vector processing on performance
Program
- Structure and organization of a computer
- Binary representation of integer and real numbers
- Performance execution model (metrics and performance prediction)
- Organization and performance-related concepts of the memory hierarchy
- Pipelining, superscalarity, and vector processing
- Shared memory parallelism on multicore devices
Bibliography
- Computer Organization and Design: The Hardware/Software Interface, David Patterson and John Hennessy, 5th Edition, Morgan Kaufmann, 2013
- Computer Systems: A Programmer’s Perspective, Randal E. Bryant and David R. O’Hallaron, 3rd Edition, Pearson, 2016
- Algorithms in C: parts 1-4, Fundamentals, Data Structures, Sorting, and Searching, Robert Sedgewick, 3rd Edition, Addison-Wesley Longman Publishing Co., 1997