Address translation method, device, electronic device and storage medium

By optimizing the descriptor storage and management methods, the descriptor storage cost when there are a large number of users in large heterogeneous computing system-level chips is reduced, the real-time nature of address conversion and bus pipeline efficiency are improved, and the multi-user scenarios are adapted to multi-user scenarios.

CN119127737BActive Publication Date: 2025-07-08MOORE THREADS TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411088416.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-08-08
Publication Date
2025-07-08
Estimated Expiration
2044-08-08

AI Technical Summary

Technical Problem

In large heterogeneous computing system-level chips, when the number of users is large, the prior art solutions lead to excessive storage cost of descriptors that cannot be effectively reduced, and the address conversion real-timeness and bus pipeline efficiency are low.

Method used

By querying user information to obtain the starting storage address of the descriptor set, the position of the destination descriptor is determined using the positioning index, and the high-bit address and low-bit address are spliced for address conversion, reducing the number of descriptors used by the user, and optimizing the allocation and management of descriptor storage space.

Benefits of technology

It effectively reduces the storage cost of descriptors, improves the real-time nature of address conversion and bus pipeline efficiency, and adapts to address conversion scenarios of multiple users.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119127737B_ABST
    Figure CN119127737B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of address management, and provides an address conversion method, apparatus, electronic device, and storage medium. The method includes: querying user information according to a user identifier, where the user information includes the starting storage address of a descriptor set used by the user; obtaining the storage address of a target descriptor in the descriptor set according to the starting storage address of the descriptor set and a positioning index, and querying the high-order address included in the target descriptor based on this; splicing the high-order address and the low-order address to obtain a converted address; where the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor, and the storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive. This method can reduce the storage cost of descriptors when the number of users is large, and is more suitable for the address conversion scenario of multiple users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of address management technology, and in particular to an address conversion method, device, electronic device and storage medium. Background Art

[0002] For large heterogeneous computing system-on-chip (SOC), in scenarios such as virtualization, the conversion of address perspectives of different computing units is an important functional requirement. The general address management unit is complex to implement, the address description granularity is very small, and a certain amount of memory is required to store the page table, which results in the need to read the main memory during address conversion, reducing the efficiency of the bus pipeline. In addition, address conversion also requires more complex logic to implement, which reduces the real-time performance of address conversion.

[0003] In actual applications, faster and larger-granular address conversion is required, so some existing technical solutions propose a customized address conversion unit, in which descriptors used to describe physical spaces are stored, the physical spaces described by the descriptors are set in advance, and address conversion is performed by reading the descriptors. This solution sets a large number of descriptors that can describe all physical spaces for each user. When the number of users is large, the total number of descriptors is extremely large, which greatly increases the storage cost of the descriptors.

[0004] Therefore, how to reduce the storage cost of descriptors when the number of users is large so as to be suitable for multi-user address conversion scenarios has become a technical problem to be solved urgently in this field. Summary of the invention

[0005] In view of this, the present disclosure proposes an address conversion method, device, electronic device and storage medium. The method can reduce the storage cost of descriptors when the number of users is large, and is more suitable for multi-user address conversion scenarios.

[0006] According to one aspect of the present disclosure, an address conversion method is provided, the method comprising: querying user information of the user according to a user identifier included in an address conversion request initiated by the user, the user information including a starting storage address of a descriptor set used by the user; obtaining a storage address of a destination descriptor in the descriptor set according to the starting storage address of the descriptor set and a positioning index included in the address conversion request, the positioning index being used to determine a position of the destination descriptor in the descriptor set; querying a high-order address included in the destination descriptor according to the storage address of the destination descriptor; concatenating the high-order address and a low-order address included in the address conversion request to obtain a converted address; wherein the number of descriptors used by the user is equal to the ratio of the size of a physical space accessed by the user to the size of a physical space described by a single descriptor, and the storage addresses of multiple descriptors included in the descriptor set used by the same user are continuous.

[0007] In a possible implementation, the descriptor is stored in a descriptor storage space, and the size of the descriptor storage space is K×T×(1 + X)+Y, where K is equal to the ratio of the maximum physical space to the size of the physical space described by a single descriptor, and K is a positive integer; T represents the size of the descriptor storage space occupied by a single descriptor, and T is a positive integer; the descriptor storage space of K×T×1 is used by users of all user types, the descriptor storage space of K×T×X is used by users of the administrator type, the physical space accessed by a single user of the user type is less than the maximum physical space, the sum of the physical spaces accessed by all users of the user type is equal to the maximum physical space, the physical spaces accessed by different users of the user type do not overlap, the physical space accessed by each user of the administrator type includes the physical spaces accessed by all users of the user type, and the physical space accessed by a single user of the administrator type is equal to the maximum physical space; X is equal to the expected number of users of the administrator type, and X is an integer greater than or equal to 0; Y represents the size of the descriptor storage space for data migration, and Y is an integer greater than or equal to 0 and is an integer multiple of T.

[0008] In a possible implementation, the used descriptor further includes a used flag, and the method further includes: determining the size of the physical space accessed by the new user according to the request of the new user; determining the number of descriptors used by the new user according to the size of the physical space accessed by the new user and the size of the physical space described by a single descriptor; querying whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users according to the number of descriptors used by the new user; when a first space that meets the conditions is queried, writing the descriptors used by the new user in the first space, writing the high address of the physical space described by the descriptor and the used flag in the descriptors used by the new user; after writing the descriptors used by the new user in the first space, establishing the user information of the new user according to the start storage address of the set of descriptors used by the new user, the number of descriptors used by the new user, and the user identifier of the new user.

[0009] In a possible implementation, the start storage address of the set of descriptors used by the new user is continuous with the end storage address of the set of descriptors used by the existing user.

[0010] In a possible implementation, when a first space that meets the conditions is queried, writing the descriptor used by the new user in the first space includes: when there are multiple first spaces that meet the conditions, querying the maximum number of descriptors that each first space allows to store; when the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, writing the descriptor used by the new user in the first space.

[0011] In a possible implementation, the method further includes: according to the user identifier included in the request of the deleting user, querying the user information of the user to be deleted, and determining the set of descriptors used by the user to be deleted; clearing the used flag of each descriptor in the set of descriptors used by the user to be deleted, or changing the used flag of each descriptor in the set of descriptors used by the user to be deleted to an unused flag; clearing the user information of the user to be deleted.

[0012] In a possible implementation, when the descriptor set includes a used flag and is valid, the method further includes: every time a user is deleted, migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored; according to the starting storage address of each migrated valid descriptor set, updating the user information of the user corresponding to the valid descriptor set.

[0013] In a possible implementation, when the descriptor set includes a used flag and is valid, the method further includes: when no first space that meets the conditions is queried, migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored; according to the starting storage address of each migrated valid descriptor set, updating the user information of the user corresponding to the valid descriptor set.

[0014] In a possible implementation, migrating the set of valid descriptors in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are stored continuously includes: taking the first valid descriptor set in the descriptor storage space as the current descriptor set, and determining whether there is unused space before the starting storage address of the current descriptor set; when there is unused space, determining the migration method of the current descriptor set according to the relationship between the unused space and the storage space occupied by the current descriptor set, where the migration method includes a direct migration method and an indirect migration method, migrating the current descriptor set according to the determined migration method, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps; when there is no unused space, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps.

[0015] According to another aspect of the present disclosure, there is provided an address conversion device, the device including: a first query module, configured to query user information of a user according to a user identifier included in an address conversion request initiated by the user, where the user information includes the starting storage address of a descriptor set used by the user; a first determination module, configured to obtain the storage address of a target descriptor in the descriptor set according to the starting storage address of the descriptor set and a positioning index included in the address conversion request, where the positioning index is used to determine the position of the target descriptor in the descriptor set; a second query module, configured to query a high-order address included in the target descriptor according to the storage address of the target descriptor; and a splicing module, configured to splice the high-order address and a low-order address included in the address conversion request to obtain a converted address; where the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor, and the storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive.

