
Customizable Embedded Processors
Design Technologies and Applications
By:Â Paolo Ienne, Rainer Leupers
Hardcover | 14 July 2006
At a Glance
528 Pages
23.5 x 19.05 x 3.18
Hardcover
RRP $129.95
$121.75
or 4 interest-free payments of $30.44 with
 orÂShips in 5 to 7 business days
This book is the first to explore comprehensively one of the most fundamental trends which emerged in the last decade: to treat processors not as rigid, fixed entities, which designers include "as is in their products; but rather, to build sound methodologies to tailor-fit processors to the specific needs of such products. This book addresses the goal of maintaining a very large family of processors, with a wide range of features, at a cost comparable to that of maintaining a single processor.
- First book to present comprehensively the major ASIP design methodologies and tools without any particular bias
- Written by most of the pioneers and top international experts of this young domain
- Unique mix of management perspective, technical detail, research outlook, and practical implementation
Industry Reviews
| In Praise of Customizable Embedded Processors | p. i |
| List of Contributors | p. xix |
| About the Editors | p. xxvii |
| Opportunities and Challenges | |
| From Pret-a-Porter to Tailor-Made | p. 3 |
| The Call for Flexibility | p. 4 |
| Cool Chips for Shallow Pockets | p. 5 |
| A Million Processors for the Price of One? | p. 5 |
| Processors Coming of Age | p. 7 |
| This Book | p. 7 |
| Travel Broadens the Mind | p. 9 |
| Opportunities for Application-Specific Processors: The Case of Wireless Communications | p. 11 |
| Future Mobile Communication Systems | p. 12 |
| Heterogeneous MPSoC for Digital Receivers | p. 14 |
| The Fundamental Tradeoff between Energy Efficiency and Flexibility | p. 14 |
| How to Exploit the Huge Design Space? | p. 17 |
| Canonical Receiver Structure | p. 19 |
| Analyzing and Classifying the Functions of a Digital Receiver | p. 21 |
| Exploiting Parallelism | p. 25 |
| ASIP Design | p. 26 |
| Processor Design Flow | p. 26 |
| Architecture Description Language Based Design | p. 28 |
| Too Much Automation Is Bad | p. 29 |
| Processor Design: The LISATek Approach | p. 30 |
| Design Competence Rules the World | p. 33 |
| Application-Specific or Domain-Specific Processors? | p. 35 |
| Customizing Processors: Lofty Ambitions, Stark Realities | p. 39 |
| The "CFP" project at HP Labs | p. 41 |
| Searching for the Best Architecture Is Not a Machine-Only Endeavor | p. 45 |
| Designing a CPU Core Still Takes a Very Long Time | p. 46 |
| Don't Underestimate Competitive Technologies | p. 48 |
| Software Developers Don't Always Help You | p. 49 |
| The Embedded World Is Not Immune to Legacy Problems | p. 51 |
| Customization Can Be Trouble | p. 52 |
| Conclusions | p. 53 |
| Aspects of Processor Customization | |
| Architecture Description Languages | p. 59 |
| ADLs and other languages | p. 60 |
| Survey of Contemporary ADLs | p. 62 |
| Content-Oriented Classification of ADLs | p. 62 |
| Objective-Based Classification of ADLs | p. 72 |
| Conclusions | p. 75 |
| C Compiler Retargeting | p. 77 |
| Compiler Construction Background | p. 79 |
| Source Language Frontend | p. 79 |
| Intermediate Representation and Optimization | p. 80 |
| Machine Code Generation | p. 83 |
| Approaches to Retargetable Compilation | p. 91 |
| MIMOLA | p. 92 |
| GNU C Compiler | p. 94 |
| Little C Compiler | p. 94 |
| CoSy | p. 95 |
| Processor Architecture Exploration | p. 98 |
| Methodology and Tools for ASIP Design | p. 98 |
| ADL-Based Approach | p. 100 |
| C Compiler Retargeting in the LISATek Platform | p. 104 |
| Concept | p. 104 |
| Register Allocator and Scheduler | p. 105 |
| Code Selector | p. 107 |
| Results | p. 111 |
| Summary and Outlook | p. 113 |
| Automated Processor Configuration and Instruction Extension | p. 117 |
| Automation Is Essential for ASIP Proliferation | p. 118 |
| The Tensilica Xtensa LX Configurable Processor | p. 119 |
| Generating ASIPs Using Xtensa | p. 121 |
| Automatic Generation of ASIP Specifications | p. 123 |
| Coding an Application for Automatic ASIP Generation | p. 125 |
| XPRES Benchmarking Results | p. 126 |
| Techniques for ASIP Generation | p. 128 |
| Reference Examples for Evaluating XPRES | p. 128 |
| VLIW-FLIX: Exploiting Instruction Parallelism | p. 129 |
| SIMD (Vectorization): Exploiting Data Parallelism | p. 131 |
| Operator Fusion: Exploiting Pipeline Parallelism | p. 133 |
| Combining Techniques | p. 134 |
| Exploring the Design Space | p. 136 |
| Evaluating Xpres Estimation Methods | p. 137 |
| Application Performance Estimation | p. 139 |
| ASIP Area Estimation | p. 139 |
| Characterization Benchmarks | p. 140 |
| Performance and Area Estimation | p. 141 |
| Conclusions and Future of the Technology | p. 142 |
| Automatic Instruction-Set Extensions | p. 145 |
| Beyond Traditional Compilers | p. 144 |
| Structure of the Chapter | p. 147 |
| Building Block for Instruction Set Extension | p. 147 |
| Motivation | p. 148 |
| Problem Statement: Identification and Selection | p. 148 |
| Identification Algorithm | p. 152 |
| Results | p. 155 |
| Heuristics | p. 160 |
| Motivation | p. 160 |
| Types of Heuristic Algorithms | p. 161 |
| A Partitioning-Based Heuristic Algorithm | p. 162 |
| A Clustering Heuristic Algorithm | p. 162 |
| State-Holding Instruction-Set Extensions | p. 163 |
| Motivation | p. 164 |
| Local-Memory Identification Algorithm | p. 165 |
| Results | p. 167 |
| Exploiting Pipelining to Relax I/O Constraints | p. 170 |
| Motivation | p. 171 |
| Reuse of the Basic Identification Algorithm | p. 173 |
| Problem Statement: Pipelining | p. 174 |
| I/O Constrained Scheduling Algorithm | p. 176 |
| Results | p. 177 |
| Conclusions and Further Challenges | p. 183 |
| Challenges to Automatic Customization | p. 185 |
| The ARCompact Instruction Set Architecture | p. 186 |
| Mechanisms for Architecture Extension | p. 190 |
| ARCompact Implementations | p. 190 |
| Microarchitecture Challenges | p. 191 |
| Case Study-Entropy Decoding | p. 193 |
| Customizing VLD Extensions | p. 195 |
| Limitations of Automated Extension | p. 203 |
| The Benefits of Architecture Extension | p. 205 |
| Customization Enables CoDesign | p. 205 |
| Customization Offers Performance Headroom | p. 206 |
| Customization Enables Platform IP | p. 206 |
| Customization Enables Differentiation | p. 207 |
| Conclusions | p. 207 |
| Coprocessor Generation from Executable Code | p. 209 |
| Introduction | p. 209 |
| User Level Flow | p. 210 |
| Integration with Embedded Software | p. 214 |
| Coprocessor Architecture | p. 215 |
| ILP Extraction Challenges | p. 218 |
| Internal Tool Flow | p. 220 |
| Code Mapping Approach | p. 225 |
| Synthesizing Coprocessor Architectures | p. 228 |
| A Real-World Example | p. 229 |
| Summary | p. 231 |
| Datapath Synthesis | p. 233 |
| Introduction | p. 233 |
| Custom Instruction Selection | p. 234 |
| Theoretical Preliminaries | p. 236 |
| The Minimum Area-Cost Acyclic Common Supergraph Problem | p. 236 |
| Subsequence and Substring Matching Techniques | p. 237 |
| Minimum Area-Cost Acyclic Common Supergraph Heuristic | p. 238 |
| Path-Based Resource Sharing | p. 238 |
| Example | p. 238 |
| Pseudocode | p. 240 |
| Multiplexer Insertion | p. 246 |
| Unary and Binary Noncommutative Operators | p. 246 |
| Binary Commutative Operators | p. 247 |
| Datapath Synthesis | p. 249 |
| Pipelined Datapath Synthesis | p. 249 |
| High-Level Synthesis | p. 249 |
| Experimental Results | p. 250 |
| Conclusion | p. 255 |
| Instruction Matching and Modeling | p. 257 |
| Matching Instructions | p. 259 |
| Introduction to Binary Decision Diagrams | p. 259 |
| The Translator | p. 261 |
| Filtering Algorithm | p. 264 |
| Combinational Equivalence Checking Model | p. 265 |
| Results | p. 265 |
| Modeling | p. 268 |
| Overview | p. 269 |
| Customization Parameters | p. 270 |
| Characterization for Various Constraints | p. 271 |
| Equations for Estimating Area, Latency, and Power Consumption | p. 273 |
| Evaluation Results | p. 274 |
| Conclusions | p. 277 |
| Processor Verification | p. 281 |
| Motivation | p. 281 |
| Overview of Verification Approaches | p. 282 |
| Simulation | p. 282 |
| Semiformal Techniques | p. 284 |
| Proof Techniques | p. 284 |
| Coverage | p. 285 |
| Formal Verification of a RISC CPU | p. 285 |
| Verification Approach | p. 286 |
| Specification | p. 287 |
| SystemC Model | p. 288 |
| Formal Verification | p. 289 |
| Verification Challenges in Customizable and Configurable Embedded Processors | p. 293 |
| Verification of Processor Peripherals | p. 294 |
| Coverage-Driven Verification Based on Constrained-Random Stimulation | p. 294 |
| Assertion-Based Verification of Corner Cases | p. 297 |
| Case Study: Verification of an On-Chip Bus Bridge | p. 298 |
| Conclusions | p. 302 |
| Sub-RISC Processors | p. 303 |
| Concurrent Architectures, Concurrent Applications | p. 303 |
| Motivating Sub-RISC PEs | p. 306 |
| RISC PEs | p. 307 |
| Customizable Datapaths | p. 311 |
| Synthesis Approaches | p. 311 |
| Architecture Description Languages | p. 311 |
| Designing TIPI Processing Elements | p. 316 |
| Building Datapath Models | p. 317 |
| Operation Extraction | p. 318 |
| Single PE Simulator Generation | p. 318 |
| TIPI Multiprocessors | p. 319 |
| Multiprocessor Simulation and RTL Code Generation | p. 321 |
| Deploying Applications with Cairn | p. 321 |
| The Cairn Application Abstraction | p. 323 |
| Model Transforms | p. 325 |
| Mapping Models | p. 325 |
| Code Generation | p. 326 |
| IPv4 Forwarding Design Example | p. 327 |
| Designing a PE for Click | p. 327 |
| ClickPE Architecture | p. 328 |
| ClickPE Control Logic | p. 329 |
| LuleaPE Architecture | p. 330 |
| Performance Results | p. 331 |
| ClickPE Performance | p. 332 |
| LuleaPE Performance | p. 333 |
| Performance Comparison | p. 334 |
| Potentials for Improvement | p. 335 |
| Conclusion | p. 335 |
| Case Studies | |
| Application Specific Instruction Set Processor for UMTS-FDD Cell Search | p. 339 |
| ASIP on Wireless Modem Design | p. 340 |
| The Role of ASIP | p. 340 |
| ASIP Challenges for a System House | p. 343 |
| Potential ASIP Use Cases in Wireless Receivers | p. 344 |
| Functionality of Cell Search ASIP | p. 346 |
| Cell Search-Related Channels and Codes | p. 346 |
| Cell Search Functions | p. 347 |
| Requirements for the ASIP | p. 347 |
| Cell Search ASIP Design and Verification | p. 348 |
| Microarchitecture | p. 348 |
| Special Function Units | p. 350 |
| Instruction Set | p. 353 |
| HDL Generation | p. 354 |
| Verification | p. 355 |
| Results | p. 356 |
| Performance | p. 356 |
| Synthesis Results | p. 357 |
| Summary and Conclusions | p. 359 |
| Hardware/Software Tradeoffs for Advanced 3G Channel Decoding | p. 361 |
| Channel Decoding for 3G Systems and Beyond | p. 361 |
| Turbo-Codes | p. 363 |
| Design Space | p. 366 |
| Programmable Solutions | p. 368 |
| VLIW Architectures | p. 369 |
| Customizable Processors | p. 370 |
| Multiprocessor Architectures | p. 374 |
| Conclusion | p. 379 |
| Application Code Profiling and ISA Synthesis on MIPS32 | p. 381 |
| Profiling of Application Source Code | p. 384 |
| Assembly and Source Level Profiling | p. 385 |
| Microprofiling Approach | p. 387 |
| Memory Access Microprofiling | p. 391 |
| Experimental Results | p. 391 |
| Semi-Automatic ISA Extension Synthesis | p. 394 |
| Sample Platform: MIPS CorExtend | p. 394 |
| CoWare CorXpert Tool | p. 395 |
| ISA Extension Synthesis Problem | p. 395 |
| Synthesis Core Algorithm | p. 402 |
| ISA Synthesis Based Design Flow | p. 406 |
| Speedup Estimation | p. 408 |
| Exploring the Design Space | p. 410 |
| SW Tools Retargeting and Architecture Implementation | p. 412 |
| Case Study: Instruction Set Customization for Blowfish Encryption | p. 414 |
| Summary and Outlook | p. 422 |
| Designing Soft Processors for FPGAs | p. 425 |
| Overview | p. 425 |
| FPGA Architecture Overview | p. 426 |
| Soft Processors in FPGAs | p. 428 |
| Overview of Processor Acceleration | p. 429 |
| MicroBlaze Soft Processor Architecture | p. 430 |
| Short Description of MicroBlaze | p. 430 |
| Highlights of Architectural Features | p. 431 |
| Discussion of Architectural Design Tradeoffs in MicroBlaze | p. 432 |
| Architectural Building-Blocks and Their FPGA Implementation | p. 432 |
| Examples of Architectural Decisions in MicroBlaze | p. 434 |
| Tool Support | p. 441 |
| Conclusions | p. 441 |
| Chapter References | p. 443 |
| Bibliography | p. 465 |
| Index | p. 485 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9780123695260
ISBN-10: 0123695260
Series: Systems on Silicon
Published: 14th July 2006
Format: Hardcover
Language: English
Number of Pages: 528
Audience: College, Tertiary and University
Publisher: Morgan Kaufmann Publishing
Country of Publication: US
Dimensions (cm): 23.5 x 19.05 x 3.18
Weight (kg): 1.02
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Architecture Patterns with Python
Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Paperback
RRP $125.75
$60.99
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer ScienceComputer Architecture & Logic Design
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
- Non-FictionEngineering & TechnologyElectronics & Communications EngineeringElectronics Engineering
- Non-FictionEngineering & TechnologyEnergy Technology & EngineeringElectrical Engineering























