在4~5月期間,Intel開始更新處理器的勘誤文件,現在我們終于知道其中內情,Skylake和Kaby Lake處理器的微代碼(microcode)存在BUG。所謂微代碼是處理器的一種更新特性,通過從Intel的站點下載微代碼,加載到處理器核中,對一些BUG進行勘誤。微代碼是包含處理器的微指令(Microinstructions)的數據塊。
原來,上周末,著名Linux發行版Debian發布警示文章,稱該BUG涉及Intel Skylake/Kaby Lake處理器(包括桌面、HEDT、嵌入式移動平臺)以及Xeon V5/V6甚至還有奔騰。
癥狀是,同步多線程開啟下會造成一些高危的系統行為。包括應用異常、數據丟失、數據處理超負荷等。
Intel官方的描述是,某些復雜條件下,處理小于64指令(如AH、BH、CH、DH寄存器)的短循環,會造成系統失控。但是,該情況出現僅限同步多線程啟用時才有,也就是發生在一個物理線程承載兩個邏輯線程時。
發現者Mark Shinwell是在Deibian上使用OCamlL編譯器時發現的。
修復方式:
Kaby Lake—向主板或OEM廠商索要最新的BIOS/UEFI更新;同時關閉同步多線程
Skylake——shell命令“grep -E 'model|stepping' /proc/cpuinfo | sort -u”,如果輸出結果有78/94,且步進為3,請更新7月17日的新系統,該內核(20170511)打包了最新microcode;如果輸出結果非上述所顯,請關閉同步多線程,知道BIOS/UEFI更新。
[via SoftPedia]