導航:首頁 > 源碼編譯 > 指令集體系結構編譯器

指令集體系結構編譯器

發布時間:2023-01-22 06:38:57

A. 處理器架構、指令集和匯編語言,三者有何關系

想要知道處理器架構、指令集和匯編語言,三者有何關系,我們先要了解一下這三個名詞解釋。


指令集架構

指令集架構,簡稱指令集,ISA、CPU執行單元和解碼邏輯基本上由指令集決定。軟體和硬體之間的介面,程序員可以根據CPU的指令集編寫各種編譯器,用高級語言編寫程序。

三者之間的關系

  1. 指令集決定處理器的架構,因為處理器架構是使用硬體電路實現指令集。但是什麼樣的處理器架構被使用,什麼樣的硬體電路被設計,以及每個人的設計可能不同。

  2. 要設計一個處理器,您需要有一個指令集,它指示處理器操作和控制處理器以實現相應的功能。

  3. 為了方便人類操作指令集,匯編語言是用來描述指令集的,匯編語言類似於人類語言,更易於閱讀。

B. CPU指令集的概念和作用

這里不再進行正式而科學的描述,如果想了解關於「指令集」最專業的權威的定義,你可以去網路中搜索了解。
這里簡單地打個比方:缺乏某種指令集的CPU,進行相關運算會非常慢甚至無法進行。就好比一個不會乘法口訣的人,想計算「一斤大白菜3塊錢,買8斤需要多少錢」這個算數問題,只能掰著手指用加法慢慢算,結果算了半分多鍾才出結果。
而擁有了指令集的加持後,就好比掌握了乘法口訣,可以瞬間「三八二十四」給出計算結果。

C. CPU指令集和CPU架構之間的關系是什麼

這是我自己早期在貼吧的回復


解釋一下幾個名詞:
指令集架構,即ISA:CPU物理硬體和上層軟體之間的一個介面。設計一個cpu,他能執行的所有指令集合就稱為指令集。ISA方便了編譯器開發者,開發者不需要知道cpu的硬體設計(指令在cpu中怎麼變成電流,時鍾信號如何控制時序,指令如何被執行等等),只要知道這個cpu兼容的指令集就可以製作編譯器了。
[好好理解「介面」的意思,學計算機的都一定要弄清楚介面,無論是學軟體還是硬體]微架構,學術界里稱為微結構,其實是一個東西。描述cpu核心的一切邏輯設計。可以說是CPU所有邏輯的草圖,不過現在的CPU都是用HDL寫的了verilog之類吧


我自作主張地把他分為兩個層面吧,我從網路圖片里搜了張圖作解釋。
硬體抽象層(HAL)

一個簡單的一位帶進位加法器

PLL層面是用一切邏輯部件去描述HAL層面上的東西,所以這層面上的當然要比HAL要復雜得多啦。



即使兼容一個指令集,CPU也可以有多種不同的設計。加速加法器,部件重用等等。


例如:用某些簡單的控制部件去控制一個部件的寄存器寫入源,這樣就可以少一個寄存器的硬體開銷了。



我再舉一個通俗點的例子:
就像你買來一個燈泡你並不需要知道燈泡裡面的電路時如何布局的,只是簡單的看看說明書,怎樣裝上,怎樣通電就能實現發光的供能了。燈泡好比CPU,裡面的所有設計就是微架構,ISA就是說明書,人就(編譯器)的角色。

D. 處理器架構,指令集和匯編語言,三者有何關系

指令集架構簡稱指令集,ISA,CPU的執行單元和解碼logic基本上由指令集決定。軟體硬體之間的一個介面,程序員根據CPU的指令集能編寫各種各樣的編譯器,用高級語言編寫程序。
匯編語言屬於指令集,指令集包括機器指令和匯編指令。一條機器指令對應一條匯編指令,如mips中的000000機器碼指令對應匯編指令的add假加法指令。匯編語言是便於人去理解的,記著一條add指令總比000000容易吧。
處理器架構就是微架構,學術界稱為微結構。主要是CPU的流水線部分的設計。

E. 什麼是RISC架構

RISC直接意思就是精簡指令集結構CPU。

這個東西太深奧了,只能復制了,試著自己寫點也刪除了。

指令集也可以理解為軟體和硬體之間溝通的橋梁,不同的廠家可能會用不同的方法來實現相同的指令集,從而讓遵循相同指令集的軟體可以無需修改即可運行。比如我們熟知的Intel和AMD都實現了x86指令集,這基本上統治了PC的市場。

Krste教授決定帶領團隊重新開發一個完全開放的、標準的、能夠支持各種應用的新指令集,他也得到了RISC的發明者之一,Dave Patterson教授的大力支持。從2010年夏天開始,大約花了四年的時間,這個團隊設計和開發了一套完整的新的指令集,同時也包含了移植好的編譯器、工具鏈、模擬器,並經過數次流片驗證。為了能夠加快開發的效率,以便能夠快速的評估和修改設計以及提高可復用性,Chisel作為一種新的硬體構建語言也被開發了出來。簡言之,你可以用scala這種函數式編程語言去設計硬體,並最終能夠生成傳統的Verilog HDL用於ASIC/FPGA,或者生成C++用於模擬。
這個新的指令集叫做RISC-V,「V」包含兩層意思,一是這是Berkeley從RISC I開始設計的第五代指令集架構,二是它代表了變化(variation)和向量(vectors)。

F. 關於cpu指令集和編譯器的問題

這些軟體在編寫時也考慮到了這點,所以用兼容的方式是可以運行的,當然,在優化過的程序(與指令集最匹配)中肯定會獲得較好的運行效率。
個人觀點,不夠專業,僅供參考!

G. 指令集、編譯器、演算法、CPU

CPU就是用來計算的,CPU可以做不同的計算,每種計算是一個命令,你可以用命令通知CPU做這種計算,所有的命令構成了指令集。
你寫的代碼CPU是不懂的,需要翻譯成上面說的命令,這個翻譯者就是編譯器。
演算法跟他們的關系稍遠一些。如果把計算比作生產的話,那演算法就是配方和工藝,指導著從原材料到產品的生產過程。

希望能幫助到你。

H. 在不考慮編譯器優化等因素下,下面那個運算比較快

下面是在編譯器不優化的情況下的代碼反匯編後的結果
14: if (a > b)//我們看到,只有3條指令,
0040104D mov edx,dword ptr [ebp-4] //將a放入寄存器EDX
00401050 cmp edx,dword ptr [ebp-8] //比較EDX和b的大小
00401053 jle main+3Ch (0040105c) //如果a<b跳轉到0040105c
15: {
16: return 1;
00401055 mov eax,1
0040105A jmp main+4Fh (0040106f)
17: }
18: if (a - b > 0)//我們看到有4條指令
0040105C mov eax,dword ptr [ebp-4]//將a放入EAX
0040105F sub eax,dword ptr [ebp-8]//a-b的差放入EAX
00401062 test eax,eax//比較EAX是否為0
00401064 jle main+4Dh (0040106d)//條件跳轉
19: {
20: return 2;
00401066 mov eax,2
0040106B jmp main+4Fh (0040106f)
21: }
所以我認為if (a > b) {....}
效率更高

閱讀全文

與指令集體系結構編譯器相關的資料

熱點內容
浪潮伺服器如何做系統 瀏覽:111
冒險島img格式加密 瀏覽:574
我的世界手游如何復制命令 瀏覽:659
天刀自動彈琴腳本源碼 瀏覽:968
打開其它app微信怎麼收不到 瀏覽:447
安卓游戲耳機怎麼戴 瀏覽:18
不越獄怎麼去除app廣告 瀏覽:178
ipadminipdf閱讀 瀏覽:506
文件夾無限制壓縮會不會降低內存 瀏覽:412
榮耀怎樣創建文件夾 瀏覽:631
如何用本機登陸遠程伺服器地址 瀏覽:682
黃小鴨解壓文具盒 瀏覽:672
女程序員的轉行方法 瀏覽:884
東風啟辰車聯網安裝文件夾 瀏覽:526
華為怎麼設置app時間鎖 瀏覽:662
後宮app視頻怎麼下載 瀏覽:527
如何把圖片轉換從PDF格式 瀏覽:261
重寫和重載的區別java 瀏覽:236
expressvpnandroid 瀏覽:86
儲存卡被加密怎麼解除 瀏覽:171