新四季網

高性能可編程控制器專用處理器體系結構及其實現方法

2023-06-18 19:17:51

專利名稱:高性能可編程控制器專用處理器體系結構及其實現方法
技術領域:
本發明涉及一種應用於自動控制領域中的處理器,具體的說是一種高性能可編程控制器的處理器體系結構及其實現方法。
背景技術:
可編程控制器(PLC)是以微處理器為核心,把自動化技術、通信技術融為一體的新型工業自動控制裝置。可編程控制器以其可靠性高、抗幹擾能力強、實時性強、控制程序可變、體積小、功耗低、使用方便、易維護等特點,廣泛應用於工業行業的各個領域,如鋼鐵、 石油、化工、電力、建材、機械製造、汽車、輕紡、交通運輸等。隨著可編程控制器國際標準IEC_61131_3的頒布,可編程控制器在系統結構上, 從傳統的單機向多處理器發展;在控制系統組態上,從單機控制系統到分布式及過程控制系統發展;在程式語言上,呈多樣化及簡易化發展,創造了符合控制要求及通信能力的編程環境。由於信息技術的迅猛發展,可編程控制器對工業網絡通信能力及實時性要求越來越高。這不僅要求可編程控制器通信能力的提高,而且需求可編程控制器的核心處理器提高其處理性能。現有自主研發的可編程控制器微處理器,大多採用通用微處理器或者通用處理器和布爾協處理器相結合的形式。通用處理器主要面向字節、字的處理,而可編程控制器指令主要面向比特位操作,佔可編程控制器指令使用頻率的69%。這就迫切需要推出適合於可編程控制器處理特徵的處理器。

