Apparatus and method

By using indicator data in the address processing circuit to optimize the conversion process of virtual address to physical address, the problem of frequent access to translation tables in the prior art is solved, and more efficient address conversion and system performance improvement is achieved.

JP7671309B2Active Publication Date: 2025-05-01ARM LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022571089
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-27
Filing Date
2021-05-20
Publication Date
2025-05-01
Estimated Expiration
2041-05-20

AI Technical Summary

Technical Problem

In the process of converting virtual address to physical address, the translation table needs to be accessed multiple times, resulting in inefficiency.

Method used

By introducing indicator data into the address processing circuit, the data is used to represent the mapping relationship between consecutive table entries, thereby reducing the number of accesses to the translated table and skipping multiple table levels if necessary to improve efficiency.

Benefits of technology

It improves the conversion efficiency of virtual address to physical address, reduces the number of memory accesses, and improves the overall performance and cache hit rate of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007671309000005
    Figure 0007671309000005
  • Figure 0007671309000006
    Figure 0007671309000006
  • Figure 0007671309000007
    Figure 0007671309000007
Patent Text Reader

Abstract

The apparatus includes an address processing circuit that detects information about an input memory address by referring to each chain of information entries provided by an address information table in each of a plurality of ordered hierarchical table levels. The address processing circuit is configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table earlier than the given table level of the ordered plurality of table levels, and the address processing circuit is configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that consecutive instances of a portion of the input memory address indicate consecutively addressed information entries. The address processing circuit includes a detector circuit that detects whether indicator data is set to indicate whether a group of one or more consecutively addressed information entries in the selected address information table provides at least one base address that indicates a location within a consecutively addressed region including a plurality of address information tables in a later table level.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to data processing.

[0002] Memory management allows the construction of a data processing system with multiple virtual address maps, so that each application running on the operating system can have its own virtual memory mapping. Each application is located in a separate address space in physical memory. The MMU maps the memory addresses used by the applications, called virtual addresses, to physical addresses in memory using a translation table. The translation table is, for example, a tree-like hierarchical table data structure created by software in memory.

[0003] The MMU hardware typically traverses a translation table to accomplish the virtual address translation, which may involve performing several memory accesses to read the translation table.

[0004] Instead of transformation data, other information may be provided using similar structures, such as attribute and / or permission data. Summary of the Invention

[0005] An apparatus is provided, comprising: an address processing circuit for detecting information relating to an input memory address by referring to respective chains of information entries provided by address information tables in each of a plurality of ordered hierarchical table levels, the address processing circuit being configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table prior to a given table level of the ordered plurality of table levels; and the address processing circuit being configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that successive instances of a portion of the input memory address indicate successively addressed information entries; and the address processing circuit comprises a detector circuit for detecting whether indicator data is set to indicate whether a group of one or more successively addressed information entries in the selected address information table provides at least one base address that indicates a location within a successively addressed region that includes a plurality of address information tables in a later table level.

[0006] In another exemplary configuration, a method is provided that includes: detecting information about an input memory address by referring to respective chains of information entries provided by address information tables of a plurality of ordered hierarchical table levels; for a given address information table at a given table level, selecting an information entry in an address information table at a table level subsequent to a given level in the plurality of ordered hierarchical table levels by a pointer defined by a base address dependent on the information entry in the given address information table and an offset element dependent on at least a portion of the input memory address, the pointer being defined such that consecutive instances of a portion of the input memory address point to the consecutively addressed information entries; and detecting whether indicator data is set to indicate whether a set of one or more consecutive table entries in the given address information table provides a base address specifying a consecutively addressed region including a plurality of address information tables at a subsequent table level.

[0007] In another exemplary configuration, a method includes generating information about an input memory address, generating address information tables at a plurality of ordered hierarchical table levels to provide information about the input memory address, and storing the address information tables in a memory, wherein generating the address information tables includes, for a given address information table at a given table level, the address information table at the given table level is selectable by a base address that is dependent on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels, and the information entry in the selected address information table is selected by an offset factor that is dependent on at least a portion of the input memory address applicable to the given table level ... A method is provided in which consecutive instances of a portion of an address are selectable according to an offset element defined to indicate consecutively addressed information, and the step of generating an address information table includes: detecting an amount of memory available to store ordered multiple hierarchical table levels to provide information about an input memory address; detecting within the detected amount of memory whether multiple sets of address information tables at the same table level can be stored in a consecutively addressed memory region; and generating a set of one or more consecutive table entries at a higher table level to provide a base address designating the consecutively addressed region when multiple sets of address information tables at the same table level can be stored in a consecutively addressed memory region.

[0008] In another exemplary configuration, an apparatus includes a processor circuit for generating information about an input memory address and for generating address information tables in a plurality of ordered hierarchical table levels to provide information about the input memory address, and a memory for storing the address information tables, wherein for a given address information table in a given table level, the address information table in the given table level is selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels, and the information entry in the selected address information table is an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being a factor of the input memory address. an apparatus is provided in which consecutive instances of a portion of the table entries are selectable according to an offset element defined to indicate consecutively addressed information, and a processor circuit is configured to detect an amount of memory available for storing the ordered multiple hierarchical table levels to provide information about an input memory address, detect whether multiple sets of address information tables at the same table level can be stored in the consecutively addressed memory region within the detected amount of memory, and generate a set of one or more consecutive table entries at a higher table level to provide a base address designating the consecutively addressed region when multiple sets of address information tables at the same table level can be stored in the consecutively addressed memory region.

[0009] In another exemplary configuration, a computer program for controlling a host data processing apparatus providing an instruction execution environment is provided, the instruction execution environment comprising: an address processing circuit for detecting information relating to an input memory address by referring to respective chains of information entries provided by address information tables in each of a plurality of ordered hierarchical table levels; the address processing circuit is configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table earlier than a given table level of the ordered plurality of table levels; and the address processing circuit is configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that consecutive instances of a portion of the input memory address indicate consecutively addressed information entries; and the address processing circuit comprises a detector circuit for detecting whether indicator data is set to indicate whether a group of one or more consecutively addressed information entries in the selected address information table provides at least one base address that indicates a location within a consecutively addressed region that includes a plurality of address information tables in a later table level.

