WO2013179402A1 - Control system, control method, and program - Google Patents

Control system, control method, and program Download PDF

Info

Publication number
WO2013179402A1
WO2013179402A1 PCT/JP2012/063821 JP2012063821W WO2013179402A1 WO 2013179402 A1 WO2013179402 A1 WO 2013179402A1 JP 2012063821 W JP2012063821 W JP 2012063821W WO 2013179402 A1 WO2013179402 A1 WO 2013179402A1
Authority
WO
WIPO (PCT)
Prior art keywords
chu
iop
sts
ioc
processing
Prior art date
Application number
PCT/JP2012/063821
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2012/063821 priority Critical patent/WO2013179402A1/en
Publication of WO2013179402A1 publication Critical patent/WO2013179402A1/en

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Definitions

  • the present invention relates to a control system, a control method, and a program.
  • FIG. 1 shows the first input / output control in the conventional information processing system.
  • the control system 101 includes an input / output processor (IOP) 111, a channel device (CHU) 112, and an interface 121 between the IOP 111 and the CHU 112.
  • IOP input / output processor
  • CHU channel device
  • the IOP 111 performs input / output processing for the input / output devices (Input / Output / Device, IO) 103-1 to IO 103-3 to the input / output control device (Input / Output / Controller, IOC) 102 via the CHU 112.
  • a start instruction START_IO is transmitted.
  • IO 103-1 to IO 103-3 (IO # A to IO # C) are three logically identifiable IOs, and their identification information (ID) is #A to #C, respectively.
  • the IOs 103-1 to IO103-3 may represent three physical IOs or may represent three logical IOs.
  • the IOC 102 transmits notifications indicating the states of the IO 103-1 to IO 103-3 to the IOP 111 via the CHU 112, and the IOP 111 transmits a response ACC_STS to the notification to the IOC 102 via the CHU 112.
  • the notification transmitted from the IOC 102 to the IOP 111 includes a processing end notification OPTERM_STS, an asynchronous notification ASYNC_STS, and a busy notification BUSY_STS.
  • the process end notification OPTERM_STS is a notification indicating the end of input / output processing for START_IO
  • the asynchronous notification ASYNC_STS is a notification indicating a change in IO state independent of START_IO.
  • the busy notification BUSY_STS is a notification indicating that the input / output process cannot be started because the START_IO is received while attempting to transmit the asynchronous notification ASYNC_STS.
  • the START_IO from the IOP 111 and the ASYNC_STS from the IOC 102 may be different in the CHU 112.
  • the communication protocol between the CHU 112 and the IOC 102 since the number of IOs that can be operated during connection is defined as 1, for example, the following exclusive control is performed.
  • the IOP 111 reserves the interface 121 to transmit the START_IO for IO # A (procedure 131), and when the reservation is successful (RSV_SUCC), transmits the START_IO to the CHU 112 (procedure 133). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 153).
  • the IOC 102 transmits OPTERM_STS to the CHU 112 (procedure 154), and the CHU 112 transmits the OPTERM_STS to the IOP 111 (procedure 134). Then, the IOP 111 transmits a response ACC_STS indicating that the OPTERM_STS has been received to the CHU 112 (procedure 135), and releases the reservation of the interface 121 (RLS) (procedure 136). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 155).
  • the IOC 102 transmits a connection request REQ_CNCT to the CHU 112 in order to transmit ASYNC_STS indicating the state of IO # B (procedure 151).
  • the CHU 112 reserves the interface 121 (procedure 132).
  • the CHU 112 fails to make a reservation (RSV_FAIL), and transmits a connection rejection response DNY_CNCT to the IOC 102 (procedure 152). In this case, the IOC 102 cannot transmit ASYNC_STS to the CHU 112.
  • the IOC 102 After receiving ACC_STS from the CHU 112, the IOC 102 transmits REQ_CNCT to the CHU 112 again (procedure 156), and when receiving the REQ_CNCT, the CHU 112 reserves the interface 121 (procedure 137). At this time, since the reservation of the interface 121 has been released, the CHU 112 succeeds in the reservation (RSV_SUCC), and transmits a connection acceptance response ACC_CNCT to the IOC 102 (procedure 157).
  • the IOC 102 transmits ASYNC_STS indicating the state of IO # B to the CHU 112 (procedure 158), and the CHU 112 transmits the ASYNC_STS to the IOP 111 (procedure 139). Then, the IOP 111 transmits a response ACC_STS indicating that the ASYNC_STS has been received to the CHU 112 (procedure 140). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 159), and releases the reservation of the interface 121 (procedure 141).
  • the IOP 111 reserves the interface 121 to transmit START_IO targeted for IO # C (procedure 138). However, since the interface 121 is being used for communication related to IO # B, the IOP 111 fails to reserve the interface 121 (RSV_FAIL) and cannot transmit START_IO to the CHU 112.
  • the IOP 111 reserves the interface 121 again after transmitting ACC_STS to the CHU 112 (procedure 142). At this time, since the reservation of the interface 121 is cancelled, the IOP 111 succeeds in the reservation (RSV_SUCC), and transmits START_IO for IO # C to the CHU 112 (procedure 143). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 160).
  • steps 131 to 136 START_IO, OPTERM_STS, and ACC_STS related to IO # A are transmitted and received between the IOP 111 and the CHU 112.
  • steps 137 to 141 ASYNC_STS and ACC_STS related to IO # B are transmitted / received, and in steps 142 and 143, START_IO related to IO # C are transmitted / received.
  • FIG. 2 shows such second input / output control.
  • the CHU 112 in FIG. 2 includes a buffer 201 for temporarily storing the notification received from the IOC 102.
  • the IOP 111 reserves the interface 121 for transmitting START_IO for IO # A (procedure 211), and when the reservation is successful (RSV_SUCC), transmits the START_IO to the CHU 112 (procedure 213). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 232), and releases the reservation of the interface 121 by the IOP 111 (RLS) (procedure 214).
  • the IOC 102 transmits ASYNC_STS indicating the state of IO # B to the CHU 112 (procedure 231).
  • the CHU 112 stores the received ASYNC_STS in the buffer 201 and reserves the interface 121 (procedure 212).
  • the CHU 112 fails to make a reservation (RSV_FAIL) and suspends transmission of ASYNC_STS.
  • the CHU 112 After canceling the reservation of the interface 121, the CHU 112 reserves the interface 121 again (procedure 215) and succeeds in the reservation (RSV_SUCC). Therefore, the CHU 112 transmits ASYNC_STS stored in the buffer 201 to the IOP 111 (procedure 217). Then, the IOP 111 transmits a response ACC_STS indicating that the ASYNC_STS has been received to the CHU 112 (procedure 218). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 234), and releases the reservation of the interface 121 (procedure 219).
  • the IOP 111 reserves the interface 121 to transmit START_IO targeted for IO # C (procedure 216). However, since the interface 121 is being used for communication related to IO # B, the IOP 111 fails to reserve the interface 121 (RSV_FAIL) and cannot transmit START_IO to the CHU 112.
  • the IOC 102 transmits OPTERM_STS to the CHU 112 (procedure 233).
  • the CHU 112 stores the received OPTERM_STS in the buffer 201.
  • the CHU 112 After canceling the reservation of the interface 121, the CHU 112 reserves the interface 121 again (procedure 220) and succeeds in the reservation (RSV_SUCC). Therefore, the CHU 112 transmits OPTERM_STS stored in the buffer 201 to the IOP 111 (procedure 221). Then, the IOP 111 transmits a response ACC_STS indicating that the OPTERM_STS has been received to the CHU 112 (procedure 222). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 235), and releases the reservation of the interface 121 (RLS) (procedure 223).
  • the IOP 111 reserves the interface 121 again after transmitting ACC_STS to the CHU 112 (procedure 224). At this time, since the reservation of the interface 121 is released, the IOP 111 succeeds in the reservation (RSV_SUCC), and transmits START_IO targeted for IO # C to the CHU 112 (procedure 225). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 236), and releases the reservation of the interface 121 by the IOP 111 (RLS) (procedure 226).
  • This channel device notifies a start instruction issued from the channel control adapter to the input / output control device, and the input / output control device notifies the channel device of busy when the input / output device is busy.
  • the channel device is notified of the busy status, it notifies the channel control adapter of the initial status indicating that the start instruction has been accepted.
  • the input / output control device Is notified of the start instruction.
  • the channel device when the channel device is notified of the status from the input / output control device, the channel device temporarily holds the status, and when the channel control adapter is in a state where it cannot receive the status, Notify the stack.
  • the channel device When the channel device is notified of the stack, the channel device notifies the input / output control device that the status notification has been accepted, and executes a process of notifying the status according to a specified period until the channel control adapter receives it.
  • a technique for reducing the scope of influence due to changes in I / O configuration is also known.
  • a unit for creating an input / output request queue is a collection of input / output control devices, and all input / output control devices connected to one input / output device belong to the same creation unit. An upper limit is set for the number of connected channels.
  • JP-A-8-123748 Japanese Patent Laid-Open No. 2-113356
  • the conventional input / output control described above has the following problems. As the transfer rate of input / output processing in the information processing system increases, the proportion of time required for exclusive control between the IOP 111 and the CHU 112 increases, and the influence of exclusive control on the input / output processing capability increases. For this reason, it is considered that the throughput of the input / output processing, which has been improved by eliminating the exclusive control between the CHU 112 and the IOC 102, is lowered.
  • Such a problem occurs not only in input / output control in an information processing system, but also in other control systems that transfer processing start instructions, processing end notifications, and asynchronous notifications between the first device and the second device. Is.
  • the present invention does not perform exclusive control between the first device and the second device even when a large number of processing start instructions are transmitted from the first device to the second device. It is intended to transfer a processing start instruction, a processing end notification, and an asynchronous notification.
  • the control system includes a first device and a second device.
  • the first device includes a first communication unit, a first storage unit, and a first control unit.
  • the first communication unit transmits a process start instruction to the second device, and receives a process end notification and an asynchronous notification for the process start instruction from the second device.
  • the first storage unit stores a first upper limit value that defines the number of connections used for communication between the first device and the second device.
  • the first control unit controls the number of processing start instructions corresponding to processing end notifications not received from the second device to a number equal to or less than the first upper limit value.
  • the second device includes a second communication unit, a second storage unit, and a second control unit.
  • the second communication unit receives a processing start instruction from the first device, and transmits a processing end notification and an asynchronous notification to the first device.
  • the second storage unit stores a second upper limit value that is larger than the first upper limit value.
  • the second control unit determines the total number of processing start instructions corresponding to processing end notifications not yet transmitted to the first device and the number of asynchronous notifications transmitted to the first device as a second upper limit value. Control to the following number.
  • a process start instruction, a process end notification, and an asynchronous notification can be transferred.
  • FIG. 6 is a diagram (part 1) illustrating a sequence of input / output control.
  • FIG. 5 is a diagram (part 2) illustrating a sequence of input / output control.
  • FIG. 10 is a third diagram illustrating the sequence of input / output control.
  • FIG. 10 is a diagram (part 4) illustrating the sequence of input / output control. It is FIG. (5) which shows the sequence of input / output control. It is FIG. (6) which shows the sequence of input / output control. It is a figure which shows the input / output capability improved by the input / output control of embodiment.
  • FIG. 3 shows the influence of exclusive control in the input / output control of FIG.
  • the horizontal axis of FIG. 3 represents the transfer rate of input / output processing (megabytes / second, MB / S), and the vertical axis represents the frequency of IO instruction execution of a central processing unit (CPU) in one second.
  • a broken line 301 represents the target value of the CPU IO instruction execution frequency with respect to the transfer rate, and a solid line 302 represents the actual CPU IO instruction execution frequency when there is exclusive control between the IOP 111 and the CHU 112.
  • the target value of the CPU IO instruction execution frequency corresponding to the transfer rate of 17 MB / S is 850
  • the target value of the CPU IO instruction execution frequency at the point 321 on the broken line 301 corresponding to the transfer rate of 320 MB / S is 16000, whereas At point 322, the actual CPU IO instruction execution frequency is about 12900. Accordingly, the frequency of IO instruction execution by the CPU is reduced by about 3100 (about 19.4%) due to the influence of the exclusive control of FIG. 2, and the influence is greater than that of the exclusive control of FIG.
  • the process start instruction is transmitted from the first device to the second device, the process is regarded as being connected until the process end notification is returned from the second device to the first device. Therefore, after the first device transmits the maximum number of processing start instructions corresponding to the upper limit value to the second device, the first device starts a new processing start instruction until receiving a processing end notification for any of the processing start instructions. Suspend sending On the other hand, the second device can start a new connection for transmitting an asynchronous notification to the first device while the number of processing start instructions received from the first device has not reached the upper limit.
  • the first apparatus transmits a next process start instruction as soon as a process end notification is received from the second apparatus.
  • the number of processing start instructions always seems to reach the upper limit.
  • the second device sends the asynchronous notification to the first device. May not be able to be transmitted to other devices.
  • the first device transmits one or more processing start instructions within a range equal to or smaller than the first upper limit value to the second device, and the second device has a first value greater than the first upper limit value.
  • a process end notification and an asynchronous notification in response to the process start instruction are transmitted to the first device.
  • the first apparatus transmits the maximum number of process start instructions corresponding to the first upper limit value to the second apparatus
  • the first apparatus sends a process end notification for any of the process start instructions. Until it is received, transmission of a new process start instruction is suspended.
  • the second device starts a new connection for transmitting an asynchronous notification to the first device even when the number of processing start instructions received from the first device reaches the first upper limit value. can do.
  • FIG. 4 shows a configuration example of a control system that performs such control.
  • the control system of FIG. 4 includes a first device 401 and a second device 402.
  • the first device 401 includes a first communication unit 411, a first storage unit 412, and a first control unit 413.
  • the first communication unit 411 transmits a process start instruction to the second device 402, and receives a process end notification and an asynchronous notification for the process start instruction from the second device 402.
  • the first storage unit 412 stores a first upper limit value 414 that defines the number of connections used for communication between the first device 401 and the second device 402.
  • the second device 402 includes a second communication unit 421, a second storage unit 422, and a second control unit 423.
  • the second communication unit 421 receives a processing start instruction from the first device 401 and transmits a processing end notification and an asynchronous notification to the first device 401.
  • the second storage unit 422 stores a second upper limit value 424 that is larger than the first upper limit value 414.
  • the first control unit 413 controls the number of processing start instructions corresponding to processing end notifications not received from the second device 402 to a number equal to or less than the first upper limit value 414 (step 501 in FIG. 5).
  • the second control unit 423 includes the number of processing start instructions corresponding to the processing end notification not transmitted from the second device 402 to the first device 401, and the number of asynchronous notifications transmitted to the first device 401. Is controlled to a number equal to or less than the second upper limit value 424 (step 601 in FIG. 6).
  • the first upper limit value may be written as N
  • the second upper limit value may be written as M.
  • FIG. 7 shows an example of input / output control in the information processing system of the embodiment.
  • the control system 701 includes an IOP 711 and a CHU 712.
  • the IOP 711 and the CHU 712 respectively correspond to the first device 401 and the second device 402 in FIG.
  • the IOP 711 transmits an input / output processing start instruction START_IO for the IO 703-1 to IO 703-5 to the IOC 702 via the CHU 712.
  • IO703-1 to IO703-5 (IO # A to IO # E) are five logically identifiable IOs, and their IDs are #A to #E, respectively.
  • IO703-1 to IO703-5 may represent five physical IOs or may represent five logical IOs.
  • Examples of physical IO include input devices such as a keyboard and pointing device, display devices, output devices such as printers and speakers, external storage devices such as disk devices and semiconductor memories.
  • a logical IO corresponds to, for example, one of a plurality of virtual IOs realized as a plurality of virtual machines using one or more physical IOs.
  • START_IO is a processing start instruction for input / output processing from the IOP 711 to the IOC 702
  • OPTERM_STS is a processing end notification for the START_IO.
  • ASYNC_STS is an asynchronous notification indicating a change in the IO state from the IOC 702 to the IOP 711
  • ACC_STS is a response to notifications such as OPTERM_STS, ASYNC_STS, and BUSY_STS.
  • BUSY_STS is a busy notification indicating that the input / output process cannot be started because the START_IO is received from the IOP 711 instead of the ACC_STS after the ASYNC_STS is transmitted from the IOC 702 to the IOP 711.
  • BUSY is a busy notification indicating that when the number of connections in the CHU 712 is equal to or greater than the first upper limit value N, a new START_IO has been received from the IOP 711 and the START_IO cannot be accepted.
  • the first upper limit value N used for control by the IOP 711 is 3, and the second upper limit value M used by the CHU 712 for control is 4.
  • the IOP 711 transmits START_IO targeted for IO # A to the CHU 712 (procedure 721), and the CHU 712 transmits the START_IO to the IOC 702 (procedure 742).
  • the IOP 711 transmits START_IO targeted for IO # B to the CHU 712 (procedure 722), and the CHU 712 transmits the START_IO to the IOC 702 (procedure 743).
  • the IOC 702 transmits ASYNC_STS indicating the state of IO # B to the CHU 712 (procedure 741), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 723).
  • the IOP 711 discards the ASYNC_STS because it has received the ASYNC_STS related to the same IO after receiving the START_IO for the START_IO after transmitting the START_IO for the IO # B.
  • the reason why the IOP 711 may discard the ASYNC_STS is as follows.
  • the IOP 711 discards the ASYNC_STS, and the CHU 712 can perform control to transmit the START_IO to the IOC 702.
  • the state is the same as when START_IO and ASYNC_STS pass between the CHU 712 and the IOC 702. Therefore, the communication protocol between the CHU 712 and the IOC 702 is not violated.
  • the IOC 702 transmits ASYNC_STS indicating the state of IO # C to the CHU 712 (procedure 744), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 725). Further, the IOC 702 transmits ASYNC_STS indicating the state of IO # D to the CHU 712 (procedure 745), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 727).
  • the number of START_IO corresponding to the OPTERM_STS not transmitted from the CHU 712 is 2, and the number of ASYNC_STS transmitted by the CHU 712 is 2, so the number of connections between the IOP 711 and the CHU 712 is 4.
  • the number of connections 4 is equal to the second upper limit value M in the CHU 712.
  • the new START_IO for IO # E is sent to the CHU 712. Transmit (procedure 724). However, since the number of connections in the CHU 712 is equal to or greater than the first upper limit value N, the CHU 712 returns BUSY to the IOP 711 in order to suppress an increase in the number of connections (procedure 729).
  • the IOP 711 transmits ACC_STS indicating that ASYNC_STS related to IO # C has been received to the CHU 712 (procedure 726), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 746). Further, the IOP 711 transmits ACC_STS indicating that the ASYNC_STS related to IO # D has been received to the CHU 712 (procedure 728), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 747).
  • the IOC 702 transmits OPTERM_STS to the CHU 712 (procedure 748), and the CHU 712 transmits the OPTERM_STS to the IOP 711 (procedure 730). Since the IOC 702 receives the START_IO related to the same IO after transmitting the ASYNC_STS related to the IOSYNC B and before receiving the ACC_STS corresponding to the ASYNC_STS, the IOC 702 returns the BUSY_STS to the CHU 712 (step 749).
  • the IOP 711 transmits ACC_STS indicating that OPTERM_STS related to IO # A has been received to the CHU 712 (procedure 732), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 750). Also, the IOP 711 transmits ACC_STS indicating that BUSY_STS related to IO # B has been received to the CHU 712 (procedure 733), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 751).
  • the IOP 711 transmits one or more START_IOs to the CHU 112 within the range of the first upper limit value N or less, and the CHU 712 transmits OPTERM_STS and ASYNC_STS to the IOP 711 within the range of the second upper limit value M or less. To do.
  • START_IO is an instruction based on an instruction from a central processing unit (CPU) in the information processing system. Therefore, if the CHU 712 does not process the START_IO received from the IOP 711 with priority, the processing efficiency of the entire information processing system decreases.
  • the second upper limit value M is set to be equal to or lower than the first upper limit value N, only START_IO and OPTERM_STS may be transferred between the IOP 711 and the CHU 712, and other notifications such as ASYNC_STS may not be transferred. .
  • ASYNC_STS an attention to notify a screen input when the Enter key of the keyboard is pressed is known. If this attention cannot be notified to the CPU, the operator cannot operate the information processing system.
  • the CHU 712 transmits ASYNC_STS to the IOP 711 even when the number of START_IO received from the IOP 711 reaches N. A new connection can be started. Therefore, it becomes possible to transmit the attention to the IOP 711.
  • FIG. 8 shows a configuration example of the information processing system. 8 includes a control system 701, an IOC 702, a CPU 801, a memory control unit (Memory ⁇ ⁇ Control Unit, MCU) 802, a main storage unit (Main Storage Unit, MSU) 803, and IO804-1 to IO804-9. .
  • the control system 701 includes an IOP 711 and a CHU 712.
  • the MSU 803 includes a main memory 811.
  • the main memory 811 stores a system program 812 and has a hardware system area (Hardware System Area, HSA) 813.
  • the system program 812 includes an operating system (OS).
  • the CPU 801 reads the system program 812 stored in the main memory 811 via the MCU 802, interprets the system program 812, and executes it.
  • the CPU 801 transmits an IO processing instruction for instructing the start of input / output processing to the IOP 711 according to an instruction described in the system program 812 and receives an IO processing result from the IOP 711. Further, the CPU 801 receives asynchronous interrupts from the IOs 804-1 to IO804-9 via the IOP 711.
  • the MCU 802 controls access from the CPU 801 and the IOP 711 to the MSU 803.
  • the HSA 813 in the main memory 811 of the MSU 803 is an area used by the CPU 801 and the IOP 711 to perform input / output operations.
  • the HSA 813 stores an execution queue 814 for controlling the execution of input / output processing, and a flag 815 indicating whether the input / output processing related to each IO is being activated.
  • the IOP 711 includes a control processor 821, a memory 822, an MSU access unit 823, and a CHU communication unit 824.
  • the memory 822 stores a control program 825, an active IO counter 826, and a CHU transmission queue 828, and has a CHU reception buffer area 827.
  • the CHU reception buffer area 827 stores N ⁇ 1 reception buffers.
  • the control processor 821 reads the control program 825 in the memory 822, interprets the control program 825, and executes it.
  • the MSU access unit 823 accesses the main memory 811 in the MSU 803 via the MCU 802 according to an instruction from the control processor 821, and performs reading from the HSA 813 and writing to the HSA 813.
  • the CHU communication unit 824 communicates with the CHU 712 according to a command from the control processor 821.
  • the IOP 711 When the IOP 711 receives an IO processing command from the CPU 801, the IOP 711 transmits START_IO to the CHU 712, and transmits notification contents such as OPTERM_STS, ASYNC_STS, and BUSY_STS received from the CHU 712 to the CPU 801.
  • the active IO counter 826 is a count value indicating the number of IOs connected between the IOP 711 and the CHU 712, and the maximum value is N. By providing the active IO counter 826, the IOP 711 can check whether or not the number of connections in the IOP 711 has reached the maximum value N.
  • the CHU 712 includes a control processor 831, a memory 832, an IOP communication unit 833, and an IOC communication unit 834.
  • the memory 832 stores an IOP transmission queue 835, a control program 837, a connect IO counter 838, and an IOC transmission queue 840, and has an IOP reception buffer area 836 and an IOC reception buffer area 839.
  • the IOP receive buffer area 836 stores N ⁇ 1 receive buffers
  • the IOC receive buffer area 839 stores M ⁇ 1 receive buffers.
  • the control processor 831 reads the control program 837 in the memory 832 and interprets and executes the control program 837.
  • the IOP communication unit 833 communicates with the IOP 711 according to a command from the control processor 831.
  • the IOC communication unit 834 communicates with the IOC 702 according to a command from the control processor 831.
  • the CHU 712 transmits START_IO received from the IOP 711 to the IOC 702, and transmits OPTERM_STS, ASYNC_STS, BUSY_STS, etc. received from the IOC 702 to the IOP 711.
  • the connect IO counter 838 is a count value indicating the number of IOs connected between the IOP 711 and the CHU 712, and the maximum value is M. By providing the connect IO counter 838, the CHU 712 can check whether or not the number of connections in the CHU 712 has reached the maximum value M.
  • the IOC 702 includes a CHU communication unit 841 and a CHU reception buffer area 842.
  • the CHU communication unit 841 communicates with the CHU 712.
  • the CHU reception buffer area 842 stores M ⁇ 1 reception buffers.
  • the IOC 702 transmits the START_IO received from the CHU 712 to the IOs 804-1 to IO804-9. Further, the IOC 702 transmits notifications such as OPTERM_STS indicating the processing results of the input / output processing received from the IOs 804-1 to IO804-9 and ASYNC_STS indicating the asynchronous interrupts received from the IOs 804-1 to IO804-9 to the CHU 712.
  • IO804-1 to IO804-9 are nine logically identifiable IOs, and their IDs are # 01 to IO # 09, respectively.
  • the IOs 804-1 to IO804-9 may represent nine physical IOs and may represent nine logical IOs.
  • the IOs 804-1 to IO804-9 execute input / output processing according to START_IO received from the IOC 702, and transmit the processing result to the IOC 702. Further, the IOs 804-1 to IO804-9 transmit an asynchronous interrupt or the like indicating a change in the IO state to the IOC 702.
  • the number of IOs connected to the IOC 702 is not limited to nine and may be an integer of 1 or more.
  • the first upper limit value N may be an integer equal to or greater than 1
  • the second upper limit value M may be an integer equal to or greater than 2.
  • N is preferably equal to or greater than the number of virtual computers
  • the difference M ⁇ N between M and N is preferably equal to or greater than the number of virtual computers. .
  • the main memory 811, the memory 822, and the memory 832 are semiconductor memories such as Random Access Memory (RAM), for example.
  • RAM Random Access Memory
  • the system program 812, the control program 825, and the control program 837 may be stored in a Read Only Memory (ROM) instead of being stored in the RAM.
  • ROM Read Only Memory
  • the information processing system transmits a system program 812, a control program 825, or a control program 837 stored in an external storage device or a portable recording medium via the IO 804-1 to IO 804-9 to the main memory 811, the memory 822, And can be loaded into memory 832.
  • the external storage device is, for example, a magnetic disk device, an optical disk device, a magneto-optical disk device, a tape device, or the like.
  • the external storage device also includes a hard disk drive.
  • the portable recording medium is, for example, a memory device, a flexible disk, an optical disk, a magneto-optical disk, or the like.
  • the portable recording medium includes Compact Disk Read Only Memory (CD-ROM), Digital Versatile Disk (DVD), flash memory, Universal Serial Bus (USB) memory, and the like.
  • the computer-readable recording medium storing the system program 812, the control program 825, or the control program 837 includes physical (non-volatile) such as a RAM, a ROM, an external storage device, and a portable recording medium. Temporary recording media are included.
  • 9 to 14 are flowcharts showing examples of processing performed by the IOP 711.
  • 9 to 14 “IDLE” indicates that the IOP 711 is idling.
  • the IOP 711 turns on the corresponding IO flag 815 of the HSA 813 when adding 1 to the active IO counter 826, and turns off the corresponding IO flag 815 when subtracting 1 from the active IO counter 826.
  • the IOP 711 receives an IO processing command from the CPU 801 (step 901), the IOP 711 checks the active IO counter 826 (step 902). If the active IO counter 826 is smaller than N (step 902, YES), the IOP 711 adds 1 to the active IO counter 826 (step 903), and checks whether the CHU transmission queue 828 is empty (step 904).
  • the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 905). If there is a free space in the IOP reception buffer area 836 (step 905, YES), the IOP 711 transmits START_IO to the CHU 712 (step 906).
  • the IOP 711 enqueues START_IO into the execution queue 814 of the HSA 813 (step 907), and performs another process. By enqueueing START_IO into the execution queue 814, the IOP 711 suspends transmission of START_IO to the CHU 712.
  • step 904 If the CHU transmission queue 828 is not empty (step 904, NO), the IOP 711 enqueues START_IO into the CHU transmission queue 828 (step 908). If there is no free space in the IOP reception buffer area 836 (NO in step 905), the IOP 711 performs the processing in step 908.
  • the IOP 711 receives OPTERM_STS or BUSY_STS from the CHU 712 (step 1001), the IOP 711 checks whether or not the CHU transmission queue 828 is empty (step 1002). If the CHU transmission queue 828 is empty (step 1002, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1003).
  • the IOP 711 transmits ACC_STS to the CHU 712 (step 1004). Then, the IOP 711 transmits an IO processing result indicating the received notification content to the CPU 801 (step 1005), and subtracts 1 from the active IO counter 826 (step 1006).
  • step 1007 the IOP 711 enqueues ACC_STS into the CHU transmission queue 828 (step 1007). If there is no free space in the IOP reception buffer area 836 (step 1003, NO), the IOP 711 performs the process of step 1007.
  • the IOP 711 receives ASYNC_STS from the CHU 712 (step 1101), the IOP 711 refers to the flag 815 of the HSA 813 and checks whether an input / output process related to the same IO is being activated (step 1102). If the input / output processing related to the same IO is being activated (step 1101, YES), the IOP 711 discards ASYNC_STS (step 1107).
  • the IOP 711 checks whether or not the CHU transmission queue 828 is empty (step 1103). If the CHU transmission queue 828 is empty (step 1103, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1104). If there is an empty IOP reception buffer area 836 (step 1104, YES), the IOP 711 transmits ACC_STS to the CHU 712 (step 1105), and transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (step 1106).
  • the IOP 711 adds 1 to the active IO counter 826 (step 1108), and enqueues ACC_STS into the CHU transmission queue 828 (step 1109). If there is no free space in the IOP reception buffer area 836 (step 1104, NO), the IOP 711 performs the processing from step 1108 onward.
  • the IOP 711 receives BUSY from the CHU 712 (step 1201), it subtracts 1 from the active IO counter 826 (step 1202) and enqueues START_IO into the execution queue 814 of the HSA 813 (step 1203).
  • the IOP 711 checks whether or not the CHU transmission queue 828 is empty at a predetermined timing (step 1301). If the CHU transmission queue 828 is not empty (step 1301, NO), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1302).
  • the IOP 711 dequeues the head information from the CHU transmission queue 828 (step 1303) and checks whether the information is START_IO (step 1304). .
  • the IOP 711 transmits the START_IO to the CHU 712 (step 1305).
  • the IOP 711 subtracts 1 from the active IO counter 826 (step 1306), and transmits the ACC_STS to the CHU 712 (step 1307). Then, the IOP 711 checks whether or not the transmitted ACC_STS is a response to the ASYNC_STS (step 1308).
  • IOP 711 transmits the IO processing result to CPU 801 (step 1309).
  • the IOP 711 transmits an asynchronous interrupt to the CPU 801 (step 1310).
  • the IOP 711 performs another process. If there is no free space in IOP reception buffer area 836 (step 1003, NO), IOP 711 performs another process.
  • the IOP 711 checks whether or not the execution queue 814 of the HSA 813 is empty at a predetermined timing (step 1401). If the execution queue 814 is not empty (step 1401, NO), the IOP 711 checks the active IO counter 826 (step 1402).
  • the IOP 711 dequeues the first START_IO from the execution queue 814 (step 1403).
  • the IOP 711 adds 1 to the active IO counter 826 (step 1404) and checks whether the CHU transmission queue 828 is empty (step 1405). If the CHU transmission queue 828 is empty (step 1405, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1406).
  • the IOP 711 transmits START_IO to the CHU 712 (step 1407).
  • step 1401 if the execution queue 814 is empty (step 1401, YES), the IOP 711 performs another process. If the active IO counter 826 has reached N (step 1402, NO), the IOP 711 performs another process.
  • step 1405, NO the IOP 711 enqueues START_IO into the CHU transmission queue 828 (step 1408). If there is no free space in the IOP reception buffer area 836 (step 1406, NO), the IOP 711 performs the processing of step 1408.
  • 15 to 20 are flowcharts showing examples of processing performed by the CHU 712. 15 to 20, “IDLE” indicates that the CHU 712 is in an idling state.
  • step 1501 the CHU 712 receives START_IO from the IOP 711 (step 1501), the CHU 712 transmits an ASYNC_STS related to the same IO to the IOP 711 and checks whether or not it is waiting for a response (step 1502). If not waiting for a response (step 1502, NO), the CHU 712 checks the connect IO counter 838 (step 1503).
  • the CHU 712 adds 1 to the connect IO counter 838 (step 1404) and checks whether the IOC transmission queue 840 is empty (step 1505). If the IOC transmission queue 840 is empty (step 1505, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1506).
  • the CHU 712 transmits START_IO to the IOC 702 (step 1507).
  • step 1505 if the IOC transmission queue 840 is not empty (step 1505, NO), the CHU 712 enqueues START_IO into the IOC transmission queue 840 (step 1509). If there is no free space in the CHU reception buffer area 842 (step 1506, NO), the CHU 712 performs the processing of step 1509.
  • step 1502 If it is waiting for a response to ASYNC_STS (step 1502, YES), the CHU 712 cancels the response waiting (step 1508) and performs the processing from step 1505 onward.
  • the CHU 712 checks whether or not the IOP transmission queue 835 is empty (step 1510). If the IOP transmission queue 835 is empty (step 1510, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1511).
  • step 1511, YES If there is an empty space in the CHU reception buffer area 827 (step 1511, YES), the CHU 712 transmits BUSY to the IOP 711 (step 1512). If the IOP transmission queue 835 is not empty (NO in step 1510), the CHU 712 enqueues BUSY in the IOP transmission queue 835 (step 1513). If there is no free space in the CHU reception buffer area 827 (step 1511, NO), the CHU 712 performs the process of step 1513.
  • the CHU 712 receives OPTERM_STS or BUSY_STS from the IOC 702 (step 1601), the CHU 712 checks whether or not the IOP transmission queue 835 is empty (step 1602). If the IOP transmission queue 835 is empty (step 1602, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1603).
  • the CHU 712 transmits the received notification to the IOP 711 (step 1604). If the IOP transmission queue 835 is not empty (step 1602, NO), the CHU 712 enqueues the received notification in the IOP transmission queue 835 (step 1605). If there is no free space in the CHU reception buffer area 827 (step 1603, NO), the CHU 712 performs the process of step 1605.
  • the CHU 712 receives the ASYNC_STS from the IOC 702 (step 1701), the CHU 712 transmits a START_IO related to the same IO to the IOC 702 to check whether it is waiting for a response (step 1702). If not waiting for a response (step 1702, NO), the CHU 712 checks the connect IO counter 838 (step 1703).
  • the CHU 712 adds 1 to the connect IO counter 838 (step 1704) and checks whether the IOP transmission queue 835 is empty (step 1705). If the IOP transmission queue 835 is empty (step 1705, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1706).
  • step 1706 If there is an empty space in the CHU reception buffer area 827 (step 1706, YES), the CHU 712 transmits ASYNC_STS to the IOP 711 (step 1707). If the IOP transmission queue 835 is not empty (step 1705, NO), the CHU 712 enqueues ASYNC_STS into the IOP transmission queue 835 (step 1709). If there is no free space in the CHU reception buffer area 827 (step 1706, NO), the CHU 712 performs the processing of step 1709.
  • the CHU 712 discards the received ASYNC_STS and cancels waiting for a response to the ASYNC_STS (step 1708).
  • the CHU 712 checks whether or not the IOC transmission queue 840 is empty (step 1710). If the IOC transmission queue 840 is empty (step 1710, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1711).
  • the CHU 712 transmits BUSY to the IOC 702 (step 1712).
  • This BUSY is a busy notification indicating that the ASYNC_STS cannot be accepted because a new ASYNC_STS is received from the IOC 702 when the connect IO counter 838 is equal to or greater than M.
  • the CHU 712 suppresses transmission of ASYNC_STS to the IOP 711 by transmitting BUSY to the IOC 702.
  • the CHU 712 enqueues BUSY into the IOC transmission queue 840 (step 1713). If there is no free space in the CHU reception buffer area 842 (step 1711, NO), the CHU 712 performs the process of step 1713.
  • the CHU 712 receives ACC_STS from the IOP 711 (step 1801), the CHU 712 checks whether or not the IOC transmission queue 840 is empty (step 1802). If the IOC transmission queue 840 is empty (step 1802, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1803).
  • the CHU 712 transmits ACC_STS to the IOC 702 (step 1804) and subtracts 1 from the connect IO counter 838 (step 1805).
  • step 1802 if the IOC transmission queue 840 is not empty (step 1802, NO), the CHU 712 enqueues ACC_STS into the IOC transmission queue 840 (step 1806). If there is no free space in the CHU reception buffer area 842 (step 1803, NO), the CHU 712 performs the process of step 1806.
  • the CHU 712 checks whether or not the IOC transmission queue 840 is empty at a predetermined timing (step 1901). If the IOC transmission queue 840 is not empty (NO in step 1901), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1902).
  • the CHU 712 dequeues the top information from the IOC transmission queue 840 (step 1903) and checks whether the information is START_IO (step 1904). .
  • the CHU 712 transmits the START_IO to the IOC 702 (step 1905).
  • the CHU 712 checks whether the information is ACC_STS (step 1906). If the head information is ACC_STS (step 1906, YES), the CHU 712 subtracts 1 from the connect IO counter 838 (step 1907) and transmits the ACC_STS to the IOC 702 (step 1908).
  • the CHU 712 transmits the BUSY to the IOC 702 (step 1909).
  • the CHU 712 performs another process. If there is no free space in the CHU reception buffer area 842 (step 1902, NO), the CHU 712 performs another process.
  • the CHU 712 checks whether or not the IOP transmission queue 835 is empty at a predetermined timing (step 2001). If the IOP transmission queue 835 is not empty (step 2001, NO), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 2002).
  • the CHU 712 dequeues the head information from the IOP transmission queue 835 (step 2003). Then, the CHU 712 checks whether or not the information is one of OPTERM_STS or BUSY_STS (step 2004).
  • the CHU 712 transmits the notification to the IOP 711 (step 2005).
  • the CHU 712 checks whether the information is ASYNC_STS (step 2006). If the head information is ASYNC_STS (step 2006, YES), the CHU 712 transmits the ASYNC_STS to the IOP 711 (step 2007).
  • the CHU 712 transmits the BUSY to the IOP 711 (step 2008).
  • the CHU 712 performs another process. If there is no free space in the CHU reception buffer area 827 (step 2002, NO), the CHU 712 performs another process.
  • 9 to 20 are merely examples, and some processes may be omitted or changed according to the configuration and conditions of the information processing system, and the order of steps may be changed.
  • the counter addition processing in step 903 may be moved after step 906 or step 908.
  • the counter subtraction process in step 1006 may be moved before or after step 1004.
  • the counter addition process in step 1108 may be moved after step 1109.
  • the counter subtraction process in step 1202 may be moved after step 1203.
  • the counter subtraction process in step 1306 may be moved after step 1307, or may be moved after step 1309 or step 1310.
  • the counter addition process in step 1404 may be moved before step 1403 or may be moved after step 1407 or step 1408.
  • the counter addition process in step 1704 may be moved after step 1707 or step 1709.
  • the counter subtraction process in step 1805 may be moved before step 1804.
  • the counter subtraction process in step 1907 may be moved after step 1908.
  • an integer greater than N and equal to or less than M may be used instead of the threshold value N compared with the connect IO counter 838.
  • FIGS. 21 to 26 show the input / output control sequence of FIG. 7 in the information processing system of FIG. However, in FIGS. 21 to 26, IO703-1 to IO703-5 of FIG. 7 are used instead of IO804-1 to IO804-9 of FIG. The order of procedures in FIGS. 21 to 26 may be different from the order of steps in the flowcharts of FIGS. 9 to 20.
  • the first upper limit value N is 3, and the second upper limit value M is 4. Therefore, each of the CHU reception buffer area 827 and the IOP reception buffer area 836 has two reception buffers, and each of the IOC reception buffer area 839 and the CHU reception buffer area 842 has three reception buffers.
  • Procedures 2102 to 2113 correspond to the process of FIG. 9, and procedures 2114 to 2115 correspond to the process of FIG.
  • Procedures 2122 to 2128 correspond to the process of FIG. 17, and procedures 2129 to 2140 correspond to the process of FIG.
  • the control processor 821 of the IOP 711 sets an initial value 0 to the active IO counter 826 (procedure 2101).
  • the control processor 821 checks the active IO counter 826 (procedure 2103). Since the active IO counter 826 is 0 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2104) and checks the CHU transmission queue 828 (procedure 2105).
  • the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2107). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (procedure 2108).
  • the control processor 831 of the CHU 712 sets an initial value 0 to the connect IO counter 838 (procedure 2121).
  • the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2151). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # B to the CHU 712 (procedure 2152).
  • control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # B (procedure 2122). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # B (step 2123).
  • the control processor 831 checks the connect IO counter 838 (procedure 2124). Since the connect IO counter 838 is 0 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2125) and checks the IOP transmission queue 835 (procedure 2126).
  • the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2127). Since there are two empty reception buffers in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2128).
  • control processor 831 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # A (step 2129). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS regarding IO # A (step 2130).
  • the control processor 831 checks the connect IO counter 838 (procedure 2131). Since the connect IO counter 838 is 1 and smaller than N, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2132) and checks the IOC transmission queue 840 (procedure 2133).
  • the control processor 831 checks the CHU reception buffer area 842 of the IOC 702 (procedure 2134). Since there are three empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits START_IO to the IOC 702 (procedure 2135).
  • control processor 821 of the IOP 711 receives an IO processing instruction for IO # B from the CPU 801 (procedure 2106), it checks the active IO counter 826 (procedure 2109). Since the active IO counter 826 is 1 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2110) and checks the CHU transmission queue 828 (procedure 2111).
  • the control processor 821 checks the IOP reception buffer area 836 (procedure 2112). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (procedure 2113).
  • control processor 821 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # B (procedure 2114). Therefore, the control processor 821 checks whether or not the input / output processing related to IO # B is being activated (procedure 2115). Since the input / output processing related to IO # B is being activated, the control processor 821 discards ASYNC_STS.
  • the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2153). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # C to the CHU 712 (procedure 2154).
  • the control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # B (step 2136). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS regarding IO # B (step 2137).
  • the control processor 831 Since it is waiting for a response, the control processor 831 releases the response wait and checks the IOC transmission queue 840 (step 2138). Since the IOC transmission queue 840 is empty, the control processor 831 checks the CHU reception buffer area 842 of the IOC 702 (procedure 2139). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits START_IO to the IOC 702 (procedure 2140).
  • the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2155). Since there are two empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # D to the CHU 712 (procedure 2156).
  • Procedures 2201 to 2214 correspond to the processing of FIG. 17, and procedures 2221 to 2226 correspond to the processing of FIG.
  • the control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # C (procedure 2201). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # C (step 2202).
  • the control processor 831 checks the connect IO counter 838 (procedure 2203). Since the connect IO counter 838 is 2 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2204) and checks the IOP transmission queue 835 (procedure 2205).
  • the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2206). Since there are two empty reception buffers in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2207).
  • control processor 831 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # D (procedure 2208). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # D (step 2209).
  • the control processor 831 checks the connect IO counter 838 (procedure 2210). Since the connect IO counter 838 is 3 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2211) and checks the IOP transmission queue 835 (procedure 2212).
  • the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2213). Since there is one empty reception buffer in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2214).
  • control processor 821 of the IOP 711 receives an IO processing instruction for IO # E from the CPU 801 (procedure 2221), it checks the active IO counter 826 (procedure 2222). Since the active IO counter 826 is 2 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2223) and checks the CHU transmission queue 828 (procedure 2224).
  • the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2225). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (step 2226).
  • Procedures 2301 to 2310 correspond to the process of FIG. 11, and procedures 2311 to 2313 correspond to the process of FIG.
  • Procedures 2321 to 2325 correspond to the process of FIG. 15, and procedures 2326 to 2333 correspond to the process of FIG.
  • the control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # C (procedure 2301). Accordingly, the control processor 821 checks whether or not the input / output processing related to IO # C is being activated (procedure 2302).
  • the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2303). Since there is one empty reception buffer in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for ASYNC_STS to the CHU 712 (procedure 2304). Then, the control processor 821 transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (procedure 2305).
  • control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # E (procedure 2321). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS related to IO # E (step 2322).
  • the control processor 831 checks the connect IO counter 838 (procedure 2323). Since the connect IO counter 838 is 4 and is equal to or greater than N, the control processor 831 checks whether or not there is a free space in the CHU reception buffer area 827 of the IOP 711 (step 2324).
  • control processor 831 transmits BUSY indicating that START_IO related to IO # E cannot be accepted to the IOP 711 (step 2325).
  • control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # D (procedure 2306). Therefore, the control processor 821 checks whether the input / output processing relating to IO # D is being activated (step 2307).
  • the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2308). Since there is one empty reception buffer in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for ASYNC_STS to the CHU 712 (step 2309). Then, the control processor 821 transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (procedure 2310).
  • control processor 821 refers to the CHU reception buffer area 827 and detects the reception of BUSY related to IO # E (procedure 2311). Therefore, the control processor 821 enqueues START_IO related to IO # E into the execution queue 814 of the HSA 813 (procedure 2312), and subtracts 1 from the active IO counter 826 (procedure 2313).
  • the IOC 702 refers to the CHU reception buffer area 842 and detects reception of START_IO related to IO # A (procedure 2341). Therefore, the IOC 702 transmits the START_IO to the IO # A.
  • the control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # C (procedure 2326). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2327), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2328). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (step 2329).
  • the IOC 702 refers to the CHU reception buffer area 842 to detect reception of START_IO related to IO # B (procedure 2342). Therefore, the IOC 702 transmits the START_IO to the IO # B.
  • control processor 831 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # D (procedure 2330). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2331), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2332). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (procedure 2333).
  • Procedures 2411 to 2416 correspond to the process of FIG. 16
  • procedures 2417 to 2424 correspond to the process of FIG. 18
  • procedures 2431 to 2440 correspond to the process of FIG.
  • the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2401). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits OPTERM_STS indicating the result of IO # A input / output processing to the CHU 712 (procedure 2402).
  • control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of OPTERM_STS related to IO # A (procedure 2411). Therefore, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2412). Since there are two free reception buffers in the CHU reception buffer area 827, the control processor 831 transmits OPTERM_STS to the IOP 711 (step 2413).
  • the IOC 702 Since the IOC 702 receives the START_IO related to the IO # B after transmitting the ASYNC_STS related to the IO # B, the IOC 702 cannot start the input / output processing of the IO # B. Therefore, the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 in order to transmit BUSY_STS as a response to START_IO (procedure 2403). Since there are three empty reception buffers in the IOC reception buffer area 839, BUSY_STS related to IO # B is transmitted to the CHU 712 (procedure 2404).
  • control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of BUSY_STS related to IO # B (procedure 2414). Therefore, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2415). Since there is one empty reception buffer in the CHU reception buffer area 827, the control processor 831 transmits BUSY_STS to the IOP 711 (step 2416).
  • the IOC 702 refers to the CHU reception buffer area 842 to detect reception of ACC_STS related to IO # C (procedure 2405). Next, the IOC 702 refers to the CHU reception buffer area 842 and detects reception of ACC_STS related to IO # D (procedure 2406).
  • control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of OPTERM_STS related to IO # A (procedure 2431). Therefore, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2432).
  • the control processor 821 transmits ACC_STS for OPTERM_STS to the CHU 712 (procedure 2433). Then, the control processor 821 transmits an IO processing result indicating the notification contents of OPTERM_STS to the CPU 801 (procedure 2434), and subtracts 1 from the active IO counter 826 (procedure 2435).
  • the control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # A (procedure 2417). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2418), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2419). Since there are three empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (procedure 2420).
  • the IOC 702 refers to the CHU reception buffer area 842 and detects reception of ACC_STS related to IO # A (procedure 2407).
  • the control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of BUSY_STS related to IO # B (procedure 2436). Therefore, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2437).
  • the control processor 821 transmits ACC_STS for BUSY_STS to the CHU 712 (procedure 2438). Then, the control processor 821 transmits a busy notification indicating the notification content of BUSY_STS to the CPU 801 (procedure 2439), and subtracts 1 from the active IO counter 826 (procedure 2440).
  • the control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # B (procedure 2421). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2422), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2423). Since there are three free reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (step 2424).
  • the IOC 702 refers to the CHU reception buffer area 842 to detect reception of ACC_STS related to IO # B (procedure 2408).
  • the first upper limit value N is 3, and the second upper limit value M is 4. Therefore, each of the CHU reception buffer area 827 and the IOP reception buffer area 836 has two reception buffers, and each of the IOC reception buffer area 839 and the CHU reception buffer area 842 has three reception buffers.
  • the IOP 711 receives an IO processing instruction related to IO # 01 to IO # 04 from the CPU 801, and performs the following processing corresponding to FIG.
  • the IOP 711 When the IOP 711 receives an IO processing instruction related to IO # 01 to IO # 03, since the active IO counter 826 is smaller than N, the IOP 711 adds 1 to the active IO counter 826.
  • the IOP 711 When the IOP 711 receives an IO processing instruction related to IO # 01 and IO # 02, the IOP 711 transmits START_IO to the CHU 712 because there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712.
  • the IOP 711 When the IOP 711 receives an IO processing instruction related to IO # 03, the IOP 711 enqueues START_IO into the CHU transmission queue 828 because there is no empty reception buffer in the IOP reception buffer area 836.
  • the IOP 711 enqueues START_IO into the execution queue 814 of the HSA 813 when the I / O processing instruction related to the IO # 04 is received because the active IO counter 826 reaches N.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 0, and the active IO counter 826 is 3.
  • the IOC 702 receives asynchronous interrupts from IO # 02 and IO # 05 to IO # 09, respectively.
  • the IOC 702 transmits ASYNC_STS to the CHU 712 for three asynchronous interrupts corresponding to the number of reception buffers included in the IOC reception buffer area 839 of the CHU 712 among the six asynchronous interrupts received.
  • the IOC 702 transmits ASYNC_STS to the CHU 712 for the three asynchronous interrupts from IO # 02, IO # 05, and IO # 06. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is zero.
  • the CHU 712 performs the following processing corresponding to FIGS. 15 and 17.
  • the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than N, and transmits the START_IO to the IOC 702.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 2.
  • the CHIO 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M, and transmits the ASYNC_STS to the IOP 711.
  • the number of empty reception buffers in the IOC reception buffer area 839 is 1, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1.
  • the CHU 712 When the CHU 712 receives the START_IO related to the IO # 02 from the IOP 711, the CHU 712 transmits the ASYNC_STS related to the same IO to the IOP 711 and waits for a response. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1.
  • the CHIO 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M, and transmits the ASYNC_STS to the IOP 711.
  • the number of empty reception buffers in the IOC reception buffer area 839 is 2
  • the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
  • the CHU 712 When receiving the ASYNC_STS related to IO # 06 from the IOC 702, the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M. However, since there is no empty reception buffer in the CHU reception buffer area 827 of the IOP 711, the CHU 712 enqueues ASYNC_STS related to IO # 06 into the IOP transmission queue 835.
  • the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the connect IO counter 838 is 4.
  • the IOP 711 performs the following processing corresponding to FIG. Since the IOP 711 has a free reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 transmits START_IO related to IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1.
  • the IOP 711 receives ASYNC_STS related to IO # 02 and IO # 05, and performs the following processing corresponding to FIG.
  • the IOP 711 When the IOP 711 receives the ASYNC_STS related to the IO # 02, the IOP 711 discards the ASYNC_STS because the input / output processing related to the same IO is being activated. At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 1.
  • the IOP 711 When the IOP 711 receives ASYNC_STS related to IO # 05, the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS to the CHU 712 and transmits an asynchronous interrupt to the CPU 801.
  • the number of empty reception buffers in the CHU reception buffer area 827 is 2
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 3.
  • the IOC 702 transmits an ASYNC_STS regarding IO # 07, IO # 08, and IO # 09 to the CHU 712 because an empty reception buffer has been created in the IOC reception buffer area 839 of the CHU 712. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is zero.
  • the IOC 702 receives START_IO related to IO # 01 and IO # 02, and transmits these START_IO to IO # 01 and IO # 02. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
  • the CHU 712 performs the following processing corresponding to FIG. Since the CHU 712 has an empty reception buffer in the CHU reception buffer area 827 of the IOP 712, the CHU 712 transmits ASYNC_STS related to IO # 06 to the IOP 711. At this time, the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 712 is 1.
  • the CHU 712 performs the following processing corresponding to FIG. 15, FIG. 17, and FIG.
  • the CHU 712 transmits BUSY to the IOP 711 because the connect IO counter 838 has reached N.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
  • the connect IO counter 838 reaches M, and the CHU reception buffer area 842 of the IOC 702 has an empty reception buffer. Therefore, the CHU 712 transmits BUSY to the IOC 702. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 0.
  • the CHU 712 When receiving the ACC_STS related to IO # 05 from the IOP 711, the CHU 712 enqueues the ACC_STS in the IOC transmission queue 840 because there is no empty reception buffer in the CHU reception buffer area 842 of the IOC 702. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, and the connect IO counter 838 is 4.
  • the IOP 711 performs the following processing corresponding to FIG.
  • the IOP 711 receives ASYNC_STS related to IO # 06, the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS to the CHU 712 and transmits an asynchronous interrupt to the CPU 801.
  • the number of empty reception buffers in the CHU reception buffer area 827 is 1
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1.
  • the IOP 711 performs the following processing corresponding to FIG.
  • the IOP 711 receives BUSY from the CHU 712 for the START_IO related to the IO # 03, the IOP 711 subtracts 1 from the active IO counter 826 and enqueues the START_IO into the execution queue 814 of the HSA 813.
  • the number of empty reception buffers in the CHU reception buffer area 827 is two.
  • the IOP 711 performs the following processing corresponding to FIG. START_IO related to IO # 04 is enqueued in the execution queue 814, the active IO counter 826 is smaller than N, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 adds 1 to the active IO counter 826 and transmits START_IO related to IO # 04 to the CHU 712.
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0 and the active IO counter 826 is 3.
  • the IOC 702 receives BUSY from the CHU 712 to the ASYNC_STS related to the IO # 07, IO # 08, and IO # 09, and notifies the IO # 07, IO # 08, Send to IO # 09.
  • the IOC 702 receives the processing results from the IO # 01 and the IO # 02 and transmits OPTERM_STS regarding the IO # 01 and the IO # 02 to the CHU 712.
  • the number of empty reception buffers in the CHU reception buffer area 842 is 3, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is 1.
  • the CHU 712 performs the following processing corresponding to FIG. Since the CHU 712 has an empty reception buffer in the CHU reception buffer area 842 of the IOC 702, the CHU 712 subtracts 1 from the connect IO counter 838 and transmits ACC_STS related to IO # 05 to the IOC 702. At this time, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is two.
  • the CHU 712 performs the following processing corresponding to FIG. 18, FIG. 16, and FIG.
  • the CHU 712 receives the ACC_STS related to the IO # 06 from the IOP 711
  • the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 1
  • the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1
  • the connect IO counter 838 is 2.
  • the CHU 712 When the CHU 712 receives the OPTERM_STS related to the IO # 01 and IO # 02 from the IOC 702, the CHU712 transmits the OPTERM_STS to the IOP711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
  • the CHU 712 When receiving the START_IO related to IO # 04 from the IOP 711, the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than N.
  • the CHU 712 transmits START_IO related to IO # 04 to the IOC 702 because there is an empty reception buffer in the CHU reception buffer area 842 of the IOC 702.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 2
  • the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 0, and the connect IO counter 838 is 3.
  • the IOP 711 performs the following processing corresponding to FIG.
  • the IOP 711 receives OPTERM_STS related to IO # 01 and IO # 02
  • the CHU transmission queue 828 is empty
  • the IOP reception buffer area 836 of the CHU 712 has an empty reception buffer. Therefore, the IOP 711 transmits ACC_STS for the received OPTERM_STS to the CHU 712, transmits the IO processing result indicated by the received OPTERM_STS to the CPU 801, and subtracts 1 from the active IO counter 826.
  • the number of empty reception buffers in the CHU reception buffer area 827 is 2
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 1.
  • the IOP 711 performs the following processing corresponding to FIG. Since START_IO related to IO # 03 is enqueued in the execution queue 814 and the active IO counter 826 is smaller than N, the IOP 711 adds 1 to the active IO counter 826. However, since there is no empty reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 enqueues START_IO related to IO # 03 to the CHU transmission queue 828. At this point, the active IO counter 826 is 2.
  • the IOC 702 receives the ACC_STS related to the IO # 05 and the IO # 06, and transmits a notification indicating that the asynchronous interrupt is accepted to the IO # 05 and the IO # 06.
  • the IOC 702 receives the START_IO related to the IO # 04 and transmits the START_IO to the IO # 04. Then, the IOC 702 receives the processing result from the IO # 04 and transmits OPTERM_STS related to the IO # 04 to the CHU 712. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is 3, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is 2.
  • the CHU 712 performs the following processing corresponding to FIG.
  • the CHU 712 receives the ACC_STS related to IO # 01 and IO # 02 from the IOP 711
  • the CHU 712 transmits the received ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 2
  • the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1.
  • the CHU 712 performs the following processing corresponding to FIG.
  • the CHU 712 receives the OPTERM_STS related to the IO # 04 from the IOC 702
  • the CHU 712 transmits the OPTERM_STS to the IOP 711.
  • the number of empty reception buffers in the IOC reception buffer area 839 is 3
  • the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1
  • the connect IO counter 838 is 1.
  • the IOP 711 performs the following processing corresponding to FIG. Since the IOP 711 has a free reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 transmits START_IO related to IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1.
  • the IOP 711 performs the following processing corresponding to FIG.
  • the IOP 711 receives OPTERM_STS related to IO # 04
  • the CHU transmission queue 828 is empty
  • the IOP reception buffer area 836 of the CHU 712 has an empty reception buffer. Therefore, the IOP 711 transmits ACC_STS regarding IO # 04 to the CHU 712, transmits the IO processing result regarding IO # 04 to the CPU 801, and subtracts 1 from the active IO counter 826.
  • the number of empty reception buffers in the CHU reception buffer area 827 is 2
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 1.
  • the IOC 702 receives the ACC_STS related to the IO # 01 and the IO # 02, and transmits a notification indicating that the processing result is accepted to the IO # 01 and the IO # 02. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
  • the CHU 712 performs the following processing corresponding to FIG.
  • the connect IO counter 838 is smaller than N, and thus 1 is added to the connect IO counter 838.
  • the CHU 712 transmits START_IO related to IO # 03 to the IOC 702 because there is an empty reception buffer in the CHU reception buffer area 842 of the IOC 702.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is two.
  • the CHU 712 performs the following processing corresponding to FIG.
  • the CHU 712 receives the ACC_STS related to the IO # 04 from the IOP 711
  • the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838.
  • the number of empty reception buffers in the IOP reception buffer area 836 is 2
  • the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1
  • the connect IO counter 838 is 1.
  • the IOC 702 receives START_IO related to IO # 03 and transmits the START_IO to IO # 03. Then, the IOC 702 receives the processing result from the IO # 03 and transmits OPTERM_STS related to the IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is two, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is two.
  • the IOC 702 receives the ACC_STS related to the IO # 04 and transmits a notification indicating that the processing result has been accepted to the IO # 04.
  • the number of empty reception buffers in the CHU reception buffer area 842 is three.
  • the CHU 712 performs the following processing corresponding to FIG.
  • the CHU 712 receives OPTERM_STS related to IO # 03 from the IOC 702
  • the CHU 712 transmits the OPTERM_STS to the IOP 711.
  • the number of empty reception buffers in the IOC reception buffer area 839 is 3
  • the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1
  • the connect IO counter 838 is 1.
  • the IOP 711 performs the following processing corresponding to FIG.
  • the IOP 711 receives OPTERM_STS related to IO # 03
  • the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS related to IO # 03 to the CHU 712, transmits the IO processing result related to IO # 03 to the CPU 801, and subtracts 1 from the active IO counter 826.
  • the number of empty reception buffers in the CHU reception buffer area 827 is 2
  • the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1
  • the active IO counter 826 is 0.
  • the CHU 712 When receiving the ACC_STS related to IO # 03 from the IOP 711, the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 2, and the connect IO counter 838 is 0.
  • the IOC 702 receives the ACC_STS related to the IO # 03 and transmits a notification indicating that the processing result has been accepted to the IO # 03. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
  • FIG. 27 shows the input / output capability improved by the input / output control of the embodiment.
  • the horizontal and vertical axes in FIG. 27 represent the transfer rate and the CPU instruction execution frequency, as in FIG.
  • a broken line 2501 represents the target value of the CPU IO instruction execution frequency with respect to the transfer rate
  • a solid line 2502 represents the actual CPU IO instruction execution frequency by the input / output control of the embodiment.
  • the target value of the CPU IO instruction execution frequency is 16000, whereas at the point 2522 on the solid line 2502, the actual CPU IO instruction execution frequency is About 15500. Therefore, according to the input / output control of the embodiment, the decrease of the CPU IO instruction execution frequency is about 500, which is improved by about 2600 compared with the decrease of the CPU IO instruction execution frequency by the exclusive control of FIG. I understand that In terms of the time required for control per input / output process, this corresponds to a reduction from about 15 ⁇ s to 2 ⁇ s.
  • the input / output control of the embodiment it is possible to prevent the throughput of the input / output processing, which has been improved by eliminating the exclusive control between the CHU and the IOC, from being lowered.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

