CN104516939A - 一种用以建构人工智能计算机的平行硬件搜索系统 - Google Patents

一种用以建构人工智能计算机的平行硬件搜索系统 Download PDF

Info

Publication number
CN104516939A
CN104516939A CN201310504610.0A CN201310504610A CN104516939A CN 104516939 A CN104516939 A CN 104516939A CN 201310504610 A CN201310504610 A CN 201310504610A CN 104516939 A CN104516939 A CN 104516939A
Authority
CN
China
Prior art keywords
search
processor unit
value
artificial intelligence
formula
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
CN201310504610.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.)
Koutin Technology Inc ltd
Original Assignee
Koutin Technology Inc 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 Koutin Technology Inc ltd filed Critical Koutin Technology Inc ltd
Publication of CN104516939A publication Critical patent/CN104516939A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明将现有计算机搭配一种平行硬件搜索系统,用以建构大众负担得起的人工智能计算机。这样的计算机可被视为一种图灵机,使用执行人工智能的逻辑推理方式来取代传统计算机依序处理程序指令的方式。本发明提供的平行硬件搜索系统采用平行化及硬件化的虚拟B树搜索、阶层分页与哈希等技术来处理大量数据。此系统已被成功地建立在一张PCIE适配卡上,主要包含:一颗Xilinx的Kintex7FPGA芯片及两个DDR3内存模块。FPGA芯片中包含:32个32位处理器单元、一个PCIE控制器、一个搜索/删除/插入控制器、两个DRAM控制器。

Description

