WO2020189360A1 - パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法 - Google Patents

パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法 Download PDF

Info

Publication number
WO2020189360A1
WO2020189360A1 PCT/JP2020/009930 JP2020009930W WO2020189360A1 WO 2020189360 A1 WO2020189360 A1 WO 2020189360A1 JP 2020009930 W JP2020009930 W JP 2020009930W WO 2020189360 A1 WO2020189360 A1 WO 2020189360A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
pipeline
unit
time
queue
Prior art date
Application number
PCT/JP2020/009930
Other languages
English (en)
French (fr)
Inventor
弘二 西垣
清水 隆也
武紀 日下
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to EP20773428.6A priority Critical patent/EP3944037A4/en
Priority to KR1020217029772A priority patent/KR20210137472A/ko
Priority to CN202080019453.2A priority patent/CN113614658A/zh
Priority to US17/439,821 priority patent/US20220179708A1/en
Publication of WO2020189360A1 publication Critical patent/WO2020189360A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Definitions

  • the present invention relates to a pipeline arithmetic unit, a programmable logic controller, and a method of executing pipeline processing.
  • FA factory automation
  • Patent Document 1 discloses a method of adjusting the execution priority for each task, preventing the overflow of the receive buffer (receive queue), and performing appropriate data processing in such pipeline processing. ..
  • Japanese Patent Publication Japanese Patent Laid-Open No. 11-237993
  • the data collection and analysis system in FA needs to be configured so that the user (factory manager) can freely determine the data collection target device, data processing method, etc. according to the production process.
  • a data collection and analysis device for that purpose it is considered to use a pipeline arithmetic unit.
  • the present invention on the one hand, has been made in view of such circumstances, and the purpose of the present invention has been improved so that pipeline processing can be efficiently executed as a whole while preventing overflow of the receive queue.
  • the purpose is to realize a pipeline arithmetic unit.
  • the present invention adopts the following configuration in order to solve the above-mentioned problems.
  • the pipeline calculation device is a calculation unit having a plurality of nodes and a plurality of reception queues, and at least one of the pipelines in which the nodes are connected to each other via the reception queue.
  • the node monitoring unit includes a calculation unit, a node monitoring unit, a queue monitoring unit, a priority variable calculation unit, and a control unit having a time allocation unit.
  • the queue monitoring unit acquires the amount of messages stored in the receiving queue from the receiving queue, and the priority variable calculation unit at least The priority variable of the node is calculated based on the node processing time of the node and the accumulated message amount of the receive queue in the previous stage of the node, and the time allocation unit determines the priority variable for each node.
  • a configuration is provided in which operating hours are allocated to each of the nodes according to the above.
  • the programmable logic controller according to one aspect of the present invention may be a programmable logic controller provided with the pipeline arithmetic unit according to the above one aspect.
  • the method of executing pipeline processing is a method of executing pipeline processing by at least one pipeline in which a plurality of nodes are connected via a receive queue, and one message in the node.
  • a step of acquiring the node processing time which is the time required for processing, a step of acquiring the amount of stored messages in the receive queue, at least the node processing time of the node, and the accumulation of the receive queue in the previous stage of the node. It includes a step of calculating a priority variable of the node based on the message amount, and a step of allocating an operating time to each of the nodes according to the priority variable for each node.
  • the pipeline arithmetic unit According to the pipeline arithmetic unit according to one aspect of the present invention, it is possible to realize an improved pipeline arithmetic that can efficiently execute the pipeline processing as a whole while preventing the overflow of the receive queue.
  • the user constructs an FA system which has a high-performance data collection function and reflects the result of analyzing the collected data for the control of various controlled devices. It becomes easy to do.
  • the method of executing the pipeline processing it is possible to realize an improved pipeline calculation in which the pipeline processing can be efficiently executed as a whole while preventing the overflow of the receive queue.
  • FIG. 1 is a schematic view showing the configuration of the pipeline arithmetic unit 110 according to the present embodiment.
  • the pipeline arithmetic unit 110 includes an arithmetic unit 120 and a control unit 160.
  • the calculation unit 120 has a plurality of nodes (input node 130, logic node 140, output node 150), which are functional blocks, and a plurality of receive queues 141 and 151.
  • the calculation unit 120 is configured with a pipeline in which a plurality of the nodes are connected via a reception queue, and the calculation unit 120 is provided with at least one pipeline.
  • the control unit 160 has a node monitoring unit 161 which is a functional block, a queue monitoring unit 162, a priority variable calculation unit 163, and a time allocation unit 164.
  • the pipeline arithmetic unit 110 realizes the functions of each of these parts as a functional block by executing a pipeline processing execution program loaded from the outside or loaded from a recording device (not shown) provided therein.
  • the node monitoring unit 161 acquires the node processing time T, which is the time required for processing a message at the node, from each node (input node 130, logic node 140, output node 150).
  • the queue monitoring unit 162 acquires the accumulated message amount from the received queues 141 and 151, respectively.
  • the priority variable calculation unit 163 calculates the priority variable PRI of the node based on at least the node processing time of the node and the accumulated message amount of the reception queue in the previous stage of the node.
  • the time allocation unit 164 allocates the operating time to each node according to the priority variable PRI for each node and operates it.
  • the pipeline arithmetic unit 110 of the present embodiment calculates the priority variable PRI based on at least the node processing time and the accumulated message amount of the reception queue, and the operating time for each node according to the calculation. To assign.
  • the node in the calculation unit 120 is any one of the input node 130, the logic node 140, and the output node 150. Each function is as follows.
  • the input node 130 is a functional block that collects messages from an external device or the like of the pipeline arithmetic unit 110.
  • the input node 130 is diverse depending on the type of external device and the like and the type of message to be handled.
  • a set of data is referred to as a message
  • the content of the message is information such as production information, control information, and environmental information.
  • the control information can be information such as parameters such as real-time torque that can be acquired from the servomotor
  • the environmental information can be information such as temperature.
  • the logic node 140 is a functional block that processes the input message and outputs it to the subsequent stage.
  • the logic node 140 is diverse depending on the content of the processing to be executed.
  • the output node 150 is a functional block that outputs the input message to an external device or the like of the pipeline arithmetic unit 110.
  • the output node 150 is diverse depending on the type of external device and the like and the type of message to be handled.
  • External devices of the pipeline computing device 110 include machine tools, measuring devices and other various FA devices, databases that collect and provide data related to various production information, databases that store data related to various production information, the Internet and other devices. It can be a cloud server on the network.
  • connection destination of the input node 130 or the output node 150 of the pipeline arithmetic unit 110 is a data file on the storage device provided in the PLC or on the PLC. It can also be an application such as a motion control program for a working machine tool.
  • Production information is a concept that includes information on the operation of machine tools, measuring equipment, and other various FA equipment, measurement data, and other information related to production.
  • FIG. 1 shows a data server 11 and a database 12 as examples of external devices to which the input node 130 and the output node 150 are connected, respectively.
  • necessary logic nodes 140 are sequentially connected between the input node 130 and the output node 150 to form a pipeline.
  • the reception queue 141 of the logic node is provided in front of the logic node 140.
  • a receive queue 151 of the output node is provided in front of the output node 150.
  • the receive queues 141 and 151 temporarily process the message input to the logic node 140 and the output node 150 until the processing at the logic node 140 and the output node 150 is completed and the next message can be accepted. accumulate.
  • the number of pipelines constituting the calculation unit 120 is usually large, but at least one is sufficient. Further, the pipeline is not limited to one in which one or more logic nodes are connected in series from one input node 130 to one output node 150, and even if the pipeline branches or merges in the middle. Good.
  • control unit 160 having the node monitoring unit 161, the queue monitoring unit 162, the priority variable calculation unit 163, and the time allocation unit 164 is as described in the above ⁇ 1 application example. Details of the functions of each part will be described later together with a description of the operation of the pipeline arithmetic unit 110.
  • the number of stored messages Q which is the number of messages, is adopted as the amount of stored messages in each receive queue.
  • the node processing time T can be the time from the following start time to the end time.
  • the start time can be the dequeue time of the receive queue, which is the time when the node receives the message from the receive queue.
  • the time when the input node 130 starts (kick) the execution can be set as the start time.
  • the end time can be the enqueue time of the receive queue of the connection destination node, which is the time when the node sends a message to the receive queue of the connection destination node.
  • the output node 150 it may be the time when the output of the message to the external device or the like of the output destination of the output node 150 is completed.
  • the input node 130 sequentially acquires messages from a plurality of data servers 11.
  • Each data server 11 may be a web server (WebServer) that provides a message based on the Hypertext Transfer Protocol (https) or the Hypertext Transfer Protocol Secure (https).
  • https Hypertext Transfer Protocol
  • https Hypertext Transfer Protocol Secure
  • the logic node 140 sequentially extracts data necessary for analyzing the state of equipment from the input messages, performs necessary calculations, and outputs the data.
  • the logic node 140 for example, the HyperText Markup Language (html) analysis script may be used for processing.
  • the output node 150 sequentially outputs the messages output by the logic node 140 to the database 12.
  • FIG. 2A is a diagram showing a state of the pipeline 121 in the calculation unit 120 when each node executes such an operation.
  • the node processing time T, the number of accumulated messages Q in the receive queue, and the subscripts i, n, and o for the priority variable PRI are the input node 130, the logic node 140 or its receive queue 141, the output node 150 or its, respectively. Represents receive queue 151.
  • the unit is expressed as milliseconds here, it may be the number of clocks of the CPU (Central Processing Unit).
  • the priority variable calculation unit 163 receives the node processing time T of each node from the node monitoring unit 161 and the accumulated message number Q of each node from the queue monitoring unit 162. Further, the priority variable calculation unit 163 considers the accumulated message number Qi to be 1 with respect to the input node 130.
  • the priority variable calculation unit 163 calculates the priority variable PRI for each node.
  • the priority variable PRI is a value calculated from at least the node processing time T and the number of accumulated messages Q.
  • the priority variable PRI is the product of the node processing time T and the number of accumulated messages Q.
  • the time allocation unit 164 allocates information processing resources for the time given to the calculation unit 120, for example, CPU time, according to the priority variable PRI for each node calculated by the priority variable calculation unit 163. ..
  • the CPU time given to the arithmetic unit 120 is apportioned by the priority variable PRI to operate each node.
  • the CPU time is not allocated to the output node 150, and the logic node 140 is allocated a CPU time larger than that of the input node 130.
  • the time allocation unit 164 gives the input node 130 the CPU time for performing the fixed-cycle execution of the operation, as an exception.
  • the operation of the time allocation unit 164 when the fixed cycle execution is reserved is as follows. For example, if a reservation is made to acquire a message from an external device at a fixed cycle of 1 ms and the processing time of the input node 130 is 0.02 ms, time is allocated so as to secure a CPU time of 0.02 ms within at least 1 ms.
  • the unit 164 operates the input node 130.
  • the time allocation unit 164 prorates the CPU time given to the remaining calculation unit 120 among the other nodes and operates each of the other nodes.
  • the pipeline arithmetic unit 110 of the present embodiment operates depending on the situation even if the messages are temporarily accumulated excessively in a specific reception queue. It works so that the excess accumulation is eliminated. Therefore, the overflow of the receive queue in the pipeline operation is effectively suppressed.
  • the priority variable PRI is calculated from the node processing time T and the number of accumulated messages Q, and the operating time of each node is dynamically allocated according to the priority variable PRI. That is, in the pipeline arithmetic unit 110 of the present embodiment, the efficiency of the entire pipeline is realized so that the operation waiting at the node does not occur.
  • the message output from the input node 130 is accumulated in the reception queue 141 of the logic node 140 (Qn becomes excessive). If such a situation continues, the receive queue 141 will overflow.
  • the accumulation of messages is dynamically eliminated even if the user does not make such adjustments for each input node.
  • the user does not need to set parameters such as the waiting time of each node, and it becomes possible to easily construct a data collection system capable of collecting and analyzing data from various devices.
  • the operating time allocated to each node is the product of the number of accumulated data Q, which is the amount of accumulated messages in the receive queue of each node, and the node processing time T. It is apportioned according to the degree variable PRI.
  • the number of messages accumulated in these nodes in order to execute such an allocation is the same. This is because the CPU time is allocated by the product of the number of accumulated messages Q and the node processing time T. As described above, according to the pipeline arithmetic unit 110 of the present embodiment, the number of messages stored in the receive queue of each node in the operating pipeline 121 is unlikely to differ. Therefore, even when the memory resource for configuring the receive queue is limited, the pipeline arithmetic unit 110 can be operated efficiently.
  • FIG. 3 is a schematic view showing the configuration of the programmable logic controller (PLC) 200 according to the second embodiment.
  • PLC programmable logic controller
  • the programmable logic controller 200 includes the same pipeline arithmetic unit 210 as in the first embodiment.
  • the pipeline arithmetic unit 210 is provided with an arithmetic unit 220 and a control unit 260.
  • the user collects data required by the user by constructing a pipeline connecting the data collection target device, the data output target device, etc., and the node corresponding to the data processing method. And its processing can be easily set.
  • FIG. 3 shows a plurality of pipelines composed of an input node Input, a logic node Logic, and an output node Output. Although not shown, a reception queue is connected to the front stage of each logic node Logic and output node Output as in the above embodiment.
  • the configuration of the control unit 260 is the same as that of the above embodiment.
  • the programmable logic controller 200 further includes data files 201 and 202 in a storage device included therein, and applications 203 and 204 such as a machine tool motion control program that operates inside the programmable logic controller 200.
  • the connection destination of the input node Input of the pipeline arithmetic unit 210 may be the data file 201 or the application 203. Further, the connection destination of the input node Input is an external device of the programmable logic controller 200, a machine machine, a measuring device and other various FA devices, a data server 11 that collects and provides data related to various production information, and data related to various production information. It can be a database 12 for storing data, a cloud server 13 on the Internet or other networks.
  • the connection destination of the output node Output of the pipeline arithmetic unit 210 may be a data file 202 or an application 204. Further, the connection destination of the output node Output is a data server 11 that collects and provides data on machine machines, measuring devices and other various FA devices, FA devices, which are external devices of the programmable logic controller 200, and data on various production information. It can be a database 12 that collects and provides, a cloud server 13 on the Internet or other networks.
  • the application 203 to which the input node Input is connected and the application 204 to which the output node Output is connected may be different applications or may be the same application.
  • the pipeline arithmetic unit 210 as a data collection and analysis device is integrated with the programmable logic controller 200 that controls various controlled devices. Therefore, it becomes easy for the user to construct a system that reflects the result of analyzing the collected data for the control of various controlled devices.
  • the pipeline arithmetic unit according to the third embodiment is the same as each of the above-described embodiments.
  • the operation of the calculation unit when a branch is set in the pipeline will be described.
  • FIG. 4 is a diagram showing a pipeline 321 belonging to the calculation unit of the pipeline calculation device according to the third embodiment.
  • the pipeline 321 has the following configuration.
  • the input node 330 acquires a message from the machine tool 14 outside the pipeline arithmetic unit, and the logic node 340 extracts the necessary data.
  • a receive queue 341 is provided in front of the logic node 340.
  • the logic node 340 branches the processed message into an output node (A) 350 and an output node (B) 352 and outputs the processed message.
  • the output node (A) 350 outputs the processed message to the database 12 outside the pipeline arithmetic unit.
  • the output node (B) 352 outputs a message to the cloud server 13 outside the pipeline arithmetic unit.
  • the output node (B) 352 executes processing by, for example, the MQTT (Message Queuing Telemetry Transport) protocol.
  • the node processing time Toa of the output node (A) 350 connected to the database 12 is 50 ms
  • the output node (B) 352 connected to the cloud server 13 requires more time
  • the node processing time Tob is set.
  • 150 ms This corresponds to a case where the database 12 is connected to a local network inside the factory and the output process is executed more quickly than for the cloud server 13 on the Internet.
  • the pipeline arithmetic unit whose efficiency of the entire pipeline is improved so that the operation waiting at the node does not occur is realized.
  • FIG. 5 is a diagram showing a pipeline 421 belonging to the calculation unit of the pipeline calculation device according to the fourth embodiment.
  • the node processing time T, the number of accumulated messages Q in the received queue, and the subscripts ia, ib, na, nb, and n2 for the priority variable PRI are input node (A) 430 and input node (B) 432, respectively. It represents logic node (A) 440 or its receive queue (A) 441, logic node (B) 442 or its receive queue (B) 443, logic node (2) 444 or its receive queue (2) 445.
  • the pipeline 421 has the following configuration.
  • the input node (A) 430 acquires a message from the machine tool 14 outside the pipeline arithmetic unit, and the logic node (A) 440 extracts the necessary data.
  • a receive queue (A) 441 is provided in front of the logic node (A) 440.
  • the logic node (A) 440 enqueues the processed message into the receive queue (2) 445 of the logic node (2) 444.
  • the input node (B) 432 acquires a message from the machine tool 15 outside the pipeline arithmetic unit, and the logic node (B) 442 extracts the necessary data.
  • a receive queue (B) 443 is provided in front of the logic node (B) 442.
  • the logic node (B) 442 enqueues the processed message into the receive queue 445 of the logic node (2) 444.
  • the number of accumulated messages Qn2 is counted with the messages from each node as one set.
  • the logic node (2) 444 dequeues both of the above messages from the receive queue 445, performs processing such as merging both messages, and outputs the output to the output node 450.
  • a receive queue 451 is provided in front of the output node 450.
  • the output node 450 outputs a message to the database 12 outside the pipeline arithmetic unit.
  • the node processing time Tna of the logic node (A) 440 is 50 ms and the node processing time Tnb of the logic node (B) 442 is 100 ms.
  • the logic node (2) 444 at the confluence can be prevented from waiting for the input of one of the messages to cause an idling state in the operation, and can be performed to each node extremely efficiently. CPU time allocation can be performed.
  • the pipeline arithmetic unit whose efficiency of the entire pipeline is improved so that the operation waiting at the node does not occur is realized.
  • the pipeline arithmetic unit according to the fifth embodiment has a configuration capable of eliminating such an event.
  • FIG. 6 is a schematic view showing the configuration of the pipeline arithmetic unit 610 according to the fifth embodiment.
  • the pipeline arithmetic unit 610 includes an arithmetic unit 620 and a control unit 660.
  • the arithmetic unit 620 is the same as the pipeline arithmetic unit of the above embodiment, and various pipelines can be set internally.
  • the control unit 660 further includes a confluence monitoring unit 665 and a correction coefficient calculation unit 666, in addition to the configuration of the control unit 160 of the pipeline arithmetic unit 110.
  • the merging monitoring unit 665 receives at least the number of accumulated messages in the receiving queues (received queues 441 and 443 in FIG. 5) of the node immediately before merging from the queue monitoring unit 562, and compares them. Then, as a result of the comparison, the degree of imbalance in the number of accumulated messages between the confluent partial pipelines is determined.
  • the correction coefficient calculation unit 666 receives information on the state of imbalance in the number of accumulated messages between the merging partial pipelines from the merging monitoring unit 665.
  • the correction coefficient calculation unit 666 calculates the correction coefficient K for the nodes belonging to the partial pipelines in which the accumulation of messages occurs, according to the degree of imbalance between the confluent partial pipelines.
  • the time allocation unit 664 corresponds to the correction coefficient K calculated by the correction coefficient calculation unit 666 and the priority variable PRI calculated by the priority variable calculation unit 663 in the same manner as the priority variable calculation unit 163 of the pipeline arithmetic unit 110. And allocate CPU time to each node. More specifically, for the node for which the correction coefficient is set, the CPU time is allocated according to the value obtained by multiplying the priority variable PRI by the correction coefficient.
  • the pipeline processing can be reliably and efficiently executed as a whole even in a pipeline having a confluence.
  • the pipeline arithmetic unit according to the sixth embodiment is the same as each of the above embodiments, but is an example in which the calculation formula of the priority variable PRI is different.
  • the variable r is a parameter for weighting the accumulated message number Q, and when it is larger than 1, it indicates that the accumulated message number Q is more weighted.
  • the calculation formula considering the weighting is not limited to the above, and other calculation formulas may be used.
  • the value of the variable r when the free space of the memory becomes low, the value of the variable r can be made larger than 1, and the operation can be performed in the direction of decreasing the number of accumulated messages Q, and the memory resource. It is possible to suppress the occurrence of a situation in which a shortage occurs.
  • Qmax is the maximum value of the number of messages that can be stored in the receive queue. This calculation formula can also suppress the occurrence of a situation where a memory resource is insufficient.
  • the pipeline arithmetic unit according to the seventh embodiment is the same as each of the above-described embodiments, but is an example further including a special process performed in a specific situation.
  • FIG. 7 is a schematic view showing the configuration of the pipeline arithmetic unit 510 according to the seventh embodiment.
  • the pipeline arithmetic unit 510 includes an arithmetic unit 520 and a control unit 560.
  • the arithmetic unit 520 is the same as the pipeline arithmetic unit of the above embodiment, and various pipelines can be set internally. An example of the pipeline to be set will be described later. To avoid complications, only one pipeline is shown in FIG.
  • the control unit 560 further includes a memory monitoring unit 567 and a correction coefficient calculation unit 566, in addition to the configuration of the control unit 160 of the pipeline arithmetic unit 110.
  • the memory monitoring unit 567 receives the number of accumulated messages of each node from the queue monitoring unit 562 and totals them. Then, it is determined whether or not the free space is smaller than the predetermined value as compared with the allocation of the memory resource reserved for the receive queue of the pipeline arithmetic unit 510. When the free space becomes smaller than the predetermined value, the memory monitoring unit 567 notifies the correction coefficient calculation unit 566 to that effect.
  • the correction coefficient calculation unit 566 When the correction coefficient calculation unit 566 receives the notification from the memory monitoring unit 567, the correction coefficient calculation unit 566 sets the correction coefficient K for the node belonging to a specific pipeline.
  • the time allocation unit 564 responds to the correction coefficient K calculated by the correction coefficient calculation unit 566 and the priority variable PRI calculated by the priority variable calculation unit 563 in the same manner as the priority variable calculation unit 163 of the pipeline arithmetic unit 110. And allocate CPU time to each node. More specifically, for the node for which the correction coefficient is set, the CPU time corresponding to the value obtained by multiplying the priority variable PRI by the correction coefficient K is allocated.
  • FIG. 8 is a diagram showing a pipeline (A) 521 and a pipeline (B) 522 in the calculation unit of the pipeline calculation device 510 according to the seventh embodiment.
  • the node processing time T, the number of accumulated messages Q in the receive queue, and the subscripts ia, na, and oa for the priority variable PRI are the input node (A) 530, the logic node (A) 540, or the receive queue (A) thereof, respectively. ) 541, represents the output node (A) 550 or its receive queue (A) 551.
  • subscripts ib, nb, and ob represent an input node (B) 532, a logic node (B) 542 or its receive queue (B) 543, and an output node (B) 552 or its receive queue (B) 553, respectively. ..
  • the input node (A) 530, the receive queue (A) 541, the logic node (A) 540, the receive queue (A) 551, and the output node (A) 550 are sequentially connected to the pipeline (A) 521.
  • the input node (B) 532, the receive queue (B) 543, the logic node (B) 542, the receive queue (B) 553, and the output node (B) 552 are sequentially connected to the pipeline (B) 522.
  • the pipeline that gives the correction coefficient is selected from those that take the shortest time to complete the pipeline.
  • the time of the pipeline 521 is Tia + Tna + Toa, which is 160 ms.
  • the time in pipeline 522 is Tib + Tnb + Tob, which is 260 ms. Therefore, in the example of FIG. 8, pipeline 521 is selected.
  • the pipeline selected by the correction coefficient calculation unit 566 may be determined in advance by the program for constructing the pipeline arithmetic unit 510 based on the approximate value of the processing time of each pipeline. Alternatively, it may be sequentially calculated based on the node processing time T of each node acquired by the node monitoring unit 561.
  • the time allocation unit 564 takes a short time to complete the pipeline.
  • the distribution of the operating time of the nodes belonging to is increased, and the number of messages in the arithmetic unit 520 is quickly reduced.
  • the control unit 560 can perform the above special processing to reduce the messages accumulated in the arithmetic unit 520. , It is possible to suppress the occurrence of a situation where a shortage of memory resources occurs.
  • the pipeline arithmetic unit 710 according to the eighth embodiment is the same as each of the above embodiments, but the priority of the node is prioritized based on the statistical values of the plurality of node processing times T from the past acquired by the node monitoring unit. This is an example of generating the node processing time for calculating the degree variable PRI.
  • FIG. 9 is a schematic view showing the configuration of the pipeline arithmetic unit 710 according to the eighth embodiment.
  • the pipeline arithmetic unit 710 includes an arithmetic unit 720, a control unit 760, and a recording unit 770.
  • the arithmetic unit 720 is the same as the pipeline arithmetic unit of the above embodiment, and various pipelines can be set internally.
  • the control unit 760 includes a statistical value calculation unit 768 in addition to the configuration of the control unit 160 of the pipeline arithmetic unit 110.
  • the node monitoring unit 761 records the node processing time T acquired from each node of the calculation unit 720 in the recording unit 770.
  • the statistical value calculation unit 768 calculates the statistical value of the node processing time based on the node processing time T of each node in the past recorded in the recording unit 770 and the latest node processing time T acquired by the node monitoring unit 761. calculate.
  • a mean value, a median value, or a mode value can be used.
  • the latest node processing time T in which outliers are not adopted may be used by using a method such as the Smirnov-Grabs test.
  • the priority variable calculation unit 763 uses the statistical value calculated by the statistical value calculation unit 768 for the node processing time, and the priority variable calculation unit 763 is similar to the priority variable calculation unit 163 of the pipeline arithmetic unit 110. Calculate the PRI.
  • time allocation unit 764 is the same as that of the time allocation unit 164 of the pipeline arithmetic unit 110.
  • the pipeline arithmetic unit 710 since the statistical value is adopted as the node processing time for calculating the priority variable PRI, an extreme operating time allocation occurs in each node due to a sudden reason. Can be prevented.
  • the number of stored messages Q which is the number of stored messages, was used as the amount of stored messages in the receive queue.
  • the application of the present invention is not limited to this, and the total size of the messages stored in the reception queue (memory usage) may be used as the stored message amount.
  • the priority variable PRI can be calculated by multiplying the total size of the accumulated messages and the node processing time T.
  • the priority variable PRI a coefficient corresponding to an index that is considered to be useful in calculating the processing priority of the message, such as the importance of each message, is used. It may be multiplied and calculated using the sum.
  • pipeline arithmetic unit of the present invention is not limited to those in which all the nodes in the arithmetic unit are controlled by the control unit 160 of the present invention, and some nodes are controlled by other methods. It may be.
  • Functional blocks of pipeline arithmetic units 110, 210, 510, 610, 710 (in particular, input node, logic node, output node, receive queue, node monitoring unit, queue monitoring unit, priority variable calculation unit, time allocation unit, merging)
  • the monitoring unit, correction coefficient calculation unit, memory monitoring unit, statistical value calculation unit may be realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like, or may be realized by software. Good.
  • the pipeline arithmetic units 110, 210, 510, 610, and 710 include a computer that executes a program instruction, which is software that realizes each function.
  • the computer includes, for example, one or more processors and a computer-readable recording medium that stores the program. Then, in the computer, the processor reads the program from the recording medium and executes it, thereby achieving the object of the present invention.
  • a CPU Central Processing Unit
  • the recording medium in addition to a “non-temporary tangible medium” such as a ROM (Read Only Memory), a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, or the like can be used.
  • ROM Read Only Memory
  • the recording medium in addition to a “non-temporary tangible medium” such as a ROM (Read Only Memory), a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, or the like can be used.
  • RAM RandomAccessMemory
  • the program may be supplied to the computer via an arbitrary transmission medium (communication network, broadcast wave, etc.) capable of transmitting the program.
  • arbitrary transmission medium communication network, broadcast wave, etc.
  • One aspect of the present invention can also be realized in the form of a data signal embedded in a carrier wave, in which the above program is embodied by electronic transmission.
  • the pipeline calculation device is a calculation unit having a plurality of nodes and a plurality of reception queues, and at least one of the pipelines in which the nodes are connected to each other via the reception queue.
  • the node monitoring unit includes a calculation unit, a node monitoring unit, a queue monitoring unit, a priority variable calculation unit, and a control unit having a time allocation unit.
  • the queue monitoring unit acquires the amount of messages stored in the receiving queue from the receiving queue, and the priority variable calculation unit at least The priority variable of the node is calculated based on the node processing time of the node and the accumulated message amount of the receive queue in the previous stage of the node, and the time allocation unit determines the priority variable for each node.
  • a configuration is provided in which operating hours are allocated to each of the nodes according to the above.
  • an improved pipeline arithmetic unit that can efficiently execute pipeline processing as a whole while preventing the overflow of the receive queue is realized.
  • the stored message amount may be the number of messages stored in the reception queue or the total size of the stored messages.
  • the priority variable for enabling the pipeline processing to be executed efficiently as a whole can be specifically calculated.
  • the priority variable calculation unit has a configuration in which the product of the node processing time of the node and the accumulated message amount is calculated as the priority variable of the node. You may.
  • the priority variable calculation unit determines the priority variable of the node based on the plurality of node processing times from the past of the node acquired by the node monitoring unit. It may have a configuration for generating the node processing time for calculation.
  • the calculation unit further includes a merging monitoring unit and a correction coefficient calculation unit
  • the merging monitoring unit includes a plurality of partial pipelines of the pipeline.
  • the accumulated message amount of the receive queue in the previous stage of the nodes belonging to different partial pipelines upstream from the node at the confluence of the plurality of partial pipelines is acquired from the queue monitoring unit.
  • the degree of imbalance in the accumulated message amount of the reception queue in the previous stage of the nodes belonging to the different partial pipelines is calculated, and the correction coefficient calculation unit calculates one of the different partial pipelines.
  • the correction coefficient is calculated according to the degree of the imbalance, and when the correction coefficient is calculated for the node, the time allocation unit multiplies the priority variable by the correction coefficient. It may have a configuration in which the operating time is allocated according to the coefficient.
  • the arithmetic unit further includes a memory monitoring unit and a correction coefficient calculation unit, and the memory monitoring unit has a free memory capacity for storing stored messages of the reception queue.
  • the correction coefficient calculation unit is notified, and when the correction coefficient calculation unit receives the notification, the processing of the message in the pipeline among the plurality of pipelines is completed.
  • a correction factor greater than 1 is given to the node belonging to a pipeline that has a shorter time to complete or has fewer branches, and the time allocation unit is given the correction factor for the node. It may have a configuration in which the operating time is allocated according to a value obtained by multiplying the priority variable by the correction coefficient.
  • the free memory space becomes low, the number of messages accumulated in the arithmetic unit can be reduced, and the occurrence of a situation where the memory resource becomes insufficient can be suppressed.
  • the programmable logic controller according to one aspect of the present invention may be a programmable logic controller provided with the pipeline arithmetic unit according to the above one aspect.
  • the method of executing pipeline processing is a method of executing pipeline processing by at least one pipeline in which a plurality of nodes are connected via a receive queue, and one message in the node.
  • a step of acquiring the node processing time which is the time required for processing, a step of acquiring the amount of stored messages in the receive queue, at least the node processing time of the node, and the accumulation of the receive queue in the previous stage of the node. It includes a step of calculating a priority variable of the node based on the message amount, and a step of allocating an operating time to each of the nodes according to the priority variable for each node.
  • Pipeline calculation device 120 220, 520, 620, 720 Calculation unit 121, 321, 421, 521, 522 Pipeline 130, 330, 430, 432, 530, 532, Input Input node 140, 340, 440, 442, 444, 540, 542, Logical Logic Nodes 150, 350, 352, 450, 550, 552, Output Output Nodes 141, 151, 341, 351, 353, 441, 443, 445, 451 541, 543, 551, 535 Receive queue 160, 260, 560, 660, 760 Control unit 161, 561, 661, 761 Node monitoring unit 162, 562, 662, 762 Queue monitoring unit 163, 563, 663, 763 Priority variable Calculation unit 164, 564, 664, 764 Time allocation unit 665 Confluence monitoring unit 566, 666 Correction coefficient calculation unit 567 Memory monitoring unit 768 Statistics value calculation unit 770 Recording unit 200 Programmable logic controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Programmable Controllers (AREA)
  • Advance Control (AREA)

Abstract

パイプライン演算装置(110)は、パイプラインで構成される演算部(120)、ノード処理時間を取得するノード監視部(161)、蓄積メッセージ量を取得するキュー監視部(162)、ノード処理時間と、当該ノードの前段の受信キューの蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出する優先度変数算出部(163)、優先度変数に応じ、各ノードに対して稼動時間を割り当てる時間割当部(164)を備える。

Description

パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法
 本発明は、パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法に関する。
 様々な生産現場におけるファクトリーオートメーション(FA)において、各種機器の動作情報や流動品の測定データ、その他の生産情報に関するサンプリングデータを収集し、データベース化を行う要請が高まっている。そのため、生産工場において、多様な各種機器へのアクセスが可能で、膨大なデータの取り扱いを行うデータ収集分析系の高性能化が求められている。
 一方、情報処理装置において多様なデータを扱えるようにする技術として、パイプライン処理が良く知られている。特許文献1には、このようなパイプライン処理において、各タスクへの実行優先度を調整し、受信バッファ(受信キュー)のオーバーフローを防止して、適切なデータ処理を行う方法が開示されている。
日本国公開特許公報「特開平11-237993号公報」
 FAにおけるデータ収集分析系は、生産工程に応じ、ユーザ(工場管理者)によって、データ収集対象機器、データ処理方法等が自在に定め得るように構成される必要がある。そのためのデータ収集分析機器として、パイプライン演算装置を用いることが考えられている。
 パイプライン演算装置では、データ収集対象機器や、所望のデータ処理方法に対応する準備された機能ブロック(ノード)を組み合わせることで、ユーザが要求するデータ処理手順の設定を容易に行えるようにすることができる。
 更に、データ収集分析機器としてのパイプライン演算装置を、各種制御対象機器の制御を行うプログラマブルロジックコントローラ(Programmable Logic Controller:PLC)に統合することも考えられる。これにより、収集したデータを分析した結果を、各種制御対象機器への制御に反映させることも、容易となる。
 このようなFAで用いるためのパイプライン演算装置の取り扱うデータは膨大であるため、その高性能化が求められる。
 本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置を実現することにある。
 本発明は、上述した課題を解決するために、以下の構成を採用する。
 本発明の一側面に係るパイプライン演算装置は、複数のノードと、複数の受信キューとを有する演算部であって、前記ノードが前記受信キューを介して複数接続されるパイプラインの少なくとも1つで構成される演算部と、ノード監視部と、キュー監視部と、優先度変数算出部と、時間割当部とを有する制御部と、を備え、前記ノード監視部は、前記ノードから、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得し、前記キュー監視部は、前記受信キューから、前記受信キューへの蓄積メッセージ量を取得し、前記優先度変数算出部は、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出し、前記時間割当部は、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てる構成を備える。
 本発明の一側面に係るプログラマブルロジックコントローラは、上記一側面に係るパイプライン演算装置を備えたプログラマブルロジックコントローラであってもよい。
 本発明の一側面に係るパイプライン処理の実行方法は、ノードが受信キューを介して複数接続される少なくとも1つのパイプラインにより、パイプライン処理を実行する方法であって、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得するステップと、前記受信キューへの蓄積メッセージ量を取得するステップと、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出するステップと、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てるステップと、を備えている。
 本発明の一側面に係るパイプライン演算装置によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算を実現できる。
 本発明の一側面に係るプログラマブルロジックコントローラによれば、高性能化されたデータ収集機能を有し、各種制御対象機器の制御について、収集したデータを分析した結果を反映させるFAシステムをユーザが構築することが容易となる。
 本発明の一側面に係るパイプライン処理の実行方法によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算を実現できる。
