6757780

Multiple Module Content Addressable Memories

PublishedJune 29, 2004
Assigneenot available in USPTO data we have
InventorsMoshe Stark
Technical Abstract

Patent Claims
43 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A multiple module device for storing arranged data in a memory, and for extracting the data therefrom, the device comprising: (a) a memory having a plurality of module pairs, each of said module pairs having: (i) a key module including a first array of cells, said first array having at least two dimensions and having rows and columns, said first for array containing a plurality of keys, each of said cells having a unique address and being accessible via an input key, said keys within each of said key modules being arranged in monotonic order, and (ii) an associated data module including a second array of cells, said second array having at least two dimensions and having rows and columns, said second array having a plurality of data entries, associated with said keys, wherein said memory is designed and configured such that each of said data entries is associated with a particular one of said keys, and (b) processing means designed and configured to search, in response to said input key, said plurality of keys within each said key module, so as to identify a match.

2

2. The multiple module device of claim 1 , wherein said keys within each said key module define a module value span, and wherein said first modules are arranged in monotonic order with respect to each said module value span.

3

3. The multiple module device of claim 2 , further comprising: (c) sorting means for arranging said keys in monotonic order within said first array.

4

4. The multiple module device of claim 1 , wherein each of said associated data entries has a unique pair of row and column indices for association with a unique pair of row and column indices of a particular one of said keys.

5

5. The multiple module device of claim 1 , wherein said keys represent range boundary information.

6

6. The multiple module device of claim 5 , further including range validity information for each of said range boundary information, said range validity information stored within said memory.

7

7. The device of claim 6 , wherein said range boundary information is a single range-boundary value.

8

8. The device of claim 7 , wherein each said range validity information is disposed in said first array, each said range validity information corresponding to a particular said single range-boundary value.

9

9. The device of claim 7 , wherein said range validity information is stored in a separate array.

10

10. The device of claim 7 , wherein each said range validity information is disposed in said second array, each said range validity information corresponding to a particular one of said associated data entries.

11

11. The device of claim 2 , wherein each said key module includes a first register for holding a first key and a second register for holding a last key, said first key and said last key representing extreme values of said module value span, said first register and said second register being designed and configured to produce register output signals.

12

12. The device of claim 2 , wherein each said key module includes at least one comparator for comparing an index of a key having an extreme value of said module value span with an index of a key disposed in a last position of said key module.

13

13. The device of claim 2 , wherein said processing means include: i) a row locator containing at least a first comparator, for comparing contents of an end column of said first array with said input key.

14

14. The device of claim 13 , wherein said processing means further include: ii) a column locator containing at least a second comparator, for comparing contents of said row with said input key.

15

15. The multiple module device of claim 1 , wherein each of said module pairs further includes: (iii) a tristate buffer operatively connected to said key module and to said associated data module.

16

16. The multiple module device of claim 6 , wherein each of said module pairs further includes an associated boundary type module.

17

17. The multiple module device of claim 6 , wherein said associated boundary type module is operatively connected to a tristate buffer.

18

18. The multiple module device of claim 15 , wherein an output of said tristate buffer is enabled by a match signal received from said key module.

19

19. A method for arranging and storing data in a memory and for extracting the data from the memory in response to an input key, the method comprising the steps of: (a) providing a device including: (i) a memory having a plurality of module pairs, each of said module pairs having: (A) a key module including a first array of cells, said first array having at least two dimensions and having rows and columns, said first array for containing a plurality of keys, each of said cells having a unique address and being accessible via an input key, said keys within each of said key modules being arranged in monotonic order, and (B) an associated data module including a second array of cells, said second array having at least two dimensions and having rows and columns, said second array having a plurality of data entries, associated with said keys, wherein said memory is designed and configured such that each of said data entries is associated with a particular one of said keys, and (ii) processing means, and (b) performing a processing operation, using said processing means on each said key module in parallel.

20

20. The method of claim 19 , wherein each of said plurality of keys includes range boundary information.

21

21. The method of claim 19 , wherein said device further includes an associated boundary type module including a third array of cells, said third array having at least two dimensions, and a plurality of data entries containing range validity information, each of said data entries associated with a particular one of said keys.

22

22. The method of claim 20 , wherein said range boundary information is a single range-boundary value.

23

23. The method of claim 19 , wherein said processing operation is a Search operation.

24

24. The method of claim 19 , wherein said processing operation is an Insert operation.

25

25. The method of claim 19 , wherein said processing operation is a Remove operation.

26

26. The method of claim 19 , wherein said processing operation is an Update operation.

27

27. The method of claim 19 , wherein said processing operation includes a comparing operation.

28

28. The method of claim 19 , wherein each of said plurality of keys includes range boundary information, and wherein said comparing operation includes comparing a value of said input key with said range boundary information to determine a particular range to which said input key belongs.

29

29. The method of claim 28 , wherein a row or column containing said range boundary information is selected by the following steps: (i) performing a comparison between said range boundary information and said input key to produce a result, and (ii) identifying a row or column in which said result undergoes a change in inequality status.

30

30. The method of claim 29 , further comprising the step of: (iii) selecting said row or column.

31

31. The method of claim 24 , further comprising the steps of: (c) identifying within a particular key module of said key modules, a row into which a new key should be inserted and selecting said row, and (d) inserting said new key into an insertion location in said particular key module while maintaining said monotonic order within each of said key modules.

32

32. The method of claim 31 , wherein said identifying in step (c) includes a comparison of said new key with at least one end key of said plurality of keys, said end key disposed in an end column in said particular key module.

33

33. The method of claim 31 , wherein said identifying in step (c) includes examining all said key modules in parallel.

34

34. The method of claim 31 , further comprising the step of: (e) checking, before step (d), that said particular key module is devoid of a key of identical value to said new key.

35

35. The method of claim 31 , further comprising the step of: (e) identifying a column index for said new range boundary value by performing a comparison of said new range boundary value with said range boundary information disposed in said row.

36

36. The method of claim 31 , wherein said maintaining of said monotonic order is achieved by shifting a content of each cell disposed after said insertion location respectively, by one position, thereby completely filling at least a portion of said first array with said keys.

37

37. The method of claim 31 , wherein data associated with said new key is inserted into said associated data module of said module pair containing said particular key module.

38

38. The method of claim 24 , further comprising the steps of: (c) identifying within a particular key module of said key modules, a row containing a key for inserting, and selecting said row, and (d) inserting said key for inserting from an insertion location in said particular key module while maintaining said monotonic order within each of said key modules.

39

39. The method of claim 25 , further comprising the steps of: (c) identifying within a particular key module of said key modules, a key for removing, and selecting said row, and (d) removing said key for removing from a removal location in said particular key module while maintaining said monotonic order within each of said key modules.

40

40. The method of claim 19 , wherein said performing a processing operation includes a match/no-match step performed on each said key module in parallel, in which said input key is compared with said keys in each said key module.

41

41. The method of claim 19 , wherein said performing a processing operation includes: holding as distinct, readily accessible values, a first key and a last key disposed in said key module.

42

42. The method of claim 19 , wherein said performing a processing operation includes: receiving an input signal indicating that an Insert/Remove operation is taking place in an adjacent module.

43

43. The method of claim 19 , wherein said performing a processing operation includes: holding a location index of a current highest key in said key module, and indicating a state of said key module as being full or empty.

Patent Metadata

Filing Date

Unknown

Publication Date

June 29, 2004

Inventors

Moshe Stark

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “MULTIPLE MODULE CONTENT ADDRESSABLE MEMORIES” (6757780). https://patentable.app/patents/6757780

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

MULTIPLE MODULE CONTENT ADDRESSABLE MEMORIES — Moshe Stark | Patentable