本發(fā)明涉及半導體集成電路,特別是涉及一種數(shù)據(jù)搜索系統(tǒng)及方法。
背景技術(shù):
隨著信息技術(shù)的高速發(fā)展,當前信息處理中的數(shù)據(jù)量呈爆炸式增長。目前不管是個人電腦上還是數(shù)據(jù)中心的存儲介質(zhì)上存在大量媒體數(shù)據(jù),例如文本、幻燈片文件、圖像和聲音等。如何找到用戶指定的數(shù)據(jù),隨著數(shù)據(jù)量的增加變得越來越困難。如何高效快速地找到用戶指定的數(shù)據(jù)信息,提高工作效率變得非常迫切。
傳統(tǒng)計算機搜索過程中是把存儲在存儲介質(zhì)中的數(shù)據(jù)傳輸?shù)教幚砥髦泻椭付〝?shù)據(jù)進行匹配對比。在過去的10年內(nèi),計算機處理器的性能得到了極大提升,此外數(shù)據(jù)匹配對比也可以采用FGPA(現(xiàn)場可編程門陣列)等的加速芯片進行加速。但其數(shù)據(jù)傳輸?shù)乃俣扔捎趲捪拗贫l(fā)展緩慢,因此當前制約數(shù)據(jù)搜索的主要瓶頸在于數(shù)據(jù)傳輸。近年來基于憶阻器件交叉陣列的計算存儲一體化技術(shù)迅速發(fā)展,目前已經(jīng)可以對存儲在憶阻器件交叉陣列上任意位置的數(shù)據(jù)進行任意的邏輯運算并且把計算結(jié)果存儲在指定的位置上。
技術(shù)實現(xiàn)要素:
(一)要解決的技術(shù)問題
本發(fā)明的目的在于提供一種數(shù)據(jù)搜索系統(tǒng)及方法,以解決上述的至少一項技術(shù)問題。
(二)技術(shù)方案
本發(fā)明的一方面,提供了一種數(shù)據(jù)搜索系統(tǒng),包括:
存儲模塊,包括至少一個存儲單元,所述存儲單元包括憶阻器件交叉陣列,所述憶阻器件交叉陣列用于存儲查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù),以及對兩者進行匹配對比;
控制模塊,產(chǎn)生指令信號和控制信號,用于控制所述存儲模塊完成查詢信息數(shù)據(jù)的存儲和匹配對比。
優(yōu)選地,所述查詢信息數(shù)據(jù)包括查詢數(shù)據(jù)或查詢數(shù)據(jù)的特征值;所述已存儲信息數(shù)據(jù)包括已存儲數(shù)據(jù)或已存儲數(shù)據(jù)的特征值。
優(yōu)選地,每一個存儲單元之間互相獨立,并行計算。
優(yōu)選地,所述憶阻器件交叉陣列包含至少一個憶阻單元,所述憶阻單元可以為一個憶阻器件、或者一個憶阻器件和一個雙向選擇管、或者一個憶阻器件和一個晶體管。
優(yōu)選地,所述存儲單元還包括:
譯碼器,用于根據(jù)所述控制模塊產(chǎn)生的指令信號產(chǎn)生地址信號和操作類型信號,并把地址信號輸出至多路選通器,把操作類型信號輸出至讀寫單元;
讀寫單元,根據(jù)所述操作類型信號,產(chǎn)生操作信號,并輸出至多路選通器,所述操作信號為寫信號、讀信號和邏輯運算信號;將查詢信息數(shù)據(jù)輸出至多路選通器;以及返回憶阻器件交叉陣列輸出至多路選通器的與操作結(jié)果;
多路選通器,用于根據(jù)所述地址信號,將所述操作信號輸出至憶阻器件交叉陣列的對應(yīng)端口,將所述查詢信息數(shù)據(jù)寫入憶阻器件交叉陣列。
優(yōu)選地,所述數(shù)據(jù)搜索系統(tǒng)還可以包括特征提取模塊,用于提取所述查詢數(shù)據(jù)的特征值。
本發(fā)明的另一方面,還提供了一種數(shù)據(jù)搜索方法,用于搜索存儲模塊中的至少一個憶阻器件交叉陣列中,是否有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),包括:
S1、將查詢信息數(shù)據(jù)存儲在一個憶阻器件交叉陣列中的一列中;
S2、將查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù)的每一位進行異或運算,并將運算結(jié)果存儲在同一憶阻器件交叉陣列的查詢信息數(shù)據(jù)及已存儲信息數(shù)據(jù)所在列之外的至少一列中;
S3、對運算結(jié)果的每一位進行與操作,并將與操作結(jié)果存儲在與所述運算結(jié)果存儲的同列的任一個未存儲數(shù)據(jù)的憶阻單元中;
S4、對其他憶阻器件交叉陣列重復步驟S1至S3,得到至少一個與操作結(jié)果,根據(jù)與操作結(jié)果判斷數(shù)據(jù)搜索結(jié)果;
優(yōu)選地,所述已存儲信息數(shù)據(jù)至少為一個,已存儲信息數(shù)據(jù)所在列為查詢信息數(shù)據(jù)所在列之外的至少一列中;且不同憶阻器件交叉陣列中的已存儲數(shù)據(jù)信息不完全相同。
優(yōu)選地,所述步驟S1中,將查詢信息數(shù)據(jù)以補碼形式存儲在憶阻器件交叉陣列中。
優(yōu)選地,所述步驟S4具體為:
若所述與操作結(jié)果存在為1的情況,則所述存儲模塊能搜索到與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù);若所述與操作結(jié)果都為0,則所述存儲模塊中不能搜索到與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),且與操作結(jié)果為1的數(shù)目,即為與所述查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù)的數(shù)目。
(三)有益效果
本發(fā)明中數(shù)據(jù)的匹配對比過程和數(shù)據(jù)存儲在控制器的控制下,全部在憶阻器件交叉陣列中完成,因此極大地減少了數(shù)據(jù)傳輸量,同時利用憶阻器件交叉陣列的并行運算特點極大地提高數(shù)據(jù)搜索速度。
附圖說明
圖1示意性示出了本發(fā)明實施例的數(shù)據(jù)搜索系統(tǒng);
圖2示意性示出了本發(fā)明實施例的存儲單元的內(nèi)部組成結(jié)構(gòu);
圖3示意性示出了本發(fā)明實施例的數(shù)據(jù)搜索方法;
圖4示意性示出了本發(fā)明實施例的憶阻器件交叉陣列的數(shù)據(jù)運算方法;
圖5示意性示出了本發(fā)明實施例的憶阻器件交叉陣列中的憶阻單元的結(jié)構(gòu)。
具體實施方式
在大數(shù)據(jù)時代和憶阻器件交叉陣列存儲計算一體化計算快速發(fā)展的背景下,為了提高數(shù)據(jù)搜索的效率,本發(fā)明實施例的一方面,提供了一種數(shù)據(jù)搜索系統(tǒng),包括:
存儲模塊,包括至少一個存儲單元,所述存儲單元包括憶阻器件交叉陣列,所述憶阻器件交叉陣列用于存儲查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù),以及對兩者進行匹配對比;所述查詢信息數(shù)據(jù)包括查詢數(shù)據(jù)或查詢數(shù)據(jù)的特征值;所述已存儲信息數(shù)據(jù)包括已存儲數(shù)據(jù)或已存儲數(shù)據(jù)的特征值。
控制模塊,產(chǎn)生指令信號和控制信號,用于控制所述存儲模塊完成查詢信息數(shù)據(jù)的存儲和匹配對比。
具體地,所述數(shù)據(jù)搜索系統(tǒng)還可以包括特征提取模塊,用于提取所述查詢數(shù)據(jù)的特征值。
具體地,每一個存儲單元之間互相獨立,并行計算。
所述憶阻器件交叉陣列包含至少一個憶阻單元,所述憶阻單元可以為一個憶阻器件、或者一個憶阻器件和一個雙向選擇管、或者一個憶阻器件和一個晶體管。
具體地,所述存儲單元還包括:
譯碼器,用于根據(jù)所述控制模塊產(chǎn)生的指令信號產(chǎn)生地址信號和操作類型信號,并把地址信號輸出至多路選通器,把操作類型信號輸出至讀寫單元;
讀寫單元,根據(jù)所述操作類型信號,產(chǎn)生操作信號,并輸出至多路選通器,所述操作信號為寫信號、讀信號和邏輯運算信號;將查詢信息數(shù)據(jù)輸出至多路選通器;以及返回憶阻器件交叉陣列輸出至多路選通器的與操作結(jié)果;
多路選通器,用于根據(jù)所述地址信號,將所述操作信號輸出至憶阻器件交叉陣列的對應(yīng)端口,將所述查詢信息數(shù)據(jù)寫入憶阻器件交叉陣列。
本發(fā)明實施例的另一方面,還提供了一種數(shù)據(jù)搜索方法,用于搜索存儲模塊中的至少一個憶阻器件交叉陣列中,是否有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),包括:
S1、將查詢信息數(shù)據(jù)存儲在一個憶阻器件交叉陣列中的一列中;
S2、將查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù)的每一位進行異或運算,并將運算結(jié)果存儲在同一憶阻器件交叉陣列的查詢信息數(shù)據(jù)及已存儲信息數(shù)據(jù)所在列之外的至少一列中;
具體地,所述已存儲信息數(shù)據(jù)至少為一個,已存儲信息數(shù)據(jù)所在列為查詢信息數(shù)據(jù)所在列之外的至少一列中;且不同憶阻器件交叉陣列中的已存儲數(shù)據(jù)信息不完全相同。
S3、對運算結(jié)果的每一位進行與操作,并將與操作結(jié)果存儲在與所述運算結(jié)果存儲的同列的任一個未存儲數(shù)據(jù)的憶阻單元中;
S4、對其他憶阻器件交叉陣列重復步驟S1至S3,得到至少一個與操作結(jié)果,根據(jù)與操作結(jié)果判斷數(shù)據(jù)搜索結(jié)果;
所述步驟S4具體為:
若所述與操作結(jié)果存在為1的情況,則所述存儲模塊中能搜索到與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù);若所述與操作結(jié)果都為0,則所述存儲模塊中不能搜索到與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),且與操作結(jié)果為1的數(shù)目,即為與所述查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù)的數(shù)目。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明作進一步的詳細說明。
圖1示意性示出了本發(fā)明實施例的數(shù)據(jù)搜索系統(tǒng),如圖1所示,所述數(shù)據(jù)搜索系統(tǒng)包含存儲模塊、控制模塊和特征提取模塊,所述存儲模塊,包括至少一個存儲單元,所述存儲單元包括憶阻器件交叉陣列,所述憶阻器件交叉陣列用于存儲查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù),以及對兩者進行匹配對比;所述控制模塊,產(chǎn)生指令信號和控制信號,用于控制所述存儲模塊完成查詢信息數(shù)據(jù)的存儲和匹配對比;所述特征提取模塊用于提取所述查詢數(shù)據(jù)的特征值。
特征提取模塊通過對外界輸入的查詢數(shù)據(jù)進行特征提取,得到查詢數(shù)據(jù)的特征值。查詢數(shù)據(jù)或查詢數(shù)據(jù)特征值即查詢信息數(shù)據(jù),在控制模塊的控制下存儲至存儲模塊的憶阻器件交叉陣列中。在憶阻器件交叉陣列中,已存儲信息數(shù)據(jù)即已存儲數(shù)據(jù)或已存儲數(shù)據(jù)的特征值和查詢信息數(shù)據(jù)完成數(shù)據(jù)的搜索和匹配對比,從而判斷存儲模塊中是否有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù)。本發(fā)明提供存儲系統(tǒng)的中的數(shù)據(jù)單元數(shù)目可以視實際需求和制造能力設(shè)計而定。由于每一個計算存儲一體化的數(shù)據(jù)單元之間是獨立的,因此數(shù)據(jù)搜索可以同時進行,實現(xiàn)高并行度,從而提高數(shù)據(jù)搜索的速度和效率。
圖2示意性示出了本發(fā)明實施例的存儲單元的內(nèi)部組成結(jié)構(gòu),如圖2所示,存儲單元包含憶阻器件交叉陣列、讀寫單元、譯碼器及多路選通器。存儲系統(tǒng)中的控制模塊輸出指令信號至譯碼器,譯碼器根據(jù)指令信號產(chǎn)生地址信號和操作類型信號,并將地址信號輸出至多路選通器,將操作類型信號輸出至讀寫單元。所述讀寫單元,根據(jù)所述操作類型信號產(chǎn)生操作信號,并輸出至多路選通器,所述操作信號為寫信號、讀信號和邏輯運算信號;將查詢信息數(shù)據(jù)輸出至多路選通器;以及返回憶阻器件交叉陣列輸出至多路選通器的與操作結(jié)果。所述多路選通信號根據(jù)地址信號,將所述操作信號輸出至憶阻器件交叉陣列的對應(yīng)端口,將所述查詢信息數(shù)據(jù)寫入憶阻器件交叉陣列。
同時,控制模塊產(chǎn)生控制信號輸出至存儲單元內(nèi)部的各個組成結(jié)構(gòu),從而實現(xiàn)控制模塊對存儲單元的控制。
基于同一發(fā)明構(gòu)思,本發(fā)明的實施例還提供了一種數(shù)據(jù)搜索方法,圖3示意性示出了本發(fā)明實施例的數(shù)據(jù)搜索方法,如圖3所示,包括以下步驟:
S1、將查詢信息數(shù)據(jù)存儲在一個憶阻器件交叉陣列中的一列中;
更具體地,查詢信息經(jīng)過特征提取得到的查詢數(shù)據(jù)的特征值或者直接將查詢數(shù)據(jù),即查詢信息數(shù)據(jù)通過讀寫單元在譯碼器的引導下存儲到憶阻器件交叉陣列中的一列,查詢信息數(shù)據(jù)的存儲形式為補碼形式。
S2、將查詢信息數(shù)據(jù)和已存儲信息數(shù)據(jù)的每一位進行異或運算,并將運算結(jié)果存儲在同一憶阻器件交叉陣列的查詢信息數(shù)據(jù)及已存儲信息數(shù)據(jù)所在列之外的至少一列中;
更具體地,所述已存儲信息數(shù)據(jù)至少為一個,已存儲信息數(shù)據(jù)所在列為查詢信息數(shù)據(jù)所在列之外的至少一列中;且不同憶阻器件交叉陣列中的已存儲數(shù)據(jù)信息不完全相同。
S3、對運算結(jié)果的每一位進行與操作,并將與操作結(jié)果存儲在與所述運算結(jié)果存儲的同列中的任一個未存儲數(shù)據(jù)的憶阻單元中。
S4、對其他憶阻器件交叉陣列重復步驟S1至S3,得到至少一個與操作結(jié)果,根據(jù)與操作結(jié)果判斷數(shù)據(jù)搜索結(jié)果:
若所述與操作結(jié)果存在為1的情況,則所述存儲模塊中有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù);若所述與操作結(jié)果都為0,則所述存儲模塊中沒有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),且與操作結(jié)果為1的數(shù)目,即為與所述查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù)的數(shù)目。
圖4示意性示出了本發(fā)明實施例的憶阻器件交叉陣列的數(shù)據(jù)運算方法,如圖4所示,憶阻器件交叉陣列由字線、位線以及位于字線和位線之間的憶阻單元組成,在字線和位線的一端都結(jié)有一個固定電阻,供邏輯計算使用。已存儲信息數(shù)據(jù)A以及其他已存儲信息數(shù)據(jù)存儲在一個憶阻器件交叉陣列的多列中。查詢信息數(shù)據(jù)Q通過讀寫單元在譯碼器的引導下以補碼形式寫入到該憶阻器件交叉陣列中未存放數(shù)據(jù)的一列。憶阻器件交叉陣列在進行數(shù)據(jù)存儲的時候,通過電路控制可以實現(xiàn)保證每一塊交叉陣列不會出現(xiàn)所有的存儲單元都已經(jīng)被寫入存儲數(shù)據(jù)的狀態(tài)。
然后把已存儲信息數(shù)據(jù)的每一位和查詢信息數(shù)據(jù)進行異或運算。運算后的結(jié)果直接存儲在憶阻器件交叉陣列的另外幾列未存儲數(shù)據(jù)的多列中。然后對計算的結(jié)果每一位數(shù)據(jù)進行與操作,將與操作得到的結(jié)果存儲在與運算結(jié)果存儲的同列中的任一個未存儲數(shù)據(jù)的憶阻單元中即Y單元。讀取Y單元的狀態(tài)即可知道匹配對比結(jié)果,如果查詢信息數(shù)據(jù)Q和已存儲信息數(shù)據(jù)A之間完全匹配,則第一步計算后結(jié)果中每一位都為1,Y單元存儲的數(shù)據(jù)也為1,則當前已存儲數(shù)據(jù)A與查詢信息數(shù)據(jù)Q完全匹配。如果查詢信息數(shù)據(jù)Q和已存儲信息數(shù)據(jù)A之間有一位不同,則第一步計算的結(jié)果中必有一位的數(shù)據(jù)為0,Y單元存儲的數(shù)據(jù)也為0,則當前已存儲信息數(shù)據(jù)A不與查詢信息數(shù)據(jù)Q匹配。同時依次按照上述步驟對同一憶阻器件交叉陣列中的其他已存儲數(shù)據(jù)、以及其他憶阻器件交叉陣列中的各個已存儲數(shù)據(jù)進行運算操作,得到Y(jié)單元存儲的數(shù)據(jù)。若Y單元中的數(shù)據(jù)存在為1的情況,則所述存儲模塊中有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),表明所述查詢信息能在存儲模塊中搜索到與之匹配的已存儲信息數(shù)據(jù),其中Y單元中1的數(shù)目即為所述存儲模塊中與查詢信息數(shù)據(jù)匹配的數(shù)目;若Y單元存儲的數(shù)據(jù)都為0,則所述存儲模塊中沒有與查詢信息數(shù)據(jù)匹配的已存儲信息數(shù)據(jù),表明所述查詢信息不能在存儲模塊中搜索到與之匹配的已存儲信息數(shù)據(jù)。
由于對比計算過程在憶阻器件交叉陣列中進行,且計算后的結(jié)果以及已存儲數(shù)據(jù)信息和查詢信息數(shù)據(jù)均存儲在憶阻器件交叉陣列中,實現(xiàn)了計算和存儲一體化,極大地減少了數(shù)據(jù)傳輸。同時存儲模塊中的每一個存儲單元之間為互相獨立的,可以實現(xiàn)并行計算,提高搜索效率。
圖5示意性示出了本發(fā)明實施例的憶阻器件交叉陣列中憶阻單元的結(jié)構(gòu),該結(jié)構(gòu)可以是1T1R,1S1R和1R結(jié)構(gòu),其中T表示晶體管,R表示憶阻器件,可以是氧化物的阻變器件RRAM,基于金屬離子氧化還原的阻變器件CBRAM,相變存儲器,磁阻存儲器MRAM等可以進行邏輯運算的新型存儲單元。S表示雙向選擇管,具有雙向選通功能。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。