【廣告】
程序的運行過程,實際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。當(dāng)程序要執(zhí)行的部分被裝載到內(nèi)存后,CPU要從內(nèi)存中取出指令,然后指令解了碼(以便知道類型和操作數(shù),簡單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個指令、解了碼、執(zhí)行,以此類推直到程序退出。
因為CPU有大量的緩存和復(fù)雜的邏輯控制單元,因此它非常擅長邏輯控制、串行的運算。相比較而言,GPU因為有大量的算術(shù)運算單元,因此可以同時執(zhí)行大量的計算工作,它所擅長的是大規(guī)模的并發(fā)計算, 計算量大但是沒有什么技術(shù)含量,而且要重復(fù)很多次。這樣一說,我們利用GPU來提高程序運算速度的方法就顯而易見了。使用CPU來做復(fù)雜的邏輯控制,用GPU來做簡單但是量大的算術(shù)運算,就能夠大大地提高程序的運行速度。
CPU控制技術(shù)的主要形式,插入控制。CPU 對于操作控制信號的產(chǎn)生,主要是通過指令的功能來實現(xiàn)的,通過將指令發(fā)給相應(yīng)部件,達到控制這些部件的目的。實現(xiàn)一條指令功能,主要是通過計算機中的部件執(zhí)行一序列的操作來完成。較多的小控制元件是構(gòu)建集中處理模式的關(guān)鍵,目的是為了更好的完成CPU數(shù)據(jù)處理操作。
除了嵌入式系統(tǒng),多數(shù)CPU都有兩種工作模式:內(nèi)核態(tài)和用戶態(tài)。這兩種工作模式是由PSW寄存器上的一個二進制位來控制的。內(nèi)核態(tài)的CPU,可以執(zhí)行指令集中的所有指令,并使用硬件的所有功能。
用戶態(tài)的CPU,只允許執(zhí)行指令集中的部分指令。一般而言,IO相關(guān)和把內(nèi)存保護相關(guān)的所有執(zhí)行在用戶態(tài)下都是被禁止的,此外其它一些特權(quán)指令也是被禁止的,比如用戶態(tài)下不能將PSW的模式設(shè)置控制位設(shè)置成內(nèi)核態(tài)。
控制器之所以知道數(shù)據(jù)放哪里、做什么運算(比如是做加法還是邏輯運算?)都是由指令告訴控制器的,每個指令對應(yīng)一個基本操作,比如加法運算對應(yīng)一個指令。例如,將兩個MDR寄存器(保存了來自內(nèi)存的兩個數(shù)據(jù))中的值拷貝到ALU中,然后根據(jù)的操作指令執(zhí)行加法運算,將運算結(jié)果拷貝會一個MDR寄存器中,后寫入到內(nèi)存。