WO2015173853A1 - 情報処理装置、その処理方法、及び入出力装置 - Google Patents
情報処理装置、その処理方法、及び入出力装置 Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 30
- 238000003672 processing method Methods 0.000 title claims 11
- 238000000034 method Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 36
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 10
- 230000001629 suppression Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/372—Handling 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task 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
Description
前記情報処理装置は、
前記プロセッサーからの指示に基づいて、
前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
前記入出力装置は、
前記プロセッサーへの処理完了の通知としての割り込み信号を送信する割り込み通知送信部と、
前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、
前記プロセッサーからの処理開始指示を検知したことを契機に、
前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、
有する情報処理装置に特徴がある。
本発明の主要な動作概要を図1にて説明する。
入出力装置制御部(110)は、割り込み通知をだす必要が生じたときに、タイマーカウンタ(310)に対してカウントの開始を指示する。すでにカウントが開始されている場合は、タイマーカウンタ(310)は、入出力装置制御部(110)からのカウント開始指示を無視する。 タイマーカウンタ(310)は、タイマー用クロック生成部(130)から一定時間ごとに発信されるクロック信号が到着するごとに、カウンタの値を1ずつ加算する。
以上の動作を、各部の動作ごとに詳細に説明する。
(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に返す。
(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)の開放処理を終了する。
(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)へ進む。
(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)に進む。
(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に返す。
(1200)初期化完了または完了キューを作成するコマンドの実行完了に伴って完了キューの動作が開始される。
(1201)カウンタ加算開始信号が到着した場合、手順(1202)へ進む。
到着していない場合、手順(1201)を繰り返す。
(1202)クロック生成部(130)から信号が到着した場合、手順(1210)へ進む。
到着していない場合、手順(1203)へ進む。
(1203)カウンタ加算停止信号が到着した場合、手順(1213)へ進む。
到着していない場合、手順(1230)へ進む。
(1211)タイマーカウンタ(310)の値が閾値レジスタ(311)と一致した場合、手順(1220)へ進む。
不一致の場合、手順(1203)へ進む。
手順(1201)へ進む。
(1214)タイマーカウンタをリセットする。
手順(1202)へ進む。
(1220)MSI番号またはMSI-X番号をMSI/MSI-X番号レジスタ(303)から読み出して入出力装置制御部(110)に伝達する。
(1221)入出力装置制御部(110)は伝えられたMSI番号またはMSI-X番号を用いて、CPU(200)に対して割り込み通知を送出する。
手順(1213)へ進む。
(1230)カウンタリセット信号が到着した場合、手順(1214)へ進む。
到着していない場合、手順(1202)へ進む。
(1300)発行キュー(220)の動作を開始した。
(1301)SQPIレジスタ(300)の値が変化した場合、手順(1302)へ進む。
変化していない場合、手順(1301)を繰り返す。
(1302)更新された発行キュー(220)に関連づけられている完了キュー(230)の番号を完了キュー番号レジスタ(302)から読み出す。
(1303)特定された完了キュー(230)に対応づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1301)へ進む。
(1400)完了キュー(230)の動作を開始した。
(1401)CQCIレジスタ(301)の値が変化した場合、手順(1402)へ進む。
変化していない場合、手順(1401)を繰り返す。
(1402)CQCIレジスタ(301)に対応する完了キュー(230)に関連づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1401)へ進む。
110 入出力装置制御部
120 割り込み通知送信部
130 タイマー用クロック生成部
140 ルーティングスイッチ部
200 中央演算処理装置(CPU)
210 主記憶装置
240 主記憶装置への読み書き用データバス
300 SQPIレジスタ
301 CQCIレジスタ
310 タイマーカウンタ
311 タイマー閾値レジスタ
320 比較器
Claims (12)
- プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置において、
前記情報処理装置は、
前記プロセッサーからの指示に基づいて、
前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
前記入出力装置は、
前記プロセッサーへの処理完了の通知としての割り込み信号を送信する割り込み通知送信部と、
前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、
前記プロセッサーからの処理開始指示を検知したことを契機に、
前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、
有することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、
前記プロセッサーからの処理開始の指示を、
前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置。 - 請求項2に記載の情報処理装置であって、
前記割り込み通知送信部は、
前記記憶部に設けた複数の処理完了キューを識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置。 - 請求項2もしくは請求項3に記載の情報処理装置であって、
複数のプロセッサーからの指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、
該処理開始指示を検知した場合には、
前記延長部が、
前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。 - 請求項1乃至4に記載の情報処理装置であって、
前記延長部は、
前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、
前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。
- プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置の処理方法において、
前記プロセッサーからの指示に基づいて、
前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
前記プロセッサーに、処理完了の通知の送信を一定時間待機させ、
前記プロセッサーからの処理開始指示を検知したことを契機に、
前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長し、
前記プロセッサーへの処理完了の通知としての割り込み信号を送信することを特徴とする情報処理装置の処理方法。 - 請求項6に記載の情報処理装置の処理方法において、
前記プロセッサーからの処理開始の指示を、
前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置の処理方法。 - 請求項7に記載の情報処理装置の処理方法であって、
前記記憶部に設けた複数の処理完了キューを識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置の処理方法。 - 請求項7もしくは請求項8に記載の情報処理装置の情報処理方法であって、
プロセッサーからの指示は、複数のコアからの指示であり、複数の指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、
該処理開始指示を検知した場合には、
前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。 - 請求項6乃至9に記載の情報処理装置の処理方法であって、
前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、
前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。 - プロセッサーから処理の指示を受ける入出力装置であって、
前記入出力装置は、
処理完了の通知としての割り込み信号を、前記プロセッサーへ送信する割り込み通知送信部と、
前記プロセッサーに、処理完了の通知の送信を、一定時間待機させる待機部と、
前記プロセッサーからの処理開始指示を検知したことを契機に、
前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長する延長部を、
有することを特徴とする入出力装置。 - 請求項11に記載の入出力装置において、
前記プロセッサーからの処理開始の指示を、
前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする入出力装置。
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)
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)
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)
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 | 割り込み信号生成装置および割り込み信号生成方法 |
-
2014
- 2014-05-12 US US15/124,883 patent/US10481946B2/en active Active
- 2014-05-12 WO PCT/JP2014/062550 patent/WO2015173853A1/ja active Application Filing
- 2014-05-12 JP JP2016518658A patent/JP6227767B2/ja not_active Expired - Fee Related
Patent Citations (3)
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 |