[0010] Further aspects and features of the present technology are defined in the appended claims. [Brief description of the drawings]

[0011] The present technology will now be further described, by way of example only, with reference to embodiments thereof illustrated in the accompanying drawings, in which:

[0012] [Figure 1] 1 shows a schematic diagram of a data processing device; [Diagram 2] 1 shows a schematic of a two-stage MMU. [Diagram 3]1 illustrates the use of a memory management unit (MMU) and a translation lookaside buffer (TLB). [Figure 4] 1 is a schematic flow chart illustrating a method. [Diagram 5] 1 illustrates diagrammatically the so-called Page Table Walk (PTW) process. [Figure 6] 1 is a schematic flow chart illustrating a method. [Figure 7] 1 illustrates a schematic diagram of a set of table levels. [Figure 8] 1 illustrates a schematic diagram of a set of table levels. [Figure 9] 1 illustrates a schematic diagram of a set of table levels. [Figure 10] 1 illustrates a schematic diagram of a set of table levels. [Figure 11] 1 shows a schematic representation of a portion of an entered address. [Figure 12] 1 is a schematic flow chart illustrating each method. [Figure 13] 1 is a schematic flow chart illustrating each method. [Figure 14] 1 illustrates a schematic representation of an emulator implementation. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Before discussing the embodiments with reference to the accompanying drawings, the following embodiments are described.

[0014] An exemplary embodiment provides an apparatus comprising an address processing circuit for detecting information regarding an input memory address by referring to respective chains of information entries provided by address information tables in each of a plurality of ordered hierarchical table levels, the address processing circuit being configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table prior to a given table level of the ordered plurality of table levels, the address processing circuit being configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that successive instances of a portion of the input memory address indicate successively addressed information entries, and the address processing circuit comprising a detector circuit for detecting whether indicator data is set to indicate whether a group of one or more successively addressed information entries in the selected address information table provides at least one base address that indicates a location within a successively addressed region that includes a plurality of address information tables in a later table level.

[0015] The present disclosure provides potential improvements in the manner in which tables of the types described above are generated and / or stored and / or accessed by providing for the use of indicator data that can be used to indicate a mapping between a contiguous set of one or more entries in a table and contiguous regions at a later table level. This can be used to improve the efficiency with which information about table accesses can be cached, for example, by potentially allowing information about multiple entries to be covered by fewer (such as one) cache entries. In some circumstances, the configuration can allow one or more table levels to be omitted.

[0016] In an exemplary configuration, the last information entry in a chain of information entries provided by an address information table at a last table level of a plurality of ordered hierarchical table levels defines information about an input memory address.

[0017] The present disclosure is applicable to various types of information about an input memory address that may be represented in the form of an ordered hierarchy of tables. One example is a situation in which an address processing circuit includes an address translation circuit that performs an address translation, and the information about the input memory address defines at least an address translation between the input memory address in an input address space and a translated output memory address in an output address space. In the context of memory address translation, the present disclosure may be applicable to any one or more stages of a single stage translation or a multi-stage translation, and in an example configuration, the input memory address is one of a virtual memory address and an intermediate physical address, and the output memory address is one of an intermediate physical address and a physical address.

[0018] Another example is where the address processing circuitry includes a permission circuit, where information about an input memory address defines at least an access permission associated with the input memory address.

[0019] In some examples, the indicator data may be configured to indicate whether a group of one or more consecutive table entries in a selected address information table provide respective base addresses that indicate a group of consecutively addressed address information tables in a next table level of the ordered plurality of hierarchical table levels, which can potentially result in more efficient table accesses, especially when access information such as table base addresses are cached.

[0020] The technique is therefore particularly applicable to configurations having a cache memory (such as a so-called "walk cache") for storing data representing information entries retrieved from an address information table by an address processing circuit, the cache memory being configured to store data representing a single base address for a group of one or more contiguously addressed information entries for which indicator data is detected to be set.

[0021] For example, in a configuration in which the indicator data is configured to indicate whether an information entry in a selected address information table provides a base address indicating a consecutively addressed region including a plurality of address information tables in a table level subsequent to the next table level of the ordered plurality of hierarchical table levels, a particular improvement in table storage and / or access can be achieved if the use of the indicator data allows one or more table levels to be omitted. In such an example, the address processing circuit can be configured to select an information entry in an address information table in a table level subsequent to the next table level subsequent to a given level of the ordered plurality of hierarchical table levels in response to accessing an information entry in the selected table level in which the indicator data is set. In order to properly address a table in the subsequent level, in an exemplary configuration, the address processing circuit is configured to select an information entry in an address information table in a table level subsequent to the next table level subsequent to a given level according to an offset element that depends on at least respective portions of an input memory address associated with the given table level and the table level subsequent to the given table level.

[0022] Another exemplary embodiment provides a method including: detecting information about an input memory address by referring to respective chains of information entries provided by address information tables of a plurality of ordered hierarchical table levels; for a given address information table at a given table level, selecting an information entry in an address information table at a table level subsequent to a given level in the plurality of ordered hierarchical table levels by a pointer defined by a base address dependent on the information entry in the given address information table and an offset element dependent on at least a portion of the input memory address, the pointer being defined such that consecutive instances of a portion of the input memory address point to the consecutively addressed information entries; and detecting whether indicator data is set to indicate whether a set of one or more consecutive table entries in the given address information table provides a base address specifying a consecutively addressed region including a plurality of address information tables at a subsequent table level.

[0023] Another exemplary embodiment is a method including: generating information about an input memory address; generating address information tables in a plurality of ordered hierarchical table levels to provide information about the input memory address; and storing the address information tables in a memory, wherein generating the address information tables includes: for a given address information table in a given table level, the address information table in the given table level is selectable by a base address that is dependent on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels; and the information entry in the selected address information table is an offset element that is dependent on at least a portion of the input memory address applicable to the given table level, the offset element being dependent on the input memory address. and wherein consecutive instances of a portion of the input memory address are selectable according to an offset element defined to indicate consecutively addressed information, and the step of generating an address information table includes: detecting an amount of memory available for storing an ordered plurality of hierarchical table levels to provide information about the input memory address; detecting within the detected amount of memory whether a set of multiple address information tables at the same table level can be stored in the consecutively addressed memory region; and generating a set of one or more consecutive table entries at a higher table level to provide a base address designating the consecutively addressed region when a set of multiple address information tables at the same table level can be stored in the consecutively addressed memory region.