[0016] In a possible implementation, the descriptor is stored in a descriptor storage space, and the size of the descriptor storage space is K×T×(1 + X)+Y, where K is equal to the ratio of the maximum physical space to the size of the physical space described by a single descriptor, and K is a positive integer; T represents the size of the descriptor storage space occupied by a single descriptor, and T is a positive integer; the descriptor storage space of K×T×1 is used by users of all user types, the descriptor storage space of K×T×X is used by users of the administrator type, the physical space accessed by a single user of the user type is less than the maximum physical space, the sum of the physical spaces accessed by all users of the user type is equal to the maximum physical space, the physical spaces accessed by different users of the user type do not overlap, the physical space accessed by each user of the administrator type includes the physical spaces accessed by all users of the user type, and the physical space accessed by a single user of the administrator type is equal to the maximum physical space; X is equal to the expected number of users of the administrator type, and X is an integer greater than or equal to 0; Y represents the size of the descriptor storage space for data migration, and Y is an integer greater than or equal to 0 and is an integer multiple of T.

[0017] In a possible implementation, the used descriptor further includes a used flag, and the device further includes: a second determination module, configured to determine the size of the physical space accessed by the new user according to the request of the new user; a third determination module, configured to determine the number of descriptors used by the new user according to the size of the physical space accessed by the new user and the size of the physical space described by a single descriptor; a third query module, configured to query whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users according to the number of descriptors used by the new user; a first writing module, configured to, when a first space that meets the conditions is queried, write the descriptors used by the new user in the first space, and write the high address of the physical space described by the descriptor and the used flag in the descriptors used by the new user; a first establishment module, configured to, after writing the descriptors used by the new user in the first space, establish the user information of the new user according to the starting storage address of the set of descriptors used by the new user, the number of descriptors used by the new user, and the user identifier of the new user.

[0018] In a possible implementation, the starting storage address of the set of descriptors used by the new user is continuous with the ending storage address of the set of descriptors used by the existing user.

[0019] In a possible implementation, when a first space that meets the conditions is queried, writing the descriptor used by the new user in the first space includes: when there are multiple first spaces that meet the conditions, querying the maximum number of descriptors that each first space allows to store; when the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, writing the descriptor used by the new user in this first space.

[0020] In a possible implementation, the apparatus further includes: a fourth query module, configured to query the user information of the user to be deleted according to the user identifier included in the request to delete the user, and determine the set of descriptors used by the user to be deleted; a first clearing module, configured to clear the used flag of each descriptor in the set of descriptors used by the user to be deleted, or change the used flag of each descriptor in the set of descriptors used by the user to be deleted to an unused flag; a second clearing module, configured to clear the user information of the user to be deleted.

[0021] In a possible implementation, when the descriptor set includes a used flag and is valid, the apparatus further includes: a first migration module, configured to migrate the valid descriptor sets in the descriptor storage space every time a user is deleted, so that all the valid descriptor sets in the descriptor storage space are continuously stored; a first update module, configured to update the user information of the user corresponding to each valid descriptor set according to the starting storage address of each migrated valid descriptor set.

[0022] In a possible implementation, when the descriptor set includes a used flag and is valid, the apparatus further includes: a second migration module, configured to migrate the valid descriptor sets in the descriptor storage space when no first space that meets the conditions is queried, so that all the valid descriptor sets in the descriptor storage space are continuously stored; a second update module, configured to update the user information of the user corresponding to each valid descriptor set according to the starting storage address of each migrated valid descriptor set.

[0023] In a possible implementation, migrating the set of valid descriptors in the descriptor storage space such that all the valid descriptor sets in the descriptor storage space are stored continuously includes: taking the first valid descriptor set in the descriptor storage space as the current descriptor set, and determining whether there is unused space before the starting storage address of the current descriptor set; when there is unused space, determining the migration method of the current descriptor set according to the size relationship between the unused space and the storage space occupied by the current descriptor set, where the migration method includes a direct migration method and an indirect migration method, migrating the current descriptor set according to the determined migration method, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps; when there is no unused space, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps.

[0024] According to another aspect of the present disclosure, there is provided an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein, the processor is configured to implement the above method when executing the instructions stored in the memory.

[0025] According to another aspect of the present disclosure, there is provided a non-volatile computer-readable storage medium, on which computer program instructions are stored, wherein the computer program instructions implement the above method when executed by a processor.

[0026] According to another aspect of the present disclosure, there is provided a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code, when the computer-readable code runs in the processor of an electronic device, the processor in the electronic device executes the above method.

[0027] According to the address translation method of the embodiments of the present disclosure, based on the user identifier included in the address translation request initiated by the user, the user information of the user is queried to obtain the starting storage address of the descriptor set used by the user; since the storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive, and the positioning index is used to determine the position of the target descriptor in the descriptor set, therefore, based on the starting storage address of the descriptor set and the positioning index included in the address translation request, the storage address of the target descriptor in the descriptor set can be obtained; according to the storage address of the target descriptor, the high-order address included in the target descriptor is queried, and the high-order address and the low-order address included in the address translation request are concatenated to obtain the translated address. Since the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor, the number of descriptors used by a single user is reduced, and when the number of users is large, the total number of descriptors used by all users can be greatly reduced, thereby reducing the storage cost of the descriptors and being more adaptable to the address translation scenario of multiple users.

[0028] This method does not need to access the main memory, so it can improve the bus pipeline efficiency, can be implemented with a simpler logic, and can improve the real-time performance of address translation.

[0029] According to the following detailed description of the exemplary embodiments with reference to the accompanying drawings, other features and aspects of the present disclosure will become clear. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] The drawings included in the specification and constituting a part of the specification show the exemplary embodiments, features and aspects of the present disclosure together with the specification, and are used to explain the principles of the present disclosure.

[0031] Figure 1a FIG. shows an exemplary application scenario of the address translation method according to the embodiments of the present disclosure.

[0032] Figure 1b FIG. shows the corresponding relationship between the contents stored in the user information table and the descriptor table according to the embodiments of the present disclosure.

[0033] Figure 2a FIG. shows a schematic diagram of the flow of the address translation method according to the embodiments of the present disclosure.

[0034] Figure 2b FIG. shows a schematic diagram of the flow of the address translation method according to the embodiments of the present disclosure.

[0035] Figure 3 FIG. shows a schematic diagram of the data structure of the user information according to the embodiments of the present disclosure.

[0036] Figure 4A schematic diagram showing a data structure of an address to be converted, a destination descriptor, and a converted address according to an embodiment of the present disclosure.

[0037] Figure 5 An example of a descriptor stored in a descriptor storage space according to an embodiment of the present disclosure is shown.

[0038] Figure 6a An example of a descriptor stored in a descriptor storage space after a user is deleted according to an embodiment of the present disclosure is shown.

[0039] Figure 6b An example of real-time migration of a descriptor according to an embodiment of the present disclosure is shown.

[0040] Figure 7 A schematic diagram showing the structure of an address conversion device according to an embodiment of the present disclosure.

[0041] Figure 8 A block diagram of an electronic device 1900 according to an embodiment of the present disclosure is shown. Detailed Description of the Embodiments

[0042] Various exemplary embodiments, features, and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the drawings denote elements having the same or similar functions. Although various aspects of the embodiments are shown in the drawings, the drawings are not necessarily drawn to scale unless otherwise specified.

[0043] The term "exemplary" used herein means "serving as an example, embodiment, or illustration". Any embodiment described herein as "exemplary" is not necessarily to be construed as superior or better than other embodiments.

[0044] In addition, for a better description of the present disclosure, numerous specific details are given in the following detailed description. Those skilled in the art should understand that the present disclosure can be implemented without some of these specific details. In some instances, methods, means, elements, and circuits well-known to those skilled in the art are not described in detail so as to highlight the gist of the present disclosure.

[0045] The address conversion method of an address conversion unit customized by the prior art is introduced below.

[0046] The prior art solution reserves the maximum physical space access capability for each user, that is, each user separately uses a descriptor set that can describe all physical spaces. Each user can correspond to a register group for storing the descriptor set used by that user.

[0047] The starting storage address of the descriptor set used by each user and the number of descriptors included in the descriptor set are fixed. The number of descriptors used by a user depends on the size of the physical space accessed by the user and the address description granularity. This scheme is based on the premise that the size of the physical space accessed by each user is equal to the maximum value of the physical space. Therefore, the number of descriptors used by different users is the same. The address description granularity indicates the size of the physical space that can be described by a single descriptor.

[0048] For any user's address mapping request, the storage address of the target descriptor to be queried can be calculated based on the starting storage address of the descriptor set used by the user and the positioning index included in the address mapping request. The high-order address can be obtained by querying the target descriptor, and the converted address can be obtained by concatenating the high-order address with the low-order address included in the address mapping request.

