評估)
半個月前我們評估板上那顆 Tiger Lake-U 模塊點亮了第 4 塊屏幕同時 NVMe 跑出了 6800 MB/s 的順序讀。這個數(shù)字放在臺式機平臺上不算亮眼但出現(xiàn)在一塊手掌大小的 COM Express 模塊上意味著很多原本要靠“獨立顯卡 多路 Xeon”才能覆蓋的場景現(xiàn)在單模塊就夠了。這也是我們在評估多款第 11 代酷睿低功耗平臺后最終把 Tiger Lake-U 列為首選的主要原因它的核顯把四路獨立顯示變成了標準能力CPU 直連通道又把 PCIe Gen4 帶到了嵌入式模塊上。這篇文章不聊廠商宣傳冊上的漂亮參數(shù)而是把我們圍繞“四路顯示 PCIe Gen4”做過的評估、實測、選型和踩坑記錄整理出來給正在考慮同類平臺的朋友一個參考。1. 四路顯示不是看 EU 數(shù)得看顯示引擎的管腳賬1.1 Tiger Lake-U 顯示引擎到底能輸出幾路先說結論Tiger Lake-U 大多數(shù) SKU 的顯示引擎可以同時驅(qū)動 4 路獨立輸出但這不代表你拿到任何一張模塊主板都能插滿 4 塊屏幕。原因在于顯示輸出上限由三個環(huán)節(jié)共同決定SoC 內(nèi)部顯示管道數(shù)量、處理器引腳上可復用的 DDI 管腳組、以及主板廠商愿意為這些信號留多少布線空間。Tiger Lake-U 共有 8 組與顯示相關的引腳可以配置成 eDP、DP、HDMI 等不同復用模式嵌入式模塊廠商需要從中選出一套組合來做板級設計。我們常用的這一顆 i7-1165G7在官方數(shù)據(jù)手冊里明確寫著最多支持四路并發(fā)顯示而同封裝下的 i3-1115G4 雖然 EU 數(shù)量砍到了 48顯示引擎依然保留四路輸出能力。換句話說四路顯示主要取決于主板把 DisplayPort 通道引出了幾路而不是 CPU 性能檔位。這里容易產(chǎn)生一個誤解有人覺得把 4 個 HDMI 座子放在板上就有四顯實際上 Tiger Lake 核顯原生輸出的并不是 HDMI 電平而是 DP 差分信號。HDMI 2.0b 輸出通常需要額外的 LSPCON 轉(zhuǎn)換芯片比如 Parade PS196 或 Megachips 方案把 DisplayPort 信號轉(zhuǎn)換成 HDMI TMDS。所以你在模塊規(guī)格里看到“4x HDMI 2.0b”背后其實是“GPU 出 4 路 DP其中幾路經(jīng) LSPCON 轉(zhuǎn)成 HDMI”。1.2 常見四顯組合和接口規(guī)劃我們評估的這塊模塊提供了 1 路 eDP、2 路 DP 和 1 路 HDMI 2.0b 的組合但這只是其中一種規(guī)劃。從市面上主流的 Tiger Lake-U 模塊來看四路顯示大致有下面幾種走法方案接口組成適用場景A1x eDP 3x DP帶內(nèi)置觸摸屏的 KIOSKeDP 直連面板B4x DP部分走 Type-C多屏拼接、醫(yī)療影像全部外接 DP 屏C1x eDP 2x DP 1x HDMI/LSPCON兼顧內(nèi)置屏與外接商用顯示器D2x eDP 2x DP雙內(nèi)置面板的異型設備選擇哪種組合核心要看你產(chǎn)品的屏幕形態(tài)。如果是要做帶屏幕的醫(yī)療監(jiān)護儀eDP 直連面板最經(jīng)濟如果要做 4 個獨立 HDMI 口的商用主機廠商必須給 LSPCON 留出位置。我們在選型時還特別確認了一個細節(jié)4 路顯示是否支持完全不同的分辨率和刷新率而不只是鏡像。實測結果是四路獨立輸出可以做到 2 路 4K60 2 路 1080p60但需要把 BIOS 里 DVMT 預分配顯存調(diào)到 512MB 以上否則高分辨率接口會因為顯存不足出現(xiàn)閃屏或枚舉失敗。提示評估模塊時不要只看“最多支持 4 屏”這句話要拿到完整的多屏分辨率矩陣表。部分模塊在 eDP 和 DP 同時使用時會限制某些接口的最高分辨率這種約束通常藏在硬件設計手冊的小字部分不提前確認就很容易在項目后期翻車。1.3 雙屏三屏容易四屏高負載的帶寬分配才是關鍵很多人覺得“既然能出四路那就接 4 個 4K60”這個想法在實際測試里很容易被潑冷水。DisplayPort 1.4 的 HBR3 模式單路原始帶寬約 32.4Gbps帶一路 4K60 很輕松但四路同時高分辨率輸出時四路鏈路會共享內(nèi)存控制器帶寬和顯示引擎的掃描輸出調(diào)度資源實際表現(xiàn)往往和屏幕內(nèi)容密切相關。我們在測試中就遇到過三路 4K 一路 1080p 穩(wěn)定運行但換成四路 4K 后第二路 DP 不定時黑一下屏的情況。GDM 日志里能看到鏈路重新訓練的動作說明問題出在顯示引擎內(nèi)部資源分配而不是線纜。把第二路刷新率從 60Hz 降到 50Hz 之后問題消失。所以評估階段一定要做“全部接口滿規(guī)格同時輸出”的壓力測試不要只是在系統(tǒng)桌面里插上顯示器看能否點亮那和實際產(chǎn)品負載差得遠。另外一個容易忽略的點是顯存分配。Tiger Lake-U 是共享內(nèi)存架構BIOS 里的 DVMT 預分配大小直接決定顯示引擎可用的顯存上限。四路 4K 桌面合成時幀緩沖占用可能超過 300MB如果預分配只有 64MB系統(tǒng)會動態(tài)借用內(nèi)存導致高負載時出現(xiàn)閃爍或輕微卡頓。我們在所有四顯項目里都統(tǒng)一要求 DVMT 調(diào)到 512MB并且使用雙通道 DDR4-3200帶寬才夠用。2. PCIe Gen4 的真相總共只有 4 條通道且經(jīng)常被 SSD 占掉2.1 CPU 直連通道 vs PCH 通道Tiger Lake-U 內(nèi)部有兩套 PCIe 資源CPU Root Complex 直出的 PCIe 和控制中心PCH擴展出來的 PCIe。CPU 直出的通道總共有 8 條其中 4 條支持 PCIe Gen4另外 4 條只支持 Gen3。PCH 那一路則全部是 Gen3沒有任何一個 PCH 端口支持 Gen4。所以模塊上標注的“PCIe Gen4”其實只有一種可能性CPU 那組 x4 Gen4 通道。它在不同模塊上的去向大體有兩種板載 M.2 2280 插槽專門給 NVMe SSD 用這是最常見的設計也是廠商宣傳 Gen4 時默認指代的對象。通過 COM Express Type 6 的 PEG 通道或 Qseven 的 PCIe 通道引到載板讓客戶自己在載板上接 Gen4 設備。這兩種設計對客戶的影響完全不同。如果 Gen4 被用在板載 M.2 上那么你的系統(tǒng)只能在存儲速度上享受 Gen4 紅利如果你需要外接 Gen4 采集卡、AI 加速卡或 RAID 控制器就必須選第二種設計并且要非常謹慎地處理載板布線。2.2 Gen4 x4 的實測帶寬我們在 Tiger Lake-U 模塊上用三星 PM9A1Gen4 NVMe做過一輪測試。在模塊板載 M.2 上CrystalDiskMark 的順序讀取穩(wěn)定在 6800 MB/s 左右順序?qū)懭?5000 MB/s 左右同樣一顆 SSD 放到僅支持 Gen3 的上一代平臺上順序讀取被壓在 3500 MB/s 上下。PCIe 的帶寬計算公式不復雜Gen3 單 lane 8 GT/sGen4 單 lane 16 GT/sx4 鏈路有效數(shù)據(jù)率大約為 lane 數(shù) × 單 lane 速率 × 編碼效率。Gen4 x4 理論單向約 7.88 GB/s實測 6.8 GB/s 已經(jīng)是很健康的水平NVMe 協(xié)議開銷和 SSD 閃存自身的速度也會拖一點后腿。在 Linux 下判斷 SSD 是否真的跑在 Gen4 速率可以用sudo lspci -vvv -s 01:00.0 | grep -Ei LnkCap|LnkSta如果 LnkCap 顯示 16 GT/s 而 LnkSta 只顯示 8 GT/s說明鏈路協(xié)商在 Gen3需要檢查 BIOS 里的 PCIe Link Speed 是否設成了 Auto/Gen3或者載板插槽的布線是否有問題。提示很多模塊廠商為了兼容老接口BIOS 默認把 CPU 直連 Gen4 通道限制在 Gen3。測試前先到 BIOS 的 PCIe Configuration 里確認 Link Speed 是否允許 Gen4否則你會誤判模塊硬件能力。2.3 COM Express 連接器跑 Gen4 的現(xiàn)實難度如果模塊把 Gen4 引到 COM Express Type 6 連接器問題會復雜很多。COM Express 3.0 規(guī)范當初定義的時候主要奔著 Gen3 去的連接器本身沒有做 Gen4 的官方認證。雖然 MXM 風格的插拔連接器在短距離上具備跑 16 GT/s 的潛力但最終能不能穩(wěn)定跑起來取決于模塊和載板兩邊的總走線長度、過孔數(shù)量、參考層完整性以及連接器引腳相鄰信號的串擾。我們和幾個載板設計方交流下來的經(jīng)驗是模塊到載板連接器的走線盡量控制在 3~4 英寸內(nèi)載板這一段要嚴格做 85Ω 差分阻抗控制連接器附近的過孔要背鉆。即便滿足了這些條件仍然要做全鏈路眼圖測試別指望原理圖照著參考設計畫就一定能過。另一個常被忽略的是參考時鐘架構Gen4 對 REFCLK 的抖動容限更嚴格如果載板使用了獨立的時鐘緩沖器要確認它滿足 PCIe Gen4 的相位噪聲要求否則會出現(xiàn)“10 次開機有 1 次識別不到設備”這種概率性故障。3. 四屏全開 NVMe 滿速功耗和散熱是筆算不清就容易炸的賬3.1 功耗預算不能只看 TDPTiger Lake-U 的 TDP 標稱 15W/28W但這是 CPU 封裝散熱設計功耗不是模塊整板功耗。嵌在四屏輸出 高速存儲 外設滿載場景時模塊實際功耗會明顯高于 TDP。我們實測過一塊 28W 配置的 i7-1167G7 級別模塊在四路 4K 顯示 PM9A1 持續(xù)讀寫 雙網(wǎng)口打流的情況下12V 輸入端電流達到 5.2A 左右換算下來整板功耗約 62W。CPU 核心本身可能只占了一半另一半來自核顯高負載、DDR4 內(nèi)存、SSD、接口芯片和 PCH。負載項典型功耗估算CPU/GPU 核心峰值35~45WDDR4 雙通道內(nèi)存4~6WGen4 NVMe SSD持續(xù)讀寫6~8W4 路 DP/eDP 輸出與轉(zhuǎn)換芯片2~3W千兆網(wǎng)口 USB 外設5~8W整板合計實測峰值55~65W所以做電源設計的時候建議按最大場景功耗的 1.5 倍預留余量。如果用的是 DC-DC 從 12V 轉(zhuǎn) 5V/3.3V還要注意模塊瞬態(tài)電流峰值尤其是開機瞬間多個設備同時上電時12V 電壓跌落超過 5% 會導致模塊隨機重啟。我們之前的一塊載板就是 12V 走線太細導致開機時電壓從 11.8V 掉到 10.9V模塊在 Linux 啟動到一半就復位排查了很久才發(fā)現(xiàn)是電源路徑的銅寬不夠。3.2 散熱設計經(jīng)驗散熱上四屏 Gen4 的場景有兩個容易被忽略的熱源核顯和 SSD。核顯在四路 4K 合成輸出時功耗可能僅次于 CPU而 Gen4 SSD 在持續(xù)寫入時顆粒溫度上升很快。如果模塊的 M.2 位置緊挨著 CPU 散熱器高溫氣流會互相影響SSD 連續(xù)跑幾分鐘就開始限速。被動散熱機箱做 28W 持續(xù)負載時外殼散熱面積最好不低于 200 平方厘米經(jīng)驗值視環(huán)境溫度而定并且 CPU 位置要加導熱墊直貼機箱鋁壁。有風扇的主動散熱方案就從容很多一個 4010 或 5010 風扇在 3000 RPM 時就能把模塊表面溫度壓在 60°C 以內(nèi)。需要特別注意的是工業(yè)場景如果要求 -20°C 到 70°C 工作溫度建議選工業(yè)級 SKU并優(yōu)先用被動散熱因為風扇在低溫啟動和粉塵環(huán)境下故障率偏高這在我們之前的戶外項目中踩過不少次。3.3 電壓軌的順序與時序供電設計里還有個不太起眼但很致命的細節(jié)模塊各電壓軌的上電時序。COM Express 規(guī)范要求載板給模塊提供 12V 待機和主電源時模塊內(nèi)部的電壓軌會按特定順序建立。如果載板的 12V 電源有較大的容性負載或者軟啟動太慢可能導致模塊上電時序異常表現(xiàn)為第一次開機黑屏、第二次又正常。建議用示波器抓模塊上電瞬間的 12V 波形確認電壓爬升速率在模塊手冊規(guī)定的范圍內(nèi)。很多批量穩(wěn)定性問題最后都出在這種“軟件查不出、硬件測不到”的電源細節(jié)上。4. 什么項目才真正需要“四顯示 PCIe Gen4”這種組合4.1 多屏工控 HMI工廠產(chǎn)線的數(shù)據(jù)看板、設備狀態(tài)監(jiān)控往往需要 4 塊屏幕分別顯示不同工序的畫面。過去這種需求通常要上獨立顯卡加中端工控機不僅占空間功耗也高。Tiger Lake-U 模塊的四路顯示正好切中這個需求單模塊加一個可靠載板就能替代原來的多設備方案。Gen4 在這種場景下主要是為了快速讀寫本地報警錄像和配方數(shù)據(jù)屬于錦上添花但 NVMe 全速讀取確實能讓系統(tǒng)啟動和軟件加載快一大截。我還想多說一句很多 HMI 項目里4 路顯示的物理接口形態(tài)比接口數(shù)量更重要。工廠顯示器很多還是 HDMI 口或 VGA 口而 DP 信號不是每臺老顯示器都支持。所以選模塊時如果確認要接老式 HDMI/VGA 屏記得把所有顯示口最終要轉(zhuǎn)成的物理形態(tài)提前落實別等結構件開模了才發(fā)現(xiàn)載板上的接口位置和數(shù)量不對。4.2 醫(yī)療影像與自助終端醫(yī)療影像診斷工作站對顯示分辨率和色彩要求高多屏異顯幾乎成了標配。四路 DP 輸出接多臺 4K 醫(yī)用顯示器Gen4 SSD 加速 DICOM 影像序列的加載這套組合可以覆蓋相當一部分超聲、內(nèi)鏡和病歷瀏覽需求。但要注意醫(yī)療設備的電氣安全和認證要求電源隔離和接地設計要比普通工控嚴格得多選模塊時盡量選有完整認證資料的型號。自助終端/KIOSK 則是另一個大宗場景一塊內(nèi)置觸摸屏eDP 兩塊廣告屏DP/HDMI 一塊收銀屏四路顯示剛好用完而 Gen4 對這類設備更多是面向未來——當系統(tǒng)需要本地緩存大量視頻素材時高速存儲能減少素材切換的卡頓。我見過不少 KIOSK 項目因為存儲慢導致廣告視頻在切換時明顯卡頓換了 Gen4 NVMe 之后這個問題基本消失用戶感知非常明顯。4.3 選型時一定要向廠商追幾個問題“四路顯示具體是哪幾種接口組合是否支持 4 路同時異顯”——很多規(guī)格書寫 4 屏實際是 2 路克隆 2 路擴展?!癙CIe Gen4 是板載 M.2 還是通過連接器引出”——決定你能不能用外部 Gen4 設備?!癇IOS 里是否同時開放了 4 個顯示接口和 Gen4 鏈路”——部分模塊為了兼容性默認關閉了某些功能?!拜d板參考設計是否提供 Gen4 布線指導”——沒有這份文檔的話引到載板的 Gen4 大概率只能在低頻下工作。這四條看起來像廢話但我們在真實選型里幾乎每次都遇到至少一個回答模糊的廠商。尤其在“四路異顯”這個詞上不同廠商的定義差異很大有的四路輸出只能復制有的受限于 BIOS 只能三路異顯加一路復制。把這些落到紙面、寫進技術協(xié)議里是選型階段最值得花時間做的事。5. 調(diào)試復盤四路顯示枚舉與 Gen4 鏈路的真實坑位5.1 四屏點不亮先查 BIOS 的 DVMT 和 Multi-Monitor我們第一次拿到模塊時只接了 3 塊屏幕第 4 個 DP 口死活沒有輸出。排查了線纜和顯示器之后進 BIOS 發(fā)現(xiàn)兩個設置點需要改一是 DVMT 預分配顯存默認只有 64MB四屏同時工作必須調(diào)到 512MB 以上二是 Multi-Monitor Support / Multiple Display 選項默認關閉開啟后才能讓核顯同時驅(qū)動 4 個輸出。這里給大家一個排查思路先確認 BIOS 里“顯示輸出數(shù)”的配置項再看系統(tǒng)里 xrandr 能否枚舉到對應的 CRTCxrandr如果能看到 4 個 output 但其中一個無信號通常是接口轉(zhuǎn)接或線纜的問題如果系統(tǒng)只看到 2~3 個 output那就要回到 BIOS 顯示資源分配去查。注意這個過程中不要忽略核顯驅(qū)動是否加載成功。部分 Linux 發(fā)行版默認使用 modesetting 驅(qū)動對四屏支持沒問題但個別精簡內(nèi)核會禁用部分顯示通道建議用發(fā)行版官方內(nèi)核而不是自己裁剪的最小內(nèi)核來驗證硬件能力。5.2 顯示接口枚舉順序不穩(wěn)定四屏設備最麻煩的體驗問題是屏幕順序隨機變化。DP 接口在熱插拔或重新訓練后內(nèi)核 DRM 子系統(tǒng)按連接狀態(tài)分配 connector順序可能與物理位置不一致。我們最終在載板上給每個 DP 接口加了 EDID 讀寫電路把固定 EDID 刷進去同時在內(nèi)核參數(shù)里配置video選項指定輸出映射才把順序穩(wěn)定下來。這個坑在產(chǎn)品化階段非常容易被低估。開發(fā)時說一句“順序亂就手動設一下”好像沒什么等量產(chǎn)之后每臺設備都出現(xiàn)內(nèi)容錯位返工成本極高。如果你的產(chǎn)品有 4 屏異顯需求建議在硬件設計階段就把 EDID 固定方案做進去不要拖到軟件階段再想辦法。5.3 PCIe Gen4 協(xié)商到 Gen3 的排查鏈路前面提到 BIOS 默認限速是一個原因另一個常見坑是 M.2 插槽本身不支持 Gen4。有些模塊雖然 CPU 支持但 M.2 連接器或者載板轉(zhuǎn)接板的引腳定義只做了 PCIe Gen3 規(guī)范這時候 link 最高只能到 8 GT/s。排查順序可以這樣先用 lspci 確認 LnkCap 和 LnkStasudo lspci -vvv -s 01:00.0 | grep -Ei LnkCap|LnkSta如果 LnkCap 顯示 16GT/s 但 LnkSta 是 8GT/s在排除 BIOS 設置后用短的直連 M.2 轉(zhuǎn) PCIe 卡測試 SSD 本身如果直連正常而插在載板上只有 Gen3基本可以斷定是轉(zhuǎn)接走線的信號完整性問題而不是 SSD 或模塊的問題。我們遇到過一塊載板上的 M.2 連接器旁邊放了幾個大電流 Buck 電源開關噪聲耦合到 PCIe 差分對上導致高負載時 CRC 錯誤率飆升、鏈路自動降速。這種情況靠軟件幾乎無法定位只能靠頻譜分析和近場探頭去查。5.4 Gen4 信號完整性的實質(zhì)過孔、背鉆與參考層最后一個真正的硬骨頭是載板走線。Gen4 對過孔殘樁極其敏感一截 10 mil 的殘樁在 16 GT/s 下就是一根天線會讓眼圖裕量迅速惡化。我們有一條 Gen4 x4 從 COM Express 連接器走到 PCIe x4 插