Abstract
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.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Adve, S. V., and Gharachorloo, K. “Shared memory consistency models: a tutorial”. IEEE Trans. Comput. C-45(12), 1996, pp. 1145–1155.
Benini, L., and De Micheli, G. “Networks on chips: a new SoC paradigm”. Computer, Vol. 35 No 1, 2002, pp. 70–78.
Culler, D. E., Singh, J. P., Gupta, A. “Parallel computer architecture: a hardware/software approach”. Morgan-Kaufmann, 1998
Dahbura, A.T., Sabnani, K.K., and King. L. “The comparison approach to multiprocessor diagnosis”. IEEE Trans. Computers, C-36(3), 1987, pp. 373–378.
Diefendorff, K. and Dubey, P., “How Multimedia Workloads Will Change Processor Design”. IEEE Computer, September 1997, pp. 43–45.
Diefendorff, K., and Duquesne, Y., “New degress of parallelism in SoCs”. EE Times, Sept. 13, 2002
Elster, A.C., Uycar, M.U., and Reeves. A.P. “Fault tolerant matrix operations on hypercube multiprocessors”. Proc. IEEE Conf. Parallel Proc., 1989, v. III pp. 169–176.
Grammatikakis, M. D., Hsu, D.F., Kraetzl, M. “Parallel System Interconnections and Communications”, CRC press, 2000.
Grammatikakis, M. D., and Liesche, S. “Priority queues and sorting for parallel simulation”. IEEE Trans. Soft. Engin. SE-26(5), 2000, pp. 401–422.
Hakimi, S.C., and Amin, A.T. “Characterization of connection assignment of diagnosable systems”. IEEE Trans. Computers, C-23(1), 1974, pp. 86–88.
Hastad, J., Leighton, F.T., and Newman, M. “Reconfiguring a hypercube in the presence of faults”. Proc. 19th ACM Symp. Theory Comput., 1987, pp. 274–284.
Herlihy, M. “Wait-free synchronization”. ACM Trans. Progr. Lang. Syst. C-13(1), 1991, pp. 124–149.
Huang K.H., and Abraham, J.A. “Algorithm based fault tolerance for matrix operations”. Proc. IEEE Conf. Parallel Proc., 1984, pp. 518–528.
Hill, M.D. “Multiprocessors should support simple memory consistency models”. IEEE Computer C-31(8), 1998, pp. 28–34
R.C. Ho, C.H. Yang, M.A. Horowitz, and D.L. Dill. “Architecture validation for processors”. Proc. 22nd IEEE Symp. Comput. Arch., 1995, pp. 404–413.
Kumar, V., Grama, A., Gupta, A. and Karypis, G. “Introduction to parallel computing”. Benjamin Cummings, 1994.
Lamport, L. “How to make a multiprocessor computer that correctly executes multiprocess programs”. IEEE Trans. Comput. C-28(9), 1979, pp. 690–691.
Mellor-Crummey, J. M. and Scott, M. L. “Algorithms for scalable synchronization on shared-memory multiprocessors”. ACM Trans. Comp. Syst. C-9(1), 1991, pp. 21–65.
Nair, V.S.S., Abraham, J.A., and Banerjee, P. “Efficient techniques for the analysis of algorithm-based fault tolerance schemes”. IEEE Trans. Computers, C-40(9), 1996, pp. 499–503.
Prakash, S., Yann-Hang, L., Johnson, T. “A non-blocking algorithm for shared queues using compare-and-swap.” IEEE Trans. Comput., C-43(5), 1994, pp. 548–559.
Rabin, M. “Efficient dispersal of information for security, load balancing and fault tolerance”. J. ACM, 36(2), 1989, pp. 335–348.
Savage, S., Burrows, M., Nelson, G., et al. “Eraser: A dynamic data race detector for multi-threaded programs.” Proc. 16th ACM Symp. on OS Princ., Saint-Malo, France, 1997, pp. 26–37.
Shandle, J., and Martin, G. “Making Embedded Software Reusable for SoCs”. EEDesign, March 1, 2002.
Stolper, S.A. “Software that travels”. EE Times, Oct. 1, 2002.
Tullsen, D.M., Eggers, S.J., and Levy, “Simultaneous multithreading: maximizing on-chip parallelism”. Proc. 22nd IEEE Symp. Comput. Arch., 1995, pp. 392–403.
Turek, J., Shasha, D., and Prakash, S. “Locking without blocking: making lock based concurrent data structure algorithms nonblocking”. Proc. 11th ACM Symp. Princ. Database Syst., 1992, pp. 212–222.
Valois, J. “Lock-free linked lists using compare-and-swap”. Proc. 14th ACM Symp. Princ. Distr. Comput., 1995, pp. 214–222.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Kluwer Academic Publishers
About this chapter
Cite this chapter
Grammatikakis, M., Coppola, M., Sensini, F. (2003). Software for Multiprocessor Networks on Chip. In: Jantsch, A., Tenhunen, H. (eds) Networks on Chip. Springer, Boston, MA. https://doi.org/10.1007/0-306-48727-6_14
Download citation
DOI: https://doi.org/10.1007/0-306-48727-6_14
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4020-7392-2
Online ISBN: 978-0-306-48727-9
eBook Packages: Springer Book Archive