Professional Documents
Culture Documents
Front Matter
Front Matter
Front Matter
Handbook of Signal
Processing Systems
Foreword by S.Y. Kung
Editors
Shuvra S. Bhattacharyya
ECE Department and UMIACS
University of Maryland
2311 A. V. Williams Building
College Park
Maryland 20742
USA
ssb@umd.edu
Rainer Leupers
RWTH Aachen University
Templergraben 55
52056 Aachen
Germany
leupers@iss.rwth-aachen.de
Ed F. Deprettere
Leiden Institute of Advanced
Computer Science
Leiden Embedded Research Center
Leiden University
Niels Bohrweg 1
2333 CA Leiden
Netherlands
edd@liacs.nl
Jarmo Takala
Department of Computer Systems
Tampere University of Technology
Korkeakoulunkatu 1
33720 Tampere
Finland
jarmo.takala@tut.fi
ISBN 978-1-4419-6344-4
e-ISBN 978-1-4419-6345-1
DOI 10.1007/978-1-4419-6345-1
Springer New York Dordrecht Heidelberg London
Library of Congress Control Number: 2010932128
Springer Science+Business Media, LLC 2010
All rights reserved. This work may not be translated or copied in whole or in part without the
written permission of the publisher (Springer Science+Business Media, LLC, 233 Spring Street,
New York, NY 10013, USA), except for brief excerpts in connection with reviews or scholarly analysis.
Use in connection with any form of information storage and retrieval, electronic adaptation, computer
software, or by similar or dissimilar methodology now known or hereafter developed is forbidden.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they
are not identified as such, is not to be taken as an expression of opinion as to whether or not they are
subject to proprietary rights.
Printed on acid-free paper
Springer is part of Springer Science+Business Media (www.springer.com)
To Milu
Shuvra Bhattacharyya
To Deirdre
Ed Deprettere
To Bettina
Rainer Leupers
To Auli
Jarmo Takala
Foreword
It gives me immense pleasure to introduce this timely handbook to the research/development communities in the field of signal processing systems (SPS). This is the
first of its kind and represents state-of-the-arts coverage of research in this field.
The driving force behind information technologies (IT) hinges critically upon the
major advances in both component integration and system integration. The major
breakthrough for the former is undoubtedly the invention of IC in the 50s by Jack
S. Kilby, the Nobel Prize Laureate in Physics 2000. In an integrated circuit, all
components were made of the same semiconductor material. Beginning with the
pocket calculator in 1964, there have been many increasingly complex applications
followed. In fact, processing gates and memory storage on a chip have since then
grown at an exponential rate, following Moores Law. (Moore himself admitted that
Moores Law had turned out to be more accurate, longer lasting and deeper in impact
than he ever imagined.) With greater device integration, various signal processing
systems have been realized for many killer IT applications. Further breakthroughs in
computer sciences and Internet technologies have also catalyzed large-scale system
integration. All these have led to todays IT revolution which has profound impacts
on our lifestyle and overall prospect of humanity. (It is hard to imagine life today
without mobiles or Internets!)
The success of SPS requires a well-concerted integrated approach from multiple disciplines, such as device, design, and application. It is important to recognize
that system integration means much more than simply squeezing components onto
a chip and, more specifically, there is a symbiotic relationship between applications
and technologies. Emerging applications, e.g. 3D TV, will prompt modern system
requirements on performance and power consumption, thus inspiring new intellectual challenges. The SPS architecture must consider overall system performance,
flexibility, and scalability, power/thermal management, hardware-software partition,
and algorithm developments. With greater integration, system designs become more
complex and there exists a huge gap between what can be theoretically designed and
what can be practically implemented. It is critical to consider, for instance, how to
deploy in concert an ever increasing number of transistors with acceptable power
consumption; and how to make hardware effective for applications and yet friendly
vii
viii
Foreword
to the users (easy to program). In short, major advances in SPS must arise from close
collaboration between application, hardware/architecture, algorithm, CAD, and system design.
The handbook has offered a comprehensive and up-to-date treatment of the driving forces behind SPS, current architectures and new design trends. It has also
helped seed the SPS field with innovations in applications; architectures; programming and simulation tools; and design methods. More specifically, it has provided
a solid foundation for several imminent technical areas, for instance, scalable,
reusable, and reliable system architectures, energy-efficient high-performance architectures, IP deployment and integration, on-chip interconnects, memory hierarchies, and future cloud computing. Advances in these areas will have greater impact
on future SPS technologies.
It is only fitting for Springer to produce this timely handbook. Springer has long
played a major role in academic publication on SPS, many of them have been in
close cooperation with IEEEs Signal Processing, Circuits and Systems, and Computer Societies. For nearly 20 years, I have been the Editor-in-Chief of Springers
Journal of Signal Processing Systems, considered by many as a major forum for
the SPS researchers. Nevertheless, the idea has been around for years that a singlevolume reference book would very effectively complement the journal in serving
this technical community. Then, during the 2008 IEEE Workshop on Signal Processing Systems, Washington D.C., Jennifer Evans from Springer and the editorial
team led by Prof. Shuvra Bhattacharyya met to brainstorm implementation of such
idea. The result is this handsome volume, containing contributions from renowned
pioneers and active researchers.
I congratulate the authors and editors for putting together such an outstanding
handbook. It is truly a timely contribution to the exciting field of SPS for this new
decade and many decades to come.
Princeton
S.Y. Kung
Preface
This handbook provides a reference on key topics in the design, analysis, implementation, and optimization of hardware and software for signal processing systems. Plans for the handbook originated through valuable discussions with SY Kung
(Princeton University) and Jennifer Evans (Springer). Through these discussions,
we became aware of the need for an integrated reference focusing on the efficient
implementation of signal processing applications. We were then fortunate to be able
to enlist the participation of a diverse group of leading experts to contribute chapters
in a broad range of complementary topics.
We hope that this handbook will serve as a useful reference to engineering practitioners, graduate students, and researchers working in the broad area of signal
processing systems. It is also envisioned that selected chapters from the book can
be used as core readings for seminar- or project-oriented graduate courses in signal
processing systems. Given the wide range of topics covered in the book, instructors
would have significant flexibility to orient such a course towards particular themes
or levels of abstraction that they would like to emphasize.
The handbook is organized in four parts. Part I motivates representative applications that drive and apply state-of-the art methods for design and implementation of
signal processing systems; Part II discusses architectures for implementing these applications; Part III focuses on compilers and simulation tools; and Part IV describes
models of computation and their associated design tools and methodologies.
We are very grateful to all of the authors for their valuable contributions, and for
the time and effort they have devoted to preparing the chapters. We would also like
to thank Jennifer Evans and SY Kung for their encouragement of this project, which
was instrumental in getting the project off the ground, and to Jennifer Maurer for her
support and patience throughout the entire development process of the handbook.
Shuvra Bhattacharyya, Ed Deprettere
Rainer Leupers, and Jarmo Takala
ix
Contents
Part I Applications
Managing Editor: Shuvra Bhattacharyya
Signal Processing for Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
William S. Levine
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Brief introduction to control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Sensitivity to disturbance . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
Sensitivity conservation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Signal processing in control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
simple cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
Demanding cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Exemplary case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Digital Signal Processing in Home Entertainment . . . . . . . . . . . . . . . . . . . .
Konstantinos Konstantinides
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
The Personal Computer and the Digital Home . . . . . . . . . .
2
The Digital Photo Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
Image Capture and Compression . . . . . . . . . . . . . . . . . . . . .
2.2
Focus and exposure control . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
Pre-processing of CCD data . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
White Balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5
Demosaicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6
Color transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7
Post Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8
Preview display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
8
9
9
10
12
15
19
20
20
21
23
23
24
25
25
26
26
27
27
27
27
27
xi
xii
Contents
2.9
Compression and storage . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10
Photo Post-Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11
Storage and Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.12
Digital Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
The Digital Music Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
Broadcast Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Audio Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
The Digital Video Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1
Digital Video Broadcasting . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
New Portable Digital Media . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
Digital Video Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4
Digital Video Processing . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5
Digital Video Playback and Display . . . . . . . . . . . . . . . . . .
5
Sharing Digital Media in the Home . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
DLNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Digital Media Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3
Digital Media Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Copy Protection and DRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1
Microsoft Windows DRM . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Summary and Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
To Probe Further . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
28
28
29
29
29
30
31
31
33
33
33
35
35
35
36
36
36
37
38
40
41
41
43
44
44
46
47
48
48
49
53
55
57
57
61
61
62
64
65
66
Contents
xiii
xiv
Contents
Contents
xv
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
High-Energy Physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Anthony Gregerson, Michael J. Schulte, and Katherine Compton
1
Introduction to High-Energy Physics . . . . . . . . . . . . . . . . . . . . . . . . . 179
2
The Compact Muon Solenoid Experiment . . . . . . . . . . . . . . . . . . . . . 182
2.1
Physics Research at the CMS Experiment . . . . . . . . . . . . . 183
2.2
Sensors and Triggering Systems . . . . . . . . . . . . . . . . . . . . . 184
2.3
The Super Large Hadron Collider Upgrade . . . . . . . . . . . . 188
3
Characteristics of High-Energy Physics Applications . . . . . . . . . . . 189
3.1
Technical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.2
Characteristics of the Development Process . . . . . . . . . . . . 192
3.3
Evolving Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.4
Functional Verification and Testing . . . . . . . . . . . . . . . . . . . 194
3.5
Unit Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
4
Techniques for Managing Design Challenges . . . . . . . . . . . . . . . . . . 196
4.1
Managing Hardware Cost and Complexity . . . . . . . . . . . . . 196
4.2
Managing Variable Latency and Variable Resource Use . . 198
4.3
Scalable and Modular Designs . . . . . . . . . . . . . . . . . . . . . . . 201
4.4
Dataflow-Based Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4.5
Language-Independent Functional Testing . . . . . . . . . . . . . 203
4.6
Efficient Design Partitioning . . . . . . . . . . . . . . . . . . . . . . . . 204
5
Example Problems from the CMS Level-1 Trigger . . . . . . . . . . . . . . 204
5.1
Particle Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.2
Jet Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Medical Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Raj Shekhar, Vivek Walimbe, and William Plishker
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
2
Medical Imaging Modalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
2.1
Radiography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
2.2
Computed Tomography . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
2.3
Nuclear Medicine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
2.4
Magnetic Resonance Imaging . . . . . . . . . . . . . . . . . . . . . . . 215
2.5
Ultrasound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3
Medical Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
3.1
Imaging Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
4
Image Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.1
CT Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.2
PET/SPECT Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . 223
4.3
Reconstruction in MRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4.4
Ultrasound Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . 224
5
Image Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6
Image Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
xvi
Contents
6.1
Classification of Segmentation Techniques . . . . . . . . . . . . 227
6.2
Threshold-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.3
Deformable Model-based . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
7
Image Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
7.1
Geometry-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
7.2
Intensity-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
7.3
Transformation Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
8
Image Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
8.1
Surface Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
8.2
Volume Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
9
Medical Image Processing Platforms . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.1
Computing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.2
Platforms For Accelerated Implementation . . . . . . . . . . . . 238
10
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Signal Processing for Audio HCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Dmitry N. Zotkin and Ramani Duraiswami
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
2
Microphone Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
2.1
Source Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
2.2
Beamforming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
2.3
Practical Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
3
Audio Reproduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
3.1
Head-related transfer function . . . . . . . . . . . . . . . . . . . . . . . 248
3.2
Reverberation Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
3.3
User Motion Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
3.4
Signal Processing Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . 250
4
Sample Application: Fast HRTF Measurement System . . . . . . . . . . 252
5
Sample Application: Auditory Scene Capture and Reproduction . . 256
6
Sample Application: Acoustic Field Visualization . . . . . . . . . . . . . . 260
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Distributed Smart Cameras and Distributed Computer Vision . . . . . . . . . . 267
Marilyn Wolf and Jason Schlessman
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
2
Approaches to Computer Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
3
Early Work in Distributed Smart Cameras . . . . . . . . . . . . . . . . . . . . . 270
4
Approaches to Distributed Computer Vision . . . . . . . . . . . . . . . . . . . 270
4.1
Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
4.2
Platform Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
4.3
Mid-Level Fusion for Gesture Recognition . . . . . . . . . . . . 275
4.4
Target-Level Fusion for Tracking . . . . . . . . . . . . . . . . . . . . 275
4.5
Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
4.6
Sparse Camera Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Contents
xvii
5
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Part II Architectures
Managing Editor: Jarmo Takala
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Oscar Gustafsson and Lars Wanhammar
1
Number representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
1.1
Binary representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
1.2
Twos complement representation . . . . . . . . . . . . . . . . . . . . 284
1.3
Redundant representations . . . . . . . . . . . . . . . . . . . . . . . . . . 284
1.4
Shifting and increasing the wordlength . . . . . . . . . . . . . . . . 286
1.5
Negation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.6
Finite-wordlength effects . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
2
Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
2.1
Ripple-carry addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
2.2
Carry-lookahead addition . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
2.3
Carry-select and conditional sum addition . . . . . . . . . . . . . 295
2.4
Multi-operand addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
3
Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
3.1
Partial product generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
3.2
Summation structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
3.3
Vector merging adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
3.4
Multiply-accumulate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
3.5
Multiplication by a constant . . . . . . . . . . . . . . . . . . . . . . . . . 305
3.6
Distributed arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
4
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
4.1
Restoring and nonrestoring division . . . . . . . . . . . . . . . . . . 313
4.2
SRT division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
4.3
Speeding up division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
4.4
Square root extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
5
Floating-point representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
5.1
Normalized representations . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.2
IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.3
Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
5.4
Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.5
Quantization error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
6
Computation of elementary function . . . . . . . . . . . . . . . . . . . . . . . . . 319
6.1
CORDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
6.2
Polynomial and piecewise polynomial approximations . . 321
6.3
Table-based methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
7
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
xviii
Contents
Contents
xix
3.1
Fixed-Point Data Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
3.2
Floating-Point Data Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
3.3
Special Function Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
4
Memory Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
5
Address Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
6
Program Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
7
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
8
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Application Specific Instruction Set DSP Processors . . . . . . . . . . . . . . . . . . 415
Dake Liu
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
1.1
ASIP Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
1.2
Difference Between ASIP and General CPU . . . . . . . . . . . 416
2
DSP ASIP Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
3
Architecture and Instruction Set Design . . . . . . . . . . . . . . . . . . . . . . . 420
3.1
Code Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
3.2
Using an Available Architecture . . . . . . . . . . . . . . . . . . . . . 422
3.3
Generating a Custom Architecture . . . . . . . . . . . . . . . . . . . 425
4
Instruction Set Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
4.1
Instruction Set Specification . . . . . . . . . . . . . . . . . . . . . . . . . 428
4.2
Instructions for Functional Acceleration . . . . . . . . . . . . . . . 429
4.3
Instruction Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
4.4
Instruction and Architecture Optimization . . . . . . . . . . . . . 431
4.5
Design Automation of an Instruction Set Architecture . . . 433
5
ASIP Instruction Set for Radio Baseband Processors . . . . . . . . . . . . 434
6
ASIP Instruction Set for Video and Image Compression . . . . . . . . . 437
7
Programming Toolchain and Benchmarking . . . . . . . . . . . . . . . . . . . 439
8
ASIP Firmware Design and Benchmarking . . . . . . . . . . . . . . . . . . . . 440
8.1
Firmware Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
8.2
Benchmarking and Instruction Usage Profiling . . . . . . . . . 442
9
Microarchitecture Design for ASIP . . . . . . . . . . . . . . . . . . . . . . . . . . 444
10
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Coarse-Grained Reconfigurable Array Architectures . . . . . . . . . . . . . . . . . 449
Bjorn De Sutter, Praveen Raghavan, Andy Lambrechts
1
Application Domain of Coarse-Grained Reconfigurable Arrays . . . 449
2
CGRA Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
3
CGRA Design Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
3.1
Tight versus Loose Coupling . . . . . . . . . . . . . . . . . . . . . . . . 454
3.2
CGRA Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
3.3
Interconnects and Register Files . . . . . . . . . . . . . . . . . . . . . 461
3.4
Computational Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
3.5
Memory Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
xx
Contents
3.6
Compiler Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Case Study: ADRES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
4.1
Mapping Loops onto ADRES CGRAs . . . . . . . . . . . . . . . . 469
4.2
ADRES Design Space Exploration . . . . . . . . . . . . . . . . . . . 475
5
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
4
Contents
xxi
xxii
Contents
Contents
xxiii
5.1
Interfacing Simulators with Hardware . . . . . . . . . . . . . . . . 691
5.2
Simulation in Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
6
Generation of Instruction Set Simulators . . . . . . . . . . . . . . . . . . . . . . 694
6.1
Processor Description Languages . . . . . . . . . . . . . . . . . . . . 694
6.2
Retargetable Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
7
Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
Optimization of Number Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Wonyong Sung
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
2
Fixed-point Data Type and Arithmetic Rules . . . . . . . . . . . . . . . . . . 708
2.1
Fixed-Point Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
2.2
Fixed-point Arithmetic Rules . . . . . . . . . . . . . . . . . . . . . . . . 710
2.3
Fixed-point Conversion Examples . . . . . . . . . . . . . . . . . . . . 711
3
Range Estimation for Integer Word-length Determination . . . . . . . . 713
3.1
L1-norm based Range Estimation . . . . . . . . . . . . . . . . . . . . 714
3.2
Simulation based Range Estimation . . . . . . . . . . . . . . . . . . 714
3.3
C++ Class based Range Estimation Utility . . . . . . . . . . . . . 715
4
Floating-point to Integer C Code Conversion . . . . . . . . . . . . . . . . . . 717
4.1
Fixed-Point Arithmetic Rules in C Programs . . . . . . . . . . . 717
4.2
Expression Conversion Using Shift Operations . . . . . . . . . 719
4.3
Integer Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
4.4
Implementation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 721
5
Word-length Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
5.1
Finite Word-length Effects . . . . . . . . . . . . . . . . . . . . . . . . . . 726
5.2
Fixed-point Simulation using C++ gFix Library . . . . . . . 728
5.3
Word-length Optimization Method . . . . . . . . . . . . . . . . . . . 729
5.4
Optimization Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
6
Summary and Related Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Intermediate Representations for Simulation and Implementation . . . . . . 739
Jerker Bengtsson
1
Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
2
Untimed Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
2.1
System Property Intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
2.2
Functions Driven by State Machines . . . . . . . . . . . . . . . . . . 746
3
Timed Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
3.1
Job Configuration Networks . . . . . . . . . . . . . . . . . . . . . . . . . 752
3.2
IPC Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
3.3
Timed Configuration Graphs . . . . . . . . . . . . . . . . . . . . . . . . 758
3.4
Set of Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
3.5
Construction of Timed Configuration Graphs . . . . . . . . . . 762
4
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
xxiv
Contents
Contents
xxv
xxvi
Contents
4.1
FRDF (Fractional Rate Data Flow) . . . . . . . . . . . . . . . . . . . 864
4.2
SPDF (Synchronous Piggybacked Data Flow) . . . . . . . . . . 868
4.3
SSDF (Scalable SDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
Mapping Decidable Signal Processing Graphs into FPGA
Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
Roger Woods
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
1.1
Chapter breakdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
2
FPGA hardware platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
2.1
FPGA logic blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
2.2
FPGA DSP functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
2.3
FPGA memory organization . . . . . . . . . . . . . . . . . . . . . . . . 880
2.4
FPGA design strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
3
Circuit architecture derivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
3.1
Basic mapping of DSP functionality to FPGA . . . . . . . . . . 883
3.2
Retiming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
3.3
Cut-set theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
3.4
Application to recursive structures . . . . . . . . . . . . . . . . . . . 888
4
Circuit architecture optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
4.1
Folding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
4.2
Unfolding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
4.3
Adaptive LMS filter example . . . . . . . . . . . . . . . . . . . . . . . . 892
4.4
Towards FPGA-based IP core generation . . . . . . . . . . . . . . 894
5
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
5.1
Incorporation of FPGA cores into data flow based systems896
5.2
Application of techniques for low power FPGA . . . . . . . . 896
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
Dynamic and Multidimensional Dataflow Graphs . . . . . . . . . . . . . . . . . . . . 899
Shuvra S. Bhattacharyya, Ed F. Deprettere, and Joachim Keinert
1
Multidimensional synchronous data flowgraphs (MDSDF) . . . . . . . 899
1.1
Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
1.2
Arbitrary sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
1.3
A complete example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
1.4
Initial tokens on arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
2
Windowed synchronous/cyclo-static dataflow . . . . . . . . . . . . . . . . . . 906
2.1
Windowed synchronous/cyclo-static data flow graphs . . . 907
2.2
Balance equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
3
Motivation for dynamic DSP-oriented dataflow models . . . . . . . . . . 912
4
Boolean dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
5
The Stream-based Function Model . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
5.1
The concern for an actor model . . . . . . . . . . . . . . . . . . . . . . 916
5.2
The stream-based function actor model . . . . . . . . . . . . . . . 917
5.3
The formal model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
Contents
xxvii
5.4
Communication and scheduling . . . . . . . . . . . . . . . . . . . . . . 919
5.5
Composition of SBF actors . . . . . . . . . . . . . . . . . . . . . . . . . 920
6
CAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
7
Parameterized dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
8
Enable-invoke dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
Polyhedral Process Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
Sven Verdoolaege
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
2
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
3
Polyhedral Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
3.1
Polyhedral Sets and Relations . . . . . . . . . . . . . . . . . . . . . . . 934
3.2
Lexicographic Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
3.3
Polyhedral Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
3.4
Piecewise Quasi-Polynomials . . . . . . . . . . . . . . . . . . . . . . . 939
3.5
Polyhedral Process Networks . . . . . . . . . . . . . . . . . . . . . . . . 939
4
Polyhedral Analysis Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
4.1
Parametric Integer Programming . . . . . . . . . . . . . . . . . . . . . 941
4.2
Emptiness Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
4.3
Parametric Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
4.4
Computing Parametric Upper Bounds . . . . . . . . . . . . . . . . 943
4.5
Polyhedral Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
5
Dataflow Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
5.1
Standard Dataflow Analysis . . . . . . . . . . . . . . . . . . . . . . . . . 946
5.2
Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
6
Channel Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950
6.1
FIFOs and Reordering Channels . . . . . . . . . . . . . . . . . . . . . 950
6.2
Multiplicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
6.3
Internal Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
7
Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
7.1
Two Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
7.2
More than Two Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
7.3
Blocking Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
7.4
Linear Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
8
Buffer Size Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
8.1
FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
8.2
Reordering Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
8.3
Accuracy of the Buffer Sizes . . . . . . . . . . . . . . . . . . . . . . . . 964
9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
xxviii
Contents
Contents
xxix
Integrated Modeling using Finite State Machines and Dataflow Graphs . . 1041
Joachim Falk, Joachim Keinert, Christian Haubelt, Jrgen Teich, and
Christian Zebelein
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
2
Modeling Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
2.1
*charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
2.2
The California Actor Language . . . . . . . . . . . . . . . . . . . . . . 1046
2.3
Extended Codesign Finite State Machines . . . . . . . . . . . . . 1049
2.4
SysteMoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053
3
Design Methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
3.1
Ptolemy II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
3.2
The OpenDF Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
3.3
SystemCoDesigner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
4
Integrated Finite State Machines for Multidimensional Data Flow . 1064
4.1
Array-OL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
4.2
Windowed Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
4.3
Exploiting Knowledge about the Model of Computation . 1073
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
List of Contributors
Kiarash Amiri
Rice University, 6100 Main Street, Houston, TX 77005, USA, e-mail:
kiaa@rice.edu
Iuliana Bacivarov
ETH Zurich, Computer Engineering and Networks Laboratory, CH-8092 Zurich,
Switzerland, e-mail: iuliana.bacivarov@tik.ee.ethz.ch
Hyeon-min Bae
KAIST, Daejeon, South Korea, e-mail: hmbae@ee.kaist.ac.kr
Twan Basten
Eindhoven University of Technology, and Embedded Systems Institute, Den
Dolech 2, 5612AZ, Eindhoven, The Netherlands, e-mail: a.a.basten@tue.nl
Lejla Batina
Katholieke Universiteit Leuven, ESAT/COSIC and IBBT, Kasteelpark Arenberg
10, B-3001 Leuven-Heverlee, Belgium, e-mail: lejla.batina@esat.
kuleuven.be
Jerker Bengtsson
Centre for Research on Embedded Systems, Halmstad University, Box 823, 301 18
Halmstad, Sweden, e-mail: jerker.bengtsson@hh.se
Shuvra S. Bhattacharyya
University of Maryland, Dept. of Electrical and Computer Engineering, and
Institute for Advanced Computer Studies, College Park MD 20742, e-mail:
ssb@umd.edu
Florian Brandner
Institut fr Computersprachen, Technische Universitt Wien, Argentinierstrae 8,
A-1040 Wien, Austria, e-mail: brandner@complang.tuwien.ac.at
Michael Brogioli
xxxi
xxxii
List of Contributors
List of Contributors
xxxiii
Joachim Falk
University of Erlangen-Nuremberg, Hardware-Software-Co-Design, Am
Weichselgarten 3, 91058 Erlangen, Germany, e-mail: joachim.falk@
informatik.uni-erlangen.de
Junfeng Fan
Katholieke Universiteit Leuven, ESAT/COSIC and IBBT, Kasteelpark Arenberg 10,
B-3001 Leuven-Heverlee, Belgium, e-mail: junfeng.fan@esat.kuleuven.
be
Bjrn Franke
Institute for Computing Systems Architecture, School of Informatics, University
of Edinburgh, 10 Crichton Street, Edinburgh, EH8 9AB, United Kingdom, e-mail:
bfranke@inf.ed.ac.uk
Marc Geilen
Eindhoven University of Technology, Den Dolech 2, 5612AZ, Eindhoven, The
Netherlands, e-mail: m.c.w.geilen@tue.nl
Benedikt Gierlichs
Katholieke Universiteit Leuven, ESAT/COSIC and IBBT, Kasteelpark Arenberg
10, B-3001 Leuven-Heverlee, Belgium, e-mail: benedikt.gierlichs@
esat.kuleuven.be
Anthony Gregerson
University of Wisconsin, Madison, WI, e-mail: agregerson@wisc.edu
Oscar Gustafsson
Division of Electronics Systems, Department of Electrical Engineering, Linkping
University, SE-581 83 Linkping, Sweden, e-mail: oscarg@isy.liu.se
Soonhoi Ha
Seoul National University, 599 Gwanak-ro, Gwanak-gu, Seoul 151-744, Korea,
e-mail: sha@snu.ac.kr
Wolfgang Haid
ETH Zurich, Computer Engineering and Networks Laboratory, CH-8092 Zurich,
Switzerland, e-mail: wolfgang.haid@tik.ee.ethz.ch
Timo D. Hmlinen
Department of Computer Systems, Tampere University of Technology, P.O. Box
553, FI-33101 Tampere, Finland, e-mail: timo.d.hamalainen@tut.fi
Marko Hnnikinen
Department of Computer Systems, Tampere University of Technology, P.O. Box
553, FI-33101 Tampere, Finland, e-mail: marko.hannikainen@tut.fi
Christian Haubelt
University of Erlangen-Nuremberg, Hardware-Software-Co-Design, Am
Weichselgarten 3, 91058 Erlangen, Germany, e-mail: christian.haubelt@
informatik.uni-erlangen.de
xxxiv
List of Contributors
Nigel Horspool
Department of Computer Science, University of Victoria, Victoria, BC V8W 3P6,
Canada, e-mail: nigelh@cs.uvic.ca
Yu Hen Hu
University of Wisconsin - Madison, Dept. Electrical and Computer Engineering,
1415 Engineering Drive, Madison, WI 53706, e-mail: hu@engr.wisc.edu
Kai Huang
ETH Zurich, Computer Engineering and Networks Laboratory, CH-8092 Zurich,
Switzerland, e-mail: kai.huang@tik.ee.ethz.ch
Jrn W. Janneck
Department of Automatic Control, Lund University, SE-221 00 Lund, Sweden,
e-mail: jwj@acm.org
Ville Kaseva
Department of Computer Systems, Tampere University of Technology, P.O. Box
553, FI-33101 Tampere, Finland, e-mail: ville.kaseva@tut.fi
Joachim Keinert
Fraunhofer Institute for Integrated Circuits IIS, Am Wolfsmantel 33, 91058
Erlangen, Germany, e-mail: joachim.keinert@iis.fraunhofer.de
Christoph W. Kessler
Dept. of Computer and Information Science, Linkping University, 58183
Linkping, Sweden, e-mail: chrke@ida.liu.se
Miroslav Knezevic
Katholieke Universiteit Leuven, ESAT/COSIC and IBBT, Kasteelpark Arenberg
10, B-3001 Leuven-Heverlee, Belgium, e-mail: miroslav.knezevic@esat.
kuleuven.be
Mikko Kohvakka
Department of Computer Systems, Tampere University of Technology, P.O. Box
553, FI-33101 Tampere, Finland, e-mail: mikko.kohvakka@tut.fi
Konstantinos Konstantinides,
x e-mail: k.konstantinides@ieee.org
Andreas Krall
Institut fr Computersprachen, Technische Universitt Wien, Argentinierstrae 8,
A-1040 Wien, Austria, e-mail: andi@complang.tuwien.ac.at
S. Y. Kung
Princeton University, e-mail: kung@princeton.edu
Andy Lambrechts
IMEC, Kapeldreef 75, 3001 Heverlee, Belgium, e-mail: lambreca@imec.be
Yong Ki Lee
University of California, Los Angeles, Electrical Engineering, 420 Westwood
List of Contributors
xxxv
xxxvi
List of Contributors
List of Contributors
xxxvii
xxxviii
List of Contributors