US20050213359A1 - Hybrid content addressable memory - Google Patents
Hybrid content addressable memory Download PDFInfo
- Publication number
- US20050213359A1 US20050213359A1 US10/809,421 US80942104A US2005213359A1 US 20050213359 A1 US20050213359 A1 US 20050213359A1 US 80942104 A US80942104 A US 80942104A US 2005213359 A1 US2005213359 A1 US 2005213359A1
- Authority
- US
- United States
- Prior art keywords
- content addressable
- addressable memory
- memory cells
- cam
- ternary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 230000015654 memory Effects 0.000 title claims abstract description 201
- 238000003491 array Methods 0.000 abstract description 3
- 210000004027 cell Anatomy 0.000 description 201
- 238000004645 scanning capacitance microscopy Methods 0.000 description 27
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 8
- 229910052710 silicon Inorganic materials 0.000 description 8
- 239000010703 silicon Substances 0.000 description 8
- 239000003990 capacitor Substances 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Definitions
- the present invention relates generally to content addressable memories. More particularly, the present invention relates to content addressable memory array architectures.
- CAM Content Addressable Memory
- lookup table implementations such as cache memory subsystems and is now rapidly finding use in networking system applications such as network address translation, pattern recognition, and data compression.
- CAM's most valuable feature is its ability to perform a search and compare of multiple locations as a single operation, in which search data is compared with data stored within the CAM.
- search data is loaded onto search lines and compared with stored words in the CAM.
- a match or mismatch signal associated with each stored word is generated on a matchline, indicating whether the search word matches a stored word or not.
- a CAM stores data in a matrix of cells, which are typically SRAM based cells.
- cells which are typically SRAM based cells.
- ternary state CAMs ie. where each CAM cell can store one of three values: a logic “0”, “1” or “don't care” result
- ternary SRAM based cells require two binary SRAM cells.
- the CAM 10 includes a matrix, or CAM memory array 25 , of CAM cells (not shown) arranged in rows and columns. A predetermined number of CAM cells in a row store a word of data.
- An address decoder 17 is used to select any row within the CAM array 25 to allow data to be written into or read out of the selected row.
- Data access circuitry such as bitlines and column selection devices, are located within the array 25 to transfer data into and out of the array 25 .
- matchline sense circuits Located within CAM array 25 for each row of CAM cells are matchline sense circuits, which are not shown, and are used during search-and-compare operations for outputting a result indicating a successful or unsuccessful match of a search word against the stored word in the row.
- the results for all rows are processed by the priority encoder 22 to output the address (Match Address) corresponding to the location of a matched word.
- the match address is stored in match address registers 18 before being output by the match address output block 19 .
- Data is written into array 25 through the data I/O block 11 and the various data registers 15 .
- Data is read out from the array 25 through the data output register 23 and the data I/O block 11
- Other components of the CAM include the control circuit block 12 , the flag logic block 13 the voltage supply generation block 14 , various control and address registers 16 , and JTAG block 21 .
- FIG. 2 depicts a hierarchical view of the typical CAM array 25 .
- CAM array 25 includes a matrix of CAM cells 30 and a matchline sense circuit block 26 .
- CAM cells 30 of the CAM array 25 are arranged in rows and columns.
- CAM cells 30 of a row are connected to a common matchline MLi
- CAM cells 30 of a column are connected to a common pair of search lines SLjb/SLj and a common pair of bitlines BLj/BLjb, where i is an integer value between 0 and n, and j is an integer value between 0 and m.
- each row of CAM cells 30 is connected to a wordline, and those of skill in the art will understand that wordlines are required to ensure operability of the CAM cells 30 .
- Matchline sense circuit block 26 Located adjacent to the CAM array 25 for each row is matchline sense circut block 26 .
- Matchline sense circuit block 26 includes one matchline sense circuit 27 connected to a respective matchline MLi, and is used during search-and-compare operations for outputting match signals ML_OUT 0 -ML_OUTn which indicate a successful or unsuccessful match of a search word against the stored word.
- the matchline sense circuits 27 also receive control signals to control their operation, and a person skilled in the art would understand that such control signals to be necessary for their proper operation of the circuit. While the bitlines are connected to well known bitline circuits, the searchlines in a CAM device 10 are connected to searchline drivers (not shown), such as those disclosed in commonly owned U.S. Pat. No. 6,522,596.
- FIGS. 3 through 5 show circuit schematics of the types of CAM cells 30 that can be used in the CAM array 25 of FIG. 2 .
- FIG. 3 shows a typical ternary data SRAM type CAM cell
- FIG. 4 shows an alternate ternary SRAM type CAM cell
- FIG. 5 shows a binary SRAM type CAM cell.
- FIG. 3 shows a typical ternary SRAM type CAM cell, referred to as a ternary SCAM cell from this point forward.
- SCAM cell 40 includes two well-known six-transistor SRAM cells 42 and 44 , and a pair of search and compare stacks. Since both SRAM cells 42 and 44 are identical to each other, the following description of SRAM cell 42 will apply to SRAM cell 44 .
- SRAM cell 42 includes a first access transistor 46 and a second access transistor 48 for coupling bitlines BLP and BLPb respectively, to the complementary nodes of cross coupled inverters 50 and 52 in response to an active WL signal.
- the first search and compare stack associated with SCAM cell 42 includes compare transistor 54 and search transistor 56 serially connected between the matchline ML and the tail-line TL.
- the gate terminal of compare transistor 54 is connected to a node of SRAM cell 42 while the gate terminal of search transistor 56 is connected to searchline SLb.
- Tail-line TL is typically coupled to a ground, or VSS power supply.
- the second search and compare stack associated with SRAM cell 44 includes compare transistor 58 and search transistor 60 serially connected between the matchline ML and the tail-line TL.
- the gate terminal of compare transistor 58 is connected to a node of SRAM cell 44 while the gate terminal of search transistor 60 is connected to searchline SL.
- SCAM cell 40 includes a total of 16 transistors and stores encoded ternary data. Together, the two SRAM cells of SCAM cell 40 can store a ternary value representing logic “1”, logic “0”, or “don't care”. Table 1 below shows an example of the ternary data encoding. Persons of skill in the art should understand that SCAM cell 40 can be implemented with n-channel transistors as shown in FIG. 3 , and/or p-channel transistors. TABLE 1 SRAM SRAM Ternary Value Cell 42 Cell 44 0 0 1 1 1 1 0 “Don't Care” 0 0
- FIG. 4 shows an alternate type of ternary SCAM cell similar to the one shown in FIG. 3 .
- the presently shown ternary SCAM cell stores one bit of data and one mask bit of data to block the search and compare results from affecting the matchline ML.
- SCAM cell 70 includes the previously described SRAM cells 42 and 44 , and the search and compare stacks consisting of transistors 54 , 56 , 58 and 60 . However, this SCAM cell 70 includes an additional mask transistor 72 , and the gate terminal of compare transistor 58 is now connected to a storage node of SRAM cell 42 that is complementary to the storage node connected to the gate of compare transistor 54 .
- SCAM cell 70 consists of 17 transistors, implemented in n-channel and/or p-channel technology. SCAM cell 70 essentially functions as a searchable binary CAM cell with masking capability. More specifically, the comparison circuit is enabled if the mask bit stores a logic “0” and the comparison circuit is disabled if the mask bit stores a logic “1”.
- a typical binary SCAM cell can be used.
- FIG. 5 is a circuit schematic of a typical binary SCAM cell.
- Binary SCAM cell 80 uses the same SRAM cell 42 and search and compare stacks as seen in the previous ternary SCAM cell schematics, and includes a total of 10 transistors which can be implemented in n-channel and/or p-channel technology. Clearly, the absence of the second SRAM cell 44 and mask transistor 72 makes binary SCAM cell 80 smaller than previously shown ternary SCAM cells 40 and 70 .
- binary based CAM has found wide use in networking applications where data packets are transferred through the network according to the data in the header portion of the data packet. More specifically, network data packet routing and switching operations involve matching the header portion of the data packet with predetermined comparand data. While binary CAM can be used to match header data, it is limited to searching for exact matches between the comparand data and the header data having the same bit length headers. Therefore, binary CAM is not practical for use in systems that receive data packets having variable bit length headers.
- the additional “don't care” state provided by ternary CAM permits partial match searches to be executed as the irrelevant bit positions can be set to the “don't care” state such that no comparison to the corresponding bit of comparand data occurs. This capability is useful in modern network longest prefix matching operations, where only leading bits of the header portion are relevant for routing and switching.
- ternary CAM chips are available in a 9M-bit density, meaning that the chip has approximately 9 million ternary CAM cells in its memory array arranged in rows and columns.
- a typical data packet can include a word of 144 bits stored by 144 ternary CAM cells in a row, or multiple 144-bit words stored in consecutive rows memory cells.
- the CAM chip can be used as a universal device for accommodating any data packet format because any number of ternary CAM cells can be reserved for header data.
- ternary CAM cells can be dynamically configurable as binary CAM cells, such that the second data bit storage location of the ternary CAM cell can be used for storing another bit of data. Accordingly, the storage density of the CAM device memory array is effectively doubled. Unfortunately, such schemes require relatively complex CAM cell configurations which will further increase the size of the ternary CAM device memory array, and circuit overhead for controlling the operating mode of the configurable memory cells.
- the present invention provides a hybrid content addressable memory array.
- the hybrid content addressable memory array includes a first memory portion having a first type of content addressable memory cells arranged in rows and columns, and a second memory portion having a second type of content addressable memory cells arranged in rows and columns, where the second type of content addressable memory cells being electrically coupled to the first type of content addressable memory cells.
- the first memory portion and the second memory portion include matchlines, where each matchline of the first memory portion is coupled to the first type of content addressable memory cells, and each matchline of the second memory portion is coupled to the second type of content addressable memory cells.
- the first type of content addressable memory cells include ternary content addressable memory cells and the second type of content addressable memory cells include binary content addressable memory cells, and the matchlines of the first memory portion and the matchlines of the second memory portion are interleaved with each other.
- the first type of content addressable memory cells can include binary content addressable memory cells
- the second type of content addressable memory cells can include ternary content addressable memory cells
- the first and the second type of content addressable memory cells include SRAM based binary content addressable memory cells and SRAM based ternary content addressable memory cells
- at least one of the first and the second type of content addressable memory cells include configurable ternary-binary content addressable memory cells.
- the first type of content addressable memory cells and the second type of content addressable memory cells of a row are coupled to a logical matchline, where the logical matchline can include a segmented matchline having a first matchline segment and a second matchline segnent.
- the first type of content addressable memory cells can be coupled to the first matchline segment and the second type of content addressable memory cells can be coupled to the second matchline segment.
- the first type of content addressable memory cells and the second type of content addressable memory cells of a column can be coupled to common searchlines.
- the present invention provides a hybrid content addressable memory array having a first type of content addressable memory cells coupled to a logical matchline, and a second type of content addressable memory cells coupled to the logical matchline.
- the first type of content addressable memory cells can include binary content addressable memory cells and the second type of content addressable memory cells can include ternary content addressable memory cells, where the content addressable memory cells can be SRAM based.
- the logical matchline includes a segmented matchline having at least two matchline segments, where the first type of content addressable memory cells are coupled to one of the at least two matchline segments and the second type of content addressable memory cells are coupled to the other of the at least two matchline segments.
- the present invention provides a hybrid content addressable memory array having a first type of content addressable memory cells coupled to common searchlines, and a second type of content addressable memory cells coupled to the common searchlines.
- the first type of content addressable memory cells can include binary content addressable memory cells and the second type of content addressable memory cells can include ternary content addressable memory cells, where the content addressable memory cells can be SRAM based.
- FIG. 1 is a block diagram of a typical DRAM based CAM chip
- FIG. 2 is a circuit schematic of the memory array of FIG. 1 ;
- FIG. 3 is a circuit schematic of an SRAM based ternary CAM cell
- FIG. 4 is a circuit schematic of an alternate SRAM based ternary CAM cell
- FIG. 5 is a circuit schematic of an SRAM based binary CAM cell
- FIG. 6 is a hybrid CAM device memory array architecture according to an embodiment of the present invention.
- FIG. 7 is a circuit schematic of the hybrid CAM device memory array of FIG. 6 ;
- FIG. 8 is a hybrid CAM device memory array architecture according to another embodiment of the present invention.
- FIG. 9 is a circuit schematic of the hybrid CAM device memory array of FIG. 8 .
- FIG. 10 is a schematic of a DRAM based ternary CAM cell.
- the present invention provides a content addressable memory array architecture that optimizes storage of binary-only and ternary data without additional circuit overhead. Furthermore, the embodiments of the present invention benefit from reduced power consumption and improved performance as a result of the optimized storage scheme for binary-only and ternary data.
- header fields of data packets must not exceed a predetermined number of bits in length, where each bit position of the header field must be able to store one of three states.
- the three states in the CAM context include logic “1”, logic “0” and “don't care” states.
- Other fields of the data packets, such as the data portion are simply restricted to binary values.
- most CAM devices use only ternary CAM cells, an in particular ternary SCAM cells, significant silicon area can be saved if ternary CAM cells used only for binary storage can be replaced with smaller binary CAM cells.
- a CAM device memory array is subdivided into at least two different portions, where each portion uses only one particular type of CAM cell, and each portion is dedicated to storing a particular type of data.
- FIG. 6 is a schematic illustrating a CAM device memory array 100 according to a first embodiment of the present invention that stores each word of data in two different types of CAM cells.
- CAM device memory array 100 is subdivided into a binary CAM cell section 102 and a ternary CAM cell section 104 , where the CAM cells are disposed in rows and columns, where each row of CAM cells forms a word of data.
- each wordline and matchline is coupled to CAM cells in the binary section 102 and CAM cells in the ternary section 104 .
- ternary section 104 stores bit positions D 0 to D 71 of each word
- binary section 102 stores bit positions D 72 to D 143 of each word.
- each section is not limited to the configuration shown in FIG. 6 . Therefore, since half of the CAM device memory array 100 consists of binary CAM cells, such as binary SCAM cells, the overall memory array size is significantly reduced over an equivalent density memory array consisting exclusively of ternary SCAM cells. Although CAM device memory array 100 is 144 bits wide and 64K rows long, a memory array of any dimension can be partitioned into a binary section and ternary section according to the embodiment of the present invention.
- FIG. 7 is a schematic showing the details of the CAM device memory array 100 illustrated in FIG. 6 .
- Matchlines ML 0 to MLn extend horizontally between the binary section 102 and the ternary section 104 , and are each coupled to a matchline sense circuit 106 for sensing a respective voltage level during a search and compare operation.
- the content addressable memory cells of binary section 102 and ternary section 104 are electrically coupled to each other via the common matchlines.
- Wordlines and tail lines are not shown to simplify the schematic, but those of skll in the art will understand that they are required for proper operation.
- Each matchline sense circuit 106 provides a matchline output ML_OUT representing a match or mismatch condition of its corresponding matchline.
- Each matchline is coupled to binary CAM cells 90 in binary section 102 and ternary CAM cells 92 in ternary section 104 .
- binary CAM cell 90 can be implemented with the circuit configuration of binary SCAM cell 80 and ternary CAM cell 92 can be implemented with the circuit configuration of either ternary SCAM cells 40 or 70 shown in FIGS. 3 and 4 respectively.
- binary CAM cells 90 in binary section 102 minimizes silicon area consumption since each binary CAM cell 90 uses fewer transistors than each ternary CAM cell 92 Therefore, CAM device memory array 100 maximizes silicon area efficiency because smaller sized binary CAM cells are used to store data that will only be binary in format.
- binary CAM cells 90 can have a layout optimized to minimize column pitch. Hence silicon area along the row direction can be further conserved.
- FIGS. 6 and 7 partitions the CAM device memory array by columns
- the memory array can be partitioned by rows according to an alternate embodiment of the present invention.
- FIG. 8 is a schematic illustrating a CAM device memory array 110 according to a second embodiment of the present invention, with the memory array partitioned into different portions by rows. It is noted that for the purposes of illustrating the present embodiment, CAM device memory array 110 has the same number of rows and columns as CAM device memory array 100 shown in FIG. 6 . In the presently described embodiment, CAM device memory array 110 is subdivided into a ternary CAM cell section 112 and a binary CAM cell section 114 , where the CAM cells are disposed in rows and columns, where each row of CAM cells forms a word of data. As shown in FIG. 8 , ternary CAM cell section 112 occupies 16K rows while binary CAM cell section 114 occupies 48K rows. As will be shown in FIG. 9 , each row includes the same type of CAM cell.
- FIG. 9 is a schematic showing the details of the CAM device memory array 110 illustrated in FIG. 8 .
- Matchlines ML 0 and ML 1 are part of the ternary CAM section 114 , and are each coupled to ternary CAM cells 92 and a respective matchline sense circuit 116 .
- Each matchline sense circuit 116 is analogous to matchline sense circuit 106 of FIG. 7 , therefore further description of its operation is not necessary.
- Matchlines MLn- 1 and MLn are part of the binary CAM section 112 and are each coupled to binary CAM cells 90 and a respective matchline sense circuit 116 .
- wordlines and tail lines are not shown to simplify the schematic, and the same binary CAM cells 90 and ternary CAM cells 92 can be used.
- each pair of complementary searchlines and bitlines extend vertically between both the binary CAM section 112 and the ternary CAM section 114 such that the ternary CAM cells 92 and binary CAM cells 90 coupled to the same bitline and searchline form one column of CAM cells. Therefore, the content addressable memory cells of binary section 112 and ternary section 114 are electrically coupled to each other via the common bitlines and searchlines.
- ternary CAM cells 92 and binary CAM cells 90 coupled to SL 0 b and BL 0 are part of the same column of CAM cells.
- binary CAM cells 90 have been optimized in layout to minimize its footprint along the bitline direction, hence the overall area occupied by CAM device memory array 110 can be minimized along the bitline direction since the pitch of each row of binary CAM cells 90 in the binary CAM section 112 can be made smaller than the pitch of each row of ternary CAM cells 92 in ternary CAM section 114 . Therefore, an advantage resulting from the reduced bitline and searchline length is the reduced corresponding capacitance. Therefore, bitline and searchline drive circuit performance can be improved while reducing overall power consumption.
- the memory array can be partitioned into any number of memory portions to suit the particular application.
- each CAM cell 90 / 92 compares its stored data against the searchline data to affect the matchline if a mismatch condition exists.
- the system may execute a search for binary data stored only in binary section 112 , or for ternary data stored in ternary section 114 .
- searchlines are coupled to both the binary section 112 and ternary section 114 , the system will have knowledge of those physical rows in each section. More specifically, the results provided by the matchline sense circuits 116 corresponding to results that are undesired can be masked out. For example, this can be done by disabling the matchline sense circuits 116 that correspond to either the binary section 112 during a ternary data search, or the ternary section 114 during a binary data search.
- the CAM device memory array 100 can have segmented matchlines, where each matchline segment of the same row is coupled to different types of CAM cells. Accordingly, each matchline segment of the same row belong to the same logical matchline.
- Matchline segmentation is disclosed and taught in commonly owned U.S. Pat. No. 6,584,003, the contents of which are incorporated herein by reference, as a technique to reduce power consumption in a CAM device memory array.
- a first matchline segment of a row of CAM cells can be coupled only to binary CAM cells 90
- a second matchline segment of the row of CAM cells can be coupled only to ternary CAM cells 92 .
- each matchline segment can be coupled to groups of binary CAM cells 90 and ternary CAM cells 92 .
- each row can be configured to include any number of matchline segments.
- CAM device memory array 100 can include several CAM memory cell sections interleaved with each other, where each section can include any number of rows or columns of CAM memory cells.
- the CAM device memory array 100 can be seen as including two logical CAM memory cell blocks having rows or columns, or small groups of rows or columns, interleaved with other.
- An alternate embodiment where one or more ternary rows of CAM memory cells is interleaved with one or more binary rows of CAM memory cells can be used in very wide word applications where a word spans more than one physical row of CAM memory cells.
- each row of ternary CAM cells can be followed by three rows of binary CAM cells.
- the ternary section 104 can include another section of cells, consisting of columns of configurable ternary-binary CAM cells adjacent to the binary section 102 so that the width of ternary section 104 can be dynamically configurable.
- the entire ternary section 104 can consist of configurable ternary-binary CAM cells. Examples of configurable ternary-binary CAM cells are shown in U.S. Pat. Nos. 6,108,227 and 6,362,992. Persons of skill in the art will understand how to incorporate such cells into the embodiments of the present invention. Therefore, significant silicon area savings can be realized by employing the previously described embodiments of the present invention.
- ternary CAM cell sections of the CAM device memory array include ternary SCAM cells while binary CAM cell sections include binary SCAM cells, to maximize silicon area savings.
- binary and ternary SCAM cells are preferably used in the binary and ternary sections of the CAM device memory array
- DRAM based binary and ternary CAM cells referred to as a ternary or binary DCAM cells from this point forward, can be used instead.
- FIG. 10 shows a typical ternary DCAM cell 200 as described in Canadian Patent Application No. 2,266,062, filed Mar. 31, 1999, the contents of which are incorporated herein by reference.
- DCAM cell 200 has a comparison circuit that includes an n-channel search transistor 202 connected in series with an n-channel compare transistor 204 between a matchline ML and a tail line TL.
- a search line SL is connected to the gate of search transistor 202 .
- the storage circuit includes an n-channel access transistor 206 having a gate connected to a wordline WL and connected in series with capacitor 208 between bitline BL and a cell plate voltage potential VCP.
- Charge storage node CELL 1 is connected to the gate of compare transistor 204 to turn on transistor 204 if there is charge stored on capacitor 208 i.e. if CELL 1 is logic “1”.
- the remaining transistors and capacitor replicate transistors 202 , 204 , 206 and capacitor 208 for the other half of the ternary data bit, and are connected to corresponding lines SLb and BLb and are provided to support ternary data storage. Further description of the ternary DCAM cell 200 is detailed in the aforementioned reference. It is noted that a binary DCAM version of the ternary DCAM cell 200 is identical to ternary DCAM cell 200 , since complementary data states of a single bit of data are necessary for executing a binary search and compare operation. Therefore, ternary DCAM cell 200 can store either binary or ternary data.
- CAM device memory arrays 100 and 110 can include ternary and binary DCAM cells in their binary and ternary sections respectively. More specifically, DCAM cells 200 in the ternary section stores ternary data while DCAM cells 200 in the binary section stores binary data. Control logic therefore determines the particular columns of DCAM cells 200 that should have binary data or ternary data written to them. The control logic also determines the appropriate type of search, ie. binary or ternary search, to be applied to specific columns.
Abstract
Description
- The present invention relates generally to content addressable memories. More particularly, the present invention relates to content addressable memory array architectures.
- An associative memory system called Content Addressable Memory (CAM) has been developed to permit its memory cells to be referenced by their contents. Thus CAM has found use in lookup table implementations such as cache memory subsystems and is now rapidly finding use in networking system applications such as network address translation, pattern recognition, and data compression. CAM's most valuable feature is its ability to perform a search and compare of multiple locations as a single operation, in which search data is compared with data stored within the CAM. Typically search data is loaded onto search lines and compared with stored words in the CAM. During a search-and-compare operation, a match or mismatch signal associated with each stored word is generated on a matchline, indicating whether the search word matches a stored word or not.
- A CAM stores data in a matrix of cells, which are typically SRAM based cells. However, to provide ternary state CAMs, ie. where each CAM cell can store one of three values: a logic “0”, “1” or “don't care” result, ternary SRAM based cells require two binary SRAM cells.
- A typical CAM block diagram is shown in
FIG. 1 . TheCAM 10 includes a matrix, orCAM memory array 25, of CAM cells (not shown) arranged in rows and columns. A predetermined number of CAM cells in a row store a word of data. Anaddress decoder 17 is used to select any row within theCAM array 25 to allow data to be written into or read out of the selected row. Data access circuitry such as bitlines and column selection devices, are located within thearray 25 to transfer data into and out of thearray 25. Located withinCAM array 25 for each row of CAM cells are matchline sense circuits, which are not shown, and are used during search-and-compare operations for outputting a result indicating a successful or unsuccessful match of a search word against the stored word in the row. The results for all rows are processed by thepriority encoder 22 to output the address (Match Address) corresponding to the location of a matched word. The match address is stored inmatch address registers 18 before being output by the matchaddress output block 19. Data is written intoarray 25 through the data I/O block 11 and thevarious data registers 15. Data is read out from thearray 25 through the data output register 23 and the data I/O block 11 Other components of the CAM include thecontrol circuit block 12, theflag logic block 13 the voltagesupply generation block 14, various control andaddress registers 16, andJTAG block 21. -
FIG. 2 depicts a hierarchical view of thetypical CAM array 25.CAM array 25 includes a matrix ofCAM cells 30 and a matchline sense circuit block 26.CAM cells 30 of theCAM array 25 are arranged in rows and columns.CAM cells 30 of a row are connected to a common matchline MLi, andCAM cells 30 of a column are connected to a common pair of search lines SLjb/SLj and a common pair of bitlines BLj/BLjb, where i is an integer value between 0 and n, and j is an integer value between 0 and m. While not shown to simplify the schematic, each row ofCAM cells 30 is connected to a wordline, and those of skill in the art will understand that wordlines are required to ensure operability of theCAM cells 30. Located adjacent to theCAM array 25 for each row is matchline sense circut block 26. Matchline sense circuit block 26 includes onematchline sense circuit 27 connected to a respective matchline MLi, and is used during search-and-compare operations for outputting match signals ML_OUT0-ML_OUTn which indicate a successful or unsuccessful match of a search word against the stored word. Although not shown in the simplified schematic ofFIG. 2 , thematchline sense circuits 27 also receive control signals to control their operation, and a person skilled in the art would understand that such control signals to be necessary for their proper operation of the circuit. While the bitlines are connected to well known bitline circuits, the searchlines in aCAM device 10 are connected to searchline drivers (not shown), such as those disclosed in commonly owned U.S. Pat. No. 6,522,596. -
FIGS. 3 through 5 show circuit schematics of the types ofCAM cells 30 that can be used in theCAM array 25 ofFIG. 2 .FIG. 3 shows a typical ternary data SRAM type CAM cell,FIG. 4 shows an alternate ternary SRAM type CAM cell, andFIG. 5 shows a binary SRAM type CAM cell. -
FIG. 3 shows a typical ternary SRAM type CAM cell, referred to as a ternary SCAM cell from this point forward.SCAM cell 40 includes two well-known six-transistor SRAM cells SRAM cells SRAM cell 42 will apply toSRAM cell 44.SRAM cell 42 includes afirst access transistor 46 and asecond access transistor 48 for coupling bitlines BLP and BLPb respectively, to the complementary nodes of cross coupledinverters SCAM cell 42 includes comparetransistor 54 andsearch transistor 56 serially connected between the matchline ML and the tail-line TL. The gate terminal ofcompare transistor 54 is connected to a node ofSRAM cell 42 while the gate terminal ofsearch transistor 56 is connected to searchline SLb. Tail-line TL is typically coupled to a ground, or VSS power supply. The second search and compare stack associated withSRAM cell 44 includes comparetransistor 58 andsearch transistor 60 serially connected between the matchline ML and the tail-line TL. The gate terminal ofcompare transistor 58 is connected to a node ofSRAM cell 44 while the gate terminal ofsearch transistor 60 is connected to searchline SL. -
SCAM cell 40 includes a total of 16 transistors and stores encoded ternary data. Together, the two SRAM cells ofSCAM cell 40 can store a ternary value representing logic “1”, logic “0”, or “don't care”. Table 1 below shows an example of the ternary data encoding. Persons of skill in the art should understand thatSCAM cell 40 can be implemented with n-channel transistors as shown inFIG. 3 , and/or p-channel transistors.TABLE 1 SRAM SRAM Ternary Value Cell 42 Cell 440 0 1 1 1 0 “Don't Care” 0 0 -
FIG. 4 shows an alternate type of ternary SCAM cell similar to the one shown inFIG. 3 . The presently shown ternary SCAM cell stores one bit of data and one mask bit of data to block the search and compare results from affecting the matchline ML.SCAM cell 70 includes the previously describedSRAM cells transistors SCAM cell 70 includes anadditional mask transistor 72, and the gate terminal ofcompare transistor 58 is now connected to a storage node ofSRAM cell 42 that is complementary to the storage node connected to the gate ofcompare transistor 54.Mask transistor 72 is connected between the source terminals ofsearch transistors SRAM cell 44 Accordingly,SCAM cell 70 consists of 17 transistors, implemented in n-channel and/or p-channel technology.SCAM cell 70 essentially functions as a searchable binary CAM cell with masking capability. More specifically, the comparison circuit is enabled if the mask bit stores a logic “0” and the comparison circuit is disabled if the mask bit stores a logic “1”. - In applications where the mask bit is unnecessary, or where the data to be stored is only binary in nature, a typical binary SCAM cell can be used.
-
FIG. 5 is a circuit schematic of a typical binary SCAM cell.Binary SCAM cell 80 uses thesame SRAM cell 42 and search and compare stacks as seen in the previous ternary SCAM cell schematics, and includes a total of 10 transistors which can be implemented in n-channel and/or p-channel technology. Clearly, the absence of thesecond SRAM cell 44 andmask transistor 72 makesbinary SCAM cell 80 smaller than previously shownternary SCAM cells - As previously mentioned, binary based CAM, and in particular binary SCAM, has found wide use in networking applications where data packets are transferred through the network according to the data in the header portion of the data packet. More specifically, network data packet routing and switching operations involve matching the header portion of the data packet with predetermined comparand data. While binary CAM can be used to match header data, it is limited to searching for exact matches between the comparand data and the header data having the same bit length headers. Therefore, binary CAM is not practical for use in systems that receive data packets having variable bit length headers.
- However, the additional “don't care” state provided by ternary CAM permits partial match searches to be executed as the irrelevant bit positions can be set to the “don't care” state such that no comparison to the corresponding bit of comparand data occurs. This capability is useful in modern network longest prefix matching operations, where only leading bits of the header portion are relevant for routing and switching.
- Present ternary CAM chips are available in a 9M-bit density, meaning that the chip has approximately 9 million ternary CAM cells in its memory array arranged in rows and columns. A typical data packet can include a word of 144 bits stored by 144 ternary CAM cells in a row, or multiple 144-bit words stored in consecutive rows memory cells. With ternary data storage capability in each ternary CAM cell, the CAM chip can be used as a universal device for accommodating any data packet format because any number of ternary CAM cells can be reserved for header data.
- However, it can be observed from progressive standardization of communication protocols and data packet formats that a specific number of bits of each data packet will only ever store binary data. Use of ternary CAM cells for storing only binary data is an inefficient use of silicon area because the unused storage cell of the ternary CAM cell cannot be used to store an unrelated bit of data, and use of ternary search circuits for performing binary searches unnecessarily wastes power.
- Various schemes have been proposed in which ternary CAM cells can be dynamically configurable as binary CAM cells, such that the second data bit storage location of the ternary CAM cell can be used for storing another bit of data. Accordingly, the storage density of the CAM device memory array is effectively doubled. Unfortunately, such schemes require relatively complex CAM cell configurations which will further increase the size of the ternary CAM device memory array, and circuit overhead for controlling the operating mode of the configurable memory cells.
- It is, therefore, desirable to provide a hybrid binary/ternary CAM device memory array that occupies minimal silicon area and consumes less power, while maintaining or improving CAM search and compare performance.
- It is an object of the present invention to obviate or mitigate at least one disadvantage of previous CAM device memory array architectures. In particular, it is an object of the present invention to minimize the size of the CAM device memory array that can efficiently store both binary and ternary data.
- In a first aspect, the present invention provides a hybrid content addressable memory array. The hybrid content addressable memory array includes a first memory portion having a first type of content addressable memory cells arranged in rows and columns, and a second memory portion having a second type of content addressable memory cells arranged in rows and columns, where the second type of content addressable memory cells being electrically coupled to the first type of content addressable memory cells.
- In an embodiment of the first aspect, the first memory portion and the second memory portion include matchlines, where each matchline of the first memory portion is coupled to the first type of content addressable memory cells, and each matchline of the second memory portion is coupled to the second type of content addressable memory cells. According to an aspect of the present embodiment, the first type of content addressable memory cells include ternary content addressable memory cells and the second type of content addressable memory cells include binary content addressable memory cells, and the matchlines of the first memory portion and the matchlines of the second memory portion are interleaved with each other.
- According to further embodiments of the first aspect,the first type of content addressable memory cells can include binary content addressable memory cells, the second type of content addressable memory cells can include ternary content addressable memory cells, the first and the second type of content addressable memory cells include SRAM based binary content addressable memory cells and SRAM based ternary content addressable memory cells, and at least one of the first and the second type of content addressable memory cells include configurable ternary-binary content addressable memory cells.
- According to another embodiment of the first aspect, the first type of content addressable memory cells and the second type of content addressable memory cells of a row are coupled to a logical matchline, where the logical matchline can include a segmented matchline having a first matchline segment and a second matchline segnent. The first type of content addressable memory cells can be coupled to the first matchline segment and the second type of content addressable memory cells can be coupled to the second matchline segment. Alternatively, the first type of content addressable memory cells and the second type of content addressable memory cells of a column can be coupled to common searchlines.
- In a second aspect, the present invention provides a hybrid content addressable memory array having a first type of content addressable memory cells coupled to a logical matchline, and a second type of content addressable memory cells coupled to the logical matchline. The first type of content addressable memory cells can include binary content addressable memory cells and the second type of content addressable memory cells can include ternary content addressable memory cells, where the content addressable memory cells can be SRAM based.
- According to an embodiment of the present aspect, the logical matchline includes a segmented matchline having at least two matchline segments, where the first type of content addressable memory cells are coupled to one of the at least two matchline segments and the second type of content addressable memory cells are coupled to the other of the at least two matchline segments.
- In a third aspect, the present invention provides a hybrid content addressable memory array having a first type of content addressable memory cells coupled to common searchlines, and a second type of content addressable memory cells coupled to the common searchlines. The first type of content addressable memory cells can include binary content addressable memory cells and the second type of content addressable memory cells can include ternary content addressable memory cells, where the content addressable memory cells can be SRAM based.
- Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
- Embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:
-
FIG. 1 is a block diagram of a typical DRAM based CAM chip; -
FIG. 2 is a circuit schematic of the memory array ofFIG. 1 ; -
FIG. 3 is a circuit schematic of an SRAM based ternary CAM cell; -
FIG. 4 is a circuit schematic of an alternate SRAM based ternary CAM cell; -
FIG. 5 is a circuit schematic of an SRAM based binary CAM cell; -
FIG. 6 is a hybrid CAM device memory array architecture according to an embodiment of the present invention; -
FIG. 7 is a circuit schematic of the hybrid CAM device memory array ofFIG. 6 ; -
FIG. 8 is a hybrid CAM device memory array architecture according to another embodiment of the present invention; and, -
FIG. 9 is a circuit schematic of the hybrid CAM device memory array ofFIG. 8 , and, -
FIG. 10 is a schematic of a DRAM based ternary CAM cell. - Generally, the present invention provides a content addressable memory array architecture that optimizes storage of binary-only and ternary data without additional circuit overhead. Furthermore, the embodiments of the present invention benefit from reduced power consumption and improved performance as a result of the optimized storage scheme for binary-only and ternary data.
- As standardization of formats for network data packets develop, specific fields of the data packets can become constrained by rules of the standard. For example, header fields of data packets must not exceed a predetermined number of bits in length, where each bit position of the header field must be able to store one of three states. As previously mentioned, the three states in the CAM context include logic “1”, logic “0” and “don't care” states. Other fields of the data packets, such as the data portion, are simply restricted to binary values. As most CAM devices use only ternary CAM cells, an in particular ternary SCAM cells, significant silicon area can be saved if ternary CAM cells used only for binary storage can be replaced with smaller binary CAM cells.
- According to the embodiments of the present invention, a CAM device memory array is subdivided into at least two different portions, where each portion uses only one particular type of CAM cell, and each portion is dedicated to storing a particular type of data.
-
FIG. 6 is a schematic illustrating a CAMdevice memory array 100 according to a first embodiment of the present invention that stores each word of data in two different types of CAM cells. In the presently described embodiment, CAMdevice memory array 100 is subdivided into a binaryCAM cell section 102 and a ternaryCAM cell section 104, where the CAM cells are disposed in rows and columns, where each row of CAM cells forms a word of data. Hence, each wordline and matchline is coupled to CAM cells in thebinary section 102 and CAM cells in theternary section 104. In this particular example,ternary section 104 stores bit positions D0 to D71 of each word, andbinary section 102 stores bit positions D72 to D143 of each word. However, the bit length of each section is not limited to the configuration shown inFIG. 6 . Therefore, since half of the CAMdevice memory array 100 consists of binary CAM cells, such as binary SCAM cells, the overall memory array size is significantly reduced over an equivalent density memory array consisting exclusively of ternary SCAM cells. Although CAMdevice memory array 100 is 144 bits wide and 64K rows long, a memory array of any dimension can be partitioned into a binary section and ternary section according to the embodiment of the present invention. -
FIG. 7 is a schematic showing the details of the CAMdevice memory array 100 illustrated inFIG. 6 . Matchlines ML0 to MLn extend horizontally between thebinary section 102 and theternary section 104, and are each coupled to amatchline sense circuit 106 for sensing a respective voltage level during a search and compare operation. As shown inFIG. 7 , the content addressable memory cells ofbinary section 102 andternary section 104 are electrically coupled to each other via the common matchlines. Wordlines and tail lines are not shown to simplify the schematic, but those of skll in the art will understand that they are required for proper operation. Eachmatchline sense circuit 106 provides a matchline output ML_OUT representing a match or mismatch condition of its corresponding matchline. Each matchline is coupled tobinary CAM cells 90 inbinary section 102 andternary CAM cells 92 internary section 104. It is noted thatbinary CAM cell 90 can be implemented with the circuit configuration ofbinary SCAM cell 80 andternary CAM cell 92 can be implemented with the circuit configuration of eitherternary SCAM cells FIGS. 3 and 4 respectively. It should be apparent to those of skill in the art thatbinary CAM cells 90 inbinary section 102 minimizes silicon area consumption since eachbinary CAM cell 90 uses fewer transistors than eachternary CAM cell 92 Therefore, CAMdevice memory array 100 maximizes silicon area efficiency because smaller sized binary CAM cells are used to store data that will only be binary in format. It is noted thatbinary CAM cells 90 can have a layout optimized to minimize column pitch. Hence silicon area along the row direction can be further conserved. - Advantages of the present embodiment are as follows. The reduced row length of each matchline translates into reduced capacitance thereof. Therefore, the performance of each matchline is enhanced while overall power consumption is reduced.
- While the embodiments of the present invention shown in
FIGS. 6 and 7 partitions the CAM device memory array by columns, the memory array can be partitioned by rows according to an alternate embodiment of the present invention. -
FIG. 8 is a schematic illustrating a CAMdevice memory array 110 according to a second embodiment of the present invention, with the memory array partitioned into different portions by rows. It is noted that for the purposes of illustrating the present embodiment, CAMdevice memory array 110 has the same number of rows and columns as CAMdevice memory array 100 shown inFIG. 6 . In the presently described embodiment, CAMdevice memory array 110 is subdivided into a ternaryCAM cell section 112 and a binaryCAM cell section 114, where the CAM cells are disposed in rows and columns, where each row of CAM cells forms a word of data. As shown inFIG. 8 , ternaryCAM cell section 112 occupies 16K rows while binaryCAM cell section 114 occupies 48K rows. As will be shown inFIG. 9 , each row includes the same type of CAM cell. -
FIG. 9 is a schematic showing the details of the CAMdevice memory array 110 illustrated inFIG. 8 . Matchlines ML0 and ML1 are part of theternary CAM section 114, and are each coupled toternary CAM cells 92 and a respectivematchline sense circuit 116. Eachmatchline sense circuit 116 is analogous to matchlinesense circuit 106 ofFIG. 7 , therefore further description of its operation is not necessary. Matchlines MLn-1 and MLn are part of thebinary CAM section 112 and are each coupled tobinary CAM cells 90 and a respectivematchline sense circuit 116. As inFIG. 7 , wordlines and tail lines are not shown to simplify the schematic, and the samebinary CAM cells 90 andternary CAM cells 92 can be used. It is noted that each pair of complementary searchlines and bitlines extend vertically between both thebinary CAM section 112 and theternary CAM section 114 such that theternary CAM cells 92 andbinary CAM cells 90 coupled to the same bitline and searchline form one column of CAM cells. Therefore, the content addressable memory cells ofbinary section 112 andternary section 114 are electrically coupled to each other via the common bitlines and searchlines. For example,ternary CAM cells 92 andbinary CAM cells 90 coupled to SL0b and BL0 are part of the same column of CAM cells. In this particular embodiment,binary CAM cells 90 have been optimized in layout to minimize its footprint along the bitline direction, hence the overall area occupied by CAMdevice memory array 110 can be minimized along the bitline direction since the pitch of each row ofbinary CAM cells 90 in thebinary CAM section 112 can be made smaller than the pitch of each row ofternary CAM cells 92 internary CAM section 114. Therefore, an advantage resulting from the reduced bitline and searchline length is the reduced corresponding capacitance. Therefore, bitline and searchline drive circuit performance can be improved while reducing overall power consumption. - While the embodiments of the present invention have shown the CAM device memory array partitioned into two memory portions, the memory array can be partitioned into any number of memory portions to suit the particular application.
- The operation of CAM
device memory arrays CAM array 25. More specifically, once search data has been driven onto the searchlines, eachCAM cell 90/92 compares its stored data against the searchline data to affect the matchline if a mismatch condition exists. - In the embodiment of the invention shown in
FIG. 9 , the system may execute a search for binary data stored only inbinary section 112, or for ternary data stored internary section 114. Although the searchlines are coupled to both thebinary section 112 andternary section 114, the system will have knowledge of those physical rows in each section. More specifically, the results provided by thematchline sense circuits 116 corresponding to results that are undesired can be masked out. For example, this can be done by disabling thematchline sense circuits 116 that correspond to either thebinary section 112 during a ternary data search, or theternary section 114 during a binary data search. - According to another embodiment of the present invention, the CAM
device memory array 100 can have segmented matchlines, where each matchline segment of the same row is coupled to different types of CAM cells. Accordingly, each matchline segment of the same row belong to the same logical matchline. Matchline segmentation is disclosed and taught in commonly owned U.S. Pat. No. 6,584,003, the contents of which are incorporated herein by reference, as a technique to reduce power consumption in a CAM device memory array. For example, a first matchline segment of a row of CAM cells can be coupled only tobinary CAM cells 90, and a second matchline segment of the row of CAM cells can be coupled only toternary CAM cells 92. Alternatively, each matchline segment can be coupled to groups ofbinary CAM cells 90 andternary CAM cells 92. Those of skill in the art will appreciate that each row can be configured to include any number of matchline segments. - While the previous embodiments of the present invention shown in
FIGS. 7 and 9 show the CAMdevice memory array 100 as having two different CAM memory cell sections, additional CAM memory cell sections can be included. For example, CAMdevice memory array 100 can include several CAM memory cell sections interleaved with each other, where each section can include any number of rows or columns of CAM memory cells. Hence, the CAMdevice memory array 100 can be seen as including two logical CAM memory cell blocks having rows or columns, or small groups of rows or columns, interleaved with other. - An alternate embodiment where one or more ternary rows of CAM memory cells is interleaved with one or more binary rows of CAM memory cells can be used in very wide word applications where a word spans more than one physical row of CAM memory cells. In one such an embodiment, each row of ternary CAM cells can be followed by three rows of binary CAM cells. Descriptions of wide word applications are available in commonly owned U.S. Pat. No. 6,708,250 and commonly owned U.S. patent application Ser. No. 10/357,270.
- In a further alternate embodiment of the invention shown in
FIGS. 6 and 7 , theternary section 104 can include another section of cells, consisting of columns of configurable ternary-binary CAM cells adjacent to thebinary section 102 so that the width ofternary section 104 can be dynamically configurable. Alternatively, the entireternary section 104 can consist of configurable ternary-binary CAM cells. Examples of configurable ternary-binary CAM cells are shown in U.S. Pat. Nos. 6,108,227 and 6,362,992. Persons of skill in the art will understand how to incorporate such cells into the embodiments of the present invention. Therefore, significant silicon area savings can be realized by employing the previously described embodiments of the present invention. Preferably, ternary CAM cell sections of the CAM device memory array include ternary SCAM cells while binary CAM cell sections include binary SCAM cells, to maximize silicon area savings. - While binary and ternary SCAM cells are preferably used in the binary and ternary sections of the CAM device memory array, DRAM based binary and ternary CAM cells, referred to as a ternary or binary DCAM cells from this point forward, can be used instead.
-
FIG. 10 shows a typicalternary DCAM cell 200 as described in Canadian Patent Application No. 2,266,062, filed Mar. 31, 1999, the contents of which are incorporated herein by reference.DCAM cell 200 has a comparison circuit that includes an n-channel search transistor 202 connected in series with an n-channel comparetransistor 204 between a matchline ML and a tail line TL. A search line SL is connected to the gate ofsearch transistor 202. The storage circuit includes an n-channel access transistor 206 having a gate connected to a wordline WL and connected in series withcapacitor 208 between bitline BL and a cell plate voltage potential VCP. Charge storage node CELL1 is connected to the gate of comparetransistor 204 to turn ontransistor 204 if there is charge stored oncapacitor 208 i.e. if CELL1 is logic “1”. The remaining transistors and capacitor replicatetransistors capacitor 208 for the other half of the ternary data bit, and are connected to corresponding lines SLb and BLb and are provided to support ternary data storage. Further description of theternary DCAM cell 200 is detailed in the aforementioned reference. It is noted that a binary DCAM version of theternary DCAM cell 200 is identical toternary DCAM cell 200, since complementary data states of a single bit of data are necessary for executing a binary search and compare operation. Therefore,ternary DCAM cell 200 can store either binary or ternary data. - Therefore, according to another embodiment of the present invention, CAM
device memory arrays DCAM cells 200 in the ternary section stores ternary data whileDCAM cells 200 in the binary section stores binary data. Control logic therefore determines the particular columns ofDCAM cells 200 that should have binary data or ternary data written to them. The control logic also determines the appropriate type of search, ie. binary or ternary search, to be applied to specific columns. - The above-described embodiments of the present invention are intended to be examples only. Alterations, modifications and variations may be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.
Claims (23)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/809,421 US20050213359A1 (en) | 2004-03-26 | 2004-03-26 | Hybrid content addressable memory |
US12/421,112 US8031502B2 (en) | 2004-03-26 | 2009-04-09 | Hybrid content addressable memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/809,421 US20050213359A1 (en) | 2004-03-26 | 2004-03-26 | Hybrid content addressable memory |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/421,112 Continuation US8031502B2 (en) | 2004-03-26 | 2009-04-09 | Hybrid content addressable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050213359A1 true US20050213359A1 (en) | 2005-09-29 |
Family
ID=34989600
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/809,421 Abandoned US20050213359A1 (en) | 2004-03-26 | 2004-03-26 | Hybrid content addressable memory |
US12/421,112 Expired - Fee Related US8031502B2 (en) | 2004-03-26 | 2009-04-09 | Hybrid content addressable memory |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/421,112 Expired - Fee Related US8031502B2 (en) | 2004-03-26 | 2009-04-09 | Hybrid content addressable memory |
Country Status (1)
Country | Link |
---|---|
US (2) | US20050213359A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7324362B1 (en) * | 2005-03-01 | 2008-01-29 | Netlogic Microsystems Inc. | Content addressable memory cell configurable between multiple modes and method therefor |
US7474546B2 (en) | 2007-04-02 | 2009-01-06 | Sun Microsystems, Inc. | Hybrid dual match line architecture for content addressable memories and other data structures |
US8073005B1 (en) | 2001-12-27 | 2011-12-06 | Cypress Semiconductor Corporation | Method and apparatus for configuring signal lines according to idle codes |
US20130077375A1 (en) * | 2011-09-23 | 2013-03-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout for semiconductor memories |
US9728258B1 (en) * | 2016-10-04 | 2017-08-08 | National Tsing Hua University | Ternary content addressable memory |
US20170249993A1 (en) * | 2016-02-26 | 2017-08-31 | Freescale Semiconductor, Inc. | Memory repair system and method therefor |
US10410691B2 (en) * | 2018-01-10 | 2019-09-10 | Ememory Technology Inc. | Non-volatile memory with a new sensing sequence control method |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7924588B2 (en) * | 2007-12-03 | 2011-04-12 | International Business Machines Corporation | Content addressable memory with concurrent two-dimensional search capability in both row and column directions |
US8117567B2 (en) * | 2007-12-03 | 2012-02-14 | International Business Machines Corporation | Structure for implementing memory array device with built in computation capability |
US20090141530A1 (en) * | 2007-12-03 | 2009-06-04 | International Business Machines Corporation | Structure for implementing enhanced content addressable memory performance capability |
US7751217B2 (en) * | 2008-07-01 | 2010-07-06 | International Business Machines Corporation | Content addressable memory using phase change devices |
US8478574B2 (en) | 2010-04-30 | 2013-07-02 | International Business Machines Corporation | Tracking array data contents across three-valued read and write operations |
US8566764B2 (en) | 2010-04-30 | 2013-10-22 | International Business Machines Corporation | Enhanced analysis of array-based netlists via phase abstraction |
US8181131B2 (en) | 2010-04-30 | 2012-05-15 | International Business Machines Corporation | Enhanced analysis of array-based netlists via reparameterization |
US8146034B2 (en) | 2010-04-30 | 2012-03-27 | International Business Machines Corporation | Efficient Redundancy Identification, Redundancy Removal, and Sequential Equivalence Checking within Designs Including Memory Arrays. |
US8307313B2 (en) | 2010-05-07 | 2012-11-06 | International Business Machines Corporation | Minimizing memory array representations for enhanced synthesis and verification |
US8336016B2 (en) | 2010-05-07 | 2012-12-18 | International Business Machines Corporation | Eliminating, coalescing, or bypassing ports in memory array representations |
US8291359B2 (en) * | 2010-05-07 | 2012-10-16 | International Business Machines Corporation | Array concatenation in an integrated circuit design |
US8874876B2 (en) | 2011-03-22 | 2014-10-28 | Texas Instruments Incorporated | Method and apparatus for packet switching |
WO2013071183A1 (en) * | 2011-11-11 | 2013-05-16 | Tabula, Inc. | Content addressable memory in integrated circuit |
US9001545B2 (en) | 2012-08-31 | 2015-04-07 | Aplus Flash Technology, Inc. | NOR-based BCAM/TCAM cell and array with NAND scalability |
US9286980B2 (en) | 2014-01-10 | 2016-03-15 | Globalfoundries Inc. | Converting an XY TCAM to a value TCAM |
US9306596B2 (en) * | 2014-06-27 | 2016-04-05 | Intel Corporation | Hybrid CAM assisted deflate decompression accelerator |
US9836238B2 (en) | 2015-12-31 | 2017-12-05 | International Business Machines Corporation | Hybrid compression for large history compressors |
US10067705B2 (en) | 2015-12-31 | 2018-09-04 | International Business Machines Corporation | Hybrid compression for large history compressors |
Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US93462A (en) * | 1869-08-10 | Improvement in churns | ||
US5440715A (en) * | 1990-06-27 | 1995-08-08 | Advanced Micro Devices, Inc. | Method and apparatus for expanding the width of a content addressable memory using a continuation bit |
US5471189A (en) * | 1994-12-14 | 1995-11-28 | International Business Machines Corp. | Comparator circuitry and method of operation |
US5841874A (en) * | 1996-08-13 | 1998-11-24 | Motorola, Inc. | Ternary CAM memory architecture and methodology |
US6012131A (en) * | 1996-11-06 | 2000-01-04 | Hyundai Electronics Industries. Co., Ltd. | High speed translation lookaside buffer employing content address memory |
US6108227A (en) * | 1999-07-23 | 2000-08-22 | Lara Technology, Inc. | Content addressable memory having binary and ternary modes of operation |
US6157558A (en) * | 1999-05-21 | 2000-12-05 | Sandisk Corporation | Content addressable memory cell and array architectures having low transistor counts |
US6169685B1 (en) * | 1999-05-17 | 2001-01-02 | Cselt-Centro Studi E Laboratori Telecomuicazioni S.P.A. | Content addressable memories |
US6191970B1 (en) * | 1999-09-09 | 2001-02-20 | Netlogic Microsystems, Inc. | Selective match line discharging in a partitioned content addressable memory array |
US6243280B1 (en) * | 1999-09-09 | 2001-06-05 | Netlogic Microsystems, Inc. | Selective match line pre-charging in a partitioned content addressable memory array |
US6252789B1 (en) * | 2000-06-14 | 2001-06-26 | Netlogic Microsystems, Inc. | Inter-row configurability of content addressable memory |
US20020015348A1 (en) * | 2000-06-30 | 2002-02-07 | Gillingham Peter B. | Searchline control circuit and power reduction method |
US6362992B1 (en) * | 2000-10-06 | 2002-03-26 | Purple Ray, Inc. | Binary-ternary content addressable memory |
US6373739B1 (en) * | 2000-12-06 | 2002-04-16 | Integrated Device Technology, Inc. | Quad CAM cell with minimum cell size |
US6381673B1 (en) * | 1998-07-06 | 2002-04-30 | Netlogic Microsystems, Inc. | Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device |
US20020080638A1 (en) * | 2001-02-07 | 2002-06-27 | Kawasaki Microelectronics, Inc. | Content addressable memory device capable of being used as binary CAM device or as ternary CAM device and structure method therefor |
US6421265B1 (en) * | 2001-03-22 | 2002-07-16 | Integrated Devices Technology, Inc. | DRAM-based CAM cell using 3T or 4T DRAM cells |
US6473846B1 (en) * | 1997-11-14 | 2002-10-29 | Aeroflex Utmc Microelectronic Systems, Inc. | Content addressable memory (CAM) engine |
US6480406B1 (en) * | 2001-08-22 | 2002-11-12 | Cypress Semiconductor Corp. | Content addressable memory cell |
US6499081B1 (en) * | 1999-02-23 | 2002-12-24 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US20030058671A1 (en) * | 2001-09-25 | 2003-03-27 | Lindahl Craig A. | Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating same |
US6584003B1 (en) * | 2001-12-28 | 2003-06-24 | Mosaid Technologies Incorporated | Low power content addressable memory architecture |
US20030123269A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Gillingham | Circuit and method for reducing power usage in a content addressable memory |
US20030137890A1 (en) * | 2001-12-28 | 2003-07-24 | Peter Vlasenko | Matchline sensing for content addressable memories |
US6697276B1 (en) * | 2002-02-01 | 2004-02-24 | Netlogic Microsystems, Inc. | Content addressable memory device |
US6704216B1 (en) * | 2002-08-15 | 2004-03-09 | Integrated Silicon Solution, Inc. | Dual match-line, twin-cell, binary-ternary CAM |
US6708250B2 (en) * | 2001-09-28 | 2004-03-16 | Mosaid Technologies Incorporated | Circuit and method for performing variable width searches in a content addressable memory |
US20050138278A1 (en) * | 2003-12-23 | 2005-06-23 | Aadsen Duane R. | Content addressable memories (CAMs) based on a binary CAM and having at least three states |
US6967856B1 (en) * | 2002-04-10 | 2005-11-22 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4377855A (en) * | 1980-11-06 | 1983-03-22 | National Semiconductor Corporation | Content-addressable memory |
CA2321466C (en) * | 2000-09-29 | 2006-06-06 | Mosaid Technologies Incorporated | Priority encoder circuit and method |
US6839256B1 (en) * | 2002-03-15 | 2005-01-04 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices having dedicated mask cell sub-arrays therein and methods of operating same |
US7136961B2 (en) * | 2002-11-13 | 2006-11-14 | Mosaid Technologies, Inc. | Method and apparatus for wide word deletion in content addressable memories |
-
2004
- 2004-03-26 US US10/809,421 patent/US20050213359A1/en not_active Abandoned
-
2009
- 2009-04-09 US US12/421,112 patent/US8031502B2/en not_active Expired - Fee Related
Patent Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US93462A (en) * | 1869-08-10 | Improvement in churns | ||
US5440715A (en) * | 1990-06-27 | 1995-08-08 | Advanced Micro Devices, Inc. | Method and apparatus for expanding the width of a content addressable memory using a continuation bit |
US5471189A (en) * | 1994-12-14 | 1995-11-28 | International Business Machines Corp. | Comparator circuitry and method of operation |
US5841874A (en) * | 1996-08-13 | 1998-11-24 | Motorola, Inc. | Ternary CAM memory architecture and methodology |
US6012131A (en) * | 1996-11-06 | 2000-01-04 | Hyundai Electronics Industries. Co., Ltd. | High speed translation lookaside buffer employing content address memory |
US6473846B1 (en) * | 1997-11-14 | 2002-10-29 | Aeroflex Utmc Microelectronic Systems, Inc. | Content addressable memory (CAM) engine |
US6381673B1 (en) * | 1998-07-06 | 2002-04-30 | Netlogic Microsystems, Inc. | Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device |
US6499081B1 (en) * | 1999-02-23 | 2002-12-24 | Netlogic Microsystems, Inc. | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US6169685B1 (en) * | 1999-05-17 | 2001-01-02 | Cselt-Centro Studi E Laboratori Telecomuicazioni S.P.A. | Content addressable memories |
US6157558A (en) * | 1999-05-21 | 2000-12-05 | Sandisk Corporation | Content addressable memory cell and array architectures having low transistor counts |
US6108227A (en) * | 1999-07-23 | 2000-08-22 | Lara Technology, Inc. | Content addressable memory having binary and ternary modes of operation |
US6191970B1 (en) * | 1999-09-09 | 2001-02-20 | Netlogic Microsystems, Inc. | Selective match line discharging in a partitioned content addressable memory array |
US6243280B1 (en) * | 1999-09-09 | 2001-06-05 | Netlogic Microsystems, Inc. | Selective match line pre-charging in a partitioned content addressable memory array |
US6252789B1 (en) * | 2000-06-14 | 2001-06-26 | Netlogic Microsystems, Inc. | Inter-row configurability of content addressable memory |
US20020015348A1 (en) * | 2000-06-30 | 2002-02-07 | Gillingham Peter B. | Searchline control circuit and power reduction method |
US6522596B2 (en) * | 2000-06-30 | 2003-02-18 | Mosaid Technologies Incorporated | Searchline control circuit and power reduction method |
US6362992B1 (en) * | 2000-10-06 | 2002-03-26 | Purple Ray, Inc. | Binary-ternary content addressable memory |
US6373739B1 (en) * | 2000-12-06 | 2002-04-16 | Integrated Device Technology, Inc. | Quad CAM cell with minimum cell size |
US20020080638A1 (en) * | 2001-02-07 | 2002-06-27 | Kawasaki Microelectronics, Inc. | Content addressable memory device capable of being used as binary CAM device or as ternary CAM device and structure method therefor |
US6421265B1 (en) * | 2001-03-22 | 2002-07-16 | Integrated Devices Technology, Inc. | DRAM-based CAM cell using 3T or 4T DRAM cells |
US6480406B1 (en) * | 2001-08-22 | 2002-11-12 | Cypress Semiconductor Corp. | Content addressable memory cell |
US20030058671A1 (en) * | 2001-09-25 | 2003-03-27 | Lindahl Craig A. | Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating same |
US6708250B2 (en) * | 2001-09-28 | 2004-03-16 | Mosaid Technologies Incorporated | Circuit and method for performing variable width searches in a content addressable memory |
US6584003B1 (en) * | 2001-12-28 | 2003-06-24 | Mosaid Technologies Incorporated | Low power content addressable memory architecture |
US20030137890A1 (en) * | 2001-12-28 | 2003-07-24 | Peter Vlasenko | Matchline sensing for content addressable memories |
US20030123269A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Gillingham | Circuit and method for reducing power usage in a content addressable memory |
US6697276B1 (en) * | 2002-02-01 | 2004-02-24 | Netlogic Microsystems, Inc. | Content addressable memory device |
US6967856B1 (en) * | 2002-04-10 | 2005-11-22 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same |
US6704216B1 (en) * | 2002-08-15 | 2004-03-09 | Integrated Silicon Solution, Inc. | Dual match-line, twin-cell, binary-ternary CAM |
US20050138278A1 (en) * | 2003-12-23 | 2005-06-23 | Aadsen Duane R. | Content addressable memories (CAMs) based on a binary CAM and having at least three states |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8073005B1 (en) | 2001-12-27 | 2011-12-06 | Cypress Semiconductor Corporation | Method and apparatus for configuring signal lines according to idle codes |
US7324362B1 (en) * | 2005-03-01 | 2008-01-29 | Netlogic Microsystems Inc. | Content addressable memory cell configurable between multiple modes and method therefor |
US7474546B2 (en) | 2007-04-02 | 2009-01-06 | Sun Microsystems, Inc. | Hybrid dual match line architecture for content addressable memories and other data structures |
US20130077375A1 (en) * | 2011-09-23 | 2013-03-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout for semiconductor memories |
CN103022008A (en) * | 2011-09-23 | 2013-04-03 | 台湾积体电路制造股份有限公司 | Layout for semiconductor memories |
US8717798B2 (en) * | 2011-09-23 | 2014-05-06 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout for semiconductor memories |
US20170249993A1 (en) * | 2016-02-26 | 2017-08-31 | Freescale Semiconductor, Inc. | Memory repair system and method therefor |
US10032515B2 (en) * | 2016-02-26 | 2018-07-24 | Nxp Usa, Inc. | Memory repair system and method therefor |
US9728258B1 (en) * | 2016-10-04 | 2017-08-08 | National Tsing Hua University | Ternary content addressable memory |
US10410691B2 (en) * | 2018-01-10 | 2019-09-10 | Ememory Technology Inc. | Non-volatile memory with a new sensing sequence control method |
Also Published As
Publication number | Publication date |
---|---|
US8031502B2 (en) | 2011-10-04 |
US20090190386A1 (en) | 2009-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8031502B2 (en) | Hybrid content addressable memory | |
KR101052812B1 (en) | Tunary Content Addressable Memory Cells for Reduced Matchline Capacity | |
US6310880B1 (en) | Content addressable memory cells and systems and devices using the same | |
US8462532B1 (en) | Fast quaternary content addressable memory cell | |
US6154384A (en) | Ternary content addressable memory cell | |
US7269040B2 (en) | Static content addressable memory cell | |
US6275406B1 (en) | Content address memory circuit with redundant array and method for implementing the same | |
US7259979B2 (en) | Area efficient stacked TCAM cell for fully parallel search | |
JP2002373493A (en) | Memory half cell referable to ternary contents, and memory cell enabling reference to ternary contents | |
US8582338B1 (en) | Ternary content addressable memory cell having single transistor pull-down stack | |
US6707692B2 (en) | Content addressable memory device capable of being used as binary CAM device or as ternary CAM device and structure method therefor | |
US8625320B1 (en) | Quaternary content addressable memory cell having one transistor pull-down stack | |
US7355890B1 (en) | Content addressable memory (CAM) devices having NAND-type compare circuits | |
US7170769B1 (en) | High performance and reduced area architecture for a fully parallel search of a TCAM cell | |
US8553441B1 (en) | Ternary content addressable memory cell having two transistor pull-down stack | |
US7057913B2 (en) | Low-power search line circuit encoding technique for content addressable memories | |
US20030005210A1 (en) | Intelligent CAM cell for CIDR processor | |
US7295487B2 (en) | Storage circuit and method therefor | |
US6839258B2 (en) | Folded DRAM CAM cell | |
US20060250833A1 (en) | High performance and low area write precharge technique for CAMs | |
US6898100B2 (en) | Semiconductor memory device used for cache memory | |
US7499302B2 (en) | Noise reduction in a CAM memory cell | |
US9552881B2 (en) | Search system comprising first and second search units with different search schemes that respectively use specific and non-specific bit strings of search key | |
US20220013174A1 (en) | Dual compare ternary content addressable memory | |
JPH0235689A (en) | Associative memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MOSAID TECHNOLOGIES INCORPORATED, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KIM, JIN KI;REEL/FRAME:015205/0399 Effective date: 20040323 |
|
AS | Assignment |
Owner name: MOSAID TECHNOLOGIES INCORPORATED, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KIM, JIN-KI, MR.;REEL/FRAME:021220/0866 Effective date: 20080623 |
|
AS | Assignment |
Owner name: MOSAID TECHNOLOGIES INCORPORATED, CANADA Free format text: CHANGE OF ADDRESS OF ASSIGNEE;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:022542/0876 Effective date: 20090209 Owner name: MOSAID TECHNOLOGIES INCORPORATED,CANADA Free format text: CHANGE OF ADDRESS OF ASSIGNEE;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:022542/0876 Effective date: 20090209 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |