自從蘋果推出ARM架構的M1處理器,並透過M系列的Macbook筆電取得巨大的成功之後,不但與x86架構處理器分道揚鑣,也顯示自行開發非x86架構處理器的可能性。
RISC-V與ARM二者都屬於精簡指令集,但RISC-V比起ARM更為精簡,一般而言,一個ARM處理器要用到1,000、甚至1,500個指令集,但RISC-V最少只需要4、50個,相當適合開發給輕巧、低耗電的裝置使用。
目前,基於RISC-V的處理器遠不如基於Arm或x86的晶片普遍,但由於開源的特性,似乎正在慢慢獲得重視。
跨平台 x86 模擬器 Box86 / Box64 的開發者嘗試用 RISC-V 處理器運行《巫師 3》大型 3D 遊戲,並且將過程發表在他們的網站上,結果 15 幀勉強跑動,不過也是一次新的突破。
在 RISC-V 架構上進行 x86 模擬的主要挑戰,是將這些 x86 / x64 CPU 指令轉換為 RISC-V 可以真正理解的內容,該部落格詳細介紹了一些遇到的困難和方法。
他們使用了一台 Milk-V Pioneer 電腦,這是一款基於標準 mATX 外形規格的開發者主機板,將 64 個 RISC-V 核心封裝到主機板中,採用算能 SG2042 處理器,具有運行頻率為 2GHz 的 64 個玄鐵 C920 64-bit 核心 CPU。
該主機板搭配了一張 AMD RX 5500 XT 顯示卡,運行 Linux 作業系統,以及 Wine 和 DXVK 等工具,最後達成了這一成就。
他們在文章中表示,一年前,RV64 DynaRec 只能運行一些相對「容易運行」的原生 Linux 遊戲,例如《星露谷物語》等。
一方面,這是因為大量新的 x86_64 指令在 RISC-V 中快速實現後,DynaRec 中留下了許多 bug。如果您沒有正確實現 x86_64 ISA,一切都將無法進行。但最重要的因素是,我們當時沒有可以插入 AMD 顯示卡的 RISC-V 設備,而且 VisionFive 2 和 LicheePi 4A 上的 IMG 整合式顯示卡不支援 OpenGL,僅支援 OpenGL ES。
我們可以使用 gl4es 獲得一定程度的 OpenGL 支持,這使得像《星露谷物語》這樣的遊戲能夠運行,但對於其他更嚴肅的 Linux 遊戲以及一般的所有 Windows 遊戲來說這還不夠。
所以這成為了我們在更廣闊的世界測試更多x86程式的硬障礙,直到他們收到了Sophgo的Milk-V Pioneer,這是一台64核心的RISC-V PC,當然,它也有用於顯示卡的PCIe 插槽。
此外,另一位核心貢獻者xctan也找到了透過M.2介面將AMD顯示卡「插」進VisionFive 2的方法。至此,我們接觸到了更廣闊的世界,修復了大量 RV64 DynaRec 錯誤,並添加了大量新的 x86 指令。數量的變化導致品質的變化,越來越多的遊戲開始運行,最後,我們第一次嘗試運行《巫師 3》,它就成功了!
有興趣的朋友可以查看原部落格瞭解詳細資訊。
- 延伸閱讀:Raspberry Pi Pico 2規格分析,開機過程可切換Arm、RISC-V架構
- 延伸閱讀:新型 RISC-V 微處理器可同時運行 CPU、GPU 和 NPU 工作負載
- 延伸閱讀:進軍伺服器的RISC-V能否與 x86一戰?
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!