管线运算装置、可编程逻辑控制器及管线处理的执行方法

文档序号:214437 发布日期:2021-11-05 浏览:1次 >En<

阅读说明:本技术 管线运算装置、可编程逻辑控制器及管线处理的执行方法 (Pipeline arithmetic device, programmable logic controller and execution method of pipeline processing ) 是由 西垣弘二 清水隆也 日下武纪 于 2020-03-09 设计创作,主要内容包括:管线运算装置(110)包括:运算部(120),包含管线;节点监视部(161),获取节点处理时间;队列监视部(162),获取累积消息量;优先级变量计算部(163),基于节点处理时间及所述节点的前段的接收队列的累积消息量,来计算所述节点的优先级变量;以及时间分配部(164),根据优先级变量对各节点分配运行时间。(A pipeline arithmetic device (110) comprises: an arithmetic unit (120) including a pipeline; a node monitoring unit (161) that acquires a node processing time; a queue monitoring unit (162) that acquires the cumulative message amount; a priority variable calculation unit (163) that calculates a priority variable for the node based on the node processing time and the cumulative message amount of the reception queue in the preceding stage of the node; and a time allocation unit (164) that allocates an operation time to each node according to the priority variable.)

管线运算装置、可编程逻辑控制器及管线处理的执行方法

技术领域

本发明涉及一种管线(pipeline)运算装置、可编程逻辑控制器及管线处理的执行方法。

背景技术

下述要求不断高涨,即:在各种生产现场的工厂自动化(Factory Automation,FA)中,收集各种机器的动作信息或流动品的测定数据、其他与生产信息有关的采样数据,进行数据库化。因此,在生产工厂中,要求可访问多样的各种机器且进行庞大的数据处理的数据收集分析系统的高性能化。

另一方面,作为在信息处理装置中处理多样数据的技术,管线处理已广为人知。专利文献1中公开了下述方法,即:在此种管线处理中,调整对各任务的执行优先级,防止接收缓冲器(接收队列)的溢流(overflow),进行适当的数据处理。

现有技术文献

专利文献

专利文献1:日本公开专利公报“日本专利特开平11-237993号公报”

发明内容

发明所要解决的问题

FA的数据收集分析系统需要以如下方式构成,即:可由用户(工厂管理者)根据生产工序而自如地规定数据收集对象机器、数据处理方法等。作为其所用的数据收集分析机器,想到使用管线运算装置。

管线运算装置可通过将数据收集对象机器、或与所需的数据处理方法对应地准备的功能块(节点)组合,从而可容易地进行用户所要求的数据处理顺序的设定。

进而,也想到将作为数据收集分析机器的管线运算装置统合至进行各种控制对象机器的控制的可编程逻辑控制器(Programmable Logic Controller,PLC)。由此,也容易将所收集的数据的分析结果反映给对各种控制对象机器的控制。

此种FA中所用的管线运算装置所处理的数据庞大,因而要求其高性能化。

本发明在一方面是鉴于此种实际情况而成,其目的在于实现一种经改良的管线运算装置,以防止接收队列的溢流,并且也可总体有效率地执行管线处理。

解决问题的技术手段

本发明为了解决所述问题,采用以下结构。

本发明的一方面的管线运算装置包括:运算部,具有多个节点及多个接收队列,且包含至少一个管线,所述管线是多个所述节点经由所述接收队列连接而成;以及控制部,具有节点监视部、队列监视部、优先级变量计算部及时间分配部,且所述管线运算装置包括下述结构:所述节点监视部从所述节点获取节点处理时间,所述节点处理时间为在所述节点处理一个消息所需要的时间,所述队列监视部从所述接收队列获取所述接收队列中的累积消息量,所述优先级变量计算部至少基于所述节点的所述节点处理时间、及所述节点的前段的接收队列的所述累积消息量,来计算所述节点的优先级变量,所述时间分配部根据每个所述节点的所述优先级变量,对所述各节点分配运行时间。

本发明的一方面的可编程逻辑控制器也可为包括所述一方面的管线运算装置的可编程逻辑控制器。

本发明的一方面的管线处理的执行方法通过至少一个管线来执行管线处理,所述管线是多个节点经由接收队列连接而成,且包括下述步骤:获取节点处理时间,所述节点处理时间为在所述节点处理一个消息所需要的时间;获取所述接收队列中的累积消息量;至少基于所述节点的所述节点处理时间、及所述节点的前段的接收队列的所述累积消息量,来计算所述节点的优先级变量;以及根据每个所述节点的所述优先级变量,对所述各节点分配运行时间。

发明的效果

根据本发明的一方面的管线运算装置,可实现一种经改良的管线运算,以防止接收队列的溢流,进而也可总体有效率地执行管线处理。

根据本发明的一方面的可编程逻辑控制器,用户容易构建下述FA系统,即:具有经高性能化的数据收集功能,且将所收集的数据的分析结果反映给各种控制对象机器的控制。

根据本发明的一方面的管线处理的执行方法,可实现一种经改良的管线运算,以防止接收队列的溢流,进而也可总体有效率地执行管线处理。

附图说明

图1为表示本发明的实施方式1的管线运算装置的概略结构图。

图2为用于说明本发明的实施方式1的管线运算装置的动作的图。(a)、(b)分别表示不同时刻的状态。

图3为表示本发明的实施方式2的可编程逻辑控制器的概略结构图。

图4为用于说明本发明的实施方式3的管线运算装置的管线的结构及动作的图。

图5为用于说明本发明的实施方式4的管线运算装置的管线的结构及动作的图。

图6为表示本发明的实施方式5的管线运算装置的概略结构图。

图7为表示本发明的实施方式7的管线运算装置的概略结构图。

图8为用于说明本发明的实施方式7的管线运算装置的管线的结构及动作的图。

图9为表示本发明的实施方式8的管线运算装置的概略结构图。

具体实施方式

〔实施方式1〕

以下,基于附图对本发明的一方面的实施方式(以下也表述为“本实施方式”)进行说明。

§1适用例

参照图1,首先对适用本发明的场景的一例进行描述。图1为表示本实施方式的管线运算装置110的结构的概略图。

管线运算装置110包括运算部120及控制部160。

运算部120具有作为功能块的多个节点(输入节点130、逻辑节点140、输出节点150)及多个接收队列141、151。运算部120中,构成多个所述节点经由接收队列连接而成的管线,在运算部120设有至少一个管线。

控制部160具有作为功能块的节点监视部161、队列监视部162、优先级变量计算部163及时间分配部164。

管线运算装置110通过执行从其外部载入的管线处理执行程序、或从包括此管线处理执行程序的记录装置(未图示)载入的管线处理执行程序,从而实现作为功能块的这些各部的功能。

节点监视部161从各节点(输入节点130、逻辑节点140、输出节点150)获取节点处理时间T,此节点处理时间T为在节点处理消息所需要的时间。

队列监视部162从接收队列141、151获取各自的累积消息量。

优先级变量计算部163至少基于所述节点的节点处理时间、及所述节点的前段的接收队列的累积消息量,来计算所述节点的优先级变量PRI。

时间分配部164根据每个节点的优先级变量PRI,对各节点分配运行时间而使其运行。

这样,本实施方式的管线运算装置110至少基于节点处理时间及接收队列的累积消息量来计算优先级变量PRI,并根据此优先级变量PRI对各节点分配运行时间。

因此,实现一种经改良的管线运算装置,以防止接收队列中的溢流,并且也可总体有效率地执行管线处理。

§2结构例

接下来,对本实施方式的管线运算装置110的结构的一例进行说明。

所谓运算部120的节点,为输入节点130、逻辑节点140、输出节点150中的任一个。各节点的功能如下。

输入节点130为从管线运算装置110的外部的机器等收集消息的功能块。输入节点130根据外部的机器等的种类或处理的消息的种类而为多种多样。本说明书中,将归总的数据称为消息,消息的内容为生产信息、控制信息、环境信息等信息。控制信息例如可为可从热发动机(thermo motor)获取的实时的力矩(torque)等参数等信息,环境信息例如可为气温等信息。

逻辑节点140为对所输入的消息进行处理,并向后段输出的功能块。逻辑节点140根据所实施的处理的内容而为多种多样。

输出节点150为将所输入的消息向管线运算装置110的外部的机器等输出的功能块。输出节点150根据外部的机器等的种类或处理的消息的种类而为多种多样。

作为管线运算装置110的外部的机器等,可为工作机械或测定机器及其他各种FA机器、收集与各种生产信息有关的数据并提供的数据库、保存与各种生产信息有关的数据的数据库、国际互联网(Internet)或其他网络上的云服务器(cloud server)。

进而,在将管线运算装置110统合至PLC的情况下,作为管线运算装置110的输入节点130或输出节点150的连接目的地,也可为PLC所包括的存储装置上的数据文件、或在PLC上运行的工作机械的动作控制程序等应用。

所谓生产信息,为包含与工作机械或测定机器及其他各种FA机器的动作有关的信息、测定数据、其他与生产有关的信息的概念。

图1中,分别示出作为输入节点130、输出节点150的连接目的地的外部机器的示例的数据服务器11、数据库12。

运算部120中,在输入节点130与输出节点150之间依次连接必要的逻辑节点140,构成管线。

在逻辑节点140的前段,设有逻辑节点的接收队列141。同样地,在输出节点150的前段,设有输出节点的接收队列151。各接收队列141、151暂时累积输入至逻辑节点140或输出节点150的消息,直到逻辑节点140或输出节点150中的处理结束而可接收下一消息为止。

构成运算部120的管线通常为多数个,但只要为至少一个即可。而且,管线并非仅限于从一个输入节点130向一个输出节点150串列连接单个或多个逻辑节点,也可在中途分支或合流。

具有节点监视部161、队列监视部162、优先级变量计算部163、时间分配部164的控制部160的结构的概略如所述§1适用例所记载。各部的功能的详情将与管线运算装置110的动作的说明一起在下文中描述。

此外,本实施方式中,作为各接收队列的累积消息量,采用作为消息的数量的累积消息数Q。

节点处理时间T具体而言可为从以下的开始时刻到结束时刻的时间。可将节点从接收队列接收消息的时刻即接收队列的出队时刻设为开始时刻。此外,输入节点130的情况下,可将进行输入节点130执行的启动(kick)的时刻设为开始时刻。

