IP Library Patent Application 17971290
Patent Application
App. No. 17/971,290

VIRTUAL ADDRESS ACCESS TO GPU SURFACE AND SAMPLER STATES

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 None
App. No.
17/971,290
Abstract

Embodiments described herein provide a technique to enable access to entries in a surface state or sampler state using 64-bit virtual addresses. One embodiment provides a graphics core that includes memory access circuitry configured to facilitate access to the memory by functional units of the graphics core. The memory access circuitry is configured to receive a message to access an entry in a surface state or a sampler state associated with a parallel processing operation. The message specifies a base address for a surface state entry or sampler state entry. The circuitry can add the base address and the offset to determine a 64-bit virtual address for the entry in the surface state entry or the sampler state and submit a memory access request to the memory to access the entry of the surface state or sampler state.

Claims (55)

1 . A graphics processor comprising:

a graphics core configured to perform parallel processing operations, the graphics core including a plurality of hardware threads; and

memory access circuitry configured to facilitate access to memory by functional units of the graphics core, the memory access circuitry configured to:

receive a message to access an element of state data associated with a render pipeline, the message to include an element offset and an identifier of a register file that includes a base address;

add the base address and the element offset to determine a 64-bit virtual address for the element of state data; and

submit a memory access request to the memory to access the element of state data.

2 . The graphics processor of claim 1 , the memory access circuitry configured to:

scale the element offset according to a size of the element of state data to generate a scaled offset; and

add the base address and the scaled offset to determine the 64-bit virtual address for the element of state data.

3 . The graphics processor of claim 2 , wherein the element of state data includes a surface state entry.

4 . The graphics processor of claim 2 , wherein the element of state data includes a sampler state entry.

5 . The graphics processor of claim 1 , in response to an instruction to load the element of state data, circuitry associated with a hardware thread of the plurality of hardware threads configured to:

compose the message to access the element of state data;

provide the base address to the memory access circuitry via a first sideband channel of a sideband input/output (I/O) bus; and

provide the element offset to the memory access circuitry via a second sideband channel of a sideband input/output (I/O) bus.

6 . The graphics processor of claim 5 , the memory access circuitry configured to, after receipt of the message to access an element of state data:

read the base address via the first sideband channel; and

read the element offset via the second sideband channel.

7 . The graphics processor of claim 6 , the memory access circuitry configured to determine the 64-bit virtual address for the element of state data in response to a request to access the element of state data via a bindless surface state address.

8 . A method comprising:

receiving, at memory access circuitry of a graphics processor, a message to access an element of state data associated with a render pipeline of a graphics processor, the message including an element offset and an identifier of a register file that includes a base address;

adding the base address and the element offset to determine a 64-bit virtual address for the element of state data; and

submitting a memory access request to memory of the graphics processor to access the element of state data.

9 . The method of claim 8 , further comprising:

scaling the element offset via the memory access circuitry according to a size of the element of state data to generate a scaled offset; and

adding the base address and the scaled offset to determine the 64-bit virtual address for the element of state data.

10 . The method of claim 9 , wherein the element of state data includes a surface state entry.

11 . The method of claim 9 , wherein the element of state data includes a sampler state entry.

12 . The method of claim 8 , further comprising, in response to an instruction to load the element of state data:

composing the message to access the element of state data;

providing the base address to the memory access circuitry via a first sideband channel of a sideband input/output (I/O) bus; and

providing the element offset to the memory access circuitry via a second sideband channel of a sideband input/output (I/O) bus.

13 . The method of claim 12 , further comprising, by the memory access circuitry after receiving the message to access an element of state data:

reading the base address via the first sideband channel; and

reading the element offset via the second sideband channel.

14 . The method of claim 13 , further comprising:

determining, via the memory access circuitry, the 64-bit virtual address for the element of state data in response to a request to access the element of state data via a bindless surface state address.

15 . A data processing system comprising:

a memory device; and

a graphics processor coupled with the memory device, the graphics processor comprising a graphics core configured to perform parallel processing operations, and memory access circuitry configured to facilitate access to the memory device by functional units of the graphics core, the memory access circuitry configured to:

receive a message to access an element of state data associated with a render pipeline, the message to include an element offset and an identifier of a register file that includes a base address;

add the base address and the element offset to determine a 64-bit virtual address for the element of state data; and

submit a memory access request to the memory device to access the element of state data.

16 . The data processing system of claim 15 , the memory access circuitry configured to:

scale the element offset according to a size of the element of state data to generate a scaled offset; and

add the base address and the scaled offset to determine the 64-bit virtual address for the element of state data.

17 . The data processing system of claim 16 , wherein the element of state data includes a surface state entry.

18 . The data processing system of claim 16 , wherein the element of state data includes a sampler state entry.

19 . The data processing system of claim 15 , in response to an instruction to load the element of state data, circuitry associated with a hardware thread of the graphics processor is configured to:

compose the message to access the element of state data;

provide the base address to the memory access circuitry via a first sideband channel of a sideband input/output (I/O) bus; and

provide the element offset to the memory access circuitry via a second sideband channel of a sideband input/output (I/O) bus.

20 . The data processing system of claim 19 , the memory access circuitry configured to, after receipt of the message to access an element of state data:

read the base address via the first sideband channel; and

read the element offset via the second sideband channel.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 075991/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2022
From: RAY, JOYDEEP; APODACA, MICHAEL; HAREL, YOAV; LUEH, GUEI-YUAN; WIEGERT, JOHN A.
To: INTEL CORPORATION
Reel/Frame 062245/0451 →