一、PCIe介绍
1、前言
1.1、PCIe概述
PCI Express(peripheral component interconnect express)是INTEL提出的新一代的总线接口,PCI Express采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI Express的双单工连接能提供更高的传输速率和质量。
1.2、PCIe分类
- PCIe规格
目前PCIe有五种物理规格,分别为PCIe x1、PCIe x4、PCIe x8、PCIe x16、PCIe x32,x
后面的数字表示为PCIe插槽内的通道数
详见示意图如下,目前主流规格主要为x1、x4、x8、x16,PCIe插槽可向下兼容,如PCIe x16插槽可插x8、x4、x1的卡(最终运行模式由PCIe卡决定,如PCIe x16插槽插入PCIe x4卡,最终以PCIe x4模式运行)
插槽宽度 | 脚pin总数 | 主接口区pin数 | 长度 | 传输通道数 | 常见应用 |
---|---|---|---|---|---|
PCIe x1 | 36 | 14 | 25mm | 1 | 无线网卡、SATA扩展卡、USB端口扩展卡 |
PCIe x4 | 64 | 42 | 39mm | 4 | 万兆以太网卡 |
PCIe x8 | 98 | 76 | 56mm | 8 | FC HBA卡 |
PCIe x16 | 164 | 142 | 89mm | 16 | 显卡、GPU卡 |
- PCIe版本
目前PCIe有六种版本,分别为PCIe1.0、PCIe2.0、PCIe3.0、PCIe4.0、PCIe5.0、PCIe6.0,PCIe版本向后兼容,任何版本的PCIe卡和主板都可以以最低版本的模式工作(如PCIe 3.0卡插到PCIe 2.0槽位上,最终以PCIe 2.0版本运行)
详见示意图如下,列举了不同PCIe版本总线性能,PCIe每条传输通道均为全双工通道(SEND、RECEIVE两个方向互不影响,表中传输带宽表示为单方向的速率)
PCIe是一条串行总线,数据中嵌入了时钟,它需要确保发生足够的电平转换(1到0和0到1),以便接收端恢复时钟。
为了增加电平转换,以"8b/10b"编码举例,每8个bit(1个字节)被编码为一个10bit的符号进行传输,之后在接收端进行解码,即总线需要传输10 bit的编码数据来表示所发送的8 bit的数据,编码效率为80%(8b/10b)
( 原始传输率 x Line编码效率 x 通道数 )
有效传输带宽 = ------------------------------------
8
注:
GT/s表示为每秒千兆传输(**Gigatransfer**),由于原始传输率为Gbps(二进制以1000换算,即2.5Gbps=2500Mbps),故需要除以8换算为GBps
PCIe版本 | 发布时间 | Line编码 | 原始传输率 | ×1带宽 | ×2带宽 | ×4带宽 | ×8带宽 | ×16带宽 |
---|---|---|---|---|---|---|---|---|
1.0 | 2003 | 8b/10b | 2.5 GT/s | 250 MB/s | 0.50 GB/s | 1.0 GB/s | 2.0 GB/s | 4.0 GB/s |
2.0 | 2007 | 8b/10b | 5.0 GT/s | 500 MB/s | 1.0 GB/s | 2.0 GB/s | 4.0 GB/s | 8.0 GB/s |
3.0 | 2010 | 128b/130b | 8.0 GT/s | 984.6 MB/s | 1.97 GB/s | 3.94 GB/s | 7.88 GB/s | 15.8 GB/s |
4.0 | 2017 | 128b/130b | 16.0 GT/s | 1969 MB/s | 3.94 GB/s | 7.88 GB/s | 15.75 GB/s | 31.5 GB/s |
5.0 | 2019 | NRZ 128b/130b | 32.0 GT/s | 3938 MB/s | 7.88 GB/s | 15.75 GB/s | 31.51 GB/s | 63.0 GB/s |
6.0 | 2021 | PAM4 & FEC 128b/130b | 64.0 GT/s | 7877 MB/s | 15.75 GB/s | 31.51 GB/s | 63.02 GB/s | 126.03 GB/s |
1.3、常见问题
- 同一个主板,同一张卡,插在PCIe A上可以正常使用,而在PCIe B却无法识别?
此问题常出现在双路主板上,主板的PCIe接口分别由两个CPU控制。如果只上了一个CPU,那么另外一个CPU控制的PCIe通道是不通电的,自然不能识别。
1.4、常用命令
- 查看服务器PCI-E插槽个数及使用情况:
dmidecode | grep -1 PCI
注:可使用PCIe扩展卡扩充PCIe插槽
[root@node111 ~]# dmidecode | grep -1 PCI
ISA is supported
PCI is supported
PNP is supported
--
System Slot Information
Designation: PCIe Slot 1
Type: x8 PCI Express 3 x16
Current Usage: Available
--
System Slot Information
Designation: PCIe Slot 2
Type: x8 PCI Express 3 x16
Current Usage: Available
--
System Slot Information
Designation: PCIe Slot 3
Type: x8 PCI Express 3 x16
Current Usage: Available
--
System Slot Information
Designation: PCIe Slot 4
Type: x8 PCI Express 3 x16
Current Usage: In Use
--
System Slot Information
Designation: PCIe Slot 5
Type: x8 PCI Express 3 x16
Current Usage: In Use
--
System Slot Information
Designation: PCIe Slot 6
Type: x16 PCI Express 3
Current Usage: Available
二、PCIe应用
1、HBA卡
HBA,即主机总线适配器(Host Bus Adapter),是服务器内部的I/O通道与存储系统的I/O通道之间的物理连接,实现内部通道协议PCI或Sbus和光纤通道协议之间的转换,减轻了主处理器在数据存储和检索任务的负担,提高服务器的性能。
HBA卡可以将服务器连接至存储网络(如SAN存储),常见的HBA卡有FC-HBA卡(16Gb/s)、SAS-HBA卡(12Gb/s)两种
1.1、FC HBA卡
1.1.1、品牌厂商
FC HBA卡常见的品牌厂商主要为Emulex
、Qlogic
- Emulex
可通过lspci | grep Fibre
查询服务器当前使用FC HBA卡,若品牌为Emulex
,通常驱动模块为lpfc
[root@node85 ~]# lspci | grep Fibre
62:00.0 Fibre Channel: Emulex Corporation LightPulse LPe16002 (rev 30)
62:00.1 Fibre Channel: Emulex Corporation LightPulse LPe16002 (rev 30)
[root@node85 ~]#
[root@node85 ~]# modinfo lpfc
filename: /lib/modules/4.14.113-1.el7.x86_64/kernel/drivers/scsi/lpfc/lpfc.ko.xz
version: 0:11.4.0.3
author: Broadcom
description: Emulex LightPulse Fibre Channel SCSI driver 11.4.0.3
license: GPL
srcversion: 9B519AD74B0149A85A5638D
- Qlogic
可通过lspci | grep Fibre
查询服务器当前使用FC HBA卡,若品牌为Qlogic
,通常驱动模块为qla2xxx
1.1.2、常用操作
- 查看FC本地(通常为服务器FC HBA卡)WWN号:
cat /sys/class/fc_host/host{x}/port_name
注:如FC HBA卡配置两个FC口,则存在两个WWN号
[root@node85 ~]# cat /sys/class/fc_host/host11/port_name
0x10000090fadc39ac
[root@node85 ~]# cat /sys/class/fc_host/host13/port_name
0x10000090fadc39ad
- 查看FC远端(通常为FCSAN存储)WWN号:
cat /sys/class/fc_remote_ports/rport-{x}/port_name
[root@node85 ~]# cat /sys/class/fc_remote_ports/rport-11\:0-0/port_name
0x277000c0fff0b1d3
[root@node85 ~]# cat /sys/class/fc_remote_ports/rport-13\:0-0/port_name
0x237000c0fff0b1d3
-
扫描FC本地新SCSI磁盘:
rescan-scsi-bus.sh
-
查看FC本地SCSI连接情况:
lsscsi
[root@node85 ~]# lsscsi
[3:0:0:0] enclosu SEAGATE 4565 G280 -
[3:0:1:0] enclosu SEAGATE 4565 G280 -
[3:0:2:0] enclosu BROADCOM VirtualSES 03 -
[11:0:0:0] enclosu SEAGATE 5865 G280 -
[11:0:0:11] disk SEAGATE 5865 G280 /dev/sdb
[11:0:0:15] disk SEAGATE 5865 G280 /dev/sdd
[11:0:0:19] disk SEAGATE 5865 G280 /dev/sdf
[11:0:0:23] disk SEAGATE 5865 G280 /dev/sdh
[11:0:0:27] disk SEAGATE 5865 G280 /dev/sdj
[11:0:0:31] disk SEAGATE 5865 G280 /dev/sdl
[11:0:0:35] disk SEAGATE 5865 G280 /dev/sdn
[11:0:0:39] disk SEAGATE 5865 G280 /dev/sdp
[12:0:0:0] disk ATA INTEL SSDSC2KB24 0132 -
[12:0:1:0] disk ATA INTEL SSDSC2KB24 0132 -
[12:1:0:0] disk LSI Logical Volume 3000 /dev/sda
[13:0:0:0] enclosu SEAGATE 5865 G280 -
[13:0:0:12] disk SEAGATE 5865 G280 /dev/sdc
[13:0:0:16] disk SEAGATE 5865 G280 /dev/sde
[13:0:0:20] disk SEAGATE 5865 G280 /dev/sdg
[13:0:0:24] disk SEAGATE 5865 G280 /dev/sdi
[13:0:0:28] disk SEAGATE 5865 G280 /dev/sdk
[13:0:0:32] disk SEAGATE 5865 G280 /dev/sdm
[13:0:0:36] disk SEAGATE 5865 G280 /dev/sdo
[13:0:0:40] disk SEAGATE 5865 G280 /dev/sdq
1.2、SAS HBA卡
1.2.1、品牌厂商
SAS HBA卡常见的品牌厂商主要为LSI
、Adaptec
、Areca
、ATTO