一种用以建构人工智能计算机的平行硬件搜索系统
技术领域
本发明涉及一种平行硬件搜索系统,特别涉及一种用以建构人工智能计算机的平行硬件搜索系统。
背景技术
在乔姆斯基阶层(Chomsky hierarchy)的定义中,目前使用于计算器的语言文法被定义为无关上下文(context-free),而图灵机(Turing Machine)则被定义为最高阶的文法。不同于现今计算器依序处理程序指令的方式,PROLOG语言每一步骤都需要搜索和处理horn clause(rule或fact),以用于执行人工智能的逻辑推理,因此,搜索成为这种语言最大的瓶颈。
20世纪80年代,日本政府提出第五代计算机研究计划,PROLOG被用作这个计划的主要语言。在2011年,IBM的超级计算器“WATSON”已经被证明比人类更聪明。云端计算技术被用来解决PROLOG的搜索问题。WATSON在网络上包含了将近3000台服务器,苹果计算机公司的Siri则将此技术进一步应用于日常生活,唯有跨国大企业才有能力拥有如此庞大又昂贵的计算器系统。机器人技术近年来有很好的进展。然而,设计一个大众负担得起的人工智能计算机系统,以促进机器人产业仍然是一个具有挑战性的任务。
发明内容
本发明提供了一种用以建构人工智能计算机的平行硬件搜索系统,用于解决PROLOG的搜索问题。
本发明提供的用以建构人工智能计算机的平行硬件搜索系统,包括:
若干个处理器单元(PU),假设处理器单元的个数为m,连接m个BRAM单元及一跨处理器单元逻辑电路(Inter Processing Unit Logic),处理器单元用于处理与其有连接关系的BRAM单元的数据,跨处理器单元逻辑电路用于实现处理器单元之间的逻辑连接功能;
一个PCIE接口控制器,用以连接用以建构人工智能计算机的平行硬件搜索系统及一外部计算机,并接收外部计算机发出的指令;
一个搜索/删除/插入控制器,用以连接处理器单元及BRAM单元,接收外部计算机的指令进行搜索/删除/插入运算;其中,m个BRAM单元连接外部的若干个DRAM控制器,并接收来自若干个DRAM控制器的数据。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统用于建构人工智能计算机。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统通过一界面与一计算机连接,用以建构人工智能计算机的平行硬件搜索系统运作时,使计算机语言文法从无关上下文(Context Free)层次提升至图灵机(Turing Machine)层次。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统使用阶层分页(Hierarchical Page Table)结构处理大量记录(record),大量记录被划分为若干个资料页以缩减每页中的记录数量,并减少高速内存(cache)的大小以及传输和处理每一页的时间,并增加DRAM或通用内存的单元数以增加数据传输速率。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统从BRAM单元到DRAM单元或由DRAM单元到BRAM单元中执行五种不同的运算,五种不同的运算包括:搜索、删除、插入、传输数据,并以平行处理的方式进行,与处理器单元的总数量无关。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统通过搜索的方式进行删除和插入运算,若干个处理器单元在记录数量相对小的数据页中平行执行左移或右移动作,并保持页内所有记录的排序和完美一致性。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统使用哈希技术,将大型的阶层分页分割成若干个小型的阶层分页,以增加搜索效能并使哈希桶(HASH BUCKET)内每页的资料量大小一致。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统处理的记录需具有不同于该页其他记录的搜索值,多个对象有相同的搜索值时,其中一对象指针指向一个包含复数个指针的数组对象,数据对象通过该数组一一被读取。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统使用四个无符号数(Unsigned number)公式仿真虚拟B树结构,四个无符号数公式分别为一第一公式,一第二公式,一第三公式及一第四公式,四个无符号数公式由DLB推导而来,DLB为搜索范围的下限位置减一的位置,假设处理器单元总数为2k,其中k为一整数,除法使处理器单元位置左移,四个无符号数公式在一个时钟周期之内处理完成,其中,四个无符号数公式分别表示如下:
第一公式:由DLB寻找休息状态处理器单元的索引值,公式为:
RPindex=mod(DLB,m);
第二公式:Pindex为m个处理器单元被指定的由1至m的固定索引值,其代表路径值由虚拟B树的层别为奇数或偶数决定,计算公式为:
PATH=RPindex-Pindex(当LEVEL值为奇数时);
PATH=Pindex-PPindex(当LEVEL值为偶数时);
第三公式:搜索范围切割成m-1个大小相同的数据区块,BlockSize为数据区块的大小,每一个数据区块中最大位置的计算公式为:
LOCATION=DLB+PATH*BlockSize;
第四公式:取出已知位置所代表的搜索值,并与标准值比较,RecordSize为页中记录的大小,搜索值的物理地址公式为:
PAddress=LOCATION*RecordSize/m。
进一步的,本发明提供的用以建构人工智能计算机的平行硬件搜索系统中的搜寻方法在至多L=logm-1N个数据搜寻循环内完成该页数据的搜寻,其中,处理器单元的个数为m,而N为此页中记录的个数,搜索由B树结构的最上层LEVEL=L开始执行循环的步骤进行数据搜寻,此时DLB的初始值设定为0,搜索范围在每一层不断被缩减成原来范围的1/(m-1),一直找到最底层LEVEL=1时即完成搜索,每一循环执行包括以下步骤:
(1)、每一处理器单元用第一公式算出虚拟B树中此层休息状态处理器单元的索引值;
(2)、每一处理器单元用第二公式算出虚拟B树中此层其代表的路径值,休息状态处理器单元的路径值=0,其余m-1个工作状态处理器单元的代表路径值分别为1至m-1;
(3)、虚拟B树中此层的搜索范围被m-1个工作状态处理器单元切割成m-1个数据区块,每一工作状态处理器单元用第三公式算出在虚拟B树中其数据区块中最大位置值,处理器单元由此位置的记录找到用以比较的搜索值;
(4)、每一工作状态处理器单元用第四公式将上步骤的位置值转换成搜索值在内存的物理地址;
(5)、工作状态处理器单元取出已知位置所代表的搜索值,并与标准值比较;及
(6)、跨处理器单元逻辑电路得知搜索值介于其中两个工作处理器单元之间,且搜索值较小的处理器单元的位置设定为下次循环的DLB值,将此DLB值广播至所有处理器单元,然后进入下一个循环的数据搜寻。
于本发明的平行硬件搜索系统的实施例中,使用32个处理器单元(PU)进行搜索,这些PU主要任务是执行四个数学公式来完成虚拟B-树搜寻。阶层分页结构被用以有效地实现大容量数据搜索,如图1所示,大型数据分割成许多窗体结构的页(page),且每页的大小不超过312笔记录,因此搜寻一页的比较数不超过二,阶层分页结构之阶层数为三时,由上层至下层取出3页搜索,搜索316(=0.8875×109)笔记录需要6个比较数。如果再结合哈希技术且哈希共有314个桶(buckets),则平均比较数是2。目前的计算器使用二进制搜索法(binary search),6个比较数只能搜索63(=26-1)笔记录。本发明的主要搜索硬件模块已成功地建立在Xilinx的Kintex7芯片中,有效地解决PROLOG的搜索问题,因此计算器语言文法从无关上下文升级到图灵机。
本发明解决了PROLOG语言长期存在的搜索问题。由于PROLOG语言具备了图灵机完整的特性,因此插入本发明的平行硬件搜索系统适配卡的计算机具备人工智能功能,可被视为一种图灵机。数学上可证明,对任何处理器单元总数量,本发明的方法全部可以真正地平行处理。
附图说明
为了详细地了解本发明上述的参考特性,可参考实施例来获得,其某些实施例绘示在附加图中。然而,需要注意的是,附加图仅绘示本发明典型的实施例,且因此其并不会限制其范围,本发明可容许其他等效的实施例。
图1为本发明一实施例中使用阶层分页结构来处理大量数据的示意图;
图2为本发明一实施例中包含平行硬件搜索系统的计算机架构的示意图;
图3为本发明一实施例中平行硬件搜索系统分配961笔记录给32个处理器单元的示意图;
图4为用数学公式在图4的数据进行搜索时所推演出的虚拟B树的示意图;
图5为本发明一实施例中平行硬件搜索系统使用32个处理器单元进行搜索的时序示意图。
附图标记说明:02-平行硬件搜索系统;021-处理器单元(PU);022-跨处理器单元逻辑电路;023-DRAM单元;024-BRAM单元((FPGA中的DUALPORT RAM)单元);025-PCIE控制单元;026-个人计算机(PC);027-搜索/删除/插入控制器;028-DRAM控制单元。
具体实施方式
于一实施例中,本发明的搜索系统使用阶层分页结构以有效地实现大容量数据的搜索。本发明中,可完全使用纯硬件来实现搜索操作,四种数学公式被用来仿真虚拟的B-树结构,而每一个公式都可在一个时钟周期内执行完成。
本发明的搜索硬件模块,成功地建立在Xilinx的Kintex7芯片中,硬件模块包含32个处理器单元(PU)、一个PCIE控制器、一个搜索/删除/插入控制器、两个DRAM控制器,而每一个处理器单元一次可以处理32个数据位,这种架构可有效的解决PROLOG的搜索问题,因此,目前计算器的主要语言文法可从无关上下文的层次提升到图灵机的层次。
首先参考图1,图1为本发明的实施例中使用阶层分页结构来处理大量数据的示意图。由图1可知,处理器单元总数为m=32,且一个处理器单元必须进入休息状态,本发明的方法中的每一页的最大记录数为961(=31*31)。因此,搜索一页不会超过两个比较数。每笔记录包含一个搜索值的区段和对象指针(object pointer)区段。搜索值的大小可以达到一百多bytes。
图2为本发明的实施例中包含平行硬件搜索系统的计算机架构示意图。此实施例中包含平行硬件搜索系统02,其中,各个处理器单元021通过跨处理器单元逻辑电路022相互连接沟通,每一页的数据通过本发明平行硬件搜索系统02的DRAM控制单元028被储存在图2中的DRAM单元023。在图2中,BRAM为FPGA芯片中提供的DUAL PORT RAM内存可存取32个数据位,于各个BRAM单元024(BRAM1、BRAM2……BRAM32)中,页的记录可以被储存在DRAM,或从DRAM取出页中的记录,然后分发到32个BRAM单元024以进行搜寻、删除、插入运算,而且增加DRAM单元数可加快页的传输时间。
通过PCIE(可用USB或SATA)控制单元025,个人计算机(PC)026可从硬盘将一页数据传送到BRAM单元024,也可收集或修改在BRAM单位的该页数据。个人计算机026可以经由PCIE控制单元025下指令给搜索/删除/插入控制器027及DRAM控制单元028,依指令执行5种不同的运算:搜索、删除、插入、传输数据,从BRAM到DRAM、或由DRAM到BRAM。
图3为本发明的一实施例中平行硬件搜索系统依排序大小的顺序分配961笔记录给32个处理器单元的示意图。记录的位置(location)被用来代表每一笔记录,这个位置是根据记录的搜索值在页中排序后产生的名次。在每列中的记录被储存在与每一个处理器单元有连接关系的BRAM单元。图4为用四个无符号数的公式在图3的数据结构进行搜索时所推演出来的虚拟B树的示意图。如果处理器单元数为2k,其中k是整数,因此除法可以使用左移位来实现,每一个公式可以因此在一个时钟周期之内处理完成。
处理器单元的指针用Pindex来表示,32个处理器单元的Pindex值为从1到32,并且PU0被视为PU32。于本发明中,用已知位置即可算出负责此笔记录的处理器单元的Pindex值,其公式为:Pindex=mod(LOCATION,m)。最初的搜索范围是从位置1到位置961,因此下界中的位置被定义为LowerBound=1,并且上界的位置被定义为UpperBound=961,DLB被定义为LowerBound-1且处理此笔记录的处理器单元将进入休息状态,休息状态的处理器单元其指数被定义为RPindex=mod(DLB,m)。在树结构的每一个层(LEVEL)中,搜索范围被划分成m-1个数据区块(Block),数据区块的大小定义为BlockSize:BlockSize=(m-1)LEVEL-1,其中LEVEL为树结构的层别。当LEVEL=2时,BlockSize为31。当LEVEL=1时,BlockSize为1。所有BlockSize的值已被预先储存在系统中。
如图4所示,搜索开始时最上层为LEVEL=2,所以BlockSize为31,而DLB的初始值被指定为0,由此可知PU32进入休息状态,PU31-PU1的PATH值分别为1-31,其LOCATION值分别为31,62,…,961。搜索值与标准值(criteria)相比后,跨处理器单元逻辑电路可得知标准值是介于PU26的LOCATION=186和PU25的LOCATION=217之间,因此,下次循环的DLB值为较小的LOCATION值,所以DLB=186且PU26将进入休息状态。接着,进行搜索B树的最底层(LEVEL=1)且BlockSize为1,搜索范围缩减成原来范围的1/31,即范围为LOCATION187-217,PU26以外的31个处理器单元再搜索一次就可得知结果,并将其对象指针储存于缓存器DO4。
图5为本发明一实施例中平行硬件搜索系统使用32个处理器单元进行搜索页中961笔记录的时序示意图。于本实施例中,处理器单元需要做两次比较,而且记录长度(Record Size)为四个32位,其中搜索值长度为三个32位,对象指针长度为一个32位。当start='1'时搜索开始,并在start='0'时完成,共需要两个循环。这个时序图是用Xilinx的软件ISE Design Suite仿真硬件描述语言得到的结果,虚拟树的第二层的搜索步骤详细描述如下:
步骤一:在state=S0,LEVEL=2,BlockSize=31,DLB=0,由RPindex=mod(DLB,m)找到进入休息状态处理器单元的索引值RPindex=0;
步骤二:在state=S1,每一个处理器单元代表的路径的计算公式为:
PATH=RPindex–Pindex(如果LEVEL为奇数);
PATH=Pindex–Ppindex(如果LEVEL为偶数);
休息状态处理器单元的路径值=0。其余m-1个工作状态处理器单元其代表路径值分别为1至m-1;
步骤三:在state=S2,虚拟B树中此层的搜索范围被m-1个工作状态处理器单元切割成m-1个数据区块,每一个处理器单元计算其代表的区块中的最大位置值,计算公式为:LOCATION=DLB+PATH*BlockSize;
步骤四:在state=S3,将上步骤的位置值转换成搜索值在内存的物理地址(PAddress):PAddress=LOCATION*RecordSize/m;
步骤五:在state=S4,PAddress的值送到BRAM地址缓存器;
步骤六:在state=S5,BRAM读取数据需要一个时钟延迟;
步骤七:在state=S6,每一处理器单元将3个32位搜索值与标准值相比;
步骤八:在state=S7,如果有一个处理器单元发现其搜索值与标准值相同,其32位的对象指针,将被存放到缓存器DO4且结束搜索运算,否则,储存0(null)表示未发现指标;
步骤九:在state=S8,跨处理器单元逻辑电路(Inter Processing UnitLogic)得知搜索值介于其中两个工作处理器单元之间,且搜索值较小的处理器单元的位置设定为下循环的DLB值;
步骤十:在state=S9,DLB被广播到所有的处理器单元,然后返回下个循环;
执行下一层相似的十个步骤,搜索就可完成并将其对象指针:“63636969”储存于缓存器DO4。
于本发明中,假设某页有N笔记录,处理删除时,先用搜索找到删除记录的位置:LOCATION=N,然后记录从I+1到N左移一次。如果一笔新记录要插入此位置,需要确定此记录有不同的搜索值,然后所有记录从N到I右移一次。最后计算机将这个记录送到位置I,这两种运算可以使用32个处理器单元来平行处理。于本发明中,每一笔在该页的记录需具有不同于其他记录的搜索值。在某些情况下,多个对象可能有相同的检索值,这时,本发明中的对象指针指向的对象为一个包含几个指针的数组,然后,这些对象可以通过数组一一被取出来。
请参考图1,于图1的数据中,使用本发明的方法搜索0.8875×109(=316)笔记录需要6个比较数。目前的计算器使用二进制搜索法(binary search),6个比较数只能搜索63(=26-1)笔记录。本发明的方法结合哈希技术,此哈希共有314个桶(buckets),在最好的情况下,需1个比较数来搜索0.8875×109笔记录。在最坏的情况下需要6个比较数。平均比较数是2。本发明的方法用纯硬件搜索,因此处理每一个比较都比现在的计算器更快且更可靠。
在图3中处理器单元数目为32,此页的窗体被用来建构图4中具有两层的虚拟B-树第一层的节点。很明显地可看出,每一个处理器单元处理的记录都存在于它自己的BRAM单元。第一层的31个节点的边缘记录则被用来建构第二层的节点。很明显所有B-树结构的节点中,每一个处理器单元都处理它自己的BRAM单元的记录。如果处理器单元总数是任何值,近似图3中的窗体可建构形成近似图4的虚拟B-树结构且具有多层,在第一层的节点,此层中的每一个处理器单元处理的记录皆存在于其自己的BRAM单元。假设在第i层每一个处理器单元处理的记录在其自己的BRAM单元是正确的,可以很容易地证明,在第i+1层中,每一个处理器单元处理的记录皆在其自己的BRAM单元之中,因为所有的第i+1层节点,全部由第i层节点的边缘记录形成,因此,在数学上可证明,对任何处理器单元总数量,本发明的方法全部可以真正地进行平行处理。
本发明解决了PROLOG语言长期存在的搜索问题。由于PROLOG语言具备了图灵机完整的特性,因此插入本发明的平行硬件搜索系统适配卡的计算机具备人工智能功能,可被视为一种图灵机。
虽然前文系针对本发明的实施例,但在不偏离本发明的基本范围下可设计出其它及另外的实施例,本发明的范围由权利要求限定的范围所界定。

