JP6956043B2 - Arithmetic logic unit and search method - Google Patents
Arithmetic logic unit and search method Download PDFInfo
- Publication number
- JP6956043B2 JP6956043B2 JP2018096450A JP2018096450A JP6956043B2 JP 6956043 B2 JP6956043 B2 JP 6956043B2 JP 2018096450 A JP2018096450 A JP 2018096450A JP 2018096450 A JP2018096450 A JP 2018096450A JP 6956043 B2 JP6956043 B2 JP 6956043B2
- Authority
- JP
- Japan
- Prior art keywords
- graph
- unit
- information
- divided
- search
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 64
- 238000003860 storage Methods 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Images
Description
本発明は、演算装置、および検索方法に関する。 The present invention relates to an arithmetic unit and a search method.
従来、種々の情報を検索する技術が知られている。このような技術の一例として、検索対象となる情報(以下、「検索対象情報」と記載する。)が配置された多次元空間内を複数の領域に分割し、クエリ情報と類似する情報をクエリ情報と対応する領域から検索する技術が知られている。 Conventionally, techniques for retrieving various types of information are known. As an example of such a technique, the multidimensional space in which the information to be searched (hereinafter referred to as "search target information") is arranged is divided into a plurality of areas, and information similar to the query information is queried. A technique for searching from an area corresponding to information is known.
しかしながら、上述した技術では、検索処理における効率を改善する余地がある。 However, in the above-mentioned technique, there is room for improving the efficiency in the search process.
例えば、グラフ構造を有する検索対象情報のうち、クエリ情報と概念が類似する検索対象情報を検索する近傍検索の技術が知られている。このような近傍検索においても、検索対象とする検索対象情報を限定することで、検索の効率を図ることができると考えられる。しかしながら、上述した技術では、単純に多次元空間を複数の領域に分割しているに過ぎないため、グラフ構造を適切に分割することが難しい。このため、必ずしも検索処理における効率を改善することができない場合がある。 For example, there is known a neighborhood search technique for searching search target information having a similar concept to query information among search target information having a graph structure. Even in such a neighborhood search, it is considered that the efficiency of the search can be improved by limiting the search target information to be searched. However, in the above-mentioned technique, it is difficult to appropriately divide the graph structure because the multidimensional space is simply divided into a plurality of regions. Therefore, it may not always be possible to improve the efficiency of the search process.
本願は、上記に鑑みてなされたものであって、検索処理の効率を改善することを目的とする。 The present application has been made in view of the above, and an object of the present application is to improve the efficiency of search processing.
本願に係る演算装置は、クエリ情報を受付ける受付部と、主記憶装置に設定された複数のページであって、検索対象情報のグラフを近傍検索の範囲として推定された領域ごとに分割した分割グラフが登録されたページのうち、前記クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する特定部と、前記特定部により特定されたページ情報が示すページから、前記分割グラフを読み出す読出部と、前記読出部により読み出された分割グラフを用いて、前記クエリ情報と類似する情報を検索する検索部とを有することを特徴とする。 The arithmetic unit according to the present application is a reception unit that receives query information and a plurality of pages set in the main storage device, and is a divided graph in which a graph of search target information is divided into areas estimated as a range of neighborhood search. Among the pages in which is registered, the divided graph is obtained from a specific part that specifies the page information indicating the page in which the divided graph corresponding to the query information is registered and the page indicated by the page information specified by the specific part. It is characterized by having a reading unit to be read and a search unit for searching information similar to the query information by using the divided graph read by the reading unit.
実施形態の一態様によれば、検索処理の効率を改善することができる。 According to one aspect of the embodiment, the efficiency of the search process can be improved.
以下に、本願に係る演算装置、および検索方法を実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る演算装置、および検索方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。 Hereinafter, the arithmetic unit according to the present application and the embodiment for carrying out the search method (hereinafter, referred to as “the embodiment”) will be described in detail with reference to the drawings. The arithmetic unit and the search method according to the present application are not limited by this embodiment. Further, in each of the following embodiments, the same parts are designated by the same reference numerals, and duplicate description is omitted.
[実施形態]
〔1.演算装置の一例〕
まず、図1を用いて、演算装置が実行する検索処理の一例について説明する。なお、以下の説明では、近傍検索によりクエリ情報と類似する情報を検索する処理の一例について説明する。より具体的には、以下の説明では、検索対象情報と対応するノードを、検索対象情報同士の類似性に応じて接続したグラフを用いて、近傍検索を実行する処理の一例について説明する。
[Embodiment]
[1. Example of arithmetic unit]
First, an example of the search process executed by the arithmetic unit will be described with reference to FIG. In the following description, an example of a process of searching for information similar to query information by neighborhood search will be described. More specifically, in the following description, an example of a process of executing a neighborhood search will be described using a graph in which nodes corresponding to the search target information are connected according to the similarity between the search target information.
図1は、実施形態に係る演算装置が有する機能構成の一例を示す図である。図1では、演算装置100は、以下に説明する検索処理を実行する演算装置である。ここで、演算装置100は、製造後に利用者が内部の論理回路を定義あるいは変更することができる集積回路であり、所謂うPLD(Programmable Logic Device)である。より具体的には、演算装置100は、FPGA(Field-Programmable Gate Array)により実現される。また、演算装置100は、外部装置OAおよび主記憶装置200と接続されている。
FIG. 1 is a diagram showing an example of a functional configuration of the arithmetic unit according to the embodiment. In FIG. 1, the arithmetic unit 100 is an arithmetic unit that executes the search process described below. Here, the arithmetic unit 100 is an integrated circuit in which a user can define or change an internal logic circuit after manufacturing, and is a so-called PLD (Programmable Logic Device). More specifically, the arithmetic unit 100 is realized by an FPGA (Field-Programmable Gate Array). Further, the arithmetic unit 100 is connected to the external device OA and the
主記憶装置200は、各種データを記憶する記憶装置であり、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置によって実現される。
The
ここで、主記憶装置200には、ページと呼ばれる複数の記憶領域が設定されており、ページ単位でデータの読出しおよび書込みが行われる。例えば、主記憶装置200には、ページm1〜ページm4が設定されており、各ページm1〜m4には、それぞれ、近傍検索に用いるグラフを分割した分割グラフG1〜G4が登録されている。また、主記憶装置200には、分割グラフG1〜G4とは別に、検索対象情報が登録される検索対象データベース201が保持されている。
Here, a plurality of storage areas called pages are set in the
例えば、図2は、実施形態に係る分割グラフの情報の一例を示す図である。図2に示すように、分割グラフG1には、「ノードID」、「データID」、「エッジ情報」および「接続先」といった項目が含まれている。ここで、「ノードID」とは、分割グラフに含まれるノードを識別するための識別子である。また、「データID」とは、対応付けられた「ノードID」が示すノードと対応する検索対象情報を識別する識別子である。また、エッジ情報とは、ノード同士を接続するエッジを識別する識別子である。また、「接続先」とは、対応付けられた「ノードID」が示すノードとエッジにより接続された他のノードのノードIDである。 For example, FIG. 2 is a diagram showing an example of information on the divided graph according to the embodiment. As shown in FIG. 2, the division graph G1 includes items such as "node ID", "data ID", "edge information", and "connection destination". Here, the "node ID" is an identifier for identifying a node included in the divided graph. Further, the "data ID" is an identifier that identifies the search target information corresponding to the node indicated by the associated "node ID". Further, the edge information is an identifier that identifies an edge that connects the nodes. Further, the "connection destination" is a node ID of another node connected by an edge to the node indicated by the associated "node ID".
例えば、図2に示す例では、ノードID「N1」、データID「D1」、エッジ情報「E12」および接続先「N2」といった情報が対応付けて登録されている。このような情報は、ノードID「N1」が示すノードが、検索対象情報のうちデータID「D1」が示す検索対象情報と対応するノードであり、エッジ情報「E12」が示すエッジにより、接続先「N2」が示すノード、すなわち、ノードID「N2」が示すノードと接続されている旨を示す。 For example, in the example shown in FIG. 2, information such as the node ID “N1”, the data ID “D1”, the edge information “E12”, and the connection destination “N2” are registered in association with each other. In such information, the node indicated by the node ID "N1" is a node corresponding to the search target information indicated by the data ID "D1" among the search target information, and the connection destination is provided by the edge indicated by the edge information "E12". Indicates that the node indicated by "N2", that is, the node indicated by the node ID "N2" is connected.
また、図3は、実施形態に係る検索対象データベースに登録される情報の一例を示す図である。図3に示すように、検索対象データベース201には、「データID」および「検索対象情報」が対応付けて登録されている。ここで、「検索対象情報」とは、検索対象情報のデータである。なお、図3に示す例では、検索対象情報として「データ#1」といった概念的な値を記載したが、実際には、検索対象となる情報の各種データが登録される。
Further, FIG. 3 is a diagram showing an example of information registered in the search target database according to the embodiment. As shown in FIG. 3, the "data ID" and the "search target information" are registered in association with each other in the
例えば、図3に示す例では、データID「D1」および検索対象情報「データ#1」が対応付けて登録されている。このような情報は、データID「D1」が示す検索対象情報が、「データ#1」である旨を示す。
For example, in the example shown in FIG. 3, the data ID “D1” and the search target information “
図1に戻り、説明を続ける。例えば、演算装置100は、プロセッサ110、入出力装置120、メモリコントローラ130、記憶部140およびFPGA150を有する。プロセッサ110は、演算装置100が有するプロセッサであり、例えば、ARMアーキテクチャやPOWERアーキテクチャを採用したプロセッサ若しくはマイクロプロセッサである。そして、プロセッサ110は、FPGA150と連携することで、各種の演算処理を実行する。
Returning to FIG. 1, the explanation will be continued. For example, the arithmetic unit 100 includes a processor 110, an input /
例えば、プロセッサ110は、プロセッサコア111とキャッシュメモリ112とを有する。プロセッサコア111は、論理演算や四則演算を実現する所謂コアであり、ALU(Arithmetic Logic Unit)から構成される算術論理演算装置により実現される。キャッシュメモリ112は、プロセッサ110が有する補助記憶装置である。より具体的には、キャッシュメモリ112は、主記憶装置200よりもプロセッサコア111が高速にアクセスすることができる記憶装置であり、所謂キャッシュメモリである。
For example, the processor 110 has a processor core 111 and a
入出力装置120は、演算装置100と外部装置OAとの間の通信を中継する装置であり、所謂I/O(Input Output)装置である。例えば、入出力装置120は、USB(Universal Serial Bus)、イーサーネット、SD(Secure Digital)、UART(Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)、I2C、GPIO(General-purpose input/output)等、各種の通信規格に沿って外部装置OAとの間の通信を制御する各種の入出力装置により実現される。
The input /
メモリコントローラ130は、演算装置100による主記憶装置200へのメモリアクセスを制御する。より具体的には、メモリコントローラ130は、ページング方式により主記憶装置200に格納されたデータの読み出しや書込みを行う。
The
記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置によって実現される。記憶部140は、ページテーブル141を有する。ページテーブル141には、仮想アドレスと物理アドレスとが対応付けて登録されている。
The
例えば、図4は、ページテーブルに登録される情報の一例を示す図である。図4に示すように、ページテーブル141には、「仮想ページ番号」と「物理ページ番号」とが対応付けて登録されている。ここで、「仮想ページ番号」とは、プロセッサコア111が各種演算処理の対象となるデータが登録された記憶領域を指定する際に用いる仮想アドレスである。また、「物理ページ番号」とは、主記憶装置200が有する記憶領域を示す物理アドレスである。
For example, FIG. 4 is a diagram showing an example of information registered in the page table. As shown in FIG. 4, in the page table 141, the "virtual page number" and the "physical page number" are registered in association with each other. Here, the "virtual page number" is a virtual address used by the processor core 111 when designating a storage area in which data to be subjected to various arithmetic processes are registered. The "physical page number" is a physical address indicating a storage area of the
例えば、図4に示す例では、仮想ページ番号「ページs1」と物理ページ番号「ページm1」が対応付けて登録されている。このような情報は、例えば、プロセッサコア111が「ページs1」を用いて指定する情報が、主記憶装置200が有する記憶領域のうち、「ページm1」によって指定される領域に格納されている旨を示す。なお、ページテーブル141は、例えば、各仮想ページ番号が示す記憶領域を用いて演算処理を実行するアプリケーションの識別子が登録されていてもよい。
For example, in the example shown in FIG. 4, the virtual page number “page s1” and the physical page number “page m1” are registered in association with each other. Such information means that, for example, the information designated by the processor core 111 using "page s1" is stored in the area designated by "page m1" in the storage area of the
図1に戻り、説明を続ける。例えば、図1に示す構成を有する場合、プロセッサコア111は、キャッシュメモリ112にアクセスし、演算対象となるデータの取得を試行する。そして、プロセッサコア111は、データがキャッシュメモリ112に格納されていない場合(すなわち、キャッシュミス)は、メモリコントローラ130に対して、演算対象となるデータが格納されている記憶領域のアドレスを通知する。より具体的には、プロセッサコア111は、演算処理に用いる仮想アドレスをメモリコントローラ130に通知する。
Returning to FIG. 1, the explanation will be continued. For example, when the configuration shown in FIG. 1 is provided, the processor core 111 accesses the
このような場合、メモリコントローラ130は、仮想アドレスと、主記憶装置200が有する記憶領域のうち仮想アドレスと対応する情報が格納された記憶領域を示す物理アドレスとを対応付けたページテーブル141を参照し、アクセス対象となる物理アドレスを特定する。そして、メモリコントローラ130は、主記憶装置200が有する記憶領域のうち、特定した物理アドレスが示す記憶領域に格納されたデータを読出す。その後、メモリコントローラ130は、読み出したデータと仮想アドレスとを対応付けてキャッシュメモリ112に登録する。
In such a case, the
また、メモリコントローラ130は、キャッシュメモリ112に登録されたデータを主記憶装置200に書き戻す場合(ライトバック)は、ページテーブルを参照し、書き戻しの対象となる情報と対応付けられた仮想アドレスと対応する物理アドレスを特定する。そして、メモリコントローラ130は、主記憶装置200の記憶領域のうち、特定した物理アドレスが示す記憶領域に書き戻しの対象となる情報を格納する。
When the
FPGA150は、外部装置OAからの指示に従って、回路構成を変更可能な演算装置である。例えば、FPGA150は、デジタル回路要素とアナログ回路要素とを含む。例えば、FPGA150には、プログラム可能な論理コンポーネントである複数の論理ブロックを有し、論理ブロック間が再構成可能な配線により相互接続されている。そして、FPGA150は、外部装置OAから受付けたハードウェア記述言語(HDL:Hardware Description language)により、論理コンポーネント間の配線の接続を変更することで、各種の処理をハードウェアにより実現することができる。
The
ここで、FPGA150は、外部装置OAから受付けたHDLに従って回路を構成することで、以下の機能構成を有する。そして、FPGA150は、以下の機能構成を用いることで、外部装置OAから受付けたクエリ情報と類似する情報を検索対象情報の中から検索する処理を実行する。より具体的には、FPGA150は、以下の機能構成を用いることで、効率的な近傍検索の実行を実現する。
Here, the
例えば、FPGA150は、分割部161、生成部162、受付部163、特定部164、および検索制御部165を有する。
For example, the
分割部161は、グラフラプラシアンに基づいて、検索対象情報のグラフを複数の分割グラフに分割する。より具体的には、分割部161は、検索対象情報のグラフを、近傍検索の範囲として推定された領域ごとに分割した分割グラフに分割する。 The division unit 161 divides the graph of the search target information into a plurality of division graphs based on the graph Laplacian. More specifically, the division unit 161 divides the graph of the search target information into a division graph divided for each area estimated as the range of the neighborhood search.
例えば、分割部161は、入出力装置120を介して、検索処理の対象となる検索対象情報を受付ける。このような場合、分割部161は、受付けた検索対象情報を検索対象データベース201に登録する。なお、検索対象データベース201は、外部装置OAから入出力装置120およびメモリコントローラ130を介して直接主記憶装置200に登録されてもよい。
For example, the division unit 161 receives the search target information to be the target of the search process via the input /
また、分割部161は、検索対象情報と対応する複数のノードを、検索対象情報の類似性に応じてエッジにより連結されたグラフを外部装置OAから受付ける。すなわち、分割部161は、検索対象情報の類似性を示すグラフを受付ける。なお、このようなグラフは、例えば、近似k最近傍グラフ等、近傍検索に用いるグラフを生成する任意のグラフ生成技術により生成されたものであってよい。 Further, the division unit 161 receives a graph in which a plurality of nodes corresponding to the search target information are connected by edges according to the similarity of the search target information from the external device OA. That is, the division unit 161 accepts a graph showing the similarity of the search target information. It should be noted that such a graph may be generated by an arbitrary graph generation technique for generating a graph used for neighborhood search, such as an approximate k-nearest neighbor graph.
このような場合、分割部161は、グラフを複数のグラフに分割する。より具体的には、分割部161は、受付けたグラフを用いた近傍検索が行われる際に、近傍検索の対象となりうる範囲を推定し、推定した範囲ごとにグラフを分割した分割グラフを生成する。 In such a case, the division unit 161 divides the graph into a plurality of graphs. More specifically, the division unit 161 estimates the range that can be the target of the neighborhood search when the neighborhood search using the accepted graph is performed, and generates a division graph in which the graph is divided for each estimated range. ..
例えば、近傍検索に用いられるグラフは、各ノード間が、各ノードと対応する検索対象情報同士の類似性に応じて連結されている。このため、類似する複数の検索対象情報と対応する複数のノード間は、エッジにより接続されやすいと考えられる。一方、適切にグラフの分割を行うため、分割グラフ感のエッジの数がなるべく小さくなり、かつ、各分割グラフの大きさ(ノードの数)がなるべく等しくなるように、グラフを複数の分割グラフに分割するための様々な手法が提案されている。このようにグラフを複数の分割グラフに分割した場合は、相互に類似する検索対象情報が同じ分割グラフに含まれやすくなると考えられる。すると、分割グラフは、近傍検索を行う際の検索範囲となる検索対象情報を示すと考えられる。 For example, in the graph used for the neighborhood search, each node is connected according to the similarity between the search target information corresponding to each node. Therefore, it is considered that a plurality of similar search target information and a plurality of corresponding nodes are easily connected by an edge. On the other hand, in order to divide the graph appropriately, the graph is divided into a plurality of divided graphs so that the number of edges of the divided graph feeling is as small as possible and the size (number of nodes) of each divided graph is as equal as possible. Various methods for dividing have been proposed. When the graph is divided into a plurality of divided graphs in this way, it is considered that search target information similar to each other is likely to be included in the same divided graph. Then, the divided graph is considered to show the search target information that is the search range when the neighborhood search is performed.
そこで、分割部161は、グラフを複数のグラフに分割する。例えば、分割部161は、グラフ全体を示す隣接行列を生成し、生成した隣接行列に基づいたグラフラプラシアンを設定する。そして、分割部161は、グラフラプラシアンを用いて検索対象情報のグラフを、推定される検索範囲ごとに分割した分割グラフを生成する(ステップS1)。例えば、分割部161は、RatioCutと呼ばれる評価関数や、Ncut(normalized-cut)と呼ばれる評価関数を最小化するように、グラフを複数の分割グラフに分割する。すなわち、分割部161は、スペクトラルクラスタリングと呼ばれる手法により、グラフを分割する。 Therefore, the division unit 161 divides the graph into a plurality of graphs. For example, the division unit 161 generates an adjacency matrix showing the entire graph, and sets a graph Laplacian based on the generated adjacency matrix. Then, the division unit 161 generates a division graph in which the graph of the search target information is divided for each estimated search range using the graph Laplacian (step S1). For example, the division unit 161 divides the graph into a plurality of division graphs so as to minimize the evaluation function called RioCut and the evaluation function called Ncut (normalized-cut). That is, the division unit 161 divides the graph by a method called spectral clustering.
例えば、分割部161は、上述した非特許文献1に開示された手法を用いて、グラフを複数の分割グラフに分割する。より具体的な例を挙げると、分割部161は、グラフを、分割グラフG1〜G4の4つに分割する。この結果、分割部161は、あるクエリ情報を取得した際に、クエリ情報と類似するか否かを判断すべき検索対象情報の範囲を示す分割グラフを生成することができる。すなわち、分割部161は、近傍検索の範囲を示す分割グラフを生成することができる。
For example, the division unit 161 divides the graph into a plurality of division graphs by using the method disclosed in
生成部162は、各分割グラフが登録された主記憶装置の物理ページ番号と、検索処理に用いる仮想ページ番号とを対応付けたページテーブル141を生成する。例えば、生成部162は、検索処理を実行するアプリケーションが利用する記憶領域として、各分割グラフを登録するための記憶領域を設定するようにメモリコントローラ130に指示する。このような場合、メモリコントローラ130は、ページテーブル141を参照し、他のアプリケーションによって使用されていない仮想ページ番号と物理ページ番号とを特定し、特定した仮想ページ番号と物理ページ番号とを対応付けてページテーブル141に登録する。
The generation unit 162 generates a page table 141 in which the physical page number of the main storage device in which each divided graph is registered and the virtual page number used for the search process are associated with each other. For example, the generation unit 162 instructs the
また、生成部162は、メモリコントローラ130から割り当てられた仮想ページ番号を用いて、分割グラフを主記憶装置200に登録する。例えば、生成部162は、割り当てられた仮想ページ番号と分割グラフのデータとをメモリコントローラ130に提供し、仮想ページ番号と対応する物理ページ番号が示す記憶領域に、分割グラフのデータを登録させる。例えば、生成部162は、分割グラフG1を物理ページ番号が「ページm1」となる記憶領域に登録させ、分割グラフG2を物理ページ番号が「ページm2」となる記憶領域に登録させ、分割グラフG3を物理ページ番号が「ページm3」となる記憶領域に登録させ、分割グラフG4を物理ページ番号が「ページm4」となる記憶領域に登録させる。
Further, the generation unit 162 registers the division graph in the
なお、生成部162は、1つのページに1つの分割グラフのデータを登録する必要はない。例えば、生成部162は、1つの分割グラフのデータのデータ長によっては、1つの分割グラフのデータを複数のページに登録してもよい。このような処理の結果、生成部162は、各分割グラフが登録された主記憶装置200の記憶領域を示す物理アドレスと、各分割グラフが登録された主記憶装置200の記憶領域を示す際にプロセッサコア111が用いる仮想アドレスとを対応付けたページテーブル141を作成することができる。
The generation unit 162 does not need to register the data of one divided graph on one page. For example, the generation unit 162 may register the data of one division graph on a plurality of pages depending on the data length of the data of one division graph. As a result of such processing, when the generation unit 162 indicates the physical address indicating the storage area of the
そして、FPGA150は、分割グラフを用いた近傍検索を実行する。例えば、受付部163は、クエリ情報を受付ける。より具体的には、受付部163は、入出力装置120を介して、外部装置OAからクエリ情報を受付ける。このような場合、受付部163は、クエリ情報を特定部164に提供する。
Then, the
特定部164は、主記憶装置に設定された複数のページであって、検索対象情報のグラフを近傍検索の範囲として推定された領域ごとに分割した分割グラフが登録されたページのうち、クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する。すなわち、特定部164は、グラフラプラシアンに基づいて分割された分割グラフが登録されたページのうち、クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する。例えば、特定部164は、ページ情報として、クエリ情報と対応する分割グラフが登録されたページの仮想ページ番号を特定する。 The specific unit 164 is a plurality of pages set in the main storage device, and among the pages in which the divided graph in which the graph of the search target information is divided into the areas estimated as the range of the neighborhood search is registered, the query information. Identify the page information indicating the page in which the corresponding split graph is registered. That is, the specifying unit 164 specifies the page information indicating the page in which the divided graph corresponding to the query information is registered, among the pages in which the divided graph divided based on the graph Laplacian is registered. For example, the identification unit 164 specifies the virtual page number of the page in which the division graph corresponding to the query information is registered as the page information.
例えば、FPGA150においては、論理ブロックとして、FPGA150の入出力を制御する入出力ブロックと各種の演算処理を実行するロジックセルとが含まれる。このようなロジックセルは、LUT(Look Up Table)とレジスタとにより構成されており、入力されたデータを、LUTに基づいて変換したデータを出力する(例えば、非特許文献3参照)。そこで、FPGA150は、ロジックセルが有するLUTを書換えることで、入力されたクエリ情報と対応する分割グラフが登録されたページの仮想ページ番号を特定する。より具体的には、FPGA150は、クエリ情報のデータ列を入力した際に、検索すべき範囲の分割グラフが登録された仮想ページ番号を出力するように、LUTを書換えることで、特定部164を実現する。
For example, in the
例えば、生成部162は、分割グラフごとに、その分割グラフを用いて近傍検索を行うクエリ情報(以下、「対応クエリ情報」と記載する。)の範囲を特定する。例えば、生成部162は、に含まれるノードと対応する検索対象情報の範囲を、対応クエリ情報の範囲としてもよい。また、生成部162は、分割グラフに含まれるノードからルートノードとなるノードを選択し、選択したノードと対応する検索対象情報との類似度が所定の範囲に収まる対応クエリ情報の範囲を特定してもよい。 For example, the generation unit 162 specifies the range of query information (hereinafter, referred to as “corresponding query information”) for performing a neighborhood search using the divided graph for each divided graph. For example, the generation unit 162 may set the range of the search target information corresponding to the node included in the node to the range of the corresponding query information. Further, the generation unit 162 selects a node to be the root node from the nodes included in the divided graph, and specifies the range of the corresponding query information in which the similarity between the selected node and the corresponding search target information falls within a predetermined range. You may.
そして、生成部162は、ある分割グラフの対応クエリ情報の範囲が入力された際に、その分割グラフが登録された記憶領域の仮想ページ番号を出力するLUTを生成する。すなわち、生成部162は、クエリ情報のデータを、そのクエリ情報と類似する検索対象情報と対応するノードを含む分割グラフが登録された記憶領域を示す仮想ページ番号へとデコードするためのLUTを生成する。そして、生成部162は、特定部164として動作するロジックセルに設定する。このような処理の結果、特定部164は、入力されたクエリ情報と対応する分割グラフの仮想ページ番号を特定することができる。 Then, when the range of the corresponding query information of a certain divided graph is input, the generation unit 162 generates a LUT that outputs the virtual page number of the storage area in which the divided graph is registered. That is, the generation unit 162 generates a LUT for decoding the query information data into a virtual page number indicating a storage area in which a divided graph including a search target information similar to the query information and a corresponding node is registered. do. Then, the generation unit 162 is set in the logic cell that operates as the specific unit 164. As a result of such processing, the identification unit 164 can specify the virtual page number of the divided graph corresponding to the input query information.
続いて、検索制御部165は、プロセッサコア111を検索処理を実行する検索部として動作させることで、クエリ情報と類似する検索対象情報を検索させる。例えば、検索制御部165は、特定部164により特定された仮想ページ番号をプロセッサコア111に提供し、仮想ページ番号が示す記憶領域に登録された分割グラフを読み出させる。そして、検索制御部165は、分割グラフを用いて、クエリ情報と類似する検索対象情報をプロセッサコア111に検索させる。
Subsequently, the
例えば、検索制御部165は、特定部164により特定された仮想ページ番号をプロセッサコア111に提供する。このような場合、プロセッサコア111は、仮想ページ番号をメモリコントローラ130に提供する。すると、メモリコントローラ130は、仮想ページ番号と対応付けられた物理ページ番号をページテーブル141から特定し、特定した物理ページ番号が示す記憶領域に登録された分割グラフを読み出す。そして、メモリコントローラ130は、読み出した分割グラフをキャッシュメモリ112に登録する。
For example, the
また、検索制御部165は、クエリ情報をプロセッサコア111に提供する。なお、検索制御部165は、クエリ情報をキャッシュメモリ112を介してプロセッサコア111に提供してもよい。このような場合、プロセッサコア111は、キャッシュメモリ112から分割グラフを読出し、読み出した分割グラフに含まれるノードと対応する検索対象情報のデータを検索対象データベース201から読み出す。そして、プロセッサコア111は、読み出したデータのうち、クエリ情報と類似するデータを特定し、特定したデータを、入出力装置120を介して、外部装置OAへと送信する。
Further, the
このように、演算装置100は、プログラムにより実行する処理を設定可能な第1演算装置であるFPGA150と、所定の命令セットを実行する第2演算装置であるプロセッサ110とを有する。そして、FPGA150は、受付部163および特定部164として動作し、プロセッサ110は、検索処理を実行する検索部として動作する。ここで、FPGA150は、検索対象情報の類似性を示すグラフを、近傍検索の範囲として推定されうる複数の分割グラフに分割し、分割グラフをそれぞれ個別のページに登録する。そして、FPGA150は、クエリ情報と対応する分割グラフを特定し、特定した分割グラフが登録されたページの情報を読み出す。
As described above, the arithmetic unit 100 includes an
このような処理の結果、演算装置100は、全検索対象情報のうち、検索範囲とすべきであると推定される検索対象情報を示す分割グラフを用いて、近傍検索を実行することができる。この結果、演算装置100は、検索処理を効率化することができる。 As a result of such processing, the arithmetic unit 100 can execute the neighborhood search by using the divided graph showing the search target information estimated to be the search range among all the search target information. As a result, the arithmetic unit 100 can improve the efficiency of the search process.
〔2.演算装置が実行する処理の流れの一例〕
次に、図5を用いて、演算装置100が実行する演算処理の流れの一例について説明する。図5は、実施形態に係る判定処理の流れの一例を説明するフローチャートである。まず、演算装置100は、検索対象情報のグラフを取得する(ステップS101)。このような場合、演算装置100は、近傍検索の範囲を推定し、推定した領域ごとに分割した分割グラフを生成する(ステップS102)。そして、演算装置100は、主記憶装置200の各ページに分割グラフを登録する(ステップS103)。
[2. An example of the flow of processing executed by the arithmetic unit]
Next, an example of the flow of arithmetic processing executed by the arithmetic unit 100 will be described with reference to FIG. FIG. 5 is a flowchart illustrating an example of the flow of the determination process according to the embodiment. First, the arithmetic unit 100 acquires a graph of search target information (step S101). In such a case, the arithmetic unit 100 estimates the range of the neighborhood search and generates a divided graph divided for each estimated area (step S102). Then, the arithmetic unit 100 registers the divided graph on each page of the main storage device 200 (step S103).
また、演算装置100は、主記憶装置200の物理ページ番号と、演算処理に用いる仮想ページ番号とを対応付けたページテーブル141を生成する(ステップS104)。そして、演算装置100は、クエリ情報を受付けたか否かを判定し(ステップS105)、受付けていない場合は(ステップS105:No)、クエリ情報を受付けるまで待機する。また、演算装置100は、クエリ情報を受付けた場合は(ステップS105:Yes)、クエリ情報に対応する分割グラフを特定する(ステップS106)。例えば、演算装置100は、各分割グラフが登録された記憶領域を示す仮想ページ番号と、各分割グラフが示す検索対象情報を検索の対象とすべきクエリ情報の範囲とを対応付けたLUTを用いて、クエリ情報から、対応する仮想ページ番号を特定する。
Further, the arithmetic unit 100 generates a page table 141 in which the physical page number of the
また、演算装置100は、ページテーブルを用いて、対応する分割グラフを読み出す(ステップS107)。そして、演算装置100は、読み出した分割グラフをプロセッサのキャッシュメモリに登録し(ステップS108)、近傍検索処理を実行して(ステップS109)、処理を終了する。 Further, the arithmetic unit 100 reads out the corresponding divided graph using the page table (step S107). Then, the arithmetic unit 100 registers the read division graph in the cache memory of the processor (step S108), executes the neighborhood search process (step S109), and ends the process.
〔3.変形例〕
上記では、演算装置10による検索処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、演算装置10が実行する検索処理のバリエーションについて説明する。
[3. Modification example]
In the above, an example of the search process by the arithmetic unit 10 has been described. However, the embodiment is not limited to this. Hereinafter, variations of the search process executed by the arithmetic unit 10 will be described.
〔3−1.装置構成〕
上述した例では、FPGA150を含む演算装置100により実行される検索処理の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、上述した検索処理は、FPGA150以外にも、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって実現されてもよい。また、上述した検索処理は、ASIC(Application Specific Integrated Circuit)等の集積回路により実現されてもよい。
[3-1. Device configuration〕
In the above-mentioned example, an example of the search process executed by the arithmetic unit 100 including the
すなわち、上述した検索処理は、プログラム可能な論理回路を有さない演算処理装置であって、ページング方式を用いる各種の演算処理装置により実現されてもよい。このような演算処理装置は、例えば、検索対象情報の類似性を示すグラフを、検索対象として推定されうる範囲ごとに分割したグラフを生成し、生成したグラフをそれぞれ個別のページに登録する。このような処理の結果、演算処理装置は、検索対象とする範囲を適切に限定するとともに、検索対象とする範囲の特定を高速化することができる。 That is, the above-mentioned search process is an arithmetic processing unit that does not have a programmable logic circuit, and may be realized by various arithmetic processing units that use a paging method. Such an arithmetic processing unit generates, for example, a graph showing the similarity of search target information by dividing it into a range that can be estimated as a search target, and registers the generated graphs on individual pages. As a result of such processing, the arithmetic processing unit can appropriately limit the range to be searched and speed up the identification of the range to be searched.
また、演算装置100は、分割部161を有さず、グラフの分割を行わずともよい。例えば、演算装置100は、グラフラプラシアン等を用いて分割が行われた分割グラフを外部装置OAから受付けた場合、受付けた分割グラフを主記憶装置200の各ページに登録し、このような分割グラフを用いた検索を行ってもよい。
Further, the arithmetic unit 100 does not have the division unit 161 and may not divide the graph. For example, when the arithmetic unit 100 receives a divided graph that has been divided using a graph Laplacian or the like from the external device OA, the arithmetic unit 100 registers the received divided graph in each page of the
〔3−2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[3-2. others〕
Further, among the processes described in the above-described embodiment, all or a part of the processes described as being automatically performed can be manually performed, or the processes described as being manually performed can be performed. All or part of it can be done automatically by a known method. In addition, the processing procedure, specific name, and information including various data and parameters shown in the above text and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the illustrated information.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of the device is functionally or physically dispersed / physically distributed in any unit according to various loads and usage conditions. Can be integrated and configured.
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 In addition, the above-described embodiments can be appropriately combined as long as the processing contents do not contradict each other.
〔4.効果〕
上述したように、演算装置100は、クエリ情報を受付けると、主記憶装置200に設定された複数のページであって、検索対象情報のグラフを近傍検索の範囲として推定された領域ごとに分割した分割グラフが登録されたページのうち、クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する。そして、演算装置100は、特定されたページ情報が示すページに登録された分割グラフを用いて、クエリ情報と類似する情報を検索する。このため、演算装置100は、検索処理における効率を改善することができる。
[4. effect〕
As described above, when the arithmetic unit 100 receives the query information, the arithmetic unit 100 divides the graph of the search target information into a plurality of pages set in the
また、演算装置100は、グラフラプラシアンに基づいて分割された分割グラフが登録されたページのうち、クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する。このため、演算装置100は、クエリ情報との比較対象として適切な検索対象情報の範囲を示す分割グラフを用いて、検索処理を実行することができる。 Further, the arithmetic unit 100 specifies the page information indicating the page in which the division graph corresponding to the query information is registered, among the pages in which the division graph divided based on the graph Laplacian is registered. Therefore, the arithmetic unit 100 can execute the search process by using the divided graph showing the range of the search target information suitable as the comparison target with the query information.
また、演算装置100は、プログラムにより実行する処理を設定可能な第1演算装置であるFPGA150と、所定の命令セットを実行する第2演算装置であるプロセッサ110とを有し、第1演算装置は、受付部163と、特定部164として動作し、第2演算装置は、検索処理を実行する検索部として動作する。このため、演算装置100は、検索処理における効率を改善することができる。
Further, the arithmetic unit 100 includes an
また、演算装置100は、グラフラプラシアンに基づいて、検索対象情報のグラフを複数の分割グラフに分割する。また、演算装置100は、分割された各分割グラフが登録された主記憶装置200の物理ページ番号と、検索処理に用いる仮想ページ番号とを対応付けたページテーブル141を生成する。そして、演算装置100は、クエリ情報と対応する分割グラフが登録されたページの仮想ページ番号を特定し、ページテーブル141を用いて、特定された仮想ページ番号と対応付けられた物理ページ番号を特定し、特定した物理ページ番号が示すページから読み出した分割グラフを用いて、クエリ情報と類似する情報を検索する。このため、演算装置100は、検索処理における効率を改善することができる。
Further, the arithmetic unit 100 divides the graph of the search target information into a plurality of divided graphs based on the graph Laplacian. Further, the arithmetic unit 100 generates a page table 141 in which the physical page number of the
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 Although some of the embodiments of the present application have been described in detail with reference to the drawings, these are examples, and various modifications are made based on the knowledge of those skilled in the art, including the embodiments described in the disclosure column of the invention. It is possible to practice the present invention in other improved forms.
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。 Further, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the generation unit can be read as a generation means or a generation circuit.
100 演算装置
110 プロセッサ
111 プロセッサコア
112 キャッシュメモリ
120 入出力装置
130 メモリコントローラ
140 記憶部
141 ページテーブル
150 FPGA
161 分割部
162 生成部
163 受付部
164 特定部
165 検索制御部
200 主記憶装置
201 検索対象データベース
G1〜G4 分割グラフ
OA 外部装置
100 Arithmetic logic unit 110 Processor 111
161 Division unit 162 Generation unit 163 Reception unit 164
Claims (5)
主記憶装置に設定された複数のページであって、検索対象情報のグラフを近傍検索の範囲として推定された領域ごとに分割した分割グラフが登録されたページのうち、前記クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する特定部と、
前記特定部により特定されたページ情報が示すページに登録された前記分割グラフを用いて、前記クエリ情報と類似する情報を検索する検索部と
を有することを特徴とする演算装置。 The reception department that accepts query information and
Of the pages in which the divided graphs are registered, which are a plurality of pages set in the main memory and the graph of the search target information is divided for each area estimated as the range of the neighborhood search, the divided pages corresponding to the query information. A specific part that identifies the page information indicating the page where the graph is registered,
An arithmetic unit including a search unit that searches for information similar to the query information by using the divided graph registered on the page indicated by the page information specified by the specific unit.
ことを特徴とする請求項1に記載の演算装置。 The specific unit is characterized in that, among the pages in which the divided graph divided based on the graph Laplacian is registered, the page information indicating the page in which the divided graph corresponding to the query information is registered is specified. The arithmetic unit according to 1.
前記第1演算装置は、前記受付部と、前記特定部として動作し、
前記第2演算装置は、前記検索部として動作する
ことを特徴とする請求項1または2に記載の演算装置。 The arithmetic unit includes a first arithmetic unit that can set a process to be executed by a program and a second arithmetic unit that executes a predetermined instruction set.
The first arithmetic unit operates as the reception unit and the specific unit, and operates as the reception unit.
The arithmetic unit according to claim 1 or 2, wherein the second arithmetic unit operates as the search unit.
前記分割部により分割された各分割グラフが登録された前記主記憶装置の物理ページ番号と、前記検索部が検索処理に用いる仮想ページ番号とを対応付けたページテーブルを生成する生成部と
を有し、
前記特定部は、前記ページ情報として、前記クエリ情報と対応する分割グラフが登録されたページの仮想ページ番号を特定し、
前記検索部は、前記ページテーブルを用いて、前記特定部により特定された仮想ページ番号と対応付けられた物理ページ番号を特定し、特定した物理ページ番号が示すページから読み出した前記分割グラフを用いて、前記クエリ情報と類似する情報を検索する
ことを特徴とする請求項1〜3のうちいずれか1つに記載の演算装置。 A division unit that divides the graph of the search target information into a plurality of division graphs based on the graph Laplacian, and
It has a generation unit that generates a page table in which the physical page number of the main storage device in which each division graph divided by the division unit is registered and the virtual page number used by the search unit for search processing are associated with each other. death,
The specific unit specifies the virtual page number of the page in which the division graph corresponding to the query information is registered as the page information.
The search unit uses the page table to specify the physical page number associated with the virtual page number specified by the specific unit, and uses the divided graph read from the page indicated by the specified physical page number. The arithmetic unit according to any one of claims 1 to 3, further comprising searching for information similar to the query information.
クエリ情報を受付ける受付工程と、
主記憶装置に設定された複数のページであって、検索対象情報のグラフを近傍検索の範囲として推定された領域ごとに分割した分割グラフが登録されたページのうち、前記クエリ情報と対応する分割グラフが登録されたページを示すページ情報を特定する特定工程と、
前記特定工程により特定されたページ情報が示すページに登録された前記分割グラフを用いて、前記クエリ情報と類似する情報を検索する検索工程と
を含むことを特徴とする検索方法。 It is a search method executed by the arithmetic unit.
The reception process for accepting query information and
Of the pages in which the divided graphs are registered, which are a plurality of pages set in the main memory and the graph of the search target information is divided for each area estimated as the range of the neighborhood search, the divided pages corresponding to the query information. A specific process to identify page information indicating the page where the graph is registered, and
A search method comprising a search step of searching for information similar to the query information by using the divided graph registered on the page indicated by the page information specified by the specific step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018096450A JP6956043B2 (en) | 2018-05-18 | 2018-05-18 | Arithmetic logic unit and search method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018096450A JP6956043B2 (en) | 2018-05-18 | 2018-05-18 | Arithmetic logic unit and search method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019200724A JP2019200724A (en) | 2019-11-21 |
JP6956043B2 true JP6956043B2 (en) | 2021-10-27 |
Family
ID=68612296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018096450A Active JP6956043B2 (en) | 2018-05-18 | 2018-05-18 | Arithmetic logic unit and search method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6956043B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7203137B2 (en) * | 2021-03-18 | 2023-01-12 | ヤフー株式会社 | Information processing device, information processing method, and information processing program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5407169B2 (en) * | 2008-04-11 | 2014-02-05 | 富士通株式会社 | Clustering program, search program, clustering method, search method, clustering device, and search device |
CN102693246B (en) * | 2011-03-22 | 2015-03-11 | 日电(中国)有限公司 | Method and system for obtaining information from dataset |
JP6523799B2 (en) * | 2015-06-05 | 2019-06-05 | 株式会社日立システムズ | Information analysis system, information analysis method |
-
2018
- 2018-05-18 JP JP2018096450A patent/JP6956043B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019200724A (en) | 2019-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157592B2 (en) | Hardware implementation of convolutional layer of deep neural network | |
JP5763783B2 (en) | Method and apparatus for compiling regular expressions | |
Moussalli et al. | Fast and flexible conversion of geohash codes to and from latitude/longitude coordinates | |
JP2010055608A (en) | Method for caching internet search result, storage medium and system | |
US8631378B2 (en) | Implementing enhanced clock tree distributions to decouple across N-level hierarchical entities | |
JP6956043B2 (en) | Arithmetic logic unit and search method | |
CN114416310A (en) | Multiprocessor load balancing method, computing device and storage medium | |
US10049164B2 (en) | Multidimensional-range search apparatus and multidimensional-range search method | |
JP6977565B2 (en) | Search result output program, search result output device and search result output method | |
JP6705764B2 (en) | Generation device, generation method, and generation program | |
WO2020133391A1 (en) | Systems and methods for efficiently scanning a database using hardware acceleration | |
WO2015172718A1 (en) | Method and apparatus for multiple accesses in memory and storage system | |
JP2021022370A (en) | Method executed by computing device, apparatus, device and computer-readable storage medium | |
US7363397B2 (en) | System and method for DMA controller with multi-dimensional line-walking functionality | |
JP2000330835A (en) | Storage device and data storage structure | |
JP7278716B2 (en) | Adjustment device, adjustment method and adjustment program | |
JP6305644B2 (en) | Architecture generation apparatus and architecture generation program | |
US20230229592A1 (en) | Processing work items in processing logic | |
US20240037037A1 (en) | Software Assisted Hardware Offloading Cache Using FPGA | |
US20230280980A1 (en) | Find first function | |
WO2014061305A1 (en) | Entry insertion device, method, and program | |
Trinh et al. | A novel algorithmic Data-Collision SDRAM-based TCAM architecture on FPGA | |
US20210365370A1 (en) | Memory for storing data blocks | |
JP6266183B2 (en) | Circuit design support device and circuit design support program | |
JP2019204433A (en) | Calculation system and calculation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20191101 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20191108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210827 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6956043 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |