close

處理器的指令集與微架構有什麼關係?

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

微架構有什麼關係_01.PNG

Skylake處理器架構細節之一
  首先要看這兩個名詞是什麼?指令集是處理器運算指令及數據的規範,我們只能通過輸入指定的指令才能操作,而這是程式設計師用的。微架構是處理器設計的人用的,通過設計處理器的指令執行單元,當完成整個設計時,組成的一整套執行規定指令的微處理器的架構就叫“微架構”。

微架構有什麼關係_02.PNG

AVX指令中的3操作數和4操作數格式
  前面提到的指令集就是“規範”,這也表示他能指導處理器設計人員通過閱讀“指令集規範”這本“指南”來設計處理器。而處理器設計人員通過閱讀這本規範後設計出來的處理器結構就叫“微架構”。舉個例子,就是小學老師教我們如何解決一元二次方程,但題目很多,我們就要通過解題方法來解決這問題。這裡的“解題方法”就是指令集,而“題目”就是微架構了。

微架構有什麼關係_03.PNG

AMD推出的x86-64規範
  講到這裡的表述,就是“微架構”是“指令集”的“實現”。日常用的例子AMD和英特爾都是用x86指令集處理器,但他們處理器的微架構是不同的,這就是上面例子的出的“題目”不同。而Arm Cortex-A77處理器微架構,採用的都是Arm v8.2指令集,與前代微架構Cortex-A76也是用Arm v8.2指令集。所以從軟件開發上來說,彙編語言也是相同的,所以這兩者可用相同作業系統,相同軟件,不需重新開發編譯。

微架構有什麼關係_04.PNG

Cortex-A77處理器微架構解析
  不過在設計處理器微架構時,不同的處理器在緩存、分支預測等結構會不同,所以雖然可執行相同指令,但為了讓軟體在該處理器上跑更快,會針對緩存命中進行優化。這種優化主要是軟體層面的,所以既可通過彙編語言,也可通過編譯器進行,最終提升軟體執行效率。

  總結一下,指令集需要通過微架構去運算,而用相同指令集的處理器即使微架構不同,其也可用相同程式(在有條件下) 。處理器雖然用相同指令集,但微架構不同的處理器,在緩存設計等存有差異,所以會有處理器廠商也開發調教工具甚至是編譯器等方式優化自家處理器的運算效率。

 

來源
謝謝收看

arrow
arrow

    john pan 發表在 痞客邦 留言(0) 人氣()