控制器的核心功能是完成指令的自動(dòng)執(zhí)行。指令的自動(dòng)執(zhí)行依賴(lài)于各個(gè)功能部件數(shù)據(jù)通路的建立熏纯。數(shù)據(jù)通路的建立依賴(lài)于控制器生成控制信號(hào)的序列。
控制器可以看成產(chǎn)生固定時(shí)序控制信號(hào)的邏輯電路误窖。
輸入信號(hào):指令譯碼秩贰,時(shí)鐘信號(hào),反饋信號(hào)丙唧。
輸出信號(hào):功能部件的控制信號(hào)序列觅玻。
設(shè)計(jì)目標(biāo):最少元件培漏,最快速度胡本。
理論基礎(chǔ):布爾代數(shù)
組成器件:門(mén)電路,觸發(fā)器
先介紹定長(zhǎng)指令周期控制器的設(shè)計(jì)過(guò)程侧甫。
### 定長(zhǎng)指令周期控制器
首先把取值階段和執(zhí)行階段所有指令和對(duì)應(yīng)的控制信號(hào)列出來(lái),以最慢的指令(需要時(shí)鐘周期最長(zhǎng)的)作為同步咒锻。
然后構(gòu)建時(shí)序產(chǎn)生器僻爽。里面有節(jié)拍脈沖、取值階段敦捧、執(zhí)行階段碰镜、每個(gè)節(jié)拍電位等等。根據(jù)階段數(shù)量設(shè)計(jì)時(shí)序產(chǎn)生器狀態(tài)機(jī)绪颖。在時(shí)鐘的驅(qū)動(dòng)下進(jìn)入下一個(gè)狀態(tài),最后回到開(kāi)始狀態(tài)窃款,循環(huán)牍氛。狀態(tài)機(jī)的輸出是電平信息,表示當(dāng)前處于哪個(gè)階段紊扬。
接下來(lái)是一個(gè)組合邏輯電路唉擂,它結(jié)合指令、時(shí)序玩祟、反饋信息生成微操作控制信號(hào)序列。把每個(gè)信號(hào)的邏輯表達(dá)式 寫(xiě)出來(lái)藏鹊,用門(mén)電路實(shí)現(xiàn)。
總結(jié)一下固定指令周期硬布線控制器設(shè)計(jì)過(guò)程:
1. 設(shè)計(jì)三級(jí)時(shí)序產(chǎn)生器:所有指令固定機(jī)器周期數(shù),節(jié)拍數(shù)黑忱。
2. 列出所有機(jī)器指令的指令周期流程圖,明確每個(gè)節(jié)拍的控制信號(hào)菇曲。
3. 找出產(chǎn)生同一微操作控制信號(hào)的條件抚吠。
4. 寫(xiě)出微操作控制信號(hào)的布爾表達(dá)式
5. 化簡(jiǎn)各表達(dá)式
6. 利用組合邏輯電路實(shí)現(xiàn)。
固定指令周期最大的缺點(diǎn)是在執(zhí)行短命令時(shí)浪費(fèi)很多節(jié)拍喊式,比如MOV指令只需要1個(gè)節(jié)拍萧朝,但是被分配了4個(gè)節(jié)拍。接下來(lái)介紹變長(zhǎng)指令周期检柬,指令需要多長(zhǎng)時(shí)間就給你安排多少時(shí)鐘周期何址。這就是現(xiàn)代時(shí)序系統(tǒng)的設(shè)計(jì)方法。
###?變長(zhǎng)指令周期(現(xiàn)代)
將所有指令在執(zhí)行的不同階段都用一個(gè)狀態(tài)唯一標(biāo)識(shí)用爪,就有了很多很多狀態(tài)。用一個(gè)復(fù)雜的狀態(tài)機(jī)表示這些狀態(tài)和它的變化(時(shí)序邏輯電路)班眯∷肝祝控制信號(hào)僅僅與狀態(tài)寄存器的值有關(guān)。
列出有限狀態(tài)機(jī)的真值表磁餐,包括現(xiàn)態(tài)、次態(tài)指令等等诊霹,然后按照數(shù)字邏輯的方法設(shè)計(jì)時(shí)序邏輯電路。
總結(jié)一下:
1. 列出所有機(jī)器指令的指令周期流程圖伴箩,明確每個(gè)節(jié)拍的控制信號(hào)鄙漏。
2. 繪制指令執(zhí)行狀態(tài)轉(zhuǎn)換圖。
3. 根據(jù)狀態(tài)轉(zhuǎn)換圖構(gòu)建狀態(tài)機(jī)真值表巩步,實(shí)現(xiàn)有限狀態(tài)機(jī)組合邏輯桦踊。