西門子以太網(wǎng)通訊處理器
異步指令
簡(jiǎn)介
在程序處理過程中,,同步和異步指令有著顯著不同,。
“同步”和“異步”屬性與指令調(diào)用與執(zhí)行間的時(shí)間順序相關(guān)。
以下情況適用于同步指令:同步指令調(diào)用結(jié)束時(shí),,指令執(zhí)行也結(jié)束,。
而異步指令,則情況有所不同:異步指令調(diào)用結(jié)束時(shí),,異步指令的執(zhí)行不一定結(jié)束,。這也
就意味著,異步指令的執(zhí)行可以跨多次調(diào)用,。在 CPU 中,,異步指令的執(zhí)行與循環(huán)用戶程
序同時(shí)執(zhí)行。異步指令會(huì)在 CPU 中生成作業(yè)進(jìn)行處理,。
異步指令通常用于數(shù)據(jù)的傳輸(模塊的數(shù)據(jù)記錄,、通信數(shù)據(jù)、診斷數(shù)據(jù)),。
西門子以太網(wǎng)通訊處理器
同步/異步指令之間的不同之處
下圖顯示了異步指令和同步指令處理的不同之處,。在該圖中,指令完成之前(如,,*傳
輸數(shù)據(jù)記錄),,異步指令指令調(diào)用了五次。
使用同步指令,,在每次調(diào)用中全面執(zhí)行該指令,。
并行處理異步指令作業(yè)
CPU 可并行執(zhí)行多個(gè)異步指令作業(yè)。在以下情況下,,CPU 將并行執(zhí)行多個(gè)作業(yè):
●
同時(shí)調(diào)用多個(gè)異步指令作業(yè),。
●
未超出指令可并行運(yùn)行的大作業(yè)數(shù)量。
下圖顯示了兩個(gè) WRREC 指令作業(yè)的并行處理,。在該圖中,,在一個(gè)特定的周期內(nèi)并行執(zhí)
行這兩個(gè)指令。
指令作業(yè)的調(diào)用分配
要跨多個(gè)調(diào)用執(zhí)行一個(gè)指令,CPU 需向該指令正在運(yùn)行的作業(yè)分配一個(gè)后續(xù)調(diào)用,。
CPU 可通過以下兩種方式為作業(yè)分配一個(gè)調(diào)用,,具體取決于指令的類型:
●
通過指令的背景數(shù)據(jù)塊(“SFB”類型)
●
使用指令的輸入?yún)?shù)標(biāo)識(shí)該作業(yè)。在異步指令的執(zhí)行過程中,,這些輸入?yún)?shù)必須與執(zhí)
行過程中的各調(diào)用相匹配,。
示例:通過輸入?yún)?shù) LOW_LIMIT、UP_LIMIT,、COUNT,、ATTRIB 和 SRCBLK.,標(biāo)
識(shí)指令作業(yè)“Create_DB”