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