CN116089840A - 一种相似度计算装置、方法和存储器件 - Google Patents

一种相似度计算装置、方法和存储器件 Download PDF

Info

Publication number
CN116089840A
CN116089840A CN202111290869.0A CN202111290869A CN116089840A CN 116089840 A CN116089840 A CN 116089840A CN 202111290869 A CN202111290869 A CN 202111290869A CN 116089840 A CN116089840 A CN 116089840A
Authority
CN
China
Prior art keywords
circuit
data
similarity calculation
output
voltage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111290869.0A
Other languages
English (en)
Inventor
程龙
杨岭
李祎
谭海波
蒲贵友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111290869.0A priority Critical patent/CN116089840A/zh
Priority to PCT/CN2022/097665 priority patent/WO2023077798A1/zh
Publication of CN116089840A publication Critical patent/CN116089840A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种相似度计算装置、方法和存储器件,涉及计算机领域。具体方案为:相似度计算装置包括:依次耦合的输入信号处理模块、数据计算模块和至少一个输出处理电路,数据计算模块包括用于存储待计算数据的存储阵列;输入信号处理模块,用于根据相似度计算指令生成操作电压,将相似度计算指令中的待计算数据的地址转换为目标地址;数据计算模块,用于基于目标地址选通存储阵列中存储的待计算数据,并在待计算数据上施加操作电压进行相似度计算;至少一个输出处理电路,用于对数据计算模块输出的信号进行处理,并输出计算结果。

Description

一种相似度计算装置、方法和存储器件
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种相似度计算装置、方法和存储器件。
背景技术
相似度计算一般用于衡量数据对象之间的相似程度,在数据分析中具有重要和广泛的应用。数据的类型不同时,相似度的表示方法和计算方法不同。常用的相似度表示和计算方法包括用于字符串类型的汉明距离计算、用于向量类型的内积相似度计算、用于集合类型的杰卡德相似度计算等。
目前,计算机的计算能力主要由中央处理器(central processing unit,CPU)中的运算电路提供,由于CPU中的运算电路不具备数据存储能力,因此在进行相似度计算时,需要将待计算的数据从内存加载到CPU缓存,根据不同的相似度计算需求选择相应的运算电路,把每一组数据对依次输入到运算电路中执行相似度计算,计算完成后再把结果写回内存。
现有的相似度计算方法中存储(内存)与计算(CPU)是分离的,这种分离的数据处理模式将导致数据频繁的搬移,造成高功耗和高时延。而且当数据量非常大时还容易造成缓存不命中,进一步恶化计算设备的性能。另外,由于CPU中的运算电路不具备可配置的特点,因此在实现多种相似度计算时,电路面积的开销较大。
发明内容
本申请实施例提供一种相似度计算装置、方法和存储器件,能够减小相似度计算时的功耗和时延。
本申请实施例的第一方面,提供一种相似度计算装置,该相似度计算装置包括:输入信号处理模块、数据计算模块和至少一个输出处理电路,该输入信号处理模块通过数据计算模块与至少一个输出处理电路耦合,数据计算模块包括存储阵列,存储阵列用于存储待计算数据。输入信号处理模块,用于接收相似度计算指令,并根据该相似度计算指令生成操作电压,将相似度计算指令中的待计算数据的地址转换为目标地址。数据计算模块,用于基于目标地址选通存储阵列中存储的待计算数据,并在待计算数据上施加操作电压进行相似度计算。至少一个输出处理电路,用于对数据计算模块输出的信号进行处理,并输出计算结果。
基于本方案,通过在数据计算模块中设置存储阵列,并通过在存储阵列中存储的待计算数据上施加操作电压进行相似度计算,从而使得相似度计算装置既可以存储数据又可以进行相似度计算,因此数据无需在内存和运算电路之间频繁搬移,相较于现有技术中的相似度计算方案,能够降低数据搬移的能耗,节省存储和计算之间的带宽。
在一种可能的实现方式中,上述相似度计算指令包括相似度计算类型,上述输入信号处理模块包括电压编码电路、第一电压转置电路和地址译码电路。电压编码电路,用于根据相似度计算类型生成操作电压。第一电压转置电路,用于将电压编码电路生成的操作电压直接传递至数据计算模块,或者,将电压编码电路生成的操作电压置反后传递至数据计算模块。地址译码电路,用于将相似度计算指令中的待计算数据的地址转换为目标地址。
基于本方案,通过电压编码电路生成操作电压,并根据相似度计算类型的不同,经第一电压转置电路直接传递或置反后传递,能够将该操作电压施加在存储阵列中存储的待计算数据上实现相似度计算,从而降低了数据搬移的能耗,节省了存储和计算之间的带宽。
在另一种可能的实现方式中,上述数据计算模块还包括开关阵列,输入信号处理模块通过开关阵列耦合至存储阵列。开关阵列,用于基于地址译码电路输出的目标地址,选通目标地址对应的行和列。
基于本方案,通过开关阵列将存储待计算数据的存储单元所在的行和列上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而可以将操作电压施加在存储阵列中存储的待计算数据上,实现相似度计算,能够降低数据搬移的能耗,节省存储和计算之间的带宽。
在又一种可能的实现方式中,上述至少一个输出处理电路包括第一输出处理电路,该第一输出处理电路包括跨阻放大电路和至少一个子处理电路。跨阻放大电路,用于将数据计算模块输出的电流信号转化为电压信号。至少一个子处理电路,用于将跨阻放大电路输出的模拟信号进行处理并输出。
基于本方案,通过跨阻放大电路将数据计算模块输出的电流信号转化为电压信号,并通过至少一个子处理电路将跨阻放大电路输出的模拟信号进行处理,可以实现汉明距离计算、精确搜索或模糊搜索。
在又一种可能的实现方式中,上述至少一个子处理电路包括第一子处理电路,第一子处理电路包括模数转换电路,跨阻放大电路与所述模数转换电路耦合。模数转换电路,用于将跨阻放大电路输出的模拟信号转换为数字信号并输出。
基于本方案,通过跨阻放大电路将数据计算模块输出的电流信号转化为电压信号,并通过模数转换电路将跨阻放大电路输出的模拟信号转换为数字信号,从而能够得到汉明距离的计算结果。可选的,通过调节模数转换电路中的阈值,可以确定不同比特位的数量,即多位汉明距离计算结果。
在又一种可能的实现方式中,上述至少一个子处理电路还包括第二子处理电路,该第二子处理电路包括灵敏放大电路和第二电压转置电路,上述跨阻放大电路通过该灵敏放大电路耦合至第二电压转置电路。灵敏放大电路,用于将跨阻放大电路输出的电压信号与参考电压进行比较并输出。第二电压转置电路,用于根据相似度计算类型,将灵敏放大电路输出的信号直接输出或置反后输出。
基于本方案,通过跨阻放大电路将数据计算模块输出的电流信号转化为电压信号,并通过灵敏放大电路将跨阻放大电路输出的电压信号与参考电压进行比较,比较的结果经第二电压转置电路直接输出或第二电压转置电路,从而能够得到精确搜索或模糊搜索的结果。
在又一种可能的实现方式中,上述相似度计算类型为精确搜索时,第二电压转置电路用于将灵敏放大电路输出的信号直接输出。相似度计算类型为模糊搜索时,第二电压转置电路用于将灵敏放大电路输出的信号置反后输出。
基于本方案,第二电压转置电路可以根据相似度计算类型的不同,可以将灵敏放大电路的输出信号直接输出,也可以将灵敏放大电路的输出信号置反后输出,从而实现精确搜索或模糊搜索。
在又一种可能的实现方式中,上述第一输出处理电路包括多个子处理电路时,第一输出处理电路还包括第一选择器。该第一选择器,用于根据相似度计算指令中的相似度计算类型,将跨阻放大电路输出的模拟信号输出至对应的子处理电路。
基于本方案,在第一输出处理电路包括多个子处理电路,通过设置第一选择器,使得第一输出处理电路既可以用于计算汉明距离,又可以用于精确搜索和模糊搜索。而且由于多个子处理电路共用跨阻放大电路,因此本申请实施例提供的相似度计算装置只需要增加少量电路,就可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本申请实施例具有电路面积开销小的优势。
在又一种可能的实现方式中,上述至少一个输出处理电路还包括第二输出处理电路,第二输出处理电路包括模数转换电路。该模数转换电路,用于将数据计算模块输出的模拟信号转化为数字信号并输出。
基于本方案,通过模数转换电路将数据计算模块输出的模拟信号转化为数字信号并输出,可以得到内积相似度计算的计算结果。可选的,通过将模数转换电路中的阈值设置为一位内积相似度计算中的阈值,可以获得多位内积相似度计算的计算结果。
在又一种可能的实现方式中,上述至少一个输出处理电路还包括第三输出处理电路,该第三输出处理电路包括灵敏放大电路。该灵敏放大电路,用于将数据计算模块输出的信号与第一参考电流进行比较并输出。
基于本方案,通过灵敏放大电路将数据计算模块输出的信号与第一参考电流进行比较并输出,可以得到内积相似度筛选的结果。内积相似度筛选是对内积相似度计算结果的另一种处理。通过在灵敏放大电路中设置第一参考电流,对内积相似度计算结果进行筛选,使匹配成功的输出信号为“1”,匹配失败的输出信号为“0”。
在又一种可能的实现方式中,上述至少一个输出处理电路还包括第四输出处理电路,该第四输出处理电路包括灵敏放大电路、延迟电路和除法电路,其中灵敏放大电路的输出端分别耦合至延迟电路的输入端和除法电路的第一输入端,延迟电路的输出端耦合至除法电路的第二输入端。
基于本方案,通过在第四输出处理电路中设置灵敏放大电路、延迟电路和除法电路,可以实现杰卡德相似度计算。
在又一种可能的实现方式中,上述灵敏放大电路,用于将数据计算模块在第一时钟周期输出的第一信号与第二参考电流进行比较得到第一数值,并将第一数值输出至延迟电路,将数据计算模块在第二时钟周期输出的第二信号与第三参考电流进行比较得到第二数值,并将第二数值输出至除法电路,第二参考电流和第三参考电流不同。延迟电路,用于将灵敏放大电路输出的第一数值延迟后输出至所述除法电路。除法电路,用于对第一数值和第二数值进行除法运算,并输出计算结果。
基于本方案,由于杰卡德相似度用于表示两个集合中交集元素在并集元素中所占的比例,因此杰卡德相似度计算需要两个时钟周期,第一个时钟周期用于计算两个集合之间的与(AND)运算,第二个时钟周期用于计算两个集合之间的或(OR)运算,以及与运算结果和或运算结果之间的除法运算。因此本方案通过设置灵敏放大电路中的参考电流的大小,可以实现与运算和或运算,并将与运算的结果和或运算的结果相除,可以得到杰卡德相似度计算的结果。
在又一种可能的实现方式中,上述第三输出处理电路还包括第三选择器,第三选择器用于根据相似度计算指令中的相似度计算类型,将灵敏放大电路的输出信号直接输出,或者,将灵敏放大电路的输出信号输出至计算电路。
基于本方案,在进行内积相似度筛选和杰卡德相似度计算时,可以共用灵敏放大电路,根据相似度计算类型的不同,在相似度计算类型为内积相似度筛选,第三选择器将灵敏放大电路的输出信号直接输出,在相似度计算类型为杰卡德相似度计算,第三选择器将灵敏放大电路的输出信号输出至计算电路。本方案通过设置第三选择器,使得第一输出处理电路既可以用于计算汉明距离,又可以用于精确搜索和模糊搜索。而且灵敏放大电路既可以用于内积相似度筛选,又可以用于杰卡德相似度计算,因此本方案只需要增加少量电路,就可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本申请实施例具有电路面积开销小的优势。
在又一种可能的实现方式中,上述计算电路包括延迟电路和除法电路,第三选择器的输出端分别耦合至延迟电路的输入端和除法电路的第一输入端,延迟电路的输出端耦合至除法电路的第二输入端。第三选择器,具体用于在相似度计算类型为杰卡德相似度计算时,将灵敏放大电路在第一时钟周期输出的信号输出至延迟电路,将灵敏放大电路在第二时钟周期输出的信号输出至除法电路。延迟电路,用于将灵敏放大电路在第一时钟周期输出的信号延迟后输出至除法电路。除法电路,用于对灵敏放大电路在第一时钟周期输出的信号与灵敏放大电路在第二时钟周期输出的信号进行除法运算,并输出计算结果。
基于本方案,相似度计算装置在进行内积相似度筛选和杰卡德相似度计算时可以共用灵敏放大电路,因此在实现多种相似度计算功能时,相似度计算装置的电路面积开销小,成本更低。
在又一种可能的实现方式中,上述相似度计算装置包括多个输出处理电路时,相似度计算装置还包括第二选择器。该第二选择器,用于根据相似度计算指令中的相似度计算类型,将数据计算模块输出的信号输出至对应的输出处理电路。
基于本方案,在至少一个输出处理电路为多个时,通过设置第二选择器,使得相似度计算装置可以用于计算多种不同类型的相似度,而且该多种不同类型的相似度计算可以共用输入信号处理模块和数据计算模块,以及输出处理电路中的部分组件,因此本方案只需要增加少量电路,就可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本申请实施例具有电路面积开销小的优势。
在又一种可能的实现方式中,上述相似度计算类型包括汉明距离计算、模糊搜索、精确搜索、内积相似度计算、内积相似度筛选或杰卡德相似度计算中的至少一种。
基于本方案,可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本方案由于多种不同类型的相似度计算可以共用输入信号处理模块和数据计算模块,以及输出处理电路中的部分组件,因此只需要增加少量电路,就可以实现多种相似度计算功能,具有电路面积开销小的优势。
本申请实施例的第二方面,提供一种相似度计算方法,该方法包括:首先,根据相似度计算指令生成操作电压,并将该相似度计算指令中的待计算数据的地址转换为目标地址。其次,基于目标地址选通待计算数据,并在待计算数据上施加操作电压进行相似度计算,产生输出信号。最后,对输出信号进行处理,并输出计算结果。
在一种可能的实现方式中,上述相似度计算指令包括相似度计算类型,上述根据相似度计算指令生成操作电压,包括:根据相似度计算类型,将相似度计算指令中的数据生成操作电压。
在另一种可能的实现方式中,上述相似度计算类型包括汉明距离计算、模糊搜索、精确搜索、内积相似度计算或内积相似度筛选中的至少一种。
在又一种可能的实现方式中,上述相似度计算类型为杰卡德相似度计算,上述输出信号包括第一时钟周期输出的第一信号和第二时钟周期输出的第二信号,上述对输出信号进行处理,并输出计算结果,包括:将第一信号与第二参考电流进行比较得到第一数值,并将第一数值延迟一个时钟周期后输出;先将第二信号与第三参考电流进行比较得到第二数值,并将第二数值直接输出,第二参考电流和第三参考电流不同。再对第一数值和第二数值进行除法运算,并输出计算结果。
本申请实施例的第三方面,提供一种存储器件,该存储器件包括控制器,以及如上述第一方面所述的相似度计算装置,该控制器用于向所述相似度计算装置发送相似度计算指令。
在一种可能的实现方式中,上述存储器件还包括存储模块,存储模块用于存储待计算数据与计算结果。
在另一种可能的实现方式中,上述存储器件为硬盘或内存。
上述第二方面和第三方面的各种实现方式的效果描述可以参考前述第一方面相应实现方式的效果描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种相似度计算装置的结构示意图;
图2为本申请实施例提供的另一种相似度计算装置的结构示意图;
图3为本申请实施例提供的一种相似度计算装置的计算原理示意图;
图4为本申请实施例提供的又一种相似度计算装置的结构示意图;
图5为本申请实施例提供的另一种相似度计算装置的计算原理示意图;
图6为本申请实施例提供的又一种相似度计算装置的计算原理示意图;
图7为本申请实施例提供的又一种相似度计算装置的结构示意图;
图8为本申请实施例提供的又一种相似度计算装置的结构示意图;
图9为本申请实施例提供的又一种相似度计算装置的计算原理示意图;
图10为本申请实施例提供的又一种相似度计算装置的结构示意图;
图11为本申请实施例提供的又一种相似度计算装置的结构示意图;
图12为本申请实施例提供的又一种相似度计算装置的计算原理示意图;
图13为本申请实施例提供的又一种相似度计算装置的结构示意图;
图14为本申请实施例提供的又一种相似度计算装置的结构示意图;
图15为本申请实施例提供的一种存储器件的结构示意图;
图16为本申请实施例提供的一种相似度计算方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本申请实施例中的第一输出处理电路中的“第一”和第二输出处理电路中的“第二”仅用于区分不同的故障修复请求。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
相似度计算用于衡量数据对象之间的相似程度,在数据分析中具有重要和广泛的应用。例如,在重删压缩技术中,需要对数据块进行比对,以判断重复数据并进行删除。再例如,检索系统中,将输入的图片、文本、语音等各类数据与数据库数据进行比对,从而得到查询的结果。又例如,图计算领域,需要对海量数据进行比对和分层聚类,以方便后续的智能处理。在相似度计算中,除了计算数据之间的相似度结果,有时还会对计算结果进行筛选,以获得符合要求的原始数据。例如,检索系统中,将输入数据与数据库数据进行比对后,还会根据比对结果,筛选出与输入数据相似程度最接近的数据库数据。
针对数据的不同数学类型,有不同的相似度表示方法和计算方法。常用的相似度表示和计算方法包括用于字符串类型的汉明距离、用于向量类型的内积相似度、用于集合类型的杰卡德相似度等。下面对这几种相似度计算的概念进行介绍。
汉明距离:表示两个等长二进制字符串中不同位数的个数,可以用d(x,y)表示字符串x和字符串y之间的汉明距离。对字符串x和字符串y进行异或运算,并统计结果为1的数量,这个数量就是汉明距离。例如,以字符串x为0101,字符串y为0011为例,由于字符串x和字符串y的第二位和第三位不同,因此字符串x和字符串y之间的汉明距离为2。汉明距离越接近于0,表示两个字符串越相似。
内积相似度:表示对两个等长向量中每一位的乘积累加的结果。例如,以向量A=[0,1,0,1],向量B=[0,0,1,1]为例,向量A和向量B的内积为(0*0+1*0+0*1+1*1)=1。内积常用于余弦相似度计算中,用于判断两个向量在方向上的接近程度。内积越接近于0,表示两个向量方向越相近。
杰卡德相似度:表示两个集合中,交集元素在并集元素中所占的比例。对于二进制编码,可以用“0”和“1”表示一个n维向量在某一维度是否有值,然后组成一个长度为n的二进制数的集合。例如,以四维向量A={0,1,0,1},四维向量B={0,0,1,1}为例,向量A与向量B的交集为{0,0,0,1},即向量A和向量B在第四维度都有值。向量A与向量B的并集为{0,1,1,1},即向量A和向量B的分布覆盖了第二维度、第三维度和第四维度。故向量A和向量B的杰卡德相似度为1/3。杰卡德相似度越接近于1,表示两个集合越相似。
由于目前计算设备在进行相似度计算时,存储与计算是分离的,这种分离的数据处理模式将导致数据频繁的搬移,造成高功耗和高时延。而且当数据量非常大时还容易造成缓存不命中,进一步恶化计算设备的性能。另外,由于CPU中的运算电路不具备可配置的特点,因此在实现多种相似度计算时,电路面积的开销较大。
为了解决相似度计算时数据被频繁搬移,造成高功耗和高时延的问题,本申请实施例提供一种相似度计算装置,该相似度计算装置既可以存储待计算数据,又可以进行相似度计算,数据无需在内存和运算电路之间频繁搬移,能够降低数据搬移的能耗,节省存储和计算之间的带宽。而且本申请实施例中的相似度计算装置在实现多种不同类型的相似度计算时,可以共用输入信号处理模块和数据计算模块,以及输出处理电路中的部分组件,只需要增加少量电路,就可以实现多种相似度计算功能,电路面积的开销较小。
本申请实施例提供一种相似度计算装置,如图1所示,该相似度计算装置包括:输入信号处理模块、数据计算模块和至少一个输出处理电路,输入信号处理模块通过数据计算模块与至少一个输出处理电路耦合,数据计算模块包括存储阵列,该存储阵列用于存储待计算数据。
输入信号处理模块,用于接收相似度计算指令,并根据相似度计算指令生成操作电压,将相似度计算指令中的待计算数据的地址转换为目标地址。
该相似度计算指令用于计算第一数据和第二数据的相似度。上述待计算数据可以为第一数据和/或第二数据。相似度计算指令可以包括相似度计算类型,该相似度计算类型包括但不限于汉明距离计算、精确搜索、模糊搜索、内积相似度计算、内积相似度筛选或杰卡德相似度计算中的至少一种。本申请实施例对于相似度计算的具体类型并不限定,在此仅是示例性说明。
当相似度计算类型为汉明距离计算、精确搜索、模糊搜索、内积相似度计算、或内积相似度筛选时,上述相似度计算指令中可以包括第一数据的数值和第二数据的地址,数据计算模块中的存储阵列中存储该第二数据。例如,相似度计算指令用于指示采用汉明距离(或精确搜索、或模糊搜索、或内积相似度,或内积相似度筛选)计算数据P和数据Q的相似度时,该相似度计算指令中包括数据P的数值,以及数据Q的地址。
当相似度计算类型为杰卡德相似度计算时,上述相似度计算指令中可以包括第一数据的地址和第二数据的地址,数据计算模块中的存储阵列中存储该第一数据和第二数据。例如,相似度计算指令用于指示采用杰卡德相似度计算数据P和数据Q的相似度时,该相似度计算指令中包括数据P的地址,以及数据Q的地址。
结合图1,如图2所示,输入信号处理模块可以包括电压编码电路、第一电压转置电路和地址译码电路。
电压编码电路,用于根据相似度计算类型生成操作电压。
第一电压转置电路,用于根据相似度计算类型,将电压编码电路生成的操作电压直接传递至数据计算模块,或者,将电压编码电路生成的操作电压置反后传递至数据计算模块。
地址译码电路,用于将相似度计算指令中的待计算数据的地址转换为目标地址。
示例性的,当相似度类型为汉明距离计算、精确搜索、内积相似度计算或内积相似度筛选时,电压编码电路根据相似度计算类型,将第一数据的数值编码为操作电压,并控制第一电压转置电路直接传递该操作电压。地址译码电路将第二数据的地址转换为目标地址,该目标地址为存储阵列中对应的行地址和列地址,该目标地址用于指示第二数据所在的存储单元。
示例性的,当相似度类型为模糊搜索时,电压编码电路根据相似度计算类型,将第一数据的数值编码为操作电压,并控制第一电压转置电路将该操作电压置反后传递。地址译码电路将第二数据的地址转换为存储阵列中对应的行地址和列地址。
示例性的,当相似度类型为杰卡德相似度计算时,电压编码电路用于生成操作电压,并控制第一电压转置电路直接传递该操作电压。地址译码电路将第一数据的地址转换为第一目标地址,将第二数据的地址转换为第二目标地址,该第一目标地址为数据计算模块中的存储阵列中对应的行地址和列地址,该第一目标地址用于确定第一数据所在的存储单元。该第二目标地址为数据计算模块中的存储阵列中对应的行地址和列地址,该第二目标地址用于确定第二数据所在的存储单元。
数据计算模块,用于基于目标地址选通存储阵列中存储的待计算数据,并在待计算数据上施加操作电压进行相似度计算。
可选的,如图2所示,数据计算模块还可以包括开关阵列,输入信号处理模块通过该开关阵列中的开关耦合至存储阵列,存储阵列通过该开关阵列中的开关耦合至至少一个输出处理电路。该开关阵列,用于基于地址译码电路输出的目标地址,选通目标地址对应的行和列。
示例性的,以存储阵列中存储第二数据,该第二数据为数据Q为例,地址译码电路将数据Q的地址转换为存储阵列中的行地址和列地址,开关阵列将存储数据Q的存储单元所在的行和列上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而可以将数据P的操作电压施加在数据Q上,实现相似度计算。
至少一个输出处理电路,用于对数据计算模块输出的信号进行处理,并输出计算结果。
本申请实施例提供的相似度计算装置,通过在数据计算模块中设置存储阵列,并在存储阵列中存储的待计算数据上施加操作电压进行相似度计算,即本申请实施例中的相似度计算装置既可以存储数据又可以进行相似度计算,因此数据无需在内存和运算电路之间频繁搬移,相较于现有技术中的相似度计算方案,能够降低数据搬移的能耗,节省存储和计算之间的带宽。
本申请实施例提供的相似度计算装置可以实现多种不同类型的相似度计算,根据相似度计算类型的不同,输出处理电路可以包括多种不同的电路结构,下面结合不同的相似度类型对输出处理电路的不同电路结构,以及相似度计算装置中各个电路的具体功能进行详细介绍。
第一种电路结构:如图2所示,上述至少一个输出处理电路包括第一输出处理电路,该第一输出处理电路包括跨阻放大电路和第一子处理电路。该第一子处理电路包括模数转换电路,跨阻放大电路与模数转换电路耦合。
跨阻放大电路,用于将数据计算模块输出的电流信号转化为电压信号。
模数转换电路,用于将跨阻放大电路输出的模拟信号转换为数字信号并输出。
上述第一种电路结构可以在相似度计算类型为汉明距离计算时,计算第一数据和第二数据之间的汉明距离。下面结合图3对图2所示的相似度计算装置中各个电路模块的具体功能进行介绍。
结合图2,如图3中的(a)所示,当相似度计算指令用于指示采用汉明距离计算数据P和数据Q的相似度时,可以选取存储阵列中一行两列的两个存储单元表示一个数据Q,这两个存储单元可以为图3中的(a)所示的主存储单元R1和辅存储单元R2。如图3中的(b)所示的编码方式,以Q为“0”时,R1为高阻态(high resistance state,HRS),R2为低阻态(lowresistance state,LRS),Q为“1”时,R1为低阻态LRS,R2为高阻态HRS为例。电压编码电路可以将数据P编码为施加在两个存储单元R1和R2所在列上的操作电压V1和V2。当数据P为“0”时,电压编码电路可以将数据P编码为(0,Vread),当数据P为“1”时,电压编码电路可以将数据P编码为(Vread,0)。第一电压转置电路直接将电压编码电路输出的操作电压传递至数据计算模块。地址译码电路将数据Q的地址转换为存储阵列中对应的行地址和列地址,以确定数据Q所在的存储单元。在数据计算模块中,开关阵列将数据Q所在的存储单元的行和列地址上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而数据P的操作电压可以施加在数据Q上,实现汉明距离计算。
如图3中的(a)所示,由于V1和V2之间的电压差在R1和R2之间被分压,因此当数据P和数据Q为不同数值时,可以得到不同的分压结果Vout。下面对数据P和数据Q为不同数值时的分压结果Vout的具体情况进行说明。
如图3中的(c)所示,当数据P为0,数据Q也为0时,由于V1的电压为0,V2的电压为Vread,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压R1两端的电压,因此Vout的电压较高为图3中的(c)所示的Vmax
如图3中的(c)所示,当数据P为0,数据Q为1时,由于V1的电压为0,V2的电压为Vread,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压R1两端的电压,因此Vout的电压较低为图3中的(c)所示的Vmin
如图3中的(c)所示,当数据P为1,数据Q为0时,由于V1的电压为Vread,V2的电压为0,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压R2两端的电压,因此Vout的电压较低为图3中的(c)所示的Vmin
如图3中的(c)所示,当数据P为1,数据Q为1时,由于V1的电压为Vread,V2的电压为0,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压R2两端的电压,因此Vout的电压较高为图3中的(c)所示的Vmax
结合图2所示的第一输出处理电路,图2中的跨阻放大电路通过将数据计算模块输出的电流信号转化为电压信号,再经过模数转换电路将跨阻放大电路输出的模拟信号转换为数字信号可以得到相似度计算的结果。比如,如图3中的(c)所示,由于数据P和数据Q相同时(比如,P=Q=0或P=Q=1),Vout较大为Vmax。当数据P和数据Q不同时(比如,P=0、Q=1或P=1、Q=0),Vout较小为Vmin。因此,结合模数转换电路中的阈值可以在数据P和数据Q取不同的数值时,将Vout设置为“0”或“1”,从而实现汉明距离计算。
图3以一位数的汉明距离计算为例对图2所示的相似度计算装置的计算原理进行介绍。对于多位数的汉明距离计算,可以选取一行多列的存储单元实现汉明距离的计算。若每一位都相同,则行电压为Vmax。若每一位都不同,则行电压为Vmin。若只有部分比特位相同,则行电压为Vmin和Vmax之间的数值。通过调节模数转换电路中的阈值,可以确定不同比特位的数量,即多位汉明距离计算结果。
例如,以第一数据和第二数据均为5位数为例,计算第一数据和第二数据的汉明距离时,可以在存储阵列中选取一行10列的存储单元表示第二数据,一行10列的存储单元中每两列的存储单元表示第二数据中一位数的数值。当第一数据和第二数据的5位数均相同时,输出电压Vout较大为Vmax。当第一数据的5位数和第二数据的5位数每一位都不同时,输出电压Vout较小为Vmin。当第一数据的5位数和第二数据的5位数中有4位数相同时,输出电压Vout介于Vmin和Vmax之间。比如,以第一数据的5位数和第二数据的5位数中有一位数相同时,输出电压为0.1V为例,那么输出电压Vout为0.4V时,可以确定第一数据的5位数和第二数据的5位数中有4位数相同,汉明距离的计算结果为4。
第二种电路结构:如图4所示,上述至少一个输出处理电路包括第一输出处理电路,该第一输出处理电路包括跨阻放大电路和第二子处理电路。该第二子处理电路包括灵敏放大电路和第二电压转置电路,跨阻放大电路通过灵敏放大电路耦合至第二电压转置电路。
跨阻放大电路,用于将数据计算模块输出的电流信号转化为电压信号。
灵敏放大电路,用于将跨阻放大电路输出的电压信号与参考电压进行比较并输出。
第二电压转置电路,用于根据相似度计算功能,将灵敏放大电路输出的信号直接输出或置反后输出。
上述第二种电路结构可以在相似度计算类型为精确搜索或模糊搜索时,确定第一数据和第二数据的相似程度。当相似度计算类型为精确搜索时,第一电压转置电路用于将电压编码电路生成的操作电压直接传递至数据计算模块,第二电压转置电路用于将灵敏放大电路输出的信号直接输出。当相似度计算功能为模糊搜索时,第一电压转置电路用于将电压编码电路生成的操作电压置反后传递至数据计算模块,第二电压转置电路用于将灵敏放大电路输出的信号置反后输出。下面结合图5和图6分别对图4所示的相似度计算装置实现精确搜索和模糊搜索的具体功能进行介绍。
结合图4,如图5中的(a)所示,当相似度计算指令用于指示数据P在搜索范围Q内进行精确搜索时,可以选取存储阵列中一行两列的两个存储单元表示一个数据Q,这两个存储单元可以为图5中的(a)所示的主存储单元R1和辅存储单元R2。与图3中的(b)所示的编码方式不同的是,精确搜索在汉明距离计算的基础上,对搜索范围Q中的数据增加了一项编码方式,即除了当前能够确定的“0”或“1”,还包含当前不能确定的“X”状态。“X”状态可用于但不限于以下场景:当前无法归类的特征数据、当前未统计到的数据、不同长度的数据需要补齐等。如图5中的(b)所示,数据Q的“X”态的编码方式为R1、R2都是高阻态HRS。数据Q为0和1的编码方式、以及数据P的编码方式均与汉明距离计算相同,在此不再赘述。
如图5中的(b)所示,电压编码电路将数据P编码为施加在两个存储单元R1和R2所在列上的操作电压V1和V2后,第一电压转置电路直接将电压编码电路输出的操作电压传递至数据计算模块。地址译码电路将搜索范围Q的地址转换为存储阵列中对应的行地址和列地址,以确定Q所在的存储单元。在数据计算模块中,开关阵列将数据Q所在的存储单元的行和列地址上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而数据P的操作电压可以施加在数据Q上,实现数据P在搜索范围Q内进行精确搜索。
如图5中的(a)所示,由于V1和V2之间的电压差在R1和R2之间被分压,因此当数据P和数据Q为不同数值时,可以得到不同的分压结果Vout。下面对数据P和数据Q为不同数值时的分压结果Vout的具体情况进行说明。
如图5中的(c)所示,当数据P为0,搜索范围Q也为0时,由于V1的电压为0,V2的电压为Vread,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压为R1两端的电压,因此Vout的电压较高为图5中的(c)所示的Vmax
如图5中的(c)所示,当数据P为0,搜索范围Q为1时,由于V1的电压为0,V2的电压为Vread,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压为R1两端的电压,因此Vout的电压较低为图5中的(c)所示的Vmin
如图5中的(c)所示,当数据P为1,搜索范围Q为0时,由于V1的电压为Vread,V2的电压为0,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压为R2两端的电压,因此Vout的电压较低为图3中的(c)所示的Vmin
如图5中的(c)所示,当数据P为1,搜索范围Q为1时,由于V1的电压为Vread,V2的电压为0,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压为R2两端的电压,因此Vout的电压较高为图5中的(c)所示的Vmax
如图5中的(c)所示,当数据P为0,搜索范围Q为X时,由于V1的电压为0,V2的电压为Vread,R1和R2均为高阻态LRS,R1和R2串联分压时,Vout的电压为R1两端的电压,因此Vout的电压Vmid介于Vmin与Vmax之间。
如图5中的(c)所示,当数据P为1,搜索范围Q为X时,由于V1的电压为Vread,V2的电压为0,R1和R2均为高阻态LRS,R1和R2串联分压时,Vout的电压为R2两端的电压,因此Vout的电压Vmid介于Vmin与Vmax之间。
结合图4所示的第一输出处理电路,图4中的跨阻放大电路通过将数据计算模块输出的电流信号转化为电压信号,灵敏放大电路将跨阻放大电路输出的电压与预设的参考电压进行比较,并将跨阻放大电路输出的电压与预设的参考电压之间的差分电压放大为标准电压信号。第二电压转置电路根据精确搜索,将灵敏放大电路输出的标准电压信号直接输出。比如,如图5中的(c)所示,由于数据P和数据Q相同时(比如,P=Q=0或P=Q=1),Vout较大为Vmax。当数据P和数据Q不同时(比如,P=0、Q=1或P=1、Q=0或P=0、Q=X或P=1、Q=X),Vout较小为Vmin或Vmid。因此,通过将灵敏放大电路中的参考电压设置为大于Vmid且小于Vmax的数值,可以在数据P和数据Q不同时,输出标准电压信号0,在数据P和数据Q相同时,输出标准电压信号1,实现精确搜索。
可以理解的,精确搜索是对汉明距离计算结果的另一种处理。通过在第一输出处理电路中的灵敏放大电路中设置参考电压,能够对汉明距离计算结果进行筛选,使匹配成功的输出信号为“1”,匹配失败的输出信号为“0”。
与精确搜索不同的是,模糊搜索时,图4中的第一电压转置电路用于将电压编码电路生成的操作电压置反后传递至数据计算模块,第二电压转置电路用于将灵敏放大电路输出的信号置反后输出。
结合图4,如图6中的(a)所示,当相似度计算指令用于指示数据P在搜索范围Q内进行模糊搜索时,可以选取存储阵列中一行两列的两个存储单元表示一个数据Q,这两个存储单元可以为图6中的(a)所示的主存储单元R1和辅存储单元R2。如图6中的(b)所示,电压编码电路将数据P编码为施加在两个存储单元R1和R2所在列上的操作电压V1和V2后,第一电压转置电路将电压编码电路输出的操作电压置反后传递至数据计算模块。故数据P为“0”时,电压编码电路可以将数据P编码为(0,Vread),经第一电压转置电路置反后数据P的操作电压变为(Vread,0)。当数据P为“1”时,电压编码电路可以将数据P编码为(Vread,0),经第一电压转置电路置反后数据P的操作电压变为(0,Vread)。地址译码电路将搜索范围Q的地址转换为存储阵列中对应的行地址和列地址,以确定Q所在的存储单元。在数据计算模块中,开关阵列将数据Q所在的存储单元的行和列地址上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而数据P置反后的操作电压可以施加在数据Q上,实现数据P在搜索范围Q内进行模糊搜索。
如图6中的(a)所示,由于V1和V2之间的电压差在R1和R2之间被分压,因此当数据P和数据Q为不同数值时,可以得到不同的分压结果Vout。下面对数据P和数据Q为不同数值时的分压结果Vout的具体情况进行说明。
如图6中的(c)所示,当数据P为0,搜索范围Q也为0时,由于V1的电压为Vread,V2的电压为0,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压为R2两端的电压,因此Vout的电压较低为图6中的(c)所示的Vmin
如图6中的(c)所示,当数据P为0,搜索范围Q为1时,由于V1的电压为Vread,V2的电压为0,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压为R2两端的电压,因此Vout的电压较高为图6中的(c)所示的Vmax
如图6中的(c)所示,当数据P为1,搜索范围Q为0时,由于V1的电压为0,V2的电压为Vread,R1为高阻态HRS,R2为低阻态LRS,因此R1和R2串联分压时,故高阻态HRS的R1分压较多,低阻态LRS的R2分压较少,Vout的电压为R1两端的电压,因此Vout的电压较高为图6中的(c)所示的Vmax
如图6中的(c)所示,当数据P为1,搜索范围Q为1时,由于V1的电压为0,V2的电压为Vread,R1为低阻态LRS,R2为高阻态HRS,因此R1和R2串联分压时,故高阻态HRS的R2分压较多,低阻态LRS的R1分压较少,Vout的电压为R1两端的电压,因此Vout的电压较低为图6中的(c)所示的Vmin
如图6中的(c)所示,当数据P为0,搜索范围Q为X时,由于V1的电压为Vread,V2的电压为0,R1和R2均为高阻态LRS,R1和R2串联分压时,Vout的电压为R2两端的电压,因此Vout的电压Vmid介于Vmin与Vmax之间。
如图6中的(c)所示,当数据P为1,搜索范围Q为X时,由于V1的电压为0,V2的电压为Vread,R1和R2均为高阻态LRS,R1和R2串联分压时,Vout的电压为R1两端的电压,因此Vout的电压Vmid介于Vmin与Vmax之间。
结合图4所示的第一输出处理电路,图4中的跨阻放大电路通过将数据计算模块输出的电流信号转化为电压信号,灵敏放大电路将跨阻放大电路输出的电压与预设的参考电压进行比较,并将跨阻放大电路输出的电压与预设的参考电压之间的差分电压放大为标准电压信号。第二电压转置电路根据模糊搜索,将灵敏放大电路输出的标准电压信号置反后输出。
例如,如图6中的(c)所示,由于数据P和数据Q相同时(比如,P=Q=0或P=Q=1或P=0、Q=X或P=1、Q=X),Vout为Vmin或Vmid。当数据P和数据Q不同时(比如,P=0、Q=1或P=1、Q=0),Vout为Vmax。因此,通过将灵敏放大电路中的参考电压设置为大于Vmid且小于Vmax的数值,在数据P和数据Q相同时,Vout小于参考电压,灵敏放大电路输出标准电压信号0,第二电压转置电路将灵敏放大电路输出的信号置反后输出1。即,数据P和数据Q相同时,输出标准电压信号1。在数据P和数据Q不同时,Vout大于参考电压,灵敏放大电路输出标准电压信号1,第二电压转置电路将灵敏放大电路输出的信号置反后输出0。即,数据P和数据Q不同时,输出标准电压信号0,从而能够实现精确搜索。
可以理解的,结合图5和图6可知,当图4所示的相似度计算装置用于精确搜索时,如果P=0、Q=X或P=1、Q=X,可以确定数据P和数据Q不同。当图4所示的相似度计算装置用于模糊搜索时,如果P=0、Q=X或P=1、Q=X,可以确定数据P和数据Q相同。
可选的,当上述第一输出处理电路包括多个子处理电路时,上述第一输出处理电路还包括第一选择器。该第一选择器,用于根据相似度计算指令中的相似度计算类型,将跨阻放大电路输出的模拟信号输出至对应的子处理电路。
例如,如图7所示,以第一输出处理电路包括第一子处理电路和第二子处理电路为例,当相似度计算类型为汉明距离计算时,第一选择器将跨阻放大电路输出的模拟信号输出至第一子处理电路。当相似度计算类型为模糊搜索或精确搜索时,第一选择器将跨阻放大电路输出的模拟信号输出至第二子处理电路。
可以理解的,在第一输出处理电路包括多个子处理电路,通过设置第一选择器,使得第一输出处理电路既可以用于计算汉明距离,又可以用于精确搜索和模糊搜索。而且由于多个子处理电路共用跨阻放大电路,因此本申请实施例提供的相似度计算装置只需要增加少量电路,就可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本申请实施例具有电路面积开销小的优势。
第三种电路结构:如图8所示,至少一个输出处理电路可以包括第二输出处理电路,该第二输出处理电路包括模数转换电路。
模数转换电路,用于将数据计算模块输出的模拟信号转化为数字信号并输出。
上述第三种电路结构可以在相似度计算类型为内积相似度计算时,计算第一数据和第二数据之间的内积相似度。下面结合图8对图9所示的相似度计算装置中各个电路模块的具体功能进行介绍。
结合图8,如图9中的(a)所示,当相似度计算指令用于指示采用内积相似度计算数据P和数据Q的相似度时,可以选取存储阵列中的一个存储单元存储数据Q,该存储单元可以为图9中的(a)所示的存储单元R。如图9中的(b)所示的编码方式,以Q为“0”时,R为高阻态HRS,Q为“1”时,R为低阻态LRS为例。电压编码电路可以将数据P编码为施加在存储单元R所在列上的操作电压Vin。当数据P为“0”时,电压编码电路可以将数据P编码为操作电压0,当数据P为“1”时,电压编码电路可以将数据P编码为操作电压Vread。第一电压转置电路直接将电压编码电路输出的操作电压传递至数据计算模块。地址译码电路将数据Q的地址转换为存储阵列中对应的行地址和列地址,以确定数据Q所在的存储单元。在数据计算模块中,开关阵列将数据Q所在的存储单元的行和列地址上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而数据P的操作电压可以施加在数据Q上,实现内积相似度计算。
如图9中的(a)所示,当操作电压Vin不同时,R为不同阻态时,可以得到不同的输出电流Iout。下面对数据P和数据Q为不同数值时的输出电流Iout的具体情况进行说明。
如图9中的(c)所示,当数据P为0,数据Q也为0时,由于Vin上施加的操作电压为0,R为高阻态HRS,因此输出电流Iout为0。
如图9中的(c)所示,当数据P为0,数据Q为1时,由于Vin上施加的操作电压为0,R为低阻态LRS,因此输出电流Iout为0。
如图9中的(c)所示,当数据P为1,数据Q也为0时,由于Vin上施加的操作电压为Vread,R为高阻态HRS,因此输出电流Iout较小为Imin
如图9中的(c)所示,当数据P为1,数据Q也为1时,由于Vin上施加的操作电压为Vread,R为低阻态LRS,因此输出电流Iout较大为Imax
结合图8所示的第二输出处理电路,图8中的模数转换电路通过将数据计算模块输出的模拟信号转化为数字信号并输出,可以得到相似度计算的结果。
比如,如图9中的(c)所示,由于数据P为0时,无论数据Q是0还是1,输出电流Iout均为0。数据P为1时,如果数据Q为0,输出电流Iout较小为Imin。数据P为1时,如果数据Q为1,输出电流Iout较大为Imax。因此,结合模数转换电路中的阈值可以在数据P和数据Q的内积为1时,输出1,在数据P和数据Q的内积为0时,输出0,从而实现内积相似度计算。
图9以一位数的内积相似度计算为例对图8所示的相似度计算装置的计算原理进行介绍。对于多位数的内积相似度计算,可以选取一行多列的存储单元进行计算。行上的总电流反映了每一位内积相似度计算的电流结果之和。通过将模数转换电路中的阈值设置为一位内积相似度计算中的阈值,可以获得多位内积相似度计算的计算结果。
第四种电路结构:如图10所示,至少一个输出处理电路包括第三输出处理电路,第三输出处理电路包括灵敏放大电路。该灵敏放大电路,用于将数据计算模块输出的信号与第一参考电流进行比较并输出。
上述第四种电路结构可以在相似度计算类型为内积相似度筛选时,用于筛选内积相似度的计算结果。即内积相似度筛选是对内积相似度计算结果的另一种处理。通过在灵敏放大电路中设置第一参考电流,对内积相似度计算结果进行筛选,使匹配成功的输出信号为“1”,匹配失败的输出信号为“0”。
图10所示的相似度计算装置中输入信号处理模块和数据计算模块中各个电路的功能与图8所示的相似度计算装置均相同,在此不再赘述。与图8所示的相似度计算装置不同的是,图8所示的第二输出处理电路中的模数转换电路的输出可能为0、1、2、3或其他数值,模数转换电路的具体输出数值与数据的位数有关。例如,当两个等长向量均为6位数时,采用图8所示的相似度计算装置的输出结果可能为0、1、2、3、4、5、6中的任一数值。而图10所示的第三输出处理电路中的灵敏放大电路是对内积相似度计算结果的筛选,通过将相似度计算结果Iout与第一参考电流进行比较,可以在Iout大于第一参考电流时输出1,在Iout小于第一参考电流时输出0。
第五种电路结构:如图11所示,至少一个输出处理电路还包括第四输出处理电路,第四输出处理电路包括灵敏放大电路、延迟电路和除法电路。灵敏放大电路的输出端分别耦合至延迟电路的输入端和除法电路的第一输入端,延迟电路的输出端耦合至除法电路的第二输入端。
灵敏放大电路,用于将数据计算模块在第一时钟周期输出的第一信号与第二参考电流进行比较得到第一数值,并将第一数值输出至延迟电路。将数据计算模块在第二时钟周期输出的第二信号与第三参考电流进行比较得到第二数值,并将第二数值输出至除法电路。第二参考电流和第三参考电流不同。
延迟电路,用于将灵敏放大电路输出的第一数值延迟后输出至除法电路。
除法电路,用于对第一数值和第二数值进行除法运算,并输出计算结果。
上述第五种电路结构可以在相似度计算类型为杰卡德相似度计算时,计算第一数据和第二数据之间的相似度。下面结合图12对图11所示的相似度计算装置中各个电路模块的具体功能进行介绍。
由于杰卡德相似度用于表示两个集合中交集元素在并集元素中所占的比例,因此杰卡德相似度计算需要两个时钟周期,第一个时钟周期用于计算数据P和数据Q之间的与(AND)运算,第二个时钟周期用于计算数据P和数据Q之间的或(OR)运算,以及与运算结果和或运算结果之间的除法运算。本申请实施例对于第一个时钟周期进行与运算还是或运算并不限定,下述实施例以第一时钟周期进行与运算,第二时钟周期进行或运算为例进行示例性说明。
结合图11,当相似度计算指令用于指示采用杰卡德相似度计算数据P和数据Q的相似度时,数据P和数据Q与内积相似度计算中存储单元R的编码方式一致,可以分别选取存储阵列中的一个存储单元存储数据P和数据Q。如图12中的(a)所示,可以选取两行一列的两个存储单元R1和R2分别存储数据P和数据Q。如图12中的(b)所示,以P为“0”时,R1为高阻态HRS,P为“1”时,R1为低阻态LRS,Q为“0”时,R2为高阻态HRS,Q为“1”时,R2为低阻态LRS为例。电压编码电路可以基于杰卡德相似度计算,在数据P和数据Q所在的行上施加操作电压Vread。地址译码电路将数据P和数据Q的地址转换为存储阵列中对应的行地址和列地址,以确定数据P和数据Q所在的存储单元。在数据计算模块中,开关阵列将数据P和数据Q所在的存储单元的行和列地址上的开关置为导通状态,其他存储单元的行或列上的开关均置为断开状态,从而使得操作电压Vread经第一电压转置电路直接传递后,可以施加在数据P和数据Q所在的行上,通过设置灵敏放大电路中的参考电流的大小,可以实现数据P和数据Q的与运算,以及数据P和数据Q的或运算,并将与运算的结果和或运算的结果相除,可以得到杰卡德相似度计算的结果。
如图12中的(a)所示,当R1和R2为不同阻态时,可以得到不同的输出电流Iout。下面对数据P和数据Q为不同数值的输出电流Iout的具体情况进行说明。
如图12中的(c)和图12中的(d)所示,当数据P为0,数据Q也为0时,R1和R2均为高阻态HRS,在R1和R2所在的行上施加操作电压Vread时,由于R1和R2均为高阻态,因此输出电流Iout较小为Imin
如图12中的(c)和图12中的(d)所示,当数据P为0,数据Q也为1时,R1为高阻态HRS,R2为低阻态LRS,在R1和R2所在的行上施加操作电压Vread时,由于R1为高阻态,R2为低阻态LRS,因此输出电流Iout为Imid
如图12中的(c)和图12中的(d)所示,当数据P为1,数据Q也为0时,R1为低阻态LRS,R2为高阻态HRS,在R1和R2所在的行上施加操作电压Vread时,由于R1为低阻态,R2为高阻态,因此输出电流Iout为Imid
如图12中的(c)和图12中的(d)所示,当数据P为1,数据Q也为1时,R1和R2均为低阻态LRS,在R1和R2所在的行上施加操作电压Vread时,由于R1和R2均为低阻态,因此输出电流Iout较大为Imax
结合图12中的(a)所示和图12中的(c)所示,如果将灵敏放大器(senseamplifier,SA)的参考电流设置为Iref1(第二参考电流),Iref1大于Imid且小于Imax,由于P=Q=0或P=0、Q=1或P=1、Q=0时的输出电流Iout均小于参考电流Iref1,因此P=Q=0或P=0、Q=1或P=1、Q=0时灵敏放大器输出标准电压信号0。由于P=Q=1时的输出电流Iout较大为Imax,Imax大于参考电流Iref1,因此P=Q=1时灵敏放大器输出标准电压信号1。即将灵敏放大器的参考电流设置为Iref1可以实现数据P与数据Q的与运算。
结合图12中的(a)所示和图12中的(d)所示,如果将灵敏放大器SA的参考电流设置为Iref2(第三参考电流),Iref2大于Imin且小于Imid,由于P=Q=0时的输出电流Iout较小为Imin,Imin小于参考电流Iref2,因此P=Q=0时灵敏放大器输出标准电压信号0。由于P=0、Q=1或P=1、Q=0或P=Q=1时输出电流Iout均大于参考电流Iref2,因此P=0、Q=1或P=1、Q=0或P=Q=1时灵敏放大器输出标准电压信号1。即将灵敏放大器的参考电流设置为Iref2可以实现数据P与数据Q的或运算。
结合图11所示,第四输出电路中的灵敏放大器可以在第一时钟周期输出与运算的结果,并将与运算的结果输出至延迟电路,延迟电路将与运算的结果延迟一个时钟周期后输出至除法电路。灵敏放大器在第二时钟周期输出或运算的结果,并将或运算的结果直接输出至除法电路,除法电路对与运算的结果和或运算的结果进行除法运算,可以得到杰卡德相似度的计算结果。
可选的,当相似度计算装置包括多个输出处理电路时,该相似度计算装置还包括第二选择器。该多个输出处理电路可以包括上述第一输出处理电路、第二输出处理电路、第三输出处理电路或第四输出处理电路中的至少两个输出处理电路。
第二选择器,用于根据相似度计算指令中的相似度计算类型,将数据计算模块输出的信号输出至对应的输出处理电路。
例如,如图13所示,以相似度计算装置包括第一输出处理电路、第二输出处理电路、第三输出处理电路和第四输出处理电路为例,当相似度计算类型为汉明距离计算、精确搜索或模糊搜索时,第一选择器将数据计算模块输出的信号输出至第一输出处理电路。当相似度计算类型为内积相似度计算时,第一选择器将数据计算模块输出的信号输出至第二输出处理电路。当相似度计算类型为内积相似度筛选时,第一选择器将数据计算模块输出的信号输出至第三输出处理电路。当相似度计算类型为杰卡德相似度计算时,第一选择器将数据计算模块输出的信号输出至第四输出处理电路。
可以理解的,在至少一个输出处理电路为多个时,通过设置第二选择器,使得相似度计算装置可以用于计算多种不同类型的相似度,而且该多种不同类型的相似度计算可以共用输入信号处理模块和数据计算模块,以及输出处理电路中的部分组件,因此本方案只需要增加少量电路,就可以实现多种相似度计算功能,相较于现有技术在计算功能上的不可配置性,本申请实施例具有电路面积开销小的优势。
本申请实施例提供的上述相似度计算装置在进行汉明距离计算、精确搜索、模糊搜索、内积相似度计算和内积相似度筛选时,可以实现一组数据P与多组数据[Q1,Q2,Q3,…]之间的并行计算。在进行杰卡德相似度计算时,可以实现两组多比特数据之间的并行计算。因此,本申请实施例提供的相似度计算装置相较于现有CPU在单核中执行串行计算,能够提升计算的并行度,降低计算时延,提高计算效率。而且本申请的计算过程均采用操作电压Vread,该电压为幅值非常小的采样电压,相较于现有计算方案中使用较大幅值的电压,能够降低计算过程的功耗,而且减轻存储器磨损的负担。
可选的,图13所示的相似度计算装置中第三输出处理电路和第四输出处理电路可以共用灵敏放大电路。当第三输出处理电路和第四输出处理电路共用灵敏放大电路时,本申请实施例还提供的一种相似度计算装置,如图14所示,该相似度计算装置中至少一个输出处理电路还可以包括第三选择器,灵敏放大电路的输出端耦合至第三选择器的输入端,第三选择器用于根据相似度计算类型,将灵敏放大电路的输出信号直接输出,或者,将灵敏放大电路的输出信号输出至计算电路。
如图14所示,计算电路包括延迟电路和除法电路,第三选择器的输出端分别耦合至延迟电路的输入端和除法电路的第一输入端,延迟电路的输出端耦合至除法电路的第二输入端。
第三选择器,具体用于在相似度计算类型为杰卡德相似度计算时,将灵敏放大电路在第一时钟周期输出的信号输出至延迟电路,将灵敏放大电路在第二时钟周期输出的信号输出至除法电路。
延迟电路,用于将灵敏放大电路在第一时钟周期输出的信号延迟后输出至除法电路。
除法电路,用于对灵敏放大电路在第一时钟周期输出的信号与灵敏放大电路在第二时钟周期输出的信号进行除法运算,并输出计算结果。
例如,如图14所示,当相似度计算类型为内积相似度筛选时,第三选择器将灵敏放大电路的输出信号直接输出。相当于第二选择器的输出端耦合至第三输出处理电路。
再例如,如图14所示,当相似度计算类型为杰卡德相似度计算时,第三选择器将灵敏放大电路在第一时钟周期输出的信号输出至延迟电路,第三选择器将灵敏放大电路在第二时钟周期输出的信号输出至除法电路,除法电路对灵敏放大电路在第一时钟周期输出的信号与第二时钟周期输出的信号进行除法运算得到计算结果。相当于第二选择器的输出端耦合至第四输出处理电路。
可以理解的,与图13所示的相似度计算装置相比,由于图14所示的相似度计算装置在进行内积相似度筛选和杰卡德相似度计算时可以共用灵敏放大电路,因此在实现多种相似度计算功能时,图14所示的相似度计算装置较图13所示的相似度计算装置的电路面积开销小,成本更低。
本申请实施例还提供一种存储器件,该存储器件可以为硬盘或内存,如图15所示,该存储器件包括控制器,以及如图1、图2、图4、图7、图8、图10、图11、图13、图14中任一所示的相似度计算装置,该控制器用于向相似度计算装置发送上述相似度计算指令。
可选的,如图15所示,该存储器件还可以包括存储模块,该存储模块用于存储待计算数据与计算结果。
本申请实施例还提供一种相似度计算方法,如图16所示,该方法包括步骤S1601-S1603。
S1601、根据相似度计算指令生成操作电压,并将相似度计算指令中的待计算数据的地址转换为目标地址。
该相似度计算指令中可以包括相似度计算类型,该相似度计算类型包括汉明距离计算、模糊搜索、精确搜索、内积相似度计算、内积相似度筛选或杰卡德相似度计算中的至少一种。
当相似度计算类型为汉明距离计算、模糊搜索、精确搜索、内积相似度计算或内积相似度筛选时,上述根据相似度计算指令生成操作电压,包括:根据相似度计算类型,将相似度计算指令中的数据生成操作电压。
当相似度计算类型为杰卡德相似度计算时,上述根据相似度计算指令生成操作电压,包括:根据相似度计算类型生成操作电压。
S1602、基于目标地址选通待计算数据,并在待计算数据上施加操作电压进行相似度计算,产生输出信号。
S1603、对输出信号进行处理,并输出计算结果。
对于不同类型的相似度计算可以有不同的处理方式,具体可以参考前述实施例的相关描述。
当相似度计算类型为杰卡德相似度计算时,输出信号包括第一时钟周期输出的第一信号和第二时钟周期输出的第二信号,上述对输出信号进行处理,并输出计算结果,包括:将第一信号与第二参考电流进行比较得到第一数值,并将第一数值延迟一个时钟周期后输出,将第二信号与第三参考电流进行比较得到第二数值,并将第二数值直接输出,该第二参考电流和第三参考电流不同。对第一数值和第二数值进行除法运算,并输出计算结果。
本申请实施例提供的相似度计算方法,通过在选通的待计算数据上施加操作电压可以实现相似度计算,因此数据无需频繁搬移,相较于现有技术中的相似度计算方案,能够降低数据搬移的能耗,节省存储和计算之间的带宽。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (23)

