IP Library › Granted Patent US 12,340,086
Granted Patent B2
US 12,340,086 · App. 18/148,091 · Granted Jun 24, 2025

Apparatus and methods for direct co-processor access to prestored file system data in a non-volatile memory system

Inventors: Paul Blinzer (Bellevue, WA); David Livingstain Ziman (Austin, TX)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F3/0611G06F3/0656G06F3/0659G06F3/0679G06F12/0862G06T1/20G06T11/001G06F2212/1024G06F2212/602G06T2210/36
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 12,340,086
App. No.
18/148,091
Granted
Jun 24, 2025
Kind
B2
Abstract

An apparatus includes a co-processor that provides process operations for a first processor, such as a host processor, that executes one or more applications. The co-processor issues a data load request to a request command queue controlled by a non-volatile memory system, that loads a subset of prestored data from a prestored set of data, such as file data of an application, that is stored in a cache buffer in the non-volatile memory system or system memory, for an operation performed by the co-processor. The co-processor uses the loaded subset of prestored data for the operation. In certain implementations, the co-processor issues the data load request as a direct memory access (DMA) load request for the cache buffer. The prestored set of data includes a prestored set of data from a file storage system. Associated methods are also disclosed.

Claims (39)

1. An apparatus comprising:

a co-processor, operative to provide process operations for a first processor that executes one or more applications, the co-processor operative to:

issue a data load request to a request command queue, controlled by a non-volatile memory system, that loads a subset of prestored data from a prestored set of data being stored in a cache buffer, for an operation performed by the co-processor based on periodically predicting future blocks of addresses corresponding to subsets of data needed from the prestored set of data in the cache buffer for the operation; and

use the loaded subset of prestored data for the operation.

2. The apparatus of claim 1 wherein the co-processor is operative to issue the data load request as a direct memory access (DMA) load request for the cache buffer and wherein the operation is carried out for an application and wherein the prestored set of data comprises a prestored set of data from a file system associated with the application.

3. The apparatus of claim 2 wherein the co-processor is operative to:

periodically issues a DMA load request to the request command queue controlled by the non-volatile memory system, corresponding to each of the predicted future blocks of addresses corresponding to the subsets of data from the prestored set of data.

4. The apparatus of claim 1 wherein the co-processor is operative to use an address block translation table to translate a determined level of detail (LOD) to at least one texture prestored in the prestored set of data, and wherein the data load request includes translated block address information corresponding to the subset of prestored data in the prestored set of data that corresponds to the determined LOD.

5. The apparatus of claim 2 wherein the co-processor comprises a graphics processing unit (GPU) and wherein the prestored set of data being stored in the cache buffer comprises a range of mipmap data and wherein the GPU is operative to:

identify a future level of detail (LOD) needed to render an object of an image and issues the DMA load request identifying a block of addresses corresponding to the identified future LOD as the subset of prestored data; and

perform a pixel rendering operation using loaded subset of prestored data from the DMA load request.

6. The apparatus of claim 2 wherein the co-processor is operative to issue the DMA load request by issuing a load request for the non-volatile memory system based on an address block translation table.

7. A computer processing system comprising:

a processor operative to execute one or more applications;

a non-volatile memory system, operatively coupled to the processor, comprising a request command queue and a cache buffer; and

a co-processor, operatively coupled to the processor and to the non-volatile memory system, and operative to provide operations for the processor, the co-processor operative to:

issue a data load request to the request command queue controlled by the non-volatile memory system, that loads a subset of prestored data from a prestored set of data being stored in the cache buffer in the non-volatile memory system, for an operation performed by the co-processor based on periodically predicting future blocks of addresses corresponding to subsets of data needed from the prestored set of data in the cache buffer for the operation; and

use the loaded subset of prestored data for the operation.

8. The computer processing system of claim 7 wherein the processor is operative to configure system memory to include the request command queue and configure the non-volatile memory system to include the cache buffer and is operative to determine an amount of data from a file system to store as the prestored set of data.

9. The computer processing system of claim 7 wherein the processor is operative to preload the cache buffer with a prestored set of data from a file system associated with an application.

10. The computer processing system of claim 7 wherein the co-processor issues the data load request as a direct memory access (DMA) load request for the cache buffer and wherein the operation is carried out for an application and wherein the prestored set of data comprises a prestored set of data of mipmaps from a file system associated with the application.

