WO2018097317A1 - データ比較演算プロセッサ及びそれを用いた演算方法 - Google Patents

データ比較演算プロセッサ及びそれを用いた演算方法 Download PDF

Info

Publication number
WO2018097317A1
WO2018097317A1 PCT/JP2017/042655 JP2017042655W WO2018097317A1 WO 2018097317 A1 WO2018097317 A1 WO 2018097317A1 JP 2017042655 W JP2017042655 W JP 2017042655W WO 2018097317 A1 WO2018097317 A1 WO 2018097317A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
comparison
row
column
comparison operation
Prior art date
Application number
PCT/JP2017/042655
Other languages
English (en)
French (fr)
Inventor
井上 克己
Original Assignee
井上 克己
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 井上 克己 filed Critical 井上 克己
Priority to US16/464,154 priority Critical patent/US20200410039A1/en
Priority to JP2018506366A priority patent/JP6393852B1/ja
Publication of WO2018097317A1 publication Critical patent/WO2018097317A1/ja

Links

Images

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a data comparison operation processor and an operation method using the same.
  • a Neumann computer In a Neumann computer, a program describing the contents of arithmetic processing is stored in the main memory, and arithmetic processing is executed by a central processing unit (CPU) in a sequential processing manner.
  • CPU central processing unit
  • Most of today's common computer systems are of this Neumann type.
  • Special table 2003-524831 gazette Japanese Patent Application No. 4-18530 Japanese Patent No. 5981666, Special Table 2003-524831 (P2003-524831A) discloses a system and method for searching for a combination space, in which a combination space is searched in every corner so as not to cause a combination explosion. .
  • the present invention realizes comprehensive data comparison by software.
  • Japanese Patent Application No. 4-18530 discloses a parallel data processing device and a microprocessor, in which data lines are arranged in a matrix and data processing elements (such as a microprocessor) are arranged at the intersections. This is intended to increase the speed of data transfer between data processing elements. However, since this configuration is a method in which the data processing element side must select the matrix data line, it cannot solve the problem of speeding up the comprehensive data comparison.
  • Patent No. 598166 which is an invention by the present inventor, discloses a memory having an information search function, a method of using the same, an apparatus, and an information processing method. However, comprehensive comparison operations are not possible.
  • the invention of the present application focuses on comparison operations that have the most needs among the comprehensive combination operations, such that the SIMD type 1-bit arithmetic unit can be used for matrix comparison operations, the effect of prefetching data, and the expansion of the concept of associative memory (CAM). It is a new type of computing technology that incorporates a new concept of computing that cannot be thought of as an extension of type computing.
  • Metadata such as indexes not only have various problems such as overuse of indexes and metadata updates, but also a major obstacle to ad hoc search and search for finding repeated optimal solutions such as data mining. Therefore, construction of search engines for SNS, WEB sites, and large cloud servers is difficult to achieve except for super large companies.
  • the CPU and GPU burdens and user burdens are realized by realizing a one-chip processor that makes it possible to perform comprehensive combinatorial comparison operations that are difficult with current computer architectures at ultra-high speed and low power (which greatly improves power performance). It is an object of the present invention to solve both of these problems and enable information processing that cannot be handled by ordinary users.
  • n ⁇ m arithmetic units Two rows of memory groups that can store 1 row, 1 column, n pieces, m pieces each, total n pieces + m pieces of data, and cross points of data lines arranged in an exhaustive manner from the two sets of memory groups n ⁇ m arithmetic units are provided, and the data in the first row n, the first column m, and the respective data are sent in parallel from the memory in the first row, the first column, and the two sets to the covering data line.
  • the n ⁇ m arithmetic units include means for reading the transmitted data in a matrix-coverage combination manner, performing parallel comparison operations in a matrix-coverage combination manner, and outputting the comparison operation result. .
  • the data line arranged in a mesh pattern is a 1-bit data line
  • the arithmetic unit performs a matrix comparison operation in parallel with a comparison 1-bit arithmetic unit.
  • the comparison 1-bit computing unit a) compares the same or similar data between the 1 row n data and the 1 column m data b) compares large and small, and c compares the range c) c) above a), (B) A comparison operation of any one or a combination of the above (a), (b), and (c) that performs a comparison operation based on a comparison operation result of either one or both.
  • the memory group of one row and one column includes a memory for storing exhaustive combination data in a matrix range of K times the data required for the exhaustive combination operation of one batch n ⁇ m, and the n ⁇
  • the m computing units have a function of continuously executing (K ⁇ n) ⁇ (K ⁇ m) covering combination computations.
  • the data when the n data and m data are fetched from outside and stored, the data is subjected to matrix transformation and stored in the memory of the 1 row, 1 column, 2 sets.
  • a seventh aspect is characterized in that the algorithm according to the first aspect is mounted on an FPGA.
  • An apparatus including the data comparison operation processor according to claim 1.
  • an operation using the data comparison arithmetic processor according to the first aspect wherein the parallel comparison operation is performed using different data in the one row and one column, and a) n ⁇ m comprehensive comparison operations are performed. Performing a) One of the comparison operations is performed as long as one row and one column data is used as the comparison operation condition data.
  • Claim 12 is an operation using the data comparison operation processor according to claim 1, wherein either one of the one row and one column is used as search index data, and the other one is used as multi-access search query data. And performing a multi-access associative search.
  • FIG. 1 is a conceptual diagram of data search and search.
  • FIG. 2 is a configuration diagram of the data comparison arithmetic processor.
  • FIG. 3 is a conceptual diagram of data comparison.
  • FIG. 6 is an example of a comparison operation unit of the data comparison operation processor (third embodiment).
  • FIG. 7 is an example of a matrix comparison operation of 100 million ⁇ 100 million data (Example 4).
  • the fastest CPU (dedicated high-speed CPU) developed for special computers such as supercomputers is Intel
  • XeonXPhi 7290 has 72 cores
  • TDP maximum power
  • It has 3.456TFLOPS at 1.5GHz (base) and 3.917TFLOPS at 1.7GHz (turbo), that is, has a maximum computing capacity of about 4T times per second.
  • the supercomputer K consumes about 12 MW of power, and performs a floating-point operation 1 times per second, that is, 1 K (10 16 ) 10P times per second.
  • the computing performance of a computer is not determined by the performance of a CPU or GPU alone, the computing performance of a CPU or GPU is key to the performance of a computer.
  • the comparison operation of the two data combinations is the product of the number of data and the number of data, and the maximum is the square of the number of data. Therefore, if big data is used, a small explosion occurs and the burden on the sequential processor is very heavy. This results in a heavy burden on users such as time.
  • FIG. 1 shows the concept of data search and search.
  • the example A in FIG. 1 is a conceptual diagram when detecting certain data for n pieces of data X 0 to X n ⁇ 1 .
  • This example shows a concept for finding specific (desired target) data Xi from data by giving a key or search condition for finding specific data as a query.
  • the above example A is a search method when it is clear what you want to know.
  • An associative memory (CAM) that detects specific data from a large amount of data by parallel operation is a device of such a search type, but the search condition is a single condition or a search condition of about ternary TCAM. It can only be applied to unique data searches such as IP search for Internet communication routers because it cannot perform flexible searches, is not good at multi-match processing, has a large search inrush current, and is difficult to use.
  • C example shows how to find similar or common data from n data of X.
  • the weather forecasts that are familiar to us include the sunspots, revolution orbits and distances from the sun, changes in the earth's axis due to rotation, and other factors that affect the earth itself.
  • exhaustive (combined) data based on past data and various conditions Comparative analysis is indispensable, but if there are many combinations, a combination explosion occurs.
  • This access amount is 266K accesses per second.
  • FIG. 2 shows a configuration example of the data comparison operation processor 101 according to an embodiment of the present invention.
  • the data comparison operation processor 101 receives data transferred from the external memory from the data input 102 through the row data input line 103 and n rows from row 0 to row n-1. Row data 104 is input to the data memory, and column data 109 is input to m column data memories from column 0 to column m ⁇ 1 through one column data input line 108, which is necessary for the comprehensive combinatorial parallel comparison operation. Data is stored.
  • the row data calculation data line 107 and the column data calculation data line 112 are laid out in a comprehensive manner from the memory data 104 and 109 in a total of n + m in one row, n, and one column.
  • an arithmetic unit 113 or a comparison arithmetic unit 114 is installed at the cross point (intersection) of the matrix data line, and all the arithmetic units 113 and 114 are configured such that both data of the matrix are input in parallel.
  • the n ⁇ m computing units 113 and 114 are configured to be able to compute n rows and m columns of data in a comprehensive manner.
  • the computing unit 113 may be a general ALU or another computing unit, and the comparison computing unit 114 will be described later.
  • the calculators 113 and 114 are connected to a calculator condition 116 that is designated to be input from the outside, and a calculation result output 120 for outputting the calculation result to the outside.
  • SIMD single instruction / multiple data
  • the arithmetic unit is an ALU (Arithmetic and Logic Unit)
  • the row data arithmetic data line 107 and the column data arithmetic data line 112 become multi-bit data lines, and SIMD arithmetic is designated and comparison logical arithmetic is executed in parallel. It becomes the structure which outputs a calculation result.
  • the operations indispensable for the comparison operation 154 of the data are the common 137 operations determined by the match 132, the mismatch 133, the similarity 134, the magnitude 135, the range 136, and combinations thereof.
  • example A there are three examples of example A, example B, and example C, in which 8 bits of data from MSB (Most ⁇ Significant Bit) to LSB (Least Significant Bit) are matched, mismatched, similar, large, small, and range. It is shown one by one.
  • coincidence 132 the bits of all the columns and rows are coincident.
  • disagreement 133 if some of the 8-bit data do not coincide, the data as a whole do not coincide.
  • the similarity comparison which makes the similarity 134 when the values (distances) between the data are close can be realized by ignoring some bits on the LSB side and comparing them.
  • the size 135 between the data can be realized by determining that the non-matching bit close to the MSB side is either a row or a column.
  • the above content is only an example, and the data comparison operation occupies a big weight in the whole computing, and it is an indispensable operation especially for big data analysis.
  • the data can be concatenated, and calculation conditions can be set for each field.
  • the comparison 131 of data consisting of arbitrary bits and arbitrary fields is the same data format as in the general information processing.
  • SIMD single instruction multiple data
  • this method does not compare a pair of data individually with a CPU or GPU, but means that all arithmetic units can execute comparison processing in parallel with one instruction. This is convenient for realizing the comparison operation and is the basis of the present invention.
  • the data width (operand width) is not an arithmetic unit having a fixed data width such as 32 bits or 64 bits like ALU, data can be allocated to the memory cells without waste, so that the memory efficiency and the computation efficiency are increased.
  • the data 104 and 109 of 1 row n pieces, 1 column m pieces are connected to n ⁇ m comparison operation units 114 in a comprehensive combination so that parallel comparison operation is possible. .
  • the memory data 104 in the row direction is subjected to matrix conversion as row direction data, and can be accessed (selected) by the row data address 105 in parallel for each n memory cells.
  • the memory cell data is substituted into the row data buffer 106, and the output of the row data buffer 106 is input in parallel to the row input of the matching circuit of the comparison operator 114 in the row direction. That is, in the case of this example, when the row address 0 is accessed, “1” is assigned to the row input of the row 0 and column 0 and the row 0 and column 1 comparison calculators 114, and row 1, column 0, and “0” is assigned to the row input of the comparison operator 114 in the row 1 and the column 1.
  • data is input to the row of the comparator 114 in a combination of n rows and m columns.
  • data is input to the column of the comparison calculator 114 in a combination of n rows and m columns.
  • the comparison operator 114 performs comparison operation of necessary row and column data by sequentially sending data from address 0 to address 3 to the comparison operator 114. Can be executed.
  • FIG. 5 is an example of a matrix data conversion circuit.
  • This method converts the matrix direction by switching the switches 145 and 146 by connecting the matrix conversion switch 1 and the matrix conversion switch 2 to the memory cell.
  • the address selection line 141 is switched to the data line (bit line) 142 by the matrix conversion signal 144.
  • FIG. 6 shows an embodiment of the comparison arithmetic unit 114 of the data comparison arithmetic processor 101.
  • the comparison operator 114 is composed of a matrix matching circuit 121, a 1-bit operator 122, and an operation result output 120 as described above with reference to FIG.
  • the 1-bit arithmetic unit 122 is composed of a logic circuit, a selection circuit thereof, and an operation result section, and performs comparison operations such as match, mismatch, similarity, magnitude, and range for each 1-bit shown in FIG.
  • Temporary storage that is obtained by performing a predetermined operation on the data determined by the matrix coincidence determination circuit 121 and the data stored in the temporary storage register by logical AND, logical sum, exclusive logic, and logical negation based on the calculation conditions.
  • the register 127 and the coincidence number counter 128 are configured to be the match address 119.
  • the minimum requirements for considering the processor 101 are: 1. The scale of data to be processed, the nature of the data, and the content of operations required for combinatorial parallel operations 2. Configuration of computing unit, number of computations per unit time Number of on-chip computing units (parallelism) 4). Data transfer capability from external memory (data supply capability) 5). 5. Capacity of internal memory and cache memory 6. Output capability of operation result data Where is the bottleneck, the total computing performance is 8. Number of pins of LSI9. The above items need to be comprehensively judged for power consumption and heat generation.
  • the data parameter is 100 million (100M)
  • Kanji 4-character data such as Katsumi Inoue, that is, 4-field data, is used as the same matrix data as shown in the example C in FIG.
  • the data transfer time of a general DDR memory module is about 16 GB / second.
  • the comparison operation time can realize 4K ⁇ 4K 1 batch operation in 64 nanoseconds
  • the data necessary for the calculation of the matrix “64 ⁇ 64” is received in advance as the data of the matrix “64 + 64”, and the processor 101 uses this data continuously as described above with reference to FIG. Therefore, processing can be performed with a calculation time of 64 nanoseconds ⁇ 4K times ⁇ 256 microseconds.
  • the calculation time is equal to the data transfer time and the performance is balanced, and except for the first calculation, the data transfer can be performed independently during the calculation, and the data of a predetermined unit can be transferred. Being hidden by the computation time, a 256K ⁇ 256K one-batch memory space can be processed with a comparison computation time of 256 microseconds.
  • Data transfer time is proportional to the amount of data, but combinatorial operations are proportional to the square of the amount of data, so the value of data advance and cache memory can be maximized.
  • This method is called data prefetching effect.
  • the 4 MB memory shown above is configured with SRAM of 6 transistors per cell, it is about 4M ⁇ 8 ⁇ 6 ⁇ 200 million transistors. By adding more memory as necessary, more various calculation effects Can get.
  • this time does not take into account the idle time, the comparison calculation instruction time, and the output time of the comparison calculation result, but for the time being this number will be called 100 million total processing time.
  • the processor 101 is not driven by a program like a CPU or GPU, and since each arithmetic element performs the same SIMD type operation, the play and overhead time of each arithmetic unit are completely eliminated. It is not necessary to consider idle time. 6). Arithmetic Instructions of the Present Embodiment The arithmetic instructions of the processor 101 will be described.
  • FIG. 3 shows an example of calculation condition setting for comparing multiple field matrix data such as age / height / weight described in FIG.
  • the data format is binary data, BCD, text data, or similar, it is necessary to further determine the conditions such as which data to ignore.
  • a calculation instruction to the processor 101 is given from a HOST computer through PCIe or a local network.
  • the probability of matching and the output time are considered when detecting the same surname of the Japanese shown above.
  • the HOST side receiving the match address data can determine which match address in the entire space is based on the area data and the above-described 4K ⁇ 4K match address.
  • This data size is 4GB for 1G x 4B.
  • the external output time is 10 seconds, but this output time can also be executed independently of the comparison operation. There is no effect on the processing time of 42 seconds.
  • the overall image of the processor 101 described above is shown as an image of a small town factory.
  • This factory is equipped with an extremely large number of ultra-compact high-performance data processing equipment without any gaps in every space in the factory.
  • the total processing time of 100 million in this method is a planned value, but if it is a properly designed device, it can be operated at a theoretical value. In the case of a CPU, various elements are entangled, so it is operated at a theoretical value. This is difficult, and a performance difference of 3,000 times or more is actually expected.
  • 1K times / 1T times is 10,000 seconds, which is compared with 100 million total processing time of 42 seconds. About 240 times longer.
  • the performance difference is expected to be 500 times or more.
  • supercomputer K is capable of computing 1 time per second, it takes 4 seconds to execute one comparison operation loop in 4 steps.
  • SUPERKYO uses more than 80,000 CPUs in parallel and consumes 12MW of power.
  • this processor 101 has a power of less than 10 W per chip, has about 1/10 of the comparative computing ability of supercomputers, and has a superiority of more than 100,000 times when compared in terms of power performance.
  • One chip will have a general supercomputer class comparative calculation performance.
  • the power is extremely low, and raw materials and products can be loaded and unloaded with special trucks (general-purpose data transfer circuits) instead of special transport equipment such as ships and airplanes.
  • the memory is read and compared. If the data does not match, the next memory is read. If they match, a flag (FG) is set in the memory work area.
  • FG a flag
  • 16M processors compute 64 batches of data in one batch comparison computation space 152 in 64 nanoseconds. This corresponds to an actual comparison operation performance of 0.25 times (0.25P times) / second.
  • the comparison operation can be performed by SIMD with a 1-bit computing unit capable of massively parallel processing, and the combinational comparison operation has an n ⁇ m number of operations for the given data, and a maximum square.
  • the most important point of the present invention is that attention is paid to the fact that it is difficult to bring out such performance with only one. 9. Usage of the present invention The usage of this technology will be described below.
  • This comparison calculation method can be used for data with a large amount of data, various data formats, and various data lengths.
  • the MEET operation which has been actively researched in recent years, is a representative example. However, as the amount of data increases, the amount of calculations increases and explodes, so the waiting time becomes enormous if various constraints are not given. It is.
  • the field data of each product code (the same number of data) may be switched to perform an exhaustive calculation.
  • the above case is a case of three data, and if a total of nine combination comparison operations 154 are performed, a comprehensive combination comparison operation is possible.
  • a comprehensive comparison operation can be performed by performing a total of 16 combination comparison operations 154.
  • the extracted data with the same name and the same name shown above is the index itself.
  • the extracted data with the same name and the same name can be used as an index as they are.
  • To create an index a complicated dedicated technique is required.
  • the processor 101 makes it easy to create an index and is super fast, as expected. Will generate an index for
  • This technology can be used as a data filter.
  • Filtered results can be extracted if the filter conditions are set (fixed) to X and the target data is given to Y, as shown in the B example of FIG.
  • this technology is optimal for big data, but it can be applied to real-time processing because it can process extremely large data in microsecond and millisecond units.
  • Big data such as SNS is actively used for KVS (Key Value Store) data search in which data keys (indexes) and data are linked.
  • KVS Key Value Store
  • the multi-access search can be executed by performing a comparison operation using one of the one row and one column of the processor 101 as search index data and the other as multi-access search query data.
  • the comparison calculation time of 100 million (number of indexes) ⁇ 256K (search data per unit) is about 100 milliseconds (0.1 Seconds).
  • comparison calculation time is 0.1 seconds, a very comfortable WEB search system can be provided even if the overhead of communication time is included.
  • the calculation capability of 256K (search data per unit) in the above 100 milliseconds means that processing is possible even when multi-access is concentrated about 10 times.
  • N the number of search sites is N billion (10 billion)
  • N (100) processors 101 an ultra-small, ultra-low power and ultra-high performance SNS search system is completed.
  • This example is based on the combination calculation of 256K ⁇ 256K described above for the sake of convenience, but this processor is capable of an optimal combination based on the relationship between the number of target data (n) and the number of accesses per unit time (m). It goes without saying that more rational processing can be performed by designing 101.
  • the processor 101 can make the data variable length and set more complicated search conditions, so that multiple accesses can be made to a large amount of data as shown in the example B of FIG. is there.
  • the processor 101 can be used as a high-function content addressable memory (CAM) having various search functions.
  • CAM content addressable memory
  • the associative memory eliminates the need for an index for search and does not require complicated information processing. On the other hand, it is not good at search and multi-access based on flexible search conditions, and is currently only capable of detecting the IP address (unique data) of a communication router. Although only utilized, this processor 101 greatly expands the application of content addressable memory (CAM).
  • Numeric data can be matched, similar, large and small, and range can be compared, so either matrix is fixed with a large number of filter condition values, a large amount of data is given to the opposite side, and matching data is detected Such an operation is optimal for equipment failure diagnosis and mining analysis such as stock price fluctuations.
  • DeepDLearning is the AI technology with the most needs for image and voice recognition, clustering such as autocorrelation map (SOM) and support vector machine (SVM).
  • SOM autocorrelation map
  • SVM support vector machine
  • the total processing time for 100 million is 42 seconds ⁇ 5 ⁇ 210 seconds, but the power consumption can be greatly reduced.
  • K 2 ⁇ 1 batch calculation time (K + K) ⁇ 1 data transfer time
  • K 2 Data transfer time / 1 batch calculation time is the number of batches that can be balanced.
  • This processor 101 obtains the data capacity of the data transfer time that balances this calculation time because one batch comparison calculation is constant at 64 nsec regardless of the number of comparison calculators 114.
  • the operation value is converted into a FIFO (data first-in first-out method, etc.) format, and a high-speed serial communication interface, for example, PCIe connection, is theoretical value 128 GB / second. Data communication becomes possible.
  • FIFO data first-in first-out method, etc.
  • the matrix is two-dimensional, but it is also possible to include a page concept in the matrix and to make a processor with a three-dimensional configuration by n + m + o data transfer and an n ⁇ m ⁇ o arithmetic unit.
  • an optimum chip may be designed in consideration of the purpose and performance.
  • An FPGA having a small processing capacity can be used.
  • Recent computing has built a lot of cache memory inside the CPU, and the key is to improve the efficiency of the entire system by effectively using the cache memory. There is.
  • Combinatorial problem I want to search for characteristic data from a large amount of data such as genes. I want to search for data (c) I want to sort and classify data such as name identification and duplication (D) I want to compare large data groups and search for the same, similar, or common data at high speed (e) Meteorological analysis and stock prices Want to perform data mining of multi-variable (multi-dimensional) data as in analysis (f) Want to search for data in real time even when a large amount of data is accessed, such as communication routers, SNS and WEB search ( 2) Query cannot be determined (a) I don't know what I want to look for in the initial stage, such as data mining (b) There are no options like Samurai and Shogi (3) I want to eliminate the need for preprocessing and complicated processing.
  • DESCRIPTION OF SYMBOLS 101 Data comparison arithmetic processor 102 ... Data input 103 ... Row data input line 104 ... Row data 105 ... Row data address 106 ... Row data buffer 107 ... Row data operation data line 108 ... One column data input line 109 ... Column data 112 ... column data calculation data line 113 ... calculation unit 114 ... comparison calculation unit 114 ... K comparison calculation unit 114 ... comparison calculation circuit 116 ... calculation unit condition 119 ... match address 120 ... calculation result output 121 ... matrix match determination circuit 122 ... calculation unit 127 ... Temporary storage register 128 ... Match count counter 129 ... Priority order determination circuit 130 ... Match address output 141 ... Address selection line 142 ... Data line 145, 146 ... Switch 147 ... Memory cell address selection line 148 ... Memory cell data line 149 ... Memory cell 15 ... All exhaustive combinatorial computing space 152 ... Batch comparison operation space 153 ... batch memory space

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • Memory System (AREA)

Abstract

【課題】 ノイマン型コンピュータのCPUは逐次処理であるので組合せ爆発を引き起こす組合せ比較演算は演算量が莫大になり、高性能のプロセッサを利用しても高速化が困難である。 【解決手段】 1行、1列、それぞれn個、m個、合計n個+m個のデータを記憶できる2組のメモリ群と、その2組のメモリ群から網羅状に布線されたデータ線のクロスポイントにn×m個の演算器を設け 前記1行、1列2組のメモリから前記網羅状に布線されたデータ線に、前記1行n、1列m、それぞれのデータを並列に送出することにより、前記n×m個の演算器は前記送出されたデータを行列網羅組合せ的に読み込み、行列網羅組合せ的に並列比較演算し、その比較演算結果を出力する。

Description

データ比較演算プロセッサ及びそれを用いた演算方法
 本発明は,データ比較演算プロセッサ及びそれを用いた演算方法に関するものである。
 ノイマン型コンピュータでは、演算処理内容を記述したプログラムが主記憶部に記憶され、中央制御装置(CPU)によって逐次処理方式で演算処理が実行される。今日の一般的なコンピュータシステムのほとんどが、このノイマン型である。
 ノイマン型コンピュータのCPUは逐次処理であるので、例えばビッグデータの処理等、組合せ爆発を引き起こす可能性のある網羅的な比較演算や組合せ比較演算に対応するには構造上限界がある。高速化のため高性能のプロセッサや並列処理により高速化を図ることもされているが、高価である上に膨大な電力を消費するとことがある。
 このため、ビッグデータのデータマイニング等の組合せ的な検索演算に対応するためには、組合せ爆発が生じないような様々な工夫をソフトウエアアルゴリズム的に図ることが行われている。しかしながらこのようなソフトウエアの使用はスキルを要し、専門家以外利用することは困難である。
 このため、専らハードウエアにより、より簡易・安価な構成で、低電力で動作し、網羅的な比較演算を実行することができる演算器が求められているということがあった。
 本件特許の技術分野と関連する先行技術文献としては以下のものがある。
