Computer Architecture

Undergraduate Course, Ruhr University Bochum, 2020

  • Lecturer: Dr. Niemann
  • Language: German
  • Credits: 5 CP
  • Programs: B.Sc. Applied Computer Science, B.Sc. Computer Science, B.Sc. IT-Security
  • Examination: 110 % Written Exam (120 Minutes)

Prior Knowledge

The ability to think in a structured, algorithmic way and to grasp complex dependencies and interaction patterns is required.

Learning Outcomes

After completing the module

  • students will be familiar with the interrelationships and have detailed knowledge of the components and functioning of modern computer systems. In addition to the processor, this also includes the memory system and the interfaces to other system components
  • based on this knowledge, students can analyze computer systems and their components in terms of various metrics, such as energy consumption, computing power, memory performance, etc. concerning their suitability for a specific task
  • have understood the basic operation and basic structure of processors at the microarchitecture level and can analyze the influence of architectural features, such as pipelining or out-of-order execution, on the execution of instructions.

Course Description

The course Computer Architecture deals with the structure and functino of modern processors and computer systems. Starting from basic computer structures such as the Von Neumann and Harvard architecture, the structure, classification and technical realization of computer systems are presented. The programming on assembly level as well as the processing of programs by a processor are explained. The main focus of the lecture is the in-depth analysis of the microarchitecture level of a processor. Modern methods for performance enhancement and their application areas are also presented. In addition to the processor itself, the memory system of modern computers and various interfaces to internal and external components of the computer system will be covered. All topics are explained with actual examples from different areas of technology.

Contents

  1. Introduction
  2. Computers at a glance
    1. Computer views
    2. Computer organization: Structure and functionality
    3. Assembler
  3. Instruction sets and optimizations
    1. Instruction set
    2. Pipelining
    3. Out-of-order execution
  4. Memory
    1. Memory organizations at a glance
    2. Caches
    3. Background memory
  5. Parallel execution
    1. Forms of parallelity
    2. Classification of parallel computer architecture
    3. Excursus on connection structures
  6. CPU Design
    1. Datapath design
    2. Control unit design
    3. Timing (Multi-Cycling / Pipelining)