An idea about hardware assisted synchronisation for the AEMB came about recently. The idea centered on the problem of how multiple threads would communicated between each other. The solution to this problem has always been synchronisation primitives.

The AEMB already supports the atomic MSRSET/MSRCLR instructions, which can be used as a mutex primitive. This hardware mutex can be used to build additional synchronisation operations in software. However, this is an inefficient method for doing software synchronisation.

Since the AEMB is a multi-threaded processor by default, it will be used in situations where synchronisations will need to be carried out regularly. Therefore, it may be prudent to include certain hardware devices that can help with synchronisation.

As an example, a common synchronisation problem is the producer-consumer problem. This can be helped in hardware with the use of a specialised FIFO that forces synchronisation in hardware and ensures atomic read/write operations to it. There are other classic synchronisation problems such as rendezvous that can also benefit from minor hardware additions.

These are some thing that will make it into any future AEMB.