WO2019221131A1 - 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体 - Google Patents

入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体 Download PDF

Info

Publication number
WO2019221131A1
WO2019221131A1 PCT/JP2019/019153 JP2019019153W WO2019221131A1 WO 2019221131 A1 WO2019221131 A1 WO 2019221131A1 JP 2019019153 W JP2019019153 W JP 2019019153W WO 2019221131 A1 WO2019221131 A1 WO 2019221131A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
information processing
processing resource
output
output device
Prior art date
Application number
PCT/JP2019/019153
Other languages
English (en)
French (fr)
Inventor
鈴木 順
佑樹 林
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2020519862A priority Critical patent/JP7047906B2/ja
Priority to US17/055,381 priority patent/US11321251B2/en
Publication of WO2019221131A1 publication Critical patent/WO2019221131A1/ja

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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Definitions

  • the present invention relates to a technology for controlling assignment of input / output data transmission / reception processing for transmitting / receiving data to / from an input / output device to any of a plurality of information processing resources.
  • Patent Document 1 discloses a program in which a cache miss hit (for example, false sharing) frequently occurs only at the time of startup processing when executed by a multi-core processor.
  • a program processing apparatus is disclosed that aims to improve the performance at startup while maintaining the performance of processing after startup.
  • This device manages the threads generated in the specific process, fixes the operating core of the thread generated during the startup process to a specific core, and sets the settings for the operating core of the specific process thread generated after the startup process is completed. Do not do it.
  • this apparatus restores the setting for the operating core of the thread for specific processing that has been generated before that time.
  • Patent Document 2 discloses a data processing apparatus that expands the application range of pass-through technology in which a guest OS (Operating System) directly controls a remote device connected via a network.
  • This apparatus includes a host OS that provides a virtual hardware environment to a guest OS that performs I / O (Input / Output) processing with a device provided in a remote apparatus connected via a network.
  • the host OS traps the I / O command issued by the guest OS, encapsulates the trapped I / O command, and sends it to the remote device as a network packet.
  • the above-described multi-core processor that is, a processor having a plurality of cores that are information processing resource elements
  • a unit to which processing is assigned is referred to as an information processing resource element.
  • FIG. 4 is a sequence diagram when a general system that implements ExpEther by software normally processes an access request to an input / output device (for example, a storage device).
  • this system has two CPU (CentralCPUProcessing ⁇ ⁇ Unit) cores, and the user application is assigned to one of the CPU cores.
  • CPU CentralCPUProcessing ⁇ ⁇ Unit
  • a user application and input / output data transmission / reception processing by an access request to an input / output device issued by the user application are usually assigned to different CPU cores.
  • the reason why such control is performed is that when one CPU core executes many processes including user applications and input / output data transmission / reception processes, the number of processes sharing information processing resources related to the CPU core is large. As a result, there is a high possibility that a deadlock will occur.
  • the CPU core 0 executes a user application for accessing the input / output device and also executes an access intercept process incorporated in the OS kernel.
  • the CPU core 1 executes input / output data transmission / reception processing.
  • the access intercept process detects the access request (step S202).
  • the access intercept process requests the input / output data transmission / reception process to execute the access request (step S203).
  • the access request is encapsulated, and the encapsulated access request is transmitted to the input / output device (step S204).
  • the input / output device receives the access request (step S205) and transmits a response to the input / output data transmission / reception process (step S206).
  • the response is received (step S207), the response is decapsulated (step S208), and the decapsulated response is transmitted to the user application (step S209).
  • the user application receives the response (step S210)
  • the access request processing is completed.
  • FIG. 5 is a sequence diagram in a case where a stall occurs in the process of processing an access request for an input / output device by a general system that implements ExpEther by software.
  • This system executes steps S201 to S205 as in the case shown in FIG.
  • the user application is newly assigned to the CPU core 1 (step S301), so that the input / output data transmission / reception process executed by the CPU core 1 is stopped (disappears) (step S302).
  • the input / output data transmission / reception process is stopped (disappears) because, as described above, both the user application and the input / output data transmission / reception process are not assigned to one CPU core.
  • the input / output device cannot transmit a response because the transmission destination of the response has disappeared (step S303), and the processing of the access request stalls. Therefore, it is a problem to avoid the occurrence of a stall as illustrated in FIG. 5 in a system in which, for example, ExpEther or the like that implements a communication control function by hardware is implemented by software.
  • Patent Documents 1 and 2 do not mention this problem.
  • the main object of the present invention is to provide an input / output processing allocation control device or the like that solves this problem.
  • the input / output processing allocation control device provides the first information processing resource element included in the information processing apparatus in response to an access request to the input / output device by the first information processing resource element.
  • the second information processing resource element Allocating means for allocating entry output data transmission / reception processing and excluding the second information processing resource element from a new allocation destination of processing including an access request for the input / output device among the plurality of information processing resource elements Prepare.
  • an input / output processing allocation control method provides a first information processing resource element among a plurality of information processing resource elements included in a first information processing apparatus.
  • the second information processing resource element different from the first information processing resource element performs input / output data transmission / reception processing with the input / output device in response to the access request to the input / output device by
  • the second information processing apparatus assigns the input / output data transmission / reception process to the second information processing resource element and includes an access request for the input / output device among the plurality of information processing resource elements.
  • the second information processing resource element is excluded from the new allocation destination.
  • an input / output processing allocation control program is based on a first information processing resource element among a plurality of information processing resource elements included in an information processing apparatus.
  • a second information processing resource element different from the first information processing resource element executes input / output data transmission / reception processing with the input / output device.
  • the input / output data transmission / reception process is allocated to a second information processing resource element, and among the plurality of information processing resource elements, a new allocation destination of a process including an access request for the input / output device is used.
  • the present invention can also be realized by a computer-readable non-volatile recording medium in which such an input / output processing assignment control program (computer program) is stored.
  • the invention of the present application avoids unauthorized stoppage of data transmission / reception in a system in which input / output data transmission / reception processing for transmitting / receiving data to / from an input / output device is assigned to one of a plurality of information processing resource elements. Is possible.
  • FIG. 11 is a sequence diagram when a general system that implements ExpEther by software normally processes an access request to an input / output device.
  • FIG. 10 is a sequence diagram when a stall occurs in a process in which a general system that implements ExpEther by software processes an access request to an input / output device.
  • FIG. 1 is a block diagram showing a configuration of an input / output processing assignment control system 1 according to the first embodiment of the present invention.
  • the input / output process assignment control system 1 roughly includes an information processing apparatus (input / output process assignment control apparatus) 10 and an input / output device 20.
  • the information processing apparatus 10 is a server apparatus that implements, for example, software-based Ether, and is connected to the input / output device 20 so as to be communicable.
  • the input / output device 20 is, for example, a storage device having an interface specification compliant with ExpEther.
  • the information processing apparatus 10 includes a CPU 11, a main memory 12, an I / O controller 13, an I / O card 14, an input / output device 15, and a CD (Compact Disc) / DVD (Digital Versatile Disc) drive 16.
  • a CPU 11 a main memory 12
  • an I / O controller 13 an I / O card 14
  • an input / output device 15 an input / output device 15
  • a CD Compact Disc
  • DVD Digital Versatile Disc
  • CPU 11 inputs and outputs data (information) between main memory 12 and I / O controller 13.
  • the CPU 11 can also input / output data to / from the I / O card 14, the input / output device 15, and the CD / DVD drive 16 via the I / O controller 13.
  • the I / O card 14 is connected to the input / output device 20 by ExpEther and controls data input / output with the input / output device 20.
  • the input / output device 15 is a device having a user interface function such as a keyboard, a mouse, and a display.
  • the CD / DVD drive 16 is an example of a device that reads data from the recording medium 160 and writes data to the recording medium 160.
  • the information processing apparatus 10 has a function of allocating a user application 1110, input / output data transmission / reception processing 1140, and the like to the four CPU cores 111 to 114 (information processing resource elements) included in the CPU 11.
  • the input / output data transmission / reception process 1140 is a process necessary for execution of ExpEther regarding an access request to the input / output device 20 issued by the user application.
  • the number of CPU cores included in the CPU 11 is not limited to four. In the present application, the details of the function of the information processing apparatus 10 according to the present embodiment as the input / output process assignment control apparatus will be described below.
  • At least one of the CPU cores 111 to 114 included in the CPU 11 executes an allocation process 101, a detection process 102, and an inter-CPU core communication process 103.
  • a program for executing the allocation process 101, the detection process 102, and the inter-CPU core communication process 103 is stored in a memory (for example, the main memory 12) provided in the information processing apparatus 10.
  • the operations performed by the information processing apparatus 10 by executing processes such as the allocation process 101, the detection process 102, and the inter-CPU core communication process 103
  • the allocation process 101, the detection process 102, and The inter-CPU core communication process 103 or the like may be described as a subject that performs the operation.
  • the CPU core 111 (first information processing resource element) executes the user application 1110 assigned by the assignment processing 101.
  • the user application 1110 is an application that accesses data stored in the input / output device 20.
  • the CPU core 111 also executes an OS kernel 1111.
  • the kernel 1111 includes a device driver 1112 and an access intercept process 1113.
  • the device driver 1112 controls access from the CPU core 111 to the input / output device 20 by ExpEther.
  • the access intercept processing 1113 detects an access request for the input / output device 20 issued by the user application 1110.
  • the access intercept process 1113 inputs the detected access request to the CPU core 114 via the inter-CPU core communication process 103.
  • the communication processing 103 between CPU cores controls communication (data transmission / reception etc.) performed between CPU cores.
  • the CPU core 114 (second information processing resource element) executes the input / output data transmission / reception process 1140 assigned by the assignment process 101.
  • the CPU core 114 also executes an OS kernel 1141.
  • the kernel 1141 includes a device driver 1142.
  • the device driver 1142 controls access by ExpEther using the I / O card 14.
  • the input / output data transmission / reception processing 1140 includes processing for encapsulating packet data transmitted from the information processing apparatus 10 to the input / output device 20 in accordance with the interface specification of ExpEther.
  • the input / output data transmission / reception processing 1140 also includes processing for decapsulating (decapsulating) the packet data encapsulated in accordance with the ExpEther interface specification received by the information processing apparatus 10 from the input / output device 20.
  • the allocation destination of the input / output data transmission / reception processing 1140 is fixed to the CPU core 114. That is, the information processing apparatus 10 according to the present embodiment uses the CPU core 114 as a dedicated CPU core for executing ExpEther by software. Therefore, the assignment process 101 assigns a new user application that accesses data stored in the input / output device 20 to at least one of the CPU cores 111 to 113 excluding the CPU core 114.
  • the allocation processing 101 is excluded from a new user application assignment destination.
  • the assignment process 101 also incorporates an access intercept process into the kernel when the access intercept process is not incorporated into the kernel executed by the CPU core to which the new user application is assigned.
  • the detection process 102 detects that the CPU core 111 has completed receiving a response from the input / output device 20 in response to an access request to the input / output device 20. For example, the detection processing 102 detects that the response from the input / output device has been received when the time based on the access data amount for the input / output device 20 has elapsed since the access to the input / output device 20 was started. can do. Alternatively, the detection process 102 may detect that the reception of the response from the input / output device is completed by detecting information representing the last data in the response from the input / output device.
  • the allocation processing 101 may release the allocation of the input / output data transmission / reception processing 1140 to the CPU core 114 after the detection processing 102 detects that the reception of the response from the input / output device 20 is completed.
  • the assignment process 101 assigns the user application 1110 to the CPU core 111 and incorporates the access intercept process 1113 into the kernel 1111 (step S101).
  • the allocation process 101 allocates the input / output data transmission / reception process 1140 to the CPU core 114 (step S102).
  • the access intercept processing 1113 detects an access request to the input / output device 20 by the user application 1110, and inputs the access request to the CPU core 114 via the inter-CPU core communication processing 103 (step S103).
  • the input / output data transmission / reception processing 1140 executes the access request to the input / output device 20 (step S104).
  • the CPU 11 receives an instruction to execute a new user application including access to the input / output device 20 from the input / output device 15 (step S105).
  • the assignment process 101 assigns a new user application to any one of the CPU cores 111 to 113 excluding the CPU core 114, and incorporates an access intercept process into the kernel executed by the assignment destination CPU core as necessary. (Step S106).
  • the access intercept process executed by the assigned CPU core detects an access request to the input / output device 20 by a new user application, and inputs the access request to the CPU core 114 (step S107).
  • the input / output data transmission / reception process 1140 executes an access request to the input / output device 20 (step S108), and the process returns to step S105.
  • An information processing apparatus (input / output processing allocation control apparatus) 10 is a system that allocates input / output data transmission / reception processing for transmitting / receiving data to / from an input / output device to any one of a plurality of information processing resource elements. Therefore, it is possible to prevent the transmission / reception of the data from stopping illegally. The reason is that the information processing apparatus 10 excludes the information processing resource element that executes the input / output data transmission / reception process from the new assignment destination of the process including the access request to the input / output device.
  • a user application and an input / output data transmission / reception process by an access request for an input / output device issued by the user application are usually performed for reasons such as avoiding the occurrence of a deadlock.
  • the information processing resource element has been executed.
  • the access request process stalls.
  • the information processing apparatus (input / output process allocation control apparatus) 10 operates as described above with reference to FIGS. 1 and 2, for example, by executing the allocation process 101.
  • the CPU core 114 executes an input / output data transmission / reception process 1140 with the input / output device 20.
  • the allocation process 101 allocates the input / output data transmission / reception process 1140 to the CPU core 114, and the CPU 114 from the new allocation destination of the process including the access request to the input / output device 20 among the CPU cores 111 to 114. Is excluded.
  • the information processing apparatus (input / output process allocation control apparatus) 10 does not newly allocate a user application to the CPU core 114 that executes the input / output data transmission / reception process 1140. By stopping (disappearing) the output data transmission / reception processing, it is possible to avoid the problem that processing of access requests to the input / output device 20 stops.
  • the information processing apparatus 10 fixes a CPU core that executes input / output data transmission / reception processing to the CPU core 114. That is, since the information processing apparatus 10 secures the CPU core 114 as a dedicated CPU core for executing the input / output data transmission / reception process, the problem that the processing of the access request to the input / output device 20 stops is simplified. It can be avoided by logic. Note that the information processing apparatus 10 does not need to fix the CPU core that executes the input / output data transmission / reception process to any of the CPU cores, and enters an appropriate CPU core according to the information processing status of each CPU core. An output data transmission / reception process may be assigned.
  • the information processing apparatus 10 further executes a detection process 102 for detecting that reception of a response from the input / output device 20 to the access request to the input / output device 20 is completed.
  • the allocation processing 101 once releases the allocation of the input / output data transmission / reception processing 1140 to the CPU core 114 after the detection processing 102 detects that the reception of the response from the input / output device 20 is completed.
  • the CPU core 114 when the CPU core 114 is a dedicated CPU core for executing input / output data transmission / reception processing, the CPU core 114 cannot be used as a CPU core for executing a user application. There arises a problem that the use efficiency of processing resources is lowered.
  • the information processing apparatus 10 has no problem even if the input / output data transmission / reception processing 1140 is stopped by completing the reception of the response from the input / output device 20 as described above. Since the assignment of the input / output data transmission / reception processing 1140 to the CPU core 114 can be once released when the state becomes the state, the problem that the use efficiency of the information processing resources decreases can be avoided.
  • the information processing apparatus 10 may have a simple configuration that does not execute the detection process 102.
  • the information processing apparatus 10 uses a CPU core as a unit (information processing resource element) for assigning a user application, input / output data transmission / reception processing, and the like, but the information processing resource element is not limited to the CPU core.
  • the information processing resource element may be, for example, a CPU in an information processing apparatus including a plurality of CPUs, or a processing allocation unit in a virtual machine.
  • the communication control interface that is the control target of the information processing apparatus 10 is not limited to ExpEthernet obtained by virtualizing PCI Express on Ethernet.
  • the information processing apparatus 10 receives a second information processing resource element different from the first information processing resource element between the input / output device.
  • a communication control interface other than ExpEther that executes input / output data transmission / reception processing may be controlled.
  • the functions realized by the assignment process 101, the detection process 102, and the inter-CPU core communication process 103 according to the present embodiment can be realized by a configuration other than the configuration in which the CPU 11 executes a program related to these processes.
  • the information processing apparatus 10 includes, for example, an allocation unit, a detection unit, and an inter-CPU core communication unit that are hardware that realizes functions equivalent to the allocation processing 101, the detection processing 102, and the inter-CPU core communication processing 103. May be.
  • the computer program supply method for realizing the assignment process 101, the detection process 102, and the inter-CPU core communication process 103 according to the present embodiment can employ a general procedure at present.
  • the procedure includes, for example, a method of installing in an information processing apparatus via various recording media 160 such as a CD-ROM, and a method of downloading from the outside via a communication line such as the Internet.
  • the present invention is configured by a code constituting the computer program or a recording medium 160 in which the code is stored.
  • FIG. 3 is a block diagram showing the configuration of the input / output processing assignment control device 30 according to the second embodiment of the present invention.
  • the input / output process allocation control device 30 includes an allocation unit 31.
  • the second information processing resource element 42 in response to an access request to the input / output device 50 by the first information processing resource element 41 among the plurality of information processing resource elements included in the information processing apparatus 40, The second information processing resource element 42 having different input / output data transmission / reception processing 420 with the input / output device 50 is executed.
  • the assigning unit 31 assigns the input / output data transmission / reception process 420 to the second information processing resource element 42 and newly assigns a process including an access request for the input / output device 50 among the plurality of information processing resource elements. First, the second information processing resource element 42 is excluded.
  • the input / output processing allocation control device 30 transmits / receives data in a system that allocates input / output data transmission / reception processing for transmitting / receiving data to / from an input / output device to any of a plurality of information processing resource elements. Can be prevented from stopping illegally. This is because the input / output process allocation control device 30 excludes the information processing resource element that executes the input / output data transmission / reception process from the new allocation destination of the process including the access request for the input / output device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