[0049] The scheme sets the total number of descriptors that can be stored in the register group as follows:

[0050] Total number of descriptors = maximum value of physical space / address description granularity × number of users;

[0051] If the number of users is large and the address description granularity is relatively small, the storage resources of the descriptor will be consumed very much, so that the cost is too high to be implemented.

[0052] For example, in a certain design, the maximum number of users is 120, the maximum physical space is 80GB, and the address description granularity is 128MB, then the total number of descriptors = 80×1024 / 128×120 = 76800. Assuming that each descriptor requires 4B of storage space, the storage space of the register group used to store the descriptors must be at least 300KB.

[0053] There are more and more users who need to support address conversion on SOC, and the physical spaces that different users actually need to access are not consistent. Even when the same user uses different applications, the physical spaces that actually need to be accessed are not consistent. In the case that the cost of the existing technology is too high and the technical effect is inconsistent with the needs of the application scenario, how to reduce the storage cost of the descriptor when the number of users is large to be suitable for the address conversion scenario of multiple users has become a technical problem that needs to be solved urgently in this field.

[0054] In view of this, the present disclosure proposes an address conversion method, device, electronic device and storage medium. The method can reduce the storage cost of descriptors when the number of users is large, and is more suitable for multi-user address conversion scenarios.

[0055] Figure 1a An exemplary application scenario of the address conversion method according to an embodiment of the present disclosure is shown.

[0056] likeFigure 1a As shown, the address translation method of the present disclosure can be executed by an address translation device. The address translation device can be disposed on an SOC. The address translation device may include a descriptor storage space for storing descriptors, and a user information storage space for storing user information. The user information in the user information storage space and the set of descriptors used by the user in the descriptor storage space are in one-to-one correspondence. Figure 1b Fig. shows the corresponding relationship between the content stored in the user information storage space and the descriptor storage space according to an embodiment of the present disclosure.

[0057] As Figure 1b shown, the user information of user 0 corresponds to the set of descriptors used by user 0 in the descriptor storage space, the user information of user 1 corresponds to the set of descriptors used by user 1 in the descriptor storage space, and the user information of user 2 corresponds to the set of descriptors used by user 2 in the descriptor storage space. The user information can be tightly arranged in the user information storage space, or arranged at a certain interval. The descriptors used by the same user are tightly arranged in the descriptor storage space, and the sets of descriptors used by different users can be tightly arranged or spaced in the descriptor storage space. The present disclosure embodiment does not limit the storage manner of the user information in the user information storage space and the storage manner of the descriptors in the descriptor storage space.

[0058] The SOC can run multiple virtual machines. Each virtual machine can be used by a user. When the user uses the application in the virtual machine, an address translation request can be generated. The address translation request is received by the address translation device. The address translation device queries the user information in the user information storage space in response to the address translation request, queries the descriptors in the descriptor storage space according to the queried user information and the address translation request, and obtains the translated address according to the address information recorded in the queried descriptors and the address mapping request, thereby completing the address translation.

[0059] The translated address can be further sent to other modules (not shown) downstream that need to use the address, and is used when the other modules perform data reading and writing.

[0060] Those skilled in the art should understand that in the embodiments of the present disclosure, the address translation request can also be generated by other objects other than the virtual machine, and the present disclosure embodiment does not limit the generator of the address translation request.

[0061] Figure 2a and Figure 2b Fig. shows a schematic diagram of the flow of the address translation method according to an embodiment of the present disclosure.

[0062] As Figure 2a and Figure 2b shown, in a possible implementation manner, the present disclosure proposes an address translation method, the method includes:

[0063] Step S21: Query the user information of the user according to the user identifier included in the address conversion request initiated by the user. The user information includes the starting storage address of the descriptor set used by the user.

[0064] Step S22: Obtain the storage address of the target descriptor in the descriptor set according to the starting storage address of the descriptor set and the positioning index included in the address conversion request. The positioning index is used to determine the position of the target descriptor in the descriptor set.

[0065] Step S23: Query the high-order address included in the target descriptor according to the storage address of the target descriptor.

[0066] Step S24: Concatenate the high-order address and the low-order address included in the address conversion request to obtain the converted address.

[0067] Wherein, the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor. The storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive.

[0068] Wherein, the address conversion request initiated by the user may include two parts. The first part is the user identifier (Identity document, ID), and the user identifiers of different users are different. The second part is the address to be converted. The address to be converted further includes two parts, namely the low-order address and the positioning index. The low-order address can be directly used as the low-order address in the converted address, and the positioning index is used to determine the position of the target descriptor (i.e., the descriptor storing the high-order address in the converted address) in the descriptor set.

[0069] It should be understood that in the embodiments of the present disclosure, the descriptors can be stored in the descriptor storage space, and the size of the descriptor storage space can be set in advance. Combining the maximum value of the physical space and the preset address description granularity (i.e., the size of the physical space described by a single descriptor), the number of bits of the high-order address and the low-order address can be determined in advance. For example, assume that the maximum value of the physical space is 80 GB and the address description granularity is 128 MB. Then the number of descriptors required to completely describe the largest physical space = 80×1024 / 128 = 640. In the embodiments of the present disclosure, the size of the physical space that the user needs to access can be set according to the actual needs of the user, and is usually less than the maximum value of the physical space. When setting the number of bits of the positioning index, it can be set according to the size of the physical space that the user needs to access being equal to the maximum value of the physical space. Therefore, the positioning index requires at least 10 bits (2 9 <640<2 10 )

[0070] In one example, the location index may be stored in the high-order bits of the address to be translated, and the low-order address may be stored in the low-order bits of the address to be translated. In this case, the information stored in the highest 10 bits of the address bits to be translated is the location index. The part other than the location index is the low-order address.

[0071] Each user information may store the starting storage address of the set of descriptors used by the same user. The number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the address description granularity. The address description granularity of the descriptor may be preset. Assuming that the address description granularity is T and the size of the physical space that a certain user needs to access is S1 (S1 and T have the same unit), then the number of descriptors used by this user may be equal to S1 / T.

[0072] Figure 3 A schematic diagram showing the data structure of user information according to an embodiment of the present disclosure.

[0073] Such as Figure 3 As shown, the user information includes 32 bits, where the starting storage address of the set of descriptors used by the user includes 14 bits and is stored in bits 16 to 29; other bits may store more user-related information. For example, bits 0 to 9 may be used to store the number of descriptors used by the user, etc. The specific content of the storage of user information in the embodiments of the present disclosure is not limited.

[0074] When storing user information, the user identifier may be used as the index of the user information. In step S21, according to the user identifier included in the address conversion request initiated by the user, the user information of this user can be queried, so as to obtain the starting storage address of the set of descriptors used by this user.

[0075] In step S22, according to the location index, the position of the target descriptor in the set of descriptors can be determined. The storage addresses of multiple descriptors used by the same user are consecutive. Therefore, combining the position of the target descriptor in the set of descriptors, the starting storage address of the set of descriptors, and the size of the physical space described by a single descriptor, the storage address of the target descriptor can be determined.

[0076] Assuming that the address description granularity is T, the starting storage address of the set of descriptors used by the user is S2 (S2 and T have the same unit), and when the target descriptor is the i-th descriptor in the set of descriptors, the location index can indicate the value of i. Then the storage address of the target descriptor may be [S2+(i - 1)×T, S2+i×T].

[0077] The total number of bits of the converted address is preset, and the sum of the number of bits of the high-order address and the number of bits of the low-order address is equal to the total number of bits of the converted address. Therefore, according to the number of bits of the low-order address included in the address conversion request and the total number of bits of the converted address, the number of bits of the high-order address can be determined first. In one example, the high-order address can be stored in the high bits of the destination descriptor. In this case, in step S23, the destination descriptor can be found according to the storage address of the destination descriptor, and then according to the number of bits of the high-order address, the address stored in the corresponding number of bits queried starting from the highest bit of the destination descriptor is the high-order address included in the destination descriptor. In step S24, by concatenating the high-order address and the low-order address included in the address conversion request, the converted address can be obtained.

[0078] Figure 4 Schematic diagram showing the data structures of the address to be converted, the destination descriptor, and the converted address according to an embodiment of the present disclosure.

[0079] As Figure 4 shown, the address to be converted includes a total of 36 bits, the low-order address includes 27 bits, and is stored at bits 0 to 26; the positioning index includes 10 bits and is stored at bits 27 to 36.

[0080] Assume that the converted address includes 48 bits. When the low-order address includes 27 bits, the number of bits of the high-order address can be equal to 48 - 27 = 21. The destination descriptor includes 32 bits. Therefore, the address stored at bits 11 to 31 of the destination descriptor is the high-order address. The destination descriptor also records the address description granularity.

[0081] In the converted address obtained by concatenating the low-order address and the high-order address, the low-order address includes 27 bits and is stored at bits 0 to 26; the high-order address includes 21 bits and is stored at bits 27 to 47. In this way, the address conversion operation can be implemented.

[0082] Those skilled in the art should understand that the data structure of the above-mentioned destination descriptor is applicable to any descriptor. The remaining bits in the destination descriptor can be used to store more information related to the destination descriptor. For example, bit 0 can store a used flag indicating whether the current descriptor has been used, etc. Those skilled in the art should understand that the destination descriptor should at least include the high-order address, and the present disclosure embodiment does not limit the specific content included in the destination descriptor.

[0083] Those skilled in the art should understand that the storage manner of the low-order address and the positioning index in the address to be converted, and the storage manner of the high-order address in the destination descriptor should not be limited to Figure 4In the manner shown, as long as the low-order address and the positioning index can be accurately found in the address conversion request, and the high-order address can be accurately found in the destination descriptor, the embodiments of the present disclosure do not limit the storage method of the low-order address and the positioning index in the address to be converted, nor the storage method of the high-order address in the destination descriptor.

[0084] According to the address conversion method of the embodiments of the present disclosure, according to the user identifier included in the address conversion request initiated by the user, query the user information of the user to obtain the starting storage address of the descriptor set used by the user; since the storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive, and the positioning index is used to determine the position of the destination descriptor in the descriptor set, the storage address of the destination descriptor in the descriptor set can be obtained according to the starting storage address of the descriptor set and the positioning index included in the address conversion request; according to the storage address of the destination descriptor, query the high-order address included in the destination descriptor, and splice the high-order address and the low-order address included in the address conversion request to obtain the converted address. Since the number of descriptors used by a user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor, the number of descriptors used by a single user is reduced. When the number of users is large, the total number of descriptors used by all users can be greatly reduced, thereby reducing the storage cost of the descriptors and being more suitable for the address conversion scenario of multiple users.

[0085] This method does not need to access the main memory, so it can improve the efficiency of the bus pipeline, can be implemented with a simpler logic, and can improve the real-time performance of address conversion.

[0086] The following introduces the setting method of the size of the descriptor storage space in the embodiments of the present disclosure.

[0087] In a possible implementation manner, the descriptor is stored in the descriptor storage space, and the size of the descriptor storage space is K×T×(1 + X)+Y, where,

[0088] K is equal to the ratio of the maximum value of the physical space to the size of the physical space described by a single descriptor, and K is a positive integer;

[0089] T represents the size of the descriptor storage space occupied by a single descriptor, and T is a positive integer;

[0090] The descriptor storage space of K×T×1 is used by users of all user types, and the descriptor storage space of K×T×X is used by users of the administrator type. The physical space accessed by a single user of the user type is less than the maximum physical space. The sum of the physical spaces accessed by all users of all user types is equal to the maximum physical space. The physical spaces accessed by users of different user types do not overlap. The physical space accessed by each user of the administrator type includes the physical spaces accessed by all users of all user types. The physical space accessed by a single user of the administrator type is equal to the maximum physical space;

[0091] X is equal to the expected number of users of the administrator type, and X is an integer greater than or equal to 0;

[0092] Y represents the size of the descriptor storage space for data migration, and Y is a number greater than or equal to 0 and an integer multiple of T.

[0093] For example, the descriptors of the present disclosure can be stored in the descriptor storage space. The total number of descriptors that can be stored in the descriptor storage space can be preset. There may be two types of users, the user type and the administrator type. A user cannot access the physical space accessed by other users (that is, the physical spaces accessed by users of different user types do not overlap), and an administrator can access all the physical spaces that a user can access. Therefore, the physical space accessed by each user of the user type is less than the maximum physical space, and the physical space accessed by each user of the administrator type is equal to the maximum physical space.

[0094] The address space where the converted address is located is often determined and equal to the maximum physical space. There is a certain coverage and exclusivity in the address spaces accessed by different users (related to the type of user, and examples of coverage and exclusivity are given later). Therefore, the sum of the physical spaces accessed by all users is less than or equal to the maximum physical space. In this case, the present disclosure sets the size of the descriptor storage space in the following manner:

[0095] The storage space of the descriptor = K×T×(1 + X) + Y;

[0096] K = the maximum physical space / the size of the physical space described by a single descriptor. K descriptors can completely describe all the physical space, and K is a positive integer.

[0097] The address translation method of the present disclosure serves at least users of the user type. The physical space accessed by a single user is less than the maximum physical space, and the sum of the physical spaces accessed by all users is equal to the maximum physical space. Therefore, the maximum value of the total number of descriptors actually used by all users is equal to K. That is to say, the descriptor storage space should be able to store at least K×1 descriptors for all users of the user type. The size of the descriptor storage space occupied by a single descriptor is T, and T is a positive integer. Therefore, at least K×T×1 of descriptor storage space is required for all users of the user type.

[0098] Optionally, the address translation method of the present disclosure can also serve users of the administrator type. X represents the expected number of administrators, and X is an integer greater than or equal to 0. When not serving users of the administrator type, X can be equal to 0, and in this case, the storage resources required for the descriptor storage space can be further reduced. When serving users of the administrator type, X can be greater than 0, and in this case, the applicable scenarios of the address translation method can be extended. The specific value of X in the embodiments of the present disclosure is not limited.

[0099] An administrator can access the physical space that all users need to access. That is, the physical space accessed by a single administrator user is equal to the maximum physical space, and the physical space accessed by each administrator user includes the physical space accessed by all user type users. Since the maximum value of the total number of descriptors actually used by all users is equal to K, each administrator only needs to reserve a storage space that can store K descriptors. In this case, when the expected number of administrators is X, the descriptor storage space needs to store an additional K×X descriptors for the administrators to use, that is, K×T×X of descriptor storage space is used by users of the administrator type.

[0100] It should be understood that the descriptors used by each user are only for the user's own use, but the physical space described by the descriptors used by the administrator and any one user overlaps (covers), and the physical spaces described by the descriptors used by different users are different (exclusive).

[0101] Optionally, the address translation method of the present disclosure can also have the function of migrating data in the descriptor storage space. Y represents the size of the descriptor storage space used for data migration, and Y is an integer greater than or equal to 0 and is an integer multiple of T. When data migration is not required, Y can be equal to 0, and in this case, the storage resources required for the descriptor storage space can be further reduced. When adding the function of data migration, Y can be greater than 0, and in this case, the utilization rate of the descriptors in the descriptor storage space can be improved.

[0102] Those skilled in the art should understand that if it is desired to migrate as much data as possible each time data migration is performed, then Y can be equal to K×T; if it is desired to minimize the storage resource consumption while retaining the data migration function, Y can be set to a number less than K×T. For example, assuming that the physical space accessed by a single user in the application scenario does not exceed 1 / W (W>1) of the maximum physical space, then Y can be equal to 1 / W of the maximum physical space. The embodiments of the present disclosure do not limit the specific value of Y.

[0103] In one example, assuming K = 640, X = 1, Y = 640, T = 4 (unit: Bit), then the total number of descriptors is reduced to 640×(1 + 2)+640 = 2560, and the descriptor storage space only requires 2560×4 Bit = 10KB, greatly saving the storage resource consumption for storing descriptors.

[0104] Exemplarily, data migration refers to migrating the set of valid descriptors that are not continuously stored in the descriptor storage space to a suitable location so that the set of valid descriptors in the descriptor storage space is continuously stored. In this case, the storage space where new descriptors can be continuously stored will become larger and can be allocated to users accessing a larger address space. An exemplary implementation manner of data migration is given later.

[0105] During the execution of the address translation method, a new user may start using the virtual machine. The virtual machine may send a request to create a new user, and the request may include the user identifier, type, and the size of the physical space accessed by the new user. The address translation method can allocate a descriptor storage space for the new user and create user information according to the request for creating a new user.

[0106] The following introduces an exemplary allocation manner of the descriptor storage space.

[0107] In a possible implementation manner, the used descriptors further include a used flag, and the method further includes:

[0108] According to the number of descriptors used by the new user, query whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users;

[0109] When a first space meeting the conditions is queried, write the descriptors used by the new user into this first space, and write the high - order address of the physical space described by the descriptor and the used flag into the descriptors used by the new user;

[0110] After writing the descriptors used by the new user into this first space, establish the user information of the new user according to the starting storage address of the set of descriptors used by the new user, the number of descriptors used by the new user, and the user identifier of the new user.

[0111] For example, the request of a newly created user may carry the size of the physical space accessed by the user. Therefore, the size of the physical space accessed by the new user can be determined according to the request of the newly created user. According to the ratio of the size of the physical space accessed by the new user to the size of the physical space described by a single descriptor, the number of descriptors used by the new user can be obtained. For example, when the size of the physical space accessed by the new user is 612 MB and the size of the physical space described by a single descriptor is 128 MB, the number of descriptors used by the new user can be equal to 612 MB / 128 MB = 4.

[0112] When any descriptor is used by a certain user, a used flag can be added to the descriptor. At this time, the storage space occupied by the descriptor has been used by the user. Correspondingly, when the user no longer uses the descriptor, the used flag included in the descriptor can be cleared. At this time, the storage space occupied by the descriptor is not used by the user and can continue to store new descriptors. Therefore, whether the used flag is included can be used as a basis for judging whether the storage space occupied by the descriptor is used by the user.

[0113] The used flag can be located at a specific bit number of the descriptor. For example, Figure 4 as shown, it can be located at the 0th bit. The used flag can be "1". The embodiments of the present disclosure do not limit the specific setting method of the used flag.

[0114] Figure 5 An example of the descriptor stored in the descriptor storage space according to an embodiment of the present disclosure is shown.

[0115] For example, Figure 5 as shown, assume that one storage location of the descriptor storage space can exactly store 1 descriptor, and the content stored in the 1st to 4th storage locations includes a used flag. Therefore, the 1st to 4th storage locations have stored descriptors used by the user. The content stored in the 5th to 9th storage locations does not include a used flag. Therefore, the 5th to 9th storage locations are not used.

[0116] In this case, according to the number of descriptors used by the new user, it can be queried whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users. For example, in Figure 5 the example, if the number of descriptors used by the new user is 4, the first space can be the space including the 5th to 9th storage locations.

[0117] When the first space that meets the conditions is found, write the descriptor used by the new user in this first space, and write the high - order address of the physical space described by the descriptor and the used flag in the descriptor used by the new user. Optionally, when writing the descriptor in the first space, it can be written starting from the starting storage address of the first space, so that after writing the descriptor used by the user, the space in the descriptor storage space that can continuously store descriptors and is not used by the user is larger. For example, 4 descriptors used by the new user can be written in the 5th to 8th storage positions of the first space, and the high - order address of the physical space described by the descriptor and the used flag are written in each descriptor. Among them, the physical space described by the descriptor used by the new user is different from the physical space described by the descriptor used by the existing user; the physical spaces described by different descriptors used by the same user are different. The physical spaces described by different descriptors can be continuous or discontinuous, and the present disclosure does not limit this.

[0118] After writing the descriptor used by the new user in the first space, according to the starting storage address of the set of descriptors used by the new user, the number of descriptors used by the new user, and the user identifier of the new user, the user information of the new user can be established. For example, Figure 5 Taking it as an example, after writing the descriptors of the new user in the 5th to 8th storage positions, the starting storage address of the set of descriptors used by the new user is also the starting storage address of the 5th storage position. According to this starting storage address, the number of descriptors used by the new user (equal to 4), and the user identifier of the new user, the user information of the new user can be established. Among them, the user identifier of the new user is used as the index of the user information of the new user and may not be included in the user information of the new user. The number of descriptors used by the user is used when deleting the user and during data migration. Examples of deleting the user and data migration are given later.

[0119] In this way, the writing of the descriptor of the new user and the establishment of the user information can be completed.

[0120] Those skilled in the art should understand that when creating user information, the user information may not include the number of descriptors used by the user either. In this case, the address conversion method can still complete the address conversion normally. The embodiments of the present disclosure do not limit whether the user information must include the number of descriptors used by the user.

[0121] The address conversion method of the present disclosure can realize the dynamic use of the descriptor storage space according to the actual needs of each user by introducing user information in cooperation with descriptors, so as to realize the efficient and flexible use of descriptor storage resources. When the maximum value of the physical space is fixed, adding a user only requires adding a piece of user information to store the starting storage address of the set of descriptors used by the user. Therefore, the actual overhead of adding a new user is very small.

[0122] In a possible implementation, the starting storage address of the descriptor set used by the new user is consecutive with the ending storage address of the descriptor set used by the existing user.

[0123] For example, an existing user refers to a user who is still using a virtual machine. The descriptor set used by such a user is still stored in the descriptor storage space, and the descriptor set includes a used flag. The starting storage address of the descriptor set used by the new user and the ending storage address of the descriptor set used by the existing user can be consecutive. Taking Figure 5 as an example, the ending storage address of the descriptor set used by the existing user can be the 4th storage location. If the descriptor set of the new user is stored in the descriptor storage space, it can start being stored from the 5th storage location, so that the starting storage address of the descriptor set used by the new user is consecutive with the ending storage address of the descriptor set used by the existing user.

[0124] In this case, the descriptor sets used by each user are closer in the descriptor storage space, making the unused storage space in the descriptor storage space that can continuously store descriptors larger.

[0125] Those skilled in the art should understand that even if the starting storage address of the descriptor set used by the new user and the ending storage address of the descriptor set used by the existing user are not consecutive, when the descriptor storage space is large, it does not affect the storage of the descriptors used by the new user. If the first space cannot be found, data migration can be performed. The embodiments of the present disclosure do not limit whether the starting storage address of the descriptor set used by the new user and the ending storage address of the descriptor set used by the existing user are consecutive.

[0126] In a possible implementation, when a first space that meets the conditions is found, writing the descriptors used by the new user into the first space includes:

[0127] When there are multiple first spaces that meet the conditions, query the maximum number of descriptors that each first space allows to store;

[0128] When the maximum number of descriptors that any one of the first spaces allows to store is equal to the number of descriptors used by the new user, write the descriptors used by the new user into the first space.

[0129] For example, if the starting storage address of the descriptor set used by the new user and the ending storage address of the descriptor set used by the existing user are not consecutive, or some of the descriptor sets are invalid, the unused storage space in the descriptor storage space will be divided into multiple segments. Such as Figure 1bAs shown, unused storage space 1, unused storage space 2, and unused storage space 3 are discontinuous. In this case, when querying for the first space in the descriptor storage space, multiple first spaces that meet the conditions may be found. For example, unused storage space 1 can be used as the 1st first space, unused storage space 2 can be used as the 2nd first space, and unused storage space 3 can be used as the 3rd first space.

[0130] The sizes of the unused storage spaces may be different, so the sizes of the first spaces can be different. It should be understood that if a certain first space (such as unused storage space 2) has descriptor sets used by existing users (such as the descriptor set used by user 0 and the descriptor set used by user 2) stored before and after it, and the maximum number of descriptors that this first space allows to store is exactly equal to the number of descriptors used by the new user, then after using this first space to store the descriptors used by the new user (such as user 3), the descriptor sets used by user 0, the descriptor set used by user 2, and the descriptor set used by user 3 are stored continuously, which can improve the utilization rate of the descriptor storage space. Therefore, when there are multiple first spaces that meet the conditions, the maximum number of descriptors that each first space allows to store can be queried; when the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, write the descriptors used by the new user into this first space.

[0131] If the maximum number of descriptors that all first spaces allow to store is not equal to the number of descriptors used by the new user, then the smallest first space can be selected to write the descriptors used by the new user, so that after writing the descriptors used by the new user, the descriptors in the descriptor storage space can be stored continuously and the unused space not used by other users is larger.

[0132] An exemplary method for deleting a user is introduced below.

[0133] In a possible implementation, the method further includes:

[0134] According to the user identifier included in the request to delete the user, query the user information of the user to be deleted, and determine the descriptor set used by the user to be deleted;

[0135] Clear the used flag of each descriptor in the descriptor set used by the user to be deleted, or change the used flag of each descriptor in the descriptor set used by the user to be deleted to an unused flag;

[0136] Clear the user information of the user to be deleted.

[0137] For example, during the execution of the address translation method, some existing users may no longer use the virtual machine. At this time, the descriptors of this user stored in the descriptor storage space and the user information of this user stored in the user information storage space need to be cleared. The virtual machine can send a request to delete a user, and the request can include the user identifier of the user to be deleted.

[0138] Based on the request to delete a user, the address translation method can query the user information of the user to be deleted. According to the starting storage address of the set of descriptors used by the user recorded in the user information and the number of descriptors used by the user, the position of the set of descriptors used by the user to be deleted in the descriptor storage space can be determined. The set of descriptors used by the user to be deleted can be found according to the determined position, and the used flag of each descriptor in the set of descriptors used by the user to be deleted can be directly cleared; alternatively, the used flag of each descriptor in the set of descriptors used by the user to be deleted can be changed to an unused flag. For example, when the used flag is "1", the unused flag can be "0", as long as each descriptor in the set of descriptors used by the user to be deleted no longer stores the used flag. In this case, the storage space originally occupied by the set of descriptors used by the user to be deleted can be used to store the descriptors used by new users.

[0139] Correspondingly, the user information of the user to be deleted in the user information storage space can be cleared, so that the user information storage space can record the user information of more users.

[0140] The operation of deleting a user may cause the unused storage space in the descriptor storage space to be no longer continuous. If the unused storage space in the descriptor storage space is too fragmented, it may cause that when creating a new user of the user type, no suitable first space can be found in the descriptor storage space. Figure 6a An example of the descriptors stored in the descriptor storage space after deleting a user according to an embodiment of the present disclosure is shown.

[0141] As Figure 6a shown, assume that the sets of descriptors used by User 1, User 2, User 3, User 4, and User 5 are stored continuously. If User 2 and User 4 are deleted, the storage spaces originally occupied by the sets of descriptors used by User 2 and User 4 are released. If a new user is to be created, but the physical space accessed by the new user is greater than the sum of the physical spaces that can be described by any continuously stored descriptors in the descriptor storage space, there is no way to write the descriptors used by the new user in the descriptor storage space. Therefore, the address translation method of the present disclosure also proposes to perform data migration on the descriptors, so that the space in the descriptor storage space where descriptors can be continuously stored and is not used by users is larger.

[0142] An exemplary method of data migration is introduced below.

[0143] In a possible implementation, the descriptor set is valid when including the used flag, and the method further includes:

[0144] For each user deleted, migrate the valid descriptor set in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored;

[0145] According to the starting storage address of each valid descriptor set after migration, update the user information of the user corresponding to the valid descriptor set.

[0146] For example, the storage space for data migration can be set at the end of the descriptor storage space. If the storage space for data migration is relatively small, such as less than the maximum physical space, the number of descriptors that can be migrated at one time will be relatively small. If there are too many descriptors to be migrated, it will cause a great data migration pressure.

[0147] Therefore, when the storage space for data migration is relatively small, the real-time data migration method can be adopted. For each user deleted, migrate the valid descriptor set in the descriptor storage space so that the valid descriptor sets in the descriptor storage space are continuous. Among them, when the descriptor set includes the used flag, it means that the user to which the descriptor set belongs is still using the virtual machine and the descriptor set is valid.

[0148] In a possible implementation, migrating the valid descriptor set in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored includes:

[0149] Take the first valid descriptor set in the descriptor storage space as the current descriptor set, and determine whether there is unused space before the starting storage address of the current descriptor set;

[0150] When there is unused space, determine the migration method of the current descriptor set according to the size relationship between the unused space and the storage space occupied by the current descriptor set. The migration methods include the direct migration method and the indirect migration method. Migrate the current descriptor set according to the determined migration method, take the next valid descriptor set as the current descriptor set, and re-execute the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps;

[0151] When there is no unused space, take the next valid descriptor set as the current descriptor set, and re-execute the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps.

[0152] Exemplarily, for each deleted user, starting from the first valid descriptor set in the descriptor storage space, it is determined whether there is unused space before the starting storage address of this descriptor set. If it is determined that there is unused space, then this descriptor set and each subsequent valid descriptor set need to be migrated. If it is determined that there is no unused space, then it continues to be determined whether there is unused space before the starting storage address of the next valid descriptor set.

[0153] In the case of determining that there is unused space, the migration method can be determined according to the size relationship between the unused space and the storage space occupied by the descriptor set. There are two optional migration methods. If the unused space is greater than or equal to the storage space occupied by this descriptor set, the direct migration method can be adopted, directly copying this descriptor set to the unused space, deleting the used mark in the storage space originally occupied by this descriptor set or replacing it with an unused mark, and then the migration of the descriptor set can be completed. If the unused space is less than the storage space occupied by this descriptor set, the indirect migration method can be adopted. First, copy this descriptor set to the end of the descriptor storage space, and delete the used mark in the storage space originally occupied by this descriptor set or replace it with an unused mark. Then, copy the descriptor set copied to the end of the descriptor storage space to the unused space and the storage space originally occupied by this descriptor set. Finally, delete the used mark of the descriptor set copied to the end of the descriptor storage space or replace it with an unused mark, and then the migration of the descriptor set can be completed.

[0154] Figure 6b An example of real-time migration of descriptors according to an embodiment of the present disclosure is shown.

[0155] Take Figure 6b as an example. Suppose user 2 is deleted first and user 4 is deleted later. After deleting user 2, the descriptor sets used by users 1, 3, 4, and 5 are still valid. Since there is no unused space before the starting storage address of the descriptor set used by user 1, and there is unused space before the starting storage address of the descriptor set used by user 3, the descriptor sets used by users 3, 4, and 5 need to be migrated. The descriptor sets used by users 3, 4, and 5 can be migrated in sequence. When migrating the descriptor set used by each user, the migration method is determined according to the size relationship between the unused space before the starting storage address of the descriptor set used by this user and the storage space occupied by this descriptor set, and the migration is completed according to the determined migration method.

[0156] After deleting User 4, the descriptor sets used by User 1, User 3, and User 5 remain valid. Since there is no unused space before the starting storage address of the descriptor sets used by User 1 and User 3, and there is unused space before the starting storage address of the descriptor set used by User 5, only the descriptor set used by User 5 needs to be migrated. When migrating the descriptor set used by User 5, the migration method is determined according to the relationship between the unused space before the starting storage address of the descriptor set used by User 5 and the storage space occupied by this descriptor set, and the migration is completed according to the determined migration method.

[0157] According to the starting storage address of each valid descriptor set after migration, the starting storage address included in the user information corresponding to the user of this descriptor set can be updated. The user information of the users corresponding to the descriptor sets that have not been migrated can be not updated.

[0158] Those skilled in the art should understand that if multiple descriptor sets to be migrated are stored continuously and the occupied descriptor storage space is less than the descriptor storage space for data migration, the multiple descriptor sets can also be migrated together, and only the user information of each user to which the descriptor set belongs needs to be modified after migration. In this case, the starting storage address of the descriptor set stored in the descriptor storage space in response to the request of the newly created user can be continuous with the ending storage address of the descriptor sets used by the existing users, so that the number of migrations of the descriptor sets is smaller.

[0159] Real-time data migration can minimize the fragmentation degree of the descriptor storage space and consume less descriptor storage resources. The data migration can be implemented by a background application program and has no impact on users.

[0160] Another exemplary method of data migration is introduced below.

[0161] In a possible implementation manner, when the descriptor set includes a used flag and is valid, the method further includes:

[0162] When the first space that meets the conditions is not queried, migrate the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are stored continuously;

[0163] According to the starting storage address of each valid descriptor set after migration, update the user information corresponding to the user of this valid descriptor set.

[0164] For example, data migration incurs time costs and data processing costs. The more migration times, the higher the costs. If you want to save data migration costs as much as possible, you can also set the storage space for data migration to be larger, such as greater than or equal to the maximum physical space, and try to reduce the number of data migrations. Only when no first space meeting the conditions is found should large-scale data migration be performed. Compared with real-time data migration, the main differences in this data migration method are the timing of data migration and the size of the storage space for data migration. The specific data migration methods are similar. For example, still starting from the first valid descriptor set in the descriptor storage space, first determine whether there is unused space before the starting storage address of this descriptor set. When there is unused space, determine the migration method based on the size relationship between the unused space and the storage space occupied by this descriptor set, and migrate the descriptor set according to the determined migration method. When there is no unused space, continue to determine whether there is unused space before the starting storage address of the next valid descriptor. Similarly, if multiple descriptor sets to be migrated are stored continuously and the descriptor storage space they occupy is smaller than the descriptor storage space for data migration, the multiple descriptor sets can also be migrated together. After migration, only the user information of each user to which each descriptor set belongs needs to be modified. The exemplary migration method (that is, the exemplary method of migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are stored continuously) has been described above and will not be elaborated here.

[0165] In this way, the number of data migrations can be reduced, and the data migration cost can be reduced.

[0166] Those skilled in the art should understand that if K×T×(1 + X) = Y, that is, the size of the descriptor storage space used by all users is equal to the size of the descriptor storage space for data migration, then the ping-pong cache mechanism can also be used to migrate valid descriptors. The descriptor storage space can be divided into two parts. When a new user is created, the descriptors used by the new user and the descriptors used by existing users are stored in the same part (such as the first part). At this time, all the space in the other part (such as the second part) is unused and can be used during migration. When migration is required, the descriptors are migrated from the first part to the second part and stored continuously. After that, when a new user is created, the descriptors used by the new user and the descriptors used by existing users are stored in the same part (the second part), and all the space in the other part (the first part) is unused and can be used during migration. In this way, data migration becomes simpler.

[0167] It should be noted that when a new user is created, the first space may be queried in both parts. In this case, the first space queried in the part where the descriptors used by the existing users are stored can be selected to store the descriptors used by the new user. That is, when the descriptors used by the existing users are stored in the first part, the first space queried in the first part is selected; when the descriptors used by the existing users are stored in the second part, the first space queried in the second part is selected.

[0168] Those skilled in the art should understand that there can be more choices for the data migration method, as long as the valid descriptor set in the descriptor storage space can be migrated so that all the valid descriptor sets in the descriptor storage space are continuously stored. The present disclosure does not limit the specific choice of data migration method.

[0169] The present disclosure also provides an address conversion device, Figure 7 A schematic diagram showing the structure of the address conversion device according to an embodiment of the present disclosure.

[0170] As Figure 7 shown, in one possible implementation, the device includes:

[0171] A first query module 71, configured to query the user information of the user according to the user identifier included in the address conversion request initiated by the user, where the user information includes the starting storage address of the descriptor set used by the user;

[0172] A first determination module 72, configured to obtain the storage address of the target descriptor in the descriptor set according to the starting storage address of the descriptor set and the positioning index included in the address conversion request, where the positioning index is used to determine the position of the target descriptor in the descriptor set;

[0173] A second query module 73, configured to query the high-order address included in the target descriptor according to the storage address of the target descriptor;

[0174] A splicing module 74, configured to splice the high-order address and the low-order address included in the address conversion request to obtain the converted address;

[0175] Wherein, the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor, and the storage addresses of multiple descriptors included in the descriptor set used by the same user are continuous.

[0176] Further, the address management device may further include a descriptor storage space and a user information storage space. The descriptor storage space is used to store descriptors, and the user information storage space is used to store user information.

[0177] In a possible implementation, the descriptor is stored in a descriptor storage space, and the size of the descriptor storage space is K×T×(1 + X)+Y, where K is equal to the ratio of the maximum physical space to the size of the physical space described by a single descriptor, and K is a positive integer; T represents the size of the descriptor storage space occupied by a single descriptor, and T is a positive integer; the descriptor storage space of K×T×1 is used by users of all user types, the descriptor storage space of K×T×X is used by users of the manager type, the physical space accessed by a single user of the user type is less than the maximum physical space, the sum of the physical spaces accessed by all users of the user type is equal to the maximum physical space, the physical spaces accessed by different users of the user type do not overlap, the physical space accessed by each user of the manager type includes the physical spaces accessed by all users of the user type, and the physical space accessed by a single user of the manager type is equal to the maximum physical space; X is equal to the expected number of users of the manager type, and X is an integer greater than or equal to 0; Y represents the size of the descriptor storage space for data migration, and Y is an integer greater than or equal to 0 and is an integer multiple of T.

[0178] In a possible implementation, the used descriptor further includes a used flag, and the device further includes: a second determination module, configured to determine the size of the physical space accessed by the new user according to the request of the new user; a third determination module, configured to determine the number of descriptors used by the new user according to the size of the physical space accessed by the new user and the size of the physical space described by a single descriptor; a third query module, configured to query whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users according to the number of descriptors used by the new user; a first writing module, configured to write the descriptors used by the new user in the first space when a first space that meets the conditions is queried, and write the high address of the physical space described by the descriptor and the used flag in the descriptors used by the new user; a first establishment module, configured to establish the user information of the new user according to the start storage address of the set of descriptors used by the new user, the number of descriptors used by the new user, and the user identifier of the new user after writing the descriptors used by the new user in the first space.

[0179] In a possible implementation, the start storage address of the set of descriptors used by the new user is continuous with the end storage address of the set of descriptors used by the existing user.

[0180] In a possible implementation, when a first space that meets the conditions is queried, writing the descriptor used by the new user in the first space includes: when there are multiple first spaces that meet the conditions, querying the maximum number of descriptors that each first space allows to store; when the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, writing the descriptor used by the new user in the first space.

[0181] In a possible implementation, the device further includes: a fourth query module, configured to query the user information of the user to be deleted according to the user identifier included in the request to delete a user, and determine the set of descriptors used by the user to be deleted; a first clearing module, configured to clear the used flag of each descriptor in the set of descriptors used by the user to be deleted, or change the used flag of each descriptor in the set of descriptors used by the user to be deleted to an unused flag; a second clearing module, configured to clear the user information of the user to be deleted.

[0182] In a possible implementation, when the descriptor set includes a used flag and is valid, the device further includes: a first migration module, configured to migrate the valid descriptor sets in the descriptor storage space every time a user is deleted, so that all the valid descriptor sets in the descriptor storage space are continuously stored; a first update module, configured to update the user information of the user corresponding to each valid descriptor set according to the starting storage address of each migrated valid descriptor set.

[0183] In a possible implementation, when the descriptor set includes a used flag and is valid, the device further includes: a second migration module, configured to migrate the valid descriptor sets in the descriptor storage space when a first space that meets the conditions is not queried, so that all the valid descriptor sets in the descriptor storage space are continuously stored; a second update module, configured to update the user information of the user corresponding to each valid descriptor set according to the starting storage address of each migrated valid descriptor set.

[0184] In a possible implementation, migrating the set of valid descriptors in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored includes: taking the first valid descriptor set in the descriptor storage space as the current descriptor set, and determining whether there is unused space before the starting storage address of the current descriptor set; when there is unused space, determining the migration method of the current descriptor set according to the size relationship between the unused space and the storage space occupied by the current descriptor set, where the migration method includes a direct migration method and an indirect migration method, migrating the current descriptor set according to the determined migration method, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps; when there is no unused space, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps.

[0185] In some embodiments, the functions or modules included in the device provided in the embodiments of the present disclosure can be used to execute the methods described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments. For the sake of brevity, it will not be repeated here.

[0186] The embodiments of the present disclosure also propose a computer-readable storage medium, on which computer program instructions are stored, and when the computer program instructions are executed by a processor, the above methods are implemented. The computer-readable storage medium can be a volatile or non-volatile computer-readable storage medium.

[0187] The embodiments of the present disclosure also propose an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein, the processor is configured to implement the above methods when executing the instructions stored in the memory.

[0188] The embodiments of the present disclosure also provide a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code. When the computer-readable code runs in the processor of the electronic device, the processor in the electronic device executes the above methods.

[0189] Figure 8 A block diagram of an electronic device 1900 according to an embodiment of the present disclosure is shown. For example, the electronic device 1900 can be provided as a server or a terminal device. Refer to Figure 8, the electronic device 1900 includes a processing component 1922, which further includes one or more processors, and memory resources represented by a memory 1932 for storing instructions executable by the processing component 1922, such as application programs. The application programs stored in the memory 1932 may include one or more modules each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute instructions to perform the above-described method.

[0190] The electronic device 1900 may also include a power component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output interface 1958 (I / O interface). The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM or the like.

[0191] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as the memory 1932 including computer program instructions, and the above computer program instructions can be executed by the processing component 1922 of the electronic device 1900 to complete the above method.

[0192] The present disclosure may be a system, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium having thereon computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.

[0193] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example—but not limited to—an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as a punched card or raised structures in grooves having instructions stored thereon, and any suitable combination of the foregoing. The computer-readable storage medium as used herein is not construed as an instantaneous signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0194] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices, or can be downloaded to an external computer or external storage device through a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include a copper transmission cable, an optical fiber transmission, a wireless transmission, a router, a firewall, a switch, a gateway computer, and / or an edge server. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device.

[0195] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, by using the state information of the computer-readable program instructions to customize an electronic circuit, such as a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer-readable program instructions to implement various aspects of the present disclosure.

[0196] Aspects of the present disclosure are described herein with reference to the flowchart and / or block diagram of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowchart and / or block diagram, and the combinations of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions.

[0197] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that when the instructions are executed by the processor of the computer or other programmable data processing apparatus, a device is produced that implements the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which causes a computer, a programmable data processing apparatus, and / or other devices to operate in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured article that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0198] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices, causing a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other devices to generate a computer-implemented process, so that the instructions executed on the computer, other programmable data processing apparatus, or other devices implement the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0199] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or by a combination of dedicated hardware and computer instructions.

[0200] The embodiments of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The choice of terms used herein is intended to best explain the principles of the embodiments, the practical application, or improvements made to the technology in the market, or to enable other ordinary skilled persons in the art to understand the embodiments disclosed herein.

Claims

1. An address conversion method, characterized in that, The method includes: Query user information of the user according to the user identifier included in the address conversion request initiated by the user, where the user information includes the starting storage address of the descriptor set used by the user; Obtain the storage address of the destination descriptor in the descriptor set according to the starting storage address of the descriptor set and the positioning index included in the address conversion request, where the positioning index is used to determine the position of the destination descriptor in the descriptor set; Query the high-order address included in the destination descriptor according to the storage address of the destination descriptor; Concatenate the high-order address and the low-order address included in the address conversion request to obtain the converted address; Wherein, the number of descriptors used by the user is equal to the ratio of the size of the physical space accessed by the user to the size of the physical space described by a single descriptor. The storage addresses of multiple descriptors included in the descriptor set used by the same user are consecutive. The descriptors are stored in the descriptor storage space. The method further includes: Query whether there is a first space in the descriptor storage space that can continuously store the corresponding number of descriptors and is not used by other users according to the number of descriptors used by the new user; When a first space that meets the conditions is found, write the descriptors used by the new user in this first space; Establish user information of the new user according to the starting storage address of the descriptor set used by the new user, the number of descriptors used by the new user, and the user identifier of the new user; Wherein, the step of writing the descriptors used by the new user in the first space when a first space that meets the conditions is found includes: When there are multiple first spaces that meet the conditions, query the maximum number of descriptors that each first space allows to store; When the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, write the descriptors used by the new user in this first space; When the maximum number of descriptors that all first spaces allow to store is not equal to the number of descriptors used by the new user, select the smallest first space to write the descriptors used by the new user.

2. The method according to claim 1, wherein The size of the descriptor storage space is K×T×(1 + X)+Y, where K is equal to the ratio of the maximum value of the physical space to the size of the physical space described by a single descriptor, and K is a positive integer; T represents the size of the descriptor storage space occupied by a single descriptor, and T is a positive integer; The descriptor storage space of K×T×1 is used by users of all user types. The descriptor storage space of K×T×X is used by users of the administrator type. The physical space accessed by a single user of the user type is less than the maximum value of the physical space. The sum of the physical spaces accessed by users of all user types is equal to the maximum value of the physical space. The physical spaces accessed by users of different user types do not overlap. The physical space accessed by each user of the administrator type includes the physical spaces accessed by users of all user types. The physical space accessed by a single user of the administrator type is equal to the maximum value of the physical space; X is equal to the expected number of users of the administrator type, and X is an integer greater than or equal to 0; Y represents the size of the descriptor storage space for data migration, where Y is an integer greater than or equal to 0 and is an integer multiple of T.

3. The method according to claim 2, wherein The used descriptors also include used flags, and the method further includes: Determining the size of the physical space accessed by the new user according to the request of the new user; Determining the number of descriptors used by the new user according to the size of the physical space accessed by the new user and the size of the physical space described by a single descriptor; When writing the descriptors used by the new user in the first space that meets the conditions, writing the high address of the physical space described by the descriptor and the used flag in the descriptors used by the new user.

4. The method according to claim 3, characterized in that The starting storage address of the descriptor set used by the new user is continuous with the ending storage address of the descriptor set used by the existing user.

5. The method according to claim 3 or 4, characterized in that, The method further includes: Querying the user information of the user to be deleted according to the user identifier included in the request of the deleting user, and determining the descriptor set used by the user to be deleted; Clearing the used flags of each descriptor in the descriptor set used by the user to be deleted, or changing the used flags of each descriptor in the descriptor set used by the user to be deleted to unused flags; Clearing the user information of the user to be deleted.

6. The method according to claim 4, characterized in that, When the descriptor set includes used flags and is valid, the method further includes: When deleting each user, migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored; Updating the user information of the user corresponding to the valid descriptor set according to the starting storage address of each migrated valid descriptor set.

7. The method according to claim 3, wherein When the descriptor set includes used flags and is valid, the method further includes: When no first space that meets the conditions is queried, migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored; Updating the user information of the user corresponding to the valid descriptor set according to the starting storage address of each migrated valid descriptor set.

8. The method according to claim 6 or 7, characterized in that The migrating the valid descriptor sets in the descriptor storage space so that all the valid descriptor sets in the descriptor storage space are continuously stored includes: Taking the first valid descriptor set in the descriptor storage space as the current descriptor set, and determining whether there is unused space before the starting storage address of the current descriptor set; When there is unused space, determining the migration method of the current descriptor set according to the relationship between the unused space and the storage space occupied by the current descriptor set, where the migration method includes a direct migration method and an indirect migration method, migrating the current descriptor set according to the determined migration method, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps; When there is no unused space, taking the next valid descriptor set as the current descriptor set, and re-executing the steps of determining whether there is unused space before the starting storage address of the current descriptor set and subsequent steps.

9. An address conversion device, characterized in that, The device includes: A first query module, configured to query user information of the user according to a user identifier included in an address conversion request initiated by the user, where the user information includes a starting storage address of a descriptor set used by the user; A first determination module, configured to obtain a storage address of a target descriptor in the descriptor set according to the starting storage address of the descriptor set and a positioning index included in the address conversion request, where the positioning index is used to determine a position of the target descriptor in the descriptor set; A second query module, configured to query a high-order address included in the target descriptor according to the storage address of the target descriptor; A splicing module, configured to splice the high-order address and a low-order address included in the address conversion request to obtain a converted address; Wherein, the number of descriptors used by the user is equal to a ratio of a size of a physical space accessed by the user to a size of a physical space described by a single descriptor, and storage addresses of multiple descriptors included in a descriptor set used by the same user are consecutive; The descriptors are stored in a descriptor storage space, and the device further includes: A third query module, configured to query whether there is a first space in the descriptor storage space that can continuously store a corresponding number of descriptors and is not used by other users according to the number of descriptors used by a new user; A first writing module, configured to write the descriptors used by the new user in the first space when a first space meeting the conditions is queried; A first establishment module, configured to establish user information of the new user according to a starting storage address of a descriptor set used by the new user, the number of descriptors used by the new user, and a user identifier of the new user; Wherein, the step of writing the descriptors used by the new user in the first space when a first space meeting the conditions is queried includes: When there are multiple first spaces meeting the conditions, query a maximum number of descriptors that each first space allows to store; When the maximum number of descriptors that any one first space allows to store is equal to the number of descriptors used by the new user, write the descriptors used by the new user in the first space; When the maximum number of descriptors that all first spaces allow to store is not equal to the number of descriptors used by the new user, select a smallest first space to write the descriptors used by the new user.

10. An electronic device, characterized in that, It includes: A processor; A memory for storing instructions executable by the processor; Wherein, the processor is configured to implement the method according to any one of claims 1 to 8 when executing instructions stored in the memory.

11. A non-volatile computer-readable storage medium having computer program instructions stored thereon, characterized in that, The computer program instructions implement the method according to any one of claims 1 to 8 when executed by the processor.

Citation Information

Patent Citations

  • Instruction execution method and device, electronic equipment and storage medium

    CN117992123A