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])
References
Requirements
- C++
- Python
- Successfully atteded the lecture “Grundlagen der Rechnerarchitektur” and/or “Parallele Rechnerarchitekturen” (optional)
- Linux (optional)