迷惑メールを見分ける賢いチップ

G. スティックス(SCIENTIFIC AMERICAN 編集部)
200605

日経サイエンス 2006年5月号

6ページ
( 1.1MB )
コンテンツ価格: 611

コンピューター業界は1?2年おきに高速なプロセッサーを世に送り出すことで,自らが犯した罪を贖い,寿命をはるかに超えて生き長らえてきた。なかでも,アプリケーションの肥大化と効率の悪さは重罪だ。だが,その手も近年では通用しにくくなってきた。バージョンが新しくなるにつれ,プロセッサーの消費電力は急増し,コンピューターは暖房と化している。このため,インテルをはじめハードウエアメーカーは,複数の低速プロセッサーを同時に動作させるコンピューターを開発し,消費電力や発熱の問題を打開しようとしている。

ところが,こうしたマルチプロセッサーを使うには難題もある。1つは,複数個あるプロセッサーにソフトウエアによって処理を割り振らなければならず,プログラマーの負担が増えてしまうこと。もう1つは,急増しているネットワーク関連のアプリケーションソフトは並列処理に不向きなことだ。たとえば,XML(拡張マークアップ言語)で記述されたウェブ文書の解釈やウイルススキャンなどだ。

では,電子メールに「lottery(宝くじ)」や「Viagra(バイアグラ)」といった迷惑メール(スパム)を示す単語が含まれているかどうかを調べたいとしよう。この場合,「lottery」や「Viagra」などの単語の存在だけでなく,その前後の単語も調べる必要がある。文書に「lottery」があっても,その後に「payout(支払い)」があるかないかによって判定が異なるのだ。こうした一連の処理を複数のプロセッサーに割り振ると,自ら災いを招く結果になってしまう。

これに代わる技術として,専用の機能を持った補助プロセッサー(コプロセッサー)が使われ始めている。

従来,グラフィックスは専用プロセッサーで処理されてきた。この方式にならい,オペレーティングシステムの主要機能はメインプロセッサーが担い,スパムやウイルスの検出,XMLの処理は専用のコプロセッサーで行おうというのだ。いわゆる「侵入検知アクセラレーターエンジン」はその1つで,増え続ける中央処理装置(CPU)の負荷の一部を肩代わりしている。一部の学術機関や企業の研究所では,ネットワーク上を流れるさまざまなデータに対応できるコプロセッサーを目指し,先進的な研究が進められてきた。そして,再プログラムが容易で,ファイアウォールやファイル圧縮などさまざまなアプリケーションを扱える汎用データ処理プロセッサー(ストリームプロセッサー)が誕生した。