WO2015173853A1 - 情報処理装置、その処理方法、及び入出力装置 - Google Patents

情報処理装置、その処理方法、及び入出力装置 Download PDF

Info

Publication number
WO2015173853A1
WO2015173853A1 PCT/JP2014/062550 JP2014062550W WO2015173853A1 WO 2015173853 A1 WO2015173853 A1 WO 2015173853A1 JP 2014062550 W JP2014062550 W JP 2014062550W WO 2015173853 A1 WO2015173853 A1 WO 2015173853A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
processor
processing
notification
completion
Prior art date
Application number
PCT/JP2014/062550
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 US15/124,883 priority Critical patent/US10481946B2/en
Priority to PCT/JP2014/062550 priority patent/WO2015173853A1/ja
Priority to JP2016518658A priority patent/JP6227767B2/ja
Publication of WO2015173853A1 publication Critical patent/WO2015173853A1/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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent

Definitions

  • the present invention relates to an information processing apparatus, and more particularly, to an input / output apparatus connected to a computer for preventing the number of times of transmission of an interrupt signal for notifying completion of execution of an input / output instruction from being excessive for the CPU.
  • I / O devices as a method of notifying completion of processing, an interrupt notification method in which the I / O device actively notifies the CPU, and the CPU monitors a specific area of the I / O device at regular time intervals.
  • a polling method is used.
  • the former does not consume CPU processing time when there is no input / output processing, and has the advantage that the time required for input / output can be shortened because the CPU performs the completion processing immediately after the input / output processing is completed.
  • the latter has the advantage that even if the number of inputs / outputs is large, the completion process can be performed with a constant load without interfering with other processes executed on the CPU.
  • an interrupt notification method is used that does not consume CPU processing time when there is no processing.
  • the interrupt notification method when the number of input / outputs increases, the frequency of interrupt notifications becomes excessive for the CPU, and the highest performance has reached its peak in devices with particularly high input / output performance. Therefore, when there is a possibility that the interrupt notification frequency is excessive, it has become necessary to suppress the frequency.
  • Patent Document 1 discloses that a restriction condition is imposed on the operation on the host side, and the transmission of an interrupt notification is delayed for a certain time when a specific event occurs.
  • the delay event is when the device receives a packet and when the CPU informs the device that the received packet has been processed.
  • the interrupt signal to be suppressed is an interrupt signal for requesting confirmation of completion of packet signal transmission.
  • Patent Document 1 no consideration is given to a problem when the CPU issues an input / output command to a device.
  • Interrupt notification is a technique that is generally used for an I / O device to request processing on demand from the CPU, but interrupt processing generates a load that cannot be ignored by the CPU.
  • the number of I / O commands that can be processed per unit time increases, and the number of interrupt notifications for notifying completion of I / O command execution has also increased accordingly. Has become so large that it has an impact on I / O performance.
  • An object of the present invention is to provide an information processing apparatus for reducing the number of interrupt notifications for notifying completion of execution of input / output instructions and reducing the load of interrupt processing.
  • the present invention relates to an information processing apparatus including a processor, a storage unit, and an input / output device that receives a processing instruction from the processor.
  • the information processing apparatus includes: Based on instructions from the processor, Check if the preceding process is complete when processing instructions from the processor, The input / output device is An interrupt notification transmitter for transmitting an interrupt signal as a notification of completion of processing to the processor; A standby unit for causing the processor to wait for a certain period of time to transmit a notification of processing completion; Triggered by detecting a processing start instruction from the processor, An extension for further extending the certain period of time waiting for transmission to the processor,
  • the information processing apparatus has a feature.
  • the figure which shows the schematic of the input / output device which concerns on 1st Example of this invention The figure which shows the outline of the input / output command storage area / input / output completion notification storage area on the main memory.
  • movement sequence of driver software The figure which shows the operation
  • the present invention stipulates that after the input / output command is issued to the driver software (201), the completion status of the preceding input / output command is confirmed. That is, the issuance timing of the input / output instruction is regarded as a polling timing for confirming the completion state of the preceding input / output instruction.
  • the input / output device sets a timer and waits for a predetermined time before sending an interrupt notification to the CPU. During this time, if a notification that the driver has issued the next input / output command arrives at the input / output device, the input / output processing unit that resets the timer and extends the waiting time by a predetermined time. Adding to the device.
  • the element number is indicated in parentheses after the word representing the element in the figure.
  • an alphabet is added after the element number.
  • the basic components constituting the present invention are a central processing unit (200), a main storage device (210), an input / output device (100), and a signal line and a data bus (240) for connecting them.
  • the input / output device (100) has registers (300, 301, 310, 311) having functions of storing data, detecting reading / writing, and notifying the outside.
  • the input / output device controller (110) instructs the timer counter (310) to start counting when it is necessary to issue an interrupt notification.
  • the timer counter (310) ignores the count start instruction from the input / output device control unit (110).
  • the timer counter (310) increments the counter value by one each time a clock signal transmitted from the timer clock generator (130) arrives at regular intervals.
  • the comparator (320) compares the values of the timer counter (310) and the timer threshold register (311) by the comparator (320), and if they match, the CPU (200) is sent to the interrupt notification transmission unit (120). To send an interrupt notification. At the same time, the value of the timer counter (310) is reset and the count addition is stopped.
  • the interrupt notification transmission unit (120) transmits an interrupt notification to the central processing unit (200) when receiving a transmission instruction.
  • the SQPI register is an abbreviation for submission, Queue, Producer, Index, and Register, and is a register for notifying the input / output device of the issue of an input / output command from the CPU.
  • addition of the timer counter (310) is not stopped by a signal output from the SQPI register (300) to the timer counter (310).
  • the above operation is the basic operation when the number of interrupt notifications is suppressed.
  • the above operation will be described in detail for each operation of each part.
  • the operation of the driver software (201) will be described with reference to FIGS.
  • the driver software (201) starts processing when an input / output processing request arrives from the OS and the control right of the CPU (200) is passed or when an interrupt notification arrives.
  • the numbers described at the beginning of the operation explanations below correspond to the numbers in the figure.
  • the operation in which the CPU (200) reads the driver software (201) stored in the main storage device (210) and executes the function of the driver software (201). Indicates.
  • An input / output processing request arrives from the OS, and the control authority of the CPU (200) is passed.
  • An input / output command (221) is created and written to a specific area (220) secured in the main memory (210).
  • step (1011) An interrupt notification arrives from the input / output device (100), and the CPU control right is passed from the OS to the driver software (201). Proceed to step (1011).
  • step (1011) The area (230) for storing the input / output completion notice secured on the main memory (210) is checked. (1012) If there is an unprocessed I / O completion notification (231) in the completion notification storage area (230) on the main memory (210), the process proceeds to step (1103). If there is no unprocessed I / O completion notification (231), the process proceeds to step (1020).
  • One unprocessed completion notification (231) stored in the input / output completion notification storage area (230) on the main memory (210) is read, and the completion processing is performed according to the OS-dependent method.
  • (1014) Write to the CQCI register (301) of the input / output device (100) to notify the input / output device (100) that the completion notification (231) has been processed. Proceed to step (1011).
  • the CQCI register is an abbreviation for Completion Queue Consumer Index register, and is a register for notifying the input / output device from the CPU that the completion notification from the input / output device for the input / output instruction has been processed.
  • (1020) The control right of the CPU (200) is returned to the OS.
  • the operation of the input / output device controller (110) will be described with reference to FIGS. (1100) Detects that the CPU (200) has written to the SQPI (300) register.
  • One input / output command (221) is read from the input / output command storage area (220) reserved in the main memory (210).
  • the input / output instruction (221) is processed. (1103) When the input / output processing is completed, the process proceeds to step (1104). If incomplete, repeat step (1103). (1104) Create an input / output completion notification (231). (1105) If the input / output completion notification storage area (230) is empty, the process proceeds to step (1106). If there is no space, go to step (1120).
  • the input / output completion notification (231) is written in the free area of the input / output completion notification storage area (230) secured in the main storage device (210).
  • (1107) Instruct the timer counter (310) to start counter addition.
  • (1108) The input / output process is completed. (1120) Wait until the completion notification storage area (230) is released. Proceed to step (1105).
  • (1130) It is detected that the CPU (200) has written to the CQCI register (301).
  • the area where the completion notification (231) processed by the CPU (200) is stored is released.
  • (1133) The timer counter (310) is reset and the addition stop is instructed. (1134)
  • the process of releasing the completion notification storage area (230) is terminated.
  • step (121) When the counter addition start signal arrives, the process proceeds to step (1202). If not, repeat step (1201).
  • step (1210) Add 1 to the timer counter (310). (1211) If the value of the timer counter (310) matches the threshold value register (311), the process proceeds to step (1212). If they do not match, go to step (1203). (1212) Send an interrupt notification signal to the CPU (200). (1213) The timer counter (310) is reset. Proceed to step (1201). (1214) Reset the timer counter. Proceed to step (1202).
  • the present embodiment it is possible to suppress the frequency of interrupt notification compared to the case where the completion of input / output processing is notified only by interrupt notification.
  • interrupt notification transmission is always delayed, and input / output processing can proceed without transmitting an interrupt notification. It becomes possible.
  • the input / output operation can be completed without performing interrupt processing.
  • the set value of the standby time affects the delay time of a single input / output process.
  • a significant effect can be obtained when the standby time is longer than the input / output process issue interval. If a short waiting time is set by setting a target when the issuance is frequent, deterioration of the delay time of the single input / output process can be minimized.
  • Fig. 6 shows a state where a plurality of issue queues (220) and completion queues (230) exist in the main storage device (210).
  • the issue queue and completion queue both have an invalid area and a valid area that are continuous in the logical number space, and their boundaries are indicated by PI (331) or CI (330).
  • PI 331
  • CI CI
  • the PI (331) of the issue queue (220) is stored in the SQPI (300) in the input / output device
  • the CI (331) of the completion queue (230) is stored in the CQCI (301) in the input / output device.
  • Other pointers are arranged at appropriate positions on the main storage device (210).
  • Which completion queue (230) receives the completion notification (231) corresponding to the input / output instruction (221) input to a certain issue queue (220) is determined from the driver software (201) to the input / output device (100). It is specified at the time of initialization of the input / output device (100), or specified by a management command when instructing the input / output device (100) to start the operation of the issue queue (220).
  • MSI Message Signaled Interrupts
  • MSI-X Message Signaled Interrupts
  • PCI Express is a trademark of the Peripheral Component Interconnect Special Interest Group (PCI-SIG)) extended.
  • MSI and MSI-X are mechanisms to notify the CPU (200) that an interrupt processing request has been generated by the I / O device (100) performing a write operation to a special memory address set by the CPU (200).
  • the CPU (200) can identify that the interrupt processing request is generated due to different factors. Since an MSI / MSI-X interrupt is simply a difference in the memory address of the write destination, even if the number of interrupt factors increases, the physical wiring does not increase.
  • the MSI number or MSI-X number used when the completion queue (230) requests interrupt processing is specified by the driver software (201) when the input / output device (100) is initialized, or the completion queue It is specified by the management command when instructing the input / output device (100) to start the operation of (230). Further, an MSI / MSI-X number register (303) for holding these pieces of information is arranged in the input / output device (100).
  • Figure 8 shows a schematic diagram of the input / output device (100) that handles multiple issue queues (220) and completion queues (230).
  • a timer counter (310a, 310b), a threshold register (311a, 311b), an MSI / MSI-X number register (303a, 303b), and a comparator (320a, 320b) are mounted for each completion queue.
  • the correspondence information between the issue queue (220) and the completion queue (230) is held in the issue / completion correspondence registers (302a, 302b), and based on this information, the timer counter (310) reset signal routing switch section (140) ) Sends a reset signal to the timer counter (310) of the appropriate completion queue.
  • the interrupt notification transmission unit (120) transmits an interrupt notification to the CPU (200) by performing a write operation to a special memory address calculated based on the specified interrupt number.
  • the behavior of the driver software (201) when there are a plurality of issue queues (220) and completion queues (220) will be described with reference to FIG.
  • This sequence includes some OS behavior.
  • An I / O processing request arrives from the OS, and the CPU control right is passed.
  • An input / output command (221) is created and written to a specific area (220) secured in the main memory (210).
  • (1002) Write to the SQPI register (300) to notify the input / output device (100) that a new instruction has been issued. Proceed to step (1011).
  • An interrupt notification arrives from the input / output device (100) to a specific MSI number or MSI-X number.
  • the OS calls the interrupt processing function (handler) corresponding to the MSI number or MSI-X specified in the interrupt notification. Proceed to step (1011). (1011) The area (230) for storing the input / output completion notice secured on the main memory (210) is checked. (1012) If there is an unprocessed completion notification (231) in the completion notification storage area (230) on the main memory (210), the process proceeds to step (1103). When there is no unprocessed completion notification (231), the process proceeds to step (1020).
  • An MSI number or MSI-X number is designated to the input / output device (100), and a management command for creating a completion queue (230) is sent to generate a completion queue (230).
  • the corresponding completion queue (230) number is designated for the input / output device, a management command for creating the issue queue (220) is sent, and the issue queue (220) is generated. Proceed to step (1043). (1020) The control right of the CPU (200) is returned to the OS.
  • the sequence of the input / output device controller (110) does not change from that in Fig. 4.
  • the timer counter (310) to be controlled in the procedure (1107) and the procedure (1133) is only the one associated with the completion queue (230) in which the input / output completion notification (231) is arranged. The point is different.
  • control unit (110) that executes a plurality of input / output processes may operate in parallel with the procedure of FIG. 4 for a plurality of issue queues (220).
  • the timer counter (310) to which the timer start signal or reset signal is sent only belongs to the completion queue (230) associated with the issue queue (220) It becomes.
  • FIG. 10 shows an operation sequence performed for each completion queue.
  • the operation of the completion queue is started upon completion of initialization or completion of execution of a command for creating a completion queue.
  • step (1201) When the counter addition start signal arrives, the process proceeds to step (1202). If not, repeat step (1201).
  • 1202) When a signal arrives from the clock generation unit (130), the process proceeds to step (1210). If not, go to step (1203).
  • step (123) When the counter addition stop signal arrives, the process proceeds to step (1213). If not, go to step (1230).
  • step (1210) Add 1 to the timer counter (310). (1211) If the value of the timer counter (310) matches the threshold value register (311), the process proceeds to step (1220). If they do not match, go to step (1203).
  • the timer counter (310) is reset. Proceed to step (1201). (1214) Reset the timer counter. Proceed to step (1202). (1220) The MSI number or MSI-X number is read from the MSI / MSI-X number register (303) and transmitted to the input / output device controller (110). (1221) The input / output device control unit (110) sends an interrupt notification to the CPU (200) using the transmitted MSI number or MSI-X number. Proceed to step (1213). (1230) If the counter reset signal has arrived, go to step (1214). If not, go to step (1202).
  • step (1301) If the value of the SQPI register (300) has changed, proceed to step (1302). If not, repeat step (1301).
  • step (1302) The number of the completion queue (230) associated with the updated issue queue (220) is read from the completion queue number register (302).
  • step (1303) A counter reset signal is sent to the timer counter (310) associated with the specified completion queue (230). Proceed to step (1301).
  • an SQPI register 300 and a CQCI register 301 are assigned to each of the two cores 200 constituting the central processing unit 200.
  • the issue queue is associated with the MSI number or the MSI-X number, in the case of multi-core, the I / O processing is concentrated in a specific completion queue, and the I / O processing bottle It is possible to prevent a neck from occurring.
  • the driver software (201) checks the status of a completion queue (230) and continuously processes the I / O completion notification (231) existing in the completion queue area (230)
  • the CQCI register (301) for notifying the input / output device that the CPU has processed the completion notification in the completion queue area can also be used to delay the timing of the interrupt notification.
  • FIG. 12 shows an outline of hardware that realizes this operation.
  • the operation flow of the driver software (201) and the input / output device controller is the same as in the second embodiment.
  • the sequence of FIG. 13 is added to the operation flow of the interrupt notification frequency suppression function.
  • FIG. 14 shows a flow of an operation sequence of timer counter reset when the CQCI register is updated in FIG. (1400) Operation of completion queue (230) started.
  • step (1402) If the value of the CQCI register (301) has changed, the process proceeds to step (1402). If not, repeat step (1401).
  • step (14012) A counter reset signal is sent to the timer counter (310) associated with the completion queue (230) corresponding to the CQCI register (301). Proceed to step (1401).
  • the CPU (200) not only reads one input / output completion notification (231) in one completion queue (230) but also sends another input / output completion notification to the completion queue (230). If it exists, the plurality of input / output completion notifications can be read out collectively, so the load on the CPU (200) can be reduced.
  • the behavior seen from the OS running on the CPU (200) is described.
  • the behavior of the input / output device (100) in which the present invention is implemented can be obtained from statistical information on the number of input / output processes per unit time and the number of interrupts provided by the OS.
  • Linux registered trademark or trademark of Linus Torvalds in the United States and other countries
  • Fig. 14 shows an example of statistical information visualized through procfs from the OS terminal screen. By referring to these pieces of information, it is possible to observe the operation of the present invention.
  • the interrupt count statistics display screen (400) from the left column, the interrupt number, the interrupt count for each processor, and the type of device that notifies the interrupt are shown.
  • the input / output processing count statistical value display screen (401) the device name, the number of read instructions, and the number of write instructions are shown from the left column.
  • the number of interrupts per unit time (401 in FIG. 14) is compared to the number of input / outputs per unit time (401 in FIG. 14), as in the conventional input / output device.
  • the amount of change in medium 400) is proportional.
  • the present invention Can be widely applied to the device.
  • I / O devices 110 I / O device controller 120 Interrupt notification transmitter 130 Timer clock generator 140 Routing switch 200 Central processing unit (CPU) 210 Main memory 240 Data bus for reading and writing to main storage 300 SQPI register 301 CQCI register 310 timer counter 311 Timer threshold register 320 comparator
  • CPU Central processing unit
  • Main memory 240 Data bus for reading and writing to main storage 300 SQPI register 301 CQCI register 310 timer counter 311 Timer threshold register 320 comparator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)

Abstract

 本発明は、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減する情報処理装置を提供する。 本発明では、ドライバに対して、入出力命令を発行した後に、必ず先行する入出力命令の完了状態を確認することを規定する。すなわち、入出力命令の発行タイミングを先行する入出力命令の完了状態を確認するためのポーリングタイミングと見なす。 入出力装置は割り込み通知をCPUに対して送信する前に、タイマーを設定してあらかじめ規定された時間だけ待機する。この間にドライバから次の入出力命令を発行したという通知が入出力装置に到着した場合、タイマーをリセットし、待機時間をあらかじめ規定された時間分だけ延長する、という動作を行う処理部を入出力装置に対して追加する。

Description

情報処理装置、その処理方法、及び入出力装置
 本発明は、情報処理装置に関し、特に、入出力命令の実行完了を知らせるための割り込み信号の送出回数がCPUに対して過大になることを防ぐためのコンピュータに接続する入出力装置に関する。
 一般的な入出力装置では、処理の完了を通知する方法として入出力装置がCPUに対して能動的に通知する割り込み通知方式と、CPUが一定の時間間隔で入出力装置の特定領域を監視するポーリング方式が使われる。
 前者は入出力処理がない場合にはCPUの処理時間を消費せず、入出力処理が完了してから直ちにCPUが完了処理を行うため、入出力にかかる時間が短くてすむ利点がある。
 一方で、後者は入出力回数が多い場合であってもCPU上で実行される他処理を邪魔せず、一定の負荷で完了処理を行うことができる利点がある。
 一般的なOSでは、複数のデバイスが同時に動作しているため、処理がない場合にはCPUの処理時間を消費しない割り込み通知方式が用いられている。しかし、割り込み通知方式は入出力回数が多くなると割り込み通知の頻度がCPUにとって過大となり、特に高い入出力性能を持つ装置では、最高性能が頭打ちになる原因となってきている。そのため、割り込み通知頻度が過大となる可能性がある場合には、頻度を抑制する必要が出てきた。
 特許文献1は、ホスト側の動作に制約条件をつけて、特定のイベント発生時に割り込み通知の送出を一定時間遅延させることを開示している。特許文献1では、遅延契機のイベントが、デバイスによるパケット受信時と、CPUが受信パケットを処理したことをデバイスに伝えるときである。また、特許文献1では、抑制される割り込み信号は、パケット信号の送信完了確認要求のための割り込み信号である。
