什麼是晶元的架構?
01-22
我作為一個電腦小白,對這些東西十分的感興趣,於是關注了很多這方面的東西。我發現當談到電腦的cpu,顯卡,還有手機的soc的時候,總是會出現一個詞——架構,但是每個答主只會說這個晶元的架構名稱,並不會深入討論。所以我一直對這個架構不是很理解。請問各位什麼是架構呢?
架構大致上是指你晶元功能的某一種實現套路,比如:
- 每個核有幾個ALU?幾個FPU?幾發射?
- 各個指令要跑多少個周期?
- 最多允許多少個核?有多少個SIMD處理器?它們之間怎樣連接?
- 有沒有亂序?大致是怎樣的實現?
架構和指令集的關係不大。按摩店的推土機、打樁機用的指令集和Intel的同時代CPU是一樣的,然而架構完全不同。
架構是個很模糊的詞,具體含義跟語境有關。通常提到SOC晶元架構時,一般指的是嵌入式處理器核心的類型,當提到x86或arm架構時,指的是指令集。當探討晶元設計時,討論的是電路實現級別的微架構。
第一,架構是個台灣方言詞,中國的說法是體系結構
第二,體系結構一般指一組部件及其相互之間的聯繫。
第三,計算機體系結構是指機器語言和編譯器開發者看到的計算機屬性,比如所謂的指令集、位寬、寄存器堆等等,並不包括內部的實際控制流和數據流。
第四,一般網文談的所謂處理器架構啦微架構啦,本質上屬於「計算機組成Computer Organization」的範疇,詳細描述針對某個計算機體系架構的具體物理實現。
構架的含義很多。我給你簡單解釋下。
常說到的「cpu的構架」一般就是指cpu內部長什麼樣。
簡單比喻一下,整數運算單元(alu)、浮點運算單元(fpu)還有其他的就像是各種工廠,它們在一個工業區(核心)里,cpu是一個城市,裡面有好幾個工業區,還有居民樓(l1 l2 l3緩存)。整個城市長什麼樣就是CPU的構架,工業區之間怎麼連接就是CPU的多核的構架,工業區里長什麼樣就是CPU核心的構架。顯卡就是另一個城市,顯卡這個城市的路是怎麼連的,長什麼樣就是顯卡的構架。
還有常說的「x86構架」「arm構架」。這個比較難解釋,指令集肯定是不同的,還有些其他的不同,但是我不怎麼懂。不過雖然這兩種城市長的不一樣,但裡面的工廠可以是一樣的,所以z8300可以用雙系統。CPU是個解釋器,架構是它的演算法,RTL是演算法的實現,MuxReg隊列操作是它emit的target。更好架構就是更好的演算法,能用更少操作在更緊的constraint下做完同樣一件事。
因此現代CPU的演算法已經發展成一個複雜的系統,涵蓋解釋器編譯器JIT優化器向量化程序分析各大功能,對應到architecture里的名詞就是ROB OoO renaming coherency。所有這一切演算法設計都屬於CPU架構,也就是這個複雜解釋器+recompilation的演算法。架構=指令集,這個就很容易理解了吧
推薦閱讀:
※索泰,技嘉,華碩,微星,名人堂非公版1070那個值得買?
※如何評價Thunderbolt3的顯卡拓展方案?
※華碩筆記本1060/3g跟1050/4g的選擇?
※GT440顯卡可以跑GTA5 PC嗎?