《PCI-X系统的体系结构》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:Tom Shanley著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7900643346
  • 页数:688 页
图书介绍:

About This Book 1

The MindShare Architecture Series 1

Cautionary Note 2

This Book Assumes PCI Background Knowledge 3

Specifications This Book Is Based On 3

Organization of This Book 3

Who This Book Is For 4

Prerequisite Knowledge 4

Documentation Conventions 5

Hexadecimal Notation 5

Binary Notation 5

Decimal Notation 5

Bits Versus Bytes Notation 5

Bit Fields(Logical Groups of Bits or Signals) 6

Timing Diagram Drawing Convention 6

Clock-by-Clock Timing Diagram Description 8

Signal Polarity 8

Visit Our Web Site 8

We Want Your Feedback 9

Part 1:Basic Concepts 13

Chapter 1:PCI Needed Improvement 13

Wait States Yield Poor Performance 13

Relatively Slow Clock Speed 14

Transfer Size Unknown 14

PCI Delayed Transactions Are Inefficient 15

Initiator Retries Use Up Valuable Bus Time 15

Initiator Doesn′t Supply Transfer Count 15

Delayed Completion 16

Initiator′s Transaction ID Is Sketchy at Best 16

Snoops Hurt Performance 16

Host/PCIX Bridge Knows AGP′s Area of Memory Is Non-Cacheable 16

Memory Used by PCI Masters May or May Not Be Cached 17

Snoops Slow Down PCI Accesses to Main Memory 17

Snoop Traffic on Processor Bus Can Hurt Processor(s) 17

Main Memory Less Available to Processor(s) 17

Latency Timer Use Not Optimized in PCI 19

Min_Gnt Register:Timeslice Request 19

Latency Timer:“Timeslice”Register 19

Insufficient Info to Select a Good Value 20

Data Phase Parity Error Recovery Usually Not Possible 21

PCI Data Parity Error Recovery 21

Important Note Regarding Chipsets That Monitor PERR 22

No Indication of Device Width 22

MSI Feature Optional in PCI Environment 22

Introduction 22

Advantages of MSI Interrupts 23

Power Management Optional 23

Legacy PCI Devices—No Standard PM Method 23

Device Support for PCI PM Optional 23

Discovering Function′s PM Capability 23

Configuration Software Constrained by 32-Bit Memory BARs 26

Stepping Yields Poor Performance 27

Chapter 2:PCI-X Improves on PCI 29

PCI-X Is Backward-Compatible With PCI 29

PCI-X Is More System-Centric Than PCI 30

Higher Clock Speeds Possible 31

Wait States Eliminated 31

Data Transferred in Blocks 31

In PCI,Data Transferred as a Series of Data Items 31

In PCI-X,Data Transferred as a Series of Blocks 32

Master Cannot Delay Transfer of First Data Block 32

Target Can Only Delay Transfer of First Block 32

Master and Target Can Only Disconnect on Block Boundaries 32

But…There Are Two Exceptions 32

Disconnecting on Block Boundaries 33

Master Disconnection of a Transfer 33

Target Disconnection of a Transfer 33

Latency Timer Usage 33

Requester and Completer 34

Transfer Size Specified 34

Requester ID and Transaction ID Are Specified 34

Split Transactions Replace Delayed Transactions 35

Target Cannot Transfer Data Within 16 Clocks From FRAME# Assertion 35

Long-Latency Access Handling in PCI 35

Long-Latency Access Handling in PCI-X 35

Split Transactions More Efficient Than Delayed 36

Example:Requester and Completer on Same Bus 37

Example:Requester and Completer on Different Buses 38

Dynamic Traffic Analysis and Load Tuning 40

Data Phase Parity Error Recovery 41

General 41

Recovery Usually Not Possible in PCI 41

PCI-X Chipset Does Not Monitor PERR 42

What the PCI-X Spec Says 42

Requester Hardware Doesn′t Handle Error Itself 42

With Appropriate Master and Device Driver Design,Recovery Possible 42

Device Driver With No Recovery Capability=SERR 43

If Bus in PCI Mode,Bridge Monitors PERR 43

64-Bit Connection Indication 44

MSI Feature Mandatory 44

Power Management Mandatory for Add-In Devices 44

Snoops Can Be Eliminated 44

Memory BARS Must Be 64-Bit Width 45

Bus Masters That Access Memory Must Support DAC Command 45

Stepping Eliminated 45

Fast Back-to-Back Transactions Eliminated 46

Chapter 3:Lowest Common Denominator Defines Mode 48

Bus Protocol/Speed=Lowest Common Denominator 48

Discovering a PCI-X Bus 48

Discovering PCI Devices on a PCI-X Bus 49

Some Example Systems 49

System With No Connectors on PCI-X Bus 49

Single Bus System With Connectors 49

Systems Supporting Both PCI-X and PCI Environments 52

Introduction 52

System With Single Host/PCIX Bridge 52

Dual Host/PCIX Bridge System 54

Chapter 4:Device Types and Bus Initialization 56

All Devices Support 33MHz PCI 56

General 56

133MHz PCI-X Device Must Support 33MHz and 66MHz PCI 56

When M66EN Is Grounded on a Card 56

Effect of Grounded M66EN on a PCI Source Bridge 56

Effect of Grounded M66EN on a PCI-X Source Bridge 56

M66EN Usage on a 66MHz PCI Card or a PCI-X Card 57

All PCI-X Devices Support 66MHz PCI-X Mode 57

PCIXCAP Indicates Protocol/Frequency Required 58

General 58

PCIXCAP Indicates Capabilities of Card′s First Device 61

Device Not Permitted to Use PCIXCAP as Input or Output 61

Bridge′s Interpretation of M66EN and PCIXCAP 61

Maximum Reliable Speed Verified by Design and Testing 63

Supplying PCI-X Devices With Protocol and Speed 64

General 64

Host/PCIX Bridge Pattern Delivery Sequence 64

PCIX-to-PCIX Bridge Pattern Delivery Sequence 65

The Sequence 65

But First 65

Why Bus Must Be Idle When Init Pattern Driven 67

Upon Receipt of Pattern,Device Initializes Itself 67

Init Pattern Setup and Hold Time 67

General 67

Relationship With Trhff 68

Reassertion of RST# Necessitates Redelivery of Pattern 68

General 68

Secondary Bus RST# Follows RST# on Primary Side 68

Secondary Bus RST# Under Software Control 69

Bridge Must Support Interfaces in Different Modes 70

Hot-Plug PCI-X Bus Initialization 71

Some Systems Permit Hot-Plug of PCI-X Cards 71

For Background on PCI Hot-Plug 71

Problems Associated With PCI-X Hot-Plug 71

Determination of Card Capabilities 72

General 72

Determining the Presence of a PCI Card 73

Unacceptable Method 73

Acceptable Method 73

Determining the Presence of a 66MHz PCI Card 74

Determining the Presence of a 66MHz-Capable PCI-X Card 74

Determining the Presence of a 133MHz-Capable PCI-X Card 75

Hot-Install of Card With PCIX-to-PCIX Bridge on It 75

Description 75

How to Avoid Bus Renumbering During Run-Time 76

Hot-Install of Card With PCI-to-PCI Bridge on It 77

Checking PCIXCAP Without Power Applied to Card 78

Changing Secondary Bus Number Configuration Register 78

Conservation of Address Space 78

General 78

Requesting Memory Space 79

Requesting IO Space 80

Early Configuration Access to Newly-Installed Device 80

Possible Adjustment of Max Memory Read Byte Count Values 80

Placing Device in Low-Power Mode Requires Quiesce 81

Chapter 5:PCI-X Is a Registered Bus 83

PCI-X Is a Low-Voltage Swing(LVS)Bus 83

Introduction to the Registered Nature of the Bus 84

Address/Command Decode Example 85

Data Read Example 86

Chapter 6:Intro to Commands 89

Commands Fall Into Three Categories 89

Command Encoding 90

Dword Commands 92

General 92

IO Read and Write Commands 92

Memory Read Dword Command 92

Configuration Read and Write Commands 93

Interrupt Acknowledge Command 93

Special Cycle Command 95

Burst Commands 95

All Burst-Oriented Commands Are Memory Transfers 95

Start Address Is Byte-Aligned 95

Transfer Length 95

Linear Addressing Is Implied 96

Memory Read Block Command 96

Alias To Memory Read Block Command 96

Memory Write Block Command 97

Alias To Memory Write Block Command 97

Memory Write Command 97

Split Completion Command 97

Dual-Address Cycle(DAC)Command 98

Chapter 7:Intro to Transaction Phases 100

The PCI Transaction Phases 100

The PCI-X Transaction Phases 100

Address Phase 100

Attribute Phase 100

Response Phase 101

Data Phase(s) 101

Chapter 8:Intro to Transaction Termination 103

Introduction 103

Initiator Termination of Transaction 104

Byte Count Satisfaction 104

Initiator Approaching Buffer Full or Dry Condition 104

Connection Timeout 105

Early Target Termination of Transaction 106

General 106

Target Abort 107

Reasons for a Target Abort 107

Target Abort Always Ends a Transaction 107

Retry 107

Reasons for Issuing a Retry 107

Initiator′s Response to a Retry 108

Response to a Retry in PCI 108

Response to a Retry in PCI-X 108

Detailed Description of Retry 108

Single Data Phase Disconnect 108

DiSconnect At Next ADB 109

Split Response 109

Definition 109

Commands That Will Not Receive a Split Response 110

Bridge Handling of Memory Writes 110

Bridge Handling of Transactions Other Than Memory Writes 110

Addressing a Location Within the Bridge 111

Addressing a Location on the Opposite Side of Bridge 111

Chapter 9:Intro to Split and Immediate Transactions 114

Definition of Requester and Completer 114

Definition of a Sequence 114

Definition of Requester ID,Tag,and Sequence ID 114

How Does a Device Know Its Requester ID? 114

Immediate Transaction 116

Definition of an Immediate Transaction 116

Immediate Completion Completes the Sequence 116

…Unless It′s a Memory Write or Memory Write Block 116

…Or Unless First Data Phase of Memory Write Receives Retry 117

Memory Writes Are Posted 117

General 117

Can Be Initiated Before All Write Data Is Ready 117

Split Transactions 118

What Problem Do Split Transactions Solve? 118

Split Completion Uses Sequence ID as the Address 118

Requester and Completer May Reside on the Same Bus 119

Example 119

Split Completion May Contain a Message 119

Memory Read May Result in Multiple Split Completion Transactions 120

Completer Has All Data Buffered Up:One Split Completion 120

Some Data Buffered Up:Multiple Split Completions 120

Requester and Completer May Reside on Different Buses 121

Example 121

Case One:Completer Issues a Split Response 122

Case Two:Completer Transfers Data Immediately 122

Requester Buffer Space Management 124

Allocate Buffer to Hold All of the Data,Then Arbitrate 124

On Split Response,Requester Must Commit Buffer Space 125

On Immediate Response,Requester Can Release Buffer Space 125

Bridge Can Retry or Disconnect Split Completion 125

Requesters Must Implement a Split Request Timeout 125

Part 2:Transaction Protocol 129

Chapter 10:Bus Arbitration 129

Stepping Not Permitted 129

Request and Grant Signals Are Registered 129

Example Arbitration 130

Device Design Rules 133

No Fast Back-to-Back 133

REQ# Can Be Asserted or Deasserted at Any Time 134

Issuig REQ# and Then Changing Your Mind 134

After REQ# Is Asserted,Assert FRAME# or Deassert REQ 134

Initiator Can Start Transaction Two Clocks After GNT# Is Asserted 134

GNT# Removal in Clock Prior to FRAME# Too Late to Stop Initiation 135

Single Idle Clock Between Transactions 135

Multiple Idle Clocks Between Transactions 137

Back-to-Back Transactions by Same Initiator 138

Device Containing Multiple Initiators 138

Arbiter Design Rules 138

No GNT# Asserted and REQ# Detected 138

Must Allow opportunity to Start Configuration Transaction 139

When Bus Not Idle,GNT# Can Be Deasserted Sooner 140

If Transaction Not Started,Arbiter May Ignore Master 140

Removing GNT# From One Initiator and Giving It to Another 141

Parking Recommendation 141

Bus Parking 141

Floating Bus Causes Power Drain 141

Bus Parking Prevents Bus Float 141

Rules Associated with Bus Parking 142

HOW the Initiator Deals With Preemption 143

The Basics 143

After Timeslice Exhaustion and Preemption,How Soon Must It Yield? 144

What Is the Recommended LT Value? 144

How Much Data Can Be Transferred During Default Timeslice? 144

Chapter 11:Detailed Command Description 147

Dword Commands 147

General 147

Command Encoding 148

Illegal to Assert REQ64# in Dword Transactions 148

IO Read and Write Commands 149

Basic Description 149

Start Address and Byte Enable Format 149

Start Address Is Byte-Aligned 149

Byte Enable Usage 149

IO Transaction With No Byte Enables Asserted 149

Target Response to an IO Access 151

General 151

Completer Handling of an IO Access 151

When Bridge Acts as Target of IO Access 151

Memory Read Dword Command 152

Start Address and Byte Enable Format 152

Start Address Is Byte-Aligned 152

Byte Enable Usage 152

Transaction With No Byte Enables Asserted 152

Target Response to a Memory Read Dword Access 152

General 152

Completer Handling of a Memory Read Dword Access 152

Bridge Acts as Target of Memory Read Dword Access 153

Configuration Read and Write Commands 153

Interrupt Acknowledge Command 154

General 154

Background 154

Host/PCLX Bridge Handling of Interrupt Acknowledge 155

System Using APIC Bus to Deliver Interrupts To Processors 157

Non-Intel System Implementation 159

Special Cycle Command 159

General 159

Basic Description 159

Address Phase 160

Attribute Phase 160

Data Phase 160

In PCI-X Special Cycle Transaction,No Wait States Permitted 160

No Target Is Permitted to Respond 160

Ending the Transaction 161

The Message Types 162

Devices That May Initiate a Special Cycle Transaction 163

Software-Initiated Special Cycle Transactions 163

Burst Commands 163

All Burst-Oriented Commands Are Memory Transfers 163

Burst Command Encoding 163

Start Address Is Byte Aligned 165

PCI Memory Addressing 165

PCI-X Memory Addressing 165

Linear Addressing Is Implied 166

Transfer Length 166

In PCI,Transfer Length Is Unknown 166

In PCI-X,Byte Transfer Count Defines End Address 167

Memory Read Block Command 167

Basic Description 167

Can Be Purely Speculative 167

Target Response to Memory Read Block Access 167

Must Commit Buffer Space Before Initiating 169

Alias To Memory Read Block Command 169

Memory Write Block Command 169

Basic Description 169

If Disconnected,Must Resume With Same Sequence ID 170

If Requester Cannot Complete Memory Write 170

Technically,a Write Can Be Purely Speculative,But 171

Target Never Permitted to Split a Memory Write 171

Target Response to Memory Write Block Transaction 171

Doesn′t Need All of the Write Data Ready Before Initiating 172

Emulating the PCI Memory Write and Invalidate Command 172

Alias To Memorg Write Block Command 174

Memory Write Command 174

Basic Description 174

Can Be Purely Speculative 175

Target Never Permitted to Split a Memory Write 175

Target Response to Memory Write Transaction 175

Doesn′t Need All of the Write Data Ready Before Initiating 175

Split Completion Command 176

Basic Description 176

At Minimum,Completer Must Handle One Split Transaction 176

Can Be Initiated Even If Bus Master Bit Is Off 176

Split Transactions Never Associated With Memory Writes 177

One or More Split Completions to Fulfill One Request 177

Separate Requests May Be Fulfilled out of Order 177

The Address Phase 178

The Attribute Phase 178

Claiming a Split Completion Transaction 180

Requester and Completer Are on the Same Bus 180

Requester and Completer Are on Different Buses 181

Master Abort or Target Abort on a Split Completion 182

Treatment of Byte Enables 182

Requester Must Accept the Split Completion Data 182

When Bridge Is Target of Completion,Can Retry or Disconnect 182

Initiator of Split Completion Can Disconnect 183

After Disconnect,Pick Up Where You Left Off 183

Split Completion Messages 183

To Disconnect First Split Completion at Imminent ADB 184

Disconnecting First Split Completion Is Problematic 184

The Problem 184

The Solution 185

Bridge Buffer Space Problem Due to Corrupted Split Completion 186

Dual-Address Cycle(DAC)Command 187

Chapter 12:Latency Rules 189

Initiator Latency Rules 189

Don′t Start Transfer If You′re Not Ready 189

No Initiator Wait States Permitted…Ever 190

Behavior When Preempted 191

Target Latency Rules 191

Target Response Time During Initialization Period 191

What′s Going on During Initialization Time? 191

Definition of Initialization Period in PCI 191

Definition of Initialization Period in PCI-X 192

Initialization Period and Hot-Plug 192

Target Can Ignore 16-Clock Rule During ROM Shadowing 192

Target Response Time Limit During Run-Time 192

Response Time Limit When No Data Transferred 192

Response Time Limit When Data Transferred 193

Host/PCIX Bridge Must Obey 16-Clock Rule 193

In PCI 193

In PCI-X 193

Subsequent Data Phase Target Latency Rule 193

Maximum Completion Time 193

In PCI 193

How PCI-X Is Different 194

How Can You Prevent Violation of This Time Limit? 195

Chapter 13:The Address,Attribute and Response Phases 198

All Transactions Begin With Address and Attribute Phases 198

Memory Transaction May Have Two Address Phases 199

Attributes Always Delivered on Lower Half of Bus 200

Address/Attribute Format Depends on Command Type 200

Memory Burst Format 200

Description 200

No Snoop Attribute Bit 201

Background 201

Bridge Knows AGP′s Area of Memory Is Non-Cacheable 201

Memory Used by PCI Masters May or May Not Be Cached 202

Snoops Slow Down PCI Accesses to Main Memory 202

Snoop Traffic on Processor Bus Can Hurt Processor(s) 202

Main Memory Less Available to Processors 202

PCI-X Driver Can Make Requester′s Buffer Uncacheable 202

Only Host/PCIX Bridge Pays Attention to NS Bit 203

When NS Is Set and CPU Has a Lock in Force 203

NS Must Be 0 in Some Transactions 203

Dword Command(other than Config)Format 205

Memory Read Dword and Io Format 205

Special Cycle and Interrupt Acknowledge Format 206

Configuration Command Format 206

Two Types of Configuration Transactions 206

Type 0 Configuration Access 207

TYPe 1 Configuration Access 207

Type 0 Configuration Access Format 207

TYPe 1 Configuration Access Format 208

Split Completion Command Format 209

The Response Phase:Connecting With the Target 210

Chapter 14:Dword Transactions 216

General 216

General Format of Timing Diagram Descriptions 216

IO Read and Memory Read Dword 216

Example One 216

Example Two 220

IO Write 224

Example One 224

Example Two 227

Example Three 230

Configuration Read and Write Transactions 234

Interrupt Acknowledge Command 234

Special Cycle Command 235

Chapter 15:Burst Transactions 240

Introduction 240

Short Transfer Within a Block 240

Long Transfer,But Disconnect on First Block Boundary 240

General Format of Timing Diagram Descriptions 240

Memory Read Block Transaction 241

Memory Read Block:Detailed Example 241

Memory Read Block:Variation One 245

Memory Read Block:Variation Two 246

Memory Read Block:Variation Three 247

Memory Read Block:Variation Four 248

Memory Read Block:Variation Five 249

Memory Read Block:Variation Six 250

Memory Read Block:Variation Seven 251

Memory Read Block:Variation Eight 252

Memory Write Block Transaction 253

Memory Write Block:Detailed Example 253

On Burst Writes,Insert Wait States in Pairs 257

Memory Write Transaction 260

Memory Write:Detailed Example 261

Memory Write:Variation One 265

Memory Write:Variation Two 266

Memory Write:Variation Three 267

Memory Write:Variation Four 268

Memory Write:Variation Five 269

Memory Write:Variation Six 270

Memory Write:Variation Seven 271

Memory Write:Variation Eight 272

Memory Write:Variation Nine 273

Split Completion Transaction 274

Split Completion Returning Block of Read Data 275

Returning a Split Completion Error Message 276

Alias To Memory Block Commands 277

Chapter 16:Transaction Terminations 279

General Format of Timing Diagram Descriptions 279

Termination by the Initiator 280

General 280

Byte Count Satisfaction 280

Introduction 280

Ending Transaction of Four or More Data Phases 281

Ending Transaction of Less Than Four Data Phases 282

Introduction 282

Three-Data-Phase Transaction 282

Two-Data-Phase Transaction 284

One-Data-Phase Transaction 286

Initiator Issues Disconnect at Next ADB 289

Initiator Termination Due to Connection Timeout 290

Termination By the Target 290

Target Abort 290

Target Abort Is Always Fatal 290

Some Reasons Target Issues Target Abort 290

Broken Target 290

IO Addressing Error 290

Address Phase Parity Error 290

Initiator′s and Target′s Response to Target Abort 290

Example Target Abort Issued in First Data Phase 291

Example Target Abort Issued in Subsequent Data Phase 293

Target Issues a Retry 294

Target Issues Single Data Phase Disconnect 297

General 297

Special Case Scenario 299

Target Issues Disconnect At Next ADB 299

Disconnect Issued Four Or More Data Phases From ADB 300

Target Issues Disconnect Too Close to Block Boundary 301

To Disconnect When Start Address Very Close to ADB 302

Start Address Three Data Phases From Block Boundary 303

Start Address Two Data Phases From Block Boundary 304

Start Address One Data Phase From Block Boundary 306

Target Issues a Split Response 308

Split Response for a Read 308

Split Response for an IO or Configuration Write 310

Chapter 17:Split Completion Messages 313

Purpose of Split Completion Messages 313

SCM Always Terminates a Sequence 315

Upon Receipt of Error Message,Set Status Bit 315

Message Format 316

Address Phase Format 316

Attribute Phase Format 316

Data Phase Message Format 317

Write Completion Indication 322

Good Completion of Split IO or Configuration Write 322

Bad Completion of a Split IO or Configuration Write 323

Read Completion Indication 323

Good Completion of a Split Dword Read 323

Good Completion of a Split Burst Memory Read 323

Bad Completion of a Split Dword Read 324

Bad Completion of a Split Burst Memory Read 324

General 324

Remaining Byte Count and Remaining Lower Address Fields 324

Device-Specific Error Handling 325

Chapter 18:64-Bit Transactions 327

General Format of Timing Diagram Descriptions 327

64-Bit Data Transfers and 64-Bit Addressing:Separate Capabilities 328

64-Bit Extension Signals 328

REQ64# and ACK64# Have Same Timing as FRAME# and DEVSEL 329

In Attribute Phase,Upper Bus Reserved and Driven High 330

Block Length Remains the Same 330

Bursts Cannot Cross 264 Boundary 330

REQ64# Not Permitted in Dword Transactions 330

General 330

…Unless It′s a Split Completion 331

MSI Write Always Writes a Single 32-Bit Data Value 331

Bridge Must Support DAC on Both Interfaces 331

Width of Function′s Connection to Bus 332

General 332

Add-In Card With a Bridge 334

Determining the Width of a Bridge′s Interfaces 334

64-Bit Cards in 32-Bit Add-In Connectors 335

Pullups Prevent 64-Bit Extension From Floating When Not in Use 336

Problem:A 64-Bit Card in a 32-Bit PCI Connector 336

How 64-Bit Card Determines Type of Slot Its Installed In 338

64-Bit Data Transfer Capability 339

64-Bit Transfers:Only Burst Memory Operations 340

Start Address Byte-Aligned 340

64-Bit Target′s Interpretation of Address 341

32-Bit Target′s Interpretation of Address 341

64-Bit Memory Read Block With 64-Bit Target 341

64-Bit Write Block or Split Completion With 64-Bit Target 347

64-Bit Memory Write With 64-Bit Target 352

Start Address Alignment Defines Data Path Usage 354

Introduction 354

64-Bit to 64-Bit Connection 354

64-Bit to 32-Bit Connection 354

64-Bit Memory Reads From 32-Bit Targets 359

Starting on Even Dword 359

Starting on Odd Dword 365

64-bit Memory Writes to 32-Bit Targets 366

Starting on Even Dword 366

Starting on Odd Dword 368

Example One 368

EXample Two 369

Example Three 370

Example Four 371

Example Five 372

Addressing Memory Above 4GB Boundary 372

Introduction 372

Introduction to the DAC Command 373

DAC Support Mandatory for All Initiators 373

Memory Targets Must Support Wide BARs and DAC 374

Use of DAC Command Changes DEVSEL# and Master Abort Timing 375

Example 32-Bit Transaction Using DAC Command 375

Example 64-Bit Transaction Using DAC Command 377

DEVSEL# Must Not Be Asserted Too Soon 378

Add-In Card Trace Length 379

Parity Generation and Checking 382

Chapter 19:Parity Generation and Checking 383

General Discussion of Parity Generation 383

Parity Generation Is Mandatory 383

In Data Phases of Writes and Split Completions 384

Initiator Must Generate Correct Data Phase Parity 384

Toggle Data and Parity When Target Inserts Wait State Pairs 384

In Reads,the Target Sources Data and Parity 384

First Data Phase Data and Parity Can Be Delayed 384

Subsequent Data Phase Data and Parity Never Delayed 384

General Discussion of Parity Checking 384

Checking Required in Address and Attribute Phases 384

Parity Checking Is Generally Required In Data Phases 385

Target Data Parity Checking During Write or Split Completion 385

Initiator Parity Checking During Reads 385

Parity Not Checked During First Data Phase Wait States 385

Parity Checked one Clock After Each Subsequent Data Phase 385

In Any Phase,Agent Driving AD Bus Supplies Parity 385

As in PCI,Even Parity Is Used 386

No Parity in Response Phase 386

Address Phase Parity 387

Address Phase Parity Checking Required 387

When DAC Is Used,Check Both Packets 387

On Error,SERR# Required 387

Error Detected Before Transaction Claimed 387

Error Detected After Transaction Claimed 388

Parity Error in Split Completion Address Phase 388

Attribute Phase Parity 389

Means Sequence ID and/or Byte Count Corrupted 389

When Attributes Corrupted and Split Response Issued 389

Data Phase Parity 389

Parity Always Covers Full Width of Data Bus 389

Parity Driven One Clock After Information Presented 390

Similar to PCI,But Different(due to registered bus) 390

Parity-Related Initiator Responsibilities 390

Initiator May Be a Requester,a Bridge,or a Completer 390

Requester′s Parity-Related Responsibilities During a Write 390

Drive Data,Byte Enables and the Parity 391

Requester Checks PERR 391

Requester Actions When PERR# Asserted by Target 391

Requester′s Actions on PERR# and Split Response 391

Bridge′s Parity-Related Responsibilities During a Write 391

Drive Data,Byte Enables and the Parity 392

Bridge Checks PERR 392

Bridge Actions When PERR# Asserted by Target 392

Initiator′s Parity-Related Responsibilities During a Split Completion 394

Who Initiates Split Completion Transactions? 394

Initiator Drives Data,Byte Enables and Parity 394

Initiator Does Not Monitor PERR 394

Initiator′s Parity-Related Responsibilities During a Read 395

General 395

First Read Data Item and Parity Can Be Delayed by Target 395

Subsequent Data Phases of a Read 395

Parity Checking by Initiator During a Read 395

Split Response Dummy Data Corrupted 396

Requester′s Parity-Related Responsibilities During a Read 396

Read Error and Data Parity Error Recovery Enable Bit=1 397

Read Error and Data Parity Error Recovery Enable Bit=0 397

Bridge′s Parity-Related Responsibilities During a Read 397

General 397

Bridge Handling of Parity Error in Immediate Read 397

Parity-Related Target Responsibilities 398

Target May Be a Completer,a Requester,or a Bridge 398

Target′s Responsibilities During a Write 398

When Completer Acts as the Target of the Write 399

When a Bridge Acts as the Target of the Write 399

Target′s Responsibilities During a Split Completion 399

When Requester Acts as the Target of a Split Completion 399

When a Bridge Acts as the Target of a Split Completion 400

Target′s Responsibilities During a Read 400

Data Parity Generation/Checking in PCI-X 401

General Format of Timing Diagram Descriptions 401

Parity in Memory Write Block(or Alias)or Split Completion 401

Parity in a Memory Write Transaction 406

Parity in Memory Read Block(or Alias)Transaction 406

Parity in Memory Read Dword or IO Read Transaction 411

Parity in Configuration Read 415

Parity in IO Write Transaction 416

Parity in Configuration Write 420

Part3:Device Configuration 425

Chapter 20:Configuration Transactions 425

Configuration Software Mechanism Same as PCI 425

Configuration Transactions Can Only Flow Downstream 426

Special Cycle Request Can Flow Upstream or Downstream 426

Type 0:Access Registers in Function on This Bus 426

Device Selection 426

Bus/Device Auto-Updated by Each Type 0 Config Write 430

General 430

Host/PCIX Bridge Device Number Assignment 430

Type 1:Access Registers in Function on Bus Farther out in Hierarchy 430

General Description 430

Some Example Scenarios 433

Example One 433

Example Two 433

Example Three 433

Example Four 434

Type 0 Configuration Transactions 435

Action Taken on Master Abort 435

IDSELs Routed Over Upper AD Lines 436

IDSEL Output Pins/Traces Allowed on Host/PCIX Bridge 437

Description 437

Type 0 Access by a Tool 438

Resistive Coupling Requires Address Pre-Drive 438

Bridge With IDSEL Pins Also Requires Address Pre-Drive 439

Type 0 Configuration Read 439

Type 0 Configuration Write 443

Type 1 Configuration Transactions 447

Although Not Necessary,Address Pre-Drive Used 447

Type 1 Configuration Access Address Format 447

Target Bus′s Source Bridge Converts Type 1 to Type 0 Access 448

Type 1 Transaction Examples 448

Arbiter′s Treatment of Configuration Access 449

Generation of Special Cycle Under Software Control 450

General 450

PCIX-to-PCIX Bridges Pass Special Cycle Request to Target Bus 451

Special Cycle by Device Other Than Host/PCIX Bridge 452

Chapter 21:Non-Bridge Configuration Registers 453

Detecting a PCI-X Capable Bridge 453

Detecting Presence of PCI-X Capable Bridge/Bus 453

Detecting Width of Bridge′s Interfaces 457

Detecting Frequency Support of Bridge′s Interfaces 458

Frequency Support of Bridge′s Primary Interface 458

Frequency Support on Bridge′s Secondary Interface 458

Checking Current Frequency/Protocol of Secondary Bus 459

Detecting Capabilities of Functions on Bus 459

Format of Non-Bridge Function′s PCI-X Capability Registers 459

Detecting PCI Functions 461

Detecting Width of PCI-X Functions 461

Detecting Frequency Support of PCI-X Functions 462

Most PCI Configuration Registers Remain Unchanged 462

Some PCI Config Registers Affected by Protocol Mode 463

Some Register Default Values Affected 463

Implementation of Some Registers Affected 463

Usage of Some Registers Affected 464

Base Address Registers(BARs) 464

Memory Base Address Registers 464

PCI and Memory BARs 464

Must Be Implemented as 64-bit Decoders 464

Definition of Prefetchable Memory 464

Minimum Memory Range 465

Diminishes Overall Number of BARs 465

IO Base Address Registers 467

Command Register Bits Affected by Protocol Mode 467

Introduction 467

Fast Back-to-Back Enable Bit 468

Stepping Control Bit 468

Memory Write and Invalidate Bit 468

Bus Master Bit 468

Status Register Bits Affected by Protocol Mode 469

Latency Timer Default Affected by Protocol Mode 469

Cache Line Size Configuration Register 470

Capabilities Pointer Register 470

Function′s PCI-X Capability Register Set 470

Register Set Format 470

Background on Load Tuning 471

Adjusting Requester′s Split Transaction Queue Size 471

Problem 471

Solution 471

Adjusting Requester′s Memory Read Transaction Size 471

Problem 471

Solution 472

PCI-X Command Register 472

Max Outstanding Split Transaction Field 473

Max Memory Read Byte Count Field 474

Enable Relaxed Ordering 474

RO Command Bit Enables/Disables Use of RO Attribute Bit 474

General Description 475

Usage in Memory Read 475

Usage in Memory Write 475

After Disconnect,Be Consistent 476

Restrictions on Use 476

For Additional Information 476

Data Parity Error Recover Enable 476

PCI-X Status Register 476

Bus,Device and Function Number Fields 477

Why They Are Necessary 477

Function Number Is Hardwired 477

Bus/Device Auto-Updated by Type 0 Configuration Write 477

Note for PCI-X Tool Designer 478

64-Bit Device Status Bit 479

133MHz-Capable Status Bit 479

Split Completion Discarded(this is not a good thing!) 480

Unexpected Split Completion(this is also not a good thing!) 480

Device Complexity 481

General 481

What Use Is This Bit? 481

Definition of a Simple Device 481

Rules Governing Behavior of a Simple Device 481

Designed Max Memory Read Byte Count 484

Designed Max Outstanding Split Transactions 484

Designed Max Cumulative Read Size 484

Chapter 22:Bridge Configuration Registers 487

Discovering a PCIX-to-PCIX Bridge 487

Many Bridge PCI Configuration Registers Unchanged 487

Some Bridge PCI Configuration Registers Affected by Mode 488

Command Register Affected 490

Status Register Affected 490

Capability Pointer Register Affected 490

Secondary Status Register Affected 490

General 490

Fast Back-to-Back Capable Bit Affected 491

Master Data Parity Error/Detected Parity Error Bits Affected 491

DEVSEL# Timing Bit Field 491

Cache Line Size Register Affected 491

Both Latency Timer Registers Affected 492

Base Address Registers(BARs)Affected 492

Secondary Bus Number Register Affected 493

In PCI Mode,No Change 493

In PCI-X Mode,Secondary Requesters May Have Pending Split Accesses 493

Hot-Plug Event May Cause Bus Renumbering 494

RST# Causes Functions to Forget Bus/Device Numbers 494

Prefetchable Base/Limit Registers Affected 495

Prefetchable Base/Limit Extension Registers Affected 495

Bridge Control Register Affected 496

Bridge′s PCI-X Capability Register Set 497

PCI-X Capability Register Set Format 497

PCI-X Secondary Status Register 498

64-Bit Device Status Bit 499

133MHz Capable Status Bit 499

Split Completion Discarded Bit 499

Unexpected Split Completion Bit 500

PCI Master Addresses PCI-X Target on Secondary 500

Problem:Bridge′s Requester ID,but Bad Tag 500

Error Handling 500

Bridge Secondary Interface Efficiency Status Bits 501

Background on Efficiency Status Bits 501

Split Completion Overrun Bit 501

Split Request Delayed Bit 502

Secondary Clock Frequency Bit Field 502

PCI-X Bridge(Primary Interface)Status Register 503

64-Bit Device Status Bit 503

133MHz Capable Status Bit 503

Split Completion Discarded Bit 504

Unexpected Split Completion Bit 504

PCI Master Addresses PCI-X Target on Primary 504

Problem:Bridge′s Requester ID,but Bad Tag 505

Error Handling 505

Bridge Primary Interface Efficiency Status Bits 505

Background on Efficiency Bits 505

Split Completion Overrun Bit 505

Split Request Delayed Bit 506

Bus/Device/Function Number Fields 506

Split Transaction Control Registers 506

Basic Register Format 506

The Bridge′s Split Completion Data Buffers 507

Controlling Bridge′s Use of Its Split Completion Data Buffers 507

Capacity Value Indicates Size of Respective Data Buffer 507

Limit Value Controls Bridge′s Perception of Buffer Size 508

Allocation Mode 508

Virtual Buffer Space Mode 509

Flood Mode 509

Regaining Control After Operating in Flood Mode 509

For More Information on Load Tuning 511

Optional Bridge Registers 511

Part4:Load Tuning 515

Chapter 23:Load Tuning Mechanisms 515

Introduction to Load Tuning 515

Non-Bridge Function Tuning 516

Information Fields 516

Adjustable Fields/Registers 516

Bridge Tuning 519

Adjusting Usage of Split Completion Buffers 519

Introduction 519

Interpreting the Efficiency Bits 519

Additional Spec Comments 519

Adjusting Bridge′s Timeslice Values 524

Bridge Is Surrogate for Initiators on Both Sides of Bridge 524

Software Must Assign Bridge Two Timeslices 525

Load-Tuning Software Can Choose Timeslice Other Than 64d 525

Part 5:PCI-X Bridges 532

Chapter 24:PCIX-to-PCIX Bridges 532

Performs Same Function as a PCI-to-PCI Bridge 532

Support for DAC Command 532

Downstream Movement of DAC optional for PCI Bridge 532

PCI-X Bridge Must Support Downstream DAC Movement 533

Bus Width 534

Memory Writes Crossing Bridge Are Always Posted 534

Other Transactions Crossing Bridge Are Always Split 534

How the Bridge Claims Split Completions 534

When Bridge Can Use Retry or Disconnect At Next ADB 535

When Bridge Can Issue a Retry 535

When Bridge Can Issue a Disconnect At Next ADB 536

Interfaces Can Be in Different Modes/Speeds 536

Translating PCI to PCI-X 536

General 536

Writes Are Posted 537

All Others Treated as PCI Delayed Transaction 537

On PCI Side,Bridge Follows PCI Ordering Rules 538

Translating the Transaction Type 538

Creating the Attributes 541

Attribute Bits 541

Requester ID 542

Transaction Tag 542

Byte Transfer Count 542

Target May Treat as Immediate or as Split Transaction 543

Translating PCI-X to PCI 543

General 543

Writes Are Posted 544

All Others Treated as Split Transactions 544

Translating the Transaction Type 544

PCI Target May Treat as Immediate or Delayed Transaction 547

Bridge Creation of a Split Completion 548

Effect of Relaxed Ordering Attribute Bit 549

Error Handling 549

Bridge Error Class SCMs 549

Error Handling Defined by Mode of Originating Interface 549

Error Handling When the Originating Bus Is in PCI-X Mode 550

Scenario 1:Data Parity Error in Immediate Read on Destination Bus 550

Scenario 2:Data Parity Error on Split Write 551

General 551

Scenario 2a 551

Scenario 2b 552

Scenario 2c 553

Scenario 2d 554

Scenario 3:Data Parity Error on Split Completion 555

Originating Bus Parity Error on Split Completion Read Data 555

Originating Bus Parity Error on SCM 555

Destination Bus Parity Error on Data or SCM 556

Bridge Forwards SCMs Quietly(without getting involved) 556

Scenario 4:Data Parity Error on Posted Memory Write 556

Scenario 5:Master Abort on Destination Bus 557

General 557

Master Abort When Forwarding Split Request 557

Master Abort on Posted Memory Write 558

Master Abort on Split Completion 559

Scenario 6:Target Abort on Destination Bus 559

Bridge Signals Target Abort 559

Bridge Receives A Target Abort on Split Transaction 559

Bridge Receives Target Abort on Memory Write 560

Bridge Receives Target Abort on Split Completion 560

Error Handling When Originating Bus in PCI Mode 560

Background 560

Bridge Handles Errors Same as PCI Bridge Unless SCM Error 561

SCM Error on a Split Read 561

SCM on Split Write 561

Corrupted Split Completion 562

Buffer Size 562

Posted Memory Write Buffer Size 562

Split Completion Data Buffer Size 563

Buffer Space for Memory Read Data 564

General 564

The Problem 564

When Limit=Capacity,This Is Not a Problem 564

When a Request Is Bigger Than the Bridge Buffer 564

Application Bridge 564

Bridge Acceptance Rules 567

Ordering and Passing Rules 568

Same Rules as PCI Except 569

Relaxed Ordering Effect on Transaction Ordering 569

Relaxed Ordering Effects on Memory Reads 569

Relaxed Ordering Effects on Memory Writes 570

Split Transaction Effects on Transaction Ordering 571

General 571

Same Sequence Split Completions Must Remain in Order 571

Relaxed Ordering Can Affect Split Completion Delivery 572

The Rules 572

Decomposing Split Transactions(sounds morbid!) 577

Chapter 25:Locked Transaction Series 579

Definition of Downstream and Upstream 579

Basics 580

Only Host/PCIX Bridge Originates Downstream Locked Series 581

PCI-X Bridges only Pass Locked Series Downstream 581

Only EISA Bridge Originates Upstream Locked Traffic 582

Application Bridge May or May Not Support Locking 582

EISA Bridge Supports LOCK# As Input,Not as Output 583

Non-Bridge Devices Ignore LOCK 583

Sequence of Events 583

Split Completion Error Message Terminates Lock 586

Upstream Bridge(Initiating Bridge)Rules 587

Downstream Bridge(Target Bridge)Rules 587

Arbitration 588

Starting Locked Transaction Series 588

Retry/Target Abort/Master Abort Cancels Lock 588

First Access of Series Receives Retry 588

General 588

If Target Is a PCI-to-PCI Bridge 588

If the Target Is a PCIX-to-PCIX Bridge 589

First Access of Series Receives Target or Master Abort 589

First Transaction Has Immediate Completion 589

First Transaction Receives Split Response 592

Continuing Locked Transaction Series 595

Attempted Access to Bridge by Device Other Than Owner 597

Last Transaction in Locked Series 598

If Last Transaction Receives Immediate Completion 598

If Last Transaction Receives Split Response 599

The Unlocking of a Target Bridge 599

When Bridge Starts Second Series Immediately After First 599

Retry Issued to Owner Not a Problem 599

DAC Command Lock Timing 600

In the First Access 600

In Subsequent Accesses of Locked Series 600

Part 6:Error Detection and Handling 603

Chapter 26:Error Detection and Handling 603

Handling of a Target Abort 603

Introduction 603

Requester Receives Target Abort 604

Completer Receives Target Abort on Split Completion 606

When Split Completion Target Abort Is Permissible 606

Discard of Completion for a Write or Non-Prefetchable Read 607

Discard of Completion for IO,Config,or Prefetchable Memory Read 608

Handling of a Master Abort 609

Introduction 609

Requester Handling of Master Abort 609

If Host/PCI Bridge Type 0 Config Transaction 609

If Not Host/PCIX Bridge Type 0 Config Transaction 610

If Requester Capable of Generating Interrupts 610

If Requester Can′t Generate Interrupts 610

Completer Handling of Master Abort on a Split Completion 610

General 610

Discard of Completion for a Write or Non-Prefetchable Read 611

Discard of Completion of IO,Config,or Prefetchable Memory Read 611

Target Handling of Address or Attribute Phase Parity Error 612

Data Phase Parity 612

PCI Chipset Typically Murders System on Data Parity Error 612

In PCI-X,Chipset Doesn′t Monitor PERR 613

General 613

Requester′s Data Parity Error Recovery Enable Bit 613

Basic Description 613

Set by OS or Driver′s Initialization Code at Startup Time 614

If Not Set,PCI Compatibility Dictates Murdering System 614

Recovery Must Be Performed Under Software Guidance 615

Driver Reports Error to OS 615

OS Instructs Driver on Action(s)to Take 615

OS Vendor Specifies Who Clears Parity Error Status Bits 615

Requester Handling of PERR# With Split Response 616

Data Error Received With Split Response on Read 616

Data Error Received With Split Response on Dword Write 618

Requester/Completer Handling of Data Error During SPlit Completion 620

Split Read Errors 620

General 620

Read Data Returned in One or More Split Completions 621

Internal Completer Error Can Occur at Any Time 622

Receipt of SCM Terminates Read Sequence 622

Effect of SCM on a Bridge 623

Effect of SCM on the Requester 623

Requester Handling of Unexpected Split Completion 626

Requester Handling of Split Completion Error Messages 627

Handling Completer Byte Count Out-of-Range Error 627

Memory Writes Never Split,so SCMs Don′t Apply 627

Read Immediate Treated Same as Write at Device Boundary 627

Split Read Straddling Device Boundary Causes SCM 627

Read Burst Straddling Device Boundary Considered Rare Case 628

Handling Completer Split Write Data Parity Error 629

Handling Completer Device-Specific Error 629

Handling Master Abort on Other Side of a Bridge 629

Error Description 629

Effect of Master Abort on Bridge 630

Bridge Interrupt Acknowledge Master Aborts 630

Bridge Special Cycle Master Aborts 630

Bridge IO Read Master Aborts 630

Bridge IO Write Master Aborts 632

Bridge Configuration Read Master Aborts 632

Bridge Configuration Write Master Aborts 632

Bridge Memory Read Dword Master Aborts 632

Bridge Memory Write Master Aborts 632

Bridge Memory Read Ends in Master Abort 633

Bridge Split Completion Ends in Master Abort 633

Effect of Master Abort SCM on Requester 635

Requester Interrupt Acknowledge Gets Master Abort SCM 635

Requester Special Cycle Gets Master Abort SCM 635

Requester IO Read or IO Write Gets Master Abort SCM 636

Requester Configuration Read Gets Master Abort SCM 636

Requester Configuration Write Gets Master Abort SCM 636

Requester Memory Read Dword Gets Master Abort SCM 637

Requester Memory Write Gets Master Abort SCM 637

Requester Memory Read Gets Master Abort SCM 637

Requester Split Completion Gets Master Abort SCM 638

Handling Target Abort on Other Side of Bridge 638

Error Description 638

Effect of Target Abort on Bridge 638

Bridge Interrupt Acknowledge Target Aborts 639

Bridge Special Cycle Target Aborts 639

Bridge IO Read Target Aborts 639

Bridge IO Write Target Aborts 640

Bridge Configuration Read Target Aborts 640

Bridge Configuration Write Target Aborts 640

Bridge Memory Read Dword Target Aborts 640

Bridge Memory Write Target Aborts 640

Bridge Memory Read Block Ends in Target Abort 641

Bridge Split Completion Ends in Target Abort 641

Effect of Target Abort SCM on Requester 642

Requester Interrupt Acknowledge Gets Target Abort SCM 642

Requester Special Cycle Gets Target Abort SCM 642

Requester IO Read or IO Write Gets Target Abort SCM 642

Requester Configuration Read Gets Target Abort SCM 643

Requester Configuration Write Gets Target Abort SCM 643

Requester Memory Read Dword Gets Target Abort SCM 643

Requester Memory Write Gets Target Abort SCM 644

Requester Memory Read Gets Target Abort SCM 644

Requester Split Completion Gets Target Abort SCM 644

Handling Split Write Data Parity Error on Other Side of Bridge 644

Error Description 644

Bridge May Deliberately Forward a Bad Split Write 644

…Or Split Write May Become Corrupted When Bridge Forwards It 645

Effect of Split Write Data Parity Error on Bridge 645

Effect of Split Write Data Parity Error on Requester 645

Usage of SERR 646

Part 7: Electrical Issues 651

Chapter 27:Electrical Issues 651

Introduction 651

LVS Bus 651

Attention to Detail 651

Most Parameters Tighter Than PCI 652

Maximum Number of Loads and Connectors on Bus 652

Cards Keyed as 3.3 Volt or Universal Cards 652

133MHz PCI-X Device Must Support 66MHz PCI 652

Add-In Card Trace Lengths 652

Initialization Pattern Setup/Hold Time 653

General 653

Trhff Must Be Taken Into Account 653

IDSEL Routing 654

General 654

IDSEL Series Resistor Value 655

Appendix A:Protocol Rules 659

Introduction 659

General Bus Rules 659

Initiator Rules 661

Target Rules 662

Bus Arbitration Rules 663

Configuration Transaction Rules 664

Parity Error Rules 665

Bus Width Rules 665

Split Transaction Rules 666

Appendix B:Glossary 671

Index 683