Claims (10)

1.一种用以建构人工智能计算机的平行硬件搜索系统,其特征在于,包括:
若干个处理器单元,假设处理器单元的个数为m,连接m个BRAM单元及一跨处理器单元逻辑电路,处理器单元用于处理与其有连接关系的BRAM单元的数据,跨处理器单元逻辑电路用于实现处理器单元之间的逻辑连接功能;
一个PCIE接口控制器,用以连接所述用以建构人工智能计算机的平行硬件搜索系统及一外部计算机,并接收所述外部计算机发出的指令;
一个搜索/删除/插入控制器,用以连接所述处理器单元及所述BRAM单元,接收所述外部计算机的指令进行搜索/删除/插入运算;其中,所述m个BRAM单元连接外部的若干个DRAM控制器,并接收来自所述若干个DRAM控制器的数据。
2.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统用于建构人工智能计算机。
3.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统通过一界面与一计算机连接,用以建构人工智能计算机的平行硬件搜索系统运作时,使计算机语言文法从无关上下文层次提升至图灵机层次。
4.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统使用阶层分页结构处理大量记录,大量记录被划分为若干个资料页以缩减每页中的记录数量,并减少高速内存的大小以及传输和处理每一页的时间,并增加DRAM或通用内存的单元数以增加数据传输速率。
5.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统从所述BRAM单元到所述DRAM单元或由所述DRAM单元到所述BRAM单元中执行五种不同的运算,五种不同的运算包括:搜索、删除、插入、传输数据,并以平行处理的方式进行,与处理器单元的总数量无关。
6.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统通过搜索的方式进行删除和插入运算,若干个处理器单元在记录数量相对小的数据页中平行执行左移或右移动作,并保持页内所有记录的排序和完美一致性。
7.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统使用哈希技术,将大型的阶层分页分割成若干个小型的阶层分页,以增加搜索效能并使哈希桶内每页的资料量大小一致。
8.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统处理的记录需具有不同于该页其他记录的搜索值,多个对象有相同的搜索值时,其中一对象指针指向一个包含复数个指针的数组对象,数据对象通过该数组一一被读取。
9.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述用以建构人工智能计算机的平行硬件搜索系统使用四个无符号数公式仿真虚拟B树结构,所述四个无符号数公式分别为一第一公式,一第二公式,一第三公式及一第四公式,所述四个无符号数公式由DLB推导而来,DLB为搜索范围的下限位置减一的位置,假设处理器单元总数为2k,其中k为一整数,除法使处理器单元位置左移,所述四个无符号数公式在一个时钟周期之内处理完成,其中,所述四个无符号数公式分别表示如下:
第一公式:由DLB寻找休息状态处理器单元的索引值,公式为:
RPindex=mod(DLB,m);
第二公式:Pindex为m个处理器单元被指定的由1至m的固定索引值,其代表路径值由虚拟B树的层别为奇数或偶数决定,计算公式为:
PATH=RPindex-Pindex(当LEVEL值为奇数时);
PATH=Pindex-PPindex(当LEVEL值为偶数时);
第三公式:搜索范围切割成m-1个大小相同的数据区块,BlockSize为数据区块的大小,每一个数据区块中最大位置的计算公式为:
LOCATION=DLB+PATH*BlockSize;
第四公式:取出已知位置所代表的搜索值,并与标准值比较,RecordSize为页中记录的大小,搜索值的物理地址公式为:
PAddress=LOCATION*RecordSize/m。
10.根据权利要求1所述的用以建构人工智能计算机的平行硬件搜索系统,其特征在于,所述搜寻方法在至多L=logm-1N个数据搜寻循环内完成该页数据的搜寻,其中,处理器单元的个数为m,而N为此页中记录的个数,搜索由B树结构的最上层LEVEL=L开始执行循环的步骤进行数据搜寻,此时DLB的初始值设定为0,搜索范围在每一层不断被缩减成原来范围的1/(m-1),一直找到最底层LEVEL=1时即完成搜索,每一循环执行包括以下步骤:
(1)、每一处理器单元用第一公式算出虚拟B树中此层休息状态处理器单元的索引值;
(2)、每一处理器单元用第二公式算出虚拟B树中此层其代表的路径值,休息状态处理器单元的路径值=0,其余m-1个工作状态处理器单元的代表路径值分别为1至m-1;
(3)、虚拟B树中此层的搜索范围被m-1个工作状态处理器单元切割成m-1个数据区块,每一工作状态处理器单元用第三公式算出在虚拟B树中其数据区块中最大位置值,处理器单元由此位置的记录找到用以比较的搜索值;
(4)、每一工作状态处理器单元用第四公式将上步骤的位置值转换成搜索值在内存的物理地址;
(5)、工作状态处理器单元取出已知位置所代表的搜索值,并与标准值比较;及
(6)、跨处理器单元逻辑电路得知搜索值介于其中两个工作处理器单元之间,且搜索值较小的处理器单元的位置设定为下次循环的DLB值,将此DLB值广播至所有处理器单元,然后进入下一个循环的数据搜寻。
CN201310504610.0A 2013-10-04 2013-10-23 一种用以建构人工智能计算机的平行硬件搜索系统 Pending CN104516939A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW102136037 2013-10-04
TW102136037A TWI648640B (zh) 2013-10-04 2013-10-04 一種用以建構人工智慧電腦之平行硬體搜索系統

