Instruction set extensions
The general idea
Instruction set designers have long succumbed to the temptation of adding special-purpose instructions, of which multimedia extensions are the most popular example. These extensions are often hard to use in real programs (i.e., as generated by compilers).
The purpose of this project is to identify one such specialist instruction set, and evaluate it vs. the same operations in a conventional instructions set.
The challenge
- identifying examples that should benefit from the extensions
- viewing assembly-language output from the compiler to understand how the extensions were or were not used
- analysing the potential for performance gains taking into account extra overheads like setting up special registers
- examining the extent to which this potential gain has actually been achieved
It is highly recommended that you use a language reasonably close to machine code, e.g., C or C++ for your examples, otherwise it will be hard to identify your source code in the compiler output.
