第 2 章 データベースプロセッサ 7
2.6 データベースプロセッサの応用システム事例
以下に,データーベースプロセッサの1ビット演算とインデックス検索の考えを実装したFPGA の応用事例を紹介する[31].この応用例はビットマップインデックス(BI)の作成を目的としたシ ステムである.図2.9はビットマップインデックスクリエータ(BIC)の構成例である.
ビットマップインデックスを利用すると効率の良い情報検索処理が出来る事が知られている.し かしながら一般的なデータをビットマップインデックスに変換する処理はCPUやGPUに大きな 負担がかかる.ここに紹介するビットマップインデックスクリエータは,通常の記憶方式でメモリ に記憶されている行方向データを効率的にビットマップインデックスに変換するシステムである.
図の上方は,外部メモリ構成を示している.左サイドのインストラクションメモリ(IM)には,
ビットマップインデックスを作成するためのインストラクション(命令)が記憶されている.中 央部には,年齢/住所/業務からなる属性データがデータテーブルとして記憶されている.右サイ ドには,属性データテーブルがビットマップインデックスとして変換されたデータが記憶されて いる.下方は,FPGAで実装したビットマップインデックスクリエータの構成を示すものである.
ビットマップインデックスクリエータは外部メモリとDMAで上記外部メモリとデータの授受を行 う.ビットマップインデックスクリエータのインストラクションメモリは,32K 16ビットのビッ
トマップインデックスが記憶された連想メモリ(CAM:Content Addressable Memory)にキーと なるクエリを出力しCAMに入力する.同時にインストラクションメモリは,論理和や論理否定 などの演算条件を出力しクエリロジックアレー(QLA)に入力する.CAMは,インストラクショ ンメモリのクエリからのキー条件と一致する32Kビットのデータを出力しクエリロジックアレー に代入する.クエリロジックアレーは,CAMから入力された32Kビットのデータとインストラ クションメモリから与えられた演算条件に基づき演算を行い以上の結果をDMAを通じて外部メ モリのビットマップインデックスに記憶する.
図 2.9: ビットマップインデックスクリエータ(BIC)の構成例.
図2.10はクエリロジックアレー(QLA)の構成例である.このクエリロジックアレーは先に説 明のビットマップインデックス検索の演算方法を利用したもので,本例では32Kビットのデータ の論理和もしくは論理否定の並列演算を実行する.
図 2.10: クエリロジックアレー(QLA)の構成例.
表2.2はBIC32K16システムのFPGA実装結果を示す.
表 2.2: BIC32K16システムのFPGA実装結果.
R-CAM size(N ×M) 32,768×16bit
ALMs 43,868(25%)
Lookup table 76,361
Registers 43,101
Memory (Mbits) 16.14(73%) Frequency (Mhz)) 129.5
表2.3はBICシステムの他のプラットフォームとの比較を示す.
表 2.3: BIC32K16システムと他のプラットフォームとの比較.
Hadware Power(W) Througput(MB/s)
Ref.[107] 20,000 cores per 95,900 510
834 Intel CPUs
Ref.[108] 1,344 cores per 170 0.45
1 NVIDIA GPU
BIC32K16(IS2) Intel Arria V 18.2 1.44
BIC32K16(IS1) Intel Arria V 18.2 1.46
表に示すBICシステムの演算クロックは129.5Mhzであり,IS2はCAMに与える検索キーが128 種類,IS1は検索キーが1種類のシステムである.CPUによるシステム[107]の単位電力当たりのイ ンデックス作成スループットは0.00518GB/sであり,GPUによるシステム[108]の単位電力当た りのスループットは0.0026GB/sである.一方,提案システムのBIC32K16(IS2)並びに(IS1) においては,単位電力当たりのスループットは0.079GB/s並びに0.082GB/sである.この表で分 かる通り本BICシステムはベンチマークした他の研究よりシステムの電力性能が高い事が理解出 来る.