1.一种相似度计算装置,其特征在于,所述相似度计算装置包括:输入信号处理模块、数据计算模块和至少一个输出处理电路,所述输入信号处理模块通过所述数据计算模块与所述至少一个输出处理电路耦合,所述数据计算模块包括存储阵列,所述存储阵列用于存储待计算数据;
所述输入信号处理模块,用于接收相似度计算指令,并根据所述相似度计算指令生成操作电压,将所述相似度计算指令中的待计算数据的地址转换为目标地址;
所述数据计算模块,用于基于所述目标地址选通所述存储阵列中存储的所述待计算数据,并在所述待计算数据上施加所述操作电压进行相似度计算;
所述至少一个输出处理电路,用于对所述数据计算模块输出的信号进行处理,并输出计算结果。
2.根据权利要求1所述的相似度计算装置,其特征在于,所述相似度计算指令包括所述相似度计算类型,所述输入信号处理模块包括电压编码电路、第一电压转置电路和地址译码电路;
所述电压编码电路,用于根据所述相似度计算类型生成所述操作电压;
所述第一电压转置电路,用于将所述电压编码电路生成的所述操作电压直接传递至所述数据计算模块,或者,将所述电压编码电路生成的所述操作电压置反后传递至所述数据计算模块;
所述地址译码电路,用于将所述相似度计算指令中的所述待计算数据的地址转换为所述目标地址。
3.根据权利要求1或2所述的相似度计算装置,其特征在于,所述数据计算模块还包括开关阵列,所述输入信号处理模块通过所述开关阵列耦合至所述存储阵列;
所述开关阵列,用于基于所述地址译码电路输出的所述目标地址,选通所述目标地址对应的行和列。
4.根据权利要求1-3中任一项所述的相似度计算装置,其特征在于,所述至少一个输出处理电路包括第一输出处理电路,所述第一输出处理电路包括跨阻放大电路和至少一个子处理电路;
所述跨阻放大电路,用于将所述数据计算模块输出的电流信号转化为电压信号;
所述至少一个子处理电路,用于将所述跨阻放大电路输出的模拟信号进行处理并输出。
5.根据权利要求4所述的相似度计算装置,其特征在于,所述至少一个子处理电路包括第一子处理电路,所述第一子处理电路包括模数转换电路,所述跨阻放大电路与所述模数转换电路耦合;
所述模数转换电路,用于将所述跨阻放大电路输出的模拟信号转换为数字信号并输出。
6.根据权利要求4或5所述的相似度计算装置,其特征在于,所述至少一个子处理电路还包括第二子处理电路,所述第二子处理电路包括灵敏放大电路和第二电压转置电路,所述跨阻放大电路通过所述灵敏放大电路耦合至所述第二电压转置电路;
所述灵敏放大电路,用于将所述跨阻放大电路输出的电压信号与参考电压进行比较并输出;
所述第二电压转置电路,用于根据所述相似度计算类型,将所述灵敏放大电路输出的信号直接输出或置反后输出。
7.根据权利要求6所述的相似度计算装置,其特征在于,所述相似度计算类型为精确搜索时,所述第二电压转置电路用于将所述灵敏放大电路输出的信号直接输出;所述相似度计算类型为模糊搜索时,所述第二电压转置电路用于将所述灵敏放大电路输出的信号置反后输出。
8.根据权利要求5-7中任一项所述的相似度计算装置,其特征在于,所述第一输出处理电路包括多个子处理电路时,所述第一输出处理电路还包括第一选择器;
所述第一选择器,用于根据所述相似度计算指令中的相似度计算类型,将所述跨阻放大电路输出的模拟信号输出至对应的子处理电路。
9.根据权利要求1-8中任一项所述的相似度计算装置,其特征在于,所述至少一个输出处理电路还包括第二输出处理电路,所述第二输出处理电路包括模数转换电路;
所述模数转换电路,用于将所述数据计算模块输出的模拟信号转化为数字信号并输出。
10.根据权利要求1-9中任一项所述的相似度计算装置,其特征在于,所述至少一个输出处理电路还包括第三输出处理电路,所述第三输出处理电路包括灵敏放大电路;
所述灵敏放大电路,用于将所述数据计算模块输出的信号与第一参考电流进行比较并输出。
11.根据权利要求1-10中任一项所述的相似度计算装置,其特征在于,所述至少一个输出处理电路还包括第四输出处理电路,所述第四输出处理电路包括灵敏放大电路、延迟电路和除法电路;所述灵敏放大电路的输出端分别耦合至所述延迟电路的输入端和所述除法电路的第一输入端,所述延迟电路的输出端耦合至所述除法电路的第二输入端。
12.根据权利要求11所述的相似度计算装置,其特征在于,
所述灵敏放大电路,用于将所述数据计算模块在第一时钟周期输出的第一信号与第二参考电流进行比较得到第一数值,并将所述第一数值输出至所述延迟电路;将所述数据计算模块在第二时钟周期输出的第二信号与第三参考电流进行比较得到第二数值,并将所述第二数值输出至所述除法电路;所述第二参考电流和所述第三参考电流不同;
所述延迟电路,用于将所述灵敏放大电路输出的所述第一数值延迟后输出至所述除法电路;
所述除法电路,用于对所述第一数值和所述第二数值进行除法运算,并输出计算结果。
13.根据权利要求10所述的相似度计算装置,其特征在于,所述第三输出处理电路还包括第三选择器,所述第三选择器用于根据所述相似度计算指令中的相似度计算类型,将所述灵敏放大电路的输出信号直接输出,或者,将所述灵敏放大电路的输出信号输出至计算电路。
14.根据权利要求13所述的相似度计算装置,其特征在于,所述计算电路包括延迟电路和除法电路;所述第三选择器的输出端分别耦合至所述延迟电路的输入端和所述除法电路的第一输入端,所述延迟电路的输出端耦合至所述除法电路的第二输入端;
所述第三选择器,具体用于在所述相似度计算类型为杰卡德相似度计算时,将所述灵敏放大电路在第一时钟周期输出的信号输出至延迟电路,将所述灵敏放大电路在第二时钟周期输出的信号输出至除法电路;
所述延迟电路,用于将所述灵敏放大电路在第一时钟周期输出的信号延迟后输出至所述除法电路;
所述除法电路,用于对所述灵敏放大电路在第一时钟周期输出的信号与所述灵敏放大电路在第二时钟周期输出的信号进行除法运算,并输出计算结果。
15.根据权利要求1-14中任一项所述的相似度计算装置,其特征在于,所述相似度计算装置包括多个输出处理电路时,所述相似度计算装置还包括第二选择器;
所述第二选择器,用于根据所述相似度计算指令中的相似度计算类型,将所述数据计算模块输出的信号输出至对应的输出处理电路。
16.根据权利要求15所述的相似度计算装置,其特征在于,所述相似度计算类型包括汉明距离计算、模糊搜索、精确搜索、内积相似度计算、内积相似度筛选或杰卡德相似度计算中的至少一种。
17.一种相似度计算方法,其特征在于,所述方法包括:
根据相似度计算指令生成操作电压,并将所述相似度计算指令中的待计算数据的地址转换为目标地址;
基于所述目标地址选通所述待计算数据,并在所述待计算数据上施加所述操作电压进行相似度计算,产生输出信号;
对所述输出信号进行处理,并输出计算结果。
18.根据权利要求17所述的方法,其特征在于,所述相似度计算指令包括相似度计算类型,所述根据相似度计算指令生成操作电压,包括:
根据所述相似度计算类型,将所述相似度计算指令中的数据生成所述操作电压。
19.根据权利要求18所述的方法,其特征在于,所述相似度计算类型包括汉明距离计算、模糊搜索、精确搜索、内积相似度计算或内积相似度筛选中的至少一种。
20.根据权利要求17所述的方法,其特征在于,所述相似度计算类型为杰卡德相似度计算,所述输出信号包括第一时钟周期输出的第一信号和第二时钟周期输出的第二信号,所述对所述输出信号进行处理,并输出计算结果,包括:
将所述第一信号与第二参考电流进行比较得到第一数值,并将所述第一数值延迟一个时钟周期后输出;将所述第二信号与第三参考电流进行比较得到第二数值,并将所述第二数值直接输出;所述第二参考电流和所述第三参考电流不同;
对所述第一数值和所述第二数值进行除法运算,并输出计算结果。
21.一种存储器件,其特征在于,所述存储器件包括控制器,以及如权利要求1-16中任一项所述的相似度计算装置,所述控制器用于向所述相似度计算装置发送所述相似度计算指令。
22.根据权利要求21所述的存储器件,其特征在于,所述存储器件还包括存储模块,所述存储模块用于存储所述待计算数据与所述计算结果。
23.根据权利要求21或22所述的存储器件,其特征在于,所述存储器件为硬盘或内存。
CN202111290869.0A 2021-11-02 2021-11-02 一种相似度计算装置、方法和存储器件 Pending CN116089840A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111290869.0A CN116089840A (zh) 2021-11-02 2021-11-02 一种相似度计算装置、方法和存储器件
PCT/CN2022/097665 WO2023077798A1 (zh) 2021-11-02 2022-06-08 一种相似度计算装置、方法和存储器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111290869.0A CN116089840A (zh) 2021-11-02 2021-11-02 一种相似度计算装置、方法和存储器件

