Cover image for Designing SOCs with configured cores : unleashing the Tensilica Xtensa and diamond cores
Title:
Designing SOCs with configured cores : unleashing the Tensilica Xtensa and diamond cores
Personal Author:
Series:
The Morgan Kaufmann series in systems on silicon
Publication Information:
Amsterdam : Morgan Kaufmann Publishers, 2006
ISBN:
9780123724984

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010141296 TK7895.E42 L44 2006 Open Access Book Book
Searching...

On Order

Summary

Summary

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.


Table of Contents

Forewordp. xiii
Prefacep. xv
Acknowledgementsp. xix
1 Introduction to 21st-Century SOC Designp. 1
1.1 The Start of Something Bigp. 1
1.2 Few Pins = Massive Multiplexingp. 4
1.3 Third Time's a Charmp. 6
1.4 The Microprocessor: A Universal System Building Blockp. 6
1.5 The Consequences of Performance-in the Macro Worldp. 10
1.6 Increasing Processor Performance in the Micro Worldp. 12
1.7 I/O Bandwidth and Processor Core Clock Ratep. 13
1.8 Multitasking and Processor Core Clock Ratep. 14
1.9 System-Design Evolutionp. 15
1.10 Heterogeneous- and Homogeneous-Processor System-Design Approachesp. 20
1.11 The Rise of MPSOC Designp. 24
1.12 Veering Away from Processor Multitasking in SOC Designp. 26
1.13 Processors: The Original, Reusable Design Blockp. 26
1.14 A Closer Look at 21st-Century Processor Cores for SOC Designp. 28
Bibliographyp. 31
2 The SOC Design Flowp. 33
2.1 System-Design Goalsp. 33
2.2 The ASIC Design Flowp. 34
2.3 The ad-hoc SOC Design Flowp. 38
2.4 A Systematic MPSOC Design Flowp. 45
2.5 Computational Alternativesp. 47
2.6 Communication Alternativesp. 48
2.7 Cycle-Accurate System Simulationp. 50
2.8 Detailed Implementationp. 51
2.9 Summary: Handling SOC Complexityp. 53
Bibliographyp. 54
3 Xtensa Architectural Basicsp. 55
3.1 Introduction to Configurable Processor Architecturesp. 56
3.2 Xtensa Registersp. 58
3.3 Register Windowingp. 58
3.4 The Xtensa Program Counterp. 60
3.5 Memory Address Spacep. 61
3.6 Bit and Byte Orderingp. 61
3.7 Base Xtensa Instructionsp. 65
3.8 Benchmarking the Xtensa Core ISAp. 69
Bibliographyp. 74
4 Basic Processor Configurabilityp. 75
4.1 Processor Generationp. 75
4.2 Xtensa Processor Block Diagramp. 79
4.3 Pre-Configured Processor Coresp. 80
4.4 Basics of TIEp. 80
4.5 TIE Instructionsp. 81
4.6 Improving Application Performance Using TIEp. 84
4.7 TIE Registers and Register Filesp. 90
4.8 TIE Portsp. 91
4.9 TIE Queue Interfacesp. 92
4.10 Combining Instruction Extensions with Queuesp. 95
4.11 Diamond Standard Series Processor Cores-Dealing with Complexityp. 96
Bibliographyp. 98
5 MPSOC System Architectures and Design Toolsp. 99
5.1 SOC Architectural Evolutionp. 100
5.2 The Consequences of Architectural Evolutionp. 103
5.3 Memory Interfacesp. 104
5.4 Memory Cachesp. 105
5.5 Local ROM and Local RAM Interfaces, the XLMI Port, and the PIFp. 106
5.6 The PIFp. 106
5.7 Ports and Queue Interfacesp. 107
5.8 SOC Connection Topologiesp. 108
5.9 Shared-Memory Topologiesp. 108
5.10 Direct Port-Connected Topologiesp. 110
5.11 Queue-Based System Topologiesp. 114
5.12 Existing Design Tools for Complex SOC Designsp. 115
5.13 MPSOC Architectural-Design Toolsp. 119
5.14 Platform Designp. 121
5.15 An MPSOC-Design Toolp. 122
5.16 MPSOC System-Level Simulation Examplep. 126
5.17 SOC Design in the 21st Centuryp. 128
Bibliographyp. 128
6 Introduction to Diamond Standard Series Processor Coresp. 131
6.1 The Diamond Standard Series of 32-bit Processor Coresp. 131
6.2 Diamond Standard Series Software-Development Toolsp. 133
6.3 Diamond Standard Series Feature Summaryp. 134
6.4 Diamond Standard Series Processor Core Hardware Overview and Comparisonp. 135
6.5 Diamond-Core Local-Memory Interfacesp. 137
6.6 The PIF Main Busp. 139
6.7 Diamond-Core Ports and Queuesp. 139
6.8 Diamond Standard Series Core Instructionsp. 144
6.9 Zero-Overhead Loop Instructionsp. 144
6.10 Miscellaneous Instructionsp. 145
6.11 Synchronization Instructionsp. 146
6.12 16-bit Multiply and Multiply/Accumulate Instructionsp. 146
6.13 32-bit Multiply Instructionsp. 147
6.14 Diamond-Development Toolsp. 148
6.15 Other Specialized Diamond Standard Series Processor Instructionsp. 148
6.16 Choosing a Diamondp. 149
Bibliographyp. 150
7 The Diamond Standard Series 108Mini Processor Corep. 151
7.1 The Configurable Processor as Controllerp. 153
7.2 Diamond 108Mini Processor Core Interfacesp. 153
7.3 The Diamond RPUp. 155
7.4 Direct Input and Output Portsp. 157
7.5 System Design with Diamond 108Mini Processor Coresp. 160
7.6 Low-Power System Design and Operationp. 164
Bibliographyp. 166
8 The Diamond 212GP Controller Corep. 167
8.1 A General-Purpose Processor Corep. 168
8.2 Diamond 212GP Controller Core Interfacesp. 168
8.3 The XLMI Portp. 168
8.4 The Diamond 212GP Processor Memory Mapp. 171
8.5 The 212GP RPUp. 174
8.6 Direct Input and Output Portsp. 176
8.7 The Diamond 212GP Controller's Cache Interfacesp. 177
8.8 System Design with the Diamond 212GP Processor Corep. 179
Bibliographyp. 182
9 The Diamond 232L CPU Corep. 183
9.1 The Diamond 232L: A Full-Featured CPU Corep. 184
9.2 Diamond 232L CPU Core Interfacesp. 184
9.3 The Diamond 232L CPU Memory Mapp. 184
9.4 The Diamond 232L Cache Interfacesp. 188
9.5 The Diamond 232L MMUp. 188
9.6 Privilege Levels and Ringsp. 193
9.7 System Design with the Diamond 232L CPU Corep. 195
Bibliographyp. 198
10 The Diamond 570T Superscalar CPU Corep. 199
10.1 The Diamond 570T: A High-Performance CPU Corep. 202
10.2 Diamond 570T CPU Core Interfacesp. 204
10.3 The Diamond 570T CPU Memory Mapp. 204
10.4 The Diamond 570T CPU's Cache Interfacesp. 206
10.5 The Diamond 570T CPU's RPUp. 209
10.6 Direct Input and Output Portsp. 209
10.7 Input and Output Queue Interfacesp. 212
10.8 System Design with the Diamond 570T CPU Corep. 214
Bibliographyp. 216
11 The Diamond 330HiFi audio DSP Corep. 219
11.1 300 Instructions Boost Audio Performancep. 219
11.2 The Diamond 330HiFi: A High-Performance audio DSP Corep. 223
11.3 Diamond 330HiFi audio DSP Core Interfacesp. 223
11.4 The Diamond 330HiFi audio DSP Core's Memory Mapp. 223
11.5 The Diamond 330HiFi audio DSP Core's Cache Interfacesp. 227
11.6 The Diamond 330HiFi audio DSP Core's Region-Protection Unitp. 229
11.7 Input- and Output-Queue Interfacesp. 229
11.8 System Design with the Diamond 330HiFi audio DSP Corep. 233
Bibliographyp. 234
12 The Diamond 545CK DSP Corep. 235
12.1 The Diamond 545CK DSP Core's Instruction Formatp. 235
12.2 A High-Performance DSP Corep. 238
12.3 Diamond 545CK DSP Core Interfacesp. 240
12.4 The Diamond 545CK DSP Core's Memory Mapp. 241
12.5 The Diamond 545CK DSP Core's Region-Protection Unitp. 243
12.6 Input- and Output-Queue Interfacesp. 244
12.7 System Design with the Diamond 545CK DSP Corep. 247
Bibliographyp. 247
13 Using Fixed Processor Cores in SOC Designsp. 249
13.1 Toward a 21st-Century SOC Design Strategyp. 249
13.2 The ITRS Proposal for SOC Designp. 252
13.3 On-Chip Communications for SOCsp. 257
13.4 NoCp. 259
13.5 The Three NoC Temptationsp. 262
13.6 GALS On-Chip Networksp. 266
13.7 Software Considerations for MPSOCsp. 266
Bibliographyp. 270
14 Beyond Fixed Coresp. 271
14.1 A Viable Alternative to Manual RTL Design and Verificationp. 271
14.2 The Conventional, Embedded Software-Development Flowp. 272
14.3 Fit the Processor to the Algorithmp. 274
14.4 Accelerating the Fast Fourier Transformp. 274
14.5 Accelerating an MPEG-4 Decoderp. 276
14.6 Boost Throughput with Multiple Operations per Cyclep. 279
14.7 High-Speed I/O for Processor-Based Function Blocksp. 281
14.8 The Single-Bus Bottleneckp. 282
14.9 Alone, Faster is Not Necessarily Betterp. 285
Bibliographyp. 289
15 The Future of SOC Designp. 291
15.1 Grand Challenges and Disaster Scenariosp. 291
15.1.1 SOC Disaster Scenario 1: Insufficient Productivityp. 293
15.1.2 SOC Disaster Scenario 2: Excessive System Power Dissipationp. 294
15.1.3 SOC Disaster Scenario 3: Loss of Manufacturabilityp. 295
15.1.4 SOC Disaster Scenario 4: Excessive Signal Interferencep. 296
15.1.5 SOC Disaster Scenario 5: Deteriorating Chip Reliabilityp. 296
15.2 Avoiding the SOC Disaster Scenariosp. 296
15.2.1 Avoiding Disaster Scenario 1: Insufficient Productivityp. 297
15.2.2 Avoiding Disaster Scenario 2: Excessive System Power Dissipationp. 298
15.2.3 Avoiding Disaster Scenario 3: Loss of Manufacturabilityp. 299
15.2.4 Avoiding Disaster Scenario 4: Excessive Signal Interferencep. 300
15.2.5 Avoiding Disaster Scenario 5: Deteriorating Chip Reliabilityp. 301
15.3 System-Level Design Challengesp. 301
15.4 The Future Direction of SOC Designp. 304
15.5 Systolic Processingp. 305
15.6 Cluster Computing and NoCsp. 309
15.7 The Research Accelerator for Multiple Processors Projectp. 309
15.8 21st-Century SOC Designp. 311
Bibliographyp. 312
Indexp. 315