11. The computer processing system of claim 10 wherein the co-processor is operative to:

periodically issue data load requests to the request command queue, corresponding to each of the predicted subsets of data.

12. The computer processing system of claim 7 wherein the co-processor is operative to use an address block translation table to translate a determined level of detail (LOD) to at least one texture prestored in the prestored set of data, and wherein the data load request includes translated block address information corresponding to the subset of prestored data in the prestored set of data that corresponds to the determined LOD.

13. The computer processing system of claim 12 wherein the co-processor is operative to periodically issue the data load requests that each includes block address information corresponding to each of the subsets of data in the prestored set of data.

14. The computer processing system of claim 10 wherein the co-processor comprises a graphics processing unit (GPU) and wherein the prestored set of data being stored in the cache buffer comprises a range of mipmap data and wherein the GPU is operative to:

identify a future level of detail (LOD) needed to render an object of an image and issue the DMA load request identifying a block of addresses corresponding to a subset of mipmap data for the future LOD; and

perform a pixel rendering operation using loaded subset of prestored data from the DMA load request using the subset of mipmap data.

15. The computer processing system of claim 10 wherein the co-processor is operative to issue the DMA load request by issuing a load request for the non-volatile memory system.

16. A method carried out by a co-processor that performs operations for a first processor, the method comprising:

issuing a data load request to a request command queue controlled by a non-volatile memory system, that loads a subset of prestored data from a prestored set of data being stored in a cache buffer, for an operation performed by the co-processor based on periodically predicting future blocks of addresses corresponding to subsets of data needed from the prestored set of data in the cache buffer for the operation; and

using the loaded subset of prestored data for the operation.

17. The method of claim 16 comprising:

periodically issuing data load requests to the request command queue controlled by the non-volatile memory system, corresponding to each of the predicted subsets of data.

18. The method of claim 16 comprising issuing the data load request as a direct memory access (DMA) load request for the cache buffer by issuing a load request for the non-volatile memory system and wherein the operation is carried out for an application and wherein the prestored set of data comprises a prestored set of data from a file system associated with the application.

19. The method of claim 16 comprising using an address block translation table to translate a determined level of detail (LOD) to at least one texture prestored as the prestored set of data, and wherein the data load request includes translated block address information corresponding to the subset of prestored data in the prestored set of data that corresponds to the determined LOD.

20. The method of claim 18 comprising:

identifying a future level of detail (LOD) needed to render an object of an image and issues the DMA load request identifying a block of addresses corresponding to the identified future LOD as the subset of prestored data; and

performing a pixel rendering operation using loaded subset of prestored data from the DMA load request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2023
From: BLINZER, PAUL; ZIMAN, DAVID LIVINGSTAIN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 062674/0318 →
Continuity (1)
Related Publication 20240220115A1 · Jul 4, 2024
References Cited (16)
US 7010626B2 · Kahle · 2006 [cited by examiner]
US 7015915B1 · Diard · 2006 [cited by examiner]
US 20040263521A1 · Booth, Jr. · 2004 [cited by examiner]
US 20050041031A1 · Diard · 2005 [cited by examiner]
US 20070211070A1 · Stenson · 2007 [cited by examiner]
US 20110210976A1 · Diard · 2011 [cited by examiner]
US 20170147516A1 · De · 2017 [cited by examiner]
US 20180012328A1 · Boles · 2018 [cited by examiner]
US 20200193697A1 · Brennan · 2020 [cited by examiner]
US 20210117333A1 · Qureshi · 2021 [cited by examiner]
US 20210191771A1 · Mccrary · 2021 [cited by examiner]
US 20210406209A1 · Vishnu · 2021 [cited by examiner]
US 20220413732A1 · Blinzer · 2022 [cited by examiner]
Microsoft, File systems driver design guide, URL: https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/, dated Mar. 9, 2022, 2 pages. [cited by applicant]
Microsoft, IoGetlommuInterface function (wdm.h), URL: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-iogetiommuinterface, dated Feb. 25, 2022. 2 pages. [cited by applicant]
Microsoft, Windows-driver samples / filesys /, URL: https://github.com/microsoft/Windows-driver-samples/tree/main/filesys, dated May 18, 2022, retrieved Oct. 4, 2022, 1 page. [cited by applicant]