Virtualization system and method for maintaining memory coherency in virtualization system
By limiting the broadcast range of the management node in the virtualization system and using a broadcast range register and the management node to parse DVM requests, the impact of memory consistency maintenance on physical core performance in the prior art is resolved, and efficient memory consistency maintenance is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-04-30
- Publication Date
- 2026-07-21
AI Technical Summary
In virtualized systems, existing technologies maintain memory consistency through inter-processor interrupts (IPI), which impacts physical core performance and requires the management node (MN) to wait for a considerable time, thus affecting system performance.
By limiting the broadcast range of the management node (MN), using precise broadcast range information, the time the MN waits for invalid physical core operations is reduced, physical core interruption of tasks is avoided, and the broadcast range register and management node parsing of DVM requests are used to achieve precise broadcasting.
It effectively reduces the time management nodes spend waiting for invalid physical core operations, improves the efficiency of memory consistency maintenance, avoids the impact of physical core performance, and saves system resources.
Smart Images

Figure CN116830093B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of virtualization technology, and in particular to a virtualization system and a method for maintaining memory consistency in a virtualization system. Background Technology
[0002] With the rapid development of processors and related software ecosystems based on the Advanced Reduced Instruction Set Machine (ARM) architecture, the ARM architecture has found widespread application in embedded systems, consumer electronics, big data, and cloud computing. The ARM architecture supports multi-core systems, which can be understood as electronic devices having processors that support multiple physical cores.
[0003] For example, Figure 1 This diagram illustrates a scenario where an ARM-based processor is used in a virtual machine (VM) application. Figure 1 As shown, this virtual machine application scenario can include four levels of domains: domain 0 includes one physical core, domain 1 includes four physical cores, domain 2 includes two domain 1s, and domain 3 includes domain 2s and other domains (not shown in the figure). Domains 1 to 4 can each correspond to their respective shareable domains. The shareable domains of domains 1 to 4 can be used to store and schedule the information needed for their respective operation. The specific content of the information depends on the actual application scenario and is not limited here.
[0004] A virtual machine can correspond to multiple virtual central processing units (vCPUs), for example... Figure 1 In the diagram, virtual machine #1 can correspond to vCPU1-vCPU4, and virtual machine #2 can correspond to vCPU5-vCPU8. The virtual machine kernel CPU scheduler can schedule one vCPU to run on multiple physical cores, or it can schedule multiple vCPUs to run on one physical core. Figure 1 The example shown only illustrates one vCPU running on a single physical core and does not limit the specific physical core on which the vCPU runs. This is understandable. Figure 1 In virtual machine application scenarios, in addition to virtual machine #1 and virtual machine #2, other virtual machines, such as VMx, can also be included. The architecture of VMx is similar to that of virtual machine #1 or virtual machine #2, so it will not be described in detail.
[0005] like Figure 1As shown, this virtual machine application scenario also includes a memory system and other miscellaneous nodes (MNs). The memory system stores memory page tables, also known as page tables. These page tables store the mapping between virtual addresses (VAs) and physical addresses (PAs). VAs are unique within the accessing process, while PAs are unique in the hardware. In this virtual machine application scenario, each physical core first retrieves its associated memory page table from the memory system. Each physical core stores the mapping of its acquired memory page table in its own translation lookaside buffer (TLB). Subsequently, when a physical core needs the mapping between VA and PA, it first searches its own TLB. If the physical core cannot find the required mapping in its own TLB, it can then search the memory system. When a physical core modifies one or more entries in the memory page table, the TLBs of other physical cores in the virtual machine application scenario need to synchronize the modified entries to maintain memory consistency.
[0006] The NameNode (MN) manages multiple physical cores. For example, the MN can receive distributed virtual memory (DVM) requests from a physical core. DVM requests can be used to maintain memory consistency in virtual machine application scenarios. The MN can send snop (SNP) DVM requests to other physical cores, instructing them to maintain the consistency of their respective Time Block (TLB). The MN receives response (Resp) information from other physical cores and returns Resp information to the physical core that initiated the DVM request. Maintaining TLB consistency among physical cores can be understood as each physical core invalidating modified entries in its TLB. Subsequently, if a physical core needs the content of an invalidated entry, it retrieves it from the memory system.
[0007] It should be noted that, Figure 1 The virtual machine application scenario can be applied to a certain electronic device, then Figure 1 The physical core, memory system, and MN shown can all be included in this electronic device. Figure 1 Virtual machine applications can also be applied to distributed systems, which can include multiple electronic devices. Figure 1The physical core, memory system, and MN shown can be distributed across different electronic devices. The MN can also be called a management node. The MN can be a single physical core for implementing management functions, or it can be multiple physical cores for implementing management functions. This application does not limit the specific hardware implementation of the MN.
[0008] In a possible implementation, interprocessor interrupts (IPIs) can be used to maintain TLB consistency among physical cores. Specifically, when a physical core modifies the entry information in the memory page table of shared memory, in addition to invalidating the entry information in its own TLB, the physical core also needs to send an IPI instruction to other physical cores through the MN. The IPI instruction includes information indicating that TLB consistency should be maintained. Other physical cores invalidate their own TLB entry information in the IPI interrupt handler, thus achieving the goal of maintaining shared memory page table consistency.
[0009] However, the above possible implementation uses the IPI method. When the physical core receives an IPI request, it will pause the currently executing task, respond to the interrupt, complete the page table synchronization, and then return to the original program. This process will affect the performance of the physical core. Summary of the Invention
[0010] This application provides a virtualization system and a method for maintaining memory consistency in the virtualization system. When maintaining memory consistency, the broadcast range of the virtual machine (MN) can be limited, reducing the time the MN waits for invalid operations of the physical core. Furthermore, the physical core does not need to interrupt its tasks, thus not affecting the performance of the physical core.
[0011] In a first aspect, embodiments of this application provide a virtualization system, including a request node and a first management node; the request node is configured to send a Distributed Virtual Memory (DVM) request to the first management node when performing memory consistency maintenance of the virtualization system, the DVM request including broadcast range information; the first management node is configured to parse the DVM request to obtain the broadcast range information, the broadcast range information indicating information of M target nodes; M is a positive integer; the first management node is further configured to send broadcast information to each of the M target nodes; the broadcast information is used to instruct each target node to perform memory consistency maintenance.
[0012] Based on this, in maintaining memory consistency in a virtualization system, the embodiments of this application can limit the broadcast range of the first management node, reduce the time the first management node waits for invalid operations of the physical core, and the physical core does not need to interrupt its tasks, thus not affecting the performance of the physical core.
[0013] In one possible implementation, the broadcast scope information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or, the identifier of the layer associated with the virtual machine running in the requesting node; wherein, a layer corresponds to multiple physical cores. Thus, the broadcast scope information in this embodiment can indicate the broadcast scope at the physical core granularity, achieving precise broadcast scope limitation, or it can indicate the broadcast scope at the layer granularity. One layer identifier can correspond to multiple physical cores, therefore, multiple physical cores can be indicated with fewer identifiers, saving system resources.
[0014] In one possible implementation, the first management node is specifically configured to send broadcast information to each of the M target nodes when it resolves the broadcast range information to indicate the identifiers of M physical cores; or, the first management node is specifically configured to send broadcast information to each of the M target nodes in the layer when it resolves the broadcast range information to indicate the identifier of the layer. This limits the broadcast range of the first management node and reduces the time the first management node spends waiting for invalid operations from physical cores.
[0015] In one possible implementation, the broadcast range information indicates nodes that are managed by the second management node; the first management node is also used to send a DVM request to the second management node; the second management node is used to parse the DVM request to obtain the broadcast range information and send broadcast information to the nodes managed by the second management node. In this way, precise broadcast range limitation can be achieved when the second management node sends broadcast information to nodes managed by the second management node.
[0016] In one possible implementation, the broadcast range information indicates layers belonging to the layers managed by the second management node; the first management node is also used to send DVM requests to the second management node; the second management node is used to parse the DVM requests to obtain broadcast range information and send broadcast information to nodes in the layers managed by the second management node. In this way, when the second management node sends broadcast information to nodes in the layers managed by the second management node, indication to multiple nodes can be achieved with fewer identifiers, saving system resources.
[0017] In one possible implementation, the request node has a register for storing broadcast range information. Specifically, the request node, during memory consistency maintenance of the virtualization system, generates instructions, packages the instructions and broadcast range information into a DVM request, and sends the DVM request to the first management node. This allows for customized updates to the broadcast range by storing the broadcast range in the request node's register, and the request node can conveniently and quickly package the instructions and broadcast range information into a DVM request for transmission to the first management node.
[0018] In one possible implementation, the instructions include either the Translate Back Buffer Instruction (TLBI) or the Cache Maintenance Instruction (IC). Thus, the Translate Back Buffer Instruction (TLBI) can maintain the consistency of the TLB within the physical core, and the Cache Maintenance Instruction (IC) can also maintain the consistency of the TLB within the physical core.
[0019] In one possible implementation, the first management node is further configured to collect M response messages from M target nodes; the response messages from each target node indicate that the target node has completed memory consistency maintenance; the first management node is further configured to send information to the requesting nodes indicating that memory consistency maintenance is complete. In this way, the first management node can collect and send information indicating that memory consistency maintenance is complete.
[0020] In one possible implementation, the requesting node is further configured to generate a Data Synchronization Isolation (DSB) instruction when issuing multiple DVM requests within a preset time period. The DSB instruction instructs the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information from the nodes corresponding to the multiple DVM requests. In this way, the requesting node can generate a DSB instruction indicating that memory consistency maintenance for the nodes corresponding to the multiple DVM requests is complete.
[0021] In one possible implementation, the first management node is specifically used to send broadcast information to each of the M target nodes using a masking method; wherein the masking method is to mask the nodes other than the M target nodes. In this way, the physical cores of the nodes other than the target nodes can be masked, so the other nodes will not receive the broadcast information, thus saving the waiting time of the first management node and reducing the computational load of the system.
[0022] Secondly, embodiments of this application provide a method for maintaining memory consistency in a virtualization system, comprising: when a requesting node performs memory consistency maintenance in the virtualization system, sending a Distributed Virtual Memory (DVM) request to a first management node, the DVM request including broadcast range information; the first management node parsing the DVM request to obtain the broadcast range information, the broadcast range information indicating information of M target nodes; M being a positive integer; the first management node sending broadcast information to each of the M target nodes; the broadcast information being used to instruct each target node to perform memory consistency maintenance.
[0023] In one possible implementation, the broadcast scope information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, a layer corresponds to multiple physical cores.
[0024] In one possible implementation, the first management node sends broadcast information to each of the M target nodes, including: when the first management node parses the broadcast range information to indicate the identifier of the M physical cores, it sends broadcast information to each of the M target nodes; or, when the first management node parses the broadcast range information to indicate the identifier of the layer, it sends broadcast information to each of the M target nodes in the layer.
[0025] In one possible implementation, the nodes indicated by the broadcast range information include nodes managed by the second management node, and / or layers managed by the second management node. The method further includes: the first management node sending a DVM request to the second management node.
[0026] In one possible implementation, when performing memory consistency maintenance of the virtualization system, the requesting node sends a Distributed Virtual Memory (DVM) request to the first management node, including: the requesting node generating instructions when performing memory consistency maintenance of the virtualization system; the requesting node packaging the instructions and broadcast range information into a DVM request; and the requesting node sending the DVM request to the first management node.
[0027] In one possible implementation, the instructions include the Translate Backup Buffer (TLBI) instruction or the Cache Maintenance (IC) instruction.
[0028] In one possible implementation, the first management node collects M response messages from M target nodes; the response messages from each target node are used to indicate that the target node has completed memory consistency maintenance; the first management node sends information to the requesting node to indicate that memory consistency maintenance is complete.
[0029] In one possible implementation, when a requesting node issues multiple DVM requests within a preset time, it generates a Data Synchronization Isolation (DSB) instruction. The DSB instruction is used to instruct the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information of the nodes corresponding to the multiple DVM requests.
[0030] In one possible implementation, the first management node sends broadcast information to each of the M target nodes, including: the first management node sends broadcast information to each of the M target nodes using a masking method; wherein, the masking method is a method of masking the nodes other than the M target nodes.
[0031] Thirdly, embodiments of this application provide a method for maintaining memory consistency in a virtualization system, comprising: a first management node receiving a Distributed Virtual Memory (DVM) request from a requesting node, the DVM request including broadcast range information; the first management node parsing the DVM request to obtain the broadcast range information, the broadcast range information indicating information of M target nodes; M being a positive integer; the first management node sending broadcast information to each of the M target nodes; the broadcast information being used to instruct each target node to perform memory consistency maintenance.
[0032] In one possible implementation, the broadcast scope information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, a layer corresponds to multiple physical cores.
[0033] In one possible implementation, the first management node sends broadcast information to each of the M target nodes, including: when the first management node parses the broadcast range information to indicate the identifier of the M physical cores, it sends broadcast information to each of the M target nodes; or, when the first management node parses the broadcast range information to indicate the identifier of the layer, it sends broadcast information to each of the M target nodes in the layer.
[0034] In one possible implementation, the nodes indicated by the broadcast range information include nodes managed by the second management node, and / or layers managed by the second management node. The method further includes: the first management node sending a DVM request to the second management node.
[0035] In one possible implementation, the first management node collects M response messages from M target nodes; the response messages from each target node are used to indicate that the target node has completed memory consistency maintenance; the first management node sends information to the requesting node to indicate that memory consistency maintenance is complete.
[0036] In one possible implementation, the first management node sends broadcast information to each of the M target nodes, including: the first management node sends broadcast information to each of the M target nodes using a masking method; wherein, the masking method is a method of masking the nodes other than the M target nodes.
[0037] Fourthly, embodiments of this application provide a method for maintaining memory consistency in a virtualization system, comprising: a requesting node generating an instruction when performing memory consistency maintenance in the virtualization system; the requesting node packaging the instruction and broadcast range information set in the requesting node into a DVM request; and the requesting node sending the DVM request to a first management node.
[0038] In one possible implementation, the broadcast scope information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, a layer corresponds to multiple physical cores.
[0039] In one possible implementation, the instructions include the Translate Backup Buffer (TLBI) instruction or the Cache Maintenance (IC) instruction.
[0040] In one possible implementation, the requesting node receives information from the first management node indicating that memory consistency maintenance is complete.
[0041] In one possible implementation, when a requesting node issues multiple DVM requests within a preset time, it generates a Data Synchronization Isolation (DSB) instruction. The DSB instruction is used to instruct the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information of the nodes corresponding to the multiple DVM requests.
[0042] Fifthly, embodiments of this application provide a computer-readable storage medium including a computer program that, when run on an electronic device, causes the electronic device to perform any of the possible technical solutions designed in the third and fourth aspects described above.
[0043] Sixthly, a computer program product according to an embodiment of this application includes instructions that, when executed on a computer, cause the computer to perform any of the possible technical solutions designed in the third and fourth aspects described above.
[0044] For the beneficial effects of aspects two through six, please refer to the beneficial effects of aspect one, which will not be repeated here. Attached Figure Description
[0045] Figure 1 A schematic diagram illustrating a scenario of an ARM-based processor in a virtual machine application, provided as an embodiment of this application;
[0046] Figure 2 A schematic diagram of a first system architecture used in the method of this application embodiment;
[0047] Figure 3 A schematic diagram of a second system architecture used in the method of this application embodiment;
[0048] Figure 4 A schematic diagram of a third system architecture applied to the method in an embodiment of this application;
[0049] Figure 5 A schematic diagram of a fourth system architecture applied to the method of this application embodiment;
[0050] Figure 6 A schematic diagram illustrating the data synchronization process in a multi-core system, provided as an embodiment of this application;
[0051] Figure 7 A schematic diagram of the logical architecture for parsing DVM requests by an MN node is provided in an embodiment of this application;
[0052] Figure 8 This is a flowchart illustrating a specific data synchronization method in a multi-core system, as provided in an embodiment of this application. Detailed Implementation
[0053] To facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with essentially the same function and effect. For example, "first event" and "second event" are only used to distinguish different events and do not limit their order. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.
[0054] It should be noted that, in this application, the terms "exemplary" or "for example" are used to indicate that something is being described as an example, illustration, or illustration. Any embodiment or design described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0055] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can mean: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0056] To facilitate understanding of the embodiments of this application, some terms involved in the embodiments of this application will be briefly explained below.
[0057] 1. Physical core: It can be manufactured from single-crystal silicon using a certain production process. It is used to perform calculations, receive or store commands, process data, etc. Each physical core has its own independent TLB.
[0058] 2. TLB maintenance instruction (TLBI): Instructions used to instruct the maintenance of the consistency of the TLB within the physical core.
[0059] 3. Virtual machine: refers to a complete computer system with full hardware system functions simulated by software and running in an isolated environment.
[0060] 4. Bus: refers to the common communication trunk line for transmitting data between various nodes, which can be used to transmit messages or requests, etc.
[0061] 5. Broadcast Range Register: This refers to the register used to store broadcast range information.
[0062] 6. Request Node (RN): One physical core can correspond to one RN, or it can be understood as an RN being a node that runs vCPUs on a physical core to perform a certain function. It should be noted that RN and MN are relative concepts. One MN can manage multiple RNs, and these multiple RNs can correspond to one virtual machine or multiple virtual machines.
[0063] The methods described in this application can be applied to virtual machine application scenarios in fields such as embedded systems, consumer electronics, big data, automotive electronics, mass storage, imaging equipment, industrial control, security systems, or cloud computing. In these virtual machine application scenarios, the electronic device executing the methods described in this application includes a processor. The processor can adopt an ARM architecture, which offers advantages such as high speed, low power consumption, and low price.
[0064] In this context, electronic devices can also be referred to as terminal devices, terminals, user equipment (UE), mobile stations (MS), or mobile terminals (MT), etc. Electronic devices can be mobile phones, smart TVs, wearable devices, tablets, computers with wireless transceiver capabilities, virtual reality (VR) terminal devices, augmented reality (AR) terminal devices, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, and so on. The embodiments of this application do not limit the specific technologies or device forms used in the electronic devices.
[0065] Combination Figure 1 Another possible implementation for maintaining memory consistency is to use a broadcast TLB invalidation operation. Specifically, when a physical core modifies one or more mapping entries in the memory page table of shared memory, that physical core generates a TLBI. While performing its own TLB invalidation operation, the physical core also packages the TLBI into a DVM request and sends the DVM request to the MN via the coherent hub interface (CHI). Upon receiving the DVM request, the ARM software will by default enable a force broadcast (FB) control instruction. This instruction forces the MN to broadcast the DVM request to all physical cores within the inner shareable (IS) scope. The MN broadcasts the snpDVM request to all physical cores within the IS scope. Each physical core within the IS scope invalidates the corresponding entry information in its TLB according to the snpDVM request. After collecting the Resp information from all physical cores within the IS scope, the MN instructs the physical core that sent the DVM request to complete the TLB maintenance, thus achieving the goal of maintaining TLB consistency across all physical cores. It should be noted that in typical implementations, the IS scope is defined at the beginning of the system design, and the IS scope is large and cannot be changed.
[0066] In order to ensure that the snpDVM request takes effect synchronously on all physical cores within the IS range, the MN can perform a DVM synchronization (Sync) operation, so that all physical cores within the IS range return Resp information to the MN after invalidating the corresponding entry information in the TLB.
[0067] However, in the above implementation, MN needs to wait indiscriminately for the invalidation operations of the corresponding entry information in the TLB of all physical cores within the IS range to end, resulting in a long waiting time and a large performance overhead.
[0068] In view of this, embodiments of this application provide a virtualization system and a method for maintaining memory consistency within the virtualization system. When maintaining memory consistency, the broadcast range of the NameNode (MN) can be limited, reducing the time the MN waits for invalid operations from physical cores. Furthermore, physical cores do not need to interrupt their tasks, thus not affecting their performance. Specifically, when the RN sends a request to the MN, the request includes broadcast range information, thereby narrowing the MN's broadcast range. Subsequently, after the MN sends broadcast information to the nodes corresponding to this broadcast range information, the time waiting for synchronization among the nodes is shortened, improving the efficiency of consistency maintenance. Moreover, each node does not need to interrupt its own tasks, thus not affecting its performance.
[0069] In this embodiment, the physical core can be configured with a broadcast range register, which contains preset broadcast range information. The broadcast range register can receive user settings; for example, the user can pre-set or modify the broadcast range information in the broadcast range register using CPU scheduler software.
[0070] In this embodiment, the MN is configured with logic capable of parsing the broadcast range information of the DVM request. In one possible implementation, an Affinity register can be set within the MN, which can be configured to indicate the RN corresponding to the MN and the system layer (i.e., the layer) where the RN resides. This Affinity register is statically configurable, for example, it can be configured during software deployment of the VM.
[0071] It should be noted that, in this embodiment, the broadcast range information, when indicating the broadcast range, can be specified at the physical core level. For example, the broadcast range information may include the identifier of the physical core to be broadcast. Then, when MN broadcasts, it broadcasts to the physical core indicated by the broadcast range information. In a possible implementation, a broadcast range register with a range of 128 binary digits (Bit) can be defined, where each Bit represents a physical core. When indicating the broadcast range of MN according to the broadcast range information in the broadcast range register, the broadcast range can be specified at the physical core level, and MN can broadcast to the physical cores according to the indication of the broadcast range information. It is understood that, in this implementation, because the broadcast range information is at the physical core level, precise broadcast range definition can be achieved.
[0072] In this embodiment of the application, the broadcast range information can also indicate the broadcast range at the layer level. A layer can include multiple physical cores. The layer division rules are not limited in this embodiment of the application. For example, the broadcast range information can include the identifier of the layer to be broadcast. Then, when MN broadcasts, all physical cores in the layer indicated by the broadcast range information are broadcast. It can be understood that in this implementation, because the broadcast range information is at the layer level, the identifier of one layer can correspond to multiple physical cores. Therefore, multiple physical cores can be indicated with fewer identifiers, saving system resources.
[0073] It is understood that in this embodiment of the application, when all nodes indicated in the broadcast range information are managed by one MN, the number of MNs in this embodiment of the application can be one. When the nodes indicated in the broadcast range information are managed by multiple different MNs, the RN can send the broadcast range information to one of the MNs. In addition to sending broadcast information to the nodes managed by that MN, the MN can also send the broadcast range information to other MNs, so that the other MNs can also send broadcast information to the nodes managed by those other MNs.
[0074] For example, Figures 2-5 The following diagram illustrates four possible virtualization system architectures according to embodiments of this application.
[0075] Figure 2 A schematic diagram of a first virtualization system architecture to which the method of this application embodiment is applied is shown. Figure 2 In the virtualization system framework diagram, the broadcast range information indicates the broadcast range at the physical core level, and all nodes indicated in the broadcast range information are managed by a single MN.
[0076] like Figure 2 As shown, the virtualization system includes RN-0, MN, and RN-1 to RN-n.
[0077] In this context, RN-0 corresponds to physical core #1. Physical core #1 has a TLB and a broadcast range register, which contains pre-set broadcast range information. For example, the broadcast range information can be pre-stored in the broadcast range register by the virtual machine core CPU scheduler. This broadcast range information may include the identifier of the physical core associated with the VM running in RN-0. It is understood that when the broadcast range information in the broadcast register needs to be updated, update code can be scheduled by the virtual machine core CPU scheduler to update the broadcast register.
[0078] The following example illustrates the process of maintaining memory consistency in a virtualization system by showing how RN-0 modifies the entry information in the shared page table and initiates the maintenance of consistency of entry information in the TLB of each physical core.
[0079] After RN-0 modifies the entry information of the shared page table, a TLBI is generated in RN-0. This TLBI is used to maintain the TLB in physical core #1. RN-0 completes the invalidation operation of the entry information in its own TLB. Furthermore, RN-0 can also obtain the updated memory page table from the memory system and set it in RN-0's TLB to complete the update of RN-0's shared page table.
[0080] In addition, RN-0 can package broadcast range information and TLBI into a DVM request. The DVM request includes broadcast range information. RN-0 sends the DVM request to MN through the CHI bus. MN parses the broadcast range information to obtain the physical core indicated by the broadcast range information. The physical core indicated by the broadcast range information can also be called other RNs.
[0081] For example, such as Figure 2 As shown, the physical core indicated by the broadcast range information can be RN-1, and MN broadcasts a snpDVM request to RN-1. It is understood that the number of physical cores indicated by the broadcast range information can be determined according to the actual scenario, and can be one or more; this embodiment does not specifically limit this.
[0082] Based on this snpDVM request, RN-1 can invalidate the entry information in its own TLB. RN-1 can also further obtain the updated memory page table from the memory system and send Resp information to MN.
[0083] In one possible implementation, RN-0 may modify multiple entries in the memory page table over a period of time. During this period, RN-0 may asynchronously generate multiple TLBIs. Accordingly, RN-0 asynchronously sends DVM requests corresponding to these multiple TLBIs to MN. To ensure that invalid operations indicated by multiple DVM requests on multiple entries take effect synchronously on the physical cores corresponding to the broadcast range indication information, RN-0 can generate a data synchronization barrier (DSB) instruction. This instruction instructs MN to collect the Resp information of the nodes corresponding to these multiple DVM requests and then synchronously send the Resp information of all nodes to RN-0, indicating that the memory consistency maintenance of the nodes corresponding to the multiple DVM requests is complete.
[0084] For example, Figure 3 A schematic diagram of a second virtualization system architecture to which the method of this application embodiment is applied is shown. Figure 3 In the virtualization system framework diagram, the broadcast range information indicates the broadcast range at the physical core level, and the nodes indicated in the broadcast range information are managed by multiple different MNs.
[0085] like Figure 3 As shown, the virtualization system includes RN-0, MN1, MN2, RN1-1 to RN1-n, and RN2-1 to RN2-n. Among them, MN1 is used to manage RN1-1 to RN1-n, and MN2 is used to manage RN2-1 to RN2-n.
[0086] Among them, RN-0 corresponds to physical core #1. Physical core #1 has a TLB and a broadcast range register. The broadcast range register has preset broadcast range information.
[0087] The following example illustrates the process of maintaining memory consistency in a virtualization system by showing how RN-0 modifies the entry information in the shared page table and initiates the maintenance of consistency of entry information in the TLB of each physical core.
[0088] The process from RN-0 modifying the entry information in the shared page table to RN-0 sending a DVM request to the MN1 node can be referred to as follows: Figure 2 The description of RN-0 sending a DVM request to the MN node in the corresponding embodiment will not be repeated here.
[0089] and Figure 2 The corresponding implementation is different, Figure 3In a corresponding embodiment, the nodes indicated in the broadcast range information are managed by multiple different MNs. For example, the physical cores indicated in the broadcast range information include RN1-1, RN1-2, RN2-1, and RN2-2. RN1-1 and RN1-2 are managed by MN1, and RN2-1 and RN2-2 are managed by MN2.
[0090] like Figure 3 As shown, RN-0 sends the DVM request to MN1. MN1 parses the broadcast range information and determines that the broadcast range information includes not only RN1-1 and RN1-2 corresponding to MN1, but also RN2-1 and RN2-2 corresponding to MN2.
[0091] MN1 broadcasts snpDVM requests to RN1-1 and RN1-2. At the same time, MN1 sends DVM requests to MN2. MN2 parses the broadcast range information and determines that the physical cores indicated in the broadcast range information include RN2-1 and RN2-2. MN2 then sends snpDVM requests to RN2-1 and RN2-2.
[0092] RN1-1 and RN1-2 can be referenced. Figure 2 The corresponding embodiment describes the method of invalidating entry information in TLB and sending Resp information to MN1.
[0093] RN2-1 and RN2-2 can be referenced. Figure 2 The corresponding embodiment describes the method of invalidating entry information in TLB and sending Resp information to MN2.
[0094] After MN2 collects the Resp information of RN2-1 and RN2-2, it can send the Resp information to MN1. MN1 collects the Resp information of RN1-1, RN1-2 and MN2, and sends the Resp information to RN-0.
[0095] Understandable Figure 2 The illustration shows a case where the physical core indicated by the broadcast range information corresponds to two MNs. In practical applications, the number of MNs may be greater than 2. Each MN can broadcast and collect reply information to the RNs managed by each MN indicated in the broadcast range information by passing DVM requests to each other. This application embodiment does not limit the number of MNs or the communication method between multiple MNs.
[0096] For example, Figure 4 A schematic diagram of a third virtualization system architecture applied to the method of this application embodiment is shown. Figure 4In the virtualization system framework diagram, the broadcast range information indicates the broadcast range at the layer level, and the nodes in the layer indicated in the broadcast range information are all managed by a MN.
[0097] like Figure 4 As shown, the virtualization system includes RN-0, MN0, RN0-1 to RN0-n. Among them, RN0-1 to RN0-n belong to a layer 0, and MN0 is used to manage RN0-1 to RN0-n.
[0098] Among them, RN-0 corresponds to physical core #1. Physical core #1 has a TLB and a broadcast range register. The broadcast range register has preset broadcast range information.
[0099] The following example illustrates the process of maintaining memory consistency in a virtualization system by showing how RN-0 modifies the entry information in the shared page table and initiates the maintenance of consistency of entry information in the TLB of each physical core.
[0100] The process from RN-0 modifying the entry information in the shared page table to RN-0 sending a DVM request to the MN1 node can be referred to as follows: Figure 2 The description of RN-0 sending a DVM request to the MN node in the corresponding embodiment will not be repeated here.
[0101] and Figure 2 The corresponding implementation is different, Figure 4 In a corresponding embodiment, the broadcast range information indicates the broadcast range at the layer level. For example, the broadcast range information indicates layer 0, which includes RN0-1 to RN0-n.
[0102] like Figure 4 As shown, RN-0 sends the DVM request to MN0. MN0 parses the broadcast range information and determines that the broadcast range information is layer 0. MN0 then sends snpDVM requests to RN0-1 to RN0-n within layer 0.
[0103] RN0-1 to RN0-n can be referenced Figure 2 The corresponding embodiment describes the method of invalidating entry information in TLB and sending Resp information to MN0. MN0 collects Resp information from RN0-1 to RN0-n in layer 0 and sends Resp information to RN-0.
[0104] For example, Figure 5 A schematic diagram of a fourth virtualization system architecture applied to the method of this application embodiment is shown. Figure 5In the virtualization system framework diagram, the broadcast range information indicates the broadcast range at the layer level, and the multiple layers indicated in the broadcast range information are managed by multiple different MNs.
[0105] like Figure 5 As shown, the virtualization system includes RN-0, MN3, MN4, RN3-1 to RN3-n, and RN4-1 to RN4-n. Among them, RN3-1 to RN3-n belong to layer 3, RN4-1 to RN4-n belong to layer 4, MN3 is used to manage RN3-1 to RN3-n, and MN4 is used to manage RN4-1 to RN4-n.
[0106] The following example illustrates the process of maintaining memory consistency in a virtualization system by showing how RN-0 modifies the entry information in the shared page table and initiates the maintenance of consistency of entry information in the TLB of each physical core.
[0107] The process from RN-0 modifying the entry information in the shared page table to RN-0 sending a DVM request to the MN1 node can be referred to as follows: Figure 2 The description of RN-0 sending a DVM request to the MN node in the corresponding embodiment will not be repeated here.
[0108] and Figure 4 The corresponding implementation is different, Figure 5 In a corresponding embodiment, the broadcast range information indicates multiple layers, and these multiple layers are managed by different MNs. For example, the layers indicated in the broadcast range information include layer 3 and layer 4, with nodes in layer 3 managed by MN3 and nodes in layer 4 managed by MN4.
[0109] like Figure 5 As shown, RN-0 sends the DVM request to MN3. MN3 parses the broadcast range information and determines that the broadcast range information includes not only RN3-1 to RN3-n in layer 3 corresponding to MN3, but also RN4-1 to RN4-n in layer 4 corresponding to MN4.
[0110] MN3 broadcasts snpDVM requests to RN3-1 to RN3-n, and MN3 sends DVM requests to MN4. MN3 parses the broadcast range information and determines that the broadcast range information is RN3-1 to RN3-n within layer 3. MN3 then broadcasts snpDVM requests to RN3-1 to RN3-n within layer 3.
[0111] RN3-1 to RN3-n can be referenced Figure 2 The corresponding embodiment describes the method of invalidating entry information in TLB and sending Resp information to MN3.
[0112] RN4-1 to RN4-n can be referenced Figure 2 The corresponding embodiment describes the method of invalidating entry information in TLB and sending Resp information to MN4.
[0113] After collecting Resp information from RN4-1 to RN4-n, MN4 can send Resp information to MN3. MN3 collects Resp information from RN3-1 to RN3-n and MN4, and sends Resp information to RN-0.
[0114] Understandable Figure 5 The illustration shows a case where the layer indicated by the broadcast range information corresponds to two MNs. In practical applications, the number of MNs may be greater than 2. Each MN can broadcast and collect reply information to the nodes in the layer corresponding to each MN indicated in the broadcast range information by passing DVM requests to each other. This application embodiment does not limit the number of MNs or the communication method between multiple MNs.
[0115] It should be noted that, with Figure 2 For example, the broadcast range of MN itself may cover a large number of nodes from RN-1 to RN-n. However, due to the limitation of broadcast range information, MN can broadcast snpDVM requests to RN-1 instead of sending snpDVM requests to RN-2 to RN-n. In this way, when maintaining page table consistency, MN does not need to wait for the response from RN-2 to RN-n, which can save waiting time, improve maintenance efficiency, reduce the amount of computation in the system, and save computing resources.
[0116] Understandable Figures 3-5 In the corresponding embodiments, similar to Figure 2 The description can also reduce the waiting time of MN, improve maintenance efficiency, and reduce the amount of computation of the system, saving computing resources.
[0117] It should be noted that, Figures 2-5 In corresponding embodiments, TLBI can also be replaced by instructions such as instruction cache maintenance instruction (IC). The IC instruction is used to implement the above-mentioned functions of TLBI, which will not be elaborated here. Figures 2-5 In addition, the reason for triggering memory consistency maintenance can also be that RN-0 modifies the entry information in its own TLB. For example, if RN-0 clears the entry information in its own TLB, then RN-0 can also request the relevant physical core in the virtualization system to perform memory consistency maintenance. The process of memory consistency maintenance is detailed in the above description and will not be repeated here.
[0118] Figures 2-5In a corresponding embodiment, when the MN broadcasts the snpDVM command to the node indicated by the broadcast range information, it can send it in a masking manner. The masking manner is to mask the physical cores of the nodes other than those indicated by the broadcast range information, so that the physical cores of the nodes other than those indicated by the broadcast range information cannot receive the snpDVM command.
[0119] The communication method provided in the embodiments of this application will now be described in detail with reference to the accompanying drawings. Figure 6 This application provides a schematic diagram illustrating the data synchronization process in a multi-core system. Figure 6 As shown, the method in this application embodiment includes:
[0120] S601, Request node generation command.
[0121] In this embodiment, the instruction can be used to instruct the first management node to perform a certain operation, and can be the smallest functional unit of operation. For example, the instruction can be a TLBI or an IC instruction.
[0122] For example, taking the requesting node as RN-0 running on physical core #1, when RN-0 modifies the entry information in the shared page table, or when RN-0 modifies the entry information in its own TLB, RN-0 can generate instructions that can be used to instruct the maintenance of memory consistency of the virtualization system.
[0123] S602, The requesting node packages the instructions and broadcast range information into a DVM request.
[0124] In this embodiment of the application, the broadcast range information is used to indicate the broadcast range of the first management node. For example, the broadcast range information can be used to indicate the nodes that the first management node needs to broadcast to, etc.
[0125] The broadcast range information can be set in a register or in other storage devices; this application does not specifically limit this.
[0126] In this embodiment, the DVM request is used to request the first management node to maintain the consistency of the TLB within the physical core. The DVM request carries broadcast range information.
[0127] For example, RN-0 running on physical core #1 can package broadcast range information and TLBI into a DVM request based on TLBI.
[0128] S603, The requesting node sends a DVM request to the first management node.
[0129] Adapted, the first management node receives DVM requests from the requesting node.
[0130] In this embodiment of the application, a possible implementation of the requesting node sending a DVM request to the first management node is as follows: the requesting node sends a DVM request to the first management node through the bus, and the first management node can receive the DVM request from the requesting node through the bus.
[0131] It is understood that, in the embodiments of this application, the bus protocol recognizes the inclusion of broadcast range information in the DVM request, so the bus can transmit DVM requests that include broadcast range information.
[0132] For example, taking the requesting node as RN-0 running on physical core #1 and the first management node as MN, when performing page table consistency maintenance, RN-0 sends a DVM request to MN through the CHI bus, and MN receives the DVM request from RN-0 through the CHI bus. The DVM request includes broadcast range information.
[0133] S604. The first management node parses the broadcast range information to obtain M target nodes, where M is a positive integer.
[0134] In this embodiment of the application, the target node refers to the node where the physical core is located, as indicated by the broadcast range information.
[0135] For example, taking the first management node as MN, when MN receives the DVM request, MN can parse the broadcast range information and obtain the M nodes that need to be broadcast as indicated by the broadcast range information, which can be used as the M target nodes.
[0136] S605, The first management node sends broadcast information to M target nodes.
[0137] In this embodiment, the broadcast information is used to instruct the target node to perform memory consistency maintenance. For example, the broadcast information can be the snpDVM request in the above embodiment.
[0138] Memory consistency maintenance refers to ensuring that the data in the target nodes remains consistent with the data in the first management node. For example, after RN-0 modifies the shared page table, target nodes RN-1, RN-2, RN-3, etc., need to update their respective TLBs with the modified shared page table. After receiving a broadcast message from the first management node, the M target nodes can each perform memory consistency maintenance. For example, any target node can invalidate the currently stored entry information in its TLB, and upon subsequent access, can retrieve the updated shared page table from the memory system and store the updated shared page table in its TLB.
[0139] S606, The first management node collects M response messages from M target nodes.
[0140] In this embodiment of the application, the response information is used to indicate that the target node has completed data synchronization.
[0141] For example, after target node RN-1 completes data synchronization, RN-1 sends a response message to MN, and MN collects the response message from RN-1. Similarly, the first management node can collect response messages from target node RN-2 until MN has collected response messages from all M target nodes.
[0142] It is understandable that the data synchronization time of each target node may be different. Therefore, the timing of each target node sending response information to the first management node may also be different. During this process, the first management node needs to wait until it has collected response information from M nodes, then the first management node can confirm that memory consistency maintenance is complete.
[0143] In a possible implementation, the first management node can also forward DVM requests to the second management node. For example, in Figure 3 or Figure 5 In the corresponding scenario, the second management node can be either MN2 or MN4. The second management node can receive DVM requests from the first management node and collect the target nodes corresponding to the DVM requests. For details, please refer to... Figure 3 and Figure 5 The explanation will not be elaborated here.
[0144] S607. The first management node sends information to the requesting node to indicate that data synchronization is complete.
[0145] Accordingly, the requesting node receives information from the first management node indicating that memory consistency maintenance is complete.
[0146] In this embodiment, the information used to indicate the completion of memory consistency maintenance can be a response message sent by the first management node to the requesting node after collecting response information from M target nodes. The information used to indicate the completion of memory consistency maintenance can be in the form of numbers or characters, and this embodiment does not specifically limit its form.
[0147] The requesting node can receive a message indicating that memory consistency maintenance is complete, and confirm that memory consistency maintenance is complete.
[0148] In summary, in this embodiment, when the requesting node sends a request to the first management node, the request includes broadcast range information, which can narrow the broadcast range of the first management node. Subsequently, when the requesting node sends broadcast information to the node corresponding to the broadcast range information, it can reduce the time that the requesting node waits for invalid operations of the node corresponding to the broadcast range information, improve the efficiency of maintaining memory consistency, and the node corresponding to the broadcast range information does not need to interrupt its task, thus not affecting the performance of the node corresponding to the broadcast range information.
[0149] exist Figure 6 Based on the corresponding embodiments, in one possible implementation, the broadcast range information may include: the identifier of the physical core related to the virtual machine running in the requesting node, and / or the identifier of the layer related to the virtual machine running in the requesting node; wherein, the layer corresponds to multiple physical cores.
[0150] In this embodiment of the application, the number of virtual machines (VMs) running in the request node can be one or more.
[0151] The number of physical cores associated with a VM can be one or more. The identifier of a physical core is used to clearly identify the physical core. For example, the identifier of a physical core can be the serial number, address, or name of the physical core, etc., and this application embodiment does not make specific limitations.
[0152] The number of VM-related layers can be one or more. The layer identifier is used to clearly identify the layer. For example, the layer identifier can be the layer number or name, etc., which is not specifically limited in the embodiments of this application.
[0153] The broadcast scope information may include the identifier of the physical core associated with the virtual machine running on the requesting node, or it may include the identifier of the layer associated with the virtual machine running on the requesting node, or it may include both the identifier of the physical core associated with the virtual machine running on the requesting node and the identifier of the layer. The first management node can then parse this broadcast scope information and send broadcast information to the physical core or layer indicated by the broadcast scope information.
[0154] Optionally, the broadcast range information can be set in a register of the requesting node. This register can be a dedicated broadcast range register for storing broadcast range information, or it can be any register in the requesting node; this embodiment does not specifically limit this.
[0155] For example, Figure 7 A schematic diagram of the logical architecture for MN parsing DVM requests is shown. Figure 7 As shown, register 701 can be configured in MN700.
[0156] After receiving a DVM request carrying broadcast range information from a requesting node (SCO physical core), the MN can compare the broadcast range information transmitted from the bus with the node managed by the MN as indicated in register 701. If the broadcast range information matches the node corresponding to the MN, the broadcast information is forwarded to the matching node. This broadcast information can be, for example, an SNPDVM request, which includes the DVM code corresponding to the broadcast range information.
[0157] In another possible implementation, a bitmap of the physical core can be set within the MN, with each bitmap indicating a corresponding RN.
[0158] After receiving the DVM request carrying broadcast range information from the requesting node, the MN forwards the broadcast information to the RN specified in the bitmap information according to the bitmap information. This broadcast information can be, for example, an snpDVM request.
[0159] exist Figure 6 Based on the corresponding embodiments, in one possible implementation, S605 includes: the first management node sends broadcast information to M target nodes using a masking method, wherein the masking method is a method of masking the nodes other than the M target nodes.
[0160] Among them, the masking method can refer to the first management node masking unused physical cores when sending a broadcast request.
[0161] In this embodiment of the application, taking the first management node as MN, the nodes corresponding to MN include nodes 1 to m, and the target nodes include nodes 1, 5, and 6 as an example, MN can cover the physical cores of the other nodes among nodes 1 to m except for nodes 1, 5, and 6, and send broadcast information. Because the physical cores of the other nodes are covered, the other nodes will not receive the broadcast information. MN does not need to wait for the other nodes to reply regarding page table consistency maintenance, thus saving MN's waiting time and reducing the system's computational load.
[0162] For example, Figure 8 A flowchart illustrating a specific data synchronization method in a multi-core system provided in this application is shown below. Figure 8 As shown, the method in this application embodiment includes:
[0163] S801, Software Maintenance Broadcast Range Register.
[0164] In this embodiment of the application, software refers to a collection of data and instructions organized in a specific order. For example, software may be CPU scheduler software.
[0165] For example, a user can schedule the physical core #N of the VM to run through the CPU scheduler software, and update the relevant physical core (i.e., broadcast range information) of the VM's operation to the broadcast range register of the physical core #N through the instruction set architecture (ISA) instruction set, so that the broadcast range register includes the broadcast range information.
[0166] S802, The requesting node generates a DVM request and sends the DVM request through the bus.
[0167] For example, when a requesting node modifies the shared page table, or what can be understood as a VM software update translation, the requesting node can generate a TLBI. The requesting node packages the TLBI with broadcast range information into a DVM request and sends the DVM request to the MN based on the bus payload. Here, the broadcast range information can also be understood as a custom broadcast range field.
[0168] S803, MN directed broadcast forwarding.
[0169] For example, after receiving a DVM request, the MN parses the broadcast range information in the DVM request and sends the broadcast information to the RN indicated by the broadcast range information in a targeted manner by masking.
[0170] S804 and MN collect Resp information in a targeted manner.
[0171] For example, the MN collects the Resp information of the RN indicated by the broadcast range information, and after collecting the Resp information of the RN indicated by the broadcast range information, sends the Resp information to the requesting node.
[0172] In this embodiment, the CPU scheduler software maintains a broadcast range register, which can be updated in a custom manner. Subsequently, the MN sends broadcast information to the corresponding node through a masking method, which can reduce the time that the MN waits for the corresponding node's invalid operation, reduce software maintenance costs and the difficulty of the MN to broadcast, and improve the efficiency of maintaining consistency.
[0173] It is understood that the data synchronization method of this application embodiment can also be easily ported to other physical cores of the ARM architecture. This will not only not increase the design difficulty of MN, but also transfer the maintenance scope function to the software, thereby reducing the hardware burden.
[0174] This application also provides a computer-readable storage medium. The methods described in the above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any combination thereof. If implemented in software, the functionality can be stored as one or more instructions or code on or transmitted on a computer-readable medium. A computer-readable medium can include computer storage media and communication media, and can also include any medium that can transfer a computer program from one place to another. The storage medium can be any target medium accessible by a computer.
[0175] As one possible design, computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage, disk storage or other magnetic storage devices, or any other medium targeted to carry or to store required program code in the form of instructions or data structures, and accessible by a computer. Furthermore, any connection is appropriately referred to as computer-readable media. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. As used herein, disks and optical discs include optical discs (CDs), laser discs, optical discs, digital universal optical discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically, while optical discs optically reproduce data using lasers. Combinations of the above should also be included within the scope of computer-readable media.
[0176] This application also provides a computer program product. The methods described in the above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any combination thereof. If implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the above computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the above method embodiments are generated. The above computer can be a general-purpose computer, a special-purpose computer, a computer network, a base station, a terminal, or other programmable device.
[0177] The above specific embodiments further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above are merely specific embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of the present invention should be included within the scope of protection of the present invention.
Claims
1. A virtualization system, characterized in that, The virtualization system includes a request node and a first management node; The requesting node is configured to send a Distributed Virtual Memory (DVM) request to the first management node when performing memory consistency maintenance of the virtualization system. The DVM request includes broadcast range information. The first management node is used to parse the DVM request to obtain the broadcast range information, which indicates information about M target nodes; M is a positive integer; The first management node is also used to send broadcast information to each of the M target nodes; The broadcast message is used to instruct each target node to perform memory consistency maintenance.
2. The virtualization system according to claim 1, characterized in that, The broadcast range information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, the layer corresponds to multiple physical cores.
3. The virtualization system according to claim 2, characterized in that, The first management node is specifically used to send the broadcast information to each of the M target nodes when it parses the broadcast range information to indicate the identifiers of M physical cores; Alternatively, the first management node is specifically configured to send the broadcast information to each of the M target nodes in the layer when it resolves the broadcast range information to indicate the layer identifier.
4. The virtualization system according to any one of claims 2 or 3, characterized in that, The nodes indicated by the broadcast range information include nodes managed by the second management node; The first management node is also configured to send the DVM request to the second management node; The second management node is used to parse the DVM request to obtain the broadcast range information and send the broadcast information to the nodes managed by the second management node.
5. The virtualization system according to any one of claims 2 or 3, characterized in that, The broadcast range information indicates a layer that is managed by the second management node; The first management node is also configured to send the DVM request to the second management node; The second management node is used to parse the DVM request to obtain the broadcast range information and send the broadcast information to the nodes in the layer managed by the second management node.
6. The virtualization system according to any one of claims 1-3, characterized in that, The request node is equipped with a register; the register is used to store the broadcast range information. The request node is specifically used to generate instructions, package the instructions and the broadcast range information into the DVM request, and send the DVM request to the first management node when performing memory consistency maintenance of the virtualization system.
7. The virtualization system according to claim 6, characterized in that, The instructions include the Translation Backup Buffer (TLBI) instruction or the Cache Maintenance (IC) instruction.
8. The virtualization system according to any one of claims 1-3 and 7, characterized in that, The first management node is further configured to collect M response messages from the M target nodes; the response messages from each target node are used to indicate that the target node has completed memory consistency maintenance; The first management node is also configured to send information to the requesting node indicating that memory consistency maintenance is complete.
9. The virtualization system according to claim 8, characterized in that, The requesting node is also used to generate a Data Synchronization Isolation DSB instruction when issuing multiple DVM requests within a preset time. The DSB instruction is used to instruct the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information of the nodes corresponding to the multiple DVM requests.
10. The virtualization system according to any one of claims 1-3, 7, and 9, characterized in that, The first management node is specifically used to send broadcast information to each of the M target nodes using a masking method; wherein, the masking method is to mask the nodes other than the M target nodes.
11. A method for maintaining memory consistency in a virtualization system, characterized in that, The method includes: When performing memory consistency maintenance of the virtualization system, the requesting node sends a Distributed Virtual Memory (DVM) request to the first management node. The DVM request includes broadcast range information. The first management node parses the DVM request to obtain the broadcast range information, which indicates information about M target nodes; where M is a positive integer. The first management node sends a broadcast message to each of the M target nodes; the broadcast message is used to instruct each target node to perform memory consistency maintenance.
12. The method according to claim 11, characterized in that, The broadcast range information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, the layer corresponds to multiple physical cores.
13. The method according to claim 12, characterized in that, The first management node sends broadcast information to each of the M target nodes, including: When the first management node parses the broadcast range information to indicate the identifiers of M physical cores, it sends the broadcast information to each of the M target nodes. Alternatively, when the first management node parses the broadcast range information to indicate the layer identifier, it sends the broadcast information to each of the M target nodes in the layer.
14. The method according to claim 12 or 13, characterized in that, The broadcast range information indicates nodes that include nodes managed by the second management node, and / or layers managed by the second management node. The method further includes: The first management node sends the DVM request to the second management node.
15. The method according to any one of claims 11-13, characterized in that, When performing memory consistency maintenance of the virtualization system, the requesting node sends a Distributed Virtual Memory (DVM) request to the first management node, including: The requesting node generates instructions when performing memory consistency maintenance of the virtualization system; The requesting node packages the instruction and the broadcast range information into the DVM request; The requesting node sends the DVM request to the first management node.
16. The method according to claim 15, characterized in that, The instructions include the Translation Backup Buffer (TLBI) instruction or the Cache Maintenance (IC) instruction.
17. The method according to any one of claims 11-13, 16, characterized in that, Also includes: The first management node collects M response messages from the M target nodes; The response information of each target node is used to indicate that the target node has completed memory consistency maintenance; The first management node sends information to the requesting node indicating that memory consistency maintenance is complete.
18. The method according to claim 17, characterized in that, Also includes: When the requesting node issues multiple DVM requests within a preset time, it generates a Data Synchronization Isolation DSB instruction. The DSB instruction is used to instruct the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information of the nodes corresponding to the multiple DVM requests.
19. The method according to any one of claims 11-13, 16, and 18, characterized in that, The first management node sends broadcast information to each of the M target nodes, including: The first management node sends broadcast information to each of the M target nodes using a masking method; wherein, the masking method is a method of masking nodes other than the M target nodes.
20. A method for maintaining memory consistency in a virtualization system, characterized in that, The method includes: The first management node receives a Distributed Virtual Memory (DVM) request from a requesting node, the DVM request including broadcast range information; The first management node parses the DVM request to obtain the broadcast range information, which indicates information about M target nodes; where M is a positive integer. The first management node sends a broadcast message to each of the M target nodes; the broadcast message is used to instruct each target node to perform memory consistency maintenance.
21. The method according to claim 20, characterized in that, The broadcast range information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, the layer corresponds to multiple physical cores.
22. The method according to claim 21, characterized in that, The first management node sends broadcast information to each of the M target nodes, including: When the first management node parses the broadcast range information to indicate the identifiers of M physical cores, it sends the broadcast information to each of the M target nodes. Alternatively, when the first management node parses the broadcast range information to indicate the layer identifier, it sends the broadcast information to each of the M target nodes in the layer.
23. The method according to claim 21 or 22, characterized in that, The broadcast range information indicates nodes that include nodes managed by the second management node, and / or layers managed by the second management node. The method further includes: The first management node sends the DVM request to the second management node.
24. The method according to any one of claims 20-22, characterized in that, Also includes: The first management node collects M response messages from the M target nodes; The response information of each target node is used to indicate that the target node has completed memory consistency maintenance; The first management node sends information to the requesting node indicating that memory consistency maintenance is complete.
25. The method according to any one of claims 20-22, characterized in that, The first management node sends broadcast information to each of the M target nodes, including: The first management node sends broadcast information to each of the M target nodes using a masking method; wherein, the masking method is a method of masking nodes other than the M target nodes.
26. A method for maintaining memory consistency in a virtualization system, characterized in that, The method includes: The requesting node generates instructions when performing memory consistency maintenance of the virtualization system; The requesting node packages the instruction and the broadcast range information set in the requesting node into a DVM request; The requesting node sends the DVM request to the first management node.
27. The method according to claim 26, characterized in that, The broadcast range information includes: the identifier of the physical core associated with the virtual machine running in the requesting node, and / or the identifier of the layer associated with the virtual machine running in the requesting node; wherein, the layer corresponds to multiple physical cores.
28. The method according to claim 26 or 27, characterized in that, The instructions include the Translation Backup Buffer (TLBI) instruction or the Cache Maintenance (IC) instruction.
29. The method according to any one of claim 26 or 27, characterized in that, The requesting node receives information from the first management node indicating that memory consistency maintenance is complete.
30. The method according to claim 29, characterized in that, Also includes: When the requesting node issues multiple DVM requests within a preset time, it generates a Data Synchronization Isolation DSB instruction. The DSB instruction is used to instruct the first management node to synchronously send information indicating that memory consistency maintenance is complete after collecting the response information of the nodes corresponding to the multiple DVM requests.