入出力処理割り当て制御装置30は、情報処理装置40に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素41による入出力デバイス50に対するアクセス要求に応じて、第二の情報処理資源要素42が、入出力デバイス50との間における入出力データ送受信処理420を実行する場合に、第二の情報処理資源要素42に対して、入出力データ送受信処理420を割り当てるとともに、複数の情報処理資源要素のうち、入出力デバイス50に対するアクセス要求を含む処理の新たな割り当て先から、第二の情報処理資源要素42を除外する割り当て部31を備えることによって、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避する。

Description

入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体
 本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源のいずれかに割り当てることを制御する技術に関する。
 近年におけるコンピュータテクノロジの急速な進歩によって実現した、複数のコアを搭載したプロセッサ(マルチコアプロセッサ)や、ハードウェアの仮想化技術等が、様々なシステムにおいて浸透してきている。そして、このようなマルチコアプロセッサやハードウェアの仮想化技術等を用いた、高性能で使いやすいシステムを実現する技術への期待がますます高まってきている。
 このような技術に関連する技術として、特許文献1には、マルチコアプロセッサによって実行された場合に、起動処理時の場合にのみキャッシュのミスヒット(フォルス・シェアリング等)が頻発するようなプログラムにおいて、起動後の処理のパフォーマンスを維持しつつ、起動時のパフォーマンスも向上させることを目的としたプログラム処理装置が開示されている。この装置は、特定処理において生成されるスレッドを管理し、起動処理中に生成されるスレッドの動作コアを特定のコアに固定し、起動処理完了後に生成する特定処理のスレッドの動作コアに対する設定を行わないようにする。また、この装置は、起動処理が完了したタイミングに、それ以前に生成していた特定処理用のスレッドの動作コアに対する設定を元に戻すようにする。
 また、特許文献2には、ネットワークを介して接続された遠隔デバイスをゲストOS(Operating System)が直接制御するパススルー技術の適用範囲を拡げるようにしたデータ処理装置が開示されている。この装置は、ネットワークを介して接続されたリモート装置に設けられたデバイスとの間でI/O(Input / Output)処理を行うゲストOSに対して仮想ハードウェア環境を提供するホストOSを備える。そして、ホストOSは、ゲストOSが発行したI/O命令をトラップするとともに、トラップしたI/O命令をカプセル化して、リモート装置に向けてネットワークパケットとして送出する。
特開2016-167151号公報 国際公開第2015/145983号
 近年、上述したハードウェアの仮想化技術の一つとして、ハードウェアによる通信制御機能をソフトウェアにより実現する様々な技術が開発されてきている。その一例として、PCI(Peripheral Component Interconnect) Express(登録商標)をEthernet(イーサネット:登録商標)上に仮想化する技術であるExpEther(エクスプレスイーサ:登録商標)を、ソフトウェアによって実現する技術がある。
 ここで、上述したマルチコアプロセッサ(即ち、情報処理資源要素であるコアを複数備えるプロセッサ)がExpEtherをソフトウェアによって実現する場合について考える。但し、本願では、処理が割り当てられる単位を、情報処理資源要素と称することとする。
 図4は、ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイス(例えばストレージ装置)に対するアクセス要求を正常に処理した場合のシーケンス図である。但し、このシステムは、CPU(Central Processing Unit)コアを2つ有することとし、ユーザアプリケーションは、いずれかのCPUコアに割り当てられることとする。
 また、ExpEtherをソフトウェアによって実現するシステムでは、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なるCPUコアに割り当てられる。このような制御が行われる理由は、1つのCPUコアが、ユーザアプリケーションや入出力データ送受信処理等を含む多くの処理を実行する場合、当該CPUコアに関する情報処理資源を共有する処理の数が多くなることによって、デッドロックが発生する可能性が高くなることなどである。
 図4に示す通り、CPUコア0は、入出力デバイスに対するアクセスを行なうユーザアプリケーションを実行するとともに、OSのカーネルに組み込まれたアクセスインターセプト処理を実行している。そして、CPUコア1は、入出力データ送受信処理を実行している。
 ユーザアプリケーションが入出力デバイスに対するアクセス要求を発行した場合(ステップS201)、アクセスインターセプト処理は、そのアクセス要求を検出する(ステップS202)。アクセスインターセプト処理は、そのアクセス要求の実行を入出力データ送受信処理に依頼する(ステップS203)。入出力データ送受信処理は、そのアクセス要求のカプセル化を実行し、カプセル化したアクセス要求を入出力デバイスに送信する(ステップS204)。
 入出力デバイスは、アクセス要求を受信し(ステップS205)、その応答を入出力データ送受信処理に送信する(ステップS206)。入出力データ送受信処理は、応答を受信し(ステップS207)、応答のデカプセル化を実行し(ステップS208)、デカプセル化した応答をユーザアプリケーションに送信する(ステップS209)。そしてユーザアプリケーションが応答を受信する(ステップS210)ことによって、当該アクセス要求の処理は完了する。
 図5は、ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。
 このシステムは、図4に示す場合と同様に、ステップS201乃至S205の処理を実行する。そして図5に示す場合では、CPUコア1にユーザアプリケーションが新たに割り当てられる(ステップS301)ことによって、CPUコア1によって実行されていた入出力データ送受信処理が停止(消滅)する(ステップS302)。尚、入出力データ送受信処理が停止(消滅)するのは、上述した通り、1つのCPUコアに対して、ユーザアプリケーションと入出力データ送受信処理との両方が割り当てられないからである。
 この場合、入出力デバイスは、応答の送信先が消滅したことによって、応答を送信できず(ステップS303)、当該アクセス要求の処理はストールする。したがって、ハードウェアによる通信制御機能をソフトウェアにより実現する例えばExpEtherなどを実装したシステムにおいて、図5に例示するようなストールの発生を回避することが課題である。特許文献1及び2は、この問題について言及していない。本願発明の主たる目的は、この問題を解決する入出力処理割り当て制御装置等を提供することである。
 本願発明の一態様に係る入出力処理割り当て制御装置は、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段を備える。
 上記目的を達成する他の見地において、本願発明の一態様に係る入出力処理割り当て制御方法は、第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、第二の情報処理装置によって、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する。
 また、上記目的を達成する更なる見地において、本願発明の一態様に係る入出力処理割り当て制御プログラムは、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能をコンピュータに実現させるためのプログラムである。
 更に、本願発明は、係る入出力処理割り当て制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
 本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することを可能とする。
本願発明の第1の実施形態に係る入出力処理割り当て制御システム1の構成を示すブロック図である。 本願発明の第1の実施形態に係る情報処理装置10の動作を示すフローチャートである。 本願発明の第2の実施形態に係る入出力処理割り当て制御装置30の構成を示すブロック図である。 ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を正常に処理した場合のシーケンス図である。 ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。
 以下、本願発明の実施の形態について図面を参照して詳細に説明する。
 <第1の実施形態>
 図1は、本願発明の第1の実施の形態に係る入出力処理割り当て制御システム1の構成を示すブロック図である。入出力処理割り当て制御システム1は、大別して、情報処理装置(入出力処理割り当て制御装置)10、及び、入出力デバイス20を含んでいる。
 情報処理装置10は、例えばソフトウェアによるExpEtherを実装するサーバ装置であり、入出力デバイス20と通信可能に接続されている。入出力デバイス20は、ExpEtherに準拠したインタフェース仕様を備える、例えばストレージ装置である。
 情報処理装置10は、CPU11、主記憶12、I/Oコントローラ13、I/Oカード14、入出力装置15、及び、CD(Compact Disc)/DVD(Digital Versatile Disc)ドライブ16を備えている。
 CPU11は、主記憶12及びI/Oコントローラ13の間でデータ(情報)を入出力する。CPU11は、また、I/Oコントローラ13を介して、I/Oカード14、入出力装置15、及び、CD/DVDドライブ16との間でデータを入出力することが可能である。
 I/Oカード14は、入出力デバイス20とExpEtherにより接続され、入出力デバイス20との間でデータの入出力を制御する。入出力装置15は、例えば、キーボード、マウス、ディスプレイ等の、ユーザインタフェース機能を備えた装置である。CD/DVDドライブ16は、記録媒体160からのデータの読み出しや記録媒体160へのデータの書き込みを行なう装置の一例である。
 情報処理装置10は、CPU11が備える4つのCPUコア111乃至114(情報処理資源要素)に対して、ユーザアプリケーション1110、及び、入出力データ送受信処理1140などを割り当てる機能を有する。但し、入出力データ送受信処理1140は、後述する通り、当該ユーザアプリケーションにより発行された入出力デバイス20に対するアクセス要求に関するExpEtherの実行に必要な処理である。尚、CPU11が備えるCPUコアの数は、4つに限定されない。本願では、以降、本実施形態に係る情報処理装置10が有する入出力処理割り当て制御装置としての機能について、その詳細を説明する。
 CPU11が備えるCPUコア111乃至114の少なくともいずれかは、割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実行する。但し、割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実行するためのプログラムは、情報処理装置10が備えるメモリ(例えば主記憶12等)に格納されていることとする。尚、本願では以降、情報処理装置10が、割り当て処理101、検出処理102、及び、CPUコア間通信処理103等の処理を実行することによって行なう動作に関して、割り当て処理101、検出処理102、及び、CPUコア間通信処理103等を、その動作を行なう主体として記載する場合がある。
 CPUコア111(第一の情報処理資源要素)は、割り当て処理101によって割り当てられたユーザアプリケーション1110を実行している。但しユーザアプリケーション1110は、入出力デバイス20に記憶されているデータに対するアクセスを行なうアプリケーションである。
 CPUコア111はまた、OSのカーネル1111を実行している。カーネル1111は、デバイスドライバ1112と、アクセスインターセプト処理1113とを含んでいる。デバイスドライバ1112は、CPUコア111から入出力デバイス20に対するExpEtherによるアクセスを制御する。
 アクセスインターセプト処理1113は、ユーザアプリケーション1110によって発行された、入出力デバイス20に対するアクセス要求を検出する。アクセスインターセプト処理1113は、検出したアクセス要求を、CPUコア間通信処理103を介して、CPUコア114へ入力する。但し、CPUコア間通信処理103は、CPUコア間において行われる通信(データの送受信等)を制御する。
 CPUコア114(第二の情報処理資源要素)は、割り当て処理101によって割り当てられた入出力データ送受信処理1140を実行している。CPUコア114はまた、OSのカーネル1141を実行している。カーネル1141は、デバイスドライバ1142を含んでいる。デバイスドライバ1142は、I/Oカード14を用いたExpEtherによるアクセスを制御する。
 入出力データ送受信処理1140は、情報処理装置10から入出力デバイス20に送信されるパケットデータを、ExpEtherのインタフェース仕様にしたがってカプセル化する処理を含む。入出力データ送受信処理1140は、また、情報処理装置10が入出力デバイス20から受信した、ExpEtherのインタフェース仕様にしたがってカプセル化されたパケットデータを、デカプセル化(カプセル化を解除)する処理を含む。
 本実施形態に係る割り当て処理101は、入出力データ送受信処理1140の割り当て先をCPUコア114に固定している。即ち、本実施形態に係る情報処理装置10は、CPUコア114を、ソフトウェアによってExpEtherを実行するための専用のCPUコアとして使用する。したがって、割り当て処理101は、入出力デバイス20に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションを、CPUコア114を除いた、CPUコア111乃至113の少なくともいずれかに割り当てる。
 即ち、例えばユーザによる入出力装置15に対する入力操作によって、情報処理装置10が入出力デバイス20に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションの実行を開始する場合、割り当て処理101は、その新たなユーザアプリケーションの割り当て先からCPUコア114を除外する。
 割り当て処理101は、また、新たなユーザアプリケーションを割り当てたCPUコアが実行するカーネルにアクセスインターセプト処理が組み込まれていない場合、当該カーネルにアクセスインターセプト処理を組み込む。
 検出処理102は、CPUコア111による、入出力デバイス20に対するアクセス要求に対する入出力デバイス20からの応答の受信が完了したことを検出する。検出処理102は、例えば、入出力デバイス20に対するアクセスが開始されてから、入出力デバイス20に対するアクセスデータ量に基づく時間が経過したことをもって、入出力デバイスからの応答の受信が完了したことを検出することができる。検出処理102は、あるいは、入出力デバイスからの応答における最後のデータを表す情報を検出することによって、入出力デバイスからの応答の受信が完了したことを検出してもよい。
 割り当て処理101は、検出処理102によって、入出力デバイス20からの応答の受信が完了したことが検出されたのち、CPUコア114に対する入出力データ送受信処理1140の割り当てを解放してもよい。
 次に、図2のフローチャートを参照して、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10の動作(処理)について詳細に説明する。
 割り当て処理101は、ユーザアプリケーション1110をCPUコア111に割り当てるとともに、アクセスインターセプト処理1113を、カーネル1111に組み込む(ステップS101)。割り当て処理101は、入出力データ送受信処理1140をCPUコア114に割り当てる(ステップS102)。
 アクセスインターセプト処理1113は、ユーザアプリケーション1110による入出力デバイス20に対するアクセス要求を検出し、当該アクセス要求を、CPUコア間通信処理103を介して、CPUコア114に入力する(ステップS103)。入出力データ送受信処理1140は、入出力デバイス20に対して、そのアクセス要求を実行する(ステップS104)。
 CPU11は、入出力デバイス20に対するアクセスを含む、新たなユーザアプリケーションの実行指示を、入出力装置15から受け付ける(ステップS105)。割り当て処理101は、新たなユーザアプリケーションを、CPUコア114を除く、CPUコア111乃至113のいずれかに割り当てるとともに、必要に応じて、アクセスインターセプト処理を、割り当て先のCPUコアが実行するカーネルに組み込む(ステップS106)。
 割り当て先のCPUコアによって実行されるアクセスインターセプト処理は、新たなユーザアプリケーションによる入出力デバイス20へのアクセス要求を検出し、当該アクセス要求を、CPUコア114に入力する(ステップS107)。入出力データ送受信処理1140は、入出力デバイス20に対して、そのアクセス要求を実行し(ステップS108)、処理は、ステップS105へ戻る。
 本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、情報処理装置10は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
 以下に、本実施形態に係る情報処理装置10によって実現される効果について、詳細に説明する。
 例えばExpEtherをソフトウェアによって実現するシステムでは、デッドロックの発生を回避することなどの理由により、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なる情報処理資源要素に割り当てられる。このようなシステムにおいて、例えば、図5に示す通り、入出力データ送受信処理を実行する情報処理資源要素に対して、ユーザアプリケーションが新たに割り当てられた場合、当該情報処理資源要素によって実行されていた入出力データ送受信処理が停止(消滅)することによって、当該アクセス要求の処理がストールするという問題がある。
 このような問題に対して、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、割り当て処理101を実行することによって、例えば図1及び図2を参照して上述した通り動作する。即ち、本実施形態では、情報処理装置10に含まれる複数のCPUコア111乃至114(情報処理資源要素)のうちのCPUコア111(第一の情報処理資源要素)による入出力デバイス20に対するアクセス要求に応じて、CPUコア114(第二の情報処理資源要素)が、入出力デバイス20との間における入出力データ送受信処理1140を実行する。そして、割り当て処理101は、CPUコア114に対して、入出力データ送受信処理1140を割り当てるとともに、CPUコア111乃至114のうち、入出力デバイス20に対するアクセス要求を含む処理の新たな割り当て先から、CPU114を除外する。
 即ち、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、入出力データ送受信処理1140を実行するCPUコア114に対して、ユーザアプリケーションを新たに割り当てないようにするので、入出力データ送受信処理が停止(消滅)することによって、入出力デバイス20に対するアクセス要求の処理が停止するという問題を回避することができる。
 また、本実施形態に係る情報処理装置10は、入出力データ送受信処理を実行するCPUコアを、CPUコア114に固定する。即ち、情報処理装置10は、CPUコア114を、入出力データ送受信処理を実行するための専用のCPUコアとして確保するので、入出力デバイス20に対するアクセス要求の処理が停止するという問題を、簡易な論理により回避することができる。尚、情報処理装置10は、入出力データ送受信処理を実行するCPUコアを、何れかのCPUコアに固定しなくてもよく、各CPUコアの情報処理状況に応じて、適切なCPUコアに入出力データ送受信処理を割り当てるようにしてもよい。
 また、本実施形態に係る情報処理装置10は、入出力デバイス20に対するアクセス要求に対する、入出力デバイス20からの応答の受信が完了したことを検出する検出処理102をさらに実行する。この場合、割り当て処理101は、検出処理102によって、入出力デバイス20からの応答の受信が完了したことが検出されたのち、CPUコア114に対する入出力データ送受信処理1140の割り当てを一旦解放する。
 例えば、上述したように、CPUコア114を、入出力データ送受信処理を実行するための専用のCPUコアとした場合、CPUコア114は、ユーザアプリケーションを実行するCPUコアとしては使用できなくなるので、情報処理資源の使用効率が低下する問題が生じる。この問題に対して、本実施形態に係る情報処理装置10は、上述した通り、入出力デバイス20からの応答の受信が完了することによって、入出力データ送受信処理1140を停止しても問題が無い状態になったときに、CPUコア114に対する入出力データ送受信処理1140の割り当てを一旦解放することができるので、情報処理資源の使用効率が低下する問題を回避することができる。
 尚、情報処理装置10は、検出処理102を実行しない、簡易な構成を備えてもよい。
 また、上述した本実施形態に係る情報処理装置10は、ユーザアプリケーションや入出力データ送受信処理等を割り当てる単位(情報処理資源要素)をCPUコアとしているが、情報処理資源要素はCPUコアに限定されない。情報処理資源要素は、例えば、CPUを複数備える情報処理装置におけるCPU、あるいは仮想マシンにおける処理の割り当て単位などでもよい。
 また、情報処理装置10が制御対象とする通信制御インタフェースは、PCI ExpressをEthernet上に仮想化したExpEtherに限定されない。情報処理装置10は、第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、第一の情報処理資源要素とは異なる第二の情報処理資源要素が、入出力デバイスとの間における入出力データ送受信処理を実行するような、ExpEther以外の通信制御インタフェースを制御対象としてもよい。
 また、本実施形態に係る割り当て処理101、検出処理102、及び、CPUコア間通信処理103が実現する機能は、CPU11がこれらの処理に関するプログラムを実行する構成以外の構成によっても実現可能である。情報処理装置10は、例えば、割り当て処理101、検出処理102、及び、CPUコア間通信処理103と同等の機能を実現するハードウェアである割り当て部、検出部、及び、CPUコア間通信部を備えてもよい。
 また、本実施形態に係る割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実現する、コンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体160を介して情報処理装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体160によって構成されると捉えることができる。
 <第2の実施形態>
 図3は、本願発明の第2の実施形態に係る入出力処理割り当て制御装置30の構成を示すブロック図である。
 本実施形態に係る入出力処理割り当て制御装置30は、割り当て部31を備えている。
 本実施形態では、情報処理装置40に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素41による入出力デバイス50に対するアクセス要求に応じて、第一の情報処理資源要素41とは異なる第二の情報処理資源要素42が、入出力デバイス50との間における入出力データ送受信処理420を実行する。
 割り当て部31は、第二の情報処理資源要素42に対して、入出力データ送受信処理420を割り当てるとともに、複数の情報処理資源要素のうち、入出力デバイス50に対するアクセス要求を含む処理の新たな割り当て先から、第二の情報処理資源要素42を除外する。
 本実施形態に係る入出力処理割り当て制御装置30は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、入出力処理割り当て制御装置30は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
 以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2018年5月18日に出願された日本出願特願2018-095886を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  入出力処理割り当て制御システム
 10  情報処理装置
 101  割り当て処理
 102  検出処理
 103  CPUコア間通信処理
 11  CPU
 111乃至114  CPUコア
 1110  ユーザアプリケーション
 1111  カーネル
 1112  デバイスドライバ
 1113  アクセスインターセプト処理
 1140  入出力データ送受信処理
 1141  カーネル
 1142  デバイスドライバ
 12  主記憶
 13  I/Oコントローラ
 14  I/Oカード
 15  入出力装置
 16  CD/DVDドライブ
 160  記録媒体
 20  入出力デバイス
 30  入出力処理割り当て制御装置
 31  割り当て部
 40  情報処理装置
 41  第一の情報処理資源要素
 42  第二の情報処理資源要素
 420  入出力データ送受信処理
 50  入出力デバイス

Claims (10)

  1.  情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
     前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段
     を備える入出力処理割り当て制御装置。
  2.  前記割り当て手段は、前記第二の情報処理資源要素を、前記複数の情報処理資源要素のうちの特定の情報処理資源要素に固定する、
     請求項1に記載の入出力処理割り当て制御装置。
  3.  前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する検出手段をさらに備え、
     前記割り当て手段は、前記検出手段によって、前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
     請求項1あるいは請求項2に記載の入出力処理割り当て制御装置。
  4.  前記検出手段は、前記入出力デバイスに対するアクセスが開始されてから、前記入出力デバイスに対するアクセスデータ量に基づく時間が経過したことをもって、前記入出力デバイスからの応答の受信が完了したことを検出する、
     請求項3に記載の入出力処理割り当て制御装置。
  5.  前記複数の情報処理資源要素は、CPU(Central Processing Unit)に含まれるコア、あるいはCPU、あるいは仮想マシンにおける処理の割り当て単位である、
     請求項1乃至請求項4のいずれか一項に記載の入出力処理割り当て制御装置。
  6.  前記入出力デバイスは、インタフェース仕様として、PCI(Peripheral Component Interconnect)エクスプレス及びイーサネットを用いる、
     請求項1乃至請求項5のいずれか一項に記載の入出力処理割り当て制御装置。
  7.  請求項1乃至請求項5のいずれか一項に記載の入出力処理割り当て制御装置と、
     前記第一及び第二の情報処理資源要素と、
     前記入出力デバイスと、
     を含む、入出力処理割り当て制御システム。
  8.  前記第一の情報処理資源要素は、前記入出力デバイスに対するアクセス要求を検出したのち、前記アクセス要求が指示する前記入出力データ送受信処理の実行を前記第二の情報処理資源要素に依頼し、
     前記第二の情報処理資源要素は、前記入出力デバイスとの間で送受信するデータに対するカプセル化処理及びデカプセル化処理を含む、前記入出力データ送受信処理を実行することによって、前記入出力デバイスから受信したデータを、前記第一の情報処理資源要素に入力する、
     請求項7に記載の入出力処理割り当て制御システム。
  9.  第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
     第二の情報処理装置によって、
      前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する
     入出力処理割り当て制御方法。
  10.  情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
     前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能
     をコンピュータに実現させるための入出力処理割り当て制御プログラムが格納された記録媒体。
PCT/JP2019/019153 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体 WO2019221131A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020519862A JP7047906B2 (ja) 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム
US17/055,381 US11321251B2 (en) 2018-05-18 2019-05-14 Input/output process allocation control device, input/output process allocation control method, and recording medium having input/output process allocation control program stored therein

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018095886 2018-05-18
JP2018-095886 2018-05-18

Publications (1)

Publication Number Publication Date
WO2019221131A1 true WO2019221131A1 (ja) 2019-11-21

Family

ID=68539678

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/019153 WO2019221131A1 (ja) 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体

Country Status (3)

Country Link
US (1) US11321251B2 (ja)
JP (1) JP7047906B2 (ja)
WO (1) WO2019221131A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4452064B2 (ja) * 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US8693560B2 (en) * 2009-01-08 2014-04-08 Sharp Kabushiki Kaisha Transmission apparatus, transmission method, communication system, and communication method
US20140188451A1 (en) * 2011-08-01 2014-07-03 Nec Corporation Distributed processing management server, distributed system and distributed processing management method
US10324883B2 (en) 2014-03-28 2019-06-18 Nec Corporation Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus
WO2015178211A1 (ja) * 2014-05-21 2015-11-26 ソニー株式会社 データ処理装置、及び、データ処理方法
CA2948600C (en) * 2014-05-21 2022-11-29 Sony Corporation Data processing device and method for decreasing the signal-to-noise power ratio per symbol for a selected bit error rate of a digital television broadcasting signal
JP6428649B2 (ja) * 2014-05-21 2018-11-28 ソニー株式会社 データ処理装置、及び、データ処理方法
JP6518087B2 (ja) 2015-03-09 2019-05-22 キヤノン株式会社 プログラム処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISOBE, HIRONORI ET AL.: "Prototyping of multi operating system environment for multi-core processor", IPSJ SIG TECHNICAL REPORT, 15 June 2009 (2009-06-15), pages 1 - 8, ISSN: 1884-0930 *

Also Published As

Publication number Publication date
US11321251B2 (en) 2022-05-03
JP7047906B2 (ja) 2022-04-05
JPWO2019221131A1 (ja) 2021-05-13
US20210216481A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US9619308B2 (en) Executing a kernel device driver as a user space process
KR101952795B1 (ko) 자원 프로세싱 방법, 운영체제, 및 장치
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
KR101635778B1 (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
JP5180373B2 (ja) 仮想化環境における割り込みメッセージ終了のレイジー処理
JP5737050B2 (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
JP5398726B2 (ja) セキュア・アプリケーションの区分実施可能化のための方法、システム、およびコンピュータ・プログラム
JP7280508B2 (ja) 情報処理装置、情報処理方法および仮想マシン接続管理プログラム
TWI588751B (zh) 透過基板管理控制器管理虛擬機器的電腦主機與方法
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
US9495172B2 (en) Method of controlling computer system and computer system
US10445126B2 (en) Preloading enhanced application startup
JP2012009013A (ja) 部分仮想化マシンに基づく統一格納装置
JP2014517419A (ja) ネットワークのセグメント化によるネイティブクラウドコンピューティング
GB2558163A (en) Dynamically assigning network addresses
KR102387922B1 (ko) 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템
KR101765723B1 (ko) 과립형 gpu 자원 스케줄러와 gpu 인지형 스케줄러 간의 상호작용 장치 및 방법
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
WO2011039887A1 (ja) 計算機装置
US20150381766A1 (en) Application transfer system, application transfer method, terminal, and program
WO2019221131A1 (ja) 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
CN114371908A (zh) 一种云应用程序运行方法和装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020519862

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19803983

Country of ref document: EP

Kind code of ref document: A1