IP Library › Granted Patent US 10,929,132
Granted Patent B1
US 10,929,132 · App. 16/579,806 · Granted Feb 23, 2021

Systems and methods for ISA support for indirect loads and stores for efficiently accessing compressed lists in graph applications

Inventors: Robert Pawlowski (Beaverton, OR); Scott Hagan Schmittel (Portland, OR); Joshua Fryman (Corvallis, OR); Wim Heirman (Ghent, BE); Jason Howard (Portland, OR); Ankit More (San Mateo, CA); Shaden Smith (Bellevue, WA); Scott Cline (Beaverton, OR)
Assignee: Intel Corporation
G06F9/30145G06F9/30043G06F9/30079G06F9/35
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,929,132
App. No.
16/579,806
Granted
Feb 23, 2021
Kind
B1
Abstract

Disclosed embodiments relate to systems and methods for performing instructions to access a compressed graphic list. In one example, a processor includes fetch and decode circuitry to fetch and decode the single instruction to access the compressed graphic list, and execution circuitry to execute the decoded single instruction to cause access to the compressed graphic list by: receiving, from a load store queue, at a first op-engine associated with a first data location, an indirection request, computing, via the first op-engine, a second data location associated with a second op-engine, computing, via the second op-engine, a third data location associated with a third op-engine responsive to the indirection request, and providing, via the third op-engine, a data response to the load store queue responsive to receiving data from the third data location.

Claims (50)

1. A processor comprising:

fetch circuitry to fetch a single instruction to access a compressed graphic list;

decode circuitry to decode the fetched single instruction; and

execution circuitry to execute the decoded single instruction to cause access to the compressed graphic list by:

receiving, from a load store queue, at a first op-engine associated with a first data location, an indirection request;

computing, via the first op-engine, a second data location associated with a second op-engine;

computing, via the second op-engine, a third data location associated with a third op-engine responsive to the indirection request; and

providing, via the third op-engine, a data response to the load store queue responsive to receiving data from the third data location.

2. The processor of claim 1 , wherein the single instruction comprises at least one of a list load, pointer deference, an indirect load operation, or an indirect store operation.

3. The processor of claim 1 , wherein the first op-engine is to:

retrieve a first pointer from the first data location; and

compute the second data location associated with a second pointer.

4. The processor of claim 3 , wherein the second op-engine is to:

retrieve the second pointer from the second data location; and

compute the third data location associated with a third pointer.

5. The processor of claim 1 , wherein a data location comprises a memory location in a pipeline indirection system.

6. The processor of claim 1 , wherein the indirection request comprises at least one of a multi-indirection or a single indirection.

7. The processor of claim 1 , wherein the indirection request comprises an indirect operation, and wherein the indirect operation comprises an indirect load operation or an indirect store operation.

8. The processor of claim 7 , further comprising determining a level of indirection for the indirect load operation or the indirect store operation.

9. The processor of claim 1 , wherein the data response comprises at least one of a data value or a data acknowledgement.

10. The processor of claim 1 , wherein the indirection request comprises an address associated with the load store queue, and wherein the address associated with the load store queue is sent in the indirection request to return data to the load store queue at one or more op-engines of the pipeline indirection system.

11. A method comprising:

fetching and decoding, using fetch and decode circuitry, a single instruction to access a compressed graphic list; and

responding, using execution circuitry, to the decoded instruction by

receiving, from a load store queue, at a first op-engine associated with a first data location, an indirection request;

determining, via the first op-engine, a second data location associated with a second op-engine;

determining, via the second op-engine, a third data location associated with a third op-engine responsive to the indirection request; and

providing, via the third op-engine, a data response to the load store queue responsive to receiving data from the third data location.

12. The method of claim 11 , wherein the single instruction comprises at least one of a list load, pointer deference, an indirect load operation, or an indirect store operation.

13. The method of claim 11 , wherein the first op-engine is to:

retrieve a first pointer from the first data location; and

compute the second data location associated with a second pointer.

14. The method of claim 11 , wherein the second op-engine is to:

retrieve the second pointer from the second data location; and

compute the third data location associated with a third pointer.

15. The method of claim 11 , wherein the indirection request comprises an indirection level, and wherein the indirection level is to indicate a multi-level indirection.

16. The method of claim 11 , wherein the indirection request comprises an indirect operation, and wherein the indirect operation comprises an indirect load operation or an indirect store operation.

17. The method of claim 11 , wherein the data response comprises a data value.

18. The method of claim 11 , wherein the indirection request comprises an address associated with the load store queue, and wherein the address associated with the load store queue is sent in the indirection request to return data to the load store queue at one or more op-engines of the pipeline indirection system.

19. A system comprising:

a memory; and

a processor comprising:

fetch circuitry to fetch a single instruction to access a compressed graphic list;

decode circuitry to decode the fetched single instruction; and

execution circuitry to execute the decoded single instruction to cause access to the compressed graphic list by:

receiving, from a load store queue, at a first op-engine associated with a first data location, an indirection request;

computing, via the first op-engine, a second data location associated with a second op-engine;

computing, via the second op-engine, a third data location associated with a third op-engine responsive to the indirection request; and

providing, via the third op-engine, a data response to the load store queue responsive to receiving data from the third data location.

20. The system of claim 19 , wherein the data response comprises at least one of a data value or a data acknowledgement.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2020
From: PAWLOWSKI, ROBERT; CLINE, SCOTT; FRYMAN, JOSHUA; HEIRMAN, WIM; HOWARD, JASON; MORE, ANKIT; SCHMITTEL, SCOTT HAGAN; SMITH, SHADEN
To: INTEL CORPORATION
Reel/Frame 052994/0001 →
Cited By (3)
US 12,204,901 US 12,204,907 US 12,748,597