IP Library Granted Patent US 9,413,358
Granted Patent B2
US 9,413,358 · App. 13/459,199 · Granted Aug 9, 2016

Forward counter block

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,413,358
App. No.
13/459,199
Granted
Aug 9, 2016
Kind
B2
Abstract

A forward counter block may include at least one of a plurality of local counter storage elements for counting events. The forward counter block may also include an update engine, the update engine configured to update an external memory by forwarding a value stored in any of said at lease one of a plurality of local counter storage elements and return a zero value to that local counter storage element, when the value stored in that local counter storage element reaches or surpasses a threshold value.

Claims (43)

1. A forward counter block comprising:

a local counter storage element for counting events;

an update storage;

an update engine, the update engine to update an external memory by forwarding a modified value stored in the local counter storage element to the external memory via the update storage, wherein the update engine is, upon detection that the local counter storage element reaches or surpasses a threshold value, to forward the modified value of the local counter storage element to the update storage and return a zero value to the local counter storage element,

wherein, to forward the modified value stored in the local counter storage element to the external memory, the update engine is to:

determine whether the update storage has available space,

in response to a determination that the update storage has available space, forward the modified value of the local counter storage element to the update storage, and

in response to a determination that the update storage does not have available space, write the modified value back to the local counter storage element, and repeat the forwarding of the modified value of the local counter storage element to the update storage in a next transaction that occurs at the local counter storage element; and

a state machine to insert a flush operation between counter updates, including initiate the update engine to force flush the modified value stored in the local counter storage element and update the external memory during the flush operation.

2. The counter block of claim 1 , wherein the update engine includes an arithmetic logic unit.

3. The counter block of claim 1 , wherein the update storage is to arbitrate with other counter blocks to insert the modified value into a counter update FIFO that transmits the modified value to the external memory.

4. The counter block of claim 1 , wherein software initiates the forced flush.

5. The counter block of claim 1 , further comprising a counter update engine associated with a CPU/External Memory interface.

6. A forward counter system comprising:

a plurality of forward counter blocks; and

a counter update FIFO to receive an output from each of the plurality of forward counter blocks and forward the output to an external memory,

wherein each of the plurality of forward counter blocks includes a local counter storage element for counting events, an update storage connected to the counter update FIFO, and an update engine,

wherein the update engine is, upon detection that the local counter storage element reaches or surpasses a threshold value, to forward a modified value of the local counter storage element to the update storage and return a zero value to the local counter storage element, and

wherein the update engine is to:

determine whether the update storage has available space,

in response to a determination that the update storage has available space, forward the modified value stored in the local counter storage element to the update storage, and

in response to a determination that the update storage does not have available space, write the modified value back to the local counter storage element, and repeat the forwarding of the modified value of the local counter storage element to the update storage in a next transaction that occurs at the local counter storage element; and

a state machine to insert a flush operation between counter updates, including initiate the update engine to force flush the modified value stored at the local counter storage element and update the external memory during the flush operation.

7. The system of claim 6 , wherein the update engine includes an arithmetic logic unit.

8. The system of claim 6 , wherein the update storage of each of the plurality of forward counter blocks is to arbitrate with other forward counter blocks to insert the modified value into the counter update FIFO.

9. The system of claim 6 , wherein software initiates the forced flush.

10. The system of claim 6 , wherein the counter update FIFO is associated with a CPU/External Memory interface.

11. The system of claim 10 , wherein the counter update FIFO comprises a DDR counter update.

12. A method for updating an external memory with a value stored in a local counter storage element of a counter block, wherein the counter block includes the local counter storage element, an update storage, and an update engine, the method comprising:

detecting, by the update engine, a modified value stored in the local counter storage element;

upon detecting that the local counter storage element reaches or surpasses a threshold value, forwarding, by the update engine, a modified value of the local counter storage element to the update storage and returning a zero value to the local counter storage element;

determining, by the update engine, whether the update storage has available space;

forwarding, by the update engine, the modified value of the local counter storage element to the update storage in response to a determination that the update storage has available space;

writing the modified value back to the local counter storage element in response to a determination that the update storage does not have available space;

repeating the forwarding of the modified value of the local counter storage element to the update storage in a next transaction that occurs at the local counter storage element; and

inserting a flush operation between counter updates, including force flushing the modified value stored at the local counter storage element and updating the external memory during the flush operation.

13. The method of claim 12 , further comprising:

arbitrating, by the update storage, with other counter blocks to insert the modified value into a counter update FIFO; and

transmitting the modified value from the counter update FIFO to the external memory.

14. The method of claim 12 , further comprising:

maintaining a dirty bit representing a condition of the local counter storage element;

when the local counter storage element is updated with the modified value, setting the dirty bit to a value indicating that the local counter storage has been updated; and

when the local counter storage element is flushed, latching the set value of the dirty bit such that the dirty bit is cleared to be set during a next flush period.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2022
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 060005/0600 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2012
From: JORGENSEN, STEVEN GLEN; GRAVEL, MARK ALLEN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028129/0839 →