IP Library Granted Patent US 12,294,639
Granted Patent B2
US 12,294,639 · App. 18/542,963 · Granted May 6, 2025

Continuously changing system clock in a packet processing module based on load determined by deterministic feedback signals

Inventor: Kenneth Edward Neudorf (Ottawa, CA)
Assignee: Ciena Corporation
H04L7/033H03L7/08
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,294,639
App. No.
18/542,963
Granted
May 6, 2025
Kind
B2
Abstract

A packet processing module includes circuitry configured to receive feedback signals from each of N first-in, first-out (FIFOs), N is an integer that is greater than or equal to 1, determine a clock speed for the packet processing module based on the received feedback signals, and program a phase lock loop (PLL) based on the determined clock speed where the PLL provides a module clock at the determined clock speed to a packet processing circuit which is configured to receive and process packets from the N FIFOs. The feedback signals are a deterministic representation of processing needed for the packet processing circuit given a current state of packets available.

Claims (35)

1. A packet processing module comprising circuitry configured to:

receive feedback signals from each of N first-in, first-out (FIFOs), N is an integer that is greater than or equal to 1,

determine a clock speed for the packet processing module based on the received feedback signals, and

program a phase lock loop (PLL) based on the determined clock speed where the PLL provides a module clock at the determined clock speed to a packet processing circuit which is configured to receive and process packets from the N FIFOs,

wherein the feedback signals are each packet available signal which is asserted for each of the N FIFOs based on detection of a complete packet therein for processing by the packet processing circuit, and

wherein the determined clock speed is set based on a number of packet available signals asserted at a given time multiplied by a minimum clock frequency which is set equal to a maximum clock frequency divided by N.

2. The packet processing module of claim 1 , wherein the feedback signals are each a fill level of a given FIFO of the N FIFOs.

3. The packet processing module of claim 1 , wherein the feedback signals are a deterministic representation of processing needed for the packet processing circuit given a current state of packets available.

4. The packet processing module of claim 1 , wherein the circuitry is further configured to

continuously program the PLL based on the received feedback signals over time.

5. The packet processing module of claim 1 , wherein the packet processing circuit is configured to perform processing of control information in the received packets, processing of data content in the received packets, and a combination thereof.

6. The packet processing module of claim 1 , wherein the packet processing circuit is configured to perform processing of control information in the received packets.

7. The packet processing module of claim 1 , wherein the packet processing circuit is configured to perform processing of data content in the received packets.

8. A method comprising steps of:

receiving feedback signals from each of N first-in, first-out (FIFOs), N is an integer that is greater than or equal to 1;

determining a clock speed for a packet processing module based on the received feedback signals; and

programming a phase lock loop (PLL) based on the determined clock speed where the PLL provides a module clock at the determined clock speed to a packet processing circuit in the packet processing module which is configured to receive and process packets from the N FIFOs,

wherein the feedback signals are each a packet available signal which is asserted for each of the N FIFOs based on detection of a complete packet therein for processing by the packet processing circuit, and

wherein the determined clock speed is set based on a number of packet available signals asserted at a given time multiplied by a minimum clock frequency which is set equal to a maximum clock frequency divided by N.

9. The method of claim 8 , wherein the feedback signals are each a fill level of a given FIFO of the N FIFOs.

10. The method of claim 8 , wherein the feedback signals are a deterministic representation of processing needed for the packet processing circuit given a current state of packets available.

11. The method of claim 8 , wherein the steps further include

continuously programming the PLL based on the received feedback signals over time.

12. The method of claim 8 , wherein the packet processing circuit is configured to perform processing of control information in the received packets, processing of data content in the received packets, and a combination thereof.

13. A packet processing module comprising:

N first-in, first-out (FIFOs), N is an integer that is greater than or equal to 1;

a programming state machine implemented in circuitry and configured to receive feedback signals from each of the N FIFOs and to program a phase lock loop (PLL) based thereon; and

a packet processing circuit configured to receive packets from the N FIFOs, wherein the packet processing circuit receives a module clock from the PLL with a speed determined by the programming state machine,

wherein the feedback signals are each a packet available signal which is asserted for each of the N FIFOs based on detection of a complete packet therein for processing by the packet processing circuit, and

wherein the determined clock speed based on a number of packet available signals asserted at a given time multiplied by a minimum clock frequency which is set equal to a maximum clock frequency divided by N.

14. The packet processing module of claim 13 , wherein the feedback signals are each a fill level of a given FIFO of the N FIFOs.

15. The packet processing module of claim 13 , wherein the feedback signals are a deterministic representation of processing needed for the packet processing circuit given a current state of packets available.

16. The packet processing module of claim 13 , wherein the steps further include

continuously programming the PLL based on the received feedback signals over time.

17. The packet processing module of claim 13 , wherein the packet processing circuit is configured to perform processing of control information in the received packets, processing of data content in the received packets, and a combination thereof.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2023
From: NEUDORF, KENNETH EDWARD
To: CIENA CORPORATION
Reel/Frame 065894/0337 →
Continuity (2)
Continuation In Part 18354075 · Jul 18, 2023
Related Publication 20250030533A1 · Jan 23, 2025
References Cited (26)
US 5526362A · Thompson · 1996 [cited by examiner]
US 5859850A · Lien · 1999 [cited by examiner]
US 7176928B1 · Sendrovitz · 2007 [cited by examiner]
US 7317725B2 · Etemadi et al. · 2008 [cited by applicant]
US 7646836B1 · Mays · 2010 [cited by examiner]
US 7769015B2 · Huang et al. · 2010 [cited by applicant]
US 8239579B2 · Tang · 2012 [cited by examiner]
US 8886878B1 · Neudorf et al. · 2014 [cited by applicant]
US 8971471B2 · Kim · 2015 [cited by examiner]
US 9438431B2 · Abbas · 2016 [cited by examiner]
US 9444566B1 · Mustiere et al. · 2016 [cited by applicant]
US 9497522B2 · Neudorf · 2016 [cited by applicant]
US 10136384B1 · Mauer · 2018 [cited by examiner]
US 10374786B1 · Mustiere et al. · 2019 [cited by applicant]
US 11018674B1 · Neudorf et al. · 2021 [cited by applicant]
US 20050086553A1 · Spencer · 2005 [cited by examiner]
US 20070041391A1 · Lin · 2007 [cited by examiner]
US 20080145065A1 · Kawamura · 2008 [cited by examiner]
US 20090310729A1 · Liu · 2009 [cited by examiner]
US 20120155476A1 · Pavani · 2012 [cited by examiner]
US 20120223742A1 · Kadosh · 2012 [cited by examiner]
US 20130170369A1 · Liao · 2013 [cited by examiner]
US 20190288788A1 · Bengtsson · 2019 [cited by examiner]
US 20220155991A1 · Neudorf · 2022 [cited by applicant]
US 20220294703A1 · Dejanovic · 2022 [cited by examiner]
Wenlei Bao et al., “Static and Dynamic Frequency Scaling on Multicore CPUs,” CM Trans. Archit. Code Optim. 13, 4, Article 51, Dec. 2016, 26 pages. [cited by applicant]