TWI789836B - 用於資料搜尋之記憶體裝置及資料搜尋方法 - Google Patents
用於資料搜尋之記憶體裝置及資料搜尋方法 Download PDFInfo
- Publication number
- TWI789836B TWI789836B TW110126677A TW110126677A TWI789836B TW I789836 B TWI789836 B TW I789836B TW 110126677 A TW110126677 A TW 110126677A TW 110126677 A TW110126677 A TW 110126677A TW I789836 B TWI789836 B TW I789836B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- search word
- data
- bit lines
- memory blocks
- Prior art date
Links
Images
Abstract
本揭示係提供一種用於資料搜尋之記憶體裝置及資料搜尋方法。該資料搜尋方法包括以下步驟。接收一搜尋字,並將其分割為複數個區段。將該等區段編碼為複數個編碼區段以分別對應至一記憶體陣列之複數個記憶體區塊。將該等編碼區段引導至該等記憶體區塊以分別進行資料比較而得到一資料比較結果。而後,根據各該等記憶體區塊之各該資料比較結果得到符合該搜尋字之位元線之位址。
Description
本揭示有關於一種記憶體裝置及其操作方法,特別是有關於一種用於資料搜尋之記憶體裝置及資料搜尋方法。
半導體技術日益發展,各種型態與架構的記憶體已廣泛使用於電子裝置之中。記憶體通常具有陣列(array)之型態以有效地對於各記憶體單元進行定址,而能夠快速存取記憶體陣列所儲存之大量資料。
然而,當記憶體陣列之容量大幅成長,對於憶體陣列中的資料進行搜尋所需之時間亦大幅增加;尤其,在目標搜尋字的長度較長的狀況下更將耗費資料搜尋時間。
此外,對於大型記憶體陣列而言,若欲執行較為複雜之資料搜尋,需設置大量的周邊元件,例如:設置大量的字元線驅動器、搜尋線編碼器以及位元線之感應放大器,導致整體記憶體裝置之晶片面積大幅增加而提高晶片製造成本。
以上所述,係為習知技術之大型記憶體陣列於操作上與生產製造上所面臨之技術問題。
為了克服習知技術之大型記憶體陣列之上述技術問題,本揭示提出一種技術方案而設置輸入電路及輸出電路以配合應用於大型記憶體陣列,據以執行記憶體陣列內部之資料搜尋比較,以提升資料搜尋效率。
本揭示的技術方案提供一種用於進行資料搜尋之記憶體裝置,包括一記憶體陣列、一輸入電路以及一輸出電路。其中,記憶體陣列係具有複數個記憶體區塊以分別儲存資料,並具有複數個位元線。並且,輸入電路包括一分割電路、一編碼電路、一多工電路。分割電路係接收一搜尋字,並將該搜尋字分割為複數個區段。編碼電路係將該等區段編碼為複數個編碼區段,該等編碼區段分別對應至該等記憶體區塊。多工電路係將該等編碼區段引導至該等記憶體區塊,各該編碼區段於該記憶體陣列之中分別與各該記憶體區塊進行資料比較以分別得到一資料比較結果。此外,輸出電路係根據各該記憶體區塊之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
本揭示的技術方案亦提供另一種用於進行資料搜尋之記憶體裝置,包括一記憶體陣列、一輸入電路以及一輸出電路。其中,記憶體陣列係具有複數個記憶體區塊以分別儲存資料,並具有複數個位元線。並且,輸入電路係接收並處理一搜尋字,並將該處理後之搜尋字引導至該等記憶體區塊,該處理後之搜尋字於該記憶體陣列之中與該等記憶體區塊進行資料比較以得到複數
個資料比較結果。此外,輸出電路包括複數個處理電路以及一選取電路。該等處理電路係分別對應至該等位元線,並分別處理對應於各該位元線之各該記憶體區塊之各該資料比較結果。選取電路係收集並處理各該位元線之各該資料比較結果,並根據各該位元線之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
本揭示的技術方案提供一種記憶體裝置之資料搜尋方法,包括以下步驟。接收一搜尋字,並將該搜尋字分割為複數個區段。將該等區段編碼為複數個編碼區段,該等編碼區段分別對應至一記憶體陣列之複數個記憶體區塊,並且該記憶體陣列具有複數個位元線。將該等編碼區段引導至該等記憶體區塊。於該記憶體陣列之中將各該編碼區段分別與各該記憶體區塊進行資料比較以分別得到一資料比較結果。根據各該記憶體區塊之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
本揭示的技術方案亦提供另一種記憶體裝置之資料搜尋方法,包括以下步驟。接收並處理一搜尋字。將該處理後之搜尋字引導至一記憶體陣列之複數個記憶體區塊,其中該記憶體陣列具有複數個位元線。分別對應於各該位元線,而將該處理後之搜尋字與各該記憶體區塊進行資料比較以得到複數個資料比較結果。收集並處理各該位元線之各該資料比較結果。根據各該位元線之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
藉由本揭示之上述技術方案,藉由輸入電路對於目標搜尋字進行多樣化的處理,並藉由輸出電路對於記憶體陣列之各記憶體區塊之資料比較結果進行收集統整,能夠有效提升資料搜尋效率。
透過閱讀以下圖式、詳細說明以及申請專利範圍,可見本揭示之其他方面以及優點。
10:記憶體裝置
11:記憶體陣列
12:記憶體單元
13A~13C:記憶體子陣列
20,20A,20B:輸入電路
21:位元解析電路
22:分割電路
23:編碼電路
24,24-1,24-2:多工電路
30,30A,30B,30C:輸出電路
31A,31B,31C:處理電路
32:及閘
32a:第一輸入端
32b:第二輸入端
32c:輸出端
33:暫存器
34:匹配位址編碼器
35:計數器
36:比較器
bi:位元
b1~bm:位元
S:搜尋字
Si:區段
S1~Sk:區段
eSi:編碼區段
eS1~eSk:編碼區段
WL,WLi:字元線
WL1~WLm:字元線
WL’i,WL”i:實體訊號
BLj:位元線
BL1~BLp:位元線
Mi:記憶體區塊
M1~Mk:記憶體區塊
SAi:感應放大器
SA1~SAp:感應放大器
SeL(i),SeL(i)’:搜尋行訊號
S11~S16:步驟
S21~S26:步驟
S31~S33:步驟
第1圖繪示本揭示之用於進行資料搜尋之記憶體裝置10之整體架構之示意圖。
第2圖繪示依據本揭示之第一實施例之輸入電路20A之架構之示意圖。
第3A、3B圖繪示依據本揭示之第一實施例之輸入電路20A之運作方式之示意圖。
第4A圖繪示依據本揭示之第二實施例之輸入電路20B之架構之示意圖。
第4B圖繪示依據本揭示之第二實施例之輸入電路20B之運作方式之示意圖。
第5A圖繪示依據本揭示之第一實施例之輸出電路30A之架構之示意圖。
第5B圖繪示依據本揭示之第一實施例之輸出電路30A之運作方式之示意圖。
第5C圖繪示依據本揭示之第二實施例之輸出電路30B之架構之示意圖。
第5D圖繪示依據本揭示之第三實施例之輸出電路30C之架構之示意圖。
第6A圖繪示本揭示之記憶體裝置之資料搜尋方法之流程圖。
第6B圖繪示第6A圖之步驟S16之第一實施例的詳細實施方式。
第6C圖繪示第6A圖之步驟S16之第二實施例的詳細實施方式。
本揭示之各實施例之詳細說明參照第1圖至第6C圖。
第1圖繪示本揭示之用於進行資料搜尋之記憶體裝置10之整體架構之示意圖。參見第1圖,記憶體裝置10包括記憶體陣列11、輸入電路20以及輸出電路30。
記憶體陣列11包括複數個記憶體單元12,可藉由p個位元線(bit line,BL)BL1、BL2、...、BLp以及m個字元線(word line,WL)WL1、WL2、...、WLm對於各記憶體單元12進行定址(addressing)。各字元線WLi可由兩個實體訊號{WL’i、WL”i}所組成。輸入電路20傳送之搜尋行(search line,SeL)訊號亦由兩個實體訊號{SeL(i),SeL(i)’}所組成,其分別對應至{WL’i、
WL”i}。記憶體陣列11可區分為複數個記憶體區塊(memory block),例如,根據第二方向(垂直方向)將記憶體陣列11區分為k個記憶體區塊M1、M2、...、Mk。
記憶體陣列11係電性連接於輸入電路20與輸出電路30。其中,輸入電路20經由字元線WLi電性連接於記憶體陣列11;輸入電路20並經由字元線WLi傳送搜尋行訊號{SeL(i),SeL(i)’}至記憶體陣列11。而輸出電路30經由位元線BLj電性連接於記憶體陣列11;各位元線BLj經由對應之感應放大器(sense amplifier,SA)SAi傳送資料比較結果至輸出電路30。所述之資料比較結果係為各位元線BLj對應之各記憶體區塊M1所儲存的資料與一搜尋字(search word)S的比較結果。
進一步而言,輸入電路20可接收搜尋字S={b1,b2,...,bm},輸入電路20並執行一或多個輸入功能(input function)以將搜尋字S轉換為各搜尋行訊號{SeL(i),SeL(i)’}。各搜尋行訊號{SeL(i),SeL(i)’}分別傳送至k個記憶體區塊M1、M2、...、Mk而與各記憶體區塊Mi儲存的資料分別進行資料比較,以得到符合搜尋字S之記憶體位址,達成資料搜尋的目的。因此,輸入電路20亦可稱為搜尋字編碼器(search word encoder)。
而本揭示之技術方案的主要特徵在於:將搜尋字S分割為複數個長度較短之區段Si,每個分割後區段Si僅與一個記憶體區塊Mi進行資料比較,以提升記憶體陣列11的整體搜尋效率。每個區段Si與對應記憶體區塊Mi完成資料比較後,係以單
一位元線BLj為基礎,針對於每一位元線BLj之資料比較結果分別傳送至輸出電路30。
輸出電路30執行一或多個輸出功能(output function)以統合處理各位元線BLj之資料比較結果,從中選取出符合搜尋字S的位元線BLj。由於輸出電路30用於優先選取資料比較結果最佳(完全符合搜尋字S或最接近搜尋字S)的位元線BLj之位址,因此輸出電路30亦可稱為優先度編碼器(priority encoder)。
第2圖繪示依據本揭示之第一實施例之輸入電路20A之架構之示意圖,第3A、3B圖繪示依據本揭示之第一實施例之輸入電路20A之運作方式之示意圖。同時參見第2圖及第3A、3B圖,輸入電路20A包括一位元解析電路21、一分割電路22、一編碼電路23以及一多工電路24。
位元解析電路21係接收並暫存搜尋字S={b1,b2,...,bm},並對於各位元b1進行位元解析處理,包括:遮蔽處理(mask)、旋轉處理(rotate)或平移處理(shift)。
在遮蔽處理的態樣中,係將搜尋字S={b1,b2,...,bm}其中特定位置(例如:第n位元至第(n+2)位元)遮蔽為萬用位元或通用符(wildcard bit)「x」而成為搜尋字S={b1,b2,...,bn-1,x,x,x,bn+3,...,bm}。後續於記憶體陣列11中對於搜尋字S進行資料比較時,可忽略搜尋字S的第n位元至第(n+2)位元而不進行比較。
在旋轉處理的態樣中,可依順時針方向(朝向高位元方向)或逆時針方向(朝向低位元方向)將搜尋字S的位元bi進行旋轉。例如:將搜尋字S={b1,b2,...,bm}順時針旋轉兩個位元而成為搜尋字S={bm-1,bm,b1,b2,...,bm-2},或逆時針旋轉兩個位元而成為搜尋字S={b3,b4,...,bm,b1,b2}。
在平移處理的態樣中,係朝向高位元方向或朝向低位元方向將搜尋字S的位元bi進行平移。例如:將搜尋字S={b1,b2,...,bm}朝向高位元平移兩個位元而成為搜尋字S={0,0,b1,b2,...,bm-2},或朝向低位元平移兩個位元而成為搜尋字S={b3,b4,...,bm,0,0}。在其他態樣中,平移後之空缺處的填補位元亦可為「1」或「x」,例如朝向低位元平移兩個位元而成為搜尋字S={b3,b4,...,bm,1,1}或搜尋字S={b3,b4,...,bm,x,x}。
藉由位元解析電路21的遮蔽處理、旋轉處理或平移處理,處理後的搜尋字S能符合字元線WL的不同偏壓狀況(bias condition)而能靈活彈性的對應至記憶體陣列11的字元線WL之位址。
分割電路22將搜尋字S分割為k個區段S1、S2、...、Sk而分別對應至記憶體陣列11的k個記憶體區塊M1、M2、...、Mk。在一種態樣中,各區段S1、S2、...、Sk的長度皆相同(皆為n位元)。據此,第一區段S1={b1,b2,...,bn}對應至記憶體區
塊M1的n個記憶體單元,而第二區段S2={bn+1,bn+2,...,b2n}對應至記憶體區塊M2的n個記憶體單元,依此類推。
於上述態樣中,搜尋字S的總長度為m=k×n個位元,其為記憶體區塊總數量k的整數倍。若搜尋字S的總長度不是記憶體區塊總數量k的整數倍,例如搜尋字S的總長度為m=k×n+2個位元,則忽略搜尋字S的最後兩個位元{bkn+1,bkn+2}不進行資料比較。
編碼電路22對於各區段S1、S2、...,Sk進行編碼而得到編碼區段eS1、eS2、...、eSk,其分別對應至記憶體區塊M1、M2、...、Mk的字元線WLi。例如,將第一區段S1={b1,b2,...,bn}中的每一位元bi編碼成為一組搜尋行訊號{SeL(i),SeL(i)’}而對應至記憶體區塊M1中的字元線WLi。可根據不同的編碼機制(encoding scheme)將位元bi編碼成為不同邏輯值,例如,位元bi為邏輯值「1」時,搜尋行訊號{SeL(i),SeL(i)’}編碼為{0,1};而位元bi為邏輯值「0」時,搜尋行訊號{SeL(i),SeL(i)’}編碼為{1,0}。
多工電路24將每一編碼區段eS1、eS2、...、eSk引導至對應的記憶體區塊M1、M2、...、Mk。例如,編碼區段eS1被引導至記憶體區塊M1,而編碼區段eS1內的搜尋行訊號{SeL(1),SeL(1)’,SeL(2),SeL(2)’,...,SeL(n),SeL(n)’}對應至記憶體區塊M1內的n個記憶體單元以進行資料比較。
第4A圖繪示依據本揭示之第二實施例之輸入電路20B之架構之示意圖。如第4A圖所示,第二實施例之輸入電路20B可執行分層式的多工。可將記憶體陣列11分割為多個記憶體子陣列13A、13B、13C,每個記憶體子陣列都包括複數個記憶體區塊M1、M2、...、Mk。進一步而言,根據記憶體陣列11的第一方向(例如水平方向)將記憶體陣列11分割為記憶體子陣列13A、13B、13C,並根據記憶體陣列11的第二方向(例如垂直方向)將每個記憶體子陣列13A、13B、13C內部進行分割而成為記憶體區塊M1、M2、...、Mk。換言之,記憶體子陣列13A、13B、13C之每一者內部都包含複數個為記憶體區塊M1、M2、...、Mk,但此實施例之各記憶體區塊M1、M2、...、Mk的範圍僅止於記憶體子陣列內部,不等同於第1圖與第2圖所示之記憶體區塊M1、M2、...、Mk的範圍。
第二實施例之多工電路包括第一多工電路24-1與複數個第二多工電路24-2。第一多工電路24-1先將編碼區段eSi引導至各個第二多工電路24-2,再經由各個第二多工電路24-2引導至對應記憶體子陣列13A、13B、13C中的不同記憶體區塊Mi。
第4B圖繪示依據本揭示之第二實施例之輸入電路20B之運作方式之示意圖。如第4B圖所示,搜尋字S的編碼區段eSi在記憶體子陣列13A、13B、13C中係以分時(time divisional)方式及交錯(interlacing)方式來進行資料比較。其中,
各記憶體子陣列13A、13B、13C依序在不同時段進行資料比較,而一個時段內只對於一個記憶體子陣列進行資料比較。
並且,前一個記憶體子陣列13A正在進行資料比較因而其字元線WL在偵測感應(sensing)的狀態時,下一個記憶體子陣列13B可同時對其字元線WL進行設定(setup)。例如,記憶體子陣列13A、13B、13C的字元線WL的偵測感應時間(sensing time)為T2_A、T2_B、T2_C,記憶體子陣列13A、13B、13C的設定時間(setup time)為T1_A、T1_B、T1_C。前一個記憶體子陣列13A的字元線WL的偵測感應時間T2_A可重疊於下一個記憶體子陣列13B的設定時間T1_B,兩者以水管(pipeline)方式交錯安排,可縮短記憶體陣列11整體的資料比較時間。類似的,記憶體子陣列13B的字元線WL的偵測感應時間T2_B可重疊於再下一個記憶體子陣列13C的設定時間T1_C。
第5A圖繪示依據本揭示之第一實施例之輸出電路30A之架構之示意圖。參見第5A圖,第一實施例之輸出電路30A包括複數個處理電路31A,每一處理電路31A對應至一個位元線BLj,並電性連接至對應位元線BLj之感應放大器(sense amplifier,SA)SAi。
在第一實施例中,每一處理電路31A可包括一邏輯閘與一儲存器。其中,儲存器用於儲存一邏輯值,該邏輯值為「1」或「0」,並且該邏輯值在不同時段被更新。邏輯值「1」表示邏輯值為「真(TRUE)」,邏輯值「0」表示邏輯值為「否(FALSE)」。
若根據正向電位定義,邏輯值「1」為高電位,邏輯值「0」為低電位。相對的,若根據反向電位定義,則邏輯值「1」可以是低電位,而邏輯值「0」為高電位。在一種態樣中,儲存器例如為暫存器(register)33。另一方面,邏輯閘例如為及閘(AND gate)32。,及閘32對於邏輯值「1」或「0」進行邏輯的及(AND)運算(於下文中,係稱為「邏輯的「及」運算」)。
及閘32的第一輸入端32a電性連接於暫存器33的輸出端,及閘32的第二輸入端32b電性連接於感應放大器SAi的輸出端。而及閘32的輸出端32c回授(feedback)至暫存器33的輸入端。換言之,及閘32與暫存器33的連接方式係形成一迴路(loop),因此及閘32的輸出值可在不同時段陸續回存至暫存器33以更新暫存器33儲存的邏輯值。
第5B圖繪示依據本揭示之第一實施例之一輸出電路30A之運作方式之示意圖。參見第5B圖,以第一位元線BL1為例說明輸出電路30A之運作方式。在搜尋字S與記憶體區塊M1、M2、...、Mk進行資料比較之前,暫存器33之初始的邏輯值為「1」,暫存器33並將該邏輯值「1」輸出至及閘32的第一輸入端32a。
而後,搜尋字S的各編碼區段eS1、eS2、...、eSk與記憶體區塊M1、M2、...、Mk依序進行資料比較。首先,以第一位元線BL1為例,編碼區段eS1與記憶體區塊M1進行資料比較,若編碼區段eS1符合記憶體區塊M1中的第一位元線BL1的資料,則第一位元線BL1對應之感應放大器SA1輸出邏輯值「1」,
並將該邏輯值「1」傳送至及閘32的第二輸入端32b。此時,及閘32的第一輸入端32a與第二輸入端32b的邏輯值皆為「1」,經由及閘32之邏輯的「及」運算而得到邏輯運算結果為邏輯值「1」並回存於暫存器33。
於後續時段中,後續的編碼區段eS2、eS3依序與記憶體區塊M2、M3進行資料比較,若編碼區段eS2、eS3符合記憶體區塊M2、M3中的第一位元線BL1的資料,則感應放大器SA1的輸出值皆為邏輯值「1」。由於在前一時段暫存器33儲存之邏輯值為「1」,因此及閘32的邏輯運算結果仍保持為邏輯值「1」。
而在更後續的時段中,更後續的編碼區段eS4與記憶體區塊M4中的第一位元線BL1進行資料比較,若編碼區段eS4不符合記憶體區塊M4中的第一位元線BL1的資料,則感應放大器SA1輸出邏輯值「0」。此時,及閘32的邏輯運算結果變更為邏輯值「0」,邏輯運算結果並再次儲存於暫存器33。
依此類推,暫存器33儲存目前時段之邏輯運算結果,而及閘32對於所儲存之目前邏輯運算結果與下一筆資料比較結果(下一時段之下一個編碼區段eS5與下一個記憶體區塊M5的資料比較結果)進行邏輯的「及」運算,而得到下一筆邏輯運算結果。並且,將下一筆邏輯運算結果回存於暫存器33,以更新暫存器33儲存的邏輯值,而取代前一時段所儲存之邏輯運算結果。
上述運作同時發生於位元線BL1~BLp,並重複進行於記憶體區塊M1~Mk,直到最後一筆資料比較結果(最後一個編
碼區段eSk與最後一個記憶體區塊Mk的資料比較結果)已經進行了邏輯的「及」運算,並已經將最後一筆邏輯運算結果儲存至該位元線BLj相對應的暫存器33。
第一實施例之輸出電路30A中,對應每一位元線BLj僅需設置一個及閘32與一個暫存器33即可依序(依照記憶體區塊M1、M2、M3...之順序)儲存並更新各記憶體區塊Mi的資料比較結果。
由上,位元線BLj上若有任一記憶體區塊Mi不符合搜尋字S的對應編碼區段eSi,則及閘32的邏輯運算結果為邏輯值「0」;必須位元線BLj上全部的記憶體區塊Mi皆符合搜尋字S,及閘32的邏輯運算結果始為邏輯值「1」。再次參照第5A圖,輸出電路30A更包括一選取電路以收集每一位元線BLj之暫存器33儲存的邏輯運算結果,該選取電路並從中選取邏輯運算結果為邏輯值「1」之位元線(例如位元線BL2),被選取的位元線係為完全符合或完全匹配(all-matched)搜尋字S。於一種態樣中,選取電路係為匹配位址編碼器34,其更進一步計算並輸出被選取位元線BL2之位址(address)。由於輸出電路30A用於優先選取完全匹配搜尋字S的位元線,因此輸出電路30A又可稱為優先度編碼器。
第5C圖繪示依據本揭示之第二實施例之輸出電路30B之架構之示意圖。參見第5C圖,第二實施例之輸出電路30B
亦包括複數個處理電路31B,其分別電性連接至對應位元線BLj之感應放大器SAi。
在第二實施例中,每一處理電路31B可包括一計數器(counter)35,其對於位元線BLj上的記憶體區塊Mi與搜尋字S之資料比較結果進行計數。例如:若第一位元線BL1上有五個記憶體區塊M1、M4、M5、M8、M11符合搜尋字S之對應編碼區段eS1、eS4、eS5、eS8、eS11,則第一位元線BL1之計數器35累加五次而得到計數值為「五」。同理,若第二位元線BL2上有十二個記憶體區塊Mi符合搜尋字S之對應編碼區段,則第二位元線BL2之計數器35之計數值為「十二」。
此外,第二實施例之輸出電路30B之選取電路係為一比較器(comparator)36,其收集每一位元線BLj之計數器35的計數結果,並對於該等計數結果進行比較以選取出符合目標之計數值(例如:最高計數值、最低計數值、或大於某個預定值的計數值,等等)。例如,選取最高計數值「十二」之位元線BL2。
雖然被選取的位元線BL2上並非全部記憶體區塊都符合搜尋字S,但位元線BL2上具有最多數量(計數值最高)的記憶體區塊符合搜尋字S,因此被選取的位元線BL2係為最接近或最匹配(most-matched)搜尋字S。而比較器36更計算並輸出被選取位元線BL2之位址。
第5D圖繪示依據本揭示之第三實施例之輸出電路30C之架構之示意圖。參見第5D圖,第三實施例之輸出電路30C係涵蓋第一實施例與第二實施例的態樣;其中,對應於每一位元線BLj之處理電路31C包括一及閘32、一暫存器33、與一計數器35。每一位元線BLj之感應放大器SAj的輸出端連接於及閘32與計數器35。
每一及閘32之邏輯運算結果傳送至匹配位址編碼器34以得到完全匹配搜尋字S之位元線BLj之位址。另一方面,每一計數器35之計數值傳送至比較器36以得到最接近搜尋字S之位元線BLj之位址。
第6A圖繪示本揭示之記憶體裝置之資料搜尋方法之流程圖。本揭示之資料搜尋方法包括步驟S11至步驟S16,其大致對應於第1圖至第5D圖所示之記憶體裝置10之運作。
參見第6A圖,首先於步驟S11中,接收並暫存一搜尋字S={b1,b2,...,bm},而於後續步驟中對於搜尋字S執行輸入功能,包括:位元解析、分割、編碼以及多工導向。
於步驟S12中,對於搜尋字S執行位元解析,以對於搜尋字S中的複數個位元進行遮蔽、旋轉或平移。例如:將搜尋字S={b1,b2,...,bm}遮蔽為搜尋字S={b1,b2,...,bn-1,x,x,x,bn+3,...,bm},或將搜尋字S={b1,b2,...,bm}旋轉為搜尋字S={bm-1,bm,b1,b2,...,bm-2},或將搜尋字S={b1,b2,...,bm}平移為搜尋字S={0,0,b1,b2,...,bm-2}。
接著,於步驟S13中,對於搜尋字S執行分割,以將搜尋字S分割為k個區段S1、S2、...、Sk,其中每一區段Si對應至一個記憶體區塊Mi。
接著,於步驟S14中執行編碼,以將搜尋字S之分割後的區段S1、S2、...、Sk分別編碼成為編碼區段eS1、eS2、...、eSk。其中每一編碼區段eSi包括搜尋行訊號{SeL(i),SeL(i)’},其經由字元線位址偏壓(WL bias)對應至記憶體區塊中的字元線WLi。
接著,於步驟S15中執行多工導向,以將不同的編碼區段eS1、eS2、...、eSk引導至對應的記憶體區塊M1、M2、...、Mk,並在記憶體陣列11中將每一編碼區段eSi與對應記憶體區塊Mi之資料進行比較。
接著,於步驟S16中,執行一輸出功能以統整記憶體陣列11之每一位元線BLj所關聯之各記憶體區塊Mi與搜尋字S之資料比較結果,以得到最符合搜尋字S的位元線BLj的位址;於此,係完成本揭示之資料搜尋方法。步驟S16之詳細實施方式可具有兩種態樣的實施例,分別示於第6B、6C圖。
參見第6B圖所示之第一實施例。首先於步驟S21中,儲存一初始值。該初始值為邏輯值「1」。
接著,於步驟S22中,對於目前之資料比較結果(目前之編碼區段eS1與目前之記憶體區塊M1的資料比較結果)與已
儲存之初始值進行邏輯的及運算。並且,儲存該邏輯運算結果以取代先前儲存之初始值。
接著,於步驟S23中,對於下一筆資料比較結果(下一個編碼區段eS2與下一個記憶體區塊M2的資料比較結果)與已儲存之前一筆邏輯運算結果(步驟S22中所儲存之邏輯運算結果)進行邏輯的「及」運算,而得到下一筆邏輯運算結果。並且,儲存下一筆邏輯運算結果以取代先前儲存之前一筆邏輯運算結果。
接著,於步驟S24中,判斷最後一筆資料比較結果(最後一個編碼區段eSk與最後一個記憶體區塊Mk的資料比較結果)是否已進行邏輯的「及」運算而得到最後一筆邏輯運算結果。若判斷結果為「否」則重複執行步驟S23,若判斷結果為「是」則執行步驟S25。
而後,於步驟S25中,收集每一位元線BLj所儲存之最後一筆邏輯運算結果,從中選取出邏輯運算結果為邏輯值「1」之位元線。被選取的位元線係為完全符合或完全匹配搜尋字S。
而後,於步驟S26中,計算被選取的位元線之位址,並輸出該位元線之位址。
而步驟S16的第二個實施例請參見第6C圖。於步驟S31中,輸出功能係對於位元線BLj上的記憶體區塊Mi與搜尋字S之資料比較結果進行計數。
若編碼區段eS1、eS2、eS3皆符合於記憶體區塊M1、M2、M3,則計數結果累加三次而得到計數值「三」。若後續編碼
區段eS4不符合記憶體區塊M4,則不進行累加,而計數值維持於「三」。換言之,輸出功能係對於符合搜尋字S之記憶體區塊之數量進行計數。
接著,於步驟S32中,收集每一位元線BLj的計數結果,並對於該等計數結果進行比較,以選取出符合目標之計數值。例如:選取出最高計數值者,此時,具有最高計數值的位元線係為最接近或最匹配搜尋字S。
而後,於步驟S33中,計算被選取的位元線之位址,並輸出該位元線之位址。
藉由本揭示之上述實施方式,係將記憶體陣列分割為複數個記憶體區塊Mi,並經由輸入電路20執行輸入功能以將搜尋字S分割為複數個區段Si,並編碼成為編碼區段eSi而分別與對應的記憶體區塊Mi進行資料比較,因而能夠處理具有較大長度之搜尋字S。並且,更可將記憶體陣列區分為複數個記憶體子陣列以分時交錯方式進行資料比較,因而對於大型記憶體陣列能夠提升資料搜尋效率。
此外,本揭示的輸出電路30可包括不同態樣的輸出功能,能夠彈性輸出多樣化的資料比較結果。
並且,本揭示的輸入電路20、輸出電路30可搭配應用於具有不同電路架構或記憶體類型之記憶體陣列,例如:可搭配應用於反及閘字串(NAND-string)記憶體、浮動閘極
(floating-gate)記憶體、電荷捕獲(charge-trapping)記憶體或鰭式電晶體(FinFET)記憶體。
雖然本揭示已以較佳實施例及範例詳細揭露如上,可理解的是,此些範例意指說明而非限制之意義。可預期的是,所屬技術領域中具有通常知識者可想到多種修改及組合,其多種修改及組合落在本揭示之精神以及後附之申請專利範圍之範圍內。
10:記憶體裝置
11:記憶體陣列
12:記憶體單元
20:輸入電路
30:輸出電路
b1~bm:位元
S:搜尋字
WL1:字元線
WL’1,WL”1:實體訊號
WLm:字元線
WL’m,WL”m:實體訊號
BL1~BLP:位元線
M1,Mk:記憶體區塊
SA1~SAp:感應放大器
SeL(1),SeL(1)’:搜尋行訊號
SeL(m),SeL(m)’:搜尋行訊號
SeL(i),SeL(i)’:搜尋行訊號
Claims (6)
- 一種用於資料搜尋之記憶體裝置,包括:一記憶體陣列,係具有複數個記憶體區塊用以儲存資料,並具有複數個位元線,其中該記憶體陣列係根據一第一方向區分為複數個記憶體子陣列,並且各該記憶體子陣列更根據垂直於該第一方向之一第二方向區分為該等記憶體區塊;一輸入電路,包括:一分割電路,係接收一搜尋字,並將該搜尋字分割為複數個區段;一編碼電路,係將該等區段編碼為複數個編碼區段,該等編碼區段分別對應至該等記憶體區塊;以及一多工電路,係將該等編碼區段引導至該等記憶體區塊,各該編碼區段於該記憶體陣列之中以分時交錯方式分別與各該記憶體子陣列之各該記憶體區塊進行資料比較以得到一資料比較結果,以及一輸出電路,係根據各該記憶體區塊之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
- 如請求項1之記憶體裝置,其中,該輸入電路更包括:一位元解析電路,係對於該搜尋字之複數個位元進行遮蔽、旋轉或平移。
- 一種用於資料搜尋之記憶體裝置,包括:一記憶體陣列,係具有複數個記憶體區塊用以儲存資料,並具有複數個位元線;一輸入電路,係接收並處理一搜尋字,並將該處理後之搜尋字引導至該等記憶體區塊,該處理後之搜尋字於該記憶體陣列之中與該等記憶體區塊進行資料比較以得到複數個資料比較結果;以及一輸出電路,包括:複數個處理電路,係分別對應於各該位元線,並分別處理對應於各該位元線之各該記憶體區塊之各該資料比較結果,各該處理電路包括:一暫存器,係儲存一邏輯值,該邏輯值於不同時段被更新;以及一邏輯閘,係對於該暫存器於目前時段儲存之該邏輯值與對應於該位元線之該資料比較結果進行邏輯的「及」運算而得到一邏輯運算結果,並將該邏輯運算結果回存於該暫存器以更新該暫存器於目前時段儲存之該邏輯值,以及一選取電路,係收集並處理各該位元線之各該資料比較結果,並根據各該位元線之各該資料比較結果得到符 合該搜尋字之該等位元線之位址,該選取電路係選取各該暫存器儲存之該邏輯值為「1」者,而得到完全匹配該搜尋字之該等位元線之位址。
- 一種記憶體裝置之資料搜尋方法,包括:接收一搜尋字,並將該搜尋字分割為複數個區段;將該等區段編碼為複數個編碼區段,該等編碼區段分別對應至一記憶體陣列之複數個記憶體區塊,並且該記憶體陣列具有複數個位元線;根據一第一方向,將該記憶體陣列區分為複數個記憶體子陣列;根據垂直於該第一方向之一第二方向,將各該記憶體子陣列區分為該等記憶體區塊;將該等編碼區段引導至該等記憶體區塊;於該記憶體陣列之中,以分時交錯方式將各該編碼區段分別與各該記憶體子陣列之各該記憶體區塊進行資料比較以得到一資料比較結果;以及根據各該記憶體區塊之各該資料比較結果得到符合該搜尋字之該等位元線之位址。
- 如請求項4之資料搜尋方法,其中,在將該搜尋字分割為複數個區段之步驟前,更包括: 對於該搜尋字之複數個位元進行遮蔽、旋轉或平移。
- 一種記憶體裝置之資料搜尋方法,包括:接收並處理一搜尋字;將該處理後之搜尋字引導至一記憶體陣列之複數個記憶體區塊,其中該記憶體陣列具有複數個位元線;分別對應於各該位元線,而將該處理後之搜尋字與各該記憶體區塊進行資料比較以得到複數個資料比較結果;分別對應於各該位元線,儲存一邏輯值並於不同時段更新該邏輯值;分別對應於各該位元線,對於目前時段儲存之該邏輯值與該位元線之該資料比較結果進行邏輯的「及」運算而得到一邏輯運算結果;回存該邏輯運算結果以更新目前時段儲存之該邏輯值;以及選取各該位元線儲存之該邏輯值為「1」者,而得到完全匹配該搜尋字之該等位元線之位址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126677A TWI789836B (zh) | 2021-07-20 | 2021-07-20 | 用於資料搜尋之記憶體裝置及資料搜尋方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126677A TWI789836B (zh) | 2021-07-20 | 2021-07-20 | 用於資料搜尋之記憶體裝置及資料搜尋方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI789836B true TWI789836B (zh) | 2023-01-11 |
TW202305802A TW202305802A (zh) | 2023-02-01 |
Family
ID=86661435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110126677A TWI789836B (zh) | 2021-07-20 | 2021-07-20 | 用於資料搜尋之記憶體裝置及資料搜尋方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI789836B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892273B1 (en) * | 2001-12-27 | 2005-05-10 | Cypress Semiconductor Corporation | Method and apparatus for storing mask values in a content addressable memory (CAM) device |
TW200807440A (en) * | 2006-07-31 | 2008-02-01 | Jinn-Shyan Wang | A segmented search-line circuit device applied to content addressable memory |
TW201445567A (zh) * | 2013-03-13 | 2014-12-01 | Nagase & Co Ltd | 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法 |
US20180122479A1 (en) * | 2013-11-28 | 2018-05-03 | Gsi Technology Inc. | Associative row decoder |
US20190196979A1 (en) * | 2017-12-27 | 2019-06-27 | Renesas Electronics Corporation | Search memory |
US20190370465A1 (en) * | 2016-03-07 | 2019-12-05 | HangZhou HaiCun Information Technology Co., Ltd. | Searchable Storage |
US20200050565A1 (en) * | 2016-03-07 | 2020-02-13 | HangZhou HaiCun Information Technology Co., Ltd. | Pattern Processor |
US20210027838A1 (en) * | 2019-04-22 | 2021-01-28 | Western Digital Technologies, Inc. | Cam storage schemes and cam read operations for detecting matching keys with bit errors |
US20210064455A1 (en) * | 2019-08-28 | 2021-03-04 | Micron Technology, Inc. | Error correction for content-addressable memory |
US20210182166A1 (en) * | 2019-12-12 | 2021-06-17 | Western Digital Technologies, Inc. | Zoned namespace management of non-volatile storage devices |
-
2021
- 2021-07-20 TW TW110126677A patent/TWI789836B/zh active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892273B1 (en) * | 2001-12-27 | 2005-05-10 | Cypress Semiconductor Corporation | Method and apparatus for storing mask values in a content addressable memory (CAM) device |
TW200807440A (en) * | 2006-07-31 | 2008-02-01 | Jinn-Shyan Wang | A segmented search-line circuit device applied to content addressable memory |
TW201445567A (zh) * | 2013-03-13 | 2014-12-01 | Nagase & Co Ltd | 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法 |
US20150070957A1 (en) * | 2013-03-13 | 2015-03-12 | Nagase & Co., Ltd. | Semiconductor device and method of writing/reading entry address into/from semiconductor device |
US20180122479A1 (en) * | 2013-11-28 | 2018-05-03 | Gsi Technology Inc. | Associative row decoder |
US20190370465A1 (en) * | 2016-03-07 | 2019-12-05 | HangZhou HaiCun Information Technology Co., Ltd. | Searchable Storage |
US20200050565A1 (en) * | 2016-03-07 | 2020-02-13 | HangZhou HaiCun Information Technology Co., Ltd. | Pattern Processor |
US20190196979A1 (en) * | 2017-12-27 | 2019-06-27 | Renesas Electronics Corporation | Search memory |
US20210027838A1 (en) * | 2019-04-22 | 2021-01-28 | Western Digital Technologies, Inc. | Cam storage schemes and cam read operations for detecting matching keys with bit errors |
US20210064455A1 (en) * | 2019-08-28 | 2021-03-04 | Micron Technology, Inc. | Error correction for content-addressable memory |
TW202115576A (zh) * | 2019-08-28 | 2021-04-16 | 美商美光科技公司 | 用於內容可定址記憶體之錯誤校正 |
US20210182166A1 (en) * | 2019-12-12 | 2021-06-17 | Western Digital Technologies, Inc. | Zoned namespace management of non-volatile storage devices |
Also Published As
Publication number | Publication date |
---|---|
TW202305802A (zh) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8004868B2 (en) | Method and apparatus for performing variable word width searches in a content addressable memory | |
TWI413129B (zh) | 減少位元線電容之非揮發性記憶體陣列之分割 | |
US6775166B2 (en) | Content addressable memory architecture | |
US8832408B2 (en) | Non-volatile memory array partitioning architecture and method to utilize single level cells and multi-level cells within the same memory | |
US7304873B1 (en) | Method for on-the-fly error correction in a content addressable memory (CAM) and device therefor | |
US20060143428A1 (en) | Semiconductor signal processing device | |
US11251198B2 (en) | Semiconductor device and method of manufacturing the same | |
CN1561522A (zh) | 用于在按内容寻址的存储器中执行可变宽度搜索的电路和方法 | |
KR20140014547A (ko) | 메모리 장치 및 상기 메모리 장치의 독출 전압 결정 방법 | |
US20040105290A1 (en) | Content addressable memory with cascaded array | |
US10566049B2 (en) | Semiconductor memory device | |
JP6130758B2 (ja) | メモリ制御回路およびキャッシュメモリ | |
CN111341365B (zh) | 三态内容可寻址存储器及其操作方法 | |
US11107537B2 (en) | Memory device and method of reading data | |
CN1214395C (zh) | 存储器地址发生电路和半导体存储器件 | |
TWI789836B (zh) | 用於資料搜尋之記憶體裝置及資料搜尋方法 | |
CN115641894A (zh) | 用于数据搜索的存储器装置及数据搜索方法 | |
JPH11282852A (ja) | データ検索装置 | |
US20190155700A1 (en) | Memory system and method of operating the same | |
US20230268012A1 (en) | Semiconductor memory device | |
US20240005977A1 (en) | Compute-in-memory devices, neural network accelerators, and electronic devices | |
TWI807822B (zh) | 三態內容可定址記憶體 | |
US11231853B2 (en) | Memory including search logic | |
WO2006044074A1 (en) | Cam with reduced current and power consumption | |
TW202234249A (zh) | 連結串列搜尋方法與連結串列搜尋裝置 |