模塊6ES7322-5GH00-0AB0
異步指令
簡介
在程序執(zhí)行過程中,同步和異步指令有著顯著不同。
“同步”和“異步”屬性與指令調(diào)用與執(zhí)行間的時(shí)間順序相關(guān)。
以下情況適用于同步指令:同步指令調(diào)用完成時(shí),指令執(zhí)行也完成。
而異步指令,則情況有所不同:異步指令調(diào)用完成時(shí),異步指令的執(zhí)行不一定完成。這也
就意味著,異步指令的執(zhí)行可以跨多次調(diào)用。在 CPU 中,異步指令的執(zhí)行與用戶程序循
環(huán)同時(shí)進(jìn)行。異步指令在 CPU 中生成待處理的作業(yè)。
異步指令通常用于傳輸數(shù)據(jù)(例如,模塊的數(shù)據(jù)記錄、通信數(shù)據(jù)、診斷數(shù)據(jù))。
模塊6ES7322-5GH00-0AB0
同步/異步指令之間的不同之處
下圖顯示了異步指令和同步指令處理的不同之處。在該圖中,CPU 在指令執(zhí)行完成
(如,完成傳輸數(shù)據(jù)記錄)之前,調(diào)用該異步指令五次。
對(duì)于同步指令,每次調(diào)用時(shí)都會(huì)*執(zhí)行。
①
次調(diào)用異步指令,開始執(zhí)行
②
中間調(diào)用異步指令,繼續(xù)執(zhí)行
③
后一次調(diào)用異步指令,執(zhí)行完成
④
每次調(diào)用后,作業(yè)會(huì)*通過同步指令進(jìn)行處理。
*處理的作業(yè)的持續(xù)時(shí)間
異步指令作業(yè)的并行處理
CPU 可同時(shí)執(zhí)行多個(gè)異步指令作業(yè)。在以下情況下,CPU 將并行執(zhí)行多個(gè)作業(yè):
●
用于異步指令的作業(yè)會(huì)啟動(dòng),而該指令的其它作業(yè)仍在運(yùn)行中。
●
但不超出該指令可同時(shí)運(yùn)行的作業(yè)大數(shù)目。
下圖顯示了 WRREC 指令中兩個(gè)作業(yè)的并行處理。在一段時(shí)間內(nèi),兩個(gè)指令同時(shí)執(zhí)行。