發明內容
針對現有技術中存在的處理器速度不能充分滿足工業自動控制領域有關實時性的要求,本發明要解決的技術問題是提供一種能夠很好的滿足實時性要求的高性能可編程控制器的處理器體系結構及其實現方法。為解決上述技術問題,本發明採用的技術方案是本發明一種高性能可編程控制器的處理器體系結構,包括PLC專用指令集處理器、通用處理器,其中PLC專用指令集處理器通過PLC專用集處理器與通用處理器的接口與通用處理器相連;所述PLC專用指令集處理器具有以下結構指令存儲器、指令計數器、指令寄存器、指令解碼器、控制單元、功能塊單元、功能塊寄存器組、數據存儲器、寄存器組、位處理器、跳轉調用指令及存取指令處理單元、1\0數據存儲器、狀態寄存器,其中指令存儲器,存儲通用處理器並行編譯後的指令,在指令計數器的控制下,將指令發送至指令寄存器;指令計數器,計算下一條指令地址,實現指令地址的自增,並在跳轉調用指令及存取指令處理單元的控制下,按照跳轉調用指令中指令地址偏移需求,改變指令地址;在位處理器的控制下,按照可跳轉位邏輯運算指令指令地址偏移需求,改變指令地址;將自增後的指令地址、執行跳轉調用指令後改變的指令地址及執行可跳轉位邏輯運算指令後改變的指令地址,通過指令計數器中指令地址選擇,將指令存儲器中對應的指令輸出至指令寄存器;指令寄存器,接收指令計數器選擇的指令存儲器中的指令,輸出該指令至指令解碼器;指令解碼器,將從指令寄存器輸入的指令進行解碼後,將操作碼輸出至位處理器、 跳轉調用指令及存取指令處理單元、功能塊單元,將操作數地址輸出至寄存器組、功能塊寄存器組、數據存儲器及1\0存儲器;控制單元,向指令計數器、指令寄存器、指令解碼器發送控制指令;接收指令解碼器操作碼中的組碼,分別對位處理器、跳轉調用指令及存取指令處理單元和功能塊單元進行控制;並控制與通用處理器進行中斷信號的接收或發送;功能塊單元,接收控制單元的控制信號和指令解碼器的操作碼,與功能塊寄存器組進行數據的存取操作;功能塊寄存器組,存儲來自功能塊單元的執行結果,根據來自跳轉調用指令及存取指令處理單元的控制信號及指令解碼器對其的操作數地址的選擇信號,存取數據存儲器的數據,或取出功能塊寄存器組的數據,並通過多路選擇器送至寄存器組中的累加器堆棧中;數據存儲器,通過跳轉調用指令及存取指令處理單元的控制及指令解碼器對其操作數地址的選擇,存取寄存器組、功能塊寄存器組的數據;寄存器組,通過跳轉調用指令及存取指令處理單元的控制及指令解碼器傳來的操作數地址,選擇寄存器組中的寄存器,將該寄存器中的操作數輸出至位處理器進行處理;或存取數據存儲器及1\0數據存儲器中的數據;位處理器,通過指令解碼器的操作碼,對來自寄存器組的操作數以及通過多路選擇器選擇的來自功能塊寄存器組、數據存儲器、1\0數據存儲器並存儲在寄存器組累加器堆棧中的數據進行相應處理,並將處理結果存儲到寄存器組、狀態寄存器、數據存儲器或1\0 數據存儲器中;跳轉調用指令及存取指令處理單元,接收來自控制單元的控制信號,根據指令解碼器傳來的操作碼,分別對指令計數器進行操作,對寄存器組、功能塊寄存器組、數據存儲器、1\0數據存儲器進行存取操作控制;1\0數據存儲器,接收來自跳轉調用指令及存取指令處理單元的控制信號以及指令解碼器的操作數地址選擇信號,與寄存器組、功能塊寄存器組以及1\0數據存儲器進行數據存取;狀態寄存器,保存位處理器執行後的狀態結果,並通過中斷方式,將狀態信號發送至通用處理器。功能塊單元中每類功能塊並行擴展1 16個同類功能塊單元,每個功能塊具有自己的功能塊寄存器組。所述指令解碼器解碼使用的指令格式為位邏輯運算指令格式、可跳轉位邏輯運算指令格式、跳轉調用及存取指令格式以及功能塊指令格式,其中位邏輯運算指令格式,第31 30位為組碼;第四 沈位為操作碼 』第25位用於判斷當前位邏輯運算指令的操作數是否存儲在累加器堆棧當中;第M位為條件位,用於對通用處理器運算的條件使能,其值決定於存儲在狀態寄存器中的狀態結果;第23 16位, 用於存儲保存位邏輯運算結果的寄存器地址,其寄存器地址編碼位數為8位;第15 8位, 用於存儲保存位邏輯運算操作數之一的寄存器地址;第7 0位,用於存儲保存位邏輯運算另一操作數的寄存器地址。可跳轉位邏輯運算指令格式,第31 30位為組碼;第29 沈位為操作碼;第25 位決定是否跳轉的條件位;第M位為條件位,用於對通用處理器運算的條件使能,其值決定於狀態寄存器的狀態結果;第23 8位,為跳轉偏移位,其跳轉偏移量為該可跳轉位邏輯運算指令跳轉到可跳轉位邏輯運算指令跳轉結束符或累加器堆棧中的操作數出棧並求或指令的偏移量;第7 0位,為存儲累加器堆棧指針寄存器保存的當前累加器堆棧值的地址;跳轉調用及存取指令格式,第31 30位為組碼;第四 沈位為操作碼;第25位, 用於區分跳轉調用指令及存取指令,當I = 0時,代表跳轉調用指令,當I = 1時,代表存取指令;第M位,為條件位,用於基於條件位跳轉偏移的跳轉調用指令,其條件位的值來自於累加器堆棧當前值或功能塊單元輸出值或來自通用處理器的運算結果,如通用處理器執行比較指令後的比較結果;第23 16位,表示累加器堆棧棧頂地址或寄存器地址;第15 0 位,表示跳轉調用偏移位或操作數存取地址;功能塊指令格式,第31 30位為組碼;第四 沈位為操作碼;第25位,表示復位優先位或加計數器輸入的上升沿觸發位;第M位,表示置位優先位或減計數器輸入的上升沿觸發位;第23位表示復位或時鐘電平;第22位,表示裝入加減計數器初始值使能位或計時器使能位;第21 11位,表示計數器當前值或計時器當前值;第10 0位,表示計數器予置值或計時器予置值。所述指令解碼器解碼使用的指令格式中組碼及操作碼表示的指令集為位邏輯運算指令集、可跳轉位邏輯運算指令集、跳轉調用指令集、存取指令集、功能塊指令集,其中位邏輯運算指令集包括位與操作指令、位與非操作指令、位或操作指令、位異或操作指令以及位異或非操作指令;可跳轉位邏輯運算指令集包括位累與操作指令、位累與非操作指令、位累或操作指令、位累或非操作指令、可跳轉位邏輯運算指令跳轉結束符、累加器堆棧棧頂操作數出棧並求或指令;跳轉調用指令集包括無條件跳轉指令、符合條件跳轉指令、不符合條件跳轉指令、無條件功能塊調用指令、符合條件功能塊調用指令、不符合條件功能塊調用指令、無條件從功能或功能塊返回指令、符合條件功能或功能塊返回指令、不符合條件功能或功能塊返回指令。存取指令集包括L0ADQBIT 取功能塊單元的布爾輸出值到累加器堆棧中;ST0REQBIT 將功能塊單元的布爾輸出值存儲到功能塊寄存器組中;L0ADNQBIT:取功能塊單元的輸出值後取反輸出到累加器堆棧中;ST0RENQBIT 將功能塊單元的輸出值取反存儲到功能塊寄存器組中;L0ADMBIT 從存儲器單元取操作數到寄存器組或功能塊寄存器組中;
ST0REMBIT 將寄存器組或功能塊寄存器組的數據直接存儲到存儲器單元中;L0ADNMBIT:從存儲器單元取操作數取反後存儲到寄存器組或功能塊寄存器組中;ST0RENMBIT 將寄存器組或功能塊寄存器組的數據取反後存儲到存儲器單元中;L0ADI0BIT 從1\0數據存儲器直接取數到寄存器組中;ST0REI0BIT 將寄存器組數據直接送到1\0數據存儲器中;L0ADNI0BIT 從1\0數據存儲器取的數據取反後存儲到寄存器組中;ST0RENI0BIT 將寄存器組數據取反後送到從1\0數據存儲器中;L0ADRMBIT 將寄存器組的內部寄存器的值壓棧到累加器堆棧中;ST0RERMBIT 將累加器堆棧中的值出棧到寄存器組的內部寄存器中;L0ADNRMBIT 將寄存器組的內部寄存器的值取反壓棧到累加器堆棧中;ST0RENRMBIT 將累加器堆棧中的值取反出棧到寄存器組的內部寄存器中;功能塊指令集包括置位優先功能塊指令、復位優先功能塊指令、上升沿檢測功能塊指令、下降沿檢測功能塊指令、加計數器功能塊指令、減計數器功能塊指令、加減計數器功能塊指令、脈衝功能塊指令、接通延時功能塊指令、斷開延時功能塊指令、實時時鐘功能塊指令。本發明一種高性能可編程控制器專用指令集處理器體系結構的實現方法,按照該可編程控制器專用指令集處理器採用四級流水線,包括以下步驟取指階段依據指令計數器計算的指令地址,從指令存儲器取指令至指令寄存器當中;解碼階段從指令寄存器取出指令送入指令解碼器進行解碼,通過指令中操作數地址,取出操作數;並依據指令中組碼,將相應的操作碼及操作數送至對應的處理單元中;執行階段依據指令解碼器發出的操作碼及操作數,位處理器、功能塊單元、跳轉調用指令及存取指令處理單元給予相應處理;如執行的指令不是可編程控制器專用指令集處理器的指令時,則由控制單元向通用處理器發出中斷請求,該可編程控制器專用指令集處理器可繼續執行與通用處理器指令無依賴關係的指令,當通用處理器向可編程控制器專用指令集處理器發送中斷請求時,可編程控制器專用指令集處理器將保存通用處理器的執行結果到狀態寄存器中;將存儲器訪問階段與執行階段,合為執行階段;存儲器訪問由跳轉調用指令及存取指令處理單元執行;回寫階段將可編程控制器專用指令集處理器的結果,依據存取指令類型寫回累加器堆棧、內部寄存器、數據存儲器內部寄存器或1\0存儲器當中。所述位處理器處理位邏輯運算指令及可跳轉位邏輯運算指令當位處理器執行位邏輯運算指令時,從累加器堆棧棧頂和寄存器組中取操作數後,進行位邏輯運算操作,將運算結果存儲到累加器堆棧棧頂或寄存器組中;執行完成後存儲位處理器的運算結果。當位處理器執行可跳轉位邏輯運算指令時,按可跳轉位邏輯運算指令的執行過程執行,執行完成後存儲位處理器的運算結果;所述可跳轉位邏輯運算指令的執行過程為由位處理器判斷該可跳轉位邏輯指令為位累與操作指令、位累與非操作指令、位累或操作指令還是位累或非操作指令;若為位累與操作指令或位累與非操作指令,且累加器堆棧的棧頂值為0,則執行與操作或與非操作,將執行結果存儲在累加器堆棧的棧頂,並設置指令格式中跳轉條件位為 1,並設置跳轉偏移量值為可跳轉位邏輯運算指令跳轉結束符與該可跳轉位邏輯運算指令的偏移量,執行跳轉;一次執行過程結束。如果不滿足「位累與操作指令或位累與非操作指令,且累加器堆棧的棧頂值為0」 條件,則不執行跳轉,只執行位累與操作或位累與非操作,並設置指令格式中跳轉條件位為 O0若為位累或操作指令或位累或非操作指令,且累加器堆棧的棧頂值為1,則執行位累或操作或位累或非操作,將執行結果存儲存儲在累加器堆棧的棧頂,並設置指令格式中跳轉條件位為1,設置跳轉偏移量值為可跳轉位邏輯運算跳轉結束符指令或累加器堆棧中的操作數出棧並求或指令到該位累或操作指令的偏移量;執行跳轉;一次執行過程結束。如果不滿足「位累或操作指令或位累或非操作指令,且累加器堆棧的棧頂值為「1」 條件,則不執行跳轉,只執行位累或操作或位累或非操作,並設置指令格式中跳轉條件位為 O0所述可跳轉位邏輯運算指令中的位累與操作指令、位累與非操作指令、位累或操作指令、位累或非操作指令,其執行過程與累加器堆棧的值相關,為區別於位邏輯運算指令中的與操作指令、與非操作指令、或操作指令、或非操作指令而命名。本發明具有以下有益效果及優點1.本發明通過設計符合PLC指令特徵的PLC專用指令集,減少PLC處理器執行的指令數,加快可編程控制器程序的執行速度。2.本發明通過設計嵌入在PLC專用指令集處理器中的功能塊單元及功能塊寄存器組,提高了 PLC處理器對功能塊指令的處理性能。3.本發明通過設計PLC專用指令集處理器中符合PLC高頻數據訪問特徵的寄存器組、數據存儲器、1\0數據存儲器的直接存取方式,加快了 PLC數據的存取速度。4.本發明通過設計針對PLC大多採用位數據類型的特徵,對寄存器組、數據存儲器按位編址,提高了 PLC專用指令集處理器對位數據存取的速度,相應地提高了 PLC專用指令集處理器的處理性能。


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