亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

高性能可編程控制器專用處理器體系結(jié)構(gòu)的制作方法

文檔序號:6324713閱讀:225來源:國知局
專利名稱:高性能可編程控制器專用處理器體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本實用新型涉及一種應(yīng)用于自動控制領(lǐng)域中的處理器,具體的說是一種高性能可 編程控制器的處理器體系結(jié)構(gòu)。
背景技術(shù)
可編程控制器(PLC)是以微處理器為核心,把自動化技術(shù)、通信技術(shù)融為一體的 新型工業(yè)自動控制裝置??删幊炭刂破饕云淇煽啃愿?、抗干擾能力強、實時性強、控制程序 可變、體積小、功耗低、使用方便、易維護(hù)等特點,廣泛應(yīng)用于工業(yè)行業(yè)的各個領(lǐng)域,如鋼鐵、 石油、化工、電力、建材、機(jī)械制造、汽車、輕紡、交通運輸?shù)?。隨著可編程控制器國際標(biāo)準(zhǔn)IEC 61131-3的頒布,可編程控制器在系統(tǒng)結(jié)構(gòu)上, 從傳統(tǒng)的單機(jī)向多處理器發(fā)展;在控制系統(tǒng)組態(tài)上,從單機(jī)控制系統(tǒng)到分布式及過程控制 系統(tǒng)發(fā)展;在編程語言上,呈多樣化及簡易化發(fā)展,創(chuàng)造了符合控制要求及通信能力的編程 環(huán)境。由于信息技術(shù)的迅猛發(fā)展,可編程控制器對工業(yè)網(wǎng)絡(luò)通信能力及實時性要求越來越 高。這不僅要求可編程控制器通信能力的提高,而且需求可編程控制器的核心處理器提高 其處理性能?,F(xiàn)有自主研發(fā)的可編程控制器微處理器,大多采用通用微處理器或者通用處理器 和布爾協(xié)處理器相結(jié)合的形式。通用處理器主要面向字節(jié)、字的處理,而可編程控制器指令 主要面向比特位操作,占可編程控制器指令使用頻率的69%。這就迫切需要推出適合于可 編程控制器處理特征的處理器。

