IP Library Granted Patent US 12,265,708
Granted Patent B2
US 12,265,708 · App. 18/342,131 · Granted Apr 1, 2025

Timing alignment for data structure read commands

Inventors: Jonathan Milton (St. Albans, GB); Tong Liew (Chelmsford, GB)
Assignee: VIAVI Solutions Inc.
G06F3/0611G06F3/0659G06F3/0673
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,265,708
App. No.
18/342,131
Granted
Apr 1, 2025
Kind
B2
Abstract

In some implementations, an integrated circuit may receive a read command associated with a data structure of the integrated circuit. The integrated circuit may determine that requested data, of the data structure and associated with an element within the data structure, is not ready for reading. The integrated circuit may output, based on determining that the requested data is not ready for reading, generated delay data. The integrated circuit may determine that the requested data, of the data structure and associated with the element, is ready for reading. The integrated circuit may output, based on determining that the data is ready for reading, the requested data.

Claims (64)

1. A method, comprising:

receiving, by an integrated circuit, a read command associated with a data structure of the integrated circuit;

determining, by the integrated circuit, that requested data, of the data structure and associated with an element within the data structure, is not ready for reading;

outputting, by a multiplexer of the integrated circuit and based on determining that the requested data is not ready for reading, generated delay data comprising an indicator indicating a next chunk of data to be read;

determining, by the integrated circuit, that the requested data, of the data structure and associated with the element, is ready for reading; and

outputting, by the multiplexer of the integrated circuit and based on determining that the data is ready for reading, the next chunk of data, wherein the next chunk of data comprises the requested data.

2. The method of claim 1 , further comprising:

determining an amount of requested data to read from the data structure based at least in part on a value associated with the element within the data structure.

3. The method of claim 2 , wherein determining that the requested data is not ready for reading comprises:

determining that the requested data is not ready for reading based at least in part on determining the amount of requested data to read from the data structure.

4. The method of claim 1 , further comprising:

switching the multiplexer from a first state in which the delay data is output to a second state in which the next chunk of data is output; and

wherein outputting the next chunk of data comprises:

outputting the next chunk of data based on switching the multiplexer from the first state to the second state.

5. The method of claim 1 , further comprising:

outputting a first portion of the requested data; and

determining to delay providing a second portion of the requested data; and

wherein outputting the delay data comprises:

outputting the delay data to delay providing the second portion of the requested data; and

wherein the next chunk of data comprises the second portion of the requested data.

6. The method of claim 1 , wherein the delay data includes a delay timing indicator of a period of delay time, and

wherein outputting the next chunk of data comprises:

outputting the requested data-next chunk of data after the period of delay time.

7. A field programmable gate array (FPGA), comprising:

one or more memories; and

one or more processing components, coupled to the one or more memories, configured to:

receive a read command associated with a data structure of the FPGA;

determine that requested data, associated with an element within the data structure, is not ready for reading;

output, based on determining that the requested data is not ready for reading, generated delay data comprising an indicator indicating a next chunk of data to be read;

determine that the requested data, of the data structure and associated with the element, is ready for reading; and

output, based on determining that the data is ready for reading, the next chunk of data, wherein the next chunk of data comprises the requested data.

8. The FPGA of claim 7 , wherein the one or more processing components are further configured to:

switch a multiplexing component between outputting, to an output component, a first data stream, which includes the requested data, and a second data stream, which includes the delay data.

9. The FPGA of claim 7 , wherein the data structure is a dynamic data structure.

10. The FPGA of claim 7 , wherein the element is a register location.

11. The FPGA of claim 7 , wherein the delay data includes:

a set of values, configured to be read as delay data, corresponding to the element of the data structure.

12. The FPGA of claim 11 , wherein the delay data includes:

an instruction to re-read the set of values.

13. The FPGA of claim 7 , wherein the delay data includes a linked collection of data elements.

14. The FPGA of claim 7 , wherein the delay data includes readable data associated with another read command.

15. The FPGA of claim 7 , wherein the delay data includes a first portion of delay data and a second portion of delay data, and

wherein the second portion of delay data indicates a repetition of reading the first portion of delay data.

16. A host device, comprising:

one or more memories; and

one or more processors, coupled to the one or more memories, configured to:

transmit a read command associated with a data structure of an integrated circuit, wherein the read command is associated with an element within the data structure;

receive first data as a response to the read command, the first data including generated delay data comprising an indicator indicating second data to be read;

read the first data based on receiving the first data;

determine, based on reading the first data, that the first data is the delay data;

delay performing a processing action in connection with the read command based on determining that the first data is the delay data; and

receive the second data, after receiving the first data, as another response to the read command, wherein the second data comprises requested data associated with the element within the data structure.

17. The host device of claim 16 , wherein the one or more processors are further configured to:

determine that the second data is the requested data associated with the element within the data structure; and

perform the processing action in connection with the read command based on determining that the second data is the requested data associated with the element within the data structure.

18. The host device of claim 16 , wherein the one or more processors are further configured to:

initiate a startup sequence; and

wherein the one or more processors, when configured to transmit the read command, are configured to:

transmit the read command based on initiating the startup sequence.

19. The host device of claim 16 , wherein the delay data includes:

a set of values, configured to be read as delay data, corresponding to the element of the data structure.

20. The host device of claim 19 , wherein the delay data includes an instruction to re-read the set of values; and

wherein the one or more processors, when configured to read the first data, are configured to:

read a plurality of instances of the first data.

Assignments (4)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 73189/0873 Recorded May 28, 2026
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: INERTIAL LABS, INC.; VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC
Reel/Frame 075642/0381 →
SECURITY INTEREST Recorded Nov 14, 2025
From: VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC; INERTIAL LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073571/0137 →
SECURITY AGREEMENT Recorded Oct 21, 2025
From: INERTIAL LABS, INC.; VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 073189/0873 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2023
From: MILTON, JONATHAN; LIEW, TONG
To: VIAVI SOLUTIONS INC.
Reel/Frame 064100/0507 →
Continuity (1)
Related Publication 20250004643A1 · Jan 2, 2025
References Cited (6)
US 20140013187A1 · Blaunstein · 2014 [cited by applicant]
US 20170285998A1 · Mathuria · 2017 [cited by examiner]
US 20180095661A1 · Ananthanarayanan et al. · 2018 [cited by applicant]
US 20180293191A1 · Li · 2018 [cited by applicant]
US 20220137870A1 · Yamamoto · 2022 [cited by examiner]
Extended European Search Report for European Application No. EP241834787 dated Nov. 12, 2024, 14 pages. [cited by applicant]