Embedded Systems

Abstract Instruction Behavior Description

Bachelor’s Thesis / Master’s Thesis / Student Research Project

Abstract

Abstract modeling of HW/SW systems is a relatively new research topic. This technique aims to capture only the essential parameters of software and hardware that influence their timing behavior.

The Abstract Computer Architecture Description Language (ACADL) currently supports the definition of instructions in the form:

MNEMONIC  [READ_REGISTER, ..., ] [[READ_ADDRESS], ..., ] => [WRITE_REGISTER, ..., ] [[WRITE_ADDRESS], ..., ] I: [IMMEDIATE, ..., ]

this allows for expressing arbitrarily complex instructions starting from simple scalar instructions such as add, max and load:

add r2, r3 => r1
max r1, r2 => r3
load [r3], [0x1000] => r1, r2

up to complex tensor operations such as a general matrix-matrix multiplication:

gemm [0x1000] => [0x2000], I: 8, 4

However, the behavior of a given instruction/mnemonic is often ambiguous. This student project’s aim is to design and implement a format that describes the instructions behavior that is interpretable by C++. For example, a behavior description for max could look like this:

WRITE_REGISTER[0] = max(READ_REGISTER[0], READ_REGISTER[1])

Requirements

  • C++
  • Python
  • Successfully atteded the lecture “Grundlagen der Rechnerarchitektur” and/or “Parallele Rechnerarchitekturen” (optional)
  • Linux (optional)

Contact

Lübeck, Konstantin

Jung, Alexander

Bringmann, Oliver