The University of Queensland Homepage
School of ITEE ITEE Main Website

 ISA background

Instruction set comparison

The general idea

There are many different styles of instruction set. The most common characterisation in recent years has been RISC (all arithmetic in registers; all data moves by loads or stores) and CISC (something else).

The purpose of this project is to compare two instruction sets including comparing compiler output, to do some evaluation of differences like the length of code for the same task.

The challenge

Different instruction set architectures may respond differently to compiler flags, so you will need to take care to compare like with like/ You will also need to consider issues like:

  • comparing static vs. dynamic differences, for example
    • a static difference would be the number of instructions
    • a dynamic difference would be the number of instructions actually executed
  • understanding the significance of any differences
  • understanding how whatever you measure can apply more generally.

It is highly recommended that you use a language reasonably close to machine code, i.e., C for your examples, otherwise it will be hard to see what the compiler is doing. You may want to explore other tools such as profilers to measure aspects of program behaviour.

Note: this is a different question to #13, processor comparison. The focus here is on examing code, whereas #13 is about the detailed design.