TWI766773B - 多階內容可定址記憶體、多階編碼方法與多階搜尋方法 - Google Patents
多階內容可定址記憶體、多階編碼方法與多階搜尋方法 Download PDFInfo
- Publication number
- TWI766773B TWI766773B TW110127242A TW110127242A TWI766773B TW I766773 B TWI766773 B TW I766773B TW 110127242 A TW110127242 A TW 110127242A TW 110127242 A TW110127242 A TW 110127242A TW I766773 B TWI766773 B TW I766773B
- Authority
- TW
- Taiwan
- Prior art keywords
- digital string
- string data
- data
- bit binary
- multilevel
- Prior art date
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一種多階內容可定址記憶體、多階編碼方法與多階搜尋方法。多階編碼方法包括以下步驟。獲得一多位元二進位資料之一最高十進位數值。設定一數位字串資料之一長度為多位元二進位資料之最高十進位數值。轉換多位元二進位資料為數位字串資料。若多位元二進位資料之一內容為一確切值,則數位字串資料之一標誌位元的數量為確切值。
Description
本揭露是有關於一種記憶體、編碼方法與搜尋方法,且特別是有關於一種多階內容可定址記憶體、多階編碼方法與多階搜尋方法。
內容可定址記憶體(content addressable memory,CAM)係為一種特殊形態記憶體,其可以針對輸入搜尋字組辨識出相同內容之儲存字組所儲存之位址。內容可定址記憶體可以提供多種應用,特別是圖形匹配與搜尋。
一般而言,內容可定址記憶體以二進位形式比對儲存字組與輸入搜尋字組。也就是說,儲存於儲存字組與輸入搜尋字組的資料為二進位之0或1。
本揭露係有關於一種多階內容可定址記憶體、多階編碼方法與多階搜尋方法,其利用將多位元二進位資料轉換為數位字串資料,使得資料可以定義為多種範圍,以進行搜尋與比對。
根據本揭露之一方面,提出一種多階內容可定址記憶體(multilevel content addressable memory,MCAM)之一儲存字組(stored word)或一輸入搜尋字組(input search word)的多階編碼方法。多階編碼方法包括以下步驟。獲得一多位元二進位資料(multilevel-bit binary data)之一最高十進位數值。設定一數位字串資料(digital string data)之一長度為多位元二進位資料之最高十進位數值。轉換多位元二進位資料為數位字串資料。若多位元二進位資料之一內容為一確切值,則數位字串資料之一標誌位元(indicating bit)的數量為確切值。
根據本揭露之另一方面,提出一種多階內容可定址記憶體(multilevel content addressable memory,MCAM)之多階搜尋方法。多階搜尋方法包括以下步驟。儲存數個儲存字組於數個NAND串。輸入一輸入搜尋字組至這些NAND串。這些儲存字組與輸入搜尋字組各被從一多位元二進位資料轉換為一數位字串資料。若多位元二進位資料之一內容為一確切值,則數位字串資料之一標誌位元的數量為確切值。輸出一比較結果。若輸入搜尋字組之數位字串資料重疊於儲存字組之其中之一的數位字串資料,則比較結果為一匹配訊號。
根據本揭露之再一方面,提出一種多階內容可定址記憶體(multilevel content addressable memory,MCAM)。多階內容可定址記憶體包括一輸入編碼器、一記憶體陣列及一輸出解碼器。輸入編碼器用以接收一輸入搜尋字組。記憶體陣列包括數個NAND串。各個NAND串用以儲存一儲存字組。各個儲存字組與輸入搜尋字組各被從一多位元二進位資料轉換為一數位字串資料。若多位元二進位資料之一內容為一確切值,則數位字串資料之一標誌位元的數量為確切值。輸出解碼器用以自這些NAND串接收數個比較結果。
為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100:多階內容可定址記憶體(MCAM)
110:輸入編碼器
120:記憶體陣列
130:輸出編碼器
CL:記憶胞
dij:多位元二進位資料
dsij:數位字串資料
qj:多位元二進位資料
qsj:數位字串資料
RSi,RSij:比對結果
S110,S120,S130,S210,S220,S230:步驟
STi:NAND串
TR1,TR2:電晶體
WDi:儲存字組
WL:字元線
WQ:輸入搜尋字組
第1圖繪示根據一實施例之多階內容可定址記憶體(multilevel content addressable memory,MCAM)。
第2圖說明輸入搜尋字組與儲存字組的內容。
第3圖繪示MCAM之儲存字組或輸入搜尋字組之多階編碼方法的流程圖。
第4圖繪示一NAND串之一部分,其儲存儲存字組之數位字串資料之其中之一。
第5圖繪示根據一實施例之記憶體陣列。
第6圖繪示堆疊於同一NAND串之數位字串資料。
第7圖繪示根據堆疊數位字串資料之記憶體陣列。
第8圖繪示儲存字組被分割為數個部分。
第9~14圖示例說明數位字串資料與數位字串資料之比對程序。
第15圖繪示根據一實施例之MCAM之多階搜尋方法的流程圖。
請參照第1圖,其繪示根據一實施例之多階內容可定址記憶體(multilevel content addressable memory,MCAM)100。MCAM 100包括一輸入編碼器110、一記憶體陣列120及一輸出編碼器130。記憶體陣列120包括數個NAND串STi。各個NAND串STi儲存一儲存字組WDi。輸入編碼器110接收一輸入搜尋字組WQ。輸入搜尋字組WQ與這些儲存字組WDi進行比對,並輸出數個比對結果RSi。輸出編碼器130自這些NAND串STi接收比對結果RSi。舉例來說,當其中一個儲存字組WDi匹配於輸入搜尋字組WQ,則其比對結果RSi為一匹配訊號,例如是「1」;當其中一個儲存字組WDi不匹配於輸入搜尋字組WQ,則其比對結果RSi為不匹配訊號,例如是「0」。輸出編碼器130輸出儲存字組WDi匹配於輸入搜尋字組WQ之NAND串的位址。
請參照第2圖,其說明輸入搜尋字組WQ與儲存字組WDi的內容。在一實施例中,輸入搜尋字組WQ係由數個多位元二進位資料(multilevel-bit binary data)qj組成。如第2圖所示,多位元二進位資料qj例如是「111」、「011」、「001」及「000」。「111」、「011」、「001」及「000」之十進位數值分別為「7」、「3」、「1」及「0」。儲存字組WDi係由多位元二進位資料dij組成。如第2圖所示,多位元二進位資料dij例如是「010」、「100」、「111」及「001」。「010」、「100」、「111」及「001」之十進位數值分別為「2」、「4」、「7」及「1」。
在本實施例中,各個多位元二進位資料qj被轉換為數位字串資料(digital string data)qsj。舉例來說,「111」、「011」、「001」及「000」分別被轉換為「1111111」、「00001111」、「0000001」及「0000000」。
同樣的,各個多位元二進位資料dij被轉換為數位字串資料dsij。舉例來說,「010」、「100」、「111」及「001」分別被轉換為「0000011」、「0001111」、「1111111」及「0000001」。
請參照表一,其說明根據一實施例將多位元二進位資料qj、dij轉換為數位字串資料qsj、dsij的例子。多位元二進位資料qj、dij的十進位數值為0、1、...、6、7。多位元二進位資料qj、dij的最高十進位數值為7。數位字串資料qsj、dsij的長度等於或大於多位元二進位資料qj、dij之最高十進位數值。在數位字串資料qsj、dsij中,「1」為標誌位元(indicating bit)。在表
一的例子中,多位元二進位資料qj、dij的十進位數值係為確切值,數位字串資料qsj、dsij之標誌位元(即「1」)的數量即為此確切值。數位字串資料qsj、dsij的長度為多位元二進位資料qj、dsij的最高十進位數值(此處為三位元,其最高二進位數值為「111」、最高十進位數值為「7」)。
再者,如表一所示,數位字串資料qsj、dsij之標誌位元(即「1」)堆積於數位字串資料qsj、dsij之右側。在其他實施例中,數位字串資料qsj、dsij之標誌位元(即「1」)可以堆積於數位字串資料qsj、dsij之左側或按照一預定規則堆積。
根據上述內容,提供了一種儲存字組WDi或輸入搜尋字組WQ之多階編碼方法。請參照第3圖,其繪示MCAM 100
之儲存字組WDi或輸入搜尋字組WQ之多階編碼方法的流程圖。在步驟S110中,獲得多位元二進位資料qj、dij之最高十進位數值。在步驟S120中,設定數位字串資料qsj、dsij之一長度為多位元二進位資料qj、dij之最高十進位數值。接著,在步驟S130中,轉換多位元二進位資料qj、dij為數位字串資料qsj、dsij。
在其他實施例中,多位元二進位資料qj、dij之內容可以是一範圍。請參照表二,其說明根據一實施例之數位字串資料qsj、dsij。當多位元二進位資料qj、dij為一範圍,則在數位字串資料qsj、dsij使用通配符位元(wildcard bit)(即「X」)。通配符位元(即「X」)又稱為隨意位元(don’t care bit)。
如表二第7列所示,多位元二進位資料qj、dij之十進位數值的內容係為4到6的範圍。此範圍之最高十進位數值為6,此範圍之最低十進位數值為4。範圍視窗為3。數位字串資料qsj、dsij之標誌位元(即「1」)的數量為4。數位字串資料qsj、dsij之通配符位元(即「X」)的數量為2。在數位字串資料qsj、dsij中,通配符位元(即「X」)接續於標誌位元(即「1」)之後堆積。在數位字串資料qsj、dsij中,標誌位元(即「1」)之數量與通配符位元(即「X」)之數量的和為6。
也就是說,標誌位元(即「1」)與通配符位元(即「X」)係按照下式(1)到(3)之規則編排。
標誌位元之數量=範圍之最低十進位數值..................(1)
通配符位元之數量=範圍視窗-1.............................(2)
標誌位元之數量+通配符位元之數量=範圍之最高十進位數值............................................(3)
請參照第4圖,其繪示一NAND串STi之一部分,其儲存儲存字組WDi之數位字串資料dsij之其中之一。如第4圖所示,多位元二進位資料dij之十進位數值係為3到6之範圍,數位字串資料dsij係為「0XXX111」。數位字串資料dsij可以依序儲存於NAND串STi中。NAND串STi之記憶胞CL之兩個電晶體TR1、TR2一起用來定義「1」、「0」或「X」。舉例來說,當電晶體TR1被編程為低電壓準位且電晶體TR2被編程為高電壓準位,則記憶胞CL之內容被定義為「0」。當電晶體TR1被編程為高電壓準位
且電晶體TR2播編程為低電壓準位,則記憶胞CL之內容被定義為「1」。當電晶體TR1被編程為低電壓準位且電晶體TR2被編程為低電壓準位,則記憶胞CL之內容被定義為「X」。在其他實施例中,也可以應用其他的編碼方式來定義「1」、「0」及「X」。
請參照第5圖,其繪示根據一實施例之記憶體陣列120。數個NAND串STi可以排列於記憶體陣列120中,以作為同步搜尋之資料庫。輸入至字元線WL之輸入搜尋字組WQ將與這些NAND串之所有儲存字組WDi進行比對。也就是說,數筆資料可以同時進行一次性比對,而能夠達成超高速平行搜尋功能。
請參照第6圖,其繪示堆疊於同一NAND串STi之數位字串資料dsij。如果記憶體陣列120具有充足數量的字元線WL,儲存字組WDi之數位字串資料dsij可以堆疊於同一NAND串STi中。
請參照第7圖,其繪示根據堆疊數位字串資料dsij之記憶體陣列120。堆疊數位字串資料dsij之NAND串STi可以排列於記憶體陣列120內,以作為同步搜尋的資料庫。輸入搜尋字組WQ之數位字串資料qsj輸入至字元線WL,並與所有儲存字組WDi之數位字串資料dsij進行比對。也就是說,數筆資料可以同時進行一次性比對,而能夠達成超高速平行搜尋功能。
請參照第8圖,其繪示儲存字組WDi被分割為數個部分。如果儲存字組WDi比一個NAND串STi還要長,則可以將儲存字組WDi分割為數個部分,並儲存於多個NAND串STi。數位字串
資料qsj則被輸入至對應的部分。多個部份的多個比對結果RSij可以透過AND運算來整合,以獲得一個比對結果RSi。
請參照第9~14圖,其示例說明數位字串資料qsj與數位字串資料dsij之比對程序。如第9圖所示,數位字串資料qsj係為5,數位字串資料dsij係為5。數位字串資料qsj等於數位字串資料dsij,故比對結果RSij為匹配訊號,例如是「1」。
如第10圖所示,數位字串資料qsj係為2,數位字串資料dsij係為4。數位字串資料qsj沒有重疊於數位字串資料dsij,故比對結果RSij為不匹配訊號,例如是「0」。
如第11圖所示,數位字串資料qsj係為2~4,數位字串資料dsij係為5~6。數位字串資料qsj沒有重疊於數位字串資料dsij,故比對結果RSij為不匹配訊號,例如是「0」。
如第12圖所示,數位字串資料qsj係為4,數位字串資料dsij係為3~6。數位字串資料qsj重疊於數位字串資料dsij,故比對結果RSij為匹配訊號,例如是「1」。
如第13圖所示,數位字串資料qsj係為2~4,數位字串資料dsij係為4。數位字串資料qsj重疊於數位字串資料dsij,故比對結果RSij為匹配訊號,例如是「1」。
如第14圖所示,數位字串資料qsj係為2~4,數位字串資料dsij係為4~6。數位字串資料qsj重疊於數位字串資料dsij,故比對結果RSij為匹配訊號,例如是「1」。
如上所述,提供了MCAM 100之一種多階搜尋方法。請參照第15圖,其繪示根據一實施例之MCAM 100之多階搜尋方法的流程圖。在步驟S210中,儲存至少一儲存字組WDi於至少一NAND串STi中。接著,在步驟S220中,將輸入搜尋字組WQ輸入至NAND串STi。然後,在步驟S230中,輸出比對結果RSi。當輸入搜尋字組WQ之數位字串資料qsj重疊於儲存字組WDi之數位字串資料dsij,比對結果RSi則為匹配訊號,例如是「1」。當輸入搜尋字組WQ之數位字串資料qsj未重疊於儲存字組WDi之數位字串資料dsij,比對結果RSi則為不匹配訊號,例如是「0」。
根據上述實施例,標誌位元(即「1」)與通配符位元(即「X」)可以用來定義數位字串資料qsj、dsij的內容。在一實施例中,標誌位元也可以是「0」。請參照表三,其示例說明從多位元二進位資料qj、dij轉換為數位字串資料qsj、dsij。在表三的例子中,多位元二進位資料qj、dij之內容為確切值,數位字串資料qsj、dsij之標誌位元(即「0」)的數量係為此確切值。
在上述實施例中,數位字串資料qsj、dsij之標誌位元(即「1」或「0」)堆積於數位字串資料qsj、dsij之右側。在其他實施例中,數位字串資料qsj、dsij之標誌位元(即「1」或「0」)可以堆積於數位字串資料qsj、dsij之左側,或者按照一預定順序堆積。請參照表四,數位字串資料qsj、dsij之標誌位元(即「1」)堆積於數位字串資料qsj、dsij之左側。
請參照表五,數位字串資料qsj、dsij之標誌位元(即「1」)按照一預定規則堆積。舉例來說,標誌位元(即「1」)交錯地排列於數位字串資料qsj、dsij之左側與右側。
根據上述各種實施例,利用將多位元二進位資料轉換為數位字串資料,使得資料可以定義為多種範圍,以進行搜尋與比對。此外,數筆資料可以同時進行一次性比對,而能夠達成超高速平行搜尋功能。舉例來說,NAND晶片例如是具有16KB(=128kb)感測能力,MCAM 100則可以同時進行128k串的比對程序。
綜上所述,雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
dij:多位元二進位資料
dsij:數位字串資料
qj:多位元二進位資料
qsj:數位字串資料
WDi:儲存字組
WQ:輸入搜尋字組
Claims (10)
- 一種多階內容可定址記憶體(multilevel content addressable memory,MCAM)之一儲存字組(stored word)或一輸入搜尋字組(input search word)的多階編碼方法,包括:獲得一多位元二進位資料(multilevel-bit binary data)之一最高十進位數值;設定一數位字串資料(digital string data)之一長度為該多位元二進位資料之該最高十進位數值;轉換該多位元二進位資料為該數位字串資料,其中若該多位元二進位資料之一內容為一確切值,則該數位字串資料之一標誌位元(indicating bit)的數量為該確切值。
- 如請求項1所述之多階編碼方法,其中該數位字串資料之該標誌位元堆積於該數位字串資料之右側或左側。
- 如請求項1所述之多階編碼方法,其中該數位字串資料之該標誌位元根據一預定順序堆積。
- 如請求項1所述之多階編碼方法,其中若該多位元二進位資料之該內容為從一低十進位數值到一高十進位數值之一範圍,該數位字串資料之該標誌位元的數量為該低十進位數 值,該數位字串資料之該標誌位元的數量與該數位字串資料之一通配符位元(wildcard bit)的數量之和為該高十進位數值。
- 如請求項4所述之多階編碼方法,其中若該多位元二進位資料之該內容為該範圍,則該通配符位元接續於該標誌位元之後堆積。
- 一種多階內容可定址記憶體(multilevel content addressable memory,MCAM)之多階搜尋方法,包括:儲存複數個儲存字組於複數個NAND串;輸入一輸入搜尋字組至該些NAND串,其中該些儲存字組與該輸入搜尋字組各被從一多位元二進位資料轉換為一數位字串資料,若該多位元二進位資料之一內容為一確切值,則該數位字串資料之一標誌位元的數量為該確切值;以及輸出一比較結果,其中若該輸入搜尋字組之該數位字串資料重疊於該些儲存字組之其中之一之該數位字串資料,則該比較結果為一匹配訊號;其中該數位字串資料之一長度設定為該多位元二進位資料之一最高十進位數值。
- 如請求項6所述之多階搜尋方法,其中該數位字串資料之該標誌位元堆積於該數位字串資料之右側或左側,或根據一預定順序堆積。
- 如請求項6所述之多階搜尋方法,其中若該多位元二進位資料之該內容為從一低十進位數值到一高十進位數值之一範圍,該數位字串資料之該標誌位元的數量為該低十進位數值,該數位字串資料之該標誌位元的數量與該數位字串資料之一通配符位元的數量之和為該高十進位數值。
- 如請求項8所述之多階搜尋方法,其中若該多位元二進位資料之該內容為該範圍,則該通配符位元接續於該標誌位元之後堆積。
- 一種多階內容可定址記憶體(multilevel content addressable memory,MCAM),包括:一輸入編碼器,用以接收一輸入搜尋字組;一記憶體陣列,包括複數個NAND串,各該NAND串用以儲存一儲存字組,其中各該儲存字組與該輸入搜尋字組各被從一多位元二進位資料轉換為一數位字串資料,若該多位元二進位資料之一內容為一確切值,則該數位字串資料之一標誌位元的數量為該確切值;以及一輸出解碼器,用以自該些NAND串接收複數個比較結果;其中該數位字串資料之一長度設定為該多位元二進位資料之一最高十進位數值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110127242A TWI766773B (zh) | 2021-07-23 | 2021-07-23 | 多階內容可定址記憶體、多階編碼方法與多階搜尋方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110127242A TWI766773B (zh) | 2021-07-23 | 2021-07-23 | 多階內容可定址記憶體、多階編碼方法與多階搜尋方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI766773B true TWI766773B (zh) | 2022-06-01 |
TW202305803A TW202305803A (zh) | 2023-02-01 |
Family
ID=83103756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110127242A TWI766773B (zh) | 2021-07-23 | 2021-07-23 | 多階內容可定址記憶體、多階編碼方法與多階搜尋方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI766773B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW525186B (en) * | 1999-02-23 | 2003-03-21 | Netlogic Microsystems Inc | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US20100082895A1 (en) * | 2006-05-08 | 2010-04-01 | Jeremy Branscome | Multi-level content addressable memory |
TW201021050A (en) * | 2008-11-19 | 2010-06-01 | Univ Nat Sun Yat Sen | Content addressable memories and data searching and matching circuit for content addressable memories |
TWI508074B (zh) * | 2012-12-28 | 2015-11-11 | Qualcomm Inc | 混合三元內容可定址記憶體 |
US20210142837A1 (en) * | 2018-10-30 | 2021-05-13 | Huawei Technologies Co., Ltd. | Content addressable memory, data processing method, and network device |
-
2021
- 2021-07-23 TW TW110127242A patent/TWI766773B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW525186B (en) * | 1999-02-23 | 2003-03-21 | Netlogic Microsystems Inc | Method and apparatus for determining a longest prefix match in a segmented content addressable memory device |
US20100082895A1 (en) * | 2006-05-08 | 2010-04-01 | Jeremy Branscome | Multi-level content addressable memory |
TW201021050A (en) * | 2008-11-19 | 2010-06-01 | Univ Nat Sun Yat Sen | Content addressable memories and data searching and matching circuit for content addressable memories |
TWI508074B (zh) * | 2012-12-28 | 2015-11-11 | Qualcomm Inc | 混合三元內容可定址記憶體 |
US20210142837A1 (en) * | 2018-10-30 | 2021-05-13 | Huawei Technologies Co., Ltd. | Content addressable memory, data processing method, and network device |
Also Published As
Publication number | Publication date |
---|---|
TW202305803A (zh) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7579968B2 (en) | Encoding of data words using three or more level levels | |
US7904643B1 (en) | Range code compression method and apparatus for ternary content addressable memory (CAM) devices | |
CN100440169C (zh) | 用于快速表查找的存储器和功率有效机构 | |
US7792812B1 (en) | Search engine devices that support high speed parallel decoding of digital search tries | |
US20050010719A1 (en) | Data encoding for fast CAM and TCAM access times | |
JPH11273363A (ja) | 連想メモリ制御回路及び制御方法 | |
Gotlieb | Optimal multi-way search trees | |
TWI766773B (zh) | 多階內容可定址記憶體、多階編碼方法與多階搜尋方法 | |
KR100272153B1 (ko) | 3치기억 반도체기억시스템 | |
US7933885B1 (en) | Longest matching prefix search engine with hierarchical decoders | |
US7152141B2 (en) | Obtaining search results for content addressable memory | |
US20090319867A1 (en) | Memory system and memory access method | |
US7256715B1 (en) | Data compression using dummy codes | |
CN115687177A (zh) | 多阶内容可寻址存储器、多阶编码方法与多阶搜索方法 | |
US10747775B2 (en) | Data conversion device, search system, and method | |
JP4850403B2 (ja) | マグニチュード内容参照可能メモリ | |
EP1162546B1 (en) | In-place memory management for FFT | |
US9129042B2 (en) | Nearest neighbor serial content addressable memory | |
US7336517B2 (en) | Physical priority encoder | |
JPH05174584A (ja) | データ記憶装置 | |
US10198316B2 (en) | Systems and methods for efficient flash memory access | |
JPH11232279A (ja) | 分割探索方法及び装置 | |
TWI806641B (zh) | 記憶體裝置及其操作方法 | |
Pellegrini | Bounds for the bandwidth of the d-ary de Bruijn graph | |
TWI409696B (zh) | 大小比較器以及內含此比較器之內容可定址記憶體與不等寬色譜器 |