cpu中的控制器的主要功能
運算器只能完成運算,而控制器用于控制著整個CPU的工作。

1、 指令控制器
指令控制器是控制器中相當(dāng)重要的部分,它要完成取指令、分析指令等操作,然后交給執(zhí)行單元(ALU或FPU)來執(zhí)行,同時還要形成 下一條指令的地址。
為了說明這個問題,這里轉(zhuǎn)載一個指令執(zhí)行示意圖。

從上圖可以看到,由CS:IP構(gòu)成的寄存器總是給出當(dāng)前要執(zhí)行的指令地址,并在當(dāng)前指令尚未執(zhí)行完成的時候,給出下一條將要執(zhí)行的指令地址。CS:IP就是圖1中的PC指針。這是控制器的最主要作用。
2、 時序控制器
時序控制器的作用是為每條指令按時間順序提供控制信號。時序 控制器包括時鐘發(fā)生器和倍頻定義單元,其中時鐘發(fā)生器由石英晶 體振蕩器發(fā)出非常穩(wěn)定的脈沖信號,就是CPU的主頻;而倍頻定義單元則定義了 CPU主頻是存儲器頻率(總線頻率)的幾倍。

假設(shè)現(xiàn)在要執(zhí)行一條指令:MOV A, data1,這條指令的意思很簡單,就是通過CPU找到內(nèi)存中的某個數(shù)據(jù)data1,然后把它放到寄存器A里面。這條指令執(zhí)行完應(yīng)該分為以下幾步:
第一步:找到這個數(shù)據(jù)在內(nèi)存中的位置(地址號)。
第二步:保證這個數(shù)據(jù)可以被CPU讀出(未被鎖定)。
第三步:把這個數(shù)據(jù)讀出來,并存入寄存器A中。
上面三步的時間順序不能亂,否則指令執(zhí)行肯定會出錯。從圖3可以看出,地址信號首先有效,然后是讀信號有效,最后才是被讀的數(shù)據(jù)出現(xiàn)在數(shù)據(jù)線上面。
這和我們實際生活中的這個例子非常類似,假設(shè)服務(wù)員要到賓館的某個房間登記里面客人的身份信息,同樣分為三步:
第一步:找到這個客人的位置(房間號)。
第二步:客人打開房門。
第三步:登記客人信息。
3、 總線控制器
總線控制器主要用于控制CPU的內(nèi)外部總線,包括地址總線、數(shù) 據(jù)總線、控制總線等等。


計算機內(nèi)部的主要工作過程是信息傳送和加工的過程,為了便于對總線進(jìn)行管理,組成了總線結(jié)構(gòu),使不同來源的信息分時在總線上傳送。
從圖4圖5可以看到,總線的使用同樣受到時序控制部件的控制。總線控制同樣可以從圖3得到很好的理解:當(dāng)把數(shù)據(jù)從存儲單元讀出以前,地址信號必須保持有效。

從上圖可以看到,一條指令何時占用總線,要由專門的時鐘脈沖產(chǎn)生的時鐘信號決定。
計算機還有一個DMA結(jié)構(gòu),當(dāng)進(jìn)行DMA操作時,cpu可以讓出自己對總線的控制權(quán)。
也就是說,總線上什么時候有何種信號,什么時候沒有,信號持續(xù)時間多長,甚至cpu的總線控制權(quán)都可以出讓,這些都屬于總線控制的內(nèi)容。
中斷控制器用于控制各種各樣的中斷請求,并根據(jù)優(yōu)先級的高低 對中斷請求進(jìn)行排隊,逐個交給CPU處理。

上圖中有多個中斷源,這些中斷有可能同時產(chǎn)生中斷請求,為了對這種情況進(jìn)行管理,每個中斷源都被賦予了一個優(yōu)先級,以保證某個時刻只有一個中斷可以得到響應(yīng)。中斷控制器有的在cpu芯片外部,比如8259A中斷控制器,也有集成在cpu芯片內(nèi)部的,例如ARM 的
Cortex系列。
按照上面的敘述,計算機控制器的功能主要包括:
指令控制、時序控制、總線控制和中斷控制等。