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 two clusters that each include 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; and
a controller configured to receive a cluster-match signal from the clusters and to generate a cluster-disable signal for the clusters, wherein the cluster-disable signal for a particular cluster is asserted when any cluster-match signal received by the controller from any cluster having higher priority than that particular cluster is asserted;
wherein each CAM device further includes a connection configured to receive the cluster-disable signal for the cluster containing the CAM device and a connection configured to provide the cluster-match signal for that cluster; and
wherein each cascade circuit is further configured to disable the CAM device from driving the output onto the bus when the cluster-disable signal is 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
14 Claims
-
1. A CAM system for generating an output on a bus in response to a key, the CAM system comprising:
-
at least two clusters that each include 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; and
a controller configured to receive a cluster-match signal from the clusters and to generate a cluster-disable signal for the clusters, wherein the cluster-disable signal for a particular cluster is asserted when any cluster-match signal received by the controller from any cluster having higher priority than that particular cluster is asserted;
wherein each CAM device further includes a connection configured to receive the cluster-disable signal for the cluster containing the CAM device and a connection configured to provide the cluster-match signal for that cluster; and
wherein each cascade circuit is further configured to disable the CAM device from driving the output onto the bus when the cluster-disable signal is asserted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. 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 (13)
-
-
14. A CAM system for generating an output on a bus in response to a key, the CAM system comprising:
-
at least two clusters that each include 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; and
means for generating a cluster-disable signal for each of the clusters, wherein the cluster-disable signal for each cluster is asserted when the cluster-match signal received by the controller from any cluster having higher priority than that cluster is wherein each CAM means further includes means for receiving the cluster-disable signal for the cluster containing the CAM means and means for providing the cluster-disable signal for that cluster; and
wherein each driving means does not drive the output onto the bus either when the cluster-disable signal is asserted.
-
Specification