【廣告】
CPU,是電子計(jì)算機(jī)的主要設(shè)備之一,電腦中的核心配件。其功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。CPU是計(jì)算機(jī)中負(fù)責(zé)讀取指令,對(duì)指令譯碼并執(zhí)行指令的核心部件。每個(gè)CPU都有一套自己可以執(zhí)行的專(zhuān)門(mén)的指令集(注意,這部分指令是CPU提供的,CPU-Z軟件可查看)。正是因?yàn)椴煌珻PU架構(gòu)的指令集不同,使得x86處理器不能執(zhí)行ARM程序,ARM程序也不能執(zhí)行x86程序。(Intel和AMD都使用x86指令集,手機(jī)絕大多數(shù)使用ARM指令集)。
CPU控制技術(shù)的主要形式,時(shí)間控制。將時(shí)間定時(shí)應(yīng)用于各種操作中,就是所謂的時(shí)間控制。在執(zhí)行某一指令時(shí),應(yīng)當(dāng)在規(guī)定的時(shí)間內(nèi)完成,CPU的指令是從高速緩沖存儲(chǔ)器或存儲(chǔ)器中取出,之后再進(jìn)行指令譯碼操作,主要是在指令寄存器中實(shí)施,在這個(gè)過(guò)程中,需要注意嚴(yán)格控制程序時(shí)間。
更優(yōu)化的CPU架構(gòu)是superscalar架構(gòu)(超標(biāo)量架構(gòu))。這種架構(gòu)將取指、解了碼、執(zhí)行單元分開(kāi),有大量的執(zhí)行單元,然后每個(gè)取指 解了碼的部分都以并行的方式運(yùn)行。比如有2個(gè)取指 解了碼的并行工作線(xiàn)路,每個(gè)工作線(xiàn)路都將解了碼后的指令放入一個(gè)緩存緩沖區(qū)等待執(zhí)行單元去取出執(zhí)行。
用戶(hù)態(tài)的CPU,只允許執(zhí)行指令集中的部分指令。一般而言,IO相關(guān)和把內(nèi)存保護(hù)相關(guān)的所有執(zhí)行在用戶(hù)態(tài)下都是被禁止的,此外其它一些特權(quán)指令也是被禁止的,比如用戶(hù)態(tài)下不能將PSW的模式設(shè)置控制位設(shè)置成內(nèi)核態(tài)。
控制器之所以知道數(shù)據(jù)放哪里、做什么運(yùn)算(比如是做加法還是邏輯運(yùn)算?)都是由指令告訴控制器的,每個(gè)指令對(duì)應(yīng)一個(gè)基本操作,比如加法運(yùn)算對(duì)應(yīng)一個(gè)指令。例如,將兩個(gè)MDR寄存器(保存了來(lái)自?xún)?nèi)存的兩個(gè)數(shù)據(jù))中的值拷貝到ALU中,然后根據(jù)的操作指令執(zhí)行加法運(yùn)算,將運(yùn)算結(jié)果拷貝會(huì)一個(gè)MDR寄存器中,后寫(xiě)入到內(nèi)存。
關(guān)于CPU的基本組成
1、CPU是用來(lái)運(yùn)算的(加法運(yùn)算 、乘法運(yùn)算*、邏輯運(yùn)算and not or等),例如c=a b。
2、運(yùn)算操作涉及到數(shù)據(jù)輸入(input)、處理、數(shù)據(jù)輸出(output),a和b是輸入數(shù)據(jù),加法運(yùn)算是處理,c是輸出數(shù)據(jù)。
3、CPU需要使用一個(gè)叫做存儲(chǔ)器(也就是各種寄存器)的東西保存輸入和輸出數(shù)據(jù)。
4、CPU還要將一些常用的基本運(yùn)算工具(如加法器)放進(jìn)CPU,這部分負(fù)責(zé)運(yùn)算,稱(chēng)為算術(shù)邏輯單元(ALU)。
5、CPU中還有一個(gè)控制器(CU),負(fù)責(zé)將存儲(chǔ)器中的數(shù)據(jù)送到ALU中去做運(yùn)算,并將運(yùn)算后的結(jié)果存回到存儲(chǔ)器中??刂破鬟€包含了一些控制信號(hào)。