IP Library Granted Patent US 7,821,962
Granted Patent B2
US 7,821,962 · App. 12/267,364 · Granted Oct 26, 2010

Memory access optimization

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 7,821,962
App. No.
12/267,364
Granted
Oct 26, 2010
Kind
B2
Abstract

A method and an apparatus for memory access optimization are disclosed. Data unit information may be accumulated for a plurality of data units. Partial network statistics for the plurality of data units may be read sequentially in round robin fashion from each of a plurality of memory banks of a memory. The partial networks statistics may be updated based on the plurality of data units. The updated partial network statistics may be written sequentially in round robin fashion to each of the plurality of memory banks.

Claims (49)

1. A method comprising:

acquiring data unit information for N data units, wherein N is an integer

reading partial network statistics for the N data units sequentially in round robin fashion from each of M memory banks of a memory, wherein M is an integer equal to two or more and N/M is an integer equal to two or more

updating the partial networks statistics based on the data unit information

writing the updated partial network statistics sequentially in round robin fashion to each of the M memory banks

in the event that partial network statistics for two or more data units in a single flow are read from the same memory bank of the M memory banks, correcting the corresponding updated partial network statistics prior to writing the updated partial network statistics.

2. The method of claim 1 , wherein acquiring data unit information, reading partial network statistics, updating the partial networks statistics, and writing the updated partial network statistics are performed in a pipelined manner.

3. The method of claim 2 , wherein the updated partial network statistics for a first data unit of the N data units are written immediately after the partial network statistics for a last data unit of the N data units has have been read.

4. The method of claim 1 wherein the method further comprises:

receiving a request for full network traffic statistics from a requestor;

preparing the full network traffic statistics including

retrieving each version of the partial network traffic statistics,

adding some individual statistics of each of the partial network statistics, and

processing some individual statistics of the partial network statistics;

providing the full network traffic statistics to the requestor.

5. The method of claim 1 wherein the partial network statistics include at least one of a byte count, a data unit count, a most recent timestamp, an oldest timestamp, a number of errors, a maximum data unit size, and a minimum data unit size.

6. A network testing system configured to perform the method recited in claim 1 .

7. An apparatus, comprising:

a processor;

a memory having a plurality of banks;

a statistics engine coupled with the processor and the memory, the statistics engine configured to perform actions including:

acquiring data unit information for N data units, wherein N is an integer

reading partial network statistics for the N data units sequentially in round robin fashion from each of M memory banks of a memory, wherein M is an integer equal to 2 or more and N/M is an integer equal to two or more

updating the partial network statistics based on the data unit information

writing the updated partial network statistics sequentially in round robin fashion to each of the M memory banks

in the event that partial network statistics for two or more data units in a single flow are read from the same memory bank of the M memory banks, correcting the corresponding updated partial network statistics prior to writing the updated partial network statistics.

8. The apparatus of claim 7 , wherein the actions reading partial network statistics, updating the partial networks statistics, and writing the updated partial network statistics are performed in a pipelined manner.

9. The apparatus of claim 8 , wherein the updated partial network statistics for a first data unit of the N data units is written immediately after the partial network statistics for a last data unit of the N data units has been read.

10. The apparatus of claim 7 , the actions performed further including:

receiving a request for full network traffic statistics from a requestor;

preparing the full network traffic statistics including

retrieving each version of the partial network traffic statistics,

adding some individual statistics of each of the partial network statistics, and

processing some individual statistics of the partial network statistics;

providing the full network traffic statistics to the requestor.

11. The apparatus of claim 7 , wherein the partial network statistics include at least one of a byte count, a data unit count, a most recent timestamp, an oldest timestamp, a number of errors, a maximum data unit size, and a minimum data unit size.

12. A network testing system including at least one network card including the apparatus recited in claim 7 .

13. An apparatus, comprising:

a processor;

a plurality of statistics engines, each of the plurality of statistics engines coupled to a corresponding one of a plurality of memories;

wherein each of the plurality of memories has M banks, where M is an integer equal to two or more

wherein each of the plurality of statistics engines is coupled with the processor, and

wherein each of the plurality of statistics engines is configured to perform actions including:

acquiring data unit information for N data units, wherein N is an integer multiple of M and N/M is two or more;

reading partial network statistics for the N data units sequentially in round robin fashion from the M banks of the corresponding memory;

updating the partial networks statistics based on the data unit information; and

writing the updated partial network statistics sequentially in round robin fashion to each of the M memory banks of the corresponding memory,

wherein, in the event that partial network statistics for two or more data units in a single flow are read from the same memory bank of the M memory banks, the actions performed further include correcting the corresponding updated partial network statistics prior to writing the updated partial network statistics.

14. The apparatus of claim 13 , wherein the plurality of statistics engines perform the actions synchronously.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: IXIA
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2008
From: PEPPER, GERALD; KLASSEN, MANLEY
To: IXIA
Reel/Frame 021806/0641 →