Learn the elements of computer design needed for programmers to make the most of computers’ speed and to write energy-effective programs. In this computer science course, you will learn the basic foundations underpinning the design of modern multicore-based computers. In addition, you will learn how design decisions affect how fast programs execute and how much energy is wasted.
Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.
Topics include:
- Basic design concepts of computers
- Principles and models for how fast a program will execute and how much energy it will waste
- Basic principles for exploiting instruction-level parallelism
- Data and control dependences
- Pipelining
- Memory locality
- Cache design principles
During the course you will engage with a community of learners with similar interests to share knowledge.
The course is derived from Chalmers’s senior undergraduate course in computer system design. It assumes only a basic course in computer organization including assembly-language programming.
What you'll learn:
- 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
Course Syllabus
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