WO2020059067A1 - 情報処理システム、方法及びプログラム - Google Patents

情報処理システム、方法及びプログラム Download PDF

Info

Publication number
WO2020059067A1
WO2020059067A1 PCT/JP2018/034750 JP2018034750W WO2020059067A1 WO 2020059067 A1 WO2020059067 A1 WO 2020059067A1 JP 2018034750 W JP2018034750 W JP 2018034750W WO 2020059067 A1 WO2020059067 A1 WO 2020059067A1
Authority
WO
WIPO (PCT)
Prior art keywords
frequency
current
change
request
operating frequency
Prior art date
Application number
PCT/JP2018/034750
Other languages
English (en)
French (fr)
Inventor
剛彦 村田
Original Assignee
株式会社Pfu
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 株式会社Pfu filed Critical 株式会社Pfu
Priority to PCT/JP2018/034750 priority Critical patent/WO2020059067A1/ja
Publication of WO2020059067A1 publication Critical patent/WO2020059067A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • H01L21/822Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components the substrate being a semiconductor, using silicon technology
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form

Definitions

  • the present disclosure relates to a technique for changing an operating frequency of a processor.
  • a CPU determines whether or not the temperature of an FPGA detected by a temperature sensor is higher than an allowable temperature, and if so, sets and outputs an operation frequency lower than a current operation frequency.
  • a control signal is output to the PLL circuit, and circuit data corresponding to the set operating frequency is output from the ROM to the FPGA, and a control signal is output to the FPGA to reconfigure based on the circuit data.
  • a control signal is output to the PLL circuit to set and output an operation frequency higher than the current operation frequency
  • circuit data corresponding to the set operation frequency is output from the ROM to the FPGA, and the FPGA outputs the control signal. It has been proposed to output a control signal to reconfigure based on circuit data (see Patent Document 1).
  • the configuration of the FPGA is completed, the fixed information that does not change after the configuration of the FPGA is read from the JTAG port of the FPGA, it is detected whether or not a soft error has occurred in the read fixed information.
  • the step of correcting the error using a port is performed, and whether or not a soft error has occurred is performed using an error correction code, and the FPGA has a dual configuration of an active FPGA and a spare FPGA. If a soft error occurs in the active FPGA, the active FPGA is switched to the spare FPGA, and the spare FPGA before the switch is switched to the active FPGA, and the soft error occurrence location of the spare FPGA is changed.
  • a method of reconfiguring an FPGA soft error has been proposed (see Patent Document 2). .
  • the present disclosure has been made in view of the above problems, and in a device that requires at least one of a logic circuit change and a reconfiguration when changing an operating frequency, reduces a disadvantage that occurs when the operating frequency is changed during startup.
  • the task is to make
  • An example of the present disclosure is an information processing system including a device that requires at least one of logic circuit change and reconfiguration when changing an operating frequency, and the current temperature or current of the device and a predetermined temperature range.
  • comparing means for comparing the current range with the current range, and when the current temperature or the current is out of the temperature range or the current range, changing the operating frequency of the device accompanied by at least one of logic circuit change and reconfiguration.
  • frequency changing means frequency storage means for storing the changed operating frequency for a plurality of times, based on the stored operating frequency, determine the operating frequency at the time of startup of the device, the determined operating frequency
  • An activation frequency setting means for setting a region to be referred to when the device is activated.
  • the number of times the operating frequency is changed during startup can be suppressed.
  • an example of the present disclosure is an information processing system including a device that requires at least one of a logic circuit change and a reconfiguration when changing an operating frequency, and performs processing corresponding to an external request.
  • a device processing execution unit that starts execution and completes the process by outputting a response to the outside; a comparison unit that compares a current temperature or current of the device with a predetermined temperature range or current range; Or, when the current is outside the temperature range or the current range, a process corresponding to the external request after the response output by the device processing execution unit and before the execution of the execution by the device processing execution unit.
  • the operation frequency of the device is changed at least one of the logic circuit change and the reconfiguration at the timing when the operation is not executed.
  • An information processing system comprising a changing means.
  • an example of the present disclosure is an information processing system including a plurality of devices that require at least one of logic circuit change and reconfiguration when changing an operating frequency, and a management device,
  • Each of the devices includes a comparing unit that compares a current temperature or current of the device with a predetermined temperature range or current range, and the current temperature or current is outside the temperature range or current range when the current temperature or current is out of the temperature range or current range.
  • Change request means for making a frequency change request to a management device
  • request reception means for receiving a frequency change request issued by the management device, and a logic circuit change when the frequency change request is received from the management device.
  • a frequency changing unit that changes the operating frequency of the device with at least one of: Request confirmation means for confirming the frequency change request from each of the devices, and, according to the change request, the plurality of devices are not simultaneously in a logic circuit change or reconfiguration state.
  • An instruction issuing unit that issues a frequency change request to a device that has been there.
  • the present disclosure can be understood as an information processing device, a system, a method executed by a computer, or a program executed by a computer.
  • the present disclosure can be understood as such a program recorded on a recording medium readable by a computer, another device, a machine, or the like.
  • a computer-readable recording medium is a recording medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like.
  • FIG. 2 is a schematic diagram illustrating a hardware configuration of the information processing system according to the first embodiment.
  • FIG. 2 is a diagram illustrating an outline of a functional configuration of the information processing system according to the first embodiment.
  • FIG. 3 is a diagram illustrating an outline of a frequency storage unit (frequency storage buffer) according to the first embodiment.
  • 5 is a flowchart illustrating an outline of a flow of an operating frequency control process according to the first embodiment. It is a flowchart (A) which shows the outline
  • FIG. 7 is a schematic diagram illustrating a hardware configuration of an information processing system according to a second embodiment. It is a figure showing the outline of the functional composition of the information processing system concerning a second embodiment.
  • FIG. 14 is a diagram illustrating a queue for a frequency change request provided in the information processing system according to the second embodiment. It is a flowchart which shows the outline
  • an embodiment will be described in which the information processing system, method, and program according to the present disclosure are implemented in an information processing system including a host machine and an FPGA.
  • the information processing system, method, and program according to the present disclosure can be widely used in a processor that requires at least one of logic circuit change and reconfiguration when changing the operating frequency.
  • the target is not limited to the example shown in the embodiment.
  • FIG. 1 is a schematic diagram illustrating a hardware configuration of an information processing system 1 according to the present embodiment.
  • the information processing system 1 includes a CPU (Central Processing Unit) 11, a host-side RAM (Random Access Memory) 12a, an FPGA-side RAM 12b, a ROM (Read Only Memory) 13, and an EEPROM (Electrically-Releaseable Randomly Available Randomly Randomly Available Randomly Randomly Operableable ) Or a hard disk drive (HDD), a communication unit 15 such as a network interface card (NIC), a field-programmable gate array (FPGA) 16, and the like.
  • NIC network interface card
  • FPGA field-programmable gate array
  • the FPGA 16 is a device that requires at least one of logic circuit change and reconfiguration when changing the operating frequency. Further, the FPGA 16 is provided with a temperature / current sensor 17 for monitoring the temperature / current of the FPGA 16.
  • the information processing system 1 is a system that uses the FPGA 16 as an accelerator from the host machine 10 having the CPU 11 mounted thereon.
  • the information processing system 1 can be used, for example, as a convolutional neural network (CNN) processing system that processes an image input from an external camera (not shown) connected to the information processing system 1.
  • CNN convolutional neural network
  • the information processing system 1 disclosed in the present embodiment can be used for various types of information processing, and its use is not limited to CNN.
  • FIG. 2 is a diagram schematically illustrating a functional configuration of the information processing system 1 according to the present embodiment.
  • the programs recorded in the storage device 14 are read out to the RAMs 12 a and 12 b and executed by the CPU 11 and / or the FPGA 16 to control each hardware provided in the server 50.
  • each function of the information processing system 1 is executed by the CPU 11 and / or the FPGA 16 which are general-purpose processors. Alternatively, it may be executed by a plurality of dedicated processors.
  • the FPGA process execution unit 21 starts execution of a corresponding process (hereinafter, referred to as “FPGA process”) in response to a request from the outside (the CPU 11 in the present embodiment), and outputs the process by outputting a response to the outside. Complete.
  • FPGA process a corresponding process
  • the comparator 22 compares the current temperature of the FPGA 16 with a predetermined temperature range.
  • the temperature range is set using the upper threshold and the lower threshold, but the method of setting the temperature range is not limited to the example in the present embodiment.
  • the threshold may be only the upper threshold.
  • the necessity of changing the operating frequency is determined by comparing the current temperature with a predetermined temperature range, but is used as an index for determining whether the changing of the operating frequency is necessary.
  • the sensor output is not limited to temperature.
  • the necessity of changing the operating frequency may be determined by comparing the current obtained from the temperature / current sensor 17 with a predetermined current range. Since the power consumption and the temperature generally have a relation that the power consumption increases almost in proportion to the temperature, it is determined whether or not the current state of the FPGA 16 is a value that requires a change in the operating frequency based on the current. Can be indirectly known.
  • the change request unit 23 makes a frequency change request by enqueuing a change request in a device queue (frequency change request queue) associated with the FPGA 16 when the current temperature is out of the temperature range.
  • the request receiving unit 24 receives the frequency change request enqueued by the change request unit 23 by dequeuing the change request from the frequency change request queue.
  • the frequency changing unit 25 changes the operating frequency of the FPGA 16 accompanied by at least one of the logic circuit change and the reconfiguration. Do. At this time, after the response output by the FPGA processing execution unit 21 and before the execution start by the FPGA processing execution unit 21 and at the timing when the processing corresponding to the external request is not executed, the frequency changing unit 25 The operation frequency of the FPGA 16 is changed with at least one of the circuit change and the reconfiguration.
  • the frequency storage unit 26 stores the changed operating frequency a plurality of times using a buffer provided in a nonvolatile storage area such as the storage device 14. By storing the operating frequency in the non-volatile storage area, the past operating frequency (statistical information) can be used even when the power of the apparatus is turned off / on.
  • FIG. 3 is a diagram showing an outline of the frequency storage unit 26 (frequency storage buffer) according to the present embodiment.
  • the frequency storage buffer according to the present embodiment is a so-called ring buffer, and has an area in which a predetermined number of operation frequencies can be recorded and a pointer (bottom) indicating the latest recording position.
  • the operating frequency is defined in stages, such as level 1, level 2, level 3,..., And is set and stored.
  • the method of storing the operating frequency is not limited to the example disclosed in the present embodiment.
  • the buffer may adopt a format other than the ring buffer, and the operating frequency may be recorded in a volatile storage area.
  • the startup frequency setting unit 27 determines the arithmetic mean of the operating frequencies for a plurality of times stored by the frequency storage unit 26 as the operating frequency at the time of startup of the FPGA 16, and determines the determined operating frequency at the time of startup of the FPGA 16. Set to the referenced area.
  • the operating frequency at startup is set to the arithmetic average (arithmetic average) value of the frequency storage buffer. , The median, etc., may be used.
  • FIG. 4 is a flowchart showing an outline of the flow of the operating frequency control process according to the present embodiment.
  • the processing shown in this flowchart is started for each FPGA 16 when the FPGA 16 is started.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • the operating frequency at the time of activation is set, and a thread for monitoring is activated.
  • the startup frequency setting unit 27 reads the operating frequency (for example, the level of the operating frequency) stored in the frequency storage buffer, and uses the average value calculated based on the read operating frequencies to start the FPGA 16. It is set as the operating frequency at the time (step S101). Further, the FPGA 16 activates a thread for monitoring the output from the temperature / current sensor 17 (Step S102). The details of the monitoring process by the activated monitoring thread will be described later with reference to the flowcharts of FIGS. Thereafter, the process proceeds to step S103.
  • step S103 upon receiving a request from the outside, a corresponding FPGA process is executed.
  • the FPGA process execution unit 21 receives a request from the outside (the host machine 10 in the present embodiment), executes the corresponding FPGA process, and sends the execution result to the request source (the host machine 10 in the present embodiment). To respond. Inputs for the FPGA processing are obtained from the RAMs 12a and 12b, and outputs of the FPGA processing are output to the RAMs 12a and 12b.
  • the FPGA processing executed here is, for example, an operation for the CNN, but the content of the FPGA processing may be any processing that the host machine 10 requests the FPGA 16 to execute. Not limited. Thereafter, the process proceeds to step S104.
  • steps S104 and S105 when there is a frequency change request, the frequency change request is dequeued and the operating frequency is changed.
  • the request receiving unit 24 refers to a device queue (frequency change request queue) associated with the FPGA 16 as its own device, and determines whether there is a frequency change request (step S104). As a result of the determination, if there is a frequency change request in the frequency change request queue of the own device, the request receiving unit 24 dequeues the frequency change request. Then, the frequency change unit 25 executes the operation frequency change process so that the operation frequency of the FPGA 16 becomes the next operation frequency next_freq set in the frequency change request (step S105). The details of the operating frequency changing process will be described later with reference to the flowchart of FIG. Thereafter, the process proceeds to step S106.
  • steps S106 and S107 end processing is performed.
  • the FPGA 16 determines whether or not the use of the FPGA 16 by the host machine 10 has been completed (for example, whether or not the inference process of the CNN in charge of the FPGA 16 has been completed) according to a predetermined termination condition (step S106). ). If the termination condition is not satisfied, the process returns to step S103. That is, the processing from step S103 to step S106 is repeatedly executed until the termination condition is satisfied. On the other hand, if the termination condition is satisfied, the FPGA 16 terminates the monitoring thread (the monitoring process shown in the flowcharts of FIGS. 5 and 6) started in step S102 (step S107). Thereafter, the processing shown in this flowchart ends.
  • FIGS. 5 and 6 are flowcharts showing the outline of the flow of the monitoring process according to the present embodiment.
  • the process shown in this flowchart is executed by the monitoring thread started in step S102 of the operating frequency control process described with reference to FIG.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • steps S201 to S205 the current temperature of the FPGA 16 is obtained and compared with a predetermined temperature range.
  • the comparing unit 22 acquires a temperature / current register value (monitor value) from the temperature / current sensor 17 provided in the FPGA 16 (Step S201). Then, the comparing unit 22 determines the acquired current temperature of the FPGA 16 as a predetermined temperature range (consisting of an upper threshold and a lower threshold) set as a range in which the FPGA 16 can operate normally / efficiently. A comparison is made (step S202 / step S204).
  • the FPGA 16 sets the next operation frequency next_freq such that the temperature of the FPGA 16 can be returned to within the predetermined temperature range (step S203). / Step S205).
  • the FPGA 16 sets the next operation frequency next_freq to an operation frequency one step lower than the current operation frequency temp_freq (decreases the operation frequency), and Is lower than the lower threshold, the FPGA 16 sets the next operating frequency next_freq to an operating frequency one step higher than the current operating frequency temp_freq (increases the operating frequency).
  • the change width of the operating frequency may be arbitrarily set.
  • the FPGA 16 determines the difference between the temperature acquired from the temperature / current sensor 17 in the previous sampling and the temperature acquired from the temperature / current sensor 17 in the current sampling (that is, the current temperature change rate).
  • the change width of the operating frequency may be set. More specifically, when the difference is 3 to 5 degrees Celsius, the operating frequency may be changed by one step, and when the difference is 5 to 8 degrees Celsius, the operating frequency may be changed by two steps.
  • the FPGA 16 sets the change range of the operating frequency in accordance with the difference between the temperature acquired from the temperature / current sensor 17 in the current sampling and the threshold (that is, the amount by which the current temperature is out of the predetermined temperature range). May be set. Thereafter, the process proceeds to step S206.
  • steps S206 to S209 the upper and lower limits of the operating frequency are confirmed.
  • the FPGA 16 compares the next operating frequency next_freq with the upper limit FREQ_MAX and the lower limit FREQ_MIN of the operating frequency that can be set for the FPGA 16 (step S206 / step S208). Then, the FPGA 16 sets the upper limit FREQ_MAX to the next operating frequency next_freq when the next operating frequency next_freq exceeds the upper limit FREQ_MAX, and sets the next operating frequency next_freq when the next operating frequency next_freq is lower than the lower limit FREQ_MIN. To the lower limit FREQ_MIN. Thereafter, the process proceeds to step S210.
  • steps S210 to S212 a request to change the operating frequency is made as necessary.
  • the change request unit 23 compares the next operating frequency next_freq set in the processing up to step S209 with the current operating frequency temp_freq at which the FPGA 16 is currently operating (step S210). As a result of the comparison, when the next operating frequency next_freq is different from the current operating frequency temp_freq, it is necessary to change the operating frequency. Therefore, the change request unit 23 enqueues the frequency change request into its own frequency change request queue. (Step S211). Further, the change request unit 23 updates the value of the current operating frequency temp_freq with the value of the next operating frequency next_freq (step S212). Thereafter, the process proceeds to step S213.
  • the changed operating frequency is stored.
  • the frequency storage unit 26 records the value of the current operating frequency temp_freq in the bottom of the frequency storage buffer (step S213), and updates (+1) the bottom of the frequency storage buffer (step S214). Then, the FPGA 16 waits for a predetermined time MONITOR_DELAY_SEC to elapse until the next temperature / current monitor timing (step S215).
  • the sampling interval of the temperature / current monitor is a fixed value (MONITOR_DELAY_SEC)
  • the sampling interval of the temperature / current monitor is not limited to the example described in the present embodiment.
  • the sampling interval is doubled or quadrupled every time such determination is made. .. May be extended.
  • step S215 When the process in step S215 is completed, the process returns to step S201. That is, the process shown in this flowchart is repeatedly executed while the FPGA 16 is running.
  • FIG. 7 is a flowchart showing an outline of the flow of the operating frequency changing process according to the present embodiment.
  • the processing shown in this flowchart corresponds to the processing of step S105 which is executed when a frequency change request is made in the frequency change request queue of the own device in the operating frequency control processing described with reference to FIG.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • the frequency change unit 25 executes the setting of the HW register of the FPGA 16 with the value of the next operation frequency next_freq in accordance with the frequency change request dequeued from the frequency change request queue (step S301). Then, by activating the FPGA reconfiguration, the frequency changing unit 25 sets the operating frequency of the FPGA 16 to the next operating frequency next_freq set in the HW register (step S302). This process may involve a change in the logic circuit of the FPGA 16. Thereafter, the frequency changing unit 25 waits until confirming the completion of the FPGA reconfiguration (step S303), and when the completion of the FPGA reconfiguration is confirmed, the processing shown in this flowchart ends.
  • the FPGA operating frequency (initial value) at the time of startup is not based on a fixed value (for example, the highest speed) but on the basis of past statistical information (operating frequency stored in the frequency storage buffer).
  • a fixed value for example, the highest speed
  • past statistical information operating frequency stored in the frequency storage buffer
  • the operating frequency change process involving the FPGA reconfiguration is performed in the gap of the FPGA process (outside of step S103), the operation is performed without discarding the in-progress FPGA process.
  • the frequency can be changed.
  • the information processing system according to the present disclosure may be made redundant by including a plurality of FPGAs.
  • the second embodiment which is made redundant by including a plurality of FPGAs, will be described mainly with respect to differences from the first embodiment.
  • FIG. 8 is a schematic diagram illustrating a hardware configuration of the information processing system 1b according to the present embodiment.
  • the information processing system 1b according to the present embodiment is a computer including a CPU 11, a host-side RAM 12a, an FPGA-side RAM 12b, a ROM 13, a storage device 14, a communication unit 15, FPGAs 16a and 16b, and the like.
  • the FPGAs 16a and 16b are provided with temperature / current sensors 17a and 17b for monitoring temperature / current, respectively. In the following description, when indicating any of the FPGAs 16a and 16b, it is simply described as the FPGA 16.
  • the information processing system 1b according to this embodiment is a system that uses a plurality of FPGAs 16a and 16b as accelerators from a host machine 10 having a CPU 11, and uses the same applications as in the first embodiment.
  • the information processing system 1b according to the present embodiment differs from the first embodiment in that the information processing system 1b is made redundant by a plurality of FPGAs 16a and 16b connected to the host machine 10 via dedicated paths.
  • the information processing system 1b according to the present embodiment when the frequency is stabilized as a result of the processing described below, it is possible to operate the FPGA 16a and the FPGA 16b simultaneously and perform the same task in parallel, thereby increasing the FPGA throughput. It is.
  • a plurality of FPGAs 16a and 16b are provided as physically separate chips.
  • the plurality of FPGAs 16 are configured as a plurality of logic devices (logic circuits) configured in a single chip. Is also good.
  • FIG. 9 is a diagram schematically illustrating a functional configuration of the information processing system 1b according to the present embodiment.
  • a program recorded in the storage device 14 is read out to the RAMs 12a and 12b, and executed by the CPU 11 and / or the FPGAs 16a and 16b to control each hardware provided in the server 50.
  • the comparison unit 22, the change request unit 23, the request reception unit 24, the frequency change unit 25, the startup frequency setting unit 27, the request confirmation unit 28, the instruction issuing unit 29, the completion notification unit 30, and the completion notification reception unit 31 Functions as an information processing system including
  • the request confirmation unit 28, the instruction issuing unit 29, and the completion notification reception unit 31 are executed by the CPU 11, and the FPGA processing execution unit 21, the comparison unit 22, the change request unit 23, the request reception unit 24, the frequency change unit
  • the startup frequency setting unit 27 and the completion notification unit 30 are executed by each of the FPGAs 16a and 16b, the entity that executes each functional unit is not limited to the example in the present embodiment.
  • FIG. 10 is a diagram showing a queue for a frequency change request provided in the information processing system 1b according to the present embodiment.
  • the FPGA-side RAM 12b is provided with a plurality of device queues (frequency change request queues) 41a and 41b each associated with a plurality of FPGAs 16, a master queue 42, and a completion queue 43.
  • the device queue 41a is associated with the FPGA 16a
  • the device queue 41b is associated with the FPGA 16b.
  • the operating frequency change request is first enqueued in the master queue 42, and then enqueued in the corresponding device queue 41a or 41b.
  • the change request unit 23 requests the host machine 10 to change the frequency by enqueuing the change request in the master queue 42 when the current temperature is out of the temperature range.
  • the request confirmation unit 28 dequeues the change request from the master queue 42, and confirms the frequency change request from each of the plurality of FPGAs 16a and 16b.
  • the instruction issuing unit 29 enqueues the frequency change request to the corresponding device queue 41a or 41b in accordance with the change request dequeued from the master queue 42, and thereby, among the plurality of FPGAs 16a and 16b, Issue a change request. At this time, if the frequency change request has been enqueued to any of the device queues 41a or 41b first, the instruction issuing unit 29 will wait until the completion notification unit 30 receives the completion notification corresponding to this frequency change request.
  • a new frequency change request is not enqueued to 41a and 41b, and a new frequency change request is enqueued after the completion notification unit 30 receives the corresponding completion notification, so that the plurality of FPGAs 16a and 16b can simultaneously change the logic circuit.
  • exclusive control is performed so as not to enter the reconfiguration state.
  • the request receiving unit 24 receives the frequency change request issued by the host machine 10 by dequeuing the frequency change request from the corresponding device queue 41a or 41b.
  • the frequency change unit 25 changes the operating frequency of the FPGA 16.
  • the completion notification unit 30 notifies the completion of the change of the operating frequency according to the frequency change request by enqueuing the completion notification in the completion notification completion queue 43.
  • the completion notification receiving unit 31 receives the completion notification by dequeuing the completion notification from the completion queue 43.
  • FIG. 11 is a flowchart showing an outline of the flow of the operating frequency control process according to the present embodiment.
  • the processing shown in this flowchart is started to be executed for each FPGA when the FPGAs 16a and 16b are activated.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • step S401 the operating frequency at the time of startup is set.
  • the startup frequency setting unit 27 sets the highest value that can be set in the FPGA 16 as the operation frequency at startup of the FPGA 16.
  • the startup frequency setting unit 27 may set another value as the startup frequency.
  • the start-time frequency setting unit 27 may set an average value of the operating frequencies stored in the frequency storage buffer as the operating frequency at the time of starting the FPGA 16 (see the first embodiment). Thereafter, the process proceeds to step S402.
  • steps S402 and S403 are substantially the same as the contents of the processing of steps S102 and S103 of the operating frequency control processing of the first embodiment described with reference to FIG. .
  • steps S404 and S405 when there is a frequency change request, the frequency change request is dequeued and the operating frequency is changed.
  • the request receiving unit 24 refers to the device queue 41a or 41b (the device queue 41a if the subject of execution of the process is the FPGA 16a, or the device queue 41b if the subject of execution of the process is the FPGA 16b) associated with the FPGA 16, which is its own device, and requests the frequency change Is determined (step S404).
  • step S405 the request receiving unit 24 dequeues the frequency change request. Then, the frequency change unit 25 executes the operation frequency change processing so that the operation frequency of the FPGA 16 becomes the next operation frequency next_freq set in the frequency change request. The details of the operating frequency changing process will be described later with reference to the flowchart of FIG. Thereafter, processing proceeds to step S406.
  • steps S406 and S407 are substantially the same as the contents of the processing of steps S106 and S107 of the operating frequency control processing of the first embodiment described with reference to FIG. .
  • FIGS. 12 and 13 are flowcharts showing an outline of the flow of the monitoring process according to the present embodiment.
  • the process shown in this flowchart is executed by the monitoring thread started in step S402 of the operating frequency control process described with reference to FIG.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • a request to change the operating frequency is made as necessary.
  • the change request unit 23 compares the next operating frequency next_freq set in the processing up to step S509 with the current operating frequency temp_freq in which the FPGA 16 is currently operating (step S510). As a result of the comparison, when the next operating frequency next_freq is different from the current operating frequency temp_freq, the operating frequency needs to be changed, and the change request unit 23 enqueues the frequency change request to the master queue 42 (step S511). ). Further, the change request unit 23 updates the value of the current operating frequency temp_freq with the value of the next operating frequency next_freq (step S512).
  • the process of recording the operating frequency in the frequency storage buffer in the first embodiment is omitted.
  • the same recording processing as in the first embodiment may be employed in order to set the average value of the operating frequencies as the operating frequency at the time of starting the FPGA 16.
  • step S513 The FPGA 16 waits for a predetermined time MONITOR_DELAY_SEC until the next temperature / current monitoring timing (step S513). It is to be noted that the sampling interval of the temperature / current monitor is not limited to a fixed value, as in the first embodiment. Thereafter, the process returns to step S501. That is, the process shown in this flowchart is repeatedly executed while the FPGA 16 is running.
  • FIG. 14 is a flowchart showing an outline of the flow of the operating frequency changing process according to the present embodiment.
  • the processing shown in this flowchart corresponds to the processing of step S405 that is executed when a frequency change request is made in the device queue of the own device in the operating frequency control processing described with reference to FIG.
  • the execution subject of the processing shown in this flowchart will be described as the FPGA 16, but the execution subject of the operating frequency control process may be a processor other than the FPGA 16 (for example, the CPU 11 of the host machine 10).
  • step S604 a completion notification is made.
  • the completion notifying unit 30 notifies the completion of the change of the operating frequency according to the frequency change request by enqueuing the completion notification in the completion notification completion queue 43. Thereafter, the processing shown in this flowchart ends.
  • FIG. 15 is a flowchart showing an outline of the flow of the exclusion process according to the present embodiment.
  • the processing shown in this flowchart is repeatedly executed during the activation of the information processing system 1b.
  • the execution subject of the processing shown in this flowchart will be described as the CPU 11 of the host machine 10, but the execution subject of the operating frequency control processing may be another processor.
  • steps S701 and S702 switching of the frequency change request from the master queue 42 to the device queue 41a or 41b is performed.
  • the request confirming unit 28 confirms the frequency change request from each of the plurality of FPGAs 16a and 16b by dequeuing the change request from the master queue 42 (step S701).
  • the change request that is dequeued here is one that has been enqueued by one of the plurality of FPGAs 16a and 16b in step S511 of the monitoring process.
  • the instruction issuing unit 29 enqueues the frequency change request to the corresponding device queue 41a or 41b in accordance with the change request dequeued from the master queue 42, and thereby, among the plurality of FPGAs 16a and 16b, (Step S702).
  • the host machine 10 stores the queue ID associated with the change request in which the switching from the master queue 42 to the device queue 41a or 41b is performed (step S703). Thereafter, processing proceeds to step S704.
  • step S704 completion of the operating frequency change process is confirmed.
  • the completion notification receiving unit 31 dequeues the completion notification from the completion queue 43 and receives the completion notification (step S704).
  • the completion queue 43 is repeatedly confirmed until the completion notification dequeue is successful.
  • the completion notification receiving unit 31 reads the queue ID from the completion notification and compares the read queue ID with the queue ID stored in step S703, so that the operation frequency change processing corresponding to the frequency change request issued in step S703 is performed by the target FPGA 16 Is completed (step S705).
  • step S703 If the comparison shows that the queue ID read from the completion notification matches the queue ID stored in step S703, the process returns to step S701. On the other hand, as a result of the comparison, if the queue IDs do not match, the host machine 10 issues an error notification and ends the processing shown in this flowchart.

Abstract

動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムに、当該デバイスの現在温度/電流と所定の温度/電流範囲とを比較する比較部と、現在温度/電流が温度/電流範囲を外れている場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う当該デバイスの動作周波数変更を行う、周波数変更部と、変更後の動作周波数を複数回分記憶する周波数記憶部と、記憶された動作周波数に基づいて、当該デバイスの起動時の動作周波数を決定し、決定された動作周波数を当該デバイスの起動時に参照される領域に設定する起動時周波数設定部と、を備えた。

Description

情報処理システム、方法及びプログラム
 本開示は、プロセッサの動作周波数を変更するための技術に関する。
 従来、CPUが、回路再構成処理において、温度センサにより検出したFPGAの温度が許容温度以上に高いか否かを判別し、高かった場合は現在の動作周波数より低い動作周波数を設定し出力するよう制御信号をPLL回路に出力するとともに、設定した動作周波数に応じた回路データをROMからFPGAに出力させてFPGAに該回路データに基づいて再構成するよう制御信号を出力する一方、検出した温度が許容温度より低い場合、現在の動作周波数より高い動作周波数を設定し出力するよう制御信号をPLL回路に出力するとともに、設定した動作周波数に応じた回路データをROMからFPGAに出力させてFPGAに該回路データに基づいて再構成するよう制御信号を出力することが提案されている(特許文献1を参照)。
 また、FPGAのコンフィグを完了し、FPGAのJTAGポートから、FPGAのコンフィグ後は変化しない固定情報を読み出し、読み出した固定情報にソフトエラーが発生したかどうかを検出し、エラーが発生した場合はJTAGポートを使用して該エラーの補正を行う、というステップを備え、ソフトエラーが発生したかどうかは、誤り訂正符号を用いて行い、FPGAは運用中のFPGAと予備のFPGAとの二重化構成となっており、ソフトエラーが運用中のFPGAで発生した場合は運用中のFPGAを予備のFPGAに切替え、且つ切替え前の予備のFPGAを運用中のFPGAに切替え、予備のFPGAのソフトエラー発生箇所をリコンフィグする、FPGAのソフトエラー対策方法が提案されている(特許文献2を参照)。
