有沒有可能設計乙個及有x86架構指令的又有ARM架構用的指令的處理器呢?

時間 2022-01-14 02:37:58

1樓:傳說中的胖子

比較「常規」的想法是用轉譯器,比如Rosseta2或者Exagear。

Rosseta2可以跑出單核80%、全核60%的效率。對比4核X86+4核ARM和8核ARM,很容易想到,如果不要求X86和ARM都追求極限效能或者X86和ARM負載的比例非常穩定,否則轉譯比較合算。

聽人介紹過另一種有趣的想法:處理器核多前端,整機硬分割槽。反正後端差距不太大,浪費不多,不用的前端當冷區還有利散熱。

某個區的核用什麼前端可以切換,程序排程綁在對應的區上。不過這玩意貌似還只是想法。

2樓:陳北宗

這就是所謂的異構計算了,就是現在似乎沒有單一廠家同時有兩邊的授權?(AMD 只有 Cortex-A5 小核,不是 ARMv8A 架構的大核。)

最接近的做法應該是在 PC PCIe 上面插一張 Zynq 7015。

3樓:Sinaean Dean

完全可以,就是這麼做有什麼好處呢?

又能執行x86又能執行ARM嗎?這樣的需求比較少。而且少量需求的情況下qemu一下就行了。

4樓:一粒鹽

個人認為,完全可以,樓上也提到了微指令的概念,就是在指令到達core裡會有預解碼,預解碼後變成真正的微碼才被core執行,這是乙個core的邏輯。

但是真正的x86和ARM放在主機板上真的就不行了嗎?完全可以,但是要解決以下的問題:

1.x86和ARM如何通訊?多路和多核CPU最重要的是cache一致性,將有很多訊息在匯流排上傳輸只為了保持cache一致性,這是乙個很複雜的問題。

現在Intel的多路CPU做法是外部用upi匯流排,內部用mesh或者ring匯流排。

2.韌體管理,也就是BIOS,因為ARM和x86CPU的啟動方式是不一樣的,所以得保證兩套韌體。也就是兩套BIOS吧。

因為BIOS是掛在PCH上,在ARM就是南橋晶元上,一般啟動時候先取到掛了PCH的CPU,後面到與之相連的CPU,這個對x86和ARM的做法是不合適的,所以需要兩套BIOS。

3.主機板也要重新設計,電源管理是需要對兩個CPU做單獨的電源供給和保護。

先草草寫了一下,後面詳細補充吧

5樓:guee

CPU的指令都是由二進位制編碼構成,指令集只會保證在自己的方案下,指令與二進位制編碼一一對應。也就是說不同的指令集,指令編碼會有相互重合的部分,因此同一塊CPU無法同時支援兩種不同的指令集,因為無法正確地解碼並執行。

中國產龍芯CPU對這個問題的解決方案,就是自己設計的指令集(LoongArch)在功能上是多種指令集的並集,當然編碼規則與其它指令集並不一樣。作業系統在執行程式時,把程式中的二進位制指令翻譯為功能對應的龍芯CPU指令來執行,這樣就可以做到同時執行不同指令集的應用程式。

當然實際翻譯並不是指令與指令一一對應,就像把英語翻譯成中文,可能乙個短語只需要對應乙個詞,也可能乙個單詞對應中文的幾個詞。翻譯x86的指令時,大部分指令可以在龍芯指令集中找到對應的指令,也有一部分需要用兩三條指令去實現一條指令的功能。總體上執行效率是有損失的,翻譯ARM指令集的程式時效率要比翻譯x86高一些。

下面是一篇簡單介紹龍芯LoongArch指令集的文章。

6樓:MebiuW

其實乙個CPU上就可以做了,比如現在X86 CPU內部執行的並不是X86指令集,而是自己的一套微指令,基於這個架構修改一下微指令,增加一套解碼和周邊理論上就可以。

請問有沒有可能設計乙個電路自檢系統?

現在,複雜的電路或系統都是模組化的,什麼壞了換什麼就好了,完全不需要乙個乙個的檢測,而且,每個元件的重要性不同,有些壞了不會影響系統執行,比如飛機座艙照明燈有個不亮了,那也沒必要安裝自檢電路。而重要的部位,駕駛部分,平衡部分等,就要求不能出錯,這部分往往有備用的系統。可以自動切換。等出了問題,即便檢...

有沒有可能宇宙不止乙個?

大星月 這就要開啟腦洞了一頁菩提一花一世界現在科學家對微觀世界的研究已經達到了夸克或許夸克下面還有更小的世界只是我們還沒有發現而已一粒沙子裡面可能就有無數個宇宙同樣我們的宇宙也是一粒沙子外面還有更大的世界或許某一天科學家突然在某個原子核裡發現了文明呢! 覺醒 1是,宇宙之外還是宇宙,沒有止境。2至於...

有沒有可能現在設計乙個程式語言,它能夠充分吸收現存語言的優點,同時排除那些缺點?

徐波 語言是拿來面對需求解決問題的。需求不同,問題各異也沒有正確錯誤之分,所以沒法做個完美的語言 試想,如果真的有絕對完美的語言,其他語言泯滅後,這種語言還完美麼? 吳璽煜 語言過於龐大臃腫,語法糖過多,回字有四種寫法,這本身也可以算是一種缺點。至於其他答主舉到的例子 記憶體釋放方式 只需要乙個配置...