色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

CPU是如何識別代碼的?他的工作原理是怎樣的?

榮姿康2年前19瀏覽0評論

從本質上來說,CPU根本不認識代碼!它的工作是機械化執行這些人類給出的指令,然后完成指令動作。

大家好!我是叮當大數據,很高興回答您的這個問題,今天拋磚引玉,和您探討這個問題。


一、CPU的組成:

每片CPU中都會有最基礎的兩個部分,控制單元CU和算術和邏輯單元ALU。

1、控制單元CU

CU指控制單元(ControlUnit),控制單元是CPU第一個必備的組件,因為它是整個CPU的指揮控制中心。

它根據我們預先編好的機器語言,按照順序從存儲器中取出各條指令,放在指令寄存器IR中,再通過指令譯碼確定應該進行什么操作,然后通過操作控制器OC,按確定的時序,向相應的部件發出控制信號。

它分為硬連線控制單元和微型可編程控制單元兩種類型。區別是,硬連線控制單元速度更快,而微型可編程控制單元則是可以自己調節。

2、算術和邏輯單元ALU

ALU非常容易理解,算術邏輯單元(arithmeticandlogicunit),簡稱ALU.

它的任務是完成所有算術和邏輯計算。它是由執行邏輯電路或邏輯門組成。

3、寄存器和內存

大家知道,CPU的工作就是執行提供的指令,而處理這些指令時需要大量的數據。

這些數據包括了中間數據,或是輸入數據,或是輸出數據。

那么這些數據放在哪里了?

于是有了寄存器。你理解成CPU內小容量的存儲數據的地方就可以了,寄存器可以存儲指令,輸出數據,存儲地址或任何類型的數據。

而寄存器的基礎就是觸發器(鎖存器),它是由電路構成的邏輯門的組合。

一個基礎鎖存器有一個邏輯門單元和3根線構成,我們可以啟通過寫入線來更改存儲的數據。而禁用寫入線時,輸出始終保持不變。

當然,集成在CPU內的寄存器的速度很快,但很昂貴。

所以,人們想出了一個好辦法,于是速度很慢的RAM出現了,人們叫它隨機存取存儲器,通俗叫法內存。沒錯就是你電腦插的內存條。

其實RAM就是一片集成了大量寄存器的集合,它可以存儲更多數據。而當RAM沒有電源供給時,數據會丟失。


4、高速公路是總線

以上的CPU,寄存器,存儲器和輸入輸出設備中,所有數據都必須通過總線進行傳輸。下圖很容易看到電腦的三種總線的對應關系,篇幅原因,不多說,理解就行了。

二、CPU機器語言

CPU執行的我們叫它機器語言程序,就是用硬件實現的機器指令。

它是由一條一條指令組成的。機器語言使用絕對地址和絕對操作碼,每一條指令都對應一個CPU的一個基本操作,而這些操作看透了實際上非常簡單。

一條機器指令絕對操作碼必須包括操作碼和地址碼。

操作碼就是該指令所要完成的操作(加、減、乘、除、數據傳送等),其長度取決于指令系統中的指令條數。

地址碼用來指上面加、減、乘、除的操作對象是誰?或者直接給出操作數,或者指出操作數的存儲器地址或寄存器地址,它是確定的一個地址,所以叫絕對地址。

簡單理解一條機器語言指令,請CPU同學將寄存器中第三排第二行數據加上第三排第三行數據相加,結果輸出告訴我答案后,你就可以休息了。

基本內容:

  • 算術,例如加法、減法
  • 邏輯指令,例如和,或,而不是
  • 數據指令,例如移動、輸入、輸出、加載、存儲
  • 控制流指令,例如goto,如果...goto,則調用并返回
  • 通知程序已經結束,CPU暫停

三、匯編語言

看上去簡單,但要實現用機器語言編寫的程序的兼容,對計算機體系結構有非常苛刻的要求,且不說每家計算機其指令的數量與功能、指令格式、尋址方式、數據格式是差別的。

光是開發者的計算機的體系結構和普通用戶程序接口必須完全相同,就很難達成。

并且機器語言靈活性較差,可閱讀性也很差,編寫程序員要求太高了,于是直接拿機器語言來編寫成為不可能完成的任務。

怎么辦?

于是匯編語言出現了,而與機器語言對應的語言我們叫統稱匯編語言,它可以完美的改寫成機器語言,這樣就達到直接指揮CPU工作。

匯編語言使用了助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。

由于匯編更接近機器語言,能夠直接對硬件進行操作,生成的程序與其他的語言相比具有更高的運行速度,占用更小的內存。

因此在一些對于時效性要求很高的程序、許多大型程序的核心模塊以及工業控制方面大量應用。


以上從CPU的組成、工作流程、機器語言、匯編語言簡單闡述了CPU為什么能夠執行指令。

希望對您有所啟發!