特開2004-22724号公報 特開2005-235074号公報
 従来、温度センサによって検出された温度に基づいて、プロセッサの動作周波数を変更する技術が提案されている。しかし、例えばFPGA(Field-Programmable Gate Array)のように、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるプロセッサでは、動作周波数を変更することによって、例えば、仕掛かり中の処理の破棄、処理の中断、又はその他のデメリットが生じるという問題があった。
 本開示は、上記した問題に鑑み、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスにおいて、起動中に動作周波数の変更を行った場合に生じるデメリットを軽減させることを課題とする。
 本開示の一例は、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムであって、該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、変更後の動作周波数を複数回分記憶する周波数記憶手段と、前記記憶された動作周波数に基づいて、該デバイスの起動時の動作周波数を決定し、決定された動作周波数を該デバイスの起動時に参照される領域に設定する起動時周波数設定手段と、を備える情報処理システムである。
 このような情報処理システムによれば、起動中の動作周波数の変更回数を抑制することが可能となる。
 また、本開示の一例は、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムであって、外部からの要求を受けて対応する処理の実行を開始し、外部への応答の出力をもって該処理を完了するデバイス処理実行手段と、該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記デバイス処理実行手段による応答出力の後、且つ前記デバイス処理実行手段による実行開始の前であって、前記外部要求に対応する処理が実行されていないタイミングで、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、を備える情報処理システムである。
 このような情報処理システムによれば、起動中に動作周波数の変更を行っても、仕掛かり中の処理が破棄されないようにすることが可能となる。
 更に、本開示の一例は、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となる複数のデバイスと、管理装置と、を備える情報処理システムであって、前記複数のデバイスの夫々は、該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記管理装置に対して周波数変更依頼を行う変更依頼手段と、前記管理装置によって発行された周波数変更依頼を受領する依頼受領手段と、前記管理装置から前記周波数変更依頼を受領した場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、を備え、前記管理装置は、前記複数のデバイスの夫々から前記周波数変更依頼を確認する依頼確認手段と、前記変更依頼に従って、前記複数のデバイスが同時に論理回路変更又はリコンフィグ状態とならないように、前記複数のデバイスのうち、前記変更依頼のあったデバイスに周波数変更依頼を発行する指示発行手段と、を備える、情報処理システムである。
 このような情報処理システムによれば、起動中に動作周波数の変更を行っても、処理が中断されないようにすることが可能となる。
 本開示は、情報処理装置、システム、コンピューターによって実行される方法又はコンピューターに実行させるプログラムとして把握することが可能である。又、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的又は化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
 本開示によれば、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスにおいて、起動中に動作周波数の変更を行った場合に生じるデメリットを軽減させることが可能となる。
第一の実施形態に係る情報処理システムのハードウェア構成を示す概略図である。 第一の実施形態に係る情報処理システムの機能構成の概略を示す図である。 第一の実施形態に係る周波数記憶部(周波数記憶バッファ)の概要を示す図である。 第一の実施形態に係る動作周波数制御処理の流れの概要を示すフローチャートである。 第一の実施形態に係るモニタリング処理の流れの概要を示すフローチャート(A)である。 第一の実施形態に係るモニタリング処理の流れの概要を示すフローチャート(B)である。 第一の実施形態に係る動作周波数変更処理の流れの概要を示すフローチャートである。 第二の実施形態に係る情報処理システムのハードウェア構成を示す概略図である。 第二の実施形態に係る情報処理システムの機能構成の概略を示す図である。 第二の実施形態に係る情報処理システムに備えられる、周波数変更依頼のためのキューを示す図である。 第二の実施形態に係る動作周波数制御処理の流れの概要を示すフローチャートである。 第二の実施形態に係るモニタリング処理の流れの概要を示すフローチャート(A)である。 第二の実施形態に係るモニタリング処理の流れの概要を示すフローチャート(B)である。 第二の実施形態に係る動作周波数変更処理の流れの概要を示すフローチャートである。 第二の実施形態に係る排他処理の流れの概要を示すフローチャートである。
 以下、本開示に係る情報処理システム、方法及びプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理システム、方法及びプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、又、種々の改良や変形が行われてよい。
 実施形態の説明では、本開示に係る情報処理システム、方法及びプログラムを、ホストマシン及びFPGAを備える情報処理システムにおいて実施した場合の実施の形態について説明する。なお、本開示に係る情報処理システム、方法及びプログラムは、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるプロセッサにおいて広く用いることが可能であり、本開示の適用対象は、実施形態において示した例に限定されない。
 [第一の実施形態]
 <システムの構成>
 図1は、本実施形態に係る情報処理システム1のハードウェア構成を示す概略図である。本実施形態に係る情報処理システム1は、CPU(Central Processing Unit)11、ホスト側RAM(Random Access Memory)12a、FPGA側RAM12b、ROM(Read Only Memory)13、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14、NIC(Network Interface Card)等の通信ユニット15、FPGA(Field-Programmable Gate Array)16、等を備えるコンピューターである。
 FPGA16は、動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスである。また、FPGA16には、当該FPGA16の温度/電流をモニタするための温度・電流センサ17が設けられている。
 本実施形態に係る情報処理システム1は、CPU11を搭載するホストマシン10からアクセラレータとしてFPGA16を使用するシステムである。情報処理システム1は、例えば、情報処理システム1に接続された外部カメラ(図示は省略する)から入力される画像を処理する畳み込みニューラルネットワーク(CNN)処理システムとして用いることができる。但し、本実施形態に開示された情報処理システム1は、様々な情報処理に用いることが可能であり、その用途は、CNNに限定されない。
 図2は、本実施形態に係る情報処理システム1の機能構成の概略を示す図である。情報処理システム1は、記憶装置14に記録されているプログラムが、RAM12a及び12bに読み出され、CPU11及び/又はFPGA16によって実行されて、サーバー50に備えられた各ハードウェアが制御されることで、FPGA処理実行部21、比較部22、変更依頼部23、依頼受領部24、周波数変更部25、周波数記憶部26、及び起動時周波数設定部27を備える情報処理システムとして機能する。なお、本実施形態及び後述する他の実施形態では、情報処理システム1の備える各機能は、汎用プロセッサであるCPU11及び/又はFPGA16によって実行されるが、これらの機能の一部又は全部は、1又は複数の専用プロセッサによって実行されてもよい。
 FPGA処理実行部21は、外部(本実施形態では、CPU11)からの要求を受けて対応する処理(以下、「FPGA処理」と称する)の実行を開始し、外部への応答の出力をもって当該処理を完了する。
 比較部22は、当該FPGA16の現在温度と所定の温度範囲とを比較する。なお、本実施形態では、上の閾値と下の閾値とを用いて温度範囲を設定しているが、温度範囲の設定方法は本実施形態における例示に限定されない。例えば、閾値は上の閾値のみであってもよい。なお、本実施形態では、現在温度と所定の温度範囲とを比較することで、動作周波数の変更要否を判断することとしているが、動作周波数の変更要否を判断するための指標とされるセンサ出力は、温度に限定されない。例えば、温度・電流センサ17から得られた現在電流と所定の電流範囲とを比較することで、動作周波数の変更要否を判断することとしてもよい。消費電力と温度とは、一般的に、温度にほぼ比例して消費電力が増える関係にあるため、現在電流に基づいて、FPGA16の現在の状況が動作周波数の変更を要する値であるか否かを間接的に知ることが出来る。
 変更依頼部23は、現在温度が温度範囲を外れている場合に、FPGA16に関連づけられたデバイスキュー(周波数変更依頼キュー)に変更依頼をエンキューすることで、周波数変更依頼を行う。
 依頼受領部24は、周波数変更依頼キューから変更依頼をデキューすることで、変更依頼部23によってエンキューされた周波数変更依頼を受領する。
 周波数変更部25は、依頼受領部24が周波数変更依頼を受領した(現在温度が温度範囲を外れている場合)場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴うFPGA16の動作周波数変更を行う。この際、周波数変更部25は、FPGA処理実行部21による応答出力の後、且つFPGA処理実行部21による実行開始の前であって、外部要求に対応する処理が実行されていないタイミングで、論理回路変更及びリコンフィグの少なくとも何れかを伴う当該FPGA16の動作周波数変更を行う。
 周波数記憶部26は、変更後の動作周波数を、記憶装置14のような不揮発性の記憶領域に設けられたバッファを用いて複数回分記憶する。動作周波数が、不揮発性の記憶領域に保存されることで、装置の電源OFF/ONを挟んだ場合であっても、過去の動作周波数(統計情報)を活用することができる。
 図3は、本実施形態に係る周波数記憶部26(周波数記憶バッファ)の概要を示す図である。本実施形態に係る周波数記憶バッファは、所謂リングバッファであり、所定回数分の動作周波数を記録可能な領域と、最新の記録位置を示すポインタ(bottom)とを有する。本実施形態では、動作周波数は、レベル1、レベル2、レベル3・・・のように段階的に定義され、設定・保存される。但し、動作周波数の保存方法は、本実施形態に開示された例に限定されない。バッファはリングバッファ以外の形式を採用可能であるし、動作周波数は、揮発性の記憶領域に記録されてもよい。
 起動時周波数設定部27は、周波数記憶部26によって記憶された複数回分の動作周波数の相加平均を、当該FPGA16の起動時の動作周波数に決定し、決定された動作周波数を当該FPGA16の起動時に参照される領域に設定する。なお、本実施形態では、起動時の動作周波数を、周波数記憶バッファの算術平均(相加平均)値に設定することとしているが、起動時の動作周波数の算出には、移動平均,最頻値,中央値等、その他の統計手法が用いられてもよい。
 <処理の流れ>
 次に、本実施形態に係る情報処理システム1によって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容及び処理順序は、本開示を実施するための一例である。具体的な処理内容及び処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
 図4は、本実施形態に係る動作周波数制御処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、FPGA16の起動時に、FPGA16毎に実行開始される。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 ステップS101及びステップS102では、起動時の動作周波数が設定され、モニタ用のスレッドが起動される。起動時周波数設定部27は、周波数記憶バッファに記憶されている動作周波数(例えば、動作周波数のレベル)を読み出し、読み出された複数の動作周波数に基づいて算出された平均値を、FPGA16の起動時の動作周波数として設定する(ステップS101)。また、FPGA16は、温度・電流センサ17からの出力をモニタするためのスレッドを起動する(ステップS102)。起動されたモニタ用スレッドによるモニタリング処理の詳細は、図5及び図6のフローチャートを参照して後述する。その後、処理はステップS103へ進む。
 ステップS103では、外部からの要求を受けて、対応するFPGA処理を実行する。FPGA処理実行部21は、外部(本実施形態では、ホストマシン10)からの要求を受けて、対応するFPGA処理を実行し、実行結果を要求元(本実施形態では、ホストマシン10)に対して応答する。また、FPGA処理のための入力はRAM12a及び12b等から得られ、FPGA処理の出力はRAM12a及び12b等に出力される。ここで実行されるFPGA処理は、例えば、CNNのための演算等であるが、FPGA処理の内容は、ホストマシン10がFPGA16に要求して実行させたい処理であればよく、本開示の例示に限定されない。その後、処理はステップS104へ進む。
 ステップS104及びステップS105では、周波数変更依頼がある場合に、周波数変更依頼のデキュー及び動作周波数変更処理が行われる。依頼受領部24は、自デバイスであるFPGA16に関連づけられたデバイスキュー(周波数変更依頼キュー)を参照し、周波数変更依頼の有無を判定する(ステップS104)。判定の結果、自デバイスの周波数変更依頼キューに周波数変更依頼があった場合、依頼受領部24は、その周波数変更依頼をデキューする。そして、周波数変更部25は、当該FPGA16の動作周波数が、周波数変更依頼に設定されている次回動作周波数next_freqとなるように、動作周波数変更処理を実行する(ステップS105)。動作周波数変更処理の詳細は、図7のフローチャートを参照して後述する。その後、処理はステップS106へ進む。
 ステップS106及びステップS107では、終了処理が実行される。FPGA16は、所定の終了条件に従って、ホストマシン10による当該FPGA16の利用が終了したか否か(例えば、当該FPGA16が担当しているCNNの推論処理が終了したか否か)を判定する(ステップS106)。終了条件が満たされない場合、処理はステップS103へ戻る。即ち、ステップS103からステップS106の処理は、終了条件が満たされるまで繰り返し実行される。一方、終了条件が満たされた場合、FPGA16は、ステップS102で起動されたモニタ用スレッド(図5及び図6のフローチャートに示されたモニタリング処理)を終了する(ステップS107)。その後、本フローチャートに示された処理は終了する。
 図5及び図6は、本実施形態に係るモニタリング処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図4を参照して説明した動作周波数制御処理のステップS102で起動されたモニタ用スレッドによって実行される。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 ステップS201からステップS205では、FPGA16の現在温度が取得され、所定の温度範囲と比較される。比較部22は、FPGA16に設けられた温度・電流センサ17から、温度/電流レジスタ値(モニタ値)を取得する(ステップS201)。そして、比較部22は、取得されたFPGA16の現在温度を、FPGA16が正常に/効率良く動作することが可能な範囲として設定された所定の温度範囲(上の閾値及び下の閾値からなる)と比較する(ステップS202/ステップS204)。比較の結果、FPGA16の現在温度が所定の温度範囲を外れていると判定された場合、FPGA16は、FPGA16の温度を所定の温度範囲内に戻せるような、次回動作周波数next_freqを設定する(ステップS203/ステップS205)。
 具体的には、現在温度が上の閾値を上回っている場合、FPGA16は、次回動作周波数next_freqに、現在動作周波数temp_freqよりも1段階下の動作周波数を設定し(動作周波数を下げる)、現在温度が下の閾値を下回っている場合、FPGA16は、次回動作周波数next_freqに、現在動作周波数temp_freqよりも1段階上の動作周波数を設定する(動作周波数を上げる)。
 なお、本実施形態では、動作周波数を1段階ずつ変更する例について説明しているが、動作周波数の変更幅は任意に設定されてもよい。例えば、FPGA16は、前回のサンプリングで温度・電流センサ17から取得された温度と今回のサンプリングで温度・電流センサ17から取得された温度との差分(即ち、現在温度の変化速度)に応じて、動作周波数の変更幅を設定してもよい。より具体的には、差分が摂氏3~5度の場合は動作周波数を1段階変更し、差分が摂氏5~8度の場合は動作周波数を2段階変更することとしてもよい。また、例えば、FPGA16は、今回のサンプリングで温度・電流センサ17から取得された温度と閾値の差分(即ち、現在温度が所定の温度範囲から外れた量)に応じて、動作周波数の変更幅を設定してもよい。その後、処理はステップS206へ進む。
 ステップS206からステップS209では、動作周波数の上限及び下限が確認される。FPGA16は、次回動作周波数next_freqと、当該FPGA16に設定可能な動作周波数の上限FREQ_MAX及び下限FREQ_MINを比較する(ステップS206/ステップS208)。そして、FPGA16は、次回動作周波数next_freqが上限FREQ_MAXを上回っている場合には、次回動作周波数next_freqに上限FREQ_MAXを設定し、次回動作周波数next_freqが下限FREQ_MINを下回っている場合には、次回動作周波数next_freqに下限FREQ_MINを設定する。その後、処理はステップS210へ進む。
 ステップS210からステップS212では、必要に応じて動作周波数の変更依頼が行われる。変更依頼部23は、ステップS209までの処理で設定された次回動作周波数next_freqと、当該FPGA16が現在動作している現在動作周波数temp_freqとを比較する(ステップS210)。比較の結果、次回動作周波数next_freqと現在動作周波数temp_freqとが異なる場合には、動作周波数の変更が必要であるため、変更依頼部23は、自デバイスの周波数変更依頼キューに、周波数変更依頼をエンキューする(ステップS211)。更に、変更依頼部23は、現在動作周波数temp_freqの値を、次回動作周波数next_freqの値で更新する(ステップS212)。その後、処理はステップS213へ進む。
 ステップS213からステップS215では、変更後の動作周波数が記憶される。周波数記憶部26は、周波数記憶バッファのbottomに、現在動作周波数temp_freqの値を記録し(ステップS213)、周波数記憶バッファのbottomを更新(+1)する(ステップS214)。そして、FPGA16は、次の温度/電流モニタのタイミングまで、所定の時間MONITOR_DELAY_SECの経過を待つ(ステップS215)。
 なお、本実施形態では、温度/電流モニタのサンプリング間隔が固定値(MONITOR_DELAY_SEC)である例について説明したが、温度/電流モニタのサンプリング間隔は本実施形態で説明した例に限定されない。例えば、周波数変更依頼がない場合(即ち、ステップS210において次回動作周波数next_freqと現在動作周波数temp_freqとが等しいと判定される場合)、そのように判定される毎に、サンプリング間隔を2倍,4倍・・・等のように延ばしてもよい。
 ステップS215の処理が終わると、処理はステップS201へ戻る。即ち、本フローチャートに示された処理は、FPGA16の起動中、繰り返し実行される。
 図7は、本実施形態に係る動作周波数変更処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図4を参照して説明した動作周波数制御処理において、自デバイスの周波数変更依頼キューに周波数変更依頼があった場合に実行されるステップS105の処理に相当する。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 はじめに、周波数変更部25は、周波数変更依頼キューからデキューされた周波数変更依頼に従って、次回動作周波数next_freqの値で、当該FPGA16のHWレジスタ設定を実行する(ステップS301)。そして、周波数変更部25は、FPGAリコンフィグを起動することで、当該FPGA16の動作周波数を、HWレジスタに設定された次回動作周波数next_freqとする(ステップS302)。なお、この処理は、FPGA16の論理回路変更を伴ってもよい。その後、周波数変更部25は、FPGAリコンフィグの完了を確認するまで待機し(ステップS303)、FPGAリコンフィグの完了が確認されると、本フローチャートに示された処理は終了する。
 <効果>
 上記説明した実施形態によれば、起動時のFPGA動作周波数(初期値)を、固定値(例えば、最高速)ではなく、過去の統計情報(周波数記憶バッファに記憶されている動作周波数)に基づいて決定された動作周波数とすることで、FPGAリコンフィグの回数を抑制することが出来る。
 更に、上記説明した実施形態によれば、FPGAリコンフィグを伴う動作周波数変更処理が、FPGA処理の隙間(ステップS103の外)で実施されるため、仕掛かり中のFPGA処理を破棄することなく動作周波数の変更を行うことが出来る。
 [第二の実施形態]
 本開示に係る情報処理システムは、複数のFPGAを備えることで冗長化されてもよい。以下、複数のFPGAを備えることで冗長化された第二の実施形態について、主として第一の実施形態との相違点を説明する。
 図8は、本実施形態に係る情報処理システム1bのハードウェア構成を示す概略図である。本実施形態に係る情報処理システム1bは、CPU11、ホスト側RAM12a、FPGA側RAM12b、ROM13、記憶装置14、通信ユニット15、FPGA16a及び16b、等を備えるコンピューターである。また、FPGA16a及び16bには、夫々、温度/電流をモニタするための温度・電流センサ17a及び17bが設けられている。なお、以下の説明において、FPGA16a及び16bの何れかを指す場合には、単にFPGA16と記載する。
 本実施形態に係る情報処理システム1bは、CPU11を搭載するホストマシン10からアクセラレータとして複数のFPGA16a及び16bを使用するシステムであり、その用途も第一の実施形態と同様である。但し、本実施形態に係る情報処理システム1bは、夫々専用のパスを介してホストマシン10に接続された複数のFPGA16a及び16bによって冗長化されている点において、第一の実施形態と異なる。また、本実施形態に係る情報処理システム1bでは、以下に説明する処理の結果周波数が安定した場合に、FPGA16aとFPGA16bを同時に動作させて同一タスクを並列処理し、FPGAスループットを大きくすることが可能である。
 なお、本実施形態では、物理的に別個のチップとして複数のFPGA16a及び16bが設けられるが、複数のFPGA16は、単一のチップ内に構成された複数の論理デバイス(論理回路)として構成されてもよい。
 図9は、本実施形態に係る情報処理システム1bの機能構成の概略を示す図である。情報処理システム1bは、記憶装置14に記録されているプログラムが、RAM12a及び12bに読み出され、CPU11及び/又はFPGA16a及び16bによって実行されて、サーバー50に備えられた各ハードウェアが制御されることで、比較部22、変更依頼部23、依頼受領部24、周波数変更部25、起動時周波数設定部27、依頼確認部28、指示発行部29、完了通知部30、及び完了通知受付部31を備える情報処理システムとして機能する。
 本実施形態において、依頼確認部28、指示発行部29、及び完了通知受付部31はCPU11によって実行され、FPGA処理実行部21、比較部22、変更依頼部23、依頼受領部24、周波数変更部25、起動時周波数設定部27、及び完了通知部30はFPGA16a及び16bの各々によって実行されるが、各機能部を実行する主体は、本実施形態における例示に限定されない。
 図10は、本実施形態に係る情報処理システム1bに備えられる、周波数変更依頼のためのキューを示す図である。FPGA側RAM12bには、夫々が複数のFPGA16に対応付けられた複数のデバイスキュー(周波数変更依頼キュー)41a及び41b、マスターキュー42、及び完了キュー43が設けられている。ここで、デバイスキュー41aはFPGA16aに、デバイスキュー41bはFPGA16bに、関連づけられている。本実施形態では、後述するように、動作周波数の変更依頼ははじめにマスターキュー42にエンキューされ、その後、対応するデバイスキュー41a又は41bにエンキューされる。
 変更依頼部23は、現在温度が温度範囲を外れている場合に、マスターキュー42に変更依頼をエンキューすることで、ホストマシン10に対して周波数変更依頼を行う。
 依頼確認部28は、マスターキュー42から変更依頼をデキューすることで、複数のFPGA16a及び16bの夫々からの周波数変更依頼を確認する。
 指示発行部29は、マスターキュー42からデキューされた変更依頼に従って、対応するデバイスキュー41a又は41bに周波数変更依頼をエンキューすることで、複数のFPGA16a及び16bのうち、変更依頼のあったFPGA16に周波数変更依頼を発行する。この際、指示発行部29は、先に何れかのデバイスキュー41a又は41bに周波数変更依頼をエンキューした場合、この周波数変更依頼に対応する完了通知を完了通知部30が受け取るまでは何れのデバイスキュー41a及び41bにも新たな周波数変更依頼をエンキューせず、対応する完了通知を完了通知部30が受け取った後に、新たな周波数変更依頼をエンキューすることで、複数のFPGA16a及び16bが同時に論理回路変更又はリコンフィグ状態とならないように排他制御する。
 依頼受領部24は、対応するデバイスキュー41a又は41bから周波数変更依頼をデキューすることで、ホストマシン10によって発行された周波数変更依頼を受領する。
 周波数変更部25は、ホストマシン10から周波数変更依頼を受領した場合に、当該FPGA16の動作周波数変更を行う。
 完了通知部30は、完了通知完了キュー43に完了通知をエンキューすることで、周波数変更依頼に応じた動作周波数の変更が完了したことを通知する。
 完了通知受付部31は、完了キュー43から完了通知をデキューすることで、完了通知を受け取る。
 <処理の流れ>
 次に、本実施形態に係る情報処理システム1bによって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容及び処理順序は、本開示を実施するための一例である。具体的な処理内容及び処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
 図11は、本実施形態に係る動作周波数制御処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、FPGA16a及び16bの起動時に、FPGA毎に実行開始される。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 ステップS401では、起動時の動作周波数が設定される。起動時周波数設定部27は、FPGA16の起動時の動作周波数として、当該FPGA16で設定可能な最高値を設定する。但し、起動時周波数設定部27は、その他の値を起動時周波数として設定してもよい。例えば、起動時周波数設定部27は、周波数記憶バッファに記憶されている動作周波数の平均値を、FPGA16の起動時の動作周波数として設定してもよい(第一の実施形態を参照)。その後、処理はステップS402へ進む。
 ステップS402及びステップS403の処理の内容は、図4を参照して説明した第一の実施形態の動作周波数制御処理のステップS102及びステップS103の処理の内容と概略同様であるため、説明を省略する。
 ステップS404及びステップS405では、周波数変更依頼がある場合に、周波数変更依頼のデキュー及び動作周波数変更処理が行われる。依頼受領部24は、自デバイスであるFPGA16に関連づけられたデバイスキュー41a又は41b(本処理の実行主体がFPGA16aであればデバイスキュー41a、FPGA16bであればデバイスキュー41b)を参照し、周波数変更依頼の有無を判定する(ステップS404)。
 判定の結果、自デバイスのデバイスキューに周波数変更依頼があった場合、依頼受領部24は、その周波数変更依頼をデキューする。そして、周波数変更部25は、当該FPGA16の動作周波数が、周波数変更依頼に設定されている次回動作周波数next_freqとなるように、動作周波数変更処理を実行する(ステップS405)。動作周波数変更処理の詳細は、図14のフローチャートを参照して後述する。その後、処理はステップS406へ進む。
 ステップS406及びステップS407の処理の内容は、図4を参照して説明した第一の実施形態の動作周波数制御処理のステップS106及びステップS107の処理の内容と概略同様であるため、説明を省略する。
 図12及び図13は、本実施形態に係るモニタリング処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図11を参照して説明した動作周波数制御処理のステップS402で起動されたモニタ用スレッドによって実行される。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 ステップS501からステップS509の処理の内容は、図5及び図6を参照して説明した第一の実施形態のモニタリング処理のステップS201からステップS209の処理の内容と概略同様であるため、説明を省略する。
 ステップS510からステップS513では、必要に応じて動作周波数の変更依頼が行われる。変更依頼部23は、ステップS509までの処理で設定された次回動作周波数next_freqと、当該FPGA16が現在動作している現在動作周波数temp_freqとを比較する(ステップS510)。比較の結果、次回動作周波数next_freqと現在動作周波数temp_freqとが異なる場合には、動作周波数の変更が必要であるため、変更依頼部23は、マスターキュー42に、周波数変更依頼をエンキューする(ステップS511)。更に、変更依頼部23は、現在動作周波数temp_freqの値を、次回動作周波数next_freqの値で更新する(ステップS512)。
 なお、第二の実施形態では、第一の実施形態における、周波数記憶バッファへの動作周波数の記録処理が省略されている。但し、ステップS401で説明したように、動作周波数の平均値をFPGA16の起動時の動作周波数として設定するために、第一の実施形態と同様の記録処理が採用されてもよい。
 そして、FPGA16は、次の温度/電流モニタのタイミングまで、所定の時間MONITOR_DELAY_SECの経過を待つ(ステップS513)。なお、温度/電流モニタのサンプリング間隔が固定値に限定されないことは、第一の実施形態と同様である。その後、処理はステップS501へ戻る。即ち、本フローチャートに示された処理は、FPGA16の起動中、繰り返し実行される。
 図14は、本実施形態に係る動作周波数変更処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図11を参照して説明した動作周波数制御処理において、自デバイスのデバイスキューに周波数変更依頼があった場合に実行されるステップS405の処理に相当する。なお、ここでは、本フローチャートに示された処理の実行主体をFPGA16として説明するが、動作周波数制御処理の実行主体は、FPGA16以外のプロセッサ(例えば、ホストマシン10のCPU11)であってもよい。
 ステップS601からステップS603の処理の内容は、図7を参照して説明した第一の実施形態のモニタリング処理のステップS301からステップS303の処理の内容と概略同様であるため、説明を省略する。その後、処理はステップS604へ進む。
 ステップS604では、完了通知が行われる。完了通知部30は、FPGAリコンフィグの完了が確認されると、完了通知を完了通知完了キュー43にエンキューすることで、周波数変更依頼に応じた動作周波数の変更が完了したことを通知する。その後、本フローチャートに示された処理は終了する。
 図15は、本実施形態に係る排他処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、情報処理システム1bの起動中に繰り返し実行される。なお、ここでは、本フローチャートに示された処理の実行主体をホストマシン10のCPU11として説明するが、動作周波数制御処理の実行主体は、その他のプロセッサであってもよい。
 ステップS701及びステップS702では、マスターキュー42からデバイスキュー41a又は41bへの周波数変更依頼の繋ぎかえが行われる。依頼確認部28は、マスターキュー42から変更依頼をデキューすることで、複数のFPGA16a及び16bの夫々からの周波数変更依頼を確認する(ステップS701)。ここでデキューされる変更依頼は、複数のFPGA16a及び16bの何れかが、モニタリング処理のステップS511でエンキューしたものである。
 そして、指示発行部29は、マスターキュー42からデキューされた変更依頼に従って、対応するデバイスキュー41a又は41bに周波数変更依頼をエンキューすることで、複数のFPGA16a及び16bのうち、変更依頼のあったFPGA16に周波数変更依頼を発行する(ステップS702)。また、ホストマシン10は、ここでマスターキュー42からデバイスキュー41a又は41bへの繋ぎかえを行った変更依頼に係るキューIDを記憶する(ステップS703)。その後、処理はステップS704へ進む。
 ステップS704では、動作周波数変更処理の完了が確認される。完了通知受付部31は、完了キュー43から完了通知をデキューし、完了通知を受け取る(ステップS704)。ここでは、動作周波数変更処理の完了を確認するため、完了通知のデキューに成功するまで、完了キュー43は繰り返し確認される。そして、完了通知受付部31は、完了通知からキューIDを読み出し、ステップS703で記憶したキューIDと比較することで、ステップS703で発行した周波数変更依頼に対応する動作周波数変更処理が、対象のFPGA16で完了したことを確認する(ステップS705)。
 比較の結果、完了通知から読み出されたキューIDとステップS703で記憶したキューIDとが一致する場合、処理はステップS701へ戻る。一方、比較の結果、キューIDが一致しない場合、ホストマシン10は、エラー通知を発行し、本フローチャートに示された処理を終了する。
 <効果>
 上記説明した処理によれば、指示発行部29が何れかのFPGA16に周波数変更依頼を行った場合、当該依頼に係る動作周波数変更処理の終了が確認されるまで、他のFPGA16への周波数変更依頼は発行されないため、複数のFPGA16a及び16bが同時に動作周波数変更処理を行うことを回避し、処理の中断を防ぐことができる。
   1 情報処理システム

