• 検索結果がありません。

システム拡張を容易化するプログラマブルエンジン

ドキュメント内 電気通信大学 (ページ 67-79)

本章では,前章で提案したハードウェア階層型Aho-Corasickマシンが持つシ ステム拡張の問題を解決するために,プログラマブル階層型Aho-Corasickマシ ンを提案し,機器やシステムの製造・設置後においてもインタフェース変更を 可能とする技術について説明する.

4.1  ハードウェア高速処理エンジンの課題

前章では,Webサービスで用いられるメッセージを高速に処理することが可 能な専用の処理モジュールとして,ハードウェア階層型Aho-Corasickマシンを 提案し,その性能やリソースに関する評価の結果を示した.特に,メッセージ 処理を行うにあたり,ハードウェアにマッピングされた専用エンジンを用いる ことで,大きな性能向上とリソース削減が見込めることをシミュレーションに より確認した.

一方,このような機能のハードウェア化によって,一般的には性能やリソー ス上の利点が得られるものの,ソフトウェア処理と異なり,いったん仕様に基 づき機器等を作成した後には,簡単にシステムの拡張や変更(以下,システム リプレース)を行うことができないといった問題が存在する.

そもそも本研究が対象とする産業プラントや環境計測といった分野で利用さ れるシステムは,機器自体がリモートな環境に設置されることが多いため,簡 単に人がアクセスすることができないケースが多々ある.このようなケースに 対して,ネットワークを介してシステムリプレースが行えると利便性が向上す る.しかし,一般には,このようなシステムリプレースはソフトウェア(ファ ームウェア)の部分だけに限られることが多い.前章で提案したハードウェア エンジンの場合,ソフトウェアと違ってシステムリプレースが容易ではないた め,本技術の実適用にあたって大きな障害となりうる.

(a)

SOAP 専用インタフェース

または JTAGなどを使用

HWシステム変更

network

HWシステム変更

Webサービスのみを使用

(b) (a)

SOAP 専用インタフェース

または JTAGなどを使用

HWシステム変更

network

HWシステム変更

Webサービスのみを使用

(b)  

図4.1  Webサービス準拠のシステムリプレース (a)従来方式,(b)本方式.

そこで,本章では,このようなシステムリプレースに伴う問題点を解決する ための技術を提案し,その評価を行う.

4.2  Webサービス準拠のシステムリプレース

ハードウェア化されたメッセージ処理エンジンにとって,システムリプレー スを容易化することが重要であるのは上述したとおりである.さらに望ましい のは,システムリプレース自体をWebサービスというフレームワークの中だけ で閉じて行えることである.

一般にハードウェアの変更には,しばしば機器固有の専用インタフェース[1]

が用いられる.あるいは,標準ではあっても,JTAG(IEEE 1149.1)[2]といっ た低レベルのインタフェースが利用されることが多い.しかしこれでは,機器 が設置される場所に人間がアクセスし,専用の書き換え環境(ツール)を使っ てシステムリプレースを行わなければならなくなってしまう(図4.1(a)).こ

れは,本研究が想定するようなアプリケーションでは,人的,コスト的に大き な負担となる.

これに対して,SOAP のメッセージに則った上でシステム書き換えを行うこ とができれば,遠隔地からでも機器に対して通常の機能利用時と同様にアクセ スし,機能の拡張やメンテナンスが行えることになる.これによって,上述の 問題を解決することも可能となる(図4.1(b)).

このような目的から,本研究では,Webサービス以外の特別なインタフェー スを利用することなく,機器のシステムリプレースが行えるような仕組みを考 案した.これによって従来から存在するWebサービスを利用するシステムとの 相互運用性も高まると期待できる.

4.3  プログラマブビリティ付加に対するアプローチ

そもそも,ハードウェア階層型Aho-Corasickマシンは,HTTPやSOAPと いった様々なプロトコルに対応できるようなシステム向けの技術として開発し たものであり,特定のプロトコル専用に処理を行うようなシステム向けに開発 したものではない.このことに関係して,システムリプレースの問題に対する 解決策はその構造に見出される.

前章で示したハードウェア階層型Aho-Corasickマシンの構造は,機能が固定 されたハードウェアであるからシステムリプレースが行えない.しかし,その 構造の内部を見ると一つの特徴がある.それは,同マシンの振る舞いを決定し ているのは,状態遷移情報を格納している3ファンクションテーブルであると いうことである.これに着目すれば,同テーブルの内容を随時書き換えできる ようにすれば,マシン自体の振る舞いを後から変更することができるようにな ることを意味する.

以下では,このような3ファンクションテーブルの内容を機器製造後でも柔 軟に書き換えすることができるようなハードウェアエンジンである“プログラ

