WO2013136717A1 - 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体 - Google Patents

時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体 Download PDF

Info

Publication number
WO2013136717A1
WO2013136717A1 PCT/JP2013/001364 JP2013001364W WO2013136717A1 WO 2013136717 A1 WO2013136717 A1 WO 2013136717A1 JP 2013001364 W JP2013001364 W JP 2013001364W WO 2013136717 A1 WO2013136717 A1 WO 2013136717A1
Authority
WO
WIPO (PCT)
Prior art keywords
result data
processing
unit
output
processing unit
Prior art date
Application number
PCT/JP2013/001364
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 JP2014504672A priority Critical patent/JP6040979B2/ja
Priority to US14/381,601 priority patent/US9075669B2/en
Publication of WO2013136717A1 publication Critical patent/WO2013136717A1/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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • the present invention relates to a time-series data processing device, a time-series data processing method, and a time-series data processing program storage medium for processing time-series data.
  • the present invention relates to a time-series data processing device, a time-series data processing method, and a time-series data processing program storage medium that can change processing in another arbitrary region while continuing to execute processing in a certain region on the device.
  • data processing for time-series data refers to processing performed on time-series input data, that is, a series of data input one after another. Similarly, the result data of the data processing for the time series data is output one after another. “To be input one after another” means that a plurality of data arrive at the processing device at different timings over a certain period.
  • time series data processing there is a process of taking the sum of the two most recent values of the time series data.
  • the data array is represented as [1, 2, 3, 4], the data set is represented as ⁇ 1, 2, 3, 4 ⁇ , and the data set is represented as ⁇ 10.
  • Degrees are represented by the type of parenthesis, such as degree, January 1>.
  • numerical values of individual data such as 1 and 2 are expressed as “1” and “2”, and are distinguished from codes indicating constituent elements.
  • the cycle of the clock used for the operation of the time-series data processing device is called “cycle”, and this is used as a unit of period.
  • “At the start of the cycle” means the first time of the period
  • “at the end of the cycle” means the last time of the period.
  • the first cycle for a certain reference time is a period between the reference time plus zero seconds and the reference time plus 1 nanosecond
  • the Nth cycle is the reference time plus (N ⁇ 1 ) Means the period from nanoseconds to the reference time plus N nanoseconds.
  • the start of the Mth cycle means a reference time plus (M ⁇ 1) nanoseconds
  • the end of the Mth cycle means a reference time plus M nanoseconds.
  • the input data is a set of one or more values.
  • a pair of temperature and date For example, a pair of temperature and date, a pair of temperature only, and a pair of brand, stock price and time.
  • a set of temperature and date is represented as ⁇ 10 degrees, January 1>.
  • the input data and the value handled by the device are simply referred to as “data” when there is no possibility of confusion between them.
  • Time series data processing is often performed for multiple input data. Furthermore, time-series data processing is often performed on a window of time-series data.
  • a “window” is a set of input data, and there are two types. One is a set of the most recent N input data, where N is a predetermined number (N is an integer equal to or greater than 1). The other is a set of input data that falls within that period, where P is a period of a predetermined time and one element of the set of input data is regarded as a time.
  • a set of temperature and date is input data, and ⁇ 10 degrees, January 1>, ⁇ 11 degrees, January 2>, ⁇ 10 degrees, January 3>, ⁇ 10 degrees, January 4 It is assumed that time series data of> is given.
  • the windows that fit in the period from January 4 to the past three days are ⁇ 11 degrees, January 2>, ⁇ 10 degrees, January 3>, ⁇ 10 degrees, January 4> ⁇ .
  • window data In time series data processing, this window data is often stored.
  • windows or window data are represented as arrays or sets.
  • Partition An area in which the contents of the time series data processing can be defined, specifically, an area in which circuit information or the like for configuring a circuit for executing the processing can be written
  • IC Integrated (Circuit) chip having a plurality of.
  • An example of such an IC chip is a FPGA (Field Programmable Gate Gate Array).
  • time series data processing can be executed using a processor that reads and executes a program from a memory as an IC chip. In this case, a program for designating processing contents, that is, a processing procedure may be written in the memory.
  • the first user-defined process (referred to as “updated process”) is executed in the first partition, and the second user-defined process (referred to as “old process”) in the second partition. Is assumed to be executed.
  • new process the updated process to the third user-defined process
  • the update process in the first area is stopped and changed to the new process.
  • the execution of the new process is started, and then the old process in the second area is stopped.
  • an application that calculates an index to determine the timing of buying and selling financial products such as stock certificates.
  • Some devices can calculate only a finite number of indices simultaneously. The brands and strategies to buy and sell change according to the time. Therefore, there is a need to change the index to be calculated according to the brand to be traded at that time and the trading strategy.
  • time-series data 1 is input, and the old process saves the value as window data.
  • time series data 2 is input, and the old process saves the value as window data. Also, since the old process has the latest two values, “3” is output as the result data.
  • a rewrite instruction to circuit information for executing a new process is given. It is assumed that the process operating in the area where the circuit information for executing the new process is to be written is stopped, the circuit information for executing the new process is further written to the apparatus, and the operation is started. Here, it is assumed that circuit information for executing the new process is written in an area different from the old process, and the old process and the new process operate in parallel for a while.
  • time series data “3” is input, and the new process saves the value as window data.
  • time series data “4” is input, and the new process saves the value as window data.
  • time series data “5” is input, and the new process saves the value as window data.
  • the new process outputs “12” as result data.
  • the old process is stopped or deleted, and the process change is completed.
  • outputting the desired result in the desired order by controlling the output order and output target selection is referred to as “matching”. A detailed description of “matching” will be described later.
  • Patent Documents 1, 2, 3, and Non-Patent Document 1 are described in Patent Documents 1, 2, 3, and Non-Patent Document 1.
  • Patent Document 1 discloses a reconfigurable time-series data processing device.
  • FIG. 26 shows a configuration diagram of the time-series data processing apparatus disclosed in Patent Document 1.
  • the technique of Patent Document 1 is configured to execute a user-defined process.
  • the processing unit 621, the processing control unit 611, the reconstruction unit 622, and the processing unit result are output to an output port to the outside. It consists of an output connection part 631 to be connected.
  • the processing unit 621 executes processing, and the processing control unit 611 controls the start and stop of the processing that operates in the processing unit 621.
  • the reconfiguration unit 622 reconfigures the processing unit 621.
  • the output connection unit 631 connects or blocks the processing unit 621 and the output port to the outside.
  • Patent Document 2 discloses a reconfigurable information processing system using a programmable logic circuit.
  • usable logic cells are determined by using logic cell state data reflecting the use status of the logic cells of the programmable logic circuit.
  • Patent Document 3 discloses a reconfigurable circuit.
  • the reconfigurable cell is provided with a reset flag, and the reconfigurable cell is set to a protection mode that protects from reset or a normal mode that does not protect from reset.
  • Non-Patent Document 1 discloses a reconfigurable time-series data processing device.
  • FIG. 27 shows a configuration diagram of the time-series data processing device of Non-Patent Document 1.
  • the technique of Non-Patent Document 1 includes a host computer 501, a processing unit 521, a processing control unit 511, a reconfiguration unit 522, and an output connection unit 531.
  • the host computer 501 instructs a change of processing.
  • the processing unit 521 is an area where a circuit that executes a process defined by the user can be configured (circuit information for executing the process is set), and executes the process.
  • the process control unit 511 starts and stops the process that operates in the processing unit 521.
  • the reconfiguration unit 522 performs reconfiguration of the processing unit 521.
  • the output connection unit 531 transfers the result of the processing unit 521 to the output port to the outside of the apparatus.
  • Non-Patent Document 1 The operation of the technique of Non-Patent Document 1 will be described with reference to FIGS.
  • the host computer 501 and the process activation unit 511 are in a state where the first process operated by the processing unit 521 is activated.
  • the output connection unit 531 permits the output of the result of the first process to the outside of the apparatus. Specifically, the output connection unit 531 connects the output of the processing unit 521 to the output port.
  • a command to write the second process is issued from the host computer 502.
  • the host computer 502 issues a command to the processing control unit 511 to reset the processing that operates in the processing unit 521.
  • the process control unit 511 resets the process operating in the processing unit 521.
  • the processing control unit 511 issues a command to the output connection unit 531 to block the output of the processing result of the processing unit 521 to the outside of the apparatus.
  • the output connection unit 531 cuts off the connection between the processing unit 521 and the output port.
  • the host computer 502 sends configuration information to the reconfiguration unit 522.
  • the reconfiguration unit 522 sends the configuration information to the processing unit 521.
  • each part is in a state as shown in FIG.
  • Reconfiguration is complete at the end of the 13th cycle.
  • the reconfiguration unit 522 notifies the processing control unit 511 of the completion of the reconfiguration.
  • each part is in a state as shown in FIG.
  • the processing control unit 511 starts the processing written in the processing unit 521. For example, the process control unit 511 deasserts the reset signal. Furthermore, the process control unit 511 checks whether the process has started. For example, the processing control unit 511 checks that a specific bit pattern is output from the processing unit 521.
  • the process control unit 511 instructs the output connection unit 531 to permit output of the result of the second process to the outside of the apparatus.
  • the output connection unit 531 permits the output of the result of the second process to the outside of the apparatus.
  • the output connection unit 531 connects the output of the processing unit 521 to the output port.
  • Time series data “3” is input at the start of the 16th cycle
  • time series data “4” is input at the start of the 17th cycle
  • time series data “5” is input at the start of the 18th cycle. Since the second process obtains [4, 5, 6] which is the latest binary value, the processing unit 501 calculates and outputs “15” as a result. At the end of the 18th cycle, each part is in a state as shown in FIG.
  • the first user-defined process (updated process) is executed in the first area on the device, and the second user-defined process (old process) is executed in the second area.
  • the process is updated when the old process is executed in the second area. That is, the updated process being executed in the first area is stopped, and the circuit information of the circuit that executes the third user-defined process (new process) is written in the first area. Then, execution of the new process is started and the old process is stopped. As described above, the old process is changed to the new process.
  • Non-Patent Document 1 handles only one area, it is impossible to change from the updated process during the execution of the old process to the new process and to start the new process.
  • the change in the target process includes the order of outputting the result data of the old process and the result data of the new process to the outside of the apparatus, and the result of the output among the result data of the new process and the result data of the old process There is a requirement of “ensuring consistency” for data selection.
  • “Ensuring consistency” means controlling the relationship between the generation order and output order of new processing result data and old processing result data that exist simultaneously in the time-series data processing device, and generating new processing result data. This means that the result data to be output is selected based on the time. Details of “ensuring consistency” will be described in detail in the description of the embodiment.
  • Non-Patent Document 1 handles only one area, the result data of the old process and the result data of the new process are not distinguished. Therefore, it is not possible to match the output of the result data of the old process and the new process to the outside of the apparatus.
  • Patent Document 1 since the technology of Patent Document 1 cannot exchange information between a plurality of areas, it is not possible to match the output of the result data of the old process and the new process to the outside of the apparatus.
  • Patent Document 2 it is possible to grasp the state of an area, such as whether or not the area is usable.
  • the technique of Patent Document 2 does not consider a change from the old process to the new process, and does not include a means for identifying the processing content. That is, there is no information for determining whether the result data output from the processing circuit is based on the old process or the new process. Therefore, there is a problem that it is not possible to match the output of the result data of the old process and the new process to the outside of the apparatus.
  • Patent Document 3 it is possible to set the effectiveness of resetting to each reconfigurable cell.
  • the technique of Patent Document 3 does not consider the change from the old process to the new process, and does not include a means for identifying the processing content. Therefore, there is a problem that it is not possible to match the output of the result data of the old process and the new process to the outside of the apparatus.
  • Non-Patent Document 1 and Patent Document 1 the processing in each of a plurality of areas is grasped and processed such as completed, executing, stopped, and reconfiguring the processing circuit.
  • Non-Patent Document 1 and Patent Document 1-3 when changing from old processing to new processing during execution of old processing, the result data of the old processing and new processing are output to the outside of the apparatus.
  • the present invention has been proposed in view of such circumstances, and it is possible to change to a new process during execution of an old process, select output data when the process is changed, and control the output order.
  • An apparatus, a time-series data processing method, and a time-series data processing program storage medium are provided.
  • the time-series data processing device of the present invention includes a reconfigurable first processing unit that executes the first process or the third process to generate the first result data or the third result data, and the second A second processing unit that executes the process of generating second result data; a reconfiguration unit that changes the process executed by the first processing unit from the first process to the third process; A first processing unit that stops the first processing in the first processing unit and starts the third processing in the first processing unit, and permits or prohibits the output of the first result data and the third result data.
  • the first process control unit Based on an instruction from the process control unit, the first process control unit, a first output control unit that permits or prohibits the output of the first result data and the third result data, and the first result data includes the first
  • the first identification information corresponding to the content of the process is added to generate a first result data set
  • the second identification information corresponding to the content of the second process is added to the result data of 2 to generate a second set of result data
  • the third result data corresponds to the content of the third process.
  • An information management unit that adds the third identification information to generate a third set of result data, and when the processing change instruction is received from the outside, the first processing control unit stops the first processing and 3 is instructed to start the process 3 and to permit or prohibit the output of the first result data and the third result data, and to instruct the reconstruction unit to change from the first process to the third process.
  • a state management unit that instructs the management unit to add the second identification information and the third identification information, and a second set of result data from the first output control unit to the second output control unit.
  • the result data set is input, and based on the third identification information and the second identification information, the third result data Selecting one of the set or the second result data set, characterized by comprising result output matching unit for data output included in the set of results selected data.
  • the first processing unit executes the first process to generate the first result data, and the first result data corresponds to the contents of the first process.
  • the second processing unit executes the second process to generate the second result data, and the second result data includes the second result data.
  • the second result data set is generated by adding the second identification information corresponding to the contents of the process, and the process change instruction is received from the outside, the first process in the first processing unit is stopped.
  • the output of the first result data is prohibited, the process executed by the first processing unit is changed from the first process to the third process, the third process is started, and the third result data Is output, and third identification information corresponding to the content of the third process is added to the third result data to add the third Generating a set of result data, inputting a third set of result data from the first output control unit, inputting a second set of result data from the second output control unit; and third identification information and One of the third result data set and the second result data set is selected based on the second identification information, and the result data included in the selected result data set is output.
  • the time-series data processing program storage medium of the present invention includes a first processing unit that executes the first process and outputs the first result data, and a first processing unit that executes the second process and outputs the second result data.
  • reconfiguration means for changing the processing executed by the first processing unit from the first processing to the third processing in the computer included in the time-series data processing apparatus including the two processing units
  • a first process control means for executing the stop of the first process and the start of the third process in the first processing unit, and permitting or prohibiting the output of the first result data and the third result data
  • 1st output control means for permitting or prohibiting the output of the first result data and the third result data based on the instruction of the first process control means, and the first result data corresponds to the contents of the first process.
  • the first result data is added with the first identification information.
  • a second result data set is generated by adding the second identification information corresponding to the content of the second process to the second result data, and the third result data is set to the third result data.
  • state management means for instructing the information management means to add the second identification information and the third identification information, and the second set of the third result data from the first output control unit, the second The second set of result data is input from the output control unit of the first, third identification information and second identification information Based on this, a program for selecting one of the third result data set or the second result data set and functioning as output matching means for outputting the result data included in the selected result data set is stored. .
  • FIG. 3 is a block diagram illustrating a first example of implementation of a version comparison unit 121.
  • FIG. 12 is a block diagram illustrating a second example of implementation of the version comparison unit 121.
  • FIG. 10 is a block diagram illustrating an example of mounting a partial version comparison unit 1001.
  • FIG. 10 is a flowchart which shows the process example in the time series data processing apparatus of embodiment of this invention. It is a flowchart which shows the process example in the time series data processing apparatus of embodiment of this invention.
  • FIG. 10 is a block diagram showing a configuration of a time-series data processing device of Patent Document 1.
  • FIG. It is a block diagram which shows the structure of the time series data processing apparatus of a nonpatent literature 1.
  • the time-series data processing apparatus executes user-defined processing in each of a plurality of areas, and changes processing in other arbitrary areas to processing that performs different operations when executing processing in a certain area.
  • first user-defined process or “old process”
  • second user-defined process or “new process”.
  • An area in which circuit information for executing the new process is written is called a first processing unit
  • an area in which circuit information for executing the old process is written and the old process is operating is called a second processing unit.
  • Processing changes are made in the next step. (1) Since the circuit information for executing the new process is written in the first processing unit, the process operating in the first processing unit is stopped. (2) Write circuit information for executing a new process to the first processing unit. (3) Start the operation of the new process, (4) Start output of the new process, (5) Stop the old process. (6) Delete circuit information to be executed in the old process.
  • Time-series data processing may be realized using a device having a plurality of areas in which circuit information for executing processing can be written.
  • a device having a plurality of areas in which circuit information for executing processing can be written.
  • An example of such a device is an FPGA.
  • the first area in the FPGA corresponds to the first processing unit
  • the second area corresponds to the second processing unit.
  • time-series data processing may be realized using a plurality of chips.
  • the first chip corresponds to the first processing unit
  • the second chip corresponds to the second processing unit.
  • FIG. 2 is a block diagram showing the configuration of the time-series data processing apparatus according to the embodiment of the present invention.
  • the time-series data processing apparatus 100 includes a first processing unit 121-1, a second processing unit 121-2, a state management unit 101, processing control units 111-1, 111-2, a reconstruction unit 122, and an output connection unit. 131-1 and 131-2, an information management unit 142, and an output matching unit 141 are provided.
  • the first processing unit 121-1 inputs data, executes the first user-defined processing, and sends the result data to the output connection unit 131.
  • the first processing unit 121-1 outputs a process completion notification that the process is complete to the state management unit 101.
  • the first processing unit 121-1 inputs a processing stop command from the processing control unit 111 and stops the first user-defined processing.
  • the reconfiguration unit 122 changes the process to be executed from the first user definition process to the third user definition process.
  • the first processing unit 121-1 starts the third user-defined process, inputs and executes data, and outputs the result data to the output connecting unit 131. .
  • the second processing unit 121-2 inputs the data, executes the second user-defined process, and outputs the result data to the output connection unit 111.
  • the state management unit 101 inputs a processing completion notification from the first processing unit 121-1, and records that the first processing unit 121-1 is in a state where the processing has been completed.
  • the state management unit 101 outputs a stop sequence command when the first processing unit 121-1 is in a completed state, and records that the first processing unit 121-1 is in a stopped state.
  • the state management unit 101 records the process ID and version number of the second user definition process and the third user definition process in the information management unit 142. Then, the state management unit 101 instructs the reconfiguration unit 122 to start reconfiguration with respect to the first processing unit 121-1, and records that the first processing unit 121-1 is being reconfigured.
  • the state management unit 101 When the reconfiguration completion notification is input from the reconfiguration unit 122, the state management unit 101 records that the reconfiguration to the first processing unit 121-1 is completed, and reconfigures the first processing unit 121-1.
  • the startup sequence command for the third user-defined process that has been performed is output.
  • the process control unit 111 When the process control unit 111 receives a stop sequence command from the state management unit 101, the process control unit 111 outputs a process stop command to the first processing unit 121-1, and outputs a shut-off command to the output connection unit 131.
  • the processing control unit 111 when the processing control unit 111 receives a startup sequence command from the state management unit 101, the processing control unit 111 outputs a processing startup command to the first processing unit 121-1. Then, the processing control unit 111 confirms that the first processing unit 121-1 has been successfully activated, and outputs a connection command to the output connection unit 131.
  • the reconfiguration unit 122 reconfigures the first processing unit 121-1, and outputs a reconfiguration completion notification to the state management unit 101.
  • the output connection unit 131 inputs the result data of the first processing unit 121-1 or the second processing unit 121-2.
  • the output connection unit 131 outputs the result data to the output matching unit 141 when a connection command is input from the processing control unit 111.
  • the output connecting unit 131 blocks the transfer of the result data to the output matching unit 141 when the blocking command is input from the processing control unit 111.
  • the information management unit 142 records the process ID and version number of the second user definition process and the third user definition process. In addition, the information management unit 142 adds the ID and version number of the second process to the result data of the second user definition process and sends the result data to the output matching unit 141, and the result data of the third user definition process includes the result data of the third user definition process. The third processing ID and version number are added and sent to the output matching unit 141.
  • the output matching unit 141 sets the result data of the second user-defined process, a set of ID and version number of the second process (hereinafter, a set of information including the result data, process ID and version number). And a result data set including the result data of the third user-defined process, the ID of the third process, and the version number. Then, the output matching unit 141 determines the output order to the outside of the apparatus and whether or not to output, and outputs it to the outside of the apparatus.
  • processing control units 111 and output connection units 131 associated with the processing units 121-1 and 121-2.
  • the processing unit 121-2 does not have a process start / stop function, the process start / stop command function of the process control unit 111 for the process unit 121-2 is not essential.
  • the processing unit 121-2 may include a process completion notification output function, a process stop function, a process change function to be executed, and a process start.
  • the processing unit 121-2 has the same configuration as the processing unit 121-1.
  • a processing control unit 111 and an output connection unit 131 having the same functions are provided in association with the processing unit 121-1 and the processing unit 121-2.
  • the time-series data processing apparatus 100 generally operates as follows. That is, the first processing unit 121-1 inputs data, executes the first user-defined process, and outputs the result data to the output connection unit 131.
  • the second processing unit 121-2 receives the data, executes the second user definition process, and outputs the result data to the output connection unit 131.
  • the first processing unit 121-1 outputs a processing completion notification that the first processing is complete to the state management unit 101.
  • the state management unit 101 inputs a process completion notification and records that the first processing unit 121-1 has completed the process.
  • the state management unit 101 outputs a stop sequence command when the first user definition process is completed.
  • the process control unit 111 inputs a stop sequence command, stops the first user-defined process by the first processing unit 121-1, and outputs an output cutoff command.
  • the output connection unit 131 inputs an output cutoff command and blocks transfer of result data from the first user-defined process.
  • the state management unit 101 records the process ID and version number of the second user definition process and the third user definition process in the information management unit 142. Then, the state management unit 101 instructs the first processing unit 121-1 to start reconfiguration.
  • the reconfiguration unit 122 inputs the reconfiguration command. Then, the reconfiguration unit 122 writes the third user definition process to the first processing unit 121-1, performs reconfiguration, and outputs a reconfiguration completion notification.
  • the state management unit 101 When the reconfiguration completion notification is input, the state management unit 101 records that the reconfiguration to the first processing unit 121-1 is completed, and the third processing unit 121-1 reconfigures the third reconfiguration. Outputs startup sequence commands for user-defined processing.
  • the process control unit 111 inputs an activation sequence command and activates the third user-defined process by the first processing unit. And the process control part 111 will output an output connection command, if a start-up success is confirmed.
  • the output connection unit 131 starts transferring the result data of the third user-defined process to the output matching unit 141.
  • the first processing unit 121-1 inputs data, executes a third user-defined process, and outputs the result data to the output connection unit 131.
  • the information management unit 142 adds the ID and version number of the second process to the result data of the second user definition process, and the ID and version number of the third process to the result data of the third user definition process Is output to the output matching unit 141.
  • the output matching unit 141 inputs a result data set including the result data of the second user-defined process and a result data set including the result data of the third user-defined process. Then, the output matching unit 141 determines the output order to the outside of the apparatus and whether output is possible, and outputs the result data set to the outside of the apparatus.
  • FIG. 3 is a diagram showing details of the output matching unit 141 shown in FIG.
  • the output matching unit 141 includes a version comparison unit 121A and a synchronization unit 131A.
  • the version comparison unit 121A inputs a result data set. For the result data sets that arrive at the same time and have the same process ID, the old version number is discarded, and the remaining result data sets are output to the synchronization unit 131A.
  • the synchronization unit 131A inputs a result data set from the comparison unit 121A. Then, the synchronization unit 131A discards the result data sets having a version number older than the value for each process ID recorded in the synchronization unit 131A, and outputs the other result data sets to the output port outside the apparatus. To do. When outputting the result data set, the synchronization unit 131A updates the version number registered in the synchronization unit 131 to the version number added to the output result data set.
  • FIG. 4 is a block diagram showing a first example of implementation of the version comparison unit 121.
  • the version comparison unit 121A corresponds to a time-series data processing unit including the four processing units 101, and receives four sets of result data.
  • the version comparison unit 121A includes three partial version comparison units 1001. Each of the three partial version comparison units 1001 discards the result data set to which the old version number is added for the same processing ID when two result data sets arrive at the same time. The other result data sets are output to the output port.
  • FIG. 5 is a block diagram showing a second example of the implementation of the version comparison unit 121.
  • the version comparison unit 121A corresponds to a time-series data processing unit including eight processing units 101, and receives eight sets of result data.
  • the version comparison unit 121 includes seven partial version comparison units 1001. Similar to FIGS. 4 and 5, by providing a partial version comparison unit, a version comparison unit 121A having an arbitrary number of inputs can be configured.
  • FIG. 6 is a block diagram illustrating an example of implementation of the partial version comparison unit 1001.
  • the partial version comparison unit 1001 may be implemented with a configuration having an input port, an output port, a waiting data queue 1002, and an arbitration unit 1003.
  • the partial version comparison unit 1001 uses the arbitration unit 1003 to arbitrate output port allocation for the result data sets received from the two input ports and the waiting data queue 1002.
  • the result data set to which the output port is assigned is output to the output port.
  • a result data set to which no output port is assigned is discarded or inserted into the waiting data queue 1002.
  • the data inserted into the waiting data queue 1002 is input to the partial version comparison unit 1001 again in the next cycle.
  • the subsequent operation will be described only when the version comparison unit 121A is composed of one partial version comparison unit 1001.
  • the operation of the version comparison unit 121A described can be easily applied to a version comparison unit 121A including two or more partial version comparison units 1001.
  • a clock cycle that defines a unit time required for the time-series data processing device to complete a predetermined operation is referred to as “one cycle”.
  • partitions there are a plurality of partitions in which a circuit capable of executing processing can be written on the device, and these partitions are referred to as “partitions”.
  • a circuit for executing user-defined processing can be created by sending configuration information called configuration data and configuration data to the partition.
  • “Instruct”, “Instruct”, and “Notify” are signals of wiring in which a certain part (referred to as “command source part”) is connected to another part (referred to as “command target part”). Or a value is written to a storage device existing in the command destination part.
  • “Register” and “Set” mean that a part of the registration source writes a value in a storage device existing in another part of the registration destination.
  • “Send information”, “Send data”, “Output result” means that one part of the device that is the source operates the signal of the wiring that is connected to another part of the device that is the destination Or writing a value to a storage device existing in the destination part.
  • the version number may be expressed as an integer. Alternatively, an M remainder system may be used. Further, “a version number that is new by“ 1 ”” means a value of (N + 1) with respect to the integer N that is an old version number when an integer is used as the version number. Alternatively, “a version number that is new by“ 1 ”” indicates that when a remainder system of M is used for the version number, the old version number is a remainder obtained by dividing the integer N by M, and (N + 1) is M Means the remainder divided by. “Version number older by“ 1 ”” means a value of (N ⁇ 1) for an integer N which is a new version number when an integer is used for the version number.
  • “version number older by“ 1 ”” means that when a remainder system of M is used for the version number, the new version number, which is the remainder obtained by dividing the integer N by M, is (N ⁇ 1) Is the remainder obtained by dividing M by M.
  • N the remainder obtained by M
  • a value that is newer by “1” than “0” is “1”
  • a value that is “1” newer than “1” is “2”
  • a value that is “1” newer than “2” Is “0”, “1” older than “2” is “1”, “1” older than “1” is “0”, “0” older than “0” is “2”, It may be expressed as
  • the process ID is changed when the change from the first old process to the first new process and the change from the second old process to the second new process are simultaneously performed. Used to distinguish processing pairs.
  • the result data output from the time-series data processing device 100 is changed from the old process to the new process.
  • This change is permitted by a process change instruction (hereinafter referred to as “process change instruction”) to the time-series data processing apparatus 100 by a host computer or the like (not shown).
  • process change instruction a process change instruction
  • a host computer or the like not shown.
  • time-series data processing apparatus 100 The operation of the time-series data processing apparatus 100 according to this embodiment will be described with reference to FIGS.
  • the first user definition process is executed by the first processing unit 121-1.
  • the first user definition process is a process unrelated to the second user definition process (old process) and the third user definition process (new process).
  • a second user definition process (old process) is executed in the second processing unit 121-2.
  • the old process is a process that is then replaced with a third user-defined process (new process).
  • new process when the process change instruction is received, the process in the second processing unit 121-2 is not changed to the new process.
  • the new process is executed in place of the first process after the change from the first process to the new process in the first processing unit 121-1.
  • the execution of the old process in the second processing unit 121-2 is continued at least until the process is changed in the first processing unit 121-1, even after receiving the process change instruction.
  • the first processing unit 121-1 notifies the state management unit 101 that the first user-defined processing being executed is in a state where the processing has been completed.
  • the state management unit 101 records the ID and the state of the process operating there for a plurality of processing units 121.
  • the status of the process is “Processing completed” indicating that the process has been completed, “Stopping” indicating that the process is stopped, “Operating” indicating that the process is in progress, and “Reconfiguring” indicating that the reconfiguration is in progress May be included.
  • the state management unit 101 changes the state of the corresponding processing unit 121 to “processing complete” (step S1108). “Processing complete” means one of the following four.
  • the user-defined process may transition from the completed state to the executing state again.
  • the state management unit 101 sets the identification number of the processing unit 121 to be changed to the new processing. That is, the state management unit 101 finds a processing unit 121 that is in a state where processing has been completed, and can change the processing to a new processing, and sets the identification number of the processing unit 121 (step S1109). .
  • the processing unit 121 whose processing content is changed to the new processing is the first processing unit 121-1.
  • the identification number of the first processing unit 121-1 is stored in order to change the state or perform an operation on the first processing unit 121-1.
  • the identification number of the first processing unit 121-1 to be changed to the new processing may be set according to the input to the state management unit 101.
  • a host computer (not shown) may input the identification number of the first processing unit 121-1 to the state management unit 101.
  • the state management unit 101 outputs to the process control unit 111 a stop sequence command that is a command to stop the process operating in the first processing unit 121 changed to the new process.
  • the processing control unit 111 stops the first processing in the first processing unit 121-1. Further, the state management unit 101 changes the state of the first processing unit 121-1 to “stopped” (step S1110). The process may be stopped by operating a reset signal for the process operating in the processing unit 121.
  • the processing control unit 111 issues a command to the output connection unit 131 connected to the first processing unit 121-1 designated in step S1110, and outputs the result data from the first processing unit 121-1.
  • Transfer to the matching unit 141 is blocked (step S1111). The transfer may be blocked by providing a signal indicating whether the result data output from the output connection unit 131 to the output matching unit 141 is valid or invalid, and manipulating the signal.
  • the state management unit 101 registers the process ID and version number in the information management unit 142 (step S1112).
  • the process ID and version number When changing the process ID and version number from the old process to the new process, match the order of output of the result data of the old process and the new process to the outside of the device and which is output to the outside of the device. Used for.
  • the information management unit 142 records the process ID and version number for each processing unit 121.
  • the processing in the first processing unit 121-1 is changed to the new processing while the execution of the old processing in the second processing unit 121-2 is continued. Therefore, the new and old processes operate temporarily in parallel, and new process result data (hereinafter referred to as “new process result data”) and old process result data (hereinafter referred to as “old process result data”). Exist simultaneously in the time-series data processing apparatus. Therefore, it is necessary to determine the output order of the result data to the outside of the apparatus and which result data is to be output to the outside of the apparatus.
  • Adjusting means controlling the relationship between the generation order and output order of new process result data and old process result data that exist simultaneously in the time-series data processing device, and the time when the new process result data is generated This means that the result data to be output is selected based on.
  • the first meaning of “consistent” is the order of time when each of the new process result data and the old process result data is generated, and the result data is output to the outside of the time-series data processing apparatus.
  • the output order of the result data is determined so that the order in which they are performed matches.
  • the context between the generation time of the new process result data and the generation time of the old process result data matches the context of the output time of the new process result data to the outside and the output time of the old process result data to the outside.
  • determining the output order of the result data is referred to as “matching”.
  • N1 is the result data that is first generated after the start of the new process
  • T1 is the time when the result data is generated.
  • the order of the results generated by the old process is determined so as to be output outside the apparatus before N1.
  • the second meaning of “consistent” is that new process result data or old process data is not output so that old process result data generated after the time when the new process is started and the first new process result data is generated is not output.
  • Preventing output is called “matching”.
  • the time when the result data is output is later than the time when it is generated, and the two do not match.
  • Whether or not the old process result data is output is determined based on the relationship between the time when the old process result data is generated and the time when the new process result data is first generated as described above. For example, N1 is a result that is first generated after a new process is started, and T1 is a time when the result is generated. Prior to T1, the result generated by the old process is output to the outside of the apparatus, and the result generated by the old process after T1 is not output to the outside of the apparatus.
  • the processing unit 121 When a certain processing unit 121 generates the result data, the processing unit 121 outputs the identification number of the processing unit 121 and the generation timing information of the result data together with the result data. By referring to the identification information and the generation timing information of the processing unit 121, the control of the output order to the outside of the apparatus and the possibility of output to the outside of the apparatus are determined.
  • the process ID and version number can be used as the identification information of the first processing unit 121-1 and the second processing unit 121-2.
  • a process for matching is performed by assigning a set of information including the same processing ID and different version numbers. It can be performed. More specifically, the process ID of the new process result data is set to the same value as the process ID of the old process result data, and the version number of the result data of the new process is greater than the version number of the result data of the old process. Set "1" to a new value.
  • the process ID of the result data of the old process is set to “0”, the version number is “1”, the process ID of the result data of the new process is “0”, and the version number is “2”. Then, with respect to the result data that exists in the output matching unit 141 at the same time, only the new version number “1” is left for the result data pair having the same processing ID. As a result, it is possible to perform the matching operation of outputting only the result data of the new process to the outside of the apparatus.
  • the state management unit 101 instructs the reconfiguration unit 122 to start reconfiguration of the first processing unit 121-1 to be changed to the new process.
  • the state management unit 101 changes the state of the first processing unit 121-1 to “reconfiguring” (step S1113).
  • the reconfiguration unit 122 reconfigures the first processing unit 121-1 designated in step S1113 (step 1114).
  • Realization of the reconfiguration of the processing unit 121 may be performed by inputting reconfiguration data to a module for performing reconfiguration provided in the chip using an FPGA.
  • the reconstruction information may be recorded in the reconstruction unit 122. Alternatively, it may be input from the state management unit 101. Alternatively, it may be input from a host computer (not shown).
  • the reconfiguration unit 122 notifies the completion of the reconfiguration.
  • the state management unit 101 inputs the notification of the completion of reconstruction from the reconstruction unit 122, and issues a startup sequence command to the processing control unit 111-1 connected to the first processing unit 121-1 designated in step S1113. Output.
  • the state management unit 101 changes the state of the first processing unit 121-1 to “being executed” (step S1115).
  • the start sequence command can be output as follows. That is, the state management unit 101 sets the identification number of the processing control unit 111-1 and the identification number of the first processing unit 121-1 to the same number, and identifies the identification number of the first processing unit 121-1. Record the number. Then, the status management unit 101 activates the activation sequence command signal connected to the processing control unit 111-1 with reference to the identification number at the timing when the reconfiguration completion notification is input.
  • the processing control unit 111-1 designated in step S1113 receives the activation sequence command and activates the processing of the first processing unit 121-1 (step S1116).
  • processing of the processing unit means processing executed by a circuit reconfigured in the processing unit.
  • activation of process means that the process is shifted from a standby state to an operation state in which result data is output. The process may be activated by operating a reset signal for the process.
  • the process control unit 111-1 checks whether or not the third user-defined process in the first process unit 121-1 has been successfully activated (step S1117). This is because the start of the processing of the first processing unit 121-1 may fail due to the setting of incorrect or destroyed reconstruction data, the failure of the reconstruction procedure, and the like. The success of starting the process may be checked by outputting a specific bit pattern from the process to the process control unit 111. If the process has been successfully activated, the process proceeds to step S1118. If the process has failed, the process returns to step S1113.
  • step S1113 outputs an output connection instruction for the result data of the third user-defined process generated by the first processing unit 121-1 to the output connection unit 131-1. (Step S1118).
  • the output connection unit 131-1 receives the output connection command, and outputs the result data of the third user-defined process from the first processing unit 121-1 to the outside of the apparatus.
  • 1 processing unit 121-1 and output matching unit 141 are connected (step S1119).
  • the connection between the first processing unit 121-1 and the output matching unit 141 may be performed by operating a signal indicating whether the result data output to the output matching unit 141 by the output connection unit 131-1 is valid or invalid. .
  • the following steps shown in FIG. 9 are executed. That is, the information management unit 142, at the timing when the second processing unit 121-2 generates the second processing result data, together with the result data, the registered processing ID of the second processing unit 121-2. And the version number are output to the output matching unit 141 (step S1120). As a result, the input information to the output matching unit 141 becomes a set of result data.
  • the set of result data may be data having a configuration as shown in FIG. 12, for example.
  • the output matching unit 141 inputs a result data set including the result data of the second user-defined process and a result data set including the result data of the third user-defined process.
  • the output matching unit 141 controls the order of output of the result data output from the plurality of processing units 121 to the outside of the apparatus, and selects a result data set to be output to the outside of the apparatus, that is, performs matching. Then, the output matching unit 141 outputs the result data set of the new process or the old process that has been matched to the outside of the apparatus in the order of matching, and returns to step S1120 (step S1121). Details of the operations in steps S1120 and S1121 will be described later.
  • step S1121 will be described in detail.
  • the version comparison unit 121A inputs a set of result data (step S1201).
  • the input at this time is performed from an input port or a waiting data queue.
  • the waiting data queue is a queue into which a set of result data that has not been discarded and output in the version comparison unit 121A is inserted.
  • a set of result data stored in the waiting data queue is handled as an input of the version comparison unit 121A in the next cycle.
  • the version comparison unit 121A checks whether a pair of result data having the same process ID and a different version number remains (step S1202). When a plurality of result data sets are input simultaneously, the version comparison unit 121A checks the result data sets input simultaneously. If pairs with the same process ID and different version numbers remain, the process advances to step S1203. If not, the process proceeds to step S1204.
  • the version comparison unit 121A discards the result data set whose version number is older by “1” (step S1203) and returns to step S1202.
  • the version comparison unit 121A arbitrates the allocation of output ports among the input result data sets that are not discarded, and sends the result data set to which the ports are assigned to the synchronization unit 131A.
  • a set of result data that has not been assigned is inserted into the waiting data queue 1002 of the version comparison unit 121A (step S1204).
  • the output port is a signal line for output from the version comparison unit 121A to the synchronization unit 131A.
  • Arbitration of output port allocation is an act of selecting one data that can use the output port. At this time, it is said that the selected data is “assigned a port” or “acquired a port”.
  • the synchronization unit 131A inputs a result data set (step S1300). Then, the synchronization unit 131A checks whether the version number of the input result data set is older than the version number for each process ID recorded in the synchronization unit 131A (step S1301). If it is old, the process proceeds to step S1304. If it is not old, the process proceeds to step S1302.
  • the synchronization unit 131A updates the version number for each process ID recorded by the synchronization unit 131A with the result data set arrived (step 1302).
  • the synchronization unit 131A outputs the input result data set to the output port to the outside of the apparatus (step 1303), and returns to step S1201.
  • step S1301 if the version number of the input result data set is older than the version number for each process ID recorded in the synchronization unit 131A, the synchronization unit 131A discards the input result data set. (Step S1304), the process returns to step S1201. (Specific example of operation of embodiment) A specific example of the operation of the time-series data processing apparatus 100 according to the embodiment will be described with reference to the flowcharts of FIGS. 7 to 11 and the block diagrams of FIGS. 13 to 24.
  • the cycle of the clock used for the operation of the time-series data processing device is called “cycle”, and this is used as a unit of period.
  • “At the start of the cycle” means the first time of the period
  • “at the end of the cycle” means the last time of the period.
  • the first cycle for a certain reference time is a period between the reference time plus zero seconds and the reference time plus 1 nanosecond
  • the Nth cycle is the reference time plus (N ⁇ 1 ) Means the period from nanoseconds to the reference time plus N nanoseconds.
  • the start of the Mth cycle means a reference time plus (M ⁇ 1) nanoseconds
  • the end of the Mth cycle means a reference time plus M nanoseconds. Input data is given at the start of each cycle.
  • the state management unit 101 “being executed” is registered for both the first processing unit 121-1 and the second processing unit 121-2.
  • the first processing unit 121-1 is “10” as the processing ID and “0” is the version number
  • the second processing unit 121-2 is the processing ID.
  • “20” is registered as the ID and “0” is registered as the version number.
  • execution command means that the process control unit 111 starts and executes a process executable by the circuit configured in the processing unit 121.
  • Connection means that the output connection unit 131 transfers the result data generated by the processing unit 121 to the output matching unit 141.
  • the input data “1” is given to the second processing unit 121-2, and the second processing unit 121-2 generates the result data “2”.
  • the data “2” is output to the output matching unit 141 via the output connection unit 131-2.
  • the information management unit 142 outputs “20” as the process ID and “0” as the version number to the output matching unit 141 (step S1120).
  • the output connection unit 131 and the information management unit 142 output a set of result data, process ID, and version number to the output matching unit 141.
  • the result data set is expressed as ⁇ 2, 20, 0>.
  • the first processing unit 121-1 notifies the state management unit 101 that the first processing being executed has been completed (step S1108).
  • the information management unit 101 inputs the notification and changes the state of the first processing unit 121-1 to “processing complete”. These processes are completed in one cycle.
  • each part of the device is in a state as shown in FIG.
  • the input data “2” is given to the second processing unit 121-2, and the second processing unit 121-2 generates the result data “3”.
  • ⁇ 3, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 2, 20, 0> at the start of the second cycle (step S1201).
  • the process proceeds to step S1204 (step S1202).
  • Arbitration of output port allocation is performed between the result data sets, and since there is only one result data set, the result data set obtains an output port.
  • the result data set is sent to the synchronization unit 131A (step S1203).
  • the state management unit 101 sets the identification number of the processing unit whose processing content is to be replaced with the new processing. That is, the state management unit 101 finds a processing unit that is in a state where processing has been completed and can be replaced with new processing, and sets the identification number of the processing unit (step S1109). Here, it is set that data is written in the first processing unit 121-1. The state management unit 101 changes the state of the first processing unit 121-1 to “stopped”.
  • the state management unit 101 issues a command to the processing control unit 111-1 connected to the first processing unit-1, and the processing control unit 111-1 stops the processing (step S1110).
  • the process control unit 111-1 connected to the first processing unit issues a command to the output connection unit 131-1, and blocks transfer of the result data to the output matching unit 141 (step S1111).
  • stop command means that the process control unit 111-1 gives a stop command to the process operated by the first processing unit 121-1.
  • the input data “3” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “4”, and at the end of the third cycle, ⁇ 4, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 3, 20, 0> at the start of the third cycle, and sends this result data set to the synchronization unit 131A at the end of the third cycle.
  • the synchronization unit 131A inputs ⁇ 2, 20, 0> at the start of the third cycle (step S1300). Since the version number corresponding to the ID 20 of the recorded process is “0”, which is the same as the input result data set, the process advances to step S1302 (step S1301). The version number corresponding to the recorded process ID 20 is updated (step S1302), and at the end of the third cycle, the input result data set is output to the output port to the outside of the apparatus (step S1303).
  • the management unit 101 registers the processing ID and version number of the first processing unit 121-1 in the information management unit 142 (step S1112).
  • the order of outputting the result data of the old and new processing to the outside of the device and which to output to the outside of the device are as follows. It is assumed that the result generated first after the new process is started is N1, and the time when the result is generated is T1. Prior to T1, the order is determined so that the results generated by the old process are output to the outside of the apparatus before N1. In addition, the result generated by the old process after T1 is not output to the outside of the apparatus. Further, the result data from each of the new process and the old process is output to the outside of the apparatus in the order in which the result data is generated.
  • the ID of the new process that is, the process added to the result data generated by the first processing unit 121-1
  • the version number assigned to the new data that is, the result data generated by the first processing unit 121-1 is registered with a value that is “1” newer than the old processing, that is, “1”.
  • each part of the device is in a state as shown in FIG.
  • the input data “4” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “5”, and at the end of the fourth cycle, ⁇ 5, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 4, 20, 0> at the start of this cycle, and sends this result data set to the synchronization unit 131A at the end of the fourth cycle.
  • the synchronization unit 131A inputs ⁇ 3, 20, 0> at the start of the fourth cycle, and outputs the result data set to the output port to the outside of the apparatus at the end of the fourth cycle.
  • the state management unit 101 instructs the reconfiguration unit 122 to start reconfiguration of the first processing unit 121-1 that writes the new process (step S1113).
  • the state management unit 101 changes the state of the first processing unit to “being reconfigured”.
  • each part of the device is in a state as shown in FIG.
  • the input data “5” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “6”, and at the end of the fifth cycle, ⁇ 6, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 5, 20, 0> at the start of the fifth cycle, and sends the result data set to the synchronization unit 131A at the end of the fifth cycle.
  • the synchronization unit 131A inputs ⁇ 4, 20, 0> at the start of the fifth cycle, and outputs the result data set to the output port to the outside of the apparatus at the end of the fifth cycle.
  • the reconfiguration unit 122 reconfigures the first processing unit 121-1 (step 1114). These processes are completed in one cycle.
  • each part of the apparatus is in a state as shown in FIG.
  • the input data “6” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “7”, and at the end of the sixth cycle, ⁇ 7, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 6, 20, 0> at the start of the sixth cycle, and sends this result data set to the synchronization unit 131A at the end of the sixth cycle.
  • the synchronization unit 131A inputs ⁇ 5, 20, 0> at the start of the sixth cycle, and outputs this result data set to the output port to the outside of the apparatus at the end of the sixth cycle.
  • the reconfiguration unit 122 issues a notification of completion of reconfiguration.
  • the state management unit 101 issues an activation sequence command to the processing control unit 111-1 connected to the first processing unit 121-1 (step S1115).
  • the state management unit 101 changes the state of the first processing unit 121-1 to “executing”.
  • the process control unit 111 starts a new process existing in the first process unit 121-1 (step S 1116).
  • each part of the apparatus is in a state as shown in FIG.
  • the input data “7” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “8”, and at the end of the seventh cycle, ⁇ 8, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 7, 20, 0> at the start of the seventh cycle, and sends the result data set to the synchronization unit 131A at the end of the seventh cycle.
  • the synchronization unit 131A inputs ⁇ 6, 20, 0> at the start of the seventh cycle, and outputs this result data set to the output port to the outside of the apparatus at the end of the seventh cycle.
  • the process control unit 111 checks whether the new process existing in the first process unit 121-1 has been successfully started (step S1117). Here, it is assumed that the process has succeeded, and the process advances to step S1118.
  • the process control unit 111-1 issues a connection command for the result data of the new process operated by the first process unit 121-1, to the output connection unit 131 (step S1118).
  • the output connection unit 131-1 causes the result data of the new process operated by the first processing unit 121-1 to be output to the output matching unit 141 (step S1119). These processes are completed in one cycle.
  • each part of the device is in a state as shown in FIG.
  • the new processing starts in the first processing unit 121-1, and the input data “8” is given to generate the result data “10”. This is output to the output matching unit 141 via the output connection unit 131-1.
  • the information management unit 142 sends the process ID “20” and the version number “1” to the output matching unit 141 (step S1120).
  • the processing ID and version number the value of the first processing unit 121-1 recorded by the information management unit 142 is sent.
  • the output connection unit 131-1 and the information management unit 142 connected to the first processing unit 121-1 output ⁇ 10, 20, 1> to the output matching unit 141 at the end of this cycle. To do.
  • the input data 8 is given to the second processing unit 121-2 and the result data 9 is generated. This is output to the output matching unit 141 via the output connection unit 131-2.
  • the information management unit 142 sends the process ID 20 and the version number 0 to the output matching unit 141 (step S1120).
  • the processing ID and version number the value of the second processing unit 121-2 recorded by the information management unit 142 is sent.
  • the output connection unit 131-2 and the information management unit 142 output ⁇ 9, 20, 0> to the output matching unit 141 at the end of this cycle.
  • the version comparison unit 121A inputs ⁇ 8, 20, 0> at the start of the eighth cycle, and sends this result data set to the synchronization unit 131A at the end of the eighth cycle.
  • the synchronization unit 131A inputs ⁇ 7, 20, 0> at the start of the eighth cycle, and outputs this result data set to the output port to the outside of the apparatus at the end of the eighth cycle.
  • each part of the device is in a state as shown in FIG.
  • the input data “9” is given to the first processing unit 121-1, the first processing unit 121-1 generates the result data “11”, and at the end of the ninth cycle, ⁇ 11, 20, 1> is output to the output matching unit 141.
  • the input data “9” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “10”, and the end of the ninth cycle Sometimes ⁇ 10, 20, 0> is output to the output matching unit 141.
  • the version comparison unit 121A inputs ⁇ 10, 20, 1> and ⁇ 9, 20, 0> at the start of the ninth cycle (step S1201).
  • step S1203 Since the input result data set is a result data set having the same process ID and different version numbers, the process proceeds to step S1203 (step S1202). Then, the older version number by “1”, that is, ⁇ 9, 20, 0>, which is a set of the result data of the old process, is discarded (step S1203).
  • step S1204 Since there are two sets of input result data, one is discarded, and the process proceeds to step S1204 (step S1202). Arbitration of output port assignment is performed for the remaining result data set ⁇ 10, 20, 1>. Since there is only one result data set, ⁇ 10, 20, 1> is sent to the synchronization unit 131A at the end of the ninth cycle (step S1204).
  • the synchronization unit 131A inputs ⁇ 8, 20, 0> at the start of the ninth cycle, and outputs this result data set to the output port to the outside of the apparatus at the end of the ninth cycle.
  • each part of the device is in a state as shown in FIG.
  • the input data “10” is given to the first processing unit 121-1, the first processing unit 121-1 generates the result data “12”, and at the end of the tenth cycle, ⁇ 12, 20, 1> is output to the output matching unit 141. Also, the input data “10” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “11”, and the output matching unit 141 is sent to the end of the tenth cycle. , ⁇ 11, 20, 0> are output.
  • the version comparison unit 121A inputs ⁇ 11, 20, 1> and ⁇ 10, 20, 0> at the start of the tenth cycle, discards the result data set of the old process, and at the end of the tenth cycle, ⁇ 11, 20, 1>, which is a data set as a result of the processing, is sent to the synchronization unit 131A.
  • the synchronization unit 131A inputs ⁇ 10, 20, 1> at the start of the tenth cycle (step S1300).
  • the version number recorded in the synchronization unit 131A is “0” for the ID 20 of the processing of the input result data set. Since the version number of the input result data set is newer, the process proceeds to step S1302 (step S1301).
  • the version number recorded in the synchronization unit 131A is updated to version number 1 of the input result data set (S1302).
  • the input result data set ⁇ 10, 20, 1> is output to the output port outside the apparatus (step S1303).
  • each part of the apparatus is in a state as shown in FIG.
  • the input data “11” is given to the first processing unit 121-1, the first processing unit 121-1 generates the result data “13”, and at the end of the eleventh cycle, ⁇ 13, 20, 1> is output to the output matching unit 141. Also, the input data “11” is given to the second processing unit 121-2, the second processing unit 121-2 generates the result data “12”, and is output to the output matching unit 141 at the end of the eleventh cycle. , ⁇ 12, 20, 0> are output.
  • the version comparison unit 121A inputs ⁇ 12, 20, 1> and ⁇ 11, 20, 0> at the start of the eleventh cycle, discards the result data set of the old process, and at the end of the eleventh cycle, ⁇ 12, 20, 1>, which is a data set as a result of the processing, is sent to the synchronization unit 131A. Further, the synchronization unit 131A inputs ⁇ 11, 20, 1> at the start of the eleventh cycle (step S1300). The version number recorded in the synchronization unit 131A is “1” for the processing result ID 20 of the input result data set. Since it is the same as the version number of the input result data set, the process advances to step S1302 (step S1301).
  • the version number recorded in the synchronization unit 131A is updated to the version number “1” of the input result data set (S1302).
  • the input result data set ⁇ 11, 20, 1> is output to the output port outside the apparatus (step S1303).
  • each part of the apparatus is in a state as shown in FIG.
  • circuit information for executing each process is written in a reconfigurable circuit element such as an FPGA, and then the circuit is operated. This is assumed to be realized.
  • the method for realizing the new process and the old process is not limited to the method realized by hardware as described above. That is, as described above, a software method of causing a processor included in the first processing unit 121-1 and the second processing unit 121-2 to execute a program may be used. In the implementation method using software, the above “partition” may be replaced with “memory”, and “circuit setting information” such as configuration data and configuration data may be replaced with “program”.
  • the time-series data processing apparatus confirms the completion of the processing of the first processing unit, and then replaces the processing by the first processing unit with the new processing.
  • This replacement of the process is executed when the old process is executed in the second processing unit. Therefore, the execution of the new process can be started while the execution of the old process is continued. Then, identification information is added to the result data of each process. Therefore, there is an effect that the transition from the old process to the new process can be performed without interrupting the process.
  • the change from the second user-defined process (old process) to the third user-defined process (new process) has been described as an example.
  • the old process is executed by the second processing unit 121-2
  • the new process is executed by the first processing unit 121-1. Since the time-series data processing apparatus 100 includes a processing control unit associated with each processing unit, the time series data processing device 100 can operate similarly even if the processing units that execute the respective processes are replaced.
  • the old process stop function is not required. That is, it is not essential that the time-series data processing device 100 includes the processing control unit 111-2.
  • whether or not the result data is output to the outside can be determined by control using identification information added to the result data in the output matching unit 141. Therefore, it is not essential for the time-series data processing apparatus 100 to include the output connection unit 131-2.
  • FIG. 1 is a block diagram showing a configuration of a time-series data processing apparatus 100-1 having only the essential configuration of the present embodiment.
  • the time-series data processing device 100-1 includes a first processing unit 121-1, a second processing unit 121-2, a state management unit 101, a processing control unit 111-1, a reconstruction unit 122, and an output connection unit 131-. 1, an information management unit 142 and an output matching unit 141 are provided.
  • the time-series data processing device 100-1 does not include the processing control unit 111-2 and the output connection unit 131-2.
  • the first processing unit 121-1 and the second processing unit 121-2 are the same as those of the time-series data processing apparatus 100.
  • the state management unit 101 controls only the processing control unit 111-1 because it controls only the start / stop of the first processing unit 121-1.
  • the processing control unit 111-1 activates / stops the first processing unit 121-1 as in the time-series data processing apparatus 100.
  • the reconfiguration unit 122 reconfigures only the first processing unit 121-1.
  • the output connection unit 131-1 controls whether the result data generated by the first processing unit 121-1 is output.
  • the information management unit 142 sets “identification information” corresponding to the contents of the processing executed by the first processing unit 121-1 and the second processing unit 121-2.
  • the difference in processing performed by the first processing unit 121-1 and the second processing unit 121-2 can be identified by the difference in the identification information.
  • the identification information includes “process ID” and “version number” described above. In the description of the embodiment, an example in which a process ID and a version number are used as identification information is shown. However, there is no essential difference between the process ID and the version number, and other information can be used as long as it is “identification information” that can identify that the content of the process has changed.
  • the output matching unit 141 inputs the identification information added to the result data generated by the first processing unit 121-1 and the second processing unit 121-2. Then, the output order of the result data to the outside of the apparatus and the output possibility are determined, and the result data is output to the outside of the apparatus.
  • the time-series data processing apparatus 100-1 cannot stop the old process, but can cope with the change from the old process to the new process without any problem.
  • time-series data processing apparatus 100 of the present invention can also be realized by software.
  • the flowchart of the program that controls the time-series data processing apparatus is the same as that shown in FIGS. That is, the processing performed by the state management unit 101, the processing control units 111-1, 111-2, the reconfiguration unit 122, the output disconnection units 131-1, 131-2, the information management unit 142, and the output matching unit 141 is performed in time series. You may implement
  • the above program may be stored in a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor storage device such as a flash memory, an optical disk, a magnetic disk, or a magneto-optical disk.
  • a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor storage device such as a flash memory, an optical disk, a magnetic disk, or a magneto-optical disk.
  • Time-series data processing apparatus 101 State management unit 111, 111-1, 111-2 Processing control unit 121, 121-1, 121-2 processing unit 121A Version comparison unit 122 Reconfiguration unit 131, 131-1 , 131-2 Output connection unit 131A Synchronization unit 141 Output matching unit 142 Information management unit 500 Time series data processing device 501 Host computer 511 Processing control unit 521 Processing unit 522 Reconfiguration unit 531 Output connection unit 600 Time series data processing device 611 Processing Control unit 621 Processing unit 622 Reconfiguration unit 631 Output connection unit 1001 Partial version comparison unit 1002 Waiting data queue 1003 Arbitration unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 旧処理の実行中の新処理への変更、処理の変更時の出力データの選択及び出力順序の制御が可能な時系列データ処理装置を提供する。第1の処理部において第1の処理を実行して第1の結果データを生成し、第2の処理部において第2の処理を実行して第2の結果データを生成する。外部から処理変更指示を受けたとき、第1の処理部における第1の処理を停止して、第1の結果データの出力を禁止する。そして、第1の処理部における処理を第1の処理から第3の処理に変更して起動し、第3の結果データの出力を許可する。第3の結果データに付加された第3の識別情報及び第2の結果データに付加された第2の識別情報に基づいて、第3の結果データの組又は第2の結果データの組の一方を選択し、選択された結果データの組に含まれる結果データ出力する。