An objective of the present invention is, even if a plurality of process commencement instructions are transmitted from a first device to a second device, to transfer the process commencement instructions, a process termination notification, and an asynchronous notification, without carrying out an exclusivity control between the first device and the second device. A first upper bound value regulates the number of connections which are employed in communication between the first device and the second device. The first device controls the number of process commencement instructions among the process commencement instructions which are transmitted from the first device to the second device for which a process termination notification with respect to the process commencement instruction is not received from the second device to be less than or equal to the first upper bound. The second device controls the sum of the number of the process commencement instructions corresponding to the process termination instructions which are not transmitted from the second device to the first device and the number of the asynchronous notifications which are transmitted from the second device to the first device to less than or equal to a second upper bound value which is greater than the first upper bound value.

Description

制御システム、制御方法、及びプログラムControl system, control method, and program
 本発明は、制御システム、制御方法、及びプログラムに関する。 The present invention relates to a control system, a control method, and a program.
 図1は、従来の情報処理システムにおける第1の入出力制御を示している。制御システム101は、入出力プロセッサ(Input/Output Processor,IOP)111、チャネル装置(Channel Unit,CHU)112、及びIOP111とCHU112の間のインタフェース121を含む。 FIG. 1 shows the first input / output control in the conventional information processing system. The control system 101 includes an input / output processor (IOP) 111, a channel device (CHU) 112, and an interface 121 between the IOP 111 and the CHU 112.
 IOP111は、CHU112を介して、入出力制御装置(Input/Output Controller,IOC)102へ、入出力装置(Input/Output Device,IO)103-1~IO103-3を対象とする入出力処理の処理開始指示START_IOを送信する。IO103-1~IO103-3(IO#A~IO#C)は、論理的に識別可能な3つのIOであり、それらの識別情報(ID)はそれぞれ#A~#Cである。IO103-1~IO103-3は、3つの物理的なIOを表す場合もあり、3つの論理的なIOを表す場合もある。 The IOP 111 performs input / output processing for the input / output devices (Input / Output / Device, IO) 103-1 to IO 103-3 to the input / output control device (Input / Output / Controller, IOC) 102 via the CHU 112. A start instruction START_IO is transmitted. IO 103-1 to IO 103-3 (IO # A to IO # C) are three logically identifiable IOs, and their identification information (ID) is #A to #C, respectively. The IOs 103-1 to IO103-3 may represent three physical IOs or may represent three logical IOs.
 IOC102は、CHU112を介して、IO103-1~IO103-3の状態を示す通知をIOP111へ送信し、IOP111は、CHU112を介して、通知に対する応答ACC_STSをIOC102へ送信する。 The IOC 102 transmits notifications indicating the states of the IO 103-1 to IO 103-3 to the IOP 111 via the CHU 112, and the IOP 111 transmits a response ACC_STS to the notification to the IOC 102 via the CHU 112.
 IOC102からIOP111へ送信される通知には、処理終了通知OPTERM_STS、非同期通知ASYNC_STS、及びビジー通知BUSY_STSが含まれる。処理終了通知OPTERM_STSは、START_IOに対する入出力処理の終了を示す通知であり、非同期通知ASYNC_STSは、START_IOには依存しないIO状態の変化を示す通知である。また、ビジー通知BUSY_STSは、非同期通知ASYNC_STSを送信しようとしているときにSTART_IOを受信したため、入出力処理を開始できないことを示す通知である。 The notification transmitted from the IOC 102 to the IOP 111 includes a processing end notification OPTERM_STS, an asynchronous notification ASYNC_STS, and a busy notification BUSY_STS. The process end notification OPTERM_STS is a notification indicating the end of input / output processing for START_IO, and the asynchronous notification ASYNC_STS is a notification indicating a change in IO state independent of START_IO. The busy notification BUSY_STS is a notification indicating that the input / output process cannot be started because the START_IO is received while attempting to transmit the asynchronous notification ASYNC_STS.
 このように、IOP111とIOC102の間の通信はCHU112を介して行われるため、IOP111からのSTART_IOと、IOC102からのASYNC_STSとが、CHU112内ですれ違う場合がある。しかし、CHU112とIOC102の間の通信プロトコルにおいて、接続中に動作可能なIOの数は1に規定されているため、例えば、次のような排他制御が行われる。 Thus, since communication between the IOP 111 and the IOC 102 is performed via the CHU 112, the START_IO from the IOP 111 and the ASYNC_STS from the IOC 102 may be different in the CHU 112. However, in the communication protocol between the CHU 112 and the IOC 102, since the number of IOs that can be operated during connection is defined as 1, for example, the following exclusive control is performed.
 まず、IOP111は、IO#Aを対象とするSTART_IOを送信するためにインタフェース121を予約し(手順131)、予約に成功すると(RSV_SUCC)、START_IOをCHU112へ送信する(手順133)。そして、CHU112は、そのSTART_IOをIOC102へ送信する(手順153)。 First, the IOP 111 reserves the interface 121 to transmit the START_IO for IO # A (procedure 131), and when the reservation is successful (RSV_SUCC), transmits the START_IO to the CHU 112 (procedure 133). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 153).
 IOC102は、START_IOに対するIO#Aの入出力処理が終了すると、OPTERM_STSをCHU112へ送信し(手順154)、CHU112は、そのOPTERM_STSをIOP111へ送信する(手順134)。そして、IOP111は、OPTERM_STSを受信したことを示す応答ACC_STSをCHU112へ送信し(手順135)、インタフェース121の予約を解除(RLS)する(手順136)。CHU112は、受信したACC_STSをIOC102へ送信する(手順155)。 When the I / O processing of IO # A for START_IO is completed, the IOC 102 transmits OPTERM_STS to the CHU 112 (procedure 154), and the CHU 112 transmits the OPTERM_STS to the IOP 111 (procedure 134). Then, the IOP 111 transmits a response ACC_STS indicating that the OPTERM_STS has been received to the CHU 112 (procedure 135), and releases the reservation of the interface 121 (RLS) (procedure 136). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 155).
 一方、IOC102は、IO#Bの状態を示すASYNC_STSを送信するために接続要求REQ_CNCTをCHU112へ送信する(手順151)。CHU112は、REQ_CNCTを受信すると、インタフェース121を予約する(手順132)。ところが、インタフェース121はIO#Aに関する通信に使用中であるため、CHU112は、予約に失敗し(RSV_FAIL)、接続拒否応答DNY_CNCTをIOC102へ送信する(手順152)。この場合、IOC102は、ASYNC_STSをCHU112へ送信することができない。 Meanwhile, the IOC 102 transmits a connection request REQ_CNCT to the CHU 112 in order to transmit ASYNC_STS indicating the state of IO # B (procedure 151). When receiving the REQ_CNCT, the CHU 112 reserves the interface 121 (procedure 132). However, since the interface 121 is being used for communication related to IO # A, the CHU 112 fails to make a reservation (RSV_FAIL), and transmits a connection rejection response DNY_CNCT to the IOC 102 (procedure 152). In this case, the IOC 102 cannot transmit ASYNC_STS to the CHU 112.
 IOC102は、CHU112からACC_STSを受信した後、再びREQ_CNCTをCHU112へ送信し(手順156)、CHU112は、REQ_CNCTを受信すると、インタフェース121を予約する(手順137)。このとき、インタフェース121の予約は解除されているため、CHU112は、予約に成功し(RSV_SUCC)、接続受理応答ACC_CNCTをIOC102へ送信する(手順157)。 After receiving ACC_STS from the CHU 112, the IOC 102 transmits REQ_CNCT to the CHU 112 again (procedure 156), and when receiving the REQ_CNCT, the CHU 112 reserves the interface 121 (procedure 137). At this time, since the reservation of the interface 121 has been released, the CHU 112 succeeds in the reservation (RSV_SUCC), and transmits a connection acceptance response ACC_CNCT to the IOC 102 (procedure 157).
 そこで、IOC102は、IO#Bの状態を示すASYNC_STSをCHU112へ送信し(手順158)、CHU112は、そのASYNC_STSをIOP111へ送信する(手順139)。そして、IOP111は、ASYNC_STSを受信したことを示す応答ACC_STSをCHU112へ送信する(手順140)。CHU112は、受信したACC_STSをIOC102へ送信し(手順159)、インタフェース121の予約を解除する(手順141)。 Therefore, the IOC 102 transmits ASYNC_STS indicating the state of IO # B to the CHU 112 (procedure 158), and the CHU 112 transmits the ASYNC_STS to the IOP 111 (procedure 139). Then, the IOP 111 transmits a response ACC_STS indicating that the ASYNC_STS has been received to the CHU 112 (procedure 140). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 159), and releases the reservation of the interface 121 (procedure 141).
 一方、IOP111は、IO#Cを対象とするSTART_IOを送信するためにインタフェース121を予約する(手順138)。ところが、インタフェース121はIO#Bに関する通信に使用中であるため、IOP111は、インタフェース121の予約に失敗し(RSV_FAIL)、START_IOをCHU112へ送信することができない。 On the other hand, the IOP 111 reserves the interface 121 to transmit START_IO targeted for IO # C (procedure 138). However, since the interface 121 is being used for communication related to IO # B, the IOP 111 fails to reserve the interface 121 (RSV_FAIL) and cannot transmit START_IO to the CHU 112.
 IOP111は、ACC_STSをCHU112へ送信した後、再びインタフェース121を予約する(手順142)。このとき、インタフェース121の予約は解除されているため、IOP111は、予約に成功し(RSV_SUCC)、IO#Cを対象とするSTART_IOをCHU112へ送信する(手順143)。そして、CHU112は、そのSTART_IOをIOC102へ送信する(手順160)。 The IOP 111 reserves the interface 121 again after transmitting ACC_STS to the CHU 112 (procedure 142). At this time, since the reservation of the interface 121 is cancelled, the IOP 111 succeeds in the reservation (RSV_SUCC), and transmits START_IO for IO # C to the CHU 112 (procedure 143). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 160).
 図1の入出力制御では、IOP111とCHU112の間の通信資源であるインタフェース121の数が1つであるため、インタフェース121に対する排他制御としてインターロックが行われている。 In the input / output control of FIG. 1, since the number of the interfaces 121 that are communication resources between the IOP 111 and the CHU 112 is one, interlock is performed as exclusive control for the interface 121.
 このインターロックでは、IO#A~IO#Cのいずれか1つに関する通信が行われている間は、他のIOに関する通信を行うことができない。IOP111又はCHU112のいずれか一方が1つのIOに関する通信のためにインタフェース121の予約に成功すると、予約が解除されるまで、インタフェース121はそのIOに関する通信のために排他的に使用される。 In this interlock, communication related to any one of IO # A to IO # C cannot be performed while communication related to any one of IO # A to IO # C is being performed. If either the IOP 111 or the CHU 112 successfully reserves the interface 121 for communication related to one IO, the interface 121 is exclusively used for communication related to that IO until the reservation is released.
 例えば、手順131~手順136においては、IOP111とCHU112の間でIO#Aに関するSTART_IO、OPTERM_STS、及びACC_STSの送受信が行われている。次に、手順137~手順141において、IO#Bに関するASYNC_STS及びACC_STSの送受信が行われ、手順142及び手順143において、IO#Cに関するSTART_IOの送受信が行われている。 For example, in steps 131 to 136, START_IO, OPTERM_STS, and ACC_STS related to IO # A are transmitted and received between the IOP 111 and the CHU 112. Next, in steps 137 to 141, ASYNC_STS and ACC_STS related to IO # B are transmitted / received, and in steps 142 and 143, START_IO related to IO # C are transmitted / received.
 近年、CHU112とIOC102の間において、接続中に複数のIOを動作させることができる通信プロトコルが採用され、IOC102からCHU112への接続要求のような排他制御が廃止された。ただし、依然として、IOP111とCHU112の間の通信資源の数は1つであるため、インタフェース121に対する排他制御は廃止されていない。 Recently, a communication protocol capable of operating a plurality of IOs during connection has been adopted between the CHU 112 and the IOC 102, and exclusive control such as a connection request from the IOC 102 to the CHU 112 has been abolished. However, since the number of communication resources between the IOP 111 and the CHU 112 is still one, exclusive control for the interface 121 has not been abolished.
 図2は、このような第2の入出力制御を示している。図2のCHU112は、IOC102から受信した通知を一時的に格納するためのバッファ201を含む。 FIG. 2 shows such second input / output control. The CHU 112 in FIG. 2 includes a buffer 201 for temporarily storing the notification received from the IOC 102.
 まず、IOP111は、IO#Aを対象とするSTART_IOを送信するためにインタフェース121を予約し(手順211)、予約に成功すると(RSV_SUCC)、START_IOをCHU112へ送信する(手順213)。そして、CHU112は、そのSTART_IOをIOC102へ送信し(手順232)、IOP111によるインタフェース121の予約を解除(RLS)する(手順214)。 First, the IOP 111 reserves the interface 121 for transmitting START_IO for IO # A (procedure 211), and when the reservation is successful (RSV_SUCC), transmits the START_IO to the CHU 112 (procedure 213). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 232), and releases the reservation of the interface 121 by the IOP 111 (RLS) (procedure 214).
 一方、IOC102は、IO#Bの状態を示すASYNC_STSをCHU112へ送信する(手順231)。CHU112は、受信したASYNC_STSをバッファ201に格納し、インタフェース121を予約する(手順212)。ところが、インタフェース121はIO#Aに関する通信に使用中であるため、CHU112は、予約に失敗し(RSV_FAIL)、ASYNC_STSの送信を保留する。 Meanwhile, the IOC 102 transmits ASYNC_STS indicating the state of IO # B to the CHU 112 (procedure 231). The CHU 112 stores the received ASYNC_STS in the buffer 201 and reserves the interface 121 (procedure 212). However, since the interface 121 is being used for communication related to IO # A, the CHU 112 fails to make a reservation (RSV_FAIL) and suspends transmission of ASYNC_STS.
 CHU112は、インタフェース121の予約を解除した後、再びインタフェース121を予約し(手順215)、予約に成功する(RSV_SUCC)。そこで、CHU112は、バッファ201に格納されているASYNC_STSをIOP111へ送信する(手順217)。そして、IOP111は、ASYNC_STSを受信したことを示す応答ACC_STSをCHU112へ送信する(手順218)。CHU112は、受信したACC_STSをIOC102へ送信し(手順234)、インタフェース121の予約を解除する(手順219)。 After canceling the reservation of the interface 121, the CHU 112 reserves the interface 121 again (procedure 215) and succeeds in the reservation (RSV_SUCC). Therefore, the CHU 112 transmits ASYNC_STS stored in the buffer 201 to the IOP 111 (procedure 217). Then, the IOP 111 transmits a response ACC_STS indicating that the ASYNC_STS has been received to the CHU 112 (procedure 218). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 234), and releases the reservation of the interface 121 (procedure 219).
 IOP111は、IO#Cを対象とするSTART_IOを送信するためにインタフェース121を予約する(手順216)。ところが、インタフェース121はIO#Bに関する通信に使用中であるため、IOP111は、インタフェース121の予約に失敗し(RSV_FAIL)、START_IOをCHU112へ送信することができない。 The IOP 111 reserves the interface 121 to transmit START_IO targeted for IO # C (procedure 216). However, since the interface 121 is being used for communication related to IO # B, the IOP 111 fails to reserve the interface 121 (RSV_FAIL) and cannot transmit START_IO to the CHU 112.
 IOC102は、START_IOに対するIO#Aの入出力処理が終了すると、OPTERM_STSをCHU112へ送信する(手順233)。CHU112は、受信したOPTERM_STSをバッファ201に格納する。 When the IO # A input / output processing for START_IO is completed, the IOC 102 transmits OPTERM_STS to the CHU 112 (procedure 233). The CHU 112 stores the received OPTERM_STS in the buffer 201.
 CHU112は、インタフェース121の予約を解除した後、再びインタフェース121を予約し(手順220)、予約に成功する(RSV_SUCC)。そこで、CHU112は、バッファ201に格納されているOPTERM_STSをIOP111へ送信する(手順221)。そして、IOP111は、OPTERM_STSを受信したことを示す応答ACC_STSをCHU112へ送信する(手順222)。CHU112は、受信したACC_STSをIOC102へ送信し(手順235)、インタフェース121の予約を解除(RLS)する(手順223)。 After canceling the reservation of the interface 121, the CHU 112 reserves the interface 121 again (procedure 220) and succeeds in the reservation (RSV_SUCC). Therefore, the CHU 112 transmits OPTERM_STS stored in the buffer 201 to the IOP 111 (procedure 221). Then, the IOP 111 transmits a response ACC_STS indicating that the OPTERM_STS has been received to the CHU 112 (procedure 222). The CHU 112 transmits the received ACC_STS to the IOC 102 (procedure 235), and releases the reservation of the interface 121 (RLS) (procedure 223).
 IOP111は、ACC_STSをCHU112へ送信した後、再びインタフェース121を予約する(手順224)。このとき、インタフェース121の予約は解除されているため、IOP111は、予約に成功し(RSV_SUCC)、IO#Cを対象とするSTART_IOをCHU112へ送信する(手順225)。そして、CHU112は、そのSTART_IOをIOC102へ送信し(手順236)、IOP111によるインタフェース121の予約を解除(RLS)する(手順226)。 The IOP 111 reserves the interface 121 again after transmitting ACC_STS to the CHU 112 (procedure 224). At this time, since the reservation of the interface 121 is released, the IOP 111 succeeds in the reservation (RSV_SUCC), and transmits START_IO targeted for IO # C to the CHU 112 (procedure 225). Then, the CHU 112 transmits the START_IO to the IOC 102 (procedure 236), and releases the reservation of the interface 121 by the IOP 111 (RLS) (procedure 226).
 このような入出力制御によれば、CHU112とIOC102の間において、接続要求、接続拒否応答、及び接続受理応答のような、排他制御のための制御情報を送受信する必要がなくなる。 According to such input / output control, there is no need to transmit / receive control information for exclusive control such as a connection request, a connection rejection response, and a connection acceptance response between the CHU 112 and the IOC 102.
 従来のチャネル装置に関して、計算機システムと入出力制御装置との間の通信量を削減し、計算機システム及び入出力制御装置の負荷を削減するための技術も知られている。このチャネル装置は、チャネル制御アダプタから発行されたスタート指示を入出力制御装置へ通知し、入出力制御装置は、入出力装置がビジー状態にある場合にチャネル装置に対してビジーを通知する。そして、チャネル装置は、ビジーを通知されると、チャネル制御アダプタに対してスタート指示が受け付けられた旨の初期ステータスを通知し、入出力制御装置からビジー解除を通知されると、入出力制御装置に対してスタート指示を通知する。 Regarding the conventional channel device, a technique for reducing the communication amount between the computer system and the input / output control device and reducing the load on the computer system and the input / output control device is also known. This channel device notifies a start instruction issued from the channel control adapter to the input / output control device, and the input / output control device notifies the channel device of busy when the input / output device is busy. When the channel device is notified of the busy status, it notifies the channel control adapter of the initial status indicating that the start instruction has been accepted. When the channel device is notified of the busy release, the input / output control device Is notified of the start instruction.
 また、チャネル装置は、入出力制御装置からステータスを通知されると、そのステータスを一時的に保持し、チャネル制御アダプタは、ステータスを受け取ることができない状態にある場合に、チャネル装置に対してステータスのスタックを通知する。そして、チャネル装置は、スタックを通知されると、入出力制御装置に対してステータス通知が受け付けられた旨を通知し、チャネル制御アダプタが受け取るまで、規定周期に従ってステータスを通知する処理を実行する。 Further, when the channel device is notified of the status from the input / output control device, the channel device temporarily holds the status, and when the channel control adapter is in a state where it cannot receive the status, Notify the stack. When the channel device is notified of the stack, the channel device notifies the input / output control device that the status notification has been accepted, and executes a process of notifying the status according to a specified period until the channel control adapter receives it.
 さらに、入出力プロセッサが入出力要求のキューイングを行い、デキューを行いながら入出力処理を実行する入出力制御方式において、入出力構成の変更による影響の範囲を少なくするための技術も知られている。この技術では、入出力要求のキューの作成単位を入出力制御装置の集合体とし、1つの入出力装置に接続されるすべての入出力制御装置が同一の作成単位に属し、1つの作成単位に接続されるチャネルの数に上限値が設定される。そして、キューから入出力要求をデキューするときに、対応する入出力制御装置の状態情報に基づいて入出力パスが選択される。 In addition, in an I / O control method in which an I / O processor queues I / O requests and executes I / O processing while dequeuing, a technique for reducing the scope of influence due to changes in I / O configuration is also known. Yes. In this technology, a unit for creating an input / output request queue is a collection of input / output control devices, and all input / output control devices connected to one input / output device belong to the same creation unit. An upper limit is set for the number of connected channels. When the input / output request is dequeued from the queue, the input / output path is selected based on the status information of the corresponding input / output control device.
