Software for Multiprocessor Networks on Chip

Multiprocessor SoC becomes increasingly software-intensive due to multiplatform design, real-time performance, robustness, reliability, availability, and safety constraints. In this chapter, we examine multiprocessor SoC software, by focusing on user-space, i.e. application and middleware layers, and kernel space, i.e. "RTOS, system libraries and device drivers" and hardware layers. For the RTOS substrate, which forms the backbone of system design, we relate software performance to parallel programming and concurrency issues, as well as program correctness to consistency, fault tolerance, reliability, and verification and validation aspects. A case study based on a multiprocessor set-top-box design by STMicroelectronics illustrates the complexity issues inherent to SoC software design.

[1]  John D. Valois Lock-free linked lists using compare-and-swap , 1995, PODC '95.

[2]  Dennis Shasha,et al.  Locking without blocking: making lock based concurrent data structure algorithms nonblocking , 1992, PODS '92.

[3]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[4]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multi-threaded programs , 1997, TOCS.

[5]  Anoop Gupta,et al.  Parallel computer architecture - a hardware / software approach , 1998 .

[6]  Miltos D. Grammatikakis,et al.  Parallel System Interconnections and Communications , 2000 .

[7]  Mark Horowitz,et al.  Architecture validation for processors , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[8]  Suku Nair,et al.  Efficient Techniques for the Analysis of Algorithm-Based Fault Tolerance (ABFT) Schemes , 1996, IEEE Trans. Computers.

[9]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[10]  Mark D. Hill,et al.  Multiprocessors Should Support Simple Memory-Consistency Models , 1998, Computer.

[11]  Miltos D. Grammatikakis,et al.  Priority Queues and Sorting Methods for Parallel Simulation , 2000, IEEE Trans. Software Eng..

[12]  Frank Thomson Leighton,et al.  Reconfiguring a hypercube in the presence of faults , 1987, STOC.

[13]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[14]  Anthony P. Reeves,et al.  Fault-Tolerant Matrix Operations on Hypercube Multiprocessors , 1989, ICPP.

[15]  Michael O. Rabin,et al.  Efficient dispersal of information for security, load balancing, and fault tolerance , 1989, JACM.

[16]  Krishan K. Sabnani,et al.  The Comparison Approach to Multiprocessor Fault Diagnosis , 1987, IEEE Transactions on Computers.

[17]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[18]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[19]  Sarita V. Adve,et al.  Shared Memory Consistency Models: A Tutorial , 1996, Computer.

[20]  S. Louis Hakimi,et al.  Characterization of Connection Assignment of Diagnosable Systems , 1974, IEEE Transactions on Computers.

[21]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[22]  Jacob A. Abraham,et al.  Algorithm-Based Fault Tolerance for Matrix Operations , 1984, IEEE Transactions on Computers.

[23]  Theodore Johnson,et al.  A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap , 1994, IEEE Trans. Computers.

[24]  Pradeep K. Dubey,et al.  How Multimedia Workloads Will Change Processor Design , 1997, Computer.

[25]  Luca Benini,et al.  Networks on Chips : A New SoC Paradigm , 2022 .