About the Authors Foreword. Preface Content and Structure The VEX (VLIW Example) Computing System Audience Cross-cutting Topics How to Read This Book Figure Acknowledgments Acknowledgments CHAPTER 1 An Introduction to Embedded Processing 1.1 What Is Embedded Computing? 1.2 Distinguishing Between Embedded and General-Purpose Computing 1.3 Characterizing Embedded Computing 1.4 Embedded Market Structure 1.5 Further Reading 1.6 Exercises CHAPTER 2 An Overview of VLIW and ILP 2.1 Semantics and Parallelism 2,2 Design Philosophies 2.3 Role of the Compiler 2.4 VLIW in the Embedded and DSP Domains 2.5 Historical Perspective and Further Reading 2.6 Exercises CHAPTER 3 An Overview of ISA Design 3.1 Overview: What to Hide 3.2 Basic VLIW Design Principles 3.3 Designing a VLIW ISA for Embedded Systems 3.4 Instruction-set Encoding 3.5 VLIW Encoding 3.6 Encoding and Instruction-set Extensions 3.7 Further Reading 3.8 Exercises CHAPTER 4 Architectural Structures in ISA Design 4.1 The Datapath 4.2 Registers and Clusters 4.3 Memory Architecture 4.4 Branch Architecture 4.5 Speculation and Predication 4.6 System Operations 4.7 Further Reading 4.8 Exercises CHAPTER 5 Microarchitecture Design 5.1 Register File Design 5.2 Pipeline Design 5.3 VLIW Fetch, Sequencing, and Decoding 5.4 The Datapath 5.5 Memory Architecture 5.6 The Control Unit 5.7 Control Registers 5.8 Power Considerations 5.9 Further Reading 5.10 Exercises CHAPTER 6 System Design and Simulation 6.1 System-on-a-Chip (SEC) 6.2 Processor Cores and SeC 6.3 Overview of Simulation 6.4 Simulating a VLIW Architecture 6.5 System Simulation.. 6.8 Validation and Verification 6.7 Further Reading 6.8 Exercises CHAPTER 7 Embedded Compiling and Toolchains 7.1 What Is Important in an ILP Compiler? 7.2 Embedded Cross-Development Toolchains 7.3 Structure of an ILP Compiler 7.4 Code Layout 7.5 Embedded-Specific Tradeoffs for Compilers 7.6 DSP-Specific Compiler Optimizations 7.7 Further Reading 7.8 Exercises CHAPTER 8 Compiling for VL1Ws and ILP 8.1 Profiling 8.2 Scheduling 8.3 Register Allocation 8.4 Speculation and Predication 8.5 Instruction Selection 8.6 Further Reading 8.7 Exercises CHAPTER 9 The Run-time System 9.1 Exceptions, Interrupts, and Traps 9.2 Application Binary Interface Considerations 9.3 Code Compression 9.4 Embedded Operating Systems 9.5 Multiprocessing and Multithreading 9.6 Further Reading 9.7 Exercises CHAPTER 10 Application Design and Customization 10.1 Programmiug Language Choices 10.2 Performance, Benchmarking, and Tuning 10.3 Scalability and Customizability 10.4 Further Reading 10.5 Exercises CHAPTER 11 Application Areas 11.1 Digital Printing and Imaging 11.2 Telecom Applications 11.3 Other Application Areas 11.4 Further Reading 11.5 Exercises APPENDIX A The VEX System A.1 The VEX Instruction-set Architecture A.2 The VEX Run-time Architecture A.3 The VEX C Compiler A.4 Visualization Tools A.5 The VEX Simulation System A.6 Customizing the VEX Toolchzin A.7 Examples of Tool Usage A.8 Exercises APPENDIX B Glossary APPENDIX C Bibliography Index ...
|