嵌入式计算系统设计原理(英文版·第3版)
作者 : (美)Marilyn Wolf 著 佐治亚理工学院
丛书名 : 经典原版书库
出版日期 : 2013-02-25
ISBN : 978-7-111-41228-1
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 520
开本 : 16
原书名 : Computers as Components: Principles of Embedded Computing System Design, Third Edition
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 教材
包含CD :
绝版 :
图书简介

本书从组件技术的视角出发,讲述了嵌入式计算的基本原理和技术。书中以实际芯片ti tms320c55xtm(c55x)dsp和软件系统freertos.org为例,一章一个重点,涉及构造嵌入式系统相关的指令系统、cpu、基于总 线的计算机系统、程序设计与分析、进程和操作系统、多处理器、网络、系统设计技术等主要方面。

图书特色

本书从组件技术的视角出发,介绍了嵌入式系统设计技术和技巧。本书自第1版出版以来,已广泛应用于教学,并为实践设计提供了宝贵指南。第3版根据最先进的技术发展进行了更新,更详细阐述操作系统中的进程通信和缓冲,尤其是新增了数字信号处理、多媒体和CPS方面的实例。作者介绍了德州仪器、ARM、美国微芯科技公司的最新处理器及软件、操作系统、网络、消费性电子设备等。不论是进行软硬件设计的研究人员、学生还是专家,都能从Marilyn Wolf的集成化工程设计方法中获益匪浅。
本书特色
以实际芯片(ARM芯片、TI C55x DSP和PIC)为例,进行相关设计技术和技巧的说明,向读者介绍如何将这些理论付诸于设计实践。
在所有关键课题讨论中都尤为强调现实中的设计实践,从而为学生和设计人员提供了最先进技术的指导。
对设计实践中所必需的基本应用技术进行重点讨论,帮助读者在实际工作中熟练地设计大型的、复杂的嵌入式系统。

作者简介
Marilyn Wolf 佐治亚理工学院教授,佐治亚研究联合会优秀学者。她分别于1980年、1981年和1984年获得斯坦福大学电子工程学士学位、硕士学位和博士学位。1984年至1989年任职于贝尔实验室,1989年至2007年执教于普林斯顿大学。她是IEEE和ACM会士、IEEE计算机协会核心成员以及ASEE和SPIE成员。她于2003获得ASEE Frederick E. Terman奖,于2006年获得IEEE电路与系统教育奖。她的研究兴趣主要包括嵌入式计算、嵌入式视频和计算机视觉、VLSI系统。

上架指导

计算机\硬件

封底文字

本书从组件技术的视角出发,介绍了嵌入式系统设计技术和技巧。本书自第1版出版以来,已广泛应用于教学,并为实践设计提供了宝贵指南。第3版根据最先进的技术发展进行了更新,更详细阐述操作系统中的进程通信和缓冲,尤其是新增了数字信号处理、多媒体和CPS方面的实例。作者介绍了德州仪器的最新处理器、ARM、美国微芯科技公司及软件、操作系统、网络、消费性电子设备等。不论是进行软硬件设计的研究人员、学生还是专家,都能从Marilyn Wolf的集成化工程设计方法中获益匪浅。

本书特色
 以实际芯片(ARM芯片、TI C55x DSP和PIC)为例,进行相关设计技术和技巧的说明,向读者介绍如何将这些理论付诸于设计实践。
 在所有关键课题讨论中都尤为强调现实中的设计实践,从而为学生和设计人员提供了最先进技术的指导。
 对设计实践中所必需的基本应用技术进行重点讨论,帮助读者在实际工作中熟练地设计大型的、复杂的嵌入式系统。

作者简介

(美)Marilyn Wolf 著 佐治亚理工学院:Marilyn Wolf 佐治亚理工学院教授,佐治亚研究联合会优秀学者。她分别于1980年、1981年和1984年获得斯坦福大学电子工程学士学位、硕士学位和博士学位。1984年至1989年任职于贝尔实验室,1989年至2007年执教于普林斯顿大学。她是IEEE和ACM会士、IEEE计算机协会核心成员以及ASEE和SPIE成员。她于2003年获得ASEE Frederick E. Terman奖,于2006年获得IEEE电路与系统教育奖。她的研究兴趣主要包括嵌入式计算、嵌入式视频和计算机视觉、VLSI系统。 作者照片从原书封底扫描