Publications (1)

Publication Number Publication Date
CN104516939A true CN104516939A (zh) 2015-04-15

Family

ID=52777805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310504610.0A Pending CN104516939A (zh) 2013-10-04 2013-10-23 一种用以建构人工智能计算机的平行硬件搜索系统

Country Status (5)

Country Link
US (1) US9384449B2 (zh)
CN (1) CN104516939A (zh)
HK (1) HK1209217A1 (zh)
IN (1) IN2014CH00954A (zh)
TW (1) TWI648640B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388532A (zh) * 2018-03-13 2018-08-10 算丰科技(北京)有限公司 可配置硬件算力的ai运算加速板卡及其处理方法、服务器
CN110619595A (zh) * 2019-09-17 2019-12-27 华中科技大学 一种基于多fpga加速器互联的图计算优化方法
CN114154611A (zh) * 2021-11-10 2022-03-08 中国科学院自动化研究所 一种支持图灵测试模式的人机对抗系统及智能体测试方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608224A (zh) * 2016-01-13 2016-05-25 广西师范大学 一种提高海量数据查询性能的正交多哈希映射索引方法
US11132326B1 (en) * 2020-03-11 2021-09-28 Nvidia Corporation Techniques to transfer data among hardware devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1100825A (zh) * 1993-09-25 1995-03-29 C&T科技发展有限公司 一种智能机译系统
US20070214117A1 (en) * 2006-03-10 2007-09-13 Chung Hua University Method of implementing B++ tree search on parallel using virtual tree structure

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629099B2 (en) * 2000-12-07 2003-09-30 Integrated Silicon Solution, Inc. Paralleled content addressable memory search engine
TW550898B (en) * 2000-12-12 2003-09-01 Acute Technology Corp Hash compensation architecture and method for network address lookup
US9164945B2 (en) * 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1100825A (zh) * 1993-09-25 1995-03-29 C&T科技发展有限公司 一种智能机译系统
US20070214117A1 (en) * 2006-03-10 2007-09-13 Chung Hua University Method of implementing B++ tree search on parallel using virtual tree structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YANG Y H E, PRASANNA V K: "High throughput and large capacity pipelined dynamic search tree on FPGA", 《PROCEEDINGS OF THE 18TH ANNUAL ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388532A (zh) * 2018-03-13 2018-08-10 算丰科技(北京)有限公司 可配置硬件算力的ai运算加速板卡及其处理方法、服务器
CN110619595A (zh) * 2019-09-17 2019-12-27 华中科技大学 一种基于多fpga加速器互联的图计算优化方法
CN110619595B (zh) * 2019-09-17 2021-04-13 华中科技大学 一种基于多fpga加速器互联的图计算优化方法
CN114154611A (zh) * 2021-11-10 2022-03-08 中国科学院自动化研究所 一种支持图灵测试模式的人机对抗系统及智能体测试方法

Also Published As

Publication number Publication date
US9384449B2 (en) 2016-07-05
US20150100536A1 (en) 2015-04-09
IN2014CH00954A (zh) 2015-05-08
TW201514729A (zh) 2015-04-16
TWI648640B (zh) 2019-01-21
HK1209217A1 (zh) 2016-03-24

Similar Documents

Publication Publication Date Title
Hegde et al. Extensor: An accelerator for sparse tensor algebra
US10162598B2 (en) Flash optimized columnar data layout and data access algorithms for big data query engines
JP6362316B2 (ja) バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品
US9760538B2 (en) Computer-implemented system and method for efficient sparse matrix representation and processing
CN109033303B (zh) 一种基于约简锚点的大规模知识图谱融合方法
KR101972645B1 (ko) 클러스터링 저장 방법 및 장치
US20160275178A1 (en) Method and apparatus for search
CN110188108B (zh) 数据存储方法、装置、系统、计算机设备及存储介质
US9658826B2 (en) Sorting multiple records of data using ranges of key values
CN104516939A (zh) 一种用以建构人工智能计算机的平行硬件搜索系统
CN110837584B (zh) 一种分块并行构造后缀数组的方法及系统
US11163743B2 (en) Enhancements for optimizing query executions
CN113297432B (zh) 用于分区拆分与合并的方法、处理器可读介质和系统
JP6006740B2 (ja) インデックス管理装置
CN203941525U (zh) 一种用以建构人工智能计算机的平行硬件搜索系统
CN115437836A (zh) 一种元数据处理方法及相关设备
Miura et al. An FPGA-based Accelerator for Regular Path Queries over Edge-labeled Graphs
CN105022743A (zh) 一种管理索引的方法及装置
Chikhi et al. Combining flash memory and fpgas to efficiently implement a massively parallel algorithm for content-based image retrieval
Macyna Check for Bulk Loading of the Secondary Index in LSM-Based Stores for Flash Memory Wojciech Macyna () and Michal Kukowski Department of Computer Science, Faculty of Information and Communication Technology
CN112307266B (zh) 一种索引模型的构建方法及装置
Zhu et al. Towards update-efficient and parallel-friendly content-based indexing scheme in cloud computing
Siedlaczek Efficiency and Scalability of Large Search Architectures
Chesetti et al. Evaluating Learned Indexes for External-Memory Joins
She et al. Distributed High-Dimension Matrix Operation Optimization on Spark

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1209217

Country of ref document: HK

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150415

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1209217

Country of ref document: HK