Description

時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体
 本発明は、時系列データを処理する時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体に関する。特に、装置上のある領域における処理の実行を継続したまま、他の任意の領域における処理を変更することができる時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体に関する。
 まず、「時系列データに対するデータ処理」について説明する。本明細書において、「時系列データに対するデータ処理」とは、時系列入力データ、すなわち、次々と入力される一連のデータに対して行われる処理をいう。時系列データに対するデータ処理の結果データも、同様に次々と出力される。「次々と入力される」とは、複数のデータがある期間にわたってそれぞれ異なるタイミングで処理装置に到着する、という意味である。時系列データに対するデータ処理の例として、時系列データの直近の2つの値の和を取る、といった処理が挙げられる。以降、時系列データに対するデータ処理を、単に、「時系列データ処理」という。
 以下の説明においては、データの配列を、[1,2,3,4]のように表し、データの集合を、{1,2,3,4}のように表し、データの組を<10度,1月1日>のように、括弧の種類によって区別して表す。また、1、2のような、個々のデータの数値は、”1”、”2”のように表記し、構成要素を示す符号と区別する。
 また、時系列データ処理装置の動作に用いられるクロックの周期を「サイクル」といい、これを期間の単位として用いる。「サイクルの開始時」とは、その期間の最初の時点を意味し、「サイクルの終了時」とは、その期間の最後の時点を意味する。例えば、クロックの周波数が1GHzである場合は、ある基準時刻について第1サイクルは、基準時刻プラスゼロ秒から基準時刻プラス1ナノ秒の間の期間を、第Nサイクルは基準時刻プラス(N-1)ナノ秒から基準時刻プラスNナノ秒の期間を意味する。第Mサイクルの開始時は、基準時刻プラス(M-1)ナノ秒を意味し、第Mサイクルの終了時は、基準時刻プラスMナノ秒を意味する。
 ここで、入力データは1つ以上の値からなる組である。例として、温度と日付の組、温度のみの組、銘柄と株価と時刻の組、が挙げられる。例えば、温度と日付の組を<10度,1月1日>のように表す。入力データと、装置で扱われる値を、それらが混同されるおそれがない場合は、単に「データ」という。
 時系列データ処理は、複数の入力データに対して行われることが多い。さらに、時系列データ処理は、時系列データのウィンドウに対して行われることが多い。「ウィンドウ」とは、入力データの集合であり、2種類ある。一つは、予め決められた数をN(Nは1以上の整数)として、直近のN個の入力データの集合である。もう一つは、ある決められた時刻の期間をPとして、入力データの組の1要素を時刻とみなして、その期間に収まる入力データの集合である。
 例えば、温度と日付の組を入力データとし、<10度、1月1日>、<11度、1月2日>、<10度、1月3日>、<10度、1月4日>という時系列データが与えられたとする。1月4日から過去3日間にわたる期間に収まるウィンドウは、{<11度、1月2日>,<10度、1月3日>,<10度、1月4日>}である。
 また、ウィンドウ内の入力データの集合、部分集合、要素を「ウィンドウデータ」という。時系列データ処理では、このウィンドウデータが記憶されることが多い。以下の説明では、ウィンドウあるいはウィンドウデータを配列あるいは集合として表す。
 時系列データ処理を、処理の内容を規定することができる領域(以降、「パーティション」という。)、具体的には、処理を実行する回路を構成するための回路情報等を書き込むことができる領域を複数持つIC(Integrated Circuit)チップを用いて実行するものとする。このようなICチップの例として、FPGA(Field Programmable Gate Array)が挙げられる。あるいは、ICチップとして、メモリからプログラムを読み込んで実行するプロセッサを使用して、時系列データ処理を実行することもできる。この場合は、メモリに処理内容、すなわち、処理の手順を指定するプログラムを書き込めばよい。
 時系列データデータ処理において、第1のパーティションで第1のユーザ定義処理(「被更新処理」と呼ぶ)を実行し、第2のパーティションで第2のユーザ定義処理(「旧処理」と呼ぶ)を実行しているものとする。このとき、旧処理の実行を継続したまま、被更新処理を第3のユーザ定義処理(「新処理」と呼ぶ)に変更したいというニーズが存在する。すなわち、第2のパーティションでの旧処理の実行を継続しながら、第1の領域での被更新処理を停止して新処理に変更する。そして、新処理の実行を開始し、その後、第2の領域での旧処理を停止する。以上のような手順で旧処理から新処理に変更することにより、時間的な連続性を確保して、時系列データ処理装置の処理内容を変更することができる。
 例として、株券など金融商品の売買のタイミングを決めるための指標を計算するアプリケーションを考える。売買する金融商品の銘柄と売買戦略に応じて、必要な指標は複数存在し、出力すべき指標の集合は異なる。ある装置は、有限数の指標しか同時に計算できない。時刻に応じて売買する銘柄と戦略は変化する。そのため、そのとき売買する銘柄と売買戦略に応じて、算出する指標を変化させたい、というニーズがある。
 図25を用いて、背景技術における、処理の変更の例を説明する。直近の2値の和を取る旧処理を、直近の3値の和を取る新処理に変更する、とする。
 また、1サイクルごとにデータが入力されるものとし、1サイクルを単位とする時刻を用いて説明する。
 第1サイクルの開始時に、時系列データ1が入力され、旧処理がその値をウィンドウデータとして保存する。
 第2サイクルの開始時に、時系列データ2が入力され、旧処理がその値をウィンドウデータとして保存する。また、旧処理が、直近の2値が手に入ったため、結果データとして”3”を出力する。
 第3サイクルの開始時に、新処理を実行する回路情報への書き換え指示が与えられる。新処理を実行する回路情報が書き込まれる予定の領域で動作している処理が停止され、さらに新処理を実行する回路情報が装置に書き込まれ、動作を開始したとする。ここで、旧処理とは別の領域に新処理を実行する回路情報が書き込まれ、旧処理と新処理がしばらくの間並行に動作するものとする。
 第3サイクルの開始時に、時系列データ”3”が入力され、新処理がその値をウィンドウデータとして保存する。
 第4サイクルの開始時に、時系列データ”4”が入力され、新処理がその値をウィンドウデータとして保存する。
 第5サイクルの開始時に、時系列データ”5”が入力され、新処理がその値をウィンドウデータとして保存する。また、新処理が、直近の3値が手に入ったため、結果データとして”12”を出力する。
 ここで、旧処理を停止あるいは削除して、処理の変更が完了する。
 さらに、新処理の結果及び旧処理の結果の装置外部への出力順序や新処理の結果及び旧処理の結果からの出力対象の処理結果の選択についても制御することが望まれることがある。特に、新処理の結果及び旧処理の結果が混在して装置外部へ出力されないようにすることは重要である。さらに、処理の変更前後の旧処理の結果のうち、新処理の実行開始後も有用であり、利用可能なものを最大限に装置外部に出力することも有効である。なお、出力順序、出力対象の選択を制御し、所望の順序で、所望の結果を出力することを「整合を取る」という。「整合」に関しての詳細な説明は後述する。
 例として、上記の、ある期間の温度センサの値の平均を取って、火事を含む緊急事態を検知するアプリケーションを考える。このとき、温度変化が激しくなってきたときに、温度変化に追従する速度を高めるために、温度の平均を取る期間の幅を変えることが望ましい。また、旧処理、新処理の結果が混同されないように、両方の結果が混在して装置外部に出力されないように処理を変更することも必要である。さらに、旧処理の結果も依然有用で利用可能であるため、新処理の結果が装置外部に出力されるまでの間、旧処理の結果をなるべく多く装置から受け取ることが望ましい。以上のようなニーズが存在する。
 もう一つの例として、株券など金融商品の売買の指令を行うアプリケーションを考える。売買する銘柄を変えたいため、売買指示の処理を変える必要がある。変更前の銘柄を「旧銘柄」、変更後の銘柄を「新銘柄」という。また、処理の変更の前後で新旧銘柄に関する指示が混在すると、売買を誤る恐れがある。そのため、新旧処理両方の結果を混在して装置外部に出力しないように処理を変更する必要がある。また、旧銘柄に対して、最後のタイミングまで売買指示が行われるかもしれないため、新処理の結果が装置外部に出力されるまでの間、旧処理の結果をなるべく多く装置から受け取ることが望ましい。以上のようなニーズが存在する。
 さらに、ユーザ定義処理は、処理が完了した状態になるまで停止できず、従って、そのユーザ定義処理が動作しているパーティションは、新処理を実行する回路情報の書き込みの対象にはできない、という要件がある。
 例として、上述の、株券など金融商品の売買の指令を出すアプリケーションを考える。ここで、アプリケーションから出される買いの指令と、しばらくして続いて出される売りの指令を必ず組にしなければならないというルールがあるとする。売買の指令を行う処理が、買いの指令を一旦出したら、その後、処理が、売りの指令を出すまでは、ユーザはその処理を停止できない。その後、処理が、次の買いの指令を出すまでの期間には、ユーザはその処理を停止できる。その後、処理が、買いの指令を出したら、ユーザは再び処理を停止できなくなる。
