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