Patent Document ID: 9384449
Application ID: 14160622
Patent Flag: 1

Claim One:
1. A parallel hardware searching system used to build an artificial intelligent computer, wherein the system mainly contains a hardware search module and several DRAM (or universal memory) modules, said hardware search module comprises: m processing units (PUs) which are connected with m BRAM units and one Inter Processing Unit Logic, PU only process the data in its own BRAM unit, PUs are also connected to Inter Processing Unit Logic (IPUL) which processes the functions between PUs; an PCIE interface controller which is used to connect search module to external PC, search module use PCIE to receive data or command from PC, or transmit data to PC; and a search/insert/delete controller which is used to connect PUs and their BRAM units, after receiving search, insert or delete command from PC, controller directs PUs to execute the command over the data in BRAM units; wherein the system uses four unsigned number equations to simulate B-tree process, and these equations are derived from DLB; the DLB is lower bound of present search range minus 1; PU number is chosen as 2 k where k is an integer, each equation can be processed within one clock cycle; said four equations can be expressed as; 1: Find the index number of rest processing unit using RPindex equation, RPindex equation is: 
 RPindex=DLB MOD m; 2: Pindex is the fixed index assigned to PUs from 1 to m; the PATH value is calculated using PATH equation, PATH equation is: 
 PATH=RPindex−Pindex, when level is odd, 
 PATH=Pindex−PPindex, when level is even; 3: Present search range are partitioned into m−1 equivalent data blocks, Blocksize is the size of this block, the largest location in each data block is calculated using LOCATION equation, LOCATION equation is: 
 LOCATION=DLB+PATH*BlockSize; 4: RecordSize is the size of record in paging table, in order to find physical address of search value which is represented by its location, processing unit calculates PAddress equation below: 
 PAddress=LOCATION*RecordSize/ m.