intel部分桌面級CPU的pcie通道拆分另類低成本實現(xiàn)
寫在最前面:以下僅適用于intel平臺。本貼并非保姆級教程,更多的是分享這種方案,并希望和大家一起更深入探討,旨在拋磚引玉。如果你覺得麻煩或者害怕風險,還是買帶plx的更合適,現(xiàn)在3.0的也不貴了。本人始終覺得技術應當分享共同交流進步,況且這也不是本人技術,所以我無私分享。但人的精力有限,每個研究成果都應該被尊重。所以本貼的部分觀點內(nèi)容允許一定程度的外部引用,但謝絕一字不差的轉載!本文只發(fā)表于B站和chiphell,其它地方出現(xiàn)一模一樣文章均為抄襲,本人深深鄙視?。?!
大家好,我是B站新人一枚。本人玩diy時間不長,也折騰過網(wǎng)絡設備、U盤、魔改等等之類的。前段時間看看自己主板,突然對其中一根pcie3.0 x8的插槽產(chǎn)生了興趣,覺得能插兩根m2的nvme硬盤多是一件美事啊。經(jīng)過一段時間的學習和研究,找到了一種另類低成本拆分的方案。不一定適合你,但看完應該會對你有所啟發(fā)。
友情提醒,如果你不想看那么廢話,只想知道怎么做,那么直接拉到最下面分割線后面就好啦!?。?/span>
關于pcie拆分,也就是pcie lane bifurcation,其實這個功能挺小眾的。因為對于普通家用電腦或辦公來說,一般就是1塊SSD加一塊機械,再根據(jù)不同需求,裝或不裝一塊顯卡,并沒有更多的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,用來擴展硬盤和網(wǎng)卡;
2是顯卡較弱用不完x16乃至x8的通道,手里又有多條m2 nvme協(xié)議硬盤要裝;
3是像我一樣,總想榨干全部性能,不折騰不舒服斯基。
我發(fā)現(xiàn)網(wǎng)上很多人認為這一功能實現(xiàn)依靠bios或者主板自帶的Asmedia拆分芯片,以至于上某寶買不帶plx的拆分卡,賣家都要提醒你bios得支持,或者通過數(shù)主板上有幾顆Asmedia拆分芯片來判斷支持拆分到8+8還是8+4+4,這些都不完全準確。因為很明顯pcie lane bifurcation的功能實現(xiàn)靠的是CPU和芯片組。bios也好,拆分芯片也罷只是讓你更方便的操作拆分,其原理后面會說。這也是為什么有些主板即使魔改bios刷出拆分功能,最終也不能成功。
先上一些用于支撐的理論知識:
1、pcie通道拆分和plx拆分有什么區(qū)別?
pcie通道拆分就像是分蛋糕。有的人分得1/2,有的人分得1/4。優(yōu)點很明顯便宜,信號直接連至cpu,延遲更低。缺點嘛,相比plx來說,你分得1/2,那最多也就是1/2,定死了,另外就是通用性差,不是所有平臺都支持。
plx也像分蛋糕,但更像路由器。1條100M的帶寬,1個人用是100M,2個人不同時用,都能享受100M。但同時用且應用都一樣的話,就每人50M了,分配彈性更強。優(yōu)缺點和上面相反。
1、pcie通道拆分是誰的功能?
通過查intel產(chǎn)品官網(wǎng),可以查到cpu或芯片組的這項信息(以i5 7500和Q170芯片組為例,不具有代表性,但所有產(chǎn)品都能查到):


可以發(fā)現(xiàn),pcie通道拆分的功能是由cpu和芯片組共同決定的。bios也好拆分芯片也好,都是主板設計時實現(xiàn)拆分功能的手段,不能決定功能的有無,也不是實現(xiàn)拆分功能的唯一方法。
2、哪些cpu和芯片組支持拆分?
通過intel產(chǎn)品官網(wǎng)可以查到你手中的cpu和主板能否拆分。
據(jù)我總結,cpu方面:intel 3代酷睿、4到9代賽揚、奔騰、酷睿和至強E3等115x,及10、11代1200等都支持拆分到8+4+4,12代支持拆分到8+8。
芯片組方面,幾乎Z系列、Q系列,X系列和至強C系列全部支持。本文研究的也是這些平臺。
我手里有一塊愛國嘉的H110TN-e,因為主板只有pciex4,沒法研究官網(wǎng)明確標注不支持拆分的H、B系列芯片組能不能實現(xiàn)。我用這種辦法給它拆到x8了,但沒法后續(xù)驗證。感興趣的可以自行研究。

3、pcie拆分到底靠什么實現(xiàn)?
其實這個功能一點都不神秘。intel官方的產(chǎn)品datasheet明確給出了pcie通道分配的方式。就是根據(jù)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芯片自動拆分也罷,最終都是操作這些引腳實現(xiàn)。這也是為什么有些主板強刷魔改bios也不能拆分,這就像是給你的設備外表裝個開關,但是里面沒有接線,你按了有毛用啊。
4、這種辦法是否安全可靠?
從datasheet可以找到這張表:

可以看出這3個引腳都是通過 3 kΩ的內(nèi)部上拉電阻連接至VccIO。GTL電平是1.2V,跳線短接后通過電流僅0.4mA。我個人實測大概一周,沒有發(fā)現(xiàn)任何問題。主板冒煙cpuBoom更是無稽之談。當然了,DIY需要膽大細心,還有一定風險承受能力。你不敢玩那我也沒有辦法了。
============分割線============
廢話了這么多,終于到了實戰(zhàn)環(huán)節(jié)。如果你有需求上面又看不太懂,那直接看下面即可。
第一步:跳線拆分,把x16拆分成你需要的8+8或者8+4+4
拿我的C232主板(聯(lián)想OEM主板,華擎E3C232D4U同款)和E3-1280V6來說,只需將cpu如下跳線,就能把原本x16的通道拆成8+4+4。

要注意這種膠帶是需要有膠的那一面導電的,也就是短接的是cpu。某寶搜導電膠帶,9塊9包郵買一卷能用一輩子。

其它cpu,只需根據(jù)intel官方提供的cpu datasheet,找到cfg[6:5:2]三個引腳的位置,根據(jù)自己情況跳線即可。
另外要注意VSS針腳旁邊就是VCC,可千萬別剪長了,粘斜了!VSS和VCC連上了真會燒主板!
第二步:解決第2個和第3個設備的參考時鐘問題,找到合適自己的拆分卡
這部分其實挺難的。某寶上的拆分卡五花八門,適合你自己的還真不一定能找到。如果有特別需求,可能要自己畫板設計。目前網(wǎng)上現(xiàn)成的卡,有這么幾種:
1是廣達等服務器的專用拆分卡。這種卡沒有時鐘復用芯片,只能和他家的主板配套使用,因為另一到兩路的參考時鐘信號線通過pcie的預留引腳連至主板,時鐘是由主板提供的。這也是為什么即使你主板bios支持拆分,你也沒法買這種拆分卡用。

2是拆分卡集成了1顆扇出型時鐘發(fā)生器,可以接收主板插槽提供的一路時鐘信號,并拓展成2路或更多路供設備用。最常見的有pi6c20400b和sl28pcie14兩種芯片,實例產(chǎn)品五花八門,各式各樣:




還有這種:


當然,實際還有更多。
3就是帶plx的拆分卡了。通用性極強,價格嘛你懂得。(好像現(xiàn)在不是那么貴了)
就我而言,研究這些東西并沒花多久,但拆分卡真就找了將近一個月。因為我主板本身就有自動拆分8+8功能,所以將第二個8拆成4+4來接兩塊m2硬盤,只需找到普通雙m2轉pciex8即可。但即便如此,各種各樣的m2轉pcie卡我還是買了好多張,因為大多數(shù)卡都有WHEA-logger 報17警告的問題,而且是1秒幾十條記錄的刷屏,用倒是不影響,但是真的搞心態(tài):

感覺就是時鐘發(fā)生器和主板的兼容問題,因為有的卡就算拆分無關,只接一塊硬盤插在連到PCH的x4接口上,仍然有大量WHEA17警告。但是插到單位的h310c主板上,問題完全不存在?;蛘咴赽ios里把pcie版本調(diào)到1.0,問題也消失不見。直到找到這種卡,問題才得以解決:

當然如果你和我的情況一樣,不妨也從便宜的卡開始試,因為這張卡太貴了。而最便宜的有些卡,小黃魚上才賣28包郵。我有理由相信是我主板兼容性不怎么好,但我就這一臺能研究的電腦,其它的需要你們自行研究了。
最后拆分成功了,就是下圖這樣:

上一張兩盤對拷的圖:

哈哈速度并不理想,我的主板也不支持pcie vroc,不然弄兩塊970 pro組raid0,可以算作最強的pcie4.0x4nvme硬盤了。算了暫時不折騰了。為了這個研究,又淘了一塊N手sm960和N多張拆分卡做實驗,錢包又要哭啦?。?!
============分割線============
最后,上幾張115x引腳圖,如果沒有你需要,請至intel官網(wǎng)下載datasheet自行查詢。




1150引腳定義,配合上圖使用