[0024] Another exemplary embodiment is an apparatus for generating information about an input memory address, the apparatus comprising: a processor circuit for generating address information tables in a plurality of ordered hierarchical table levels to provide information about the input memory address; and a memory for storing the address information tables, wherein for a given address information table in a given table level, the address information table in the given table level is selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels, and the information entry in the selected address information table is an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being a part of the input memory address. the processor circuit is configured to detect an amount of memory available for storing the ordered plurality of hierarchical table levels to provide information about an input memory address, detect within the detected amount of memory whether a set of multiple address information tables at the same table level can be stored in the contiguously addressed memory region, and generate a set of one or more contiguous table entries at a higher table level to provide a base address designating the contiguously addressed region when a set of multiple address information tables at the same table level can be stored in the contiguously addressed memory region.

[0025] Another exemplary embodiment provides a computer program for controlling a host data processing apparatus to provide an instruction execution environment, the instruction execution environment comprising: an address processing circuit for detecting information related to an input memory address by referring to respective chains of information entries provided by address information tables in each of a plurality of ordered hierarchical table levels; the address processing circuit is configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table earlier than a given table level of the ordered plurality of table levels; the address processing circuit is configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that consecutive instances of a portion of the input memory address indicate consecutively addressed information entries; and the address processing circuit comprises a detector circuit for detecting whether indicator data is set to indicate whether a group of one or more consecutively addressed information entries in the selected address information table provides at least one base address that indicates a location within a consecutively addressed region including a plurality of address information tables in a later table level.

[0026] Data processing using memory address translation Referring now to the drawings, Figure 1 illustrates generally a data processing system. A processing element (PE) 100 having a local cache memory 105 is configured to access data stored in a main memory 110 via an interconnect 120. A memory management unit (MMU) 130 is connected to the interconnect 120 for handling memory address translations. The MMU is associated with a translation table base address (TTBR) register 135, a translation control unit (TCU) 132, and a walk cache 137, which are described further below.

[0027] The PE 100 and / or the MMU utilize a translation lookaside buffer (TLB). In this example, a TLB 102 is provided as part of the PE 100. During operation of the system of FIG. 1, it is routinely necessary to access the system memory. Memory addresses are represented as virtual addresses (VAs) for purposes of internal processing within the modules of the PE 100. To proceed with the actual access to the system memory, the VAs must be translated into physical addresses (PAs) by which the system memory is addressed at the electrical level. This translation is performed by the TLB, but if the TLB is unable to service a particular translation, the TLB obtains information from the MMU as described below. The operation of the TLB is further described with reference to FIGS. 2 and 3. The TLB 102 provides an example of a translation buffer for storing data defining one or more address translations between virtual and physical address spaces.

[0028] 1, the TLB may instead be implemented as part of the MMU 130, or in other embodiments, the functionality of the TLB may be provided in both the PE 100 and the MMU 130. In some examples, the PE 100 may be associated with a so-called "micro" TLB local to that PE, and the MMU may be associated with a "main" TLB.

[0029] Level 2 cache 140 provides local and generally somewhat faster storage for selected contents of main system memory. Portions of main system memory that are expected to be needed in the near future, such as recently or frequently accessed portions of main system memory, or portions adjacent to recently accessed portions, are duplicated in level 2 cache 140 so that these portions can be accessed quickly when needed. If a requested portion is not currently held in level 2 cache 50, the portion is fetched from main system memory when access to the portion is requested. In these respects, level 2 cache 140 operates according to established principles associated with such cache memories, and therefore details of its operation will not be described except as relevant to this discussion. It should be noted that the contents of level 2 cache memory 140 are accessed according to their physical addresses.

[0030] As shown in FIG. 2, MMU 130 may be a two-stage MMU including stage 1 MMU 134 and stage 2 MMU 136 (as an example of a multi-stage MMU). Virtual addresses (VAs) required by an executing program or other system modules such as PE 100 are translated to intermediate physical addresses (IPAs) by stage 1 MMU. Memory accesses for performing page table walks and the like are shown diagrammatically. The IPAs are translated to physical addresses (PAs) by stage 2 MMU. One reason for using multi-stage translation is for security of information processing when multiple operating systems (OSs) may be used on respective "virtual machines" running on the same processor. While a particular OS is exposed to the VA to IPA translation, only the hypervisor (the software that oversees the execution of virtual machines) oversees the stage 2 (IPA to PA) translation.

[0031] Note that while FIG. 2 conceptually illustrates how a two-stage MMU operates, in practice a single circuit structure (represented by dashed box 138) can perform both stages of the conversion, for example, by implementing a state machine that can handle both.

[0032] The third stage or other stages may also use techniques similar to those discussed, in that in some examples (not shown here) a page table based approach may be used to obtain permission data, attribute data, or other data associated with the translated or other address. Thus, in general terms, the present technology may be thought of as relating to address processing circuitry that detects information about an input memory address, where the "information" may be a complete or partial translation, or other information such as permission data, attribute data, or other data, where the "input memory address" may be a PA, IPA, VA, or other input address, and where (in the case of a translation) the output memory address may be an IPA or PA.

[0033] An important reason why MMU 130 is needed is because it processes address translations that are not currently stored in TLB 102. The manner in which this is performed is explained further below. In processing these matters, and referring to Figure 3, MMU 130 receives requests 222 from the TLB over interconnect 120 and returns responses 232 to the TLB, again over interconnect 120.

[0034] As part of the operation of the PE 100 or other structure with which the TLB 102 is associated, the TLB 102 receives the VA 200 for a required memory access. This may, of course, be a read or write memory access. Which type of memory access is in progress is not important to the present description. The TCU 132 handles obtaining a translation that is not in the TLB 102, for example, by initiating a so-called page table walk.

[0035] Referring also to FIG. 4, which is a simplified flow chart illustrating the operation of the TLB, the provision of a VA 200 to the TLB 102 forms a request to a corresponding PA 210 (shown in FIG. 4 as step 400).

[0036] At least in the context of an exemplary single-stage MMU, the TLB includes a cache or store of translations between VAs and PAs. The criteria by which the TLB stores a particular VA to PA translation may be established according to known techniques for the operation of TLBs. The cached translations may include recently used translations, frequently used translations, and / or translations expected to be needed soon (such as translations associated with VAs close to recently accessed VAs). Overall, the situation is that the TLB includes a cache of a subset of the set of all possible VA to PA translations, and thus, when a particular VA to PA translation is needed, it may or may not be found that the translation is already held in the cache in the TLB. Note that in a two-stage MMU, there may be one or more TLBs for VA to PA translations, VA to IPA translations, and IPA to PA translations.

[0037] Thus, in the next step 410, the TLB determines whether the requested translation is actually currently cached by the TLB (a "hit") If the answer is YES, control passes to step 440 where the PA is returned for use in the requested memory access.

[0038] If the answer is NO, control passes to step 420, where TLB 102 sends the request, including the requested VA 222, to MMU 130 (if TLB 102 is external to MMU 130) and in particular TCU 132. TCU 132 derives the required VA to PA translation (e.g., by accessing data stored in memory using the so-called page table walk (PTW) technique described below) and sends at least the PA 232 corresponding to VA 222 back to TLB 102, where it is stored therein, in step 430.

[0039] Finally, in step 440, the TLB 102 applies the translation stored in the TLB 102 to provide the output PA 210.

[0040] In the context of a multi-stage MMU, a single TLB may be provided for VA to PA translations as a whole, and / or individual TLBs may be provided for each MMU stage. In either of these situations, the operations on the TLBs may correspond to those shown in Figure 4 in terms of the types of translations or other information cached in the TLBs.

[0041] Thus, in these embodiments, the MMU provides one example of an "address processing circuit" that includes an address translation circuit that performs address translation, where information about an input memory address defines at least the address translation between the input memory address in an input address space and a translated output memory address in an output address space. In another example, the "address processing circuit" may include a permission circuit, where information about an input memory address defines at least the access permissions associated with the input memory address.

[0042] Page Table Walk The PTW process involves traversing a hierarchical set of so-called page tables to arrive at a translation for a particular VA. For a single-stage memory translation, the output may be a PA. For a multi-stage memory address translation, the process may be significantly more complex. Since a PA is required to access the page table itself, each access of the next table in the hierarchy may require a translation stage itself to obtain the PA of the next required table. Thus, FIG. 5 illustrates a schematic of an example of a stage-1 page table walk (PTW) process, and FIG. 6 is a schematic flow chart illustrating the PTW process.

[0043] In this example, VA222, which needs to be converted, is formed as a 48-bit value. Different parts of VA222 are used at different levels of the PTW process. The division of these parts in Figure 5 is shown merely as an illustrative example.

[0044] In the context of the process described below, the walk cache 137 may store information obtained from a previously implemented instance of a page table access (e.g., applicable to that stage of a multi-stage MMU, i.e., storing either the IPA, the PA, or both). Thus, prior to initiating any particular page table access, the walk cache (or a portion of the walk cache, or a dedicated individual walk cache associated with the page table level in question) may be referenced, and if the information that would be obtained from that page table access is already in the walk cache, this avoids the need to perform that particular access to memory.

[0045] To obtain a first entry in the page table hierarchy in the "level 0 table" 310, a base address stored in a base address register 300 (FIG. 5), which corresponds to the TTBR 135 of FIG. 1, is obtained in step 600 (FIG. 6). A first portion 312 of the VA 222, for example the 9 most significant bits, is added as an offset to the base address in step 610 to provide the IPA of an entry 314 in the table 310. However, to access the entry 314 indicated by its IPA, a PA is required, which indicates the location of the entry in physical memory. Thus, in step 620, the IPA of the page table entry 314 is fed to a stage 2 translation process to be translated into the corresponding PA. Once the corresponding PA is received, in step 630, the associated page table entry is looked up in physical memory or in the level 2 walk cache 137 (if the associated page is cached).

[0046] In step 640, it is determined whether the page table hierarchy has reached "level 3." If not, as in this case, control passes to step 650, where the retrieved page table entry is used as the base address of the next table in the hierarchy. Thus, the page table entry 314 provides the base address for the next level table in the hierarchy, the "level 1 table" 320. Control returns to step 610.

[0047] In a second iteration of step 610, a further portion 322 of VA222, for example the next 9 bits [38:30] of VA222, forms an offset from the base address of table 320 to provide the IPA of entry 324 in table 320. As before, this IPA is subject to a stage 2 translation to provide a PA that can be looked up to obtain the base address of "level 2 table" 330, which in turn provides (by the same process) the base address of "level 3 table" 340. Portions 332 and 342 of the VA form the offsets into the level 2 and level 3 tables, respectively.

[0048] When steps 630 and 640 are performed for the page table entry defined by IPA 344 in table 340, the answer to the determination in step 640 is "YES". The page table entry indicated by IPA 344 provides the page address and access permissions for the physical memory page. The remaining portion 352 of VA 222, e.g., the least significant 12 bits [11:0], provides a page offset 502 to a target address 500 within the memory page defined by the page table entry in IPA 344, while in an exemplary system that stores information as portions of four consecutive bytes (e.g., 32 bits), portion [11:2] may provide the offset required to address the appropriate 32-bit word. Thus, the combination (in step 660) of the least significant portion of VA 222 with the last page table entry (in this case from "Level 3 Table" 340) provides (in step 670) IPA 250 as the translation of VA 222. It should be noted that the PTW process, as generally described herein, returns an IPA for a PTW performed by a stage 1 MMU, and a PA separately for a PTW performed by a stage 2 MMU.

[0049] The page entry indicated by IPA344 provides an example of the last information entry in a chain of information entries provided by an address information table at the last table level of a plurality of ordered hierarchical table levels, which defines information (in this example, a translation) about the input memory address.

[0050] In example embodiments, including some described below, the first MMU stage is configured to access a hierarchy of page tables such that a page table higher in the hierarchy provides information for address translation by the second stage MMU to point to the next lower page table in the hierarchy, and the lowest page table in the hierarchy provides a set of two or more intermediate memory addresses that include a corresponding intermediate memory address.

[0051] However, it will be understood that more or less PTW levels may be used than those shown in FIGS.

[0052] FIG. 7 is a schematic diagram of a portion of a chain of information entries provided by an address information table at an adjacent level to the hierarchical table level shown in FIG.

[0053] As explained above, an address information table or page table at a given table level can be selected according to a base address that depends on earlier information entries in multiple ordered page tables. Thus, for example, in Figure 5, the address provided by entry 314 provides the base address of table 320, the address provided by entry 324 provides the base address of table 330, and so on.

[0054] Within a selected table, an information entry or page table entry can be selected according to an offset factor (relative to a base address) that depends on at least a portion of the input memory address. That portion may be applicable to a given table level, e.g., portion 312 is applicable to the level 0 table of FIG. 5, portion 322 is applicable to the level 1 table of FIG. 5, and so on. The offset factor is defined such that successive instances of that portion of the input memory address indicate successively addressed information entries. Note that addressing of an information entry or page table entry may refer to the physical address of that page table entry (as in the example of FIG. 5) or may refer to the IPA of that page table entry, which itself requires a further level of translation.

[0055] Referring to the example of FIG. 7, a table 700 is shown at a particular table level (n), where n can be, for example, 0, 1, or 2 in a four-level (0-3) system. Each entry 710 in table 700 points to a respective table at the next level (n+1) and provides the base addresses 720, 722, 724, 726 (potentially subject to stage 2 translation) of respective tables 730, 732, 734, 736 at level n+1. Although only four such associations between entries 710 and base addresses 720-726 are shown in FIG. 7 for clarity, in reality each of the entries 710 in table 700 links to a respective next level table.

[0056] An offset element 712 determines which entry 710 should be referenced from the base address 705 of the level (n) table. The offset element is derived from at least a portion of the input memory address applicable to level (n). Similarly, an offset 740 applicable to the selection of an entry in any of the tables 730-736 is derived from at least a portion of the input memory address applicable to level (n+1).

[0057] Example − Using indicator data on adjacent table level FIG. 8 shows a schematic example of the use of so-called indicator data in the context of an adjacent table level.

[0058] In Figure 8, the same four tables 730-736 are shown as in Figure 7, with the difference now being that they are pointed to by successive table entries 800 in table 700 at level (n), and tables 730-736 at level (n+1) are addressed consecutively, such that base address 722 continues from the last entry in table 730, and so on.

[0059] Indicator data 810, shown generally as a data field (such as one or more bits at a predetermined bit position) in each table entry of table 700, is settable to indicate this situation. Here, "settable" means that the indicator data may be set to a particular state to indicate that the condition applies and set to another state to indicate that the condition does not apply. Note also that the indicator may be a single bit to indicate that a predetermined number of entries are contiguous, or may be selected from one of several different contiguous ranges, for example as a power of two, or a count of the number of contiguous entries. Thus, in one example, a table entry comprising a group of four table entries 800 in table 700 may include at least the following information: Surrounding table entries 801, 804 are also shown, and are given below in vertical order as shown in FIG. 8: [Table 1]

[0060] In itself, this does not necessarily reduce the number of entries provided in table 700. However, possible advantages include:

[0061] In the absence of detection of indicator data, each of the entries in table 700 occupies a respective entry in the Walk cache (or Walk cache or Walk cache portion applicable to level (n)) when first accessed. TCU 132 may be responsible for writing data to Walk cache 137 and controlling reads of Walk cache 137 when the table is accessed. For example, a Walk cache entry applicable to one of table entries 800 may indicate the following: [Table 2]

[0062] When a PTW is needed for that particular offset, a lookup in the walk cache indicates the required base address of the next level table.

[0063] However, in response to detecting the indicator data, the group of entries 800 may be represented by a single entry in the walk cache, for example, as follows: [Table 3]

[0064] This provides an example in which a cache memory (in this example, a walk cache) is configured to store data representing information entries retrieved from an address information table by an address processing circuit, and the cache memory is configured to store data representing a single base address for a group of one or more contiguously addressed information entries for which indicator data is detected to be set.

[0065] Thus, when a PTW walk is required for any of the entries 800, a single walk cache entry indicates that a corresponding range of table addresses at level (n+1) is applicable for a range of offset elements that access any one of the entries 800. Thus, only a single walk cache entry is needed for a group of contiguous entries 800 in the table at level (n).

[0066] By using the walk cache more efficiently, the hit probability for a walk cache of a particular size can be improved. Improving the cache hit probability means that a greater percentage of PTW operations can be completed from the walk cache rather than from more costly memory accesses, and therefore the overall system efficiency and / or throughput and / or power consumption can be improved.

[0067] Thus, in this context, this provides an example in which indicator data may be set to indicate whether a group 800 of one or more contiguously addressed information entries in a particular table 700 provides at least one base address that indicates a location within a contiguously addressed region 820 that includes multiple address information tables at a later table level (in this example, level (n+1)).

[0068] Example - Indicator Data Referencing a Later Table Level 9, an exemplary table 900 at level (m) includes an exemplary entry 905 that provides a base address 910 of a table 920 at the next level (m+1), where m can be, for example, 0 or 1 in a four-level (0-3) system.

[0069] Each entry 925 in table 920 points to a respective table 930 at the next level (m+2) in turn. The arrangement is such that successive entries 925 point to respective successively addressed instances of table 930, and each entry 925 points to a respective table 930 in the address space region encompassing the set of tables 930.

[0070] A variation of this configuration is described with respect to FIG. 10, where the indicator data is configured to indicate whether an information entry in a selected address information table provides a base address that indicates a contiguously addressed region that includes a plurality of address information tables at a table level after the next table level of a plurality of ordered hierarchical table levels.

[0071] In particular, the present technology can provide a streamlining of this table structure in that in a level (m) table 900, a single entry 1000 can provide a pointer 1010 to the base address 1020 of the entire level (m+2) region 1030 that contains all of the contiguously addressed tables 930.

[0072] The offset 1040 from the base address 1020 is derived as follows: offset = [part of address applicable to level (m)] concatenated with [part of address applicable to level (m+1)]

[0073] A specific example is provided and described below with respect to FIG.

[0074] Exemplary contents of an entry 1000 containing settable indicator data 1040 are as follows: [Table 4]

[0075] Here, the indicator data is configured to indicate whether a group of one or more consecutive table entries in a selected address information table (at level (n)) provide respective base addresses that indicate a group of consecutively addressed address information tables at a next table level (n+1) of the ordered plurality of hierarchical table levels.

[0076] This provides another example in which a cache memory (in this example, a walk cache) is configured to store data representing information entries retrieved from an address information table by the address processing circuitry, and the cache memory is configured to store data representing a single base address for a group of one or more contiguously addressed information entries for which indicator data is detected to be set.

[0077] Thus, when a PTW walk is required for entry 1000, the single walk cache entry indicates that the next level (m+1) table is omitted entirely and thus only a single walk cache entry is needed for entry 1000 to provide the base addresses of all tables 1030 at level (m+2). In other words, the address processing circuit is configured to select an information entry in an address information table at a table level after the next table level following a given level of the ordered plurality of hierarchical table levels in response to accessing an information entry at the selected table level at which the indicator data is set.

[0078] By using the walk cache more efficiently, the hit probability for a walk cache of a particular size can be improved. Improving the cache hit probability means that a greater percentage of PTW operations can be completed from the walk cache rather than from more costly memory accesses, and therefore the overall system efficiency and / or throughput and / or power consumption can be improved.

[0079] This configuration therefore provides an example in which indicator data 1040 is set to indicate whether a group of one or more contiguously addressed information entries in table 900 (in this example a single entry 1000) provides at least one base address 1020 that indicates a location within a contiguously addressed region 1030 that includes multiple address information tables at a later (m+2) table level.

[0080] Also, note that the two techniques may be combined, for example, by indicator data that identifies a set of contiguous entries and also skips one or more table levels.

[0081] As an example of the offset addressing described above, Figure 11 provides a representation similar to that shown by representation 222 of Figure 5, where a first portion 312 of an input address forms an index into the level 0 table and a second portion 322 provides an index into a level 1 table, which in this example has an entry similar to that shown as entry 1000 of the level (m) table of Figure 10. Entry 1000 is thus pointed to by the offset provided by level 1 index 322. Indicator data 1040 set for entry 1000 indicates that level 2 is omitted, such that the address provided by entry 1000 provides a pointer 1010 to the base address 1020 of the level 3 table (level m+2).

[0082] In these examples, the address processing circuitry is configured to select an information entry in the address information table at a table level after the next table level (m+1) following a given level (m), such as m+2 or indeed beyond, according to an offset factor that depends on at least respective portions of the input memory address associated with the given table level and the table level following the given table level.

[0083] Thus, instead of the separate portions 322, 342 of FIG. 5, portion 346 (i.e., bits [29:12]) is used as offset 1040 within region 1030 defined by pointer 1010, which is a concatenation of portions 332, 342 associated with levels 2 and 3 of FIG. 5.

[0084] It will be appreciated that this configuration can be used to skip or omit more than one level, so that (in a four level (0-3) system as an example) a table entry at level 0 may be accompanied by indicator data indicating that it points to an address of a level 3 table (for example). In such a case, the associated offset is formed by the TCU as follows: offset = [part of address applicable to level(0)] concatenated with [part of address applicable to level(1)] concatenated with [part of address applicable to level(2)] (or VA bits [47:21] in the representation in Figure 5)

[0085] Fig. 12 is a schematic flow chart showing an exemplary method applicable to generating and storing page table data with optional use of indicator data as described above. Referring to Fig. 12, step 1200 includes generating information about the input memory address. In this example, the information relates to address mapping, but any other data that can be represented as a hierarchy of page tables is alternatively or additionally applicable. Step 1200 also includes generating a table representation, for example involving generating address information tables at ordered multiple hierarchical table levels to provide information about the input memory address, where for a given address information table at a given table level, the address information table at the given table level is selectable by a base address that depends on a previous information entry in an address information table prior to the given table level at the ordered multiple table levels, and the information entry in the selected address information table is selectable according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that consecutive instances of the portion of the input memory address indicate consecutively addressed information.

[0086] The generation process may include step 1220, which involves detecting an amount of memory available for storing multiple ordered hierarchical table levels to provide information about the input memory addresses, and detecting whether, within the detected amount of memory, multiple sets of address information tables at the same table level can be stored in consecutively addressed memory areas.

[0087] The outcome of step 1220 may be "NO", in which case control passes to step 1230 where a page table is generated in the format of FIG.

[0088] However, if the answer in step 1220 is yes, then one or both of steps 1240 and 1250 may be applied, for example, to different respective groups of tables and / or levels within the overall structure. Each of these steps involves the use of indicator data, with step 1240 using the technique of Figure 8 and step 1250 using the technique of Figure 10. They have in common the feature of generating a set of one or more contiguous table entries at a higher table level to provide a base address that points to a contiguous addressed region when multiple sets of address information tables at the same table level may be stored in a contiguous addressed memory region.

[0089] Finally, in step 1260, the address information table is stored in memory.

[0090] 12 may be executed, for example, by PE 100, for example, at boot time. In this regard, PE 100 together with memory 110 may be an example of a processor circuit for generating information regarding an input memory address, and a memory for storing address information tables, the processor circuit generating address information tables at a plurality of ordered hierarchical table levels to provide information regarding the input memory address, the address information table at a given table level being selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels, the information entry in the selected address information table being an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being an offset element that depends on at least a portion of the input memory address applicable to the given table level, the information entry in the selected address information table being selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels, the information entry in the selected address information table being selectable by an offset element that depends on at least a portion of the input memory address applicable to the given table level, the information entry in the selected address information table being selectable by an earlier information entry in an address information table prior to the given table level in the plurality of ordered table levels ... and a processor circuit configured to detect an amount of memory available for storing an ordered plurality of hierarchical table levels to provide information about the input memory address, detect within the detected amount of memory whether a set of multiple address information tables at the same table level can be stored in the contiguously addressed memory region, and generate a set of one or more contiguous table entries at a higher table level to provide a base address designating the contiguously addressed region when a set of multiple address information tables at the same table level can be stored in the contiguously addressed memory region.

