For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . . ” Also, the term “couple” or “couples” is intended to mean either an indirect, direct, optical or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, or through a wireless electrical connection.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
The present disclosure enables sharing of data between two or more partitions in a partitionable computer system without requiring network cabling to connect the partitions and without requiring modification of the operating system (“O/S”), the network stack, and applications of each partition. By implementing inter-partition data sharing logic, which in some embodiments may be referred to as a virtual Network Interface Controller (“vNIC”), sharing of data between two or more partitions may be accomplished in a manner that, to each partition, appears to function just as if a standard Network Interface Controller (“NIC”) were in place to transfer data via an Internet connection. Using the inter-partition data sharing logic of the present disclosure, drivers used with NICs for the particular O/S running on the partition (including existing and future developed standard or customized drivers) may accomplish the sharing of data across partitions without network cabling. By using drivers for the particular O/S in this manner, modification of the O/S may be avoided, at least for purposes of enabling data sharing between partitions.
Referring now to
As shown in
Each partition 102, 104 comprises one or more processors 103, 113 and an input/output interface 105, 115. Each processor executes one or more applications and one or more operating systems, such as O/Ss 108 and 118 respectively. The applications and O/S may be stored in partition main memory 110 and 120 to be executed in each respective partition. Tasks carried out in execution of the applications and O/S may have occasion to pass data between the various partitions. For example, partition 102 may operate on O/S 108 to serve as a database backend. Partition 104 within the same partitionable computer system 100 may operate on O/S 118 to function as a web server to which users or clients may connect and access the database. In this example, the web server and database backend reside in different partitions, and have occasion to share data. The operating systems on the partitions may be of different types (e.g., LINUX™, WINDOWS™, etc.), different versions of the same O/S, or they may be different instances of the same operating system.
The partitions 102, 104 have access to a common Global Shared Memory (“GSM”) 106. The Global Shared Memory 106 is a shared memory to which multiple partitions in the partitionable system 100 may be mapped (i.e., a storage accessible by each partition in the partitionable system 100). For example, in various embodiments, the GSM 106 may be written to by partition A 102, and read from by partition B 104, and vice versa. The GSM 106 may comprise shared storage as well as “mailbox” space for messaging between inter-partition data sharing logics in the various partitions. The system fabric 129, 131 (to be discussed in greater detail below) connects the GSM 106 to each of the inter-partition data sharing logics 112, 122, respectively.
The management subsystem 128 identifies how the partitionable computer system 100 is partitioned, for example, the number of partitions, what O/S each partition is running, whether the partitioning is “hard” or “soft” partitioning, and how resources are assigned according to the partitions. Other functions of the management subsystem 128 include any or all of monitoring system temperature, fan speed, electrical systems, power output, and other environmental aspects of the partitionable computer system 100. The management subsystem 128 couples the partitions 102, 104 by way of interconnects 119 and 121. Each of the interconnects 119, 121 comprise, for example, a serial bus or other type of data connection.
Because the registers 201 of the inter-partition data sharing logics 112, 122 appear to the O/S as the same as those for a NIC, data sharing drivers 116, 126 that read to, and write from, a NIC may be used to read to, and write from, the inter-partition data sharing logics 112, 122. That is, any driver (off-the-shelf or customized drivers) that can operate a NIC can be used in embodiments of the present invention, even though a NIC is not used or necessarily even present. The data sharing driver is software that processes the particular way the inter-partition data sharing logic is accessed (i.e., how to send commands and/or data to the inter-partition data sharing logic). In various embodiments, the data sharing driver 116, 126 may be selected from various widely available drivers based upon which O/S 108, 118 is running on the partition 102, 104 or from customized drivers for the O/S.
In another embodiment, the memory buffers 114, 124 of inter-partition data sharing logics 112, 122 store data that may be buffered while in transit to or from another partition. As an alternative to the GSM 106, each memory buffer 114, 124 may serve as a storage location for data being shared between partitions 102, 104.
Referring now to
The inter-partition data sharing logic 112 in partition A 102 then messages inter-partition data sharing logic 122, via the management subsystem 128, in partition B 104 to inform the receiving partition (104) that a data packet has been transferred to the GSM 106 and is ready (block 306). Upon receiving the message, inter-partition data sharing logic 122 in partition B 104 reads the data packet from the GSM 106 via the system fabric (block 308). The inter-partition data sharing logic 122 then writes the data packet retrieved from storage into the partition B main memory 120 (block 310). With the shared data packet in partition B main memory 120, the inter-partition data sharing logic 122 notifies the network stack for Partition B 104 that the data packet has been received and may be used in a task executed in Partition B 104.
In an alternative embodiment method of
The inter-partition data sharing logic 112 in partition A 102 then messages inter-partition data sharing logic 122, via the management subsystem 128, in partition B 104 to inform the receiving partition (104) that a data packet has been transferred to the buffer 124 and is ready (block 306). Upon receiving the message, inter-partition data sharing logic 122 in partition B 104 reads the data packet from the buffer 124 (block 308). The inter-partition data sharing logic 122 then writes the data packet retrieved from storage into the partition B main memory 120 (block 310). With the shared data packet in partition B main memory 120, the inter-partition data sharing logic 122 notifies the network stack for Partition B 104 that the data packet has been received and may be used in a task executed in Partition B 104.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, other forms of storage in addition to the GSM 106 and the buffers in the inter-partition data sharing logics are similarly sufficient to store data packets being shared between partitions. It is intended that the following claims be interpreted to embrace all such variations and modifications.