IP Library › Granted Patent US 12,487,831
Granted Patent B2
US 12,487,831 · App. 18/345,994 · Granted Dec 2, 2025

Systems and methods for managing order of command processing

Inventors: Mark Richard Nethercot (Edinburgh, GB); Martin Rhodes (Edinburgh, GB); Ricardo Gonzalez Toral (Edinburgh, GB); Colin Stirling (Edinburgh, GB); Dmitri Kitariev (Irvine, CA); David Riddoch (Cambridge, GB)
Assignee: Xilinx, Inc.
G06F9/3856G06F9/3836
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,487,831
App. No.
18/345,994
Granted
Dec 2, 2025
Kind
B2
Abstract

A computer-implemented method for managing processing order for a plurality of commands can include in response to receiving each command of a plurality of commands in a receipt order, assigning each respective command of the plurality of commands to a respective processing queue of a plurality of processing queues to be processed, and setting, for each of the plurality of commands and in the receipt order, an identifier based on the respective queue assigned to each of the plurality of commands, and managing, based on the identifiers for each of the plurality of commands in the receipt order, an order of processing of each of the plurality of commands from the respective processing queue of the plurality of processing queues. Various other methods, systems, and computer-readable media are also disclosed.

Claims (57)

1 . A computer-implemented method for managing order of command processing, at least a portion of the computer-implemented method being performed by at least one circuit, the computer-implemented method comprising:

in response to receiving a command of a plurality of commands in a receipt order:

assigning the command to one processing queue of a plurality of processing queues to be processed; and

setting, for the command of the plurality of commands and in the receipt order, an identifier based on which processing queue of the plurality of processing queues to which the command of the plurality of commands is assigned; and

managing, based on the identifier of each of the plurality of commands in the receipt order, a processing order for each of the plurality of commands from the plurality of processing queues.

2 . The computer-implemented method of claim 1 , further comprising:

storing, prior to assigning each of the plurality of commands to one of the plurality of processing queues, each of the plurality of commands in a staging queue of a plurality of staging queues.

3 . The computer-implemented method of claim 2 , further comprising:

modifying an allocation identifier based on storing each of the plurality of commands in one of the plurality of staging queues.

4 . The computer-implemented method of claim 2 , wherein assigning each of the plurality of commands comprises:

assigning, based on the staging queue to which each of the plurality of commands is assigned, each of the plurality of commands to one of the plurality of processing queues.

5 . The computer-implemented method of claim 2 , wherein storing further comprises:

receiving a first packet of a command of the plurality of commands;

storing the first packet of the command in one of the plurality of staging queues;

receiving, subsequent to receiving the first packet, a second packet of the command; and

storing, subsequent to storing the first packet, the second packet of the command in one of the plurality of staging queues.

6 . The computer-implemented method of claim 5 , wherein assigning each of the plurality of commands comprises:

generating the command from the first packet and the second packet; and assigning the command to one of the plurality of processing queues.

7 . The computer-implemented method of claim 1 , wherein the identifier is a 2-bit identifier stored in a buffer.

8 . The computer-implemented method of claim 1 , wherein managing the processing order comprises:

identifying a source of each of the plurality of commands; and

managing, based on the identifier and the source, the processing order of each of the plurality of commands from the plurality of processing queues.

9 . The computer-implemented method of claim 1 , further comprising:

outputting for processing each command of the plurality of commands from the plurality of processing queues according to the processing order.

10 . The computer-implemented method of claim 9 , further comprising:

modifying the identifier after outputting each command of the plurality of commands from the plurality of processing queues.

11 . A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one circuit, cause the at least one circuit to manage processing order for a plurality of commands by:

in response to receiving a command of the plurality of commands in a receipt order;

assigning the command to one processing queue of a plurality of processing queues to be processed; and

setting, for the command of the plurality of commands and in the receipt order, an identifier based on which processing queue of the plurality of processing queues to which the command of the plurality of commands is assigned; and

managing, based on the identifier for each of the plurality of commands in the receipt order, a processing order for each of the plurality of commands from the plurality of processing queues.

12 . A system comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the at least one processor to carry out a method comprising:

in response to receiving a command of a plurality of commands in a receipt order;

assigning the command to one processing queue of a plurality of processing queues to be processed; and

setting, for the command of the plurality of commands and in the receipt order, an identifier based on which processing queue of the plurality of processing queues to which the command of the plurality of commands is assigned; and

managing, based on the identifier for each of the plurality of commands in the receipt order, a processing order for each of the plurality of commands from the plurality of processing queues.

13 . The system of claim 12 , further comprising:

storing, prior to assigning each of the plurality of commands to one of the plurality of processing queues, each of the plurality of commands in a staging queue of a plurality of staging queues.

14 . The system of claim 13 , wherein the method further comprises:

modify an allocation identifier based on storing each of the plurality of commands in one of the plurality of staging queues.

15 . The system of claim 13 , wherein the method further comprises:

assign, based on the staging queue to which each of the plurality of commands is assigned, each of the plurality of commands to one of the plurality of processing queues.

16 . The system of claim 13 , wherein the method further comprises:

receive a first packet of a command of the plurality of commands;

store the first packet of the command in one of the plurality of staging queues;

receive, subsequent to receiving the first packet, a second packet of the command; and

store subsequent to storing the first packet, the second packet of the command in one of the plurality of staging queues.

17 . The system of claim 16 , wherein the method further comprises:

generate the command from the first packet and the second packet; and

assign the command to one of the plurality of processing queues.

18 . The system of claim 13 , wherein the method further comprises:

identify a source of each of the plurality of commands; and

manage, based on the identifier and the source, the processing order of each of the plurality of commands from the plurality of processing queues.

19 . The system of claim 13 , wherein the method further comprises:

for processing each command of the plurality of commands from the plurality of processing queues according to the processing order.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2024
From: NETHERCOT, MARK RICHARD; RHODES, MARTIN; GONZALEZ TORAL, RICARDO; STIRLING, COLIN; KITARIEV, DMITRI; RIDDOCH, DAVID
To: XILINX, INC.
Reel/Frame 069497/0383 →
Continuity (1)
Related Publication 20250004782A1 · Jan 2, 2025
References Cited (4)
US 9558001B2 · Khot · 2017 [cited by examiner]
US 10001997B2 · Khot · 2018 [cited by examiner]
US 20130297912A1 · Tran · 2013 [cited by examiner]
US 20170315812A1 · Smith · 2017 [cited by examiner]