特表2003-524831号公報 特願平4-18530号公報 特許第5981666号公報 特表2003-524831(P2003-524831A)には、組み合わせ空間を探索するためのシステムおよび方法 は組合せ爆発を引き起こさないように組合せ空間を隅々まで探索する方法が開示されている。この発明は、ソフトウエアにより網羅的データ比較を実現するものである。
 特願平4-18530号は、並列データ処理装置及びマイクロプロセッサを開示するものであり、行列にデータ線を配し、その交点にデータ処理要素(マイクロプロセッサなど)を配列する構成であるが、データ処理要素間のデータ転送の高速性を図るものである。しかし、この構成は、データ処理要素側が行列データ線を選択しなければならない方式であるので、網羅的データ比較の高速化を図ると言う課題を解決することは出来ない。
 本願発明者による発明である特許第598166号は、情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法を開示するものである。しかしながら、網羅的な比較演算は出来ない。
 本願発明は、網羅組合せ演算の中でも最もニーズの多い比較演算に焦点をあて、行列比較演算にSIMD型1bit演算器が利用できること、データの先読み効果、連想メモリ(CAM)の概念の拡大など、従来型コンピューティングの延長線上では発想しえない新しいコンピューティングの概念を取り入れた新タイプのコンピューティング技術である。
 以上述べたように、逐次処理型プロセッサであるCPUやGPUによる、網羅組合せ的な比較演算は計算コストが高く、最新のプロセッサ技術でも多大な時間が必要になる。
 インデックスなどのメタデータは、インデックスの使いすぎやメタデータの更新など様々な課題を抱えているばかりでなく、データマイニングなど繰返し最適解を見出すアドホック型の検索や探索に大きな障害となっている。したがって、SNSやWEBサイト、大型クラウドサーバの検索エンジンの構築は超大手企業以外実現困難である。
 ビッグデータ社会でデータ量が大幅に増大しても旧態依然のコンピューティングでは効率的なIoT社会やAI社会の実現は困難である。
 本発明では、現在のコンピュータアーキテクチャでは困難な網羅組合せ的な比較演算を超高速しかも低電力(電力性能を大幅に向上)にする1チッププロセッサの実現により、CPUやGPUの負担と利用者の負担の双方を解決し、一般利用者がこれまで手に負えないような情報処理を可能にすることを目的とするものである。
 請求項1に記載の発明は、
 1行、1列、それぞれn個、m個、合計n個+m個のデータを記憶できる2組のメモリ群と、その2組のメモリ群から網羅状に布線されたデータ線のクロスポイントにn×m個の演算器を設け
 前記1行、1列2組のメモリから前記網羅状に布線されたデータ線に、前記1行n、1列m、それぞれのデータを並列に送出することにより、前記n×m個の演算器は前記送出されたデータを行列網羅組合せ的に読み込み、行列網羅組合せ的に並列比較演算し、その比較演算結果を出力する手段を具備することを特徴とする。
 請求項2では
 前記網状に布線されたデータ線は多ビットデータ線で、前記演算器はALU(Arithmetic and Logic Unit)で行列比較演算を並列に実行することを特徴とする。
 請求項3では
前記網状に布線されたデータ線は1ビットデータ線で、前記演算器は比較1bit演算器で行列比較演算を並列に実行することを特徴とする。
 請求項4では
前記比較1bit演算器は、前記1行n個のデータと1列m個のデータの
ア)一致もしくは類似を比較演算する
イ)大小、範囲を比較演算する
ウ)上記ア)、イ)のいずれかもしくは双方の比較演算結果に基づき共通であることを比較演算する
上記ア)、イ)、ウ)のいずれかもしくはその組合せの比較演算であることを特徴とする。
 請求項5では
前記1行、1列2組のメモリ群は1バッチn×mの網羅組合せ演算に必要なデータのK倍の行列範囲の網羅組合せデータを記憶するメモリを具備し、前記n×m個の演算器は(K×n)×(K×m)の網羅組合せ演算を連続して実行する機能を具備することを特徴とする。
 請求項6では
前記n個、m個、のデータを外部から取り込み記憶する際、データの行列変換を行い前記1行、1列2組のメモリに記憶することを特徴とする。
 請求項7では
請求項1記載のアルゴリズムをFPGAに実装したことを特徴とする。
 請求項8では
前記1行、1列、に加え1ページ、それぞれn個、m個、o個、合計n個+m個+o個のデータを記憶できる3組のメモリ群と、その3組のメモリ群から網羅状に布線されたデータ線のクロスポイントにn×m×o個の演算器を設けたことを特徴とする。
 請求項9では
請求項1記載のデータ比較演算プロセッサを含んだ装置。
 請求項10では
請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列異なるデータを用いて前記並列比較演算を行い
ア)n×mの網羅的な比較演算を行う
イ)1行、1列一方のデータを比較演算条件データとする
以上いずれかの比較演算を行うことを特徴とする。
 請求項11では
請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列同一データを用いて前記並列比較演算を行い
ア)n×nの網羅的な比較演算を行う
イ)1行、1列一方のデータを比較演算条件データとする
ウ)クラス分類演算を行う
以上いずれかの比較演算を行うことを特徴とする。
 請求項12では
請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列のいずれか一方を検索インデックスデータとして、他の一方をマルチアクセス検索クエリデータとして、比較演算しマルチアクセス連想検索を実行することを特徴とする。
 なお、この発明の上記した以外の特徴は、以下に説明する発明の実施態様の項に記載されている。
図1は、データの検索や探索の概念図である。
図2は、データ比較演算プロセッサの構成図である。
図3は、データの比較の概念図である。
図4は、データ比較演算プロセッサの具体例である(実施例1)。
図5は、行列データ変換回路の一例である(実施例2)。
図6は、データ比較演算プロセッサの比較演算器の一例である(実施例3)。
図7は、1億×1億データの行列比較演算の実施例の一例である(実施例4)。
 以下、この発明の裁量の実施形態を図面を参照して説明する。
1.本発明について
 本発明は、発明者の、以下のような知見に基づいてなされたものである。
(1)現時点で最速のCPU
 まず、現時点で最新最速のCPUについて記載する。
 汎用PCに搭載されている最高速のCPU(汎用高速CPU)はインテル社のCore i7 Broadwell 10コア、TDP(最大電力)は140Wである。3.5GHz(ターボ)で560GFLOPSの浮動小数点演算を実行、すなわち1秒間に最大560G回の演算能力をもつ。しかし、これでは演算速度が低すぎる。
 一方、スパコンなどの特別なコンピュータ向けに開発された最高速のCPU(専用高速CPU)は同じくインテル社の、Xeon Phi 7290 は72コア、TDP(最大電力)は260W。1.5GHz(ベース)で3.456TFLOPS、1.7GHz(ターボ)で3.917TFLOPSの浮動小数点演算、すなわち1秒間に最大約4T回の演算能力を持つ。
 しかし、このような専用高速CPUは性能差で汎用高速CPUと約7倍の性能があるが電力消費が大きく、搭載するメモリを含めCPUの周辺回路は複雑になり冷却装置も大がかりなものとなるので容易に利用することはできない。
(2)最速のGPUの性能について
 現在最速のGPUとしては、NVIDEA社のGeForce GTX TITAN Zがある。このGPUは、コア数5760個 TDP375W 705Mhz 単精度8.12TFLOP、すなわち1秒間に最大約8T回の演算能力を持つ。
 スパコン京は、約12MWの電力を消費し、1秒間に1京回の浮動小数点演算を実行する、すなわち1秒間に1京(1016 )、10P回の演算が可能である。
 しかし、これらGPUも、消費電力が非常に大きいということがある。
(3)本発明を評価するためのベンチマーク
 コンピュータの性能は、CPUやGPUの演算性能だけで決まるわけではなく、CPUやGPUの演算に必要なデータを外部メモリからどれだけ高速にCPUやGPUに供給できるか、CPUやGPU内部に取り込まれたデータがキャッシュされキャッシュメモリの利用率がどの程度になるか、CPUやGPU内部のマルチコアがどれだけ遊びなく効率的に処理できるかなど、利用上のプログラムやOS、コンパイラなどの様々な条件が加味されるため、使い方によってはCPUやGPUの理論性能の数%以下となっていることもしばしばである。
 このようにコンピュータの演算性能はCPUやGPU単独の性能で決まるわけではないもののコンピュータの性能はCPUやGPUの演算性能が鍵を握っている。
 従って新コンピューティング技術の本発明と、従来型コンピューティングの性能を比較する上ではCPUやGPUの演算能力が唯一のベンチマークの指標である。
 ただし、CPUは今後も進化し性能アップが見込まれる、本発明のアーキテクチャによる性能も現時点での半導体技術をもとにするもので、半導体製造技術の進化により本技術による半導体技術も比例して性能アップすることは言うまでもない。
(4)組み合わせ問題について
 次に本願発明が対象とする組合せ問題について説明する。
 コンピュータが直面する組み合わせ問題、組み合わせ爆発は大小様々存在する。NP困難問題として代表される巡回セールスマン問題などの順列組合せによる最適化問題は階乗的な爆発演算(大爆発)が発生するので、量子コンピュータなど新しいタイプのコンピュータの誕生が待ち望まれている。また、順列・組合せのような階乗的な演算(大爆発)にはならないものの複数データ同士の比較などの組合せ演算のニーズは枚挙にいとわない。
 2組のデータの組合せの比較演算は、データ数とデータ数の積、最大の場合データ数の2乗となる、従ってビッグデータになると小爆発が起こり逐次処理型プロセッサの負担は極めて大きく、待ち時間など利用者に多大な負担を強いる結果となっている。
 この発明では順列・組合せなどの階乗的な組合せ(大爆発)と、データとデータの演算や比較などの組合せ(小爆発)の演算を分離するために、網羅組合せと呼ぶものとしその比較演算を対象とする。
(5)データの検索や探索の概念
 図1は、データの検索や探索の概念を示すものである。
 図1のA例は、データX~Xn‐1のn個のデータを対象に、あるデータを検出する時の概念図である。
 本例は特定のデータを見つけ出すためのキーや検索条件をクエリとして与えることによりデータの中から特定(目的の探し出したい)のデータXiを見つけ出す際の概念を示している。
 一般的な検索や、全文検索、データベース検索などは皆このタイプの検索、探索方法である。
 データ量が多くなり、検索条件が複雑化すると、検索コストが多大になるので、このように比較的単純な検索でも、インデックスなどを事前に準備し検索を行うのが一般的である。
 インデックスは、検索にとって必要不可欠な利用技術であるが、様々な副作用(一例をあげればデータのメンテナンスなど)があるのでインデックスを不要にして高速化できることが理想であるもののノイマン型コンピュータの場合システムが肥大化する。
 以上のA例は何を知りたいかが明確である場合の検索方法である。
 大量のデータの中から特定のデータを並列演算で検出する連想メモリ(CAM)は正にこのような検索タイプのデバイスであるが、検索条件が単一の条件か3値TCAM程度の検索条件となりフレキシブルな検索ができない、マルチマッチ処理が苦手、検索突入電流が大きく使いづらいなどの理由でインターネット通信ルータのIP検索などユニークデータの検索に応用される程度である。
 またビックデータの利用上の問題点の一つとして、未知のデータに対してどのような質問が最適な質問かそれが分からない、従って多くの場合、繰り返し、繰り返し網羅組合せ的な検索をせざるを得ない場合も少なくない。
 またこのA例で示されるクエリは人工知能の分野では教師信号に相当するものである。
 先に述べたように何を質問すべきかそれすら分からない未知のデータの場合など、逐次クエリを与えることなく(教師なし)必要な情報の検索や、クラス分けを自動的に実現する方法が求められている、この考えに関し後述する。
(6)データマイニングなどのデータ分析で利用される検索や探索
 以降、データマイニングなどのデータ分析で利用される検索や探索について説明をする。
 B例は、Xのn個データおよびYのm個データ同士の中から、類似(一致含む)するものや共通するデータを網羅組合せ的に見つけ出す概念を示したものである。
 一例をあげれば、Xは男性の嗜好品類(幾つかの好きな食べ物のデータなど)のデータ群で、Yは女性の嗜好品類(幾つかの好きな食べ物のデータなど)のデータ群でそれぞれの類似性や共通性を網羅組合せ的に探索する場合などである。
 お互いが未知のデータであればデータ同士、(n-1)×(m-1)回の比較演算を繰り返す必要がある、通常n≫1、m≫1なので、以降n×m回の比較演算と表現する。
 nやmが大きいと組合せ爆発が起こる。
 C例は、Xのn個のデータの中から、類似(一致含む)するものや共通するデータを見つけ出す様子を示したものである。
 本図の場合、X-X、X-X・・・・Xn-1-Xn-1はそれぞれ同一データであるので共通を示す記号は表記していない、同一データ以外で類似するものや共通するものを見つけ出す様子を示したものである。
 未知のデータであれば同じデータ同士、n×n回の比較演算を網羅組合せ的に繰り返す必要がある、詳細は後述する。
 D例は、n個のデータを、類似や共通するデータを分類する場合のイメージである、類似や共通するクラスがN個あれば、n×N回の網羅組合せ比較演算を実行する必要がある。
 データ分析などの分野で特に求められることは、未知のデータの場合、どのようなデータが含まれているか分からないので、教師データ(クエリ)を与えることや学習などの前処理をすることなく、高速で自動的にクラス分けする手段が求められている。
 以上B例、C例、D例のような検索が連想メモリ(CAM)のように1デバイスで、しかもより高機能に実現出来れば情報処理は大きく進化する。
 (7)網羅組合せ的な比較演算の応用例
 以下に網羅組合せ的な比較演算の応用例を挙げる。
 遺伝子情報(ゲノム)の解明のために多大な人力と高性能のコンピュータをフルに活用し様々な知見を生み出してきたのは網羅的な検索の代表例である。
 これまでに解明された遺伝子情報はごく一部のものであり、個別の遺伝子情報の解析による発がん性の予測などを一例とする網羅的な解析はこれから益々必要とされる。
 また創薬を効率的に実現するために行われるIT創薬の研究は、タンパク質の立体構造解析などの分野で網羅的なパターンマッチが必要とされスパコンや高性能CPUやGPUが利用されている。
 我々に身近な天気予報は、太陽の黒点、公転軌道や太陽との距離、自転による地軸の変動、その他地球自体の変動要因など、これらの多種多様な要因による大気の状況や海洋の状況で天候や気温、気圧、風向きなどが複雑に影響を及ぼすものであり、これらの解析を時系列的に行い明日の天候を予測するには、過去のデータと様々な条件による網羅的(組合せ的)な比較解析が不可欠であるが、組合せが多いと組合せ爆発が発生する。
 また経済指標の代表的な株価は、企業の業績や、為替、政治、社会の動きなど多種多様な要因によって変動するものであり、これらの解析を時系列的に行い今後の株価を予測する場合には無限ともいえる網羅的(組合せ的)な比較解析が不可欠であるが、組合せが多いと組合せ爆発が発生する。
 例えば、スーパーやコンビニが明日の仕入れを予測する場合、以上の季節や天候、そして経済の状況など極めて沢山の変動要因を条件として過去のデータを網羅的(組合せ的)に分析する必要がある。
 おびただしいサイトやページ数のSNSやWEBの検索は、同一時間内に大量のアクセスが発生し限られた時間内にアクセス毎の検索結果を出力(リアルタイム処理)する必要がある。
 例えば、世界80億人の半分の40億人が平均10回程度特定の検索エンジンにアクセスすると1日当たり40G回のアクセスが発生する。
 このアクセス量は1秒当たり266K回のアクセス回数である。
 このような超大量のマルチアクセスは、意識するかどうかに関わらず必然的に図1のB例同様網羅的(組合せ的)な検索になっている。
 以上説明のとおり網羅的な比較演算のニーズは顕在化しているもの潜在化しているもの様々であるが、計算量が多大で極めて計算に時間が掛かり仮にデータがあっても特別な用途以外利用されていない。
 また対象となるデータが巨大で、マルチアクセスが避けられないWEB検索システムなどは、極めて大規模なシステムにせざるを得ない。
 組合せ的や網羅的な比較演算の一例として、さらに、比較的単純で身近な例を紹介する。
 日本人1億人の中から同姓同名を探す処理を考える。
 1億人の名前(姓と名)が全く未知の状態であり、どのような名前やその種類が不明な状態で、図1のC例のように総当たり的(網羅組合せ的)な比較演算を行う場合、その比較演算回数は1億(100M=10の8乗)×1億(100M=10の8乗)=1京回(10P=10の16乗回)の比較演算が必要である。
 このような比較演算を最新最速のCPUで実行しても数万秒を必要とし、ハイレベルなスパコン京であっても数秒を必要とする。
 さらに母数1億が10億となればその比較演算回数は100倍となり、最速のCPUでも実時間では実現困難、手に負えない処理となる。
 以上は組合せ比較演算の例であり、データが大きくなると、組合せが2乗指数的に大きくなり、組合せ爆発的比較演算回数が必要になり、データ分析分野の大きな障害となっている。
 本発明は、発明者が、以上のような解決課題を知見したことに基づいてなされたものである。
2.本発明の一実施形態
 以下、本発明の一実施形態について説明する。
 図2は本発明の一実施形態に係るデータ比較演算プロセッサ101の構成例を示すものである。
 データ比較演算プロセッサ101(以降単に本プロセッサ101と呼ぶ場合もある)には、外部メモリから転送されるデータをデータ入力102より行データ入力線103を通じて行0から行n-1のn個の行データメモリに行データ104が入力され、また一方の列データ入力線108を通じて、列0から列m-1のm個の列データメモリに列データ109が入力され、網羅組合せ的並列比較演算に必要なデータが記憶されている。
 以上1行n個並びに1列m個、合計n個+m個のそれぞれのメモリデータ104、並びに109からは、行データ演算データ線107並びに、列データ演算データ線112が網羅状に布線されており、その行列データ線の布線のクロスポイント(交点)には演算器113、もしくは比較演算器114が設置され、全ての演算器113、114は行列の双方のデータが並列に入力される構成となっており、n×m個の演算器113、114がn行、m列のデータを網羅組合せ的に演算可能な構成となっている。
 演算器113は一般的なALUでも、その他の演算器でも構わない、比較演算器114については後述する。
 また演算器113、114は外部から入力指定される演算器条件116と、外部に演算結果の出力をするための演算結果出力120に繋がっている。
 以上の構成とすることにより、1行と1列のデータを全並列組合せ的にSIMD(single instruction multiple data)比較演算することが出来る。
 演算器がALU(Arithmetic and Logic Unit)であった場合、行データ演算データ線107並びに、列データ演算データ線112が多bitデータ線となり、SIMD演算指定され比較論理演算を並列に実行しその比較演算結果を出力する構成となる。
 網羅組合せ的な比較演算でニーズの多いのは、図1に示したようなビッグデータ分野でありデータ数が極めて大きい事である、従って多数の演算器を用いて網羅的に組合せ演算を行いたいが、先に述べた最先端GPUのコア数でも精々5760個であり、このようなCPUやGPUのようなALU主体の演算器の場合、ビッグデータに対応できるようなコア数にすることは困難である。
 本願発明者は、これまでメモリ内部に小型演算器を組み込み情報検索の高速化を図る研究と実用化を行って来た、SOP(弊社登録商標)は主に画像認識などのデバイスで、DBP(弊社登録商標)はデータベースなどの検索デバイスで、これまで様々な分野で商品化を行いこの技術の有効性を検証して来た。
 以上の製品に共通する技術が超小型演算素子である1bit演算器である。
 詳細は特願2013-264763号を参照されたい。
 以降以上説明の行列比較演算を最も有効に利用できる応用例ならびに、集積度が高く、演算効率が高く、データの一致や類似を検索するのに都合のよい1bit演算器による比較演算器114を用いた組合せ並列比較演算方法を紹介する。
 データを比較演算154する上で必要不可欠な演算は、一致132、不一致133、類似134、そして大小135、範囲136とその組合せで判定される共通137の演算である。
 図3は、以上の要点をまとめたものであり、データの比較131の概念図である。
 本例では、MSB(Most Significant Bit)からLSB(Least Significant Bit)まで8bitのデータの一致、不一致、類似、そして大小、範囲とその組合せの例を、例A、例B、例Cの3例ずつ示したものである。
 一致132の場合、列、行すべてのbitが一致している、不一致133の場合、8bitデータ同士のどこかが不一致であれば、データ全体として不一致である。
 データ同士の値(距離)が近いことをもって類似134とする類似比較は、LSB側の幾つかのbitを無視して比較することにより、実現することができる。
 BCDによるデータであれば、10進数の下位の桁を無視するような比較が可能である。
 また、データ同士の大小135は、MSB側に近い不一致のbitが行、列いずれかであることを判定することで実現できる。
 大小、2回の比較に合格したデータは範囲136比較に合格したことになる。
 以上を組合せして共通137の判定を下すこともできる。
 以上の内容は一例に過ぎない、コンピューティング全体の中でデータの比較演算は大きなウエイトを占めており特にビッグデータ解析に不可欠な演算である。
 図の下部に示すように、比較対象のフィールドデータが複数ある場合には、データを連結し、それぞれのフィールド毎に演算条件を設定して利用することが出来る。
 例えばデータベースのフィールドデータが、年齢、身長、体重、性別、既婚/未婚のような5種類のフィールドデータであった場合、年齢は7bit(128歳)、身長8bit(256cm)、体重8bit(256kg)、性別1bit(男/女)、1bit(既婚/未婚)、合計25bitに5つのフィールドデータを用意し1フィールド毎に演算条件を設定し1bit毎に25回繰り返し比較演算154を行なえばよい、演算の詳細は後述する。
 以上の説明の、1bit毎の演算を1クロック演算、1単位のフィールドの演算を1フィールド演算、対象となるフィールドの演算を1バッチ演算と定義すると、この例はフィールドが5で、1バッチ演算が25クロック演算となる。
 以上のことは、任意bit、任意フィールドからなるデータの比較131は一般の情報処理と同様に同一データ形式であれば行、列1bit毎個別に行列比較を繰り返すことにより、同一演算指定でSIMD(single instruction multiple data)型演算が実現できる。
 つまりこの方法は、CPUやGPUで1対のデータ同士を個別に比較するのではなく、1つの命令ですべての演算器が並列に比較処理を実行できることを意味しており、この方法は超並列比較演算を実現させるために好都合であり本願発明の根幹となるものである。
 またALUのようにデータ幅(オペランド幅)が32bitや64bitのような固定データ幅の演算器ではないのでメモリセルにデータを無駄なく割り付けできるのでメモリ効率と演算効率が高くなる。
 後述する極めて単純な構成の比較演算器114を超並列化してLSIを実装することが出来ることを意味している。
 さらに特徴的なことはCPUのキャッシュメモリのように大量のデータを事前に転送しておくことにより、極めて効率的な演算が可能になる、このことはこの演算器の性能を無駄にすることなく利用する上で極めて重要でありこの点については後述する。
3.実施例
 図4は、以上説明の比較演算器114を用いたデータ比較演算プロセッサ101の構成をより具体的に説明するものである。
 図に示す通り、1行n個、1列m個、のデータ104、109は、n×m個の比較演算器114に網羅組合せ的に接続されて並列比較演算が可能な構成になっている。
 行方向のメモリデータ104は、後述するように行方向データとして行列変換され1メモリセル毎、n個並列に、行データアドレス105でアクセス(選択)可能な構成になっており、アクセスされたアドレスのメモリセルのデータは、行データバッファ106に代入され、この行データバッファ106の出力は、行方向の比較演算器114の一致回路の行入力に並列に入力される。
つまり本例の場合行アドレス0をアクセスした場合、行0、列0並びに行0、列1の比較演算器114の行入力には「1」が代入される、また行1、列0、並びに行1、列1の比較演算器114の行入力には「0」が代入される。
 図示はされていないが、n行、m列組合せ的に比較演算器114の行にデータが入力されることになる。
 列方向も同様な構成であり、本例の場合、列アドレス0をアクセスすると、行0、列0ならびに行1、列0の比較演算器114の列入力に「1」が代入される。
 また行0、列1並びに行1、列1の比較演算器114の列入力に「0」が代入される。
 図示はされていないが、n行、m列組合せ的に比較演算器114の列にデータが入力されることになる。
 本例の場合、行列各4bitのデータ構成であるので、行列ともアドレス0からアドレス3までのデータを順次比較演算器114に送り込むことにより、比較演算器114は必要な行と列データの比較演算を実行することができる。
 一致を求める演算の場合、行1、列1の比較演算器114は4bitの行列データが本例の場合「0101」と同じであるので、演算結果出力120からマッチアドレス119を出力することになる。
 以上の説明は4bitデータ1組によるものであったが、年齢、性別、身長、体重など比較するデータが複数ありそのデータ幅が1bitから64bitあるいはそれ以上任意のデータ幅のデータであっても任意組、行列データとして割り付けし利用することができる。
 さらに後述するが、1バッチ分n×mのデータを複数バッチ分データ入力しておき、複数バッチ連続的に比較演算を繰り返すことも可能である。
 1bit毎の比較演算は一見非効率のような印象を与えるが、この方式の演算効果については後述する。
 またこの回路に行列データの加算器を組み込み1bit毎に演算を行えば、加減算演算を実現することも可能である。
 外部から行列データを取り込む際、本プロセッサ101のデータ入力102の直後に、データの行列変換回路を備えておくと、HOST側でデータの行列変換を行う必要がなくなるので、システム全体が効率的となる。
 図5は、行列データ変換回路の一例である。
 図の下方に示されるようにメモリセル149は、それぞれのメモリセルのメモリセルアドレス選択線147が選択されることにより、メモリセルデータ線(ビット線)148からデータが出力される構成である。
 本方式は、メモリセルに行列変換スイッチ1、行列変換スイッチ2を接続することにより、スイッチ145、146の切り替えにより、行列方向を変換するものである。
 この構成では行列変換信号144によって、アドレス選択線141はデータ線(ビット線)142に切り替わる。
 この変換回路を利用することにより、行配列で入力された例えば64bit構成の外部データを列配列の64bitデータに変換することが出来る、この回路を2回路持てば連続的に外部のデータを本LSIに取り込みし、行データ104、列データ109とすることが出来る。
 この変換回路に限定されるものではないが行列変換回路を内蔵しておくことによりHOST側の負担が軽減される。
 図6は、データ比較演算プロセッサ101の比較演算器114の実施例である。
 この比較演算器114は先の図4で説明の通り、行列一致回路121、1bit演算器122、演算結果出力120から構成されている。
 行列一致判定回路121は、1bit毎に与えられる行と列のデータが一致か、不一致を比較する回路である。
 論理積(AND)回路や、NAND回路、論理和(OR)回路で構成されている。
 1bit演算器122は論理回路とその選択回路、並びに演算結果部で構成され、図3で示した1bit毎の一致、不一致、類似、大小、範囲などの比較演算を行うものである。
 行列一致判定回路121で判定されたデータと一時記憶レジスタに記憶されているデータを、演算条件に基づき論理積、論理和、排他論理並びに論理否定で演算し、所定の演算を行い勝ち抜いた一時記憶レジスタ127や、一致回数カウンタ128が、マッチアドレス119となるように構成されている。
 例えば8bitのデータであれば1bit毎に入力される行列データを指定された演算条件で最大8回実行することにより、行列データの一致、不一致、類似、大小比較の比較演算154を実現することができる。
 また、年齢、性別、体重、身長など複数のデータの合格数を判定するような演算の場合一致回数カウンタを利用し所定値以上のカウント値になっているかどうかの判定を行うことも可能な構成である。
 この比較演算器114には、回路規模が大きくなる加算器などの四則演算回路が不要となっていることが大きな特徴である。
 本例では一例として任意bit数、任意フィールド数の演算を行うために、演算結果部には1bit毎のデータの行列一致判定結果を一時記憶するレジスタで任意bit数の判定を行い、データ列の一致回数を記憶する一致回数カウンタで任意フィールド数の判定が実現できるように構成されている。
 演算結果出力器120は、優先順序判定回路129とマッチアドレス出力130から構成されている。
 1回のバッチ演算の結果、複数の演算器がマッチした場合、上位の演算器から順番に当該アドレスのXYの座標(アドレス)を出力させるためのものであり、上位の演算器から優先的にマッチアドレス119の座標(アドレス)を演算結果として演算結果出力120を通じて外部に送出する構成である。
4.本実施形態のASIC
 次に、本プロセッサ101の実際のASICの例を具体的に検討する。
 本プロセッサ101を考える上で最低限必要なことは
1.対象になるデータの規模やデータの性格、組合せ並列演算で必要とする演算内容
2.演算器の構成、単位時間の演算回数
3.チップ内演算器の数(並列性)
4.外部メモリからのデータ転送能力(データ供給能力)
5.内部メモリ、キャッシュメモリの容量
6.演算結果データの出力能力
7.どこがボトルネックとなるか、総合演算性能は
8.LSIのピン数
9.消費電力や発熱は
 以上の項目を総合的に判断する必要がある。
 現在の半導体技術では1つのチップには100億個以上のトランジスタが実装できる。
 本プロセッサ101の回路構成は極めて単純であり、一つの比較演算器114と出力回路が100ゲート、400トランジスタ程度で実現できる。
 チップに搭載するトランジスタの多くをこの比較演算器114に充てるとすると、例えば1600万個(16M個)の比較演算器114が、16M×400トランジスタ=64億トランジスタで実現可能である。
 16Mは行と列が4K×4Kに相当する、つまり1600万個の比較演算器114(プロセッサ)が並列(同時)に比較演算することになる。
 本プロセッサ101の消費電力を10W以下、冷却用のファンが必要のない電力範囲に抑え、しかも汎用性が高く、高速な演算器の構成としたい。
 システムクロックが1GHzを超えると大幅に消費電力が増加するのでシステムクロックは1GHz(1ナノ秒クロック)またはそれ以下で検討する。
 実際の実施例をもとに本プロセッサ101の基本構成をまとめるものとする。
 図7は以上4K×4K比較演算器114を用いた本プロセッサ101で1億×1億データの行列比較演算の実施例を示したものである。
 説明を簡単にするためにデータの母数を1億(100M)とし、「井上克己」など漢字4文字データつまり4フィールドデータを、図1のC例のように行列同じデータとして利用し網羅組合せ的に日本人の同姓同名を検索するものとする。
 この比較演算回路114は、1クロック演算を1bit毎に繰り返すことになるので、漢字データ、4文字=4フィールド(16bit×4=64bit)を1ナノ秒1クロック演算で64回実行し比較演算、つまり1バッチ比較演算は64ナノ秒である。
 これが、4K×4K=1600万演算器全体の1バッチ比較演算空間152の演算時間である。
 次に外部メモリから、本プロセッサ101にデータを転送するためのデータ入力時間について説明する。
 一般的なDDRメモリモジュールのデータ転送時間は16GB/秒程度である。
 仮に、行4K×64bit(8B)のデータを16GB/秒でデータ転送する時間は(4K×8B=32KB)/16GB=2マイクロ秒、列も同様2マイクロ秒である、これを1データ転送時間とする。
 図7のA方式に示すように、1バッチ4K×4Kの比較演算空間で100M×100Mの組合せ的演算空間を演算する場合、ラスタ走査のように25K×25K=625M回網羅的な比較演算を繰り返す必要がある。
 例えば行の1データを固定にして、列のデータ切り替え25K回の比較演算を行うので、データの転送回数は、(1+25K)×25K≒625M回となり、組合せ的比較演算空間全体では、1データ転送時間の625M倍になるので2マイクロ秒×625M=1,250秒となる。
 以上のような本プロセッサ101の利用の仕方では、データ転送時間が先に示した、4K×4Kの1バッチ演算空間152の比較演算時間64ナノ秒より極めて大きな値となり、この技術の有効性を損なう結果となる。
