Searching memory for a search key
AssigneeMemobit Technologies AB
InventorsPär S Westlund, Lars-Olof B Svensson
Life of this patent
Estimating the term…
Loading patent…
AssigneeMemobit Technologies AB
InventorsPär S Westlund, Lars-Olof B Svensson
Estimating the term…
To produce output from a memory block, a first index is used to access a pointer, a mode select and a function select from a first memory. The pointer, the mode select and the function select are used to produce a second index. The pointer is used to produce the second index when the mode select is a first value. A function is used to produce the second index when the mode select is a second value. The function select identifies a function to be used to produce the second index. The second index is used to access output from a second memory.
A hash content addressable memory comprising:
A method for producing output from a memory block, the method implemented using hardware within the memory block and the method comprising:
A memory block that in response to a search operation performs an internal content addressable search to determine whether a search key resides within the memory block, the memory block comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Specifically adapted to achieve a particular effect: improving I/O performance
Making use of a particular technique: vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more…
In-line storage system: plurality of storage devices
Accessing, addressing or allocating within memory systems or architectures
About 8 years 9 months of term left · ends 17 Jul 2035 (estimated)
Ternary content addressable memory (TCAM) devices are often used to support packet forwarding and classification operations in network switches and routers. A TCAM device can be instructed to compare a search value, typically formed from one or more fields within the header of an incoming packet, with entries within an associative storage array of the TCAM device. If the search value matches an entry, the TCAM device generates an index that corresponds to the location of the matching entry within a storage array, and asserts a match flag to signal the march. The storage array addressed by the index may be either within or separate from the TCAM device. The entry retrieved from the storage array includes, for example, routing or classification information for the packet.
A TCAM is typically organized as an array with multiple TCAM rows, where each row comprises multiple TCAM cells. When a search value is searched for in the TCAM it is simultaneously compared against all the values stored in the different rows. When all the TCAM cells in a row matches the search value, a row match signal for the row is generated. All match signals are connected to a match logic block. The match logic block generates a match address that corresponds to the match signal of the row.
A TCAM cell is typically implemented using two SRAM cells and comparison logic. The first SRAM cell contains a data bit and the second SRAM cell contains a mask bit. Each SRAM cell requires 6 transistors. The comparison logic requires 4 transistors. All together a TCAM cell requires 16 transistors to store one bit of data, which results in large die area per storage bit.
FIG. 1 is a simplified block diagram of a hash content addressable memory (HCAM) system used by multiple clients in accordance with an implementation.
FIG. 2 is a simplified block diagram showing that the HCAM system of FIG. 1 has multiple HCAM blocks in accordance with an implementation.
FIG. 3 is a simplified block diagram of a hash content addressable memory (HCAM) block in accordance with an implementation.
FIG. 1 illustrates a hash content addressable memory (HCAM) device 600 used by multiple clients. In FIG. 1, multiple clients are illustrated by a client 51, a client 52 and a client 53. While FIG. 1 shows three clients, the number of clients will vary dependent upon design criteria, performance criteria and so on.
Each client interacts with HCAM device 600 through a key bus, an operation (op) bus and a priority (prio) bus dedicated to that client. As shown in FIG. 1, client 51 uses a key bus 5301, an op bus 5101 and a prio bus 5291. Client 52 uses a key bus 5302, an op bus 5102 and a prio bus 5292. Client 53 uses a key bus 5303, an op bus 5103 and a prio bus 5293.
On its dedicated op bus, each client places operations (instructions) for HCAM device 600. For example, an operation could be to search a specified table, or write to a specified table. On its dedicated key bus, the client places data associated to the operation. For example, if the operation is a write operation, the address and data for the write operation is placed on the key bus. If the operation is search a specified table, the search key to search for in the specified table is placed on the key bus. On the priority bus dedicated to the client, the responding HCAM device 600 places response information for the client.