图书目录

Contents
Foreword to the First Edition ............................... v
Preface to the First Edition ................................ vii
Preface to the Second Edition .............................. x
Preface to the Third Edition ................................ xi
CHAPTER 1 Embedded Computing................................................ 1
1.1 Introduction ....................... 1
1.2 Complex systems and microprocessors ..................................... 1
1.2.1 Embedding computers ............. 2
1.2.2 Characteristics of embedded computing applications .... 4
1.2.3 Why use microprocessors ...... 6
1.2.4 Cyber-physical systems ........... 7
1.2.5 Challenges in embedded computing system design ....... 8
1.2.6 Performance of embedded computing systems .............. 9
1.3 The embedded system design process ..................................... 10
1.3.1 Requirements ......................... 12
1.3.2 Specification................................................. 16
1.3.3 Architecture design ................ 17
1.3.4 Designing hardware and software components ............ 19
1.3.5 System integration ................. 19
1.3.6 Formalisms for system design ...............................20
1.3.7 Structural description ............. 21
1.3.8 Behavioral description ........... 25
1.4 Design example: Model train controller ........................ 28
1.4.1 Requirements ......................... 29
1.4.2 DCC ....................................... 30
1.4.3 Conceptual specification ........ 32
1.4.4 Detailed specification......................................... 35
1.4.5 Lessons learned.................................................... 42
1.5 A guided tour of this book ................ 42
1.5.1 Chapter 2: Instruction sets ..... 43
1.5.2 Chapter 3: CPUs .................... 43
1.5.3 Chapter 4: Computing platforms .................................. 44
1.5.4 Chapter 5: Program design and analysis....................... 44
1.5.5 Chapter 6: Processes and operating systems................. 45
1.5.6 Chapter 7: System design techniques ........................... 46
1.5.7 Chapter 8: Networks and multiprocessors .................... 47
1.6 Summary.....................................................47
What we learned............................................................. 48
Further reading ........................ 48
Questions................................................ 48
Lab exercises ........................... 50
CHAPTER 2 Instruction Sets ............... 51
2.1 Introduction ...................................... 51
2.2 Preliminaries ..................................... 51
2.2.1 Computer architecture taxonomy.................................. 52
2.2.2 Assembly languages...........................................54
2.2.3 VLIW processors ................... 56
2.3 ARM processor ................................. 57
2.3.1 Processor and memory organization ............................. 58
2.3.2 Data operations ...................... 59
2.3.3 Flow of control................................................. 66
2.3.4 Advanced ARM features ........ 72
2.4 PICmicro mid-range family............................ 73
2.4.1 Processor and memory organization ............................. 73
2.4.2 Data operations ...................... 73
2.4.3 Flow of control.......................................... 76
2.5 TI C55x DSP............................................... 77
2.5.1 Processor and memory organization ............................. 78
2.5.2 Addressing modes .................. 81
2.5.3 Data operations ...................... 83
2.5.4 Flow of control................................... 84
2.5.5 C coding guidelines ............... 86
2.6 TI C64x ............................ 87
2.7 Summary..................................... 90
What we learned..................................... 90
Further reading ........................ 91
Questions....................................... 91
Lab exercises ........................... 93
CHAPTER 3 CPUs................................95
3.1 Introduction ................................. 95
3.2 Programming input and output ......... 96
3.2.1 Input and output devices ........ 96
3.2.2 Input and output primitives............................ 98
3.2.3 Busy-wait I/O......................................... 99
3.2.4 Interrupts .............................. 101
3.3 Supervisor mode, exceptions, and traps ......................... 114
3.3.1 Supervisor mode .................. 114
3.3.2 Exceptions...................................................... 115
3.3.3 Traps.............................................. 115
3.4 Co-processors ............................115
3.5 Memory system mechanisms................................ 116
3.5.1 Caches ..............................116
3.5.2 Memory management units and address translation... 123
3.6 CPU performance ........................... 128
3.6.1 Pipelining ............................. 128
3.6.2 Cache performance .............. 132
3.7 CPU power consumption.............................. 133
3.8 Design example: Data compressor ......... 137
3.8.1 Requirements and algorithm ...................... 137
3.8.2 Specification...................................... 140
3.8.3 Program design .................... 141
3.8.4 Testing ......................148
3.9 Summary................................ 149
What we learned............................................. 149
Further reading ...................................... 150
Questions............................................ 150
Lab exercises ......................... 153
CHAPTER 4 Computing Platforms ........................155
4.1 Introduction ............................155
4.2 Basic computing platforms ............. 155
4.2.1 Platform hardware components .................................. 156
4.2.2 Platform software components ................................... 158
4.3 The CPU bus................................... 159
4.3.1 Bus organization and protocol ...........................160
4.3.2 DMA ...........................167
4.3.3 System bus configurations .................................170
4.4 Memory devices and systems ......... 172
4.4.1 Memory system organization...................................... 174
4.5 Designing with computing platforms .................................... 176
4.5.1 Example platforms ........
4.6 Consumer electronics architecture.............................. 185
4.6.1 Consumer electronics use cases and requirements... 185
4.6.2 File systems ....................... 187
4.7 Platform-level performance analysis ..........................188
4.8 Design example: Alarm clock.................... 193
4.8.1 Requirements...................................................193
4.8.2 Specification ...................... 194
4.8.3 System architecture ........... 197
4.8.4 Component design and testing ................................. 200
4.8.5 System integration and testing ................................. 200
4.9 Design example: Audio player ..... 200
4.9.1 Theory of operation and requirements ..................... 200
4.9.2 Specification ...................... 202
4.9.3 System architecture ........... 204
4.9.4 Component design and testing ................................. 206
4.9.5 System integration and debugging ........................... 206
4.10 Summary .............................. 207
What we learned............................................ 207
Further reading ...................................... 207
Questions................................................ 207
Lab exercises ......................... 210
CHAPTER 5 Program Design and Analysis ................................ 213
5.1 Introduction .........................213
5.2 Components for embedded programs.................................. 214
5.2.1 State machines ................... 214
5.2.2 Circular buffers and stream-oriented programming............ 216
5.2.3 Queues and producer/consumer systems.................. 221
5.3 Models of programs...................................... 223
5.3.1 Data flow graphs.................................. 224
5.3.2 Control/data flow graphs .................................226
5.4  Assembly, linking, and loading............................ 228
5.4.1 Assemblers ........................ 229
5.4.2 Linking .............................. 233
5.4.3 Object code design ............ 235
5.5 Compilation techniques ................ 236
5.5.1 The compilation process..................................236
5.5.2 Basic compilation methods ...................................... 237
5.5.3 Compiler optimizations ...................................245
5.6 Program-level performance analysis ..........................254
5.6.1 Elements of program performance ........................... 256
5.6.2 Measurement-driven performance analysis.............. 259
5.7 Software performance optimization ...........................262
5.7.1 Loop optimizations.............................. 262
5.7.2 Cache optimizations .......... 264
5.7.3 Performance optimization strategies ........................ 265
5.8 Program-level energy and power analysis andoptimization ..........266
5.9  Analysis and optimization of program size ................270
5.10 Program validation and testing.......................... 271
5.10.1 Clear-box testing ............. 271
5.10.2 Black-box testing ............ 278
5.10.3 Evaluating functional tests ............................279
5.11 Design example: Software modem.............................280
5.11.1 Theory of operation and requirements ................... 280
5.11.2 Specification .................... 283
5.11.3 System architecture ......... 283
5.11.4 Component design and testing ............................... 284
5.11.5 System integration and testing ............................... 285
5.12 Design example: Digital still camera ........................... 285
5.12.1 Theory of operation and requirements ................... 285
5.12.2 Specification .................... 290
5.12.3 System architecture ......... 293
5.12.4 Component design and testing ............................... 296
5.12.5 System integration and testing ............................... 296
5.13 Summary .................................... 296
What we learned.............................................. 296
Further reading ...................................... 297
Questions............................................. 297
Lab exercises ......................... 305
CHAPTER 6 Processes and Operating Systems ......................... 307
6.1 Introduction .........................307
6.2 Multiple tasks and multiple processes ........................308
6.2.1 Tasks and processes ........... 308
6.3 Multirate systems...............................310
6.3.1 Timing requirements on processes ........................... 311
6.3.2 CPU usage metrics ............ 316
6.3.3 Process state and scheduling ...........................316
6.3.4 Running periodic processes...................................... 317
6.4 Preemptive real-time operating systems.....................319
6.4.1 Two basic concepts............................................ 320
6.4.2 Processes and context ........ 321
6.4.3 Processes and object-oriented design ....................... 324
6.5 Priority-based scheduling ............. 325
6.5.1 Rate-monotonic scheduling ...................................... 326
6.5.2 Shared resources........................................... 330
6.5.3 Priority inversion ............... 332
6.5.4 Earliest-deadline-first scheduling ............................. 333
6.5.5 RMS versus EDF.............................................337
6.5.6 A closer look at our modeling assumptions.............. 337
6.6 Interprocess communication mechanisms ........................... 340
6.6.1 Shared memory communication............................... 340
6.6.2 Message passing ................ 341
6.6.3 Signals ............................... 342
6.6.4 Mailboxes .......................... 343
6.7 Evaluating operating system performance .......................... 344
6.8 Power optimization strategies for processes........................ 349
6.9 Example real-time operating systems.........................352
6.9.1 POSIX ............................... 352
6.9.2 Windows CE....................................... 357
6.10 Design example: Telephone answering machine ................ 361
6.10.1 Theory of operation and requirements ................... 361
6.10.2 Specification .................... 364
6.10.3 System architecture ......... 366
6.10.4 Component design and testing ............................... 368
6.10.5 System integration and testing ............................... 368
6.11 Design example: Engine control unit ......................... 369
6.11.1 Theory of operation and requirements ................... 369
6.11.2 Specification .................... 370
6.11.3 System architecture ......... 371
6.11.4 Component design and testing ............................... 373
6.11.5 System integration and testing ............................... 374
6.12 Summary ..................................... 374
What we learned........................................... 374
Further reading ....................................... 374
Questions............................................. 375
Lab exercises ......................... 380
CHAPTER 7 System Design Techniques .................................... 381
7.1 Introduction .........................381
7.2 Design methodologies .................. 381
7.2.1 Why design methodologies .................................... 381
7.2.2 Design flows ...................... 383
7.3 Requirements analysis .................... 389
7.4 Specifications........................................................ 390
7.4.1 Control-oriented specification languages.................... 391
7.4.2 Advanced specifications.............................................. 394
7.5 System analysis and architecture design ............................... 396
7.5.1 CRC cards ............................ 396
7.6 Quality assurance............................ 400
7.6.1 Quality assurance techniques.............................402
7.6.2 Verifying the specification ... 404
7.6.3 Design reviews.................................... 406
7.7 Summary............................................................... 407
What we learned........................................................... 407
Further reading ..................................... 408
Questions................................................. 408
Lab exercises ......................... 408
CHAPTER 8 Networks and Multiprocessors .............................. 409
8.1 Introduction ...........................409
8.2 Why networks and multiprocessors ..................... 409
8.3 Categories of multiprocessors ........ 412
8.4 Distributed embedded systems ....... 414
8.4.1 Network abstractions ........... 414
8.4.2 CAN bus .............................. 416
8.4.3 Distributed computing in cars and airplanes............... 419
8.4.4 I2C bus.......................... 422
8.4.5 Ethernet ................................ 426
8.4.6 Internet ........................429
8.5 MPSoCs and shared memory multiprocessors ...................... 431
8.5.1 Heterogeneous shared memory multiprocessors ........ 431
8.5.2 Accelerators ......................... 432
8.5.3 Accelerator performance analysis ............................... 434
8.5.4 Scheduling and allocation .... 438
8.6 Design example: Video accelerator 441
8.6.1 Video compression.............................. 441
8.6.2 Algorithm and requirements ..............................443
8.6.3 Specification......................... 445
8.6.4 Architecture.......................... 446
8.6.5 Component design ............... 449
8.6.6 System testing ...................... 449
8.7 Application example: Compact disc ................... 449
8.8 Summary............................................. 454
What we learned...................................... 454
Further reading .................................... 454
Questions......................................... 455
Lab exercises ......................... 456
Glossary ................................................459
References ............................................477
Index............................487

教学资源推荐
作者: (美)David A. Patterson加州大学伯克利分校John L. Hennessy 著斯坦福大学
作者: 袁春风 余子濠 编著
作者: [美]胡文美(Wen-mei W. Hwu)编著
作者: [美]汤孟岩(Yan Solihin)著
参考读物推荐
作者: 高显生 编著
作者: 汪文祥 邢金璋 著
作者: 刘火良 杨森 编著
作者: 赵建领; 薛园园