5.本実施形態の比較演算方法
 以下にこの技術の効果を最大限に引き出す比較演算方法を図7のB方式に示す。
 先の説明では、行列それぞれ4Kのデータ1バッチ分をその都度データ転送する場合を考えたが、例えば4Kの64倍のデータ、つまり1行256K+1列256Kの行列データを1バッチメモリ空間153として転送する場合の時間を考える。
 1バッチメモリ空間153の行と列双方のデータ量は(4K+4K)×8B×64=4MBとなる。
 従ってデータ転送時間は4MB/16GB=256マイクロ秒となる。
 一方比較演算時間は、4K×4Kの1バッチ演算を64ナノ秒で実現できるので、1バッチメモリ空間153の全体の演算は行列それぞれ256K/4K=64回、64回×64回=4K回のラスタ走査のように比較演算を繰り返すことにより実現できる。
 この場合、行列「64×64」の演算に必要なデータは行列「64+64」のデータとして事前に受け取っており、本プロセッサ101は先に図4で説明した通りこのデータを連作的に利用することが出来るので、64ナノ秒×4K回≒256マイクロ秒の演算時間で処理可能になる。
 つまり、演算時間=データ転送時間となりバランスした性能になるとともに、初回の演算を除き、演算中にデータ転送を独立し、所定単位のデータを転送することが出来るので、見かけ上データ転送時間は比較演算時間に隠れてしまい、比較演算時間の256マイクロ秒で256K×256Kの1バッチメモリ空間が処理可能になる。
 以上のとおり、CPUのキャッシュメモリのように、事前に大量の行列データを転送しておいて、連続して演算を繰り返すことができるこの方法は、データ転送は4Kのデータ64倍のデータの二組つまり64+64の128回のデータを送るだけで良いのに対し、演算は64×64=4096回(4K回)必要になるところがこの技術最大のポイントである。
 データの転送時間はデータの量に比例するが、組合せ的な演算はデータ量の2乗に比例するのでデータ先送りとキャッシュメモリの価値を最大限に引き出すことができる。
 この方式をデータ先読み効果と呼ぶ。
 ちなみに先に示した4MBのメモリを1セル当たり6トランジスタのSRAMで構成する場合、4M×8×6≒2億トランジスタ程である、必要に応じ更にメモリを増設することにより、より様々な演算効果が得ることができる。
 256K×256Kの1バッチメモリ空間153をさらに400回×400回=160K回繰り返すことで、1億(108 )×1億(108 )=1京(1016 )の空間全体の演算が完了することになり全網羅組合せ的演算空間151の演算時間は62マイクロ秒×160K回≒42秒となる。
 後述するようにこの時間にはアイドル時間、比較演算指示時間や比較演算結果の出力時間が考慮されていないが、ひとまずこの数字を1億トータル処理時間と呼ぶものとする。
 ALUのような多bit演算器を用いて1バッチの比較演算を高速化することも可能であるが、データ転送時間がボトルネックになるので、1バッチの比較演算を高速化しても無意味である。
 組合せ的な演算が比較に限定される場合は本例の比較演算器114のように1bit毎の演算を繰返し実施し、データの転送時間と、演算時間のバランスをとれるようにするのが最善である。
 また、ALUの場合、データ幅が固定になってしまい、メモリ効率や演算効率が悪くなるのに対し本方式は、1bit以上の任意データ幅に遊びがなく対応出来るので極めて効率的な並列演算が可能になる。
 本プロセッサ101はCPUやGPUのようにプログラムを介在させて駆動させるものではないこと、各演算素子が完全同一のSIMD型演算を行うので、それぞれの演算器の遊びやオバーヘッドタイムを完全排除することが出来るのでアイドルタイムを考慮する必要がない。
6.本実施形態の演算指示
 本プロセッサ101の演算指示について説明する。
 図3で説明の年齢/身長/体重のような複数フィールド行列データを比較する演算条件設定の一例を示す。
 年齢データの(0~6)を一致で行列比較する場合の個別演算式 (0~6)行=列
 身長データの(7~14)を類似で行列比較とする場合の個別演算式 (7~14)行≒列
 体重データの(16~22)は大小で行列比較とする場合の個別演算式 (16~22)行>列
 性別データの(23)を一致で行列比較する場合の個別演算式 (23)行=列
 既婚データの(24)を無視する場合の個別演算式 演算式不要
 以上のように対象となるフィールドの個別フィールド演算式としてそれぞれの行列データの比較演算条件と比較演算記号を決定する。
 割愛しているがデータ形式がバイナリデータかBCDか、テキストデータであるか、さらに類似などの場合はどのデータを無視するのかなどさらに細かく条件を決める必要がある。
 さらに以上の個別フィールド演算式の全体の比較演算を、[(0~6)行=列]×[(7~14)行≒列]×[(16~22)行>列]×[(23)行=列]などのように比較演算式として外部から与え所定の行列比較が本プロセッサ101内部で実現されるよう、フィールド内データの個別フィールド演算は図6に示す比較演算器114の一時記憶レジスタで演算し、複数フィールド全体の演算は一致回数カウンタ128でカウント演算可能になるよう演算指定条件回路を構成すればよい。
 個別フールド内の演算、複数フールド全体の演算とも、論理積、論理和、排他論理、論理否定、などの任意の論理の組み合わせが実現できることは言うまでもない。
 通常本プロセッサ101に対する演算指示はHOST側のコンピュータから、PCIeやローカルネットワークを通じて行われる。
 以上のような極めて巨大な組合せ的な比較演算であっても比較演算条件は毎回同じ条件で実施するので、比較演算開始時に1回指定するだけでよく1bit毎の比較演算条件を仮に数十マイクロ秒~数ミリ秒程度の比較演算指示時間が必要であってもトータル処理時間に対して無視することができる。
7.本実施形態の比較演算結果の出力
 最後に本プロセッサ101の比較演算結果の出力について説明する、4K×4Kの1バッチ比較演算空間の中でマッチする行と列の演算器(マッチアドレス)が多いか少ないかは、トータル処理時間に大きく影響する。
 本例では先に示した日本人の同姓同名を検出する際、マッチする確率と出力時間について考察するものとする。
 日本人約1.2億人に対し同姓同名の種類は1300万種類とされているので、一つの名前に平均10のマッチ数(平均確率が10)があることになる、1億×1億の組合せ的なマッチングで10億回のマッチアドレスが検出されることになる。
 このマッチアドレスデータに付随して、このマッチアドレスが100M×100Mの組合せ的な空間のどのエリアのものであるのかをエリア毎に最低1回エリアデータを出力する必要がある。
 マッチアドレスデータを受け取るHOST側は、エリアデータと以上説明の4K×4Kのマッチアドレスで全空間内のどのマッチアドレスであるかを判定することができる。
 この10億回(1G回)のマッチアドレスを、1データ、行(X)列(Y)それぞれ2B=4Bデータを1クロック1ナノ秒で外部出力する場合の時間は、1G回×1ナノ秒=1秒である。
 このデータサイズは、1G×4Bは4GBである。
 平均確率がその10倍になれば外部出力時間は10秒であるがこの出力時間も比較演算と独立して実行できるので、数十倍程度の出現頻度であれば、先に示した1億トータル処理時間42秒に影響はない。
 次に出現頻度が頻発する場合について検討する。
 例えば1億のデータの1つのデータ当りに平均1万回(10K回)マッチ検出するなどの場合、外部出力時間に1000秒もの時間が必要である。
 同時にHOST側のコンピュータは100M×10K×4B=4TBものメモリ空間が必要になり、また抽出した4TBのデータをCPUによりさらに整理するための時間も必要になるので注意が必要である。
 このようなことからビッグデータ同士の組合せ的な検索は、大量のデータの中から、水や空気のようにどこにでもあるものを手当たり次第に探すのではなく、金やダイヤモンドを探し当てるように、限定された組合せを探し当てるものと割り切る必要がある。
 以上の演算結果データに関することはCPUによる通常の組合せ的な検索や探索で実行する場合でも全く同様であることは言うまでもない。
 以上説明の本プロセッサ101の全体像を小さな町工場のイメージで示す。
 この工場は工場内のあらゆる空間に隙間なく超多数の超小型高性能データ加工設備が備え付けられている。
 2組のデータがトラックで工場の入口に搬入され、この超小型高性能データ加工設備にそれぞれのデータが入るやいなや超小型高性能データ加工設備の中で一斉にデータ比較演算加工が実施される。
 超小型高性能データ加工設備は超高速でそのデータの加工は小爆発のように超高速で完了する。そしてその加工の結果製品となる(重要な)データのみが工場の出口から出力されトラック出荷される、これが超高速に繰り返し実行されるイメージである。
8.本発明の優位性のベンチマーク
 以上の内容をもとにこの技術の優位性をベンチマークする。
 CPUで本例の同姓同名を検出する場合、メモリを読み込み、比較を行い、一致しなければ次のメモリを読み込む、一致していれば所定の処理を実行するなど、平均4ステップで1回の比較演算ループを実行するとすれば、560G回/秒の演算が可能な汎用高速CPUで、(1億×1億回=1京)/560G回は71,428秒(約200時間)であり、先に示した1億トータル処理時間42秒と比較して、約1,700倍の時間が必要である。
 本方式の1億トータル処理時間42秒は計画値ではあるものの適正に設計されたデバイスであれば理論値で稼働させることができる、CPUの場合には様々な要素がからみあうので理論値で稼働させることは困難であり、実際には3,000倍以上の性能差が予想される。
 さらに4T回の演算が可能な専用高速CPUが4ステップで1回の比較演算ループを実行する場合、1京回/1T回は10,000秒であり、1億トータル処理時間42秒と比較して約240倍の時間が必要である。
 実際には500倍以上の性能差となることが予想される。
 最速のGPUの演算能力は専用高速CPUと比較して2倍程度であるので、最速のGPUの演算能力と比較する場合でも250倍程度の性能差となることが予想される。
 最後に、スパコン京は一秒間に1京回の演算ができるので、4ステップで1回の比較演算ループを実行した場合、4秒必要である。
 スパコン京は8万個以上のCPUを並列駆動させているので12MWもの電力を消費する。
 一方の本プロセッサ101は1チップ10Wにも満たないような電力で、スパコン京の約1/10の比較演算能力をもち、電力性能で比較すれば10万倍以上の優位性をもつ。
 1つのチップで一般的なスパコンクラスの比較演算性能を持つことになる。
 以上の性能を先に示した工場の例で示すと、この工場は小さな工場(本プロセッサ101=半導体デバイス1個)であるものの巨大工場(スパコン)のように生産能力が高いこと、また使用する電力が極めて少ないこと、原料や製品の搬入搬出が船や飛行機など特殊な搬送設備でなく、一般的なトラック(汎用データ転送回路)で済むことである。
 以上の性能の差は、いうまでもなく演算アーキテクチャの違いによるものである。
 前述したようにCPUやGPUがデータ同士を連続的比較する場合にはメモリを読み込み、比較を行い、一致しなければ次のメモリを読み込む、一致すればメモリワークエリアにフラグ(FG)を立てるなど、1つのデータに数ステップの比較ループ演算が必要である。
 本プロセッサ101の演算性能をCPUやGPUと同様デバイス性能で表現すると、64bit幅のデータを16M個のプロセッサが64ナノ秒で1バッチ比較演算空間152を演算するので、デバイス性能に換算すれば256T回(0.25P回)/秒の実比較演算性能に相当する。
 CPUやGPUは逐次処理型のプロセッサを改良したマルチコア、メニコアであるのに対し、本方式は最初から超並列化を目指し、比較演算に特化した組合せ的演算専用のプロセッサ101であることが最大の違いである。
 比較演算は超並列処理が可能な1bit演算器でSIMD処理可能であること、組合せ的な比較演算は与えるデータに対して演算回数がn×m、最大2乗になること、この2つの相乗効果に着目したことがこの発明の最大のポイントである、仮に一方だけではこれだけの性能を引き出すことは困難である。
