IP Library › Granted Patent US 10,534,715
Granted Patent B2
US 10,534,715 · App. 15/135,685 · Granted Jan 14, 2020

Operation of a multi-slice processor implementing a unified page walk cache

Inventors: Dwain A. Hicks (Pflugerville, TX); Jonathan H. Raymond (Richmond, VT); George W. Rohrbaugh, III (Charlotte, VT); Shih-Hsiung S. Tung (Austin, TX)
Assignee: International Business Machines Corporation
G06F12/0875G06F12/0871G06F12/1045G06F2212/684
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,534,715
App. No.
15/135,685
Granted
Jan 14, 2020
Kind
B2
Abstract

Operation of a multi-slice processor that includes a plurality of execution slices, a plurality of load/store slices, and one or more page walk caches, where operation includes: receiving, at a load/store slice, an instruction to be issued; determining, at the load/store slice, a process type indicating a source of the instruction to be a host process or a guest process; and determining, in accordance with an allocation policy and in dependence upon the process type, an allocation of an entry of the page walk cache, wherein the page walk cache comprises one or more entries for both host processes and guest processes.

Claims (33)

1. A method of operation of a multi-slice processor, the multi-slice processor including a page walk cache, a plurality of execution slices, and a plurality of load/store slices, the method comprises: receiving, at a load/store slice, an instruction to be issued; determining, at the load/store slice, a process type indicating a source of the instruction to be a host process or a guest process; and determining, in accordance with an allocation policy and in dependence upon the process type, an allocation of an entry of the page walk cache, wherein the page walk cache stores a reference to a page table, wherein the page walk cache comprises one or more entries for both host processes and guest processes, wherein at least one entry in the page walk cache stores a result of a previous page walk carried out for address translation, wherein the allocation policy specifies a first portion of the page walk cache to be dedicated to one or more host processes, and wherein the allocation policy specifies a second portion of the page walk cache to be dedicated to one or more guest processes, and wherein the allocation policy specifies a first minimum and maximum quantity of entries of the page walk cache for the first portion of the page walk cache in dependence upon an expected workload for the one or more host processes, and wherein the allocation policy specifies a second minimum and maximum quantity of entries of the page walk cache for the second portion of the page walk cache in dependence upon an expected workload for the one or more guest processes.

2. The method of claim 1 , further comprising:

storing, within the entry of the page walk cache, a flag indicating the process type, address bits, and a process identification.

3. The method of claim 2 , further comprising:

receiving, at the load/store slice, a second instruction to be issued, wherein the second instruction comprises an effective address field;

indexing the page walk cache according to the effective address field of the second instruction;

determining, in dependence upon indexing the page walk cache, an address match at the entry of the page walk cache;

responsive to determining the address match:

determining, in dependence upon whether a process type for the second instruction matches the process type stored in the flag for the entry, a cache hit or a cache miss.

4. The method of claim 3 , wherein if the process type for the second instruction matches the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache hit.

5. The method of claim 3 , wherein if the process type for the second instruction does not match the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache miss.

6. A multi-slice processor comprising: a page walk cache, a plurality of execution slices, and a plurality of load/store slices, wherein the multi-slice processor is configured to carry out: receiving, at a load/store slice, an instruction to be issued; determining, at the load/store slice, a process type indicating a source of the instruction to be a host process or a guest process; and determining, in accordance with an allocation policy and in dependence upon the process type, an allocation of an entry of the page walk cache, wherein the page walk cache stores a reference to a page table, wherein the page walk cache comprises one or more entries for both host processes and guest processes, wherein at least one entry in the page walk cache stores a result of a previous page walk carried out for address translation, wherein the allocation policy specifies a first portion of the page walk cache to be dedicated to one or more host processes, and wherein the allocation policy specifies a second portion of the page walk cache to be dedicated to one or more guest processes, and wherein the allocation policy specifies a first minimum and maximum quantity of entries of the page walk cache for the first portion of the page walk cache in dependence upon an expected workload for the one or more host processes, and wherein the allocation policy specifies a second minimum and maximum quantity of entries of the page walk cache for the second portion of the page walk cache in dependence upon an expected workload for the one or more guest processes.

7. The multi-slice processor of claim 6 , wherein the multi-slice processor is further configured to carry out:

storing, within the entry of the page walk cache, a flag indicating the process type, address bits, and a process identification.

8. The multi-slice processor of claim 7 , wherein the multi-slice processor is further configured to carry out:

receiving, at the load/store slice, a second instruction to be issued, wherein the second instruction comprises an effective address field;

indexing the page walk cache according to the effective address field of the second instruction;

determining, in dependence upon indexing the page walk cache, an address match at the entry of the page walk cache;

responsive to determining the address match:

determining, in dependence upon whether a process type for the second instruction matches the process type stored in the flag for the entry, a cache hit or a cache miss.

9. The multi-slice processor of claim 8 , wherein if the process type for the second instruction matches the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache hit.

10. The multi-slice processor of claim 8 , wherein if the process type for the second instruction does not match the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache miss.

11. An apparatus comprising: a page walk cache, a plurality of execution slices, and a plurality of load/store slices, wherein the multi-slice processor is configured to carry out: receiving, at a load/store slice, an instruction to be issued; determining, at the load/store slice, a process type indicating a source of the instruction to be a host process or a guest process; and determining, in accordance with an allocation policy and in dependence upon the process type, an allocation of an entry of the page walk cache, wherein the page walk cache stores a reference to a page table, wherein the page walk cache comprises one or more entries for both host processes and guest processes, wherein at least one entry in the page walk cache stores a result of a previous page walk carded out for address translation, wherein the allocation policy specifies a first portion of the page walk cache to be dedicated to one or more host processes, and wherein the allocation policy specifies a second portion of the page walk cache to be dedicated to one or more guest processes, and wherein the allocation policy specifies a first minimum and maximum quantity of entries of the page walk cache for the first portion of the page walk cache in dependence upon an expected workload for the one or more host processes, and wherein the allocation policy specifies a second minimum and maximum quantity of entries of the page walk cache for the second portion of the page walk cache in dependence upon an expected workload for the one or more guest processes.

12. The apparatus of claim 11 , wherein the multi-slice processor is further configured to carry out:

storing, within the entry of the page walk cache, a flag indicating the process type, address bits, and a process identification.

13. The apparatus of claim 12 , wherein the multi-slice processor is further configured to carry out:

receiving, at the load/store slice, a second instruction to be issued, wherein the second instruction comprises an effective address field;

indexing the page walk cache according to the effective address field of the second instruction;

determining, in dependence upon indexing the page walk cache, an address match at the entry of the page walk cache;

responsive to determining the address match:

determining, in dependence upon whether a process type for the second instruction matches the process type stored in the flag for the entry, a cache hit or a cache miss.

14. The apparatus of claim 13 , wherein if the process type for the second instruction matches the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache hit.

15. The apparatus of claim 13 , wherein if the process type for the second instruction does not match the process type for the given entry, then determining the cache hit or the cache miss comprises determining a cache miss.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2016
From: HICKS, DWAIN A.; RAYMOND, JONATHAN H.; ROHRBAUGH, GEORGE W., III; TUNG, SHIH-HSIUNG S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038349/0917 →
Continuity (1)
Related Publication 20170308474A1 · Oct 26, 2017