IP Library › Granted Patent US 10,216,642
Granted Patent B2
US 10,216,642 · App. 13/834,739 · Granted Feb 26, 2019

Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size

Inventors: Anthony J. Bybell (Cedar Park, TX); Bradly G. Frey (Austin, TX); Michael Karl Gschwind (Chappaqua, NY)
Assignee: International Business Machines Corporation
G06F12/1009G06F2212/652
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,216,642
App. No.
13/834,739
Granted
Feb 26, 2019
Kind
B2
Abstract

An apparatus includes a processor and a virtual address transformation unit coupled with the processor. The virtual address transformation unit includes a register. The virtual address transformation unit is configured to receive an indication of a virtual address and read, from the register, a current page size of a plurality of available page sizes. The virtual address transformation unit is also configured to determine a shift amount based, at least in part, on the current page size and perform a bit shift of the virtual address, wherein the virtual address is bit shifted by, at least, the determined shift amount.

Claims (36)

1. An apparatus comprising:

a processor; and

a virtual address transformation unit coupled with the processor, the virtual address transformation unit including a register, the virtual address transformation unit configured to:

receive an indication of a virtual address;

determine, from the register, a current page size of a plurality of available page sizes;

determine a bit shift amount based, at least in part, on the current page size and a base shift amount, the base shift amount corresponding to a minimum page size; and

perform a bit shift of the virtual address to create a transformed virtual address, wherein the virtual address is bit shifted by, at least, the determined bit shift amount.

2. The apparatus of claim 1 , wherein the processor includes the virtual address transformation unit.

3. The apparatus of claim 1 , wherein the virtual address transformation unit further includes a shift register, the shift register configured to perform the bit shift.

4. The apparatus of claim 1 , wherein the virtual address transformation unit is further configured to determine a current page size shift amount by at least one of:

perform a table lookup on a table, wherein the table maps a value indicating the current page size to the current page size shift amount,

and

determine a number of bits set to one in the value indicating the current page size.

5. The apparatus of claim 1 , wherein the virtual address transformation unit is further configured to use the transformed virtual address as at least one of a set of one or more page identifiers and a page offset.

6. The apparatus of claim 5 , wherein the virtual address transformation unit is further configured to:

calculate a padding amount for at least one of a page identifier of the set of one or more page identifiers and the page offset; and

pad at least one of the page identifier of the set of one or more page identifiers and the page offset in accordance with the respective calculated padding amount.

7. The apparatus of claim 1 , wherein the virtual address transformation unit is further configured to use the transformed virtual address to perform a page table lookup.

8. The apparatus of claim 1 , wherein the virtual address is transformed based, at least in part, on a template, wherein the virtual address transformed in accordance with the template is compatible with a plurality of page table types.

9. A computer program product comprising:

a computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising a computer usable program code configured to:

receive an indication of a virtual address;

determine, from a register, a current page size of a plurality of available page sizes;

determine a bit shift amount based, at least in part, on the current page size and a base shift amount, the base shift amount corresponding to a minimum page size; and

perform a bit shift of the virtual address to create a transformed virtual address, wherein the virtual address is bit shifted by at least the determined bit shift amount.

10. The computer readable storage medium of claim 9 , wherein the computer usable program code further comprises computer usable program code to determine a current page size shift amount by at least one of:

perform a table lookup on a table, wherein the table maps a value indicating the current page size to the current page size shift amount,

and

determine a number of bits set to one in the value indicating the current page size.

11. The computer readable storage medium of claim 9 , wherein the computer usable program code is further configured to use the transformed virtual address as at least one of a set of one or more page identifiers and a page offset.

12. The computer readable storage medium of claim 9 , wherein the computer usable program code is further configured to use the transformed virtual address to perform a page table lookup.

13. The computer readable storage medium of claim 9 , wherein the computer usable program code is further configured to transform the virtual address based, at least in part, on a template, wherein the virtual address transformed in accordance with the template is compatible with a plurality of page table types.

14. The computer readable storage medium of claim 9 , wherein the computer usable program code configured to perform the bit shift of the virtual address to create the transformed virtual address includes computer usable program code configured to:

write the virtual address to a shift register to perform the bit shift, wherein a first register receives a first output of the shift register and a second output of the shift register, the first output comprising a page offset, and the second output comprising a page identifier.

15. The apparatus of claim 1 wherein the virtual address transformation unit is configured is further configured to:

write the virtual address to a shift register to perform the bit shift, wherein a first register receives a first output of the shift register and a second output of the shift register, the first output comprising a page offset, and the second output comprising a page identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2013
From: BYBELL, ANTHONY J.; FREY, BRADLY G.; GSCHWIND, MICHAEL KARL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030326/0200 →
Continuity (1)
Related Publication 20140281353A1 · Sep 18, 2014