すなわち、装置の第2の領域での旧処理の動作中に、第1のユーザ定義処理(被更新処理)が動作中の、装置の第1の領域に新処理を実行する回路情報を書き込むことにより、旧処理から新処理への変更を実現しようとする。このとき、第1の領域への新処理を実行する回路情報の書き込みは、被更新処理が完了した後の期間に行わねばならない、という要件が存在する。
 以上のような処理に関連する技術が、特許文献1、2、3、非特許文献1に記載されている。
 特許文献1には、再構成可能な時系列データ処理装置が開示されている。特許文献1の時系列データ処理装置の構成図を図26に示す。特許文献1の技術は、ユーザが定義した処理を実行するために構成されるもので、処理部621、処理制御部611と、再構成部622と、処理部の結果を外部への出力ポートへ接続する出力接続部631からなる。処理部621は処理を実行し、処理制御部611は処理部621で動作する処理の起動、停止の制御を行う。再構成部622は処理部621の再構成を行う。出力接続部631は、処理部621と外部への出力ポートとを、接続又は遮断する。
 特許文献2には、プログラマブル論理回路を利用した、再構成可能な情報処理システムが開示されている。特許文献2のシステムでは、プログラマブル論理回路の論理セルの使用状況を反映する論理セル状態データを使用し、使用可能な論理セルが判別される。
 特許文献3には、再構成可能回路が開示されている。特許文献3の再構成可能回路では、再構成セルにリセットフラグを備え、再構成セルをリセットから保護する保護モード又はリセットから保護しない通常モードに設定する。
 非特許文献1には、再構成可能な時系列データ処理装置が開示されている。
 非特許文献1の時系列データ処理装置の構成図を図27に示す。非特許文献1の技術は、ホストコンピュータ501、処理部521、処理制御部511、再構成部522、出力接続部531を備える。ホストコンピュータ501は、処理の変更を指令する。処理部521は、ユーザが定義した処理を実行する回路を構成する(処理を実行する回路情報を設定する)ことができる領域であって、処理を実行する。処理制御部511は、処理部521で動作する処理の起動及び停止を行う。再構成部522は、処理部521の再構成を行う。出力接続部531は、処理部521の結果を装置外部への出力ポートへ転送する。
 図28から図33を用いて、非特許文献1の技術の動作を説明する。
 ここでは、直近の2値の和を取る第1の処理が実行されている状態から、直近の3値の和を取る第2の処理を書き込む、という動作について説明する。処理に関するタイミングについては以下の通りであるものとする。
1)第1の処理も第2の処理も、データを入力したサイクルと同じサイクルに結果を生成する。
2)処理の結果は、処理部521から出力接続部531へ1サイクルで到達する。
3)1サイクルごとにデータが入力される。以下の説明では、1サイクルを単位とする時刻を用いる。
 第1サイクルの開始時に、ホストコンピュータ501、処理起動部511は、処理部521で動作する第1の処理を起動した状態にある。出力接続部531は、第1の処理の結果の装置外部への出力を許可する。具体的には、出力接続部531は、処理部521の出力を出力ポートに接続する。
 第1サイクルの開始時に時系列データとして”1”、第2サイクルの開始時に時系列データとして”2”が入力される。第1の処理は直近2値である[1,2]を得たため、処理部501が結果として”3”を計算し出力する。第2サイクルの終了時に、各部分は図28のような状態になる。
 第3サイクルの開始時に、第2の処理を書き込む指令がホストコンピュータ502より出さる。ホストコンピュータ502は、処理制御部511に、処理部521で動作する処理をリセットする指令を出す。処理制御部511は処理部521で動作する処理をリセットする。さらに、処理制御部511は、出力接続部531に、処理部521の処理の結果の装置外部への出力を遮断する指令を出す。出力接続部531は、処理部521と出力ポートとの接続を遮断する。第3サイクルの終了時に、各部分は図29のような状態になる。
 第4サイクルの開始時に、ホストコンピュータ502は構成情報を再構成部522に送る。再構成部522は構成情報を処理部521に送る。第4サイクルの終了時に、各部分は図30のような状態になる。
 第13サイクルの終了時に再構成が完了する。第14サイクルの開始時に、再構成部522が処理制御部511に再構成完了を通知する。第14サイクルの終了時に、各部分は図31のような状態になる。
 第14サイクルの開始時に、処理制御部511が処理部521に書き込まれた処理を起動する。例えば、処理制御部511はリセット信号をディスアサートする。さらに、処理制御部511は、処理が起動したかをチェックする。例えば、処理制御部511は、処理部521から特定のビットパターンが出力されていることをチェックする。
 第15サイクルの開始時に、処理制御部511が、出力接続部531に、第2の処理の結果の装置外部への出力を許可するよう指令する。出力接続部531は、第2の処理の結果の装置外部への出力を許可する。具体的には、出力接続部531は、処理部521の出力を出力ポートに接続する。第15サイクルの終了時に、各部分は図32のような状態になる。
 以降の時刻で、第2の処理が動作を続ける。第16サイクルの開始時に時系列データ”3”、第17サイクルの開始時に時系列データ”4”、第18サイクルの開始時に時系列データ”5”、が入力される。第2の処理は直近2値である[4,5,6]を得たため、処理部501が結果として”15”を計算し出力する。第18サイクルの終了時に、各部分は図33のような状態になる。
 デバイス上の第1の領域では第1のユーザ定義処理(被更新処理)を実行し、第2の領域では第2のユーザ定義処理(旧処理)を実行する。ここで、処理の更新は、第2の領域での旧処理の実行時に行われる。すなわち、第1の領域で実行されている被更新処理を停止して、第1の領域に第3のユーザ定義処理(新処理)を実行する回路の回路情報を書き込む。そして、新処理の実行を開始して、旧処理を停止する。以上のように、旧処理から新処理への変更が行われる。
米国特許第6744274号公報 (第5-10カラム、図2) 特開2000-091435号公報 (第4-6頁、図1、2、7) 国際公開WO2009/063596号公報 (第9-11頁、図1-3)
Simon Tam and Martin Kellermann, Fast Configuration of PCI Express Technology through Partial Reconfiguration, Xilinx, 2010
 以上のように、旧処理の実行を継続したまま新処理への変更を実現するには、第1の領域で動作する被更新処理が停止した状態にあることを検知して、そこに新処理を実行する回路の回路情報を書き込まねばならない。さらに、再構成完了通知を受け取った際に、どの領域に対する再構成が完了したのか検知する必要がある。すなわち、第1の領域と第2の領域の状態について把握して、その情報を用いて回路情報の書き換えの操作を行わねばならない。ところが、非特許文献1の技術では1つの領域しか扱わないので、旧処理の実行中の被更新処理から新処理への変更、新処理の開始ができない。
 また、目的とする処理の変更には、旧処理の結果データ及び新処理の結果データの装置外部への出力の順序や、新処理の結果データ及び旧処理の結果データのうちの出力対象の結果データの選択についての「整合性の確保」という要件がある。
 「整合性の確保」とは、時系列データ処理装置内に同時に存在する新処理結果データ及び旧処理結果データの、生成順序と出力順序との関係の制御、並びに新処理結果データが生成された時刻に基づき出力対象とする結果データの選択を行うことを意味する。「整合性の確保」の詳細については、実施形態の説明にて詳述する。
 整合性の確保のためには、旧処理の結果データと、新処理の結果データを識別できるようにして、その情報を用いて操作を行わねばならない。ところが、非特許文献1の技術では1つの領域しか扱わないので、旧処理の結果データと新処理の結果データとの識別は行われない。従って、旧処理と新処理の結果データの装置外部への出力について整合を取ることができない。
 特許文献1の技術でも、複数の領域の情報の取りまとめができないため、上で説明した、領域の状態の把握とその情報を用いた操作ができないという課題がある。
 また、特許文献1の技術では、複数の領域の間で情報のやりとりをできないので、旧処理と新処理の結果データの装置外部への出力について整合を取ることができない。
 特許文献2の技術では、その領域が使用可能であるか否かという、領域の状態の把握は可能である。しかし、特許文献2の技術は、旧処理から新処理への変更を考慮したものではなく、処理内容の識別をするための手段を備えない。すなわち、処理回路から出力された結果データが、旧処理によるものか、新処理によるものかを判別するための情報を備えない。従って、旧処理と新処理の結果データの装置外部への出力について整合を取ることができないという課題がある。
 特許文献3の技術では、各再構成セルへのリセットの有効性の設定は可能である。しかし、特許文献3の技術も、旧処理から新処理への変更を考慮したものではなく、処理内容の識別をするための手段を備えない。従って、旧処理と新処理の結果データの装置外部への出力について整合を取ることができないという課題がある。
 以上を整理すると、非特許文献1及び特許文献1の技術には、複数の領域のそれぞれにおける処理について、完了、実行中、停止中、処理回路の再構成中、といった状態を把握して、処理の変更の操作ができないという第1の問題がある。なぜなら、複数の領域における処理について、状態を通知したり、記録したりできないためである。
 また、非特許文献1及び特許文献1-3の技術には、旧処理の実行中に旧処理から新処理に変更する際に、旧処理及び新処理の結果データの、装置外部への出力の順序や、出力対象の結果データの選択についての整合性を確保することができないという第2の問題がある。なぜなら、結果データがどの処理によって生成されたものであるかといった情報や、旧処理と新処理の現在の状態、といった整合に必要な情報を扱うことができないためである。
(発明の目的)
 本発明はこのような事情に鑑みて提案されたものであり、旧処理の実行中の新処理への変更、処理の変更時の出力データの選択及び出力順序の制御が可能な時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体を提供することにある。
 本発明の時系列データ処理装置は、第1の処理又は第3の処理を実行し第1の結果データ又は第3の結果データを生成する、再構成可能な第1の処理部と、 第2の処理を実行し第2の結果データを生成する第2の処理部と、第1の処理部によって実行される処理を、第1の処理から第3の処理に変更する再構成部と、第1の処理部における第1の処理の停止、及び第1の処理部における第3の処理の起動を実行し、第1の結果データ及び第3の結果データの出力を許可又は禁止する第1の処理制御部と、第1の処理制御部の指示に基づき、第1の結果データ及び第3の結果データの出力を許可又は禁止する第1の出力制御部と、第1の結果データに第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、第2の結果データに第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、第3の結果データに第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成する情報管理部と、外部から処理変更指示を受けたとき、第1の処理制御部に対して第1の処理の停止及び第3の処理の起動並びに第1の結果データ及び第3の結果データの出力の許可又は禁止を指示し、再構成部に対して第1の処理から第3の処理への変更を指示し、情報管理部に対して第2の識別情報及び第3の識別情報の付加を指示する状態管理部と、第1の出力制御部から第3の結果データの組を第2の出力制御部から第2の結果データの組を入力し、第3の識別情報及び第2の識別情報に基づいて、第3の結果データの組又は第2の結果データの組の一方を選択し、選択された結果データの組に含まれる結果データ出力する出力整合部と、を備えることを特徴とする。
 本発明の時系列データ処理方法は、第1の処理部において第1の処理を実行して第1の結果データを生成し、第1の結果データに第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、第2の処理部において第2の処理を実行して第2の結果データを生成し、第2の結果データに第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、外部から処理変更指示を受けたとき、第1の処理部における第1の処理を停止して、第1の結果データの出力を禁止し、第1の処理部によって実行される処理を第1の処理から第3の処理に変更し、第3の処理を起動して、第3の結果データの出力を許可し、第3の結果データに第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成し、第1の出力制御部から第3の結果データの組を入力し、第2の出力制御部から第2の結果データの組を入力し、第3の識別情報及び第2の識別情報に基づいて、第3の結果データの組又は第2の結果データの組の一方を選択し、選択された結果データの組に含まれる結果データ出力することを特徴とする。
 本発明の時系列データ処理プログラム記憶媒体は、第1の処理を実行し第1の結果データを出力する第1の処理部、及び第2の処理を実行し第2の結果データを出力する第2の処理部を備える時系列データ処理装置が備えるコンピュータを、第1の処理部によって実行される処理を、第1の処理から第3の処理に変更する再構成手段、第1の処理部における第1の処理の停止、及び第1の処理部における第3の処理の起動を実行し、第1の結果データ及び第3の結果データの出力を許可又は禁止する第1の処理制御手段、第1の処理制御手段の指示に基づき、第1の結果データ及び第3の結果データの出力を許可又は禁止する第1の出力制御手段、第1の結果データに第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、第2の結果データに第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、第3の結果データに第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成する情報管理手段、外部から処理変更指示を受けたとき、第1の処理制御手段に対して第1の処理の停止及び第3の処理の起動並びに第1の結果データ及び第3の結果データの出力の許可又は禁止を指示し、再構成手段に対して第1の処理から第3の処理への変更を指示し、情報管理手段に対して第2の識別情報及び第3の識別情報の付加を指示する状態管理手段、及び第1の出力制御部から第3の結果データの組を、第2の出力制御部から第2の結果データの組を入力し、第3の識別情報及び第2の識別情報に基づいて、第3の結果データの組又は第2の結果データの組の一方を選択し、選択された結果データの組に含まれる結果データ出力する出力整合手段として機能させるためのプログラムを格納する。
 本発明によれば、時系列データの処理において、旧処理の実行中の新処理への変更、処理の変更時の出力データの選択及び出力順序の制御が可能となる。
本発明の実施形態の時系列データ処理装置の必須の構成を示すブロック図である。 本発明の実施形態の時系列データ処理装置の構成を示すブロック図である。 出力整合部141の詳細を示すブロック図である。 バージョン比較部121の実装の第1の例を示すブロック図である。 バージョン比較部121の実装の第2の例を示すブロック図である。 部分バージョン比較部1001の実装の例を示すブロック図である。 本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。 本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。 本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。 本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。 本発明の実施形態の時系列データ処理装置における処理例を示すフローチャートである。 結果データの組のデータ構造の例を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 本発明の実施形態の動作の具体例の、第サイクル終了時の各部の状態を示す図である。 背景技術の動作例の旧処理と新処理の状態の時間遷移図である。 特許文献1の時系列データ処理装置の構成を示すブロック図である。 非特許文献1の時系列データ処理装置の構成を示すブロック図である。 非特許文献1の時系列データ処理装置の、第2サイクルの終了時の各部の出力データの状態を示した図である。 非特許文献1の時系列データ処理装置の、第3サイクルの終了時の各部の出力データの状態を示した図である。 非特許文献1の時系列データ処理装置の、第3サイクルの終了時の構成情報の流れを示した図である。 非特許文献1の時系列データ処理装置の、第14サイクルの終了時の各部の出力データの状態を示した図である。 非特許文献1の時系列データ処理装置の、第15サイクルの終了時の各部の出力データの状態を示した図である。 非特許文献1の時系列データ処理装置の、第18サイクルの終了時の各部の出力データの状態を示した図である。
(第1の実施形態)
 次に、本発明の実施形態について図面を参照して詳細に説明する。
 本実施形態の時系列データ処理装置は、複数の領域でそれぞれユーザ定義処理を実行し、ある領域における処理の実行時に、他の任意の領域の処理を異なる動作をする処理に変更する。
 変更前の処理を「第1のユーザ定義処理」、あるいは「旧処理」と呼び、変更後の処理を「第2のユーザ定義処理」、あるいは「新処理」と呼ぶ。新処理を実行する回路情報が書き込まれる領域を第1の処理部、旧処理を実行する回路情報が書き込まれ、旧処理が動作している領域を第2の処理部と呼ぶ。
 処理の変更は次のステップで行われる。
(1)新処理を実行する回路情報を第1の処理部に書き込むため、第1の処理部で動作している処理を停止する。
(2)新処理実行する回路情報を第1の処理部に書き込む、
(3)新処理の動作を開始する、
(4)新処理の出力を開始する、
(5)旧処理の動作を停止する、
(6)旧処理実行する回路情報を削除する。
 このステップで処理の変更を行うことにより、結果が出力されない期間を短縮する。
 時系列データデータ処理は、処理を実行する回路情報を書き込める領域を複数持つデバイスを用いて実現してもよい。このようなデバイスの例として、FPGAが挙げられる。この場合、FPGA内の第1の領域が第1の処理部に相当し、第2の領域が第2の処理部に相当する。あるいは時系列データデータ処理を、複数のチップを用いて実現してもよい。この場合、第1のチップが第1の処理部に相当し、第2のチップが第2の処理部に相当する。
 図2は、本発明の実施形態に係る時系列データ処理装置の構成を示すブロック図である。
 時系列データ処理装置100は、第1の処理部121-1、第2の処理部121-2、状態管理部101、処理制御部111-1、111-2、再構成部122、出力接続部131-1、131-2、情報管理部142、出力整合部141を備える。
 第1の処理部121-1は、データを入力し、第1のユーザ定義処理を実行し、結果データを出力接続部131に送る。第1の処理部121-1は、処理が完了した状態にあるという処理の完了通知を状態管理部101に出力する。第1の処理部121-1は、処理制御部111から処理停止指令を入力して、第1のユーザ定義処理を停止する。
 第1の処理部121-1は、再構成部122によって、第1のユーザ定義処理から第3のユーザ定義処理に、実行する処理を変更される。
 第1の処理部121-1は、処理制御部111から処理起動指令を入力すると、第3のユーザ定義処理を起動し、データを入力し、実行し、結果データを出力接続部131に出力する。
 第2の処理部121-2は、データを入力し、第2のユーザ定義処理を実行し、結果データを出力接続部111に出力する。
 状態管理部101は、第1の処理部121-1から処理の完了通知を入力し、第1の処理部121-1が、処理が完了した状態にあることを記録する。状態管理部101は、第1の処理部121-1が処理が完了した状態にあるとき、停止シーケンス指令を出力し、第1の処理部121-1が停止状態にあることを記録する。
 さらに、状態管理部101は、第2のユーザ定義処理及び第3のユーザ定義処理の、処理のIDとバージョン番号を情報管理部142に記録する。そして、状態管理部101は、再構成部122に、第1の処理部121-1に対する再構成開始を指示し、第1の処理部121-1が、再構成中であることを記録する。
 状態管理部101は、再構成部122から再構成完了通知を入力すると、第1の処理部121-1への再構成が完了したことを記録し、第1の処理部121-1に再構成された第3のユーザ定義処理の起動シーケンス指令を出力する。
 処理制御部111は、状態管理部101から停止シーケンス指令を入力すると、第1の処理部121-1へ処理停止指令を出力し、出力接続部131へ遮断指令を出力する。
 また、処理制御部111は、状態管理部101から起動シーケンス指令を入力すると、第1の処理部121-1へ処理起動指令を出力する。そして、処理制御部111は、第1の処理部121-1の起動成功を確認し、出力接続部131へ接続指令を出力する。
 再構成部122は、第1の処理部121-1に対して再構成を行い、状態管理部101へ再構成完了通知を出力する。
 出力接続部131は、第1の処理部121-1あるいは第2の処理部121-2の結果データを入力する。出力接続部131は、処理制御部111から接続指令を入力しているときは、出力整合部141に結果データを出力する。出力接続部131は、処理制御部111から遮断指令を入力しているときは、結果データの出力整合部141への転送を遮断する。
 情報管理部142は、第2のユーザ定義処理及び第3のユーザ定義処理の、処理のIDとバージョン番号を記録する。また、情報管理部142は、第2のユーザ定義処理の結果データには第2の処理のIDとバージョン番号を付加して出力整合部141に送り、第3のユーザ定義処理の結果データには第3の処理のIDとバージョン番号を付加して出力整合部141に送る。
 出力整合部141は、第2のユーザ定義処理の結果データ、第2の処理のID及びバージョン番号の組(以降、結果データ、処理のID及びバージョン番号を含む情報の組を、「結果データの組」という。)と、第3のユーザ定義処理の結果データ、第3の処理のID及びバージョン番号を含む結果データの組を入力する。そして、出力整合部141は、装置外部への出力順序や出力可否を決定し、装置外部へ出力する。
 処理制御部111及び出力接続部131は、処理部121-1、処理部121-2に対応付けられて、複数個存在する。ただし、処理部121-2は処理の起動及び停止機能を備えないので、処理制御部111の、処理部121-2に対する処理の起動及び停止指令機能は必須ではない。
 なお、処理部121-2は、処理部121-1と同様に、処理の完了通知の出力機能、処理の停止機能、実行する処理の変更機能、及び処理の起動も備えてもよい。この場合は、処理部121-2は、処理部121-1と全く同じ構成を備える。そして、処理部121-1、処理部121-2のそれぞれに対応付けられて、同一の機能を持つ処理制御部111及び出力接続部131が備えられる。処理される内容を区別する必要がないとき、あるいは、第1の処理部121-1、第2の処理部121-2のいずれにも該当するときは、単に「処理部121」と表記する。各処理部121には、それぞれを識別するための、識別番号が設定される。
 時系列データ処理装置100は概略次のように動作する。すなわち、第1の処理部121-1は、データを入力し、第1のユーザ定義処理を実行し、結果データを出力接続部131に出力する。第2の処理部121-2は、データを入力し、第2のユーザ定義処理を実行し、結果データを出力接続部131に出力する。
 第1の処理部121-1は、第1の処理が完了した状態にあるという処理の完了通知を状態管理部101に出力する。
 状態管理部101は、処理の完了通知を入力し、第1の処理部121-1が処理が完了したことを記録する。状態管理部101は、第1のユーザ定義処理が完了した状態にあるとき、停止シーケンス指令を出力する。
 処理制御部111は、停止シーケンス指令を入力し、第1の処理部121-1による第1のユーザ定義処理を停止し、出力遮断指令を出力する。このとき、出力接続部131は、出力遮断指令を入力し、第1のユーザ定義処理からの結果データの転送を遮断する。
 また、状態管理部101は、第2のユーザ定義処理及び第3のユーザ定義処理の、処理のIDとバージョン番号を情報管理部142に記録する。そして、状態管理部101は、第1の処理部121-1に対する再構成開始を指示する。
 再構成部122は、前記再構成指令を入力する。そして、再構成部122は、第1の処理部121-1へ第3のユーザ定義処理を書き込む、再構成を行い、再構成完了通知を出力する。
 状態管理部101は、再構成完了通知を入力すると、第1の処理部121-1への再構成が完了したことを記録し、第1の処理部121-1に再構成された第3のユーザ定義処理の起動シーケンス指令を出力する。
 処理制御部111は、起動シーケンス指令を入力し、第1の処理部による第3のユーザ定義処理を起動する。そして、処理制御部111は、起動成功を確認すると、出力接続指令を出力する。
 出力接続部131は、出力接続指令を入力すると、第3のユーザ定義処理の結果データの出力整合部141への転送を開始する。
 第1の処理部121-1は、データを入力し、第3のユーザ定義処理を実行し、結果データを出力接続部131に出力する。
 情報管理部142は、第2のユーザ定義処理の結果データには第2の処理のIDとバージョン番号を付加し、第3のユーザ定義処理の結果データには第3の処理のIDとバージョン番号を付加して出力整合部141に出力する。
 出力整合部141は、第2のユーザ定義処理の結果データを含む結果データの組と、第3のユーザ定義処理の結果データを含む結果データの組を入力する。そして、出力整合部141は、装置外部への出力順序や出力可否を決定し、結果データの組を装置外部へ出力する。
 図3は、図2に示す出力整合部141の詳細を示す図である。出力整合部141は、バージョン比較部121Aと同期部131Aを備える。
 バージョン比較部121Aは、結果データの組を入力する。そして、同時に到着し、かつ処理のIDが同じである結果データの組について、バージョン番号が古いものを捨て、残った結果データの組を同期部131Aに出力する。
 同期部131Aは、比較部121Aから、結果データの組を入力する。そして、同期部131Aは、同期部131Aに記録されている処理のIDごとの値より古いバージョン番号を持つ結果データの組を捨て、それ以外の結果データの組を装置外部への出力ポートへ出力する。同期部131Aは、結果データの組の出力を行った場合は、同期部131に登録されているバージョン番号を、出力を行った結果データの組に付加されていたバージョン番号に更新する。
 図4は、バージョン比較部121の実装の第1の例を示すブロック図である。バージョン比較部121Aは、4つの処理部101を備える時系列データ処理部に対応するもので、4組の結果データの組を受け取る。バージョン比較部121Aは、3つの部分バージョン比較部1001を備える。3つの部分バージョン比較部1001の各々は、2組の結果データの組が同時に到着したときは、処理のIDが同じものについて、古いバージョン番号が付加されている方の結果データの組を破棄し、その他の結果データの組を出力ポートへ出力する。
 図5は、バージョン比較部121の実装の第2の例を示すブロック図である。バージョン比較部121Aは、8つの処理部101を備える時系列データ処理部に対応するもので、8組の結果データの組を受け取る。バージョン比較部121は、7つの部分バージョン比較部1001を備える。図4、5と同様に、部分バージョン比較部を設けることにより、任意の個数の入力を持つバージョン比較部121Aを構成することができる。
 図6は、部分バージョン比較部1001の実装の例を示すブロック図である。部分バージョン比較部1001は、入力ポート、出力ポート、待ちデータキュー1002、調停部1003を持つ構成で実装してもよい。部分バージョン比較部1001は、調停部1003を用いて、2つの入力ポートと待ちデータキュー1002から受け取った結果データの組について、出力ポートの割り当ての調停を行う。出力ポートが割り当てられた結果データの組は出力ポートに出力される。出力ポートが割り当てられなかった結果データの組は、破棄されるか、待ちデータキュー1002に挿入される。待ちデータキュー1002に挿入されたデータは、次のサイクルに再び部分バージョン比較部1001への入力となる。
 以降の動作の説明は、バージョン比較部121Aが、一つの部分バージョン比較部1001から構成されている場合についてのみ行う。説明されるバージョン比較部121Aの動作は、2つ以上の部分バージョン比較部1001を備えるバージョン比較部121Aにも容易に応用可能である。
 次に、本実施の形態に係る時系列データ処理装置100の動作について説明する前に、いくつかの用語を定義する。
 新たな入力が到着して、次の入力が来る前の期間を、「1入力期間」という。時系列データ処理装置が、所定の動作を完了させるために要する単位時間を規定するクロックの周期を、「1サイクル」という。
 前述のように、デバイス上に処理を実行させることのできる回路を書き込むことのできる区画が複数存在するとし、この区画を「パーティション」という。パーティションには、構成データ、コンフィギュレーションデータと呼ばれる設定情報を送ることで、ユーザ定義の処理を実行する回路を作成することができる。
 「指令する」、「指示する」、「通知する」とは、ある部分(「指令元部分」という。)が、別の部分(「指令先部分」という。)に接続されている配線の信号を操作したり、指令先部分に存在する記憶装置に値を書き込んだりすることを意味する。「登録する」、「設定する」とは、登録元のある部分が、登録先の別の部分に存在する記憶装置に値を書き込むことを意味する。「情報を送る」「データを送る」、「結果を出力する」とは、送り元である、装置のある部分が、送り先である、装置の別の部分に接続されている配線の信号を操作したり、送り先の部分に存在する記憶装置に値を書き込んだりすることを意味する。
 バージョン番号は、整数で表現してもよい。あるいは、Mの剰余系を用いてもよい。また、「”1”だけ新しいバージョン番号」は、バージョン番号に整数が用いられた場合は、古いバージョン番号である整数Nに対し、(N+1)という値を意味する。あるいは、「”1”だけ新しいバージョン番号」は、バージョン番号にMの剰余系が用いられた場合は、古いバージョン番号である、整数NをMで除した余り、に対し、(N+1)をMで除した余り、を意味する。「”1”だけ古いバージョン番号」は、バージョン番号に整数が用いられた場合は、新しいバージョン番号である整数Nに対し、(N-1)という値を意味する。あるいは、「”1”だけ古いバージョン番号」は、バージョン番号にMの剰余系が用いられた場合は、新しいバージョン番号である、整数NをMで除した余り、に対し、(N-1)をMで除した余り、を意味する。例えば、3の剰余系を用いて、”0”より”1”だけ新しい値は”1”、”1”より”1”だけ新しい値は”2”、”2”より”1”だけ新しい値は”0”、”2”より”1”だけ古い値は”1”、”1”より”1”だけ古い値は”0”、”0”より”1”だけ古い値は”2”、と表現してもよい。
 処理のIDは、第1の旧処理から第1の新処理への変更と、第2の旧処理から第2の新処理への変更が同時進行している、といった際に、旧処理と新処理のペアを区別するために用いられる。
 ところで、本実施形態では、時系列データ処理装置100から出力される結果データが、旧処理によるものから新処理によるものへ変更される。この変更は、図示されないホストコンピュータ等による、時系列データ処理装置100に対する、処理の変更指示(以降、「処理変更指示」という。)によって許可される。以下の説明では、時系列データ処理装置100は、既に処理変更指示を受けていることを前提とする。
 本実施の形態に係る時系列データ処理装置100の動作について、図7から図11を参照して説明する。
 まず、初期状態では、第1の処理部121-1で、第1のユーザ定義処理が実行されている。第1のユーザ定義処理は、第2のユーザ定義処理(旧処理)、及び第3のユーザ定義処理(新処理)とは無関係な処理である。
 次に、第2の処理部121-2で、第2のユーザ定義処理(旧処理)が実行されている。旧処理は、次に第3のユーザ定義処理(新処理)に置き換えられる処理である。ただし、処理変更指示を受けると、第2の処理部121-2における処理が新処理に変更されるのではない。新処理は、第1の処理部121-1における第1の処理から新処理への変更後、第1の処理に代わって実行される。第2の処理部121-2における旧処理の実行は、処理変更指示を受けた後も、少なくとも第1の処理部121-1における処理の変更までは継続される。
 次に、第1の処理部121-1が、そこで実行されている第1のユーザ定義処理が、処理が完了した状態にあることを状態管理部101に通知する。
 状態管理部101は、複数ある処理部121について、IDと、そこで動作する処理の状態を記録している。処理の状態は、処理が完了したことを示す「処理完了」、停止中を示す「停止中」、動作中を示す「動作中」、再構成が進行中であることを示す「再構成中」を含んでもよい。状態管理部101はこの通知を受けて、該当する処理部121の状態を、「処理完了」に変更する(ステップS1108)。「処理完了」とは、以下の4つのいずれかを意味する。
 1)所定の処理を完了して次の処理の開始を待っている状態にある。
 2)所定の処理を完了して停止できる状態にある。
 3)もはやその処理の結果データを装置外部に出力する必要がない。
 4)その処理を停止しても装置外部に悪影響が及ばない。
 5)処理状態、処理結果等がある条件を満たしている。
 なお、ユーザ定義処理は処理が完了した状態から再び実行中の状態に移行してもよい。
 次に、状態管理部101が、新処理に変更する対象の処理部121の識別番号を設定する。すなわち、状態管理部101は、処理が完了した状態にあり、従って、その処理を新処理に変更することができる処理部121を発見し、その処理部121の識別番号を設定する(ステップS1109)。ここでは、処理内容が新処理に変更される処理部121は、第1の処理部121-1である。
 後のステップで、第1の処理部121-1に対して、状態を変更したり、操作を行ったりするため、第1の処理部121-1の識別番号を記憶しておく。また、新処理に変更される第1の処理部121-1の識別番号の設定は、状態管理部101への入力に従って行ってもよい。例えば、図示しないホストコンピュータが、状態管理部101に第1の処理部121-1の識別番号を入力してもよい。
 次に、状態管理部101は、新処理に変更される第1の処理部121で動作している処理の停止の指令である停止シーケンス指令を、処理制御部111に出力する。
 停止の指令を入力すると、処理制御部111は、第1の処理部121-1における第1の処理を停止させる。また、状態管理部101は、第1の処理部121-1の状態を、「停止中」に変更する(ステップS1110)。処理の停止は、処理部121で動作する処理に対するリセット信号を操作することによって行ってもよい。
 次に、処理制御部111は、ステップS1110で指定した第1の処理部121-1に接続される出力接続部131に指令を出し、第1の処理部121-1からの結果データの、出力整合部141への転送を遮断する(ステップS1111)。転送の遮断は、出力接続部131が出力整合部141に出力する結果データの、有効又は無効を示す信号を設け、その信号を操作することによって行ってもよい。
 次に、状態管理部101は、処理のIDとバージョン番号を、情報管理部142に登録する(ステップS1112)。処理のIDとバージョン番号は、旧処理から新処理に変更する際に、旧処理と新処理の結果データの、装置外部への出力の順序や、どれを装置外部へ出力するかについて整合を取るために用いられる。情報管理部142は、それぞれの処理部121について、処理のIDとバージョン番号を記録する。
 「整合を取る」の意味を説明する。以下では、処理部121が処理を完了し、結果データを出力することを、「結果データを生成する。」という。また、出力整合部141が結果データを装置外部へ出力することを、「結果データを出力する。」という。
 本実施形態では、第2の処理部121-2における旧処理の実行を継続したまま、第1の処理部121-1における処理を新処理に変更する。そのため、新旧処理が一時的に並行して動作し、新処理の結果データ(以降、「新処理結果データ」という。)及び旧処理の結果データ(以降、「旧処理結果データ」という。)が、時系列データ処理装置内に同時に存在する。そのため、装置外部への結果データの出力順序や、いずれの結果データを装置外部に出力するかを決定する必要がある。「整合を取る」とは、時系列データ処理装置内に同時に存在する新処理結果データ及び旧処理結果データの、生成順序と出力順序との関係の制御、並びに新処理結果データが生成された時刻に基づき出力対象とする結果データの選択を行うことを意味する。
 具体的には、「整合を取る」の第1の意味は、新処理結果データ、旧処理結果データのそれぞれが生成された時刻の順序と、それらの結果データが時系列データ処理装置外部に出力される順序が一致するように、結果データの出力順序を決めることである。すなわち、新処理結果データの生成時刻と旧処理結果データの生成時刻との前後関係と、新処理結果データの外部への出力時刻と旧処理結果データの外部への出力時刻との前後関係が一致するように、結果データの出力順序を決めることを「整合を取る」いう。例えば、新処理が起動されて最初に生成された結果データをN1、その結果データが生成された時刻をT1とする。T1より前に、旧処理によって生成された結果は、N1より先に装置外部に出力するように順序を決定する。
 「整合を取る」の第2の意味は、新処理が起動され、最初の新処理結果データが生成された時刻以降に生成された旧処理結果データが出力されないように、新処理結果データ又は旧処理結果データのいずれを装置外部に出力するか決めることを意味する。すなわち、最初の新処理結果データの生成時刻より前の時刻に生成された旧処理結果データは外部に出力し、新処理結果データの生成時刻以降の時刻に生成された旧処理結果データは外部に出力されないようにすることを「整合を取る」いう。
 なお、結果データが出力される時刻は、それが生成された時刻よりも後であり、両者は一致しない。旧処理結果データの出力の有無は、上記のように、あくまでそれが生成された時刻と、最初に新処理結果データが生成された時刻との関係で決定される。例えば、新処理が起動されて最初に生成された結果をN1、その結果が生成された時刻をT1とする。T1より前に、旧処理によって生成された結果は装置外部に出力し、T1以降に旧処理によって生成された結果は装置外部に出力されないようにする。
 次に、整合を取る方法について説明する。ある処理部121が結果データを生成したとき、処理部121は、処理部121の識別番号、及び結果データの生成タイミング情報を、結果データと共に出力する。これらの、処理部121の識別情報及び生成タイミング情報を参照することで、装置外部への出力順序の制御、及び装置外部への出力可否を決定する。
 例えば、第1の処理部121-1及び第2の処理部121-2の識別情報として、処理のIDとバージョン番号を用いることができる。このとき、第1の処理部121-1、第2の処理部121-2のそれぞれの識別情報として、同じ処理のIDと異なるバージョン番号とからなる情報の組を割り当てることで、整合を取る処理を行うことができる。さらに具体的には、新処理結果データの処理のIDには旧処理結果データの処理のIDと同じ値を設定し、新処理の結果データのバージョン番号は、旧処理の結果データのバージョン番号より”1”だけ新しい値に設定する。
 例えば、旧処理の結果データの処理のIDは”0”、バージョン番号は”1”、新処理の結果データの処理のIDは”0”、バージョン番号は”2”、と設定する。そして、出力整合部141に同時に存在する結果データについて、処理のIDが同じである結果データのペアについて、バージョン番号が”1”だけ新しいもののみを残す、という操作を行う。これにより、新処理の結果データのみ装置の外部に出力する、という整合を取る操作が可能になる。
 次に、状態管理部101は、新処理に変更される第1の処理部121-1の再構成開始を再構成部122に指示する。状態管理部101は、第1の処理部121-1の状態を「再構成中」に変更する(ステップS1113)。
 次に、再構成部122は、ステップS1113で指定した第1の処理部121-1を再構成する(ステップ1114)。処理部121の再構成の実現には、FPGAを用いて、チップ内に設けられている再構成を行うためのモジュールに再構成データを入力することによって行ってもよい。再構成情報は、再構成部122に記録されていてもよい。あるいは、状態管理部101から入力されてもよい。あるいは、図示しないホストコンピュータから入力されてもよい。
 次に、再構成部122が再構成完了を通知する。状態管理部101は、再構成部122からの再構成完了の通知を入力し、ステップS1113で指定した第1の処理部121-1に接続されている処理制御部111-1に起動シーケンス指令を出力する。状態管理部101は、第1の処理部121-1の状態を、「実行中」に変更する(ステップS1115)。
 起動シーケンス指令の出力は、以下のように行うことができる。すなわち、状態管理部101は、処理制御部111-1の識別番号と、第1の処理部121-1の識別番号とを、同一の番号に設定し、第1の処理部121-1の識別番号を記録する。そして、状態管理部101は、再構成完了の通知を入力したタイミングで、識別番号を参照して、処理制御部111-1に接続されている起動シーケンス指令信号をアクティブにする。
 次に、ステップS1113で指定した処理制御部111-1が、起動シーケンス指令を受けて、第1の処理部121-1の処理を起動する(ステップS1116)。これは、第1の処理部121-1で、第3のユーザ定義処理(新処理)の動作を開始することを意味する。なお、「処理部の処理」とは、処理部に再構成された回路により実行される処理を意味する。「処理の起動」とは、処理を、待機状態から、結果データを出力する動作状態に移行させることを意味する。処理の起動は、処理に対するリセット信号を操作することによって行ってもよい。
 次に、処理制御部111-1は、第1の処理部121-1における第3のユーザ定義処理の起動が成功したか否かを調べる(ステップS1117)。なぜなら、誤ったあるいは破壊された再構成データの設定、再構成の手続きの失敗、などの理由で、第1の処理部121-1の処理の起動が失敗する場合があるためである。処理の起動の成功は、処理から特定のビットパターンが処理制御部111に対して出力されていることで調べてもよい。処理の起動が成功している場合は、ステップS1118に進み、失敗している場合は、ステップS1113に戻る。
 次に、ステップS1113で指定した処理制御部111-1は、第1の処理部121-1が生成した第3のユーザ定義処理の結果データの出力接続指令を出力接続部131-1に出力する(ステップS1118) 。
 次に、出力接続部131-1は、出力接続指令を入力して、第1の処理部121-1からの第3のユーザ定義処理の結果データが、装置外部へ出力されるように、第1の処理部121-1と出力整合部141を接続する(ステップS1119)。第1の処理部121-1と出力整合部141との接続は、出力接続部131-1が出力整合部141に出力する結果データの有効又は無効を示す信号を操作することによって行ってもよい。
 以上のステップと並行して、図9に示された以下のステップを実行する。すなわち、情報管理部142は、第2の処理部121-2が第2の処理の結果データを生成したタイミングで、結果データと共に、登録されている第2の処理部121-2の処理のIDとバージョン番号を、出力整合部141に出力する(ステップS1120)。これによって、出力整合部141への入力情報は、結果データの組になる。結果データの組は、例えば、図12に示すような構成をとるデータでもよい。
 出力整合部141は、第2のユーザ定義処理の結果データを含む結果データの組、及び前記第3のユーザ定義処理の結果データを含む結果データの組を入力する。そして、出力整合部141は、複数の処理部121から出力される結果データの、装置外部への出力の順序の制御、及び装置外部へ出力する結果データの組の選択、すなわち整合を取る。そして、出力整合部141は、整合が取られた順序で、整合が取られた新処理又は旧処理の結果データの組を装置外部へ出力し、ステップS1120へ戻る(ステップS1121)。ステップS1120S1121の動作の詳細については、後述する。
 次に、図10、図11を参照して、上記ステップS1121を詳細に説明する。
 まず、バージョン比較部121Aが、結果データの組を入力する(ステップS1201)。このときの入力は、入力ポートあるいは待ちデータキューから行う。待ちデータキューとは、バージョン比較部121Aにおいて、捨てられず、かつ出力されなかった結果データの組が挿入されるキューである。待ちデータキューに格納された結果データの組は、次のサイクルにバージョン比較部121Aの入力として扱われる。
 バージョン比較部121Aは、結果データの組のうちで、処理のIDが同一かつバージョン番号が異なるペアが残っているか調べる(ステップS1202)。バージョン比較部121Aは、結果データの組を複数同時に入力した場合は、同時に入力した結果データの組の中について調べる。処理のIDが同一かつバージョン番号が異なるペアが残っている場合は、ステップS1203へ進む。残っていない場合はステップS1204へ進む。
 バージョン比較部121Aは、バージョン番号が”1”だけ古い方の結果データの組を破棄し(ステップS1203)、ステップS1202に戻る。
 バージョン比較部121Aは、入力した結果データの組のうちで、破棄されていないものの間で出力ポートの割り当ての調停を行い、ポートが割り当てられた結果データの組を同期部131Aに送り、ポートが割り当てられなかった結果データの組をバージョン比較部121Aの待ちデータキュー1002に挿入する(ステップS1204)。出力ポートとは、バージョン比較部121Aから同期部131Aへの出力の信号線のことである。出力ポートの割り当ての調停とは、出力ポートを使用できるデータを一つ選ぶ行為のことである。このとき、選ばれたデータが「ポートを割り当てられた」又は「ポートを獲得した」、という。
 次に、同期部131Aは、結果データの組を入力する(ステップS1300)。そして、同期部131Aは、入力した結果データの組のバージョン番号が、同期部131Aに記録されている処理のIDごとのバージョン番号より古いか調べる(ステップS1301)。古い場合は、ステップS1304に進み、古くない場合はステップS1302に進む。
 同期部131Aは、同期部131Aが記録する処理のIDごとのバージョン番号を、到着した結果データの組のものに更新する(ステップ1302)。
 次に同期部131Aは、入力した結果データの組を装置外部への出力ポートへ出力し(ステップ1303)、ステップS1201に戻る。
 ステップS1301において、同期部131Aに記録されている処理のIDごとのバージョン番号より、入力した結果データの組のバージョン番号の方が古い場合は、同期部131Aは、入力した結果データの組を破棄し(ステップS1304)、ステップS1201に戻る。
(実施形態の動作の具体例)
 図7から図11のフローチャートと、図13から図24のブロック図を参照して、実施形態に係る時系列データ処理装置100の動作の具体例を説明する。
 整数で与えられる時系列データについて、”1”を加算した値を出力する処理(旧処理)を、”2”を加算した値を出力する処理(新処理)に置き換えることを考える。第2の処理部121-2では置き換えられる前の処理、すなわち旧処理が動作しており、第1の処理部121-1では新旧処理とは無関係な処理が動作している。そして、第1の処理部121-1で動作している処理を停止して、第1の処理部121-1を新処理に再構成して、新処理を起動する。
 また、時系列データ処理装置の動作に用いられるクロックの周期を「サイクル」といい、これを期間の単位として用いる。「サイクルの開始時」とは、その期間の最初の時点を意味し、「サイクルの終了時」とは、その期間の最後の時点を意味する。例えば、クロックの周波数が1GHzである場合は、ある基準時刻について第1サイクルは、基準時刻プラスゼロ秒から基準時刻プラス1ナノ秒の間の期間を、第Nサイクルは基準時刻プラス(N-1)ナノ秒から基準時刻プラスNナノ秒の期間を意味する。第Mサイクルの開始時は、基準時刻プラス(M-1)ナノ秒を意味し、第Mサイクルの終了時は、基準時刻プラスMナノ秒を意味する。入力データは、毎サイクルの開始時に与えられるものとする。
 また、状態管理部101において、第1の処理部121-1、第2の処理部121-2に対しては、共に実行中が登録されている。また、情報管理部142において、第1の処理部121-1に対しては処理のIDとして”10”、バージョン番号として”0”が、第2の処理部121-2に対しては処理のIDとして”20”、バージョン番号として”0”が登録されている。
 この時点で、装置の各部分は図13に示すような状態になる。図13において、「実行指令」とは、処理制御部111が処理部121に構成された回路が実行可能な処理を起動して実行させている、ことを意味する。「接続」とは、出力接続部131が処理部121が生成した結果データを出力整合部141に転送している、ことを意味する。
 第1サイクルの開始時に、第2の処理部121-2に入力データ”1”が与えられ、第2の処理部121-2が結果データ”2”を生成する。この結果データ”2”が出力接続部131-2を経て出力整合部141に出力される。これらの処理が、1サイクルで完了する。
 同時に、情報管理部142が処理のIDとして”20”、バージョン番号として”0”を出力整合部141に出力する(ステップS1120)。結果として、このサイクルの終了時に、出力接続部131と情報管理部142が、出力整合部141に、結果データと処理のIDとバージョン番号の組を出力する。この結果データの組を<2,20,0>と表現する。
 第1サイクルの開始時から、第1の処理部121-1が、実行している第1の処理が完了した状態にあることを、状態管理部101に通知する(ステップS1108)。情報管理部101は、通知を入力し、第1の処理部121-1の状態を「処理完了」に変更する。これらの処理が、1サイクルで完了する。
 第1サイクルの終了時に、装置の各部分は図14に示すような状態になる。
 第2サイクルの開始時に、第2の処理部121-2に入力データ”2”が与えられ、第2の処理部121-2が結果データ”3”を生成する。第2サイクルの終了時に、出力整合部141に、<3,20,0>が出力される。また、バージョン比較部121Aは、第2サイクルの開始時に、<2,20,0>を入力する(ステップS1201)。このとき、処理のIDが同一かつバージョン番号の異なる結果データの組は存在しないので、ステップS1204に進む(ステップS1202)。結果データの組の間で出力ポートの割り当ての調停が行われ、1つしか結果データの組がないので、上記の結果データの組が出力ポートを獲得する。そして、このサイクルの終了時に、この結果データの組が同期部131Aに送られる(ステップS1203)。
 第2サイクルの開始時から、状態管理部101が、処理内容を新処理に置き換える対象の処理部の識別番号を設定する。すなわち、状態管理部101は、処理が完了した状態にあり、従って新処理に置き換え可能な処理部を見つけ、その処理部の識別番号を設定する(ステップS1109)。ここでは、第1の処理部121-1に書き込むと設定する。状態管理部101は、第1の処理部121-1の状態を「停止中」に変更する。
 次に、状態管理部101は、第1の処理部-1に接続されている処理制御部111-1に指令を出し、処理制御部111-1が処理を停止する(ステップS1110)。
 次に、第1の処理部に接続されている処理制御部111-1は、出力接続部131-1に指令を出し、結果データの出力整合部141への転送を遮断する(ステップS1111)。
 これらの処理が、1サイクルで完了する。
 第2サイクルの終了時に、装置の各部分は図15に示すような状態になる。図15において、「停止指令」とは、処理制御部111-1が第1の処理部121-1で動作する処理に停止の指令を与えていることを意味する。
 第3サイクルの開始時に、第2の処理部121-2に入力データ”3”が与えられ、第2の処理部121-2が結果データ”4”を生成し、第3サイクルの終了時に、出力整合部141に、<4,20,0>が出力される。また、バージョン比較部121Aは、第3サイクルの開始時に、<3,20,0>を入力し、第3サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第3サイクルの開始時に、<2,20,0>を入力する(ステップS1300)。記録している処理のID20に対応するバージョン番号は”0”で、入力した結果データの組のものと同一なので、ステップS1302に進む(ステップS1301)。記録している処理のID20に対応するバージョン番号を更新し(ステップS1302)、第3サイクルの終了時に、入力した結果データの組を装置外部への出力ポートへ出力する(ステップS1303)。
 第3サイクルの開始時から、管理部101が、第1の処理部121-1の処理のIDとバージョン番号を情報管理部142に登録する(ステップS1112)。
 この例では、新旧処理の結果データの装置外部への出力の順序や、どれを装置外部へ出力するか、を以下のようにする。新処理が起動されて最初に生成された結果をN1、その結果が生成された時刻をT1とする。T1より前に、旧処理によって生成された結果はN1より先に装置外部に出力するように順序を決定する。また、T1以降に旧処理によって生成された結果は装置外部に出力しないようにする。さらに、新処理、旧処理それぞれからの結果データは、結果データが生成された順序で装置外部に出力されるようにする。これを実現するために、新処理、すなわち第1の処理部121-1が生成する結果データに付与する処理のIDは、旧処理の処理のIDと同一のIDである”20”を登録する。そして、新処理、すなわち第1の処理部121-1が生成する結果データに付与するバージョン番号は、旧処理より”1”だけ新しい値、すなわち”1”を登録する。これらの処理が、1サイクルで完了する。
 第3サイクルの終了時に、装置の各部分は図16に示すような状態になる。
 第4サイクルの開始時に、第2の処理部121-2に入力データ”4”が与えられ、第2の処理部121-2が結果データ”5”を生成し、第4サイクルの終了時に、出力整合部141に、<5,20,0>が出力される。また、バージョン比較部121Aは、このサイクルの開始時に、<4,20,0>を入力し、第4サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第4サイクルの開始時に、<3,20,0>を入力し、第4サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第4サイクルの開始時から、状態管理部101が、新処理を書き込む第1の処理部121-1の再構成開始を再構成部122に指示する(ステップS1113)。状態管理部101は第1の処理部の状態を「再構成中」に変更する。これらの処理が、1サイクルで完了する。
 第4サイクルの終了時に、装置の各部分は図17に示すような状態になる。
 第5サイクルの開始時に、第2の処理部121-2に入力データ”5”が与えられ、第2の処理部121-2が結果データ”6”を生成し、第5サイクルの終了時に、出力整合部141に、<6,20,0>が出力される。また、バージョン比較部121Aは、第5サイクルの開始時に、<5,20,0>を入力し、第5サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第5サイクルの開始時に、<4,20,0>を入力し、第5サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第5サイクルの開始時から、再構成部122が第1の処理部121-1を再構成する(ステップ1114)。これらの処理が、1サイクルで完了する。第5サイクルの終了時に、装置の各部分は図18に示すような状態になる。
 第6サイクルの開始時に、第2の処理部121-2に入力データ”6”が与えられ、第2の処理部121-2が結果データ”7”を生成し、第6サイクルの終了時に、出力整合部141に、<7,20,0>が出力される。また、バージョン比較部121Aは、第6サイクルの開始時に、<6,20,0>を入力し、第6サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第6サイクルの開始時に、<5,20,0>を入力し、第6サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第6サイクルの開始時から、再構成部122が、再構成完了の通知を出す。次に、状態管理部101が、再構成完了の通知を受けて、第1の処理部121-1に接続されている処理制御部111-1に起動シーケンス指令を出す(ステップS1115)。状態管理部101は第1の処理部121-1の状態を、「実行中」に変更する。
 次に、処理制御部111が第1の処理部121-1に存在する新処理を起動する(ステップS1116)。
 これらの処理が、1サイクルで完了する。第6サイクルの終了時に、装置の各部分は図19に示すような状態になる。
 第7サイクルの開始時に、第2の処理部121-2に入力データ”7”が与えられ、第2の処理部121-2が結果データ”8”を生成し、第7サイクルの終了時に、出力整合部141に、<8,20,0>が出力される。また、バージョン比較部121Aは、第7サイクルの開始時に、<7,20,0>を入力し、第7サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第7サイクルの開始時に、<6,20,0>を入力し、第7サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第7サイクルの開始時から、処理制御部111が第1の処理部121-1に存在する新処理の起動が成功したか調べる(ステップS1117)。ここでは成功したとし、ステップS1118に進む。
 次に、処理制御部111-1が第1の処理部121-1で動作する新処理の結果データの接続指令を出力接続部131に出す(ステップS1118) 。
 次に、出力接続部131-1が第1の処理部121-1で動作する新処理の結果データが出力整合部141へ出力されるようにする (ステップS1119)。 これらの処理が、1サイクルで完了する。
 第7サイクルの終了時に、装置の各部分は図20に示すような状態になる。
 第8サイクルの開始時に、第1の処理部121-1で新処理が動作を開始しており、入力データ”8”が与えられ、結果データ”10”を生成する。これが出力接続部131-1を経て出力整合部141に出力される。同時に、情報管理部142が、処理のID”20”とバージョン番号”1”を、出力整合部141に送る(ステップS1120)。処理のIDとバージョン番号は、それぞれ、情報管理部142が記録している、第1の処理部121-1の値を送る。結果として、第1の処理部121-1に接続されている出力接続部131-1と情報管理部142が、このサイクルの終了時に、出力整合部141に、<10,20,1>を出力する。
 第8サイクルの開始時に、第2の処理部121-2に入力データ8が与えられ、結果データ9を生成する。これが出力接続部131-2を経て出力整合部141に出力される。同時に、情報管理部142が、処理のID20とバージョン番号0を、出力整合部141に送る(ステップS1120)。処理のIDとバージョン番号は、それぞれ、情報管理部142が記録している、第2の処理部121-2の値を送る。結果として、出力接続部131-2と情報管理部142が、このサイクルの終了時に、出力整合部141に、<9,20,0>を出力する。
 また、バージョン比較部121Aは、第8サイクルの開始時に、<8,20,0>を入力し、第8サイクルの終了時に、この結果データの組を同期部131Aに送る。また、同期部131Aは、第8サイクルの開始時に、<7,20,0>を入力し、第8サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第8サイクルの終了時に、装置の各部分は図21に示すような状態になる。
 第9サイクルの開始時に、第1の処理部121-1に入力データ”9”が与えられ、第1の処理部121-1が結果データ”11”を生成し、第9サイクルの終了時に、出力整合部141に、<11,20,1>が出力される。また、第9サイクルの開始時に、第2の処理部121-2に入力データ”9”が与えられ、第2の処理部121-2が結果データ”10”を生成し、第9サイクルの終了時に、出力整合部141に、<10,20,0>が出力される。バージョン比較部121Aは、第9サイクルの開始時に、<10,20,1>と<9,20,0>を入力する(ステップS1201)。
 入力された結果データの組が、処理のIDが同一かつバージョン番号が異なる結果データの組となっているので、ステップS1203に進む(ステップS1202)。そして、バージョン番号が”1”だけ古い方、すなわち旧処理の結果データの組である<9,20,0>を破棄する(ステップS1203)。
 入力された結果データの組は2つで、1つを捨てたので、ステップS1204に進む(ステップS1202)。残っている結果データの組、<10,20,1>に対して出力ポートの割り当ての調停が行われる。結果データの組は一つだけなので、第9サイクルの終了時に、<10,20,1>を同期部131Aに送る(ステップS1204)。また、同期部131Aは、第9サイクルの開始時に、<8,20,0>を入力し、第9サイクルの終了時に、この結果データの組を装置外部への出力ポートへ出力する。
 第9サイクルの終了時に、装置の各部分は図22に示すような状態になる。
 第10サイクルの開始時に、第1の処理部121-1に入力データ”10”が与えられ、第1の処理部121-1が結果データ”12”を生成し、第10サイクルの終了時に、出力整合部141に、<12,20,1>が出力される。また、第2の処理部121-2に入力データ”10”が与えられ、第2の処理部121-2が結果データ”11”を生成し、第10サイクルの終了時に、出力整合部141に、<11,20,0>が出力される。バージョン比較部121Aは、第10サイクルの開始時に、<11,20,1>と<10,20,0>を入力し、旧処理の結果データの組を捨て、第10サイクルの終了時に、新処理の結果のデータの組である<11,20,1>を同期部131Aに送る。また、同期部131Aは、第10サイクルの開始時に、<10,20,1>を入力する(ステップS1300)。入力した結果データの組の処理のID20について、同期部131Aに記録されているバージョン番号は”0”である。入力した結果データの組のバージョン番号の方が新しいので、ステップS1302へ進む(ステップS1301)。そして、同期部131Aに記録しているバージョン番号を、入力した結果データの組のバージョン番号1に更新する(S1302)。そして、第10サイクルの終了時に、入力した結果データの組<10,20,1>を装置外部の出力ポートへ出力する(ステップS1303)。第10サイクルの終了時に、装置の各部分は図23に示すような状態になる。
 第11サイクルの開始時に、第1の処理部121-1に入力データ”11”が与えられ、第1の処理部121-1が結果データ”13”を生成し、第11サイクルの終了時に、出力整合部141に、<13,20,1>が出力される。また、第2の処理部121-2に入力データ”11”が与えられ、第2の処理部121-2が結果データ”12”を生成し、第11サイクルの終了時に、出力整合部141に、<12,20,0>が出力される。バージョン比較部121Aは、第11サイクルの開始時に、<12,20,1>と<11,20,0>を入力し、旧処理の結果データの組を捨て、第11サイクルの終了時に、新処理の結果のデータの組である<12,20,1>を同期部131Aに送る。また、同期部131Aは、第11サイクルの開始時に、<11,20,1>を入力する(ステップS1300)。入力した結果データの組の処理のID20について、同期部131Aに記録されているバージョン番号は”1”である。入力した結果データの組のバージョン番号と同一なので、ステップS1302へ進む(ステップS1301)。そして、同期部131Aに記録しているバージョン番号を、入力した結果データの組のバージョン番号”1”に更新する(S1302)。そして、第11サイクルの終了時に、入力した結果データの組<11,20,1>を装置外部の出力ポートへ出力する(ステップS1303)。第11サイクルの終了時に、装置の各部分は図24に示すような状態になる。
 以降は、同じ動作を繰り返す。すなわち、旧処理の結果データの組を捨て、新処理の結果データの組を装置外部の出力ポートへ出力し続ける。
 なお、本実施形態では、上記のように、新処理、旧処理とも、FPGAのように再構成可能な回路素子に、それぞれの処理を実行するための回路情報を書き込んだ後、回路を動作させることによって実現することを想定している。しかし、新処理、旧処理の実現方法は、上記のようにハードウェアによって実現する方法には限定されない。すなわち、前述のように、第1の処理部121-1、第2の処理部121-2が備えるプロセッサにプログラムを実行させるという、ソフトウェアによる方法を用いてもよい。ソフトウェアによる実現方法では、上記の「パーティション」を「メモリ」に置き換え、構成データ、コンフィギュレーションデータ等の「回路設定情報」を「プログラム」に置き換えて考えればよい。
 以上のように、本発明の実施形態の時系列データ処理装置は、第1の処理部の処理の完了を確認した後、第1の処理部による処理を新処理に置き換える。この処理の置き換えは、第2の処理部において旧処理を実行しているときに実行される。そのため、旧処理の実行を継続したまま、新処理の実行を開始することができる。そして、各処理の結果データには識別情報が付加される。従って、旧処理から新処理への移行を、処理を中断することなく行うことができるという効果がある。
 本実施形態では、第2のユーザ定義処理(旧処理)から第3のユーザ定義処理(新処理)への変更を例として説明した。本実施形態では、旧処理は第2の処理部121-2において実行され、新処理は第1の処理部121-1において実行される。時系列データ処理装置100は、各処理部に対応付けられて、処理制御部を備えるので、それぞれの処理を実行する処理部を入れ替えても、同様に動作することができる。
 もし、旧処理から新処理への処理の変更のみに対応できればよいアプリケーションでは、旧処理の停止機能は不要である。つまり、時系列データ処理装置100が処理制御部111-2を備えることは必須ではない。
 また、結果データの外部への出力の有無は、出力整合部141における、結果データに付加される識別情報を用いた制御により可能である。従って、時系列データ処理装置100が出力接続部131-2を備えることも必須ではない。
 図1は、本実施形態の必須の構成のみを備える時系列データ処理装置100-1の構成を示すブロック図である。
 時系列データ処理装置100-1は、第1の処理部121-1、第2の処理部121-2、状態管理部101、処理制御部111-1、再構成部122、出力接続部131-1、情報管理部142、出力整合部141を備える。時系列データ処理装置100-1は、処理制御部111-2、出力接続部131-2を備えない。
 第1の処理部121-1、第2の処理部121-2は、時系列データ処理装置100のものと同じである。
 状態管理部101は、第1の処理部121-1の起動・停止の制御のみを行うため、処理制御部111-1のみを制御する。
 処理制御部111-1は、時系列データ処理装置100のものと同様に、第1の処理部121-1の起動・停止を行う。
 再構成部122は、第1の処理部121-1のみの再構成を行う。
 出力接続部131-1は、第1の処理部121-1が生成した結果データの出力の有無を制御する。
 情報管理部142は、第1の処理部121-1、第2の処理部121-2が実行する処理の内容に対応する「識別情報」を設定する。識別情報の違いにより、第1の処理部121-1、第2の処理部121-2が行った処理の違いを識別することができる。識別情報には、前述の、「処理のID」や「バージョン番号」が含まれる。実施形態の説明では、識別情報として、処理のID及びバージョン番号を使用した例を示した。しかし、処理のIDとバージョン番号には本質的な違いはなく、処理の内容が変化したことを識別できる「識別情報」であれば、その他の情報を用いることも可能である。
 出力整合部141は、第1の処理部121-1、第2の処理部121-2が生成した結果データに付加された識別情報を入力する。そして、結果データの、装置外部への出力順序や出力可否を決定し、結果データを装置外部へ出力する。
 以上の構成を備えることにより、時系列データ処理装置100-1は、旧処理を停止させることはできないが、旧処理から新処理への変更については何ら問題なく対応することができる。
 なお、本発明の時系列データ処理装置100は、ソフトウェアによって実現することも可能である。時系列データ処理装置を制御するプログラムのフローチャートは、図7から図11と同じである。すなわち、状態管理部101、処理制御部111-1、111-2、再構成部122、出力切断部131-1、131-2、情報管理部142、出力整合部141が行う処理を、時系列データ処理装置が備えるプロセッサ(図示なし)がプログラムを実行することによって実現してもよい。
 上記のプログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2012年3月16日に出願された日本出願特願2012-060863を基礎とする優先権を主張し、その開示の全てをここに取り込む。
   100、100-1  時系列データ処理装置
   101  状態管理部
   111、111-1、111-2  処理制御部
   121、121-1、121-2  処理部
   121A  バージョン比較部
   122  再構成部
   131、131-1、131-2  出力接続部
   131A  同期部
   141  出力整合部
   142  情報管理部
   500  時系列データ処理装置
   501  ホストコンピュータ
   511  処理制御部
   521  処理部
   522  再構成部
   531  出力接続部
   600  時系列データ処理装置
   611  処理制御部
   621  処理部
   622  再構成部
   631  出力接続部
   1001  部分バージョン比較部
   1002  待ちデータキュー
   1003  調停部