[0091] 13 is a schematic flow chart showing an example of application, including potential combinations, of the techniques described above, which forms part of a method for finding information about an input memory address by referring to respective chains of information entries provided by an address information table in multiple ordered hierarchical table levels.

[0092] It will be appreciated that the indicator data of Figure 8 may be used with or without the indicator data or Figure 10, so that each configuration may be used by itself without the other configuration being used. In the example of Figure 13, both types of indicator data are provided as different indicator values, for example, a common indicator data field.

[0093] In Fig. 13, a particular table entry is found in step 1300. This may include, for a given address information table at a given table level, selecting an information entry in the address information table at a table level subsequent to the given level in the ordered plurality of hierarchical table levels by a pointer defined by a base address dependent on the information entry in the given address information table and an offset element dependent on at least a portion of the input memory address, the pointer being defined such that successive instances of the portion of the input memory address point to successively addressed information entries.

[0094] In step 1310, a detection is made as to whether the indicator data is set, where the outcome is either the indicator data is not set (path 1312), the indicator data is set to indicate a group of contiguous entries (outcome 1314), or the indicator data is set to indicate a skip or omission of one or more levels (outcome 1316). This represents an example of detecting whether the indicator data is set to indicate whether a set of one or more contiguous table entries in a given address information table provides a base address that specifies a contiguous addressed region that includes multiple address information tables at a later table level.

[0095] For outcome 1312, an entry of the known type is stored in the walk cache in step 1320 and the next table level is accessed in step 1330.

[0096] With respect to the result 1314 , one or more entries of the type discussed with reference to the description of FIG. 8 above are stored in the walk cache in step 1340 and control passes to step 1330 .

[0097] Result 1316 leads to step 1350 where an entry is stored in the walk cache indicating the state of the current table entry and indicator data, and in step 1360 further table levels (beyond the next table level) are accessed using the techniques described above with reference to FIG. 10.

[0098] FIG. 14 illustrates a simulator implementation that may be used. While the above embodiments implement the invention in terms of apparatus and methods for operating specific processing hardware supporting the technology, it is also possible to provide an instruction execution environment according to the embodiments described herein implemented through the use of a computer program. Such a computer program is often referred to as a simulator insofar as the computer program provides a software-based implementation of a hardware architecture. Various simulator computer programs include emulators, virtual machines, models, and binary translators, including dynamic binary translators. Typically, a simulator implementation may run on a host processor 1730, optionally running a host operating system 720 that supports the simulator program 710. In some configurations, there may be multiple layers of simulation between the hardware and the provided instruction execution environment, and / or there may be multiple different instruction execution environments provided on the same host processor. Historically, powerful processors have been required to provide simulator implementations that run at reasonable speeds, but such an approach may be justified in some situations when it is desirable to run code native to another processor for compatibility or reuse reasons. For example, a simulator implementation may provide an instruction execution environment that has additional features not supported by the host processor hardware, or that are typically associated with a different hardware architecture. An overview of simulation is given in "Some Efficient Architecture Simulation Techniques", Robert Bedichek, Winter 1990 USENIX Conference, pp. 53-63.

[0099] While embodiments have been described above with reference to particular hardware constructs or features, equivalent functionality may be provided in the simulated embodiments by appropriate software constructs or features. For example, particular circuits may be implemented as computer program logic in the simulated embodiments. Similarly, memory hardware such as registers or caches may be implemented as software data structures in the simulated embodiments. In configurations where one or more of the hardware elements referenced in the foregoing embodiments reside in host hardware (e.g., host processor 1730), some simulated embodiments may use the host hardware where appropriate.

[0100] The simulator program 1710 may be stored on a computer-readable storage medium (which may be a non-transitory medium) and provides a program interface (instruction execution environment) to the target code 1700 (which may include applications, an operating system, and a hypervisor). This is the same interface as the hardware architecture being modeled by the simulator program 1710. Thus, the program instructions of the target code 1700, including the functions described above, may be executed from within the instruction execution environment using the simulator program 1710, thereby allowing a host computer 1730, which does not actually have the hardware functions of the devices discussed above, to emulate these functions.

[0101] The configuration of FIG. 14 therefore provides an example of a computer program for controlling a host data processing apparatus to provide an instruction execution environment, the instruction execution environment comprising: an address processing circuit for detecting information relating to an input memory address by referring to respective chains of information entries provided by address information tables in each of a plurality of ordered hierarchical table levels; the address processing circuit is configured to select an address information table in a given table level according to a base address that depends on an earlier information entry in an address information table earlier than the given table level of the ordered plurality of table levels; the address processing circuit is configured to select an information entry in the selected address information table according to an offset element that depends on at least a portion of the input memory address applicable to the given table level, the offset element being defined such that successive instances of a portion of the input memory address indicate successively addressed information entries; and the address processing circuit comprises a detector circuit for detecting whether indicator data is set to indicate whether a group of one or more successively addressed information entries in the selected address information table provides at least one base address that indicates a location within a successively addressed region including a plurality of address information tables in a later table level.

[0102] In this application, the term "configured to..." is used to mean that an element of an apparatus has a configuration capable of performing a defined operation. In this context, "configuration" refers to a hardware or software configuration or method of interconnection. For example, an apparatus may have dedicated hardware that provides the defined operation, or a processor or other processing device may be programmed to perform the function, in which case the software or program instructions by which the function is performed, and the provision medium, such as a non-transitory machine-readable medium, on which such software or program instructions are provided (e.g., stored), are considered to represent an embodiment of the disclosure. "Configured to" does not mean that the apparatus elements need to be modified in any way to provide the defined operation.

[0103] Although exemplary embodiments of the present technology have been described in detail herein with reference to the accompanying drawings, it should be understood that the present technology is not limited to those precise embodiments, and various changes, additions, and modifications can be made by those skilled in the art without departing from the scope and spirit of the technology as defined by the appended claims. For example, various combinations of the features of the dependent claims can be made with the features of the independent claims without departing from the scope of the present technology.

Claims

