處理器是不是正在執行指令的最后一個機器周期
發布時間:2016/7/15 21:15:20 訪問次數:853
①當前機器周期內,處理器是不是正在執行指令的最后一個機器周期,如果不是,則還需E28F016SA-100 5.0V要等到當前指令執行完成。例如,正在執行除法指令的第―個機器周期,則需要等待的機器周期數是3個機器周期(乘除法指令是4周期指令)。
②若當前正在執行ⅡrI指令或其他讀/寫與中斷有關的寄存器IE、IP的指令,則需要在執行完該指令后,再執行一條指令,然后再轉入中斷服務子程序。當上述情況沒有遇到或者己經完成等待后,會由硬件自動執行一個長跳轉LCALL指令(2周期指令),跳轉到相應的中斷服務子程序入口地址,開始執行由用戶編寫的中斷服務程序。綜合上面的討論,我們可以估計出,從中斷申請到執行第一條中斷服務程序的最短時間是3個時間周期(優先權掃描1個周期,LCALL指令2個周期)。最長的響應時間為8個機器周期,除了必需的3個機器周期外,考慮最壞的情況,比如執行ⅢⅡI的第一個機器周期,那么還必須1個機器周期去等待RETI指令完成,同時,執行完ⅢⅡI指令后還必須再執行一個指令,這個指令最長是一個4機器周期指令,那么總共還需要額外等待5個機器周期,加上必需的3個機器周期,可以估算出最長的等待時間為8個機器周期。所以中斷響應時間為3~8個機器周期,可以參看圖7.6。當然還有一種情況是,目前正在執行同級或者更高級別的中斷服務子程序,則需要等到中斷執行完畢,等待的時間將更長。不是最后一個機器周期,執行RETI、
①當前機器周期內,處理器是不是正在執行指令的最后一個機器周期,如果不是,則還需E28F016SA-100 5.0V要等到當前指令執行完成。例如,正在執行除法指令的第―個機器周期,則需要等待的機器周期數是3個機器周期(乘除法指令是4周期指令)。
②若當前正在執行ⅡrI指令或其他讀/寫與中斷有關的寄存器IE、IP的指令,則需要在執行完該指令后,再執行一條指令,然后再轉入中斷服務子程序。當上述情況沒有遇到或者己經完成等待后,會由硬件自動執行一個長跳轉LCALL指令(2周期指令),跳轉到相應的中斷服務子程序入口地址,開始執行由用戶編寫的中斷服務程序。綜合上面的討論,我們可以估計出,從中斷申請到執行第一條中斷服務程序的最短時間是3個時間周期(優先權掃描1個周期,LCALL指令2個周期)。最長的響應時間為8個機器周期,除了必需的3個機器周期外,考慮最壞的情況,比如執行ⅢⅡI的第一個機器周期,那么還必須1個機器周期去等待RETI指令完成,同時,執行完ⅢⅡI指令后還必須再執行一個指令,這個指令最長是一個4機器周期指令,那么總共還需要額外等待5個機器周期,加上必需的3個機器周期,可以估算出最長的等待時間為8個機器周期。所以中斷響應時間為3~8個機器周期,可以參看圖7.6。當然還有一種情況是,目前正在執行同級或者更高級別的中斷服務子程序,則需要等到中斷執行完畢,等待的時間將更長。不是最后一個機器周期,執行RETI、