Microblaze memory synchronization instruction (mbar) vs OpenCL/OpenMP memory synchronization instruction
Dear Community Users,
I am curious about the memory synchronization schemes between Microblaze and OpenCL (or OpenMP). In multithreaded (or multicore) programming such as OpenCL or OpenMP, it is very easy to understand the explicit usage of barrier for synchronization among threads. However, programming based on MicroBlaze (single-threaded), it hard to find out when to use mbar and where to put mbar in the C code. It seems that there’s no official tutorial (except MicroBlaze user guide) demonstrating applications where mbar is essential in the code. Does anyone have the same question in the synchronization primitives between these two? Can anyone share the design experience in using MicroBlaze’s mbar? Any suggestions would be highly appreciated! Thanks!