9.本発明の利用法
 以下にこの技術の利用法について説明する。
 これまでの説明は、8Bデータの1億×1億=1京(1016 )のデータ同士の組合せ的な演算であったが、データサイズや演算の条件が同様であれば、
様々なデータ量の組合せ的な演算が比例関係で求められる、たとえば
4.2秒では1015 の演算が可能(例えば100万(106 )×10億(109 )の組合せ的な演算)
4.2ミリ秒では1012 の演算が可能(例えば100万(106 )×100万(106 )の組合せ的な演算)
4.2マイクロ秒では109 の演算が可能(例えば1万(104 )×10万(105 )の組合せ的な演算)が実行できる。
 またデータの長さと、トータル処理時間も、比例関係であるので、データの長さが4倍であれば、演算時間は4倍になる。
 この比較演算方式は、データ量の大きなものから、様々なデータ形式のもの、更に様々なデータ長のデータに利用出来る。
 以上の説明はこの技術の性能の目安を示すものであり、当然のことながら演算条件が複雑になればなるほど圧倒的な比較演算性能で従来型の情報処理では実現不可能であった様々な情報処理への応用が考えられる。
 先の同姓同名の検索は、フィールドデータの網羅的な比較は不要であったが、フィールドデータの網羅組合せ的な演算方法についてその概要を示す。
 コンビニやスーパーの売り上げ集計データの中から例えば、「ビール×枝豆×豆腐」、「ワイン×チーズ×ピザ」、「日本酒×するめ×おでん」など、頻出する組合せを網羅的に検出するようなデータマイニングは最もニーズの多いデータマイニングであり様々な手法が提案されている。
 近年研究が活発しているMEET演算はその代表例であるがデータが多くなるに従い計算量が合わせ爆発するので様々な制約条件を与えないと待ち時間が膨大になる、その他の手法による演算も大同小異である。
 本発明による頻出組合せの場合には、それぞれの商品コード(同じデータ数)のフィールドデータを切り替えて網羅的に演算を実施すればよい。
 以上の場合は3つのデータの場合であり、合計9回の組合せ比較演算154を行えば網羅組合せ的な比較演算が可能である。
 4つのデータの場合、合計16回の組合せ比較演算154を行えば網羅組合せ的な比較演算が可能である。
 以上のようなフィールドデータの網羅的な組合せ比較演算は図6に示す一致回数カウンタ128周辺回路により自由に実現することができる。
 以上の説明で、データフィールドの網羅組合せ的な比較演算と、データフィールドが固定のデータ間の網羅組合せ的な比較演算と、その双方の網羅組合せ演算が可能であることを示した。
 以下にこの技術の代表的な応用例を示す。
 先に示した同姓同名の抽出データはインデックスそのものである。
 抽出された同姓同名のデータをそのままインデックスとして利用することが出来る、インデックスを作成するには複雑な専用技術が必要であったが、本プロセッサ101はインデックスの作成を容易にししかも超高速で、思い通りのインデックスを生成してくれる。
 もちろん本例以外のデータのインデックスに利用できることは言うまでもない。
 この技術はデータのフィルタとして利用することができる。
 図1のB例のように使用し、仮にXにフィルタの条件を設定(固定)しYに対象となるデータを与えればフィルタリングされた結果を抽出することができる。
 以上のようにビッグデータに最適な技術であることは言うまでもないが、マイクロ秒やミリ秒単位でも極めて大きなデータの処理が出来るので、リアルタイム処理にも応用が可能である。
 リアルタイムの応用について考える。
 SNSなどのビッグデータは、データキー(インデックス)とデータを紐づけしたKVS(Key Value Store)方式のデータ検索が盛んに利用されている。
 本プロセッサ101の1行、1列のいずれか一方を検索インデックスデータとして、他の一方をマルチアクセス検索クエリデータとして、比較演算しマルチアクセス検索を実行することが出来る。
 先に例示した、4×4Kの1バッチ比較演算空間152で256K×256Kの1バッチメモリ空間153をもつデバイスで、例えば1億のKVS方式のSNSサイトの1インデックス当たり64bitのインデックスを検索する場合は、256マイクロ秒の1バッチメモリ空間153を縦列のみ400回演算すればよいので、1億(インデックス件数)×256K(単位当たりの検索データ)の比較演算時間は約100ミリ秒(0.1秒)となる。
 比較演算時間が0.1秒であれば、通信時間のオーバヘッドを含めても極めて快適なWEB検索システムを提供することができる。
 先に示したように、例えば世界80億人の半分の40億人が1日平均10回程度特定のSNS検索エンジンにアクセスすると1日当たり40G回のアクセスが発生し、このアクセス量は1秒当たり266K回のマルチアクセス回数に相当する。
 従って上記の100ミリ秒で256K(単位当たりの検索データ)の演算能力はマルチアクセスが10倍ほどに集中した場合でも処理可能であることを意味している。
 検索サイト数がN億(100億)であれば、本プロセッサ101をN個(100個)使用することで、超小型、超低電力で超高性能なSNS検索システムが完成する。
 本例は便宜上先に説明の256K×256Kの組み合わせ演算によるものであったが、対象となるデータ数(n)と単位時間当たりのアクセス数(m)の関係から最適な組み合わせが可能な本プロセッサ101を設計することにより、より合理的な処理が出来ることは言うまでもない。
 以上の応用として本プロセッサ101はデータを可変長にすることや、より複雑な検索条件を設定することが出来るので、図1のB例に示すように大量のデータに対してマルチアクセスが可能である。
 従って本プロセッサ101は様々な検索機能を備えた高機能の連想メモリ(CAM)として利用できることを意味している。
 連想メモリ(CAM)は検索用のインデックスを不要にし、複雑な情報処理を不要する反面、フレキシブルな検索条件による検索やマルチアクセスが苦手で現在は通信ルータのIPアドレス(ユニークデータ)の検出程度にしか利用されていない、本プロセッサ101は連想メモリ(CAM)の応用を大幅に拡大する。
 大量のデータに大量にアクセスされるクラウドサーバに最適である。
 数値データの一致、類似、大小、範囲の比較ができるので、行列いずれかを、多数のフィルタ条件値と固定して設定しておき、その反対側に大量のデータを与え、マッチするものを検出する、このような演算は設備の故障診断や、株価の変動などのマイニング解析に最適である。
 テキストデータのリアルタイム解析について考える。
 欧米語はもとより日本語の網羅的な一致検出が高速で出来るので、大量のSNSデータの中から頻出する言葉を検出し社会の関心や市場の関心をリアルタイムにマイニング検出する。
 同姓同名の場合4文字データであったがデータ長は任意であるので、特許文献の検索やWEBテキストデータの検索にも応用可能である、大量マルチアクセスが可能なのでシソーラス(同義語)検索にも最適である。
 AI技術への関心が高まっている、AI技術の期待は様々であるが、コンピュータに明確な指示を与えることなく必要な情報を抽出することや選別することが目的と言っても過言でない。
 一例をあげればDeep Learningは画像や音声の認識、自己相関マップ(SOM)やサポートベクタマシン(SVM)などのクラスタリングは最もニーズの多いAI技術である。
 先に説明の同姓同名の検索は、図1のC例のようなデータ検索であるが、見方を代えればD例のように特別なクエリ(教師データ)なしでクラス分けを自動的に実行したことと等価である、演算条件を変更するだけで様々なクラス分けを実行できるこの方法は従来の技術と比較して極めて単純(ソフトが不要)で、しかも超高速である、本プロセッサ101は正にこのような目的の情報処理を1チップで実現したものに他ならない、その応用はビックデータからリアルタイム処理まで無限であり、新しいタイプの人工知能と表現することもできる。
 以下にこの技術の補足説明を行う。
 補足説明1として、本例で説明の演算クロック1ナノ秒を5ナノ秒クロックとした場合について説明する。
 演算速度が1/5になるので、1億トータル処理時間は42秒×5≒210秒となるが消費電力を大幅に抑えることが可能になる。
 補足説明2として、4K×4Kの演算器を1K×1Kの演算器とした場合について説明する。
 演算回数が16倍増えるので、1億トータル処理時間は41.9秒×16≒670秒となるが小型、低コストのチップを実現できる。
 正方形にこだわることもなく16K×1Kでも可能であるが4K×4Kに比べてメモリの全体容量が(16+1)/(4+4)=2.125倍に増加することに留意する必要がある。
 補足説明3として、データ先読み効果について説明する。
 n=mの場合効果が最大になる。
 n=mとしてそれぞれのバッチ数をKとする場合
演算時間は=K2 ×1バッチ演算時間
データ転送時間=(K+K)×1データ転送時間
となるので、演算時間とデータ転送時間のバランス点は以下の式で求められる。
 K2 ×1バッチ演算時間=(K+K)×1データ転送時間 
K=2データ転送時間/1バッチ演算時間 がバランスの取れるバッチ数である。
 先の例では、バッチ数K=64となり、全体で4MBのメモリを搭載すると最も効率の良い多重バッチ処理の演算が可能になることはすでに説明の通りである。
 演算時間や、データ転送時間に合わせてKを選択すれば最適なLSIが実現可能になる。
 補足説明4として、小容量のLSIを紹介する。
 先に示した構成の本プロセッサ101は行列が4K×4Kで比較演算器114が16M個と大容量のもので演算効率を高めるために多重バッチ処理を行う方式であった。
 この方式のバランス点は多重バッチ処理の場合のデータ転送時間とその合計演算時間である。
 本プロセッサ101は比較演算器114の数に関係なく1バッチ比較演算は64n秒と一定であるのでこの演算時間にバランスするデータ転送時間のデータ容量を求める。
 この場合は単一バッチ処理の場合のデータ転送時間と演算時間である。
 行列同数でこれまで説明の通信能力16GB/秒であれば、512B+512Bつまり1データが64bitの場合、行列それぞれ64データで64×64=4Kの比較演算器114を備えた本プロセッサ101が実現できる。
 データ数が64以下の場合、データ転送時間≪=演算時間となるので演算効率が良い。
 4K×4Kのプロセッサに比較すると性能は大幅に落ちるが小型低電力、低コストのプロセッサとなり電力当たりの性能は従来型プロセッサを大幅に上回る。
 補足説明5として、比較演算結果の出力を高速にする場合には、演算結果をFIFO(データの先入れ先出し方式など)形式変換して高速なシリアル通信インターフェース、例えばPCIe接続することにより理論値128GB/秒のデータ通信が可能になる。
 もちろん行列演算用データのデータ転送時間を高速化することも可能である。
 これまでの説明では行列2次元であったが、行列にページの概念を含め、n+m+oのデータ転送と、n×m×oの演算器による3次元構成のプロセッサとすることも可能である。
 以上のように目的や性能を勘案し最適なチップを設計すればよい、小型処理容量のものであればFPGAでも利用可能である。
 最近のコンピューティングはCPU内部に多くのキャッシュメモリを内蔵させ、そのキャッシュメモリを有効に利用することでシステム全体の効率改善を図ることが鍵になっているがこれまでのアーキテクチャの改良では自ら限界がある。
 本発明はコンピューティングの範囲を比較演算と限定することにより従来技術をいたずらに引きずり廻すことなく、メモリとプロセッサが最も効率的な演算アーキテクチャを実現したものである。
 現在データの比較演算は極一部の分野で利用させているに過ぎない、それは現在のコンピュータアーキテクチャでは計算量が多く多大な待ち時間が発生することやその時間を短縮するためのプログラム開発に大きな負担がかかるからである。
 このプロセッサ技術が利用できることによる潜在ニーズを含めたニーズを取りまとめする。
 網羅組合せ的な比較演算の顕在、潜在ニーズ
(1)組合せ問題
  (ア)遺伝子のような大量のデータの中から特徴的なデータを探したい
  (イ)大きなデータ集団から同姓同名のようなまれなデータを探したい
  (ウ)名寄せ、重複などデータの仕分け、クラス分けを行いたい
  (エ)大きなデータ集団同士を比較して同じまたは類似、共通するデータを高速に探したい
  (オ)気象解析や株価解析のように多変数(多次元)データのデータマイニングを行いたい
  (カ)通信ルータやSNSやWEB検索などのように大量のデータに大量のアクセスが発生する場合でもリアルタイムにデータを探したい
(2)クエリが決められない
 (ア)データマイニングなど、初期の段階では何を探したいかが分からない
 (イ)碁や将棋のように選択肢が無数にあり、どれが最適クエリか不明である
(3)前処理や複雑な処理を不要にしたい
 (ア)インデックスを作成するには多大な前処理が必要
 (イ)AI手法の網羅的クラス分類やクラスタリングは前処理や学習が必要である
 (ウ)複雑なソフトウエアアルゴリズムは専門家以外困難で一般ユーザは利用できない
以上のように網羅組合せ的な比較演算は様々な分野で大きな潜在需要が期待されIT産業界のみならずあらゆる産業、パーソナルユーズまで幅広く利用できる。
 101…データ比較演算プロセッサ
 102…データ入力
 103…行データ入力線
 104…行データ
 105…行データアドレス
 106…行データバッファ
 107…行データ演算データ線
 108…一方の列データ入力線
 109…列データ
 112…列データ演算データ線
 113…演算器
 114…比較演算器
 114…K比較演算器
 114…比較演算回路
 116…演算器条件
 119…マッチアドレス
 120…演算結果出力
 121…行列一致判定回路
 122…演算器
 127…一時記憶レジスタ
 128…一致回数カウンタ
 129…優先順序判定回路
 130…マッチアドレス出力
 141…アドレス選択線
 142…データ線
 145、146…スイッチ
 147…メモリセルアドレス選択線
 148…メモリセルデータ線
 149…メモリセル
 151…全網羅組合せ的演算空間
 152…バッチ比較演算空間
 153…バッチメモリ空間
 

Claims (12)

  1.  1行、1列、それぞれn個、m個、合計n個+m個のデータを記憶できる2組のメモリ群と、その2組のメモリ群から網羅状に布線されたデータ線のクロスポイントにn×m個の演算器を設け
     前記1行、1列2組のメモリから前記網羅状に布線されたデータ線に、前記1行n、1列m、それぞれのデータを並列に送出することにより、前記n×m個の演算器は前記送出されたデータを行列網羅組合せ的に読み込み、行列網羅組合せ的に並列比較演算し、その比較演算結果を出力する手段を具備することを特徴とするデータ比較演算プロセッサ。
  2.  前記網状に布線されたデータ線は多ビットデータ線で、前記演算器はALU(Arithmetic and Logic Unit)で行列比較演算を並列に実行することを特徴とする請求項1記載のデータ比較演算プロセッサ。
  3.  前記網状に布線されたデータ線は1ビットデータ線で、前記演算器は比較1bit演算器で行列比較演算を並列に実行することを特徴とする請求項1記載のデータ比較演算プロセッサ。
  4.  前記比較1bit演算器は、前記1行n個のデータと1列m個のデータの
    ア)一致もしくは類似を比較演算する
    イ)大小、範囲を比較演算する
    ウ)上記ア)、イ)のいずれかもしくは双方の比較演算結果に基づき共通であることを比較演算する
    上記ア)、イ)、ウ)のいずれかもしくはその組合せの比較演算であることを特徴とする請求項1記載のデータ比較演算プロセッサ。
  5.  前記1行、1列2組のメモリ群は1バッチn×mの網羅組合せ演算に必要なデータのK倍の行列範囲の網羅組合せデータを記憶するメモリを具備し、前記n×m個の演算器は(K×n)×(K×m)の網羅組合せ演算を連続して実行する機能を具備することを特徴とする請求項1記載のデータ比較演算プロセッサ。
  6.  前記n個、m個、のデータを外部から取り込み記憶する際、データの行列変換を行い前記1行、1列2組のメモリに記憶することを特徴とする請求項1記載のデータ比較演算プロセッサ。
  7. 請求項1記載のアルゴリズムをFPGAに実装したことを特徴とする請求項1記載のデータ比較演算プロセッサ。
  8. 前記1行、1列、に加え1ページ、それぞれn個、m個、o個、合計n個+m個+o個のデータを記憶できる3組のメモリ群と、その3組のメモリ群から網羅状に布線されたデータ線のクロスポイントにn×m×o個の演算器を設けたことを特徴とする、請求項1記載のデータ比較演算プロセッサ。
  9. 請求項1記載のデータ比較演算プロセッサを含んだ装置。
  10. 請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列異なるデータを用いて前記並列比較演算を行い
    ア)n×mの網羅的な比較演算を行う
    イ)1行、1列一方のデータを比較演算条件データとする
    以上いずれかの比較演算を行うことを特徴とするデータ並列比較演算方法。
  11. 請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列同一データを用いて前記並列比較演算を行い
    ア)n×nの網羅的な比較演算を行う
    イ)1行、1列一方のデータを比較演算条件データとする
    ウ)クラス分類演算を行う
    以上いずれかの比較演算を行うことを特徴とするデータ並列比較演算方法。
  12. 請求項1記載のデータ比較演算プロセッサを用いた演算であって、前記1行、1列のいずれか一方を検索インデックスデータとして、他の一方をマルチアクセス検索クエリデータとして、比較演算しマルチアクセス連想検索を実行することを特徴とするデータ並列比較演算方法。
PCT/JP2017/042655 2016-11-28 2017-11-28 データ比較演算プロセッサ及びそれを用いた演算方法 WO2018097317A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/464,154 US20200410039A1 (en) 2016-11-28 2017-11-28 Data comparison arithmetic processor and method of computation using same
JP2018506366A JP6393852B1 (ja) 2016-11-28 2017-11-28 データ比較演算プロセッサ及びそれを用いた演算方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-229677 2016-11-28
JP2016229677 2016-11-28

Publications (1)

Publication Number Publication Date
WO2018097317A1 true WO2018097317A1 (ja) 2018-05-31

Family

ID=62196053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/042655 WO2018097317A1 (ja) 2016-11-28 2017-11-28 データ比較演算プロセッサ及びそれを用いた演算方法

Country Status (3)

Country Link
US (1) US20200410039A1 (ja)
JP (1) JP6393852B1 (ja)
WO (1) WO2018097317A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024075657A1 (ja) * 2022-10-04 2024-04-11 ソフトバンクグループ株式会社 Perfect Cruise Control
WO2024106294A1 (ja) * 2022-11-14 2024-05-23 ソフトバンクグループ株式会社 情報処理装置、プログラム及び情報処理システム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12009053B2 (en) * 2022-06-16 2024-06-11 Macronix International Co., Ltd. Memory device and data searching method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1050076A (ja) * 1996-08-02 1998-02-20 Nec Corp 連想メモリ
WO2015098707A1 (ja) * 2013-12-23 2015-07-02 井上 克己 情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法。

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3862406A (en) * 1973-11-12 1975-01-21 Interstate Electronics Corp Data reordering system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1050076A (ja) * 1996-08-02 1998-02-20 Nec Corp 連想メモリ
WO2015098707A1 (ja) * 2013-12-23 2015-07-02 井上 克己 情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法。

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024075657A1 (ja) * 2022-10-04 2024-04-11 ソフトバンクグループ株式会社 Perfect Cruise Control
WO2024106294A1 (ja) * 2022-11-14 2024-05-23 ソフトバンクグループ株式会社 情報処理装置、プログラム及び情報処理システム

Also Published As

Publication number Publication date
JPWO2018097317A1 (ja) 2018-11-22
US20200410039A1 (en) 2020-12-31
JP6393852B1 (ja) 2018-09-19

Similar Documents

Publication Publication Date Title
Zhang et al. Cambricon-X: An accelerator for sparse neural networks
Wu et al. Efficient pagerank and spmv computation on amd gpus
Sismanis et al. Parallel search of k-nearest neighbors with synchronous operations
JP6393852B1 (ja) データ比較演算プロセッサ及びそれを用いた演算方法
Gao et al. A new agglomerative hierarchical clustering algorithm implementation based on the map reduce framework
Ling et al. Design and implementation of a CUDA-compatible GPU-based core for gapped BLAST algorithm
Jiang et al. MicroRec: efficient recommendation inference by hardware and data structure solutions
Rashed et al. Accelerating DNA pairwise sequence alignment using FPGA and a customized convolutional neural network
Wang et al. Coder: Coupled diversity-sensitive momentum contrastive learning for image-text retrieval
JP6229024B2 (ja) 情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法。
Peng et al. Optimizing fpga-based accelerator design for large-scale molecular similarity search (special session paper)
Shahroodi et al. KrakenOnMem: a memristor-augmented HW/SW framework for taxonomic profiling
Imani et al. CAP: Configurable resistive associative processor for near-data computing
Lee et al. Anna: Specialized architecture for approximate nearest neighbor search
Sadiq et al. NvPD: novel parallel edit distance algorithm, correctness, and performance evaluation
Caminal et al. Accelerating database analytic query workloads using an associative processor
US20230385258A1 (en) Dynamic random access memory-based content-addressable memory (dram-cam) architecture for exact pattern matching
Liang et al. A CUDA-based parallel implementation of K-nearest neighbor algorithm
Soto et al. JACC-FPGA: A hardware accelerator for Jaccard similarity estimation using FPGAs in the cloud
Bavikadi et al. Heterogeneous multi-functional look-up-table-based processing-in-memory architecture for deep learning acceleration
Han et al. EGCN: An efficient GCN accelerator for minimizing off-chip memory access
Rasel et al. Summarized bit batch-based triangle listing in massive graphs
Heo et al. Boss: Bandwidth-optimized search accelerator for storage-class memory
Zhou et al. Paraml: A polyvalent multicore accelerator for machine learning
Yavits et al. PRINS: resistive CAM processing in storage

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018506366

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17874281

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17874281

Country of ref document: EP

Kind code of ref document: A1