Multisystem Engine Managment Unit

This projects goal is to implement an engine control unit for a cars gasoline engine, using Pluralitys Many-Core Architecture. With this project we will evaluate the probability and added value of creating efficient control systems using Many-Core architectures. Motivation: An Engine Control Unit (ECU) controls fuel injection, spark ignition and air flow systems for each engine piston. Timing and amount calculations are made based on the readings from many sensors inside the engine, as well as pre-defined tables. The faster the calculations are, the more accurate the values can be, hence improving the engines efficiency. Environment: In our project we will use Pluralitys HyperCore processor, which utilizes up to 256 parallel cores using the Many-Core architecture. This architecture allows us to perform many calculations in parallel, significantly reducing calculation times. Plurality offers an interesting new programming model, Task Oriented Programming (TOP), designed to simplify the production of parallel code, without synchronization issues. The code currently only runs in a simulation environment based on the GDB debugger.

The ECU is implemented in the C language, currently only running inside Plurality’s simulation environment for the Many-Core arcitecture.

The system consist of 3 Types of tasks, all running in parallel, each on a dedicated core:

  • Calculation tasks, implementing the various calculation units of the ECU.
  • Input/Output tasks, simulating the I/O signals of real system in the simulation environment.
  • Verification tasks, used to pull out signals’ values for debugging and results perentation