本発明の実施形態1に係るパイプライン演算装置を示す概略構成図である。 本発明の実施形態1に係るパイプライン演算装置の動作を説明するための図である。(a)、(b)はそれぞれ異なる時刻の状態を示す。 本発明の実施形態2に係るプログラマブルロジックコントローラを示す概略構成図である。 本発明の実施形態3に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。 本発明の実施形態4に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。 本発明の実施形態5に係るパイプライン演算装置を示す概略構成図である。 本発明の実施形態7に係るパイプライン演算装置を示す概略構成図である。 本発明の実施形態7に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。 本発明の実施形態8に係るパイプライン演算装置を示す概略構成図である。
 〔実施形態1〕
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)が、図面に基づいて説明される。
 §1 適用例
 図1を参照して、まず、本発明が適用される場面の一例が述べられる。図1は、本実施形態に係るパイプライン演算装置110の構成を示す概略図である。
 パイプライン演算装置110は、演算部120と制御部160とを備える。
 演算部120は、機能ブロックである、複数のノード(入力ノード130、ロジックノード140、出力ノード150)と、複数の受信キュー141、151とを有する。演算部120では、前記ノードが受信キューを介して複数接続されるパイプラインが構成されており、演算部120には少なくとも1つのパイプラインが設けられている。
 制御部160は、機能ブロックであるノード監視部161と、キュー監視部162と、優先度変数算出部163と、時間割当部164とを有する。
 パイプライン演算装置110は、その外部からロードした、もしくはそれが備える記録装置(不図示)からロードしたパイプライン処理実行プログラムを実行することで、機能ブロックとしてのこれら各部の機能を実現する。
 ノード監視部161は、各ノード(入力ノード130、ロジックノード140、出力ノード150)から、ノードでのメッセージの処理に要する時間であるノード処理時間Tを取得する。
 キュー監視部162は、受信キュー141、151から、それぞれの蓄積メッセージ量を取得する。
 優先度変数算出部163は、少なくとも前記ノードのノード処理時間と、当該ノードの前段の受信キューの蓄積メッセージ量とに基づいて、当該ノードの優先度変数PRIを算出する。
 時間割当部164は、ノード毎の優先度変数PRIに応じ、各ノードに対して稼動時間を割り当てて、動作させる。
 このように、本実施形態のパイプライン演算装置110は、少なくともノード処理時間と受信キューの蓄積メッセージ量とに基づいて、優先度変数PRIを算出し、これに応じて各ノードに対して稼動時間を割り当てる。
 よって、受信キューでのオーバーフローを防止しつつも、パイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置が実現される。
 §2 構成例
 続いて、本実施形態のパイプライン演算装置110の構成の一例が説明される。
 演算部120におけるノードとは、入力ノード130、ロジックノード140、出力ノード150のいずれかである。それぞれの機能は次の通りである。
 入力ノード130は、パイプライン演算装置110の外部の機器等から、メッセージを収集する機能ブロックである。入力ノード130は外部の機器等の種類や扱うメッセージの種類に応じて、多種多様である。本明細書において、ひとまとまりのデータを、メッセージと称し、メッセージの内容は生産情報、制御情報、環境情報などの情報である。制御情報は、例えばサーボモータから取得できるリアルタイムのトルク等のパラメータといった情報であり得、環境情報は、例えば気温といった情報であり得る。
 ロジックノード140は、入力されたメッセージに対して処理を行い、後段に出力する機能ブロックである。ロジックノード140は実施する処理の内容に応じて、多種多様である。
 出力ノード150は、入力されたメッセージをパイプライン演算装置110の外部の機器等へ出力する機能ブロックである。出力ノード150は外部の機器等の種類や扱うメッセージの種類に応じて、多種多様である。
 パイプライン演算装置110の外部の機器等としては、工作機械や測定機器その他の各種FA機器、各種生産情報に関するデータを収集し提供するデータベース、各種生産情報に関するデータを保存するデータベース、インターネットやその他のネットワーク上のクラウドサーバ、であり得る。
 更に、パイプライン演算装置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を構成するパイプラインは、通常多数であるが、少なくとも1つあればよい。また、パイプラインは、1つの入力ノード130から1つの出力ノード150へと、単数もしくは複数のロジックノードが直列に接続されるもののみに限られず、途中で分岐や合流をするものであってもよい。
 ノード監視部161、キュー監視部162、優先度変数算出部163、時間割当部164を有する制御部160の構成の概略は、上記§1適用例に記載の通りである。各部の機能の詳細は、パイプライン演算装置110の動作の説明とともに後述される。
 なお本実施形態においては、各々の受信キューの蓄積メッセージ量として、メッセージの数である、蓄積メッセージ数Qが採用される。
 ノード処理時間Tは具体的に、以下の開始時刻から終了時刻までの時間であり得る。ノードが受信キューからメッセージを受け取った時刻である受信キューのデキュー時刻を開始時刻とし得る。なお、入力ノード130の場合には、入力ノード130が実行のスタート(キック)を行った時刻を開始時刻とし得る。
 また、ノードが接続先のノードの受信キューにメッセージを送り込む時刻である、接続先のノードの受信キューのエンキュー時刻を終了時刻とし得る。なお、出力ノード150の場合には、出力ノード150の出力先の外部機器等へのメッセージの出力が完了した時刻とし得る。更に、特にノードが後段にメッセージを出力しない場合等において、ノードが受け取ったメッセージに係る処理を、メッセージを受け取ったノード自身でそれ以上行う必要のなくなった時点(自身での処理が完了した時点)を、完了した時刻としてもよい。
 §3 動作例
 本実施形態のパイプライン演算装置110の動作について、より具体的な例に基づいて説明する。
 入力ノード130は複数のデータサーバ11から、順次メッセージを取得する。各々のデータサーバ11は、ハイパーテキストトランスファープロトコル(Hypertext Transfer Protocol:http)やハイパーテキストトランスファープロトコルセキュア(Hypertext Transfer Protocol Secure:https)に基づいてメッセージを提供するウェブサーバ(Web Server)であり得る。
 ロジックノード140は順次、入力されたメッセージから、例えば、設備の状態の解析に必要なデータの抽出を行い所要の演算を行って出力する。ロジックノード140、例えば、ハイパーテキストマークアップラングイッジ(HyperText Markup Language:html)解析スクリプトを用いた処理を行うものであってよい。
 出力ノード150は、ロジックノード140が出力するメッセージを、順次、データベース12に対して出力する。
 図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を取得する。なお、ここで単位をミリ秒として表したが、CPU(Central Processing Unit)のクロック数であってもよい。
 また、各々の受信キューに蓄積されたメッセージの数である蓄積メッセージ数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時間を配分する。例示としては、演算部120に与えられるCPU時間を優先度変数PRIによって按分して、各ノードを稼働させる。
 すると、図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とした場合、少なくとも1ms以内に0.02msのCPU時間を確保するように、時間割当部164は、入力ノード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において、各々のノードに割り当てる稼働時間は、各々のノードの受信キューの蓄積メッセージ量である蓄積データ数Qと、ノード処理時間Tとの積である優先度変数PRIに応じて按分される。
 従って、一時的にあるノードの受信キューにメッセージが過剰に蓄積された場合に、ノード処理時間まで考慮されて、ノードに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は、例えば、MQTT(Message Queuing Telemetry Transport)プロトコルにより処理を実行する。
 ここで、データベース12に接続する出力ノード(A)350のノード処理時間Toaが50msであり、クラウドサーバ13に接続する出力ノード(B)352は、より時間を要して、ノード処理時間Tobが150msであるケースを想定する。データベース12が、工場内部のローカルなネットワークに接続されており、インターネット上のクラウドサーバ13に対するよりも、速やかに出力処理が実行されるようなケースに相当する。
 パイプライン321の動作が開始すると、出力ノード(A)350の受信キュー351と、出力ノード(B)352の受信キュー353とには、ロジックノード340から、ほぼ同時にメッセージが出力される。そして受信キュー(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においては、各ノードからのメッセージを1セットとして蓄積メッセージ数Qn2をカウントする。
 ロジックノード(2)444が、受信キュー445から、上記両メッセージをデキューし、両メッセージをマージする等の処理を行って、出力ノード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のように、パイプラインに複数の入力ノードからの合流が設定されている場合に、少なくとも1つの入力ノードに定周期実行の予約がされていると次の事象が発生する。
 合流する部分パイプライン同士でメッセージの処理に要する時間が異なるため合流後のノードの受信キュー(図5では受信キュー445)に、一方の部分パイプラインからのメッセージが積み上がりつつも、他方の部分パイプラインからのメッセージが枯渇する状況となる。そうして、合流後のノードがメッセージ待ちとなり、効率的なパイプラインの運用がなされない状況となる。実施形態5に係るパイプライン演算装置は、このような事象を解消し得る構成を有する。
 図6は、実施形態5に係るパイプライン演算装置610の構成を示す概略図である。
 パイプライン演算装置610は、演算部620と制御部660とを備える。
 演算部620は、上記実施形態のパイプライン演算装置と同様であり、各種のパイプラインを内部に設定し得る。
 制御部660は、パイプライン演算装置110の制御部160の構成に加えて、更に合流監視部665と、補正係数算出部666とを備える。
 合流監視部665は、少なくとも合流直前のノードの受信キュー(図5では、受信キュー441、443)の蓄積メッセージ数をキュー監視部562から受け取り、それらを比較する。そうして、比較の結果、合流する部分パイプライン間の蓄積メッセージ数の不均衡の度合いを判断する。
 補正係数算出部666は、合流監視部665から、合流する部分パイプライン間の蓄積メッセージ数の不均衡の状態の情報を受け取る。補正係数算出部666は、合流する部分パイプライン間の不均衡の度合いに応じて、メッセージの蓄積が生じている部分パイプラインに属するノードについて、補正係数Kを算出する。
 例えば、仮に図5のような合流のあるパイプラインにおいて、受信キュー441の蓄積メッセージ数Qnaが、受信キュー443の蓄積メッセージ数Qnbの3倍になっていたとする。このようなとき、補正係数算出部666は、受信キュー441の属する部分パイプラインのノードである、入力ノード(A)430とロジックノード(A)440とに、補正係数K=3を設定する。
 時間割当部664は、補正係数算出部666が算出した補正係数Kと、パイプライン演算装置110の優先度変数算出部163と同様にして優先度変数算出部663が算出した優先度変数PRIに応じて、各ノードにCPU時間を割り当てる。より具体的には、補正係数が設定されたノードについては、優先度変数PRIに補正係数を乗じた値に応じたCPU時間を割り当てる。
 すると、メッセージの蓄積が生じている部分パイプラインに属するノードによりCPU時間のリソースが割り当てられ、合流点における不均衡が解消する。
 このように、実施形態5に係るパイプライン演算装置610によれば、合流のあるパイプラインにおいても、確実にパイプライン処理が全体として効率的に実行できるようになる。
 〔実施形態6〕
 実施形態6に係るパイプライン演算装置は、上記各実施形態と同様であるが、優先度変数PRIの計算式が異なる一例である。
 上記実施形態での例示において、優先度変数算出部の実行する、優先度変数算出のための計算式は、PRI=T×Qであった。つまり、ノード処理時間Tと蓄積メッセージ数Qとは、同様の重みを有していた。
 しかし、演算部に与えられたメモリの空き容量が少なくなった場合には、蓄積メッセージ数Qにより重みを付けて、暫時蓄積メッセージを減少させる方向に動作することが好ましい場合がある。
 実施形態6に係るパイプライン演算装置では、一例として、優先度変数算出部の実行する、優先度変数算出のための計算式を、PRI=T×Q、(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と、パイプライン演算装置110の優先度変数算出部163と同様にして優先度変数算出部563が算出した優先度変数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とに基づいて、ノード処理時間の統計値を算出する。統計値としては、平均値、中央値、若しくは最頻値が用いられ得る。あるいは、スミルノフ・グラブス検定等の手法を用いて、異常値を採用しないようにした最新のノード処理時間Tとしてもよい、
 優先度変数算出部763は、ノード処理時間については、統計値算出部768が算出した前記統計値を用いる他は、パイプライン演算装置110の優先度変数算出部163と同様にして、優先度変数PRIを算出する。
 時間割当部764の動作は、パイプライン演算装置110の時間割当部164と同様である。
 実施形態8に係るパイプライン演算装置710によれば、優先度変数PRIを算出のためのノード処理時間として統計値を採用するから、突発的な事由による各ノードにおける極端な稼働時間の割り当ての発生が防止され得る。
 〔付記事項〕
 上記実施形態において、受信キューの蓄積メッセージ量として、蓄積されたメッセージの数である、蓄積メッセージ数Qが用いられた。
 しかしながら、本発明の適用はこれに限られるもので無く、蓄積メッセージ量として、受信キューに蓄積されたメッセージの総サイズ(メモリの使用量)が用いられてもよい。この場合、優先度変数PRIは、蓄積されたメッセージの総サイズとノード処理時間Tとの積で算出され得る。
 また、上記実施形態において、優先度変数PRIとして、上述の特定の例について説明された。しかしながら、本発明の適用はこれに限られるもので無く、優先度変数PRIとして、メッセージごとに、その重要度など、メッセージの処理優先度を算出する上で有用と思われる指標に応じた係数を乗じて、その総和を用いて算出してもよい。
 更に、本発明のパイプライン演算装置は、演算部における全てのノードが、本発明の制御部160で制御されるものに限られるものではなく、一部のノードは他の方法によって制御されるものであってもよい。
 〔ソフトウェアによる実現例〕
 パイプライン演算装置110、210、510、610、710の機能ブロック(特に、入力ノード、ロジックノード、出力ノード、受信キュー、ノード監視部、キュー監視部、優先度変数算出部、時間割当部、合流監視部、補正係数算出部、メモリ監視部、統計値算出部)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
 後者の場合、パイプライン演算装置110、210、510、610、710は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。
 上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。
 また、上記プログラムを展開するRAM(Random Access Memory)などを更に備えていてもよい。
 また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。
 なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
 〔まとめ〕
 本発明の一側面に係るパイプライン演算装置は、複数のノードと、複数の受信キューとを有する演算部であって、前記ノードが前記受信キューを介して複数接続されるパイプラインの少なくとも1つで構成される演算部と、ノード監視部と、キュー監視部と、優先度変数算出部と、時間割当部とを有する制御部と、を備え、前記ノード監視部は、前記ノードから、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得し、前記キュー監視部は、前記受信キューから、前記受信キューへの蓄積メッセージ量を取得し、前記優先度変数算出部は、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出し、前記時間割当部は、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てる構成を備える。
 上記構成によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置が実現される。
 上記一側面に係るパイプライン演算装置において、前記蓄積メッセージ量は、前記受信キューへ蓄積されたメッセージ数または蓄積されたメッセージの総サイズであってもよい。
 上記構成によれば、パイプライン処理が全体として効率的に実行できるようにするための優先度変数を具体的に算出できる。
 上記一側面に係るパイプライン演算装置において、前記優先度変数算出部は、前記ノードの前記ノード処理時間と前記蓄積メッセージ量との積を、当該ノードの優先度変数として算出する構成を有していてもよい。
 上記構成によれば、メッセージ入力待ちによるノードの動作のアイドル状態が生じる事態が発生し、パイプライン全体としての動作の効率が悪くなることを抑制しうる。
 上記一側面に係るパイプライン演算装置において、前記優先度変数算出部は、前記ノード監視部が取得した前記ノードの過去からの複数の前記ノード処理時間に基づいて、当該ノードの前記優先度変数を算出するための前記ノード処理時間を生成する構成を有していてもよい。
 上記構成によれば、突発的な事由による各ノードにおける極端な稼働時間の割り当ての発生を防止し得る。
 上記一側面に係るパイプライン演算装置において、前記演算部は、合流監視部と、補正係数算出部とを更に備え、前記合流監視部は、前記パイプラインのうち、複数の部分パイプラインが合流するパイプラインについて、前記複数の部分パイプラインの合流点の前記ノードよりも上流の、互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量を、前記キュー監視部から取得して、前記互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量の不均衡の度合いを算出し、前記補正係数算出部は、前記互いに異なる部分パイプラインのうちの、いずれかの部分パイプラインに属するノードについて、前記不均衡の度合いに応じて補正係数を算出し、前記時間割当部は、前記ノードについて前記補正係数が算出された場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる構成を有していてもよい。
 上記構成によれば、合流のあるパイプラインにおいても、確実にパイプライン処理が全体として効率的に実行できるようになる。
 上記一側面に係るパイプライン演算装置において、前記演算部は、メモリ監視部と、補正係数算出部とを更に備え、前記メモリ監視部は、前記受信キューの蓄積メッセージを保存するメモリの空き容量が所定値よりも小さくなった場合に前記補正係数算出部に通知し、前記補正係数算出部は、前記通知を受信した場合に、前記複数のパイプラインのうち、パイプラインでのメッセージの処理が完了するまでの時間がより短い、または、分岐のより少ないパイプラインに属する前記ノードについて、1より大きい補正係数を与え、前記時間割当部は、前記ノードについて前記補正係数が与えられた場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる構成を有していてもよい。
 上記構成によれば、メモリの空き容量が少なくなった場合に、演算部に滞留しているメッセージを減少させることができ、メモリ資源の不足が生じる事態の発生を抑制することができる。
 本発明の一側面に係るプログラマブルロジックコントローラは、上記一側面に係るパイプライン演算装置を備えたプログラマブルロジックコントローラであってもよい。
 上記構成によれば、高性能化されたデータ収集機能を有し、各種制御対象機器の制御について、収集したデータを分析した結果を反映させるFAシステムをユーザが構築することが容易となる。
 本発明の一側面に係るパイプライン処理の実行方法は、ノードが受信キューを介して複数接続される少なくとも1つのパイプラインにより、パイプライン処理を実行する方法であって、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得するステップと、前記受信キューへの蓄積メッセージ量を取得するステップと、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出するステップと、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てるステップと、を備えている。
 上記構成によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算処理が実現される。
 本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
 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 優先度変数

Claims (8)

  1.  複数のノードと、複数の受信キューとを有する演算部であって、前記ノードが前記受信キューを介して複数接続されるパイプラインの少なくとも1つで構成される演算部と、
     ノード監視部と、キュー監視部と、優先度変数算出部と、時間割当部とを有する制御部と、を備え、
     前記ノード監視部は、前記ノードから、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得し、
     前記キュー監視部は、前記受信キューから、前記受信キューへの蓄積メッセージ量を取得し、
     前記優先度変数算出部は、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出し、
     前記時間割当部は、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てる、パイプライン演算装置。
  2.  前記蓄積メッセージ量は、前記受信キューへ蓄積されたメッセージ数または蓄積されたメッセージの総サイズである、請求項1に記載のパイプライン演算装置。
  3.  前記優先度変数算出部は、前記ノードの前記ノード処理時間と前記蓄積メッセージ量との積を、当該ノードの優先度変数として算出する、請求項1または2に記載のパイプライン演算装置。
  4.  前記優先度変数算出部は、前記ノード監視部が取得した前記ノードの過去からの複数の前記ノード処理時間に基づいて、当該ノードの前記優先度変数を算出するための前記ノード処理時間を生成する、請求項1から3のいずれか1項に記載のパイプライン演算装置。
  5.  前記演算部は、合流監視部と、補正係数算出部とを更に備え、
     前記合流監視部は、前記パイプラインのうち、複数の部分パイプラインが合流するパイプラインについて、前記複数の部分パイプラインの合流点の前記ノードよりも上流の、互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量を、前記キュー監視部から取得して、前記互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量の不均衡の度合いを算出し、
     前記補正係数算出部は、前記互いに異なる部分パイプラインのうちの、いずれかの部分パイプラインに属するノードについて、前記不均衡の度合いに応じて補正係数を算出し、
     前記時間割当部は、前記ノードについて前記補正係数が算出された場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる、請求項1から4のいずれか1項に記載のパイプライン演算装置。
  6.  前記演算部は、メモリ監視部と、補正係数算出部とを更に備え、
     前記メモリ監視部は、前記受信キューの蓄積メッセージを保存するメモリの空き容量が所定値よりも小さくなった場合に前記補正係数算出部に通知し、
     前記補正係数算出部は、前記通知を受信した場合に、前記複数のパイプラインのうち、パイプラインでのメッセージの処理が完了するまでの時間がより短い、または、分岐のより少ないパイプラインに属する前記ノードについて、1より大きい補正係数を与え、
     前記時間割当部は、前記ノードについて前記補正係数が与えられた場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる、請求項1から4のいずれか1項に記載のパイプライン演算装置。
  7.  請求項1から6のいずれか1項に記載のパイプライン演算装置を備えたプログラマブルロジックコントローラ。
  8.  ノードが受信キューを介して複数接続される少なくとも1つのパイプラインにより、パイプライン処理を実行する方法であって、
     前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得するステップと、
     前記受信キューへの蓄積メッセージ量を取得するステップと、
     少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出するステップと、
     前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てるステップと、を備えたパイプライン処理の実行方法。
PCT/JP2020/009930 2019-03-20 2020-03-09 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法 WO2020189360A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP20773428.6A EP3944037A4 (en) 2019-03-20 2020-03-09 PIPELINE COMPUTER APPARATUS, PROGRAMMABLE LOGIC CONTROLLER AND METHOD FOR PERFORMING PIPELINE PROCESSING
KR1020217029772A KR20210137472A (ko) 2019-03-20 2020-03-09 파이프라인 연산 장치, 프로그래머블 로직 콘트롤러, 및 파이프라인 처리의 실행 방법
CN202080019453.2A CN113614658A (zh) 2019-03-20 2020-03-09 管线运算装置、可编程逻辑控制器及管线处理的执行方法
US17/439,821 US20220179708A1 (en) 2019-03-20 2020-03-09 Pipeline computing apparatus, programmable logic controller, and pipeline processing execution method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-053468 2019-03-20
JP2019053468A JP7031630B2 (ja) 2019-03-20 2019-03-20 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法

Publications (1)

Publication Number Publication Date
WO2020189360A1 true WO2020189360A1 (ja) 2020-09-24

Family

ID=72520310

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009930 WO2020189360A1 (ja) 2019-03-20 2020-03-09 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法

Country Status (6)

Country Link
US (1) US20220179708A1 (ja)
EP (1) EP3944037A4 (ja)
JP (1) JP7031630B2 (ja)
KR (1) KR20210137472A (ja)
CN (1) CN113614658A (ja)
WO (1) WO2020189360A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230418659A1 (en) * 2021-03-17 2023-12-28 Hitachi Astemo, Ltd. Object recognition device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11237993A (ja) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd タスクの優先度制御方法およびタスクの優先度制御装置
JP2004133577A (ja) * 2002-10-09 2004-04-30 Seiko Epson Corp 半導体装置
JP2012073906A (ja) * 2010-09-29 2012-04-12 Canon Inc 情報処理装置、及び、プロセッサ間通信制御方法
WO2012169037A1 (ja) * 2011-06-09 2012-12-13 三菱電機株式会社 プログラマブルコントローラシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651125B2 (en) * 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US8489700B2 (en) * 2005-11-30 2013-07-16 International Business Machines Corporation Analysis of nodal affinity behavior
US9529626B2 (en) * 2012-09-12 2016-12-27 Salesforce.Com, Inc. Facilitating equitable distribution of thread resources for job types associated with tenants in a multi-tenant on-demand services environment
US9021493B2 (en) * 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
JP6786814B2 (ja) * 2016-02-17 2020-11-18 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11237993A (ja) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd タスクの優先度制御方法およびタスクの優先度制御装置
JP2004133577A (ja) * 2002-10-09 2004-04-30 Seiko Epson Corp 半導体装置
JP2012073906A (ja) * 2010-09-29 2012-04-12 Canon Inc 情報処理装置、及び、プロセッサ間通信制御方法
WO2012169037A1 (ja) * 2011-06-09 2012-12-13 三菱電機株式会社 プログラマブルコントローラシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3944037A4 *

Also Published As

Publication number Publication date
US20220179708A1 (en) 2022-06-09
JP2020154830A (ja) 2020-09-24
EP3944037A4 (en) 2022-11-09
JP7031630B2 (ja) 2022-03-08
KR20210137472A (ko) 2021-11-17
CN113614658A (zh) 2021-11-05
EP3944037A1 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
CN105912401B (zh) 一种分布式数据批处理系统和方法
US8387059B2 (en) Black-box performance control for high-volume throughput-centric systems
CN106648904A (zh) 一种流式数据处理自适应速率控制方法
US20050172291A1 (en) Method and apparatus for utility-based dynamic resource allocation in a distributed computing system
CN109981744B (zh) 数据的分发方法、装置、存储介质及电子设备
CN103019853A (zh) 一种作业任务的调度方法和装置
CN104580306A (zh) 一种多终端备份服务系统及其任务调度方法
CN107291544A (zh) 任务调度的方法及装置、分布式任务执行系统
US11297161B1 (en) Systems and methods for managing an automotive edge computing environment
CN115794407A (zh) 计算资源分配方法、装置、电子设备及非易失性存储介质
WO2014127158A1 (en) Application congestion control
WO2020189360A1 (ja) パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法
Xia et al. Feedback based network scheduling of networked control systems
CN116383248A (zh) 一种数据查询任务加速方法、装置、设备及存储介质
Zheng et al. Dynamic load balancing and pricing in grid computing with communication delay
CN117370033A (zh) 云边协同资源优化方法、装置、电子设备和存储介质
Kamoun Performance analysis of a non-preemptive priority queuing system subjected to a correlated Markovian interruption process
CN109032779A (zh) 任务处理方法、装置、计算机设备及可读存储介质
JP7420228B2 (ja) 分散処理システムおよび分散処理方法
Yu et al. Performance modelling and analysis of MapReduce/Hadoop workloads
Lu et al. Analytical performance analysis of network-processor-based application designs
CN106533730A (zh) Hadoop集群组件指标的采集方法及装置
CN117539647B (zh) 基于边缘计算网关节点属性的任务调度规划方法和系统
Mirtchev et al. A generalized Erlang-C model for the enhanced living environment as a service (ELEaaS)
CN112148475B (zh) 综合负载与功耗的龙芯大数据一体机任务调度方法及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20773428

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020773428

Country of ref document: EP

Effective date: 20211020