模塊6ES7322-5GH00-0AB0
異步指令
簡(jiǎn)介
在程序執(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í)行,。