專(zhuān)利名稱(chēng):一種并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器。
背景技術(shù):
在進(jìn)行時(shí)序控制的可編程序控制器中,時(shí)序程序即運(yùn)算執(zhí)行處理 (arithmetic-logic unit) 一般通過(guò) MPU (Micro Processing Unit)或 ASIC (Application Specific Integrated Circuit)來(lái)執(zhí)行,根據(jù)構(gòu)成時(shí)序程序的命令,分別通過(guò)MPU進(jìn)行處理或通過(guò)ASIC進(jìn)行處理。另外,MPU是將CPU的功能集成在一個(gè)LSI中的器件,另外,ASIC 是為了某種特定的用途而設(shè)計(jì)、制造的集成電路。在特開(kāi)2009-116445號(hào)公報(bào)中公開(kāi)了一種通過(guò)這樣的一臺(tái)可編程序控制器執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的下述(A)及(B)的技術(shù)。(A)如圖1所示那樣,在由一個(gè)MPU10、一個(gè)存儲(chǔ)器20以及一個(gè)ASIC30構(gòu)成的硬件中,通過(guò)該ASIC30具有的一個(gè)運(yùn)算處理電路,如圖2所示那樣,分時(shí)執(zhí)行多個(gè)(η個(gè))程序(程序⑴ 程序(η)。在該結(jié)構(gòu)的可編程序控制器中,由于一個(gè)運(yùn)算處理電路按時(shí)間序列處理一個(gè)一個(gè)的程序,所以存在如圖2所示那樣,到將所有的程序處理完成之前的時(shí)間變長(zhǎng)的問(wèn)題。(B)雖然是由一個(gè)MPU10、一個(gè)存儲(chǔ)器20以及一個(gè)ASIC30構(gòu)成的硬件,但是,如圖 3所示那樣,該ASIC30包含多個(gè)(η個(gè))運(yùn)算處理電路(運(yùn)算處理電路(1) 運(yùn)算處理電路(η))以及一個(gè)調(diào)停電路38,能夠并行執(zhí)行多個(gè)(η個(gè))程序(程序(1) 程序(η)。如圖4所示那樣,到將程序(1) 程序(η)處理完成為止的時(shí)間是處理時(shí)間最長(zhǎng)的程序(在圖4的例子中為程序(1))的執(zhí)行時(shí)間t。在所述㈧的技術(shù)中,如圖2所示那樣,存在合計(jì)處理時(shí)間變長(zhǎng)的問(wèn)題。另一方面,在所述(B)的技術(shù)中,如圖3所示那樣,通過(guò)ASIC30內(nèi)部的多個(gè)運(yùn)算處理電路及一個(gè)MPUlO執(zhí)行多個(gè)時(shí)序程序。因此,如果在構(gòu)成程序的命令中、MPU執(zhí)行的命令的占有比例變大,則多個(gè)程序同時(shí)請(qǐng)求MPU執(zhí)行命令的可能性就變高,其結(jié)果是因等待MPU 的命令執(zhí)行、程序停止這樣的問(wèn)題。圖5是用于說(shuō)明現(xiàn)有技術(shù)問(wèn)題點(diǎn)的圖,表示通過(guò)所述的圖5的可編程序控制器并行處理多個(gè)程序(程序(1) (3))。符號(hào)100是MPU的執(zhí)行命令時(shí)間,符號(hào)112是ASIC的執(zhí)行命令時(shí)間。另外符號(hào)114和符號(hào)116表示程序的處理停止。因?yàn)镸PUlO為一臺(tái),所以要等待通過(guò)MPUlO執(zhí)行的程序(1)的處理結(jié)束,來(lái)開(kāi)始通過(guò)MPUlO執(zhí)行的程序(2)的處理。還要等待通過(guò)MPUlO執(zhí)行的程序(2)的處理結(jié)束,來(lái)開(kāi)始 MPUlO的程序(3)的處理。如此,因?yàn)镸PUlO只有一個(gè),所以無(wú)法同時(shí)處理多個(gè)程序的MPU 執(zhí)行命令,存在引起程序停止的問(wèn)題。
發(fā)明內(nèi)容
因此本發(fā)明是鑒于上述現(xiàn)有技術(shù)的問(wèn)題點(diǎn)而提出的,其目的在于提供一種并行執(zhí)
3行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器,該可編程序控制器即使在構(gòu)成程序的命令中 MPU執(zhí)行的命令的占有比例變大、多個(gè)程序同時(shí)請(qǐng)求MPU執(zhí)行命令的情況下,也能夠縮短因等待MPU執(zhí)行命令導(dǎo)致程序停止的時(shí)間。本發(fā)明的并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器具備多個(gè)運(yùn)算處理電路,其通過(guò)硬件執(zhí)行時(shí)序程序中的預(yù)定的第一命令;多個(gè)MPU,其執(zhí)行如下的第二命令,該第二命令是在并行執(zhí)行的多個(gè)獨(dú)立的時(shí)序程序中,無(wú)法通過(guò)所述運(yùn)算處理電路來(lái)執(zhí)行的命令;第一轉(zhuǎn)發(fā)單元,其將在所述運(yùn)算處理電路中所產(chǎn)生的至少一個(gè)所述第二命令的信息按照產(chǎn)生該命令的順序轉(zhuǎn)發(fā)到所述MPU ;以及第二轉(zhuǎn)發(fā)單元,其將所述MPU已執(zhí)行的所述第二命令的執(zhí)行結(jié)果的信息轉(zhuǎn)發(fā)到所述第二命令的信息的產(chǎn)生源即所述運(yùn)算處理電路。另外, 所述多個(gè)運(yùn)算處理電路被劃分為與所述MPU的數(shù)量相同數(shù)量的、包含至少一個(gè)運(yùn)算處理電路的群組,并且這些群組中的至少一個(gè)群組包含至少兩個(gè)運(yùn)算處理電路,并與該包含至少兩個(gè)運(yùn)算處理電路的群組相對(duì)應(yīng)地配置了所述第一、第二轉(zhuǎn)發(fā)單元以及所述MPU。另外,能夠具有選擇單元,其在將所述多個(gè)運(yùn)算處理電路劃分成多個(gè)群組時(shí),能夠選擇使各個(gè)運(yùn)算處理電路歸屬于這些多個(gè)群組中的哪一個(gè)。另外,所述選擇單元具備寄存器,其存儲(chǔ)用于指定所述運(yùn)算處理電路中的各個(gè)電路歸屬于哪一個(gè)群組的數(shù)據(jù);以及選擇電路,其根據(jù)在所述寄存器中所存儲(chǔ)的數(shù)據(jù),將所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路與其所屬的群組的所述MPU、所述第一轉(zhuǎn)發(fā)單元及所述第二轉(zhuǎn)發(fā)單元相關(guān)聯(lián)起來(lái)。指定所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路歸屬于哪個(gè)群組的所述數(shù)據(jù)是將所述多個(gè)獨(dú)立的時(shí)序程序任意地分給所述群組并進(jìn)行仿真時(shí),所述多個(gè)時(shí)序程序的執(zhí)行時(shí)間最短的組合的數(shù)據(jù)。在已形成只有一個(gè)運(yùn)算處理電路所屬的群組時(shí),可以在該運(yùn)算處理電路上連接如下的轉(zhuǎn)發(fā)單元,該轉(zhuǎn)發(fā)單元是與用于將在該運(yùn)算處理電路中所產(chǎn)生的所述第二命令信息直接轉(zhuǎn)發(fā)給對(duì)應(yīng)的MPU的所述第一及第二轉(zhuǎn)發(fā)單元不同的轉(zhuǎn)發(fā)單元。也可以代替執(zhí)行第二命令的所述多個(gè)MPU,使用在一個(gè)芯片上具有多個(gè)內(nèi)核的一個(gè) MPU。根據(jù)本發(fā)明提供一種并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器,該可編程序控制器即使在構(gòu)成程序的命令中,MPU執(zhí)行的命令的占有比例較大、并且多個(gè)程序同時(shí)請(qǐng)求MPU執(zhí)行命令的情況下,也能夠縮短因等待MPU執(zhí)行命令而導(dǎo)致的程序停止的時(shí)間。
根據(jù)參照附圖的以下的實(shí)施例,本發(fā)明所述的以及其它的目的和特征變得明了。圖1是用于說(shuō)明安裝包含具有一個(gè)運(yùn)算處理電路的ASIC和一個(gè)MPU的硬件的、現(xiàn)有技術(shù)的可編程序控制器的一個(gè)例子的主要部分框圖。圖2是用于說(shuō)明通過(guò)圖1的可編程序控制器分時(shí)執(zhí)行多個(gè)程序時(shí)的、到執(zhí)行完所有這些程序?yàn)橹沟臅r(shí)間的圖。圖3是用于說(shuō)明安裝包含具有多個(gè)運(yùn)算處理電路和一個(gè)調(diào)停電路的ASIC、以及一個(gè)MPU的硬件的、現(xiàn)有技術(shù)的可編程序控制器的一個(gè)例子的主要部分框圖。圖4是用于說(shuō)明通過(guò)圖3的可編程序控制器并行執(zhí)行多個(gè)程序時(shí)的、到執(zhí)行完所有這些程序?yàn)橹沟臅r(shí)間的圖。圖5是用于說(shuō)明通過(guò)圖3的可編程序控制器并行執(zhí)行多個(gè)程序時(shí)產(chǎn)生的問(wèn)題點(diǎn)的圖。圖6是表示安裝包含具有多個(gè)(η個(gè))運(yùn)算處理電路和兩個(gè)調(diào)停電路的ASIC、以及兩個(gè)MPU,并在其一方的調(diào)停電路上連接k( < η)個(gè)運(yùn)算處理電路的硬件的、本發(fā)明的可編程序控制器的第一實(shí)施方式的主要部分框圖。圖7是用于說(shuō)明在并行執(zhí)行的8個(gè)程序中,構(gòu)成一個(gè)程序的命令幾乎都是MPU執(zhí)行命令、構(gòu)成剩余的七個(gè)程序的命令幾乎都是ASIC命令時(shí)的程序執(zhí)行時(shí)間的圖。但是該圖的程序執(zhí)行時(shí)間是在通過(guò)專(zhuān)用的運(yùn)算處理電路及專(zhuān)用的MPU來(lái)執(zhí)行各程序時(shí)的、即不會(huì)因各程序由于與其它程序競(jìng)爭(zhēng),等待MPU執(zhí)行命令而停止時(shí)的執(zhí)行時(shí)間。圖8是表示在圖6的可編程序控制器中、以η (ASIC包含的運(yùn)算處理電路的數(shù)量) =8、k(與一方的調(diào)停電路連接的運(yùn)算處理電路的數(shù)量)=4為例的主要部分框圖。圖9是用于說(shuō)明通過(guò)圖8的結(jié)構(gòu)的可編程序控制器執(zhí)行了圖7的程序時(shí)的程序執(zhí)行時(shí)間的圖。圖10是表示安裝包含具有8個(gè)運(yùn)算處理電路和一個(gè)調(diào)停電路的ASIC、以及兩個(gè) MPU、并且在其調(diào)停電路上連接7個(gè)運(yùn)算處理電路、剩下的一個(gè)運(yùn)算處理電路直接與一方的 MPU連接的硬件的結(jié)構(gòu)的可編程序控制器的例子的主要部分框圖。圖11是用于說(shuō)明通過(guò)圖10的結(jié)構(gòu)的可編程序控制器執(zhí)行了圖7的程序時(shí)的程序執(zhí)行時(shí)間的圖。圖12是表示安裝包含具有多個(gè)(η個(gè))運(yùn)算處理電路和多個(gè)(m個(gè))調(diào)停電路的 ASIC、以及多個(gè)(m個(gè))MPU、并且能夠根據(jù)并行執(zhí)行的程序的內(nèi)容來(lái)變更各個(gè)調(diào)停電路調(diào)停的運(yùn)算處理電路的數(shù)量的硬件的、本發(fā)明的可編程序控制器的第二實(shí)施方式的主要部分框圖。圖13是表示在圖12的可編程序控制器中、以m(ASIC所包含的調(diào)停電路的數(shù)量及 MPU的數(shù)量)=2的例的主要部分框圖。圖14是用于說(shuō)明在圖13的可編程序控制器中、n(ASIC所包含的運(yùn)算處理電路的數(shù)量)=8(但是調(diào)停電路的數(shù)量為一個(gè))的第一結(jié)構(gòu)例的圖。圖15是用于說(shuō)明在圖13的可編程序控制器中、n(ASIC所包含的運(yùn)算處理電路的數(shù)量)=8、并在一方的調(diào)停電路上連接兩個(gè)運(yùn)算處理電路的第二結(jié)構(gòu)例的圖。圖16是用于說(shuō)明在圖13的可編程序控制器中、n(ASIC所包含的運(yùn)算處理電路的數(shù)量)=8、并在一方的調(diào)停電路上連接三個(gè)運(yùn)算處理電路的第三結(jié)構(gòu)例的圖。圖17是用于說(shuō)明在圖13的可編程序控制器中、n(ASIC所包含的運(yùn)算處理電路數(shù))=8、并在一方的調(diào)停電路上連接四個(gè)運(yùn)算處理電路的第四結(jié)構(gòu)例的圖。圖18是用于說(shuō)明在圖13的可編程序控制器中、能夠?qū)ⅵ莻€(gè)運(yùn)算處理電路適當(dāng)?shù)貏澐殖蛇B接在兩個(gè)調(diào)停電路中的一方上的群組和連接在另一方的調(diào)停電路上的群組的硬件結(jié)構(gòu)的例子的圖。
具體實(shí)施例方式以下,在時(shí)序程序中,將能夠通過(guò)執(zhí)行運(yùn)算處理(arithmetic and logicaloperation)的電路(以下稱(chēng)為運(yùn)算處理電路(arithmetic-logic circuit)執(zhí)行的命令稱(chēng)為“第一命令”、將無(wú)法在所述運(yùn)算處理電路中執(zhí)行的、通過(guò)MPU來(lái)處理的命令稱(chēng)為“第二命令”。運(yùn)算處理電路具有MPU命令執(zhí)行請(qǐng)求單元,其在第二命令產(chǎn)生時(shí)輸出MPU命令執(zhí)行請(qǐng)求信號(hào),并在該MPU命令執(zhí)行請(qǐng)求信號(hào)輸出后處于停止?fàn)顟B(tài)直到MPU完成該第二命令的執(zhí)行為止;以及重啟單元,其接收MPU已完成所述第二命令的執(zhí)行的信號(hào)后,重啟程序執(zhí)行?!暗谝晦D(zhuǎn)發(fā)單元”具有接收單元,其在第二命令產(chǎn)生時(shí)依次接收MPU命令執(zhí)行請(qǐng)求信號(hào);存儲(chǔ)單元,其依次存儲(chǔ)產(chǎn)生所述第二命令的所述運(yùn)算處理電路的ID號(hào)和所述第二命令的程序地址;以及MPU執(zhí)行開(kāi)始單元,其從所述接收單元依次向MPU輸出用于MPU根據(jù)在所述存儲(chǔ)單元中存儲(chǔ)的程序地址來(lái)依次執(zhí)行所述第二命令的MPU命令執(zhí)行開(kāi)始信號(hào)?!暗诙D(zhuǎn)發(fā)單元”具有MPU執(zhí)行完成通知單元,其在MPU每次執(zhí)行完第二命令時(shí),將 MPU命令執(zhí)行完成信號(hào)和執(zhí)行結(jié)果輸出到具有與該已完成的第二命令對(duì)應(yīng)的所述ID號(hào)的運(yùn)算處理電路。如所述的特開(kāi)2009-116445號(hào)公報(bào)中記載的那樣,所述的第一轉(zhuǎn)發(fā)單元及第二轉(zhuǎn)發(fā)單元是公知技術(shù)。首先,參照?qǐng)D6 圖11對(duì)本發(fā)明的并行執(zhí)行多個(gè)時(shí)序程序的可編程序控制器的第一實(shí)施方式進(jìn)行說(shuō)明。該實(shí)施方式的可編程序控制器設(shè)置多組的具有多個(gè)MPU、多個(gè)運(yùn)算處理電路以及與MPU數(shù)量相同的調(diào)停電路的硬件。或者該實(shí)施方式的可編程序控制器設(shè)置多組的具有一個(gè)MPU、多個(gè)運(yùn)算處理電路以及一個(gè)調(diào)停電路的硬件。所述調(diào)停電路是在請(qǐng)求MPU執(zhí)行運(yùn)算處理電路無(wú)法執(zhí)行的命令(MPU執(zhí)行命令)時(shí)的多個(gè)運(yùn)算處理電路之間進(jìn)行調(diào)停的電路。另外,也可以使用如多核MPU那樣、在一個(gè)芯片上具有多個(gè)內(nèi)核的一個(gè)MPU代替使用多個(gè)MPU。S卩,該實(shí)施方式的可編程序控制器相當(dāng)于如圖3(公知技術(shù))所示那樣的、將多套由一個(gè)MPU10、一個(gè)ASIC30(包含多個(gè)運(yùn)算處理電路和一個(gè)調(diào)停電路38)構(gòu)成的硬件連接在一個(gè)或兩個(gè)以上的存儲(chǔ)器20上的裝置。圖6所示的可編程序控制器表示安裝包含具有η個(gè)運(yùn)算處理電路和兩個(gè)調(diào)停電路 31,32的ASIC30以及兩個(gè)MPU11、12的硬件的、可編程序控制器的例子。即圖6所示的可編程序控制器是相當(dāng)于將兩組圖3所示的具有一個(gè)MPUlO和一個(gè)ASIC30的硬件連接在存儲(chǔ)器20上的裝置。在第一實(shí)施方式中,在各時(shí)序程序執(zhí)行開(kāi)始前,通過(guò)軟件進(jìn)行仿真將多個(gè)時(shí)序程序分別分配到多個(gè)群組,使得所有程序執(zhí)行時(shí)間為最短。由此能夠用最短的時(shí)間處理這些多個(gè)時(shí)序程序。但是,因?yàn)椴⑿袌?zhí)行的程序的數(shù)量、或者在各程序中包含的MPU執(zhí)行命令的比例也多種多樣,因此即使MPU為多個(gè),也有無(wú)法最大限度地有效使用這些MPU的情況。圖7是用于說(shuō)明構(gòu)成程序(1)的命令幾乎都是MPU執(zhí)行命令、另一方面構(gòu)成程序 (2) (8)的命令幾乎都是ASIC執(zhí)行命令時(shí)的程序的執(zhí)行時(shí)間的圖。但是,該圖的程序的執(zhí)行時(shí)間是通過(guò)專(zhuān)用的運(yùn)算處理電路和專(zhuān)用的MPU執(zhí)行各程序時(shí)的、即不會(huì)因各程序通過(guò)與其它程序競(jìng)爭(zhēng),等待MPU執(zhí)行命令而停止時(shí)的執(zhí)行時(shí)間。圖8表示的可編程序控制器是假設(shè)在圖6所示的可編程序控制器中n(ASIC30包含的運(yùn)算處理電路的數(shù)量)=8、k(與調(diào)停電路1連接的運(yùn)算處理電路的數(shù)量)=4的例子。在該可編程序控制器中,在ASIC30中具備8個(gè)運(yùn)算處理電路(1) ⑶和兩個(gè)調(diào)停電路31、32。在第一調(diào)停電路31上連接運(yùn)算處理電路(1) (4)、在第二調(diào)停電路32上連接運(yùn)算處理電路(5) (8)。另外,在第一 MPUll上連接第一調(diào)停電路31、在第二 MPU12 上連接第二調(diào)停電路32。S卩,圖8所示的可編程序控制器相當(dāng)于將兩組具有圖3(公知技術(shù))所示的 ASIC30(包含η = 4個(gè)運(yùn)算處理電路和一個(gè)調(diào)停電路)和一個(gè)MPU的硬件與存儲(chǔ)器20連接。圖9是用于說(shuō)明通過(guò)圖8的結(jié)構(gòu)的可編程序控制器執(zhí)行了圖7的程序時(shí)的程序的執(zhí)行時(shí)間的圖。第一 MPUll通過(guò)程序(1) (4)的執(zhí)行處理等候MPU命令執(zhí)行,因此發(fā)生
程序停止。因此為了避免圖9所示的停止時(shí)間的問(wèn)題,變更圖8所示的調(diào)停電路和運(yùn)算處理電路的組合。圖10表示安裝包含具有8個(gè)運(yùn)算處理電路和一個(gè)調(diào)停電路的ASIC及兩個(gè)MPU的硬件的、可編程序控制器的例子。這8個(gè)運(yùn)算處理電路中的一個(gè)運(yùn)算處理電路(1)直接與第一 MPUll連接,剩余的7個(gè)運(yùn)算處理電路⑵ ⑶與調(diào)停電路39連接。該調(diào)停電路39 與第二 MPU12連接。即此時(shí)調(diào)停電路的數(shù)量與MPU的數(shù)量不一致。圖11是用于說(shuō)明通過(guò)圖10的結(jié)構(gòu)的可編程序控制器執(zhí)行了圖7的程序時(shí)的程序的執(zhí)行時(shí)間的圖。在構(gòu)成程序(1)的命令幾乎都是MPU執(zhí)行命令、構(gòu)成程序(2) (8)的命令幾乎都是ASIC執(zhí)行命令時(shí),與圖8的硬件結(jié)構(gòu)相比,圖10的硬件結(jié)構(gòu)的可編程序控制器能夠縮短整體的執(zhí)行時(shí)間。接著參照?qǐng)D12 圖18對(duì)本發(fā)明的并行執(zhí)行多個(gè)時(shí)序程序的可編程序控制器的第二實(shí)施方式進(jìn)行說(shuō)明。因?yàn)樵诿總€(gè)程序中MPU執(zhí)行命令和ASIC執(zhí)行命令的比例不同,因此在該實(shí)施方式中,能夠根據(jù)執(zhí)行的程序變更多個(gè)MPU和運(yùn)算處理電路的組合。圖12表示能夠變更與MPU數(shù)量相同(m個(gè))的調(diào)停電路中的每一個(gè)電路調(diào)停的運(yùn)算處理電路的數(shù)量的可編程序控制器的一般例。在該可編程序控制器中能夠根據(jù)應(yīng)該并行執(zhí)行的程序的內(nèi)容選擇最佳的硬件結(jié)構(gòu)。圖13是具備兩個(gè)MPU、與MPU數(shù)量相同的兩個(gè)調(diào)停電路以及η個(gè)運(yùn)算處理電路(但是η為能夠被2整除的數(shù))的可編程序控制器的一般例。在該可編程序控制器中將這η個(gè)運(yùn)算處理電路劃分為與一方的調(diào)停電路(調(diào)停電路(1))連接的群組和與另一方的調(diào)停電路(調(diào)停電路(2))連接的群組。如下所示那樣,該群組劃分方式為η/2種。1連接MPU(I)、調(diào)停電路(1)、運(yùn)算處理電路(1)。連接MPU⑵、調(diào)停電路⑵、運(yùn)算處理電路⑵ (η)。2
連接MPU(I)、調(diào)停電路(1)、運(yùn)算處理電路(1)及(2)。連接MPU (2)、調(diào)停電路(2)、運(yùn)算處理電路(3) (η)。3連接MPU(I)、調(diào)停電路(1)、運(yùn)算處理電路(1) (3)。連接MPU⑵、調(diào)停電路⑵、運(yùn)算處理電路⑷ (η)?!璠η/2]連接MPU(I)、調(diào)停電路(1)、運(yùn)算處理電路(1) (η/2)。連接MPU (2)、調(diào)停電路⑵、運(yùn)算處理電路(n/2+l) (η)。圖14(第一結(jié)構(gòu))、圖15(第二結(jié)構(gòu))、圖16(第三結(jié)構(gòu))以及圖17(第四結(jié)構(gòu)) 表示假設(shè)在圖13的可編程序控制器(兩個(gè)MPU、η個(gè)運(yùn)算處理電路)中,η(運(yùn)算處理電路數(shù))=8的例子。當(dāng)圖13的可編程序控制器為η(運(yùn)算處理電路數(shù))=8時(shí),能夠根據(jù)程序?qū)蓚€(gè) MPU和8個(gè)運(yùn)算處理電路的組合,通過(guò)設(shè)定具有這些運(yùn)算處理電路及MPU的硬件結(jié)構(gòu)的寄存器變更為如圖14 圖17 (第一結(jié)構(gòu) 第四結(jié)構(gòu))那樣。后面將參照?qǐng)D18來(lái)闡述關(guān)于能夠進(jìn)行該變更的硬件結(jié)構(gòu)。另外,關(guān)于如何設(shè)定該硬件結(jié)構(gòu),即如何組合兩個(gè)MPU和8個(gè)運(yùn)算處理電路(8個(gè)運(yùn)算處理電路的分組),在各時(shí)序程序執(zhí)行開(kāi)始前通過(guò)軟件進(jìn)行仿真,通過(guò)使用全部硬件結(jié)構(gòu)的組合執(zhí)行多個(gè)程序的結(jié)果,采用所有程序的執(zhí)行時(shí)間最短的組合。如以上那樣,能夠在執(zhí)行多個(gè)獨(dú)立的時(shí)序程序時(shí),構(gòu)成多組具備多個(gè)運(yùn)算處理電路、一個(gè)或多個(gè)調(diào)停電路以及多個(gè)MPU的硬件,并根據(jù)時(shí)序程序的內(nèi)容變更(重組)可編程序控制器的硬件結(jié)構(gòu),由此縮短因等待MPU執(zhí)行命令的執(zhí)行導(dǎo)致停止執(zhí)行程序的時(shí)間。圖18表示能夠在圖13的可編程序控制器(兩個(gè)MPU、η個(gè)運(yùn)算處理電路)中、如圖14 圖17那樣變更兩個(gè)MPU和η個(gè)運(yùn)算處理電路的組合的、具有這些運(yùn)算處理電路及 MPU的硬件的寄存器設(shè)定。在圖18中省略圖示存儲(chǔ)器20。在第一調(diào)停電路31上連接第一 MPU11、在第二調(diào)停電路32上連接第二 MPU12。第一調(diào)停電路31能夠調(diào)停運(yùn)算處理電路(1) (n/幻,并將在這些運(yùn)算處理電路中的任意一個(gè)中所產(chǎn)生的MPU命令執(zhí)行請(qǐng)求信號(hào)按其所產(chǎn)生的順序輸出到第一 MPUl 1。另外,第一MPUll在命令執(zhí)行完成時(shí),將MPU命令執(zhí)行完成信號(hào)輸出到第一調(diào)停電路31。第一調(diào)停電路31將該MPU命令執(zhí)行完成信號(hào)輸出到輸出了 MPU命令執(zhí)行請(qǐng)求信號(hào)的運(yùn)算處理電路。第二調(diào)停電路32能夠調(diào)停運(yùn)算處理電路(2) (η),并將在這些運(yùn)算處理電路中的任意一個(gè)運(yùn)算處理電路所產(chǎn)生的MPU命令執(zhí)行請(qǐng)求信號(hào)按其所產(chǎn)生的順序輸出到第二 MPU12。因此,運(yùn)算處理電路O) (η/2),能夠與第一調(diào)停電路31和第二調(diào)停電路32中的任意一個(gè)連接。即如圖18所示那樣經(jīng)由選擇器51 59連接運(yùn)算處理電路( (η/2)、 第一調(diào)停電路31及第二調(diào)停電路32,根據(jù)選擇器51 59的設(shè)定,將運(yùn)算處理電路(2)
8(η/2)輸出的MPU命令執(zhí)行請(qǐng)求信號(hào)及數(shù)據(jù)輸出到第一調(diào)停電路31和第二調(diào)停電路32中的某一方。然后,將MPU命令執(zhí)行請(qǐng)求信號(hào)及數(shù)據(jù)從第一調(diào)停電路31或第二調(diào)停電路32 輸出到第一 MPUll或第二 MPU12。另外,在圖18中,選擇器51 59并不意味9個(gè)選擇器, 僅是賦予圖18中未省略地表示的選擇器的圖形參照號(hào)。另一方面,將第一 MPUll或第二 MPU12所輸出的MPU命令執(zhí)行完成信號(hào)從第一調(diào)停電路31或第二調(diào)停電路32直接或經(jīng)由選擇器51 59輸出到輸出了 MPU命令執(zhí)行請(qǐng)求信號(hào)的運(yùn)算處理電路。運(yùn)算處理電路(1)和第一調(diào)停電路31直接(未經(jīng)由選擇器地)連
接在一起。從寄存器及解碼器40的端子S1、S2.....S(n/2_1)輸出的信號(hào)是0或1的輸出,
根據(jù)該輸出值來(lái)切換選擇器51 59。根據(jù)來(lái)自寄存器及解碼器40的指示來(lái)切換選擇器。 如何設(shè)定選擇器51 59作為選擇器設(shè)定信息d從第二 MPU12賦予給寄存器及解碼器40。 另外,也可以從第一 MPUll賦予針對(duì)寄存器及解碼器40的選擇器設(shè)定信息。以選擇器51、52、57為例進(jìn)行說(shuō)明。來(lái)自運(yùn)算處理電路(2)的端子a的輸出,輸入到選擇器51的0端子和選擇器57的0端子。選擇器51、57的1端子接地,選擇器51的輸出,輸入到第一調(diào)停電路31的端子8( 。選擇器57的輸出,輸入到第二調(diào)停電路32的端子姻。將來(lái)自第一調(diào)停電路31的b⑵端子的輸出輸入到選擇器52的0端子,將來(lái)自第二調(diào)停電路32的bO)端子的輸出輸入到選擇器52的1端子。另外,將選擇器52的輸出輸入到運(yùn)算處理電路O)的b端子。運(yùn)算處理電路(3) (η/2)也同樣經(jīng)由選擇器53 56、58、59連接至第一調(diào)停電路31和第二調(diào)停電路32。將從寄存器及解碼器40的Sl端子的輸出輸入到選擇器51、52的切換端子,另一方面,經(jīng)由逆變器(inverter)60輸入到選擇器57的切換端子。例如當(dāng)從寄存器及解碼器 40的端子Sl輸出表示“1”的信號(hào)時(shí),將選擇器51的開(kāi)關(guān)與“1”連接,當(dāng)從Sl輸出表示“0” 的信號(hào)時(shí),將選擇器51的開(kāi)關(guān)與“0”連接。如所述那樣,從各運(yùn)算處理電路(1) (η)的a端子將MPU命令執(zhí)行請(qǐng)求信號(hào)及數(shù)據(jù)直接或經(jīng)由選擇器51 59輸出到第一調(diào)停電路31或第二調(diào)停電路32。在圖18中, 運(yùn)算處理電路(1)直接與第一調(diào)停電路31連接,另外,運(yùn)算處理電路(n/2+l) 運(yùn)算處理電路(η)直接與第二調(diào)停電路32連接。另外,從第一調(diào)停電路31或第二調(diào)停電路32將MPU命令執(zhí)行完成信號(hào)直接或經(jīng)由選擇器51 59輸出到各運(yùn)算處理電路。通過(guò)寄存器及解碼器40生成選擇器51 59的選擇信號(hào)。用于決定將(η/2_1) 個(gè)運(yùn)算處理電路與第一調(diào)停電路31或第二調(diào)停電路32中的哪一個(gè)連接的選擇信號(hào) S(n/2-l)、. . .、S3、S2、S1 如表 1 所示那樣?!幢?>
權(quán)利要求
1.一種可編程序控制器,其并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序,該可編程序控制器的特征在于,具備多個(gè)運(yùn)算處理電路,其通過(guò)硬件執(zhí)行時(shí)序程序中的預(yù)定的第一命令;多個(gè)MPU,其執(zhí)行如下的第二命令,該第二命令是在并行執(zhí)行的多個(gè)獨(dú)立的時(shí)序程序中,無(wú)法通過(guò)所述運(yùn)算處理電路來(lái)執(zhí)行的命令;第一轉(zhuǎn)發(fā)單元,其將在所述運(yùn)算處理電路中所產(chǎn)生的至少一個(gè)所述第二命令的信息, 按照產(chǎn)生該命令的順序轉(zhuǎn)發(fā)到所述MPU ;以及第二轉(zhuǎn)發(fā)單元,其將所述MPU所執(zhí)行的所述第二命令的執(zhí)行結(jié)果的信息轉(zhuǎn)發(fā)到所述第二命令的信息的產(chǎn)生源即所述運(yùn)算處理電路,所述多個(gè)運(yùn)算處理電路被劃分為與所述MPU的數(shù)量相同數(shù)量的包含至少一個(gè)運(yùn)算處理電路的群組,并且這些群組中的至少一個(gè)群組包含至少兩個(gè)運(yùn)算處理電路,并與該包含至少兩個(gè)運(yùn)算處理電路的群組相對(duì)應(yīng)地配置了所述第一、第二轉(zhuǎn)發(fā)單元以及所述MPU。
2.根據(jù)權(quán)利要求1所述的可編程序控制器,其特征在于,還具備選擇單元,其在將所述多個(gè)運(yùn)算處理電路劃分為多個(gè)群組時(shí),能夠選擇使各個(gè)運(yùn)算處理電路歸屬于這些多個(gè)群組中的哪一個(gè)。
3.根據(jù)權(quán)利要求2所述的可編程序控制器,其特征在于,而且,所述選擇單元具備寄存器,其存儲(chǔ)用于指定所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路歸屬于哪一個(gè)群組的數(shù)據(jù);以及選擇電路,其根據(jù)在所述寄存器中所存儲(chǔ)的數(shù)據(jù),將所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路與對(duì)應(yīng)于所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路所屬的群組的所述MPU、所述第一轉(zhuǎn)發(fā)單元及所述第二轉(zhuǎn)發(fā)單元相關(guān)聯(lián)起來(lái)。
4.根據(jù)權(quán)利要求3所述的可編程序控制器,其特征在于,指定所述運(yùn)算處理電路中的各個(gè)運(yùn)算處理電路歸屬于哪一個(gè)群組的所述數(shù)據(jù),是將所述多個(gè)獨(dú)立的時(shí)序程序任意地分給所述群組并進(jìn)行仿真時(shí)、所述多個(gè)時(shí)序程序的執(zhí)行時(shí)間最短的組合的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的可編程序控制器,其特征在于,在已形成了只有一個(gè)運(yùn)算處理電路所屬的群組時(shí),在該運(yùn)算處理電路上連接如下的轉(zhuǎn)發(fā)單元,該轉(zhuǎn)發(fā)單元是與用于將在該運(yùn)算處理電路中所產(chǎn)生的所述第二命令的信息直接轉(zhuǎn)發(fā)給對(duì)應(yīng)的MPU的所述第一及第二轉(zhuǎn)發(fā)單元不同的轉(zhuǎn)發(fā)單元。
6.根據(jù)權(quán)利要求1所述的可編程序控制器,其特征在于,代替執(zhí)行第二命令的所述多個(gè)MPU,使用在一個(gè)芯片上具有多個(gè)內(nèi)核的一個(gè)MPU。
全文摘要
本發(fā)明提供一種并行執(zhí)行多個(gè)獨(dú)立的時(shí)序程序的可編程序控制器,其具備包含多個(gè)運(yùn)算處理電路和多個(gè)調(diào)停電路的ASIC、以及與調(diào)停電路數(shù)量相同的MPU。根據(jù)在構(gòu)成并行執(zhí)行的程序的命令中、分別以多大程度的比例包含MPU執(zhí)行命令和ASIC執(zhí)行命令來(lái)變更多個(gè)MPU(及與其相同數(shù)量的調(diào)停電路)和多個(gè)運(yùn)算處理電路的組合(運(yùn)算處理電路的群組),由此縮短程序可編程序控制器的整體執(zhí)行時(shí)間。
文檔編號(hào)G05B19/05GK102169332SQ20111004137
公開(kāi)日2011年8月31日 申請(qǐng)日期2011年2月14日 優(yōu)先權(quán)日2010年2月25日
發(fā)明者宮地基好, 小倉(cāng)萬(wàn)壽夫, 野本靖司 申請(qǐng)人:發(fā)那科株式會(huì)社