CPU中斷響應時間
發布時間:2014/6/8 20:56:34 訪問次數:3661
中斷響應時間。CPU不是在任何情況下都對中斷請求予以響應,而且不同的情況下對中斷響應的時間也是不同的。現以外部中斷為例,說明中斷響應的最短時間。
在每個機器周期的ssP2期間,INTO和INT1引腳的電平被鎖存到TCON的IEO和IE1標志位,CPU在下一個機器周期才會查詢這些值。這時,如果滿足中斷響應條件,SAA6713AH/V1則下一條要執行的指令將是一條長調用指令。長調用指令本身要花費兩個機器周期。這樣,從外部中斷請求有效到開始執行中斷服務程序的第一條指令,中間要隔3個機器周期,這是最短的響應時間。
如果遇到中斷受阻的情況,則中斷響應時間會更長一些。例如,一個同級或高優先級的中斷正在進行,則附加的等待時間將取決于正在進行的中斷服務程序。如果正在執行的一條指令還沒有進行到最后一個機器周期,則附加的等待咐間為1—3個機器周期。因為一條指令的最長執行時間為4個機器周期(MUL和DIV指令)。如果正在執行的是RETI指令或者是讀/寫IE或IP的指令,則附加的時間在5個機器周期之內(為完成正在執行的指令,還需要1個機器周期,加上為完成下一條指令所需的最長時間為4個機器周期,故最長為5個機器周期)。
若系統中只有一個中斷源,則響應時間在3~8個機器周期之間。
中斷響應任務。中斷系統硬件自動完成下列任務,以實現響應:
①將相應觸發器置1(以阻斷后來的同級或低級的中斷請求)。
②執行一條硬件LCALL指令,即把程序計數器PC的內容壓入堆棧保護,再將相應的中斷服務的入口地址送入。
80C51中斷源的中斷服務入口地址是由硬件設計人員規定好的,如表6-6所示。不難發現,兩個入口地址之間的距離為8,也就是說一個中斷服務程序的占用空間不能超過8個存儲單元。這在實際應用中肯定是不夠的,所以通常在中斷入口地址單元處放一條無條件轉移指令(如AJMP指令),使中斷服務程序可靈活地安排在64KB程序存儲器的任何空間。
中斷響應時間。CPU不是在任何情況下都對中斷請求予以響應,而且不同的情況下對中斷響應的時間也是不同的。現以外部中斷為例,說明中斷響應的最短時間。
在每個機器周期的ssP2期間,INTO和INT1引腳的電平被鎖存到TCON的IEO和IE1標志位,CPU在下一個機器周期才會查詢這些值。這時,如果滿足中斷響應條件,SAA6713AH/V1則下一條要執行的指令將是一條長調用指令。長調用指令本身要花費兩個機器周期。這樣,從外部中斷請求有效到開始執行中斷服務程序的第一條指令,中間要隔3個機器周期,這是最短的響應時間。
如果遇到中斷受阻的情況,則中斷響應時間會更長一些。例如,一個同級或高優先級的中斷正在進行,則附加的等待時間將取決于正在進行的中斷服務程序。如果正在執行的一條指令還沒有進行到最后一個機器周期,則附加的等待咐間為1—3個機器周期。因為一條指令的最長執行時間為4個機器周期(MUL和DIV指令)。如果正在執行的是RETI指令或者是讀/寫IE或IP的指令,則附加的時間在5個機器周期之內(為完成正在執行的指令,還需要1個機器周期,加上為完成下一條指令所需的最長時間為4個機器周期,故最長為5個機器周期)。
若系統中只有一個中斷源,則響應時間在3~8個機器周期之間。
中斷響應任務。中斷系統硬件自動完成下列任務,以實現響應:
①將相應觸發器置1(以阻斷后來的同級或低級的中斷請求)。
②執行一條硬件LCALL指令,即把程序計數器PC的內容壓入堆棧保護,再將相應的中斷服務的入口地址送入。
80C51中斷源的中斷服務入口地址是由硬件設計人員規定好的,如表6-6所示。不難發現,兩個入口地址之間的距離為8,也就是說一個中斷服務程序的占用空間不能超過8個存儲單元。這在實際應用中肯定是不夠的,所以通常在中斷入口地址單元處放一條無條件轉移指令(如AJMP指令),使中斷服務程序可靈活地安排在64KB程序存儲器的任何空間。
上一篇:中斷服務程序的入口地址