Physical address determination method and device, computing equipment and storage medium

Generating larger page table cache entries by merging page table table entries solves the problem of limited TLB storage space, improves page table cache hit rate, reduces memory access delay and overhead, and improves the performance of computing devices.

CN119166550APending Publication Date: 2024-12-20HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202310728507.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-19
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

In the prior art, the storage space of TLB is limited, resulting in a low TLB hit rate and a long time to travel to the page table, which increases memory access delay and overhead.

Method used

By merging page table table entries, a larger page table cache entry is generated, the physical memory capacity covered by page table cache is increased, the page table cache hit rate is increased, and the page table travel is reduced.

Benefits of technology

Improves the hit rate of page table cache, reduces memory access delay and overhead, and improves the performance of computing devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119166550A_ABST
    Figure CN119166550A_ABST
Patent Text Reader

Abstract

The invention provides a physical address determination method and device, computing equipment and a storage medium, and belongs to the technical field of computers. In the method, an input label generated based on a virtual page number in a first virtual address is matched with a plurality of entries in a page table cache, and if the input label is successfully matched with a first entry in the plurality of entries and a merging flag bit in the first entry indicates that a page table entry corresponding to the first entry is a merged table entry, the page table entry corresponding to the first entry is a merged table entry. And if yes, determining a physical address corresponding to the first virtual address based on a virtual page number in the first virtual address, an entry tag in the first entry and a physical page number. In the method, one entry in the page table cache corresponds to at least one page table entry, and the physical memory capacity covered by the entry in the page table cache can be increased, so that the hit rate of the page table cache is improved, page table walking is reduced, and the delay and overhead of memory access are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, computing device and storage medium for determining a physical address. Background Art

[0002] In a computing device, before executing an instruction, the processor needs to first determine the physical address (PA) corresponding to the virtual address (VA) in the instruction through the memory management unit (MMU) on the processor, and then read the data required to execute the instruction from the memory based on the determined physical address. The virtual address includes a virtual page number (VPN) and an offset, and the physical address includes a physical page number (PPN) and an offset. Each virtual page number corresponds to a physical page number, and a physical page number indicates a section of physical memory, that is, a physical page, and the offset in the virtual address is the same as the offset in the physical address.

[0003] In the related art, the translation lookaside buffer (TLB), also known as the page table cache, includes multiple entries, each of which is used to store a mapping relationship between a virtual page number and a physical page number. When the processor executes an instruction, it searches the TLB for the physical page number corresponding to the virtual page number in the virtual address contained in the instruction. If the search is successful (TLB hit), the physical address is determined based on the physical page number found and the offset in the virtual address; if the search fails (TLB miss), the MMU reads the page table from the memory, searches for the physical page number corresponding to the virtual page number from each page table entry (PTE) of the page table, and then determines the physical address, and stores the found mapping relationship as an entry in the TLB. This process is also called a page table walk. Each PTE indicates a mapping relationship between a virtual page number and a physical page number.

[0004] However, in the above method, an entry in the TLB only stores the mapping relationship between a virtual page number and a physical page number, and the storage space of the TLB is limited, and the number of page table entries in the page table is much greater than the number of entries in the TLB. Therefore, the physical memory size that can be covered by the mapping relationship stored in the TLB is limited, resulting in a low TLB hit rate. When a TLB misses, a page table walk is required, and the page table walk takes a lot of time, which in turn leads to increased memory access latency and memory access overhead. Summary of the invention

[0005] The embodiments of the present application provide a method, apparatus, computing device and storage medium for determining a physical address, which can increase the physical memory capacity covered by entries in a page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the latency and overhead of memory access. The technical solution is as follows.

[0006] In a first aspect, a method for determining a physical address is provided, which is applied to a computing device, and the method includes:

[0007] generating an input tag based on a virtual page number in a first virtual address to be converted;

[0008] Matching the input tag with multiple entries in the page table cache, each entry including an entry tag, a physical page number, and a merge flag, the merge flag being used to indicate whether the page table entry corresponding to the entry is a merge entry;

[0009] If the input tag successfully matches the first entry among multiple entries, and the merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the entry tag in the first entry, and the physical page number.

[0010] The page table entry in the page table includes a physical page number and a quantity flag, which is used to indicate the number of page table entries involved in the merge. C The physical page numbers in the two consecutive page table entries are also consecutive, so the computing device will C Merge these 2 page table entries C The value of the number flag bit in each of the page table entries is determined to be C, where C is an integer greater than or equal to 0. If the value C of the number flag bit in the page table entry queried by the computing device during the page table walk indicates that the page table entry is a merged entry, the computing device merges the consecutive 2 pages including the queried page table entry. C The two page table entries are combined and stored as one entry in the page table cache, so that when translating these two CWhen the virtual address included in the virtual page corresponding to the page table entry is obtained, the page table cache can be hit.

[0011] In the above method, one entry in the page table cache corresponds to at least one page table entry, which can increase the physical memory capacity covered by the entries in the page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the delay and overhead of memory access.

[0012] Optionally, generating an input tag based on a virtual page number in a first virtual address to be converted includes:

[0013] A virtual page number in the first virtual address is determined as an input tag.

[0014] In the above method, the virtual page number is directly determined as the input tag, and there is no need to extract a character string from the virtual page number as the input tag, which can improve efficiency.

[0015] Optionally, generating an input tag based on a virtual page number in a first virtual address to be converted includes:

[0016] A partial character string in the virtual page number in the first virtual address is determined as an input tag.

[0017] Optionally, determining a part of the character string in the virtual page number in the first virtual address as the input tag includes:

[0018] A first number of characters at the head and a second number of characters at the tail of the virtual page number in the first virtual address are extracted, and the extracted characters are combined into an input tag.

[0019] Optionally, the page table cache includes multiple entry sets, and entries in the same entry set correspond to the same index. The method further includes:

[0020] Extracting the remaining character string in the virtual page number in the first virtual address, the remaining character string refers to the character string excluding the first number of characters at the head and the second number of characters at the tail of the virtual page number in the first virtual address;

[0021] A first entry set having an index matching the remaining character string is determined from the plurality of entry sets, the first entry set including a plurality of entries.

[0022] In the above method, a partial character string in the virtual page number in the first virtual address is used as an input tag, and the remaining character string is used as an index, so as to first lock the entry set corresponding to the virtual page number in the first virtual address, and then match the input tag with each entry in the entry set respectively, without matching the input tag with all entries in the page table cache, which can improve the matching efficiency, thereby improving the efficiency of determining the physical address and reducing latency.

[0023] Optionally, matching the input tag to a plurality of entries in the page table cache comprises:

[0024] If the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, the input tag is compared with the entry tag in the entry;

[0025] If the merge flag in the entry indicates that the page table entry corresponding to the entry is a merged entry, the first string in the entry tag in the entry is compared with the second string in the input tag, the first string is the previous target bit in the entry tag in the entry, the target bit is the bit before the first character with a value of 1 from right to left in the entry tag in the entry, and the second string is the previous target bit in the input tag.

[0026] In the above method, when matching the input tag with the entry, the number of bits involved in the comparison in the input tag and the entry tag is determined based on the value of the merge flag in the entry, which can ensure that the input tag and the entry are correctly matched when the page table entry corresponding to the entry is a merged entry, avoiding misjudgment of the matching result due to the merged page table entry, thereby ensuring the accuracy of the match.

[0027] Optionally, if the input tag successfully matches a first entry among the multiple entries, and a merge flag bit of the first entry indicates that the first entry is a merge entry, determining a physical address corresponding to the first virtual address based on a virtual page number in the first virtual address, an entry tag in the first entry, and a physical page number includes:

[0028] Based on the entry tag in the first entry, determine a first page table entry from the multiple page table entries corresponding to the first entry, the first page table entry corresponding to the smallest virtual page number among the multiple page table entries corresponding to the first entry;