Publications (1)

Publication Number Publication Date
CN116089840A true CN116089840A (zh) 2023-05-09

Family

ID=86185415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111290869.0A Pending CN116089840A (zh) 2021-11-02 2021-11-02 一种相似度计算装置、方法和存储器件

Country Status (2)

Country Link
CN (1) CN116089840A (zh)
WO (1) WO2023077798A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598919B (zh) * 2014-12-22 2017-09-19 宁波力芯科信息科技有限公司 用于相似度智能匹配的模糊识别器及方法
US11409527B2 (en) * 2019-07-15 2022-08-09 Cornell University Parallel processor in associative content addressable memory
CN110597484B (zh) * 2019-08-02 2021-08-13 北京航空航天大学 基于存内计算的多比特全加器、多比特全加运算控制方法
CN113129966A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 汉明距离计算方法、芯片和设备
CN112581996B (zh) * 2020-12-21 2023-07-25 东南大学 基于磁性随机存储器的时域存内计算阵列结构
CN113285429B (zh) * 2021-05-17 2023-11-21 三峡大学 基于杰卡德相似度比较的多端柔性直流输电线路保护方法
CN114077418A (zh) * 2021-11-18 2022-02-22 海光信息技术股份有限公司 存储器内运算方法及装置、存储器及存储介质
CN114077417A (zh) * 2021-11-18 2022-02-22 海光信息技术股份有限公司 存储器内运算方法及装置、存储器及存储介质

