Information processing device, information processing method and program

The information processing device allows direct control of unsupported physical devices through a virtual communication channel, enhancing virtual server functionality and performance.

JP2025135634AActive Publication Date: 2025-09-19NEC PLATFROMS LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024033464
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-06
Publication Date
2025-09-19
Estimated Expiration
2044-03-06

AI Technical Summary

Technical Problem

Existing virtual server systems cannot control physical devices that are not supported by the hypervisor, limiting the functionality of virtual servers.

Method used

An information processing device with a physical device driver that includes a virtual communication memory and a communication memory control unit, allowing direct control of unsupported physical devices through a virtual communication channel.

Benefits of technology

Enables control of physical devices not supported by the hypervisor from virtual servers, providing high-performance access comparable to direct control from a host server.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025135634000001_ABST
    Figure 2025135634000001_ABST
Patent Text Reader

Abstract

To provide an information processing device in which a physical device not supported by a hypervisor can be controlled from a virtual server.SOLUTION: An information processing device comprises a physical device driver which controls a physical device connected under the control of information processing device. The physical device driver comprises a memory for virtual communication, a memory control unit for communication and a physical device control unit which controls the physical device based on control information. The memory for virtual communication comprises a virtual memory which stores a virtual disk file for a virtual server constructed in the information processing device, and an internal virtual memory which is a memory area for communication of the physical device driver. The memory control unit for communication transmits the control information associated with the physical device driver to, and receives it from, the virtual server via the virtual disk file for the virtual server, and transmits the control information associated with the physical device driver to, and receives it from, the physical device control unit via the internal virtual memory.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to an information processing device, an information processing method, and a program. [Background technology]

[0002] Server virtualization technology is a technology for dividing a single information processing device into multiple virtual servers for use. With server virtualization technology, a virtual server construction environment is created by installing a hypervisor, which is software that provides the functionality to construct virtual servers, on the information processing device and installing a host OS that manages the virtual servers on the parent partition of the information processing device. Then, child partitions for the virtual servers are created on the virtual server construction environment of the information processing device, and a guest OS is installed on the child partition, allowing the child partition to operate as a virtual server.

[0003] These hypervisors only support standard virtual devices for virtual servers, so it is not possible to install device drivers that are not supported by the hypervisor on the virtual server and control physical devices directly from the virtual server.

[0004] For example, a virtual server system is disclosed in Patent Document 1. Cited Document 1 discloses that the virtual server system includes a partition machine provided in a server device for processing access requests from multiple virtual servers, the partition machine acquires target data for the access requests from the multiple virtual servers from a storage device, stores a portion of the target data that is common to the multiple virtual servers in a common data area, and stores a portion of the target data that is unique to the virtual server that made the access request in a unique data area. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2012-123556 Summary of the Invention [Problem to be solved by the invention]

[0006] The virtual server system described in Patent Document 1 discloses a technology for improving the processing of a partition machine, which is a virtual server implemented as an I / O processing system for accessing a virtualized storage device from a virtual server, and for improving the efficiency of the use of resources that are the target of I / O. Therefore, the technology described in Patent Document 1 does not enable a virtual server to control a physical device that is not supported by a hypervisor.

[0007] An object of the present disclosure is to provide an information processing device, an information processing method, and a program that solve the above-mentioned problems. [Means for solving the problem]

[0008] An information processing device according to one aspect of the present disclosure includes a physical device driver that controls a physical device connected to the information processing device, the physical device driver including a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device using control information, the virtual communication memory including a virtual memory that stores a virtual disk file for a virtual server constructed in the information processing device, and an internal virtual memory that is a communication memory area for the physical device driver, and the communication memory control unit transmits and receives control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server, and transmits and receives control information related to the physical device driver to and from the physical device control unit via the internal virtual memory.

[0009] One aspect of the present disclosure is an information processing method applied to an information processing apparatus including a physical device driver that controls a physical device connected to the information processing apparatus, the physical device driver including a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device using control information, the virtual communication memory including a virtual memory that stores a virtual disk file for a virtual server constructed on the information processing apparatus, and an internal virtual memory that is a communication memory area for the physical device driver. In the information processing method, the communication memory control unit transmits and receives control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server, and transmits and receives control information related to the physical device driver to and from the physical device control unit via the internal virtual memory.

[0010] One aspect of the present disclosure is a program applied to a computer of an information processing device, the computer including a physical device driver that controls a physical device connected to the information processing device, the physical device driver including a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device using control information, the virtual communication memory including a virtual memory that stores a virtual disk file for a virtual server constructed on the information processing device, and an internal virtual memory that is a communication memory area for the physical device driver. The program causes the computer of the information processing device to function such that the communication memory control unit transmits and receives control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server, and transmits and receives control information related to the physical device driver to and from the physical device control unit via the internal virtual memory. [Effects of the Invention]

