An Altruistic Processor (AAP) was created to advance compiler technology for deeply embedded processors with a restricted register set and complex memory structures.  The first version is documented in Embecosm Application Note 13.  It is a 16-bit Harvard architecture with multiple 16-bit word addressed code memories, multiple byte addressed data memories and between 4 and 64 16-bit registers.

FPGA implementations for the DE0-Nano and MyStorm boards have been developed and are available on the Embecosm website.  The particular goal is to improve LLVM support for non-RISC, non-von Neumann architectures smaller than 32-bits.  Currently almost all upstream implementations are for 32/64-bit von Neumann RISC processors.  A full LLVM tool chain is available on Embecosm GitHub.

Derivative versions of AAP have been created with 24-bit wide code memories and 16-bit wide data memories.  These have been used to demonstrate Embecosm’s modifications to support word-sized characters.

Pages in this section

Research

SECURE

2017-. The compiler is ideally placed to help the user write secure code. The SECURE project is applying the latest academic research in this area to production GCC and LLVM compilers.

Research

AAP

2015-. An Altruistic Processor (AAP) was created to advance compiler technology for deeply embedded processors with a restricted register set and complex memory structures.

Research

GSO 2.0

2015-. GSO 2.0 is a tool kit under development by Embecosm, allowing multiple approaches to superoptimization to be used.

Research

TSERO

2015-2017. TSERO was a follow on project to the MAGEEC and Superoptimization projects looking at compiling energy efficient code for high performance computing systems and data centers.

Research

Superoptimization

2014. This feasibility study established the feasibility of using superoptimization to improve performance of critical code sections and to create new machine dependent peephole optimization passes for compilers

Research

MAGEEC

2013-2014. The MAGEEC research project aimed make machine learning feasible in commercial compilers, specifically for generating energy efficient code on deeply embedded systems.