1. 1. An apparatus comprising: an address processing circuit for detecting information regarding an input memory address by referring to each chain of information entries provided by an address information table at each of a plurality of ordered hierarchical table levels, The address processing circuit is configured to select an address information table at a given table level according to a base address that depends on an earlier information entry in an address information table prior to the given table level of the ordered plurality of table levels; and the address processing circuitry is configured to select an information entry in the selected address information table according to an offset factor dependent on at least a portion of the input memory address applicable to the given table level, the offset factor being defined such that successive instances of the portion of the input memory address indicate successively addressed information entries; The address processing circuitry includes a detector circuit that detects whether indicator data is set to indicate whether a group of one or more contiguously addressed information entries in the selected address information table provides at least one base address that indicates a location within a contiguously addressed region that includes multiple address information tables at a later table level.

2. 2. The apparatus of claim 1, wherein a last information entry in the chain of information entries provided by an address information table at a last table level of the ordered plurality of hierarchical table levels defines the information regarding the input memory address.

3. 3. The apparatus of claim 1, wherein the address processing circuitry includes an address translation circuitry that performs an address translation, and the information about the input memory address defines at least an address translation between the input memory address in an input address space and a translated output memory address in an output address space.

4. the input memory address is one of a virtual memory address and an intermediate physical address; the output memory address is one of an intermediate physical address and a physical address.

4. The apparatus of claim 3.

5. 5. Apparatus according to any preceding claim, wherein the address processing circuitry includes a permission circuit, and wherein the information about an input memory address defines at least access permissions associated with the input memory address.

6. 6. The apparatus of claim 1, wherein the indicator data is configured to indicate whether the group of one or more consecutive table entries in the selected address information table provide respective base addresses indicative of a group of consecutively addressed address information tables at a next table level of the ordered plurality of hierarchical table levels.

7. a cache memory for storing data representing an information entry retrieved from the address information table by the address processing circuit; the cache memory is configured to store data representing a single base address for a group of one or more contiguously addressed information entries for which the indicator data is detected to be set; 7. The apparatus of claim 6.

8. 6. The apparatus of claim 1, wherein the indicator data is configured to indicate whether an information entry in the selected address information table provides a base address indicating a contiguously addressed region including a plurality of address information tables in a table level after the next table level of the ordered plurality of hierarchical table levels.

9. 9. The apparatus of claim 8, wherein the address processing circuit is configured to select an information entry in an address information table at a table level after the next table level following the given level of the ordered plurality of hierarchical table levels in response to accessing an information entry of the selected table level to which the indicator data is set.

10. 10. The apparatus of claim 9, wherein the address processing circuitry is configured to select the information entry in an address information table at a table level after the next table level following the given level according to an offset factor that depends on at least the respective portions of the input memory address associated with the given table level and the table level following the given table level.

11. Detecting information regarding an input memory address by referring to each chain of information entries provided by an address information table among a plurality of ordered hierarchical table levels; selecting, for a given address information table at a given table level, an information entry in an address information table at a table level subsequent to the given level in the ordered plurality of hierarchical table levels by a pointer defined by a base address dependent on an information entry in the given address information table and an offset element dependent on at least a portion of the input memory address, the pointer being defined such that successive instances of the portion of the input memory address point to successively addressed information entries; detecting whether indicator data is set to indicate whether a set of one or more contiguous table entries in the given address information table provides a base address that specifies a contiguous addressed region that includes multiple address information tables in a later table level; The method includes:

12. generating information about an input memory address; 1. A method comprising: generating an address information table in an ordered plurality of hierarchical table levels to provide information regarding an input memory address; and storing the address information table in the memory, generating the address information table includes, for a given address information table at a given table level, the address information table at the given table level is selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the ordered plurality of table levels; The information entries in the selected address information table are selectable according to an offset factor that depends on at least a portion of the input memory address applicable to the given table level, the offset factor being defined such that successive instances of the portion of the input memory address indicate successively addressed information, and the step of generating the address information table comprises: detecting an amount of memory available for storing said ordered plurality of hierarchical table levels to provide said information regarding an input memory address; Detecting whether or not a plurality of sets of address information tables at the same table level can be stored in consecutively addressed memory areas within the detected amount of memory; generating a set of one or more contiguous table entries at a higher table level to provide a base address designating the contiguous addressed memory region when the set of address information tables at the same table level may be stored in the contiguous addressed memory region; A method comprising:

13. generating information about an input memory address and providing information about an input memory address; 1. An apparatus comprising: a processor circuit for generating an address information table in a plurality of ordered hierarchical table levels; and a memory for storing the address information table, For a given address information table at a given table level, the address information table at the given table level is selectable by a base address that depends on an earlier information entry in an address information table prior to the given table level in the ordered plurality of table levels; an information entry in a selected address information table is selectable according to an offset factor dependent on at least a portion of the input memory address applicable to the given table level, the offset factor being defined such that successive instances of the portion of the input memory address indicate successively addressed information, and the processor circuitry: detecting an amount of memory available for storing said ordered plurality of hierarchical table levels to provide said information regarding an input memory address; configured to detect whether a set of multiple address information tables at the same table level can be stored in consecutively addressed memory areas within the detected amount of memory; and 11. An apparatus configured to generate a set of one or more contiguous table entries at a higher table level to provide a base address designating the contiguous addressed memory region when the set of multiple address information tables at the same table level may be stored in the contiguous addressed memory region.

14. 1. A computer program for controlling a host data processing apparatus to provide an instruction execution environment, the instruction execution environment comprising: an address processing circuit for detecting information regarding an input memory address by referring to each chain of information entries provided by an address information table in each of a plurality of ordered hierarchical table levels; the address processing circuit is configured to select an address information table at a given table level according to a base address dependent on an earlier information entry in an address information table prior to the given table level of the ordered plurality of table levels; the address processing circuitry is configured to select an information entry in the selected address information table according to an offset factor dependent on at least a portion of the input memory address applicable to the given table level, the offset factor being defined such that successive instances of the portion of the input memory address indicate successively addressed information entries; and the address processing circuitry includes a detector circuit that detects whether indicator data is set to indicate whether a group of one or more contiguously addressed information entries in the selected address information table provides at least one base address that indicates a location within a contiguously addressed region that includes multiple address information tables at a later table level.

Citation Information

Patent Citations

  • Virtual memory system

    JP1977104025A

  • Hierarchical conversion table control

    JP2013522748A

  • Measuring address translation latency

    JP2019506670A