[0029] Determine a first number of pages between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry based on the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry;

[0030] Determine a physical base address corresponding to the first virtual address based on the first page number, the capacity of the physical page, and the physical page number in the first entry;

[0031] Based on the physical base address and the offset in the first virtual address, a physical address corresponding to the first virtual address is determined.

[0032] Optionally, the multiple page table entries corresponding to the first entry are derived from a page table in a memory, and the page table entries in the page table include a physical page number and a quantity flag, where the quantity flag is used to indicate the quantity of the page table entries corresponding to the first entry.

[0033] In the above method, one entry in the page table cache corresponds to at least one page table entry, which can increase the physical memory capacity covered by the entries in the page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the delay and overhead of memory access.

[0034] Optionally, the method further comprises:

[0035] generating an entry tag in the first entry based on a virtual page number and a quantity flag bit of any page table entry in the plurality of page table entries;

[0036] The smallest physical page number among the plurality of page table entries is determined as the physical page number in the first entry.

[0037] In the above method, one entry in the page table cache corresponds to at least one page table entry, which can increase the physical memory capacity covered by the entries in the page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the delay and overhead of memory access.

[0038] Optionally, the method further comprises:

[0039] If the input tag fails to match multiple entries, querying the page table based on the virtual page number in the first virtual address;

[0040] Determining from the page table a second page table entry that matches the virtual page number in the first virtual address;

[0041] If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the third page table entry. The third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

[0042] Optionally, the method further comprises:

[0043] If any page table entry in the page table is changed, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is a merged entry, then the entry corresponding to the changed page table entry is deleted from the page table cache;

[0044] If any page table entry in the page table changes, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is an unmerged entry, then based on the virtual page number, physical page number and quantity flag corresponding to the changed page table entry, the entry corresponding to the changed page table entry is updated.

[0045] In the above method, after the page table entry is changed, the page table and the page table cache are refreshed based on the changed page table entry to ensure the consistency of the entry in the page table cache with the page table entry in the page table, thereby ensuring the accuracy of the determined physical address.

[0046] In a second aspect, a device for determining a physical address is provided, the device comprising at least one functional module, the at least one functional module being used to execute a method for determining a physical address as provided in the first aspect or any possible implementation of the first aspect.

[0047] In a third aspect, a computing device is provided, the computing device comprising a processor and a memory;

[0048] The processor is used to execute instructions stored in the memory so that the computing device executes the method for determining the physical address provided by the aforementioned first aspect or any possible implementation of the first aspect.

[0049] In a fourth aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computing device, the computing device executes a method for determining a physical address as provided in the first aspect or any possible implementation of the first aspect.

[0050] In a fifth aspect, a computer-readable storage medium is provided, which includes computer program instructions. When the computer program instructions are executed by a computing device, the computing device executes a method for determining a physical address as provided in the first aspect or any possible implementation of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0051] Figure 1 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0052] Figure 2 is a schematic diagram of a merged page table entry provided in an embodiment of the present application;

[0053] Figure 3 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0054] Figure 4 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0055] Figure 5 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0056] Figure 6 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0057] Figure 7 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0058] Figure 8 It is a schematic diagram of a process of merging page table entries and generating entries in an embodiment of the present application;

[0059] Fig. 9 is a flow chart of a method for determining a physical address provided in an embodiment of the present application;

[0060] Fig.10 is a schematic diagram of a method for determining a physical address provided in an embodiment of the present application;

[0061] Fig.11 is a schematic diagram of a flow chart of determining a first item set from multiple item sets provided by an embodiment of the present application;

[0062] Fig.12 is a flow chart of a method for determining a physical address provided in an embodiment of the present application;

[0063] Fig.13 It is a structural diagram of a physical address determination device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0064] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.

[0065] First, the structure of a computing device provided by an embodiment of the present application is introduced.

[0066] like Figure 1 As shown, Figure 1 1 is a schematic diagram of a computing device provided in an embodiment of the present application. The computing device 100 may be a host, a server, or a personal computer, etc. The computing device 100 may be implemented by a general bus architecture.

[0067] The computing device 100 includes at least one processor 101 , a communication bus 102 , a memory 103 , and at least one communication interface 104 .

[0068] The processor 101 is, for example, a general-purpose central processing unit (CPU), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, the processor 101 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0069] The communication bus 102 is used to transmit information between the above components. The communication bus 102 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 1 The fact that only one line is used in the diagram does not mean that there is only one bus or only one type of bus.

[0070] The memory 103 is, for example, a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 103 is, for example, independent and connected to the processor 101 via the communication bus 102. The memory 103 can also be integrated with the processor 101.

[0071] The communication interface 104 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 104 includes a wired communication interface and may also include a wireless communication interface. Among them, the wired communication interface may be, for example, an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof, etc.

[0072] As an embodiment, the processor 101 may include one or more CPUs.

[0073] As an embodiment, the computing device 100 may include multiple processors, each of which may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). The processor here may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0074] As an embodiment, the computing device 100 may further include an output device and an input device. The output device communicates with the processor 101 and may display information in a variety of ways. For example, the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 101 and may receive user input in a variety of ways. For example, the input device may be a mouse, a keyboard, a touch screen device, or a sensor device.

[0075] In some embodiments, the memory 103 is used to store program codes for executing the solution of the present application, and the processor 101 can execute the program codes stored in the memory 103. That is, the computing device 100 can implement the method for determining the physical address provided in the method embodiment through the processor 101 and the program codes in the memory 103.

[0076] In order to facilitate understanding of the contents of the embodiments of the present application, several technical terms involved in the embodiments of the present application are explained below.

[0077] 1. Virtual page and physical page: In memory paging management, the virtual address space and the physical address space are divided into multiple storage units of equal capacity. The storage unit divided from the virtual address space is called a virtual page, and the storage unit divided from the physical address space is called a physical page. The capacity of a virtual page is equal to that of a physical page. The capacity of a virtual page or a physical page can be 4 kilobytes, 2 megabytes, or 1 gigabyte, etc.

[0078] 2. Physical address: A physical address includes a physical page number and an offset, wherein the physical page number indicates the physical page where the physical address is located, and the offset in the physical address refers to the offset of the physical address relative to the starting address of the physical page where the physical address is located.

[0079] 3. Virtual address: A virtual address includes a virtual page number and an offset, wherein the virtual page number indicates the virtual page where the virtual address is located, and the offset in the virtual address refers to the offset of the virtual address relative to the starting address of the virtual page where the virtual address is located.

[0080] 4. Page table: A page table is a data structure in memory. The page table includes multiple page table entries, each of which indicates the mapping relationship between the virtual page number and the physical page number. The computing device can determine the physical page corresponding to the virtual page where the virtual address is located based on the mapping relationship between the virtual page number and the physical page number, and then determine the physical address corresponding to the virtual address based on the offset in the virtual address.

[0081] 5. Page table cache: The page table cache is a high-speed cache in the memory management unit on the processor, also known as the translation lookaside buffer (TLB). The page table cache includes multiple entries, each of which is used to store the mapping relationship between the virtual page number and the physical page number queried from the page table. The computing device stores the mapping relationship queried from the page table as an entry in the page table cache. Then, before the computing device queries the mapping relationship in the page table next time, it can query the entry in the page table cache. If the computing device hits any entry in the page table cache, it obtains the mapping relationship stored in the entry without having to access the page table in the memory, which can save query time.

[0082] 6. Page table walk: If the computing device does not hit an entry in the page table cache, the computing device accesses the page table in the memory to query the mapping relationship in the page table and stores the queried mapping relationship as an entry in the page table cache. This process is called a page table walk.

[0083] In the embodiment of the present application, the page table entry in the page table includes a physical page number and a quantity flag, the quantity flag is used to indicate the number of page table entries involved in the merge. C If the physical page numbers in the two page table entries are also continuous, the computing device will C Merge these 2 page table entries C The value of the number flag bit in each of the page table entries is determined to be C, where C is an integer greater than or equal to 0. If the value C of the number flag bit in the page table entry queried by the computing device during the page table walk indicates that the page table entry is a merged entry, the computing device merges the consecutive 2 pages including the queried page table entry. C The two page table entries are combined and stored as one entry in the page table cache, so that when translating these two C When the virtual address included in the virtual page corresponding to a page table entry is reached, it can hit the page table cache, which increases the physical memory capacity covered by the page table cache, improves the hit rate of the page table cache, reduces page table walks, and thus reduces the latency and overhead of memory access, thereby improving the performance of the computing device.

[0084] The following first introduces the process of merging page table entries in an embodiment of the present application.

[0085] First, in the embodiment of the present application, the page table entry includes a physical page number and a quantity flag, and the value of the quantity flag indicates the number of page table entries participating in the merge. In some embodiments, the computing device uses three bits in the page table entry as the quantity flag, and the value of the quantity flag is recorded as Count, abbreviated as C, and the number of page table entries participating in the merge is recorded as Num, Num = 2 C For example, C = 000_2 =0, that is, Num = 2 0 =1, indicating that the page table entry is not merged; C = 001 _2 =1, that is, Num = 2 1 =2, indicating that the number of page table entries involved in the merge is 2; C = 010 _2 =2, that is, Num = 2 2 =4, indicating that the number of page table entries participating in the merge is 4, and other values ​​of C are similar and will not be described in detail. It should be noted that the above description of the number of bits and the representation of the quantity flag bit is exemplary, and the embodiments of the present application do not limit this.

[0086] The computing device merges the page table entries that can be merged when managing the page table entries. The computing device may manage the page table entries when allocating new virtual pages to the process or when swapping virtual pages.

[0087] The process of merging page table entries of the computing device includes: scanning the page table entries in the page table, if two consecutive C If the physical page numbers in the two page table entries are also continuous, then the two continuous C The physical page number in each page table entry in the page table entry is replaced by the consecutive 2 C The smallest physical page number in the page table entries; C The value of the quantity flag bit in the page table entry is determined to be C, where C is a positive integer greater than or equal to 0.

[0088] Below through Figure 2 The above process of merging page table entries is described with an example. Figure 2 is a schematic diagram of a merged page table entry provided in an embodiment of the present application, Figure 2 The page table includes a page table cache 201 and a page table 202. The page table includes a plurality of page table entries, wherein the virtual page numbers and physical page numbers of page table entries 2021 to 2024 are continuous. The computing device modifies the physical page numbers of page table entries 2022 to 2024 in the four page table entries to the physical page number 4 in the page table entry 2021. The number flag bits in the four page table entries are all 3 bits, and the values ​​are all 010. _2 , to indicate that the number of page table entries involved in the merge is 4.

[0089] The above describes the process of merging page table entries. The following describes the process of generating entries in the page table cache based on the merged page table entries.

[0090] In the embodiment of the present application, the entry in the page table cache includes an entry tag, a physical page number, and a merge flag, wherein the merge flag is used to indicate whether the page table entry corresponding to the entry is a merged entry. In some embodiments, the merge flag takes a value of 1, indicating that the page table entry corresponding to the entry is an unmerged entry; the merge flag takes a value of 0, indicating that the page table entry corresponding to the entry is a merged entry, which is not limited in the embodiment of the present application.

[0091] The process of a computing device generating an entry in a page table cache based on a merged page table entry includes: determining a value of a merge flag based on a quantity flag in the merged page table entry; generating an entry tag based on a virtual page number and a quantity flag corresponding to the merged page table entry; and generating an entry in the page table cache based on the value of the merge flag, the generated entry tag, and the smallest physical page number among multiple page table entries involved in the merge.

[0092] Among them, the process of the computing device generating an entry tag includes: the computing device sets the value of the rightmost bit of the virtual page number corresponding to the page table entry participating in the merger to 1, and shifts the rightmost bit to the left by C-1 bits, and sets the values ​​of the 1st to C-1th bits from right to left in the virtual page number to 0, to obtain the transformed virtual page number, and the transformed virtual page number is the entry tag, wherein C is the value of the quantity flag bit, and C is an integer greater than or equal to 0. It should be noted that the virtual page numbers corresponding to the multiple page table entries participating in the merger correspond to the same entry tag after the above transformation, so the entry tag generated in the above manner can indicate multiple page table entries in the page table.

[0093] Continue below Figure 2 Take as an example to illustrate the process of generating entry labels. Figure 2 In the example, the page table entries involved in the merge are page table entries 2021 to 2024. Taking page table entry 2024 as an example, the virtual page number in the page table entry 2024 is "11" = "1011 _2 ", the value of the quantity flag is 010 _2 =2, indicating that the number of page table entries involved in the merge is 4, and the virtual page numbers in the other three page table entries 2021-2023 are "8" = "1000 _2 ","9"="1001 _2 " and "10" = "1010 _2 The computing device sets the value of the rightmost bit of the virtual page number in the page table entry 2024 to 1, and obtains "1011 _2 ", and then the "1011 _2 " shifts the rightmost bit to the left by 2-1 = 1 bit, and replaces "1011 _2 " sets the rightmost bit in the value to 0, and we get "1010_2 ","1010 _2 " is the entry tag corresponding to the page table entry. If the virtual page numbers corresponding to the other three page table entries are transformed in the same way, then "1001 _2 ” becomes “1010 _2 ","1010 _2 ” becomes “1010 _2 ","1011 _2 ” becomes “1010 _2 Obviously, the virtual page numbers corresponding to the various page table entries participating in the merge are transformed as described above and all correspond to the same entry tag "1010 _2 ”=“A _16 ". The page table entry 2021 is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge. The computing device uses the physical page number "4" in the page table entry 2021 as the physical page number in the entry, and determines the value of the merge flag in the entry to be 0; the computing device generates an entry 2011 in the page table cache based on the generated entry tag, the physical page number "4" and the merge flag "0".

[0094] In the above method, the entry tag generated by the computing device based on the virtual page number and quantity flag corresponding to the page table entries participating in the merge can indicate multiple page table entries in the page table, thereby increasing the physical memory capacity covered by the page cache, improving the hit rate of the page table cache, reducing the failure rate, and thereby reducing page table walks and reducing the delay and overhead of memory access.

[0095] It should be noted that the above process is explained by taking the example of a computing device generating entries in a page table cache based on merged page table entries. For unmerged entries, the computing device can also generate entries in a page table cache based on unmerged page table entries. This process is the same as the above process, except that: this process does not require transformation of the virtual page numbers corresponding to the unmerged page table entries, while the above process requires transformation of the virtual page numbers corresponding to the merged page table entries. The similarities are not repeated here.

[0096] Below Figures 3 to 8 Taking as an example, the process of merging page table entries and generating entries in the page table cache based on the merged page table entries is illustrated. Figures 3 to 8 is a flow chart of merging page table entries and generating entries in an embodiment of the present application, such as Figure 3 As shown, Figure 3The page table 301 and the page table cache 302 are included. The page table entry corresponding to the virtual address VA0 is 3011, and the number flag in the page table entry 3011 is 000. The computing device generates an entry 3021 in the page table cache 302 based on the virtual page number corresponding to the page table entry 3011 and the physical page number in the page table entry 3011. Figure 4 As shown, the page table entry corresponding to the virtual address VA1 is 3012, and the physical page numbers of the page table entry 3012 and the page table entry 3011 are continuous. The computing device modifies the physical page number in 3012 to the physical page number PPN0 in 3011, and sets the value of the quantity flag bit in 3011 and 3012 to 001. -2 , and modify entry 3021 in the page table cache. Figure 5 As shown, the page table entry corresponding to the virtual address VA2 is 3013, and the computing device generates an entry 3022 in the page table cache 302 based on the virtual page number and the physical page number in the page table entry 3013. Figure 6 As shown, the computing device queries the page table entry 3014 corresponding to the virtual address VA3 from the page table 301, and the physical page number of the page table entry 3014 is continuous with that of the page table entry 3013. The computing device modifies the physical page number in 3014 to the physical page number PPN2 in 3013, and sets the value of the quantity flag bit in 3013 and 3014 to 001. -2 , at this time, if Figure 7 As shown, the physical page numbers of page table entries 3011 to 3014 are all continuous, such as Figure 8 As shown, the computing device modifies the physical page numbers in 3013 and 3014 to the physical page number PPN0 in 3011, and sets the value of the quantity flag bits in 3011 to 3014 to 010. -2 , and modify entry 3021 in page table cache 302 , and delete entry 3022 in page table cache 302 .

[0097] It should be noted that the above Figures 3 to 8 The description is made by taking an example in which a computing device merges two of the multiple page table entries involved in the merge into one and then merges four into one. In some embodiments, the computing device merges the page table entries involved in the merge at one time to improve the efficiency of merging the page table entries, which is not limited to the embodiments of the present application.

[0098] The page table entries merged based on the above method and the generated entries can be applied to data reading and writing scenarios. In the data reading and writing scenario, before executing the data reading and writing instruction, the computing device first extracts the virtual address to be converted from the data reading and writing instruction, and then determines the physical address corresponding to the virtual address, and then performs data reading and writing operations based on the determined physical address. The following is an introduction to the method for determining the physical address in the above data reading and writing scenario. In this method, the computing device generates an input tag based on the virtual page number in the virtual address to be converted, determines the entry matching the input tag from the page table cache, and if the entry in the page table cache does not match the input tag, determines the page table entry matching the input tag from the page table, and then determines the physical address corresponding to the virtual address. Among them, there are two ways to generate an input tag based on the virtual page number in the virtual address to be converted. The first way is: determine a part of the string in the virtual page number in the virtual address to be converted as the input tag; the second way is: determine the virtual page number in the virtual address to be converted as the input tag. The processes for determining the physical address under the two input label generation methods are different. The processes for determining the physical address under the two input label generation methods are respectively introduced below.

[0099] The following is an example of determining a part of the character string in the virtual page number in the virtual address to be converted as an input label. Fig. 9 is a flow chart of a method for determining a physical address provided in an embodiment of the present application. The method is as follows: Figure 1 The computing device shown executes, Fig. 9 As shown, the method includes the following steps 901 to 907.

[0100] 901. A computing device extracts a first number of characters at the head and a second number of characters at the tail of a virtual page number in a first virtual address to be converted, and composes an input tag with the extracted multiple characters.

[0101] The virtual page number includes a first number of characters at the head, a second number of characters at the tail, and a string in the middle, wherein the second number is related to the number of page table entries that an entry in the page table cache corresponds to at most. If an entry in the page table cache corresponds to at most N page table entries, and N=2 X , then the second number is greater than or equal to X, N is an integer greater than or equal to 1, and X is an integer greater than or equal to 0. The page table cache includes multiple entry sets, and the number of bits of the middle string is related to the number of entry sets in the page table cache. If the page table cache includes M entry sets, and M=2 Y , the number of digits of the middle string is Y, M is an integer greater than or equal to 1, and Y is an integer greater than or equal to 0. The first number is equal to the number of digits of the virtual page number minus the second number and the number of digits of the middle string.

[0102] Below Fig.10 Take the example of step 901 above. Fig.10 is a schematic diagram of a method for determining a physical address provided in an embodiment of the present application, such as Fig.10 As shown, the first virtual address VA includes X0 to X7, where Xi represents 4 bits, that is, 4 binary digits, namely Xi3, Xi2, Xi1 and Xi0. Therefore, the number of bits of the first virtual address is 32 bits, of which the number of bits of the virtual page number is 20 bits and the number of bits of the offset is 12 bits. The page table cache includes 64 (2 6 ) entry sets, the entry set index is set00-set63, then the number of bits in the middle string is 6, and each entry corresponds to a maximum of 64 (2 6 ) page table entries, the second number is greater than or equal to 6, Fig.10 The second number is 6, and the first number is 20-6-6=8. The computing device extracts the first 8 characters {X6 X7} and the last 6 characters {X3 X41 X40} of the virtual page number in the first virtual address, and combines the extracted 14 characters into an input label {T13…T6 T5 T4 T3 T2 T1 T0}. The middle character string is {X5X43 X42}.

[0103] It should be noted that step 901 is an implementation method of using a partial character string in the virtual page number in the first virtual address as an input tag. In some embodiments, the process is implemented based on other methods, which is not limited in the embodiments of the present application.

[0104] 902. The computing device extracts the remaining character string in the virtual page number in the first virtual address, where the remaining character string refers to the character string in the virtual page number in the first virtual address excluding a first number of characters at the head and a second number of characters at the tail.

[0105] It should be noted that the execution order of the above-mentioned step 901 and step 902 is only exemplary. Step 902 can be executed first, and then step 901, or step 901 and step 902 can be executed at the same time. The embodiment of the present application does not limit the execution order of step 901 and step 902.

[0106] 903. The computing device determines a first entry set whose index matches the remaining string from multiple entry sets, the page table cache includes multiple entry sets, entries in the same entry set correspond to the same index, the first entry set includes multiple entries, each entry includes an entry tag, a physical page number and a merge flag, the merge flag is used to indicate whether the page table entry corresponding to the entry is a merged entry, and the page table entry corresponding to the entry comes from the page table in the memory.

[0107] Among them, the number of bits of the entry tag in the page table cache is equal to the number of bits of the input tag. The source of the entry tag is the same as the process of generating the entry tag mentioned above, except that in step 903, if the page table entry corresponding to the entry is an unmerged entry, the entry tag in the entry is the first number of characters at the head and the second number of characters at the tail of the virtual page number corresponding to the page table entry corresponding to the entry, and if the page table entry corresponding to the entry is a merged entry, the computing device first transforms the virtual page number corresponding to the page table entry, and then extracts the first number of characters at the head and the second number of characters at the tail of the transformed virtual page number to obtain the entry tag.

[0108] Below Fig.11 As an example, step 903 is described by way of example. Fig.11 is a flow chart of determining a first item set from multiple item sets provided by an embodiment of the present application, such as Fig.11 As shown in the figure, the entry tag in the entry in the page table cache comes from the 8 characters at the head and 6 characters at the tail of the virtual page number corresponding to the page table entry. The index of the entry set to which the entry belongs is the 6 characters in the middle of the page table entry (000100 _2 =04). The six characters in the middle of the first virtual address are "000100 _2 = 04, the computing device determines a first entry set with an index of 04 from the plurality of entry sets, and the first entry set is consistent with the string "000100 _2 ” matches.

[0109] 904. The computing device matches the input tag with multiple entries in the first entry set.

[0110] The computing device matches the input tag with multiple entries in the first entry set, which means that the input tag is matched with each entry in the first entry set respectively until the first entry matching the input tag is determined or until the matching process of the input tag with all entries in the first entry set is completed. The computing device matches the input tag with any entry in the page table cache, including the following two cases.

[0111] In the first case, the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, and the computing device compares the input tag with the entry tag in the entry.

[0112] Among them, the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, which means that the entry corresponds to only one page table entry, and the virtual page number corresponding to the page table entry is not transformed when the entry tag in the entry is generated. At this time, the input tag is compared with the entry tag in the entry to determine whether the input tag matches the entry.

[0113] The second case: the merge flag in the entry indicates that the page table entry corresponding to the entry is a merged entry, then the first string in the entry tag in the entry is compared with the second string in the input tag, the first string is the previous target bit in the entry tag in the entry, the target bit is the previous bit of the first character with a value of 1 from right to left in the entry tag in the entry, and the second string is the previous target bit in the input tag.

[0114] Among them, the merge flag bit in the entry indicates that the page table entry corresponding to the entry is a merged entry, which means that the entry is formed by merging multiple page table entries, and when generating the entry label in the entry, the virtual page number corresponding to the page table entry is transformed. In addition, since the virtual page numbers corresponding to the multiple page table entries participating in the merge are continuous, the front target bits in the virtual page numbers of the multiple page table entries participating in the merge are the same. Therefore, the computing device uses the front target bit in the entry label as the first string and the front target bit in the input label as the second string, and then compares the first string with the second string, which can ensure that the input label and the entry are correctly matched when the page table entry corresponding to the entry is a merged entry, avoiding misjudgment of the matching result due to the merged page table entries.

[0115] Below Figure 2 Take the second case as an example to illustrate the above situation. Figure 2 In the example, entry 2011 comes from four page table entries in page table 202: 2021-2024. The virtual page numbers of these four page table entries are "8" ("1000 _2 ”), “9” (“1001 _2 ”) and “10” (“1010 _2 ”) and “11” (“1011 _2 ”), the entry label in entry 2011 corresponding to these four page table entries is “A _16 ”(“1010 _2 ”). When the input label is “1011 _2 ", if the computing device directly inputs the label "1011 _2 " and entry tag "1010 _2" When the comparison is performed, the entry 2011 does not match the input tag, resulting in a misjudgment. At this time, the computing device needs to determine the first character string in the entry tag and the second character string in the input tag: the entry tag in entry 2011 includes a total of 4 bits, among which the first character with a value of 1 from right to left in the entry tag is the third bit, and the target bit is the second bit, so that the first character string in the entry tag is the first 2 bits in the entry tag, that is, "10", and the second character string in the input tag is the first 2 bits in the input tag, that is, "10". The computing device compares the first character string in the entry tag ("10") with the second character string in the input tag ("10"), and the entry matches the input tag.

[0116] In the above method, when matching the input tag with the entry, the number of bits involved in the comparison in the input tag and the entry tag is determined based on the value of the merge flag in the entry, which can ensure that the input tag and the entry are correctly matched when the page table entry corresponding to the entry is a merged entry, avoiding misjudgment of the matching result due to the merged page table entry, thereby ensuring the accuracy of the match.

[0117] Continue below Fig.10 As an example, the above step 904 is described by way of example. Fig.10 As shown, the computing device matches {T13…T6 T5…Ti+1} in the input label with {B13…B6 B5…Bi+1} in the entry label, where i is an integer whose value is determined by the value of the merge flag F in the entry. When F=1, i=-1, that is, {T13…T6T5…T0} is matched with {B13…B6 B5…B0}; when F=0, the first bit that is 1 is found from B0, and the corresponding bit is the value of i.

[0118] It should be noted that the above steps 903 and 904 are described by taking the example that the first entry set includes multiple entries. In some embodiments, the first entry set is an empty set, that is, there are no entries in the first entry set. At this time, the input tag fails to match the multiple entries in the page table cache, and the computing device queries the page table in the memory to determine the physical address corresponding to the first virtual address, that is, the computing device does not execute step 904, but executes the following steps 905 to 906.

[0119] 905. If the input tag matches a first entry among multiple entries in a first entry set, and a merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry, the computing device determines the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the first entry tag, and the physical page number.

[0120] Among them, since the physical page number in the first entry is the smallest physical page number among the multiple page table entries participating in the merge, the computing device first determines the page table entry with the smallest corresponding virtual page number among the multiple entries participating in the merge based on the entry label, and then determines the physical address corresponding to the first virtual address based on the number of pages between the virtual page number corresponding to the page table entry and the virtual page number in the first virtual address. The process includes the following steps 905A to 905D.

[0121] 905A. Based on the entry tag in the first entry, determine a first page table entry from the multiple page table entries corresponding to the first entry, the first page table entry having a smallest virtual page number among the multiple page table entries corresponding to the first entry.

[0122] Among them, corresponding to the generation process of the entry label, the string at the virtual page number header of the first page table entry is the first string in the entry label in the first entry, the middle string is the string corresponding to the index of the entry set where the first entry is located, and the value of each bit in the tail string is 0.

[0123] 905B. Determine a first number of pages between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry based on the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry.

[0124] The first page number is a difference between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry.

[0125] The above step 905B can be expressed by the following formula (1).

[0126] N = VPN-VPN0 (1)

[0127] In the above formula (1), N is the first page number, VPN is the virtual page number in the first virtual address, and VPN0 is the virtual page number corresponding to the first page table entry.

[0128] 905C. Determine a physical base address corresponding to the first virtual address based on the first page number, the capacity of the physical page, and the physical page number in the first entry.

[0129] The physical page number in the first entry is the physical page number in the first page table entry, that is, the smallest physical page number in the multiple page table entries corresponding to the first entry.

[0130] The above step 905C can be expressed by the following formula (2).

[0131] PA′=PA Base+Page Size×N (2)

[0132] In the above formula (2), PA′ is the physical base address corresponding to the first virtual address, PA Base is the physical base address corresponding to the physical page number in the first entry, Page Size is the capacity of the physical page, and N is the first page number.

[0133] 905D. Determine the physical address corresponding to the first virtual address based on the physical base address and the offset in the first virtual address.

[0134] The above step 905D can be expressed by the following formula (3).

[0135] PA=PA′+VA Offset (3)

[0136] In the above formula (3), PA is the physical address corresponding to the first virtual address, PA′ is the physical base address corresponding to the first virtual address, and VA Offset is the offset in the first virtual address.

[0137] The above steps 905A to 905D can be combined into the following formula (4).

[0138] PA=PA Base+Page Size×(VPN-VPN0)+VA Offset (4)

[0139] In the above formula (4), PA is the physical address corresponding to the first virtual address, PA Base is the physical base address corresponding to the physical page number in the first entry, Page Size is the capacity of the physical page, VA Offset is the offset in the first virtual address, VPN is the virtual page number in the first virtual address, and VPN0 is the virtual page number corresponding to the first page table entry.

[0140] It should be noted that the above step 905 is explained by taking the example that the input tag matches the first entry among multiple entries, and the merge flag in the first entry indicates that the first entry is a merged table entry. In some embodiments, the input tag matches the second entry among multiple entries, and the merge flag in the second entry indicates that the page table entry corresponding to the second entry is an unmerged table entry. The computing device determines the physical address corresponding to the first virtual address based on the physical page number in the second entry. The process includes: determining the starting address of the physical page corresponding to the physical page number based on the physical page number in the second entry; determining the physical address corresponding to the first virtual address based on the starting address of the physical page and the offset in the first virtual address.

[0141] The above step 905 introduces the case where the input tag successfully matches the first entry among the multiple entries. The following steps 906 to 907 introduce the case where the input tag fails to match the multiple entries.

[0142] 906. If the input tag fails to match multiple entries, the computing device queries the page table in the memory based on the virtual page number in the first virtual address, and determines from the page table a second page table entry that matches the virtual page number in the first virtual address, wherein the page table entry in the page table includes a physical page number and a quantity flag, wherein the quantity flag is used to indicate the number of page table entries involved in the merge.

[0143] Determining from the page table a second page table entry that matches the virtual page number in the first virtual address refers to: determining from the page table a second page table entry whose corresponding virtual page number is the same as the virtual page number in the first virtual address.

[0144] 907. If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, the computing device determines the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the second page table entry, and the third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

[0145] Among them, due to the participation of 2 C After the merger, the physical page numbers in the page table entries are the smallest physical page numbers in the page table entries participating in the merger. When the number flag bit of the second page table entry indicates that the number of page table entries participating in the merger is greater than 1, the physical page number in the second page table entry is the physical page number in the third page table entry. Therefore, the computing device first determines the second page number between the virtual page number in the first virtual address and the virtual page number corresponding to the third page table entry, and then determines the physical base address corresponding to the first virtual address based on the second page number, the capacity of the physical page and the physical page number in the third page table entry, and then determines the physical address corresponding to the first virtual address based on the physical base address and the offset in the first virtual address. This process is the same as steps 905B to 905D in the above step 905 and will not be repeated.

[0146] It should be noted that the above steps 906 to 907 are explained by taking the example that the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1. In some embodiments, the number flag of the second page table entry indicates that the number of page table entries participating in the merge is equal to 1, that is, the second page table entry is an unmerged entry. The computing device determines the physical address corresponding to the first virtual address based on the physical page number in the second page table entry. The process includes: determining the starting address of the physical page corresponding to the physical page number based on the physical page number in the second page table entry; determining the physical address corresponding to the first virtual address by the starting address of the physical page and the offset in the first virtual address.

[0147] In the above method, one entry in the page table cache corresponds to at least one page table entry, which can increase the physical memory capacity covered by the entries in the page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the latency and overhead of memory access; in addition, when matching the input tag with the entry, the number of bits involved in the comparison in the input tag and the entry tag is determined based on the value of the merge flag bit in the entry, which can ensure that the input tag and the entry are correctly matched when the entry corresponds to the merged table entry, avoiding misjudgment of the matching result due to the merged page table entry, thereby ensuring the accuracy of the match; further, a part of the character string in the virtual page number in the first virtual address is used as the input tag, and the remaining character string is used as the index, so as to first lock the entry set corresponding to the virtual page number in the first virtual address, and then match the input tag with each entry in the entry set separately, without matching the input tag with all entries in the page table cache, which can improve the matching efficiency, thereby improving the determination efficiency of the physical address and reducing latency.

[0148] The following is an introduction by taking the example of determining the virtual page number in the first virtual address as the input label. Fig.12 is a flow chart of a method for determining a physical address provided in an embodiment of the present application, the method being executed by the above-mentioned computing device, such as Fig.12 The method includes the following steps 1201 to 1205.

[0149] 1201. The computing device determines a virtual page number in a first virtual address to be converted as an input tag.

[0150] The computing device determines the virtual page number in the first virtual address as the input tag, that is, the character string corresponding to the virtual page number in the first virtual address is used as the input tag. For example, if the virtual page number is the first 20 bits in the first virtual address, the computing device uses the character string in the first 20 bits in the first virtual address as the input tag.

[0151] 1202. The computing device matches the input tag with multiple entries in the page table cache, each entry including an entry tag, a physical page number, and a merge flag, the merge flag is used to indicate whether the page table entry corresponding to the entry is a merged entry, and the page table entry corresponding to the entry comes from the page table in the memory.

[0152] The computing device matches the input tag with multiple entries in the page table cache, which means that the input tag is matched with each entry in the page table cache respectively until the first entry matching the input tag is determined or until the matching process of the input tag with all entries is completed. The process of the computing device matching the input tag with any entry in the page table cache is the same as the above step 904 and will not be repeated.

[0153] 1203. If the input tag matches a first entry among multiple entries, and the merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry, the computing device determines the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the entry tag in the first entry tag, and the physical page number.

[0154] Among them, since the physical page number in the first entry is the smallest physical page number among the multiple page table entries participating in the merge, the computing device first determines the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge based on the entry label, and then determines the physical address corresponding to the first virtual address based on the number of pages between the virtual page number corresponding to the page table entry and the virtual page number in the first virtual address. This process is the same as the above step 905, except that in this step 1303, the string at the head of the virtual page number corresponding to the first page table entry is the first string in the entry label in the first entry, and the value of each bit on the tail string is 0, and does not include the string corresponding to the index of the first entry set. The similarities are not repeated here.

[0155] 1204. If the input tag fails to match multiple entries, the computing device queries the page table in the memory based on the virtual page number in the first virtual address, and determines from the page table a second page table entry that matches the virtual page number in the first virtual address, wherein the page table entry in the page table includes a physical page number and a quantity flag, wherein the quantity flag is used to indicate the number of page table entries involved in the merge.

[0156] 1205. If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, the computing device determines the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the third page table entry, and the third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

[0157] Step 1204 to step 1205 are the same as the above-mentioned step 906 and step 907, and will not be repeated here.

[0158] In the above method, one entry in the page table cache corresponds to at least one page table entry, which can increase the physical memory capacity covered by the entries in the page table cache, thereby improving the hit rate of the page table cache, reducing page table walks, and further reducing the latency and overhead of memory access; further, when matching the input tag with the entry, based on the value of the merge flag in the entry, the number of bits involved in the comparison in the input tag and the entry tag is determined, which can ensure that the input tag and the entry are correctly matched when the entry corresponds to the merged table entry, avoiding misjudgment of the matching result due to the merged page table entry, thereby ensuring the accuracy of the matching result.

[0159] Above Fig. 9 and Fig.12 Taking the process shown as an example, the process of a method for determining a physical address provided by an embodiment of the present application is introduced. In some embodiments, the page table entry in the page table will change, for example, the physical page number in the page table entry is modified, or the state of the page table entry changes (the virtual page corresponding to the page table entry is swapped in or out), resulting in the previously merged page table entry not being able to accurately indicate the mapping relationship between the virtual page number and the physical page number. The computing device refreshes the page table and the page table cache according to the changed page table entry. If the changed page table entry is a page table entry involved in the merge, the computing device deletes the entry corresponding to the page table entry, or sets the entry corresponding to the page table entry to invalid, and re-merges the page table entries in the page table.

[0160] Wherein, the process of refreshing the page table cache based on the changed page table entry by the computing device includes: if any page table entry in the page table is changed, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is a merged entry, then deleting the entry corresponding to the changed page table entry from the page table cache; if any page table entry in the page table is changed, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is an unmerged entry, then updating the entry corresponding to the changed page table entry based on the virtual page number, physical page number and quantity flag corresponding to the changed page table entry. In some embodiments, when the changed page table entry is a merged entry, the computing device sets the entry corresponding to the changed page table entry in the page table cache to invalid.

[0161] The process of refreshing the page table based on the changed page table entry by the computing device includes: scanning the page table entries that can be merged before the change, if there are 2 of the page table entries that can be merged before the change C The physical page numbers of the page table entries are continuous. C The physical page number in each page table entry in the page table entry is replaced by the consecutive 2 C The smallest physical page number in the page table entries; C The value of the quantity flag in the page table entry is determined to be C, where C is a positive integer greater than or equal to 0. For example, the page table entries involved in the merge are page table entries 2021-2024. If the physical page number in page table entry 2024 changes, resulting in page table entry 2024 no longer being continuous with the physical page numbers in page table entries 2021-2023, the computing device changes the value C of the quantity flag in page table entries 2021-2022 from 010 to 1011. _2 Refresh to 001 _2, that is, the two page table entries are merged, and the value C of the number flag bit of the page table entry 2023-2024 is changed from 010 _2 Refresh to 000 _2 , the physical page number in the page table entry 2023 is restored to 6, and the physical page number in the page table entry 2024 is replaced with the changed physical page number.

[0162] In the above method, after the page table entry is changed, the page table and the page table cache are refreshed based on the changed page table entry to ensure the consistency of the entry in the page table cache with the page table entry in the page table, thereby ensuring the accuracy of the determined physical address.

[0163] Fig.13 13 is a schematic diagram of the structure of a physical address determination device provided in an embodiment of the present application. The device includes an input tag generation module 1301, a matching module 1302 and a physical address determination module 1303.

[0164] The input tag generation module 1301 is used to generate an input tag based on the virtual page number in the first virtual address to be converted;

[0165] The matching module 1302 is used to match the input tag with multiple entries in the page table cache, each entry includes an entry tag, a physical page number and a merge flag, and the merge flag is used to indicate whether the page table entry corresponding to the entry is a merge entry;

[0166] The physical address determination module 1303 is used to determine the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the entry tag in the first entry and the physical page number if the input tag successfully matches the first entry among multiple entries and the merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry.

[0167] Optionally, the input tag generating module 1301 is used to:

[0168] A virtual page number in the first virtual address is determined as an input tag.

[0169] Optionally, the input tag generating module 1301 includes:

[0170] The input label determination unit is used to determine a part of the character string in the virtual page number in the first virtual address as the input label.

[0171] Optionally, the input tag determination unit is used to:

[0172] A first number of characters at the head and a second number of characters at the tail of the virtual page number in the first virtual address are extracted, and the extracted characters are combined into an input tag.

[0173] Optionally, the page table cache includes multiple entry sets, entries in the same entry set correspond to the same index, and the device further includes:

[0174] A string extraction module, used for extracting the remaining string in the virtual page number in the first virtual address, wherein the remaining string refers to the string except the first number of characters at the head and the second number of characters at the tail in the virtual page number in the first virtual address;

[0175] The first item set determining module is used to determine a first item set whose index matches the remaining character string from the multiple item sets, and the first item set includes multiple items.

[0176] Optionally, the matching module 1302 is used to:

[0177] If the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, the input tag is compared with the entry tag in the entry;

[0178] If the merge flag in the entry indicates that the page table entry corresponding to the entry is a merged entry, the first string in the entry tag in the entry is compared with the second string in the input tag, the first string is the previous target bit in the entry tag in the entry, the target bit is the bit before the first character with a value of 1 from right to left in the entry tag in the entry, and the second string is the previous target bit in the input tag.

[0179] Optionally, the physical address determination module 1303 is used to:

[0180] Based on the entry tag in the first entry, determine a first page table entry from the multiple page table entries corresponding to the first entry, the first page table entry corresponding to the smallest virtual page number among the multiple page table entries corresponding to the first entry;

[0181] Determine a first number of pages between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry based on the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry;

[0182] Determine a physical base address corresponding to the first virtual address based on the first page number, the capacity of the physical page, and the physical page number in the first entry;

[0183] Based on the physical base address and the offset in the first virtual address, a physical address corresponding to the first virtual address is determined.

[0184] Optionally, the multiple page table entries corresponding to the first entry are derived from a page table in a memory, and the page table entries in the page table include a physical page number and a quantity flag, where the quantity flag is used to indicate the quantity of the page table entries corresponding to the first entry.

[0185] Optionally, the device further comprises:

[0186] An entry tag generation module, used to generate an entry tag in a first entry based on a virtual page number and a quantity flag bit of any page table entry in the plurality of page table entries;

[0187] The physical page number determination module is used to determine the smallest physical page number in the plurality of page table entries as the physical page number in the first entry.

[0188] Optionally, the physical address determination module 1303 is further used to:

[0189] If the input tag fails to match multiple entries, querying the page table based on the virtual page number in the first virtual address;

[0190] Determining from the page table a second page table entry that matches the virtual page number in the first virtual address;

[0191] If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the third page table entry. The third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

[0192] Optionally, the device further comprises:

[0193] An entry deletion module is used to delete the entry corresponding to the changed page table entry from the page table cache if any page table entry in the page table is changed and the merge flag bit in the entry corresponding to the changed page table entry indicates that the changed page table entry is a merged entry;

[0194] An entry update module is used to update the entry corresponding to the changed page table entry based on the virtual page number, physical page number and quantity flag corresponding to the changed page table entry if any page table entry in the page table is changed and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is an unmerged entry.

[0195] Among them, the input tag generation module 1301, the matching module 1302 and the physical address determination module 1303 can all be implemented by software, or can be implemented by hardware. Exemplarily, the implementation of the input tag generation module 1301 is introduced below by taking the input tag generation module 1301 as an example. Similarly, the implementation of the matching module 1302 and the physical address determination module 1303 can refer to the implementation of the input tag generation module 1301.

[0196] As an example of a software functional unit, the input label generation module 1301 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the input label generation module 1301 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple data centers with close geographical locations. Among them, usually a region can include multiple AZs.

[0197] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0198] As an example of a hardware functional unit, the input label generation module 1301 may include at least one computing device, such as a server, etc. Alternatively, the input label generation module 1301 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0199] The multiple computing devices included in the input label generation module 1301 can be distributed in the same region or in different regions. The multiple computing devices included in the input label generation module 1301 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the matching module 1302 and the physical address determination module 1303 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0200] It should be noted that, in other embodiments, the steps that the above modules are responsible for implementing can be specified as needed, and the above modules can respectively implement different steps in the above physical address determination method to realize all the functions of the above device. That is, the physical address determination device provided in the above embodiment only uses the division of the above functional modules as an example when implementing the physical address determination method. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device provided in the above embodiment belongs to the same concept as the corresponding method embodiment. The specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0201] The present application implements a computer program product including instructions, which may be software or a program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device performs the method for determining a physical address as provided in the above embodiment.

[0202] The embodiment of the present application provides a computer-readable storage medium, which can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions, and when the instructions are executed by a computing device cluster, the computing device cluster executes the method for determining a physical address as provided in the above embodiment.

[0203] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions. For example, the page tables involved in this application are all obtained with full authorization.

[0204] Those of ordinary skill in the art will appreciate that the various method steps and units described in the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0205] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0206] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the unit is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or it can be an electrical, mechanical or other form of connection.

[0207] The unit described as a separate component may or may not be physically separated, and the component displayed as a unit may or may not be a physical unit, that is, it may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the embodiment of the present application.

[0208] In addition, each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or software unit.

[0209] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computing device (which can be a personal computer, a server, or a computing device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.

[0210] In the present application, the terms "first", "second", etc. are used to distinguish between identical or similar items having substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is the quantity and execution order limited. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of various examples, a first page table entry may be referred to as a second page table entry, and similarly, a second page table entry may be referred to as a first page table entry. Both the first page table entry and the second page table entry may be page table entries, and in some cases, may be separate and different page table entries.

[0211] The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more, for example, multiple page table entries means two or more page table entries. The terms "system" and "network" are often used interchangeably herein.

[0212] It should also be understood that the term "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrase "if it is determined that ..." or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining that ..." or "in response to determining that ..." or "upon detecting [a stated condition or event]" or "in response to detecting [a stated condition or event]," depending on the context.

[0213] The above description is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0214] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. When the computer program instructions are loaded and executed on a computer, the process or function in accordance with the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.

