Issue No. 03 - May-June (2007 vol. 24)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MDT.2007.70
Grant Martin , Tensilica
Electronic system-level (ESL) design is one of the newer three-letter acronyms (TLAs) in the design and EDA fields. Like its back-end cousin, design for manufacturability (DFM), ESL's role in the design process is, and will likely remain, controversial. The definition of ESL is not widely agreed upon: What constitutes ESL is open for much debate, and many tool vendors seem to argue that ESL tools are what they happen to sell. Moreover, whether there is a large commercial market for ESL tools is an open question. Indeed, the long-predicted "hockey stick" for commercial ESL viability always seems to be part of next year's season; and we are a long way from winning the Stanley Cup.
Given this current state of development, it was a pleasure to read a new book on system-level design: Integrated System-Level Modeling of Network-on-Chip Enabled Multi-processor Platforms, by Tim Kogel, Rainer Leupers, and Heinrich Meyr. Not least of the pleasures was seeing four of my favorite TLAs spelled out in the title—namely, system-level modeling (SLM, a major part of ESL); network-on-chip (NoC); multiprocessor (an important part of MPSoC); and platforms (as in platform-based design, or PBD). For the past several years, I have been knocking about the design, EDA, and IP industries, working with all of these concepts in one way or another. So, seeing these concerns reflected in the title of this book made me immediately want to read it (and review it).
This book is based on Tim Kogel's PhD research at RWTH (Die Leitseite der Rheinisch-Westfälischen Technischen Hochschule) Aachen, but it is far more than the typical, narrowly focused, research monograph. The book covers most of the major areas of system-level design and modeling, and much of the work described has been incorporated into a commercial ESL tool: CoWare's Architects View Framework.
This book's scope and range of pragmatic ideas make it valuable for a wide audience. In particular, Chapters 1 through 5 provide an excellent overview of a wide range of current system-level design concepts, principles, issues, and related work. When combined with the extensive list of references (260!), this is a very valuable resource for anyone interested in the area, whether they want to learn about system-level design for complex embedded systems in a general way or zoom in on the specific methodologies that the authors discuss. After Chapter 1 introduces the main issues in embedded-systems design and scopes out the rest of the book, Chapter 2 discusses embedded-SoC applications in more detail, paying particular attention to the trends and developments in application characteristics that have made the design of such devices a focus for modern SoCs. Chapter 3 classifies the major elements that make up a multiprocessor platform from the architectural perspective, including processing elements, on-chip communication elements, and NoC architectures. Chapter 4 discusses a set of basic principles in system-level design, including PBD, design phases, computation models, and object-vs.-actor-oriented design. Chapter 5 provides an extensive survey of related work, stretching across many of the major industry and research initiatives of the past decade and beyond. As the authors state in the summary of this chapter, "one can observe a huge variety of proposed solutions" in MPSoC platform design.
Chapters 6 through 9 provide considerable detail about the authors' particular approach to design space exploration for MPSoC platform design. The key chapters for many readers will be Chapter 6, which gives an overview of the methodology, and Chapter 9, which presents a case study of a networking application that illustrates Internet Protocol Version 4 forwarding. However, as the authors emphasize, the concepts, methods, and tools they discuss are applicable to a wide variety of application domains for embedded systems—including, for example, multimedia processing, consumer appliances, and handheld devices of all kinds.
The essence of this methodology is design space exploration using an abstraction level above cycle-level transaction-level modeling (TLM) and using a well-defined timing model that allows good estimates of system performance for a variety of mappings of applications to various architectures. Many researchers have contributed to this approach over the past decade. But the authors demonstrate that, with today's technology approaches and the current level of understanding of abstraction and modeling, this methodology is finally feasible in both research and commercial tools.
Many readers might choose to skip or just skim Chapter 7, which goes into some of the theoretical underpinnings of the unified timing model used in the authors' approach; but Chapter 8 is well worth a look. This chapter discusses the simulation framework and illustrates the analyses provided by the tools. Chapter 10 summarizes the embedded-systems approach proposed in this book and also speculates about potential future developments in this area. In addition, the book has three brief appendices, which provide a useful summary of the Open SystemC Initiative (OSCI) TLM standard (v1.0); the Open Core Protocol International Partnership (OCP-IP) TL3 channel API; and CoWare's Architects View Framework as a commercial embodiment of the methodology.
Today's commercial focus on consumer handheld multimedia devices made me wish this book had included a second case study—dealing with, for example, audio and video processing combined with baseband processing in an embedded-MPSoC platform—but this will have to be relegated to "exercises for the reader." Indeed, the kind of technologies developed in this work make it more likely that readers—researchers and designers alike—will have the opportunity to develop models and build designs in these kinds of applications and many others. The outlook for the future in Chapter 10 is perhaps a little narrow when compared to the wide range of design applications that ESL is at last beginning to address. But this should be considered more as an opportunity for readers to develop a broader set of application products using ESL methods, than as a criticism of the book.
The title of this review alludes both to the breadth of topics in this book and the wide range of areas involved in modern embedded-systems design. In responding to the needs of designers, a methodology must truly offer "everything but the kitchen sink"—and sometimes the kitchen sink would be useful as well! This book offers an education in these areas and a brief exploration of solutions on the horizon. It should resonate with students, researchers, and practical designers who are interested in the state of ESL in 2007.