Skip to main content

ECE 785 601 Advanced Computer Design

3 Credit Hours

In depth study of topics in computer design; advantages and disadvantages of various designs and design methodologies; technology shifts, trends, and constraints; hardware/software tradeoffs and co-design methodologies.

Prerequisite

ECE 561 is a prerequisite or corequisite (can be taken same semester). No other prerequisites.

Couse Objectives

  • Build multithreaded embedded systems with Linux on a Raspberry Pi 4
    • Understand key features of ARM ISA, Cortex-A72 and Raspberry Pi 4
    • Develop multithreaded programs with PThreads on Linux
    • Write code to interface with peripherals (GPIO, I2C, SPI, UART, timers, ADC, DAC, PWM)
  • Evaluate real-time characteristics of platform
    • Evaluate responsiveness of callbacks, interrupt handlers
    • Evaluate real-time characteristics of platform (memory system, OS interference) and stabilize it
  • Program execution time optimization
    • Profile program execution time with perf
    • “Optimize” program execution time using algorithms, SIMD programming and tuning for compiler/microarchitecture/memory system

Course Requirements

Projects in Raspberry Pi 460%
Homeworks20%
Quizzes20%

Required Textbook and Materials

Updated 11/02/2020