TWI802980B - An apparatus for writing ternary content addressable memory devices and the related method - Google Patents

An apparatus for writing ternary content addressable memory devices and the related method Download PDF

Info

Publication number
TWI802980B
TWI802980B TW110132730A TW110132730A TWI802980B TW I802980 B TWI802980 B TW I802980B TW 110132730 A TW110132730 A TW 110132730A TW 110132730 A TW110132730 A TW 110132730A TW I802980 B TWI802980 B TW I802980B
Authority
TW
Taiwan
Prior art keywords
bus
mask
tcam
column
clock cycle
Prior art date
Application number
TW110132730A
Other languages
Chinese (zh)
Other versions
TW202217805A (en
Inventor
奇坦 德許潘
瑞提許 高格
葛加南 薩希布勞 傑德
高朗 普拉巴卡 納韋卡
Original Assignee
新加坡商聯發科技(新加坡)私人有限公司
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
Priority claimed from US17/074,789 external-priority patent/US11404121B2/en
Application filed by 新加坡商聯發科技(新加坡)私人有限公司 filed Critical 新加坡商聯發科技(新加坡)私人有限公司
Publication of TW202217805A publication Critical patent/TW202217805A/en
Application granted granted Critical
Publication of TWI802980B publication Critical patent/TWI802980B/en

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

Landscapes

  • Static Random-Access Memory (AREA)
  • Read Only Memory (AREA)

Abstract

Ternary content-addressable memory (TCAM) devices are described. The TCAMs described herein are designed to perform write operations—including data writes and mask writes—in a single clock cycle. For example, data input is written in a row of the TCAM during the first portion of a clock cycle, and a mask is written in another row of the TCAM during the second portion of the clock cycle. In one implementation, a first bus is used both for data write and key search operations, and a second bus is used both for mask write and search masking operations. In another implementation, a first bus is used both for data write and key search operations, a second bus is used for mask write operations, and a third bus is used for search masking operations.

Description

一種用於寫入三態內容可尋址記憶體的裝置及方法A device and method for writing tri-state content addressable memory

本申請涉及存儲技術,以及更特別地,涉及用於寫入三態內容可尋址記憶體的方法及裝置。The present application relates to storage technology, and more particularly, to methods and apparatus for writing to tri-state content-addressable memory.

內容可尋址記憶體(Content-addressable memory,CAM)是一種專門為查找密集型應用設計的計算機記憶體。由於其並列特性,CAM在查找(search)方面比隨機存取記憶體(random access memory,RAM)架構快得多。CAM通常用在互聯網路由器和交換機中,它們可以提高路由查找、資料包(packet)分類和資料包轉發的速度。Content-addressable memory (CAM) is a type of computer memory designed specifically for search-intensive applications. Due to its parallel nature, CAM is much faster at searching than random access memory (RAM) architectures. CAMs are commonly used in Internet routers and switches to increase the speed of route lookup, packet classification, and packet forwarding.

三元/三態(Ternary)CAM,或TCAM,被設計為使用三種不同的輸入(0、1和X)來存儲和查詢資料。“X”輸入,通常被稱為“不關心(don't care)”或“通配符(wildcard)”狀態,使得TCAM能夠基於模式匹配執行更廣泛的查找,這與二元CAM截然不同,後者僅使用0和1執行精確的匹配查找。Ternary CAMs, or TCAMs, are designed to store and query data using three different inputs (0, 1, and X). The "X" input, often referred to as a "don't care" or "wildcard" state, enables TCAM to perform broader lookups based on pattern matching, as opposed to binary CAM, which only Use 0 and 1 to perform an exact match lookup.

本發明提供一種用於寫入三態內容可尋址記憶體(TCAM)的方法及裝置,其在單個的時鐘週期中執行包括寫入資料輸入和寫入掩碼的寫入操作,從而,通過增加執行寫入操作的速度顯著增強記憶體的適用性。The present invention provides a method and apparatus for writing a ternary content addressable memory (TCAM), which performs a write operation including a write data input and a write mask in a single clock cycle, thereby, by Increasing the speed at which write operations can be performed significantly increases memory availability.

一些實施例涉及一種用於寫入三態內容可尋址記憶體(TCAM)的裝置,該裝置包括三態內容可尋址記憶體(TCAM)和控制電路,該三態內容可尋址記憶體(TCAM)包括第一多列存儲單元(first plurality of rows of memory cells)和第二多列存儲單元(second plurality of rows of memory cells),第一多列存儲單元被配置為存儲多個相應的資料輸入;以及,第二多列存儲單元被配置為存儲多個相應的掩碼(mask);控制電路被配置為:在第一時鐘週期中將資料輸入寫入第一多列存儲單元的列(row)中,以及,在該第一時鐘週期中將掩碼寫入第二多列存儲單元的列中。Some embodiments relate to an apparatus for writing to a tri-state content-addressable memory (TCAM), the apparatus comprising a tri-state content-addressable memory (TCAM) and a control circuit, the tri-state content-addressable memory (TCAM) includes a first multi-column storage unit (first plurality of rows of memory cells) and a second multi-column storage unit (second plurality of rows of memory cells), and the first multi-column storage unit is configured to store a plurality of corresponding Data input; and, the second multi-column storage unit is configured to store a plurality of corresponding masks (mask); the control circuit is configured to: write the data input into the column of the first multi-column storage unit in the first clock cycle (row), and, during the first clock cycle, the mask is written into the columns of the second multi-column memory cell.

在一些實施例中,該控制電路被配置為:響應於該第一時鐘週期的第一邊沿而將該資料輸入寫入該第一多列存儲單元的列中,以及,還被配置為:響應於該第一時鐘週期的第二邊沿而將該掩碼寫入該第二多列存儲單元的列中。In some embodiments, the control circuit is configured to: write the data input into the columns of the first multi-column memory cells in response to the first edge of the first clock cycle, and is further configured to: respond to The mask is written into the columns of the second plurality of columns of memory cells on a second edge of the first clock cycle.

在一些實施例中,該第一多列存儲單元的列和該第二多列存儲單元的列共享公共地址。In some embodiments, the columns of the first multi-column memory unit and the columns of the second multi-column memory unit share a common address.

在一些實施例中,該第一多列存儲單元的列和該第二多列存儲單元的列彼此相鄰。In some embodiments, the columns of the first multi-column of memory cells and the columns of the second multi-column of memory cells are adjacent to each other.

在一些實施例中,該TCAM還包括第一總線和第二總線,以及,該控制電路被配置為:使用該第一總線將該資料輸入寫入該第一多列存儲單元的列中;以及,使用該第二總線將該掩碼寫入該第二多列存儲單元的列中。In some embodiments, the TCAM further includes a first bus and a second bus, and the control circuit is configured to: use the first bus to write the data input into a column of the first multi-column memory unit; and , using the second bus to write the mask into the columns of the second multi-column memory unit.

在一些實施例中,該控制電路還被配置為使用該第一總線在該第一多列存儲單元中查找關鍵字(key)。In some embodiments, the control circuit is further configured to use the first bus to look up a key in the first multi-column memory unit.

在一些實施例中,該控制電路還被配置為使用該第二總線在查找操作的期間掩碼該TCAM的一行或多行。In some embodiments, the control circuit is further configured to mask one or more rows of the TCAM during a seek operation using the second bus.

在一些實施例中,該TCAM還包括第一總線、第二總線和第三總線,以及,該控制電路被配置為:使用該第一總線將該資料輸入寫入該第一多列存儲單元的列中;使用該第二總線將該掩碼寫入該第二多列存儲單元的列中;以及,在查找操作的期間使用該第三總線掩碼該TCAM的一行或多行(column)。In some embodiments, the TCAM further includes a first bus, a second bus, and a third bus, and the control circuit is configured to: use the first bus to write the data input into the first multi-column memory unit using the second bus to write the mask into the columns of the second multi-column memory cell; and using the third bus to mask one or more columns of the TCAM during a lookup operation.

在一些實施例中,該控制電路還被配置為使用該第二總線在該第一多列存儲單元中查找關鍵字。In some embodiments, the control circuit is further configured to use the second bus to look up a key in the first multi-column of memory cells.

在一些實施例中,該控制電路還被配置為利用該第一總線在查找操作的期間掩碼該TCAM的一個或多個行。In some embodiments, the control circuit is further configured to mask one or more rows of the TCAM during a seek operation using the first bus.

一些實施例涉及一種用於寫入三態內容可尋址記憶體(TCAM)的方法,包括:在第一時鐘週期中,將資料輸入寫入第一多列存儲單元的列中,其中,該第一多列存儲單元被配置為存儲多個相應的資料輸入;以及, 在該第一時鐘週期中,將掩碼寫入第二多列存儲單元的列中,其中,該第二多列存儲單元被配置為存儲多個相應的掩碼。 Some embodiments relate to a method for writing to a ternary content addressable memory (TCAM), comprising: writing data input into a column of a first multi-column of memory cells during a first clock cycle, wherein the The first multi-column storage unit is configured to store a plurality of corresponding data inputs; and, During the first clock cycle, a mask is written to a column of a second multi-column of memory cells configured to store a plurality of corresponding masks.

在一些實施例中,寫入該資料輸入包括:響應於該第一時鐘週期的第一邊沿寫入該資料輸入;以及,寫入該掩碼包括:響應於該第一時鐘週期的第二邊沿寫入該掩碼。In some embodiments, writing the data input includes: writing the data input in response to a first edge of the first clock cycle; and writing the mask includes: responding to a second edge of the first clock cycle Write to this mask.

在一些實施例中,該第一多列存儲單元的列和該第二多列存儲單元的列彼此相鄰。In some embodiments, the columns of the first multi-column of memory cells and the columns of the second multi-column of memory cells are adjacent to each other.

在一些實施例中,寫入該資料輸入包括:利用第一總線寫入該資料輸入;以及,寫入該掩碼擴:利用第二總線寫入該掩碼。In some embodiments, writing the data input includes: writing the data input using a first bus; and writing the mask and: writing the mask using a second bus.

在一些實施例中,該方法還包括:利用該第一總線在該第一多列存儲單元中中查找關鍵字。In some embodiments, the method further includes: using the first bus to search for a key in the first multi-column storage unit.

在一些實施例中,該方法還包括:利用該第二總線在查找操作的期間掩碼該TCAM的一個或多個行。In some embodiments, the method further includes masking one or more rows of the TCAM during a seek operation using the second bus.

在一些實施例中,寫入該資料輸入包括:響應於該第一時鐘週期的第一邊沿寫入該資料輸入,以及,寫入該掩碼包括:在該第一邊沿的預定時間間隔後寫入該掩碼。In some embodiments, writing the data input includes: writing the data input in response to a first edge of the first clock cycle, and writing the mask includes: writing a predetermined time interval after the first edge into this mask.

本發明內容是通過示例的方式提供的,並非旨在限定本發明。在下面的詳細描述中描述其它實施例和優點。本發明由申請專利範圍限定。This summary is provided by way of example and is not intended to limit the invention. Other embodiments and advantages are described in the detailed description below. The present invention is limited by the scope of the patent application.

以下描述為本發明實施的較佳實施例。以下實施例僅用來例舉闡釋本發明的技術特徵,並非用來限制本發明的範疇。在通篇說明書及申請專利範圍當中使用了某些詞彙來指稱特定的組件。所屬技術領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的組件。本說明書及申請專利範圍並不以名稱的差異來作為區別組件的方式,而係以組件在功能上的差異來作為區別的基準。本發明的範圍應當參考后附的申請專利範圍來確定。在以下描述和申請專利範圍當中所提及的術語“包含”和“包括”為開放式用語,故應解釋成“包含,但不限定於…”的意思。此外,術語“耦接”意指間接或直接的電氣連接。因此,若文中描述一個裝置耦接至另一裝置,則代表該裝置可直接電氣連接於該另一裝置,或者透過其它裝置或連接手段間接地電氣連接至該另一裝置。文中所用術語“基本”或“大致”係指在可接受的範圍內,所屬技術領域中具有通常知識者能夠解決所要解決的技術問題,基本達到所要達到的技術效果。舉例而言,“大致等於”係指在不影響結果正確性時,所屬技術領域中具有通常知識者能夠接受的與“完全等於”有一定誤差的方式。The following descriptions are preferred embodiments for implementing the present invention. The following examples are only used to illustrate the technical characteristics of the present invention, and are not intended to limit the scope of the present invention. Certain terms are used throughout the specification and claims to refer to particular components. It should be understood by those skilled in the art that manufacturers may use different terms to refer to the same component. This description and the scope of the patent application do not use the difference in name as the way to distinguish components, but the difference in function of the components as the basis for distinction. The scope of the present invention should be determined with reference to the appended claims. The terms "comprising" and "comprising" mentioned in the following description and scope of patent application are open-ended terms, so they should be interpreted as the meaning of "including, but not limited to...". Also, the term "coupled" means an indirect or direct electrical connection. Therefore, if it is described that a device is coupled to another device, it means that the device may be directly electrically connected to the other device, or indirectly electrically connected to the other device through other devices or connection means. The term "basically" or "approximately" used herein means that within an acceptable range, a person with ordinary knowledge in the technical field can solve the technical problem to be solved and basically achieve the technical effect to be achieved. For example, "approximately equal to" means that there is a certain error from "exactly equal to" that can be accepted by those with ordinary knowledge in the technical field without affecting the correctness of the result.

隨著諸如人工智能、資料庫和網絡交換之類的現代應用驅動對網絡帶寬的不斷增加的需求,對高速記憶體的需求不斷增加,特別地,對高速TCAM的需求增加。TCAM的架構使其特別適用於計算機網絡設備,例如,交換機和路由器。雖然近年來TCAM的運列速度有了顯著提高,但仍然不足以滿足某些網絡應用的要求。As modern applications such as artificial intelligence, databases, and network switching drive ever-increasing demands on network bandwidth, there is an increasing need for high-speed memory, and in particular, high-speed TCAM. The architecture of TCAM makes it particularly suitable for computer network equipment, such as switches and routers. Although the operation speed of TCAM has been significantly improved in recent years, it is still not enough to meet the requirements of some network applications.

申請人認識到,在TCAM處增加執行寫入操作(write operation)的速度將顯著增強這些類型的記憶體的適用性。因此,本發明提出了一種TCAM架構,其被設計為提高(increase)寫入操作的速度。本發明提出的TCAM架構被設計為在單個的時鐘週期(single clock cycle)中執行寫入操作,該寫入操作包括資料(data)寫入和掩碼(mask)寫入。在一些實施例中,例如,在時鐘週期的第一部分的期間,資料輸入(data input)被寫入到TCAM條目(entry)的資料列(data row)中,以及,在同一時鐘週期的第二部分的期間,掩碼被寫入到TCAM條目的掩碼列(mask row)中。Applicants have recognized that increasing the speed at which write operations are performed at the TCAM will significantly enhance the applicability of these types of memories. Therefore, the present invention proposes a TCAM architecture designed to increase the speed of write operations. The TCAM architecture proposed by the present invention is designed to perform a write operation in a single clock cycle (single clock cycle), and the write operation includes data (data) write and mask (mask) write. In some embodiments, for example, during the first part of the clock cycle, the data input (data input) is written to the data column (data row) of the TCAM entry (entry), and, during the second part of the same clock cycle During part of the period, the mask is written to the mask column (mask row) of the TCAM entry.

本發明的一些實施例涉及一種TCAM架構,在該架構中,第一總線同時用於資料寫入(data write)和關鍵字查找(key search)的操作,以及,第二總線同時用於掩碼寫入(mask write)和查找掩碼(search masking)的操作。在寫入操作的期間,第一總線將資料輸入傳送到TCAM條目的資料列(data row),以及,在該相同時鐘週期的期間,第二總線將掩碼(稱為“局部掩碼(local mask)”)傳送到TCAM條目的相應掩碼列(mask row)。在查找操作的期間,第一總線將要被查找的關鍵字(key)傳送至TCAM,以及,第二總線傳送用於掩碼該關鍵字查找的位元(這些位元稱為“行掩碼(column mask)”)。對關鍵字查找進行掩碼涉及結果返回(以匹配或不匹配的形式),其獨立於被掩碼的行(column)的值。例如,當掩碼的特定位元被斷言(asserted)時,TCAM的相應行被掩碼,這意味著無論該特定行是否產生匹配,記憶體都能夠返回匹配結果。Some embodiments of the present invention relate to a TCAM architecture in which a first bus is used for both data write and key search operations, and a second bus is used for masking Write (mask write) and search masking (search masking) operations. During a write operation, the first bus transfers the data input to the data row of the TCAM entry, and, during this same clock cycle, the second bus transfers the mask (called the "local mask (local mask) mask)") to the corresponding mask row of the TCAM entry. During a lookup operation, the first bus transmits the key to be looked up (key) to the TCAM, and the second bus transmits the bits used to mask the key lookup (these bits are called the "row mask ( column mask)"). Masking a keyword lookup involves returning results (as matched or not matched), independent of the value of the masked row (column). For example, when a particular bit of the mask is asserted, the corresponding row of the TCAM is masked, meaning that the memory is able to return a match whether or not that particular row produced a match.

可選地,其它的配置也是可行的,例如,第一總線用於資料寫入和查找掩碼操作,以及,第二總線用於掩碼寫入和關鍵字查找操作。具體地,本發明不做限制。Optionally, other configurations are also possible, for example, the first bus is used for data writing and lookup mask operations, and the second bus is used for mask writing and key lookup operations. Specifically, the present invention is not limited.

其它實施例涉及一種TCAM架構,在該TCAM架構中,第一總線用於資料寫入和關鍵字查找操作,第二總線用於掩碼寫入操作,以及,第三總線用於查找掩碼操作。在寫入操作的期間,第一總線將資料輸入傳送到TCAM條目的資料列,以及,在該相同時鐘週期的期間,第二總線將掩碼(被稱為“局部掩碼”)傳送到TCAM條目的相應掩碼列。在查找操作的期間,第一總線將要被查找的關鍵字傳送到TCAM,以及,第三總線傳送用於掩碼關鍵字查找的位元(這些位元可以稱為“行掩碼(column mask)”)。其它配置也是可行的。例如,可以利用第二總線代替第一總線進行關鍵字查找操作。Other embodiments relate to a TCAM architecture in which a first bus is used for data write and key lookup operations, a second bus is used for mask write operations, and a third bus is used for lookup mask operations . During a write operation, the first bus transfers the data input to the data column of the TCAM entry, and, during this same clock cycle, the second bus transfers the mask (called the "local mask") to the TCAM The corresponding mask column for the entry. During a lookup operation, the first bus transmits the key to be looked up to the TCAM, and the third bus transmits the bits used to mask the key lookup (these bits may be referred to as "column masks"). "). Other configurations are also possible. For example, the second bus may be used instead of the first bus to perform keyword search operations.

第1A圖根據一些實施例示出了TCAM。TCAM包括按列(row)和行(column)排列的存儲單元陣列。每個單元包括靜態隨機存取記憶體(static random access memory,SRAM),替代地或附加地,可以使用其它類型的記憶體。TCAM具有多個行(0、1、2、3、…、n-1、n)和多個列(0、1…、2 m-1)。每列包括一對子列(其包括第一子列和第二子列)。第一子列(“資料列(data row)”)用於存儲資料,以及,第二子列(“掩碼列(mask row)”)用於存儲掩碼。資料位元(data bit)由字母“X”標識,以及,掩碼位元(mask bit)由字母“Y”標識。公共(common)TCAM條目的資料列和掩碼列在TCAM中彼此相鄰。例如,對於第一TCAM條目,其包括第一資料列(如資料列0)和與第一資料列相鄰的第一掩碼列(掩碼列0),第二TCAM條目包括第二資料列(如資料列1)和與第二資料列相鄰的第二掩碼列(掩碼列1)。在一些實施例中,公共TCAM條目(common TCAM entry)的資料列和掩碼列共享公共的(common)記憶體地址,從而將尋址整個記憶體所需的位元數量減少了一個單位。例如,單個TCAM條目的資料列和與該資料列相對應的掩碼列共享公共的記憶體地址,舉例來說,該公共的記憶體地址可指向該TCAM條目中的資料列,以及,在該公共的記憶體地址的基礎上偏移預設量的地址可指向該TCAM條目中的相應掩碼列。 Figure 1A illustrates a TCAM, according to some embodiments. The TCAM includes an array of memory cells arranged in columns (row) and rows (column). Each cell includes static random access memory (SRAM), alternatively or additionally other types of memory may be used. A TCAM has a number of rows (0, 1, 2, 3, . . . , n-1, n) and a number of columns (0, 1 . . . , 2 m-1 ). Each column includes a pair of sub-columns (which includes a first sub-column and a second sub-column). The first sub-column ("data row") is used to store the data, and the second sub-column ("mask row") is used to store the mask. A data bit is identified by the letter "X", and a mask bit is identified by the letter "Y". The data column and mask column of a common (common) TCAM entry are adjacent to each other in the TCAM. For example, for the first TCAM entry, it includes the first data row (such as data row 0) and the first mask row (mask row 0) adjacent to the first data row, and the second TCAM entry includes the second data row (such as data column 1) and a second mask column (masked column 1) adjacent to the second data column. In some embodiments, the data column and mask column of a common TCAM entry (common TCAM entry) share a common memory address, thereby reducing the number of bits required to address the entire memory by one unit. For example, the data row of a single TCAM entry and the mask row corresponding to the data row share a common memory address, for example, the common memory address can point to the data row in the TCAM entry, and, in the An address offset by a preset amount based on the common memory address may point to the corresponding mask column in the TCAM entry.

每個局部掩碼包含多個位元。每個局部掩碼位元的值決定了相應的資料位元是否被掩碼。根據一些實施例,局部掩碼操作的代表性邏輯在第1B圖的表中示出。在本示例中,當資料被設置為1且局部掩碼被設置為0時,特定位元的狀態為1。相反,當資料被設置為0且局部掩碼被設置為1時,特定位元的狀態為0。當該局部掩碼和資料都被設置為1時,對應資料位元的狀態為“不關心(don't care)”。最後,局部掩碼和資料都被設置為0的組合是不受支持的。應當理解,除第1B圖中描繪的邏輯之外的其他邏輯也可以被使用,因為位元掩碼不限於任何特定的邏輯。Each partial mask consists of a number of bits. The value of each partial mask bit determines whether the corresponding data bit is masked or not. Representative logic for partial masking operations is shown in the table of Figure 1B, according to some embodiments. In this example, the state of a particular bit is 1 when the data is set to 1 and the local mask is set to 0. Conversely, when the data is set to 0 and the partial mask is set to 1, the state of the particular bit is 0. When both the local mask and the data are set to 1, the state of the corresponding data bit is "don't care". Finally, combinations where both the local mask and profile are set to 0 are not supported. It should be understood that other logic than that depicted in FIG. 1B may also be used, as the bitmask is not limited to any particular logic.

第2A圖是根據一些實施例示出的TCAM架構的方框示意圖。該架構包括控制電路200和TCAM 202。TCAM 202可以根據第1A圖中所示的示意圖來佈置。該架構旨在提高相對於先前實現的寫入TCAM操作的速度。更具體地說,該架構旨在在單個的時鐘週期中寫入資料輸入和局部掩碼。例如,在同一個時鐘週期中,資料輸入可以被寫入至資料列0,以及,局部掩碼被寫入至掩碼列0。TCAM的總線被設置為支持單個時鐘週期中的資料輸入和掩碼的寫入操作。如第2A圖所示,控制電路200使用以下總線與TCAM 202進行通信:CLK、A、SDI、DI、MASKB、CS、WE、RD、SR和SCU。Figure 2A is a block schematic diagram of a TCAM architecture according to some embodiments. The architecture includes a control circuit 200 and a TCAM 202 . TCAM 202 may be arranged according to the schematic diagram shown in Figure 1A. The architecture is designed to increase the speed of write TCAM operations relative to previous implementations. More specifically, the architecture is designed to write data inputs and local masks in a single clock cycle. For example, data input can be written to data column 0 and a partial mask can be written to mask column 0 in the same clock cycle. The TCAM bus is configured to support data input and mask write operations in a single clock cycle. As shown in Figure 2A, the control circuit 200 communicates with the TCAM 202 using the following buses: CLK, A, SDI, DI, MASKB, CS, WE, RD, SR, and SCU.

控制電路200經由總線CLK向TCAM 202提供時鐘。總線A(memory address,記憶體地址)被用來提供用於寫入和讀取操作的地址。例如,在寫入操作的期間,如果總線A指示第5列,則對第5列執行寫入操作。類似地,在讀取操作的期間,如果總線A指示第5列,則TCAM返回第5列的內容。The control circuit 200 provides clocks to the TCAM 202 via the bus CLK. Bus A (memory address) is used to provide addresses for write and read operations. For example, during a write operation, if bus A indicates column 5, a write operation is performed on column 5. Similarly, during a read operation, if bus A indicates column 5, the TCAM returns the contents of column 5.

總線SDI用於寫入和查找操作這兩者。在寫入操作的期間,總線DI攜帶要被寫入至總線A標識的資料列的資料輸入,以及,總線SDI攜帶要被寫入至總線A標識的掩碼列的局部掩碼。在查找操作的期間,總線SDI攜帶要被在整個TCAM中查找的關鍵字。Bus SDI is used for both write and seek operations. During a write operation, bus DI carries the data input to be written to the data column identified by bus A, and bus SDI carries the local mask to be written to the mask column identified by bus A. During a lookup operation, the bus SDI carries the key to be looked up in the entire TCAM.

總線MASKB用在查找操作的期間。特別地,總線MASKB包括行掩碼位元(column mask bits),其標識在查找期間要被掩碼的那些行以及不被掩碼的那些行。The bus MASKB is used during seek operations. In particular, bus MASKB includes column mask bits that identify which rows are to be masked and which are not to be masked during lookup.

總線SCU(single cyle update,單週期更新)用於啟用(enable)單時鐘週期操作,例如,當SCU設置為1時,記憶體以單時鐘週期模式進行操作(可以理解地,相反的邏輯也是可行的)。總線CS(chip select,芯片選擇)被用來從一組多個TCAM芯片中選擇特定的TCAM芯片。當其設置為1時,總線CS啟用在特定TCAM芯片上的操作(可以理解地,相反的邏輯也是可能的)。總線WE(memory write,記憶體寫入)用於啟用寫入操作(在一些實施例中,具有相對於SCU的相反值)。例如,當WE為0時,單時鐘週期寫入操作被啟用,當WE為1時,單時鐘週期寫入操作被禁用(相反的邏輯也是可行的,具體地,本發明對此不做限制)。總線SR被用來啟用查找操作。例如,當SR為1時,啟用查找操作,當SR為0時,禁用查找操作(相反的邏輯也是可行的,本發明對此不做限制)。總線RD用於啟用讀取操作。例如,當RD為1時,讀取操作被啟用,當RD為0時,讀取操作被禁用(相反的邏輯也是可行的,本發明對此不做限制)。The bus SCU (single cyle update, single cycle update) is used to enable (enable) single clock cycle operation, for example, when SCU is set to 1, the memory operates in single clock cycle mode (understandably, the opposite logic is also possible of). The bus CS (chip select, chip select) is used to select a specific TCAM chip from a group of multiple TCAM chips. When it is set to 1, bus CS enables operation on a particular TCAM chip (understandably, the reverse logic is also possible). The bus WE (memory write) is used to enable write operations (in some embodiments, with the opposite value relative to SCU). For example, when WE is 0, the single clock cycle write operation is enabled, and when WE is 1, the single clock cycle write operation is disabled (the opposite logic is also feasible, specifically, the present invention does not limit this) . Bus SR is used to enable seek operations. For example, when the SR is 1, the search operation is enabled, and when the SR is 0, the search operation is disabled (the opposite logic is also feasible, and the present invention does not limit this). Bus RD is used to enable read operations. For example, when RD is 1, the read operation is enabled, and when RD is 0, the read operation is disabled (the opposite logic is also feasible, and the present invention is not limited to this).

輸出總線DO用於在讀取操作的期間返回總線A標識的列的內容。輸出總線HIT用於在查找操作的期間返回已識別出匹配項的列的地址。Output bus DO is used to return the contents of the column identified by bus A during a read operation. The output bus HIT is used during a lookup operation to return the address of the column for which a match has been identified.

第2B圖根據一些實施例示出了TCAM 202的非限制性實現的示意圖。在該實施方式中,TCAM 202包括觸發器(flip-flop)250(如DI輸入鎖存器)、252(如SDI輸入觸發器)和254(如MASKB輸入鎖存器)、邏輯單元(logic unit)256和258、多工器(multiplexer)260和262、控制單元264和TCAM行270(特別地,TCAM陣列中的其中一行),其包括如第1A圖所示佈置的SRAM(或其它類型的記憶體)。TCAM 202通過總線DI、SDI、MASKB、CLK、WE、SCU和A(如結合第2A圖所討論的)接收信號。Figure 2B shows a schematic diagram of a non-limiting implementation of TCAM 202, according to some embodiments. In this embodiment, TCAM 202 includes flip-flops (flip-flop) 250 (such as DI input latch), 252 (such as SDI input flip-flop) and 254 (such as MASKB input latch), logic unit (logic unit ) 256 and 258, multiplexers (multiplexers) 260 and 262, control unit 264, and TCAM row 270 (in particular, one of the rows in the TCAM array), which includes SRAM (or other type of Memory). TCAM 202 receives signals over buses DI, SDI, MASKB, CLK, WE, SCU, and A (as discussed in connection with Figure 2A).

觸發器250接收總線DI的信號(例如,資料,圖中示意為“Data(X-word)”)作為輸入,觸發器252接收總線SDI的信號(例如,掩碼,圖中示意為“Mask(Y-word)”)作為輸入,以及,觸發器254接收總線MASKB的信號(例如,在查找操作(during search)期間的全局掩碼(global mask))作為輸入。時鐘CLK定時(time)觸發器的操作。觸發器250的輸出作為輸入分別提供給多工器260和262。觸發器252的輸出作為輸入分別提供給邏輯單元256和258。邏輯單元的狀態由觸發器254的輸出控制。總線SCU的信號指示是否要進行單時鐘寫入操作(single-clock write operation),從而,在指示單時鐘寫入操作的情形中(例如,如果總線SCU被斷言),在同一時鐘週期中寫入資料輸入和掩碼這兩者。然而,如果總線SCU未被斷言,則根據常規方案執行寫入操作,從而,在單獨的時鐘週期中寫入資料輸入和相應的掩碼。在這種情況下,SCU啟用多工器260和262。總線A的信號指示將被寫入或讀取的TCAM條目的地址。對於常規寫入,當WE為1時,多工器260和262在整個時鐘週期間選擇DI總線上的資料(多工器上的輸入S1被選擇)。在單時鐘週期寫入的過程中,多工器上的ENB信號在同一時鐘週期中根據定時信號切換,從而在相同周期內選擇S1或S2作為多工器上的輸入。邏輯單元256和258僅在查找操作的期間被使用。在寫入操作的期間,邏輯單元256和258饋通觸發器252的輸出。總線MASKB用於在查找操作的期間掩碼特定行上的資料。The flip-flop 250 receives the signal of the bus DI (for example, data, shown as "Data(X-word)" in the figure) as an input, and the flip-flop 252 receives the signal of the bus SDI (for example, a mask, shown as "Mask( Y-word)") as an input, and the flip-flop 254 receives a signal of the bus MASKB (eg, a global mask during a search operation (during search)) as an input. The operation of the clock CLK timing (time) flip-flop. The output of flip-flop 250 is provided as input to multiplexers 260 and 262, respectively. The output of flip-flop 252 is provided as input to logic units 256 and 258, respectively. The state of the logic unit is controlled by the output of flip-flop 254 . The signal on the bus SCU indicates whether a single-clock write operation is to be performed (single-clock write operation), so that, in the case of indicating a single-clock write operation (for example, if the bus SCU is asserted), write in the same clock cycle Both data entry and masking. However, if bus SCU is not asserted, the write operation is performed according to the conventional scheme whereby the data input and corresponding mask are written in a single clock cycle. In this case, the SCU enables multiplexers 260 and 262 . The bus A signal indicates the address of the TCAM entry to be written or read. For a normal write, when WE is 1, multiplexers 260 and 262 select material on the DI bus during a full clock cycle (input S1 on the multiplexer is selected). In the process of writing in a single clock cycle, the ENB signal on the multiplexer is switched according to the timing signal in the same clock cycle, so that S1 or S2 is selected as the input on the multiplexer in the same cycle. Logical units 256 and 258 are used only during lookup operations. During a write operation, logic units 256 and 258 feed through the output of flip-flop 252 . The bus MASKB is used to mask data on a particular row during a seek operation.

第2C圖根據一些實施例示出了代表寫入操作的序列。該圖示出了總線CLK、SCU(Single Cyle Update,單週期更新)、CS(Chip Select,芯片選擇)、WE(memory write,記憶體寫入)、A(memory address,記憶體地址)、DI、SDI和MASKB的信號之間的關係。當信號CS設置為1時,信號CS表示該TCAM芯片已被選中。當信號SCU設置為1且信號WE設置為0時,將執行單時鐘寫入。相反,當信號SCU設置為0且信號WE設置為1時,將執行多時鐘寫入。Figure 2C illustrates a sequence representative of a write operation, according to some embodiments. The figure shows the bus CLK, SCU (Single Cyle Update, single cycle update), CS (Chip Select, chip selection), WE (memory write, memory write), A (memory address, memory address), DI , the relationship between the signals of SDI and MASKB. When the signal CS is set to 1, the signal CS indicates that the TCAM chip has been selected. When signal SCU is set to 1 and signal WE is set to 0, a single clock write is performed. Conversely, when the signal SCU is set to 0 and the signal WE is set to 1, a multi-clock write will be performed.

信號A提供將被寫入的列的地址(圖中標註為“TCAM Address”)。在本示例中,地址(以十六進製表示)為“000”。信號DI的內容代表將被寫入至尋址TCAM資料列的資料輸入(圖中標註為“Data/X”)。在這個例子中,DI的內容是“aaaaa”。信號SDI的內容代表將被寫入至尋址TCAM掩碼列的掩碼(圖中標註為“Mask/Y”)。在本示例中,SDI的內容為“55555”。在這個序列中,DI的內容和SDI的內容都是在同一個時鐘週期中寫入的(即單時鐘寫入)。在寫入操作的期間,不考慮信號MASKB(本示例中為“fffff”)的內容。Signal A provides the address of the column to be written (labeled "TCAM Address" in the figure). In this example, the address (in hex) is "000". The content of the signal DI represents the data input (marked as "Data/X" in the figure) to be written into the addressed TCAM data row. In this example, the content of DI is "aaaaa". The content of signal SDI represents the mask to be written into the addressed TCAM mask column (labeled "Mask/Y" in the figure). In this example, the content of SDI is "55555". In this sequence, the content of DI and the content of SDI are both written in the same clock cycle (i.e. single clock write). During the write operation, the content of signal MASKB ("fffff" in this example) is not considered.

第3A圖是根據一些實施例說明另一TCAM架構的方框示意圖。類似於第2A圖的架構,該架構還設計為在單個時鐘週期中寫入資料輸入和掩碼。然而,該架構比第2A圖的架構涉及更少的總線,從而降低了電路複雜度。FIG. 3A is a block diagram illustrating another TCAM architecture according to some embodiments. Similar to the architecture of Figure 2A, this architecture is also designed to write the data inputs and masks in a single clock cycle. However, this architecture involves fewer busses than that of Figure 2A, thereby reducing circuit complexity.

該架構包括控制電路300和TCAM 302。TCAM 302可以根據第1A圖中所示的示意圖進行佈置。TCAM的總線被安排為支持單個時鐘週期中的資料輸入和掩碼的寫入操作。如第3A圖所示,控制電路300使用以下總線與TCAM 302通信:CLK、A、SDI、MASKB、CS、WE、RD、SCU和SR。應該注意的是,與第2A圖的例子不同,該架構不包括總線DI。在這種架構中,總線SDI和MASKB都具有雙重功能(dual function)。在單時鐘週期寫入操作的期間,總線SDI攜帶(carry)將被寫入的資料輸入,以及,MASKB攜帶將被寫入的局部掩碼。在查找操作的期間,總線SDI攜帶要被查找的關鍵字,而MASKB攜帶行掩碼位元,其標識哪些行將被掩碼(可選地,總線MASKB可以攜帶要被查找的關鍵字,以及,SDI攜帶標識哪些行被掩碼的掩碼位,具體地,本發明不做限制)。本質上,SDI和MASKB都被以時分複用方式使用。總線CLK、A、CS、WE、RD、SCU和SR具有如第2A圖描述的相同功能。輸出總線DO和HIT也具有如第2A圖描述的相同功能。The architecture includes a control circuit 300 and a TCAM 302 . TCAM 302 may be arranged according to the schematic diagram shown in Figure 1A. The TCAM bus is arranged to support data input and mask write operations in a single clock cycle. As shown in Figure 3A, the control circuit 300 communicates with the TCAM 302 using the following buses: CLK, A, SDI, MASKB, CS, WE, RD, SCU, and SR. It should be noted that, unlike the example of Fig. 2A, this architecture does not include the bus DI. In this architecture, both bus SDI and MASKB have dual functions. During a single clock cycle write operation, bus SDI carries the data input to be written, and MASKB carries the local mask to be written. During a lookup operation, bus SDI carries the key to be looked up, and MASKB carries row mask bits which identify which rows are to be masked (optionally, bus MASKB can carry the key to be looked up, and , SDI carries mask bits that identify which rows are masked, specifically, the present invention does not make a limitation). Essentially, both SDI and MASKB are used in a time-division multiplexed manner. The buses CLK, A, CS, WE, RD, SCU and SR have the same functions as described in Fig. 2A. The output buses DO and HIT also have the same function as described in Fig. 2A.

第3B圖根據一些實施例示出了TCAM 302的非限制性實現的示意圖。在該實施方式中,TCAM 302包括觸發器350、352和354、邏輯單元346、348、356和358、多工器360和362、控制單元364和TCAM行370。例如,TCAM陣列370可以包括如第1A圖所示排列的SRAM(或其它類型的記憶體)。TCAM 302通過總線SDI、MASKB、CLK、WE、SCU和A(如結合第3A圖所討論的)接收信號。Figure 3B shows a schematic diagram of a non-limiting implementation of TCAM 302, according to some embodiments. In this embodiment, TCAM 302 includes flip-flops 350 , 352 and 354 , logic units 346 , 348 , 356 and 358 , multiplexers 360 and 362 , control unit 364 and TCAM row 370 . For example, TCAM array 370 may include SRAM (or other type of memory) arranged as shown in FIG. 1A. TCAM 302 receives signals over buses SDI, MASKB, CLK, WE, SCU, and A (as discussed in connection with Figure 3A).

邏輯單元346接收總線SDI的信號作為輸入,以及,邏輯單元348接收總線MASKB的信號作為輸入。總線SCU的信號指示是否在單個時鐘週期中執行包括寫入資料輸入和掩碼的寫入操作。在此示例中,SCU控制邏輯單元346和348的狀態。Logic unit 346 receives as input the signal of bus SDI, and logic unit 348 receives as input the signal of bus MASKB. The signal on the bus SCU indicates whether to perform a write operation including write data input and mask in a single clock cycle. In this example, the SCU controls the state of logic units 346 and 348 .

觸發器350接收總線SDI的信號作為輸入,觸發器352接收邏輯單元346的輸出作為輸入,以及,觸發器354接收邏輯單元348的輸出作為輸入。時鐘CLK定時觸發器的操作。觸發器350的輸出分別提供給多工器360和362作為輸入。觸發器352的輸出分別提供給邏輯單元356和358作為輸入。邏輯單元356和358的狀態由觸發器354的輸出控制。總線A的信號指示將被寫入或讀取的TCAM的列的地址。在寫入操作的期間,總線WE的信號被斷言(asserted),這使得多工器360和362能夠用於寫入操作。在寫入操作的期間,控制單元364使能寫入至TCAM陣列370,以及,觸發器的輸出通過電晶體366和368寫入至TCAM陣列。總線A的信號確定將被寫入的列的地址。在查找操作的期間,邏輯單元356和358根據MASKB的相應掩碼位元的值掩碼特定列的查找。Flip-flop 350 receives the signal of bus SDI as input, flip-flop 352 receives the output of logic unit 346 as input, and flip-flop 354 receives the output of logic unit 348 as input. Clock CLK timing flip-flop operation. The output of flip-flop 350 is provided as input to multiplexers 360 and 362, respectively. The output of flip-flop 352 is provided as input to logic units 356 and 358, respectively. The state of logic units 356 and 358 is controlled by the output of flip-flop 354 . The bus A signal indicates the address of the column of the TCAM to be written or read. During the write operation, the signal of the bus WE is asserted, which enables the multiplexers 360 and 362 to be used for the write operation. During a write operation, control unit 364 enables writing to TCAM array 370 , and the output of the flip-flop writes to the TCAM array through transistors 366 and 368 . The bus A signal determines the address of the column to be written. During a lookup operation, logic units 356 and 358 mask the lookup of a particular column according to the value of the corresponding mask bit of MASKB.

第3C圖根據一些實施例說明與第3A圖的架構有關的代表寫入操作的序列。該圖說明了總線CLK、SCU、WE、A、SDI和MASKB的信號之間的關係。當SCU設置為1,CS設置為1,以及,WE設置為0時,將在該TCAM芯片中執行單時鐘週期的寫入操作。Figure 3C illustrates a sequence of representative write operations related to the architecture of Figure 3A, according to some embodiments. This figure illustrates the relationship between the signals of the buses CLK, SCU, WE, A, SDI and MASKB. When SCU is set to 1, CS is set to 1, and WE is set to 0, a write operation of a single clock cycle will be performed in the TCAM chip.

信號A提供將被寫入的列的地址。信號SDI的內容表示將被寫入至尋址TCAM資料列的資料輸入。信號MASKB的內容表示將被寫入至尋址TCAM掩碼列的局部掩碼。在這個序列中,SDI的內容和MASKB的內容都在單個的時鐘週期中被寫入。Signal A provides the address of the column to be written. The content of signal SDI represents the data input to be written to the addressed TCAM row. The content of signal MASKB indicates the local mask to be written to the addressed TCAM mask column. In this sequence, both the contents of SDI and the contents of MASKB are written in a single clock cycle.

如上所述,根據本申請,可以使用不同的架構來實現TCAM。不管使用的具體架構如何,這裡描述的TCAM被配置為在相同的時鐘週期中執行資料寫入和掩碼寫入。在一些實施例中,在時鐘週期的第一部分中執行資料寫入,以及,在相同時鐘週期的第二部分中執行掩碼寫入(可以理解地,相反的順序也是可行的,本發明對此不做任何限制)。例如,資料寫入可由時鐘週期的第一邊沿(上升沿或下降沿)觸發,而掩碼寫入可由相同時鐘週期的第二邊沿觸發。在一些實施例中,解碼器被用來以這種方式啟用寫入操作。As mentioned above, according to the present application, different architectures can be used to realize TCAM. Regardless of the specific architecture used, the TCAM described here is configured to perform data writes and mask writes in the same clock cycle. In some embodiments, the data write is performed in a first part of a clock cycle, and the mask write is performed in a second part of the same clock cycle (it will be understood that the reverse order is also possible, and the present invention without any restrictions). For example, data writing can be triggered by the first edge (rising or falling) of a clock cycle, while mask writing can be triggered by the second edge of the same clock cycle. In some embodiments, a decoder is used to enable write operations in this manner.

第4A圖根據一些實施例描繪了示例性的解碼器。在該示例中,TCAM陣列如第1A圖所討論的那樣佈置。每列(無論是資料列還是掩碼列)都耦接到輸入寄存器(圖中標記為“WLDRV”)。控制信號XPZ_EN_EVEN和XPZ_EN_ODD用於控制寄存器將其各自內容傳送到TCAM的列的時序。解碼器(圖中標記為“XDECODER”),用於選擇將被更新的TCAM條目。根據地址總線A的值,選擇適當的WLDRV,然後,根據XPZ_EN_ODD或XPZ_EN_EVEN的狀態,使用該WLDRV啟用奇數或偶數WL總線。在輸入總線SDI和MASKB中接收到的資料通過信號BL/BLB發送。根據一些實施例,這些控制信號的例子示於第4B圖中。在這個例子中,控制信號XPZ_EN_EVEN和XPZ_EN_ODD具有與時鐘CLK相同的頻率。此外,控制信號XPZ_EN_EVEN和XPZ_EN_ODD相對於彼此是相位偏移的(phase-shifted)。控制信號XPZ_EN_EVEN的邊沿(例如,上升沿)觸發資料寫入至特定資料列。類似地,控制信號XPZ_EN_ODD的邊沿(例如,緊跟在XPZ_EN_EVEN的觸發上升沿之後的上升沿)觸發局部掩碼寫入至相應的(例如,相鄰)掩碼列。Figure 4A depicts an exemplary decoder, according to some embodiments. In this example, the TCAM array is arranged as discussed in Figure 1A. Each column (whether data or mask) is coupled to an input register (labeled "WLDRV" in the diagram). The control signals XPZ_EN_EVEN and XPZ_EN_ODD are used to control the timing at which the registers transfer their respective contents to the columns of the TCAM. Decoder (labeled "XDECODER" in the figure), used to select the TCAM entries to be updated. Depending on the value of address bus A, the appropriate WLDRV is selected and then used to enable the odd or even WL bus depending on the state of XPZ_EN_ODD or XPZ_EN_EVEN. The material received on the input buses SDI and MASKB is sent on the signal BL/BLB. Examples of these control signals are shown in Figure 4B, according to some embodiments. In this example, the control signals XPZ_EN_EVEN and XPZ_EN_ODD have the same frequency as the clock CLK. Furthermore, the control signals XPZ_EN_EVEN and XPZ_EN_ODD are phase-shifted relative to each other. The edge (for example, rising edge) of the control signal XPZ_EN_EVEN triggers data writing into a specific data column. Similarly, an edge of the control signal XPZ_EN_ODD (eg, the rising edge immediately following the triggering rising edge of XPZ_EN_EVEN) triggers writing of the partial mask to the corresponding (eg, adjacent) mask column.

在申請專利範圍中使用諸如“第一”,“第二”,“第三”等序數術語來修改申請專利要素,其本身並不表示一個申請專利要素相對於另一個申請專利要素的任何優先權、優先級或順序,或執行方法動作的時間順序,但僅用作標記,以使用序數詞來區分具有相同名稱的一個申請專利要素與具有相同名稱的另一個元素要素。The use of ordinal terms such as "first", "second", "third", etc. in a claim to modify a claimed element does not in itself indicate any priority of one claimed element over another claimed element , priority or order, or chronological order in which method actions are performed, but are used only as markers to use ordinal numbers to distinguish one patentable element having the same name from another element element having the same name.

雖然已經對本發明實施例及其優點進行了詳細說明,但應當理解的係,在不脫離本發明的精神以及申請專利範圍所定義的範圍內,可以對本發明進行各種改變、替換和變更,例如,可以通過結合不同實施例的若干部分來得出新的實施例。所描述的實施例在所有方面僅用於說明的目的而並非用於限制本發明。本發明的保護範圍當視所附的申請專利範圍所界定者為准。所屬技術領域中具有通常知識者皆在不脫離本發明之精神以及範圍內做些許更動與潤飾。Although the embodiments of the present invention and their advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made to the present invention without departing from the spirit of the present invention and within the scope defined by the patent scope of the application, for example, New embodiments can be obtained by combining parts of different embodiments. The described embodiments are in all respects for the purpose of illustration only and are not intended to limit the invention. The scope of protection of the present invention should be defined by the scope of the appended patent application. Those skilled in the art can make some changes and modifications without departing from the spirit and scope of the present invention.

200,300:控制電路 202,302:TCAM 250,252,254,350,352,354:觸發器 256,258,346,348,356,358:邏輯單元 260,262,360,362:多工器 264,364:控制單元 270,370:TCAM行 366,368:電晶體 200,300: control circuit 202,302: TCAM 250,252,254,350,352,354: triggers 256,258,346,348,356,358: logic unit 260,262,360,362: multiplexer 264,364: Control unit 270,370: TCAM row 366,368: Transistor

通過閱讀後續的詳細描述和實施例可以更全面地理解本發明,該實施例參照附圖給出。 第1A圖是根據一些實施例示出的一種三態內容可尋址記憶體(TCAM)的方框示意圖。 第1B圖是根據一些實施例的示意表,其可用於確定第1A圖的TCAM的狀態。 第2A圖是根據一些實施例示出的TCAM架構的方框示意圖。 第2B圖是根據一些實施例示出的說明第2A圖的TCAM架構的非限制性實現的方框示意圖。 第2C圖是根據一些實施例說明結合第2A圖的TCAM架構使用的控制信號的示意圖。 第3A圖是根據一些實施例說明另一TCAM架構的方框示意圖。 第3B圖是根據一些實施例說明第3A圖的TCAM架構的非限制性實現的方框示意圖。 第3C圖是根據一些實施例說明結合第3A圖的TCAM架構使用的控制信號的示意圖。 第4A圖是根據一些實施例說明耦接到解碼器的TCAM陣列的方框示意圖。 第4B圖是根據一些實施例說明結合第4A圖的TCAM使用的控制信號的示意圖。 A more complete understanding of the invention can be obtained by reading the ensuing detailed description and the examples, which are given with reference to the accompanying drawings. FIG. 1A is a schematic block diagram of a tri-state content addressable memory (TCAM) according to some embodiments. Figure 1B is a schematic diagram that may be used to determine the status of the TCAM of Figure 1A, according to some embodiments. Figure 2A is a block schematic diagram of a TCAM architecture according to some embodiments. Figure 2B is a block schematic diagram illustrating a non-limiting implementation of the TCAM architecture of Figure 2A, shown according to some embodiments. Figure 2C is a schematic diagram illustrating control signals used in conjunction with the TCAM architecture of Figure 2A, according to some embodiments. FIG. 3A is a block diagram illustrating another TCAM architecture according to some embodiments. Figure 3B is a block schematic diagram illustrating a non-limiting implementation of the TCAM architecture of Figure 3A, according to some embodiments. Figure 3C is a schematic diagram illustrating control signals used in conjunction with the TCAM architecture of Figure 3A, according to some embodiments. Figure 4A is a block schematic diagram illustrating a TCAM array coupled to a decoder, according to some embodiments. Figure 4B is a schematic diagram illustrating control signals used in conjunction with the TCAM of Figure 4A, according to some embodiments.

在下面的詳細描述中,為了說明的目的,闡述了許多具體細節,以便所屬技術領域中具有通常知識者能夠更透徹地理解本發明實施例。然而,顯而易見的是,可以在沒有這些具體細節的情況下實施一個或複數個實施例,不同的實施例或不同實施例中披露的不同特徵可根據需求相結合,而並不應當僅限於附圖所行舉的實施例。In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to enable those skilled in the art to better understand the embodiments of the present invention. It is evident, however, that one or more embodiments may be practiced without these specific details, that different embodiments or different features disclosed in different embodiments may be combined as desired and should not be limited to the drawings Examples of what was done.

200:控制電路 200: control circuit

202:TCAM 202: TCAM

Claims (15)

一種用於寫入三態內容可尋址記憶體TCAM的裝置,包括該TCAM和控制電路,該TCAM包括:第一多列存儲單元,被配置為存儲多個相應的資料輸入;以及,第二多列存儲單元,被配置為存儲多個相應的掩碼;該控制電路被配置為:在第一時鐘週期中將資料輸入寫入該第一多列存儲單元的列中;以及,在該第一時鐘週期中將掩碼寫入該第二多列存儲單元的列中;其中,該TCAM還包括第一總線和第二總線,以及,該控制電路被配置為:利用該第一總線將該資料輸入寫入該第一多列存儲單元的列中;以及,利用該第二總線將該掩碼寫入該第二多列存儲單元的列中。 An apparatus for writing a tri-state content addressable memory TCAM, comprising the TCAM and a control circuit, the TCAM comprising: a first multi-column memory cell configured to store a plurality of corresponding data inputs; and, a second A multi-column memory unit configured to store a plurality of corresponding masks; the control circuit is configured to: write data input into a column of the first multi-column memory unit in a first clock cycle; and, in the second clock cycle In a clock cycle, the mask is written into the column of the second multi-column storage unit; wherein, the TCAM also includes a first bus and a second bus, and the control circuit is configured to: utilize the first bus to the data input is written into the columns of the first multi-column memory unit; and, using the second bus, the mask is written into the column of the second multi-column memory unit. 如請求項1之裝置,其中,該控制電路被配置為:響應於該第一時鐘週期的第一邊沿而將該資料輸入寫入該第一多列存儲單元的列中,以及,響應於該第一時鐘週期的第二邊沿而將該掩碼寫入該第二多列存儲單元的列中。 The device of claim 1, wherein the control circuit is configured to: write the data input into the row of the first multi-row memory unit in response to the first edge of the first clock cycle, and, in response to the The second edge of the first clock cycle writes the mask into the columns of the second multi-column memory cells. 如請求項1之裝置,其中,該第一多列存儲單元的列和該第二多列存儲單元的相應列共享公共的地址。 The device of claim 1, wherein the columns of the first multi-rank memory unit and the corresponding columns of the second multi-rank memory unit share a common address. 如請求項1之裝置,其中,該第一多列存儲單元的列和該第二多列存儲單元的相應列彼此相鄰。 The device of claim 1, wherein the columns of the first multi-column memory unit and the corresponding columns of the second multi-column memory unit are adjacent to each other. 如請求項1之裝置,其中,該控制電路還被配置為利用該第一總線在該第一多列存儲單元中查找關鍵字。 The device according to claim 1, wherein the control circuit is further configured to use the first bus to search for a key in the first multi-column memory unit. 如請求項1或5之裝置,其中,該控制電路還被配置為利用該第二總線在查找操作的期間掩碼該TCAM的一個或多個行。 The device of claim 1 or 5, wherein the control circuit is further configured to mask one or more rows of the TCAM during a seek operation using the second bus. 如請求項1之裝置,其中,該TCAM還包括第三總線,以及,該 控制電路被配置為:在查找操作的期間利用該第三總線掩碼該TCAM的一個行或多個行。 The device according to claim 1, wherein the TCAM further includes a third bus, and the The control circuit is configured to mask the row or rows of the TCAM with the third bus during a seek operation. 如請求項1之裝置,其中,該控制電路還被配置為使用該第二總線在該第一多列存儲單元中查找關鍵字。 The device according to claim 1, wherein the control circuit is further configured to use the second bus to search for a key in the first multi-column memory unit. 如請求項1或5之裝置,其中,該控制電路還被配置為利用該第一總線在查找操作的期間掩碼該TCAM的一個或多個行。 The device of claim 1 or 5, wherein the control circuit is further configured to mask one or more rows of the TCAM during a seek operation using the first bus. 一種用於寫入三態內容可尋址記憶體(TCAM)的方法,包括:在第一時鐘週期中,將資料輸入寫入第一多列存儲單元的列中,其中,該第一多列存儲單元被配置為存儲多個相應的資料輸入;以及,在該第一時鐘週期中,將掩碼寫入第二多列存儲單元的列中,其中,該第二多列存儲單元被配置為存儲多個相應的掩碼;其中,寫入該資料輸入包括:利用第一總線寫入該資料輸入;以及,寫入該掩碼包括:利用第二總線寫入該掩碼。 A method for writing a tri-state content addressable memory (TCAM), comprising: writing data input into columns of a first plurality of columns of memory cells during a first clock cycle, wherein the first plurality of columns the storage unit is configured to store a plurality of corresponding data inputs; and, during the first clock cycle, the mask is written into a column of a second multi-column of storage unit, wherein the second multi-column of storage unit is configured to storing a plurality of corresponding masks; wherein, writing the data input includes: using the first bus to write the data input; and writing the mask includes: using the second bus to write the mask. 如請求項10之方法,其中,寫入該資料輸入包括:響應於該第一時鐘週期的第一邊沿寫入該資料輸入;以及,寫入該掩碼包括:響應於該第一時鐘週期的第二邊沿寫入該掩碼。 The method of claim 10, wherein writing the data input includes: writing the data input in response to a first edge of the first clock cycle; and writing the mask includes: responding to a first edge of the first clock cycle The second edge writes the mask. 如請求項10之方法,其中,該第一多列存儲單元的列和該第二多列存儲單元的列彼此相鄰。 The method of claim 10, wherein the columns of the first multi-column memory unit and the columns of the second multi-column memory unit are adjacent to each other. 如請求項10之方法,其中,該方法還包括:利用該第一總線在該第一多列存儲單元中中查找關鍵字。 The method according to claim 10, further comprising: using the first bus to search for a key in the first multi-column storage unit. 如請求項13之方法,其中,該方法還包括:利用該第二總線在查找操作的期間掩碼該TCAM的一個或多個行。 The method of claim 13, further comprising: masking one or more rows of the TCAM during a seek operation using the second bus. 如請求項10之方法,其中,寫入該資料輸入包括:響應於該第一時鐘週期的第一邊沿寫入該資料輸入,以及,寫入該掩碼包括:在該第一 邊沿的預定時間間隔後寫入該掩碼。 The method of claim 10, wherein writing the data input includes: writing the data input in response to a first edge of the first clock cycle, and writing the mask includes: The mask is written after a predetermined interval of edges.
TW110132730A 2020-10-20 2021-09-03 An apparatus for writing ternary content addressable memory devices and the related method TWI802980B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/074,789 US11404121B2 (en) 2019-10-22 2020-10-20 Methods for writing ternary content addressable memory devices
US17/074,789 2020-10-20

Publications (2)

Publication Number Publication Date
TW202217805A TW202217805A (en) 2022-05-01
TWI802980B true TWI802980B (en) 2023-05-21

Family

ID=81194639

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110132730A TWI802980B (en) 2020-10-20 2021-09-03 An apparatus for writing ternary content addressable memory devices and the related method

Country Status (2)

Country Link
CN (1) CN114388030A (en)
TW (1) TWI802980B (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998007160A2 (en) * 1996-08-13 1998-02-19 Motorola Inc. Ternary cam memory architecture and methodology
EP1083572A1 (en) * 1999-09-10 2001-03-14 Sibercore Technologies, Inc. Three port content addressable memory device and methods for implementing the same
US20020129198A1 (en) * 1999-09-23 2002-09-12 Nataraj Bindiganavale S. Content addressable memory with block-programmable mask write mode, word width and priority
US6757779B1 (en) * 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
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
US20070058407A1 (en) * 2005-09-12 2007-03-15 Renesas Technology Corp. Semiconductor memory device
US7505295B1 (en) * 2004-07-01 2009-03-17 Netlogic Microsystems, Inc. Content addressable memory with multi-row write function
US8848412B1 (en) * 2013-07-05 2014-09-30 Arm Limited Ternary content addressable memory
US9111615B1 (en) * 2013-10-01 2015-08-18 Xilinx, Inc. RAM-based ternary content addressable memory
US20190392889A1 (en) * 2018-06-26 2019-12-26 Mediatek Singapore Pte. Ltd. Self-time scheme for optimizing performance and power in dual rail power supplies memories

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998007160A2 (en) * 1996-08-13 1998-02-19 Motorola Inc. Ternary cam memory architecture and methodology
EP1083572A1 (en) * 1999-09-10 2001-03-14 Sibercore Technologies, Inc. Three port content addressable memory device and methods for implementing the same
US20020129198A1 (en) * 1999-09-23 2002-09-12 Nataraj Bindiganavale S. Content addressable memory with block-programmable mask write mode, word width and priority
US6757779B1 (en) * 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
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
US7505295B1 (en) * 2004-07-01 2009-03-17 Netlogic Microsystems, Inc. Content addressable memory with multi-row write function
US20070058407A1 (en) * 2005-09-12 2007-03-15 Renesas Technology Corp. Semiconductor memory device
US8848412B1 (en) * 2013-07-05 2014-09-30 Arm Limited Ternary content addressable memory
US9111615B1 (en) * 2013-10-01 2015-08-18 Xilinx, Inc. RAM-based ternary content addressable memory
US20190392889A1 (en) * 2018-06-26 2019-12-26 Mediatek Singapore Pte. Ltd. Self-time scheme for optimizing performance and power in dual rail power supplies memories

Also Published As

Publication number Publication date
TW202217805A (en) 2022-05-01
CN114388030A (en) 2022-04-22

Similar Documents

Publication Publication Date Title
US6262937B1 (en) Synchronous random access memory having a read/write address bus and process for writing to and reading from the same
US6310880B1 (en) Content addressable memory cells and systems and devices using the same
US6199140B1 (en) Multiport content addressable memory device and timing signals
US6137707A (en) Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6856527B1 (en) Multi-compare content addressable memory cell
US7139182B2 (en) Cutting CAM peak power by clock regioning
US6751110B2 (en) Static content addressable memory cell
US20070288690A1 (en) High bandwidth, high capacity look-up table implementation in dynamic random access memory
US11557328B2 (en) Simultaneous write and search operation in a content addressable memory
US6445645B2 (en) Random access memory having independent read port and write port and process for writing to and reading from the same
US7525867B2 (en) Storage circuit and method therefor
JP2000353388A (en) Improvement of contents referable memory
US7251707B1 (en) Content based content addressable memory block enabling using search key
US7609569B2 (en) System and method for implementing row redundancy with reduced access time and reduced device area
US6778461B2 (en) Dynamic random access memory device externally functionally equivalent to a static random access memory
US11894054B2 (en) Methods for writing ternary content addressable memory devices
TWI802980B (en) An apparatus for writing ternary content addressable memory devices and the related method
US11404121B2 (en) Methods for writing ternary content addressable memory devices
EP3813068A1 (en) Methods for writing ternary content addressable memory devices
US8023300B1 (en) Content addressable memory device capable of parallel state information transfers
Deshpande et al. A 5nm Fin-FET 2G-search/s 512-entry x 220-bit TCAM with Single Cycle Entry Update Capability for Data Center ASICs
TWI777456B (en) A ternary content addressable memory device and operating method therefor
JPH05113929A (en) Microcomputer
EP0805457A2 (en) Contents addressable memories
IL148832A (en) Random access memory having read/write address bus and process for writing to and reading from the same