Modern embedded systems require high performance, low cost and low power consumption. Such systems typically consist of a heterogeneous collection of processors, specialized memory subsystems, and partially programmable or fixed-function components. This heterogeneity, coupled with issues such as hardware/software partitioning, mapping, scheduling, etc., leads to a large number of design possibilities, making performance debugging and validation of such systems a difficult problem.
Embedded systems are used to control safety critical applications such as flight control, automotive electronics and healthcare monitoring. Clearly, developing reliable software/systems for such applications is of utmost importance. This book describes a host of debugging and verification methods which can help to achieve this goal.
- Covers the major abstraction levels of embedded systems design, starting from software analysis and micro-architectural modeling, to modeling of resource sharing and communication at the system level
- Integrates formal techniques of validation for hardware/software with debugging and validation of embedded system design flows
- Includes practical case studies to answer the questions: does a design meet its requirements, if not, then which parts of the system are responsible for the violation, and once they are identified, then how should the design be suitably modified?
Muu info
Practical debugging and validation techniques for the entire embedded systems design lifecyle
Acknowledgments |
|
ix | |
Preface |
|
xi | |
|
|
1 | (6) |
|
|
7 | (88) |
|
Platform versus System Behavior |
|
|
8 | (2) |
|
Criteria for Design Model |
|
|
10 | (2) |
|
Informal Requirements: A Case Study |
|
|
12 | (4) |
|
The Requirements Document |
|
|
13 | (1) |
|
Simplification of the Informal Requirements |
|
|
14 | (2) |
|
Common Modeling Notations |
|
|
16 | (21) |
|
|
16 | (4) |
|
|
20 | (7) |
|
Message Sequence Chart-Based Models |
|
|
27 | (10) |
|
Remarks about Modeling Notations |
|
|
37 | (2) |
|
|
39 | (11) |
|
|
41 | (5) |
|
Simulating MSC-Based System Models |
|
|
46 | (4) |
|
|
50 | (8) |
|
|
58 | (24) |
|
|
58 | (15) |
|
|
73 | (9) |
|
|
82 | (4) |
|
|
86 | (3) |
|
Case Study: Air-Traffic Controller |
|
|
89 | (2) |
|
|
91 | (2) |
|
|
93 | (2) |
|
|
95 | (30) |
|
|
98 | (8) |
|
Sending/Receiving Signals in Different Order |
|
|
99 | (1) |
|
Handling a Different Singnal Alphabet |
|
|
100 | (2) |
|
|
102 | (3) |
|
|
105 | (1) |
|
|
106 | (15) |
|
Representing Native Protocols and Converters |
|
|
106 | (2) |
|
Basic Ideas for Converter Synthesis |
|
|
108 | (7) |
|
Various Strategies for Protocol Conversion |
|
|
115 | (1) |
|
Avoiding No-Progress Cycles |
|
|
116 | (2) |
|
Speculative Transmission to Avoid Deadlocks |
|
|
118 | (3) |
|
Changing a Working Design |
|
|
121 | (1) |
|
|
122 | (1) |
|
|
123 | (2) |
|
|
125 | (56) |
|
The Conventional Abstraction of Time |
|
|
126 | (5) |
|
Predicting Execution Time of a Program |
|
|
131 | (23) |
|
|
133 | (12) |
|
Modeling of Microarchitecture |
|
|
145 | (9) |
|
Interference within a Processing Element |
|
|
154 | (11) |
|
Interrupts form Environment |
|
|
155 | (2) |
|
Contention and Preemption |
|
|
157 | (4) |
|
Sharing a Processor Cache |
|
|
161 | (4) |
|
System-Level Communication Analysis |
|
|
165 | (4) |
|
Designing Systems with Predictable Timing |
|
|
169 | (7) |
|
|
169 | (5) |
|
Time-Triggered Communication |
|
|
174 | (2) |
|
|
176 | (1) |
|
|
177 | (1) |
|
|
177 | (4) |
|
|
181 | (52) |
|
Dynamic or Trace-Based Checking |
|
|
184 | (23) |
|
|
187 | (9) |
|
|
196 | (7) |
|
|
203 | (4) |
|
|
207 | (22) |
|
|
211 | (7) |
|
Software Checking via Predicate Abstraction |
|
|
218 | (7) |
|
Combining Formal Verification with Testing |
|
|
225 | (4) |
|
|
229 | (1) |
|
|
230 | (3) |
Bibliography |
|
233 | (8) |
Index |
|
241 | |
Abhik received his M.S. and Ph.D. in Computer Science from the State University of New York at Stony Brook in 1997 and 2000 respectively. His research has focused on formal verification and analysis methods for system design, with focus on embedded software and systems. In these areas, his research group has been involved in building practical program analysis and software productivity tools which enhance software quality as well as programmer productivity. Two meaningful examples of such endeavor are the JSlice dynamic analysis tool for Java program debugging, and the Chronos static analysis tool for ensuring time-predictable execution of embedded software. His awards include a 2008 IBM Faculty Award. Since 2001, Abhik has been at the School of Computing in the National University of Singapore, where he is currently an Associate Professor.