CN112948282A - 用于数据快速查找的计算加速系统 - Google Patents

用于数据快速查找的计算加速系统 Download PDF

Info

Publication number
CN112948282A
CN112948282A CN202110303515.9A CN202110303515A CN112948282A CN 112948282 A CN112948282 A CN 112948282A CN 202110303515 A CN202110303515 A CN 202110303515A CN 112948282 A CN112948282 A CN 112948282A
Authority
CN
China
Prior art keywords
data
request
processor
features
flash memory
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
CN202110303515.9A
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.)
Beijing Starblaze Technology Co ltd
Original Assignee
Beijing Starblaze Technology 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 Beijing Starblaze Technology Co ltd filed Critical Beijing Starblaze Technology Co ltd
Priority to CN202110303515.9A priority Critical patent/CN112948282A/zh
Publication of CN112948282A publication Critical patent/CN112948282A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本申请提供了用于数据快速查找的计算加速系统,包括第一设备以及处理器,其中,所述处理器向所述第一设备发送第一请求,所述第一请求携带第一数据的特征,所述第一请求指示进行距离计算;响应于所述第一请求,对所述第一数据的特征和预存的N个特征进行距离计算,获取所述N个特征中与所述第一数据的特征距离最近的M个特征,并向所述处理器返回所述M个特征,N和M均为正整数,M小于等于N;响应于所述第一请求,所述第一设备还保存所述第一数据和第一数据的特征。

Description

用于数据快速查找的计算加速系统
技术领域
本申请涉及存储技术,特别地,涉及计算加速系统。
背景技术
随着技术的更新换代,作为一种存储量大且高速的存储方式,固态硬盘已经进入了人们生活的各个方面。比如,作为人们个人电脑中的存储设备、作为大型数据库的存储设备等。相对于传统的机械硬盘等存储方式,固态硬盘具备高速读写特性,在一些针对读写速度有很高要求的应用中,固态硬盘也是首选的存储设备。
例如,在安防监控系统中,不仅需要存储海量的数据,也还需实现快速调取数据,固态硬盘就能满足这类系统的所有需求。又如,大型数据库也有存储数据量巨大且读取速度快的需求。但是,在存储的数据量很大时,如何在存储设备中快速的找到所需的数据也是一个重要的需求。对于安防监控系统之类的存放图像或视频的系统,一般会采用GPU(GraphicsProcessingUnit,图像处理器)来实现快速的图像对比等功能,但由于高性能的GPU的价格昂贵也会带来成本过高的问题。而对于存放非图像数据格式的系统,现有技术通常采用复杂的算法来管理存储的数据,例如,机器学习、深度学习等。因此,为了实现快速查找数据,大型存储系统通常需要采取高性能的硬件或复杂的实现方式,从而存在实现难度高且成本高的技术问题。
发明内容
为了解决现有技术中,大型存储系统的实现难度高且成本高的技术问题。根据本申请的第一方面,提供了根据本申请第一方面的第一计算加速系统,包括第一设备和/或第二设备,以及处理器,其中,处理器向第一设备或第二设备发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算;响应于第一请求,第一设备或第二设备对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备或第二设备中;第一设备包括闪存控制器和闪存芯片,第二设备包括现场可编程逻辑门阵列FPGA(FieldProgrammableGateArray),距离计算包括欧式距离计算或欧式余弦计算。
本实施方式中,由第一设备或第二设备来进行数据特征的计算,利用低成本的闪存控制器或FPGA来代替高性能的处理器,从而在处理器性能一般的情况下,也能实现高速计算及高速读取数据的需求,解决现有技术中大型存储系统的实现难度高及成本高的技术问题。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第二计算加速系统,系统仅包括第一设备;处理器向第一设备发送第一请求;响应于第一请求,闪存控制器从闪存芯片中读取N个特征值,闪存控制器将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第三计算加速系统,系统包括第一设备和第二设备;处理器向第二设备发送第一请求;响应于第一请求,FPGA从内存中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第四计算加速系统,系统包括第一设备和第二设备;处理器向第一设备发送第一请求;响应于第一请求,闪存控制器生成第二请求,并向FPGA发送第二请求,第二请求携带第一数据的特征;响应于第二请求,FPGA从内存中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
以上提供了计算加速系统的多种不同的实施方式,其中,FPGA的计算速度通常高于闪存控制器,可根据计算速度需求灵活的选择具体的实施方式。
根据本申请第一方面的第二或第四计算加速系统,提供了根据本申请第一方面的第五计算加速系统,第一请求还指示第一设备进行数据存储;响应于第一请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址;闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
根据本申请第一方面的第三计算加速系统,提供了根据本申请第一方面的第六计算加速系统,第一请求还指示第一设备进行数据存储;响应于第一请求,FPGA还向闪存控制器发送第三请求,第三请求指示闪存控制器进行数据存储,第三请求携带第一数据的特征;响应于第三请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址;闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
根据本申请第一方面的第五或第六计算加速系统,提供了根据本申请第一方面的第七计算加速系统,FPGA还为第一数据的特征分配第二存储地址,第二存储地址指向内存;FPGA访问第二存储地址,将第一数据的特征保存至内存,以使内存保存N+1个特征。
本实施方式中,接收第一数据之后,将第一数据的特征保存到内存之中,从而下一次需要使用到第一数据的特征时,可以快速地从内存中读取,不需要从闪存中获取该特征,减少设备交互的时间和不同设备之间传送数据的时间,进一步减少计算过程中所消耗的数据传输时间。
根据本申请第一方面的第三、第六或第七计算加速系统,提供了根据本申请第一方面的第八计算加速系统,闪存管理器与FPGA通过内存接口、I2C接口、ONFI接口或QSPI接口耦合。
本实施方式中,闪存管理器可以通过多种接口与FPGA耦合,不同接口的数据传输速度不同,从而可根据数据传输速度的要求灵活的选择接口种类。
根据本申请第一方面的第四、第五或第七计算加速系统,提供了根据本申请第一方面的第九计算加速系统,闪存管理器与FPGA通过PCIe接口耦合。
根据本申请第一方面的第一至第九计算加速系统之一,提供了根据本申请第一方面的第十计算加速系统,在发送第一请求之前,处理器接收搜索请求;响应于搜索请求,处理器接收第一数据,根据第一数据计算第一数据的特征,并生成第一请求。
根据本申请第一方面的第一至第十计算加速系统之一,提供了根据本申请第一方面的第十一计算加速系统,第一设备或第二设备获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,包括:第一设备或第二设备进行距离计算,获取第一数据的特征和N个特征中每个特征的评分;第一设备或第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;获取M个评分对应的M个特征,并向处理器反馈M个特征和M个评分。
根据本申请第一方面的第十一计算加速系统,提供了根据本申请第一方面的第十二计算加速系统,闪存控制器或FPGA向处理器反馈256个特征及256个评分;响应于反馈的特征及评分,处理器向闪存控制器发送读命令,读命令携带256个特征;响应于读命令,闪存控制器从闪存芯片中读取出256个原始数据,并向处理器反馈256个原始数据;接收到256个原始数据之后,处理器控制显示器显示256个原始数据,显示器与处理器耦合。
本申请提供了计算加速系统,包括第一设备和/或第二设备,以及处理器,其中,处理器向第一设备或第二设备发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算;响应于第一请求,第一设备或第二设备对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备或第二设备中。在处理器的计算能力受限时,在不增加其它设备的前提下,利用系统中已有的、处理器之外的第一设备或第二设备的剩余计算能力进行特征的距离计算,不仅提高系统的计算能力,还使得处理器可以执行其它任务。从而解决现有技术中大型存储系统的实现难度高及成本高的技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种计算加速系统的结构示意图;
图2为本申请提供的又一种计算加速系统的结构示意图;
图3为本申请提供的又一种计算加速系统的结构示意图;
图4为本申请提供的又一种计算加速系统的结构示意图;
图5为本申请提供的又一种计算加速系统的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请说明、权利要求书及附图中的术语“第一”、“第二”和“第三”等是用于区分不同对象,而不是用于限定特定顺序。此外,术语“包括”和“具有”以及它们的各种变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,二是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或模块。
本申请中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请中的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,表示单独存在A、同时存在A和B、或单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示例性地给出了一种计算加速系统的结构示意图。如图1所示,计算加速系统100包括第一设备102和/或第二设备103和处理器101。处理器101分别与第一设备102和第二设备103耦合。图1中的虚线表示第一设备或第二设备是可选的。例如,计算加速系统100包括处理器101和第一设备102。又如,计算加速系统100包括处理器101和第二设备103。再如计算加速系统100包括处理器101、第一设备102和第二设备103。
处理器101向第一设备102或第二设备103发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算。响应于第一请求,第一设备102或第二设备103对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器101返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备102或第二设备103中。第一设备102包括闪存控制器104和闪存芯片105。第二设备103包括现场可编程逻辑门阵列FPGA 106,可选地,第二设备103还包括内存107。本实施例中距离计算包括欧式距离计算或欧式余弦计算。
可选地,在发送第一请求之前,处理器101接收搜索请求.响应于搜索请求,处理器101接收第一数据,根据第一数据计算第一数据的特征,并生成第一请求。例如,第一数据是图像数据时,第一数据的特征为处理器101采用图像处理算法计算出的图像的特征。又如,第一数据是文本数据,第一数据的特征为处理器101进行语义分析得到的语义特征。可选地,第一数据的特征为外部设备向处理器101发送的。例如,处理器101接收到外部设备发送的命令,该命令携带第一数据的特征,且该命令指示计算加速系统100反馈与第一数据的特征最接近的数据,从而处理器101生成并发送第一请求。
预存的N个特征可以理解为历史存储的“第一数据的特征”,处理器101计算出第一数据的特征之后,还会指示第一设备和/或第二设备保存第一数据的特征。在下一次处理器101发送第一请求时,预存的特征数量会变为N+1个。
本实施例中的计算加速系统100的距离计算是由处理器101之外的第一设备102或第二设备103进行的,第一设备102和第二设备103都具备计算能力,从而本实施例中的计算加速系统100可以采取以下的构成方式:
方式一,计算加速系统包括处理器和第一设备。
方式二,计算加速系统包括处理器、第一设备和第二设备。
方式三,计算加速系统包括处理器和第二设备。
参见图2,图2给出了如上述方式一的一种计算加速系统的结构示意图。计算加速系统200包括处理器201和第一设备202,第一设备202包括闪存控制器203和闪存芯片204。
处理器201向第一设备202发送第一请求。处理器201和第一设备202通过PCIe接口或M.2接口连接。例如,第一请求通过PCIe接口进入第一设备202,并由闪存控制器203处理。响应于第一请求,闪存控制器203从闪存芯片204中读取N个特征值,闪存控制器203将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
本申请中的第一请求携带第一数据的特征、计算方式为欧式距离计算、返回计算结果的主机地址。可选地,第一请求还携带闪存芯片204中N个特征值的存储地址。以N=800000为例,第一请求的长度为4个双字(DoubleWord,DW),PCIe接口的传输速度为8Gb/s,第一请求从处理器201传输到闪存控制器203需要的时间为16×10-9s。闪存控制器203为ARM处理器,闪存控制器203每秒可以进行80万次定点计算。闪存控制器203从闪存芯片204中读取数据的速度为3.5G/s,一个特征的大小为2048bits,从而读取80万个特征需要约0.457s。最后保留256个特征,反馈256个特征的速度约为60ms。合计约需要1.457s。但本实施例中,闪存控制器203是在和闪存芯片204传输80万个特征的同时进行距离计算,也就是在传输1个特征之后,闪存控制器203即可开始计算,并不需要等待80万个特征全部传输到闪存控制器203之后才开始计算,从而特征传输时间是和特征计算时间重叠的,因此本实施例中进行从处理器201发送第一请求到闪存控制器203返回256个特征,共需要约1s。
进一步可选地,本实施例中的计算加速系统200可下挂多个第一设备202。例如,处理器201采用PCIeGen 3*4接口,则处理器201与2个第一设备202耦合,则计算加速系统200的计算能力从80万次/s扩展为160万次/s。本实施例中,处理器201耦合的第一设备202的数量与PCIe接口有关,可根据需求进行进一步的横向扩展,扩展包括但不限于3个和4个,在此不做限制。
图3给出了如上述方式二的计算加速系统的一种结构示意图,如图3所示,计算加速系统300包括处理器301、第一设备302和第二设备303。第一设备302包括闪存控制器304和闪存芯片305,第二设备303包括FPGA306和内存307。处理器301和闪存控制器304耦合,闪存控制器304还和闪存芯片305以及FPGA306耦合。FPGA306与内存307耦合。
本实施例中,处理器301向第一设备302发送第一请求。响应于第一请求,闪存控制器304生成第二请求,并向FPGA306发送第二请求,第二请求携带第一数据的特征。响应于第二请求,FPGA306从内存307中读取N个特征值,FPGA306将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。其中,处理器301和闪存控制器304之间通过PCIe接口耦合,闪存控制器304和FPGA306之间通过内存接口耦合。
以N=1000000,M=1000为例,处理器301和闪存控制器304之间的PCIe接口的数据传输速度为8Gb/s,闪存控制器304和FPGA306之间的内存接口的数据传输速度为6.4Gb/s,FPGA306和内存307之间也是采用内存接口,其数据传输速度为6.4Gb/s。FPGA306从内存307读取出100万个特征需要约0.32s。FPGA306在从内存307读取出第一个特征之后就开始进行距离计算,FPGA306的计算能力通常超出ARM处理器的计算能力,会在读取100万个特征的同时完成计算,特征读取时间和计算时间几乎完全重合,因此FPGA306从内存307读取100万个特征并进行100万次计算的总时间约为0.32s。FPGA306向闪存控制器304反馈1000个特征需要约0.32ms,闪存控制器304向处理器301反馈1000个特征需要约0.256ms。因此,处理器301从发送第一请求到接收到计算结果总计需要约0.320576s。
进一步可选地,闪存管理器304与FPGA306之间通过内存接口、I2C接口、ONFI接口或QSPI接口耦合。其中,内存接口、I2C接口、ONFI接口和QSPI接口的数据传输速度各不相同,可灵活的根据需求选择适配的接口。例如,内存接口的速度为6.4Gb/s,I2C接口的速度为400Kb/s,QSPI接口的速度为25Mb/s,ONFI接口的速度为400MB/s,在追求高速时可以选择内存接口,而追求低成本且返回的结果数量少时可选择I2C接口。
参见图4,图4给出了如上述方式二的计算加速系统的又一种结构示意图。计算加速系统400包括处理器401,第一设备402和第二设备403。第一设备402包括闪存控制器404和闪存芯片405。第二设备403包括FPGA406和内存407。处理器401与FPGA406耦合,FPGA406与内存407以及闪存控制器404耦合,闪存控制器404与闪存芯片405耦合。
其中,处理器401向第二设备403发送第一请求。具体的,处理器401向FPGA406发送第一请求。响应于第一请求,FPGA406从内存407中读取N个特征值,FPGA406将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。本实施例中,FPGA406与处理器401通过PCIe接口耦合,FPGA406与闪存控制器404也通过PCIe接口耦合。
仍旧以N=1000000,M=1000为例,处理器401和FPGA406之间的PCIe接口的数据传输速度为8Gb/s,FPGA406和内存407之间也通过内存接口耦合,其数据传输速度为6.4Gb/s。FPGA406从内存407读取出100万个特征需要约0.32s。FPGA406在从内存407读取出第一个特征之后就开始进行距离计算,会在读取100万个特征的同时完成计算,FPGA406从内存407读取100万个特征并进行100万次计算的总时间约为0.32s。FPGA406向处理器401反馈1000个特征需要约0.256ms。因此,处理器401从发送第一请求到接收到计算结果总计需要约0.320256s。
如上述方式三中的计算加速系统未在图中示出,具体为计算加速系统包括处理器和第二设备,第二设备包括FPGA和内存。计算加速系统还设置有接口,该接口用于连接存储设备,此处并不限制存储设备的类型。处理器向第二设备发送第一请求。具体的,处理器向FPGA发送第一请求。响应于第一请求,FPGA从内中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。具体的计算过程可参见上述对计算加速系统400的描述,在此不进行展开。
可选地,第一请求还指示第一设备进行数据存储。响应于第一请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址。闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
例如,继续参见图2中的计算加速系统200。处理器201发送的第一请求还指示第一设备202进行数据存储。闪存控制器203接收到该第一请求,闪存控制器203根据第一数据的长度和第一数据的特征分配第一存储地址。该第一存储地址用于存储第一数据和第一数据的特征。这里的第一数据和第一数据的特征可采取key-value存储方式,即第一数据和第一数据的特征存在对应关系,第一数据的特征作为key(关键字)可以索引到第一数据(value),从而不需要处理器201提前知道第一数据或第一数据的特征的存储地址,而是至利用第一数据的特征即可查找到第一数据。图3中的计算加速系统300存储数据的方式和计算加速系统200相同,在此不再赘述。
又如,参见图4中的计算加速系统400,第一请求由FPGA406处理,响应于该第一请求,FPGA406还向闪存控制器404发送第三请求,第三请求指示闪存控制器404进行数据存储,第三请求携带第一数据的特征。响应于第三请求,闪存控制器404根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址。闪存控制器404访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片405。具体的,闪存控制器404还会获取第一数据,第一请求和第三请求还会携带第一数据在处理器401中的主机地址,从而闪存控制器404可以主动去获取第一数据,具体的获取方法可参见现有技术中的方法,在此不做限定。
参见图5,图5中给出了计算加速系统的又一结构示意图。计算加速系统500包括处理器501、第一设备502、第二设备503和内存507,第一设备502包括闪存控制器504和闪存芯片505,第二设备503包括FPGA506。其中,处理器501与闪存控制器504耦合。闪存控制器504和闪存芯片505、FPGA506以及内存507耦合。闪存控制器504在接收第一数据之后,除了将第一数据保存到闪存芯片505中,还将第一数据的特征保存到内存507之中,从而下一次需要使用到第一数据的特征时,可以快速地从内存中读取,不需要从闪存中获取该特征,减少设备交互的时间和不同设备之间传送数据的时间,进一步减少计算过程中所消耗的数据传输时间。
具体的,闪存控制器504为第一数据的特征分配第二存储地址,第二存储地址指向内存507,并访问第二存储地址,将第一数据的特征保存至内存507,以使内存507保存N+1个特征。或者,闪存控制器504向FPGA506发送第四请求,响应于第四请求,FPGA506为第一数据的特征分配第二存储地址,第二存储地址指向内存507,FPGA访问第二存储地址,将第一数据的特征保存至内存507,以使内存保存N+1个特征。
可选地,第一设备或第二设备获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,包括:第一设备或第二设备进行距离计算,获取第一数据的特征和N个特征中每个特征的评分;第一设备或第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;获取M个评分对应的M个特征,并向处理器反馈M个特征和M个评分。具体的,M为预设值,例如M=256。在进行距离计算时,每次计算出的是第一数据的特征和预存的特征之间的评分,该评分为正数。评分的取值越小,表示两个特征之间的距离越近,从而可以采用从小到大排序的方式,保留取值最小的M个特征。例如,N=1000,M=50,第一设备在进行1000次距离计算得到1000个评分后,将这1000个评分进行排序,保留取值最小的50个。又如,第二设备每进行一次距离计算之后,将计算出的评分加入排序的序列,该序列长度为50,在前49次距离计算时,序列没有填满。而在51-1000次距离计算时,每次计算出一个评分,若该评分的取值小于序列中的第50位,则将该评分插入序列,并将原第50位中的评分删除。
进一步可选地,闪存控制器或FPGA向处理器反馈256个特征及256个评分。响应于反馈的特征及评分,处理器向闪存控制器发送读命令,读命令携带256个特征;响应于读命令,闪存控制器从闪存芯片中读取出256个原始数据,并向处理器反馈256个原始数据;接收到256个原始数据之后,处理器控制显示器显示256个原始数据,显示器与处理器耦合。
例如,原始数据为图像,则闪存控制器根据256个特征从闪存芯片中查找这256个特征对应的256个图像,并向处理器反馈这256个图像。处理器可控制显示器显示256个图像,作为搜索请求的反馈结果。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种计算加速系统,其特征在于,包括第一设备以及处理器,其中,
所述处理器向所述第一设备发送第一请求,所述第一请求携带第一数据的特征,所述第一请求指示进行距离计算;
响应于所述第一请求,对所述第一数据的特征和预存的N个特征进行距离计算,获取所述N个特征中与所述第一数据的特征距离最近的M个特征,并向所述处理器返回所述M个特征,N和M均为正整数,M小于等于N;
响应于所述第一请求,所述第一设备还保存所述第一数据和第一数据的特征。
2.如权利要求1所述的系统,其特征在于,所述第一设备包括闪存控制器和闪存芯片;
响应于所述第一请求,所述闪存控制器从所述闪存芯片中读取所述N个特征值,所述闪存控制器将所述第一数据的特征依次和所述N个特征进行所述距离计算,获取所述M个特征。
3.如权利要求1所述的系统,其特征在于,所述系统包括所述第一设备和第二设备;
所述处理器向所述第一设备发送所述第一请求;
响应于所述第一请求,所述第一设备生成第二请求,并向所述FPGA发送所述第二请求,所述第二请求携带所述第一数据的特征;
响应于所述第二请求,所述FPGA从内存中读取所述N个特征值,所述FPGA将所述第一数据的特征分别和所述N个特征进行所述距离计算,获取所述M个特征。
4.如权利要求2或3所述的系统,其特征在于,所述第一请求还指示所述第一设备进行数据存储;
所述第一设备包括闪存控制器和闪存芯片;
响应于所述第一请求,所述闪存控制器为所述第一数据和所述第一数据的特征分配第一存储地址;
所述闪存控制器访问所述第一存储地址,将所述第一数据和第一数据的特征保存到所述闪存芯片。
5.如权利要求4所述的系统,其特征在于,所述FPGA还为所述第一数据的特征分配第二存储地址,所述第二存储地址指向所述内存;
所述FPGA访问所述第二存储地址,将所述第一数据的特征保存至所述内存,以使所述内存保存N+1个特征。
6.如权利要求1-5中任一项所述的系统,其特征在于,在发送所述第一请求之前,所述处理器接收搜索请求;
响应于所述搜索请求,所述处理器接收所述第一数据,根据所述第一数据计算所述第一数据的特征,并生成所述第一请求。
7.如权利要求1-6中任一项所述的系统,其特征在于,所述第一设备向所述处理器返回所述M个特征。
8.如权利要求7所述的系统,其特征在于,包括:
所述第二设备进行距离计算,获取所述第一数据的特征和所述N个特征中每个特征的评分;
所述第一设备或所述第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分。
9.如权利要求8所述的系统,其特征在于,包括:
所述第一设备获取所述M个评分对应的M个特征,并向所述处理器反馈所述M个特征和所述M个评分。
10.如权利要求9所述的系统,其特征在于,
响应于反馈的特征及评分,所述处理器向所述第一设备发送读命令,读命令携带M个特征;
响应于读命令,所述第一设备读取出M个原始数据,并向所述处理器反馈M个原始数据。
CN202110303515.9A 2019-12-31 2019-12-31 用于数据快速查找的计算加速系统 Pending CN112948282A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110303515.9A CN112948282A (zh) 2019-12-31 2019-12-31 用于数据快速查找的计算加速系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110303515.9A CN112948282A (zh) 2019-12-31 2019-12-31 用于数据快速查找的计算加速系统
CN201911424927.7A CN111581118B (zh) 2019-12-31 2019-12-31 计算加速系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201911424927.7A Division CN111581118B (zh) 2019-12-31 2019-12-31 计算加速系统

Publications (1)

Publication Number Publication Date
CN112948282A true CN112948282A (zh) 2021-06-11

Family

ID=72112905

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110303515.9A Pending CN112948282A (zh) 2019-12-31 2019-12-31 用于数据快速查找的计算加速系统
CN201911424927.7A Active CN111581118B (zh) 2019-12-31 2019-12-31 计算加速系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201911424927.7A Active CN111581118B (zh) 2019-12-31 2019-12-31 计算加速系统

Country Status (1)

Country Link
CN (2) CN112948282A (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4701643B2 (ja) * 2004-07-08 2011-06-15 ブラザー工業株式会社 処理装置、処理方法、処理プログラム、及び記録媒体
CN100362462C (zh) * 2005-07-15 2008-01-16 华为技术有限公司 磁盘阵列缓存的管理方法
CN101206618A (zh) * 2006-09-08 2008-06-25 三星电子株式会社 融合式存储器设备及方法
US20080126674A1 (en) * 2006-09-13 2008-05-29 Xiaohua Cheng Portable storage device and method for improving data access speed
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
JP5493223B2 (ja) * 2009-10-14 2014-05-14 株式会社日立製作所 振り分け処理装置、計算機システム及びリクエスト振り分け方法
US9009424B2 (en) * 2012-10-29 2015-04-14 International Business Machines Corporation Data placement for loss protection in a storage system
CN103902467B (zh) * 2012-12-26 2017-02-22 华为技术有限公司 压缩内存访问控制方法、装置及系统
CN103744611A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 基于固态硬盘为缓存的计算机系统及缓存加速方法
CN104965798B (zh) * 2015-06-10 2018-03-09 上海华为技术有限公司 一种数据处理方法、相关设备以及系统
US10445288B2 (en) * 2017-01-24 2019-10-15 Qualcomm Incorporated Bus encoding using on-chip memory
CN108009099B (zh) * 2017-11-30 2021-08-20 北京中科睿芯科技集团有限公司 一种应用于K-Mean聚类算法中的加速方法及其装置
CN110018971B (zh) * 2017-12-29 2023-08-22 华为技术有限公司 缓存替换技术

Also Published As

Publication number Publication date
CN111581118A (zh) 2020-08-25
CN111581118B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
US8825923B2 (en) Memory system having high data transfer efficiency and host controller
US10826980B2 (en) Command process load balancing system
US9262500B2 (en) Memory system including key-value store
WO2022007596A1 (zh) 图像检索系统、方法和装置
CN111209243B (zh) 数据处理装置、方法及相关产品
CN111581118B (zh) 计算加速系统
CN114077690A (zh) 向量数据处理方法、装置、设备及存储介质
CN211349349U (zh) 基于闪存的计算加速系统和基于fpga的计算加速系统
CN107870877B (zh) 用于在存储系统中管理数据访问的方法和系统
US9037805B2 (en) Managing a region cache
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
CN113806238A (zh) 内存分配方法、装置、存储介质及电子设备
CN105159836B (zh) 一种信息处理方法及电子设备
CN111581441B (zh) 用于聚类计算的加速器
CN101796493B (zh) 信息检索系统、信息检索方法及程序
US20170364591A1 (en) Data processing circuit and data processing method
CN112035383B (zh) 一种数据调度方法、装置及系统
US20230315478A1 (en) Reducing power consumption by hardware accelerator during generation and transmission of machine learning inferences
CN116107763B (zh) 一种数据发送方法、装置、设备及存储介质
US20240062529A1 (en) Determining media documents embedded in other media documents
CN115756811A (zh) 一种数据传输方法、装置、设备及存储介质
CN116955212A (zh) 内存碎片的整理方法、装置、设备及存储介质
CN115454344A (zh) 一种数据存储方法、装置、电子设备及存储介质
CN116975103A (zh) 数据存档方法、装置、计算机设备和存储介质
CN117591509A (zh) 推断系统和用于推断系统的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination