February, 2007
PLX Technology, Inc.
Chapter 6
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1 Interrupt Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.1 PEX 8532 Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2 INTx Emulation Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.2.1 INTx-Type Interrupt Message Remapping and Collapsing . . . . . . . . . . . . . . . . . . 83
6.3 Message Signaled Interrupt (MSI) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.3.1 MSI Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.3.2 MSI Capability Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Chapter 7
Software Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.1 PEX 8532 Software Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.2 Configuration Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.2.1 Software Configuration and Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.3 Sample Configuration Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.3.1 Switch Device Number Assignment Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3.1.1 Configuration Register Programming Sequence . . . . . . . . . . . . . . . . . . . . . . 91
7.3.1.2 Sample Pseudo Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.1.3 Sample Packet Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.3.2 Using Base Address Registers (BARs) to Access Registers . . . . . . . . . . . . . . . . 94
7.3.2.1 Transparent Mode Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3.2.2 Non-Transparent Mode Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.4 Interrupt Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.5 Hot Plug Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Chapter 8
Performance Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.2 Non-Blocking Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2.1 Queuing Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2.2 Port-to-Station Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8.2.3 RAM and Queue Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.3 Quality of Service (QoS) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3.1 Virtual Channel (VC) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3.2 Packet Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.3.2.1 Source Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.3.2.2 High-Priority Virtual Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.3.2.3 PLX-Specific Relaxed Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.3.2.4 Internal Fabric Backpressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3.2.5 Egress Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.4 Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.4.1 Theoretical Upper Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.4.1.1 Physical Layer Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.4.1.2 Data Link Layer Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.4.1.3 Transaction Layer Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.4.1.4 PCI Express Efficiency Upper Bound Summary . . . . . . . . . . . . . . . . . . . . . 107
8.4.2 Single-Stream Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.4.2.1 Ingress Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.4.2.2 Egress Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.4.3 Multiple Stream Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.4.3.1 Enable PLX-Specific Relaxed Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.4.3.2 Avoid Hot Spots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.4.4 Throughput and Packet Size Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
ExpressLane PEX 8532AA/BA/BB/BC 8-Port/32-Lane Versatile PCI Express Switch Data Book
Copyright © 2007 by PLX Technology, Inc. All Rights Reserved – Version 1.6
xi