← Back to Patent Explorer
US5909686A Expired / Lapsed US ⏱️ 0.0 years remaining

Hardware-assisted central processing unit access to a forwarding database

Assignee: Oracle America Inc
•
Filing: 1997-06-30
•
Granted: 1999-06-01
•
Expires: 2017-06-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for providing hardware-assisted CPU access to a forwarding database is described. According to one aspect of the present invention, a switch fabric provides access to a forwarding database on behalf of a processor. The switch fabric includes a memory access interface configured to arbitrate access to a forwarding database memory. The switch fabric also includes a search engine coupled to the memory access interface and to multiple input ports. The search engine is configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions retrieved therefrom to the input ports. The switch fabric further includes command execution logic that is configured to interface with the processor for performing forwarding database accesses requested by the processor. According to another aspect of the invention one or more commands are provided to implement the following functions: (1) learning a supplied address; (2) reading associated data corresponding to a supplied search key; (3) aging forwarding database entries; (4) invalidating entries; (5) accessing mask data, such as mask data that may be stored in a mask per bit (MPB) content addressable memory (CAM), corresponding to a particular search key; (6) replacing forwarding database entries; and (7) accessing entries in the forwarding database.

Inventors

  • 👤 Shimon Muller
  • 👤 Ariel Hendel
  • 👤 Louise Yeung
  • 👤 Leo Hejza
  • 👤 Shree Murthy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 14:45
CPC Classifications
H; H04; H04L; H04L49/00; H04L49/30; H04L49/3009; G; G06; G06F; G06F16/00; G06F16/20; G06F16/25; H04L49/25; H04L49/253; H04L49/254; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99941; Y10S707/99944; Y10S707/99945; Y10S707/99948

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 170 words
A switch fabric comprising: a memory access interface configured to arbitrate accesses to a forwarding database memory, the accesses to the forwarding database include operations from a set of device dependent operations that are associated with the particular implementation of the forwarding database memory; a search engine coupled to the memory access interface and to a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions retrieved therefrom to the plurality of input ports; and command execution logic configured to interface with a processor for performing forwarding database access on behalf of the processor, the command execution logic coupled between the memory access interface and the processor, the command execution logic supporting a predetermined set of commands that are independent of the particular implementation of the forwarding database memory and performing one or more operations of the set of device dependent operations responsive to issuance of a command from the set of predetermined commands by the processor.
Claim 2
Dependent Claim 170 words
A switch fabric comprising: a memory access interface configured to arbitrate accesses to a forwarding database memory, the accesses to the forwarding database include operations from a set of device dependent operations that are associated with the particular implementation of the forwarding database memory; a search engine coupled to the memory access interface and to a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions retrieved therefrom to the plurality of input ports; and command execution logic configured to interface with a processor for performing forwarding database access on behalf of the processor, the command execution logic coupled between the memory access interface and the processor, the command execution logic supporting a predetermined set of commands that are independent of the particular implementation of the forwarding database memory and performing one or more operations of the set of device dependent operations responsive to issuance of a command from the set of predetermined commands by the processor.
Claim 3
Dependent Claim 81 words
The switch fabric of claim 1, wherein the command execution logic further includes an interface memory comprising one or more programmable input registers and one or more output registers, the one or more programmable input registers for receiving a command of the predetermined set of commands, and data associated with the command, if any, from the processor, the one or more output registers allowing the processor to read forwarding database memory access results, if any, and forwarding database memory access status.
Claim 4
Dependent Claim 25 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for reading a search key from the forwarding database memory.
Claim 5
Dependent Claim 25 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for writing a search key to the forwarding database memory.
Claim 6
Dependent Claim 29 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for reading data from the forwarding database memory corresponding to a supplied search key.
Claim 7
Dependent Claim 51 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for performing learning of a supplied address, wherein if no forwarding database memory entry is found in the forwarding database memory that matches the supplied address, then a new forwarding database memory entry will be inserted.
Claim 8
Dependent Claim 58 words
The switch fabric of claim 1, wherein the forwarding database memory has stored therein at least two types of forwarding database memory entries, and wherein the predetermined set of commands includes a first command for aging a first type of forwarding database memory entry and a second command for aging a second type of forwarding database memory entry.
Claim 9
Dependent Claim 23 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for invalidating an active forwarding database memory entry.
Claim 10
Dependent Claim 25 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for updating mask data corresponding to a particular search key.
Claim 11
Dependent Claim 25 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for reading mask data corresponding to a particular search key.
Claim 12
Dependent Claim 22 words
The switch fabric of claim 1, wherein the predetermined set of commands includes a command for replacing a forwarding database memory entry.
Claim 13
Dependent Claim 205 words
A network device comprising: a bus interface for communicating data to and from a processor; and a switch fabric coupled to the bus interface and configured to provide hardware-assisted processor access to a forwarding database memory, the switch fabric including a memory access interface configured to arbitrate accesses to the forwarding database memory, a search engine coupled to the memory access interface and to a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions retrieved therefrom to the plurality of input ports, and command execution logic coupled between the processor and the memory access interface, the command execution logic configured to support a predetermined set of commands to provide forwarding database memory accesses on behalf of the processor, the command execution logic including an interface memory comprising one or more programmable input registers and one or more output registers, the one or more programmable input registers for receiving a command of the predetermined set of commands, and data associated with the command, if any, from the processor, the one or more output registers allowing the processor to read forwarding database memory access results, if any, and forwarding database memory access status.
Claim 14
Dependent Claim 205 words
A network device comprising: a bus interface for communicating data to and from a processor; and a switch fabric coupled to the bus interface and configured to provide hardware-assisted processor access to a forwarding database memory, the switch fabric including a memory access interface configured to arbitrate accesses to the forwarding database memory, a search engine coupled to the memory access interface and to a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions retrieved therefrom to the plurality of input ports, and command execution logic coupled between the processor and the memory access interface, the command execution logic configured to support a predetermined set of commands to provide forwarding database memory accesses on behalf of the processor, the command execution logic including an interface memory comprising one or more programmable input registers and one or more output registers, the one or more programmable input registers for receiving a command of the predetermined set of commands, and data associated with the command, if any, from the processor, the one or more output registers allowing the processor to read forwarding database memory access results, if any, and forwarding database memory access status.
Claim 15
Dependent Claim 25 words
The network device of claim 12, wherein the predetermined set of commands includes a command for writing a search key to the forwarding database memory.
Claim 16
Dependent Claim 29 words
The network device of claim 12, wherein the predetermined set of commands includes a command for reading data from the forwarding database memory corresponding to a supplied search key.
Claim 17
Dependent Claim 51 words
The network device of claim 12, wherein the predetermined set of commands includes a command for performing learning of a supplied address, wherein if no forwarding database memory entry is found in the forwarding memory database that matches the supplied address, then a new forwarding database memory entry will be inserted.
Claim 18
Dependent Claim 58 words
The network device of claim 12, wherein the forwarding database memory has stored therein at least two types of forwarding database memory entries, and wherein the predetermined set of commands includes a first command for aging a first type of forwarding database memory entry and a second command for aging a second type of forwarding database memory entry.
Claim 19
Dependent Claim 23 words
The network device of claim 12, wherein the predetermined set of commands includes a command for invalidating an active forwarding database memory entry.
Claim 20
Dependent Claim 25 words
The network device of claim 12, wherein the predetermined set of commands includes a command for updating mask data corresponding to a particular search key.
Claim 21
Dependent Claim 25 words
The network device of claim 12, wherein the predetermined set of commands includes a command for reading mask data corresponding to a particular search key.
Claim 22
Dependent Claim 22 words
The network device of claim 12, wherein the predetermined set of commands includes a command for replacing a forwarding database memory entry.
Claim 23
Independent Claim 111 words
A method comprising the steps of: a processor requesting access to a forwarding database memory associated with a switch fabric by issuing a forwarding database access command of a predetermined set of forwarding database access commands that are supported by command execution logic of the switch fabric, the predetermined set of forwarding database access commands being independent of the particular implementation of the forwarding database memory; and responsive to the forwarding database access command, the command execution logic accessing the forwarding database memory on behalf of the processor by performing one or more operations of a set of operations that are dependent upon the particular implementation of the forwarding database memory.
Claim 24
Independent Claim 111 words
A method comprising the steps of: a processor requesting access to a forwarding database memory associated with a switch fabric by issuing a forwarding database access command of a predetermined set of forwarding database access commands that are supported by command execution logic of the switch fabric, the predetermined set of forwarding database access commands being independent of the particular implementation of the forwarding database memory; and responsive to the forwarding database access command, the command execution logic accessing the forwarding database memory on behalf of the processor by performing one or more operations of a set of operations that are dependent upon the particular implementation of the forwarding database memory.
Claim 25
Dependent Claim 137 words
The method of claim 21, wherein the forwarding database access command comprises a command for reading a forwarding database memory entry from the forwarding database memory, and wherein the method further comprises the steps of: the processor programming an address counter register in the switch fabric to identify a starting address of the forwarding database memory entry in the forwarding database memory; the processor providing the command execution logic with the command by programming to a command register in the switch fabric; and the command execution logic reading the starting address from the address counter register, reading the forwarding database memory entry from the forwarding database memory, and writing the forwarding database memory entry to an output register that is accessible by the processor when the command execution logic is granted access to the forwarding database memory.
Claim 26
Dependent Claim 147 words
The method of claim 21, wherein the forwarding database access command comprises a command for writing a forwarding database memory entry to the forwarding database memory, and wherein the method further comprises the steps of: the processor providing the command execution logic with the forwarding database memory entry by programming a write register in the switch fabric; the processor identifying a start address in the forwarding database memory to which the forwarding database memory entry is to be written by programming an address counter register in the switch fabric; the processor providing the command execution logic with the command by programming a command register in the switch fabric; and the command execution logic reading the starting address from the address counter register and writing the forwarding database memory entry to the forwarding database memory when the command execution logic is granted access to the forwarding database memory.

References Cited (Backward Citations)

US5309437A Cited
US5500860A Cited
US5461624A Cited
US5485455A Cited
US5459717A Cited
US5790456A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-05-31 2002-11-30 2003-06-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-05-31 2006-11-30 2007-06-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-05-31 2010-11-30 2011-06-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag