首页> 中国专利> 一种并行执行多个独立的时序程序的可编程序控制器

一种并行执行多个独立的时序程序的可编程序控制器

摘要

本发明提供一种并行执行多个独立的时序程序的可编程序控制器,其具备包含多个运算处理电路和多个调停电路的ASIC、以及与调停电路数量相同的MPU。根据在构成并行执行的程序的命令中、分别以多大程度的比例包含MPU执行命令和ASIC执行命令来变更多个MPU(及与其相同数量的调停电路)和多个运算处理电路的组合(运算处理电路的群组),由此缩短程序可编程序控制器的整体执行时间。

著录项

  • 公开/公告号CN102169332A

    专利类型发明专利

  • 公开/公告日2011-08-31

    原文格式PDF

  • 申请/专利权人 发那科株式会社;

    申请/专利号CN201110041373.X

  • 发明设计人 小仓万寿夫;野本靖司;宫地基好;

    申请日2011-02-14

  • 分类号G05B19/05;

  • 代理机构北京银龙知识产权代理有限公司;

  • 代理人许静

  • 地址 日本山梨县

  • 入库时间 2023-12-18 03:13:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-08-07

    授权

    授权

  • 2011-10-12

    实质审查的生效 IPC(主分类):G05B19/05 申请日:20110214

    实质审查的生效

  • 2011-08-31

    公开

    公开

说明书

技术领域

本发明涉及并行执行多个独立的时序程序的可编程序控制器。

背景技术

在进行时序控制的可编程序控制器中,时序程序即运算执行处理(arithmetic-logic unit)一般通过MPU(Micro Processing Unit)或ASIC(Application Specific Integrated Circuit)来执行,根据构成时序程序的命令,分别通过MPU进行处理或通过ASIC进行处理。另外,MPU是将CPU的功能集成在一个LSI中的器件,另外,ASIC是为了某种特定的用途而设计、制造的集成电路。

在特开2009-116445号公报中公开了一种通过这样的一台可编程序控制器执行多个独立的时序程序的下述(A)及(B)的技术。