STL 3FT

入力 入力セレクタ ACMt

テーブル コントローラ 1階層Aho-Corasickマシン

停止/再開 書換え

切替え

アドレス/ データ/制御

出力

STL 3FT

入力 入力セレクタ ACMt

テーブル コントローラ 1階層Aho-Corasickマシン

停止/再開 書換え

切替え

アドレス/ データ/制御

出力

  図4.2  1 階層プログラマブル Aho-Corasick マシンの基本構造  マブル階層型Aho-Corasickマシン”について,その構造と動作について示す.

4.4  プログラマブルAho-Corasickマシンの基本構造

階層型のプログラマブルAho-Corasickマシンの構造を示す前に,まず,一階 層のプログラマブル Aho-Corasick マシンを示す.図4.2は,システムリプレ ース機能を付加したマシン構造を示している.プログラマブルでないハードウ

ェアAho-Corasickマシンは,3ファンクションテーブルが予め所与のもの(既

に 書 き 込 ま れ た 状 態 ) と し て 存 在 す る . こ れ に 対 し , プ ロ グ ラ マ ブ ル

Aho-Corasickマシンでは,テーブルの内容をネットワークを介して外部から書

き換えることができるようにする.

このような動作を可能とするために,前章で示したAho-Corasickマシン(以 下,メインACM)に対し,新たに入力セレクタブロックとテーブル書き換え用 のコントローラブロック(テーブルコントローラ)を付加する.入力セレクタ ブロックを付加する理由は,通常動作時とシステムリプレース時とで入力の流

し先を変更するためである.通常動作時は,入力は一般のメッセージであり,

一方システムリプレース時は,入力は3ファンクションテーブルの内容になる.

これら 2 種類のそれぞれに応じて流し先が変更される.また,テーブル書き換 え用のコントローラが付加されることにより,従来は機器/システム製造時に固 定的に書き込まれたデータを,製造後でも書き換え可能なものとする.

本方式の特徴として,テーブル書き換えメッセージ(開始と終了)を検出す るために,一般のメッセージとは独立したテーブル書き換えメッセージ専用の Aho-Corasick マシン(以下,ACMt)が付加される.テーブル書き換え開始メ ッセージが ACMtによって検知されると,入力セレクタブロックが入力の流し 先をテーブル側へと切り替える.またテーブル書き換え終了メッセージが検知 されると,同セレクタブロックが入力の流し先を再びメインACM側へ戻す.

これらのテーブル書き換え時の手順を整理すると以下のようになる.

S1)テーブル書き換え開始メッセージの検知(ACMtによる検知)

S2)動作中のメインACMを停止

S3)入力からの信号をテーブル側へスイッチ S4)テーブルの書き換え

S5)テーブル書き換え終了メッセージの検知(ACMtによる検知)

S6)入力からの信号をメインACM側へスイッチ S7)メインACMを動作再開

なお,テーブル書き換えメッセージ専用のAho-Corasickマシンを用意せずに,

メインの Aho-Corasick マシン自体が自分自身を書き換えるような構成も考え

られるが,本研究では,そのような方式を用いていない.その理由は,自分自 身を書き換える方式では,何らかの障害によっていったん書き換えに失敗する

と,もはやそれ以降の機器動作が正常に動くことが期待できなくなるため,二 度と書き換えが行えなくなる可能性があるからである.信頼性を保つために,

テーブル書き換えメッセージ専用の Aho-Corasick マシンは固定にしておくこ とによって,不測の事態にメインのAho-Corasickマシン書き換えが失敗しても 再度書き換えることで機器を正常に動作させられるようになる.

4.5  プログラマブルAho-Corasickマシンの階層化

次に前節で示した1階層のプログラマブル Aho-Corasick マシンを多階層の

Aho-Corascik マシンへと拡張する.図4.3に示すように,多階層であっても

Aho-Corasickマシンの構造自体は1階層の構造と同様であり,マシンの状態遷

移を決定する 3 ファンクションテーブルが各階層に存在する点が異なるだけで ある.したがって,いずれの階層のAho-Corasickマシンにおいても,それぞれ の3ファンクションテーブルの内容を書き換えるよう制御できればよい.

このような目的のため,各層の3ファンクションテーブルは異なるアドレス 空間に割りあてられている.テーブルの書き換えを制御するテーブルコントロ ーラは,書き換え指定のあった層に対応するアドレス空間に対してアクセスを 行い,データの内容を書き換える.このような操作のため,SOAP によるメッ セージを用いてテーブル書き換えを行う場合に,そのRPCの引数でどの階層の テーブルデータであるかを示すことで,任意の層のデータを書き換えることが 可能となる.

ドキュメント内 電気通信大学 (ページ 67-79)