首頁>Club>
7
回覆列表
  • 1 # 超能網

    我們在裝機,挑選硬體尤其是CPU時,總會聽到“採用xxx架構的xxx處理器”,而通常我們在選擇CPU時,很多玩家也會考慮購購買什麼架構的處理器。而到現在智慧手機成為主流的時代,我們也知道了什麼叫“蘋果A12”“高通驍龍855”。雖然我們都在說架構,但是還有一個與處理器息息相關的名詞,叫做指令集。雖然很多朋友也知道“x86”“Arm”,但是“微架構”與“指令集”有什麼關係呢?

    Skylake處理器架構細節之一

    首先要看這兩個名詞是面向什麼的。指令集是一款CPU處理指令及資料的規範,我們只能透過輸入指定格式的指令才能操作計算機。而這個是面向程式設計師和使用者層面的。而微架構是面向CPU設計人員的,透過設計處理器的指令執行單元,當完成整個設計時,組成的一整套執行規定指令的微處理器的架構就叫“微架構”。

    AVX指令中的3運算元和4運算元格式

    前面提到了指令集就是“規範”,這也就意味著他能指導CPU設計人員透過閱讀“指令集規範”這本“指南”來設計CPU。而CPU設計人員透過閱讀這本規範後設計出來的CPU結構就叫“微架構”。舉個簡單的例子,就是小學老師教會我們如何解決一元二次方程,但題目是很多的,我們就需要透過解題方法來解決這些實際的問題。這裡“解題方法”就是指令集,而“具體的題目”就是微架構了。

    AMD推出的x86-64規範,圖片來自Wikipedia

    講到這裡更正式的表述就是“微架構”就是“指令集”的具體“實現”。所以從我們日常使用中就可以舉例,AMD和英特爾同樣都是採用x86指令集的處理器,但是他們處理器具體微架構是不同的,這就是典型的“實現”問題。而近期釋出的Arm Cortex-A77處理器微架構,其採用的是Arm v8.2指令集,其前代微架構Cortex-A76也是採用的Arm v8.2指令集。所以從軟體開發層面上講,其組合語言也是相同的,所以兩者就可以使用相同的作業系統,基本相同的軟體,而基本不需要重新開發編譯。

    Cortex-A77處理器微架構解析

    不過在具體設計處理器微架構時,不同的處理器在快取、分支預測等結構會有不同,所以雖然可以執行相同的指令,但為了讓軟體在該處理器上執行更快,所以會針對快取命中等進行最佳化。這種最佳化主要是軟體層面的,所以既可以透過組合語言,也可以透過編譯器進行,最終提升軟體執行效率。

    最後總結一下,指令集需要透過微架構去實現,而採用相同指令集的處理器即使微架構不同,其也可以執行相同的程式(一定條件下)。處理器雖然採用相同指令集,但微架構不同的處理器,在快取設計等方面存在差異,所以也會有通常處理器廠商也會為開發除錯工具甚至是編譯器等方式最佳化軟體在自家處理器上的執行效率

  • 2 # 水藍777

    處理器的微架構指的是不同cpu的產品規範,他和指令集的關係可以認為架構的概念更大,包含指令集的設計

    微架構:

    就是規定cpu中的快取如何設計,指令集是怎樣的,定址是怎樣的,同樣的指令集可能架構會有不同,比如intel的x86和 core架構,指令集基本一樣,但是架構不同,效能就差了很多

    指令集:

    對cpu進行運算最佳化的硬程式,分為精簡指令集和複雜指令集,它們都是對運算做的程式,比如加法,跳轉等,有了他們,我們才有了組合語言,對這些指令進行操作,才有了高階語言對彙編的操作,可以說指令集是最底層的程式

  • 中秋節和大豐收的關聯?
  • 白地瓜有哪些功效與作用?