Efficient synchronization for embedded on-chip multiprocessors

  • Authors:
  • Matteo Monchiero;Gianluca Palermo;Cristina Silvano;Oreste Villa

  • Affiliations:
  • Dipartimento di Elettronica e Informazione, Politecnico di Milano, Milan, Italy;Dipartimento di Elettronica e Informazione, Politecnico di Milano, Milan, Italy;Dipartimento di Elettronica e Informazione, Politecnico di Milano, Milan, Italy;Dipartimento di Elettronica e Informazione, Politecnico di Milano, Milan, Italy

  • Venue:
  • IEEE Transactions on Very Large Scale Integration (VLSI) Systems
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper investigates optimized synchronization techniques for shared memory on-chip multiprocessors (CMPs) based on network-on-chip (NoC) and targeted at future mobile systems. The proposed solution is based on the idea of locally performing synchronization operations requiring continuous polling of a shared variable, thus, featuring large contentions (e.g., spin locks and barriers). A hardware (HW) module, the synchronization-operation buffer (SB), has been introduced to queue and to manage the requests issued by the processors. By using this mechanism, we propose a spin lock implementation requiring a constant number of network transactions and memory accesses per lock acquisition. The SB also supports an efficient implementation of barriers. Experimental validation has been carried out by using GRAPES, a cycle-accurate performance/power simulation platform for multiprocessor systems-on-chip (MPSoCs). Two different architectures have been explored to prove that the proposed approach is effective independently from caches and coherence schemes adopted. For an eight-processor target architecture, we show that the SB-based solution achieves up to 50% performance improvement and 30% energy saving with respect to synchronization based on the caching of the synchronization variables and directory-based coherence protocol. Furthermore, we prove the scalability of the proposed approach when the number of processors increases.