Cascading Content Addressable Memory Devices with Programmable Input / Output Connections
First Claim
1. A CAM system for generating an output on a bus in response to a key, the CAM system comprising:
- at least one cluster that includes M CAM devices, wherein each CAM device has a priority N within the cluster to which it belongs, where N ranges from 1 to M, and each CAM device includes;
i) a CAM array configured to hold entries and to determine if each entry matches the key;
ii) (M−
1) disable connections, where the CAM device of priority N has (N−
1) of the disable connections programmed as inputs configured to receive disable-in signals from the (N−
1) higher-priority CAM devices within the cluster, and has the remaining (M−
N) disable connections programmed as outputs configured to provide a disable-out signal to the (M−
N) lower-priority CAM devices within the cluster; and
iii) a cascade circuit configured to disable the CAM device from driving the output onto the bus when any of the disable-in signals received by the CAM device are asserted.
13 Assignments
0 Petitions
Accused Products
Abstract
CAM devices that can be cascaded together to form CAM systems of different sizes are disclosed. The system has one or more clusters of M CAM devices, each device including (M−1) disable connections. Disable signals are used to avoid contention so that one CAM device generates the system output on a shared bus. To reduce pin count, the CAM device of priority N within each cluster has (N−1) of its disable connections programmed as inputs for disable-in signals received from higher-priority CAM devices, and its remaining (M−N) disable connections programmed as outputs for disable-out signals provided to lower-priority CAM devices. Some embodiments include two or more clusters of CAM devices and a controller. In some embodiments, the CAM system works as fast as a single CAM device. Some embodiments impose no architectural limits on the number of CAM devices that can be cascaded together.
-
Citations
16 Claims
-
1. A CAM system for generating an output on a bus in response to a key, the CAM system comprising:
at least one cluster that includes M CAM devices, wherein each CAM device has a priority N within the cluster to which it belongs, where N ranges from 1 to M, and each CAM device includes;
i) a CAM array configured to hold entries and to determine if each entry matches the key;
ii) (M−
1) disable connections, where the CAM device of priority N has (N−
1) of the disable connections programmed as inputs configured to receive disable-in signals from the (N−
1) higher-priority CAM devices within the cluster, and has the remaining (M−
N) disable connections programmed as outputs configured to provide a disable-out signal to the (M−
N) lower-priority CAM devices within the cluster; and
iii) a cascade circuit configured to disable the CAM device from driving the output onto the bus when any of the disable-in signals received by the CAM device are asserted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
13. A method of generating a CAM output on a bus in response to a key, the method comprising:
-
holding entries in at least one cluster of M CAM devices, wherein each CAM device has a priority N within the cluster to which the CAM device belongs, where N ranges from 1 to M;
programming (N−
1) programmable connections within each CAM device to receive a disable-in signal;
programming (M−
N) programmable connections within each CAM device to generate a disable-out signal;
loading into each CAM device a key;
searching for entries within each CAM device that match the key;
asserting from each CAM device the (M−
N) disable-out signals only when a matching entry is found within that CAM device;
receiving into each CAM device (N−
1) disable-in signals, each being the disable-out signal from one of the (N−
1) higher priority devices within the cluster to which that CAM device belongs;
encoding one of the matching rows and driving the encoded row onto the bus when there is at least one matching entry within a CAM device and when no disable-in signal received by that CAM device is asserted. - View Dependent Claims (14)
-
-
15. A CAM system for generating an output on a bus in response to a key, the CAM system comprising:
at least one cluster that includes M CAM means, wherein each CAM means has a priority N within the cluster to which it belongs, where N ranges from 1 to M, and each CAM means includes;
i) a means for holding entries and for determining if each entry matches the key;
ii) (M−
1) means, each programmable either as an input for receiving a disable-in signal from one of the (N−
1) higher-priority CAM means within the cluster or as an output for providing a disable-out signal to one of the (M−
N) lower-priority CAM means within the cluster; and
iii) means for driving the output from the CAM means onto the bus, wherein the driving means does not drive the bus when any of the disable-in signals received by the CAM means are asserted. - View Dependent Claims (16)
Specification