写在最前面:以下仅适用于intel平台。本贴并非保姆级教程,更多的是分享这种方案,并希望和大家一起更深入探讨,旨在抛砖引玉。如果你觉得麻烦或者害怕风险,还是买带plx的更合适,现在3.0的也不贵了。本人始终觉得技术应当分享共同交流进步,况且这也不是本人技术,所以我无私分享。但人的精力有限,每个研究成果都应该被尊重。
本人玩diy时间不长,也折腾过网络设备、U盘、魔改等等之类的。前段时间看看自己主板,突然对其中一根pcie3.0 x8的插槽产生了兴趣,觉得能插两根m2的nvme硬盘多是一件美事啊。经过一段时间的学习和研究,找到了一种另类低成本拆分的方案。不一定适合你,但看完应该会对你有所启发。
——————————————————–
关于pcie拆分,也就是pcie lane bifurcation,其实这个功能挺小众的。因为对于普通家用电脑或办公来说,一般就是1块SSD加一块机械,再根据不同需求,装或不装一块显卡,并没有更多的pcie扩展需求。而对于hedt或者服务器平台,pcie通道又足够的多,扩展方便,通道拆分变得没有意义。到了11代,intel大方的多给了4条4.0的通道给m2硬盘,相应的dmi也升级到了4.0,带宽和通道的提升下,就更没理由为之折腾了。
那么还有哪些场合需要拆分显卡的16条通道呢?我个人总结有以下几种:
1是紧凑型all in one。把一个matx甚至itx小主板的16通道拆分8+8或者8+4+4,用来扩展硬盘和网卡;
2是显卡较弱用不完x16乃至x8的通道,手里又有多条m2 nvme协议硬盘要装;
3是像我一样,总想榨干全部性能,不折腾不舒服斯基。
我发现网上很多人认为这一功能实现依靠bios或者主板自带的Asmedia拆分芯片,以至于上某宝买不带plx的拆分卡,卖家都要提醒你bios得支持,或者通过数主板上有几颗Asmedia拆分芯片来判断支持拆分到8+8还是8+4+4,这些都不完全准确。因为很明显pcie lane bifurcation的功能实现靠的是CPU和芯片组。bios也好,拆分芯片也罢只是让你更方便的操作拆分,其原理后面会说。这也是为什么有些主板即使魔改bios刷出拆分功能,最终也不能成功。
先上一些用于支撑的理论知识:
1、pcie通道拆分和plx拆分有什么区别?
pcie通道拆分就像是分蛋糕。有的人分得1/2,有的人分得1/4。优点很明显便宜,信号直接连至cpu,延迟更低。缺点嘛,相比plx来说,你分得1/2,那最多也就是1/2,定死了,另外就是通用性差,不是所有平台都支持。
plx也像分蛋糕,但更像路由器。1条100M的带宽,1个人用是100M,2个人不同时用,都能享受100M。但同时用且应用都一样的话,就每人50M了,分配弹性更强。优缺点和上面相反。
1、pcie通道拆分是谁的功能?
通过查intel产品官网,可以查到cpu或芯片组的这项信息(以i5 7500和Q170芯片组为例,不具有代表性,但所有产品都能查到):
intel Q170
intel i5-7500
可以发现,pcie通道拆分的功能是由cpu和芯片组共同决定的。bios也好拆分芯片也好,都是主板设计时实现拆分功能的手段,不能决定功能的有无,也不是实现拆分功能的唯一方法。
2、哪些cpu和芯片组支持拆分?
通过intel产品官网可以查到你手中的cpu和主板能否拆分。
据我总结,cpu方面:intel 3代酷睿、4到9代赛扬、奔腾、酷睿和至强E3等115x,及10、11代1200等都支持拆分到8+4+4,12代支持拆分到8+8。
芯片组方面,几乎Z系列、Q系列,X系列和至强C系列全部支持。本文研究的也是这些平台。
我手里有一块爱国嘉的H110TN-e,因为主板只有pciex4,没法研究官网明确标注不支持拆分的H、B系列芯片组能不能实现。我用这种办法给它拆到x8了,但没法后续验证。感兴趣的可以自行研究。
H110TN-e也能拆,但是能不能分,就不知道了
3、pcie拆分到底靠什么实现?
其实这个功能一点都不神秘。intel官方的产品datasheet明确给出了pcie通道分配的方式。就是根据cpu引脚定义中的cfg[6]和cfg[5]的GTL电平组合决定分配方式,cfg[2]决定通道顺倒序。拿6代skylake的cpu举例:
所以,只需手动控制cfg[6]和cfg[5]电平就能配置出不同的组合方式。cfg[2]是pcie lane reversal,即通道整体翻转,合理利用可以配置出8+4+4或者4+4+8。最简单的办法,就是通过引脚图,将相应引脚短接跳线至GND。
个人推测bios手动拆分也好,Asmedia芯片自动拆分也罢,最终都是操作这些引脚实现。这也是为什么有些主板强刷魔改bios也不能拆分,这就像是给你的设备外表装个开关,但是里面没有接线,你按了有毛用啊。
4、这种办法是否安全可靠?
从datasheet可以找到这张表:
可以看出这3个引脚都是通过 3 kΩ的内部上拉电阻连接至VccIO。GTL电平是1.2V,跳线短接后通过电流仅0.4mA。我个人实测大概一周,没有发现任何问题。主板冒烟cpuBoom更是无稽之谈。当然了,DIY需要胆大细心,还有一定风险承受能力。你不敢玩那我也没有办法了。
============分割线============
废话了这么多,终于到了实战环节。如果你有需求上面又看不太懂,那直接看下面即可。
第一步:跳线拆分,把x16拆分成你需要的8+8或者8+4+4
拿我的C232主板(联想OEM主板,华擎E3C232D4U同款)和E3-1280V6来说,只需将cpu如下跳线,就能把原本x16的通道拆成8+4+4。
这种跳线可拆分至8+4+4
要注意这种胶带是需要有胶的那一面导电的,也就是短接的是cpu。某宝搜导电胶带,9块9包邮买一卷能用一辈子。
这是另一款cpu(i5 9400f),这种可拆分至4+4+8(注意不是8+4+4),请无视上面的魔改贴
其它cpu,只需根据intel官方提供的cpu datasheet,找到cfg[6:5:2]三个引脚的位置,根据自己情况跳线即可。
另外要注意VSS针脚旁边就是VCC,可千万别剪长了,粘斜了!VSS和VCC连上了真会烧主板!
第二步:解决第2个和第3个设备的参考时钟问题,找到合适自己的拆分卡
这部分其实挺难的。某宝上的拆分卡五花八门,适合你自己的还真不一定能找到。如果有特别需求,可能要自己画板设计。目前网上现成的卡,有这么几种:
1是广达等服务器的专用拆分卡。这种卡没有时钟复用芯片,只能和他家的主板配套使用,因为另一到两路的参考时钟信号线通过pcie的预留引脚连至主板,时钟是由主板提供的。这也是为什么即使你主板bios支持拆分,你也没法买这种拆分卡用。
图片借用,侵删
2是拆分卡集成了1颗扇出型时钟发生器,可以接收主板插槽提供的一路时钟信号,并拓展成2路或更多路供设备用。最常见的有pi6c20400b和sl28pcie14两种芯片,实例产品五花八门,各式各样:
某鱼极多,最便宜28包邮
这款和上面唯一区别就是PCB颜色
上面的变形款,好像用料更足一些
以上四种全部采用sl28pcie14时钟发生器
还有这种:
当然,实际还有更多。
3就是带plx的拆分卡了。通用性极强,价格嘛你懂得。(好像现在不是那么贵了)
就我而言,研究这些东西并没花多久,但拆分卡真就找了将近一个月。因为我主板本身就有自动拆分8+8功能,所以将第二个8拆成4+4来接两块m2硬盘,只需找到普通双m2转pciex8即可。但即便如此,各种各样的m2转pcie卡我还是买了好多张,因为大多数卡都有WHEA-logger 报17警告的问题,而且是1秒几十条记录的刷屏,用倒是不影响,但是真的搞心态:
感觉就是时钟发生器和主板的兼容问题,因为有的卡就算拆分无关,只接一块硬盘插在连到PCH的x4接口上,仍然有大量WHEA17警告。但是插到单位的h310c主板上,问题完全不存在。或者在bios里把pcie版本调到1.0,问题也消失不见。直到找到这种卡,问题才得以解决:
并非广告。这种卡最贵且没有贵的道理,如非必要勿选
当然如果你和我的情况一样,不妨也从便宜的卡开始试,因为这张卡太贵了。而最便宜的有些卡,小黄鱼上才卖28包邮。我有理由相信是我主板兼容性不怎么好,但我就这一台能研究的电脑,其它的需要你们自行研究了。
最后拆分成功了,就是下图这样:
上一张两盘对拷的图:
哈哈速度并不理想,我的主板也不支持pcie vroc,不然弄两块970 pro组raid0,可以算作最强的pcie4.0x4nvme硬盘了。算了暂时不折腾了。为了这个研究,又淘了一块N手sm960和N多张拆分卡做实验,钱包又要哭啦!!!
============分割线============
最后,上几张115x引脚图,如果没有你需要,请至intel官网下载datasheet自行查询。
6~9代S、H平台1151
2~3代1155,借图侵删
1150引脚定义,配合下图使用
1150引脚定义,配合上图使用