Claims (19)

  1.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムであって、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、
     変更後の動作周波数を複数回分記憶する周波数記憶手段と、
     前記記憶された動作周波数に基づいて、該デバイスの起動時の動作周波数を決定し、決定された動作周波数を該デバイスの起動時に参照される領域に設定する起動時周波数設定手段と、
     を備える情報処理システム。
  2.  前記起動時周波数設定手段は、前記周波数記憶手段によって記憶された複数回分の動作周波数の相加平均、移動平均、最頻値及び中央値の何れかを、該デバイスの起動時の動作周波数に決定する、
     請求項1に記載の情報処理システム。
  3.  前記周波数記憶手段は、前記複数回分の動作周波数を、リングバッファを用いて記憶する、
     請求項1又は2に記載の情報処理システム。
  4.  前記周波数記憶手段は、前記複数回分の動作周波数を、不揮発性の記憶領域に記憶する、
     請求項1から3の何れか一項に記載の情報処理システム。
  5.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムであって、
     外部からの要求を受けて対応する処理の実行を開始し、外部への応答の出力をもって該処理を完了するデバイス処理実行手段と、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記デバイス処理実行手段による応答出力の後、且つ前記デバイス処理実行手段による実行開始の前であって、前記外部要求に対応する処理が実行されていないタイミングで、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、
     を備える情報処理システム。
  6.  前記周波数変更手段は、前記現在温度又は現在電流の変化速度、又は現在温度又は現在電流と前記温度範囲又は電流範囲との差分に応じて、異なる変更幅で前記動作周波数変更を行う、
     請求項5に記載の情報処理システム。
  7.  前記比較手段は、比較を実行する間隔を、現在温度又は現在電流と前記温度範囲又は電流範囲との差分、又は現在温度又は現在電流が前記温度範囲又は電流範囲内であり続ける時間の長さに応じて、変更する、
     請求項5又は6に記載の情報処理システム。
  8.  周波数変更依頼キューを有する記憶装置と、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記周波数変更依頼キューに変更依頼をエンキューすることで、周波数変更依頼を行う変更依頼手段と、
     前記周波数変更依頼キューから前記変更依頼をデキューすることで、周波数変更依頼を受領する依頼受領手段と、を更に備え、
     前記周波数変更手段は、前記依頼受領手段が前記周波数変更依頼を受領した場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、
     請求項5から7の何れか一項に記載の情報処理システム。
  9.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となる複数のデバイスと、管理装置と、を備える情報処理システムであって、
     前記複数のデバイスの夫々は、
      該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較手段と、
      前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記管理装置に対して周波数変更依頼を行う変更依頼手段と、
      前記管理装置によって発行された周波数変更依頼を受領する依頼受領手段と、
      前記管理装置から前記周波数変更依頼を受領した場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更手段と、を備え、
     前記管理装置は、
      前記複数のデバイスの夫々から前記周波数変更依頼を確認する依頼確認手段と、
      前記変更依頼に従って、前記複数のデバイスが同時に論理回路変更又はリコンフィグ状態とならないように、前記複数のデバイスのうち、前記変更依頼のあったデバイスに周波数変更依頼を発行する指示発行手段と、を備える、
     情報処理システム。
  10.  夫々が前記複数のデバイスに対応付けられた複数のデバイスキュー、及びマスターキューを有する記憶装置を更に備え、
     前記変更依頼手段は、前記マスターキューに前記変更依頼をエンキューすることで、前記管理装置に対して前記周波数変更依頼を行い、
     前記依頼確認手段は、前記マスターキューから前記変更依頼をデキューすることで、前記周波数変更依頼を確認し、
     前記指示発行手段は、対応するデバイスキューに前記周波数変更依頼をエンキューすることで、前記変更依頼のあったデバイスに周波数変更依頼を発行し、
     前記依頼受領手段は、対応するデバイスキューから前記周波数変更依頼をデキューすることで、前記周波数変更依頼を受領する、
     請求項9に記載の情報処理システム。
  11.  前記複数のデバイスの夫々は、前記周波数変更依頼に応じた動作周波数の変更が完了したことを通知する完了通知手段を更に備え、
     前記管理装置は、前記完了通知を受け取る完了通知受付手段を更に備え、
     前記指示発行手段は、先にエンキューされた周波数変更依頼に対応する前記完了通知を前記完了通知手段が受け取った後に、新たな周波数変更依頼をエンキューする、
     請求項10に記載の情報処理システム。
  12.  前記記憶装置は、完了キューを更に有し、
     前記完了通知手段は、前記完了通知前記完了キューにエンキューすることで、前記周波数変更依頼に応じた動作周波数の変更が完了したことを通知し、
     前記完了通知受付手段は、前記完了キューから前記完了通知をデキューすることで、前記完了通知を受け取る、
     請求項11に記載の情報処理システム。
  13.  前記複数のデバイスは、同一の物理デバイス内に構成された複数の論理デバイスである、
     請求項9から12の何れか一項に記載の情報処理システム。
  14.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムが、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、
     変更後の動作周波数を複数回分記憶する周波数記憶ステップと、
     前記記憶された動作周波数に基づいて、該デバイスの起動時の動作周波数を決定し、決定された動作周波数を該デバイスの起動時に参照される領域に設定する起動時周波数設定ステップと、
     を実行する方法。
  15.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムが、
     外部からの要求を受けて対応する処理の実行を開始し、外部への応答の出力をもって該処理を完了するデバイス処理実行ステップと、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記デバイス処理実行ステップにおける応答出力の後、且つ前記デバイス処理実行ステップにおける実行開始の前であって、前記外部要求に対応する処理が実行されていないタイミングで、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、
     を実行する方法。
  16.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となる複数のデバイスと、管理装置と、を備える情報処理システムにおいて、
     前記複数のデバイスの夫々が、
      該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
      前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記管理装置に対して周波数変更依頼を行う変更依頼ステップと、
      前記管理装置によって発行された周波数変更依頼を受領する依頼受領ステップと、
      前記管理装置から前記周波数変更依頼を受領した場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、を実行し、
     前記管理装置が、
      前記複数のデバイスの夫々から前記周波数変更依頼を確認する依頼確認ステップと、
      前記変更依頼に従って、前記複数のデバイスが同時に論理回路変更又はリコンフィグ状態とならないように、前記複数のデバイスのうち、前記変更依頼のあったデバイスに周波数変更依頼を発行する指示発行ステップと、を実行する、
     方法。
  17.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムに、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、
     変更後の動作周波数を複数回分記憶する周波数記憶ステップと、
     前記記憶された動作周波数に基づいて、該デバイスの起動時の動作周波数を決定し、決定された動作周波数を該デバイスの起動時に参照される領域に設定する起動時周波数設定ステップと、
     を実行させるためのプログラム。
  18.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となるデバイスを備える情報処理システムに、
     外部からの要求を受けて対応する処理の実行を開始し、外部への応答の出力をもって該処理を完了するデバイス処理実行ステップと、
     該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
     前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記デバイス処理実行ステップにおける応答出力の後、且つ前記デバイス処理実行ステップにおける実行開始の前であって、前記外部要求に対応する処理が実行されていないタイミングで、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、
     を実行させるためのプログラム。
  19.  動作周波数を変更する際に論理回路変更及びリコンフィグの少なくとも何れかが必要となる複数のデバイスと、管理装置と、を備える情報処理システムにおいて、
     前記複数のデバイスの夫々に、
      該デバイスの現在温度又は現在電流と所定の温度範囲又は電流範囲とを比較する比較ステップと、
      前記現在温度又は現在電流が前記温度範囲又は電流範囲を外れている場合に、前記管理装置に対して周波数変更依頼を行う変更依頼ステップと、
      前記管理装置によって発行された周波数変更依頼を受領する依頼受領ステップと、
      前記管理装置から前記周波数変更依頼を受領した場合に、論理回路変更及びリコンフィグの少なくとも何れかを伴う該デバイスの動作周波数変更を行う、周波数変更ステップと、を実行させ、
     前記管理装置に、
      前記複数のデバイスの夫々から前記周波数変更依頼を確認する依頼確認ステップと、
      前記変更依頼に従って、前記複数のデバイスが同時に論理回路変更又はリコンフィグ状態とならないように、前記複数のデバイスのうち、前記変更依頼のあったデバイスに周波数変更依頼を発行する指示発行ステップと、
     を実行させるためのプログラム。
