数据搜索系统及方法与流程

文档序号:12665676阅读:335来源:国知局
数据搜索系统及方法与流程

本发明涉及半导体集成电路,特别是涉及一种数据搜索系统及方法。



背景技术:

随着信息技术的高速发展,当前信息处理中的数据量呈爆炸式增长。目前不管是个人电脑上还是数据中心的存储介质上存在大量媒体数据,例如文本、幻灯片文件、图像和声音等。如何找到用户指定的数据,随着数据量的增加变得越来越困难。如何高效快速地找到用户指定的数据信息,提高工作效率变得非常迫切。

传统计算机搜索过程中是把存储在存储介质中的数据传输到处理器中和指定数据进行匹配对比。在过去的10年内,计算机处理器的性能得到了极大提升,此外数据匹配对比也可以采用FGPA(现场可编程门阵列)等的加速芯片进行加速。但其数据传输的速度由于带宽限制而发展缓慢,因此当前制约数据搜索的主要瓶颈在于数据传输。近年来基于忆阻器件交叉阵列的计算存储一体化技术迅速发展,目前已经可以对存储在忆阻器件交叉阵列上任意位置的数据进行任意的逻辑运算并且把计算结果存储在指定的位置上。



技术实现要素:

(一)要解决的技术问题

本发明的目的在于提供一种数据搜索系统及方法,以解决上述的至少一项技术问题。

(二)技术方案

本发明的一方面,提供了一种数据搜索系统,包括:

存储模块,包括至少一个存储单元,所述存储单元包括忆阻器件交叉阵列,所述忆阻器件交叉阵列用于存储查询信息数据和已存储信息数据,以及对两者进行匹配对比;

控制模块,产生指令信号和控制信号,用于控制所述存储模块完成查询信息数据的存储和匹配对比。

优选地,所述查询信息数据包括查询数据或查询数据的特征值;所述已存储信息数据包括已存储数据或已存储数据的特征值。

优选地,每一个存储单元之间互相独立,并行计算。

优选地,所述忆阻器件交叉阵列包含至少一个忆阻单元,所述忆阻单元可以为一个忆阻器件、或者一个忆阻器件和一个双向选择管、或者一个忆阻器件和一个晶体管。

优选地,所述存储单元还包括:

译码器,用于根据所述控制模块产生的指令信号产生地址信号和操作类型信号,并把地址信号输出至多路选通器,把操作类型信号输出至读写单元;

读写单元,根据所述操作类型信号,产生操作信号,并输出至多路选通器,所述操作信号为写信号、读信号和逻辑运算信号;将查询信息数据输出至多路选通器;以及返回忆阻器件交叉阵列输出至多路选通器的与操作结果;

多路选通器,用于根据所述地址信号,将所述操作信号输出至忆阻器件交叉阵列的对应端口,将所述查询信息数据写入忆阻器件交叉阵列。

优选地,所述数据搜索系统还可以包括特征提取模块,用于提取所述查询数据的特征值。

本发明的另一方面,还提供了一种数据搜索方法,用于搜索存储模块中的至少一个忆阻器件交叉阵列中,是否有与查询信息数据匹配的已存储信息数据,包括:

S1、将查询信息数据存储在一个忆阻器件交叉阵列中的一列中;

S2、将查询信息数据和已存储信息数据的每一位进行异或运算,并将运算结果存储在同一忆阻器件交叉阵列的查询信息数据及已存储信息数据所在列之外的至少一列中;

S3、对运算结果的每一位进行与操作,并将与操作结果存储在与所述运算结果存储的同列的任一个未存储数据的忆阻单元中;

S4、对其他忆阻器件交叉阵列重复步骤S1至S3,得到至少一个与操作结果,根据与操作结果判断数据搜索结果;

优选地,所述已存储信息数据至少为一个,已存储信息数据所在列为查询信息数据所在列之外的至少一列中;且不同忆阻器件交叉阵列中的已存储数据信息不完全相同。

优选地,所述步骤S1中,将查询信息数据以补码形式存储在忆阻器件交叉阵列中。

优选地,所述步骤S4具体为:

若所述与操作结果存在为1的情况,则所述存储模块能搜索到与查询信息数据匹配的已存储信息数据;若所述与操作结果都为0,则所述存储模块中不能搜索到与查询信息数据匹配的已存储信息数据,且与操作结果为1的数目,即为与所述查询信息数据匹配的已存储信息数据的数目。

(三)有益效果

本发明中数据的匹配对比过程和数据存储在控制器的控制下,全部在忆阻器件交叉阵列中完成,因此极大地减少了数据传输量,同时利用忆阻器件交叉阵列的并行运算特点极大地提高数据搜索速度。

附图说明

图1示意性示出了本发明实施例的数据搜索系统;

图2示意性示出了本发明实施例的存储单元的内部组成结构;

图3示意性示出了本发明实施例的数据搜索方法;

图4示意性示出了本发明实施例的忆阻器件交叉阵列的数据运算方法;

图5示意性示出了本发明实施例的忆阻器件交叉阵列中的忆阻单元的结构。

具体实施方式

在大数据时代和忆阻器件交叉阵列存储计算一体化计算快速发展的背景下,为了提高数据搜索的效率,本发明实施例的一方面,提供了一种数据搜索系统,包括:

存储模块,包括至少一个存储单元,所述存储单元包括忆阻器件交叉阵列,所述忆阻器件交叉阵列用于存储查询信息数据和已存储信息数据,以及对两者进行匹配对比;所述查询信息数据包括查询数据或查询数据的特征值;所述已存储信息数据包括已存储数据或已存储数据的特征值。

控制模块,产生指令信号和控制信号,用于控制所述存储模块完成查询信息数据的存储和匹配对比。

具体地,所述数据搜索系统还可以包括特征提取模块,用于提取所述查询数据的特征值。

具体地,每一个存储单元之间互相独立,并行计算。

所述忆阻器件交叉阵列包含至少一个忆阻单元,所述忆阻单元可以为一个忆阻器件、或者一个忆阻器件和一个双向选择管、或者一个忆阻器件和一个晶体管。

具体地,所述存储单元还包括:

译码器,用于根据所述控制模块产生的指令信号产生地址信号和操作类型信号,并把地址信号输出至多路选通器,把操作类型信号输出至读写单元;

读写单元,根据所述操作类型信号,产生操作信号,并输出至多路选通器,所述操作信号为写信号、读信号和逻辑运算信号;将查询信息数据输出至多路选通器;以及返回忆阻器件交叉阵列输出至多路选通器的与操作结果;

多路选通器,用于根据所述地址信号,将所述操作信号输出至忆阻器件交叉阵列的对应端口,将所述查询信息数据写入忆阻器件交叉阵列。

本发明实施例的另一方面,还提供了一种数据搜索方法,用于搜索存储模块中的至少一个忆阻器件交叉阵列中,是否有与查询信息数据匹配的已存储信息数据,包括:

S1、将查询信息数据存储在一个忆阻器件交叉阵列中的一列中;

S2、将查询信息数据和已存储信息数据的每一位进行异或运算,并将运算结果存储在同一忆阻器件交叉阵列的查询信息数据及已存储信息数据所在列之外的至少一列中;

具体地,所述已存储信息数据至少为一个,已存储信息数据所在列为查询信息数据所在列之外的至少一列中;且不同忆阻器件交叉阵列中的已存储数据信息不完全相同。

S3、对运算结果的每一位进行与操作,并将与操作结果存储在与所述运算结果存储的同列的任一个未存储数据的忆阻单元中;

S4、对其他忆阻器件交叉阵列重复步骤S1至S3,得到至少一个与操作结果,根据与操作结果判断数据搜索结果;

所述步骤S4具体为:

若所述与操作结果存在为1的情况,则所述存储模块中能搜索到与查询信息数据匹配的已存储信息数据;若所述与操作结果都为0,则所述存储模块中不能搜索到与查询信息数据匹配的已存储信息数据,且与操作结果为1的数目,即为与所述查询信息数据匹配的已存储信息数据的数目。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

图1示意性示出了本发明实施例的数据搜索系统,如图1所示,所述数据搜索系统包含存储模块、控制模块和特征提取模块,所述存储模块,包括至少一个存储单元,所述存储单元包括忆阻器件交叉阵列,所述忆阻器件交叉阵列用于存储查询信息数据和已存储信息数据,以及对两者进行匹配对比;所述控制模块,产生指令信号和控制信号,用于控制所述存储模块完成查询信息数据的存储和匹配对比;所述特征提取模块用于提取所述查询数据的特征值。

特征提取模块通过对外界输入的查询数据进行特征提取,得到查询数据的特征值。查询数据或查询数据特征值即查询信息数据,在控制模块的控制下存储至存储模块的忆阻器件交叉阵列中。在忆阻器件交叉阵列中,已存储信息数据即已存储数据或已存储数据的特征值和查询信息数据完成数据的搜索和匹配对比,从而判断存储模块中是否有与查询信息数据匹配的已存储信息数据。本发明提供存储系统的中的数据单元数目可以视实际需求和制造能力设计而定。由于每一个计算存储一体化的数据单元之间是独立的,因此数据搜索可以同时进行,实现高并行度,从而提高数据搜索的速度和效率。

图2示意性示出了本发明实施例的存储单元的内部组成结构,如图2所示,存储单元包含忆阻器件交叉阵列、读写单元、译码器及多路选通器。存储系统中的控制模块输出指令信号至译码器,译码器根据指令信号产生地址信号和操作类型信号,并将地址信号输出至多路选通器,将操作类型信号输出至读写单元。所述读写单元,根据所述操作类型信号产生操作信号,并输出至多路选通器,所述操作信号为写信号、读信号和逻辑运算信号;将查询信息数据输出至多路选通器;以及返回忆阻器件交叉阵列输出至多路选通器的与操作结果。所述多路选通信号根据地址信号,将所述操作信号输出至忆阻器件交叉阵列的对应端口,将所述查询信息数据写入忆阻器件交叉阵列。

同时,控制模块产生控制信号输出至存储单元内部的各个组成结构,从而实现控制模块对存储单元的控制。

基于同一发明构思,本发明的实施例还提供了一种数据搜索方法,图3示意性示出了本发明实施例的数据搜索方法,如图3所示,包括以下步骤:

S1、将查询信息数据存储在一个忆阻器件交叉阵列中的一列中;

更具体地,查询信息经过特征提取得到的查询数据的特征值或者直接将查询数据,即查询信息数据通过读写单元在译码器的引导下存储到忆阻器件交叉阵列中的一列,查询信息数据的存储形式为补码形式。

S2、将查询信息数据和已存储信息数据的每一位进行异或运算,并将运算结果存储在同一忆阻器件交叉阵列的查询信息数据及已存储信息数据所在列之外的至少一列中;

更具体地,所述已存储信息数据至少为一个,已存储信息数据所在列为查询信息数据所在列之外的至少一列中;且不同忆阻器件交叉阵列中的已存储数据信息不完全相同。

S3、对运算结果的每一位进行与操作,并将与操作结果存储在与所述运算结果存储的同列中的任一个未存储数据的忆阻单元中。

S4、对其他忆阻器件交叉阵列重复步骤S1至S3,得到至少一个与操作结果,根据与操作结果判断数据搜索结果:

若所述与操作结果存在为1的情况,则所述存储模块中有与查询信息数据匹配的已存储信息数据;若所述与操作结果都为0,则所述存储模块中没有与查询信息数据匹配的已存储信息数据,且与操作结果为1的数目,即为与所述查询信息数据匹配的已存储信息数据的数目。

图4示意性示出了本发明实施例的忆阻器件交叉阵列的数据运算方法,如图4所示,忆阻器件交叉阵列由字线、位线以及位于字线和位线之间的忆阻单元组成,在字线和位线的一端都结有一个固定电阻,供逻辑计算使用。已存储信息数据A以及其他已存储信息数据存储在一个忆阻器件交叉阵列的多列中。查询信息数据Q通过读写单元在译码器的引导下以补码形式写入到该忆阻器件交叉阵列中未存放数据的一列。忆阻器件交叉阵列在进行数据存储的时候,通过电路控制可以实现保证每一块交叉阵列不会出现所有的存储单元都已经被写入存储数据的状态。

然后把已存储信息数据的每一位和查询信息数据进行异或运算。运算后的结果直接存储在忆阻器件交叉阵列的另外几列未存储数据的多列中。然后对计算的结果每一位数据进行与操作,将与操作得到的结果存储在与运算结果存储的同列中的任一个未存储数据的忆阻单元中即Y单元。读取Y单元的状态即可知道匹配对比结果,如果查询信息数据Q和已存储信息数据A之间完全匹配,则第一步计算后结果中每一位都为1,Y单元存储的数据也为1,则当前已存储数据A与查询信息数据Q完全匹配。如果查询信息数据Q和已存储信息数据A之间有一位不同,则第一步计算的结果中必有一位的数据为0,Y单元存储的数据也为0,则当前已存储信息数据A不与查询信息数据Q匹配。同时依次按照上述步骤对同一忆阻器件交叉阵列中的其他已存储数据、以及其他忆阻器件交叉阵列中的各个已存储数据进行运算操作,得到Y单元存储的数据。若Y单元中的数据存在为1的情况,则所述存储模块中有与查询信息数据匹配的已存储信息数据,表明所述查询信息能在存储模块中搜索到与之匹配的已存储信息数据,其中Y单元中1的数目即为所述存储模块中与查询信息数据匹配的数目;若Y单元存储的数据都为0,则所述存储模块中没有与查询信息数据匹配的已存储信息数据,表明所述查询信息不能在存储模块中搜索到与之匹配的已存储信息数据。

由于对比计算过程在忆阻器件交叉阵列中进行,且计算后的结果以及已存储数据信息和查询信息数据均存储在忆阻器件交叉阵列中,实现了计算和存储一体化,极大地减少了数据传输。同时存储模块中的每一个存储单元之间为互相独立的,可以实现并行计算,提高搜索效率。

图5示意性示出了本发明实施例的忆阻器件交叉阵列中忆阻单元的结构,该结构可以是1T1R,1S1R和1R结构,其中T表示晶体管,R表示忆阻器件,可以是氧化物的阻变器件RRAM,基于金属离子氧化还原的阻变器件CBRAM,相变存储器,磁阻存储器MRAM等可以进行逻辑运算的新型存储单元。S表示双向选择管,具有双向选通功能。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1