IP Library Granted Patent US 9,665,519
Granted Patent B2
US 9,665,519 · App. 14/591,003 · Granted May 30, 2017

Using a credits available value in determining whether to issue a PPI allocation request to a packet engine

Inventors: Salma Mirza (Woburn, MA); Gavin J. Stark (Cambridge, GB); Steven W. Zagorianakos (Brookline, NH)
Assignee: Netronome Systems, Inc.
G06F13/4022G06F13/4027G06F13/4221
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 9,665,519
App. No.
14/591,003
Granted
May 30, 2017
Kind
B2
Abstract

In response to receiving a “Return Available PPI Credits” command from a credit-aware (CA) device, a packet engine sends a “Credit To Be Returned” (CTBR) value it maintains for that device back to the CA device, and zeroes out its stored CTBR value. The CA device adds the credits returned to a “Credits Available” value it maintains. The CA device uses the “Credits Available” value to determine whether it can issue a PPI allocation request. The “Return Available PPI Credits” command does not result in any PPI allocation or de-allocation. In another aspect, the CA device issues one PPI allocation request to the packet engine when its recorded “Credits Available” value is zero or negative. If the PPI allocation request cannot be granted, then it is buffered in the packet engine, and is resubmitted within the packet engine, until the packet engine makes the PPI allocation.

Claims (34)

1. A method comprising:

(a) maintaining a Credits Available value on a credit-aware device;

(b) using the Credits Available value to make a determination to send a PPI (Packet Portion Identifier) allocation request to a packet engine via a bus, wherein the packet engine is a device that uses a PPI Addressing Mode (PAM) and that handles storing data into and retrieving data from a memory on behalf of other devices including the credit-aware device;

(c) as a result of the determination of (b) sending the PPI allocation request from the credit-aware device to the packet engine via the bus;

(d) reducing the Credits Available value;

(e) receiving a PPI allocation response back from the packet engine, wherein the PPI allocation response includes a PPI value and a credits value;

and (f) adding the credits value received in the PPI allocation response of (e) to the Credits Available value that was reduced in (d) thereby generating an updated Credits Available value, wherein (a) through (f) are performed by the credit-aware device, wherein the Credits Available value maintained in (a), (b), d), and (f) are a first Credits Available value, wherein the credit-aware device further maintains a second Credits Available value, wherein the first Credits Available value is a number of PPIs, and wherein the second Credits Available value indicates an amount of memory space, and wherein the credit-aware device uses the Credits Available value in (b) along with the second Credits Available value to make the determination to send the PPI allocation request.

2. The method of claim 1 , wherein the determination of (b) involves determining whether the Credits Available value is either: 1) a positive value, or 2) a non-positive value and no other PPI allocation request has been sent out of the credit-aware device to the packet engine when the Credits Available value was the non-positive value.

3. The method of claim 1 , wherein the credit-aware device is disabled from sending a PPI allocation request to the packet engine if the first Credits Available value is a non-positive number and an unresponded-to PPI allocation request has already been sent out of the credit-aware device to the packet engine.

4. The method of claim 1 , wherein the determination in (b) is made by the credit-aware device as a function of the both the first Credits Available value and the second Credits Available value.

5. The method of claim 1 , wherein the PPI allocation request that is sent in (c) includes a reference value, and wherein the PPI allocation response that is received in (e) includes the same reference value.

6. The method of claim 1 , wherein the first Credits Available value as it is maintained on the credit-aware device is initialized to a positive value, and

wherein a PPI allocation request is then sent out of the credit-aware device such that the first Credits Available value is reduced from its initialized positive value.

7. The method of claim 1 , wherein the Credits Available value in (d) is reduced by one in (d).

8. The method of claim 1 , wherein the Credits Available value in (d) is reduced by a value that is greater than one.

9. A method comprising:

(a) maintaining a first Credits Available value and a second Credits Available value on a credit-aware device;

(b) using the first and second Credits Available values to make a determination to send a PPI (Packet Portion Identifier) allocation request to a packet engine via a bus, wherein the packet engine is a device that uses a PPI Addressing Mode (PAM) and that handles storing data into and retrieving data from a memory on behalf of other devices including the credit-aware device;

(c) as a result of the determination of (b) sending the PPI allocation request from the credit-aware device to the packet engine via the bus;

(d) reducing the first Credits Available value and reducing the second Credits Available value;

(e) receiving a communication back from the packet engine, wherein the communication includes a first credits value and a second credits value; and

(f) adding the first credits value received in the communication of (e) to the first Credits Available value that was reduced in (d) thereby generating an updated first Credits Available value, and adding the second credits value received in the communication of (e) to the second Credits Available value that was reduced in (d) thereby generating an updated second Credits Available value, wherein (a) through (f) are performed by the credit-aware device, and wherein the first Credits Available value is a number of PPIs, and wherein the second Credits Available value indicates an amount of memory space.

10. The method of claim 9 , wherein the determination of (b) involves determining whether: 1) both the first and second Credits Available values are positive values, or 2) at least one of the first and second Credits Available values is a non-positive value and no other unresponded-to PPI allocation request has been sent out of the credit-aware device to the packet engine when the at least one Credits Available value was the non-positive value.

11. The method of claim 9 , wherein the PPI allocation request is sent in (c) when at least one of the first and second Credits Available values is a non-positive value.

12. The method of claim 9 , wherein the bus is a Command/Push/Pull (CPP) data bus, and wherein the PPI allocation request is a command communicated across a command mesh of the CPP data bus, and wherein the communication of (e) is a PPI allocation response bus transaction value that is communicated across a data mesh of the CPP data bus.

13. The method of claim 9 , wherein the credit-aware device sends a PPI and an amount of packet data to the packet engine and causes the packet engine to store the amount of packet data into the memory in association with the PPI.

14. An integrated circuit comprising:

a packet engine that uses a PPI Addressing Mode (PAM) and that handles storing data into and retrieving data from a memory on behalf of other parts of the integrated circuit;

a bus; and

means for: (a) maintaining a first Credits Available value and a second Credits Available value, (b) using the first and second Credits Available values to make a determination to send a PPI (Packet Portion Identifier) allocation request to the packet engine via the bus, (c) sending the PPI allocation request to the packet engine via the bus, (d) reducing the first Credits Available value and reducing the second Credits Available value, (e) receiving a communication back from the packet engine via the bus, wherein the communication includes a first credits value and a second credits value, and (f) adding the first credits value received in the communication to the first Credits Available value that was reduced thereby generating an updated first Credits Available value, and adding the second credits value received in the communication to the second Credits Available value that was reduced thereby generating an updated second Credits Available value, wherein the means is one of the other parts of the integrated circuit, wherein the first Credits Available value is a number of PPIs, and wherein the second Credits Available value indicates an amount of memory space.

15. The integrated circuit of claim 14 , wherein the means is a credit-aware device that sends a PPI and an amount of packet data to the packet engine via the bus and causes the packet engine to store the amount of packet data into the memory in association with the PPI.

16. The integrated circuit of claim 14 , wherein the determination made by the means involves determining whether: 1) both the first and second Credits Available values are positive values, or 2) at least one of the first and second Credits Available values is a non-positive value and no other unresponded-to PPI allocation request has been sent out of the credit-aware device to the packet engine.

17. The integrated circuit of claim 14 , wherein the means sends a PPI allocation request to the packet engine when at least one of the first and second Credits Available values is a non-positive value.

18. The integrated circuit of claim 14 , wherein the means is disabled from sending a PPI allocation request to the packet engine if at least one of the first and second Credits Available values is a non-positive value and an unresponded-to PPI allocation request has already been sent by the means to the packet engine when the at least one of the first and second Credits Available values was a non-positive value.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Dec 31, 2020
From: KREOS CAPITAL V (UK) LIMITED
To: NETRONOME SYSTEMS, INC.
Reel/Frame 054883/0293 →
SECURITY INTEREST Recorded Jun 7, 2018
From: NETRONOME SYSTEMS, INC.
To: KREOS CAPITAL V (UK) LIMITED
Reel/Frame 046319/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: MIRZA, SALMA; ZAGORIANAKOS, STEVEN W.; STARK, GAVIN J.
To: NETRONOME SYSTEMS, INC.
Reel/Frame 034648/0522 →
Continuity (4)
Continuation 14590920 · Jan 6, 2015
Continuation In Part 14464697 · Aug 20, 2014
Provisional Application 62072336 · Oct 29, 2014
Related Publication 20160055111A1 · Feb 25, 2016