而且,可将作为节点向连接目的地的节点的接收队列送入消息的时刻的连接目的地的节点的接收队列的入队时刻设为结束时刻。此外,输出节点150的情况下,可设为下述时刻,即:向输出节点150的输出目的地的外部机器等的消息输出完成的时刻。进而,尤其在节点不向后段输出消息的情况等下,也可将在接收消息的节点自身无需进一步进行节点所接收的消息的处理的时间点(自身的处理完成的时间点),设为完成的时刻。

§3动作例

基于更具体的示例对本实施方式的管线运算装置110的动作进行说明。

输入节点130从多个数据服务器11依次获取消息。各数据服务器11可为基于超文本传输协议(Hypertext Transfer Protocol,http)或安全超文本传输协议(HypertextTransfer Protocol Secure,https)提供消息的网络服务器(Web Server)。

逻辑节点140依次从所输入的消息中,例如进行分析设备状态所需要的数据的提取,进行所需的运算并输出。逻辑节点140例如也可进行使用超文本标记语言(HyperTextMarkup Language,html)分析脚本的处理。

输出节点150依次对数据库12输出逻辑节点140所输出的消息。

图2(a)为表示各节点执行此种动作时运算部120的管线121的状态的图。对节点处理时间T、接收队列的累积消息数Q及优先级变量PRI附加的尾标i、n、o分别表示输入节点130、逻辑节点140或其接收队列141、输出节点150或其接收队列151。

所述示例中,关于各节点处理消息所需要的节点处理时间T,为Ti=20ms、Tn=100ms、To=50ms。

此时,节点监视部161从输入节点130、逻辑节点140、输出节点150获取各自的节点处理时间Ti=20ms、Tn=100ms、To=50ms。此外,此处将单位设为毫秒来表示,但也可为中央处理器(Central Processing Unit,CPU)的时钟数。

而且,关于作为各接收队列中累积的消息的数量的累积消息数Q,图2(a)的状态下,暂时成为Qn=3、Qo=0。

此时,队列监视部162从接收队列141、151分别获取累积消息数Qn=3、Qo=0。

接下来,优先级变量计算部163从节点监视部161接收各节点的节点处理时间T,而且,从队列监视部162接收各节点的累积消息数Q。而且,优先级变量计算部163关于输入节点130而将累积消息数Qi视为1。

然后,优先级变量计算部163计算针对各节点的优先级变量PRI。此处,优先级变量PRI为至少根据节点处理时间T及累积消息数Q计算的值。本实施方式的具体示例中,优先级变量PRI为节点处理时间T与累积消息数Q之积。

优先级变量计算部163计算针对各节点的优先级变量PRI为PRIi1=1×20、PRIn=3×100、PRIo=0×50。

接下来,时间分配部164根据优先级变量计算部163所计算的针对各节点的优先级变量PRI,来划分与给予运算部120的时间有关的信息处理资源、例如CPU时间。作为示例,根据优先级变量PRI将给予运算部120的CPU时间按比例分配,使各节点运行。

于是,根据图2(a)的状态,在规定时间内,不对输出节点150分配CPU时间,对逻辑节点140分配较输入节点130更大的CPU时间。

由于对逻辑节点140分配大的CPU时间,因而经过一定时间后,逻辑节点140的接收队列141的累积消息数Qn减少,作为示例而过渡至图2(b)的状态。这样,消除了输入节点130送至逻辑节点140的消息的积压。

但是,时间分配部164在对输入节点130进行了定周期执行的预约的情况下,例外地对所述输入节点130给予可进行所述动作的定周期执行的CPU时间。

对输入节点130进行了定周期执行的预约时的时间分配部164的动作如下。例如,在进行了以1ms的定周期从外部机器获取消息的预约,且输入节点130的处理时间设为0.02ms的情况下,时间分配部164以至少在1ms以内确保0.02ms的CPU时间的方式使输入节点130运行。时间分配部164在其他节点将剩余的给予运算部120的CPU时间按比例分配,使其他各节点运行。

此外,在对输入节点130进行了定周期执行的预约,且对输入节点130分配相对较大的一定的CPU时间的情况下,从输入节点130的消息输出成为高频率。于是,在管线的动作初期,在特定的节点的接收队列中消息将积压,但此时也与所述同样地调整各节点的运行时间而消除所述积压。

§4作用、效果

如上文所述,本实施方式的管线运算装置110即便暂时在特定的接收队列中过剩地累积消息,各节点的运行时间也是根据状况而动态分配,以消除过剩累积的方式运行。因此,有效地抑制管线运算的接收队列的溢流。

而且,如上文所述,优先级变量PRI是根据节点处理时间T及累积消息数Q而计算,各节点的动作时间是根据优先级变量PRI而动态分配。即,本实施方式的管线运算装置110中,实现不在节点等待动作那样的管线总体的效率化。

(比较1)

为了进行比较,对并无控制部160进行的所述那样的各节点的运行时间的调整的情况说明。

此时,例如在逻辑节点140中的消息处理需要时间时,从输入节点130输出的消息在逻辑节点140的接收队列141中积压(Qn变得过剩)。若此种状况持续,则陷入接收队列141溢流的状况。

因此,为了避免溢流,想到对输入节点130的动作设置等待时间。例如,在逻辑节点140的节点处理时间为Tn=100ms的情况下,将输入节点130的动作的等待时间设定为200ms,仅以200ms以上的时间间隔向逻辑节点140的接收队列141发送消息。此种等待时间的设计必须考虑管线后段的处理时间而进行。

但是,在设定于运算部120的管线为多个的情况下,用户进行此种调整非常麻烦,而且也难以适当地设定等待时间。

另一方面,本实施方式的管线运算装置110中,即便用户不对每个输入节点进行此种调整,也动态消除消息的累积。

因此,用户无需设定各节点的等待时间等参数,可容易地构建可自各种机器进行数据收集分析的数据收集系统。

(比较2)

而且,为了进行比较,说明适用专利文献1的现有技术的情况。在适用现有技术的管线运算装置中,对各节点分配的运行时间是根据在各节点的接收队列中累积的数据量(消息的存储器使用量)而计算。

另一方面,本实施方式的管线运算装置110中,对各节点分配的运行时间是根据优先级变量PRI按比例分配,所述优先级变量PRI为各节点的接收队列的累积消息量即累积数据数Q、与节点处理时间T之积。

因此,在暂时在某节点的接收队列中过剩地累积消息的情况下,考虑到节点处理时间来对节点分配CPU时间。因此,根据管线运算装置110,与适用现有技术相比,可更快地消除消息的过剩累积的状态。

而且,例如为了在将节点处理时间100ms的节点与节点处理时间200ms的节点连接的情况下使一定流量的消息通过管线,需要对后者的节点分配2倍的CPU时间。因此,现有技术中,若在后者的节点的接收队列中累积前者的节点接收队列的2倍的消息,则执行此种分配。

另一方面,本实施方式的管线运算装置110中,因执行此种分配而在这些节点所累积的消息数相等。其原因在于,根据累积消息数Q与节点处理时间T之积来分配CPU时间。这样,根据本实施方式的管线运算装置110,正运行的管线121的各节点的接收队列中累积的消息数不易产生差异。因此,即便在用于构成接收队列的存储器资源有限的情况下,也可有效率地运用管线运算装置110。

而且,如现有技术那样,在接收队列中累积的消息量存在偏差的情况下,容易产生下述非效率的状况,即:在特定的节点中,应处理的消息枯竭,在更新运行时间的比率的下一时序之前,此节点等待接收。但是,本实施方式的管线运算装置110中,抑制此种事态,因而可总体有效率地执行管线处理。

关于与以上的实施方式1有关的作用、效果,以下的实施方式中也同样地发挥。

〔实施方式2〕

以下说明本发明的其他实施方式。此外,为了方便说明,对与所述实施方式中说明的结构元件具有相同功能的结构元件标注相同符号,不重复进行其说明。

图3为表示实施方式2的可编程逻辑控制器(PLC)200的结构的概略图。

可编程逻辑控制器200包括与实施方式1同样的管线运算装置210。在管线运算装置210,设有运算部220及控制部260。

运算部220中,通过用户(工厂管理者)构建将与数据收集对象机器等数据输出对象机器等或数据处理方法对应的节点连接的管线,从而用户可容易地进行所需要的数据收集及其处理的设定。

图3中,示出包含输入节点Input、逻辑节点Logic、输出节点Output的多个管线。此外,虽未图示,但与所述实施方式同样地,在各逻辑节点Logic及输出节点Output的前段连接接收队列。控制部260的结构与所述实施方式同样。

可编程逻辑控制器200还具有:其所包括的存储装置内的数据文件201、202;以及在其内部运行的工作机械的动作控制程序等应用203、204。

管线运算装置210的输入节点Input的连接目的地可为数据文件201或应用203。进而,输入节点Input的连接目的地可为作为可编程逻辑控制器200的外部机器的工作机械或测定机器及其他各种FA机器、收集与各种生产信息有关的数据并提供的数据服务器11、保存与各种生产信息有关的数据的数据库12、国际互联网或其他网络上的云服务器13。

管线运算装置210的输出节点Output的连接目的地可为数据文件202或应用204。进而,输出节点Output的连接目的地可为作为可编程逻辑控制器200的外部机器的工作机械或测定机器及其他各种FA机器、收集与FA机器有关的数据并提供的数据服务器11、收集与各种生产信息有关的数据并提供的数据库12、国际互联网或其他网络上的云服务器13。

作为输入节点Input的连接目的地的应用203、与作为输出节点Output的连接目的地的应用204可为不同应用,也可为相同的应用。

根据实施方式2,将作为数据收集分析机器的管线运算装置210统合至进行各种控制对象机器的控制的可编程逻辑控制器200。因此,用户容易构建将所收集的数据的分析结果反映给各种控制对象机器的控制的系统。

〔实施方式3〕

实施方式3的管线运算装置与所述各实施方式同样。实施方式3中,对在管线设定有分支的情况的运算部的动作进行说明。

图4为表示属于实施方式3的管线运算装置的运算部的管线321的图。管线321具有以下结构。

输入节点330从管线运算装置外部的工作机械14获取消息,逻辑节点340提取必要数据。在逻辑节点340的前段,设有接收队列341。逻辑节点340将经处理的消息分支输出至输出节点(A)350与输出节点(B)352。

输出节点(A)350对管线运算装置外部的数据库12输出经处理的消息。输出节点(B)352对管线运算装置外部的云服务器13输出消息。输出节点(B)352例如根据消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议来执行处理。

此处,设想下述情况,即:连接于数据库12的输出节点(A)350的节点处理时间Toa为50ms,连接于云服务器13的输出节点(B)352更需要时间,节点处理时间Tob为150ms。相当于如下情况,即:数据库12连接于工厂内部的本地网络,相较于连接于国际互联网上的云服务器13,更迅速地执行输出处理。

若管线321的动作开始,则从逻辑节点340几乎同时向输出节点(A)350的接收队列351、与输出节点(B)352的接收队列353输出消息。另外,接收队列(A)351的累积消息数Qoa及接收队列(B)353的累积消息数Qob均成为1。

于是,输出节点(A)350的优先级变量PRIoa=1×50、与输出节点(B)352的优先级变量PRIob=1×150的比率成为1:3。根据所述比率来分配CPU时间,因而输出节点(A)350与输出节点(A)350中的消息处理几乎同时结束。

如此般消息的处理几乎同时结束,因而此后累积消息数Qoa、数Qob也几乎相同,给予接收队列(A)351与接收队列(B)的CPU时间之比对应于节点处理时间。因此,在管线321的动作持续的期间中,不会发生输出节点350、352的任一个等待消息输入而动作产生空闲状态的事态,极有效率地执行对各节点的CPU时间的划分。

另一方面,适用专利文献1的现有技术的情况下,例如在管线的动作开始,接收队列(A)351的累积消息数Qoa与接收队列(B)353的累积消息数Qob均成为1时,划分相同的CPU时间。这样,在适用专利文献1的现有技术的情况下,发生在节点处理时间更短的输出节点(A)350中因等待消息输入而产生动作的空闲状态的事态,管线总体的动作效率变差。

如以上那样,实施方式3的示例中,实现不在节点等待动作那样的达成了管线总体的效率化的管线运算装置。

〔实施方式4〕

实施方式4的管线运算装置与所述各实施方式同样。实施方式4中,对在管线设定有合流的情况的运算部的动作进行说明。

图5为表示属于实施方式4的管线运算装置的运算部的管线421的图。对节点处理时间T、接收队列的累积消息数Q及优先级变量PRI附加的尾标ia、ib、na、nb、n2分别表示输入节点(A)430、输入节点(B)432、逻辑节点(A)440或其接收队列(A)441、逻辑节点(B)442或其接收队列(B)443、逻辑节点(2)444或其接收队列(2)445。管线421具有以下结构。

输入节点(A)430从管线运算装置外部的工作机械14获取消息,逻辑节点(A)440提取必要数据。在逻辑节点(A)440的前段,设有接收队列(A)441。逻辑节点(A)440使经处理的消息进入逻辑节点(2)444的接收队列(2)445。

输入节点(B)432从管线运算装置外部的工作机械15获取消息,逻辑节点(B)442提取必要数据。在逻辑节点(B)442的前段,设有接收队列(B)443。逻辑节点(B)442使经处理的消息进入逻辑节点(2)444的接收队列445。

这样,在管线合流的逻辑节点(2)444的接收队列(2)445中,将来自各节点的消息设为一组而进行累积消息数Qn2的计数。

逻辑节点(2)444进行使所述两消息从接收队列445出队并将两消息合并(merge)等处理,输出至输出节点450。在输出节点450的前段,设有接收队列451。输出节点450对管线运算装置外部的数据库12输出消息。

此处,设想下述情况,即:逻辑节点(A)440的节点处理时间Tna为50ms,逻辑节点(B)442的节点处理时间Tnb为100ms。

若对各输入节点430、432也执行基于优先级变量PRI的CPU时间的分配,则与所述实施方式同样地,各节点中的消息处理可在相同时间完成。

因此,根据实施方式4,可消除合流点的逻辑节点(2)444等待任一消息的输入而动作产生空闲状态的情况,可极有效率地执行对各节点的CPU时间的划分。

这样,实施方式4的示例中,实现不在节点等待动作那样的达成了管线总体的效率化的管线运算装置。

此外,图5中,Qia=1、Qib=1、Qna=1、Qnb=1、Qn2=1、Tia=10ms、Tib=20ms、Tn2=100ms。而且,PRIia=1×10、PRIib=1×20、PRIna=1×50、PRInb=1×100、PRIn2=1×100。

〔实施方式5〕

在如实施方式4的管线运算装置的管线421那样在管线设定有自多个输入节点的合流的情况下,若对至少一个输入节点进行定周期执行的预约,则产生如下现象。

由于合流的部分管线彼此中消息处理所需要的时间不同,因而合流后的节点的接收队列(图5中为接收队列445)中,成为即便来自其中一个部分管线的消息积压,来自另一个部分管线的消息也枯竭的状况。这样,合流后的节点要等待消息,成为并未有效率地运用管线的状况。实施方式5的管线运算装置具有可消除此种现象的结构。

图6为表示实施方式5的管线运算装置610的结构的概略图。

管线运算装置610包括运算部620及控制部660。

运算部620与所述实施方式的管线运算装置同样,可在内部设定各种管线。

控制部660除了管线运算装置110的控制部160的结构以外,还包括合流监视部665及修正系数计算部666。

合流监视部665至少从队列监视部562接收即将合流前的节点的接收队列(图5中为接收队列441、443)的累积消息数,并将这些进行比较。这样,比较的结果为,判断合流的部分管线间的累积消息数的不均衡程度。

修正系数计算部666从合流监视部665接收合流的部分管线间的累积消息数的不均衡状态的信息。修正系数计算部666根据合流的部分管线间的不均衡程度,针对属于产生消息累积的部分管线的节点,计算修正系数K。

例如,假设图5那样的有合流的管线中,接收队列441的累积消息数Qna成为接收队列443的累积消息数Qnb的3倍。此时,修正系数计算部666对作为接收队列441所属的部分管线的节点的输入节点(A)430及逻辑节点(A)440,设定修正系数K=3。

时间分配部664根据修正系数计算部666计算的修正系数K、及优先级变量计算部663与管线运算装置110的优先级变量计算部163同样地计算的优先级变量PRI,对各节点分配CPU时间。更具体而言,针对设定有修正系数的节点,分配与优先级变量PRI乘以修正系数而得的值相应的CPU时间。

于是,根据属于产生消息累积的部分管线的节点来分配CPU时间的资源,消除合流点的不均衡。

这样,根据实施方式5的管线运算装置610,即便在有合流的管线中,也能可靠地总体有效率地执行管线处理。

〔实施方式6〕

实施方式6的管线运算装置为与所述各实施方式同样,但优先级变量PRI的计算式不同的一例。

所述实施方式的示例中,优先级变量计算部执行的用于计算优先级变量的计算式为PRI=T×Q。即,节点处理时间T与累积消息数Q具有同样的权重。

但是,在给予运算部的存储器的空余容量变少的情况下,有时优选对累积消息数Q进一步附加权重,向暂时使累积消息减少的方向运行。

实施方式6的管线运算装置中,作为一例,可将优先级变量计算部执行的用于计算优先级变量的计算式设为PRI=T×Qr(r≥1)。此处,变量r为用于对累积消息数Q附加权重的参数,在大于1的情况下,表示对累积消息数Q进一步附加权重。此外,考虑到加权的计算式不限于所述计算式,也可使用其他计算式。

实施方式6的管线运算装置中,在存储器的空余容量变少的情况下,可使变量r的值大于1,向减少累积消息数Q的方向运行,可抑制产生存储器资源不足的事态。

而且,实施方式6的管线运算装置中,作为一例,可直接考虑给予运算部的存储器的使用率m,将优先级变量计算部执行的用于计算优先级变量的计算式设为PRI=T×Q(Q /Qmax+m)。此处,Qmax为接收队列中可累积的消息数的最大值。通过本计算式,也可抑制产生存储器资源不足的事态。

〔实施方式7〕

实施方式7的管线运算装置为与所述各实施方式同样,但还包括在特定状况下进行的特殊处理的一例。

图7为表示实施方式7的管线运算装置510的结构的概略图。

管线运算装置510包括运算部520及控制部560。

运算部520与所述实施方式的管线运算装置同样,可在内部设定各种管线。关于所设定的管线的示例,将在下文中描述。为了避免繁杂,图7中仅示出一个管线。

控制部560除了管线运算装置110的控制部160的结构以外,还包括存储器监视部567及修正系数计算部566。

存储器监视部567从队列监视部562接收各节点的累积消息数,并将这些合计。这样,与为了管线运算装置510的接收队列所确保的存储器资源的分配进行比较,判断空余容量是否小于规定值。在空余容量小于规定值的情况下,存储器监视部567将这一情况通知修正系数计算部566。

修正系数计算部566在从存储器监视部567接收到所述通知的情况下,设定针对属于特定管线的节点的修正系数K。修正系数K可为规定值(例如K=2),也可为与存储器的使用比率相应的值。

时间分配部564根据修正系数计算部566所计算的修正系数K、及优先级变量计算部563与管线运算装置110的优先级变量计算部163同样地计算的优先级变量PRI,对各节点分配CPU时间。更具体而言,针对设定了修正系数的节点,分配与优先级变量PRI乘以修正系数K而得的值相应的CPU时间。

图8为表示实施方式7的管线运算装置510的运算部的管线(A)521及管线(B)522的图。

对节点处理时间T、接收队列的累积消息数Q及优先级变量PRI附加的尾标ia、na、oa分别表示输入节点(A)530、逻辑节点(A)540或其接收队列(A)541、输出节点(A)550或其接收队列(A)551。

同样地,尾标ib、nb、ob分别表示输入节点(B)532、逻辑节点(B)542或其接收队列(B)543、输出节点(B)552或其接收队列(B)553。

管线(A)521中,依次连接着输入节点(A)530、接收队列(A)541、逻辑节点(A)540、接收队列(A)551、输出节点(A)550。输入节点(A)530、逻辑节点(A)540、输出节点(A)550的节点处理时间分别为Tia=10ms、Tna=50ms、Toa=100ms。

管线(B)522中,依次连接着输入节点(B)532、接收队列(B)543、逻辑节点(B)542、接收队列(B)553、输出节点(B)552。输入节点(B)532、逻辑节点(B)542、输出节点(B)552的节点处理时间分别为Tib=10ms、Tnb=200ms、Toa=50ms。

所述结构中,在给予的存储器的空余容量变少而从存储器监视部567进行了通知的情况下,修正系数计算部566对属于管线521的各节点赋予修正系数K(例如K=2)。

赋予修正系数的管线是从直到管线完成为止的时间短的管线中选择。图8的示例中,管线521的所述时间为Tia+Tna+Toa,为160ms。管线522的所述时间为Tib+Tnb+Tob,为260ms。因此,图8的示例中,选择管线521。

此外,修正系数计算部566所选择的管线也可通过构建管线运算装置510的程序基于各管线的处理时间的概算值预先决定。或者,也可基于节点监视部561所获取的各节点的节点处理时间T而依次计算。

这样,若对直到管线完成为止的时间短的规定的管线521优先划分CPU时间,则所述管线521中的消息的处理急速进行,存储器的空余容量增加。

此外,图8中,Qna=3、Qoa=3、PRIna=3×50、PRIoa=3×100、Qnb=3、Qob=3、PRInb=3×200、PRIob=3×50。

这样,实施方式7的管线运算装置510中,在给予运算部的存储器的空余容量变少的情况下,时间分配部564针对属于直到管线完成为止的时间短的管线的节点,增大对其划分的运行时间,使运算部520中的消息迅速减少。

实施方式7的管线运算装置510中,在存储器的空余容量变少的情况下,控制部560可进行所述特殊的处理,使滞留于运算部520的消息减少,可抑制产生存储器资源不足的事态。

此外,实施方式7中,对包括多个并无分支的管线的情况的示例进行了说明。另一方面,例如图4所示那样的有分支的管线因分支而管线中的消息急剧增大。因此,也有效的是通过与所述同样的动作,在存储器的空余容量变少的情况下,使对此种有分支的管线划分的运行时间相对较小,使存储器的空余容量恢复。

〔实施方式8〕

实施方式8的管线运算装置710为与所述各实施方式同样,但基于节点监视部所获取的节点从过去以来的多个节点处理时间T的统计值,生成用于计算所述节点的优先级变量PRI的节点处理时间的一例。

图9为表示实施方式8的管线运算装置710的结构的概略图。

管线运算装置710包括运算部720、控制部760及记录部770。

运算部720与所述实施方式的管线运算装置同样,可在内部设定各种管线。

控制部760除了管线运算装置110的控制部160的结构以外,还包括统计值计算部768。

节点监视部761将从运算部720的各节点获取的节点处理时间T记录于记录部770。

统计值计算部768基于记录于记录部770的以往的各节点的节点处理时间T、及节点监视部761所获取的最新的节点处理时间T,计算节点处理时间的统计值。作为统计值,可使用平均值、中央值或最频值。或者,也可使用斯米尔诺夫-格拉布斯(Smirnov-Grubbs)检验等方法,设为不采用异常值的最新的节点处理时间T。

优先级变量计算部763除了针对节点处理时间使用统计值计算部768所计算的所述统计值以外,与管线运算装置110的优先级变量计算部163同样地计算优先级变量PRI。

时间分配部764的动作与管线运算装置110的时间分配部164同样。

根据实施方式8的管线运算装置710,采用统计值作为用于计算优先级变量PRI的节点处理时间,因而可防止因突发事由而产生各节点的极端的运行时间的分配。

〔附注事项〕

所述实施方式中,使用累积消息数Q作为接收队列的累积消息量,所述累积消息数Q为所累积的消息的数量。

但是,本发明的适用不限于此,作为累积消息量,也可使用在接收队列中累积的消息的总尺寸(存储器的使用量)。此时,优先级变量PRI可由所累积的消息的总尺寸与节点处理时间T之积而计算。

而且,所述实施方式中,作为优先级变量PRI,对所述特定例进行了说明。但是,本发明的适用不限于此,作为优先级变量PRI,也可针对每个消息乘以与其重要度等在计算消息的处理优先级的方面被认为有用的指标相应的系数,使用其总和而计算。

进而,本发明的管线运算装置不限于运算部的所有节点由本发明的控制部160进行控制,也可通过其他方法来控制一部分节点。

〔借由软件的实现例〕

管线运算装置110、210、510、610、710的功能块(特别是输入节点、逻辑节点、输出节点、接收队列、节点监视部、队列监视部、优先级变量计算部、时间分配部、合流监视部、修正系数计算部、存储器监视部、统计值计算部)可借由形成为集成电路(集成电路(Integrated Circuit,IC)芯片)等的逻辑电路(硬件)来实现,也可借由软件来实现。

后者的情况下,管线运算装置110、210、510、610、710包括计算机,此计算机执行作为实现各功能的软件的程序的命令。所述计算机例如包括一个以上的处理器,并且包括存储了所述程序的计算机可读取的记录介质。另外,通过所述计算机中所述处理器从所述记录介质读取所述程序并执行,从而达成本发明的目的。

作为所述处理器,例如可使用中央处理器(Central Processing Unit,CPU)。作为所述记录介质,除了“非暂时性的有形介质”、例如只读存储器(Read Only Memory,ROM)等以外,还可使用带、盘、卡、半导体存储器、可编程的逻辑电路等。

而且,也可还包括展开所述程序的随机存取存储器(Random Access Memory,RAM)等。

而且,所述程序也可经由可传输所述程序的任意的传输介质(通信网络或广播波等)供给于所述计算机。

此外,本发明的一实施例也能以通过电子传输使所述程序具现化的嵌埋于载波的数据信号的形态实现。

〔总结〕

本发明的一方面的管线运算装置包括:运算部,具有多个节点及多个接收队列,且包含至少一个管线,所述管线是多个所述节点经由所述接收队列连接而成;以及控制部,具有节点监视部、队列监视部、优先级变量计算部及时间分配部,且所述管线运算装置包括下述结构:所述节点监视部从所述节点获取节点处理时间,所述节点处理时间为在所述节点处理一个消息所需要的时间,所述队列监视部从所述接收队列获取所述接收队列中的累积消息量,所述优先级变量计算部至少基于所述节点的所述节点处理时间、及所述节点的前段的接收队列的所述累积消息量,来计算所述节点的优先级变量,所述时间分配部根据每个所述节点的所述优先级变量,对所述各节点分配运行时间。

根据所述结构,实现一种经改良的管线运算装置,防止接收队列的溢流,进而也可总体有效率地执行管线处理。

所述一方面的管线运算装置中,所述累积消息量也可为所述接收队列中累积的消息数或所累积的消息的总尺寸。

根据所述结构,可具体计算用于可总体有效率地执行管线处理的优先级变量。

所述一方面的管线运算装置中,也可具有下述结构:所述优先级变量计算部计算所述节点的所述节点处理时间与所述累积消息量之积,作为所述节点的优先级变量。

根据所述结构,不发生因等待消息输入而产生节点动作的空闲状态的事态,可抑制管线总体的动作效率变差。

所述一方面的管线运算装置中,也可具有下述结构:所述优先级变量计算部基于所述节点监视部所获取的所述节点从过去以来的多个所述节点处理时间,生成用于计算所述节点的所述优先级变量的所述节点处理时间。

根据所述结构,可防止因突发事由而产生各节点的极端的运行时间的分配。

所述一方面的管线运算装置中,也可具有下述结构:所述运算部还包括合流监视部及修正系数计算部,所述合流监视部针对所述管线中的多个部分管线合流的管线,从所述队列监视部获取较所述多个部分管线的合流点的所述节点更靠上游,且属于互不相同的部分管线的节点的前段的接收队列的所述累积消息量,计算属于所述互不相同的部分管线的节点的前段的接收队列的所述累积消息量的不均衡程度,所述修正系数计算部针对属于所述互不相同的部分管线中的任一部分管线的节点,根据所述不均衡程度而计算修正系数,所述时间分配部在对所述节点计算出所述修正系数的情况下,根据所述优先级变量乘以所述修正系数而得的值来分配所述运行时间。

根据所述结构,即便在有合流的管线中,也能可靠地总体有效率地执行管线处理。

所述一方面的管线运算装置中,也可具有下述结构:所述运算部还包括存储器监视部及修正系数计算部,所述存储器监视部在保存所述接收队列的累积消息的存储器的空余容量小于规定值的情况下,通知所述修正系数计算部,所述修正系数计算部在接收到所述通知的情况下,针对属于所述多个管线中直到管线中的消息处理完成为止的时间更短或分支更少的管线的所述节点,赋予大于1的修正系数,所述时间分配部在对所述节点赋予了所述修正系数的情况下,根据所述优先级变量乘以所述修正系数而得的值来分配所述运行时间。

根据所述结构,在存储器的空余容量变少的情况下,可减少滞留于运算部的消息,可抑制产生存储器资源不足的事态。

本发明的一方面的可编程逻辑控制器为包括所述一方面的管线运算装置的可编程逻辑控制器。

根据所述结构,用户容易构建下述FA系统,即:具有经高性能化的数据收集功能,使所收集的数据的分析结果反映给各种控制对象机器的控制。

本发明的一方面的管线处理的执行方法通过至少一个管线来执行管线处理,所述管线是多个节点经由接收队列连接而成,且包括下述步骤:获取节点处理时间,所述节点处理时间为在所述节点处理一个消息所需要的时间;获取所述接收队列中的累积消息量;至少基于所述节点的所述节点处理时间、及所述节点的前段的接收队列的所述累积消息量,来计算所述节点的优先级变量;以及根据每个所述节点的所述优先级变量,对所述各节点分配运行时间。

根据所述结构,实现一种经改良的管线运算处理,防止接收队列的溢流,进而也可总体上有效率地执行管线处理。

本发明不限定于所述各实施方式,可在权利要求所示的范围内进行各种变更,将不同实施方式中分别公开的技术手段适当组合所得的实施方式也包含于本发明的技术范围。

符号的说明

110、210、510、610、710:管线运算装置

120、220、520、620、720:运算部

121、321、421、521、522:管线

130、330、430、432、530、532、Input:输入节点

140、340、440、442、444、540、542、Logic:逻辑节点

150、350、352、450、550、552、Output:输出节点

141、151、341、351、353、441、443、445、451、541、543、551、553:接收队列

160、260、560、660、760:控制部

161、561、661、761:节点监视部

162、562、662、762:队列监视部

163、563、663、763:优先级变量计算部

164、564、664、764:时间分配部

665:合流监视部

566、666:修正系数计算部

567:存储器监视部

768:统计值计算部

770:记录部

200:可编程逻辑控制器

201、202:数据文件

203、204:应用

11:数据服务器

12:数据库

13:云服务器

14、15:工作机械

T、Ti、Tia、Tib、Tn、Tna、Tnb、Tn2、To、Toa、Tob:节点处理时间

Q、Qi、Qia、Qib、Qn、Qna、Qnb、Qn2、Qo、Qoa、Qob:累积消息数

PRI、PRIi、PRIia、PRIib、PRIn、PRIna、PRInb、PRIn2、PRIo、PRIoa、PRIob:优先级变量

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:开发支持装置、开发支持装置的控制方法、信息处理程序、及记录介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类