Claims (7)

  1.  第1の処理又は第3の処理を実行し第1の結果データ又は第3の結果データを生成する、再構成可能な第1の処理部と、
     第2の処理を実行し第2の結果データを生成する第2の処理部と、
     前記第1の処理部によって実行される処理を、前記第1の処理から第3の処理に変更する再構成部と、
     前記第1の処理部における前記第1の処理の停止、及び前記第1の処理部における前記第3の処理の起動を実行し、前記第1の結果データ及び前記第3の結果データの出力を許可又は禁止する第1の処理制御部と、
     前記第1の処理制御部の指示に基づき、前記第1の結果データ及び前記第3の結果データの出力を許可又は禁止する第1の出力制御部と、
     前記第1の結果データに前記第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、前記第2の結果データに前記第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、前記第3の結果データに前記第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成する情報管理部と、
     外部から処理変更指示を受けたとき、前記第1の処理制御部に対して前記第1の処理の停止及び前記第3の処理の起動並びに前記第1の結果データ及び前記第3の結果データの出力の許可又は禁止を指示し、前記再構成部に対して前記第1の処理から前記第3の処理への変更を指示し、前記情報管理部に対して前記第2の識別情報及び前記第3の識別情報の付加を指示する状態管理部と、
     前記第1の出力制御部から前記第3の結果データの組を、前記第2の出力制御部から前記第2の結果データの組を入力し、前記第3の識別情報及び前記第2の識別情報に基づいて、前記第3の結果データの組又は前記第2の結果データの組の一方を選択し、前記選択された結果データの組に含まれる結果データ出力する出力整合部と、
    を備えることを特徴とする時系列データ処理装置。
  2.  前記第1の処理部は、前記第1の処理を完了したことを示す第1の完了通知を前記状態管理部に出力し、
     前記再構成部は、前記第1の処理から第3の処理への変更を完了したことを示す第2の完了通知を前記状態管理部に出力し、
     前記状態管理部は、前記第1の完了通知に基づいて前記第1の処理制御部に対して前記第1の結果データの出力の禁止を指示し、前記第2の完了通知に基づいて前記再構成部に対して前記第1の処理から前記第3の処理への変更を指示した後、前記第1の処理制御部に対して前記第3の処理の起動及び前記第3の結果データの出力の許可を指示する
    ことを特徴とする請求項1記載の時系列データ処理装置。
  3.  前記第2の処理部における前記第2の処理の停止及び起動を実行し、前記第2の結果データの出力を許可又は禁止する第2の処理制御部と、
     前記第2の結果データの出力を許可又は禁止する第2の出力制御部と、をさらに備え、
     前記第2の処理部は、再構成可能で、前記第2の処理を完了したことを示す第3の完了通知を前記状態管理部に出力し、
     前記状態管理部は、前記第2の処理制御部に対して前記第2の結果データの出力の許可又は禁止を指示する
    を備えることを特徴とする請求項2記載の時系列データ処理装置。
  4.  前記第1の識別情報は、前記第1の処理の内容を示す第1の識別子及び前記第1の処理の変更履歴を示す第1のバージョン番号を含み、
     前記第2の識別情報は、前記第2の処理の内容を示す第2の識別子及び前記第2の処理の変更履歴を示す第2のバージョン番号を含み、
     前記第3の識別情報は、前記第3の処理の内容を示す第3の識別子及び前記第3の処理の変更履歴を示す第3のバージョン番号を含み、
     前記出力整合部は、前記第2の結果データの組と前記第3の結果データの組とが同時に到着し、前記第2の識別子と前記第3の識別子が等しく、前記第2のバージョン番号よりも前記第3のバージョン番号の方が新しいときは、前記第3の結果データを第4の結果データの組として選択し、前記第2の結果データの組を破棄する
    ことを特徴とする請求項1乃至3のいずれかに記載の時系列データ処理装置。
  5.  前記制御部は、
     前記第3の完了通知を入力する前は、前記第3の識別子として、前記第2の識別子と同じ値を付加し、前記第3のバージョン番号として、前記第2のバージョン番号からより古いバージョン番号を付加し、
     前記第3の完了通知を入力した後は、前記第3の識別子として、前記第2の識別子と同じ値を付加し、前記第3のバージョン番号として、前記第2のバージョン番号より新しいバージョン番号を付加する
    ことを特徴とする請求項4に記載の時系列データ処理装置。
  6.  第1の処理部において第1の処理を実行して第1の結果データを生成し、
     前記第1の結果データに前記第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、
     第2の処理部において第2の処理を実行して第2の結果データを生成し、
     前記第2の結果データに前記第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、
     外部から処理変更指示を受けたとき、前記第1の処理部における前記第1の処理を停止して、前記第1の結果データの出力を禁止し、
     前記第1の処理部によって実行される処理を前記第1の処理から第3の処理に変更し、
     前記第3の処理を起動して、前記第3の結果データの出力を許可し、
     前記第3の結果データに前記第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成し、
     前記第1の出力制御部から前記第3の結果データの組を入力し、前記第2の出力制御部から前記第2の結果データの組を入力し、
     前記第3の識別情報及び前記第2の識別情報に基づいて、前記第3の結果データの組又は前記第2の結果データの組の一方を選択し、前記選択された結果データの組に含まれる結果データ出力することを特徴とする時系列データ処理方法。
  7.  第1の処理を実行し第1の結果データを出力する第1の処理部、及び第2の処理を実行し第2の結果データを出力する第2の処理部を備える時系列データ処理装置が備えるコンピュータを、
     前記第1の処理部によって実行される処理を、前記第1の処理から第3の処理に変更する再構成手段、
     前記第1の処理部における前記第1の処理の停止、及び前記第1の処理部における前記第3の処理の起動を実行し、前記第1の結果データ及び前記第3の結果データの出力を許可又は禁止する第1の処理制御手段、
     前記第1の処理制御手段の指示に基づき、前記第1の結果データ及び前記第3の結果データの出力を許可又は禁止する第1の出力制御手段、
     前記第1の結果データに前記第1の処理の内容に対応する第1の識別情報を付加して第1の結果データの組を生成し、前記第2の結果データに前記第2の処理の内容に対応する第2の識別情報を付加して第2の結果データの組を生成し、前記第3の結果データに前記第3の処理の内容に対応する第3の識別情報を付加して第3の結果データの組を生成する情報管理手段、
     外部から処理変更指示を受けたとき、前記第1の処理制御手段に対して前記第1の処理の停止及び前記第3の処理の起動並びに前記第1の結果データ及び前記第3の結果データの出力の許可又は禁止を指示し、前記再構成手段に対して前記第1の処理から前記第3の処理への変更を指示し、前記情報管理手段に対して前記第2の識別情報及び前記第3の識別情報の付加を指示する状態管理手段、及び
     前記第1の出力制御部から前記第3の結果データの組を、前記第2の出力制御部から前記第2の結果データの組を入力し、前記第3の識別情報及び前記第2の識別情報に基づいて、前記第3の結果データの組又は前記第2の結果データの組の一方を選択し、前記選択された結果データの組に含まれる結果データ出力する出力整合手段
    として機能させることを特徴とする時系列データ処理プログラムを格納した非一時的な記憶媒体。
PCT/JP2013/001364 2012-03-16 2013-03-05 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体 WO2013136717A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014504672A JP6040979B2 (ja) 2012-03-16 2013-03-05 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
US14/381,601 US9075669B2 (en) 2012-03-16 2013-03-05 Time series data processing device, time series data processing method and time series data processing program storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012060863 2012-03-16
JP2012-060863 2012-03-16

Publications (1)

Publication Number Publication Date
WO2013136717A1 true WO2013136717A1 (ja) 2013-09-19

Family

ID=49160653

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/001364 WO2013136717A1 (ja) 2012-03-16 2013-03-05 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体

Country Status (3)

Country Link
US (1) US9075669B2 (ja)
JP (1) JP6040979B2 (ja)
WO (1) WO2013136717A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102286932B1 (ko) * 2019-12-17 2021-08-05 셰플러코리아 유한책임회사 예압스프링이 구비된 구름 베어링

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137620A (ja) * 1998-08-24 2000-05-16 Hitachi Ltd トランザクション処理システムのプログラム変更方法、システム及び記憶媒体
JP2004078550A (ja) * 2002-08-19 2004-03-11 Nec Engineering Ltd ソフトウェア更新システム
JP2004178472A (ja) * 2002-11-29 2004-06-24 Sanyo Electric Co Ltd プログラム取得方法およびその方法を利用可能なパケット転送装置
JP2004274141A (ja) * 2003-03-05 2004-09-30 Fujitsu Ltd 動作継続中にデータ書き換え可能な論理装置
JP2006522416A (ja) * 2003-04-02 2006-09-28 ビーチ・アンリミテッド・エルエルシー ディジタル・メディア・サーバのアップグレード
JP2007108910A (ja) * 2005-10-12 2007-04-26 Kenwood Corp ナビゲーション装置
JP2010198307A (ja) * 2009-02-25 2010-09-09 Hitachi Automotive Systems Ltd 自動車用制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3636277B2 (ja) 1998-09-11 2005-04-06 富士ゼロックス株式会社 情報処理システム
US6744274B1 (en) * 2001-08-09 2004-06-01 Stretch, Inc. Programmable logic core adapter
US6842034B1 (en) * 2003-07-01 2005-01-11 Altera Corporation Selectable dynamic reconfiguration of programmable embedded IP
JP4390818B2 (ja) * 2007-03-30 2009-12-24 富士通テン株式会社 計測データ表示装置
US20100023736A1 (en) 2007-11-12 2010-01-28 Takashi Morimoto Reconfigurable circuit, reset method, and configuration information generation device
JP6040980B2 (ja) * 2012-03-16 2016-12-07 日本電気株式会社 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137620A (ja) * 1998-08-24 2000-05-16 Hitachi Ltd トランザクション処理システムのプログラム変更方法、システム及び記憶媒体
JP2004078550A (ja) * 2002-08-19 2004-03-11 Nec Engineering Ltd ソフトウェア更新システム
JP2004178472A (ja) * 2002-11-29 2004-06-24 Sanyo Electric Co Ltd プログラム取得方法およびその方法を利用可能なパケット転送装置
JP2004274141A (ja) * 2003-03-05 2004-09-30 Fujitsu Ltd 動作継続中にデータ書き換え可能な論理装置
JP2006522416A (ja) * 2003-04-02 2006-09-28 ビーチ・アンリミテッド・エルエルシー ディジタル・メディア・サーバのアップグレード
JP2007108910A (ja) * 2005-10-12 2007-04-26 Kenwood Corp ナビゲーション装置
JP2010198307A (ja) * 2009-02-25 2010-09-09 Hitachi Automotive Systems Ltd 自動車用制御装置

Also Published As

Publication number Publication date
JPWO2013136717A1 (ja) 2015-08-03
JP6040979B2 (ja) 2016-12-07
US9075669B2 (en) 2015-07-07
US20150067703A1 (en) 2015-03-05

Similar Documents

Publication Publication Date Title
JP6412975B2 (ja) 分散型プロセッサを有する処理システム
JP6140303B2 (ja) 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
US9715601B2 (en) Secure access in a microcontroller system
EP3183652A1 (en) Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system
CN103649923B (zh) 一种numa系统内存镜像配置方法、解除方法、系统和主节点
JP2007207136A (ja) データ処理装置、データ処理方法、及びデータ処理プログラム
CN107430564A (zh) 具有多个独立微控制器的微控制器装置
JP2004199698A (ja) 複数の割込発生源から生じる割込要求の優先順位決定用割込制御装置ならびに割込制御方法
JP5499950B2 (ja) 制御装置、情報処理装置、制御プログラム、及び制御方法
JP6040979B2 (ja) 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
US20130332629A1 (en) Configuration controller and configuration control method
JP3693013B2 (ja) データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
JP5034979B2 (ja) 起動装置、起動方法、及び、起動プログラム
JP6135403B2 (ja) 情報処理システム、情報処理システムの障害処理方法
JP6036835B2 (ja) 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
US10725984B2 (en) Time series data device, time series data processing method and time series data processing program storage medium
JP4728581B2 (ja) アレイ型プロセッサ
JP3861898B2 (ja) データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
JP2014138382A (ja) 信号処理装置およびプログラマブルロジックデバイスの構成方法
US9990131B2 (en) Managing memory in a multiprocessor system
JP2007241570A (ja) プログラマブルコントローラ間通信のための共有メモリの設定方式
JP2003006173A (ja) 情報処理装置
JP2007329760A (ja) プログラマブル論理デバイス、回路情報入力制御装置および半導体装置
JP2013134593A (ja) Lsi装置
KR101776329B1 (ko) 접근권한코드를 이용한 디바이스 보호 시스템 및 그 보호 방법

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: 13760842

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014504672

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14381601

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13760842

Country of ref document: EP

Kind code of ref document: A1