一、指令周期、總線周期和時(shí)鐘周期
每條指令的執(zhí)行由取指令、譯碼和執(zhí)行等操作組成。執(zhí)行一條指令所需要的時(shí)間稱為指令周期(InstructionCycle),不同指令的指令周期是不等長的。
8086CPU與外部交換信息總是通過總線進(jìn)行的。CPU的每一個(gè)這種信息輸入、輸出過程需要的時(shí)間稱為總線周期(Bus Cycle),每當(dāng)CPU要從存儲(chǔ)器或輸人輸出端口存取一個(gè)字節(jié)或字就需要一個(gè)總線周期,一個(gè)指令周期由一個(gè)或若干個(gè)總線周期組成。
而執(zhí)行指令的一系列操作都是在鐘脈沖CLK的統(tǒng)一控制下一步一步進(jìn)行的。時(shí)鐘脈沖的重復(fù)周期稱為時(shí)鐘周期(Clock Cycle),時(shí)鐘周期是CPU的時(shí)間基準(zhǔn), 由計(jì)算機(jī)的主頻決定。例如,8086的主頻為5MHz,則1個(gè)時(shí)鐘周期為200ns。
8086CPU的總線周期至少由4個(gè)時(shí)鐘周期組成,分別以T1、T2、T3和T4表示,如圖2-14所示,T 又稱為狀態(tài)(state)。
一個(gè)總線周期完成一次數(shù)據(jù)傳輸,至少要有傳送地址和傳送數(shù)據(jù)兩個(gè)過程。在第一個(gè)時(shí)鐘周期T1期間由CPU輸出地址,在隨后的三個(gè)T周期(T2、T3和T4)用以傳送數(shù)據(jù)。換言之,數(shù)據(jù)傳送必須在T2~T4這三個(gè)周期內(nèi)完成,否則在T4周期后,總線將作另一次操作,開始下一個(gè)總線周期。
在實(shí)際應(yīng)用中,當(dāng)一些慢速設(shè)備在三個(gè)T周期內(nèi)無法完成數(shù)據(jù)讀寫時(shí),那么在T4后,總線就不能為它們所用,會(huì)造成系統(tǒng)讀寫出錯(cuò)。為此,在總線周期中允許插入等待周期Tw一當(dāng)被選中進(jìn)行數(shù)據(jù)讀寫的存儲(chǔ)器或外設(shè)無法在三個(gè)T周期內(nèi)完成數(shù)據(jù)讀寫時(shí),就由其發(fā)出一個(gè)請求延長總線周期的信號到8086CPU的READY引腳,8086CPU收到該請求后,就在T3與T4之間插入一個(gè)等待周期Tww,加入Tww的個(gè)數(shù)與外部請求信號的持續(xù)時(shí)間長短有關(guān),延長的時(shí)間Tww也以時(shí)鐘周期T為單位,在Tww期間,總線上的狀態(tài)一直保持不變。
如果在一個(gè)總線周期后不立即執(zhí)行下一個(gè)總線周期,即總線上無數(shù)據(jù)傳輸操作,系統(tǒng)總線處于空閑狀態(tài),此時(shí)執(zhí)行空閑周期Ti ,Ti也以時(shí)鐘周期T為單位,兩個(gè)總線周期之間插入幾個(gè)Ti與8086CPU執(zhí)行的指令有關(guān),例如在執(zhí)行一條乘法指令時(shí),需用124個(gè)時(shí)鐘周期,而其中可能使用總線的時(shí)間極少,而且預(yù)取隊(duì)列的充填也不用太多的時(shí)間,加入的Ti可能達(dá)到l00多個(gè)。在空閑周期期間,20條雙重總線的高4位A19/S6~A16/S3上,8086CPU仍驅(qū)動(dòng)前一個(gè)總線周期的狀態(tài)信息而且,如果前一個(gè)總線周期為寫周期,那么,CPU會(huì)在總線的低16價(jià)AD15~AD0上繼續(xù)驅(qū)動(dòng)數(shù)據(jù)信息D15~D0;如果前一個(gè)總線周期為讀周期,則在空閑周期中,總線的低16位D15~D0處于高阻狀態(tài)。
二、幾種基本時(shí)序
8086CPU的操作是在指令譯碼器輸出的電位和外面輸入的時(shí)鐘信號聯(lián)合作用下產(chǎn)生的各個(gè)命令控制下進(jìn)行的,可分為內(nèi)操作與外操作兩種,內(nèi)操作是控制ALU(算術(shù)邏輯單元)進(jìn)行算術(shù)運(yùn)算,控制寄存器組進(jìn)行寄存器選擇以及送往數(shù)據(jù)線還是地址線,進(jìn)行讀操作還是寫操作等,所有這些操作都在CPU內(nèi)部進(jìn)行,用戶可以不必關(guān)心。CPU的外部操作是系統(tǒng)對CPU的控制或是CPU對系統(tǒng)的控制,用戶必須了解這些控制信號以便正確使用。
8086CPU的外部操作主要有如下幾種:①存儲(chǔ)器讀或?qū)?;②I/O端口讀或?qū)?;③中斷響?yīng);④總線保持(最小方式);⑤總線請求/允許(最大方式);⑥復(fù)位和啟動(dòng);⑦暫停。
(一)總線讀操作
當(dāng)8086CPU進(jìn)行存儲(chǔ)器或I/O端口讀操作時(shí),總線進(jìn)入讀周期,8086的讀周期時(shí)序如圖2-15所示。
圖2-158086讀周期時(shí)序
基本的讀周期由4個(gè)T周期組成——T1、T2、T3和T4。當(dāng)所選中的存儲(chǔ)器和外設(shè)的存取速度較慢時(shí),則在T3和T4之間將插入1個(gè)或幾個(gè)等待周期Tw。
在8086讀周期內(nèi),有關(guān)總線信號的變化如下:
(1) :在整個(gè)讀周期保持有效,當(dāng)進(jìn)行存儲(chǔ)器讀操作時(shí), 為高電平;當(dāng)進(jìn)行I/O端口讀操作時(shí), 為低電平。
(2)A19/S6~A16/S3 :在T1期間,輸出CPU要讀取的存儲(chǔ)單元或I/O端口的地址高4位。T2~T4期間輸出狀態(tài)信息S6~S3。
(3) :在T1期間,輸出 有效信號( 為低電平),表示高8位數(shù)據(jù)總線上的信息可以使用, 信號通常作為奇地址存儲(chǔ)體的體選信號(偶地址存儲(chǔ)體的體選信號是最低地址位A0)。T2~T4期間輸出高電平。
(4)AD15~AD0 :在T1期間,輸出CPU要讀取的存儲(chǔ)單元或I/O端口的地址A15~A0。T2期間為:CPU從AD15~AD0上接收數(shù)據(jù)。
(5)ALE:在T1期間地址鎖存有效信號為一正脈沖系統(tǒng)中的地址鎖存器正是利用該正脈沖的下降沿來鎖存A19/S6~A15/S3,AD15~AD0中的20位地址信息以及 。
(6) :在T2期間輸出低電平送到被選中的存儲(chǔ)器或I/O接口。注意,只有被地址信號選中的存儲(chǔ)單元或I/O端口,才會(huì)被 信號從中讀出數(shù)據(jù)(數(shù)據(jù)送上數(shù)據(jù)總線AD15~AD0)。
(7) :在整個(gè)總線周期內(nèi)保持低電平,表示本總線周期為讀周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中 用來控制數(shù)據(jù)傳輸方向。
(8) :在T2~T3期間輸出有效低電平,表示數(shù)據(jù)有效,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來實(shí)現(xiàn)數(shù)據(jù)的選通。
(二)總線寫操作
當(dāng)8086CPU進(jìn)行存儲(chǔ)器或I/O端口寫操作時(shí),總線進(jìn)入寫周期,8086的寫周期時(shí)序如圖2-16所示。
總線寫操作的時(shí)序與讀操作時(shí)序相似,其不同處在于:
(1)AD15~AD0:在T2~T4期間送上欲輸出的數(shù)據(jù),而無高阻態(tài)。
(2) :從T2~T4 , 引腳輸出有效低電平,該信號送到被選中的存儲(chǔ)器和I/O接口。注意,只有被地址信號選中的存儲(chǔ)單元或I/O端口才會(huì)被WR信號寫入數(shù)據(jù)。
(3) :在整個(gè)總線周期內(nèi)保持高電平,表示本總線周期為寫周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來控制數(shù)據(jù)傳輸方向。
(三)中斷響應(yīng)操作
當(dāng)8086CPU的INTR引腳上有一有效電平(高電平),且標(biāo)志寄存器中IF=1,則8086CPU在執(zhí)行完當(dāng)前的指令后,響應(yīng)中斷,在響應(yīng)中斷時(shí)CPU執(zhí)行兩個(gè)中斷響應(yīng)周期,如圖2-17所示。
每個(gè)中斷響應(yīng)周期由4個(gè)T周期組成。在第一個(gè)中斷響應(yīng)周期中,從T2~T4周期, 為有效(低電平),作為對中斷請求設(shè)備的響應(yīng);在第二個(gè)中斷響應(yīng)周期中,同樣從T2~T4周期, 為有效(低電平),該輸出信號通知中斷請求設(shè)備(通常是通過中斷控制器)把中斷類型號(決定中斷服務(wù)程序的入口地址)送到數(shù)據(jù)總線的低8位AD7~AD0(在T2~T4期間)。在二個(gè)中斷響應(yīng)周期之間,有3個(gè)空閑周期(Ti)。
(四)總線保持與響應(yīng)
當(dāng)系統(tǒng)中有其他的總線主設(shè)備請求總線時(shí),向8086CPU發(fā)出請求信號HOLD,CPU接收到HOLD有效的信號后,在當(dāng)前總線周期的T4,或下一個(gè)總線周期的T1的后沿,輸出保持響應(yīng)信號HLDA,緊接著從下一個(gè)時(shí)鐘開始,8086CPU就讓出總線控制權(quán)。當(dāng)外設(shè)的DMA傳送結(jié)束時(shí),使HOLD信號變低,則在下一個(gè)時(shí)鐘的下降沿使HLDA信號變?yōu)闊o效(低電平)。8086的總線保持響應(yīng)時(shí)序見圖2-18所示。
(五)系統(tǒng)復(fù)位
8086CPU的RESET引腳,可以用來啟動(dòng)或再啟動(dòng)系統(tǒng),當(dāng)8086在RESET引腳上檢測到一個(gè)脈沖的上跳沿時(shí),它停止正在進(jìn)行的所有操作,處于初始化狀態(tài),直到RESET信號變低。
圖中RESET輸入是引腳信號,CPU內(nèi)部是用時(shí)鐘脈沖CLK來同步外部的復(fù)位信號的,所以內(nèi)部RESET是在外部引腳RESET信號有效后的時(shí)鐘上升沿有效的。復(fù)位時(shí),8086CPU將使總線狀態(tài)變?yōu)椋旱刂肪€浮空(高阻態(tài))直到8086CPU脫離復(fù)位狀態(tài),開始從FFFF0H單元取指令;ALE、HLDA信號變?yōu)闊o效(低電平);其他控制信號線,先變高一段時(shí)間(相應(yīng)于時(shí)鐘脈沖低電平的寬度)然后浮空。
另外,復(fù)位時(shí)內(nèi)部寄存器狀態(tài)為:標(biāo)志寄存器、指令指針(IP)、DS、SS、ES清零;CS置FFFFH;指令隊(duì)列變空。
以上討論的都是最小方式下的時(shí)序。
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準(zhǔn)。
(二)本網(wǎng)站在文章內(nèi)容來源出處標(biāo)注為其他平臺(tái)的稿件均為轉(zhuǎn)載稿,免費(fèi)轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會(huì)及時(shí)進(jìn)行處理解決。
相關(guān)推薦
2022年浙江自考《當(dāng)代中國政治制度》復(fù)習(xí)筆記匯總
09-152023年浙江自考西方行政學(xué)說史復(fù)習(xí)資料:西方行政學(xué)的產(chǎn)生
03-022023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:有限效果論
08-302022年浙江自考中國古代文學(xué)史(一)第三編第九章復(fù)習(xí)資料
10-31自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—論幼稚師范教育
06-052023年10月浙江自考《管理學(xué)原理》名詞解釋(2)
09-192023年10月浙江自考《普通邏輯學(xué)》復(fù)習(xí)資料(3)
08-212024年4月浙江自考醫(yī)學(xué)倫理學(xué)復(fù)習(xí)資料:醫(yī)學(xué)倫理學(xué)的四大原則之公正原則
11-27自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—雅典的學(xué)前教育
06-072023年10月浙江自考寫作(一)復(fù)習(xí)資料(17)
08-07與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。
與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。