IP Library Granted Patent US 7,657,706
Granted Patent B2
US 7,657,706 · App. 11/016,572 · Granted Feb 2, 2010

High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory

Assignee: Cisco Technology, Inc.
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,657,706
App. No.
11/016,572
Granted
Feb 2, 2010
Kind
B2
Abstract

An input/output processor for speeding the input/output and memory access operations for a processor is presented. The key idea of an input/output processor is to functionally divide input/output and memory access operations tasks into a compute intensive part that is handled by the processor and an I/O or memory intensive part that is then handled by the input/output processor. An input/output processor is designed by analyzing common input/output and memory access patterns and implementing methods tailored to efficiently handle those commonly occurring patterns. One technique that an input/output processor may use is to divide memory tasks into high frequency or high-availability components and low frequency or low-availability components. After dividing a memory task in such a manner, the input/output processor then uses high-speed memory (such as SRAM) to store the high frequency and high-availability components and a slower-speed memory (such as commodity DRAM) to store the low frequency and low-availability components. Another technique used by the input/output processor is to allocate memory in such a manner that all memory bank conflicts are eliminated. By eliminating any possible memory bank conflicts, the maximum random access performance of DRAM memory technology can be achieved.

Claims (19)

1. A method of improving performance for a computer processor, said method comprising:

receiving in an input/output processor data and a memory access instruction from said computer processor, said memory access instruction identifying a type of memory storage task from a group of more than one different memory storage task;

analyzing said memory access instruction in said input/output processor to identify said type of memory storage task;

if said type of memory storage task comprises a counter adjustment then

updating a value containing recent adjustments to said counter in a higher-speed memory, and

updating a full version of said counter in a slower-speed memory if an overflow of said value containing recent adjustments to said counter occurs; and

if said type of memory storage task comprises a write to a FIFO queue then

storing said data in a queue tail of said FIFO queue in said higher-speed memory, and

moving data from said queue tail to a queue body of said FIFO queue in said slower-speed memory if said queue tail is filled.

2. The method as claimed in claim 1 wherein said higher-speed memory comprises static random access memory (SRAM).

3. The method as claimed in claim 1 wherein said slower-speed memory comprises dynamic random access memory (DRAM).

4. The method as claimed in claim 1 wherein said a FIFO queue further comprises a tail of said FIFO queue in said higher-speed memory.

5. The method as claimed in claim 1 , said method further comprising:

if said type of memory storage task comprises a counter read then

generating a sum by adding said value containing recent adjustments to said counter to said full version of said counter in said slower speed memory, and returning said sum.

6. The method as claimed in claim 1 , said method further comprising:

if said type of memory storage task comprises a read from said FIFO queue then

responding with data from in a queue head of said FIFO queue in said higher-speed memory, and

moving data from said queue body of said FIFO queue in said slower-speed memory to said queue head in said higher-speed memory.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE: 03/13/2008 PREVIOUSLY RECORDED ON REEL 021741 FRAME 0778. ASSIGNOR(S) HEREBY CONFIRMS THE EXECUTION DATE: 03/13/2007. Recorded Oct 28, 2008
From: NEMO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 021751/0229 →
MERGER Recorded Oct 27, 2008
From: NEMO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 021741/0778 →
MERGER Recorded Oct 20, 2005
From: SUSHI ACQUISITION CORPORATION
To: NEMO SYSTEMS, INC.
Reel/Frame 016917/0955 →
MERGER Recorded Oct 20, 2005
From: SUSHI ACQUISITION CORPORATION
To: NEMO SYSTEMS, INC.
Reel/Frame 016918/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2005
From: IYER, SUNDAR; MCKEOWN, NICK
To: NEMO SYSTEMS, INC.
Reel/Frame 016922/0649 →
Continuity (3)
Provisional Application 6053104300 · Dec 18, 2003
Provisional Application 6054488300 · Feb 14, 2004
Related Publication 20050240745A1 · Oct 27, 2005