Book Description
Microprocessor cores used for SOC design are the direct descendents of Intel’s original 4004 microprocessor. Just as packaged microprocessor ICs vary widely in their attributes, so do microprocessors packaged as IP cores. However, SOC designers still compare and select processor cores the way they previously compared and selected packaged microprocessor ICs. The big problem with this selection method is that it assumes that the laws of the microprocessor universe have remained unchanged for decades. This assumption is no longer valid.
Processor cores for SOC designs can be far more plastic than microprocessor ICs for board-level system designs. Shaping these cores for specific applications produces much better processor efficiency and much lower system clock rates. Together, Tensilica’s Xtensa and Diamond processor cores constitute a family of software-compatible microprocessors covering an extremely wide performance range from simple control processors, to DSPs, to 3-way superscalar processors. Yet all of these processors use the same software-development tools so that programmers familiar with one processor in the family can easily switch to another.
This book emphasizes a processor-centric MPSOC (multiple-processor SOC) design style shaped by the realities of the 21st-century and nanometer silicon. It advocates the assignment of tasks to firmware-controlled processors whenever possible to maximize SOC flexibility, cut power dissipation, reduce the size and number of hand-built logic blocks, shrink the associated verification effort, and minimize the overall design risk.
· An essential, no-nonsense guide to the design of 21st-century mega-gate SOCs using nanometer silicon.
· Discusses today's key issues affecting SOC design, based on author's decades of personal experience in developing large digital systems as a design engineer while working at Hewlett-Packard's Desktop Computer Division and at EDA workstation pioneer Cadnetix, and covering such topics as an award-winning technology journalist and editor-in-chief for EDN magazine and the Microprocessor Report.
· Explores conventionally accepted boundaries and perceived limits of processor-based system design and then explodes these artificial constraints through a fresh outlook on and discussion of the special abilities of processor cores designed specifically for SOC design.
· Thorough exploration of the evolution of processors and processor cores used for ASIC and SOC design with a look at where the industry has come from, and where it's going.
· Easy-to-understand explanations of the capabilities of configurable and extensible processor cores through a detailed examination of Tensilica's configurable, extensible Xtensa processor core and six pre-configured Diamond cores.
· The most comprehensive assessment available of the practical aspects of configuring and using multiple processor cores to achieve very difficult and ambitious SOC price, performance, and power design goals.
Table of Contents
- Copyright
- In Praise of Designing SOCs with Configured Cores...
- About the Author
- The Morgan Kaufmann Series in Systems on Silicon
- Foreword
- Preface
- Acknowledgements
- Introduction to 21st-Century SOC Design
- The Start of Something Big
- Few Pins = Massive Multiplexing
- Third Time’s a Charm
- The Microprocessor: A Universal System Building Block
- The Consequences of Performance—in the Macro World
- Increasing Processor Performance in the Micro World
- I/O Bandwidth and Processor Core Clock Rate
- Multitasking and Processor Core Clock Rate
- System-Design Evolution
- Heterogeneous- and Homogeneous-Processor System-Design Approaches
- The Rise of MPSOC Design
- Veering Away from Processor Multitasking in SOC Design
- Processors: The Original, Reusable Design Block
- A Closer Look at 21st-Century Processor Cores for SOC Design
- Bibliography
- The SOC Design Flow
- System-Design Goals
- The ASIC Design Flow
- The ad-hoc SOC Design Flow
- A Systematic MPSOC Design Flow
- Computational Alternatives
- Communication Alternatives
- Cycle-Accurate System Simulation
- Detailed Implementation
- Summary: Handling SOC Complexity
- Bibliography
- Xtensa Architectural Basics
- Introduction to Configurable Processor Architectures
- Xtensa Registers
- Register Windowing
- The Xtensa Program Counter
- Memory Address Space
- Bit and Byte Ordering
- Base Xtensa Instructions
- Benchmarking the Xtensa Core ISA
- Bibliography
- Basic Processor Configurability
- Processor Generation
- Xtensa Processor Block Diagram
- Pre-Configured Processor Cores
- Basics of TIE
- TIE Instructions
- Improving Application Performance Using TIE
- TIE Registers and Register Files
- TIE Ports
- TIE Queue Interfaces
- Combining Instruction Extensions with Queues
- Diamond Standard Series Processor Cores—Dealing with Complexity
- Bibliography
- MPSOC System Architectures and Design Tools
- SOC Architectural Evolution
- The Consequences of Architectural Evolution
- Memory Interfaces
- Memory Caches
- Local ROM and Local RAM Interfaces, the XLMI Port, and the PIF
- The PIF
- Ports and Queue Interfaces
- SOC Connection Topologies
- Shared-Memory Topologies
- Direct Port-Connected Topologies
- Queue-Based System Topologies
- Existing Design Tools for Complex SOC Designs
- MPSOC Architectural-Design Tools
- Platform Design
- An MPSOC-Design Tool
- MPSOC System-Level Simulation Example
- SOC Design in the 21st Century
- Bibliography
- Introduction to Diamond Standard Series Processor Cores
- The Diamond Standard Series of 32-bit Processor Cores
- Diamond Standard Series Software-Development Tools
- Diamond Standard Series Feature Summary
- Diamond Standard Series Processor Core Hardware Overview and Comparison
- Diamond-Core Local-Memory Interfaces
- The PIF Main Bus
- Diamond-Core Ports and Queues
- Diamond Standard Series Core Instructions
- Zero-Overhead Loop Instructions
- Miscellaneous Instructions
- Synchronization Instructions
- 16-bit Multiply and Multiply/Accumulate Instructions
- 32-bit Multiply Instructions
- Diamond-Development Tools
- Other Specialized Diamond Standard Series Processor Instructions
- Choosing a Diamond
- Bibliography
- The Diamond Standard Series 108Mini Processor Core
- The Configurable Processor as Controller
- Diamond 108Mini Processor Core Interfaces
- The Diamond RPU
- Direct Input and Output Ports
- System Design with Diamond 108Mini Processor Cores
- Low-Power System Design and Operation
- Bibliography
- The Diamond 212GP Controller Core
- A General-Purpose Processor Core
- Diamond 212GP Controller Core Interfaces
- The XLMI Port
- The Diamond 212GP Processor Memory Map
- The 212GP RPU
- Direct Input and Output Ports
- The Diamond 212GP Controller’s Cache Interfaces
- System Design with the Diamond 212GP Processor Core
- Bibliography
- The Diamond 232L CPU Core
- The Diamond 232L: A Full-Featured CPU Core
- Diamond 232L CPU Core Interfaces
- The Diamond 232L CPU Memory Map
- The Diamond 232L Cache Interfaces
- The Diamond 232L MMU
- Privilege Levels and Rings
- System Design with the Diamond 232L CPU Core
- Bibliography
- The Diamond 570T Superscalar CPU Core
- The Diamond 570T: A High-Performance CPU Core
- Diamond 570T CPU Core Interfaces
- The Diamond 570T CPU Memory Map
- The Diamond 570T CPU’s Cache Interfaces
- The Diamond 570T CPU’s RPU
- Direct Input and Output Ports
- Input and Output Queue Interfaces
- System Design with the Diamond 570T CPU Core
- Bibliography
- The Diamond 330HiFi audio DSP Core
- 300 Instructions Boost Audio Performance
- The Diamond 330HiFi: A High-Performance audio DSP Core
- Diamond 330HiFi audio DSP Core Interfaces
- The Diamond 330HiFi audio DSP Core’s Memory Map
- The Diamond 330HiFi audio DSP Core’s Cache Interfaces
- The Diamond 330HiFi audio DSP Core’s (Region-Protection Unit)
- Input- and Output-Queue Interfaces
- System Design with the Diamond 330HiFi audio DSP Core
- Bibliography
- The Diamond 545CK DSP Core
- The Diamond 545CK DSP Core’s Instruction Format
- A High-Performance DSP Core
- Diamond 545CK DSP Core Interfaces
- The Diamond 545CK DSP Core’s Memory Map
- The Diamond 545CK DSP Core’s Region-Protection Unit
- Input- and Output-Queue Interfaces
- System Design with the Diamond 545CK DSP Core
- Bibliography
- Using Fixed Processor Cores in SOC Designs
- Toward a 21st-Century SOC Design Strategy
- The ITRS Proposal for SOC Design
- On-Chip Communications for SOCs
- NoC
- The Three NoC Temptations
- GALS On-Chip Networks
- Software Considerations for MPSOCs
- Bibliography
- Beyond Fixed Cores
- A Viable Alternative to Manual RTL Design and Verification
- The Conventional, Embedded Software-Development Flow
- Fit the Processor to the Algorithm
- Accelerating the Fast Fourier Transform
- Accelerating an MPEG-4 Decoder
- Boost Throughput with Multiple Operations per Cycle
- High-Speed I/O for Processor-Based Function Blocks
- The Single-Bus Bottleneck
- Alone, Faster is Not Necessarily Better
- Bibliography
- The Future of SOC Design
- Grand Challenges and Disaster Scenarios
- SOC Disaster Scenario 1: Insufficient Productivity
- SOC Disaster Scenario 2: Excessive System Power Dissipation
- SOC Disaster Scenario 3: Loss of Manufacturability
- SOC Disaster Scenario 4: Excessive Signal Interference
- SOC Disaster Scenario 5: Deteriorating Chip Reliability
- Avoiding the SOC Disaster Scenarios
- Avoiding Disaster Scenario 1: Insufficient Productivity
- Avoiding Disaster Scenario 2: Excessive System Power Dissipation
- Avoiding Disaster Scenario 3: Loss of Manufacturability
- Avoiding Disaster Scenario 4: Excessive Signal Interference
- Avoiding Disaster Scenario 5: Deteriorating Chip Reliability
- System-Level Design Challenges
- The Future Direction of SOC Design
- Systolic Processing
- Cluster Computing and NoCs
- The Research Accelerator for Multiple Processors Project
- 21st-Century SOC Design
- Bibliography