Skip to main content
Department of Information Technology
Uppsala Architecture Research Team

Teaching

The Uppsala Architecture Research Team offers courses in architecture, parallel programming, high-performance programming, and large-scale projects at the undergraduate, masters, and graduate levels.

schedule-image.jpg

Undergraduate Courses

Introduction to Computer Architecture

The basics of how a computer is built and executes code. (undergraduate level)

  • Topics: instruction set architecture, instruction encoding, pipelining, hazards, caches, branch prediction, virtual memory, basic logic design.
  • Details:
    • K/Frist students: Period 1, 5hp, grading: U, 3, 4, 5
    • IT/DV students: Periods 3&4, 10hp, grading: U, 3, 4, 5
  • Instruction: Online lectures, seminars, labs
  • Assessment: Labs, presentations, final exam
  • Requirements: Computer programming II or equivalent
  • Contact: David Black-Schaffer or Stefanos Kaxiras

intro-architecture-image.jpg

Masters-level Courses

Accelerating Systems with Programmable Logic Components

An introduction to the development of accelerators using Field-Programmable Gate Arrays (FPGAs). (masters level)

  • Topics: Syntax and semantics of Verilog HDL, Simulation and synthesis, Design and implementation of testbench, Integration of hardware accelerators at the system- and software-level for SoC.
  • Details: Periods 1&2, 10hp, grading: U, 3, 4, 5
  • Instruction: Online lectures, seminars, labs, project
  • Assessment: Labs, Projects
  • Requirements: 120 ECTS credits of which at least 60 in computer science, including Introduction to Computer Architecture.
  • Contact: Yuan Yao

Advanced Computer Architecture

Advanced details and pitfalls of modern high-performance processors. (masters level)

  • Topics: out-of-order processors, SIMD, caches and prefetching, instruction parallelism, atomic operations, memory ordering, coherency, optimization, speculation.
  • Details: Periods 3&4, 10hp, grading: U, 3, 4, 5
  • Instruction: Online lectures, seminars, labs
  • ^KAssessment: Labs, final exam
  • Requirements: 120 ECTS credits of which at least 60 in computer science, including Introduction to Computer Architecture.
  • Contact: Stefanos Kaxiras

advanced-architecture-image.jpg

Low-level Parallel Programming

Program parallel and heterogeneous systems close to the metal. (masters level)

  • Topics: manual threading, compiler-directed parallelization (OpenMP), task-based programming, heterogeneous programming (CPU+GPU, CUDA).
  • Details: Period 3, 5hp, grading: U, 3, 4, 5
  • Instruction: Online lectures, seminars
  • Assessment: Participation, labs, project (oral & written)
  • Requirements: 120 ECTS credits of which at least 60 in computer science, including a second course in programming and experience programming in C. (You are encouraged to take this course together with Advanced Computer Architecture.)
  • Contact: Chang Hyun Park

low-level-image.jpg

Parallel Programming for Efficiency

Get the best performance and energy efficiency from parallel systems. (masters level)

  • Topics: memory system behavior, load balancing, synchronization, power efficiency, profiling, optimization, heterogeneous programming.
  • Details: Period 1, 5hp, grading: U, 3, 4, 5
  • Instruction: Online lectures, seminars
  • Assessment: Participation, labs, project (oral & written)
  • Requirements: 120 ECTS credits of which at least 60 in computer science, ^Kincluding Advanced Computer Architecture and Low-Level Parallel Programming
  • Contact: Yuan Yao

efficiency-image.jpg

Project IT

Large-scale project on many-core systems with a focus on energy-efficiency. (masters level)

  • Topics: building parallel systems from power-efficient multicores, extending the capabilities of existing hardware and software systems with an emphasis on power-efficiency, hardware and operating system support, parallel languages and applications, networking.
  • Details: Periods 1&2, 30hp, grading: U/G
  • Instruction: Seminars and large-scale project work
  • Assessment: Project, presentations
  • Requirements: 150 ECTS credits computer science/technology, of which at least 30 at the advanced level, willingness to learn new computer languages and systems, sufficient background to research and implement shared memory implementations on a distributed machine via OS communication.
  • Contact: Stefanos Kaxiras

project-image.jpg

Ph.D.-level Courses

Introduction to Research in Computer Architecture

New Ph.D. students will learn a range of tools and techniques used in computer architecture research, as well as how to analyze and present results, and techniques for getting the most out of research papers.

  • Topics: memory hierarchy simulation, modeling, analysis; data analysis; presentations; reading research papers. Tools covered include pin, statistical cache modeling, gem5 simulation, hardware performance counters, and LLVM.
  • Details: Given as needed. 6-weeks, 20h/week. 10hp. Syllabus
  • Instruction: Small group (2-3) projects and report; weekly paper reading assignments.
  • Assessment: Project, report, and presentation.
  • Requirements: This is a course for new PhD students to get them started with modern tools and techniques for architecture research.
  • Contact: David Black-Schaffer

Energy Efficient Computing

This course is run as a Program Committee Meeting. Students have to *review* papers and discuss them together in weekly meetings.

  • Details: Period 1 or 3
  • Instruction: Conference review process, discussions and reading papers
  • Assessment: Reviews and participation
  • Requirements: This course is aimed at PhD students who want to immerse themselves in current computer architecture research.
  • Contact: Stefanos Kaxiras

Topics. Each instance of the course examines a different topic. Examples are:

  • Transactional Memory
  • Distributed Shared Memory
  • Deep Neural Network Accelerators
  • Big Data Acceleration
  • Coherence and Consistency
  • Great Papers in Computer Architecture
  • Advanced Microarchitectures
  • Hot topics in energy-efficient computing.

Contact Stefanos Kaxiras if you are interested in having one of these topics in an upcoming instance of the course.

Advanced Computer Architecture Readings

This course is also run as a Program Committee Meeting. Students have to *review* papers from main conferences in the architecture field (ISCA, HPCA, MICRO, ISPASS, ASPLOS, HIPEAC) and discuss them together in weekly meetings, adopt the role of PC Chair, write an overview report and final presentation on applicability on their research projects.

  • Instruction: Conference review process, discussions and reading papers
  • Assessment: Reviews and participation
  • Requirements: This course is aimed at PhD students who want to immerse themselves in current computer architecture research.
  • Contact: David Black-Schaffer

Topics. Each instance of the course examines a different topic. Examples are:

  • Caches
  • Memory Models
  • Simulation Techniques
  • Microarchitecture advancements
  • Compilers
  • Heterogeneous Systems
Updated  2022-05-02 09:53:02 by Chang Hyun Park.