[0215] The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired or wireless means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (DVD), or a semiconductor medium (e.g., a solid-state drive)), etc.

[0216] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0217] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for determining a physical address, characterized in that: Applied to a computing device, the method comprises: generating an input tag based on a virtual page number in a first virtual address to be converted; Matching the input tag with multiple entries in a page table cache, each of the entries comprising an entry tag, a physical page number, and a merge flag, wherein the merge flag is used to indicate whether the page table entry corresponding to the entry is a merge entry; If the input tag successfully matches the first entry among the multiple entries, and the merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the entry tag in the first entry, and the physical page number.

2. The method according to claim 1, characterized in that The step of generating an input tag based on a virtual page number in a first virtual address to be converted comprises: A virtual page number in the first virtual address is determined as the input tag.

3. The method according to claim 1, characterized in that The step of generating an input tag based on a virtual page number in a first virtual address to be converted comprises: A partial character string in the virtual page number in the first virtual address is determined as the input tag.

4. The method according to claim 3, characterized in that The step of determining a part of the character string in the virtual page number in the first virtual address as the input tag comprises: A first number of characters at the head and a second number of characters at the tail of the virtual page number in the first virtual address are extracted, and the extracted multiple characters are used to form the input tag.

5. The method according to claim 4, characterized in that The page table cache includes a plurality of entry sets, entries in the same entry set correspond to the same index, and the method further includes: Extracting the remaining character string in the virtual page number in the first virtual address, wherein the remaining character string refers to the character string in the virtual page number in the first virtual address excluding the first number of characters in the head and the second number of characters in the tail; A first entry set having an index matching the remaining string is determined from the plurality of entry sets, the first entry set including the plurality of entries.

6. The method according to any one of claims 1 to 5, characterized in that The matching the input tag with a plurality of entries in a page table cache comprises: If the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, comparing the input tag with the entry tag in the entry; If the merge flag in the entry indicates that the page table entry corresponding to the entry is a merge entry, the first character string in the entry tag in the entry is compared with the second character string in the input tag, the first character string is the previous target bit in the entry tag in the entry, the target bit is the previous bit of the first character with a value of 1 from right to left in the entry tag in the entry, and the second character string is the previous target bit in the input tag.

7. The method according to claim 1, characterized in that If the input tag successfully matches a first entry among the multiple entries, and a merge flag bit of the first entry indicates that the first entry is a merge entry, determining a physical address corresponding to the first virtual address based on a virtual page number in the first virtual address, an entry tag in the first entry, and a physical page number, including: Based on the entry tag in the first entry, determine a first page table entry from the multiple page table entries corresponding to the first entry, the first page table entry having a smallest virtual page number among the multiple page table entries corresponding to the first entry; Determine a first number of pages between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry based on the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry; Determine a physical base address corresponding to the first virtual address based on the first number of pages, the capacity of the physical page, and the physical page number in the first entry; A physical address corresponding to the first virtual address is determined based on the physical base address and the offset in the first virtual address.

8. The method according to claim 1, characterized in that The multiple page table entries corresponding to the first entry are derived from a page table in a memory, and the page table entries in the page table include a physical page number and a quantity flag, and the quantity flag is used to indicate the quantity of the page table entries corresponding to the first entry.

9. The method according to claim 8, characterized in that The method further comprises: generating an entry tag in the first entry based on a virtual page number and a quantity flag bit corresponding to any page table entry in the plurality of page table entries; The smallest physical page number among the plurality of page table entries is determined as the physical page number in the first entry.

10. The method according to claim 8, characterized in that The method further comprises: If the input tag fails to match the plurality of entries, querying the page table based on the virtual page number in the first virtual address; Determining from the page table a second page table entry that matches the virtual page number in the first virtual address; If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the third page table entry, and the third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

11. The method according to claim 8, characterized in that The method further comprises: If any page table entry in the page table is changed, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is a merged entry, deleting the entry corresponding to the changed page table entry from the page table cache; If any page table entry in the page table changes, and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is an unmerged entry, then based on the virtual page number, physical page number and quantity flag corresponding to the changed page table entry, the entry corresponding to the changed page table entry is updated.

12. A device for determining a physical address, characterized in that: The device comprises: An input tag generation module, used to generate an input tag based on a virtual page number in a first virtual address to be converted; A matching module, used for matching the input tag with a plurality of entries in a page table cache, each of the entries comprising an entry tag, a physical page number and a merge flag, the merge flag being used for indicating whether the page table entry corresponding to the entry is a merge entry; A physical address determination module is used to determine the physical address corresponding to the first virtual address based on the virtual page number in the first virtual address, the entry tag in the first entry and the physical page number if the input tag successfully matches the first entry among the multiple entries and the merge flag in the first entry indicates that the page table entry corresponding to the first entry is a merged entry.

13. The device according to claim 12, characterized in that The input tag generation module is used to: A virtual page number in the first virtual address is determined as the input tag.

14. The device according to claim 12, characterized in that The input tag generation module includes: The input label determination unit is used to determine a part of the character string in the virtual page number in the first virtual address as the input label.

15. The device according to claim 14, characterized in that The input tag determination unit is used for: A first number of characters at the head and a second number of characters at the tail of the virtual page number in the first virtual address are extracted, and the extracted multiple characters are used to form the input tag.

16. The device according to claim 15, characterized in that The page table cache includes a plurality of entry sets, entries in the same entry set correspond to the same index, and the device further includes: a string extraction module, configured to extract the remaining string in the virtual page number in the first virtual address, wherein the remaining string refers to the string in the virtual page number in the first virtual address excluding the first number of characters in the head and the second number of characters in the tail; The first entry set determining module is configured to determine, from the plurality of entry sets, a first entry set whose index matches the remaining character string, wherein the first entry set includes the plurality of entries.

17. The device according to any one of claims 12 to 16, characterized in that The matching module is used for: If the merge flag in the entry indicates that the page table entry corresponding to the entry is an unmerged entry, comparing the input tag with the entry tag in the entry; If the merge flag in the entry indicates that the page table entry corresponding to the entry is a merge entry, the first character string in the entry tag in the entry is compared with the second character string in the input tag, the first character string is the previous target bit in the entry tag in the entry, the target bit is the previous bit of the first character with a value of 1 from right to left in the entry tag in the entry, and the second character string is the previous target bit in the input tag.

18. The device according to claim 12, characterized in that The physical address determination module is used for: Based on the entry tag in the first entry, determine a first page table entry from the multiple page table entries corresponding to the first entry, the first page table entry having a smallest virtual page number among the multiple page table entries corresponding to the first entry; Determine a first number of pages between the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry based on the virtual page number in the first virtual address and the virtual page number corresponding to the first page table entry; Determine a physical base address corresponding to the first virtual address based on the first number of pages, the capacity of the physical page, and the physical page number in the first entry; A physical address corresponding to the first virtual address is determined based on the physical base address and the offset in the first virtual address.

19. The device according to claim 12, characterized in that The multiple page table entries corresponding to the first entry are derived from a page table in a memory, and the page table entries in the page table include a virtual page number, a physical page number, and a quantity flag, and the quantity flag is used to indicate the number of page table entries corresponding to the first entry.

20. The device according to claim 19, characterized in that The device also includes: An entry tag generating module, configured to generate an entry tag in the first entry based on a virtual page number and a quantity flag bit of any page table entry in the plurality of page table entries; The physical page number determination module is used to determine the smallest physical page number in the plurality of page table entries as the physical page number in the first entry.

21. The device according to claim 19, characterized in that The physical address determination module is also used for: If the input tag fails to match the plurality of entries, querying the page table based on the virtual page number in the first virtual address; Determining from the page table a second page table entry that matches the virtual page number in the first virtual address; If the number flag of the second page table entry indicates that the number of page table entries participating in the merge is greater than 1, then the physical address corresponding to the first virtual address is determined based on the virtual page number in the first virtual address, the virtual page number corresponding to the third page table entry, and the physical page number in the third page table entry, and the third page table entry is the page table entry with the smallest corresponding virtual page number among the multiple page table entries participating in the merge.

22. The device according to claim 19, characterized in that The device also includes: An entry deletion module, configured to delete the entry corresponding to the changed page table entry from the page table cache if any page table entry in the page table is changed and a merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is a merged entry; An entry update module is used to update the entry corresponding to the changed page table entry based on the virtual page number, physical page number and quantity flag corresponding to the changed page table entry if any page table entry in the page table is changed and the merge flag in the entry corresponding to the changed page table entry indicates that the changed page table entry is an unmerged entry.

23. A computing device, characterized in that The computing device includes a processor and a memory; The processor is configured to execute instructions stored in the memory, so that the computing device executes the method for determining a physical address according to any one of claims 1 to 11.

24. A computer program product comprising instructions, characterized in that When the instruction is executed by a computing device, the computing device is caused to perform the method for determining a physical address according to any one of claims 1 to 11.

25. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device, the computing device performs the method for determining a physical address according to any one of claims 1 to 11.

Citation Information

Cited By

  • Method and apparatus for determining physical address, and computing device and storage medium

    EP4722930A1

  • Method and apparatus for determining physical address, and computing device and storage medium

    WO2024260015A1