Data synchronization among multiple cores has been one of the critical issues which must be resolved in order to optimize the parallelism of multicore architectures.
Data synchronization schemes can be classified as lock-based methods (“pessimistic”) and lock-free methods (“optimistic”). However, none of these methods consider the nature of embedded systems which have demanding and sometimes conflicting requirements not only for high performance but also for low power consumption.
As an answer to these problems, we propose C-Lock, an energy- and performance-efficient data synchronization method for multicore embedded systems. It achieves balanced energy- and performance-efficiency by combining the advantages of lock-based methods and transactional memory (TM) approaches.
In C-Lock, the core is blocked only when true conflicts exist (advantage of TM), while avoiding roll-back operations which can cause huge overhead with regard to both performance and energy (this is an advantage of locks). Also, in order to save more energy, C-Lock disables the clocks of the cores which are blocked for the access to the shared data until the shared data become available.
We compared our C-Lock approach against traditional locks and transactional memory systems, and found that C-Lock can reduce the energy-delay product by up to 1.94 times and 13.78 times compared to the baseline and TM, respectively.
In those cases when true data conflicts are detected, the cores which are not given permission to access the data are immediately clock-gated in order to minimize the dynamic power consumption. Since no speculative execution and rollback are performed, C-Lock results in a higher energy efficiency than TM.
Also, due to the immediate clock-gating of cores, C-Lock can consume less energy than lock-based methods. All these advantages can be achieved with simple hardware support and marginal modifications of the software.
To read this external content in full, download the complete paper from the author archives at Yonsei University.