US20050213359A1 - Hybrid content addressable memory - Google Patents

Hybrid content addressable memory Download PDF

Info

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
Application number
US10/809,421
Inventor
Jin Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mosaid Technologies Inc
Original Assignee
Mosaid Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mosaid Technologies Inc filed Critical Mosaid Technologies Inc
Priority to US10/809,421 priority Critical patent/US20050213359A1/en
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KIM, JIN KI
Publication of US20050213359A1 publication Critical patent/US20050213359A1/en
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KIM, JIN-KI, MR.
Priority to US12/421,112 priority patent/US8031502B2/en
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED CHANGE OF ADDRESS OF ASSIGNEE Assignors: MOSAID TECHNOLOGIES INCORPORATED
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel 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

A CAM device memory array having different types of memory cells is disclosed. 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. In particular, at least one portion consists of binary CAM cells and the other portion consists of ternary CAM cells. The portions can be partitioned along the row, or matchline, direction or along the bitline direction. Since particular data formats only require predefined bit positions of a word of data to be ternary in value, the remaining binary bit positions can be stored in binary CAM cells. Therefore, the CAM device memory array will occupy an overall area that is less than memory arrays of the same density consisting exclusively of ternary CAM cells.

Description

    FIELD OF THE INVENTION
  • The present invention relates generally to content addressable memories. More particularly, the present invention relates to content addressable memory array architectures.
  • BACKGROUND OF THE INVENTION
  • 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. 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. 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, and 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. While not shown to simplify the schematic, 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. 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_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 of FIG. 2, 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, and 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 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. Mask transistor 72 is connected between the source terminals of search transistors 56 and 60 and the tail line TL, and has its gate terminal connected to a storage node of 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 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.
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 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; and,
  • FIG. 9 is a circuit schematic of the hybrid CAM device memory array of FIG. 8, and,
  • FIG. 10 is a schematic of a DRAM based ternary CAM cell.
  • DETAILED DESCRIPTION
  • 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 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. In the presently described embodiment, 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. Hence, each wordline and matchline is coupled to CAM cells in the binary section 102 and CAM cells in the ternary section 104. In this particular example, ternary section 104 stores bit positions D0 to D71 of each word, and binary 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 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 ML0 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. As shown in FIG. 7, 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. It is noted that 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. It should be apparent to those of skill in the art that 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. It is noted that binary 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 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 ML0 and ML1 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. As in FIG. 7, 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. It is noted that 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. For example, ternary CAM cells 92 and binary 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 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.
  • 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 100 and 110 according to the embodiments of the present invention, will be analogous to the operation of CAM array 25. More specifically, once search data has been driven onto the searchlines, each CAM 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 in binary section 112, or for ternary data stored in ternary section 114. Although the 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.
  • 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 to binary CAM cells 90, and a second matchline segment of the row of CAM cells can be coupled only to ternary CAM cells 92. Alternatively, each matchline segment can be coupled to groups of binary CAM cells 90 and ternary 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 CAM device memory array 100 as having two different CAM memory cell sections, additional CAM memory cell sections can be included. For example, 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. Hence, 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. 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, 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. Alternatively, 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. 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 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 CELL1 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 CELL1 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.
  • Therefore, according to another embodiment of the present invention, 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.
  • 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)

1. A hybrid content addressable memory array comprising:
a first memory portion having a first type of content addressable memory cells arranged in rows and columns;
a second memory portion having a second type of content addressable memory cells arranged in rows and columns, the second type of content addressable memory cells being electrically coupled to the first type of content addressable memory cells.
2. The hybrid content addressable memory array of claim 1, wherein the first memory portion and the second memory portion include matchlines, each matchline of the first memory portion being coupled to the first type of content addressable memory cells, and each matchline of the second memory portion being coupled to the second type of content addressable memory cells.
3. The hybrid content addressable memory array of claim 2, wherein 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.
4. The hybrid content addressable memory array of claim 3, wherein the matchlines of the first memory portion and the matchlines of the second memory portion are interleaved with each other.
5. The hybrid content addressable memory array of claim 1, wherein the first type of content addressable memory cells include binary content addressable memory cells.
6. The hybrid content addressable memory array of claim 1, wherein the second type of content addressable memory cells include ternary content addressable memory cells.
7. The hybrid content addressable memory array of claim 1, wherein the first type of content addressable memory cells include SRAM based binary content addressable memory cells.
8. The hybrid content addressable memory array of claim 1, wherein the second type of content addressable memory cells include SRAM based ternary content addressable memory cells.
9. The hybrid content addressable memory array of claim 1, wherein at least one of the first and the second type of content addressable memory cells include configurable ternary-binary content addressable memory cells.
10. The hybrid content addressable memory array of claim 1, wherein 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.
11. The hybrid content addressable memory array of claim 10, wherein the logical matchline includes a segmented matchline.
12. The hybrid content addressable memory array of claim 11, wherein the segmented matchline includes a first matchline segment and a second matchline segment.
13. The hybrid content addressable memory array of claim 12, wherein the first type of content addressable memory cells are coupled to the first matchline segment and the second type of content addressable memory cells are coupled to the second matchline segment.
14. The hybrid content addressable memory array of claim 1, wherein the first type of content addressable memory cells and the second type of content addressable memory cells of a column are coupled to common searchlines.
15. A hybrid content addressable memory array comprising:
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.
16. The hybrid content addressable memory array of claim 15, wherein the first type of content addressable memory cells include binary content addressable memory cells and the second type of content addressable memory cells include ternary content addressable memory cells.
17. The hybrid content addressable memory array of claim 16, wherein the binary content addressable memory cells include SRAM based binary content addressable memory cells and the ternary content addressable memory cells include SRAM based ternary content addressable memory cells.
18. The hybrid content addressable memory array of claim 15, wherein the logical matchline includes a segmented matchline.
19. The hybrid content addressable memory array of claim 18, wherein the segmented matchline includes at least two matchline segments.
20. The hybrid content addressable memory array of claim 19, wherein 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.
21. A hybrid content addressable memory array comprising:
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.
22. The hybrid content addressable memory array of claim 21, wherein the first type of content addressable memory cells include binary content addressable memory cells and the second type of content addressable memory cells include ternary content addressable memory cells.
23. The hybrid content addressable memory array of claim 22, wherein the binary content addressable memory cells include SRAM based binary content addressable memory cells and the ternary content addressable memory cells include SRAM based ternary content addressable memory cells.
US10/809,421 2004-03-26 2004-03-26 Hybrid content addressable memory Abandoned US20050213359A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (30)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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