US 11,853,227 B2
Data processing apparatus and method for performing address translation
Charles Andrew Giefer, Austin, TX (US); and Alexander Donald Charles Chadwick, Cambridge (GB)
Assigned to Arm Limited, Cambridge (GB)
Filed by Arm Limited, Cambridge (GB)
Filed on Apr. 28, 2021, as Appl. No. 17/242,729.
Prior Publication US 2022/0350750 A1, Nov. 3, 2022
Int. Cl. G06F 12/10 (2016.01); G06F 12/1045 (2016.01); G06F 12/02 (2006.01); G06F 12/1009 (2016.01); G06F 12/1036 (2016.01)
CPC G06F 12/1045 (2013.01) [G06F 12/0238 (2013.01); G06F 12/1009 (2013.01); G06F 12/1036 (2013.01); G06F 12/1054 (2013.01); G06F 12/1063 (2013.01); G06F 2212/651 (2013.01); G06F 2212/653 (2013.01); G06F 2212/7201 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A data processing apparatus comprising:
storage circuitry to store a hierarchy of page tables comprising an intermediate level page table comprising a plurality of entries, each comprising corresponding base address information of a corresponding next level page table and corresponding control information indicating whether an addressing function has been applied to reorder physical storage locations of entries of the corresponding next level page table; and
address translation circuitry to perform a virtual-to-physical address translation using the hierarchy of page tables in response to receipt of a virtual address, the virtual-to-physical address translation comprising performing a lookup in a next level page table dependent on base address information defined in an entry of the intermediate level page table and a page table index generated based on a portion of the virtual address,
wherein irrespective of the control information of the entry, a base address used to access a physical storage location of the next level page table is generated from the entry of the intermediate level page table, and
wherein the address translation circuitry is adapted such that:
in response to control information of the entry indicating that the addressing function has been applied, the lookup in the next level page table is performed at a modified storage location within the next level page table identified by a modified page table index generated by applying the addressing function to reorder at least two sub-portions of the portion of the virtual address; and
in response to control information of the entry indicating that the addressing function has not been applied, the lookup in the next level page table is performed at a storage location within the next level page table identified by the page table index generated from the portion of the virtual address without applying the addressing function.