特開平8-123748号公報JP-A-8-123748 特開平2-113356号公報Japanese Patent Laid-Open No. 2-113356
 上述した従来の入出力制御には、以下のような問題がある。
 情報処理システムにおける入出力処理の転送レートが大きくなると、IOP111とCHU112の間の排他制御に要する時間の割合が増大し、入出力処理能力に対する排他制御の影響が大きくなる。このため、CHU112とIOC102の間の排他制御を廃止したことにより向上した、入出力処理のスループットが低下すると考えられる。
The conventional input / output control described above has the following problems.
As the transfer rate of input / output processing in the information processing system increases, the proportion of time required for exclusive control between the IOP 111 and the CHU 112 increases, and the influence of exclusive control on the input / output processing capability increases. For this reason, it is considered that the throughput of the input / output processing, which has been improved by eliminating the exclusive control between the CHU 112 and the IOC 102, is lowered.
 なお、かかる問題は、情報処理システムにおける入出力制御に限らず、第1の装置と第2の装置の間で処理開始指示、処理終了通知、及び非同期通知を転送する他の制御システムにおいても生ずるものである。 Such a problem occurs not only in input / output control in an information processing system, but also in other control systems that transfer processing start instructions, processing end notifications, and asynchronous notifications between the first device and the second device. Is.
 1つの側面において、本発明は、第1の装置から第2の装置へ多数の処理開始指示が送信される場合でも、第1の装置と第2の装置の間で排他制御を行うことなく、処理開始指示、処理終了通知、及び非同期通知を転送することを目的とする。 In one aspect, the present invention does not perform exclusive control between the first device and the second device even when a large number of processing start instructions are transmitted from the first device to the second device. It is intended to transfer a processing start instruction, a processing end notification, and an asynchronous notification.
 1つの案では、制御システムは、第1の装置と第2の装置とを含む。第1の装置は、第1の通信部、第1の格納部、及び第1の制御部を含む。第1の通信部は、処理開始指示を第2の装置へ送信し、処理開始指示に対する処理終了通知と非同期通知とを第2の装置から受信する。第1の格納部は、第1の装置と第2の装置との間で通信に用いられる接続の数を規定する第1の上限値を格納する。第1の制御部は、第2の装置から未受信の処理終了通知に対応する処理開始指示の数を、第1の上限値以下の数に制御する。 In one scheme, the control system includes a first device and a second device. The first device includes a first communication unit, a first storage unit, and a first control unit. The first communication unit transmits a process start instruction to the second device, and receives a process end notification and an asynchronous notification for the process start instruction from the second device. The first storage unit stores a first upper limit value that defines the number of connections used for communication between the first device and the second device. The first control unit controls the number of processing start instructions corresponding to processing end notifications not received from the second device to a number equal to or less than the first upper limit value.
 第2の装置は、第2の通信部、第2の格納部、及び第2の制御部を含む。第2の通信部は、第1の装置から処理開始指示を受信し、処理終了通知と非同期通知とを第1の装置へ送信する。第2の格納部は、第1の上限値より大きな第2の上限値を格納する。第2の制御部は、第1の装置へ未送信の処理終了通知に対応する処理開始指示の数と、第1の装置へ送信される非同期通知の数との総数を、第2の上限値以下の数に制御する。 The second device includes a second communication unit, a second storage unit, and a second control unit. The second communication unit receives a processing start instruction from the first device, and transmits a processing end notification and an asynchronous notification to the first device. The second storage unit stores a second upper limit value that is larger than the first upper limit value. The second control unit determines the total number of processing start instructions corresponding to processing end notifications not yet transmitted to the first device and the number of asynchronous notifications transmitted to the first device as a second upper limit value. Control to the following number.
 実施形態における制御システムによれば、第1の装置から第2の装置へ多数の処理開始指示が送信される場合でも、第1の装置と第2の装置の間で排他制御を行うことなく、処理開始指示、処理終了通知、及び非同期通知を転送することができる。 According to the control system in the embodiment, even when a large number of processing start instructions are transmitted from the first device to the second device, without performing exclusive control between the first device and the second device, A process start instruction, a process end notification, and an asynchronous notification can be transferred.
従来の情報処理システムにおける第1の入出力制御を示す図である。It is a figure which shows the 1st input / output control in the conventional information processing system. 従来の情報処理システムにおける第2の入出力制御を示す図である。It is a figure which shows the 2nd input / output control in the conventional information processing system. 従来の第2の入出力制御における排他制御の影響を示す図である。It is a figure which shows the influence of the exclusive control in the conventional 2nd input / output control. 実施形態の制御システムの構成図である。It is a block diagram of the control system of embodiment. 第1の装置が行う制御のフローチャートである。It is a flowchart of the control which a 1st apparatus performs. 第2の装置が行う制御のフローチャートである。It is a flowchart of the control which a 2nd apparatus performs. 実施形態の情報処理システムにおける入出力制御を示す図である。It is a figure which shows the input / output control in the information processing system of embodiment. 実施形態の情報処理システムの構成図である。It is a block diagram of the information processing system of embodiment. IOPがIO処理命令を受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when IOP receives IO process command. IOPがOPTERM_STS又はBUSY_STSを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when IOP receives OPTERM_STS or BUSY_STS. IOPがASYNC_STSを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when IOP receives ASYNC_STS. IOPがBUSYを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when IOP receives BUSY. IOPがCHU送信キューのデキューを行う処理のフローチャートである。It is a flowchart of the process which IOP dequeues a CHU transmission queue. IOPが実行キューのデキューを行う処理のフローチャートである。It is a flowchart of the process which IOP dequeues an execution queue. CHUがSTART_IOを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when CHU receives START_IO. CHUがOPTERM_STS又はBUSY_STSを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when CHU receives OPTERM_STS or BUSY_STS. CHUがASYNC_STSを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when CHU receives ASYNC_STS. CHUがACC_STSを受信した場合に行う処理のフローチャートである。It is a flowchart of the process performed when CHU receives ACC_STS. CHUがIOC送信キューのデキューを行う処理のフローチャートである。It is a flowchart of the process which CHU dequeues an IOC transmission queue. CHUがIOP送信キューのデキューを行う処理のフローチャートである。It is a flowchart of the process which CHU dequeues an IOP transmission queue. 入出力制御のシーケンスを示す図(その1)である。FIG. 6 is a diagram (part 1) illustrating a sequence of input / output control. 入出力制御のシーケンスを示す図(その2)である。FIG. 5 is a diagram (part 2) illustrating a sequence of input / output control. 入出力制御のシーケンスを示す図(その3)である。FIG. 10 is a third diagram illustrating the sequence of input / output control. 入出力制御のシーケンスを示す図(その4)である。FIG. 10 is a diagram (part 4) illustrating the sequence of input / output control. 入出力制御のシーケンスを示す図(その5)である。It is FIG. (5) which shows the sequence of input / output control. 入出力制御のシーケンスを示す図(その6)である。It is FIG. (6) which shows the sequence of input / output control. 実施形態の入出力制御により改善された入出力能力を示す図である。It is a figure which shows the input / output capability improved by the input / output control of embodiment.
 以下、図面を参照しながら、実施形態を詳細に説明する。
 図3は、図2の入出力制御における排他制御の影響を示している。図3の横軸は、入出力処理の転送レート(メガバイト/秒,MB/S)を表し、縦軸は、1秒間における中央処理装置(Central Processing Unit,CPU)のIO命令実行頻度を表す。破線301は、転送レートに対するCPUのIO命令実行頻度の目標値を表しており、実線302は、IOP111とCHU112の間の排他制御がある場合の実際のCPUのIO命令実行頻度を表している。