[0011] According to the above aspect, even a physical device that is not supported by the hypervisor can be controlled from the virtual server. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 is a diagram illustrating a configuration of an information processing device according to an embodiment of the present disclosure. [Figure 2] FIG. 2 is a diagram showing functional blocks in an inter-virtual server communication control unit for allowing a physical device driver to communicate directly with application software on a virtual server. [Figure 3] 10 is a data table showing an example of commands and destination information according to an embodiment of the present invention. [Figure 4] 10 is a data table showing an example of addresses in a communication memory according to an embodiment of the present invention. [Figure 5] 10 is a data table showing an example of logical block addresses (LBAs) of a communication memory and a communication memory control unit 300 of a virtual server according to an embodiment of the present invention. [Figure 6] 10 is a data table showing an example of identification data managed in a communication memory storage unit according to an embodiment of the present invention. [Figure 7] FIG. 10 is a diagram showing an example of communication packet data written to virtual communication memory when an application or physical device driver running on a virtual server requests transmission or reception of communication data in communication between virtual servers in one embodiment of the present invention. [Figure 8] FIG. 10 is a diagram showing an example of a data block management table relating to the real memory allocation status of the virtual communication memory of the virtual server according to one embodiment of the present invention. [Figure 9] 1 is a flowchart showing an outline of input / output processing for a virtual communication memory of an information processing device according to an embodiment of the present invention. [Figure 10] 10 is a flowchart showing a normal file access input / output process for a virtual communication memory of an information processing apparatus according to an embodiment of the present invention. [Figure 11] 11 is a flowchart showing processing for a real memory allocated address in normal file access input / output processing for the virtual communication memory shown in FIG. [Figure 12]2 is a diagram showing an example of a data structure of a communication system memory of an information processing device according to an embodiment of the present invention; FIG. [Figure 13] FIG. 10 is a diagram illustrating an operation from when a first application software on a first virtual server causes a physical device to execute a command until when the execution result is received. [Figure 14] FIG. 1 is a diagram illustrating a configuration example of an information processing device according to an embodiment of the present disclosure. [Figure 15] FIG. 2 is a block diagram illustrating an example of a hardware configuration of an information processing device. DETAILED DESCRIPTION OF THE INVENTION

[0013] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In all drawings, the same or corresponding components are designated by the same reference numerals, and common descriptions will be omitted.

[0014] FIG. 1 is a diagram illustrating a configuration of an information processing device 10 according to an embodiment of the present disclosure. As illustrated in FIG. 1, the information processing device 10 includes a host server 40, a hypervisor 30, and a first virtual server 500 serving as a guest server. The hypervisor 30 is software that provides a function for constructing a virtual server. The host server 40 serves as a host for the first virtual server 500. The host server 40 is configured by installing the hypervisor 30 on the information processing device 10 and installing a host operating system (OS) that manages the virtual server in a parent partition of the storage area of ​​the information processing device 10. The first virtual server 500 creates a child partition for the virtual server in the virtual server construction environment of the information processing device 10 and installs a guest OS in the child partition, thereby operating the child partition as a virtual server. The physical device 20 is a device connected to the information processing device 10 for use, and may be, for example, a standard device such as a hard disk or a solid-state drive (SDD), or a special physical device not supported by the hypervisor 30.

[0015] The host server 40 includes a physical device driver 50 installed in the host OS to control the physical device 20 connected to the information processing device 10. The first virtual server 500 includes a first application software 510 and a first communication memory 520. The physical device driver 50 of the host server 40 includes an inter-virtual server communication control unit 120 and a physical device control unit 130. The inter-virtual server communication control unit 120 realizes a function of communicating with the first application software 510 on the first virtual server 500 via a communication virtual disk indicated by the first communication memory 520. The inter-virtual server communication control unit 120 also realizes a function of exchanging communication data with the first application software 510 between the first application software 510 and the physical device control unit 130.

[0016] The first communication memory 520 of the first virtual server 500 is a communication virtual disk virtually provided in the first virtual server 500. The first communication memory 520 is configured by creating a virtual disk file in a RAM disk configured by the inter-virtual server communication control unit 120 using standard functions of the host OS and hypervisor 30 and mounting the virtual disk file on the first virtual server 500. When the first virtual server 500 transmits or receives driver commands or data for the physical device driver 50, the first application software 510 notifies the inter-virtual server communication control unit 120 of a transmission / reception command through the first communication memory 520.

[0017] The physical device control unit 130 provided in the physical device driver 50 in the host server 40 has a function of controlling the physical device 20 connected to the information processing apparatus 10. The physical device control unit 130 receives commands for the physical device driver 50 sent from the first application software 510 to the physical device driver 50 via the inter-virtual server communication control unit 120, etc. The physical device control unit 130 also generates the received commands for the physical device driver 50 as commands for the physical device 20 and issues them to the physical device 20. After receiving the execution results of the commands from the physical device 20, the physical device control unit 130 reports the execution results to the first application software 510 via the inter-virtual server communication control unit 120, etc. In addition, the physical device control unit 130 also transmits and receives data to and from the physical device 20 to and from the first application software 510 via the inter-virtual server communication control unit 120, etc.

[0018] The above configuration enables direct access to a physical device 20 that is not supported by the hypervisor from the first application software 510 on the first virtual server 500. More specific details will be explained below.

[0019] For simplicity of explanation, this disclosure shows a configuration in which a single virtual server, the first virtual server 500, and a physical device driver 50 installed in the host OS communicate directly to access the physical device 20. However, by adding a virtual server definition, multiple virtual servers can also communicate directly with the physical device driver 50 to share one physical device 20.

[0020] 2 shows functional blocks in the inter-virtual server communication control unit 120, which allows the physical device driver 50 to communicate directly with application software on the virtual servers. Fig. 2 shows a more detailed physical and logical configuration of the physical device driver 50 shown in Fig. 1, as well as connections with the physical device 20 and the first virtual server 500.

[0021] The physical device driver 50 includes an inter-virtual server communication control unit 120, a physical device control unit 130, and a driver control unit 100. The inter-virtual server communication control unit 120 includes a communication system memory 200, a communication memory control unit 300, and a virtual communication memory 400.

[0022] The driver control unit 100 of the physical device driver 50 mediates and controls communications between the inter-virtual server communication control unit 120 and the physical device control unit 130, and transmits and receives commands and data for the physical device driver 50, as well as status and data resulting from command execution, to and from the physical device control unit 130. The communication system memory 200 includes a communication memory storage unit 210, a communication data storage unit 220, and a data block management unit 230.

[0023] The communication memory storage unit 210 stores in advance the data tables shown in Figures 3 to 5, which will be described later. The communication memory storage unit 210 also stores commands for various processes (hereinafter referred to as "instruction data"), and information such as an identification ID and a communication ID (hereinafter referred to as "identification data") in the data table shown in Figure 6, which will be described later. The communication data storage unit 220 stores actual data communicated between the first virtual server 500 and the physical device driver 50, more specifically, the physical device control unit 130 of the physical device driver 50. The data block management unit 230 stores the data block management table shown in Figure 8, which will be described later.

