Lec2 Chipset and PCIe

advertisement
COM509 Computer Systems
Lecture 2. Chipset and PCIe
Prof. Taeweon Suh
Computer Science Education
Korea University
x86-based Computer System
CPU
Main
Memory
(DDR2)
FSB
(Front-Side Bus)
Graphics
card
North
Bridge
South
Bridge
Hard disk
USB
BIOS
ROM
PCIe card
2
Korea Univ
Q35 Chipsets System Block Diagram
3
Korea Univ
Chipsets
• Chipsets include MCH and ICH in the x86-based system
 There are PCIe devices inside the MCH and the ICH
 Backbone of MCH and ICH is based on PCI express
• Q35 (North Bridge)
 Device 0 : Function 0
• DRAM Controller Registers
 Device 1 : Function 0
• PCIe Registers associated with x16 root port
 Device 2 : Function 0, 1
• Integrated Graphics Devices Registers
 Device 3 : Function 0, 1, 2, 3
• Intel Management Engine (ME) subsystem registers
4
Korea Univ
Chipsets
• ICH9 (South Bridge)
 D30:F0
• PCI-to-PCI Bridge Register
 D31:F0
• LPC (Low Pin Count) Interface Bridge Registers
 D31:F2
• SATA (Serial ATA) Controller Registers
 D31:F3
• SMBus Controller Registers
 ….
5
Korea Univ
PCI Express
• 3rd generation high-performance I/O bus
 Used to interconnect peripheral devices
 Point-to-point connection as opposed to bus
 PCIe interconnect consists of either a x1, x2, x4, x8, x12, x16 or x32
point-to-point link
• if you have x16 link, there are 64 physical lines (16 * 2 (both directions)
* 2 (differential signaling))
 1st generation
• ISA, EISA, VESA and Micro Channel buses
 2nd generation
• PCI, PCI-X, and AGP
6
Korea Univ
PCI Express
7
Korea Univ
PCI Bus Based Platform
8
Korea Univ
PCIe-based System Topology
• Root Complex
 Denote the root of
I/O hierarchy that
connects the
CPU/memory
subsystem to the
I/O
 May support one
or more PCIe ports
as shown
• Endpoint
 devices other than
root complex and
switches that are
requesters or
completers of PCIe
transactions
Souce: PCIe specification 2.0
9
Korea Univ
PCIe Example Topology
• Switch
 Can be thought of as consisting of 2 or more logical PCI-to-PCI
bridges
 One port of a switch pointing in the direction of the root complex is
an upstream port
 All other ports pointing away from the root complex are downstream
ports
Souce: PCIe specification 2.0 10
Korea Univ
PCIe Topology
11
Korea Univ
PCIe Address Space
• PCIe supports the same address spaces as PCI
 Memory space
 IO space
 Configuration space
• PCIe provides a 4KB space per a function as opposed to
256B in PCI
• PCIe support up to 256 buses, 32 devices, and 8
functions
12
Korea Univ
PCIe Configuration Registers
13
Korea Univ
PCIe Configuration Registers
14
Korea Univ
PCIe Configuration Registers
15
Korea Univ
PCIe Configuration Registers
• Vendor ID
 Identify the manufacturer of the function
 The value is assigned by a central authority (PCI SIG)
that controls issuance of the numbers
• Device ID
 Assigned by the function manufacturer
 Identify the type of the function
16
Korea Univ
PCIe Configuration Registers
• Class code
17
COM906
Korea Univ
How to Access Configuration Registers?
• In x86-based platform, there are 2 ways to access configuration
registers
 I/O transaction with 0xcf8 and 0xcfc
• PCI compatible configuration mechanism
• 0xcf8 and 0xcfc are IO port addresses implemented within root complex
 It means you have to use “in” or “out” instructions in x86
 0xcf8: Configuration address port
 0xcfc: Configuration data port
18
Korea Univ
How to Access Configuration Registers?
 MMIO (Memory-Mapped IO) transaction
• Each function’s 4KB config. space starts at a 4KB-aligned address
with the 256MB memory space set aside as configuration space
• For example, you can use “mov” instruction in x86 to access the
config. space
19
Korea Univ
PCIe Memory Space
20
Korea Univ
PCIe I/O Space
21
Korea Univ
PCIe Transaction Routing
22
Korea Univ
PCIe Transaction Routing
TLP: Transaction Layer Packet
23
Korea Univ
PCIe Transaction Routing
24
Korea Univ
PCIe Transaction Routing
25
Korea Univ
PCIe Transaction Routing
26
Korea Univ
PCIe Transaction Routing
27
Korea Univ
PCIe Transaction Routing
28
Korea Univ
PCIe Transaction Routing
29
Korea Univ
PCIe Transaction Routing
30
Korea Univ
PCIe Enumeration
• At power up time, the configuration software only knows
of the existence of bus 0
 Bus 0 is the bus that resides on the downstream side of the
Host/PCI bridge
 The configuration S/W does not even know what devices reside
on bus 0
• So… how does the system discover the various buses,
devices, and functions on the computer system?
 Answer: Via the enumeration process
• BIOS is doing the enumeration
31
Korea Univ
PCIe Enumeration
32
Korea Univ
PCIe Enumeration
33
Korea Univ
Example: Before PCIe Enumeration
34
Korea Univ
PCIe Enumeration Process
35
Korea Univ
PCIe Enumeration Process
36
Korea Univ
PCIe Enumeration Process
37
Korea Univ
PCIe Enumeration Process
38
Korea Univ
PCIe Enumeration Process
39
Korea Univ
PCIe Enumeration Process
• ………
40
Korea Univ
Example: After PCIe Enumeration
41
Korea Univ
Download