實用新型內(nèi)容針對現(xiàn)有技術(shù)中存在的處理器速度不能充分滿足工業(yè)自動控制領(lǐng)域有關(guān)實時性 的要求,本實用新型要解決的技術(shù)問題是提供一種能夠很好的滿足實時性要求的高性能可 編程控制器的處理器體系結(jié)構(gòu)。為解決上述技術(shù)問題,本實用新型采用的技術(shù)方案是本實用新型一種高性能可編程控制器的處理器體系結(jié)構(gòu),包括PLC專用指令集處 理器、通用處理器,其中PLC專用指令集處理器通過PLC專用集處理器與通用處理器的接口 與通用處理器相連;所述PLC專用指令集處理器具有以下結(jié)構(gòu)指令存儲器、指令計數(shù)器、指令寄存 器、指令譯碼器、控制單元、功能塊單元、功能塊寄存器組、數(shù)據(jù)存儲器、寄存器組、位處理 器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、1\0數(shù)據(jù)存儲器、狀態(tài)寄存器,其中指令存儲器,存儲通用處理器并行編譯后的指令,在指令計數(shù)器的控制下,將指令 發(fā)送至指令寄存器;指令計數(shù)器,計算下一條指令地址,實現(xiàn)指令地址的自增,并在跳轉(zhuǎn)調(diào)用指令及存 取指令處理單元的控制下,按照跳轉(zhuǎn)調(diào)用指令中指令地址偏移需求,改變指令地址;在位處 理器的控制下,按照可跳轉(zhuǎn)位邏輯運算指令指令地址偏移需求,改變指令地址;將自增后
5的指令地址、執(zhí)行跳轉(zhuǎn)調(diào)用指令后改變的指令地址及執(zhí)行可跳轉(zhuǎn)位邏輯運算指令后改變的 指令地址,通過指令計數(shù)器中指令地址選擇,將指令存儲器中對應(yīng)的指令輸出至指令寄存 器;指令寄存器,接收指令計數(shù)器選擇的指令存儲器中的指令,輸出該指令至指令譯 碼器;指令譯碼器,將從指令寄存器輸入的指令進(jìn)行譯碼后,將操作碼輸出至位處理器、 跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、功能塊單元,將操作數(shù)地址輸出至寄存器組、功能塊寄 存器組、數(shù)據(jù)存儲器及1\0存儲器;控制單元,向指令計數(shù)器、指令寄存器、指令譯碼器發(fā)送控制指令;接收指令譯碼 器操作碼中的組碼,分別對位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元和功能塊單元進(jìn) 行控制;并控制與通用處理器進(jìn)行中斷信號的接收或發(fā)送;功能塊單元,接收控制單元的控制信號和指令譯碼器的操作碼,與功能塊寄存器 組進(jìn)行數(shù)據(jù)的存取操作;功能塊寄存器組,存儲來自功能塊單元的執(zhí)行結(jié)果,根據(jù)來自跳轉(zhuǎn)調(diào)用指令及存 取指令處理單元的控制信號及指令譯碼器對其的操作數(shù)地址的選擇信號,存取數(shù)據(jù)存儲器 的數(shù)據(jù),或取出功能塊寄存器組的數(shù)據(jù),并通過多路選擇器送至寄存器組中的累加器堆棧 中;數(shù)據(jù)存儲器,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器對其操 作數(shù)地址的選擇,存取寄存器組、功能塊寄存器組的數(shù)據(jù);寄存器組,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器傳來的操 作數(shù)地址,選擇寄存器組中的寄存器,將該寄存器中的操作數(shù)輸出至位處理器進(jìn)行處理;或 存取數(shù)據(jù)存儲器及1\0數(shù)據(jù)存儲器中的數(shù)據(jù);位處理器,通過指令譯碼器的操作碼,對來自寄存器組的操作數(shù)以及通過多路選 擇器選擇的來自功能塊寄存器組、數(shù)據(jù)存儲器、1\0數(shù)據(jù)存儲器并存儲在寄存器組累加器堆 棧中的數(shù)據(jù)進(jìn)行相應(yīng)處理,并將處理結(jié)果存儲到寄存器組、狀態(tài)寄存器、數(shù)據(jù)存儲器或1\0 數(shù)據(jù)存儲器中;跳轉(zhuǎn)調(diào)用指令及存取指令處理單元,接收來自控制單元的控制信號,根據(jù)指令譯 碼器傳來的操作碼,分別對指令計數(shù)器進(jìn)行操作,對寄存器組、功能塊寄存器組、數(shù)據(jù)存儲 器、1\0數(shù)據(jù)存儲器進(jìn)行存取操作控制;1\0數(shù)據(jù)存儲器,接收來自跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制信號以及指 令譯碼器的操作數(shù)地址選擇信號,與寄存器組、功能塊寄存器組以及1\0數(shù)據(jù)存儲器進(jìn)行 數(shù)據(jù)存?。粻顟B(tài)寄存器,保存位處理器執(zhí)行后的狀態(tài)結(jié)果,并通過中斷方式,將狀態(tài)信號發(fā)送 至通用處理器。功能塊單元中每類功能塊并行擴(kuò)展1 16個同類功能塊單元,每個功能塊具有自 己的功能塊寄存器組。所述指令譯碼器譯碼使用的指令格式為位邏輯運算指令格式、可跳轉(zhuǎn)位邏輯運算 指令格式、跳轉(zhuǎn)調(diào)用及存取指令格式以及功能塊指令格式,其中位邏輯運算指令格式,第31 30位為組碼;第29 26位為操作碼 ’第25位用于判斷當(dāng)前位邏輯運算指令的操作數(shù)是否存儲在累加器堆棧當(dāng)中;第24位為條件位,用于對 通用處理器運算的條件使能,其值決定于存儲在狀態(tài)寄存器中的狀態(tài)結(jié)果;第23 16位, 用于存儲保存位邏輯運算結(jié)果的寄存器地址,其寄存器地址編碼位數(shù)為8位;第15 8位, 用于存儲保存位邏輯運算操作數(shù)之一的寄存器地址;第7 0位,用于存儲保存位邏輯運算 另一操作數(shù)的寄存器地址。可跳轉(zhuǎn)位邏輯運算指令格式,第31 30位為組碼;第29 26位為操作碼;第25 位決定是否跳轉(zhuǎn)的條件位;第24位為條件位,用于對通用處理器運算的條件使能,其值決 定于狀態(tài)寄存器的狀態(tài)結(jié)果;第23 8位,為跳轉(zhuǎn)偏移位,其跳轉(zhuǎn)偏移量為該可跳轉(zhuǎn)位邏 輯運算指令跳轉(zhuǎn)到可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符或累加器堆棧中的操作數(shù)出棧并求 或指令的偏移量;第7 0位,為存儲累加器堆棧指針寄存器保存的當(dāng)前累加器堆棧值的地 址;跳轉(zhuǎn)調(diào)用及存取指令格式,第31 30位為組碼;第29 26位為操作碼;第25位, 用于區(qū)分跳轉(zhuǎn)調(diào)用指令及存取指令,當(dāng)I = 0時,代表跳轉(zhuǎn)調(diào)用指令,當(dāng)I = 1時,代表存取 指令;第24位,為條件位,用于基于條件位跳轉(zhuǎn)偏移的跳轉(zhuǎn)調(diào)用指令,其條件位的值來自于 累加器堆棧當(dāng)前值或功能塊單元輸出值或來自通用處理器的運算結(jié)果,如通用處理器執(zhí)行 比較指令后的比較結(jié)果;第23 16位,表示累加器堆棧棧頂?shù)刂坊蚣拇嫫鞯刂?;?5 0 位,表示跳轉(zhuǎn)調(diào)用偏移位或操作數(shù)存取地址;功能塊指令格式,第31 30位為組碼;第29 26位為操作碼;第25位,表示復(fù) 位優(yōu)先位或加計數(shù)器輸入的上升沿觸發(fā)位;第24位,表示置位優(yōu)先位或減計數(shù)器輸入的上 升沿觸發(fā)位;第23位表示復(fù)位或時鐘電平;第22位,表示裝入加減計數(shù)器初始值使能位或 計時器使能位;第21 11位,表示計數(shù)器當(dāng)前值或計時器當(dāng)前值;第10 0位,表示計數(shù) 器予置值或計時器予置值。所述指令譯碼器譯碼使用的指令格式中組碼及操作碼表示的指令集為位邏輯運 算指令集、可跳轉(zhuǎn)位邏輯運算指令集、跳轉(zhuǎn)調(diào)用指令集、存取指令集、功能塊指令集,其中位邏輯運算指令集包括位與操作指令、位與非操作指令、位或操作指令、位異或 操作指令以及位異或非操作指令;可跳轉(zhuǎn)位邏輯運算指令集包括位累與操作指令、位累與非操作指令、位累或操作 指令、位累或非操作指令、可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符、累加器堆棧棧頂操作數(shù)出棧 并求或指令;跳轉(zhuǎn)調(diào)用指令集包括無條件跳轉(zhuǎn)指令、符合條件跳轉(zhuǎn)指令、不符合條件跳轉(zhuǎn)指 令、無條件功能塊調(diào)用指令、符合條件功能塊調(diào)用指令、不符合條件功能塊調(diào)用指令、無條 件從功能或功能塊返回指令、符合條件功能或功能塊返回指令、不符合條件功能或功能塊 返回指令。存取指令集包括L0ADQBIT 取功能塊單元的布爾輸出值到累加器堆棧中;ST0REQBIT 將功能塊單元的布爾輸出值存儲到功能塊寄存器組中;L0ADNQBIT:取功能塊單元的輸出值后取反輸出到累加器堆棧中;ST0RENQBIT 將功能塊單元的輸出值取反存儲到功能塊寄存器組中;L0ADMBIT 從存儲器單元取操作數(shù)到寄存器組或功能塊寄存器組中;[0038]ST0REMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)直接存儲到存儲器單元中;L0ADNMBIT:從存儲器單元取操作數(shù)取反后存儲到寄存器組或功能塊寄存器組 中;ST0RENMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)取反后存儲到存儲器單元中;L0ADI0BIT 從1\0數(shù)據(jù)存儲器直接取數(shù)到寄存器組中;ST0REI0BIT 將寄存器組數(shù)據(jù)直接送到1\0數(shù)據(jù)存儲器中;L0ADNI0BIT 從1\0數(shù)據(jù)存儲器取的數(shù)據(jù)取反后存儲到寄存器組中;ST0RENI0BIT 將寄存器組數(shù)據(jù)取反后送到從1\0數(shù)據(jù)存儲器中;L0ADRMBIT 將寄存器組的內(nèi)部寄存器的值壓棧到累加器堆棧中;ST0RERMBIT 將累加器堆棧中的值出棧到寄存器組的內(nèi)部寄存器中;L0ADNRMBIT 將寄存器組的內(nèi)部寄存器的值取反壓棧到累加器堆棧中;ST0RENRMBIT 將累加器堆棧中的值取反出棧到寄存器組的內(nèi)部寄存器中;功能塊指令集包括置位優(yōu)先功能塊指令、復(fù)位優(yōu)先功能塊指令、上升沿檢測功能 塊指令、下降沿檢測功能塊指令、加計數(shù)器功能塊指令、減計數(shù)器功能塊指令、加減計數(shù)器 功能塊指令、脈沖功能塊指令、接通延時功能塊指令、斷開延時功能塊指令、實時時鐘功能 塊指令。本實用新型具有以下有益效果及優(yōu)點1.本實用新型通過設(shè)計符合PLC指令特征的PLC專用指令集,減少PLC處理器執(zhí) 行的指令數(shù),加快可編程控制器程序的執(zhí)行速度。2.本實用新型通過設(shè)計嵌入在PLC專用指令集處理器中的功能塊單元及功能塊 寄存器組,提高了 PLC處理器對功能塊指令的處理性能。3.本實用新型通過設(shè)計PLC專用指令集處理器中符合PLC高頻數(shù)據(jù)訪問特征的寄 存器組、數(shù)據(jù)存儲器、1\0數(shù)據(jù)存儲器的直接存取方式,加快了 PLC數(shù)據(jù)的存取速度。4.本實用新型通過設(shè)計針對PLC大多采用位數(shù)據(jù)類型的特征,對寄存器組、數(shù)據(jù) 存儲器按位編址,提高了 PLC專用指令集處理器對位數(shù)據(jù)存取的速度,相應(yīng)地提高了 PLC專 用指令集處理器的處理性能。

圖1為本實用新型可編程控制器專用處理器的體系結(jié)構(gòu)框圖;圖2為本實用新型中可編程控制器專用指令集處理器的體系結(jié)構(gòu)框圖;圖3為本實用新型中可編程控制器專用指令集處理器的位處理器框圖;圖4為本實用新型中可編程控制器專用指令集處理器的位處理器執(zhí)行過程圖;圖5為本實用新型中可編程控制器專用指令集處理器的可跳轉(zhuǎn)位邏輯運算流程 圖;圖6為本實用新型中可編程控制器專用指令集處理器的指令計數(shù)器;圖7為本實用新型中可編程控制器專用指令集處理器工作流程圖。
具體實施方式
本高性能可編程控制器專用處理器,擁有符合可編程控制器特征的專用指令集,
8并能夠?qū)崿F(xiàn)硬件加速。通過分析可編程控制器指令,設(shè)計出專用的可編程控制器指令集,和 其相對應(yīng)的可編程控制器專用處理器的體系結(jié)構(gòu),使其處理器能夠快速處理可編程控制器 程序,從而提高的可編程控制器處理性能。如圖1所示,可編程控制器處理器所在片上系統(tǒng)體系結(jié)構(gòu)包括在高速總線上的 可編程控制器處理器、Ethernet MAC 10/100M及高速總線仲裁器;并通過高速/低速總線 橋,連接低速總線上的外設(shè),如AD、DA轉(zhuǎn)換器,通用型輸入輸出接口,計時器,計數(shù)器及中斷 控制器。其中該可編程控制器處理器包括通用處理器與PLC專用指令集處理器,其接口主 要通過中斷方式,利用緩沖器實現(xiàn)數(shù)據(jù)交換。其可編程控制器處理器實施過程如下通用 處理器通過可編程控制器并行編譯器,將編譯好的數(shù)據(jù)存儲到SRAM中。待PLC專用指令集 處理器初始化后,將SRAM中PLC專用指令集處理器的相關(guān)數(shù)據(jù)傳輸?shù)絇LC專用指令集處理 器中的指令RAM和數(shù)據(jù)RAM中。當(dāng)PLC專用指令集處理器執(zhí)行到非PLC專用指令集中的指 令時,向通用處理器發(fā)出中斷,并將數(shù)據(jù)通過緩沖器發(fā)送給通用處理器。若PLC專用指令集 處理器中的下一條指令與通用處理器將要執(zhí)行的指令無關(guān)時,兩處理器可并行執(zhí)行;否則 PLC專用指令集處理器將等待通用處理器執(zhí)行結(jié)果。待通用處理器執(zhí)行完成后,向PLC專用 指令集處理器發(fā)出中斷,并將數(shù)據(jù)傳輸?shù)骄彌_器中。如圖2所示,所述PLC專用指令集處理器具有以下結(jié)構(gòu)指令存儲器、指令計數(shù)器、 指令寄存器、指令譯碼器、控制單元、功能塊單元、功能塊寄存器組、數(shù)據(jù)存儲器、寄存器組、 位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、1\0數(shù)據(jù)存儲器、狀態(tài)寄存器,其中指令存儲器,存儲通用處理器并行編譯后的指令,在指令計數(shù)器的控制下,將指令 發(fā)送至指令寄存器;指令計數(shù)器,計算下一條指令地址,實現(xiàn)指令地址的自增,并在跳轉(zhuǎn)調(diào)用指令及存 取指令處理單元的控制下,按照跳轉(zhuǎn)調(diào)用指令中指令地址偏移需求,改變指令地址;在位處 理器的控制下,按照可跳轉(zhuǎn)位邏輯運算指令指令地址偏移需求,改變指令地址;將自增后 的指令地址、執(zhí)行跳轉(zhuǎn)調(diào)用指令后改變的指令地址及執(zhí)行可跳轉(zhuǎn)位邏輯運算指令后改變的 指令地址,通過指令計數(shù)器中指令地址選擇,將指令存儲器中對應(yīng)的指令輸出至指令寄存 器;指令寄存器,接收指令計數(shù)器選擇的指令存儲器中的指令,輸出該指令至指令譯 碼器;指令譯碼器,將從指令寄存器輸入的指令進(jìn)行譯碼后,將操作碼輸出至位處理器、 跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、功能塊單元,將操作數(shù)地址輸出至寄存器組、功能塊寄 存器組、數(shù)據(jù)存儲器及1\0存儲器;控制單元,向指令計數(shù)器、指令寄存器、指令譯碼器發(fā)送控制指令;接收指令譯碼 器操作碼中的組碼,分別對位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元和功能塊單元進(jìn) 行控制;并控制與通用處理器進(jìn)行中斷信號的接收或發(fā)送;功能塊單元,接收控制單元的控制信號和指令譯碼器的操作碼,與功能塊寄存器 組進(jìn)行數(shù)據(jù)的存取操作;功能塊寄存器組,存儲來自功能塊單元的執(zhí)行結(jié)果,根據(jù)來自跳轉(zhuǎn)調(diào)用指令及存 取指令處理單元的控制信號及指令譯碼器對其的操作數(shù)地址的選擇信號,存取數(shù)據(jù)存儲器 的數(shù)據(jù),或取出功能塊寄存器組的數(shù)據(jù),并通過多路選擇器送至寄存器組中的累加器堆棧中;數(shù)據(jù)存儲器,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器對其操 作數(shù)地址的選擇,存取寄存器組、功能塊寄存器組的數(shù)據(jù);寄存器組,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器傳來的操 作數(shù)地址,選擇寄存器組中的寄存器,將該寄存器中的操作數(shù)輸出至位處理器進(jìn)行處理;或 存取數(shù)據(jù)存儲器及1\0數(shù)據(jù)存儲器中的數(shù)據(jù);位處理器,通過指令譯碼器的操作碼,對來自寄存器組的操作數(shù)以及通過多路選 擇器選擇的來自功能塊寄存器組、數(shù)據(jù)存儲器、1\0數(shù)據(jù)存儲器并存儲在寄存器組累加器堆 棧中的數(shù)據(jù)進(jìn)行相應(yīng)處理,并將處理結(jié)果存儲到寄存器組、狀態(tài)寄存器、數(shù)據(jù)存儲器或1\0 數(shù)據(jù)存儲器中;跳轉(zhuǎn)調(diào)用指令及存取指令處理單元,接收來自控制單元的控制信號,根據(jù)指令譯 碼器傳來的操作碼,分別對指令計數(shù)器進(jìn)行操作,對寄存器組、功能塊寄存器組、數(shù)據(jù)存儲 器、AO數(shù)據(jù)存儲器進(jìn)行存取操作控制。1\0數(shù)據(jù)存儲器,接收來自跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制信號以及指 令譯碼器的操作數(shù)地址選擇信號,與寄存器組、功能塊寄存器組以及1\0數(shù)據(jù)存儲器進(jìn)行 數(shù)據(jù)存取;狀態(tài)寄存器,保存位處理器執(zhí)行后的狀態(tài)結(jié)果,并通過中斷方式,將狀態(tài)信號發(fā)送 至通用處理器。為了實現(xiàn)PLC專用指令集處理器,本實用新型設(shè)計了符合可編程控制器特征的專 用指令格式和指令集,其中指令格式為位邏輯運算指令格式、可跳轉(zhuǎn)位邏輯運算指令格式、 跳轉(zhuǎn)調(diào)用及存取指令格式以及功能塊指令格式共四種,具體為(1)位邏輯運算指令格式(表1),第31 30位為組碼;第29 26位為操作碼, 操作碼有四位,其可編程控制器指令表語言中的位邏輯運算指令有AND、ANDN、0R、0RN、X0R、 X0RN,對應(yīng)的可編程控制器專用指令集處理器指令集中的指令為ANDBIT、ANDNBIT、ORBIT、 0RNBIT、X0RBIT、X0RNBIT ;第25位用于判斷當(dāng)前位邏輯運算指令的操作數(shù)是否存儲在累加 器堆棧當(dāng)中,若不在累加器堆棧中,一般此指令為可跳轉(zhuǎn)位邏輯運算指令后一個位邏輯運 算指令,其運算結(jié)果將保存在累加器堆棧中;第24位為條件位,用于對通用處理器相關(guān)運 算的條件使能,其值決定于狀態(tài)寄存器的狀態(tài)值;第23 16位,用于存儲保存位邏輯運算 結(jié)果的寄存器地址,其寄存器地址編碼位數(shù)為8位;第15 8位,用于存儲保存位邏輯運算 操作數(shù)之一的寄存器地址(可以為寄存器組中的內(nèi)部寄存器地址、累加器堆棧指針中保存 的累加器堆棧地址);第7 0位,用于存儲保存位邏輯運算另一操作數(shù)的寄存器地址(可 以為寄存器組中的內(nèi)部寄存器地址、累加器堆棧指針中保存的累加器堆棧地址)。(2)可跳轉(zhuǎn)位邏輯運算指令格式(表2),其組碼為01,其可編程控制器指令表語言 中的指令包括AND(、0R、ANDN(、0RN(、)、0RLD,對應(yīng)的可編程控制器專用指令集處理器指令 集中的指令為 ANDCRBIT、0RCRBIT, ANDNCRBIT、ORNCRBIT、CR、PUSHOR ;第 25 位為跳轉(zhuǎn)條件 位,即該可跳轉(zhuǎn)位邏輯運算指令滿足跳轉(zhuǎn)條件,如指令為ANDCRBIT時,且累加器堆棧當(dāng)前 值為0時,ANDCRBIT指令后的位邏輯運算不用執(zhí)行,并跳轉(zhuǎn)到、可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn) 結(jié)束符CR指令,其可跳轉(zhuǎn)位邏輯運算流程圖(圖5)表明了詳細(xì)執(zhí)行流程;第24位為條件 位,用于對通用處理器相關(guān)運算的條件使能,其值決定于狀態(tài)寄存器的狀態(tài)信號;第23 8
10位,為跳轉(zhuǎn)偏移量,即偏移到可編程控制器專用指令集中CR及PUSHOR指令;第7 0位,為 存儲累加器堆棧指針寄存器保存的當(dāng)前累加器堆棧值的地址。(3)跳轉(zhuǎn)調(diào)用及存取指令格式(表3),第31 30位為組碼,其組碼為10 ;第 29 26位為操作碼;第25位,用于區(qū)分跳轉(zhuǎn)調(diào)用指令及存取指令,當(dāng)I = 0時,代表指 令為跳轉(zhuǎn)調(diào)用指令,其可編程控制器指令表語言中的指令包括JMP、JMPC、JMPCN、CALL、 CALLC、CALLCN、RET、RETC、RETCN,對應(yīng)的可編程控制器專用指令集處理器指令集中的指令 為 JMPBIT、JMPCBIT, JMPCNBIT, CALBIT、CALCBIT、CALCNBIT、RETBIT、RETCBIT、RETCNBIT ; 當(dāng)I = 1時,其可編程控制器指令表語言中的指令包括LD、LDN、ST、STN,對應(yīng)的可編程控 制器專用指令集處理器指令集中的指令依據(jù)存取類型分為LOADBIT、LOADNBIT、ST0REBIT、 STORENBIT、L0ADMBIΤ、STOREMBIT、LOADNMBIT、STORENMBIT、L0ADI0BIT、STOREIOBIT、 LOADNIOBIT,ST0RENIOBIT,L0ADRMBIT,L0ADNRMBIT,ST0RERMBIT,STORENRMBIT ;第 24 位,為 條件位,用于基于條件位跳轉(zhuǎn)偏移的跳轉(zhuǎn)調(diào)用指令,其條件位的值來自于累加器堆棧當(dāng)前 值或功能塊單元輸出值或來自通用處理器的運算結(jié)果,如通用處理器執(zhí)行比較指令后的比 較結(jié)果;第23 16位,表示累加器堆棧棧頂?shù)刂坊蚣拇嫫鞯刂?;?5 0位,表示跳轉(zhuǎn)調(diào) 用偏移位或操作數(shù)存取地址;(4)功能塊指令格式(表4)。功能塊分為觸發(fā)器、邊沿檢測、計數(shù)器、定時器,它有 自身的功能塊單元寄存器組。第31 30位為組碼,其指令的組碼為11 ;第29 26位為 操作碼,其可編程控制器指令表語言中的指令包括SR、RS、R_TRIG、F_TRIG、CTU, CTD, CTUD, TP、ΤΟΝ、T0F, RTC,對應(yīng)的可編程控制器專用指令集處理器指令集中的指令為FB SR、FBRS, FB_R TRIG、FBF_TRIG、FB CTU、FB CTD、FB CTUD、FB TP,FB TON,FB T0F、FB RTC ;第 25 位, 表示復(fù)位優(yōu)先位或加計數(shù)器輸入的上升沿觸發(fā)位;第24位,表示置位優(yōu)先位或減計數(shù)器輸 入的上升沿觸發(fā)位;第23位表示復(fù)位或時鐘電平;第22位,表示裝入加減計數(shù)器初始值使 能位或計時器使能位;第21 11位,表示計數(shù)器當(dāng)前值或計時器當(dāng)前值;第10 0位,表 示計數(shù)器予置值或計時器予置值。指令集共五種,具體如下(1)位邏輯運算指令集包括位與操作指令、位與非操作指令、位或操作指令、位 異或操作指令以及位異或非操作指令;該指令集依據(jù)操作數(shù)來源分為兩類第一、操作數(shù) 有一方是來自累加器堆棧,另一方來自寄存器組,如ANDBIT CR, RS, Rm ;第二、操作數(shù)兩方 都來自寄存器組,此位邏輯運算指令主要位于可跳轉(zhuǎn)位邏輯運算后的第一個位邏輯運算, 如ANDBIT RSl,RS2,Rm。該指令集依據(jù)指令結(jié)果存儲地址分為兩類第一、結(jié)果存儲在累加 器堆棧中,如ANDBIT RSl,R2,CR ;第二、結(jié)果存儲在寄存器組的內(nèi)部寄存器當(dāng)中,如ANDBIT RSI, RS2, Rm。(2)可跳轉(zhuǎn)位邏輯運算指令集(表6),位累與操作指令、位累與非操作指令、位 累或操作指令、位累或非操作指令、可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符、累加器堆棧棧頂 操作數(shù)出棧并求或指令;依據(jù)是否為位邏輯運算指令,分兩類,第一類、位邏輯運算指令
ANDCRBIT,ANDNCRBIT, ORCRBIT, ORNCRBIT ;第二類、可跳轉(zhuǎn)位邏輯運算指令的結(jié)束符-CR
或PUSH0R。依據(jù)符合IEC_61131-3標(biāo)準(zhǔn)的可編程控制器指令表編程語言指令-0RLD,對應(yīng) 的可編程控制器專用指令集指令為PUSH0R,用于對前幾項操作數(shù)輸入指令LD或LDN輸入到 累加器堆棧中的值進(jìn)行或運算,并將運算的值輸入返回累加器堆棧當(dāng)中。[0086](3)跳轉(zhuǎn)調(diào)用指令集(表7),包括無條件跳轉(zhuǎn)指令、符合條件跳轉(zhuǎn)指令、不符合條 件跳轉(zhuǎn)指令、無條件功能塊調(diào)用指令、符合條件功能塊調(diào)用指令、不符合條件功能塊調(diào)用指 令、無條件從功能或功能塊返回指令、符合條件功能或功能塊返回指令、不符合條件功能或 功能塊返回指令。依據(jù)是否帶條件位分為兩類,第一類、帶條件位,包括JMPCBIT、JMPCNBIT、 CALCBIT, CALCNBIT、RETCBIT、RETCNBIT ;第二類、不帶條件位,包括 JMPBIT、CALBIT, RETBIT。(4)存取指令(表8),依據(jù)存取地址分為三類,第一類、取數(shù)地址為功能塊存儲單 元,其指令包括L0ADQBIT、LOADNQBIT、STOREQBIT、ST0RENQBIT ;第二類、存取數(shù)地址為存 儲器,其指令包括L0ADMBIT、STOREMBIT、LOADNMBIT、ST0RENMBIT ;第三類、存取數(shù)地址為 1\0 端口,其指令包括L0ADI0BIT、ST0REI0BIT、LOADNIOBIT、ST0RENI0BIT ;第四類、存取數(shù) 地址為內(nèi)部寄存器,其指令包括L0ADRMBIT、LOADNRMBIT、STORERMBIT、ST0RENRMBIT。存取指令集包括L0ADQBIT 取功能塊單元的布爾輸出值到累加器堆棧中;STOREQBIT 將功能塊單元的布爾輸出值存儲到功能塊寄存器組中;LOADNQBIT:取功能塊單元的輸出值后取反輸出到累加器堆棧中;ST0RENQBIT 將功能塊單元的輸出值取反存儲到功能塊寄存器組中;L0ADMBIT 從存儲器單元取操作數(shù)到寄存器組或功能塊寄存器組中;STOREMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)直接存儲到存儲器單元中;LOADNMBIT:從存儲器單元取操作數(shù)取反后存儲到寄存器組或功能塊寄存器組 中;STORENMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)取反后存儲到存儲器單元中;L0ADI0BIT 從1\0數(shù)據(jù)存儲器直接取數(shù)到寄存器組中;ST0REI0BIT 將寄存器組數(shù)據(jù)直接送到1\0數(shù)據(jù)存儲器中;LOADNIOBIT 從1\0數(shù)據(jù)存儲器取的數(shù)據(jù)取反后存儲到寄存器組中;ST0RENI0BIT 將寄存器組數(shù)據(jù)取反后送到從1\0數(shù)據(jù)存儲器中;L0ADRMBIT 將寄存器組的內(nèi)部寄存器的值壓棧到累加器堆棧中;STORERMBIT 將累加器堆棧中的值出棧到寄存器組的內(nèi)部寄存器中;LOADNRMBIT 將寄存器組的內(nèi)部寄存器的值取反壓棧到累加器堆棧中;STORENRMBIT 將累加器堆棧中的值取反出棧到寄存器組的內(nèi)部寄存器中;(5)功能塊指令集(表9),包括置位優(yōu)先功能塊指令、復(fù)位優(yōu)先功能塊指令、上升 沿檢測功能塊指令、下降沿檢測功能塊指令、加計數(shù)器功能塊指令、減計數(shù)器功能塊指令、 加減計數(shù)器功能塊指令、脈沖功能塊指令、接通延時功能塊指令、斷開延時功能塊指令、實 時時鐘功能塊指令;按功能分為三大類,第一類、置位復(fù)位功能;第二類、邊沿檢測功能;第 三類、計數(shù)器功能;第四類、計時器功能。為提高可編程控制器程序執(zhí)行速度,本實用新型設(shè)計的可編程控制器專用指令集 處理器體系結(jié)構(gòu),通過對可跳轉(zhuǎn)位邏輯運算指令的處理,可加速可編程控制器專用指令集 處理器對位邏輯運算指令的操作;并可在處理器內(nèi)執(zhí)行功能塊指令,節(jié)省了對其輸入輸出 數(shù)據(jù)的存取時間,提高了可編程控制器專用指令集處理器的實時性與精確度;其寄存器組, 針對該可編程控制器專用指令集處理器處理開關(guān)量數(shù)據(jù)的特點,采用位編址方式,能夠加快數(shù)據(jù)存取的速度;針對功能塊指令數(shù)據(jù)的特征,另外設(shè)計了功能塊寄存器組;數(shù)據(jù)存儲 器針對該可編程控制器專用指令集處理器的數(shù)據(jù)特征,分別對開關(guān)量數(shù)據(jù)及功能塊數(shù)據(jù)進(jìn) 行編址。該可編程控制器專用指令集處理器包括指令存儲器、指令計數(shù)器、指令寄存器、指 令譯碼器、控制單元、功能塊單元、功能塊寄存器組、數(shù)據(jù)存儲器、寄存器組、位處理器、跳轉(zhuǎn) 調(diào)用指令及存取指令處理單元、1\0數(shù)據(jù)存儲器;該處理器采用四級流水線,取指、譯碼、執(zhí) 行、回寫。(1)指令存儲器,其指令存儲容量設(shè)定為64KB ;因指令格式采用32位,則一條指令 需要一個字的單元存儲,該指令存儲器則可存儲211條指令;該指令存儲器采用小端方式存 儲,即低地址存儲低端數(shù)據(jù),高地址存儲高端數(shù)據(jù)。(2)指令計數(shù)器(圖6),該指令計數(shù)器中當(dāng)前PC值分為三類第一,當(dāng)前PC值為 下一條指令地址,即當(dāng)前PC值=上一條指令地址+4 ;第二,當(dāng)遇到可跳轉(zhuǎn)位邏輯運算指令, 則當(dāng)前PC值=上一條指令地址+跳轉(zhuǎn)偏移量;第三,當(dāng)遇到跳轉(zhuǎn)調(diào)用指令時,則當(dāng)前PC值 =上一條指令地址+跳轉(zhuǎn)調(diào)用偏移量。其可跳轉(zhuǎn)位邏輯指令的處理流程圖如圖5所示,由 指令譯碼器向位處理器輸入組碼,位處理器通過組碼識別是否為可跳轉(zhuǎn)位邏輯指令;(3)控制單元,控制可編程控制專用指令集處理器的四個流水階段,即在取指階 段,控制指令計數(shù)器的操作;在譯碼階段,控制指令譯碼器的操作;在執(zhí)行階段,接收指令 譯碼器操作碼中的組碼,分別對位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元和功能塊單 元進(jìn)行控制;并控制與通用處理器進(jìn)行中斷信號的接收或發(fā)送;在回寫階段,控制跳轉(zhuǎn)調(diào) 用指令及存取指令處理單元和功能塊單元中存取指令的回寫操作。(4)功能塊單元,該功能塊單元主要處理功能塊指令,如置位優(yōu)先功能塊指令、復(fù) 位優(yōu)先功能塊指令、上升沿檢測功能塊指令、下降沿檢測功能塊指令、加計數(shù)器功能塊指 令、減計數(shù)器功能塊指令、加減計數(shù)器功能塊指令、脈沖功能塊指令、接通延時功能塊指令、 斷開延時功能塊指令、實時時鐘功能塊指令;其功能塊單元中每類功能塊可并行處理1 16個相同功能塊,符合可編程控制器程序需執(zhí)行多個功能塊指令的特征;功能塊單元與功 能塊寄存器組相連,可節(jié)約數(shù)據(jù)存取時間,提高可編程控制器計時器的準(zhǔn)確度及可編程控 制器程序執(zhí)行速度;該功能塊單元輸入信號有來自控制單元的控制信號;及來自指令譯碼 器的信號,包括操作碼0P[3:0],置位優(yōu)先的信號Si、復(fù)位優(yōu)先信號R1、置位信號S、復(fù)位 信號R、時鐘信號CLK、加計數(shù)器上升沿觸發(fā)信號CU、減計數(shù)器上升沿觸發(fā)信號CD、裝入加 計數(shù)器LDU初始數(shù)使能信號、減計數(shù)器初始數(shù)使能信號LDD、加減計數(shù)器初始數(shù)使能信號 LDUD、脈沖功能塊使能信號INTP、接通延時功能塊使能信號ΙΝΤ0Ν、斷開延時功能塊使能信 號INT0F、實時時鐘功能塊使能信號INRTC ;有來自功能塊寄存器組的信號,包括計數(shù)器予 置值PV[7:0]、計時器予置值PT[7:0]、實時時鐘予置值PDT[7:0];其功能塊輸出信號為輸 出到功能塊寄存器組的信號,信號包括當(dāng)前計數(shù)器值CV[7:0]、計時器結(jié)束時間ET[7:0]、 實時時鐘當(dāng)前日期和時間⑶T[7:0]。(5)功能塊寄存器組,該寄存器組分為四類,包括觸發(fā)器功能塊寄存器、邊沿檢測 功能塊寄存器、計數(shù)器功能塊寄存器、計時器功能塊寄存器;每類功能塊可最多并行存儲 十六個同類功能塊數(shù)據(jù);該寄存器組可存儲的數(shù)據(jù)包括各功能塊的輸入信號與輸出信 號;該寄存器組可以以位或字節(jié)的方式存取數(shù)據(jù);當(dāng)該寄存器組有一功能塊寄存器數(shù)據(jù)滿 時,可以請求外設(shè)功能塊單元執(zhí)行,并與數(shù)據(jù)存儲器進(jìn)行數(shù)據(jù)傳輸;其編址方式,如表10所示,共用11位對寄存器組進(jìn)行編址,通過第10 9位尋址功能塊類型,第8 5位尋址第幾 個功能塊單元,第4位用于對寄存器組數(shù)據(jù)存取方式編址,第3 0位尋址輸入輸出數(shù)據(jù)。(6)數(shù)據(jù)存儲器,其存儲總?cè)萘繛?4KB,分為輸入存儲器、輸出存儲器、內(nèi)部存儲 器及功能塊存儲器。該存儲器通過十六位編址對這四種存儲器尋址。輸入、輸出、內(nèi)部存儲 器主要存儲位數(shù)據(jù),功能塊存儲器主要存儲內(nèi)部及外設(shè)功能塊的輸入輸出數(shù)據(jù),每類功能 塊數(shù)據(jù)可并行存儲256個。下面是對輸入、輸出及內(nèi)部存儲器的編址方式第15位用于區(qū)別 輸入、輸出、內(nèi)部存儲器和功能塊存儲器,其值為零是則為輸入、輸出、內(nèi)部存儲器;第14 13位用于對輸入、輸出及內(nèi)部存儲器編址,輸入存儲器編碼為00、輸出存儲器編碼為01、內(nèi) 部存儲器編碼為10 ;第12 3位用于對各存儲器字節(jié)尋址,第2 0位用于對存儲器位尋 址。對功能塊存儲器編址(表11),第15位,其值為1,表示對功能塊存儲器尋址;第14 13位用于對四類功能塊的尋址,觸發(fā)器編址為00、邊沿檢測編址為01、計數(shù)器編址為10、計 時器編址為11 ;第12 5位主要對指定第幾個功能塊數(shù)據(jù)尋址;第4位主要表示對存儲數(shù) 據(jù)的尋址方式,如為位數(shù)據(jù)時,則對一個字節(jié)的位進(jìn)行尋址;第3 0位表示要各輸入輸出 數(shù)據(jù)的編址。(7)寄存器組,該寄存器組分為輸入寄存器、內(nèi)部寄存器、狀態(tài)寄存器、累加器堆 棧、累加器堆棧指針寄存器、指令寄存器。將寄存器組分為三類進(jìn)行編址,第一類為輸入、內(nèi) 部寄存器;第二類為狀態(tài)寄存器、累加器堆棧及累加器指針寄存器;第三類為指令寄存器。 對第一類寄存器編址如下第7 6位表示對三類寄存器的編址,第一類寄存器編址為00 ; 第5位表示對輸入、內(nèi)部寄存器的編址,輸入寄存器編址為0,內(nèi)部寄存器編址為1 ;第4 3表示對字節(jié)尋址;第2 0表示對位尋址。對第二類寄存器編址如下第7 6位,第二 類寄存器編址為01 ;第5位表示對狀態(tài)寄存器、累加器堆棧的編址,累加器堆棧編址為0,狀 態(tài)寄存器編址為1 ;第4 3表示對字節(jié)尋址;第2 0表示對位尋址。特別地規(guī)定該第二 類寄存器編址中第4 3位編址為00的字節(jié)存放累加器堆棧指針寄存器數(shù)據(jù),即為累加器 堆棧指針寄存器,則累加器堆棧指針寄存器地址為01000000。對第三類寄存器編址如下 第7 6位,第三類寄存器編址為01 ;第5 0表示對字節(jié)尋址,即可尋址32個字節(jié),又指 令格式為32位,占4個字節(jié),則指令寄存器可存儲八條指令;(8)位處理器(如圖3所示),該位處理器特征是采用累加器堆棧的形式存儲操作 數(shù),由于位處理器經(jīng)常要用到前一次甚至前幾次累加器堆棧中的操作數(shù),采用符合位處理 器執(zhí)行特征的堆棧形式保存操作數(shù),并通過累加器堆棧指針寄存器中的地址來區(qū)別當(dāng)前操 作數(shù)與前幾次操作數(shù)。該位處理器處理位邏輯運算指令及可跳轉(zhuǎn)位邏輯運算指令;采用累 加器堆棧的形式存儲位處理器所需操作數(shù)及其運算結(jié)果;其累加器堆棧棧頂值來自寄存器 組、功能塊寄存器組、1\0數(shù)據(jù)存儲器及位處理器運算結(jié)果;當(dāng)位處理器執(zhí)行位邏輯運算指 令時,從累加器堆棧棧頂或寄存器組中取操作數(shù)后,進(jìn)行位邏輯運算操作,將運算結(jié)果存儲 到累加器堆棧棧頂或寄存器組中。當(dāng)位處理器執(zhí)行可跳轉(zhuǎn)位邏輯運算指令時,若該可跳轉(zhuǎn) 位邏輯運算指令為位累與運算指令、位累與非運算指令、位累或運算指令、位累或非運算指 令,且滿足跳轉(zhuǎn)條件時,位處理器將跳轉(zhuǎn)偏移量發(fā)送至指令計數(shù)器中,并執(zhí)行相應(yīng)的位邏輯 運算,將運算結(jié)果保存在累加器堆棧棧頂。位處理器的運算結(jié)果,經(jīng)跳轉(zhuǎn)調(diào)用指令及存取指 令處理單元執(zhí)行存取指令后,分別存儲在狀態(tài)寄存器、數(shù)據(jù)存儲器、寄存器組中的內(nèi)部寄存 器以及1\0數(shù)據(jù)存儲器當(dāng)中。
14[0115]如圖4所示,位處理器處理位邏輯運算指令及可跳轉(zhuǎn)位邏輯運算指令包括以下步 驟位處理器處理位邏輯運算指令及可跳轉(zhuǎn)位邏輯運算指令;采用累加器堆棧的形式 存儲位處理器所需操作數(shù)及其運算結(jié)果;其累加器堆棧棧頂值來自寄存器組、功能塊寄存 器組、1\數(shù)據(jù)存儲器及位處理器運算結(jié)果;當(dāng)位處理器執(zhí)行位邏輯運算指令時,從累加器堆棧棧頂或寄存器組中取操作數(shù) 后,進(jìn)行位邏輯運算操作,將運算結(jié)果存儲到累加器堆棧棧頂或寄存器組中;執(zhí)行完成后存儲位處理器的運算結(jié)果;當(dāng)位處理器執(zhí)行可跳轉(zhuǎn)位邏輯運算指令時,按可跳轉(zhuǎn)位邏輯運算指令的執(zhí)行過程 執(zhí)行,執(zhí)行完成后存儲位處理器的運算結(jié)果;如圖5所示,跳轉(zhuǎn)位邏輯運算指令的執(zhí)行過程為如果是可跳轉(zhuǎn)位邏輯指令,則指令譯碼器向位處理器輸入操作碼;由位處理器器判斷該可跳轉(zhuǎn)位邏輯指令是否為位累與操作指令、位累與非操作指 令、位累或操作指令、位累或非操作指令;若為位累與操作指令,且累加器堆棧的棧頂值為0,則執(zhí)行與操作,將與運算結(jié)果 “0”存儲在累加器堆棧的棧頂,并設(shè)置指令格式中jump condition跳轉(zhuǎn)條件位為1,設(shè)置 jump offset跳轉(zhuǎn)偏移量值為可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符與該位累與操作指令的偏 移量;若為位累與操作指令,但不滿足累加器堆棧的棧頂值為0,則只執(zhí)行與操作,將執(zhí)行 結(jié)果存儲在累加器堆棧中,其跳轉(zhuǎn)條件位為0,不執(zhí)行跳轉(zhuǎn)操作。若為位累與非操作指令,且累加器堆棧的棧頂值為0,則執(zhí)行與非操作,將與非運 算結(jié)果“1”存儲在累加器堆棧的棧頂,并設(shè)置指令格式中jumpcondition跳轉(zhuǎn)條件位為1, 設(shè)置jump offset跳轉(zhuǎn)偏移量值為可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符到該位累與非操作指 令的偏移量;若為位累與非操作指令,但不滿足累加器堆棧的棧頂值為0,則只執(zhí)行與非操 作,將執(zhí)行結(jié)果存儲在累加器堆棧中,其跳轉(zhuǎn)條件位為0,不執(zhí)行跳轉(zhuǎn)操作。若為位累或操作指令,且累加器堆棧的棧頂值為1,則執(zhí)行或操作,將或運算結(jié)果 “1”存儲在累加器堆棧的棧頂,并設(shè)置指令格式中jump condition跳轉(zhuǎn)條件位為1,設(shè)置 jump offset跳轉(zhuǎn)偏移量值為可跳轉(zhuǎn)位邏輯運算跳轉(zhuǎn)結(jié)束符指令或累加器堆棧中的操作數(shù) 出棧并求或指令到該位累或操作指令的偏移量;若為位累與操作指令,但不滿足累加器堆 棧的棧頂值為1,則只執(zhí)行或操作,將執(zhí)行結(jié)果存儲在累加器堆棧中,其跳轉(zhuǎn)條件位為0,不 執(zhí)行跳轉(zhuǎn)操作。若為位累或非操作指令,且累加器堆棧的棧頂值為1,則執(zhí)行或非操作,將或非運 算結(jié)果“0”存儲在累加器堆棧的棧頂,并設(shè)置指令格式中jumpcondition跳轉(zhuǎn)條件位為1, 設(shè)置jump offset跳轉(zhuǎn)偏移量值為可編程控制器可跳轉(zhuǎn)位邏輯運算跳轉(zhuǎn)結(jié)束符到該位累或 非操作指令的偏移量;若為位累與操作指令,但不滿足累加器堆棧的棧頂值為1,則只執(zhí)行 或非操作,將執(zhí)行結(jié)果存儲在累加器堆棧中,其跳轉(zhuǎn)條件位為0,不執(zhí)行跳轉(zhuǎn)操作。如圖7所示,本實用新型高性能可編程控制器專用指令集處理器體系結(jié)構(gòu)的實現(xiàn) 方法按照該可編程控制器指令集處理器的四級流水線方式,包括以下步驟取指階段依據(jù)指令計數(shù)器計算的指令地址,從指令存儲器取指令至指令寄存器 當(dāng)中;[0129]譯碼階段從指令寄存器取出指令送入指令譯碼器進(jìn)行譯碼,通過指令中操作數(shù) 地址,取出操作數(shù);并依據(jù)指令中組碼,將相應(yīng)的操作碼及操作數(shù)送至對應(yīng)的處理單元中;執(zhí)行階段依據(jù)指令譯碼器發(fā)出的操作碼及操作數(shù),位處理器、功能塊單元、跳轉(zhuǎn) 調(diào)用指令及存取指令處理單元給予相應(yīng)處理;如執(zhí)行的指令不是可編程控制器專用指令集 處理器的指令時,則由控制單元向通用處理器發(fā)出中斷請求,該可編程控制器專用指令集 處理器可繼續(xù)執(zhí)行與通用處理器指令無依賴關(guān)系的指令,當(dāng)通用處理器向可編程控制器專 用指令集處理器發(fā)送中斷請求時,可編程控制器專用指令集處理器將保存通用處理器的執(zhí) 行結(jié)果到狀態(tài)寄存器中;另外存儲器訪問階段與執(zhí)行階段合為一個流水線階段,由跳轉(zhuǎn)調(diào) 用指令及存取指令處理單元執(zhí)行存儲器訪問;回寫階段將可編程控制器專用指令集處理器的結(jié)果,依據(jù)存取指令類型寫回累 加器堆棧、內(nèi)部寄存器、數(shù)據(jù)存儲器內(nèi)部寄存器或1\0存儲器當(dāng)中。
權(quán)利要求一種高性能可編程控制器的處理器體系結(jié)構(gòu),其特征在于包括PLC專用指令集處理器、通用處理器,其中PLC專用指令集處理器通過PLC專用集處理器與通用處理器的接口與通用處理器相連;所述PLC專用指令集處理器具有以下結(jié)構(gòu)指令存儲器、指令計數(shù)器、指令寄存器、指令譯碼器、控制單元、功能塊單元、功能塊寄存器組、數(shù)據(jù)存儲器、寄存器組、位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、I\O數(shù)據(jù)存儲器、狀態(tài)寄存器,其中指令存儲器,存儲通用處理器并行編譯后的指令,在指令計數(shù)器的控制下,將指令發(fā)送至指令寄存器;指令計數(shù)器,計算下一條指令地址,實現(xiàn)指令地址的自增,并在跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制下,按照跳轉(zhuǎn)調(diào)用指令中指令地址偏移需求,改變指令地址;在位處理器的控制下,按照可跳轉(zhuǎn)位邏輯運算指令指令地址偏移需求,改變指令地址;將自增后的指令地址、執(zhí)行跳轉(zhuǎn)調(diào)用指令后改變的指令地址及執(zhí)行可跳轉(zhuǎn)位邏輯運算指令后改變的指令地址,通過指令計數(shù)器中指令地址選擇,將指令存儲器中對應(yīng)的指令輸出至指令寄存器;指令寄存器,接收指令計數(shù)器選擇的指令存儲器中的指令,輸出該指令至指令譯碼器;指令譯碼器,將從指令寄存器輸入的指令進(jìn)行譯碼后,將操作碼輸出至位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、功能塊單元,將操作數(shù)地址輸出至寄存器組、功能塊寄存器組、數(shù)據(jù)存儲器及I\O存儲器;控制單元,向指令計數(shù)器、指令寄存器、指令譯碼器發(fā)送控制指令;接收指令譯碼器操作碼中的組碼,分別對位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元和功能塊單元進(jìn)行控制;并控制與通用處理器進(jìn)行中斷信號的接收或發(fā)送;功能塊單元,接收控制單元的控制信號和指令譯碼器的操作碼,與功能塊寄存器組進(jìn)行數(shù)據(jù)的存取操作;功能塊寄存器組,存儲來自功能塊單元的執(zhí)行結(jié)果,根據(jù)來自跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制信號及指令譯碼器對其的操作數(shù)地址的選擇信號,存取數(shù)據(jù)存儲器的數(shù)據(jù),或取出功能塊寄存器組的數(shù)據(jù),并通過多路選擇器送至寄存器組中的累加器堆棧中;數(shù)據(jù)存儲器,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器對其操作數(shù)地址的選擇,存取寄存器組、功能塊寄存器組的數(shù)據(jù);寄存器組,通過跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制及指令譯碼器傳來的操作數(shù)地址,選擇寄存器組中的寄存器,將該寄存器中的操作數(shù)輸出至位處理器進(jìn)行處理;或存取數(shù)據(jù)存儲器及I\O數(shù)據(jù)存儲器中的數(shù)據(jù);位處理器,通過指令譯碼器的操作碼,對來自寄存器組的操作數(shù)以及通過多路選擇器選擇的來自功能塊寄存器組、數(shù)據(jù)存儲器、I\O數(shù)據(jù)存儲器并存儲在寄存器組累加器堆棧中的數(shù)據(jù)進(jìn)行相應(yīng)處理,并將處理結(jié)果存儲到寄存器組、狀態(tài)寄存器、數(shù)據(jù)存儲器或I\O數(shù)據(jù)存儲器中;跳轉(zhuǎn)調(diào)用指令及存取指令處理單元,接收來自控制單元的控制信號,根據(jù)指令譯碼器傳來的操作碼,分別對指令計數(shù)器進(jìn)行操作,對寄存器組、功能塊寄存器組、數(shù)據(jù)存儲器、I\O數(shù)據(jù)存儲器進(jìn)行存取操作控制;I\O數(shù)據(jù)存儲器,接收來自跳轉(zhuǎn)調(diào)用指令及存取指令處理單元的控制信號以及指令譯碼器的操作數(shù)地址選擇信號,與寄存器組、功能塊寄存器組以及I\O數(shù)據(jù)存儲器進(jìn)行數(shù)據(jù)存??;狀態(tài)寄存器,保存位處理器執(zhí)行后的狀態(tài)結(jié)果,并通過中斷方式,將狀態(tài)信號發(fā)送至通用處理器。
2.按權(quán)利要求1所述的高性能可編程控制器的處理器體系結(jié)構(gòu),其特征在于功能塊 單元中每類功能塊并行擴(kuò)展1 16個同類功能塊單元,每個功能塊具有自己的功能塊寄存器組。
3.按權(quán)利要求1所述的高性能可編程控制器的處理器體系結(jié)構(gòu),其特征在于所述指 令譯碼器譯碼使用的指令格式為位邏輯運算指令格式、可跳轉(zhuǎn)位邏輯運算指令格式、跳轉(zhuǎn) 調(diào)用及存取指令格式以及功能塊指令格式,其中位邏輯運算指令格式,第31 30位為組碼;第29 26位為操作碼;第25位用于判斷 當(dāng)前位邏輯運算指令的操作數(shù)是否存儲在累加器堆棧當(dāng)中;第24位為條件位,用于對通用 處理器運算的條件使能,其值決定于存儲在狀態(tài)寄存器中的狀態(tài)結(jié)果;第23 16位,用于 存儲保存位邏輯運算結(jié)果的寄存器地址,其寄存器地址編碼位數(shù)為8位;第15 8位,用于 存儲保存位邏輯運算操作數(shù)之一的寄存器地址;第7 0位,用于存儲保存位邏輯運算另一 操作數(shù)的寄存器地址??商D(zhuǎn)位邏輯運算指令格式,第31 30位為組碼;第29 26位為操作碼;第25位決 定是否跳轉(zhuǎn)的條件位;第24位為條件位,用于對通用處理器運算的條件使能,其值決定于 狀態(tài)寄存器的狀態(tài)結(jié)果;第23 8位,為跳轉(zhuǎn)偏移位,其跳轉(zhuǎn)偏移量為該可跳轉(zhuǎn)位邏輯運算 指令跳轉(zhuǎn)到可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符或累加器堆棧中的操作數(shù)出棧并求或指令 的偏移量;第7 0位,為存儲累加器堆棧指針寄存器保存的當(dāng)前累加器堆棧值的地址;跳轉(zhuǎn)調(diào)用及存取指令格式,第31 30位為組碼;第29 26位為操作碼;第25位,用 于區(qū)分跳轉(zhuǎn)調(diào)用指令及存取指令,當(dāng)I = 0時,代表跳轉(zhuǎn)調(diào)用指令,當(dāng)I = 1時,代表存取 指令;第24位,為條件位,用于基于條件位跳轉(zhuǎn)偏移的跳轉(zhuǎn)調(diào)用指令,其條件位的值來自于 累加器堆棧當(dāng)前值或功能塊單元輸出值或來自通用處理器的運算結(jié)果,如通用處理器執(zhí)行 比較指令后的比較結(jié)果;第23 16位,表示累加器堆棧棧頂?shù)刂坊蚣拇嫫鞯刂?;?5 0 位,表示跳轉(zhuǎn)調(diào)用偏移位或操作數(shù)存取地址;功能塊指令格式,第31 30位為組碼;第29 26位為操作碼;第25位,表示復(fù)位優(yōu) 先位或加計數(shù)器輸入的上升沿觸發(fā)位;第24位,表示置位優(yōu)先位或減計數(shù)器輸入的上升沿 觸發(fā)位;第23位表示復(fù)位或時鐘電平;第22位,表示裝入加減計數(shù)器初始值使能位或計時 器使能位;第21 11位,表示計數(shù)器當(dāng)前值或計時器當(dāng)前值;第10 0位,表示計數(shù)器予 置值或計時器予置值。
4.按權(quán)利要求3所述的高性能可編程控制器的處理器體系結(jié)構(gòu),其特征在于所述指 令譯碼器譯碼使用的指令格式中組碼及操作碼表示的指令集為位邏輯運算指令集、可跳轉(zhuǎn) 位邏輯運算指令集、跳轉(zhuǎn)調(diào)用指令集、存取指令集、功能塊指令集,其中位邏輯運算指令集包括位與操作指令、位與非操作指令、位或操作指令、位異或操作 指令以及位異或非操作指令;可跳轉(zhuǎn)位邏輯運算指令集包括位累與操作指令、位累與非操作指令、位累或操作指 令、位累或非操作指令、可跳轉(zhuǎn)位邏輯運算指令跳轉(zhuǎn)結(jié)束符、累加器堆棧棧頂操作數(shù)出棧并求或指令;跳轉(zhuǎn)調(diào)用指令集包括無條件跳轉(zhuǎn)指令、符合條件跳轉(zhuǎn)指令、不符合條件跳轉(zhuǎn)指令、無 條件功能塊調(diào)用指令、符合條件功能塊調(diào)用指令、不符合條件功能塊調(diào)用指令、無條件從功 能或功能塊返回指令、符合條件功能或功能塊返回指令、不符合條件功能或功能塊返回指 令。存取指令集包括L0ADQBIT 取功能塊單元的布爾輸出值到累加器堆棧中; ST0REQBIT 將功能塊單元的布爾輸出值存儲到功能塊寄存器組中; L0ADNQBIT 取功能塊單元的輸出值后取反輸出到累加器堆棧中; ST0RENQBIT 將功能塊單元的輸出值取反存儲到功能塊寄存器組中; L0ADMBIT 從存儲器單元取操作數(shù)到寄存器組或功能塊寄存器組中; ST0REMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)直接存儲到存儲器單元中; L0ADNMBIT 從存儲器單元取操作數(shù)取反后存儲到寄存器組或功能塊寄存器組中; ST0RENMBIT 將寄存器組或功能塊寄存器組的數(shù)據(jù)取反后存儲到存儲器單元中; L0ADI0BIT 從1\0數(shù)據(jù)存儲器直接取數(shù)到寄存器組中; ST0REI0BIT 將寄存器組數(shù)據(jù)直接送到1\0數(shù)據(jù)存儲器中; L0ADNI0BIT 從1\0數(shù)據(jù)存儲器取的數(shù)據(jù)取反后存儲到寄存器組中; ST0RENI0BIT 將寄存器組數(shù)據(jù)取反后送到從1\0數(shù)據(jù)存儲器中; L0ADRMBIT 將寄存器組的內(nèi)部寄存器的值壓棧到累加器堆棧中; ST0RERMBIT 將累加器堆棧中的值出棧到寄存器組的內(nèi)部寄存器中; L0ADNRMBIT 將寄存器組的內(nèi)部寄存器的值取反壓棧到累加器堆棧中; ST0RENRMBIT 將累加器堆棧中的值取反出棧到寄存器組的內(nèi)部寄存器中; 功能塊指令集包括置位優(yōu)先功能塊指令、復(fù)位優(yōu)先功能塊指令、上升沿檢測功能塊指 令、下降沿檢測功能塊指令、加計數(shù)器功能塊指令、減計數(shù)器功能塊指令、加減計數(shù)器功能 塊指令、脈沖功能塊指令、接通延時功能塊指令、斷開延時功能塊指令、實時時鐘功能塊指 令。
專利摘要本實用新型涉及一種高性能可編程控制器專用處理器體系結(jié)構(gòu),包括PLC專用指令集處理器、通用處理器,其中PLC專用指令集處理器通過PLC專用集處理器與通用處理器的接口與通用處理器相連;所述PLC專用指令集處理器具有以下結(jié)構(gòu)指令存儲器、指令計數(shù)器、指令寄存器、指令譯碼器、控制單元、功能塊單元、功能塊寄存器組、數(shù)據(jù)存儲器、寄存器組、位處理器、跳轉(zhuǎn)調(diào)用指令及存取指令處理單元、I\O數(shù)據(jù)存儲器、狀態(tài)寄存器,本實用新型通過設(shè)計符合PLC指令特征的PLC專用指令集,減少PLC處理器執(zhí)行的指令數(shù),加快可編程控制器程序的執(zhí)行速度,提高了PLC處理器對功能塊指令的處理性能。
文檔編號G05B19/05GK201716564SQ20102023816
公開日2011年1月19日 申請日期2010年6月25日 優(yōu)先權(quán)日2010年6月25日
發(fā)明者劉志峰, 呂巖, 曾舒婷, 楊志家, 段茂強, 謝闖 申請人:中國科學(xué)院沈陽自動化研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1