Also Published As

Publication number Publication date
WO2023077798A1 (zh) 2023-05-11

Similar Documents

Publication Publication Date Title
Lin et al. Learning the sparsity for ReRAM: Mapping and pruning sparse neural network for ReRAM based accelerator
EP3314534B1 (en) Method and device for searching images
KR101958939B1 (ko) 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법
CN113741858B (zh) 存内乘加计算方法、装置、芯片和计算设备
Lin et al. Siman: Sign-to-magnitude network binarization
CN108921292B (zh) 面向深度神经网络加速器应用的近似计算系统
CN109075805A (zh) 实现极化码的设备和方法
Boukli Hacene et al. Budget restricted incremental learning with pre-trained convolutional neural networks and binary associative memories
Sanchez et al. Fast trajectory clustering using hashing methods
Saxena et al. Towards ADC-less compute-in-memory accelerators for energy efficient deep learning
Li et al. Elf: Erasing-based lossless floating-point compression
Reis et al. A fast and energy efficient computing-in-memory architecture for few-shot learning applications
Grohs et al. Phase transitions in rate distortion theory and deep learning
CN116089840A (zh) 一种相似度计算装置、方法和存储器件
Bisson et al. A cuda implementation of the pagerank pipeline benchmark
Hu et al. Binary sparse signal recovery algorithms based on logic observation
Wang et al. Deterministic constructions of compressed sensing matrices based on codes
Li et al. Erasing-based lossless compression method for streaming floating-point time series
Wang et al. Compacting binary neural networks by sparse kernel selection
CN114153421A (zh) 存储器装置及其操作方法
Tseng et al. In-memory approximate computing architecture based on 3D-NAND flash memories
CN114692076A (zh) 一种忆阻器芯片及其操作方法
Chen et al. Compression for population genetic data through finite-state entropy
US20240152327A1 (en) Computing circuit, computing method, and decoder
Cheng et al. A Low-Power High-Throughput In-Memory CMOS-ReRAM Accelerator for Large-Scale Deep Residual Neural Networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication