你将学到什么
Design concepts in modern multicore-based computers including processors and memory hierarchies
How energy efficient and fast a program will execute
How to use simple models to analyze energy efficiency and performance
How taught design concepts are used in modern multicore-based computer systems
课程概况
In order to be competitive in the computer science field, it’s imperative to understand the basic building blocks of a modern computer and how they directly impact the speed and efficiency of a program. Whether you work with embedded systems, mobile computer-based systems, or cloud systems, performance and energy efficiency are key drivers of usability and competitiveness of computerized products.
In this course, you will learn how to design modern multicore-based computers, and how the design choices you make affect performance and energy consumption. You will explore design principles governing modern microprocessors, such as pipelining and cache memories, as well as methods for determining the impact of your design on execution time and energy efficiency.
These skills can make a difference for practicing engineers for the purpose of building highly competitive products. Take, for instance, a smartphone with limited battery capacity. By adding value to end users through new or improved functionality, this can lead to significantly shorter operation time between battery charges, thus utilizing the already limited resources of a smartphone far more efficiently.
With this skillset, you can become an expert in computer system performance and energy efficiency – knowledge that is in high demand when designing computerized embedded products. With trends towards IoT (Internet of Things), autonomous systems and mobile computers, such a skillset will be critical in a career in systems engineering.
This course is derived from a Chalmers senior undergraduate course in computer system design.
课程大纲
Week 1: Execution model of computer systems
The transformation hierarchy
Instruction set architecture
Execution stages
Control, data paths, and a model of a computer
Execution of a program
Put it all together
Week 2: Performance and energy models of computers
Basic performance model of an executing program
Energy and power consumption in computer systems
Basic energy model of an executing program
How performance and energy can be improved
Reporting performance and energy
Put it all together
Week 3: Pipelining principles
The principle of the conveyor belt – pipelining
Instruction level parallelism and its relation to pipelining
A pipelined model of a computer
Pipeline hazards (structural, data and control)
Simple techniques to avoid hazards
Put it all together
Week 4: Cache memory hierarchy principles
Memory system basics
The memory locality principle
Basic notion of cache memory and a direct mapped cache
Set-associative caches
Multi-level caches
Put it all together
预备知识
This course addresses students/professionals with a general understanding of programming computers, but with no prior knowledge of how a computer works.





