CPU的主要功能是負(fù)責(zé)指令的自動(dòng)執(zhí)行俐东。CPU運(yùn)行時(shí)跌穗,進(jìn)入取指令、執(zhí)行指令的循環(huán)虏辫。不同指令的功能不同蚌吸、數(shù)據(jù)通路不同、執(zhí)行時(shí)間不同砌庄,如何安排時(shí)序羹唠?例如寄存器指令和內(nèi)存類指令的時(shí)間是不相同的奕枢,加法指令和乘法指令的時(shí)間也是不同的。
一般來說佩微,指令的執(zhí)行流程是這樣的:取指令(PC++)缝彬,指令譯碼,操作數(shù)地址計(jì)算哺眯,取操作數(shù)谷浅,數(shù)據(jù)操作指令執(zhí)行,操作數(shù)地址計(jì)算奶卓,存操作數(shù)一疯。有的指令長(zhǎng),有的指令短夺姑。
指令執(zhí)行過程中和時(shí)間有關(guān)的基本概念:+ 時(shí)鐘周期(完成一次微操作)墩邀,
+ 機(jī)器周期=CPU周期(從內(nèi)存取出一條指令的最短時(shí)間)課完成復(fù)雜操作。
+ 指令周期:從內(nèi)存取指令并執(zhí)行指令的時(shí)間
對(duì)于不同的指令盏浙,如何進(jìn)行時(shí)間上的控制眉睹?有定長(zhǎng)指令周期和變長(zhǎng)指令周期兩種。
定長(zhǎng)指令周期:每條指令占用固定的機(jī)器周期只盹。例如把1個(gè)指令周期分為4個(gè)機(jī)器周期(取指令辣往、譯碼、執(zhí)行殖卑、寫回)站削,再把每個(gè)機(jī)器周期分為4個(gè)節(jié)拍電位。1個(gè)節(jié)拍電位可以進(jìn)行1次微操作孵稽。電平信號(hào)M1 M2 M3 M4 表示當(dāng)前在那一個(gè)機(jī)器周期许起,電平信號(hào) T1 T2 T3 T4 表示當(dāng)前在那一個(gè)節(jié)拍。這樣可以構(gòu)建指令操作菩鲜、微操作园细、時(shí)序之間的邏輯表達(dá)式,從而精確控制操作信號(hào)什么時(shí)候產(chǎn)生接校,持續(xù)多長(zhǎng)時(shí)間猛频。例如: MemRead=Mif (T2+T3) + Load * Mex * (T2+T3)。
現(xiàn)代時(shí)序系統(tǒng)使用變長(zhǎng)指令周期蛛勉,每條指令的機(jī)器周期按需分配鹿寻,可以充分提高系統(tǒng)運(yùn)行效率。它的原理是對(duì)每一條指令的每一個(gè)過程分配一個(gè)狀態(tài)號(hào)碼诽凌,每一個(gè)狀態(tài)對(duì)應(yīng)特定的微操作信號(hào)毡熏。其中有一個(gè)復(fù)雜的狀態(tài)機(jī)(時(shí)序邏輯電路)記錄當(dāng)前狀態(tài),在時(shí)鐘和指令的驅(qū)動(dòng)下決定下一個(gè)狀態(tài)侣诵。硬布線控制器根據(jù)當(dāng)前的狀態(tài)給出微操作控制信號(hào)序列痢法。硬布線控制器的組合邏輯變簡(jiǎn)單了狱窘,但是狀態(tài)機(jī)變復(fù)雜了。
然后把每一條指令的節(jié)拍财搁、數(shù)據(jù)通路蘸炸、控制信號(hào)列出來。依次為依據(jù)妇拯,設(shè)計(jì)CPU控制器幻馁。