US2011/0093637
 特許文献1では、CPUが入出力命令をデバイスに発行する際の課題については、何ら配慮されていない。
 割り込み通知は、入出力装置がCPUに対してオンデマンドで処理を要求するために一般的に用いられる手法であるが、割り込み処理はCPUにとって無視できない負荷を発生させる。入出力装置の性能が高くなるにつれて、単位時間あたりに処理可能な入出力命令数が多くなり、それに伴って入出力命令の実行完了を知らせるための割り込み通知回数も増加してきたため、割り込み処理の負荷が入出力性能に影響を与えるほど大きくなってきている。
 本発明の目的は、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減するための情報処理装置を提供することにある。
 本発明は、プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置において、
 前記情報処理装置は、
 前記プロセッサーからの指示に基づいて、
  前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
  前記入出力装置は、
 前記プロセッサーへの処理完了の通知としての割り込み信号を送信する割り込み通知送信部と、
 前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、
 前記プロセッサーからの処理開始指示を検知したことを契機に、
 前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、
有する情報処理装置に特徴がある。
 本発明によれば、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減することができる。
本願発明の第一の実施例に係る入出力装置の概略図を示す図。 主記憶装置上の入出力命令格納領域・入出力完了通知格納領域の概略を示す図。 ドライバソフトウェアの動作シーケンスを示す図。 入出力装置制御部の動作シーケンスを示す図。 タイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンスを示す図。 複数の入出力命令・完了通知格納領域が主記憶装置へ配置されている状態を示す図。 発行キュー・完了キューの構造の概略を示す図。 複数の発行キュー・完了キューを扱う本願発明の第二の実施例に係る入出力装置の概略を示す図。 複数キューが存在する場合のドライバソフトウェアの動作シーケンスを示す図。 複数キューが存在する場合のタイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンス(1)を示す図。 複数キューが存在する場合のタイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンス(2)を示す図。 完了通知の処理完了信号を割り込み通知頻度の抑制に用いた本願発明の第三の実施例に係る入出力装置の概略を示す図。 完了通知の処理完了信号を、割り込み通知頻度の抑制に用いた時の第二の実施例に対する追加動作シーケンスを示す図。 OSの統計情報表示画面の例を示す図。
 以下、図面を参照していくつかの実施例を説明する。
 本発明では、ドライバソフトウェア(201)に対して、入出力命令を発行した後に、必ず先行する入出力命令の完了状態を確認することを規定する。すなわち、入出力命令の発行タイミングを先行する入出力命令の完了状態を確認するためのポーリングタイミングと見なす。
 入出力装置は割り込み通知をCPUに対して送信する前に、タイマーを設定してあらかじめ規定された時間だけ待機する。この間にドライバから次の入出力命令を発行したという通知が入出力装置に到着した場合、タイマーをリセットし、待機時間をあらかじめ規定された時間分だけ延長する、という動作を行う処理部を入出力装置に対して追加している。 以下の文面では図中の要素を表す単語の後に括弧書きで要素番号を示す。また、同じ要素が複数存在し、それらを区別する必要がある場合には要素番号の後にアルファベットを追加して表記する。
 本発明を構成する基本構成要素は、中央演算装置(200)、主記憶装置(210)、入出力装置(100)およびそれらを接続する信号線とデータバス(240)である。入出力装置(100)にはデータを記憶し、読み書きされたことを検出して外部に通知する機能を持つレジスタ(300,301,310,311)が存在する。
 本発明の最良の実施形態の一つを図1に示す。
本発明の主要な動作概要を図1にて説明する。
入出力装置制御部(110)は、割り込み通知をだす必要が生じたときに、タイマーカウンタ(310)に対してカウントの開始を指示する。すでにカウントが開始されている場合は、タイマーカウンタ(310)は、入出力装置制御部(110)からのカウント開始指示を無視する。 タイマーカウンタ(310)は、タイマー用クロック生成部(130)から一定時間ごとに発信されるクロック信号が到着するごとに、カウンタの値を1ずつ加算する。
 比較器(320)は、タイマーカウンタ(310)とタイマー閾値レジスタ(311)の値を比較器(320)によって比較し、両者が一致したら割り込み通知送信部(120)に対して、CPU(200)へ割り込み通知を送出するように指示を出す。同時に、タイマーカウンタ(310)の値をリセットし、カウントの加算を停止させる。
 割り込み通知送信部(120)は、送出指示を受けると中央演算装置(200)に対して割り込み通知を送出する。
 中央演算装置(200)が入出力命令を発行したことを入出力装置(100)に対して通知するために、SQPIレジスタ(300)への書き込みを行ったとき、SQPIレジスタは書き込みが行われたことを入出力装置制御部(110)に通知するとともに、タイマーカウンタ(310)の値をリセットする。SQPIレジスタは、Submission Queue Producer Index registerの略称であり、入出力命令の発行をCPUから入出力装置に対して通知するためのレジスタである。ただし、SQPIレジスタ(300)からタイマーカウンタ(310)に出される信号では、タイマーカウンタ(310)の加算は停止させない。
 以上の動作が割り込み通知回数を抑制するときの基本動作である。
以上の動作を、各部の動作ごとに詳細に説明する。
 図2と図3を用いてドライバソフトウェア(201)の動作を説明する。ドライバソフトウェア(201)は、OSから入出力の処理要求が到着し、CPU(200)の制御権を渡された時点、または割り込み通知が到着した時点から処理が開始される。以降で動作説明文の先頭に記載されている番号は、図中の番号と対応している。以下のドライバソフトウェア(201)の動作シーケンスの説明では、CPU(200)が、主記憶装置(210)に格納したドライバソフトウェア(201)を読みだして、ドライバソフトウェア(201)の機能を実行する動作を示す。
(1000)OSから入出力処理要求が到着し、CPU(200)の制御権が渡される。
(1001)入出力命令(221)を作成し、主記憶装置(210)に確保された特定領域(220)に書き込む。
(1002)入出力装置(100)に対して新たな命令を発行したことを通知するためにSQPIレジスタ(300)に対して書き込みを行う。
手順(1011)に進む。
(1010)入出力装置(100)から割り込み通知が到着し、OSからドライバソフトウェア(201)に対してCPUの制御権が渡される。
手順(1011)に進む。
(1011)主記憶(210)上に確保されている入出力完了通知を格納する領域(230)をチェックする。
(1012)主記憶(210)上の完了通知格納領域(230)に未処理の入出力完了通知(231)が存在する場合、手順(1103)に進む。未処理の入出力完了通知(231)が存在しない場合、手順(1020)に進む。
(1013)主記憶(210)上の入出力完了通知格納領域(230)に格納されている未処理の完了通知(231)を1つ読み込み、OS依存の方法に則って完了処理を行う。
(1014)入出力装置(100)のCQCIレジスタ(301)に対して書き込みを行い、完了通知(231)の処理が終わったことを入出力装置(100)に通知する。
手順(1011)に進む。CQCIレジスタは、Completion Queue Consumer Index registerの略称であり、入出力命令に対する入出力装置からの完了通知を処理したことをCPUから入出力装置に対して通知するためのレジスタである。
(1020)CPU(200)の制御権をOSに返す。
 図2と図4を用いて入出力装置制御部(110)の動作を説明する。
(1100)CPU(200)からSQPI(300)レジスタに対して書き込みが行われたことを検出する。
(1101)主記憶装置(210)に確保されている入出力命令格納領域(220)から入出力命令(221)を1つ読み込む。
(1102)入出力命令(221)を処理する。
(1103)入出力処理が完了したら手順(1104)に進む。
未完了の場合、手順(1103)を繰り返す。
(1104)入出力完了通知(231)を作成する。
(1105)入出力完了通知格納領域(230)に空きがある場合は手順(1106)へ進む。
空きがない場合は手順(1120)へ進む。
(1106)主記憶装置(210)確保された入出力完了通知格納領域(230)の空き領域に入出力完了通知(231)を書き込む。
(1107)カウンタ加算開始の指示をタイマーカウンタ(310)に指示する。
(1108)入出力処理を完了する。
(1120)完了通知格納領域(230)の開放処理が終了するまで待機する。
手順(1105)へ進む。
(1130)CPU(200)からCQCIレジスタ(301)に対して書き込みが行われたことを検出する。
(1131)CPU(200)によって処理済みとなった完了通知(231)が格納されていた領域を開放する。
(1132)完了通知格納領域(230)の中に未処理の完了通知(231)が存在する場合には手順(1134)へ進む。未処理の完了通知(231)が存在しない場合には手順(1133)に進む。
(1133)タイマーカウンタ(310)をリセットし、加算停止を指示する。
(1134)完了通知格納領域(230)の開放処理を終了する。
 図1と図5を用いてタイマーカウンタ(310)を含む割り込み通知頻度抑制機能全体の動作シーケンスを説明する。
(1200)初期化完了または完了キューを作成するコマンドの実行完了に伴って完了キューの動作が開始される。
(1201)カウンタ加算開始信号が到着した場合、手順(1202)へ進む。
到着していない場合、手順(1201)を繰り返す。
(1202)クロック生成部(130)から信号が到着した場合、手順(1210)へ進む。
到着していない場合、手順(1203)へ進む。
(1203)カウンタ加算停止信号が到着した場合、手順(1213)へ進む。
到着していない場合、手順(1204)へ進む。
(1204)SQPIレジスタ(300)への書き込みがあった場合、手順(1214)へ進む。
書き込みがなかった場合、手順(1202)へ進む。
(1210)タイマーカウンタ(310)を1加算する。
(1211)タイマーカウンタ(310)の値が閾値レジスタ(311)と一致した場合、手順(1212)へ進む。
不一致の場合、手順(1203)へ進む。
(1212)割り込み通知信号をCPU(200)に対して送出する。
(1213)タイマーカウンタ(310)をリセットする。
手順(1201)へ進む。
(1214)タイマーカウンタをリセットする。
手順(1202)へ進む。
 本実施例によれば、割り込み通知のみで入出力処理の完了を通知した場合に比べて、割り込み通知の頻度を抑制することができる。特に、あらかじめ設定する待機時間よりも短い間隔でドライバから入出力命令の発行が行われる場合、割り込み通知の送信は常に遅延される状態となり、割り込み通知を送信せずに入出力処理を進めることが可能な状態となる。これにより、従来では割り込み処理の負荷が問題となっていた高頻度で入出力命令を処理する状態になった場合、割り込み処理を行うことなく入出力動作を完了することが可能となる。
 また、待機時間の設定値は単発の入出力処理の遅延時間に影響を与えるが、本発明では、待機時間は入出力処理の発行間隔より長いときに大きな効果を得られるため、入出力命令の発行が高頻度の時に対象を定めて短い待機時間を設定すれば、単発入出力処理の遅延時間悪化を最小限に抑えることができる。
 本発明を、CPU(200)と入出力装置(100)の間で、複数の独立した入出力命令格納領域(220)と入出力完了通知格納領域(230)を用いた場合で実施した例を示す。なお、入出力命令格納領域(220)の数と入出力完了通知格納領域(230)の数は一致しなくてもよい。以降では、入出力命令格納領域(220)を発行キュー、入出力完了通知格納領域(230)を完了キューと呼ぶ。
 主記憶上装置(210)に複数の発行キュー(220)と完了キュー(230)が存在している状態を図6に示す。発行キューと完了キューは、ともに論理番号空間上で無効領域と有効領域が連続しており、それらの境界がPI(331)またはCI(330)によって示され、始点と終点が連結されて循環境界条件を満たす、図7に示すようなリングバッファによって構成されているものとする。PI(331)およびCI(330)は発行キュー(220)と完了キュー(230)の両方に2つずつ存在する。この4つのポインタのうち、発行キュー(220)のPI(331)を入出力装置内のSQPI(300)に格納し、完了キュー(230)のCI(331)を入出力装置内のCQCI(301)に格納する。それ以外のポインタについては、主記憶装置(210)上の適切な位置に配置する。
 ある発行キュー(220)に投入した入出力命令(221)に対応する完了通知(231)をどの完了キュー(230)から受け取るのかは、ドライバソフトウェア(201)から入出力装置(100)に対して、入出力装置(100)の初期化時に指定するか、または発行キュー(220)の動作を開始させることを入出力装置(100)に指示するときの管理コマンドによって指定する。
 入出力装置(100)は、CPU(200)に対して割り込み方式によって完了通知(231)の処理を要求するときに、処理が必要な完了キュー(230)をCPU(200)が一意に判別可能となるように、PCI-express規格(PCI expressは、Peripheral Component Interconnect Special Interest Group(PCI-SIG)の商標である。)で定義されているMSI(Message Signaled Interrupts)またはMSI-X(Message Signaled Interrupts extended)を用いる。MSIおよびMSI-Xは、CPU(200)側が設定した特殊なメモリアドレスに、入出力装置(100)が書き込み動作を行うことで割り込み処理要求が発生したことをCPU(200)に伝える仕組みであり、書き込み先のアドレスを異なるものにすることで、CPU(200)は異なる要因で割り込み処理要求が発生していることを識別することが可能である。MSI/MSI-Xの割り込みは単に書き込み先のメモリアドレスの違いでしかないため、割り込み要因数が増加しても物理的な配線が増加することはない。
 本実施例では、完了キュー(230)が割り込み処理を要求するときに用いるMSI番号またはMSI-X番号を、ドライバソフトウェア(201)が入出力装置(100)の初期化時に指定するか、完了キュー(230)の動作開始を入出力装置(100)に指示するときの管理コマンドによって指定する。また、これらの情報を保持するためのMSI/MSI-X番号レジスタ(303)を入出力装置(100)の内部に配置する。
 複数の発行キュー(220)および完了キュー(230)を扱う入出力装置(100)の概略図を図8に示す。本実施例では、完了キューごとにタイマーカウンタ(310a,310b)、閾値レジスタ(311a,311b)、MSI/MSI-X番号レジスタ(303a,303b)、比較器(320a,320b)を搭載する。
 発行キュー(220)と完了キュー(230)の対応付け情報は発行・完了対応レジスタ(302a,302b)に保持しておき、この情報に基づいてタイマーカウンタ(310)リセット信号のルーティングスイッチ部 (140)が適切な完了キューのタイマーカウンタ(310)に対してリセット信号を送出する。
 タイマーカウンタの値が閾値に達し、割り込み通知を送信するとき、当該完了キューが使うべきMSIまたはMSI-Xのベクタ番号が格納されているMSI/MSI-X番号レジスタ(303)を参照し、割り込み番号を割り込み通知送信部(120)に送る。割り込み通知送信部(120)は指定された割り込み番号に基づいて算出された特殊なメモリアドレスへの書き込み動作を行うことによって、CPU(200)に対して割り込み通知を送信する。
 図9を用いて、複数の発行キュー(220)と完了キュー(220)が存在する場合のドライバソフトウェア(201)の挙動を説明する。本シーケンスでは一部OSの挙動も含んでいる。
(1000)OSから入出力処理要求が到着し、CPUの制御権が渡される。
(1001)入出力命令(221)を作成し、主記憶装置(210)に確保された特定領域(220)に書き込む。
(1002)入出力装置(100)に対して新たな命令を発行したことを通知するためにSQPIレジスタ(300)に対して書き込みを行う。
手順(1011)に進む。
(1030)入出力装置(100)から特定のMSI番号またはMSI-X番号に対して割り込み通知が到着する。
(1031)OSは割り込み通知で指定されたMSI番号またはMSI-Xに対応する割り込み処理関数(ハンドラ)を呼び出す。
手順(1011)に進む。
(1011)主記憶(210)上に確保されている入出力完了通知を格納する領域(230)をチェックする。
(1012)主記憶(210)上の完了通知格納領域(230)に未処理の完了通知(231)が存在する場合、手順(1103)に進む。未処理の完了通知(231)が存在しない場合、手順(1020)に進む。
 (1013)主記憶(210)上の完了通知領域(230)に格納されている未処理の完了通知(231)を1つ読み込み、OS依存の方法に則って完了処理を行う。
(1014)入出力装置(100)のCQCIレジスタ(301)に対して書き込みを行い、完了通知の処理が終わったことを通知する。
手順(1011)に進む。
(1040)OSからドライバソフトウェア(201)に対して入出力装置(100)初期化要求が到着する。
(1041)ドライバソフトウェア(201)はMSI番号またはMSI-X番号を確保し、確保した番号に関連づけて割り込み処理関数(ハンドラ)を設定する。
(1042)入出力装置(100)に対してMSI番号またはMSI-X番号を指定して、完了キュー(230)を作成する管理コマンドを送り、完了キュー(230)を生成する。
(1043)入出力装置に対して対応する完了キュー(230)番号を指定し、発行キュー(220)を作成する管理コマンドを送り、発行キュー(220)を生成する。
手順(1043)に進む。
(1020)CPU(200)の制御権をOSに返す。
 入出力装置制御部(110)のシーケンスは図4と変化しない。ただし、手順(1107)および手順(1133)において制御の対象となるタイマーカウンタ(310)は、入出力完了通知(231)が配置される完了キュー(230)に関連づけられたもののみが対象となる点が異なる。
 また、複数の発行キュー(220)に対して図4の手順は複数の入出力処理を実行する制御部(110)が並列に動作してもよい。複数の制御部が並列に発行キューを処理する場合、タイマーの開始信号またはリセット信号を送る対象となるタイマーカウンタ(310)は発行キュー(220)に関連づけられた完了キュー(230)に属するもののみとなる。
 図10を用いて複数キューが存在する場合の割り込み通知頻度抑制機能の動作シーケンスを述べる。図10は完了キューごとに行われる動作シーケンスを示している。
 (1200)初期化完了または完了キューを作成するコマンドの実行完了に伴って完了キューの動作が開始される。
(1201)カウンタ加算開始信号が到着した場合、手順(1202)へ進む。
到着していない場合、手順(1201)を繰り返す。
(1202)クロック生成部(130)から信号が到着した場合、手順(1210)へ進む。
到着していない場合、手順(1203)へ進む。
(1203)カウンタ加算停止信号が到着した場合、手順(1213)へ進む。
到着していない場合、手順(1230)へ進む。
 (1210)タイマーカウンタ(310)を1加算する。
(1211)タイマーカウンタ(310)の値が閾値レジスタ(311)と一致した場合、手順(1220)へ進む。
不一致の場合、手順(1203)へ進む。
 (1213)タイマーカウンタ(310)をリセットする。
手順(1201)へ進む。
(1214)タイマーカウンタをリセットする。
手順(1202)へ進む。
(1220)MSI番号またはMSI-X番号をMSI/MSI-X番号レジスタ(303)から読み出して入出力装置制御部(110)に伝達する。
(1221)入出力装置制御部(110)は伝えられたMSI番号またはMSI-X番号を用いて、CPU(200)に対して割り込み通知を送出する。
手順(1213)へ進む。
(1230)カウンタリセット信号が到着した場合、手順(1214)へ進む。
到着していない場合、手順(1202)へ進む。
 図11を用いて、SQPIレジスタ(300)への書き込みを契機にタイマーカウンタをリセットする動作フローを説明する。
(1300)発行キュー(220)の動作を開始した。
(1301)SQPIレジスタ(300)の値が変化した場合、手順(1302)へ進む。
変化していない場合、手順(1301)を繰り返す。
(1302)更新された発行キュー(220)に関連づけられている完了キュー(230)の番号を完了キュー番号レジスタ(302)から読み出す。
(1303)特定された完了キュー(230)に対応づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1301)へ進む。
 図12に示すように、中央演算処理装置200を構成する2つのコア200のそれぞれに対応して、SQPIレジスタ300、CQCIレジスタ301を割り当てている。本実施例2では、発行キューをMSI番号またはMSI-X番号に対応させていることで、マルチコアの場合に、特定の完了キューにI/Oの処理が集中して、I/O処理のボトルネックが発生しないようにできる。
 ドライバソフトウェア(201)が、ある完了キュー(230)の状態を確認しにいったとき、完了キュー領域(230)に存在する入出力完了通知(231)を連続して処理するという動作をする場合、完了キュー領域にある完了通知をCPUが処理したことを入出力装置に伝えるためのCQCIレジスタ(301)も割り込み通知のタイミングを遅延させるために利用できる。
 CQCI(301)の値が更新されたとき、その直前に完了キュー(230)に書き込んだ入出力完了通知(231)が処理されている可能性があるため、割り込み通知の送出をしばらく停止してみることで割り込み通知頻度の抑制効果が見込める。
 CQCIレジスタ(301)は完了キュー(230)に一対一で関連づけられているため、このレジスタへの書き込みが検出された段階で対応する完了キュー(230)のタイマーカウンタ(310)をリセットすれば、一定時間完了通知の送出を遅延させる効果が得られる。この動作を実現するハードウェア概要を図12に示す。
 ドライバソフトウェア(201)、入出力装置制御部の動作フローは実施例2と同様である。割り込み通知頻度抑制機能の動作フローに図13のシーケンスを追加する。
 図13のCQCIレジスタ更新契機でのタイマーカウンタリセットの動作シーケンスについてフローを示す。
(1400)完了キュー(230)の動作を開始した。
(1401)CQCIレジスタ(301)の値が変化した場合、手順(1402)へ進む。
変化していない場合、手順(1401)を繰り返す。
(1402)CQCIレジスタ(301)に対応する完了キュー(230)に関連づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1401)へ進む。
 本実施例3によれば、CPU(200)が、一つの完了キュー(230)内の一つの入出力完了通知(231)を読むだけではなく、他の入出力完了通知が完了キュー(230)内に存在すれば、それら複数の入出力完了通知を、まとめて読みだすことが出来るためCPU(200)の負荷を減らすことができる。
 以上の実施例において、CPU(200)上で動作するOSから見た挙動について述べる。本発明が実施されている入出力装置(100)の挙動は、OSが提供する単位時間あたりの入出力処理数と割り込み回数の統計情報から得ることができる。たとえば、Linux(Linus Torvaldsの米国およびその他の国における登録商標あるいは商標である。)では単位時間あたりの入出力処理数や割り込み回数を取得するためのインターフェイスをprocfsとして実装している。
 図14はOSのターミナル画面からprocfsを通して統計情報を可視化した例を示している。これらの情報を参照することで、本発明の動作について観察することが可能である。割り込み回数統計値表示画面(400)では、左の列から、割り込み番号、プロセッサごとの割り込み回数、割り込みを通知するデバイスの種類が示されている。入出力処理回数統計値表示画面(401)では、左の列からデバイス名、読み込み命令数、書き込み命令数が示されている。
 本発明では、入出力要求数が一定の頻度に達するまでは従来の入出力装置と同様に、単位時間あたりの入出力回数(図14中401)に対して単位時間あたりの割り込み回数(図14中400の変化量)は比例する関係にある。
 単位時間あたりの入出力回数が増加し、一定の閾値を超えると、単位時間あたりの割り込み回数(図14中400)の当該デバイスの割り込み回数が増加しない状態となる。この現象は本発明特有の挙動であり、本発明の実施状態を確認するための一助となる。
 コンピュータに接続する入出力装置を備えた情報処理装置において、入出力命令の実行完了を知らせるための割り込み信号の送出回数が、CPUに対して過大になることを防ぐために、本発明は、情報処理装置に広く適用することができる。
100     入出力装置
110     入出力装置制御部
120     割り込み通知送信部
130     タイマー用クロック生成部
140     ルーティングスイッチ部
200     中央演算処理装置(CPU)
210     主記憶装置
240     主記憶装置への読み書き用データバス
300     SQPIレジスタ
301     CQCIレジスタ
310     タイマーカウンタ
311     タイマー閾値レジスタ
320     比較器

Claims (12)

  1.  プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置において、
     前記情報処理装置は、
     前記プロセッサーからの指示に基づいて、
      前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
      前記入出力装置は、
     前記プロセッサーへの処理完了の通知としての割り込み信号を送信する割り込み通知送信部と、
     前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、
     前記プロセッサーからの処理開始指示を検知したことを契機に、
     前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、
    有することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置において、
     前記プロセッサーからの処理開始の指示を、
     前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
     前記割り込み通知送信部は、
      前記記憶部に設けた複数の処理完了キューを識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置。
  4. 請求項2もしくは請求項3に記載の情報処理装置であって、
     複数のプロセッサーからの指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、
     該処理開始指示を検知した場合には、
     前記延長部が、
     前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。
  5. 請求項1乃至4に記載の情報処理装置であって、
     前記延長部は、
     前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、
     前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。
     
  6.  プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置の処理方法において、
     前記プロセッサーからの指示に基づいて、
      前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
     前記プロセッサーに、処理完了の通知の送信を一定時間待機させ、
     前記プロセッサーからの処理開始指示を検知したことを契機に、
     前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長し、
     前記プロセッサーへの処理完了の通知としての割り込み信号を送信することを特徴とする情報処理装置の処理方法。
  7. 請求項6に記載の情報処理装置の処理方法において、
     前記プロセッサーからの処理開始の指示を、
     前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置の処理方法。
  8. 請求項7に記載の情報処理装置の処理方法であって、
     前記記憶部に設けた複数の処理完了キューを識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置の処理方法。
  9. 請求項7もしくは請求項8に記載の情報処理装置の情報処理方法であって、
     プロセッサーからの指示は、複数のコアからの指示であり、複数の指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、
     該処理開始指示を検知した場合には、
     前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。
  10. 請求項6乃至9に記載の情報処理装置の処理方法であって、
     前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、
     前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。
  11.  プロセッサーから処理の指示を受ける入出力装置であって、
      前記入出力装置は、
     処理完了の通知としての割り込み信号を、前記プロセッサーへ送信する割り込み通知送信部と、
     前記プロセッサーに、処理完了の通知の送信を、一定時間待機させる待機部と、
     前記プロセッサーからの処理開始指示を検知したことを契機に、
     前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長する延長部を、
    有することを特徴とする入出力装置。
  12. 請求項11に記載の入出力装置において、
     前記プロセッサーからの処理開始の指示を、
     前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする入出力装置。
     
PCT/JP2014/062550 2014-05-12 2014-05-12 情報処理装置、その処理方法、及び入出力装置 WO2015173853A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/124,883 US10481946B2 (en) 2014-05-12 2014-05-12 Information-processing device, processing method thereof, and input/output device
PCT/JP2014/062550 WO2015173853A1 (ja) 2014-05-12 2014-05-12 情報処理装置、その処理方法、及び入出力装置
JP2016518658A JP6227767B2 (ja) 2014-05-12 2014-05-12 情報処理装置、その処理方法、及び入出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/062550 WO2015173853A1 (ja) 2014-05-12 2014-05-12 情報処理装置、その処理方法、及び入出力装置

Publications (1)

Publication Number Publication Date
WO2015173853A1 true WO2015173853A1 (ja) 2015-11-19

Family

ID=54479427

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/062550 WO2015173853A1 (ja) 2014-05-12 2014-05-12 情報処理装置、その処理方法、及び入出力装置

Country Status (3)

Country Link
US (1) US10481946B2 (ja)
JP (1) JP6227767B2 (ja)
WO (1) WO2015173853A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202008435SA (en) * 2018-03-19 2020-10-29 Taiho Pharmaceutical Co Ltd Pharmaceutical composition including sodium alkyl sulfate
US11144481B2 (en) 2018-04-11 2021-10-12 Apple Inc. Techniques for dynamically adjusting the manner in which I/O requests are transmitted between a computing device and a storage device
CN108874541A (zh) * 2018-06-05 2018-11-23 中国平安人寿保险股份有限公司 分布式运算方法、装置、计算机设备及存储介质
KR102560251B1 (ko) 2018-06-20 2023-07-26 삼성전자주식회사 반도체 장치 및 반도체 시스템
US10635355B1 (en) * 2018-11-13 2020-04-28 Western Digital Technologies, Inc. Bandwidth limiting in solid state drives
US20230100059A1 (en) * 2021-09-21 2023-03-30 Intel Corporation Interrupt handling by migrating interrupts between processing cores

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6347861A (ja) * 1986-08-18 1988-02-29 Oki Electric Ind Co Ltd 電子計算機の入出力制御方法
JP2002023961A (ja) * 2000-07-10 2002-01-25 Nec Corp ディスクアレイ装置およびディスクアレイ装置の割り込み実行方法
JP2007074320A (ja) * 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd ネットワーク機器装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
JPH03111960A (ja) * 1989-09-26 1991-05-13 Mitsubishi Electric Corp ワンチップマイクロコンピュータ
US5588125A (en) 1993-10-20 1996-12-24 Ast Research, Inc. Method and apparatus for increasing bus bandwidth on a system bus by inhibiting interrupts while posted I/O write operations are pending
US5557782A (en) * 1994-07-12 1996-09-17 Zenith Data Systems Corporation Flexible deterministic state machine
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5961621A (en) * 1997-03-28 1999-10-05 Intel Corporation Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
JP2001331329A (ja) 2000-05-22 2001-11-30 Mitsubishi Electric Corp 割込み制御装置及び割込み制御方法
DE10131124A1 (de) * 2001-06-28 2003-01-23 Infineon Technologies Ag Konfigurierbare Adressierungsvorrichtung
JP4659008B2 (ja) 2007-09-13 2011-03-30 ルネサスエレクトロニクス株式会社 ホスト負荷調整機能付周辺回路
JP2010140239A (ja) 2008-12-11 2010-06-24 Internatl Business Mach Corp <Ibm> 割り込みレイテンシーを短縮する装置及び方法
US8639871B2 (en) * 2009-04-08 2014-01-28 Google Inc. Partitioning a flash memory data storage device
US8244946B2 (en) * 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
JP2012146150A (ja) 2011-01-13 2012-08-02 Renesas Electronics Corp 割り込み信号生成装置および割り込み信号生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6347861A (ja) * 1986-08-18 1988-02-29 Oki Electric Ind Co Ltd 電子計算機の入出力制御方法
JP2002023961A (ja) * 2000-07-10 2002-01-25 Nec Corp ディスクアレイ装置およびディスクアレイ装置の割り込み実行方法
JP2007074320A (ja) * 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd ネットワーク機器装置

Also Published As

Publication number Publication date
JPWO2015173853A1 (ja) 2017-04-20
US10481946B2 (en) 2019-11-19
JP6227767B2 (ja) 2017-11-08
US20170017516A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
JP6227767B2 (ja) 情報処理装置、その処理方法、及び入出力装置
US8635387B2 (en) Enhanced I/O performance in a multi-processor system via interrupt affinity schemes
EP1645968B1 (en) Multi-threaded DMA
US4218739A (en) Data processing interrupt apparatus having selective suppression control
WO2013109640A1 (en) Techniques for command validation for access to a storage device by a remote client
CN106502935A (zh) Fpga异构加速系统、数据传输方法及fpga
JP2008176482A (ja) 仮想計算機システム
US9684613B2 (en) Methods and systems for reducing spurious interrupts in a data storage system
US8996774B2 (en) Performing emulated message signaled interrupt handling
US20210334228A1 (en) Managing network interface controller-generated interrupts
JP2008176360A (ja) マルチプロセッサシステム
TWI516944B (zh) 以多重中斷向量模擬訊息發訊中斷之方法
US20170212852A1 (en) Method and accelerator unit for interrupt handling
CN114817110B (zh) 一种数据传输方法及装置
US20170329730A1 (en) Method and unit for handling interrupts in a system
CN115168256A (zh) 中断控制方法、中断控制器、电子设备、介质和芯片
US20160098289A1 (en) System and method for handling an interrupt
JP5981004B2 (ja) 半導体装置
EP2413248A1 (en) Direct memory access device for multi-core system and operating method of the same
US7506082B2 (en) Data transferring system using USB and method thereof
JP6123487B2 (ja) 制御装置、制御方法及び制御プログラム
WO2013109234A2 (en) Method to accelerate message signaled interrupt processing
US20140052879A1 (en) Processor, information processing apparatus, and interrupt control method
JP5076967B2 (ja) 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
US9146776B1 (en) Systems and methods for controlling flow of message signaled interrupts

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15124883

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2016518658

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14892082

Country of ref document: EP

Kind code of ref document: A1