(A)如图1所示那样,在由一个MPU10、一个存储器20以及一个ASIC30构成的硬件中,通过该ASIC30具有的一个运算处理电路,如图2所示那样,分时执行多个(n个)程序(程序(1)~程序(n)。在该结构的可编程序控制器中,由于一个运算处理电路按时间序列处理一个一个的程序,所以存在如图2所示那样,到将所有的程序处理完成之前的时间变长的问题。

(B)虽然是由一个MPU10、一个存储器20以及一个ASIC30构成的硬件,但是,如图3所示那样,该ASIC30包含多个(n个)运算处理电路(运算处理电路(1)~运算处理电路(n))以及一个调停电路38,能够并行执行多个(n个)程序(程序(1)~程序(n)。如图4所示那样,到将程序(1)~程序(n)处理完成为止的时间是处理时间最长的程序(在图4的例子中为程序(1))的执行时间t。

在所述(A)的技术中,如图2所示那样,存在合计处理时间变长的问题。

另一方面,在所述(B)的技术中,如图3所示那样,通过ASIC30内部的多个运算处理电路及一个MPU10执行多个时序程序。因此,如果在构成程序的命令中、MPU执行的命令的占有比例变大,则多个程序同时请求MPU执行命令的可能性就变高,其结果是因等待MPU的命令执行、程序停止这样的问题。

图5是用于说明现有技术问题点的图,表示通过所述的图5的可编程序控制器并行处理多个程序(程序(1)~(3))。符号100是MPU的执行命令时间,符号112是ASIC的执行命令时间。另外符号114和符号116表示程序的处理停止。

因为MPU10为一台,所以要等待通过MPU10执行的程序(1)的处理结束,来开始通过MPU10执行的程序(2)的处理。还要等待通过MPU10执行的程序(2)的处理结束,来开始MPU10的程序(3)的处理。如此,因为MPU10只有一个,所以无法同时处理多个程序的MPU执行命令,存在引起程序停止的问题。

发明内容

因此本发明是鉴于上述现有技术的问题点而提出的,其目的在于提供一种并行执行多个独立的时序程序的可编程序控制器,该可编程序控制器即使在构成程序的命令中MPU执行的命令的占有比例变大、多个程序同时请求MPU执行命令的情况下,也能够缩短因等待MPU执行命令导致程序停止的时间。

本发明的并行执行多个独立的时序程序的可编程序控制器具备:多个运算处理电路,其通过硬件执行时序程序中的预定的第一命令;多个MPU,其执行如下的第二命令,该第二命令是在并行执行的多个独立的时序程序中,无法通过所述运算处理电路来执行的命令;第一转发单元,其将在所述运算处理电路中所产生的至少一个所述第二命令的信息按照产生该命令的顺序转发到所述MPU;以及第二转发单元,其将所述MPU已执行的所述第二命令的执行结果的信息转发到所述第二命令的信息的产生源即所述运算处理电路。另外,所述多个运算处理电路被划分为与所述MPU的数量相同数量的、包含至少一个运算处理电路的群组,并且这些群组中的至少一个群组包含至少两个运算处理电路,并与该包含至少两个运算处理电路的群组相对应地配置了所述第一、第二转发单元以及所述MPU。

另外,能够具有选择单元,其在将所述多个运算处理电路划分成多个群组时,能够选择使各个运算处理电路归属于这些多个群组中的哪一个。

另外,所述选择单元具备:寄存器,其存储用于指定所述运算处理电路中的各个电路归属于哪一个群组的数据;以及选择电路,其根据在所述寄存器中所存储的数据,将所述运算处理电路中的各个运算处理电路与其所属的群组的所述MPU、所述第一转发单元及所述第二转发单元相关联起来。

指定所述运算处理电路中的各个运算处理电路归属于哪个群组的所述数据是将所述多个独立的时序程序任意地分给所述群组并进行仿真时,所述多个时序程序的执行时间最短的组合的数据。

在已形成只有一个运算处理电路所属的群组时,可以在该运算处理电路上连接如下的转发单元,该转发单元是与用于将在该运算处理电路中所产生的所述第二命令信息直接转发给对应的MPU的所述第一及第二转发单元不同的转发单元。

也可以代替执行第二命令的所述多个MPU,使用在一个芯片上具有多个内核的一个MPU。

根据本发明提供一种并行执行多个独立的时序程序的可编程序控制器,该可编程序控制器即使在构成程序的命令中,MPU执行的命令的占有比例较大、并且多个程序同时请求MPU执行命令的情况下,也能够缩短因等待MPU执行命令而导致的程序停止的时间。

附图说明

根据参照附图的以下的实施例,本发明所述的以及其它的目的和特征变得明了。

图1是用于说明安装包含具有一个运算处理电路的ASIC和一个MPU的硬件的、现有技术的可编程序控制器的一个例子的主要部分框图。

图2是用于说明通过图1的可编程序控制器分时执行多个程序时的、到执行完所有这些程序为止的时间的图。

图3是用于说明安装包含具有多个运算处理电路和一个调停电路的ASIC、以及一个MPU的硬件的、现有技术的可编程序控制器的一个例子的主要部分框图。

图4是用于说明通过图3的可编程序控制器并行执行多个程序时的、到执行完所有这些程序为止的时间的图。

图5是用于说明通过图3的可编程序控制器并行执行多个程序时产生的问题点的图。

图6是表示安装包含具有多个(n个)运算处理电路和两个调停电路的ASIC、以及两个MPU,并在其一方的调停电路上连接k(<n)个运算处理电路的硬件的、本发明的可编程序控制器的第一实施方式的主要部分框图。

图7是用于说明在并行执行的8个程序中,构成一个程序的命令几乎都是MPU执行命令、构成剩余的七个程序的命令几乎都是ASIC命令时的程序执行时间的图。但是该图的程序执行时间是在通过专用的运算处理电路及专用的MPU来执行各程序时的、即不会因各程序由于与其它程序竞争,等待MPU执行命令而停止时的执行时间。

图8是表示在图6的可编程序控制器中、以n(ASIC包含的运算处理电路的数量)=8、k(与一方的调停电路连接的运算处理电路的数量)=4为例的主要部分框图。

图9是用于说明通过图8的结构的可编程序控制器执行了图7的程序时的程序执行时间的图。

图10是表示安装包含具有8个运算处理电路和一个调停电路的ASIC、以及两个MPU、并且在其调停电路上连接7个运算处理电路、剩下的一个运算处理电路直接与一方的MPU连接的硬件的结构的可编程序控制器的例子的主要部分框图。

图11是用于说明通过图10的结构的可编程序控制器执行了图7的程序时的程序执行时间的图。

图12是表示安装包含具有多个(n个)运算处理电路和多个(m个)调停电路的ASIC、以及多个(m个)MPU、并且能够根据并行执行的程序的内容来变更各个调停电路调停的运算处理电路的数量的硬件的、本发明的可编程序控制器的第二实施方式的主要部分框图。

图13是表示在图12的可编程序控制器中、以m(ASIC所包含的调停电路的数量及MPU的数量)=2的例的主要部分框图。

图14是用于说明在图13的可编程序控制器中、n(ASIC所包含的运算处理电路的数量)=8(但是调停电路的数量为一个)的第一结构例的图。

图15是用于说明在图13的可编程序控制器中、n(ASIC所包含的运算处理电路的数量)=8、并在一方的调停电路上连接两个运算处理电路的第二结构例的图。

图16是用于说明在图13的可编程序控制器中、n(ASIC所包含的运算处理电路的数量)=8、并在一方的调停电路上连接三个运算处理电路的第三结构例的图。

图17是用于说明在图13的可编程序控制器中、n(ASIC所包含的运算处理电路数)=8、并在一方的调停电路上连接四个运算处理电路的第四结构例的图。

图18是用于说明在图13的可编程序控制器中、能够将n个运算处理电路适当地划分成连接在两个调停电路中的一方上的群组和连接在另一方的调停电路上的群组的硬件结构的例子的图。

具体实施方式

以下,在时序程序中,将能够通过执行运算处理(arithmetic and logical operation)的电路(以下称为运算处理电路(arithmetic-logic circuit)执行的命令称为“第一命令”、将无法在所述运算处理电路中执行的、通过MPU来处理的命令称为“第二命令”。

运算处理电路具有:MPU命令执行请求单元,其在第二命令产生时输出MPU命令执行请求信号,并在该MPU命令执行请求信号输出后处于停止状态直到MPU完成该第二命令的执行为止;以及重启单元,其接收MPU已完成所述第二命令的执行的信号后,重启程序执行。

“第一转发单元”具有:接收单元,其在第二命令产生时依次接收MPU命令执行请求信号;存储单元,其依次存储产生所述第二命令的所述运算处理电路的ID号和所述第二命令的程序地址;以及MPU执行开始单元,其从所述接收单元依次向MPU输出用于MPU根据在所述存储单元中存储的程序地址来依次执行所述第二命令的MPU命令执行开始信号。

“第二转发单元”具有MPU执行完成通知单元,其在MPU每次执行完第二命令时,将MPU命令执行完成信号和执行结果输出到具有与该已完成的第二命令对应的所述ID号的运算处理电路。

如所述的特开2009-116445号公报中记载的那样,所述的第一转发单元及第二转发单元是公知技术。

首先,参照图6~图11对本发明的并行执行多个时序程序的可编程序控制器的第一实施方式进行说明。

该实施方式的可编程序控制器设置多组的具有多个MPU、多个运算处理电路以及与MPU数量相同的调停电路的硬件。或者该实施方式的可编程序控制器设置多组的具有一个MPU、多个运算处理电路以及一个调停电路的硬件。所述调停电路是在请求MPU执行运算处理电路无法执行的命令(MPU执行命令)时的多个运算处理电路之间进行调停的电路。

另外,也可以使用如多核MPU那样、在一个芯片上具有多个内核的一个MPU代替使用多个MPU。

即,该实施方式的可编程序控制器相当于如图3(公知技术)所示那样的、将多套由一个MPU10、一个ASIC30(包含多个运算处理电路和一个调停电路38)构成的硬件连接在一个或两个以上的存储器20上的装置。

图6所示的可编程序控制器表示安装包含具有n个运算处理电路和两个调停电路31、32的ASIC30以及两个MPU11、12的硬件的、可编程序控制器的例子。即图6所示的可编程序控制器是相当于将两组图3所示的具有一个MPU10和一个ASIC30的硬件连接在存储器20上的装置。

在第一实施方式中,在各时序程序执行开始前,通过软件进行仿真将多个时序程序分别分配到多个群组,使得所有程序执行时间为最短。由此能够用最短的时间处理这些多个时序程序。

但是,因为并行执行的程序的数量、或者在各程序中包含的MPU执行命令的比例也多种多样,因此即使MPU为多个,也有无法最大限度地有效使用这些MPU的情况。

图7是用于说明构成程序(1)的命令几乎都是MPU执行命令、另一方面构成程序(2)~(8)的命令几乎都是ASIC执行命令时的程序的执行时间的图。但是,该图的程序的执行时间是通过专用的运算处理电路和专用的MPU执行各程序时的、即不会因各程序通过与其它程序竞争,等待MPU执行命令而停止时的执行时间。

图8表示的可编程序控制器是假设在图6所示的可编程序控制器中n(ASIC30包含的运算处理电路的数量)=8、k(与调停电路1连接的运算处理电路的数量)=4的例子。

在该可编程序控制器中,在ASIC30中具备8个运算处理电路(1)~(8)和两个调停电路31、32。在第一调停电路31上连接运算处理电路(1)~(4)、在第二调停电路32上连接运算处理电路(5)~(8)。另外,在第一MPU11上连接第一调停电路31、在第二MPU12上连接第二调停电路32。

即,图8所示的可编程序控制器相当于将两组具有图3(公知技术)所示的ASIC30(包含n=4个运算处理电路和一个调停电路)和一个MPU的硬件与存储器20连接。

图9是用于说明通过图8的结构的可编程序控制器执行了图7的程序时的程序的执行时间的图。第一MPU11通过程序(1)~(4)的执行处理等候MPU命令执行,因此发生程序停止。

因此为了避免图9所示的停止时间的问题,变更图8所示的调停电路和运算处理电路的组合。

图10表示安装包含具有8个运算处理电路和一个调停电路的ASIC及两个MPU的硬件的、可编程序控制器的例子。这8个运算处理电路中的一个运算处理电路(1)直接与第一MPU11连接,剩余的7个运算处理电路(2)~(8)与调停电路39连接。该调停电路39与第二MPU12连接。即此时调停电路的数量与MPU的数量不一致。

图11是用于说明通过图10的结构的可编程序控制器执行了图7的程序时的程序的执行时间的图。在构成程序(1)的命令几乎都是MPU执行命令、构成程序(2)~(8)的命令几乎都是ASIC执行命令时,与图8的硬件结构相比,图10的硬件结构的可编程序控制器能够缩短整体的执行时间。

接着参照图12~图18对本发明的并行执行多个时序程序的可编程序控制器的第二实施方式进行说明。

因为在每个程序中MPU执行命令和ASIC执行命令的比例不同,因此在该实施方式中,能够根据执行的程序变更多个MPU和运算处理电路的组合。

图12表示能够变更与MPU数量相同(m个)的调停电路中的每一个电路调停的运算处理电路的数量的可编程序控制器的一般例。在该可编程序控制器中能够根据应该并行执行的程序的内容选择最佳的硬件结构。

图13是具备两个MPU、与MPU数量相同的两个调停电路以及n个运算处理电路(但是n为能够被2整除的数)的可编程序控制器的一般例。在该可编程序控制器中将这n个运算处理电路划分为与一方的调停电路(调停电路(1))连接的群组和与另一方的调停电路(调停电路(2))连接的群组。如下所示那样,该群组划分方式为n/2种。

【1】

连接MPU(1)、调停电路(1)、运算处理电路(1)。

连接MPU(2)、调停电路(2)、运算处理电路(2)~(n)。

【2】

连接MPU(1)、调停电路(1)、运算处理电路(1)及(2)。

连接MPU(2)、调停电路(2)、运算处理电路(3)~(n)。

【3】

连接MPU(1)、调停电路(1)、运算处理电路(1)~(3)。

连接MPU(2)、调停电路(2)、运算处理电路(4)~(n)。

【n/2】

连接MPU(1)、调停电路(1)、运算处理电路(1)~(n/2)。

连接MPU(2)、调停电路(2)、运算处理电路(n/2+1)~(n)。

图14(第一结构)、图15(第二结构)、图16(第三结构)以及图17(第四结构)表示假设在图13的可编程序控制器(两个MPU、n个运算处理电路)中,n(运算处理电路数)=8的例子。

当图13的可编程序控制器为n(运算处理电路数)=8时,能够根据程序将两个MPU和8个运算处理电路的组合,通过设定具有这些运算处理电路及MPU的硬件结构的寄存器变更为如图14~图17(第一结构~第四结构)那样。后面将参照图18来阐述关于能够进行该变更的硬件结构。

另外,关于如何设定该硬件结构,即如何组合两个MPU和8个运算处理电路(8个运算处理电路的分组),在各时序程序执行开始前通过软件进行仿真,通过使用全部硬件结构的组合执行多个程序的结果,采用所有程序的执行时间最短的组合。

如以上那样,能够在执行多个独立的时序程序时,构成多组具备多个运算处理电路、一个或多个调停电路以及多个MPU的硬件,并根据时序程序的内容变更(重组)可编程序控制器的硬件结构,由此缩短因等待MPU执行命令的执行导致停止执行程序的时间。

图18表示能够在图13的可编程序控制器(两个MPU、n个运算处理电路)中、如图14~图17那样变更两个MPU和n个运算处理电路的组合的、具有这些运算处理电路及MPU的硬件的寄存器设定。

在图18中省略图示存储器20。在第一调停电路31上连接第一MPU11、在第二调停电路32上连接第二MPU12。

第一调停电路31能够调停运算处理电路(1)~(n/2),并将在这些运算处理电路中的任意一个中所产生的MPU命令执行请求信号按其所产生的顺序输出到第一MPU11。另外,第一MPU11在命令执行完成时,将MPU命令执行完成信号输出到第一调停电路31。第一调停电路31将该MPU命令执行完成信号输出到输出了MPU命令执行请求信号的运算处理电路。

第二调停电路32能够调停运算处理电路(2)~(n),并将在这些运算处理电路中的任意一个运算处理电路所产生的MPU命令执行请求信号按其所产生的顺序输出到第二MPU12。

因此,运算处理电路(2)~(n/2),能够与第一调停电路31和第二调停电路32中的任意一个连接。即如图18所示那样经由选择器51~59连接运算处理电路(2)~(n/2)、第一调停电路31及第二调停电路32,根据选择器51~59的设定,将运算处理电路(2)~(n/2)输出的MPU命令执行请求信号及数据输出到第一调停电路31和第二调停电路32中的某一方。然后,将MPU命令执行请求信号及数据从第一调停电路31或第二调停电路32输出到第一MPU11或第二MPU12。另外,在图18中,选择器51~59并不意味9个选择器,仅是赋予图18中未省略地表示的选择器的图形参照号。

另一方面,将第一MPU11或第二MPU12所输出的MPU命令执行完成信号从第一调停电路31或第二调停电路32直接或经由选择器51~59输出到输出了MPU命令执行请求信号的运算处理电路。运算处理电路(1)和第一调停电路31直接(未经由选择器地)连接在一起。

从寄存器及解码器40的端子S1、S2、...、S(n/2-1)输出的信号是0或1的输出,根据该输出值来切换选择器51~59。根据来自寄存器及解码器40的指示来切换选择器。如何设定选择器51~59作为选择器设定信息d从第二MPU12赋予给寄存器及解码器40。另外,也可以从第一MPU11赋予针对寄存器及解码器40的选择器设定信息。

以选择器51、52、57为例进行说明。来自运算处理电路(2)的端子a的输出,输入到选择器51的0端子和选择器57的0端子。选择器51、57的1端子接地,选择器51的输出,输入到第一调停电路31的端子a(2)。选择器57的输出,输入到第二调停电路32的端子a(2)。

将来自第一调停电路31的b(2)端子的输出输入到选择器52的0端子,将来自第二调停电路32的b(2)端子的输出输入到选择器52的1端子。另外,将选择器52的输出输入到运算处理电路(2)的b端子。

运算处理电路(3)~(n/2)也同样经由选择器53~56、58、59连接至第一调停电路31和第二调停电路32。

将从寄存器及解码器40的S1端子的输出输入到选择器51、52的切换端子,另一方面,经由逆变器(inverter)60输入到选择器57的切换端子。例如当从寄存器及解码器40的端子S1输出表示“1”的信号时,将选择器51的开关与“1”连接,当从S1输出表示“0”的信号时,将选择器51的开关与“0”连接。

如所述那样,从各运算处理电路(1)~(n)的a端子将MPU命令执行请求信号及数据直接或经由选择器51~59输出到第一调停电路31或第二调停电路32。在图18中,运算处理电路(1)直接与第一调停电路31连接,另外,运算处理电路(n/2+1)~运算处理电路(n)直接与第二调停电路32连接。

另外,从第一调停电路31或第二调停电路32将MPU命令执行完成信号直接或经由选择器51~59输出到各运算处理电路。

通过寄存器及解码器40生成选择器51~59的选择信号。用于决定将(n/2-1)个运算处理电路与第一调停电路31或第二调停电路32中的哪一个连接的选择信号S(n/2-1)、...、S3、S2、S1如表1所示那样。

<表1>

在此,在(S(n/2-1)、...、S3、S2、S1)=(1、...、1、1、1)时,将数据及MPU命令执行请求信号输出到第一MPU11的仅是运算处理电路(1)。此时,不经由调停电路直接进行第一运算处理电路和第一MPU11之间的数据、MPU命令执行请求信号以及MPU命令执行完成信号的收发。

另外,将寄存器及解码器40设计成根据寄存器的设定值生成表1的选择信号的电路。该寄存器及解码器40的寄存器为能够通过MPU进行设定的结构。例如在运算处理电路为8个电路时,设置2位寄存器R1、R0,并对该数据进行解码,如表2所示那样生成选择信号S1、S2、S3。

<表2>

根据以上所说明的本发明的实施方式,本发明涉及通过使用多个运算处理电路和多个MPU的结构,并行执行多个独立的时序程序的硬件,但是根据时序程序的个数以及构成各时序程序的命令的内容,能够从多个运算处理电路和多个MPU的硬件连接的组合中选择最能缩短程序的处理时间的最佳结构。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号