Claims
- 1. An associative search engine (ASE) for data storage and retrieval, the associative search engine comprising:
(a) a search engine manager (SEM), disposed within a chip, said search engine manager including:
(i) processing logic; (b) an external memory, disposed outside of said chip, said memory including:
(i) at least a first array for storing a plurality of range boundary information; (c) at least a second array for storing a plurality of associated data entries, said data entries being associated with said range boundary information, wherein said processing logic is designed and configured to search, in response to an input key, said range boundary information, so as to determine if said input key falls within a range associated with a particular range boundary information of said range boundary information.
- 2. The associative search engine of claim 1, wherein the search engine manager has an internal memory disposed within said chip.
- 3. The associative search engine of claim 1, wherein said range is represented by a single boundary value.
- 4. The associative search engine of claim 1, wherein said external memory includes at least one random access memory (RAM).
- 5. The associative search engine of claim 1, the system further comprising:
(d) an interface for interfacing between said external memory and said SEM.
- 6. The associative search engine of claim 5, wherein said interface includes at least one control & data bus (CDB).
- 7. The associative search engine of claim 1, said second array having a plurality of rows and a plurality of columns.
- 8. The associative search engine of claim 5, wherein said second array is disposed in said external memory.
- 9. The associative search engine of claim 1, further comprising:
(d) a memory for storing range validity information for each of said range boundary information.
- 10. The associative search engine of claim 5, wherein said memory for storing range validity information is disposed within said external memory.
- 11. An associative search engine (ASE) for data storage and data retrieval, the associative search engine comprising:
(a) a search engine manager (SEM), disposed within a chip, said search engine manager including:
(i) processing logic; (b) an external memory system, disposed outside of said chip, said memory system including:
(i) a plurality of memory storage units, each memory storage unit of said memory storage units having at least a first array for storing a plurality of key entries; (c) at least a second array for storing a plurality of associated data entries, said data entries being associated with said key entries, and (d) an interface for data interfacing between said external memory system and said SEM, wherein said processing logic is designed and configured to search within each of said memory storage units, in response to an input key, so as to determine if said input key matches a particular key entry of said key entries, and wherein said key entries are stored in said memory storage units as logical two-dimensional arrays (TDAs) arranged for a search tree having a plurality of levels, so as to provide an increased rate of the data retrieval from said external memory system to said processing logic.
- 12. The associative search engine of claim 11, wherein said key entries are arranged within said memory storage units so as to enable a pipelined searching, wherein a search for said input key is initiated by said processing logic before a search for a previous input key has been completed.
- 13. The associative search engine of claim 11, wherein said key entries are arranged within said memory storage units such that at least one of said memory storage units contains solely one solitary level of said plurality of levels.
- 14. The associative search engine of claim 13, wherein said key entries are arranged within said memory storage units such that said one solitary level is a singular-solitary level.
- 15. The associative search engine of claim 14, wherein said key entries are further arranged within said memory storage units such that all of said memory storage units contain solely one solitary level of said plurality of levels.
- 16. The associative search engine of claim 14, wherein all of said memory storage units contain solely one solitary level of said plurality of levels, said key entries being further arranged such that a particular level of said levels is stored entirely in a single memory storage unit of said memory storage units.
- 17. The associative search engine of claim 16, wherein each particular level of said levels is stored entirely in a single respective memory storage unit of said memory storage units.
- 18. The associative search engine of claim 13, wherein said key entries are arranged such that at least a portion of said memory storage units have at least one duplicated level.
- 19. The associative search engine of claim 18, wherein said key entries are arranged such that all of said memory storage units have at least one duplicated level.
- 20. The associative search engine of claim 18, wherein said duplicated level is disposed within said additional memory storage unit so as to reduce a memory space requirement within said memory storage units.
- 21. The associative search engine of claim 18, wherein said duplicated level is disposed within said additional memory storage unit so as to reduce a requisite number of rows within said memory storage units.
- 22. The associative search engine of claim 11, wherein said key entries are arranged such that at least a portion of said memory storage units have at least one duplicated level.
- 23. The associative search engine of claim 22, wherein said duplicated level is disposed within said additional memory storage unit so as to reduce a requisite number of rows within said memory storage units.
- 24. The associative search engine of claim 13, wherein said external memory system includes at least one random access memory (RAM).
- 25. The associative search engine of claim 24, wherein said at least one RAM includes at least one dynamic random access memory (DRAM).
- 26. The associative search engine of claim 24, wherein said at least one RAM includes at least one partitioned random access memory.
- 27. The associative search engine of claim 25, wherein said at least one DRAM includes a plurality of memory banks.
- 28. The associative search engine of claim 11, wherein said processing logic is designed and configured to store said key entries in monotonic order within at least one memory storage unit of said memory storage units.
- 29. The associative search engine of claim 28, wherein at least two of said memory storage units have overlapping spans.
- 30. The associative search engine of claim 11, further comprising:
(e) a register for storing row-identifying key entries.
- 31. The associative search engine of claim 11, wherein said second array is disposed in said external memory.
- 32. The associative search engine of claim 30, wherein said register is a column register.
- 33. The associative search engine of claim 30, wherein said register is divided into a plurality of hierarchical blocks.
- 34. A method for processing data using an associative search engine having an external memory and for extracting the data from the external memory in response to an input key, the method comprising the steps of:
(a) providing the associative search engine (ASE), the ASE having:
(i) a search engine manager (SEM), disposed within a chip, said search engine manager including processing logic; (b) providing, for the ASE, an external memory system disposed outside of said chip, said external memory system including:
(i) a plurality of memory storage units, each memory storage unit of said memory storage units having at least a first array for storing a plurality of key entries; (c) providing a memory for storing a plurality of associated data entries, said data entries being associated with said key entries; (d) providing an interface for data interfacing between said external memory system and said SEM; (e) arranging said key entries as logical two-dimensional arrays (TDAs) so as to increase a rate of data retrieval from said external memory system to said processing logic, and (f) searching said key entries, in response to the input key, so as to determine if the input key matches a particular key entry of said key entries.
- 35. The method of claim 34, wherein said external memory system includes at least one random access memory (RAM).
- 36. The method of claim 34, wherein at least one step of said searching of said key entries is performed in said plurality of memory storage units within a single clock cycle.
- 37. The method of claim 34, further comprising the step of:
(g) storing a key entry from each row of said TDAs in a column register to produce an array of row-identifying key entries.
- 38. The method of claim 34, further comprising the step of:
(g) storing a row-identifying key entry associated with a particular row of said TDAs, so as to produce an array of row-identifying key entries.
- 39. The method of claim 34, further comprising the step of:
(g) storing, in a column register, a row-identifying key entry associated with a particular row of said TDAs, so as to produce an array of row-identifying key entries.
- 40. The method of claim 38, further comprising the step of:
(h) searching said array containing said row-identifying key entries to determine a particular row within said TDAs that potentially contains a matching key entry that matches the input key.
- 41. The method of claim 40, further comprising the step of:
(i) searching said particular row that potentially contains said matching key entry.
- 42. The method of claim 38, wherein each TDA of said TDAs represents a level of a B-tree.
- 43. The method of claim 38, wherein said array of row-identifying key entries is partitioned into k hierarchical blocks according to a numerical system of base B, wherein k≧2 and B≧2.
- 44. The method of claim 34, wherein said plurality of key entries stored in said at least a first array contains range boundary information.
- 45. The method of claim 34, wherein said key entries are arranged in monotonic order within said memory storage units.
- 46. The method of claim 34, wherein said searching is a pipelined searching, such that a search for the input key is initiated by said processing logic before a search for a previous input key has been completed.
- 47. The method of claim 46, wherein said arranging of said key entries in logical TDAs is performed so as to enable said pipelined searching.
Parent Case Info
[0001] This is a continuation-in-part of U.S. patent application Ser. No. 10/206,189 and a continuation-in-part of U.S. patent application Ser. No. 10/229,065, which is a continuation-in-part of PCT Application Serial No. IL01/01025, filed Nov. 5, 2001.
Continuation in Parts (3)
|
Number |
Date |
Country |
Parent |
10206189 |
Jul 2002 |
US |
Child |
10688986 |
Oct 2003 |
US |
Parent |
10229065 |
Aug 2002 |
US |
Child |
10688986 |
Oct 2003 |
US |
Parent |
PCT/IL01/01025 |
Nov 2001 |
US |
Child |
10229065 |
Aug 2002 |
US |