强制重新谈判PCI Express链路速度? x2卡恢复到x1宽度

为了规避与新型HP ProLiant Gen8服务器一起使用SSD驱动器的兼容性和成本障碍 ,我正在validation平台上的基于PCIe的SSD。 我一直在试用来自Other World Computing的一款名为Accelsior E2的有趣产品。

在这里输入图像描述

这是一个基本的devise; 带有Marvell 6Gbps SATA RAID控制器的PCIe卡和连接到该卡的两个SSD“刀片”。 这些可以通过操作系统进行软件RAID(例如ZFS) ,也可以用作硬件RAID0条带或RAID1镜像对。 俏皮。 这实际上只是把一个控制器和磁盘压缩成一个非常小的外形。

问题:

看看那个PCIe连接器。 这是一个PCie x2接口。 物理PCIe插槽/通道大小通常为x1,x4,x8和x16 ,电气连接通常为x1,x4,x8和x16。 没关系。 我以前在服务器中使用过x1卡 。

我开始在启动的系统上testing此卡的性能,发现无论服务器/插槽/ BIOSconfiguration如何,读取/写入速度都受到约410 MB / s的限制。 正在使用的服务器是带有x4和x8 PCIe插槽的HP ProLiant G6,G7和Gen8(Nehalem,Westmere和Sandy Bridge)系统。 查看该卡的BIOS,发现该设备的协商结果为: PCIe 2.0 5.0Gbps x1 – 因此,只使用一个PCIe通道而不是两个,因此只有一半的广告带宽可用。

有没有办法强制PCIe设备以不同的速度运行?

我的研究表明,PCIe x2是一个古怪的通道宽度… PCI Express标准显然不需要兼容x2车道宽度 ,所以我的猜测是我的服务器上的控制器正在回落到x1 …我有任何追索权?


缩写lspci -vvv输出。 请注意LnkStaLnkCap行之间的LnkSta

 05:00.0 SATA controller: Marvell Technology Group Ltd. Device 9230 (rev 10) (prog-if 01 [AHCI 1.0]) Subsystem: Marvell Technology Group Ltd. Device 9230 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Kernel driver in use: ahci Kernel modules: ahci 

这是OWS的正式答案,现在是另一个答案,如果有可能迫使hp控制器上升到x2宽度,这将需要更多的研究。 – )

在这里输入图像描述

我在一个稍微不同的惠普平台上,即2U HP ProLiant DL380p Gen8与1U DL360p Gen8再次尝试了这一点。 我使用这种硬件组合得到了正确的结果 。

目前的Gen8主机固件现在允许PCIe链路以适当的速度进行协商,因此这些设备与ProLiant DL380p Gen8服务器兼容。

 Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- 

我手头上有一台配有Broadcom 4×1GbE卡的IBM服务器…从2.0×4协商到2.0×2:

 0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) Subsystem: IBM Device 03a9 Capabilities: [ac] Express (v2) Endpoint, MSI 00 LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Latency L0 <2us, L1 <2us LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- 

它有一个x4连接器,我猜测它只能在PCIe v1插槽中使用,所以看起来在PCIe v2插槽中使用x2连接器是可以的(因为5GT / s双向连接对于4×1GbE )。

你的卡可以发生同样的事情吗?

(如果没有,我的答案是:使用IBM而不是HP:P)