PCT/JP2018/034750 2018-09-20 2018-09-20 情報処理システム、方法及びプログラム WO2020059067A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/034750 WO2020059067A1 (ja) 2018-09-20 2018-09-20 情報処理システム、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/034750 WO2020059067A1 (ja) 2018-09-20 2018-09-20 情報処理システム、方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2020059067A1 true WO2020059067A1 (ja) 2020-03-26

Family

ID=69888556

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/034750 WO2020059067A1 (ja) 2018-09-20 2018-09-20 情報処理システム、方法及びプログラム

Country Status (1)

Country Link
WO (1) WO2020059067A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000089963A (ja) * 1998-09-11 2000-03-31 Canon Inc データ処理装置及びその処理方法
JP2000181566A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp マルチクロック並列処理装置
JP2004022724A (ja) * 2002-06-14 2004-01-22 Konica Minolta Holdings Inc 半導体集積回路装置、及び半導体集積回路の構成方法
JP2005293561A (ja) * 2004-03-09 2005-10-20 Seiko Epson Corp 情報処理システム、情報処理装置及び管理用サーバ、情報処理システム制御プログラム、情報処理装置制御プログラム及び管理用サーバ制御プログラム、並びに情報処理方法、情報処理システム制御方法、情報処理装置制御方法及び管理用サーバ制御方法
JP2008269302A (ja) * 2007-04-20 2008-11-06 Fuji Heavy Ind Ltd 処理装置
JP2008311928A (ja) * 2007-06-14 2008-12-25 Dainippon Screen Mfg Co Ltd 半導体集積回路装置の制御方法、半導体集積回路装置およびパターン描画装置
JP2013046068A (ja) * 2011-08-19 2013-03-04 Altera Corp フィールドプログラマブルゲートアレイの性能を向上させるための装置および関連方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000089963A (ja) * 1998-09-11 2000-03-31 Canon Inc データ処理装置及びその処理方法
JP2000181566A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp マルチクロック並列処理装置
JP2004022724A (ja) * 2002-06-14 2004-01-22 Konica Minolta Holdings Inc 半導体集積回路装置、及び半導体集積回路の構成方法
JP2005293561A (ja) * 2004-03-09 2005-10-20 Seiko Epson Corp 情報処理システム、情報処理装置及び管理用サーバ、情報処理システム制御プログラム、情報処理装置制御プログラム及び管理用サーバ制御プログラム、並びに情報処理方法、情報処理システム制御方法、情報処理装置制御方法及び管理用サーバ制御方法
JP2008269302A (ja) * 2007-04-20 2008-11-06 Fuji Heavy Ind Ltd 処理装置
JP2008311928A (ja) * 2007-06-14 2008-12-25 Dainippon Screen Mfg Co Ltd 半導体集積回路装置の制御方法、半導体集積回路装置およびパターン描画装置
JP2013046068A (ja) * 2011-08-19 2013-03-04 Altera Corp フィールドプログラマブルゲートアレイの性能を向上させるための装置および関連方法

Similar Documents

Publication Publication Date Title
US9021228B2 (en) Managing out-of-order memory command execution from multiple queues while maintaining data coherency
JP6961686B2 (ja) トリガ動作を用いたgpuリモート通信
WO2019237593A1 (zh) 任务处理方法、装置、计算机设备及存储介质
US8359367B2 (en) Network support for system initiated checkpoints
KR20180045103A (ko) 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US8850129B2 (en) Memory ordered store system in a multiprocessor computer system
US10896001B1 (en) Notifications in integrated circuits
US11809835B2 (en) System and method for efficient queue management
CN110716694A (zh) 用于存储管理的装置及系统
US10007638B2 (en) Asynchronous notification including parameter values in serial advanced technology attachment protocol
US8862840B2 (en) Distributed storage system, apparatus, and method for managing distributed storage in consideration of request pattern
JP6868087B2 (ja) 管理コントローラへの通信チャネルの方法及びシステム
US10216679B2 (en) Semiconductor device and control method thereof
US10877790B2 (en) Information processing apparatus, control method and storage medium
WO2017091963A1 (zh) 一种信息处理方法及装置
WO2020059067A1 (ja) 情報処理システム、方法及びプログラム
CN111414227B (zh) 一种读取镜像数据的方法、装置以及计算设备
US10324777B2 (en) Register-based communications interface
CN108781170B (zh) 一种配置装置及方法
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
JP2018160009A (ja) 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
US10956248B1 (en) Configurable reporting for device conditions
CN108874560B (zh) 进行通信的方法和通信设备
EP4260216A1 (en) Electronic device bios updates

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18933984

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP