Hardlock: Real-time multicore locking

Abstract Multiple threads executing on a multicore processor often communicate via shared objects, allocated in main memory, and protected by locks. A lock itself is often implemented with the compare-and-swap operation. However, this operation is retried when the operation fails and the number of retries is unbounded. For hard real-time systems we need to be able to provide worst-case execution time bounds for all operations. The paper presents a time-predictable solution for locking on a multicore processor. Hardlock is an on-chip locking unit that supports concurrent locking without the need to get off-chip. Acquisition of a lock takes 2 clock cycles and release of a lock 1 clock cycle.

[1]  Martin Schoeberl,et al.  Hardlock: A Concurrent Real-Time Multicore Locking Unit , 2018, 2018 IEEE 21st International Symposium on Real-Time Distributed Computing (ISORC).

[2]  Adam Milik,et al.  Distributed PLC Based on Multicore CPUs - Architecture and Programming , 2016 .

[3]  Martin Schoeberl,et al.  Towards a Time-predictable Dual-Issue Microprocessor: The Patmos Approach , 2011, PPES.

[4]  Thomas Nolte,et al.  Per Processor Spin-Based Protocols for Multiprocessor Real-Time Systems , 2017, Leibniz Trans. Embed. Syst..

[5]  David Atienza,et al.  Hardware/software approach for code synchronization in low-power multi-core sensor nodes , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[6]  Kees G. W. Goossens,et al.  Argo: A Real-Time Network-on-Chip Architecture With an Efficient GALS Implementation , 2016, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[7]  Benedikt Huber,et al.  Patmos: a time-predictable microprocessor , 2018, Real-Time Systems.

[8]  Smruti R. Sarangi,et al.  A hardware implementation of the MCAS synchronization primitive , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[9]  Erez Petrank,et al.  A practical wait-free simulation for lock-free data structures , 2014, PPoPP '14.

[10]  Reinhold Heckmann,et al.  Worst case execution time prediction by static program analysis , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[11]  Benedikt Huber,et al.  Compiling for Time Predictability , 2012, SAFECOMP Workshops.

[12]  Erez Petrank,et al.  Wait-free queues with multiple enqueuers and dequeuers , 2011, PPoPP '11.

[13]  Benedikt Huber,et al.  T-CREST: Time-predictable multi-core architecture for embedded systems , 2015, J. Syst. Archit..

[14]  Jens Knoop,et al.  The platin Tool Kit-The T-CREST Approach for Compiler and WCET Integration , 2015 .

[15]  Jens Sparsø,et al.  Asynchronous circuit design - A tutorial , 2001 .

[16]  Martin Schoeberl,et al.  Hardware locks for a real‐time Java chip multiprocessor , 2017, Concurr. Comput. Pract. Exp..

[17]  Sanghoon Lee,et al.  HAQu: Hardware-accelerated queueing for fine-grained threading on a chip multiprocessor , 2011, 2011 IEEE 17th International Symposium on High Performance Computer Architecture.

[18]  Martin Schoeberl,et al.  A shared scratchpad memory with synchronization support , 2017, 2017 IEEE Nordic Circuits and Systems Conference (NORCAS): NORCHIP and International Symposium of System-on-Chip (SoC).

[19]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[20]  Martin Schoeberl,et al.  A Time-Predictable Memory Network-on-Chip , 2014, WCET.

[21]  Martin Schoeberl,et al.  A Method Cache for Patmos , 2014, 2014 IEEE 17th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[22]  Martin Schoeberl,et al.  A Multicore Processor for Time-Critical Applications , 2018, IEEE Design & Test.

[23]  Leslie Lamport,et al.  A new solution of Dijkstra's concurrent programming problem , 1974, Commun. ACM.

[24]  Martin Schoeberl,et al.  A time-predictable stack cache , 2013, 16th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2013).

[25]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[26]  John B. Carter A comparison of software and hardware synchronization mechanisms for distributed shared memory multiprocessors , 1996 .

[27]  Martin Schoeberl,et al.  Message Passing on a Time-predictable Multicore Processor , 2015, 2015 IEEE 18th International Symposium on Real-Time Distributed Computing.