Marilyn Wolf,佐治亚理工学院教授,佐治亚研究联合会优秀学者。她分别于1980年、1981年和1984年获得斯坦福大学电子工程学士学位、硕士学位和博士学位。1984年至1989年任职于贝尔实验室,1989年至2007年执教于普林斯顿大学。她是IEEE和ACM会士、IEEE计算机协会核心成员以及ASEE和SPIE成员。她于2003获得ASEE Frederick E. Terman奖,于2006年获得IEEE电路与系统教育奖。她的研究兴趣主要包括嵌入式计算、嵌入式视频和计算机视觉、VLSI系统。
内页插图
目录
Foreword to the first edition Preface to the first edition Preface to the second edition Preface to the third edition
Chapter 1 Embedded computing 1.1 Introduction 1.2 Complex systems and microprocessors 1.3 The embedded system design process 1.4 Design example: Model train controller 1.5 A guided tour of this book 1.6 Summary What we learned Further reading Questions Lab exercises
Chapter 2 Instruction sets 2.1 Introduction 2.2 Preliminaries 2.3 Arm processor 2.4 Picmicro mid-range family 2.5 TI C55x DSP 2.6 TI C64x 2.7 Summary What we learned Further reading Questions Lab exercises
Chapter 3 CPUS 3.1 Introduction 3.2 Programming input and output 3.3 Supervisor mode, exceptions, and traps 3.4 Co-processors 3.5 Memory system mechanisms 3.6 CPU performance 3.7 CPU power consumption 3.8 Design example: Data compressor 3.9 Summary What we learned Further reading Questions Lab exercises
Chapter 4 Computing platforms Chapter 5 Program design and analysis Chapter 6 Processes and operating systems Chapter 7 System design techniques Chapter 8 Networks and multiprocessors Glossary References Index
1.1 Introduction In this chapter we set the stage for our study of embedded computing system design.In order to understand design processes, we first need to understand how and why microprocessors are used for control, user interface, signal processing, and many other tasks. The microprocessor has become so common that it is easy to forget how hard some things are to do without it. We first review the various uses of microprocessors. We then review the major rea-sons why microprocessors are used in system design-delivering complex behaviors, fast design turnaround, and so on. Next, in Section l.2, we walk through the design of an example system to understand the major steps in designing a system. Section l.3 includes an in-depth look at techniques for specifying embedded systems-we use these specification techcuques throughout the book. In Section l.4, we use a model train controller as an example for applying these specification techniques. Section 1.5 provides a chapter-by-chapter tour of the book. 1.2 Complex systems and microprocessors We tend to think of our laptop as a computer, but it is really one of many types of computer systems. A computer is a stored program machine that fetches and executes instructions from a memory. We can attach different types of devices to the computer, load it with different types of software, and build many different types of systems. So what is an embedded computer system? Loosely defined, it is any device that includes a programmable computer but is not itself intended to be a general-purpose computer. Thus, a PC is not itself an embedded computing system. But a fax machine or a clock built from a microprocessor is an embedded computing system. This means that embedded computing system design is a useful skill for many types of product design. Automobiles, cell phones, and even household appliances make extensive use of microprocessors, Designers in many fields must be able to identify where microprocessors can be used, design a hardware platform with I/O devices that can support the required tasks, and implement software that performs the required processing. Computer engineering, like mechanical design or thermo-dynamics, is a fundamental discipline that can be applied in many different domains. But of course, embedded computing system design does not stand alone. Many of the challenges encountered in the design of an embedded computing system are not computer engineering-for example, they may be mechanical or analog electrical problems. In this book we are primarily interested in the embedded computer itself, so we will concentrate on the hardware and software that enable the desired functions in the final product. 1.2.1 Embedding computers Computers have been embedded into applications since the earliest days of computing. One example is the Whirlwind, a computer designed at MITin the late 1940s and early 1950s. Whirlwind was also the first computer designed to support real-time operation and was originally conceived as a mechanism for controlling an aircraft simulator. Even though it was extremely large physically compared to today's computers (it con-tained over 4,000 vacuum tubes, for example), its complete design from components to system was attuned to the needs of real time embedded computing. The utility of computers in replacing mechanical or human controllers was evident from the very beginning of the computer era-for example, computers were proposed to control chemical processes in the late 1940s [Sto95]. ……