Hereinafter, embodiments will be described in detail with reference to the drawings.
FIG. 3 shows the influence of exclusive control in the input / output control of FIG. The horizontal axis of FIG. 3 represents the transfer rate of input / output processing (megabytes / second, MB / S), and the vertical axis represents the frequency of IO instruction execution of a central processing unit (CPU) in one second. A broken line 301 represents the target value of the CPU IO instruction execution frequency with respect to the transfer rate, and a solid line 302 represents the actual CPU IO instruction execution frequency when there is exclusive control between the IOP 111 and the CHU 112.
 この場合、1つの入出力処理においてインタフェース121の予約や予約の解除等を行う排他処理には、約15μsを要する。 In this case, it takes about 15 μs for the exclusive processing for performing the reservation of the interface 121 or the cancellation of the reservation in one input / output processing.
 例えば、転送レート17MB/Sに対応するCPUのIO命令実行頻度の目標値が850であるのに対して、図1の入出力制御を行う場合の実際のCPUのIO命令実行頻度は約839.3である。したがって、図1の排他制御の影響によりCPUのIO命令実行頻度が約10.7(約1.3%)低下することになる。 For example, while the target value of the CPU IO instruction execution frequency corresponding to the transfer rate of 17 MB / S is 850, the actual CPU IO instruction execution frequency when performing the input / output control of FIG. 3. Therefore, the frequency of IO instruction execution by the CPU decreases by about 10.7 (about 1.3%) due to the influence of the exclusive control in FIG.
 一方、図2の入出力制御を行う場合、転送レート320MB/Sに対応する破線301上の点321では、CPUのIO命令実行頻度の目標値が16000であるのに対して、実線302上の点322では実際のCPUのIO命令実行頻度は約12900である。したがって、図2の排他制御の影響によりCPUのIO命令実行頻度が約3100(約19.4%)低下しており、その影響は図1の排他制御より大きくなる。 On the other hand, when the input / output control of FIG. 2 is performed, the target value of the CPU IO instruction execution frequency at the point 321 on the broken line 301 corresponding to the transfer rate of 320 MB / S is 16000, whereas At point 322, the actual CPU IO instruction execution frequency is about 12900. Accordingly, the frequency of IO instruction execution by the CPU is reduced by about 3100 (about 19.4%) due to the influence of the exclusive control of FIG. 2, and the influence is greater than that of the exclusive control of FIG.
 図2から分かるように、転送レートが大きくなるとともに、IOP111とCHU112の間の排他制御の影響によるCPUのIO命令実行頻度の低下が大きくなる。このため、CHU112とIOC102の間の排他制御を廃止したことにより向上した、入出力処理のスループットが低下する傾向が見られる。そこで、IOP111とCHU112の間の排他制御を廃止することが望ましい。 As can be seen from FIG. 2, the transfer rate increases, and the CPU IO instruction execution frequency decreases greatly due to the influence of exclusive control between the IOP 111 and the CHU 112. For this reason, there is a tendency that the throughput of the input / output processing, which has been improved by eliminating the exclusive control between the CHU 112 and the IOC 102, is lowered. Therefore, it is desirable to eliminate exclusive control between the IOP 111 and the CHU 112.
 実施形態の制御システムでは、IOP111に対応する第1の装置とCHU112に対応する第2の装置との間の排他制御を廃止する代わりに、第1の装置と第2の装置との間で通信に用いられる接続の数に上限値が設けられる。 In the control system of the embodiment, instead of abolishing exclusive control between the first device corresponding to the IOP 111 and the second device corresponding to the CHU 112, communication is performed between the first device and the second device. An upper limit is set for the number of connections used for the.
 第1の装置から第2の装置へ処理開始指示が送信された後、第2の装置から第1の装置へ処理終了通知が返信されるまでの間は、接続中とみなされる。したがって、第1の装置は、上限値に相当する最大数の処理開始指示を第2の装置へ送信した後は、いずれかの処理開始指示に対する処理終了通知を受信するまで、新たな処理開始指示の送信を保留する。一方、第2の装置は、第1の装置から受信した処理開始指示の数が上限値に達していない間は、非同期通知を第1の装置へ送信する新たな接続を開始することができる。 After the process start instruction is transmitted from the first device to the second device, the process is regarded as being connected until the process end notification is returned from the second device to the first device. Therefore, after the first device transmits the maximum number of processing start instructions corresponding to the upper limit value to the second device, the first device starts a new processing start instruction until receiving a processing end notification for any of the processing start instructions. Suspend sending On the other hand, the second device can start a new connection for transmitting an asynchronous notification to the first device while the number of processing start instructions received from the first device has not reached the upper limit.
 しかし、上限値を超える多数の処理開始指示が発生した場合、第1の装置は、第2の装置から処理終了通知を受信すると直ちに次の処理開始指示を送信するため、第2の装置にとっては、常に処理開始指示の数が上限値に達しているように見える。このように、第1の装置において接続数の制御に用いる上限値と、第2の装置において接続数の制御に用いる上限値とを同じ値に設定すると、第2の装置が非同期通知を第1の装置へ送信することができなくなる可能性がある。 However, when a large number of process start instructions exceeding the upper limit value are generated, the first apparatus transmits a next process start instruction as soon as a process end notification is received from the second apparatus. The number of processing start instructions always seems to reach the upper limit. Thus, when the upper limit value used for controlling the number of connections in the first device and the upper limit value used for controlling the number of connections in the second device are set to the same value, the second device sends the asynchronous notification to the first device. May not be able to be transmitted to other devices.
 そこで、第2の装置において接続数の制御に用いる上限値を、第1の装置において接続数の制御に用いる上限値より大きな値に設定することが望ましい。具体的には、第1の装置は、第1の上限値以下の範囲で1つ以上の処理開始指示を第2の装置へ送信し、第2の装置は、第1の上限値より大きな第2の上限値以下の範囲で、処理開始指示に対する処理終了通知と非同期通知とを第1の装置へ送信する。 Therefore, it is desirable to set the upper limit value used for controlling the number of connections in the second device to a value larger than the upper limit value used for controlling the number of connections in the first device. Specifically, the first device transmits one or more processing start instructions within a range equal to or smaller than the first upper limit value to the second device, and the second device has a first value greater than the first upper limit value. In a range equal to or less than the upper limit of 2, a process end notification and an asynchronous notification in response to the process start instruction are transmitted to the first device.
 このような制御によれば、第1の装置は、第1の上限値に相当する最大数の処理開始指示を第2の装置へ送信した後は、いずれかの処理開始指示に対する処理終了通知を受信するまで、新たな処理開始指示の送信を保留する。一方、第2の装置は、第1の装置から受信した処理開始指示の数が第1の上限値に達した場合であっても、非同期通知を第1の装置へ送信する新たな接続を開始することができる。 According to such control, after the first apparatus transmits the maximum number of process start instructions corresponding to the first upper limit value to the second apparatus, the first apparatus sends a process end notification for any of the process start instructions. Until it is received, transmission of a new process start instruction is suspended. On the other hand, the second device starts a new connection for transmitting an asynchronous notification to the first device even when the number of processing start instructions received from the first device reaches the first upper limit value. can do.
 図4は、このような制御を行う制御システムの構成例を示している。図4の制御システムは、第1の装置401と第2の装置402とを含む。第1の装置401は、第1の通信部411、第1の格納部412、及び第1の制御部413を含む。第1の通信部411は、処理開始指示を第2の装置402へ送信し、処理開始指示に対する処理終了通知と非同期通知とを第2の装置402から受信する。第1の格納部412は、第1の装置401と第2の装置402との間で通信に用いられる接続の数を規定する第1の上限値414を格納する。 FIG. 4 shows a configuration example of a control system that performs such control. The control system of FIG. 4 includes a first device 401 and a second device 402. The first device 401 includes a first communication unit 411, a first storage unit 412, and a first control unit 413. The first communication unit 411 transmits a process start instruction to the second device 402, and receives a process end notification and an asynchronous notification for the process start instruction from the second device 402. The first storage unit 412 stores a first upper limit value 414 that defines the number of connections used for communication between the first device 401 and the second device 402.
 第2の装置402は、第2の通信部421、第2の格納部422、及び第2の制御部423を含む。第2の通信部421は、第1の装置401から処理開始指示を受信し、処理終了通知と非同期通知とを第1の装置401へ送信する。第2の格納部422は、第1の上限値414より大きな第2の上限値424を格納する。 The second device 402 includes a second communication unit 421, a second storage unit 422, and a second control unit 423. The second communication unit 421 receives a processing start instruction from the first device 401 and transmits a processing end notification and an asynchronous notification to the first device 401. The second storage unit 422 stores a second upper limit value 424 that is larger than the first upper limit value 414.
 図5及び図6は、それぞれ第1の制御部413及び第2の制御部423が行う制御の例を示すフローチャートである。第1の制御部413は、第2の装置402から未受信の処理終了通知に対応する処理開始指示の数を、第1の上限値414以下の数に制御する(図5のステップ501)。 5 and 6 are flowcharts showing examples of control performed by the first control unit 413 and the second control unit 423, respectively. The first control unit 413 controls the number of processing start instructions corresponding to processing end notifications not received from the second device 402 to a number equal to or less than the first upper limit value 414 (step 501 in FIG. 5).
 第2の制御部423は、第2の装置402から第1の装置401へ未送信の処理終了通知に対応する処理開始指示の数と、第1の装置401へ送信される非同期通知の数との総数を、第2の上限値424以下の数に制御する(図6のステップ601)。 The second control unit 423 includes the number of processing start instructions corresponding to the processing end notification not transmitted from the second device 402 to the first device 401, and the number of asynchronous notifications transmitted to the first device 401. Is controlled to a number equal to or less than the second upper limit value 424 (step 601 in FIG. 6).
 このような制御システムによれば、第1の装置401から第2の装置402へ多数の処理開始指示が送信される場合でも、第1の装置401と第2の装置402の間で排他制御を行うことなく、処理開始指示、処理終了通知、及び非同期通知を転送することができる。以下では、第1の上限値をNと記し、第2の上限値をMと記す場合がある。 According to such a control system, even when a large number of processing start instructions are transmitted from the first device 401 to the second device 402, exclusive control is performed between the first device 401 and the second device 402. The processing start instruction, the processing end notification, and the asynchronous notification can be transferred without performing them. Hereinafter, the first upper limit value may be written as N, and the second upper limit value may be written as M.
 図7は、実施形態の情報処理システムにおける入出力制御の例を示している。制御システム701は、IOP711及びCHU712を含む。IOP711及びCHU712は、図4の第1の装置401及び第2の装置402にそれぞれ対応する。 FIG. 7 shows an example of input / output control in the information processing system of the embodiment. The control system 701 includes an IOP 711 and a CHU 712. The IOP 711 and the CHU 712 respectively correspond to the first device 401 and the second device 402 in FIG.
 IOP711は、CHU712を介してIOC702へ、IO703-1~IO703-5を対象とする入出力処理の処理開始指示START_IOを送信する。IO703-1~IO703-5(IO#A~IO#E)は、論理的に識別可能な5つのIOであり、それらのIDはそれぞれ#A~#Eである。IO703-1~IO703-5は、5つの物理的なIOを表す場合もあり、5つの論理的なIOを表す場合もある。 The IOP 711 transmits an input / output processing start instruction START_IO for the IO 703-1 to IO 703-5 to the IOC 702 via the CHU 712. IO703-1 to IO703-5 (IO # A to IO # E) are five logically identifiable IOs, and their IDs are #A to #E, respectively. IO703-1 to IO703-5 may represent five physical IOs or may represent five logical IOs.
 物理的なIOの例としては、キーボード、ポインティングデバイス等の入力装置、表示装置、プリンタ、スピーカ等の出力装置、ディスク装置、半導体メモリ等の外部記憶装置が挙げられる。論理的なIOは、例えば、1つ以上の物理的なIOを用いた複数の仮想マシンとして実現される、複数の仮想IOのうちの1つに対応する。 Examples of physical IO include input devices such as a keyboard and pointing device, display devices, output devices such as printers and speakers, external storage devices such as disk devices and semiconductor memories. A logical IO corresponds to, for example, one of a plurality of virtual IOs realized as a plurality of virtual machines using one or more physical IOs.
 図7において、START_IOは、IOP711からIOC702への入出力処理の処理開始指示であり、OPTERM_STSは、START_IOに対する処理終了通知である。また、ASYNC_STSは、IOC702からIOP711へのIO状態の変化を示す非同期通知であり、ACC_STSは、OPTERM_STS、ASYNC_STS、BUSY_STS等の通知に対する応答である。 In FIG. 7, START_IO is a processing start instruction for input / output processing from the IOP 711 to the IOC 702, and OPTERM_STS is a processing end notification for the START_IO. ASYNC_STS is an asynchronous notification indicating a change in the IO state from the IOC 702 to the IOP 711, and ACC_STS is a response to notifications such as OPTERM_STS, ASYNC_STS, and BUSY_STS.
 BUSY_STSは、IOC702からIOP711へASYNC_STSを送信した後、ACC_STSではなくSTART_IOをIOP711から受信したため、入出力処理を開始できないことを示すビジー通知である。また、BUSYは、CHU712における接続数が第1の上限値N以上である場合に、IOP711から新たなSTART_IOを受信したため、そのSTART_IOを受け付けられないことを示すビジー通知である。 BUSY_STS is a busy notification indicating that the input / output process cannot be started because the START_IO is received from the IOP 711 instead of the ACC_STS after the ASYNC_STS is transmitted from the IOC 702 to the IOP 711. BUSY is a busy notification indicating that when the number of connections in the CHU 712 is equal to or greater than the first upper limit value N, a new START_IO has been received from the IOP 711 and the START_IO cannot be accepted.
 図7において、IOP711が制御に用いる第1の上限値Nは3であり、CHU712が制御に用いる第2の上限値Mは4である。 7, the first upper limit value N used for control by the IOP 711 is 3, and the second upper limit value M used by the CHU 712 for control is 4.
 まず、IOP711は、IO#Aを対象とするSTART_IOをCHU712へ送信し(手順721)、CHU712は、そのSTART_IOをIOC702へ送信する(手順742)。次に、IOP711は、IO#Bを対象とするSTART_IOをCHU712へ送信し(手順722)、CHU712は、そのSTART_IOをIOC702へ送信する(手順743)。 First, the IOP 711 transmits START_IO targeted for IO # A to the CHU 712 (procedure 721), and the CHU 712 transmits the START_IO to the IOC 702 (procedure 742). Next, the IOP 711 transmits START_IO targeted for IO # B to the CHU 712 (procedure 722), and the CHU 712 transmits the START_IO to the IOC 702 (procedure 743).
 一方、IOC702は、IO#Bの状態を示すASYNC_STSをCHU712へ送信し(手順741)、CHU712は、そのASYNC_STSをIOP711へ送信する(手順723)。この場合、IOP711は、IO#Bを対象とするSTART_IOを送信した後、そのSTART_IOに対するOPTERM_STSを受信する前に、同じIOに関するASYNC_STSを受信したため、そのASYNC_STSを破棄する。IOP711がASYNC_STSを破棄してもよい理由は、次の通りである。 On the other hand, the IOC 702 transmits ASYNC_STS indicating the state of IO # B to the CHU 712 (procedure 741), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 723). In this case, the IOP 711 discards the ASYNC_STS because it has received the ASYNC_STS related to the same IO after receiving the START_IO for the START_IO after transmitting the START_IO for the IO # B. The reason why the IOP 711 may discard the ASYNC_STS is as follows.
 CHU712とIOC702の間の通信プロトコルでは、同じIOに関するSTART_IOとASYNC_STSとがすれ違った場合、ASYNC_STSを無効にして、START_IOを有効にする制御が行われる。この場合、IOC702は、ASYNC_STSにより通知しようとしたIO状態を、START_IOに対する応答として改めて通知することができる。 In the communication protocol between the CHU 712 and the IOC 702, when START_IO and ASYNC_STS related to the same IO pass each other, control is performed to disable ASYNC_STS and enable START_IO. In this case, the IOC 702 can notify the IO state to be notified by ASYNC_STS again as a response to START_IO.
 一方、IOP711とCHU712の間で同じIOに関するSTART_IOとASYNC_STSとがすれ違った場合、IOP711がASYNC_STSを破棄し、CHU712がSTART_IOをIOC702に送信する制御を行うことができる。このような制御によれば、IOC702から見て、CHU712とIOC702の間でSTART_IOとASYNC_STSとがすれ違った場合と同じ状態になる。したがって、CHU712とIOC702の間の通信プロトコルには違反しない。 On the other hand, when START_IO and ASYNC_STS related to the same IO pass between the IOP 711 and the CHU 712, the IOP 711 discards the ASYNC_STS, and the CHU 712 can perform control to transmit the START_IO to the IOC 702. According to such control, when viewed from the IOC 702, the state is the same as when START_IO and ASYNC_STS pass between the CHU 712 and the IOC 702. Therefore, the communication protocol between the CHU 712 and the IOC 702 is not violated.
 次に、IOC702は、IO#Cの状態を示すASYNC_STSをCHU712へ送信し(手順744)、CHU712は、そのASYNC_STSをIOP711へ送信する(手順725)。また、IOC702は、IO#Dの状態を示すASYNC_STSをCHU712へ送信し(手順745)、CHU712は、そのASYNC_STSをIOP711へ送信する(手順727)。 Next, the IOC 702 transmits ASYNC_STS indicating the state of IO # C to the CHU 712 (procedure 744), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 725). Further, the IOC 702 transmits ASYNC_STS indicating the state of IO # D to the CHU 712 (procedure 745), and the CHU 712 transmits the ASYNC_STS to the IOP 711 (procedure 727).
 この時点で、CHU712から未送信のOPTERM_STSに対応するSTART_IOの数は2であり、CHU712が送信したASYNC_STSの数も2であるため、IOP711とCHU712の間の接続の数は4である。この接続数4は、CHU712における第2の上限値Mに一致する。 At this time, the number of START_IO corresponding to the OPTERM_STS not transmitted from the CHU 712 is 2, and the number of ASYNC_STS transmitted by the CHU 712 is 2, so the number of connections between the IOP 711 and the CHU 712 is 4. The number of connections 4 is equal to the second upper limit value M in the CHU 712.
 一方、IOP711は、CHU712から未受信のOPTERM_STSに対応するSTART_IOの数が2であり、第1の上限値Nである3に達していないため、IO#Eを対象とする新たなSTART_IOをCHU712へ送信する(手順724)。しかし、CHU712においては接続数が第1の上限値N以上であるため、CHU712は、接続数の増加を抑えるため、IOP711へBUSYを返信する(手順729)。 On the other hand, since the number of START_IO corresponding to the OPTERM_STS that has not been received from the CHU 712 is 2, and the IOP 711 has not reached the first upper limit N of 3, the new START_IO for IO # E is sent to the CHU 712. Transmit (procedure 724). However, since the number of connections in the CHU 712 is equal to or greater than the first upper limit value N, the CHU 712 returns BUSY to the IOP 711 in order to suppress an increase in the number of connections (procedure 729).
 次に、IOP711は、IO#Cに関するASYNC_STSを受信したことを示すACC_STSをCHU712へ送信し(手順726)、CHU712は、そのACC_STSをIOC702へ送信する(手順746)。また、IOP711は、IO#Dに関するASYNC_STSを受信したことを示すACC_STSをCHU712へ送信し(手順728)、CHU712は、そのACC_STSをIOC702へ送信する(手順747)。 Next, the IOP 711 transmits ACC_STS indicating that ASYNC_STS related to IO # C has been received to the CHU 712 (procedure 726), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 746). Further, the IOP 711 transmits ACC_STS indicating that the ASYNC_STS related to IO # D has been received to the CHU 712 (procedure 728), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 747).
 IOC702は、START_IOに対するIO#Aの入出力処理が終了すると、OPTERM_STSをCHU712へ送信し(手順748)、CHU712は、そのOPTERM_STSをIOP711へ送信する(手順730)。また、IOC702は、IO#Bに関するASYNC_STSを送信した後、そのASYNC_STSに対するACC_STSを受信する前に、同じIOに関するSTART_IOを受信したため、CHU712へBUSY_STSを返信する(手順749)。 When the I / O processing of IO # A for START_IO is completed, the IOC 702 transmits OPTERM_STS to the CHU 712 (procedure 748), and the CHU 712 transmits the OPTERM_STS to the IOP 711 (procedure 730). Since the IOC 702 receives the START_IO related to the same IO after transmitting the ASYNC_STS related to the IOSYNC B and before receiving the ACC_STS corresponding to the ASYNC_STS, the IOC 702 returns the BUSY_STS to the CHU 712 (step 749).
 次に、IOP711は、IO#Aに関するOPTERM_STSを受信したことを示すACC_STSをCHU712へ送信し(手順732)、CHU712は、そのACC_STSをIOC702へ送信する(手順750)。また、IOP711は、IO#Bに関するBUSY_STSを受信したことを示すACC_STSをCHU712へ送信し(手順733)、CHU712は、そのACC_STSをIOC702へ送信する(手順751)。 Next, the IOP 711 transmits ACC_STS indicating that OPTERM_STS related to IO # A has been received to the CHU 712 (procedure 732), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 750). Also, the IOP 711 transmits ACC_STS indicating that BUSY_STS related to IO # B has been received to the CHU 712 (procedure 733), and the CHU 712 transmits the ACC_STS to the IOC 702 (procedure 751).
 このように、IOP711は、第1の上限値N以下の範囲で1つ以上のSTART_IOをCHU112へ送信し、CHU712は、第2の上限値M以下の範囲で、OPTERM_STSとASYNC_STSとをIOP711へ送信する。 In this way, the IOP 711 transmits one or more START_IOs to the CHU 112 within the range of the first upper limit value N or less, and the CHU 712 transmits OPTERM_STS and ASYNC_STS to the IOP 711 within the range of the second upper limit value M or less. To do.
 START_IOは、情報処理システムにおける中央処理装置(Central Processing Unit,CPU)からの命令に基づく指示である。したがって、CHU712は、IOP711から受信したSTART_IOを優先して処理しなければ、情報処理システム全体の処理効率が低下する。ここで、第2の上限値Mを第1の上限値N以下に設定した場合、IOP711とCHU712の間でSTART_IOとOPTERM_STSばかりが転送され、ASYNC_STS等の他の通知が転送されなくなる可能性がある。 START_IO is an instruction based on an instruction from a central processing unit (CPU) in the information processing system. Therefore, if the CHU 712 does not process the START_IO received from the IOP 711 with priority, the processing efficiency of the entire information processing system decreases. Here, when the second upper limit value M is set to be equal to or lower than the first upper limit value N, only START_IO and OPTERM_STS may be transferred between the IOP 711 and the CHU 712, and other notifications such as ASYNC_STS may not be transferred. .
 ASYNC_STSの一例として、キーボードのEnterキーが押下されたときに画面入力を通知するアテンションが知られている。このアテンションをCPUへ通知することができなければ、オペレータが情報処理システムを操作できない状態になる。 As an example of ASYNC_STS, an attention to notify a screen input when the Enter key of the keyboard is pressed is known. If this attention cannot be notified to the CPU, the operator cannot operate the information processing system.
 しかし、第2の上限値Mを第1の上限値Nより大きな値に設定すれば、CHU712は、IOP711から受信したSTART_IOの数がNに達した場合であっても、ASYNC_STSをIOP711へ送信する新たな接続を開始できる。したがって、アテンションをIOP711へ送信することが可能になる。 However, if the second upper limit value M is set to a value larger than the first upper limit value N, the CHU 712 transmits ASYNC_STS to the IOP 711 even when the number of START_IO received from the IOP 711 reaches N. A new connection can be started. Therefore, it becomes possible to transmit the attention to the IOP 711.
 次に、図8から図24までを参照しながら、制御システム701とIOC702を含む情報処理システムの構成と動作について、より詳細に説明する。 Next, the configuration and operation of the information processing system including the control system 701 and the IOC 702 will be described in more detail with reference to FIGS.
 図8は、情報処理システムの構成例を示している。図8の情報処理システムは、制御システム701、IOC702、CPU801、メモリ制御装置(Memory Control Unit,MCU)802、主記憶装置(Main Storage Unit,MSU)803、及びIO804-1~IO804-9を含む。制御システム701は、IOP711及びCHU712を含む。 FIG. 8 shows a configuration example of the information processing system. 8 includes a control system 701, an IOC 702, a CPU 801, a memory control unit (Memory 制 御 Control Unit, MCU) 802, a main storage unit (Main Storage Unit, MSU) 803, and IO804-1 to IO804-9. . The control system 701 includes an IOP 711 and a CHU 712.
 MSU803は、主記憶811を含み、主記憶811は、システムプログラム812を格納し、ハードウェアシステム領域(Hardware System Area,HSA)813を有する。システムプログラム812はオペレーティングシステム(OS)を含む。 The MSU 803 includes a main memory 811. The main memory 811 stores a system program 812 and has a hardware system area (Hardware System Area, HSA) 813. The system program 812 includes an operating system (OS).
 CPU801は、主記憶811に格納されているシステムプログラム812をMCU802を介して読み取り、そのシステムプログラム812を解釈して実行する。CPU801は、システムプログラム812に記述された命令に従って、入出力処理の開始を指示するIO処理命令をIOP711へ送信し、IO処理結果をIOP711から受信する。また、CPU801は、IO804-1~IO804-9からの非同期割込みをIOP711を介して受信する。 The CPU 801 reads the system program 812 stored in the main memory 811 via the MCU 802, interprets the system program 812, and executes it. The CPU 801 transmits an IO processing instruction for instructing the start of input / output processing to the IOP 711 according to an instruction described in the system program 812 and receives an IO processing result from the IOP 711. Further, the CPU 801 receives asynchronous interrupts from the IOs 804-1 to IO804-9 via the IOP 711.
 MCU802は、CPU801及びIOP711からMSU803へのアクセスを制御する。MSU803の主記憶811内のHSA813は、CPU801及びIOP711が入出力操作を行うために使用する領域である。HSA813には、入出力処理の実行を制御するための実行キュー814と、各IOに関する入出力処理が起動中か否かを示すフラグ815が格納されている。 The MCU 802 controls access from the CPU 801 and the IOP 711 to the MSU 803. The HSA 813 in the main memory 811 of the MSU 803 is an area used by the CPU 801 and the IOP 711 to perform input / output operations. The HSA 813 stores an execution queue 814 for controlling the execution of input / output processing, and a flag 815 indicating whether the input / output processing related to each IO is being activated.
 IOP711は、制御プロセッサ821、メモリ822、MSUアクセス部823、及びCHU通信部824を含む。メモリ822は、制御プログラム825、アクティブIOカウンタ826、及びCHU送信キュー828を格納し、CHU受信バッファ領域827を有する。CHU受信バッファ領域827には、N-1個の受信バッファが格納されている。 The IOP 711 includes a control processor 821, a memory 822, an MSU access unit 823, and a CHU communication unit 824. The memory 822 stores a control program 825, an active IO counter 826, and a CHU transmission queue 828, and has a CHU reception buffer area 827. The CHU reception buffer area 827 stores N−1 reception buffers.
 制御プロセッサ821は、メモリ822内の制御プログラム825を読み取り、その制御プログラム825を解釈して実行する。MSUアクセス部823は、制御プロセッサ821からの命令により、MCU802を介してMSU803内の主記憶811にアクセスし、HSA813からの読み取りとHSA813への書き込みを行う。CHU通信部824は、制御プロセッサ821からの命令によりCHU712と通信する。 The control processor 821 reads the control program 825 in the memory 822, interprets the control program 825, and executes it. The MSU access unit 823 accesses the main memory 811 in the MSU 803 via the MCU 802 according to an instruction from the control processor 821, and performs reading from the HSA 813 and writing to the HSA 813. The CHU communication unit 824 communicates with the CHU 712 according to a command from the control processor 821.
 IOP711は、CPU801からIO処理命令を受信すると、START_IOをCHU712へ送信し、CHU712から受信したOPTERM_STS、ASYNC_STS、BUSY_STS等の通知内容をCPU801へ送信する。アクティブIOカウンタ826は、IOP711とCHU712の間で接続中のIOの数を示すカウント値であり、その最大値はNである。アクティブIOカウンタ826を設けることで、IOP711は、IOP711における接続数が最大値Nに達したか否かをチェックすることができる。 When the IOP 711 receives an IO processing command from the CPU 801, the IOP 711 transmits START_IO to the CHU 712, and transmits notification contents such as OPTERM_STS, ASYNC_STS, and BUSY_STS received from the CHU 712 to the CPU 801. The active IO counter 826 is a count value indicating the number of IOs connected between the IOP 711 and the CHU 712, and the maximum value is N. By providing the active IO counter 826, the IOP 711 can check whether or not the number of connections in the IOP 711 has reached the maximum value N.
 CHU712は、制御プロセッサ831、メモリ832、IOP通信部833、及びIOC通信部834を含む。メモリ832は、IOP送信キュー835、制御プログラム837、コネクトIOカウンタ838、及びIOC送信キュー840を格納し、IOP受信バッファ領域836及びIOC受信バッファ領域839を有する。IOP受信バッファ領域836には、N-1個の受信バッファが格納されており、IOC受信バッファ領域839には、M-1個の受信バッファが格納されている。 The CHU 712 includes a control processor 831, a memory 832, an IOP communication unit 833, and an IOC communication unit 834. The memory 832 stores an IOP transmission queue 835, a control program 837, a connect IO counter 838, and an IOC transmission queue 840, and has an IOP reception buffer area 836 and an IOC reception buffer area 839. The IOP receive buffer area 836 stores N−1 receive buffers, and the IOC receive buffer area 839 stores M−1 receive buffers.
 制御プロセッサ831は、メモリ832内の制御プログラム837を読み取り、その制御プログラム837を解釈して実行する。IOP通信部833は、制御プロセッサ831からの命令によりIOP711と通信する。IOC通信部834は、制御プロセッサ831からの命令によりIOC702と通信する。 The control processor 831 reads the control program 837 in the memory 832 and interprets and executes the control program 837. The IOP communication unit 833 communicates with the IOP 711 according to a command from the control processor 831. The IOC communication unit 834 communicates with the IOC 702 according to a command from the control processor 831.
 CHU712は、IOP711から受信したSTART_IOをIOC702へ送信し、IOC702から受信したOPTERM_STS、ASYNC_STS、BUSY_STS等をIOP711へ送信する。コネクトIOカウンタ838は、IOP711とCHU712の間で接続中のIOの数を示すカウント値であり、その最大値はMである。コネクトIOカウンタ838を設けることで、CHU712は、CHU712における接続数が最大値Mに達したか否かをチェックすることができる。 The CHU 712 transmits START_IO received from the IOP 711 to the IOC 702, and transmits OPTERM_STS, ASYNC_STS, BUSY_STS, etc. received from the IOC 702 to the IOP 711. The connect IO counter 838 is a count value indicating the number of IOs connected between the IOP 711 and the CHU 712, and the maximum value is M. By providing the connect IO counter 838, the CHU 712 can check whether or not the number of connections in the CHU 712 has reached the maximum value M.
 IOC702は、CHU通信部841及びCHU受信バッファ領域842を含む。CHU通信部841は、CHU712と通信する。CHU受信バッファ領域842には、M-1個の受信バッファが格納されている。IOC702は、CHU712から受信したSTART_IOをIO804-1~IO804-9へ送信する。また、IOC702は、IO804-1~IO804-9から受信した入出力処理の処理結果を示すOPTERM_STS、IO804-1~IO804-9から受信した非同期割込みを示すASYNC_STS等の通知をCHU712へ送信する。 The IOC 702 includes a CHU communication unit 841 and a CHU reception buffer area 842. The CHU communication unit 841 communicates with the CHU 712. The CHU reception buffer area 842 stores M−1 reception buffers. The IOC 702 transmits the START_IO received from the CHU 712 to the IOs 804-1 to IO804-9. Further, the IOC 702 transmits notifications such as OPTERM_STS indicating the processing results of the input / output processing received from the IOs 804-1 to IO804-9 and ASYNC_STS indicating the asynchronous interrupts received from the IOs 804-1 to IO804-9 to the CHU 712.
 IO804-1~IO804-9(IO#01~IO#09)は、論理的に識別可能な9つのIOであり、それらのIDはそれぞれ#01~IO#09である。IO804-1~IO804-9は、9つの物理的なIOを表す場合もあり、9つの論理的なIOを表す場合もある。IO804-1~IO804-9は、IOC702から受信したSTART_IOに従って入出力処理を実行し、処理結果をIOC702へ送信する。また、IO804-1~IO804-9は、IO状態の変化を示す非同期割込み等をIOC702へ送信する。 IO804-1 to IO804-9 (IO # 01 to IO # 09) are nine logically identifiable IOs, and their IDs are # 01 to IO # 09, respectively. The IOs 804-1 to IO804-9 may represent nine physical IOs and may represent nine logical IOs. The IOs 804-1 to IO804-9 execute input / output processing according to START_IO received from the IOC 702, and transmit the processing result to the IOC 702. Further, the IOs 804-1 to IO804-9 transmit an asynchronous interrupt or the like indicating a change in the IO state to the IOC 702.
 なお、IOC702に接続されるIOの数は9つに限られるものではなく、1以上の整数であればよい。第1の上限値Nも1以上の整数であればよく、第2の上限値Mは2以上の整数であればよい。システムプログラム812により複数の仮想マシンである仮想コンピュータが動作する場合は、Nは仮想コンピュータの数以上であることが望ましく、MとNの差M-Nも仮想コンピュータの数以上であることが望ましい。 Note that the number of IOs connected to the IOC 702 is not limited to nine and may be an integer of 1 or more. The first upper limit value N may be an integer equal to or greater than 1, and the second upper limit value M may be an integer equal to or greater than 2. When a virtual computer that is a plurality of virtual machines is operated by the system program 812, N is preferably equal to or greater than the number of virtual computers, and the difference M−N between M and N is preferably equal to or greater than the number of virtual computers. .
 主記憶811、メモリ822、及びメモリ832は、例えば、Random Access Memory(RAM)等の半導体メモリである。システムプログラム812、制御プログラム825、及び制御プログラム837をRAMに格納する代わりに、Read Only Memory(ROM)に格納しておいてもよい。 The main memory 811, the memory 822, and the memory 832 are semiconductor memories such as Random Access Memory (RAM), for example. The system program 812, the control program 825, and the control program 837 may be stored in a Read Only Memory (ROM) instead of being stored in the RAM.
 また、情報処理システムは、外部記憶装置又は可搬型記録媒体に格納されたシステムプログラム812、制御プログラム825、又は制御プログラム837をIO804-1~IO804-9を介して、主記憶811、メモリ822、及びメモリ832にロードすることもできる。 In addition, the information processing system transmits a system program 812, a control program 825, or a control program 837 stored in an external storage device or a portable recording medium via the IO 804-1 to IO 804-9 to the main memory 811, the memory 822, And can be loaded into memory 832.
 外部記憶装置は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。この外部記憶装置には、ハードディスクドライブも含まれる。可搬型記録媒体は、例えば、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体には、Compact Disk Read Only Memory(CD-ROM)、Digital Versatile Disk(DVD)、フラッシュメモリ、Universal Serial Bus(USB)メモリ等も含まれる。 The external storage device is, for example, a magnetic disk device, an optical disk device, a magneto-optical disk device, a tape device, or the like. The external storage device also includes a hard disk drive. The portable recording medium is, for example, a memory device, a flexible disk, an optical disk, a magneto-optical disk, or the like. The portable recording medium includes Compact Disk Read Only Memory (CD-ROM), Digital Versatile Disk (DVD), flash memory, Universal Serial Bus (USB) memory, and the like.
 このように、システムプログラム812、制御プログラム825、又は制御プログラム837を格納するコンピュータ読み取り可能な記録媒体には、RAM、ROM、外部記憶装置、及び可搬型記録媒体のような、物理的な(非一時的な)記録媒体が含まれる。 As described above, the computer-readable recording medium storing the system program 812, the control program 825, or the control program 837 includes physical (non-volatile) such as a RAM, a ROM, an external storage device, and a portable recording medium. Temporary recording media are included.
 図9~図14は、IOP711が行う処理の例を示すフローチャートである。図9~図14において、“IDLE”は、IOP711がアイドリング状態であることを示している。 9 to 14 are flowcharts showing examples of processing performed by the IOP 711. 9 to 14, “IDLE” indicates that the IOP 711 is idling.
 IOP711は、アクティブIOカウンタ826に1を加算したときに、HSA813の対応するIOのフラグ815をオンにし、アクティブIOカウンタ826から1を減算したときに、対応するIOのフラグ815をオフにする。 The IOP 711 turns on the corresponding IO flag 815 of the HSA 813 when adding 1 to the active IO counter 826, and turns off the corresponding IO flag 815 when subtracting 1 from the active IO counter 826.
 まず、図9の処理を説明する。IOP711は、CPU801からIO処理命令を受信すると(ステップ901)、アクティブIOカウンタ826をチェックする(ステップ902)。アクティブIOカウンタ826がNより小さければ(ステップ902,YES)、IOP711は、アクティブIOカウンタ826に1を加算し(ステップ903)、CHU送信キュー828が空か否かをチェックする(ステップ904)。 First, the process of FIG. 9 will be described. When the IOP 711 receives an IO processing command from the CPU 801 (step 901), the IOP 711 checks the active IO counter 826 (step 902). If the active IO counter 826 is smaller than N (step 902, YES), the IOP 711 adds 1 to the active IO counter 826 (step 903), and checks whether the CHU transmission queue 828 is empty (step 904).
 CHU送信キュー828が空であれば(ステップ904,YES)、IOP711は、CHU712のIOP受信バッファ領域836に空きがあるか否かをチェックする(ステップ905)。IOP受信バッファ領域836に空きがあれば(ステップ905,YES)、IOP711は、START_IOをCHU712へ送信する(ステップ906)。 If the CHU transmission queue 828 is empty (step 904, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 905). If there is a free space in the IOP reception buffer area 836 (step 905, YES), the IOP 711 transmits START_IO to the CHU 712 (step 906).
 一方、アクティブIOカウンタ826がNに達していれば(ステップ902,NO)、IOP711は、START_IOをHSA813の実行キュー814にエンキューして(ステップ907)、別の処理を行う。START_IOを実行キュー814にエンキューすることで、IOP711は、CHU712へのSTART_IOの送信を保留する。 On the other hand, if the active IO counter 826 has reached N (step 902, NO), the IOP 711 enqueues START_IO into the execution queue 814 of the HSA 813 (step 907), and performs another process. By enqueueing START_IO into the execution queue 814, the IOP 711 suspends transmission of START_IO to the CHU 712.
 CHU送信キュー828が空でなければ(ステップ904,NO)、IOP711は、START_IOをCHU送信キュー828にエンキューする(ステップ908)。また、IOP受信バッファ領域836に空きがなければ(ステップ905,NO)、IOP711は、ステップ908の処理を行う。 If the CHU transmission queue 828 is not empty (step 904, NO), the IOP 711 enqueues START_IO into the CHU transmission queue 828 (step 908). If there is no free space in the IOP reception buffer area 836 (NO in step 905), the IOP 711 performs the processing in step 908.
 次に、図10の処理を説明する。IOP711は、CHU712からOPTERM_STS又はBUSY_STSを受信すると(ステップ1001)、CHU送信キュー828が空か否かをチェックする(ステップ1002)。CHU送信キュー828が空であれば(ステップ1002,YES)、IOP711は、CHU712のIOP受信バッファ領域836に空きがあるか否かをチェックする(ステップ1003)。 Next, the process of FIG. 10 will be described. When the IOP 711 receives OPTERM_STS or BUSY_STS from the CHU 712 (step 1001), the IOP 711 checks whether or not the CHU transmission queue 828 is empty (step 1002). If the CHU transmission queue 828 is empty (step 1002, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1003).
 IOP受信バッファ領域836に空きがあれば(ステップ1003,YES)、IOP711は、ACC_STSをCHU712へ送信する(ステップ1004)。そして、IOP711は、受信した通知内容を示すIO処理結果をCPU801へ送信し(ステップ1005)、アクティブIOカウンタ826から1を減算する(ステップ1006)。 If there is an empty IOP reception buffer area 836 (step 1003, YES), the IOP 711 transmits ACC_STS to the CHU 712 (step 1004). Then, the IOP 711 transmits an IO processing result indicating the received notification content to the CPU 801 (step 1005), and subtracts 1 from the active IO counter 826 (step 1006).
 一方、CHU送信キュー828が空でなければ(ステップ1002,NO)、IOP711は、ACC_STSをCHU送信キュー828にエンキューする(ステップ1007)。また、IOP受信バッファ領域836に空きがなければ(ステップ1003,NO)、IOP711は、ステップ1007の処理を行う。 On the other hand, if the CHU transmission queue 828 is not empty (step 1002, NO), the IOP 711 enqueues ACC_STS into the CHU transmission queue 828 (step 1007). If there is no free space in the IOP reception buffer area 836 (step 1003, NO), the IOP 711 performs the process of step 1007.
 次に、図11の処理を説明する。IOP711は、CHU712からASYNC_STSを受信すると(ステップ1101)、HSA813のフラグ815を参照して、同じIOに関する入出力処理が起動中か否かをチェックする(ステップ1102)。同じIOに関する入出力処理が起動中であれば(ステップ1101,YES)、IOP711は、ASYNC_STSを破棄する(ステップ1107)。 Next, the process of FIG. 11 will be described. When the IOP 711 receives ASYNC_STS from the CHU 712 (step 1101), the IOP 711 refers to the flag 815 of the HSA 813 and checks whether an input / output process related to the same IO is being activated (step 1102). If the input / output processing related to the same IO is being activated (step 1101, YES), the IOP 711 discards ASYNC_STS (step 1107).
 同じIOに関する入出力処理が起動中でなければ(ステップ1101,NO)、IOP711は、CHU送信キュー828が空か否かをチェックする(ステップ1103)。CHU送信キュー828が空であれば(ステップ1103,YES)、IOP711は、CHU712のIOP受信バッファ領域836に空きがあるか否かをチェックする(ステップ1104)。IOP受信バッファ領域836に空きがあれば(ステップ1104,YES)、IOP711は、ACC_STSをCHU712へ送信し(ステップ1105)、ASYNC_STSの通知内容を示す非同期割込みをCPU801へ送信する(ステップ1106)。 If the input / output processing related to the same IO is not active (step 1101, NO), the IOP 711 checks whether or not the CHU transmission queue 828 is empty (step 1103). If the CHU transmission queue 828 is empty (step 1103, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1104). If there is an empty IOP reception buffer area 836 (step 1104, YES), the IOP 711 transmits ACC_STS to the CHU 712 (step 1105), and transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (step 1106).
 一方、CHU送信キュー828が空でなければ(ステップ1103,NO)、IOP711は、アクティブIOカウンタ826に1を加算し(ステップ1108)、ACC_STSをCHU送信キュー828にエンキューする(ステップ1109)。また、IOP受信バッファ領域836に空きがなければ(ステップ1104,NO)、IOP711は、ステップ1108以降の処理を行う。 On the other hand, if the CHU transmission queue 828 is not empty (step 1103, NO), the IOP 711 adds 1 to the active IO counter 826 (step 1108), and enqueues ACC_STS into the CHU transmission queue 828 (step 1109). If there is no free space in the IOP reception buffer area 836 (step 1104, NO), the IOP 711 performs the processing from step 1108 onward.
 次に、図12の処理を説明する。IOP711は、CHU712からBUSYを受信すると(ステップ1201)、アクティブIOカウンタ826から1を減算し(ステップ1202)、START_IOをHSA813の実行キュー814にエンキューする(ステップ1203)。 Next, the process of FIG. 12 will be described. When the IOP 711 receives BUSY from the CHU 712 (step 1201), it subtracts 1 from the active IO counter 826 (step 1202) and enqueues START_IO into the execution queue 814 of the HSA 813 (step 1203).
 次に、図13の処理を説明する。IOP711は、所定のタイミングでCHU送信キュー828が空か否かをチェックする(ステップ1301)。CHU送信キュー828が空でなければ(ステップ1301,NO)、IOP711は、CHU712のIOP受信バッファ領域836に空きがあるか否かをチェックする(ステップ1302)。 Next, the process of FIG. 13 will be described. The IOP 711 checks whether or not the CHU transmission queue 828 is empty at a predetermined timing (step 1301). If the CHU transmission queue 828 is not empty (step 1301, NO), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1302).
 IOP受信バッファ領域836に空きがあれば(ステップ1302,YES)、IOP711は、CHU送信キュー828から先頭の情報をデキューし(ステップ1303)、その情報がSTART_IOか否かをチェックする(ステップ1304)。 If there is an empty IOP reception buffer area 836 (step 1302, YES), the IOP 711 dequeues the head information from the CHU transmission queue 828 (step 1303) and checks whether the information is START_IO (step 1304). .
 先頭の情報がSTART_IOであれば(ステップ1304,YES)、IOP711は、そのSTART_IOをCHU712へ送信する(ステップ1305)。 If the top information is START_IO (step 1304, YES), the IOP 711 transmits the START_IO to the CHU 712 (step 1305).
 先頭の情報がSTART_IOではなく、ACC_STSであれば(ステップ1304,NO)、IOP711は、アクティブIOカウンタ826から1を減算し(ステップ1306)、そのACC_STSをCHU712へ送信する(ステップ1307)。そして、IOP711は、送信したACC_STSがASYNC_STSに対する応答であるか否かをチェックする(ステップ1308)。 If the head information is not START_IO but ACC_STS (step 1304, NO), the IOP 711 subtracts 1 from the active IO counter 826 (step 1306), and transmits the ACC_STS to the CHU 712 (step 1307). Then, the IOP 711 checks whether or not the transmitted ACC_STS is a response to the ASYNC_STS (step 1308).
 ACC_STSがASYNC_STSに対する応答ではなく、OPTERM_STS又はBUSY_STSに対する応答であれば(ステップ1308,NO)、IOP711は、IO処理結果をCPU801へ送信する(ステップ1309)。 If ACC_STS is not a response to ASYNC_STS but a response to OPTERM_STS or BUSY_STS (step 1308, NO), IOP 711 transmits the IO processing result to CPU 801 (step 1309).
 ACC_STSがASYNC_STSに対する応答であれば(ステップ1308,YES)、IOP711は、非同期割込みをCPU801へ送信する(ステップ1310)。 If ACC_STS is a response to ASYNC_STS (step 1308, YES), the IOP 711 transmits an asynchronous interrupt to the CPU 801 (step 1310).
 一方、CHU送信キュー828が空であれば(ステップ1301,YES)、IOP711は、別の処理を行う。また、IOP受信バッファ領域836に空きがなければ(ステップ1003,NO)、IOP711は、別の処理を行う。 On the other hand, if the CHU transmission queue 828 is empty (step 1301, YES), the IOP 711 performs another process. If there is no free space in IOP reception buffer area 836 (step 1003, NO), IOP 711 performs another process.
 次に、図14の処理を説明する。IOP711は、所定のタイミングでHSA813の実行キュー814が空か否かをチェックする(ステップ1401)。実行キュー814が空でなければ(ステップ1401,NO)、IOP711は、アクティブIOカウンタ826をチェックする(ステップ1402)。 Next, the process of FIG. 14 will be described. The IOP 711 checks whether or not the execution queue 814 of the HSA 813 is empty at a predetermined timing (step 1401). If the execution queue 814 is not empty (step 1401, NO), the IOP 711 checks the active IO counter 826 (step 1402).
 アクティブIOカウンタ826がNより小さければ(ステップ1402,YES)、IOP711は、実行キュー814から先頭のSTART_IOをデキューする(ステップ1403)。そして、IOP711は、アクティブIOカウンタ826に1を加算し(ステップ1404)、CHU送信キュー828が空か否かをチェックする(ステップ1405)。CHU送信キュー828が空であれば(ステップ1405,YES)、IOP711は、CHU712のIOP受信バッファ領域836に空きがあるか否かをチェックする(ステップ1406)。 If the active IO counter 826 is smaller than N (step 1402, YES), the IOP 711 dequeues the first START_IO from the execution queue 814 (step 1403). The IOP 711 adds 1 to the active IO counter 826 (step 1404) and checks whether the CHU transmission queue 828 is empty (step 1405). If the CHU transmission queue 828 is empty (step 1405, YES), the IOP 711 checks whether or not there is an empty space in the IOP reception buffer area 836 of the CHU 712 (step 1406).
 IOP受信バッファ領域836に空きがあれば(ステップ1406,YES)、IOP711は、START_IOをCHU712へ送信する(ステップ1407)。 If there is an empty IOP reception buffer area 836 (step 1406, YES), the IOP 711 transmits START_IO to the CHU 712 (step 1407).
 一方、実行キュー814が空であれば(ステップ1401,YES)、IOP711は、別の処理を行う。また、アクティブIOカウンタ826がNに達していれば(ステップ1402,NO)、IOP711は、別の処理を行う。 On the other hand, if the execution queue 814 is empty (step 1401, YES), the IOP 711 performs another process. If the active IO counter 826 has reached N (step 1402, NO), the IOP 711 performs another process.
 CHU送信キュー828が空でなければ(ステップ1405,NO)、IOP711は、START_IOをCHU送信キュー828にエンキューする(ステップ1408)。また、IOP受信バッファ領域836に空きがなければ(ステップ1406,NO)、IOP711は、ステップ1408の処理を行う。 If the CHU transmission queue 828 is not empty (step 1405, NO), the IOP 711 enqueues START_IO into the CHU transmission queue 828 (step 1408). If there is no free space in the IOP reception buffer area 836 (step 1406, NO), the IOP 711 performs the processing of step 1408.
 図15~図20は、CHU712が行う処理の例を示すフローチャートである。図15~図20において、“IDLE”は、CHU712がアイドリング状態であることを示している。 15 to 20 are flowcharts showing examples of processing performed by the CHU 712. 15 to 20, “IDLE” indicates that the CHU 712 is in an idling state.
 まず、図15の処理を説明する。CHU712は、IOP711からSTART_IOを受信すると(ステップ1501)、同じIOに関するASYNC_STSをIOP711へ送信して応答待ちであるか否かをチェックする(ステップ1502)。応答待ちでなければ(ステップ1502,NO)、CHU712は、コネクトIOカウンタ838をチェックする(ステップ1503)。 First, the processing of FIG. 15 will be described. When the CHU 712 receives START_IO from the IOP 711 (step 1501), the CHU 712 transmits an ASYNC_STS related to the same IO to the IOP 711 and checks whether or not it is waiting for a response (step 1502). If not waiting for a response (step 1502, NO), the CHU 712 checks the connect IO counter 838 (step 1503).
 コネクトIOカウンタ838がNより小さければ(ステップ1503,YES)、CHU712は、コネクトIOカウンタ838に1を加算し(ステップ1404)、IOC送信キュー840が空か否かをチェックする(ステップ1505)。IOC送信キュー840が空であれば(ステップ1505,YES)、CHU712は、IOC702のCHU受信バッファ領域842に空きがあるか否かをチェックする(ステップ1506)。 If the connect IO counter 838 is smaller than N (step 1503, YES), the CHU 712 adds 1 to the connect IO counter 838 (step 1404) and checks whether the IOC transmission queue 840 is empty (step 1505). If the IOC transmission queue 840 is empty (step 1505, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1506).
 CHU受信バッファ領域842に空きがあれば(ステップ1506,YES)、CHU712は、START_IOをIOC702へ送信する(ステップ1507)。 If there is an empty space in the CHU reception buffer area 842 (step 1506, YES), the CHU 712 transmits START_IO to the IOC 702 (step 1507).
 一方、IOC送信キュー840が空でなければ(ステップ1505,NO)、CHU712は、START_IOをIOC送信キュー840にエンキューする(ステップ1509)。また、CHU受信バッファ領域842に空きがなければ(ステップ1506,NO)、CHU712は、ステップ1509の処理を行う。 On the other hand, if the IOC transmission queue 840 is not empty (step 1505, NO), the CHU 712 enqueues START_IO into the IOC transmission queue 840 (step 1509). If there is no free space in the CHU reception buffer area 842 (step 1506, NO), the CHU 712 performs the processing of step 1509.
 ASYNC_STSに対する応答待ちであれば(ステップ1502,YES)、CHU712は、応答待ちを解除して(ステップ1508)、ステップ1505以降の処理を行う。 If it is waiting for a response to ASYNC_STS (step 1502, YES), the CHU 712 cancels the response waiting (step 1508) and performs the processing from step 1505 onward.
 コネクトIOカウンタ838がN以上であれば(ステップ1503,NO)、CHU712は、IOP送信キュー835が空か否かをチェックする(ステップ1510)。IOP送信キュー835が空であれば(ステップ1510,YES)、CHU712は、IOP711のCHU受信バッファ領域827に空きがあるか否かをチェックする(ステップ1511)。 If the connect IO counter 838 is greater than or equal to N (step 1503, NO), the CHU 712 checks whether or not the IOP transmission queue 835 is empty (step 1510). If the IOP transmission queue 835 is empty (step 1510, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1511).
 CHU受信バッファ領域827に空きがあれば(ステップ1511,YES)、CHU712は、BUSYをIOP711へ送信する(ステップ1512)。IOP送信キュー835が空でなければ(ステップ1510,NO)、CHU712は、BUSYをIOP送信キュー835にエンキューする(ステップ1513)。また、CHU受信バッファ領域827に空きがなければ(ステップ1511,NO)、CHU712は、ステップ1513の処理を行う。 If there is an empty space in the CHU reception buffer area 827 (step 1511, YES), the CHU 712 transmits BUSY to the IOP 711 (step 1512). If the IOP transmission queue 835 is not empty (NO in step 1510), the CHU 712 enqueues BUSY in the IOP transmission queue 835 (step 1513). If there is no free space in the CHU reception buffer area 827 (step 1511, NO), the CHU 712 performs the process of step 1513.
 次に、図16の処理を説明する。CHU712は、IOC702からOPTERM_STS又はBUSY_STSを受信すると(ステップ1601)、IOP送信キュー835が空か否かをチェックする(ステップ1602)。IOP送信キュー835が空であれば(ステップ1602,YES)、CHU712は、IOP711のCHU受信バッファ領域827に空きがあるか否かをチェックする(ステップ1603)。 Next, the process of FIG. 16 will be described. When the CHU 712 receives OPTERM_STS or BUSY_STS from the IOC 702 (step 1601), the CHU 712 checks whether or not the IOP transmission queue 835 is empty (step 1602). If the IOP transmission queue 835 is empty (step 1602, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1603).
 CHU受信バッファ領域827に空きがあれば(ステップ1603,YES)、CHU712は、受信した通知をIOP711へ送信する(ステップ1604)。IOP送信キュー835が空でなければ(ステップ1602,NO)、CHU712は、受信した通知をIOP送信キュー835にエンキューする(ステップ1605)。また、CHU受信バッファ領域827に空きがなければ(ステップ1603,NO)、CHU712は、ステップ1605の処理を行う。 If there is an empty space in the CHU reception buffer area 827 (step 1603, YES), the CHU 712 transmits the received notification to the IOP 711 (step 1604). If the IOP transmission queue 835 is not empty (step 1602, NO), the CHU 712 enqueues the received notification in the IOP transmission queue 835 (step 1605). If there is no free space in the CHU reception buffer area 827 (step 1603, NO), the CHU 712 performs the process of step 1605.
 次に、図17の処理を説明する。CHU712は、IOC702からASYNC_STSを受信すると(ステップ1701)、同じIOに関するSTART_IOをIOC702へ送信して応答待ちであるか否かをチェックする(ステップ1702)。応答待ちでなければ(ステップ1702,NO)、CHU712は、コネクトIOカウンタ838をチェックする(ステップ1703)。 Next, the process of FIG. 17 will be described. When the CHU 712 receives the ASYNC_STS from the IOC 702 (step 1701), the CHU 712 transmits a START_IO related to the same IO to the IOC 702 to check whether it is waiting for a response (step 1702). If not waiting for a response (step 1702, NO), the CHU 712 checks the connect IO counter 838 (step 1703).
 コネクトIOカウンタ838がMより小さければ(ステップ1703,YES)、CHU712は、コネクトIOカウンタ838に1を加算し(ステップ1704)、IOP送信キュー835が空か否かをチェックする(ステップ1705)。IOP送信キュー835が空であれば(ステップ1705,YES)、CHU712は、IOP711のCHU受信バッファ領域827に空きがあるか否かをチェックする(ステップ1706)。 If the connect IO counter 838 is smaller than M (step 1703, YES), the CHU 712 adds 1 to the connect IO counter 838 (step 1704) and checks whether the IOP transmission queue 835 is empty (step 1705). If the IOP transmission queue 835 is empty (step 1705, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 1706).
 CHU受信バッファ領域827に空きがあれば(ステップ1706,YES)、CHU712は、ASYNC_STSをIOP711へ送信する(ステップ1707)。IOP送信キュー835が空でなければ(ステップ1705,NO)、CHU712は、ASYNC_STSをIOP送信キュー835にエンキューする(ステップ1709)。また、CHU受信バッファ領域827に空きがなければ(ステップ1706,NO)、CHU712は、ステップ1709の処理を行う。 If there is an empty space in the CHU reception buffer area 827 (step 1706, YES), the CHU 712 transmits ASYNC_STS to the IOP 711 (step 1707). If the IOP transmission queue 835 is not empty (step 1705, NO), the CHU 712 enqueues ASYNC_STS into the IOP transmission queue 835 (step 1709). If there is no free space in the CHU reception buffer area 827 (step 1706, NO), the CHU 712 performs the processing of step 1709.
 START_IOに対する応答待ちであれば(ステップ1702,YES)、CHU712は、受信したASYNC_STSを破棄し、そのASYNC_STSに対する応答待ちを解除する(ステップ1708)。 If waiting for a response to START_IO (step 1702, YES), the CHU 712 discards the received ASYNC_STS and cancels waiting for a response to the ASYNC_STS (step 1708).
 コネクトIOカウンタ838がMに達していれば(ステップ1703,NO)、CHU712は、IOC送信キュー840が空か否かをチェックする(ステップ1710)。IOC送信キュー840が空であれば(ステップ1710,YES)、CHU712は、IOC702のCHU受信バッファ領域842に空きがあるか否かをチェックする(ステップ1711)。 If the connect IO counter 838 has reached M (step 1703, NO), the CHU 712 checks whether or not the IOC transmission queue 840 is empty (step 1710). If the IOC transmission queue 840 is empty (step 1710, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1711).
 CHU受信バッファ領域842に空きがあれば(ステップ1711,YES)、CHU712は、BUSYをIOC702へ送信する(ステップ1712)。このBUSYは、コネクトIOカウンタ838がM以上である場合に、IOC702から新たなASYNC_STSを受信したため、そのASYNC_STSを受け付けられないことを示すビジー通知である。CHU712は、BUSYをIOC702へ送信することで、IOP711へのASYNC_STSの送信を抑止する。 If there is an empty space in the CHU reception buffer area 842 (step 1711, YES), the CHU 712 transmits BUSY to the IOC 702 (step 1712). This BUSY is a busy notification indicating that the ASYNC_STS cannot be accepted because a new ASYNC_STS is received from the IOC 702 when the connect IO counter 838 is equal to or greater than M. The CHU 712 suppresses transmission of ASYNC_STS to the IOP 711 by transmitting BUSY to the IOC 702.
 一方、IOC送信キュー840が空でなければ(ステップ1710,NO)、CHU712は、BUSYをIOC送信キュー840にエンキューする(ステップ1713)。また、CHU受信バッファ領域842に空きがなければ(ステップ1711,NO)、CHU712は、ステップ1713の処理を行う。 On the other hand, if the IOC transmission queue 840 is not empty (NO at step 1710), the CHU 712 enqueues BUSY into the IOC transmission queue 840 (step 1713). If there is no free space in the CHU reception buffer area 842 (step 1711, NO), the CHU 712 performs the process of step 1713.
 次に、図18の処理を説明する。CHU712は、IOP711からACC_STSを受信すると(ステップ1801)、IOC送信キュー840が空か否かをチェックする(ステップ1802)。IOC送信キュー840が空であれば(ステップ1802,YES)、CHU712は、IOC702のCHU受信バッファ領域842に空きがあるか否かをチェックする(ステップ1803)。 Next, the process of FIG. 18 will be described. When the CHU 712 receives ACC_STS from the IOP 711 (step 1801), the CHU 712 checks whether or not the IOC transmission queue 840 is empty (step 1802). If the IOC transmission queue 840 is empty (step 1802, YES), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1803).
 CHU受信バッファ領域842に空きがあれば(ステップ1803,YES)、CHU712は、ACC_STSをIOC702へ送信し(ステップ1804)、コネクトIOカウンタ838から1を減算する(ステップ1805)。 If there is an empty space in the CHU reception buffer area 842 (step 1803, YES), the CHU 712 transmits ACC_STS to the IOC 702 (step 1804) and subtracts 1 from the connect IO counter 838 (step 1805).
 一方、IOC送信キュー840が空でなければ(ステップ1802,NO)、CHU712は、ACC_STSをIOC送信キュー840にエンキューする(ステップ1806)。また、CHU受信バッファ領域842に空きがなければ(ステップ1803,NO)、CHU712は、ステップ1806の処理を行う。 On the other hand, if the IOC transmission queue 840 is not empty (step 1802, NO), the CHU 712 enqueues ACC_STS into the IOC transmission queue 840 (step 1806). If there is no free space in the CHU reception buffer area 842 (step 1803, NO), the CHU 712 performs the process of step 1806.
 次に、図19の処理を説明する。CHU712は、所定のタイミングでIOC送信キュー840が空か否かをチェックする(ステップ1901)。IOC送信キュー840が空でなければ(ステップ1901,NO)、CHU712は、IOC702のCHU受信バッファ領域842に空きがあるか否かをチェックする(ステップ1902)。 Next, the process of FIG. 19 will be described. The CHU 712 checks whether or not the IOC transmission queue 840 is empty at a predetermined timing (step 1901). If the IOC transmission queue 840 is not empty (NO in step 1901), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 842 of the IOC 702 (step 1902).
 CHU受信バッファ領域842に空きがあれば(ステップ1902,YES)、CHU712は、IOC送信キュー840から先頭の情報をデキューし(ステップ1903)、その情報がSTART_IOか否かをチェックする(ステップ1904)。 If there is an empty space in the CHU reception buffer area 842 (step 1902, YES), the CHU 712 dequeues the top information from the IOC transmission queue 840 (step 1903) and checks whether the information is START_IO (step 1904). .
 先頭の情報がSTART_IOであれば(ステップ1904,YES)、CHU712は、そのSTART_IOをIOC702へ送信する(ステップ1905)。 If the head information is START_IO (step 1904, YES), the CHU 712 transmits the START_IO to the IOC 702 (step 1905).
 先頭の情報がSTART_IOでなければ(ステップ1904,NO)、CHU712は、その情報がACC_STSか否かをチェックする(ステップ1906)。先頭の情報がACC_STSであれば(ステップ1906,YES)、CHU712は、コネクトIOカウンタ838から1を減算し(ステップ1907)、そのACC_STSをIOC702へ送信する(ステップ1908)。 If the head information is not START_IO (step 1904, NO), the CHU 712 checks whether the information is ACC_STS (step 1906). If the head information is ACC_STS (step 1906, YES), the CHU 712 subtracts 1 from the connect IO counter 838 (step 1907) and transmits the ACC_STS to the IOC 702 (step 1908).
 先頭の情報がACC_STSではなく、BUSYであれば(ステップ1906,NO)、CHU712は、そのBUSYをIOC702へ送信する(ステップ1909)。 If the head information is not ACC_STS but BUSY (step 1906, NO), the CHU 712 transmits the BUSY to the IOC 702 (step 1909).
 一方、IOC送信キュー840が空であれば(ステップ1901,YES)、CHU712は、別の処理を行う。また、CHU受信バッファ領域842に空きがなければ(ステップ1902,NO)、CHU712は、別の処理を行う。 On the other hand, if the IOC transmission queue 840 is empty (step 1901, YES), the CHU 712 performs another process. If there is no free space in the CHU reception buffer area 842 (step 1902, NO), the CHU 712 performs another process.
 次に、図20の処理を説明する。CHU712は、所定のタイミングでIOP送信キュー835が空か否かをチェックする(ステップ2001)。IOP送信キュー835が空でなければ(ステップ2001,NO)、CHU712は、IOP711のCHU受信バッファ領域827に空きがあるか否かをチェックする(ステップ2002)。 Next, the process of FIG. 20 will be described. The CHU 712 checks whether or not the IOP transmission queue 835 is empty at a predetermined timing (step 2001). If the IOP transmission queue 835 is not empty (step 2001, NO), the CHU 712 checks whether or not there is an empty space in the CHU reception buffer area 827 of the IOP 711 (step 2002).
 CHU受信バッファ領域827に空きがあれば(ステップ2002,YES)、CHU712は、IOP送信キュー835から先頭の情報をデキューする(ステップ2003)。そして、CHU712は、その情報がOPTERM_STS又はBUSY_STSの1つであるか否かをチェックする(ステップ2004)。 If there is a free space in the CHU reception buffer area 827 (step 2002, YES), the CHU 712 dequeues the head information from the IOP transmission queue 835 (step 2003). Then, the CHU 712 checks whether or not the information is one of OPTERM_STS or BUSY_STS (step 2004).
 先頭の情報がOPTERM_STS又はBUSY_STSの1つであれば(ステップ2004,YES)、CHU712は、その通知をIOP711へ送信する(ステップ2005)。 If the head information is one of OPTERM_STS or BUSY_STS (step 2004, YES), the CHU 712 transmits the notification to the IOP 711 (step 2005).
 先頭の情報がOPTERM_STS又はBUSY_STSのいずれでもなければ(ステップ2004,NO)、CHU712は、その情報がASYNC_STSか否かをチェックする(ステップ2006)。先頭の情報がASYNC_STSであれば(ステップ2006,YES)、CHU712は、そのASYNC_STSをIOP711へ送信する(ステップ2007)。 If the top information is neither OPTERM_STS nor BUSY_STS (step 2004, NO), the CHU 712 checks whether the information is ASYNC_STS (step 2006). If the head information is ASYNC_STS (step 2006, YES), the CHU 712 transmits the ASYNC_STS to the IOP 711 (step 2007).
 先頭の情報がASYNC_STSではなく、BUSYであれば(ステップ2006,NO)、CHU712は、そのBUSYをIOP711へ送信する(ステップ2008)。 If the head information is not ASYNC_STS but BUSY (step 2006, NO), the CHU 712 transmits the BUSY to the IOP 711 (step 2008).
 一方、IOP送信キュー835が空であれば(ステップ2001,YES)、CHU712は、別の処理を行う。また、CHU受信バッファ領域827に空きがなければ(ステップ2002,NO)、CHU712は、別の処理を行う。 On the other hand, if the IOP transmission queue 835 is empty (step 2001, YES), the CHU 712 performs another process. If there is no free space in the CHU reception buffer area 827 (step 2002, NO), the CHU 712 performs another process.
 図9~図20に示した各フローチャートは一例に過ぎず、情報処理システムの構成や条件に応じて一部の処理を省略又は変更してもよく、ステップの順序を入れ替えてもよい。 9 to 20 are merely examples, and some processes may be omitted or changed according to the configuration and conditions of the information processing system, and the order of steps may be changed.
 例えば、図9において、ステップ903のカウンタ加算処理をステップ906又はステップ908の後に移動してもよい。図10において、ステップ1006のカウンタ減算処理をステップ1004の前又は後に移動してもよい。図11において、ステップ1108のカウンタ加算処理をステップ1109の後に移動してもよい。図12において、ステップ1202のカウンタ減算処理をステップ1203の後に移動してもよい。 For example, in FIG. 9, the counter addition processing in step 903 may be moved after step 906 or step 908. In FIG. 10, the counter subtraction process in step 1006 may be moved before or after step 1004. In FIG. 11, the counter addition process in step 1108 may be moved after step 1109. In FIG. 12, the counter subtraction process in step 1202 may be moved after step 1203.
 図13において、ステップ1306のカウンタ減算処理をステップ1307の後に移動してもよく、ステップ1309又はステップ1310の後に移動してもよい。図14において、ステップ1404のカウンタ加算処理をステップ1403の前に移動してもよく、ステップ1407又はステップ1408の後に移動してもよい。 In FIG. 13, the counter subtraction process in step 1306 may be moved after step 1307, or may be moved after step 1309 or step 1310. In FIG. 14, the counter addition process in step 1404 may be moved before step 1403 or may be moved after step 1407 or step 1408.
 図17において、ステップ1704のカウンタ加算処理をステップ1707又はステップ1709の後に移動してもよい。図18において、ステップ1805のカウンタ減算処理をステップ1804の前に移動してもよい。図19において、ステップ1907のカウンタ減算処理をステップ1908の後に移動してもよい。 In FIG. 17, the counter addition process in step 1704 may be moved after step 1707 or step 1709. In FIG. 18, the counter subtraction process in step 1805 may be moved before step 1804. In FIG. 19, the counter subtraction process in step 1907 may be moved after step 1908.
 また、図15のステップ1503において、コネクトIOカウンタ838と比較される閾値Nの代わりに、Nより大きくM以下の整数を用いてもよい。 Further, in step 1503 of FIG. 15, an integer greater than N and equal to or less than M may be used instead of the threshold value N compared with the connect IO counter 838.
 図21~図26は、図8の情報処理システムにおける図7の入出力制御のシーケンスを示している。ただし、図21~図26では、図8のIO804-1~IO804-9の代わりに、図7のIO703-1~IO703-5が用いられている。図21~図26における手順の順序は、図9~図20のフローチャートにおけるステップの順序とは異なる場合がある。 21 to 26 show the input / output control sequence of FIG. 7 in the information processing system of FIG. However, in FIGS. 21 to 26, IO703-1 to IO703-5 of FIG. 7 are used instead of IO804-1 to IO804-9 of FIG. The order of procedures in FIGS. 21 to 26 may be different from the order of steps in the flowcharts of FIGS. 9 to 20.
 第1の上限値Nは3であり、第2の上限値Mは4である。したがって、CHU受信バッファ領域827及びIOP受信バッファ領域836はそれぞれ2個の受信バッファを有し、IOC受信バッファ領域839及びCHU受信バッファ領域842はそれぞれ3個の受信バッファを有する。 The first upper limit value N is 3, and the second upper limit value M is 4. Therefore, each of the CHU reception buffer area 827 and the IOP reception buffer area 836 has two reception buffers, and each of the IOC reception buffer area 839 and the CHU reception buffer area 842 has three reception buffers.
 まず、図21及び図22のシーケンスを説明する。手順2102~手順2113は図9の処理に対応し、手順2114~手順2115は図11の処理に対応する。手順2122~手順2128は図17の処理に対応し、手順2129~手順2140は図15の処理に対応する。 First, the sequence of FIGS. 21 and 22 will be described. Procedures 2102 to 2113 correspond to the process of FIG. 9, and procedures 2114 to 2115 correspond to the process of FIG. Procedures 2122 to 2128 correspond to the process of FIG. 17, and procedures 2129 to 2140 correspond to the process of FIG.
 IOP711の制御プロセッサ821は、アクティブIOカウンタ826に初期値0を設定する(手順2101)。 The control processor 821 of the IOP 711 sets an initial value 0 to the active IO counter 826 (procedure 2101).
 次に、CPU801からIO#Aを対象とするIO処理命令を受信すると(手順2102)、制御プロセッサ821は、アクティブIOカウンタ826をチェックする(手順2103)。アクティブIOカウンタ826は0であり、Nより小さいため、制御プロセッサ821は、アクティブIOカウンタ826に1を加算し(手順2104)、CHU送信キュー828をチェックする(手順2105)。 Next, when an IO processing instruction targeted for IO # A is received from the CPU 801 (procedure 2102), the control processor 821 checks the active IO counter 826 (procedure 2103). Since the active IO counter 826 is 0 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2104) and checks the CHU transmission queue 828 (procedure 2105).
 CHU送信キュー828は空であるため、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2107)。IOP受信バッファ領域836に2個の空き受信バッファがあるため、制御プロセッサ821は、START_IOをCHU712へ送信する(手順2108)。 Since the CHU transmission queue 828 is empty, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2107). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (procedure 2108).
 CHU712の制御プロセッサ831は、コネクトIOカウンタ838に初期値0を設定する(手順2121)。 The control processor 831 of the CHU 712 sets an initial value 0 to the connect IO counter 838 (procedure 2121).
 IOC702は、CHU712のIOC受信バッファ領域839をチェックする(手順2151)。IOC受信バッファ領域839に3個の空き受信バッファがあるため、IOC702は、IO#Bの状態を示すASYNC_STSをCHU712へ送信する(手順2152)。 The IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2151). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # B to the CHU 712 (procedure 2152).
 次に、CHU712の制御プロセッサ831は、IOC受信バッファ領域839を参照し、IO#Bに関するASYNC_STSの受信を検出する(手順2122)。そこで、制御プロセッサ831は、IO#Bに関するSTART_IOに対する応答待ちであるか否かをチェックする(ステップ2123)。 Next, the control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # B (procedure 2122). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # B (step 2123).
 応答待ちではないため、制御プロセッサ831は、コネクトIOカウンタ838をチェックする(手順2124)。コネクトIOカウンタ838は0であり、Mより小さいため、制御プロセッサ831は、コネクトIOカウンタ838に1を加算し(手順2125)、IOP送信キュー835をチェックする(手順2126)。 Since it is not waiting for a response, the control processor 831 checks the connect IO counter 838 (procedure 2124). Since the connect IO counter 838 is 0 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2125) and checks the IOP transmission queue 835 (procedure 2126).
 IOP送信キュー835は空であるため、制御プロセッサ831は、IOP711のCHU受信バッファ領域827をチェックする(手順2127)。CHU受信バッファ領域827に2個の空き受信バッファがあるため、制御プロセッサ831は、ASYNC_STSをIOP711へ送信する(手順2128)。 Since the IOP transmission queue 835 is empty, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2127). Since there are two empty reception buffers in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2128).
 次に、制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Aに関するSTART_IOの受信を検出する(手順2129)。そこで、制御プロセッサ831は、IO#Aに関するASYNC_STSに対する応答待ちであるか否かをチェックする(ステップ2130)。 Next, the control processor 831 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # A (step 2129). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS regarding IO # A (step 2130).
 応答待ちではないため、制御プロセッサ831は、コネクトIOカウンタ838をチェックする(手順2131)。コネクトIOカウンタ838は1であり、Nより小さいため、制御プロセッサ831は、コネクトIOカウンタ838に1を加算し(手順2132)、IOC送信キュー840をチェックする(手順2133)。 Since it is not waiting for a response, the control processor 831 checks the connect IO counter 838 (procedure 2131). Since the connect IO counter 838 is 1 and smaller than N, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2132) and checks the IOC transmission queue 840 (procedure 2133).
 IOC送信キュー840は空であるため、制御プロセッサ831は、IOC702のCHU受信バッファ領域842をチェックする(手順2134)。CHU受信バッファ領域842に3個の空き受信バッファがあるため、制御プロセッサ831は、START_IOをIOC702へ送信する(手順2135)。 Since the IOC transmission queue 840 is empty, the control processor 831 checks the CHU reception buffer area 842 of the IOC 702 (procedure 2134). Since there are three empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits START_IO to the IOC 702 (procedure 2135).
 IOP711の制御プロセッサ821は、CPU801からIO#Bを対象とするIO処理命令を受信すると(手順2106)、アクティブIOカウンタ826をチェックする(手順2109)。アクティブIOカウンタ826は1であり、Nより小さいため、制御プロセッサ821は、アクティブIOカウンタ826に1を加算し(手順2110)、CHU送信キュー828をチェックする(手順2111)。 When the control processor 821 of the IOP 711 receives an IO processing instruction for IO # B from the CPU 801 (procedure 2106), it checks the active IO counter 826 (procedure 2109). Since the active IO counter 826 is 1 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2110) and checks the CHU transmission queue 828 (procedure 2111).
 CHU送信キュー828は空であるため、制御プロセッサ821は、IOP受信バッファ領域836をチェックする(手順2112)。IOP受信バッファ領域836に2個の空き受信バッファがあるため、制御プロセッサ821は、START_IOをCHU712へ送信する(手順2113)。 Since the CHU transmission queue 828 is empty, the control processor 821 checks the IOP reception buffer area 836 (procedure 2112). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (procedure 2113).
 次に、制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Bに関するASYNC_STSの受信を検出する(手順2114)。そこで、制御プロセッサ821は、IO#Bに関する入出力処理が起動中か否かをチェックする(手順2115)。IO#Bに関する入出力処理が起動中であるため、制御プロセッサ821は、ASYNC_STSを破棄する。 Next, the control processor 821 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # B (procedure 2114). Therefore, the control processor 821 checks whether or not the input / output processing related to IO # B is being activated (procedure 2115). Since the input / output processing related to IO # B is being activated, the control processor 821 discards ASYNC_STS.
 IOC702は、CHU712のIOC受信バッファ領域839をチェックする(手順2153)。IOC受信バッファ領域839に3個の空き受信バッファがあるため、IOC702は、IO#Cの状態を示すASYNC_STSをCHU712へ送信する(手順2154)。 The IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2153). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # C to the CHU 712 (procedure 2154).
 CHU712の制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Bに関するSTART_IOの受信を検出する(手順2136)。そこで、制御プロセッサ831は、IO#Bに関するASYNC_STSに対する応答待ちであるか否かをチェックする(ステップ2137)。 The control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # B (step 2136). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS regarding IO # B (step 2137).
 応答待ちであるため、制御プロセッサ831は、その応答待ちを解除し、IOC送信キュー840をチェックする(手順2138)。IOC送信キュー840は空であるため、制御プロセッサ831は、IOC702のCHU受信バッファ領域842をチェックする(手順2139)。CHU受信バッファ領域842に2個の空き受信バッファがあるため、制御プロセッサ831は、START_IOをIOC702へ送信する(手順2140)。 Since it is waiting for a response, the control processor 831 releases the response wait and checks the IOC transmission queue 840 (step 2138). Since the IOC transmission queue 840 is empty, the control processor 831 checks the CHU reception buffer area 842 of the IOC 702 (procedure 2139). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits START_IO to the IOC 702 (procedure 2140).
 一方、IOC702は、CHU712のIOC受信バッファ領域839をチェックする(手順2155)。IOC受信バッファ領域839に2個の空き受信バッファがあるため、IOC702は、IO#Dの状態を示すASYNC_STSをCHU712へ送信する(手順2156)。 Meanwhile, the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2155). Since there are two empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits ASYNC_STS indicating the state of IO # D to the CHU 712 (procedure 2156).
 次に、図23のシーケンスを説明する。手順2201~手順2214は図17の処理に対応し、手順2221~手順2226は図9の処理に対応する。 Next, the sequence of FIG. 23 will be described. Procedures 2201 to 2214 correspond to the processing of FIG. 17, and procedures 2221 to 2226 correspond to the processing of FIG.
 CHU712の制御プロセッサ831は、IOC受信バッファ領域839を参照し、IO#Cに関するASYNC_STSの受信を検出する(手順2201)。そこで、制御プロセッサ831は、IO#Cに関するSTART_IOに対する応答待ちであるか否かをチェックする(ステップ2202)。 The control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # C (procedure 2201). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # C (step 2202).
 応答待ちではないため、制御プロセッサ831は、コネクトIOカウンタ838をチェックする(手順2203)。コネクトIOカウンタ838は2であり、Mより小さいため、制御プロセッサ831は、コネクトIOカウンタ838に1を加算し(手順2204)、IOP送信キュー835をチェックする(手順2205)。 Since it is not waiting for a response, the control processor 831 checks the connect IO counter 838 (procedure 2203). Since the connect IO counter 838 is 2 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2204) and checks the IOP transmission queue 835 (procedure 2205).
 IOP送信キュー835は空であるため、制御プロセッサ831は、IOP711のCHU受信バッファ領域827をチェックする(手順2206)。CHU受信バッファ領域827に2個の空き受信バッファがあるため、制御プロセッサ831は、ASYNC_STSをIOP711へ送信する(手順2207)。 Since the IOP transmission queue 835 is empty, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2206). Since there are two empty reception buffers in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2207).
 次に、制御プロセッサ831は、IOC受信バッファ領域839を参照し、IO#Dに関するASYNC_STSの受信を検出する(手順2208)。そこで、制御プロセッサ831は、IO#Dに関するSTART_IOに対する応答待ちであるか否かをチェックする(ステップ2209)。 Next, the control processor 831 refers to the IOC reception buffer area 839 and detects reception of ASYNC_STS related to IO # D (procedure 2208). Therefore, the control processor 831 checks whether it is waiting for a response to START_IO related to IO # D (step 2209).
 応答待ちではないため、制御プロセッサ831は、コネクトIOカウンタ838をチェックする(手順2210)。コネクトIOカウンタ838は3であり、Mより小さいため、制御プロセッサ831は、コネクトIOカウンタ838に1を加算し(手順2211)、IOP送信キュー835をチェックする(手順2212)。 Since it is not waiting for a response, the control processor 831 checks the connect IO counter 838 (procedure 2210). Since the connect IO counter 838 is 3 and smaller than M, the control processor 831 adds 1 to the connect IO counter 838 (procedure 2211) and checks the IOP transmission queue 835 (procedure 2212).
 IOP送信キュー835は空であるため、制御プロセッサ831は、IOP711のCHU受信バッファ領域827をチェックする(手順2213)。CHU受信バッファ領域827に1個の空き受信バッファがあるため、制御プロセッサ831は、ASYNC_STSをIOP711へ送信する(手順2214)。 Since the IOP transmission queue 835 is empty, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2213). Since there is one empty reception buffer in the CHU reception buffer area 827, the control processor 831 transmits ASYNC_STS to the IOP 711 (step 2214).
 一方、IOP711の制御プロセッサ821は、CPU801からIO#Eを対象とするIO処理命令を受信すると(手順2221)、アクティブIOカウンタ826をチェックする(手順2222)。アクティブIOカウンタ826は2であり、Nより小さいため、制御プロセッサ821は、アクティブIOカウンタ826に1を加算し(手順2223)、CHU送信キュー828をチェックする(手順2224)。 On the other hand, when the control processor 821 of the IOP 711 receives an IO processing instruction for IO # E from the CPU 801 (procedure 2221), it checks the active IO counter 826 (procedure 2222). Since the active IO counter 826 is 2 and smaller than N, the control processor 821 adds 1 to the active IO counter 826 (procedure 2223) and checks the CHU transmission queue 828 (procedure 2224).
 CHU送信キュー828は空であるため、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2225)。IOP受信バッファ領域836に2個の空き受信バッファがあるため、制御プロセッサ821は、START_IOをCHU712へ送信する(手順2226)。 Since the CHU transmission queue 828 is empty, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2225). Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits START_IO to the CHU 712 (step 2226).
 次に、図24のシーケンスを説明する。手順2301~手順2310は図11の処理に対応し、手順2311~手順2313は図12の処理に対応する。手順2321~手順2325は図15の処理に対応し、手順2326~手順2333は図18の処理に対応する。 Next, the sequence of FIG. 24 will be described. Procedures 2301 to 2310 correspond to the process of FIG. 11, and procedures 2311 to 2313 correspond to the process of FIG. Procedures 2321 to 2325 correspond to the process of FIG. 15, and procedures 2326 to 2333 correspond to the process of FIG.
 IOP711の制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Cに関するASYNC_STSの受信を検出する(手順2301)。そこで、制御プロセッサ821は、IO#Cに関する入出力処理が起動中か否かをチェックする(手順2302)。 The control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # C (procedure 2301). Accordingly, the control processor 821 checks whether or not the input / output processing related to IO # C is being activated (procedure 2302).
 IO#Cに関する入出力処理は起動中でないため、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2303)。IOP受信バッファ領域836に1個の空き受信バッファがあるため、制御プロセッサ821は、ASYNC_STSに対するACC_STSをCHU712へ送信する(手順2304)。そして、制御プロセッサ821は、ASYNC_STSの通知内容を示す非同期割込みをCPU801へ送信する(手順2305)。 Since the input / output processing related to IO # C is not activated, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2303). Since there is one empty reception buffer in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for ASYNC_STS to the CHU 712 (procedure 2304). Then, the control processor 821 transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (procedure 2305).
 一方、CHU712の制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Eに関するSTART_IOの受信を検出する(手順2321)。そこで、制御プロセッサ831は、IO#Eに関するASYNC_STSに対する応答待ちであるか否かをチェックする(ステップ2322)。 On the other hand, the control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of START_IO related to IO # E (procedure 2321). Therefore, the control processor 831 checks whether or not it is waiting for a response to ASYNC_STS related to IO # E (step 2322).
 応答待ちではないため、制御プロセッサ831は、コネクトIOカウンタ838をチェックする(手順2323)。コネクトIOカウンタ838は4であり、N以上であるため、制御プロセッサ831は、IOP711のCHU受信バッファ領域827に空きがあるか否かをチェックする(手順2324)。 Since it is not waiting for a response, the control processor 831 checks the connect IO counter 838 (procedure 2323). Since the connect IO counter 838 is 4 and is equal to or greater than N, the control processor 831 checks whether or not there is a free space in the CHU reception buffer area 827 of the IOP 711 (step 2324).
 CHU受信バッファ領域827に2個の空き受信バッファがあるため、制御プロセッサ831は、IO#Eに関するSTART_IOを受け付けられないことを示すBUSYをIOP711へ送信する(手順2325)。 Since there are two empty reception buffers in the CHU reception buffer area 827, the control processor 831 transmits BUSY indicating that START_IO related to IO # E cannot be accepted to the IOP 711 (step 2325).
 一方、IOP711の制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Dに関するASYNC_STSの受信を検出する(手順2306)。そこで、制御プロセッサ821は、IO#Dに関する入出力処理が起動中か否かをチェックする(手順2307)。 Meanwhile, the control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of ASYNC_STS related to IO # D (procedure 2306). Therefore, the control processor 821 checks whether the input / output processing relating to IO # D is being activated (step 2307).
 IO#Dに関する入出力処理は起動中でないため、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2308)。IOP受信バッファ領域836に1個の空き受信バッファがあるため、制御プロセッサ821は、ASYNC_STSに対するACC_STSをCHU712へ送信する(手順2309)。そして、制御プロセッサ821は、ASYNC_STSの通知内容を示す非同期割込みをCPU801へ送信する(手順2310)。 Since the input / output processing related to IO # D is not activated, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2308). Since there is one empty reception buffer in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for ASYNC_STS to the CHU 712 (step 2309). Then, the control processor 821 transmits an asynchronous interrupt indicating the notification content of ASYNC_STS to the CPU 801 (procedure 2310).
 次に、制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Eに関するBUSYの受信を検出する(手順2311)。そこで、制御プロセッサ821は、IO#Eに関するSTART_IOをHSA813の実行キュー814にエンキューし(手順2312)、アクティブIOカウンタ826から1を減算する(手順2313)。 Next, the control processor 821 refers to the CHU reception buffer area 827 and detects the reception of BUSY related to IO # E (procedure 2311). Therefore, the control processor 821 enqueues START_IO related to IO # E into the execution queue 814 of the HSA 813 (procedure 2312), and subtracts 1 from the active IO counter 826 (procedure 2313).
 一方、IOC702は、CHU受信バッファ領域842を参照し、IO#Aに関するSTART_IOの受信を検出する(手順2341)。そこで、IOC702は、そのSTART_IOをIO#Aへ送信する。 Meanwhile, the IOC 702 refers to the CHU reception buffer area 842 and detects reception of START_IO related to IO # A (procedure 2341). Therefore, the IOC 702 transmits the START_IO to the IO # A.
 CHU712の制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Cに関するACC_STSの受信を検出する(手順2326)。そこで、制御プロセッサ831は、コネクトIOカウンタ838から1を減算し(手順2327)、IOC702のCHU受信バッファ領域842をチェックする(手順2328)。CHU受信バッファ領域842に2個の空き受信バッファがあるため、制御プロセッサ831は、ACC_STSをIOC702へ送信する(手順2329)。 The control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # C (procedure 2326). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2327), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2328). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (step 2329).
 次に、IOC702は、CHU受信バッファ領域842を参照し、IO#Bに関するSTART_IOの受信を検出する(手順2342)。そこで、IOC702は、そのSTART_IOをIO#Bへ送信する。 Next, the IOC 702 refers to the CHU reception buffer area 842 to detect reception of START_IO related to IO # B (procedure 2342). Therefore, the IOC 702 transmits the START_IO to the IO # B.
 次に、制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Dに関するACC_STSの受信を検出する(手順2330)。そこで、制御プロセッサ831は、コネクトIOカウンタ838から1を減算し(手順2331)、IOC702のCHU受信バッファ領域842をチェックする(手順2332)。CHU受信バッファ領域842に2個の空き受信バッファがあるため、制御プロセッサ831は、ACC_STSをIOC702へ送信する(手順2333)。 Next, the control processor 831 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # D (procedure 2330). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2331), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2332). Since there are two empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (procedure 2333).
 次に、図25及び図26のシーケンスを説明する。手順2411~手順2416は図16の処理に対応し、手順2417~手順2424は図18の処理に対応し、手順2431~手順2440は図10の処理に対応する。 Next, the sequence of FIGS. 25 and 26 will be described. Procedures 2411 to 2416 correspond to the process of FIG. 16, procedures 2417 to 2424 correspond to the process of FIG. 18, and procedures 2431 to 2440 correspond to the process of FIG.
 IOC702は、CHU712のIOC受信バッファ領域839をチェックする(手順2401)。IOC受信バッファ領域839に3個の空き受信バッファがあるため、IOC702は、IO#Aの入出力処理の結果を示すOPTERM_STSをCHU712へ送信する(手順2402)。 The IOC 702 checks the IOC reception buffer area 839 of the CHU 712 (procedure 2401). Since there are three empty reception buffers in the IOC reception buffer area 839, the IOC 702 transmits OPTERM_STS indicating the result of IO # A input / output processing to the CHU 712 (procedure 2402).
 次に、CHU712の制御プロセッサ831は、IOC受信バッファ領域839を参照し、IO#Aに関するOPTERM_STSの受信を検出する(手順2411)。そこで、制御プロセッサ831は、IOP711のCHU受信バッファ領域827をチェックする(手順2412)。CHU受信バッファ領域827に2個の空き受信バッファがあるため、制御プロセッサ831は、OPTERM_STSをIOP711へ送信する(手順2413)。 Next, the control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of OPTERM_STS related to IO # A (procedure 2411). Therefore, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2412). Since there are two free reception buffers in the CHU reception buffer area 827, the control processor 831 transmits OPTERM_STS to the IOP 711 (step 2413).
 IOC702は、IO#Bに関するASYNC_STSを送信した後、IO#Bに関するSTART_IOを受信したため、IO#Bの入出力処理を開始できない。そこで、IOC702は、START_IOに対する応答としてBUSY_STSを送信するため、CHU712のIOC受信バッファ領域839をチェックする(手順2403)。IOC受信バッファ領域839に3個の空き受信バッファがあるため、IO#Bに関するBUSY_STSをCHU712へ送信する(手順2404)。 Since the IOC 702 receives the START_IO related to the IO # B after transmitting the ASYNC_STS related to the IO # B, the IOC 702 cannot start the input / output processing of the IO # B. Therefore, the IOC 702 checks the IOC reception buffer area 839 of the CHU 712 in order to transmit BUSY_STS as a response to START_IO (procedure 2403). Since there are three empty reception buffers in the IOC reception buffer area 839, BUSY_STS related to IO # B is transmitted to the CHU 712 (procedure 2404).
 次に、CHU712の制御プロセッサ831は、IOC受信バッファ領域839を参照し、IO#Bに関するBUSY_STSの受信を検出する(手順2414)。そこで、制御プロセッサ831は、IOP711のCHU受信バッファ領域827をチェックする(手順2415)。CHU受信バッファ領域827に1個の空き受信バッファがあるため、制御プロセッサ831は、BUSY_STSをIOP711へ送信する(手順2416)。 Next, the control processor 831 of the CHU 712 refers to the IOC reception buffer area 839 and detects reception of BUSY_STS related to IO # B (procedure 2414). Therefore, the control processor 831 checks the CHU reception buffer area 827 of the IOP 711 (procedure 2415). Since there is one empty reception buffer in the CHU reception buffer area 827, the control processor 831 transmits BUSY_STS to the IOP 711 (step 2416).
 IOC702は、CHU受信バッファ領域842を参照し、IO#Cに関するACC_STSの受信を検出する(手順2405)。次に、IOC702は、CHU受信バッファ領域842を参照し、IO#Dに関するACC_STSの受信を検出する(手順2406)。 The IOC 702 refers to the CHU reception buffer area 842 to detect reception of ACC_STS related to IO # C (procedure 2405). Next, the IOC 702 refers to the CHU reception buffer area 842 and detects reception of ACC_STS related to IO # D (procedure 2406).
 一方、IOP711の制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Aに関するOPTERM_STSの受信を検出する(手順2431)。そこで、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2432)。 Meanwhile, the control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of OPTERM_STS related to IO # A (procedure 2431). Therefore, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2432).
 IOP受信バッファ領域836に2個の空き受信バッファがあるため、制御プロセッサ821は、OPTERM_STSに対するACC_STSをCHU712へ送信する(手順2433)。そして、制御プロセッサ821は、OPTERM_STSの通知内容を示すIO処理結果をCPU801へ送信し(手順2434)、アクティブIOカウンタ826から1を減算する(手順2435)。 Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for OPTERM_STS to the CHU 712 (procedure 2433). Then, the control processor 821 transmits an IO processing result indicating the notification contents of OPTERM_STS to the CPU 801 (procedure 2434), and subtracts 1 from the active IO counter 826 (procedure 2435).
 CHU712の制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Aに関するACC_STSの受信を検出する(手順2417)。そこで、制御プロセッサ831は、コネクトIOカウンタ838から1を減算し(手順2418)、IOC702のCHU受信バッファ領域842をチェックする(手順2419)。CHU受信バッファ領域842に3個の空き受信バッファがあるため、制御プロセッサ831は、ACC_STSをIOC702へ送信する(手順2420)。 The control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # A (procedure 2417). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2418), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2419). Since there are three empty reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (procedure 2420).
 次に、IOC702は、CHU受信バッファ領域842を参照し、IO#Aに関するACC_STSの受信を検出する(手順2407)。 Next, the IOC 702 refers to the CHU reception buffer area 842 and detects reception of ACC_STS related to IO # A (procedure 2407).
 IOP711の制御プロセッサ821は、CHU受信バッファ領域827を参照し、IO#Bに関するBUSY_STSの受信を検出する(手順2436)。そこで、制御プロセッサ821は、CHU712のIOP受信バッファ領域836をチェックする(手順2437)。 The control processor 821 of the IOP 711 refers to the CHU reception buffer area 827 and detects reception of BUSY_STS related to IO # B (procedure 2436). Therefore, the control processor 821 checks the IOP reception buffer area 836 of the CHU 712 (procedure 2437).
 IOP受信バッファ領域836に2個の空き受信バッファがあるため、制御プロセッサ821は、BUSY_STSに対するACC_STSをCHU712へ送信する(手順2438)。そして、制御プロセッサ821は、BUSY_STSの通知内容を示すビジー通知をCPU801へ送信し(手順2439)、アクティブIOカウンタ826から1を減算する(手順2440)。 Since there are two empty reception buffers in the IOP reception buffer area 836, the control processor 821 transmits ACC_STS for BUSY_STS to the CHU 712 (procedure 2438). Then, the control processor 821 transmits a busy notification indicating the notification content of BUSY_STS to the CPU 801 (procedure 2439), and subtracts 1 from the active IO counter 826 (procedure 2440).
 CHU712の制御プロセッサ831は、IOP受信バッファ領域836を参照し、IO#Bに関するACC_STSの受信を検出する(手順2421)。そこで、制御プロセッサ831は、コネクトIOカウンタ838から1を減算し(手順2422)、IOC702のCHU受信バッファ領域842をチェックする(手順2423)。CHU受信バッファ領域842に3個の空き受信バッファがあるため、制御プロセッサ831は、ACC_STSをIOC702へ送信する(手順2424)。 The control processor 831 of the CHU 712 refers to the IOP reception buffer area 836 and detects reception of ACC_STS related to IO # B (procedure 2421). Therefore, the control processor 831 subtracts 1 from the connect IO counter 838 (procedure 2422), and checks the CHU reception buffer area 842 of the IOC 702 (procedure 2423). Since there are three free reception buffers in the CHU reception buffer area 842, the control processor 831 transmits ACC_STS to the IOC 702 (step 2424).
 次に、IOC702は、CHU受信バッファ領域842を参照し、IO#Bに関するACC_STSの受信を検出する(手順2408)。 Next, the IOC 702 refers to the CHU reception buffer area 842 to detect reception of ACC_STS related to IO # B (procedure 2408).
 次に、図8のIO804-1~IO804-9(IO#01~IO#09)に対する入出力制御の例を説明する。この例では、CPU801がIO#01~IO#04を対象とするIO処理命令を発行するタイミングで、IO#02及びIO#05~IO#09から非同期割込みを受けた場合を想定している。 Next, an example of input / output control for IO804-1 to IO804-9 (IO # 01 to IO # 09) in FIG. 8 will be described. In this example, it is assumed that the CPU 801 receives an asynchronous interrupt from IO # 02 and IO # 05 to IO # 09 at the timing when the IO processing instruction for IO # 01 to IO # 04 is issued.
 第1の上限値Nは3であり、第2の上限値Mは4である。したがって、CHU受信バッファ領域827及びIOP受信バッファ領域836はそれぞれ2個の受信バッファを有し、IOC受信バッファ領域839及びCHU受信バッファ領域842はそれぞれ3個の受信バッファを有する。 The first upper limit value N is 3, and the second upper limit value M is 4. Therefore, each of the CHU reception buffer area 827 and the IOP reception buffer area 836 has two reception buffers, and each of the IOC reception buffer area 839 and the CHU reception buffer area 842 has three reception buffers.
(1)IOP711は、CPU801からIO#01~IO#04に関するIO処理命令を受信し、図9に対応する以下の処理を行う。 (1) The IOP 711 receives an IO processing instruction related to IO # 01 to IO # 04 from the CPU 801, and performs the following processing corresponding to FIG.
 IOP711は、IO#01~IO#03に関するIO処理命令を受信したときは、アクティブIOカウンタ826がNより小さいため、アクティブIOカウンタ826に1を加算する。 When the IOP 711 receives an IO processing instruction related to IO # 01 to IO # 03, since the active IO counter 826 is smaller than N, the IOP 711 adds 1 to the active IO counter 826.
 IOP711は、IO#01及びIO#02に関するIO処理命令を受信したときは、CHU712のIOP受信バッファ領域836に空き受信バッファがあるため、START_IOをCHU712へ送信する。 When the IOP 711 receives an IO processing instruction related to IO # 01 and IO # 02, the IOP 711 transmits START_IO to the CHU 712 because there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712.
 IOP711は、IO#03に関するIO処理命令を受信したときは、IOP受信バッファ領域836に空き受信バッファがないため、START_IOをCHU送信キュー828にエンキューする。 When the IOP 711 receives an IO processing instruction related to IO # 03, the IOP 711 enqueues START_IO into the CHU transmission queue 828 because there is no empty reception buffer in the IOP reception buffer area 836.
 IOP711は、IO#04に関するIO処理命令を受信したときは、アクティブIOカウンタ826がNに達しているため、START_IOをHSA813の実行キュー814にエンキューする。 The IOP 711 enqueues START_IO into the execution queue 814 of the HSA 813 when the I / O processing instruction related to the IO # 04 is received because the active IO counter 826 reaches N.
 この時点で、IOP受信バッファ領域836の空き受信バッファの数は0であり、アクティブIOカウンタ826は3である。 At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 0, and the active IO counter 826 is 3.
(2)IOC702は、IO#02及びIO#05~IO#09からそれぞれ非同期割込みを受信する。そして、IOC702は、受信した6個の非同期割込みのうち、CHU712のIOC受信バッファ領域839が有する受信バッファの数に対応する3個の非同期割込みについて、ASYNC_STSをCHU712へ送信する。この場合、IOC702は、IO#02、IO#05、及びIO#06からの3個の非同期割込みについて、ASYNC_STSをCHU712に送信する。
 この時点で、IOC受信バッファ領域839の空き受信バッファの数は0である。
(2) The IOC 702 receives asynchronous interrupts from IO # 02 and IO # 05 to IO # 09, respectively. The IOC 702 transmits ASYNC_STS to the CHU 712 for three asynchronous interrupts corresponding to the number of reception buffers included in the IOC reception buffer area 839 of the CHU 712 among the six asynchronous interrupts received. In this case, the IOC 702 transmits ASYNC_STS to the CHU 712 for the three asynchronous interrupts from IO # 02, IO # 05, and IO # 06.
At this time, the number of empty reception buffers in the IOC reception buffer area 839 is zero.
(3)CHU712は、図15及び図17に対応する以下の処理を行う。
 CHU712は、IOP711からIO#01に関するSTART_IOを受信したとき、コネクトIOカウンタ838がNより小さいため、コネクトIOカウンタ838に1を加算し、そのSTART_IOをIOC702へ送信する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は1であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は2である。
(3) The CHU 712 performs the following processing corresponding to FIGS. 15 and 17.
When receiving the START_IO related to IO # 01 from the IOP 711, the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than N, and transmits the START_IO to the IOC 702. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 2.
 CHU712は、IOC702からIO#02に関するASYNC_STSを受信したとき、コネクトIOカウンタ838がMより小さいため、コネクトIOカウンタ838に1を加算し、そのASYNC_STSをIOP711へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は1であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は1である。 When the CHU 712 receives the ASYNC_STS related to IO # 02 from the IOC 702, the CHIO 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M, and transmits the ASYNC_STS to the IOP 711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 1, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1.
 CHU712は、IOP711からIO#02に関するSTART_IOを受信したとき、同じIOに関するASYNC_STSをIOP711へ送信して応答待ちであるため、その応答待ちを解除してSTART_IOをIOC702へ送信する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は1である。 When the CHU 712 receives the START_IO related to the IO # 02 from the IOP 711, the CHU 712 transmits the ASYNC_STS related to the same IO to the IOP 711 and waits for a response. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1.
 CHU712は、IOC702からIO#05に関するASYNC_STSを受信したとき、コネクトIOカウンタ838がMより小さいため、コネクトIOカウンタ838に1を加算し、そのASYNC_STSをIOP711へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は2であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は0である。 When the CHU 712 receives the ASYNC_STS related to IO # 05 from the IOC 702, the CHIO 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M, and transmits the ASYNC_STS to the IOP 711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 2, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
 CHU712は、IOC702からIO#06に関するASYNC_STSを受信したとき、コネクトIOカウンタ838がMより小さいため、コネクトIOカウンタ838に1を加算する。しかし、IOP711のCHU受信バッファ領域827に空き受信バッファがないため、CHU712は、IO#06に関するASYNC_STSをIOP送信キュー835にエンキューする。 When receiving the ASYNC_STS related to IO # 06 from the IOC 702, the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than M. However, since there is no empty reception buffer in the CHU reception buffer area 827 of the IOP 711, the CHU 712 enqueues ASYNC_STS related to IO # 06 into the IOP transmission queue 835.
 この時点で、IOC受信バッファ領域839の空き受信バッファの数は3であり、コネクトIOカウンタ838は4である。 At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the connect IO counter 838 is 4.
(4)IOP711は、図13に対応する以下の処理を行う。
 IOP711は、CHU712のIOP受信バッファ領域836に空き受信バッファができたため、IO#03に関するSTART_IOをCHU712へ送信する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は1である。
(4) The IOP 711 performs the following processing corresponding to FIG.
Since the IOP 711 has a free reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 transmits START_IO related to IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1.
 また、IOP711は、IO#02及びIO#05に関するASYNC_STSを受信し、図11に対応する以下の処理を行う。 Also, the IOP 711 receives ASYNC_STS related to IO # 02 and IO # 05, and performs the following processing corresponding to FIG.
 IOP711は、IO#02に関するASYNC_STSを受信したときは、同じIOに関する入出力処理が起動中であるため、そのASYNC_STSを破棄する。この時点で、CHU受信バッファ領域827の空き受信バッファの数は1である。 When the IOP 711 receives the ASYNC_STS related to the IO # 02, the IOP 711 discards the ASYNC_STS because the input / output processing related to the same IO is being activated. At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 1.
 IOP711がIO#05に関するASYNC_STSを受信したときは、CHU送信キュー828が空であり、CHU712のIOP受信バッファ領域836に空き受信バッファがある。そこで、IOP711は、ACC_STSをCHU712へ送信し、非同期割込みをCPU801へ送信する。 When the IOP 711 receives ASYNC_STS related to IO # 05, the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS to the CHU 712 and transmits an asynchronous interrupt to the CPU 801.
 この時点で、CHU受信バッファ領域827の空き受信バッファの数は2であり、CHU712のIOP受信バッファ領域836の空き受信バッファの数は0であり、アクティブIOカウンタ826は3である。 At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 2, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 3.
(5)IOC702は、CHU712のIOC受信バッファ領域839に空き受信バッファができたため、IO#07、IO#08、及びIO#09に関するASYNC_STSをCHU712へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は0である。 (5) The IOC 702 transmits an ASYNC_STS regarding IO # 07, IO # 08, and IO # 09 to the CHU 712 because an empty reception buffer has been created in the IOC reception buffer area 839 of the CHU 712. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is zero.
 IOC702は、IO#01及びIO#02に関するSTART_IOを受信し、それらのSTART_IOをIO#01及びIO#02へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3である。 The IOC 702 receives START_IO related to IO # 01 and IO # 02, and transmits these START_IO to IO # 01 and IO # 02. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
(6)CHU712は、図20に対応する以下の処理を行う。
 CHU712は、IOP712のCHU受信バッファ領域827に空き受信バッファができたため、IO#06に関するASYNC_STSをIOP711へ送信する。この時点で、IOP712のCHU受信バッファ領域827の空き受信バッファの数は1である。
(6) The CHU 712 performs the following processing corresponding to FIG.
Since the CHU 712 has an empty reception buffer in the CHU reception buffer area 827 of the IOP 712, the CHU 712 transmits ASYNC_STS related to IO # 06 to the IOP 711. At this time, the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 712 is 1.
 また、CHU712は、図15、図17、及び図18に対応する以下の処理を行う。
 CHU712は、IOP711からIO#03に関するSTART_IOを受信したときは、コネクトIOカウンタ838がNに達しているため、BUSYをIOP711へ送信する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は1であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は0である。
Further, the CHU 712 performs the following processing corresponding to FIG. 15, FIG. 17, and FIG.
When receiving START_IO related to IO # 03 from the IOP 711, the CHU 712 transmits BUSY to the IOP 711 because the connect IO counter 838 has reached N. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
 CHU712がIOC702からIO#07、IO#08、及びIO#09に関するASYNC_STSを受信したときは、コネクトIOカウンタ838がMに達しており、IOC702のCHU受信バッファ領域842には空き受信バッファがある。そこで、CHU712は、BUSYをIOC702へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は3であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は0である。 When the CHU 712 receives ASYNC_STS related to IO # 07, IO # 08, and IO # 09 from the IOC 702, the connect IO counter 838 reaches M, and the CHU reception buffer area 842 of the IOC 702 has an empty reception buffer. Therefore, the CHU 712 transmits BUSY to the IOC 702. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 0.
 CHU712は、IOP711からIO#05に関するACC_STSを受信したとき、IOC702のCHU受信バッファ領域842に空き受信バッファがないため、そのACC_STSをIOC送信キュー840にエンキューする。この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、コネクトIOカウンタ838は4である。 When receiving the ACC_STS related to IO # 05 from the IOP 711, the CHU 712 enqueues the ACC_STS in the IOC transmission queue 840 because there is no empty reception buffer in the CHU reception buffer area 842 of the IOC 702. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, and the connect IO counter 838 is 4.
(7)IOP711は、図11に対応する以下の処理を行う。
 IOP711がIO#06に関するASYNC_STSを受信したときは、CHU送信キュー828が空であり、CHU712のIOP受信バッファ領域836に空き受信バッファがある。そこで、IOP711は、ACC_STSをCHU712へ送信し、非同期割込みをCPU801へ送信する。この時点で、CHU受信バッファ領域827の空き受信バッファの数は1であり、CHU712のIOP受信バッファ領域836の空き受信バッファの数は1である。
(7) The IOP 711 performs the following processing corresponding to FIG.
When the IOP 711 receives ASYNC_STS related to IO # 06, the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS to the CHU 712 and transmits an asynchronous interrupt to the CPU 801. At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 1, and the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1.
 また、IOP711は、図12に対応する以下の処理を行う。
 IOP711は、IO#03に関するSTART_IOに対してCHU712からBUSYを受信したとき、アクティブIOカウンタ826から1を減算し、そのSTART_IOをHSA813の実行キュー814にエンキューする。この時点で、CHU受信バッファ領域827の空き受信バッファの数は2である。
Further, the IOP 711 performs the following processing corresponding to FIG.
When the IOP 711 receives BUSY from the CHU 712 for the START_IO related to the IO # 03, the IOP 711 subtracts 1 from the active IO counter 826 and enqueues the START_IO into the execution queue 814 of the HSA 813. At this time, the number of empty reception buffers in the CHU reception buffer area 827 is two.
 また、IOP711は、図14に対応する以下の処理を行う。
 IO#04に関するSTART_IOが実行キュー814にエンキューされており、アクティブIOカウンタ826がNより小さく、CHU712のIOP受信バッファ領域836に空き受信バッファがある。そこで、IOP711は、アクティブIOカウンタ826に1を加算し、IO#04に関するSTART_IOをCHU712へ送信する。
Further, the IOP 711 performs the following processing corresponding to FIG.
START_IO related to IO # 04 is enqueued in the execution queue 814, the active IO counter 826 is smaller than N, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 adds 1 to the active IO counter 826 and transmits START_IO related to IO # 04 to the CHU 712.
 この時点で、CHU712のIOP受信バッファ領域836の空き受信バッファの数は0であり、アクティブIOカウンタ826は3である。 At this time, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0 and the active IO counter 826 is 3.
(8)IOC702は、IO#07、IO#08、及びIO#09に関するASYNC_STSに対してCHU712からBUSYを受信し、非同期割込みが受け付けられなかったことを示す通知をIO#07、IO#08、IO#09へ送信する。 (8) The IOC 702 receives BUSY from the CHU 712 to the ASYNC_STS related to the IO # 07, IO # 08, and IO # 09, and notifies the IO # 07, IO # 08, Send to IO # 09.
 また、IOC702は、IO#01及びIO#02から処理結果を受信し、IO#01及びIO#02に関するOPTERM_STSをCHU712へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3であり、CHU712のIOC受信バッファ領域839の空き受信バッファの数は1である。 Also, the IOC 702 receives the processing results from the IO # 01 and the IO # 02 and transmits OPTERM_STS regarding the IO # 01 and the IO # 02 to the CHU 712. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is 3, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is 1.
(9)CHU712は、図19に対応する以下の処理を行う。
 CHU712は、IOC702のCHU受信バッファ領域842に空き受信バッファができたため、コネクトIOカウンタ838から1を減算し、IO#05に関するACC_STSをIOC702へ送信する。この時点で、IOC702のCHU受信バッファ領域842の空き受信バッファの数は2である。
(9) The CHU 712 performs the following processing corresponding to FIG.
Since the CHU 712 has an empty reception buffer in the CHU reception buffer area 842 of the IOC 702, the CHU 712 subtracts 1 from the connect IO counter 838 and transmits ACC_STS related to IO # 05 to the IOC 702. At this time, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is two.
 また、CHU712は、図18、図16、及び図15に対応する以下の処理を行う。
 CHU712は、IOP711からIO#06に関するACC_STSを受信したとき、そのACC_STSをIOC702へ送信し、コネクトIOカウンタ838から1を減算する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は1であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は1であり、コネクトIOカウンタ838は2である。
Further, the CHU 712 performs the following processing corresponding to FIG. 18, FIG. 16, and FIG.
When the CHU 712 receives the ACC_STS related to the IO # 06 from the IOP 711, the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1, and the connect IO counter 838 is 2.
 CHU712は、IOC702からIO#01及びIO#02に関するOPTERM_STSを受信したとき、それらのOPTERM_STSをIOP711へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は3であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は0である。 When the CHU 712 receives the OPTERM_STS related to the IO # 01 and IO # 02 from the IOC 702, the CHU712 transmits the OPTERM_STS to the IOP711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, and the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 0.
 CHU712は、IOP711からIO#04に関するSTART_IOを受信したときは、コネクトIOカウンタ838がNより小さいため、コネクトIOカウンタ838に1を加算する。そして、CHU712は、IOC702のCHU受信バッファ領域842に空き受信バッファがあるため、IO#04に関するSTART_IOをIOC702へ送信する。 When receiving the START_IO related to IO # 04 from the IOP 711, the CHU 712 adds 1 to the connect IO counter 838 because the connect IO counter 838 is smaller than N. The CHU 712 transmits START_IO related to IO # 04 to the IOC 702 because there is an empty reception buffer in the CHU reception buffer area 842 of the IOC 702.
 この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は0であり、コネクトIOカウンタ838は3である。 At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 0, and the connect IO counter 838 is 3.
(10)IOP711は、図10に対応する以下の処理を行う。
 IOP711がIO#01及びIO#02に関するOPTERM_STSを受信したとき、CHU送信キュー828は空であり、CHU712のIOP受信バッファ領域836には空き受信バッファがある。そこで、IOP711は、受信したOPTERM_STSに対するACC_STSをCHU712へ送信し、受信したOPTERM_STSが示すIO処理結果をCPU801へ送信し、アクティブIOカウンタ826から1を減算する。
(10) The IOP 711 performs the following processing corresponding to FIG.
When the IOP 711 receives OPTERM_STS related to IO # 01 and IO # 02, the CHU transmission queue 828 is empty, and the IOP reception buffer area 836 of the CHU 712 has an empty reception buffer. Therefore, the IOP 711 transmits ACC_STS for the received OPTERM_STS to the CHU 712, transmits the IO processing result indicated by the received OPTERM_STS to the CPU 801, and subtracts 1 from the active IO counter 826.
 この時点で、CHU受信バッファ領域827の空き受信バッファの数は2であり、CHU712のIOP受信バッファ領域836の空き受信バッファの数は0であり、アクティブIOカウンタ826は1である。 At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 2, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 1.
 また、IOP711は、図14に対応する以下の処理を行う。
 IO#03に関するSTART_IOが実行キュー814にエンキューされており、アクティブIOカウンタ826がNより小さいため、IOP711は、アクティブIOカウンタ826に1を加算する。しかし、CHU712のIOP受信バッファ領域836に空き受信バッファがないため、IOP711は、IO#03に関するSTART_IOをCHU送信キュー828へエンキューする。この時点で、アクティブIOカウンタ826は2である。
Further, the IOP 711 performs the following processing corresponding to FIG.
Since START_IO related to IO # 03 is enqueued in the execution queue 814 and the active IO counter 826 is smaller than N, the IOP 711 adds 1 to the active IO counter 826. However, since there is no empty reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 enqueues START_IO related to IO # 03 to the CHU transmission queue 828. At this point, the active IO counter 826 is 2.
(11)IOC702は、IO#05及びIO#06に関するACC_STSを受信し、非同期割込みが受け付けられたことを示す通知を、IO#05及びIO#06へ送信する。 (11) The IOC 702 receives the ACC_STS related to the IO # 05 and the IO # 06, and transmits a notification indicating that the asynchronous interrupt is accepted to the IO # 05 and the IO # 06.
 また、IOC702は、IO#04に関するSTART_IOを受信し、そのSTART_IOをIO#04へ送信する。そして、IOC702は、IO#04から処理結果を受信し、IO#04に関するOPTERM_STSをCHU712へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3であり、CHU712のIOC受信バッファ領域839の空き受信バッファの数は2である。 Further, the IOC 702 receives the START_IO related to the IO # 04 and transmits the START_IO to the IO # 04. Then, the IOC 702 receives the processing result from the IO # 04 and transmits OPTERM_STS related to the IO # 04 to the CHU 712. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is 3, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is 2.
(12)CHU712は、図18に対応する以下の処理を行う。
 CHU712は、IOP711からIO#01及びIO#02に関するACC_STSを受信したとき、受信したACC_STSをIOC702へ送信し、コネクトIOカウンタ838から1を減算する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は1である。
(12) The CHU 712 performs the following processing corresponding to FIG.
When the CHU 712 receives the ACC_STS related to IO # 01 and IO # 02 from the IOP 711, the CHU 712 transmits the received ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1.
 また、CHU712は、図16に対応する以下の処理を行う。
 CHU712は、IOC702からIO#04に関するOPTERM_STSを受信したとき、そのOPTERM_STSをIOP711へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は3であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は1であり、コネクトIOカウンタ838は1である。
Further, the CHU 712 performs the following processing corresponding to FIG.
When the CHU 712 receives the OPTERM_STS related to the IO # 04 from the IOC 702, the CHU 712 transmits the OPTERM_STS to the IOP 711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1, and the connect IO counter 838 is 1.
(13)IOP711は、図13に対応する以下の処理を行う。
 IOP711は、CHU712のIOP受信バッファ領域836に空き受信バッファができたため、IO#03に関するSTART_IOをCHU712へ送信する。この時点で、CHU712のIOP受信バッファ領域836の空き受信バッファの数は1である。
(13) The IOP 711 performs the following processing corresponding to FIG.
Since the IOP 711 has a free reception buffer in the IOP reception buffer area 836 of the CHU 712, the IOP 711 transmits START_IO related to IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1.
 また、IOP711は、図10に対応する以下の処理を行う。
 IOP711がIO#04に関するOPTERM_STSを受信したとき、CHU送信キュー828は空であり、CHU712のIOP受信バッファ領域836には空き受信バッファがある。そこで、IOP711は、IO#04に関するACC_STSをCHU712へ送信し、IO#04に関するIO処理結果をCPU801へ送信し、アクティブIOカウンタ826から1を減算する。
The IOP 711 performs the following processing corresponding to FIG.
When the IOP 711 receives OPTERM_STS related to IO # 04, the CHU transmission queue 828 is empty, and the IOP reception buffer area 836 of the CHU 712 has an empty reception buffer. Therefore, the IOP 711 transmits ACC_STS regarding IO # 04 to the CHU 712, transmits the IO processing result regarding IO # 04 to the CPU 801, and subtracts 1 from the active IO counter 826.
 この時点で、CHU受信バッファ領域827の空き受信バッファの数は2であり、CHU712のIOP受信バッファ領域836の空き受信バッファの数は0であり、アクティブIOカウンタ826は1である。 At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 2, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 0, and the active IO counter 826 is 1.
(14)IOC702は、IO#01及びIO#02に関するACC_STSを受信し、処理結果が受け付けられたことを示す通知を、IO#01及びIO#02へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3である。 (14) The IOC 702 receives the ACC_STS related to the IO # 01 and the IO # 02, and transmits a notification indicating that the processing result is accepted to the IO # 01 and the IO # 02. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
(15)CHU712は、図15に対応する以下の処理を行う。
 CHU712は、IOP711からIO#03に関するSTART_IOを受信したときは、コネクトIOカウンタ838がNより小さいため、コネクトIOカウンタ838に1を加算する。そして、CHU712は、IOC702のCHU受信バッファ領域842に空き受信バッファがあるため、IO#03に関するSTART_IOをIOC702へ送信する。
(15) The CHU 712 performs the following processing corresponding to FIG.
When the CHU 712 receives START_IO related to IO # 03 from the IOP 711, the connect IO counter 838 is smaller than N, and thus 1 is added to the connect IO counter 838. The CHU 712 transmits START_IO related to IO # 03 to the IOC 702 because there is an empty reception buffer in the CHU reception buffer area 842 of the IOC 702.
 この時点で、IOP受信バッファ領域836の空き受信バッファの数は1であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は2である。 At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 1, and the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is two.
 また、CHU712は、図18に対応する以下の処理を行う。
 CHU712は、IOP711からIO#04に関するACC_STSを受信したとき、そのACC_STSをIOC702へ送信し、コネクトIOカウンタ838から1を減算する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は1であり、コネクトIOカウンタ838は1である。
Further, the CHU 712 performs the following processing corresponding to FIG.
When the CHU 712 receives the ACC_STS related to the IO # 04 from the IOP 711, the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 1, and the connect IO counter 838 is 1.
(16)IOC702は、IO#03に関するSTART_IOを受信し、そのSTART_IOをIO#03へ送信する。そして、IOC702は、IO#03から処理結果を受信し、IO#03に関するOPTERM_STSをCHU712へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は2であり、CHU712のIOC受信バッファ領域839の空き受信バッファの数は2である。 (16) The IOC 702 receives START_IO related to IO # 03 and transmits the START_IO to IO # 03. Then, the IOC 702 receives the processing result from the IO # 03 and transmits OPTERM_STS related to the IO # 03 to the CHU 712. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is two, and the number of empty reception buffers in the IOC reception buffer area 839 of the CHU 712 is two.
 また、IOC702は、IO#04に関するACC_STSを受信し、処理結果が受け付けられたことを示す通知をIO#04へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3である。 Also, the IOC 702 receives the ACC_STS related to the IO # 04 and transmits a notification indicating that the processing result has been accepted to the IO # 04. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
(17)CHU712は、図16に対応する以下の処理を行う。
 CHU712は、IOC702からIO#03に関するOPTERM_STSを受信したとき、そのOPTERM_STSをIOP711へ送信する。この時点で、IOC受信バッファ領域839の空き受信バッファの数は3であり、IOP711のCHU受信バッファ領域827の空き受信バッファの数は1であり、コネクトIOカウンタ838は1である。
(17) The CHU 712 performs the following processing corresponding to FIG.
When the CHU 712 receives OPTERM_STS related to IO # 03 from the IOC 702, the CHU 712 transmits the OPTERM_STS to the IOP 711. At this time, the number of empty reception buffers in the IOC reception buffer area 839 is 3, the number of empty reception buffers in the CHU reception buffer area 827 of the IOP 711 is 1, and the connect IO counter 838 is 1.
(18)IOP711は、図10に対応する以下の処理を行う。
 IOP711がIO#03に関するOPTERM_STSを受信したとき、CHU送信キュー828は空であり、CHU712のIOP受信バッファ領域836には空き受信バッファがある。そこで、IOP711は、IO#03に関するACC_STSをCHU712へ送信し、IO#03に関するIO処理結果をCPU801へ送信し、アクティブIOカウンタ826から1を減算する。
(18) The IOP 711 performs the following processing corresponding to FIG.
When the IOP 711 receives OPTERM_STS related to IO # 03, the CHU transmission queue 828 is empty, and there is an empty reception buffer in the IOP reception buffer area 836 of the CHU 712. Therefore, the IOP 711 transmits ACC_STS related to IO # 03 to the CHU 712, transmits the IO processing result related to IO # 03 to the CPU 801, and subtracts 1 from the active IO counter 826.
 この時点で、CHU受信バッファ領域827の空き受信バッファの数は2であり、CHU712のIOP受信バッファ領域836の空き受信バッファの数は1であり、アクティブIOカウンタ826は0である。 At this time, the number of empty reception buffers in the CHU reception buffer area 827 is 2, the number of empty reception buffers in the IOP reception buffer area 836 of the CHU 712 is 1, and the active IO counter 826 is 0.
(19)CHU712は、IOP711からIO#03に関するACC_STSを受信したとき、そのACC_STSをIOC702へ送信し、コネクトIOカウンタ838から1を減算する。この時点で、IOP受信バッファ領域836の空き受信バッファの数は2であり、IOC702のCHU受信バッファ領域842の空き受信バッファの数は2であり、コネクトIOカウンタ838は0である。 (19) When receiving the ACC_STS related to IO # 03 from the IOP 711, the CHU 712 transmits the ACC_STS to the IOC 702 and subtracts 1 from the connect IO counter 838. At this time, the number of empty reception buffers in the IOP reception buffer area 836 is 2, the number of empty reception buffers in the CHU reception buffer area 842 of the IOC 702 is 2, and the connect IO counter 838 is 0.
(20)IOC702は、IO#03に関するACC_STSを受信し、処理結果が受け付けられたことを示す通知をIO#03へ送信する。この時点で、CHU受信バッファ領域842の空き受信バッファの数は3である。 (20) The IOC 702 receives the ACC_STS related to the IO # 03 and transmits a notification indicating that the processing result has been accepted to the IO # 03. At this time, the number of empty reception buffers in the CHU reception buffer area 842 is three.
 図27は、実施形態の入出力制御により改善された入出力能力を示している。図27の横軸及び縦軸は、図3と同様に、転送レート及びCPUのIO命令実行頻度を表す。破線2501は、転送レートに対するCPUのIO命令実行頻度の目標値を表しており、実線2502は、実施形態の入出力制御による実際のCPUのIO命令実行頻度を表している。 FIG. 27 shows the input / output capability improved by the input / output control of the embodiment. The horizontal and vertical axes in FIG. 27 represent the transfer rate and the CPU instruction execution frequency, as in FIG. A broken line 2501 represents the target value of the CPU IO instruction execution frequency with respect to the transfer rate, and a solid line 2502 represents the actual CPU IO instruction execution frequency by the input / output control of the embodiment.
 転送レート320MB/Sに対応する破線2501上の点2521では、CPUのIO命令実行頻度の目標値が16000であるのに対して、実線2502上の点2522では実際のCPUのIO命令実行頻度は約15500である。したがって、実施形態の入出力制御によればCPUのIO命令実行頻度の低下は約500程度であり、図3の排他制御によるCPUのIO命令実行頻度の低下と比較して、約2600だけ改善されることが分かる。1つの入出力処理当たりの制御に要する時間に換算すれば、約15μsから2μsに短縮されることに相当する。 At the point 2521 on the broken line 2501 corresponding to the transfer rate of 320 MB / S, the target value of the CPU IO instruction execution frequency is 16000, whereas at the point 2522 on the solid line 2502, the actual CPU IO instruction execution frequency is About 15500. Therefore, according to the input / output control of the embodiment, the decrease of the CPU IO instruction execution frequency is about 500, which is improved by about 2600 compared with the decrease of the CPU IO instruction execution frequency by the exclusive control of FIG. I understand that In terms of the time required for control per input / output process, this corresponds to a reduction from about 15 μs to 2 μs.
 このように、実施形態の入出力制御によれば、CHUとIOCの間の排他制御を廃止したことにより向上した、入出力処理のスループットが低下するのを抑止することができる。 As described above, according to the input / output control of the embodiment, it is possible to prevent the throughput of the input / output processing, which has been improved by eliminating the exclusive control between the CHU and the IOC, from being lowered.
 以上、開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。 Although the disclosed embodiment and its advantages have been described in detail above, those skilled in the art can make various modifications, additions and omissions without departing from the scope of the present invention clearly described in the claims. Will.

Claims (7)

  1.  第1の装置と第2の装置とを含む制御システムであって、
     前記第1の装置は、
     処理開始指示を前記第2の装置へ送信し、前記処理開始指示に対する処理終了通知と非同期通知とを前記第2の装置から受信する第1の通信部と、
     前記第1の装置と前記第2の装置との間で通信に用いられる接続の数を規定する第1の上限値を格納する第1の格納部と、
     前記第2の装置から未受信の前記処理終了通知に対応する前記処理開始指示の数を、前記第1の上限値以下の数に制御する第1の制御部と、
    を備え、
     前記第2の装置は、
     前記第1の装置から前記処理開始指示を受信し、前記処理終了通知と前記非同期通知とを前記第1の装置へ送信する第2の通信部と、
     前記第1の上限値より大きな第2の上限値を格納する第2の格納部と、
     前記第1の装置へ未送信の前記処理終了通知に対応する前記処理開始指示の数と、前記第1の装置へ送信される前記非同期通知の数との総数を、前記第2の上限値以下の数に制御する第2の制御部と、
    を備えることを特徴とする制御システム。
    A control system including a first device and a second device,
    The first device includes:
    A first communication unit that transmits a process start instruction to the second apparatus and receives a process end notification and an asynchronous notification for the process start instruction from the second apparatus;
    A first storage that stores a first upper limit value that defines the number of connections used for communication between the first device and the second device;
    A first control unit that controls the number of processing start instructions corresponding to the processing end notification not received from the second device to a number equal to or less than the first upper limit value;
    With
    The second device includes:
    A second communication unit that receives the processing start instruction from the first device and transmits the processing end notification and the asynchronous notification to the first device;
    A second storage unit for storing a second upper limit value larger than the first upper limit value;
    The total of the number of processing start instructions corresponding to the processing end notification not transmitted to the first device and the number of asynchronous notifications transmitted to the first device is equal to or less than the second upper limit value. A second control unit that controls the number of
    A control system comprising:
  2.  前記第1の格納部は、前記第2の装置から未受信の前記処理終了通知に対応する前記処理開始指示の数を示す第1のカウント値を格納し、前記第1の制御部は、前記処理開始指示を前記第2の装置へ送信するときに前記第1のカウント値に1を加算し、前記処理終了通知又は前記処理開始指示に対するビジー通知を前記第2の装置から受信したときに前記第1のカウント値から1を減算し、前記第2の格納部は、前記総数を示す第2のカウント値を格納し、前記第2の制御部は、前記処理開始指示を前記第1の装置から受信したとき又は前記非同期通知を前記第1の装置へ送信するときに前記第2のカウント値に1を加算し、前記処理終了通知、前記非同期通知、又は前記ビジー通知のいずれかの通知に対する応答を前記第1の装置から受信したときに前記第2のカウント値から1を減算することを特徴とする請求項1記載の制御システム。 The first storage unit stores a first count value indicating the number of processing start instructions corresponding to the processing end notification not received from the second device, and the first control unit When a process start instruction is transmitted to the second apparatus, 1 is added to the first count value, and when a process end notification or a busy notification for the process start instruction is received from the second apparatus, 1 is subtracted from the first count value, the second storage unit stores a second count value indicating the total number, and the second control unit sends the processing start instruction to the first device. 1 is added to the second count value when the asynchronous notification is transmitted to the first device, and either the processing end notification, the asynchronous notification, or the busy notification is notified. A response is received from the first device. The control system of claim 1, wherein the subtracting 1 from the second count value when.
  3.  前記第1の制御部は、前記未受信の前記処理終了通知に対応する前記処理開始指示の数が前記第1の上限値に達している場合に、前記第2の装置への新たな処理開始指示の送信を保留し、前記第2の制御部は、前記総数が前記第2の上限値に達している場合に、前記第1の装置への新たな非同期通知の送信を抑止することを特徴とする請求項1又は2記載の制御システム。 The first control unit starts a new process for the second device when the number of the process start instructions corresponding to the unprocessed process end notification reaches the first upper limit value. The transmission of the instruction is suspended, and the second control unit suppresses transmission of a new asynchronous notification to the first device when the total reaches the second upper limit value. The control system according to claim 1 or 2.
  4.  前記第2の通信部は、前記第2の装置が前記処理開始指示を入出力装置へ送信して、前記入出力装置から入出力処理の処理結果を受信したとき、前記処理結果を示す前記処理終了通知を前記第1の装置へ送信し、前記入出力装置から状態の変化を示す非同期割込みを受信したとき、前記非同期通知を前記第1の装置へ送信することを特徴とする請求項1乃至3のいずれか1項に記載の制御システム。 The second communication unit is configured to display the processing result when the second device transmits the processing start instruction to the input / output device and receives the processing result of the input / output processing from the input / output device. The end notification is transmitted to the first device, and the asynchronous notification is transmitted to the first device when an asynchronous interrupt indicating a state change is received from the input / output device. 4. The control system according to any one of 3.
  5.  第1の装置と第2の装置の間の通信を制御する制御方法であって、
     前記第1の装置から前記第2の装置へ送信した処理開始指示のうち、前記処理開始指示に対する処理終了通知を前記第2の装置から未受信である前記処理開始指示の数を、前記第1の装置と前記第2の装置との間で通信に用いられる接続の数を規定する第1の上限値以下の数に制御し、
     前記第2の装置から前記第1の装置へ未送信の前記処理終了通知に対応する前記処理開始指示の数と、前記第2の装置から前記第1の装置へ送信される非同期通知の数との総数を、前記第1の上限値より大きな第2の上限値以下の数に制御する、
    ことを特徴とする制御方法。
    A control method for controlling communication between a first device and a second device, comprising:
    Among the process start instructions transmitted from the first apparatus to the second apparatus, the number of the process start instructions that have not received a process end notification for the process start instruction from the second apparatus Control to a number equal to or less than a first upper limit value that defines the number of connections used for communication between the second device and the second device;
    The number of processing start instructions corresponding to the processing end notification not transmitted from the second device to the first device, and the number of asynchronous notifications transmitted from the second device to the first device; To a number equal to or less than a second upper limit value greater than the first upper limit value,
    A control method characterized by that.
  6.  第1の装置と第2の装置の間の通信を制御する処理を前記第1の装置が備えるプロセッサに実行させるプログラムであって、
     前記プロセッサによって、前記第1の装置から前記第2の装置へ送信した処理開始指示のうち、前記処理開始指示に対する処理終了通知を前記第2の装置から未受信である前記処理開始指示の数を、前記第1の装置と前記第2の装置との間で通信に用いられる接続の数を規定する第1の上限値以下の数に制御し、
     前記第2の装置によって、前記第2の装置から前記第1の装置へ未送信の前記処理終了通知に対応する前記処理開始指示の数と、前記第2の装置から前記第1の装置へ送信される非同期通知の数との総数を、前記第1の上限値より大きな第2の上限値以下の数に制御する、
    ことを特徴とするプログラム。
    A program for causing a processor included in the first device to execute processing for controlling communication between the first device and the second device,
    Among the process start instructions transmitted from the first apparatus to the second apparatus by the processor, the number of process start instructions that have not been received from the second apparatus is a process end notification for the process start instruction. , Controlling the number of connections used for communication between the first device and the second device to a number equal to or less than a first upper limit value that defines the number of connections,
    The number of processing start instructions corresponding to the processing end notification that has not been transmitted from the second device to the first device by the second device, and transmission from the second device to the first device. Controlling the total number of asynchronous notifications to be made to a number equal to or less than a second upper limit value greater than the first upper limit value,
    A program characterized by that.
  7.  第1の装置と第2の装置の間の通信を制御する処理を前記第2の装置が備えるプロセッサに実行させるプログラムであって、
     前記第1の装置によって、前記第1の装置から前記第2の装置へ送信した処理開始指示のうち、前記処理開始指示に対する処理終了通知を前記第2の装置から未受信である前記処理開始指示の数を、前記第1の装置と前記第2の装置との間で通信に用いられる接続の数を規定する第1の上限値以下の数に制御し、
     前記プロセッサによって、前記第2の装置から前記第1の装置へ未送信の前記処理終了通知に対応する前記処理開始指示の数と、前記第2の装置から前記第1の装置へ送信される非同期通知の数との総数を、前記第1の上限値より大きな第2の上限値以下の数に制御する、
    ことを特徴とするプログラム。
    A program for causing a processor included in the second device to execute processing for controlling communication between the first device and the second device,
    Of the process start instructions transmitted from the first apparatus to the second apparatus by the first apparatus, the process start instruction that has not received a process end notification for the process start instruction from the second apparatus And the number of connections to a number equal to or less than a first upper limit value that defines the number of connections used for communication between the first device and the second device;
    The number of processing start instructions corresponding to the processing end notification not transmitted from the second device to the first device by the processor, and the asynchronous transmitted from the second device to the first device Controlling the total number of notifications to a number equal to or less than a second upper limit value greater than the first upper limit value,
    A program characterized by that.
PCT/JP2012/063821 2012-05-29 2012-05-29 Control system, control method, and program WO2013179402A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063821 WO2013179402A1 (en) 2012-05-29 2012-05-29 Control system, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063821 WO2013179402A1 (en) 2012-05-29 2012-05-29 Control system, control method, and program

Publications (1)

Publication Number Publication Date
WO2013179402A1 true WO2013179402A1 (en) 2013-12-05

Family

ID=49672656

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/063821 WO2013179402A1 (en) 2012-05-29 2012-05-29 Control system, control method, and program

Country Status (1)

Country Link
WO (1) WO2013179402A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683749A (en) * 1992-03-02 1994-03-25 Internatl Business Mach Corp <Ibm> Input and output system
JPH0756842A (en) * 1993-08-19 1995-03-03 Hitachi Ltd Channel sub system
JP2000132507A (en) * 1998-10-27 2000-05-12 Internatl Business Mach Corp <Ibm> Command processing method for scsi protocol and device used for the processing method
JP2006148648A (en) * 2004-11-22 2006-06-08 Hitachi Communication Technologies Ltd User terminal connection control method and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683749A (en) * 1992-03-02 1994-03-25 Internatl Business Mach Corp <Ibm> Input and output system
JPH0756842A (en) * 1993-08-19 1995-03-03 Hitachi Ltd Channel sub system
JP2000132507A (en) * 1998-10-27 2000-05-12 Internatl Business Mach Corp <Ibm> Command processing method for scsi protocol and device used for the processing method
JP2006148648A (en) * 2004-11-22 2006-06-08 Hitachi Communication Technologies Ltd User terminal connection control method and device

Similar Documents

Publication Publication Date Title
EP3352086B1 (en) Control method, device and system for data reading-writing command in nvme over fabric architecture
JP5159900B2 (en) Computer program, apparatus, and method for reducing access conflict of reserved device
US8392635B2 (en) Selectively enabling a host transfer interrupt
EP0768609B1 (en) Multimedia data transferring method
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
US20110179413A1 (en) Guest/Hypervisor Interrupt Coalescing for Storage Adapter Virtual Function in Guest Passthrough Mode
US20170242596A1 (en) System and method of application aware efficient io scheduler
JP2005122236A (en) Data transfer method and disk control unit using it
US8856407B2 (en) USB redirection for write streams
US20040073719A1 (en) Method and apparatus for efficient command queuing within a serial ATA environment
CN103823636A (en) IO scheduling method and device
US8266331B2 (en) Transmitting retry request associated with non-posted command via response credit channel
WO2017141413A1 (en) Computer, communication driver, and communication control method
CN112559436B (en) Context access method and system of RDMA communication equipment
EP2652589A1 (en) Storage system
JP4888731B2 (en) Computer system, input / output priority control method, and program
EP1891503B1 (en) Concurrent read response acknowledge enhanced direct memory access unit
WO2013179402A1 (en) Control system, control method, and program
US10581748B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
CN102043741A (en) Circuit and method for pipe arbitration
WO2022151766A1 (en) Io request pipeline processing device, method and system, and storage medium
US6968409B1 (en) Method and apparatus of establishing a dynamically adjustable loop of delayed read commands for completion in a queue buffer
CN109992560B (en) Communication method and communication system
US20120167119A1 (en) Low-latency communications
US20160062925A1 (en) Method and system for managing storage device operations by a host device

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12878138

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP