logo好方法网

用于聚类计算的加速器


技术摘要:
本申请提供了用于聚类计算的加速器,包括仲裁模块、数据搬运模块和距离计算模块,其中,所述仲裁模块根据收到的第一请求向所述数据搬运模块发送第二请求,所述第一请求携带所述键值时,所述数据搬运模块根据所述第二请求从DDR中将所述键值和X个索引值搬移到距离计算模  全部
背景技术:
图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提 供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于 通过例如SATA(Serial  Advanced  Technology  Attachment,串行高级技术附件)、SCSI (Small  Computer  System  Interface,小型计算机系统接口)、SAS(Serial  Attached  SCSI,串行连接SCSI)、IDE(Integrated  Drive  Electronics,集成驱动器电子)、USB (Universal  Serial  Bus,通用串行总线)、PCIE(Peripheral  Component  Interconnect  Express,PCIe,高速外围组件互联)、NVMe(NVM  Express,高速非易失存储)、以太网、光纤通 道、无线通信网络等连接主机与固态存储设备102。主机是能够通过上述方式同存储设备相 通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路 由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM 芯片105以及DRAM(Dynamic  Random  Access  Memory,动态随机访问存储器)110。 NAND闪存、相变存储器、FeRAM(Ferroelectric  RAM,铁电存储器)、MRAM(Magnetic  Random  Access  Memory,磁阻存储器)、RRAM(Resistive  Random  Access  Memory,阻变存储 器)、XPoint存储器等是常见的NVM。 接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方 式与主机交换数据。 控制部件104用于控制在接口103、NVM芯片105以及DRAM  110之间的数据传输,还 用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可 通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field- programmable  gate  array,现场可编程门阵列)、ASIC(Application  Specific  Integrated  Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处 理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO (Input/Output)命令。控制部件104还可以耦合到DRAM  110,并可访问DRAM  110的数据。在 DRAM可存储FTL表和/或缓存的IO命令的数据。 控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪 存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发 出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接 口协议包括“Toggle”、“ONFI”等。 在存储设备中,利用FTL(Flash  Translation  Layer,闪存转换层)来维护从逻辑 地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设 备的存储空间。物理地址是用于访问固态存储设备的物理存储模块的地址。在相关技术中 4 CN 111581441 A 说 明 书 2/25 页 还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址 进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。 存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存 储设备中的重要元数据。通常FTL表的条目记录了存储设备中以数据页为单位的地址映射 关系。 一些存储设备的FTL由存储设备所耦合的主机提供,由主机的存储器存储FTL表, 主机的CPU执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供 FTL。这些情况下,存储设备所接收的读/写命令指示物理地址。 支持Key-Value(键-数据,也简称为“KV”)存储模型的存储设备,提供基于键(Key) 的读操作(Get(Key))与写操作(Put(Key,Value))。为执行写操作,主机向存储设备提供键 (Key)与数据(Value),以将数据写入存储设备,并将键作为所写入的数据的索引。为执行读 操作,主机向存储设备提供键,存储设备根据键找到数据,并将数据提供给主机。因而在KV 存储系统中,键是用来访问数据的索引,而数据(Value)是被访问的数据。一般地,键与数据 的长度均不是定长。以及可选地,为了降低复杂性,键和/或数据的长度可具有指定范围。 在申请号为201711392529.2、201711474660.3、201810332295.0、201810286955.6 与201810286986.1的中国专利申请中提供了KV存储设备或利用KV存储设备的分布式存储 系统。 图1B展示了现有技术的KV存储设备的地址转换系统的示意图。KV存储设备的地址 转换系统(也称为FTL表)提供从关键字(K,也称为键)到逻辑地址或物理地址(例如,PPA, Physical  Page  Address,物理页地址)的映射。响应于获取关键字(K),用关键字(K)作为索 引查询FTL表,得到对应的逻辑地址或物理地址。 由于信息处理系统要存储大量的数据,每次根据关键字查询FTL表都需要进行大 量的计算,从而导致搜索数据速度慢。
技术实现要素:
本申请实施例通过提供用于聚类计算的加速器,用于解决现有技术中的信息处理 系统搜索数据速度慢的技术问题。 根据本申请的第一方面,提供了根据本申请的第一方面的第一用于聚类计算的加 速器,包括仲裁模块、数据搬运模块和距离计算模块,其中,所述仲裁模块根据收到的第一 请求向所述数据搬运模块发送第二请求,所述第一请求携带关键字、或所述第一请求携带 所述关键字和与所述关键字对应的第一索引值,所述第一请求为读请求或写请求,所述第 二请求为数据搬移请求;所述第一请求携带所述关键字时,所述数据搬运模块根据所述第 二请求从DDR中将所述关键字和X个索引值搬移到距离计算模块,所述X为大于等于2的整 数;所述距离计算模块根据所述X个索引值对所述关键字进行距离计算,获取所述第一索引 值,所述第一索引值为所述X个索引值中与所述关键字距离最小的索引值。 根据本申请的第一方面的第一用于聚类计算的加速器,提供了根据本申请的第一 方面的第二用于聚类计算的加速器,其中,所述第一请求携带所述关键字和所述第一索引 值时,所述数据搬运模块根据所述第二请求从所述DDR将所述关键字和与所述第一索引值 对应的N个特征值搬移到所述距离计算模块;所述距离计算模块根据所述N个特征值对所述 5 CN 111581441 A 说 明 书 3/25 页 关键字进行距离计算,以从所述N个特征值中获取与所述关键字距离最小的M个第一特征 值,所述N和所述M均为大于等于1的整数,且所述M小于等于所述N。 根据本申请的第一方面的第一或第二用于聚类计算的加速器,提供了根据本申请 的第一方面的第三用于聚类计算的加速器,其中,所述加速器还包括归一化模块,在所述距 离计算模块接收所述关键字和所述X个索引值之前,所述归一化模块对所述关键字和所述X 个索引值进行归一化运算,并向所述距离计算模块发送归一化后的所述关键字和所述X个 索引值。 根据本申请的第一方面的第二或第三用于聚类计算的加速器,提供了根据本申请 的第一方面的第四用于聚类计算的加速器,其中,所述第一请求携带所述关键字和所述第 一索引值时,所述距离计算模块计算所述N个特征值中每个特征值与所述关键字的距离,以 获取N个第一距离;所述距离计算模块对所述N个第一距离按照取值从小到大进行排序,获 取排序后的距离队列;所述距离计算模块从所述距离队列中选取所述M个第一特征值。 根据本申请的第一方面的第二至第四用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第五用于聚类计算的加速器,其中,所述M小于等于256。 根据本申请的第一方面的第四用于聚类计算的加速器,提供了根据本申请的第一 方面的第六用于聚类计算的加速器,其中,所述距离计算模块采用插入排序的方式对所述N 个第一距离进行排序,所述距离队列的队列长度在排序过程中保持256项。 根据本申请的第一方面的第一至第六用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第七用于聚类计算的加速器,其中,所述距离计算模块对所述关键字进 行距离计算时,所述距离计算模块计算所述X个索引值中每个索引值与所述关键字的距离, 以获取X个第二距离;所述距离计算模块比较所述X个第二距离中的任意两个第二距离的大 小,确定所述X个索引值中最小的第二距离的索引值为所述第一索引值。 根据本申请的第一方面的第一至第七用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第八用于聚类计算的加速器,其中,所述距离计算模块包括Y个计算单 元,所述关键字包括Z组数值,所述Y和所述Z均为大于等于1的整数,且所述Z小于等于所述 Y,所述距离计算模块利用所述Y个计算单元,根据所述X个索引值同时对所述Z组数值进行 距离计算,获取所述Z组数值中每个数值对应的索引值。 根据本申请的第一方面的第一至第八用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第九用于聚类计算的加速器,其中,所述加速器还包括结果处理模块,在 所述距离计算模块获得计算结果之后,所述结果处理模块向所述DDR发送所述计算结果。 根据本申请的第一方面的第一至第九用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第十用于聚类计算的加速器,其中,所述X个索引值为预先配置的。 根据本申请的第一方面的第一至第十用于聚类计算的加速器之一,提供了根据本 申请的第一方面的第十一用于聚类计算的加速器,其中,所述仲裁模块向固件提供多个通 道,所述仲裁模块采用轮询调度的仲裁方式接收所述固件向所述多个通道发送的请求。 根据本申请的第一方面的第十一用于聚类计算的加速器,提供了根据本申请的第 一方面的第十二用于聚类计算的加速器,其中,所述仲裁模块采用加权轮询调度的仲裁方 式处理所述固件向所述多个通道发送的请求。 根据本申请的第一方面的第一至第十一用于聚类计算的加速器之一,提供了根据 6 CN 111581441 A 说 明 书 4/25 页 本申请的第一方面的第十三用于聚类计算的加速器,其中,所述第一请求还指示所述加速 器处理所述第一请求所使用的通道,所述仲裁模块根据所述第一请求所指示的通道,指示 所述距离计算模块的至少一个计算单元处理所述第一请求。 根据本申请的第一方面的第十二用于聚类计算的加速器,提供了根据本申请的第 一方面的第十四用于聚类计算的加速器,其中,所述仲裁模块为所述多个第一消息中的每 个第一消息分配计算单元标识,所述计算单元标识用于指示所述距离计算模块中的第一计 算单元处理携带所述第一计算单元标识的第一消息,所述第一计算单元标识与所述第一计 算单元对应。 根据本申请的第一方面的第十四用于聚类计算的加速器之一,提供了根据本申请 的第一方面的第十五用于聚类计算的加速器,其中,所述仲裁模块在所述距离计算模块完 成对所述多个第一消息的处理之后,指示所述距离计算模块处理所述多个通道中等待的第 一消息。 根据本申请的第一方面的第十四或第十五用于聚类计算的加速器,提供了根据本 申请的第一方面的第十六用于聚类计算的加速器,其中,若所述距离计算模块未处理完所 述多个第一消息,即使所述多个第一消息的数量小于所述距离计算模块中的计算单元的数 量且所述距离计算模块中有空闲的计算单元,所述仲裁模块也不指示所述距离计算模块处 理所述多个通道中的消息。 根据本申请的第一方面的第一至第十六用于聚类计算的加速器之一,提供了根据 本申请的第一方面的第十七用于聚类计算的加速器,其中,所述仲裁模块聚合多个第一消 息,并指示所述距离计算模块的至少一个计算单元并行处理聚合后的多个第一消息。 根据本申请的第一方面的第一至第十七用于聚类计算的加速器之一,提供了根据 本申请的第一方面的第十八用于聚类计算的加速器,其中,所述距离计算模块还包括Y个管 理单元,每个管理单元同Y个计算单元中的一个计算单元耦合,所述仲裁模块在发送所述第 二请求时为所述Z组数值分配计算单元标识,每个管理单元从所述Z组数值中获取计算单元 标识与自身相同的数值,每个管理单元将获取到的数值发送给与自身耦合的计算单元。 根据本申请的第二方面,提供了根据本申请的第二方面的第一信息处理系统,包 括主机、加速器、映射管理器、处理器和固态硬盘,其中,所述主机根据接口函数,生成及向 所述处理器发送第一请求,所述第一请求包括读请求和写请求,所述第一请求携带关键字、 或所述第一请求携带所述关键字和与所述关键字对应的第一索引值;所述处理器根据所述 第一请求生成第二请求,所述第二请求包括聚类请求、搜索请求、地址分配请求、地址获取 请求和存储设备的访问请求中的一项或多项;所述处理器使用所述第二请求操作所述加速 器、所述映射管理器和所述固态硬盘中的至少一者,以完成一项或多项所述第二请求的处 理,以得到所述第一请求的处理结果并返回给所述主机。 根据本申请的第二方面的第一信息处理系统,提供了根据本申请的第二方面的第 二信息处理系统,其中,所述第一请求为写请求且所述第一请求携带所述关键字和所述第 一索引值时,所述处理器生成所述地址分配请求和所述存储设备的访问请求;或者,所述第 一请求为写请求且所述第一请求携带所述关键字时,所述处理器生成所述聚类请求、所述 地址分配请求和所述存储设备的访问请求。 根据本申请的第二方面的第一或第二信息处理系统,提供了根据本申请的第二方 7 CN 111581441 A 说 明 书 5/25 页 面的第三信息处理系统,其中,所述第一请求为读请求且所述第一请求携带所述关键字和 所述第一索引值时,所述处理器生成所述地址获取请求、所述存储设备的访问请求和所述 搜索请求;或者,所述第一请求为读请求且所述第一请求携带所述关键字时,所述处理器生 成所述聚类请求、所述地址获取请求、所述存储设备的访问请求和所述搜索请求;或者,所 述第一请求为读索引请求(Get_Index)且所述第一请求携带所述关键字时,所述处理器仅 生成所述聚类请求。 根据本申请的第二方面的第一或第二信息处理系统,提供了根据本申请的第二方 面的第四信息处理系统,其中,若所述处理器生成的所述第二请求包括所述地址分配请求 和所述存储设备的访问请求,所述处理器向所述映射管理器发送所述地址分配请求,并获 取所述映射管理器提供的所述存储地址;所述处理器向所述固态硬盘发送携带了所述存储 地址的所述存储设备的访问请求,以指示所述固态硬盘根据所述存储地址保存同所述关键 字关联的数据。 根据本申请的第二方面的第一或第二信息处理系统,提供了根据本申请的第二方 面的第五信息处理系统,其中,若所述处理器生成的所述第二请求包括所述聚类请求、所述 地址分配请求和所述访问请求,所述处理器向所述加速器发送所述聚类请求,并获取所述 加速器返回的第一索引值;所述处理器向所述映射管理器发送携带了所获取的第一索引值 和/或所述关键字的所述地址分配请求,并获取所述映射管理器根据所述第一索引值为所 述关键字分配的存储地址;所述处理器向所述固态硬盘发送携带了所述存储地址的所述存 储设备的访问请求,以指示所述固态硬盘根据所述存储地址保存同所述关键字关联的数 据。 根据本申请的第二方面的第一或第三信息处理系统,提供了根据本申请的第二方 面的第六信息处理系统,其中,若所述处理器生成的所述第二请求仅包括所述聚类请求,所 述处理器向所述加速器发送所述聚类请求,并获取所述加速器返回的第一索引值;以及所 述处理器向所述主机返回所述第一索引值作为所述第一请求的处理结果。 根据本申请的第二方面的第一或第三信息处理系统,提供了根据本申请的第二方 面的第七信息处理系统,其中,若所述处理器生成的所述第二请求包括所述地址获取请求、 所述访问请求和所述搜索请求,所述处理器向所述映射管理器发送携带了所获取的第一索 引值的所述地址获取请求,并获取所述映射管理器返回的与所述第一索引值对应的至少一 个特征值的至少一个存储地址;所述处理器用所述至少一个存储地址访问向所述固态硬 盘,并获取所述固态硬盘返回的所述至少一个特征值;所述处理器向所述加速器发送指示 了所述关键字与所述至少一个特征值的所述搜索请求,以获取所述加速器从所述至少一个 特征值中筛选与所述关键字对应的至少一个第一特征值,并向所述处理器返回所述至少一 个第一特征值,所述第一特征值为与所述关键字的距离小于预设阈值的特征值或所述至少 一个第一特征值为所述至少一个特征值中同所述关键字的距离最小的M个特征值,所述M大 于等于1;所述处理器向所述主机返回所述至少一个第一特征值作为所述第一请求的处理 结果。 根据本申请的第二方面的第一或第三信息处理系统,提供了根据本申请的第二方 面的第八信息处理系统,其中,若所述处理器生成的所述第二请求包括所述聚类请求、所述 地址获取请求、所述访问请求和所述搜索请求,所述处理器向所述加速器发送所述聚类请 8 CN 111581441 A 说 明 书 6/25 页 求,并获取所述加速器返回的第一索引值;所述处理器向所述映射管理器发送携带了所获 取的第一索引值的所述地址获取请求,并获取所述映射管理器返回的与所述第一索引值对 应的至少一个特征值的所述至少一个存储地址;所述处理器用所述至少一个存储地址访问 所述固态硬盘以获取所述固态硬盘返回的所述至少一个特征值;所述处理器向所述加速器 发送指示了所述关键字和所述至少一个特征值的所述搜索请求,并获取所述加速器返回的 所述至少一个第一特征值,所述第一特征值为与所述关键字的距离小于预设阈值的特征值 或所述至少一个第一特征值为所述至少一个特征值中同所述关键字的距离最小的M个特征 值,所述M大于等于1;所述处理器向所述主机返回所述至少一个第一特征值,作为所述第一 请求的处理结果。 根据本申请的第二方面的第一至第二信息和第四至第五信息处理系统之一,提供 了根据本申请的第二方面的第九信息处理系统,其中,所述处理器响应于从所述固态硬盘 接收用于表征完成所述关键字的存储的完成信息,向所述主机指示所述第一请求的处理完 成。 根据本申请的第二方面的第一至第九信息处理系统之一,提供了根据本申请的第 二方面的第十信息处理系统,其中,所述接口函数携带请求的类型、所述关键字和所述第一 索引值中的至少一者。 根据本申请的第二方面的第一至第十信息处理系统之一,提供了根据本申请的第 二方面的第十一信息处理系统,其中,若所述处理器生成的所述第二请求包括所述聚类请 求、所述搜索请求、所述地址分配请求、所述地址获取请求和所述访问请求中的至少两项请 求,所述处理器根据所述第一请求一次性生成所述至少两项请求;或者,所述处理器根据所 述第一请求分成多次生成所述至少两项请求。 根据本申请的第二方面的第十一信息处理系统,提供了根据本申请的第二方面的 第十二信息处理系统,其中,若所述处理器生成的所述第二请求包括所述聚类请求、所述地 址分配请求和所述访问请求,所述处理器根据所述第一请求生成所述聚类请求,并向所述 加速器发送所述聚类请求;响应于所述聚类请求,所述加速器确定与所述关键字对应的第 一索引值,并向所述处理器返回所述第一索引值;所述处理器接收到所述第一索引值之后, 根据所述第一请求和所述第一索引值生成所述地址分配请求,并向所述映射管理器发送所 述地址分配请求;响应于所述地址分配请求,所述映射管理器根据所述第一索引值为所述 关键字分配存储地址,并向所述处理返回所述存储地址,所述存储地址用于访问所述固态 硬盘;所述处理器接收到所述存储地址之后,根据所述第一请求和所述存储地址生成所述 固态硬盘的访问请求,并向所述固态硬盘发送所述固态硬盘的访问请求;响应于所述固态 硬盘的访问请求,所述固态硬盘根据所述存储地址保存所述关键字。 根据本申请的第三方面,提供了根据本申请的第三方面的第一主机,包括应用程 序模块、API接口模块、管理模块、加速驱动模块、映射驱动模块和硬盘驱动模块,其中,所述 应用程序模块调用所述API接口模块提供的API;所述管理模块根据被调用API,向所述加速 驱动模块、映射驱动模块和硬盘驱动模块中的至少一个发送驱动请求;若接收到所述驱动 请求,所述加速驱动模块操作与自身耦合的加速器,并向所述管理模块返回的第一操作结 果;若接收到所述驱动请求,所述映射驱动模块操作与自身耦合的映射管理器,并向所述管 理模块返回的第二操作结果;若接收到所述驱动请求,所述硬盘驱动模块操作与自身耦合 9 CN 111581441 A 说 明 书 7/25 页 的固态硬盘,并向所述管理模块返回的第三操作结果;所述管理模块接收到第一操作结果、 第二操作结果或第三操作结果之后,通过所述API接口模块向所述应用程序模块返回用于 指示所述被调用API调用完成的信息。 根据本申请的第三方面的第一主机,提供了根据本申请的第三方面的第二主机, 其中,所述第一操作结果指示同关键字对应的第一索引值,所述关键字是所述应用程序调 用API提供的关键字;所述第二操作结果指示访问所述固态硬盘的一个或多个存储地址;所 述第三操作结果指示所述固态硬盘处理完成对所述一个或多个地址的写入操作,或者从所 述固态硬盘读出的第一特征值,所述第一特征值为与所述关键字的距离小于预设阈值的特 征值或所述至少一个第一特征值为所述至少一个特征值中同所述关键字的距离最小的M个 特征值,所述M大于等于1。 根据本申请的第四方面,提供了根据本申请的第四方面的第一信息处理方法,包 括:响应于收到指示了关键字(Key)的第一请求,生成一个或多个第二请求,第二请求包括 聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多 项;根据一个或多个第二请求的处理结果,生成第一请求的处理结果。 根据本申请的第四方面的第一信息处理方法,提供了根据本申请的第四方面的第 二信息处理方法,还包括:所述聚类请求指示获取X个索引值中同所述关键字最接近的索引 值,其中X是正整数;所述搜索请求指示获取N个特征值中同所述关键字最接近的M个特征 值,其中M与N是正整数;所述地址分配请求指示获取同所述关键字和/或第一索引值对应的 一个或多个存储地址;所述地址获取请求指示获取同所述关键字对应的存储了所述X个索 引值的一个或多个存储地址;所述存储设备的访问请求指示存储设备访问所述一个或多个 存储地址。 根据本申请的第四方面的第一或第二信息处理方法,提供了根据本申请的第四方 面的第三信息处理方法,还包括:若所述第一请求是调用Get(Key)API产生的指示了关键字 的请求,根据所述关键字生成聚类请求,使用所述聚类请求返回的索引值生成地址获取请 求,根据所述地址获取请求返回的存储地址生成所述存储设备的访问请求,根据所述存储 设备的访问请求返回的X个索引值生成搜索请求,根据搜索请求返回的M个特征值作为所述 第一请求的处理结果。 根据本申请的第四方面的第一至第三信息处理方法之一,提供了根据本申请的第 四方面的第四信息处理方法,还包括:若所述第一请求是调用Get_With_Index(Key,Index) API产生的指示了关键字与索引值的请求,根据所述索引值生成地址获取请求,根据所述地 址获取请求返回的存储地址生成所述存储设备的访问请求,根据所述存储设备的访问请求 返回的X个索引值生成搜索请求,根据搜索请求返回的M个特征值作为所述第一请求的处理 结果。 根据本申请的第四方面的第一至第四信息处理方法之一,提供了根据本申请的第 四方面的第五信息处理方法,还包括:若所述第一请求是调用Get_Index(Key)API产生的指 示了关键字的请求,根据所述关键字生成聚类请求,使用所述聚类请求返回的索引值作为 所述第一请求的处理结果。 根据本申请的第四方面的第一至第五信息处理方法之一,提供了根据本申请的第 四方面的第六信息处理方法,还包括:若所述第一请求是调用Put(Key)API产生的指示了关 10 CN 111581441 A 说 明 书 8/25 页 键字的请求,根据所述关键字生成聚类请求,使用所述聚类请求返回的索引值与所述关键 字生成地址分配请求,根据所述地址分配请求返回的存储地址生成所述存储设备的访问请 求以将同所述关键字对应的数据写入所述存储设备。 根据本申请的第四方面的第一至第五信息处理方法之一,提供了根据本申请的第 四方面的第七信息处理方法,还包括:若所述第一请求是调用Put_With_Index(Key,Index) API产生的指示了关键字与索引值的请求,根据所述索引值与所述关键字生成地址分配请 求,根据所述地址分配请求返回的存储地址生成所述存储设备的访问请求以将同所述关键 字对应的数据写入所述存储设备。 根据本申请的第五方面,提供了根据本申请的第五方面的第一信息处理系统,包 括:第一模块,用于响应于收到指示了关键字(Key)的第一请求,生成一个或多个第二请求, 第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中 的一项或多项;第二模块,用于根据一个或多个第二请求的处理结果,生成第一请求的处理 结果。 根据本申请的第六方面,提供了根据本申请的第六方面的第一信息处理系统,包 括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执 行所述程序时实现以下步骤:响应于收到指示了关键字(Key)的第一请求,生成一个或多个 第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的 访问请求中的一项或多项;根据一个或多个第二请求的处理结果,生成第一请求的处理结 果。 根据本申请的第七方面,提供了根据本申请的第七方面的第一信息处理系统,包 括主机、加速器、映射管理器和存储设备,其中,所述加速器、所述映射管理器和所述存储设 备各自耦合到所述主机;所述主机根据第一请求生成第二请求,所述第二请求包括聚类请 求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;所述 主机使用所述第二请求操作所述加速器、所述映射管理器和所述固态硬盘中的至少一者, 以完成一项或多项所述第二请求的处理,以得到所述第一请求的处理结果。 根据本申请的第七方面的第一信息处理系统,提供了根据本申请的第七方面的第 二信息处理系统,其中,所述主机的应用程序产生第一请求;所述主机的管理程序根据所述 第一请求生成第二请求;所述第一请求包括读请求或写请求,所述第一请求携带关键字、或 所述第一请求携带所述关键字和与所述关键字对应的索引值。 根据本申请的第七方面的第一或第二信息处理系统,提供了本申请的第七方面的 第三信息处理系统,其中,若所述第一请求为调用Put_With_Index(Key,Index)API产生的 携带了关键字和第一索引值的请求,所述主机生成所述地址分配请求和所述存储设备的访 问请求;或者,若所述第一请求为调用Put(Key)API产生的携带了关键的写请求,所述主机 生成所述聚类请求、所述地址分配请求和所述存储设备的访问请求。 根据本申请的第七方面的第一至第三信息处理系统之一,提供了本申请的第七方 面的第四信息处理系统,其中,若所述第一请求为调用Get_With_Index(Key,Index)API产 生的携带了关键字与索引值的读请求,所述主机生成所述地址获取请求、所述存储设备的 访问请求和所述搜索请求;或者,若所述第一请求为调用Get(Key)API产生的携带了关键字 的读请求,所述主机生成所述聚类请求、所述地址获取请求、所述存储设备的访问请求和所 11 CN 111581441 A 说 明 书 9/25 页 述搜索请求;或者,所述第一请求为调用Get_Index( )API产生的读请求,所述处理器仅生 成所述聚类请求。 根据本申请的第七方面的第一至第三信息处理系统之一,提供了本申请的第七方 面的第五信息处理系统,其中,若所述主机生成的所述第二请求包括所述地址分配请求和 所述存储设备的访问请求,所述主机向所述映射管理器发送所述地址分配请求,并获取所 述映射管理器提供的所述存储地址;所述主机向所述固态硬盘发送携带了所述存储地址的 所述存储设备的访问请求,以指示所述固态硬盘根据所述存储地址保存同所述关键字关联 的数据。 根据本申请的第七方面的第一至第三信息处理系统之一,提供了本申请的第七方 面的第六信息处理系统,其中,若所述主机生成的所述第二请求包括所述聚类请求、所述地 址分配请求和所述访问请求,所述主机向所述加速器发送所述聚类请求,并获取所述加速 器返回的第一索引值;所述主机向所述映射管理器发送携带了所获取的第一索引值和/或 所述关键字的所述地址分配请求,并获取所述映射管理器根据所述第一索引值为所述关键 字分配的存储地址;所述主机向所述固态硬盘发送携带了所述存储地址的所述存储设备的 访问请求,以指示所述固态硬盘根据所述存储地址保存同所述关键字关联的数据。 根据本申请的第七方面的第一或第四信息处理系统,提供了本申请的第七方面的 第七信息处理系统,其中,若所述主机生成的所述第二请求仅包括所述聚类请求,所述主机 向所述加速器发送所述聚类请求,并获取所述加速器返回的第一索引值;以及所述主机将 所述第一索引值作为所述第一请求的处理结果。 根据本申请的第七方面的第一或第四信息处理系统,提供了本申请的第七方面的 第八信息处理系统,其中,若所述主机生成的所述第二请求包括所述地址获取请求、所述访 问请求和所述搜索请求,所述主机向所述映射管理器发送携带了所获取的第一索引值的所 述地址获取请求,并获取所述映射管理器返回的与所述第一索引值对应的至少一个特征值 的至少一个存储地址;所述主机用所述至少一个存储地址访问向所述固态硬盘,并获取所 述固态硬盘返回的所述至少一个特征值;所述主机向所述加速器发送指示了所述关键字与 所述至少一个特征值的所述搜索请求,以获取所述加速器从所述至少一个特征值中筛选与 所述关键字对应的至少一个第一特征值,并向所述处理器返回所述至少一个第一特征值, 所述第一特征值为与所述关键字的距离小于预设阈值的特征值或所述至少一个第一特征 值为所述至少一个特征值中同所述关键字的距离最小的M个特征值,所述M大于等于1;所述 主机将所述至少一个第一特征值作为所述第一请求的处理结果。 根据本申请的第七方面的第一或第四信息处理系统,提供了本申请的第七方面的 第九信息处理系统,其中,若所述主机生成的所述第二请求包括所述聚类请求、所述地址获 取请求、所述访问请求和所述搜索请求,所述主机向所述加速器发送所述聚类请求,并获取 所述加速器返回的第一索引值;所述主机向所述映射管理器发送携带了所获取的第一索引 值的所述地址获取请求,并获取所述映射管理器返回的与所述第一索引值对应的至少一个 特征值的所述至少一个存储地址;所述主机用所述至少一个存储地址访问所述固态硬盘以 获取所述固态硬盘返回的所述至少一个特征值;所述主机向所述加速器发送指示了所述关 键字和所述至少一个特征值的所述搜索请求,并获取所述加速器返回的所述至少一个第一 特征值,所述第一特征值为与所述关键字的距离小于预设阈值的特征值或所述至少一个第 12 CN 111581441 A 说 明 书 10/25 页 一特征值为所述至少一个特征值中同所述关键字的距离最小的M个特征值,所述M大于等于 1;所述主机将所述至少一个第一特征值作为所述第一请求的处理结果。 根据本申请的第七方面的第一至第三和第五至第六信息处理系统之一,提供了本 申请的第七方面的第十信息处理系统,其中,所述主机响应于从所述固态硬盘接收用于表 征完成所述关键字的存储的完成信息,识别出所述第一请求的处理完成。 根据本申请的第七方面的第一至第十信息处理系统之一,提供了本申请的第七方 面的第十一信息处理系统,其中,所述接口函数携带请求的类型、所述关键字和所述第一索 引值中的至少一者。 根据本申请的第七方面的第一至第十一信息处理系统之一,提供了本申请的第七 方面的第十二信息处理系统,其中,若所述主机生成的所述第二请求包括所述聚类请求、所 述搜索请求、所述地址分配请求、所述地址获取请求和所述访问请求中的至少两项请求,所 述主机根据所述第一请求一次性生成所述至少两项请求;或者,所述主机根据所述第一请 求分成多次生成所述至少两项请求。 根据本申请的第七方面的第十二信息处理系统,提供了本申请的第七方面的第十 三信息处理系统,其中,若所述主机生成的所述第二请求包括所述聚类请求、所述地址分配 请求和所述访问请求,所述主机根据所述第一请求生成所述聚类请求,并向所述加速器发 送所述聚类请求;响应于所述聚类请求,所述加速器确定与所述关键字对应的第一索引值, 并向所述主机返回所述第一索引值;所述主机接收到所述第一索引值之后,根据所述第一 请求和所述第一索引值生成所述地址分配请求,并向所述映射管理器发送所述地址分配请 求;响应于所述地址分配请求,所述映射管理器根据所述第一索引值为所述关键字分配存 储地址,并向所述主机返回所述存储地址,所述存储地址用于访问所述固态硬盘;所述主机 接收到所述存储地址之后,根据所述第一请求和所述存储地址生成所述固态硬盘的访问请 求,并向所述固态硬盘发送所述固态硬盘的访问请求;响应于所述固态硬盘的访问请求,所 述固态硬盘根据所述存储地址保存所述关键字。 根据本申请第八方面,提供了根据本申请第八方面的第一信息处理方法,包括:根 据第一请求生成第二请求,所述第二请求包括聚类请求、搜索请求、地址分配请求、地址获 取请求和存储设备的访问请求中的一项或多项;使用所述第二请求操作所述加速器、所述 映射管理器和所述固态硬盘中的至少一者,以完成一项或多项所述第二请求的处理,以得 到所述第一请求的处理结果。 根据本申请第九方面,提供了根据本申请第九方面的第一信息处理系统,包括处 理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所 述程序时实现以下步骤:根据第一请求生成第二请求,所述第二请求包括聚类请求、搜索请 求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;使用所述第二请 求操作所述加速器、所述映射管理器和所述固态硬盘中的至少一者,以完成一项或多项所 述第二请求的处理,以得到所述第一请求的处理结果。 本申请中的加速器、映射管理器和固态硬盘的管理及驱动由处理器实施,从而减 少了主机与处理器之间的交互,进而提高处理效率。 13 CN 111581441 A 说 明 书 11/25 页 附图说明 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他 的附图。 图1A为现有技术中的存储设备的框图; 图1B有现有技术中FTL表的示意图; 图2为本申请实施例提供的用于聚类计算的加速器的结构示意图; 图3为本申请实施例提供的距离计算模块的结构示意图; 图4为本申请实施例提供的结果处理模块合并计算结果的示意图; 图5A为本申请实施例提供的一种信息处理系统的结构示意图; 图5B-5F为本申请实施例提供的信息处理系统处理的流程示意图; 图6展示了根据本申请又一实施例提供了主机600。
分享到:
收藏