一种哈希硬件处理装置及方法制造方法及图纸

技术编号:22058758 阅读:63 留言:0更新日期:2019-09-07 16:36
本发明专利技术提供一种基于阻变存储器的哈希硬件处理装置及方法,所有的源数据无需送往CPU进行哈希函数的计算,在RRAM中根据电流叠加效应即可完成哈希函数输入数据的操作,并在存储器中实现哈希表的建立,无需将大量的源数据送往CPU后再送回存储器中。本发明专利技术基于阻变存储器的数据处理将减少数据从存储器端向处理器端的数据搬运,尤其于对数据量大的应用来说,具有显著的性能优势和功耗优势。通过在RRAM存储器中利用RRAM存储单元可实现基于电流叠加原理实现的存储数据的累加功能,进行哈希表的建立,避免数据读取到CPU端进行计算后再写入哈希表,一方面减少大量数据从存储端向CPU端的搬运,减少对访存带宽的需求;另一方面可以提高哈希表建立和查询的执行效率,并降低处理功耗。

A Hash Hardware Processing Device and Method

【技术实现步骤摘要】
一种哈希硬件处理装置及方法
本专利技术涉及计算机领域常用的散列数据结构,具体涉及基于RRAM实现的传统哈希表(散列表)数据结构功能,通过利用RRAM的特殊存储计算功能实现基于硬件的哈希表功能。更具体地说,本专利技术涉及一种哈希硬件处理装置及方法。
技术介绍
Hash(哈希,散列)数据结构,是一种用以常数平均时间执行插入、删除和查找的技术。进一步讲,hash就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。通过哈希算法,将输入的所有数据value按照哈希之后形成的key组成的表,成为哈希表。当使用哈希表进行查询的时候,就是再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。例如,采用取余法对已知一组值(32,40,36,53,16,46,71,27,42,24,49,64)进行哈希表的构建,哈希表长度为13,哈希函数为:H(value)=value%13,如图1所示,即为根据哈希函数形成的哈希查找表,查找表为链表结构,各个链表根据链表头中的值作为哈希值进行索引。当查询时,即可以根据哈希函数进行反推,例如,当找数据42时,可以找到数组[3](42%13=3,因此去3为链表头中的值中查找)然后根据链表向下查询到值42。在计算机软件算法中,哈希结构是一种非常常用的数据存储和快速查找方法,而且可以根据需要,选择不同的哈希函数进行哈希表的构建,例如直接定址法、数字分析法、平方取中法、折叠法、随机数法等均是常用的哈希函数,用于构建各种不同的哈希表。在计算机体系结构中,硬件哈希结构也是一种重要的数据映射方法,例如处理器中常用的Cache结构的访问,首先需要和Cache的Tag位(通常为访存地址高位)进行对比,查找匹配成功(命中)时,再去Cache的Data位去取实际的存储数据。哈希功能在软件算法和特定硬件结构中是一种非常常用的数据映射方式,但是,随着需要存储数据量的不断上升,通过软件算法进行数据的哈希处理和存储查询的效率受到严重的限制,这是因为,在基于软件的哈希表的建立过程中,存储于存储器的数据,通常需要读取到CPU中,根据其值,根据哈希的映射函数的处理,形成哈希表。因此,所有的数据都需要从存储器读取到CPU端,进行计算出来,然后建立哈希表。
技术实现思路
因此,为了解决上述问题,本专利技术提供一种哈希硬件处理装置及方法。根据本专利技术的一方面,本专利技术提供一种哈希硬件处理装置,主要包括如下模块:阻变存储器,其包括用于存储待哈希处理的源数据的多个存储单元,以及用于读出或者写入数据位的字线和位线;字线控制逻辑,用于控制阻变存储器中字线的选通;位线控制逻辑,用于控制阻变存储器中位线的选通;哈希值处理单元,其连接到所述阻变存储器并用于从阻变存储器中接收所选通的字线上的源数据的一个或者多个数据位的输出,生成由所述字线选通的源数据的哈希值;哈希表管理和存储单元,用于接收并存储所述哈希值和对应的源数据。其中,哈希值处理单元包括如下模块:取样保持单元,用于接收所选通的字线上的源数据的一个或者多个数据位的输出的模拟值;模数转换单元,用于将取样保持单元接收到的模拟值进行模数转换获得数字值;累加值暂存器,用于暂存模数转换单元转换出的数字值。此外,本专利技术的哈希硬件处理装置还包括:哈希策略管理模块,用于对位线控制逻辑进行控制以选择源数据的相应数据位进行哈希运算;数据输出缓存,用于从阻变存储器中接收源数据的输出。根据本专利技术的另一方面,本专利技术提供一种用于上述哈希硬件处理装置的哈希方法,包括如下步骤:S1、通过字线控制逻辑和位线控制逻辑选通阻变存储器对应的字线和位线,使阻变存储器输出一个源数据;S2、通过字线控制逻辑和位线控制逻辑选通所述源数据对应的字线和与指定的一个或者多个数据位对应的位线;S3、所述哈希值处理单元接收所选通的字线上的源数据的一个或者多个数据位的输出,得到所述源数据对应的哈希值;S4、所述哈希表管理和存储单元接收所述源数据和所述哈希值。其中,所述步骤S1中的源数据,通过数据输出缓存进行缓存,并由数据输出缓存传输给哈希表管理和存储单元。在所述步骤S2中,所述与指定的一个或者多个数据位对应的位线由哈希策略管理模块指定。所述步骤S3包括如下步骤:S31、通过取样保持单元从阻变存储器中接收指定的一个或者多个数据位的输出的模拟值;S32、通过模数转换单元将步骤S31中接收到的模拟值进行模数转换得到数字值;S33、通过累加值暂存器暂存步骤S32中转换得到的数字值,并将该数字值传输给哈希表管理和存储单元。在本专利技术中,所有的源数据无需送往CPU进行哈希函数的计算,在RRAM中根据电流叠加效应即可完成哈希函数输入数据的操作,快速实现哈希表的建立,无需将大量的源数据送往CPU后再送回存储器中。附图说明以下参照附图对本专利技术实施例作进一步说明,其中:图1为现有技术中一种哈希表建立方法示意图;图2为阻变存储器原理示意图;图3为根据本专利技术实施例的一种哈希硬件处理装置结构示意图;图4为根据本专利技术实施例的一种哈希硬件处理方法流程示意图。具体实施方式为了使本专利技术的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。为了更好的理解本专利技术,首先介绍一下阻变存储器的工作模式。阻变式存储器(resistiverandomaccessmemory,RRAM)是以材料的电阻在外加电场作用下可在高阻态和低阻态之间实现可逆转换为基础的一类非易失性存储器。随着对RRAM的研究,越来越多的研究人员利用阻变存储器的多阻值特性,以及根据读写电压的调整,实现了基于RRAM存储即计算功能,通过电压的调整产生不同的电流的叠加,实现对不同存储单元数据的逻辑运算。如图2所示,电压V1和电压V2分别通过电阻G1和G2后形成的电流,根据基尔霍夫(电路)定律(Kirchhofflaws),会产生电流的叠加,通过电流的大小可以实现加法操作。本专利技术利用上述阻变存储器RRAM的基于电流叠加效应的数据累加功能,实现基于硬件结构的哈希表建立和查询功能。如图3所示,根据本专利技术的一个实施例,提供一种哈希硬件处理装置100,包括阻变存储器101,其用于存储源数据。阻变存储器101包括多个存储单元、多个字线WORDLINE107和多个位线BITLINE108;以及用于分别对字线WORDLINE107和位线BITLINE108进行选通控制的字线控制逻辑111和位线控制逻辑109。以图4中所示的数据为例,假设阻变存储器101中存储源数据[0001,0011,1111,0101]。其中,0001存储在第一个字的各个位中,其中该字对应于字线Vw1,其各位分别对应于位线Vb1、Vb2、Vb3、Vb4上;0011存储在第二个字的各个位中,其中该字对应于字线Vw2,其各位分别对应于位线Vb1、Vb2、Vb3、Vb4,1111存储在第三个字的各个位中,其中该字对应于字线Vw3,其各位分别对应于位线Vb1、Vb2、Vb3、Vb4,以此类推;字线控制逻辑111用于控制阻变存储器字线Vw1、Vw2、Vw3、Vw4的选通,位线控制逻辑109用于分别控本文档来自技高网
...

【技术保护点】
1.一种哈希硬件处理装置,其特征在于,包括如下模块:阻变存储器,其包括用于存储待哈希处理的源数据的多个存储单元,以及用于读出或者写入数据位的字线和位线;字线控制逻辑,用于控制阻变存储器中字线的选通;位线控制逻辑,用于控制阻变存储器中位线的选通;哈希值处理单元,其连接到所述阻变存储器并用于从阻变存储器中接收所选通的字线上的源数据的一个或者多个数据位的输出,生成由所述字线选通的源数据的哈希值;哈希表管理和存储单元,用于接收并存储所述哈希值和对应的源数据。

【技术特征摘要】
1.一种哈希硬件处理装置,其特征在于,包括如下模块:阻变存储器,其包括用于存储待哈希处理的源数据的多个存储单元,以及用于读出或者写入数据位的字线和位线;字线控制逻辑,用于控制阻变存储器中字线的选通;位线控制逻辑,用于控制阻变存储器中位线的选通;哈希值处理单元,其连接到所述阻变存储器并用于从阻变存储器中接收所选通的字线上的源数据的一个或者多个数据位的输出,生成由所述字线选通的源数据的哈希值;哈希表管理和存储单元,用于接收并存储所述哈希值和对应的源数据。2.根据权利要求1所述的哈希硬件处理装置,其特征在于,还包括:哈希策略管理模块,用于对位线控制逻辑进行控制以选择源数据的相应数据位进行哈希运算。3.根据权利要求1所述的哈希硬件处理装置,其特征在于,还包括:数据输出缓存,用于从阻变存储器中接收源数据的输出。4.根据权利要求1所述的哈希硬件处理装置,其特征在于,所述哈希值处理单元包括:取样保持单元,用于接收所选通的字线上的源数据的一个或者多个数据位的输出的模拟值;模数转换单元,用于将取样保持单元接收到的模拟值进行模数转换获得数字值;累加值暂存器,用于暂存模数转换单元转换出的数字值。5.根据权利要求4所述的哈希硬件处理装置,其特征在于,所述哈希值处理单元包括多个取样保持单元和模数转换单元组成的组合,每一个取样保持单元和模数转换单元组成的组合与阻变存储器的一个字线相对应。6.一种基于如权利要求...

【专利技术属性】
技术研发人员:李文明叶笑春安述倩姜志颖王晨晖范东睿
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1