[0024] The communication memory control unit 300 controls the communication system memory 200 and the virtual communication memory 400, and processes operations of writing to a transmission file and reading a reception file executed on the first communication memory 520 as communication operations from the first virtual server 500. The communication memory control unit 300 also controls the communication system memory 200 and the virtual communication memory 400, and processes control of the physical device driver 50 by the first virtual server 500 as virtual communication operations to the physical device driver 50. The communication memory control unit 300 also generates the virtual communication memory 400.

[0025] The virtual communication memory 400 is memory configured as a RAM disk that stores virtual disk files for virtual servers. By using the standard functions of the host OS and hypervisor to create a virtual disk file in the virtual communication memory 400 and mount it on the virtual server, it is configured as communication memory, a virtual disk that can be directly accessed from application software on the virtual server, and is used as memory for communicating with application software on the virtual server. This virtual communication memory 400 includes a first virtual memory 410 and an internal virtual memory 420.

[0026] The first virtual memory 410 represents a virtual disk file for the first communication memory 520 created in the virtual communication memory 400, that is, a memory area for communicating with the first virtual server 500. The dashed lines connecting the functional blocks in the figure indicate the correspondence of the memory areas, and the solid lines indicate the actual data paths.

[0027] The internal virtual memory 420 is a memory area for communication similar to the first virtual memory 410, but is used as a communication memory area for the physical device driver 50, not as a memory area for a virtual server. Note that the memory area in which the internal virtual memory 420 is located is managed as a memory area that cannot be used as a RAM disk by the host OS, and is therefore excluded from the memory areas in which virtual disk files are created.

[0028] The format of the first virtual memory 410 may be any file format that can be used as a virtual disk file, such as VHD or VHDX. The format of the internal virtual memory 420 may be freely determined because it is created in an area excluded from the memory area where virtual disk files are created. The first virtual memory 410 is associated with the first communication memory 520. The internal virtual memory 420 is used as a communication memory for the physical device driver 50.

[0029] As described above, the first virtual server 500 includes the first application software 510 and the first communication memory 520. When the first virtual server 500 transmits and receives driver commands, data, etc. for the physical device driver 50, the first application software 510 notifies the communication memory control unit 300 of an instruction to transmit and receive the driver commands, data, etc. via the first communication memory 520.

[0030] The first communication memory 520 communicates by notifying the communication memory control unit 300 of a command to send and receive data to the physical device driver 50, which command has been received from the first application software 510. The first communication memory 520 has an address that corresponds to that of the first virtual memory 410.

[0031] FIG. 3 is a data table showing an example of commands and destination information according to an embodiment of the present invention. The communication memory storage unit 210 pre-stores instruction data for initializing write settings, instruction data for initializing read settings, and instruction data for transmission. The communication memory storage unit 210 also stores destination information indicating the destination and sender of communication. As an example, the data table in FIG. 3 stores "INIT_W," "INIT_R," and "TX" as instruction data items, and "AP1" and "PDD" (Physical Device Driver) as destination information items. Note that the data table in FIG. 3 is an example of a data format according to an embodiment of the present invention and may be modified as appropriate to suit the communication method used in the information processing device 10. Here, "AP1" represents the first virtual server 500, and "PDD" represents the physical device driver 50.

[0032] Fig. 4 is a data table showing an example of addresses in a communication memory according to one embodiment of the present invention. The sending addresses and receiving addresses shown in the data table in Fig. 4 are addresses used when an application on a virtual server (first application software 510 of first virtual server 500) issues an input / output (IO) instruction to the communication memory (first communication memory 520) and writes the initial setting command (INIT_W or INIT_R) shown in Fig. 3 to perform initial setting for communication. The application on the virtual server stores in advance the addresses to be used when it performs initial setting for communication by itself.

[0033] In the data table of Figure 4, as an example of addresses when each application or physical device driver 50 on the virtual server performs initial communication settings, a sending address of "0xXXXXXXX1" and a receiving address of "0xYYYYYYY1" are set for the first communication memory 520, and a sending address of "0xXXXXXXX2" and a receiving address of "0xYYYYYYY2" are set for the physical device driver 50.

[0034] These sending addresses and receiving addresses are logical block addresses (LBA) when accessing data in the first communication memory 520 and the internal virtual memory 420. Because the first communication memory 520 is the first virtual memory 410 that is accessible from the first virtual server 510, a data block in the first communication memory 520 indicated by an LBA for the first communication memory 520 is a data block in the first virtual memory 410 indicated by the same LBA value. Note that a logical block address (LBA) is a method of specifying an address that indicates the location of data in a storage device. The logical block address (LBA) represents a block offset from the beginning of the block address space that includes the logical block.

[0035] FIG. 5 is a data table showing an example of logical block addresses (LBAs) of the virtual communication memory 400 used in communication control by the communication memory control unit 300 according to one embodiment of the present invention.

[0036] The correspondence between the virtual communication memory 400 and the communication memory of the virtual server is realized by setting the first virtual memory 410 in the virtual communication memory 400 as a virtual disk volume of the first virtual server 500 and using the virtual disk volume as the first communication memory 520. Furthermore, the internal virtual memory 420 in the virtual communication memory 400 is set as a communication memory area for the physical device driver 50. As a result, the logical block addresses used for input / output (I / O) in the first communication memory 520 are converted into logical block addresses of the virtual communication memory 400 in which the first virtual memory 410 is allocated, by standard functions of the operating system (OS) running on the virtual server and the mechanism (such as a hypervisor program) that provides the operating environment of the virtual server. In other words, when the first application software 510 writes to or reads from a file created in the first communication memory 520, the logical block addresses received by the communication memory control unit 300 in an input / output request packet (IRP) become logical block addresses of the virtual communication memory 400 after the above-described conversion.

[0037] 5 shows "LBA_AP1_W," "LBA_AP1_R," "LBA_PDD_W," and "LBA_PDD_R" as examples of values ​​when the sending address and receiving address of the communication memory (memory area for communication between the first communication memory 520 and the physical device driver 50) shown in the data table of Fig. 4 are converted to generate the logical block address (LBA) of the virtual communication memory 400. The values ​​of "LBA_AP1_W" and "LBA_AP1_R" are LBA values ​​used when processing I / O from the application software 510 to the first communication memory 520 as communication with the physical device driver 50, and are written and stored in the data table of Fig. 6, which will be described later, when an application on the virtual server executes initial setting processing for communication.

[0038] The values ​​of "LBA_PDD_W" and "LBA_PDD_R" are the LBAs of the virtual communication memory 400 that the physical device driver 50 accesses when communicating with the first communication memory 520 via the first virtual memory 410, and more specifically, are the LBAs to which the internal virtual memory 420 is allocated. Since the virtual communication memory 400 is a memory that the communication memory control unit 300 can directly access, these LBA values ​​are set in the initial setting process of the physical device driver 50.

[0039] 6 is a data table showing an example of identification data managed by the communication memory storage unit 210 according to one embodiment of the present invention. In this embodiment, the data table of identification data managed by the communication memory storage unit 210 (hereinafter referred to as the "communication management table") describes five data items consisting of an identification ID, a communication ID, status information, a saved data flag, and a data saved address.

[0040] In the communications management table, logical block addresses (LBAs) managed by the communications memory control unit 300 are registered as identification IDs. That is, the identification IDs in the communications management table of Fig. 6 are registered in association with the sending addresses and receiving addresses of the communications memory described in the data table of Fig. 5. Destination information is registered as the communications ID. That is, the communications IDs are registered in association with the destination information (AP1, PDD) in the data table of Fig. 3.

[0041] In this embodiment, one of six types of status information, "initialization in progress," "idle," "requesting transmission," "waiting for transmission completion," "requesting reception," and "waiting for reception completion," is registered as a status in the communications management table. The status information is registered by the communications memory control unit 300 in accordance with the processing of the communications memory control unit 300. Before the initial configuration, there is no management information based on the identification ID, and therefore the status of the communications management table is shown as "initial state."

[0042] In the communication management table, a saved data flag is registered depending on whether or not there is actual data saved by the communication memory control unit 300. The types of saved data flags are "valid" and "invalid", and if saved data exists, "valid" is registered as the saved data flag, and if saved data does not exist, "invalid" is registered as the saved data flag.

[0043] In the communications management table, the starting address of a storage area for temporarily storing communications data is registered as the saved data address by the communications memory control unit 300 at the time of initialization. The saved data flag and data saved address are stored in the entry for the reception ID in the communications management table. In this embodiment, of the four lines of information described in the communications management table of Fig. 6, the even-numbered entries are used as entries for storing the reception ID.

[0044] 7 shows an example of communication packet data written to the virtual communication memory 400 when an application running on a virtual server or a physical device driver 50 requests transmission and reception of communication data during communication between the virtual servers according to one embodiment of the present invention. FIG. 7 shows, as an example, communication packet data between a virtual server and a physical device driver 50 when a first application software 510 running on the first virtual server 500 requests transmission of commands or data to the physical device driver 50. In this case, the transmission address in FIG. 7 is the transmission address "0xXXXXXXX1" of the first communication memory 520 shown in FIG. 4. The data section of the inter-virtual server communication packet contains communication data. The header section contains the transmission command "TX," destination ID "PDD," and source ID "AP1" shown in FIG. 3, and the data length of the communication data written in the data section is set as the valid data length.

[0045] Fig. 8 shows an example of a data block management table relating to the real memory allocation status of the virtual communication memory 400 of a virtual server according to one embodiment of the present invention. The data block management table of Fig. 8 is implemented in the data block management unit 230 of the communication system memory 200 of Fig. 1, and the data block management data is updated by the communication memory control unit 300. The data block management table registers four items: "cluster number," "real memory allocation flag," "data pattern," and "real memory address."

[0046] In the data block management table, the cluster numbers indicate the numbers assigned to each cluster in the order they are assigned when the entire virtual memory area allocated to the virtual communication memory 400 is divided into cluster capacity units. Note that the cluster capacity is defined as a multiple of the logical block capacity, and in this embodiment, the logical block capacity is 512 bytes and the cluster capacity is 64 kilobytes (=65536 bytes=512 bytes×128).

[0047] In the data block management table, the real memory allocation flag indicates whether the address value stored in the real memory address (described later) is valid or invalid. In this embodiment, one byte is allocated as the real memory allocation flag, with valid = 0x01 and invalid = 0x00, and the initial value is invalid (0x00).

[0048] In the data block management table, the data pattern indicates the data pattern that is considered to be written to each cluster corresponding to the cluster number. The value of the data pattern is used when a read request is executed from the cluster with the corresponding cluster number when the real memory allocation flag is disabled. In this embodiment, one byte is allocated as the data pattern, and the initial value is "0x00".

[0049] In the data block management table, the real memory address indicates the address of the real memory allocated to each cluster corresponding to the cluster number. The real memory address is set to the address value of the memory buffer reserved for storing the data of the corresponding cluster number, and the real memory allocation flag is set to enabled.

[0050] Next, input / output (I / O) processing for the virtual communication memory 400 in the information processing device 10 according to one embodiment of the present invention will be described in detail with reference to Figures 9 to 11. When an input / output (I / O) instruction is issued from the first application software 510 of the first virtual server 500 to the virtual communication memory 400, an input / output (I / O) processing request is sent to the communication memory control unit 300 by an input / output request packet (IRP). This input / output request packet stores information such as a logical block address (LBA) associated with the virtual communication memory 400 and a data buffer address for input / output (I / O) processing, as exemplified in the data table of Figure 5. The data buffer address is a memory buffer address where write data is stored if the I / O request is a write instruction, and is a memory buffer address where read data is stored if the I / O request is a read instruction.

[0051] 9 is a flowchart showing an outline of input / output processing for the virtual communication memory 400 of the information processing device 10 according to one embodiment of the present invention (steps S100 to S300). First, the communication memory control unit 300 receives information in an input / output request packet (IRP) and determines whether the input / output request is a processing request for a communication command (S100). Specifically, if the processing request command indicated by the input / output request is a read instruction, it is determined to be a communication command when the logical block address matches the read identification ID stored in the communication management table of FIG. 6. On the other hand, if the processing request command is a write request, it is also determined to be a communication command when the logical block address matches the write identification ID stored in the communication management table of FIG. 6 and when the contents of the write data are the write initial setting command "INIT_W" or the read initial setting command "INIT_R" shown in FIG. 3.

[0052] In step S100, if the communication memory control unit 300 determines that the command is a communication command, communication command processing is performed (S300), and if it determines that the command is not a communication command, normal file access input / output (I / O) processing is performed for the virtual communication memory 400 (S200). The communication command processing (S300) is similar to the prior art, and is composed of, for example, initial setting processing, transmission processing, and reception processing in communication between virtual servers, and is similar to the processing steps shown in Figures 8 to 10 of the above-mentioned Patent Document 1, so a detailed description thereof will be omitted.

[0053] Next, the operation of the normal file access input / output (I / O) processing (S200) for the virtual communication memory 400 will be described in detail with reference to Figures 10 and 11. Figure 10 is a flowchart showing the normal file access input / output processing for the virtual communication memory 400 of the information processing device 10 according to one embodiment of the present invention (steps S201 to S211). This shows the processing steps that the communication memory control unit 300 executes when it determines that the command is not for communication.

[0054] The communication memory control unit 300 checks the logical block address (LBA), data count, and address of the input / output memory buffer indicated in the input / output (I / O) processing request of the input / output request packet (IRP), stores the number of data requested to be processed, the starting LBA, and the starting buffer address, and calculates and stores the cluster number corresponding to the starting LBA (S201).

[0055] The cluster number is a number for referencing the data block management table (FIG. 8) that manages data blocks in the virtual communication memory 400. In this embodiment, the logical block capacity is 512 bytes and the cluster capacity is 64 kilobytes (=65536 bytes=512 bytes×128), so the cluster number is the value obtained by dividing the start LBA by 128 and discarding the decimal point.

[0056] Next, the real memory allocation flag in the data block management table (FIG. 8) is checked using the cluster number (S202). If it is determined in step S202 that the cluster number indicates a cluster to which real memory has been allocated, the communications memory control unit 300 executes processing for the real memory allocated address shown in FIG. 11, which will be described later. If it is determined in step S202 that the cluster number does not indicate a cluster to which real memory has been allocated, the communications memory control unit 300 determines whether the input / output processing request is a read command (S203).

[0057] If it is determined in step S203 that the command is a read command, the communications memory control unit 300 regards the data pattern described in the data block management table (FIG. 8) as having been written to the cluster, and transfers the data to the I / O issuer (S207). Specifically, the relative logical block address from which reading within the cluster begins and the number of data to be read are calculated using the cluster number, start LBA, and number of data requested for processing, and the data pattern of the cluster for the number of data to be read is written to the start buffer address. Thereafter, step S209, which will be described later, is executed.

[0058] If it is determined in step S203 that the command is not a read command (i.e., a write command), the communications memory control unit 300 prepares a temporary cluster buffer and writes the write data specified by the input / output request into the temporary cluster buffer (S204). Specifically, if the valid flag of the temporary cluster buffer is reset, a temporary cluster buffer is created by allocating real memory with the size of the cluster capacity and the flag is enabled, and then the relative logical block address from which writing starts within the cluster and the number of write processing data are calculated using the cluster number, start LBA, and number of processing request data, and the write data for the number of processing data is read from the start buffer address and written from the relative block address of the temporary cluster buffer.

[0059] The data written to the temporary cluster buffer in step S204 is checked, and the communication memory control unit 300 checks whether all the written data has the same data pattern (S205). If it is determined in step S205 that all the written data has the same data pattern, it is assumed that data of the same data pattern has also been written to unwritten areas in the temporary cluster buffer, and the data pattern is set in the data block management table of the cluster (S208). Then, step S209, which will be described later, is executed.

[0060] If it is determined in step S205 that the write data do not all have the same data pattern, the address of the temporary cluster buffer is stored in the data block management table, and the real memory allocation flag (or real memory reservation flag) is enabled (S206). Specifically, data is written to an unwritten area in the temporary cluster buffer using the data pattern described in the data block management table (FIG. 8) and all the data in the temporary cluster buffer is confirmed, and then the address of the temporary cluster buffer is stored as a real memory address, the real memory allocation flag is set to enabled, and the valid flag of the temporary cluster buffer is reset.

[0061] When processing for one cluster is completed, the communications memory control unit 300 calculates and stores the remaining number of data items to be processed, the next start LBA to be processed, the start buffer address, and the cluster number (S209). Specifically, the communications memory control unit 300 calculates the remaining number of data items to be processed using the number of data items to be processed and updates the number of data items to be processed. If the updated number of data items to be processed is not zero, the communications memory control unit 300 updates the start LBA and start buffer address using the number of data items to be processed, and adds 1 to the cluster address to update it, in order to continue processing the next cluster (S209).

[0062] If the number of processed data items updated in step S209 is not zero, the process branches to step S202 via step S210 to execute input / output processing in the next cluster. On the other hand, if it is determined in step S210 that the number of processed data items is zero, the communication memory control unit 300 reports completion to the I / O request source (S211) and terminates the normal file access input / output processing (FIG. 10).

[0063] Fig. 11 is a flowchart showing the processing for a real memory allocated address in the normal file access input / output processing for the virtual communication memory 400 shown in Fig. 10 (steps S220 to S222). In step S202 of Fig. 10, if it is determined that the cluster number calculated in step S201 indicates a real memory allocated cluster, the communication memory control unit 300 determines whether the input / output request is a read command (S220). If it is determined in step S220 that the input / output request is a read command, the communication memory control unit 300 reads data from the memory buffer indicated by the real memory address stored in the data block management table (Fig. 8) and transfers it to the I / O issuer (S222).

[0064] Specifically, the relative logical block address from which to start reading within the cluster and the number of data to be read are calculated using the cluster number, the start LBA, and the number of data requested for processing. Next, data for the number of data to be processed is read from the relative logical address of the memory buffer indicated by the real memory address stored in the data block management table, and written to the start buffer address.

[0065] If it is determined in step S220 that the command is not a read command (a write command), the communications memory control unit 300 writes the data from the I / O issuer to the memory buffer indicated by the real memory address stored in the data block management table (S221). Specifically, the relative logical address from which writing starts within the cluster and the number of data items to be written are calculated using the cluster number, the start LBA, and the number of data items requested for processing. Next, data for the number of data items to be processed is read from the start buffer address and written from the relative logical block address of the memory buffer indicated by the real memory address stored in the data block management table.

[0066] Next, a data structure 1200 of the communication system memory 200 of the information processing device 10 according to an embodiment of the present invention will be described with reference to FIG. 12. The data structure 1200 is composed of three areas 1210, 1220, and 1230, and corresponds to the communication memory storage unit 210, communication data storage unit 220, and data block management unit 230 shown in FIG. 1. The first area 1210 stores the correspondence between commands (such as INIT_W and INIT_R) and communication destination / source IDs (application AP1 of the first virtual server, physical device driver PDD) as shown in FIG. 3. The second area 1220 stores actual data communicated between virtual servers. The third area 1230 stores a data block management table as shown in FIG. 8, which is composed of cluster numbers, real memory allocation flags (valid / invalid), data patterns, and real memory addresses.

[0067] Next, the operation from when the first application software 510 on the first virtual server 500 causes the physical device 20 to execute a command until when the execution result is received will be described with reference to FIG.

[0068] The first application software 510 causes the physical device 20 to execute a command. This is done by the first application software 510 writing driver commands and data for the physical device driver 50 to a transmission file stored in the first communication memory 520, thereby transmitting the data to the inter-virtual server communication control unit 120 (step S10). After writing to the transmission file stored in the first communication memory 520, the first application software 510 starts reading the reception file stored in the first communication memory 520 and waits for the result of command execution by the physical device driver 50 to be returned from the inter-virtual server communication control unit 120.

[0069] The communication memory control unit 300 of the inter-virtual server communication control unit 120 receives control information for the physical device driver 50 by writing commands and data, which are control information for controlling the physical device driver 50, to the aforementioned transmission file. Furthermore, the communication memory control unit 300 writes the received control information for the physical device driver 50 to the internal virtual memory 420, thereby transmitting the control information to the physical device control unit 130 (step S20).

[0070] The physical device control unit 130 of the physical device driver 50 receives the control information written to the internal virtual memory 420 via the communication memory control unit 300 of the inter-virtual server communication control unit 120 and the driver control unit 100. The physical device control unit 130 also generates commands for the physical device 20 from the commands and data for the physical device driver 50 and issues them to the physical device 20 (step S30).

[0071] When the command execution is completed, the physical device 20 transmits the command execution results and data from the physical device 20 to the physical device control unit 130 of the physical device driver 50 (step S40).

[0072] The physical device control unit 130 sends the received command execution results and data from the physical device 20 to the inter-virtual server communication control unit 120 via the driver control unit 100. At this time, the communication memory control unit 300 of the inter-virtual server communication control unit 120 processes the command execution results and control information, which are the data, from the physical device control unit 130 as virtual communication within the physical device driver 50, and writes the command execution results and data to the internal virtual memory 420. In addition, the communication memory control unit 300 writes the received control information from the physical device control unit 130 to a receiving file in the first virtual memory 410 and makes the receiving file readable, thereby transmitting the control information from the physical device driver 50 to the first virtual server 500 (step S50). Note that making the receiving file in the first virtual memory 410 readable is equivalent to making the receiving file in the first communication memory 520, which is a virtual memory driver, readable.

[0073] When the receiving file on the first communication memory 520 becomes readable, the first application software 510, which has been waiting to read the receiving file, completes reading the data of the receiving file and receives the status and data of the execution result of the driver command sent to the physical device driver 50 (step S60). This allows the first application software 510 to receive the command execution result and data from the physical device 20.

[0074] As described above, the information processing device 10 of the present disclosure provides a means for accessing physical devices in a virtual machine such as the virtual server described above, thereby enabling direct control of physical devices not supported by a hypervisor, which was previously impossible from application software on a virtual machine, through a simple interface such as writing and reading files to a communication virtual disk.

[0075] Furthermore, when using a physical device that is not supported by the hypervisor from application software on a virtual machine such as the virtual server described above, there is no need to go through a complex control process that uses standard network communication functions, so it becomes possible to use a physical device from application software on a virtual machine with the same high performance as when using the physical device from application software that runs outside the virtual environment on an information processing device such as a host server.

[0076] As described above, this disclosure makes it possible to build highly functional and high-performance control systems using specialized physical devices, something that was not possible with currently widely used virtual servers using hypervisors. This makes it possible to take advantage of the features of virtual servers, such as easy system duplication, resource expansion, version management, and backup, to streamline development work for control systems, etc. Furthermore, the operational management of developed systems can also be made more efficient by utilizing the operational functions of virtual servers.

[0077] 14 is a diagram illustrating an example configuration of an information processing device 10 according to an embodiment of the present disclosure. The information processing device 10 includes a physical device driver 50 that controls a physical device connected to the information processing device 10. The physical device driver 50 includes a virtual communication memory 400, a communication memory control unit 300, and a physical device control unit 130 that controls the physical device using control information. The virtual communication memory 400 includes a virtual memory 410 that stores virtual disk files for virtual servers configured in the information processing device 10, and an internal virtual memory 420 that serves as a communication memory area for the physical device driver 50. The communication memory control unit 300 transmits and receives control information related to the physical device driver 50 to and from the virtual server via the virtual disk files for the virtual server, and transmits and receives control information related to the physical device driver 50 to and from the physical device control unit 130 via the internal virtual memory 420.

[0078] FIG. 15 is a block diagram showing an example of the hardware configuration of an information processing device 10. The information processing device 10 includes a CPU 61, a RAM (Random Access Memory) 62, a nonvolatile memory 63 such as a ROM (Read Only Memory), and a storage device 64. The nonvolatile memory 63 and the storage device 64 store programs for implementing the functions of the hypervisor 30, host OS, guest OS, and physical device driver 50 of the information processing device 10. The RAM 62 is used as a work area for temporarily storing data used by the CPU 61 and other devices during operation. The information processing device 10 also includes a connection port 65 for connecting a physical device 20. Input / output devices such as a keyboard, mouse, and display device may be connected to the connection port 65. These devices are connected via a bus or the like. The nonvolatile memory 63 may include an EEPROM (Electrically Erasable Programmable Read-Only Memory) or the like, and the storage device 64 may include a hard disk, SSD, or the like, and the computer programs for implementing the functions of the information processing device 10 may be updated by these devices.

[0079] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate.

[0080] Some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0081] (Appendix 1) a physical device driver that controls a physical device connected to an information processing device; The physical device driver a virtual communication memory; a communication memory control unit; a physical device control unit that controls the physical device using control information; Equipped with The virtual communication memory includes: a virtual memory for storing virtual disk files for a virtual server constructed in the information processing device; an internal virtual memory that is a communication memory area for the physical device driver; Equipped with The communication memory control unit transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; transmitting and receiving control information related to the physical device driver to and from the physical device control unit via the internal virtual memory; Information processing device.

[0082] (Appendix 2) the virtual disk file includes a file for transmission; The communication memory control unit receiving the control information for the physical device driver by writing the control information for the physical device driver to the transmission file; the received control information for the physical device driver is written to the internal virtual memory, thereby transmitting the control information to the physical device control unit. 2. The information processing device according to claim 1.

[0083] (Appendix 3) the virtual disk file includes a receiving file; The communication memory control unit writing the control information from the physical device control unit into the internal virtual memory, thereby receiving the control information from the physical device control unit; writing the control information received from the physical device control unit to the receiving file, and making the receiving file readable, thereby transmitting the control information from the physical device driver to the virtual server; 10. The information processing device according to claim 1 or 2.

[0084] (Appendix 4) 4. The information processing device according to claim 1, wherein the internal virtual memory is managed as a memory area that cannot be used as a disk by a host OS, and is thereby excluded from memory areas for creating the virtual disk file.

[0085] (Appendix 5) the information processing device includes the virtual server, the virtual memory is a communication memory logically mounted on the virtual server, The virtual disk file is logically provided in the communication memory. 5. An information processing device according to any one of appendices 1 to 4.

[0086] (Appendix 6) The virtual server includes application software, the application software controls the physical device driver by reading and writing control information related to the physical device driver from and to the virtual disk file provided in the communication memory; 6. The information processing device according to claim 5.

[0087] (Appendix 7) the control information for the physical device driver is a command or data for the physical device driver; The control information from the physical device driver is a status or data of a result of executing a command from the physical device driver. 7. An information processing device according to any one of appendices 1 to 6.

[0088] (Appendix 8) The physical device is a device that is not supported by a hypervisor. 8. An information processing device according to any one of appendices 1 to 7.

[0089] (Appendix 11) 1. An information processing method applied to an information processing device comprising a physical device driver that controls a physical device connected to the information processing device, the physical device driver comprising a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device with control information, the virtual communication memory comprising a virtual memory that stores virtual disk files for a virtual server constructed in the information processing device, and an internal virtual memory that is a communication memory area of ​​the physical device driver, the communication memory control unit comprising: transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; Control information relating to the physical device driver is transmitted to and received from the physical device control unit via the internal virtual memory. Information processing methods.

[0090] (Appendix 12) the virtual disk file includes a file for transmission; The communication memory control unit receiving the control information for the physical device driver by writing the control information for the physical device driver to the transmission file; the received control information for the physical device driver is written to the internal virtual memory, thereby transmitting the control information to the physical device control unit. 12. The information processing method according to claim 11.

[0091] (Appendix 13) the virtual disk file includes a receiving file; The communication memory control unit writing the control information from the physical device control unit into the internal virtual memory, thereby receiving the control information from the physical device control unit; writing the control information received from the physical device control unit to the receiving file, and making the receiving file readable, thereby transmitting the control information from the physical device driver to the virtual server; 13. The information processing method according to claim 11 or 12.

[0092] (Appendix 14) The information processing method according to any one of appendices 11 to 13, wherein the internal virtual memory is managed as a memory area that cannot be used as a disk by the host OS, and is thereby excluded from the memory area in which the virtual disk file is created.

[0093] (Appendix 15) the information processing device includes the virtual server, the virtual memory is a communication memory logically mounted on the virtual server, The virtual disk file is logically provided in the communication memory. 15. An information processing method according to any one of appendices 11 to 14.

[0094] (Appendix 16) The virtual server includes application software, the application software controls the physical device driver by reading and writing control information related to the physical device driver from and to the virtual disk file provided in the communication memory; 16. The information processing method according to claim 15.

[0095] (Appendix 17) the control information for the physical device driver is a command or data for the physical device driver; The control information from the physical device driver is a status or data of a result of executing a command from the physical device driver. 17. An information processing method according to any one of appendices 11 to 16.

[0096] (Appendix 18) The physical device is a device that is not supported by a hypervisor. 18. An information processing method according to any one of appendices 11 to 17.

[0097] (Appendix 21) A program applied to a computer of an information processing device, the computer comprising: a physical device driver that controls a physical device connected to the information processing device; the physical device driver having a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device with control information; the virtual communication memory having a virtual memory that stores virtual disk files for a virtual server constructed in the information processing device, and an internal virtual memory that is a communication memory area of ​​the physical device driver; the communication memory control unit: transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; Control information relating to the physical device driver is transmitted to and received from the physical device control unit via the internal virtual memory. program.

[0098] (Appendix 22) the virtual disk file includes a file for transmission; The communication memory control unit receiving control information for the physical device driver by writing the control information for the physical device driver to the transmission file; the received control information for the physical device driver is written to the internal virtual memory, thereby transmitting the control information to the physical device control unit. 21. The program described in Appendix 21.

[0099] (Appendix 23) the virtual disk file includes a receiving file; The communication memory control unit writing the control information from the physical device control unit into the internal virtual memory, thereby receiving the control information from the physical device control unit; writing the control information received from the physical device control unit to the receiving file, and making the receiving file readable, thereby transmitting the control information from the physical device driver to the virtual server; 21. A program according to claim 21 or 22.

[0100] (Appendix 24) The program according to any one of appendices 21 to 23, wherein the internal virtual memory is managed as a memory area that cannot be used as a disk by the host OS, and is thereby excluded from the memory area in which the virtual disk file is created.

[0101] (Appendix 25) the information processing device includes the virtual server, the virtual memory is a communication memory logically mounted on the virtual server, The virtual disk file is logically provided in the communication memory. 25. The program of any one of appendices 21 to 24.

[0102] (Appendix 26) The virtual server includes application software, the application software controls the physical device driver by reading and writing control information related to the physical device driver from and to the virtual disk file provided in the communication memory; 2. The program described in Appendix 25.

[0103] (Appendix 27) the control information for the physical device driver is a command or data for the physical device driver; The control information from the physical device driver is a status or data of a result of executing a command from the physical device driver. 27. The program of any one of appendices 21 to 26.

[0104] (Appendix 28) The physical device is a device that is not supported by a hypervisor. An information program according to any one of appendices 21 to 27. [Explanation of symbols]

[0105] 10. Information processing equipment 20 Physical Devices 30 Hypervisor 40 Host Server 50 Physical Device Drivers 100 Driver control section 120 Inter-virtual server communication control section 130 Physical Device Control Unit 200 Communication System Memory 210 Communication memory storage unit 220 Communication data storage unit 230 Data Block Management Unit 300 Communication memory control unit 400 virtual communication memory 410 First Virtual Memory 420 internal virtual memory 500 First Virtual Server 510 First Application Software 520 First Communication Memory

Claims

1. a physical device driver that controls a physical device connected to an information processing device; The physical device driver a virtual communication memory; a communication memory control unit; a physical device control unit that controls the physical device using control information; Equipped with The virtual communication memory includes: a virtual memory for storing virtual disk files for a virtual server constructed in the information processing device; an internal virtual memory that is a communication memory area for the physical device driver; Equipped with The communication memory control unit transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; transmitting and receiving control information related to the physical device driver to and from the physical device control unit via the internal virtual memory; Information processing device.

2. the virtual disk file includes a file for transmission; The communication memory control unit receiving control information for the physical device driver by writing the control information for the physical device driver to the transmission file; the received control information for the physical device driver is written to the internal virtual memory, thereby transmitting the control information to the physical device control unit. The information processing device according to claim 1 .

3. the virtual disk file includes a receiving file; The communication memory control unit writing the control information from the physical device control unit into the internal virtual memory, thereby receiving the control information from the physical device control unit; writing the control information received from the physical device control unit to the receiving file, and making the receiving file readable, thereby transmitting the control information from the physical device driver to the virtual server; The information processing device according to claim 2 .

4. The information processing apparatus according to claim 1 , wherein the internal virtual memory is managed as a memory area that cannot be used as a disk by a host OS, and is thereby excluded from memory areas for creating the virtual disk file.

5. the information processing device includes the virtual server, the virtual memory is a communication memory logically mounted on the virtual server, The virtual disk file is logically provided in the communication memory. The information processing device according to claim 1 .

6. The virtual server includes application software, the application software controls the physical device driver by reading and writing control information related to the physical device driver from and to the virtual disk file provided in the communication memory; The information processing device according to claim 5 .

7. the control information for the physical device driver is a command or data for the physical device driver; The control information from the physical device driver is a status or data of a result of executing a command from the physical device driver. The information processing device according to claim 1 .

8. The physical device is a device that is not supported by a hypervisor. The information processing device according to claim 1 .

9. 1. An information processing method applied to an information processing device comprising a physical device driver that controls a physical device connected to the information processing device, the physical device driver comprising a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device with control information, the virtual communication memory comprising a virtual memory that stores virtual disk files for a virtual server constructed in the information processing device, and an internal virtual memory that is a communication memory area of ​​the physical device driver, the communication memory control unit comprising: transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; Control information relating to the physical device driver is transmitted to and received from the physical device control unit via the internal virtual memory. Information processing methods.

10. A program applied to a computer of an information processing device, the computer comprising: a physical device driver that controls a physical device connected to the information processing device; the physical device driver having a virtual communication memory, a communication memory control unit, and a physical device control unit that controls the physical device with control information; the virtual communication memory having a virtual memory that stores virtual disk files for a virtual server constructed in the information processing device, and an internal virtual memory that is a communication memory area of ​​the physical device driver; the communication memory control unit: transmitting and receiving control information related to the physical device driver to and from the virtual server via the virtual disk file for the virtual server; Control information relating to the physical device driver is transmitted to and received from the physical device control unit via the internal virtual memory. program.

Citation Information

Patent Citations

  • Virtual server system and control method thereof

    JP2012123556A