...

柔軟かつ適応的な通信処理システム LSI 設計に関する研究(継続)

by user

on
Category: Documents
6

views

Report

Comments

Transcript

柔軟かつ適応的な通信処理システム LSI 設計に関する研究(継続)
05-01038
柔軟かつ適応的な通信処理システム LSI 設計に関する研究(継続)
戸 川
望
早稲田大学理工学部助教授
1 はじめに
近年,ネットワークの発達は著しく,ネットワークの広帯域化・高度化が進んでいる.ネットワークを流
れる多大なパケットを処理できるだけではなく,単純なスイッチから認証・暗号化処理を行う IPsec など多
様なアプリケーションにも対応できるネットワーク機器が必要である.そのため,対象となるアプリケーシ
ョンに対応し,要求される性能を満たしたネットワーク機器を短期間で開発する必要がある.
ネットワークプロセッサは,ソフトウェアの柔軟性と,ネットワーク処理に最適化されたアーキテクチャ
を持つ.
多くのネットワークプロセッサに共通する特徴として,複数の処理エンジンにより並列処理を行い,
特定の処理を高速に行う専用ハードウェアを持つことがあげられる.また,処理エンジンはマルチスレッド
に対応した単純な RISC プロセッサであることが多い.加えて,近年のネットワークプロセッサでは,ネット
ワーク処理を部分処理にモジュール化し,組み合わせることで連携処理を行っている.連携処理では,部分
処理を割り当てた複数の処理エンジンを用いて,ネットワーク処理をパイプライン処理させる.連携処理を
行わせることにより,ボトルネックとなる処理を分散させ共有リソースの競合を軽減することで,並列処理
を行うネットワークプロセッサの処理性能を向上させることができる.また,同時に並列処理のカスタマイ
ズも容易になる.例えば,IXP2400 [2],[3]では処理エンジンをマイクロエンジンと呼び,8 スレッド動作が
可能なマイクロエンジンを 8 個搭載している.ハッシュユニットなどの専用ハードウェアを持つ.加えて,
ネットワーク処理をモジュール化し,組み合わせて動作させる連携処理を行っている.
ネットワークプロセッサは柔軟性が高く,様々なネットワーク処理に対応することができるが,既存のネ
ットワークプロセッサを利用する場合には要求される性能に対して過不足が生じる可能性がある.そこで,
対象アプリケーションの要求仕様を満足する最適なネットワークプロセッサを設計する必要がある.このよ
うな対象アプリケーションに特化したネットワークプロセッサを短期間で開発するために(1)ハードウェア/
ソフトウェア協調設計手法を用い,要求仕様に適したネットワークプロセッサを(2)自動合成することが求め
られる.このとき,(3)メモリやバスといった共有リソースの競合を踏まえた見積もりを行うことで,実際に
パケットを処理させた際の性能により近づけることができる.既存のハードウェア/ソフトウェア協調設計シ
ステム[10],[11]ではネットワークアプリケーションを対象としたものは少ない.文献[6],[7]では,システ
ムレベルのネットワークプロセッサの設計環境に関する研究は行われているが,自動合成などは行っていな
い.文献[1]では,統計的に性能を見積もることによって最適なネットワークプロセッサ構成を得る手法が提
案されているが,統計的な手法では必ずしも見込んだ性能を発揮できるとは限らない.また,文献[8],[9]
では,トラヒック理論を用いて,アプリケーションを処理単位ごとにプロセッサや専用 HW に分配することで,
複数のアーキテクチャ構成を得る手法が提案されているが,共有リソースの競合を考慮しているかが不明で
ある.
このような背景のもと,我々は上記の(1),(2),(3)を満たし,設計者が与える制約条件に適したネットワ
ークプロセッサを自動的に合成するシステムの開発を提案する.本稿では,まず連携処理を可能とし,バス
本数をパラメータ化したネットワークプロセッサモデルを提案する.提案モデルでは,連携処理を行わせる
ことに加え,
部分処理ごとに共有リソースへのバスを用意することでもスループットの向上を図る.続いて,
提案モデルを基本としたネットワークプロセッサ合成システムを提案する.提案システムでは,ネットワー
ク処理アプリケーションの C 言語記述と制約条件を入力とし,ネットワークプロセッサモデルのパラメータ
を変化させスループットと面積を見積もることでネットワークプロセッサ構成を順次探索し,制約条件に適
した構成を出力する.
計算機実験により,従来モデル/従来システムでは解の探索に失敗した例に対しても,
提案モデル/提案システムでは最適な構成が得られることを確認し,より処理能力の高いネットワークプロ
セッサ構成を得られることを確認する.これにより,設計者は対象アプリケーションのスループットと回路
面積を考慮したネットワークプロセッサ構成を幅広い選択肢の中から選択することができる.
241
2 ネットワークプロセッサモデル
本章では,連携処理を考慮したネットワークプロセッサモデルを提案する(図 1).連携処理を考慮したネ
ットワークプロセッサモデルは,MPP クラスタ,専用ハードウェア,各種メモリ,送受信ユニットとそれら
を繋ぐ複数のバスで構成される.なお,本モデルでは処理エンジンのことを MPP(Micro Packet Processor)
と呼称する.以下,まず連携処理を定義し,その後連携処理を考慮したネットワークプロセッサモデルを提
案する.
図 1 連携処理を考慮したネットワークプロセッサモデル
2-1 連携処理
本モデルの各部を説明する前に,本モデルで新たに対象とする連携処理について説明する.連携処理は
IXP2400 を参考にしている.IXP2400 ではパケット処理を処理単位ごとにモジュール化し,複数のマイクロエ
ンジンを用いてパイプライン化させることで処理能力を向上させている.また容易に並列処理のカスタマイ
ズを行うことが可能である.
合成対象となるネットワークプロセッサに連携処理を行わせるには,対象となるアプリケーションを複数
の部分処理に分割し,それぞれの部分処理ごとに複数の MPP を用意する.パケットに対して,部分処理を割
り当てられた複数の MPP で分割した処理を順に行っていく.このように,各パケットを MPP クラスタでパイ
プライン処理することで対象となるアプリケーションを実現する.
連携処理を行う場合,負荷を分散させた上でパイプライン処理することで処理能力を向上することができ,
部分処理ごとのカスタマイズもしやすくなる.また,部分処理ごとに,負荷に適した MPP 構成にすることで
過不足のないネットワークプロセッサを設計することができる.しかし,連携処理を行うには前後の部分処
理を行う MPP 間でデータを受け渡すため,遅延が発生してしまう.そのため,受け渡すデータ量を小さくす
るために,前後の部分処理でできるだけ関連性のない箇所で分割する必要がある.連携処理を考慮した本合
成システムの特徴は,部分処理ごとの MPP 数・スレッド数まで細かく選択することで,要求される性能に適
したネットワークプロセッサの構成を探索できる点にある.
2-2 MPP
MPP クラスタは 1 つ以上の MPP の集合を指し,1 本のバッファメモリバスに 1 つの MPP クラスタが接続され
る.各 MPP は基本的に独立して動作するが,連携処理時には MPP クラスタ内で連携するため,前の部分処理
からのデータ待ちが必要である.
MPP は一般的な 32bit RISC プロセッサで,5 ステージパイプライン動作する.パイプラインステージは,
IF(命令フェッチ),ID(命令デコード),EX(命令実行),MEM(メモリアクセス),WB(書き込み)の 5 ステージで
ある.
命令セットは,RISC プロセッサとしての基本的な命令と,ネットワークプロセッサに特徴的な命令から構
成される(表 1).基本的な命令セットについては,MIPS-1 の命令セットを元に乗除算に関する命令を除いた
ものを用いる.ネットワークプロセッサに特徴的な命令については,スレッドに関する命令とバスロックに
関する命令を用いる.
各 MPP は,ハードウェアによりコンテキストスイッチが可能である.それぞれのスレッドは専用のプログ
ラムカウンタ,32bit・32 個のレジスタからなるレジスタファイルを必ず持ち,また作業領域としてのロー
242
カルメモリの有無を選択することができる.アプリケーションによってはローカルメモリを実装しないこと
も可能で,その場合はバッファメモリに作業領域を確保する.連携処理を行う場合は,これに加えて,前後
の部分処理を行う MPP 間でのデータ受け渡し用のレジスタファイルを別に持ち,直接データを受け渡せるよ
うに MPP 間をデータパスで接続する.それぞれのスレッドは他のスレッドのレジスタを参照することはでき
ない.
スレッドは実行可能状態,実行状態,待ち状態の 3 つの状態をとる.あるスレッドが実行中に,ctx を含
むロード/ストア命令(メモリや専用ハードウェアへのアクセス)を発行したときに,そのスレッドは実行状態
から待ち状態へと遷移し,他の実行可能状態のスレッドにスイッチする.コンテキストスイッチはラウンド
ロビンで次に実行状態になるスレッドを決定する.
MPP 部に関して可変なパラメータをまとめると,MPP クラスタ数,1MPP クラスタあたりの MPP 数,1MPP あ
たりのスレッド数,作業領域としてのローカルメモリの有無が挙げられる.また,連携処理を行う場合は MPP
間のデータ受け渡し用として,32bit・32 個のレジスタファイルを必ず持つとする.
表 1 MPP の命令セット
2-3 専用ハードウェア
ネットワークアプリケーションの中で,MPP で処理するには負担のかかりすぎる処理を専用ハードウェア
で処理できるようにする.例えば,暗号化処理などでは,専用のハードウェアを用意し MPP の代わりに処理
させることで,スループットの大幅な向上が期待できる.専用ハードウェアは IP(Intelectual Property)と
してある既存のものを使用することを想定し,異なる IP を選択することで,スループットと回路面積のトレ
ードオフを考慮することも可能である.
2-4 送受信ユニット
送受信ユニットは,ネットワークプロセッサの内部と外部を接続するインタフェース部であり,内部は 2
種類のバスに,外部は MAC(Media Access Controller)に接続される.MPP によって読み込み先,書き込み先
を指定されることで,メモリと MPP,専用ハードウェア間でパケットの送受信を行う.
2-4 バス
ネットワークプロセッサはバッファメモリバスとスクラッチパッドメモリバスの 2 種類を持つ.
バッファメモリバスは送受信ユニット,バッファメモリ,MPP クラスタを接続する.バッファメモリバス
は MPP クラスタ 1 つに対して 1 本用意され,MPP クラスタ数と同数用意される.
スクラッチパッドメモリバスは送受信ユニット,MPP クラスタ,スクラッチパッドメモリ,専用ハードウ
ェアを接続する.スクラッチパッドメモリバスに関しては,あるスレッドが排他的にスクラッチパッドメモ
リにアクセスできるように,ロック機能を持つ.
文献[4]では,スクラッチパッドメモリバスは常に 1 本であり,アプリケーションによってはボトルネック
となった.単純にバス本数を増やすだけでは,ロック機能や共有するデータを格納するスクラッチパッドメ
モリに影響を及ぼす可能性がある.そこで,連携処理によって処理を分割して考える点に注目し,スクラッ
チパッドメモリバスを処理の分割数と同数用意し,部分処理ごとに MPP と接続するバスを変える.異なる部
分処理間での関連性をできるだけなくすようにアプリケーションを分割するため,異なる部分処理間ではデ
ータの共有性が薄く,ロック機能やメモリにも影響が小さいと考えられる.
そのため本モデルは,連携処理を行うことで処理を分割すると共に,スクラッチパッドメモリバスも増や
すことでボトルネックを軽減し,設計空間を広げる.
ネットワークアプリケーションの中で,MPP で処理するには負担のかかりすぎる処理を専用ハードウェア
で処理できるようにする.例えば,暗号化処理などでは,専用のハードウェアを用意し MPP の代わりに処理
させることで,スループットの大幅な向上が期待できる.専用ハードウェアは IP(Intellectual Property)
としてある既存のものを使用することを想定し,異なる IP を選択することで,スループットと回路面積のト
243
レードオフを考慮することも可能である.
3 ネットワークプロセッサ合成システム
ネットワークプロセッサ合成システムは,C 言語で記述したネットワークアプリケーション,1 パケット分
のアプリケーションデータ,制約条件を入力とする.制約条件として時間制約と面積制約を与えることがで
きる.時間制約を入力した場合は与えた処理性能を満たした上で面積最小の構成を,面積制約を入力した場
合は与えた面積の範囲内で最大の処理性能を見込める構成を選択する(以降簡単のため,本稿では時間制約の
みを考える).合成の結果,アーキテクチャパラメータとしてプロセッサ構成とそれに対するスループットと
回路面積の見積もり値との組を出力する.本システムによって,ネットワークプロセッサのパケット処理を
シミュレートし性能を見積もることで,同じアプリケーションに対して,高性能なネットワークプロセッサ
から低コストのネットワークプロセッサまで,多数の構成を得ることができるようになる.
合成システムの処理フローを図 2 に示す.まず,コンパイラによってアプリケーション記述を MPP 向けに
コンパイルする.次にプロファイラにコンパイル結果と 1 パケット分のアプリケーションデータを入力し,
アセンブリコードの実行ステップ数,メモリアクセスと専用ハードウェアを利用するタイミングを生成する.
また,連携処理を行わせる場合,連携する MPP 間でデータ受け渡しにかかるステップ数を計り,部分処理ご
とのプロファイル結果にステップ数とそのタイミングを加える.プロセッサ構成探索では,プロセッサ構成
を変化させ,プロファイル結果を利用してパケット処理のシミュレートを実行することで,対象アプリケー
ションの制約条件に適したネットワークプロセッサ構成を出力する.
図 2 合成システムの全体図
3-1 プロセッサ構成探索
プロセッサ構成探索では,プロセッサ構成に対してネットワーク処理のスループットと面積を見積もる.
合成の対象となるのは MPP クラスタ数,1MPP クラスタの MPP 数,1MPP のスレッド数,専用ハードウェア数で
あり,連携処理を行わせる場合,クラスタ数以外は部分処理ごとに変化させる.MPP の構成は異なるクラス
タでも部分処理ごとに同じ構成を取ることとする.ここで,分割数を n,部分処理の番号を i (1≦i≦n),MPP
クラスタ数を c,MPP の数を ei,MPP のスレッド数を ti,専用ハードウェア数を hi とする.
プロセッサ構成の探索は,最小の構成から開始し,各パラメータを上限まで上げた最大の構成まで行う.
本稿では,合成時間の面で不利であるが,閾値などを設定せずに,パラメータを 1 つずつ順に最小値から最
大値まで大きくしていく全探索を基本とする.ただし,あるパラメータ p を増加させた際に p=p0 で時間制約
を満足した場合,それ以上 p を増加させず p を最小値に戻し,p 以外のパラメータを 1 つ増加させ全探索を
継続する.これによって冗長な探索を避ける.
3-2 スループット見積り
プロセッサの性能はシミュレーションによって見積もる.シミュレータはあらかじめ動作周波数,メモリ
のレイテンシ,シミュレーションする時間,1 パケットのパケット長が与えられている.その上で,部分処
244
理ごとのプロファイル結果,各種パラメータおよび専用ハードウェアのレイテンシを入力し,ネットワーク
処理のスループットを見積もって出力する.シミュレーションでは,パケットは必ず送受信ユニットに到着
しているものとすることで,最大のスループットとしている.パケットを送受信ユニットからバッファに転
送し,パケット処理を行い,最後にパケットをバッファから送受信ユニットに転送するまでがパケット処理
に必要な時間である.
まず,シミュレータの模式図を図 3 に示す.シミュレータは,メモリや専用ハードウェアの応答時間と,
MPP が生成するイベント,前後の部分処理を行う MPP 間のデータ受け渡しのタイミングを管理することでシ
ミュレーションする.連携処理を行う場合,前の部分処理を行う MPP の処理が終了し,データを受けた MPP
だけが処理を開始できる.メモリのアクセス要求,専用ハードウェアの使用要求,データの受け渡しはイベ
ントとしてキューに管理され,発生時刻順に並べられる.イベントキューはデータ受け渡し用に各 MPP 間に
1 つ,各メモリ,各専用ハードウェアはそれぞれのバスの数と同数用意され,イベントは MPP が接続されて
いるバスのキューに登録される.スクラッチパッドメモリバスはロック機能を持つため,ロック有とロック
無で別々のイベントキューを持つ.イベント管理の流れは,全てのキューの中から終了時間の早いイベント
を取りだすことと,イベントに対応したスレッドの動作を進めキューにイベントを登録することの繰り返し
である.
図 3 ネットワークシミュレータ
3-3 面積見積り
ネットワークプロセッサの面積の評価として,MPP,バス,送受信ユニット,専用ハードウェアの面積の合
計を用いる.
MPP の面積は 2 つの要素に依存し,スレッド数に依存しない固定面積とスレッド数に依存する面積の合計
となる.スレッド数に依存する面積はプログラムカウンタ,レジスタファイル,バスインタフェース,スレ
ッド管理の制御部からなる部分と,ローカルメモリの合計である.また,連携処理を行う場合はデータ受け
渡し用のレジスタファイルがスレッド数に依存する面積に加えられる.なお,連携処理を行う場合,部分処
理ごとに MPP の面積・数を設定することができるため,部分処理ごとの面積の総和をとる.
メモリバスや送受信ユニットの面積は,固定部分にピン等を加えたものになる.
専用ハードウェアの面積については,部分処理ごとに専用ハードウェアの面積・数が異なるため,部分処
理ごとの面積の総和をとる.
なお,バッファメモリとスクラッチパッドメモリは外部メモリであり,充分に存在しているものとして,
面積見積もりには含めない.
4 計算機実験結果
ネットワークプロセッサが主に対象とするアプリケーションは,パケットのスイッチないしルーティング
である.しかし,宅内機器においてネットワークプロセッサを利用することを考えると,様々なネットワー
245
クアプリケーションを実行することが考えられる.
そこで,ヘッダ処理アプリケーションの例としてレイヤ 2 スイッチを,ペイロード処理アプリケーション
として 3DES の暗号化処理を,対象アプリケーションとして本合成システムに適用させる.3DES アプリケー
ションは暗号化処理のみで,ESP 等のプロトコル処理は行っていない.また,3DES は平文と直前のブロック
の暗号文と排他的論理和を計算してから暗号化を行う CBC モードを使用している.
対象となるネットワークプロセッサのパラメータおよび面積見積もりの基準となる値を表 2 に示す.各コ
ンポーネントの面積は 0.18μmCMOS での概算値で示してある.ネットワークプロセッサは 50MHz で動作する
ものとし,バッファメモリは DDR-SDRAM,スクラッチパッドメモリは SRAM を想定する.測定環境は,PC/AT
互換機(CPU: 2.80GHz),RAM2GB,gcc3.3.5 を使用した.
本実験では,C 言語で記述されたアプリケーション記述とパケットデータを本システムに入力する.ここ
では閾値などを設定せずに,定めた探索範囲内のネットワークプロセッサ構成に対して順番に見積もりを行
っていった.提案手法による実験の探索範囲は,分割数 n=1 の場合,c を 4,e を 8,t を 6,h を 4 までとし,
n=2 の連携処理を行わせる場合(+ Task Chaining),c を 4,ei を 4,ti を 4,hi を 2 までとしている.連携処
理を行わせる際に必要な処理の分割は手動で行った.比較のため,従来モデル/従来システム[4],[5]によっ
て実験した.[4],[5]の探索範囲を次のとおりである.[5]による実験の探索範囲は,分割数 n=1,c=1 のバッ
ファメモリバス,スクラッチパッドメモリバス共に 1 本の構成を基本モデル(basic model)とし,e を 8,t
を 6,h を 4 までである.[4]による実験の探索範囲は,分割数 n=1,c=1~4 のバッファメモリバスを複数本
にした場合の構成(+ multiple clusters)であり,e を 8,t を 6,h を 4 までである.
表 2 パラメータ
4-1 レイヤ 2 スイッチ
レイヤ 2 スイッチは処理が単純で,作業領域としてのローカルメモリを持たなくても充分に機能するため,
レイヤ 2 スイッチの MPP ではローカルメモリを実装していない.
提案手法では,レイヤ 2 スイッチには連携処理を行わない場合(n=1)と,処理を 2 分割にして連携処理を行
う場合(n=2)に対してプロセッサ構成探索を行った.連携処理を行う場合の 2 分割は,送受信ユニットからバ
ッファメモリへのパケット転送+ハッシュ表から転送ポートの参照を部分処理 1 とし,転送ポートを決定し
バッファメモリから送受信ユニットへのパケット転送を部分処理 2 とした.このように送受信ユニットとバ
ッファメモリ間のパケット転送を 2 つの部分処理に分けることで,バッファメモリバスの利用率を上げるこ
とが目的である.提案手法による実験結果として,制約条件スループット 2.8Gbps 以上を与えた場合に得ら
れたネットワークプロセッサ構成は,分割数 2,クラスタ数 4,部分処理 1 の MPP 数 3,部分処理 1 の MPP の
スレッド数 3,部分処理 2 の MPP 数 1,部分処理 2 の MPP のスレッド数 1 であり,面積が約 306.4 平方ミリ,
約 2.81Gbps の最大スループットが見込める.制約条件を満足するまでのスループットと回路面積の見積もり
結果を図 4 に示す.
比較のため,レイヤ 2 スイッチに対して,[4],[5]によるプロセッサ構成探索を行った.[5]による実験結
果では,スループット 1Gbps 程度の構成までしか得られないため,解を得ることができなかった.同様に,
[4]による実験結果では,スループット 2.6Gbps 程度の構成までしか得られないため,解を得ることができな
かった.
246
[5]ではバスを増加させることができないため,パラメータを変化させてもスループットの向上が見込めな
い.これは送受信ユニットとバッファメモリ間の転送にかかる時間がきわめて大きいためであり,スループ
ットの向上にはクラスタ数(バッファメモリバス数)を増加させることが必要になる.そこで,[4]ではクラス
タ数を増加させることで,スループットの大幅な向上が見込める.しかし,スループットがクラスタ数によ
って一定の値に定まってしまい,またクラスタ数増加によるスループットの向上率も段々と小さくなる.提
案手法の場合,上記のほかに連携処理(n=2)を行わせることで,ボトルネックとなる処理を分散させ共有リソ
ースの競合を軽減し,処理性能を向上することができる.連携処理は面積増加に比べてスループットの向上
は小さいが,クラスタ数が充分に大きい場合には有効であり,クラスタ数の増加と組み合わせることで従来
モデル/従来システムよりも設計空間を広げることができる.
図 4 スループットと回路面積(レイヤ 2 スイッチ)
4-2 3DES 暗号化
3DES 暗号化は演算結果を保持しておく必要があるため,MPP のスレッドごとにローカルメモリを実装して
いる.3DES 暗号化に対しては専用 HW を使用する場合と専用 HW を使用しない場合に分けて行った.
専用 HW を使用する場合
提案手法では,専用 HW を使用する場合に対して,連携処理を行わせずにプロセッサ構成探索を行った.提
案手法による実験結果として,制約条件スループット 235Mbps 以上を与えた場合に得られたネットワークプ
ロセッサ構成は,分割数 1,クラスタ数 4,MPP 数 8,MPP のスレッド数 1,専用 HW 数 4 であり,面積が約 292.4
平方ミリ,約 235.4Mbp の最大スループットが見込める.制約条件を満足するまでのスループットと回路面積
の見積もり結果を図 5 に示す.
比較のため,専用 HW を使用する場合に対して,[4],[5]によるプロセッサ構成探索を行った.[5]による
実験結果では,スループット 130Mbps 程度の構成までしか得られないため,解を得ることができなかった.
[4]による実験結果では,解として提案手法と同様のネットワークプロセッサ構成が得られた.
専用 HW を使用する場合,専用 HW 数とクラスタ数がボトルネックとなる.いくらクラスタ数を増加させて
も専用 HW 数によって,それぞれ 60,120,180,240Mbps 程度で制限されてしまう.また,その逆に専用 HW
数を 3,4 にした場合は,クラスタ数を最低でも 2 以上にしなければ性能を発揮できない.そのため,[5]の
モデルではクラスタ数を増やすことができないため,専用 HW 数を増やしてもスループットが一定の値で制限
される.提案手法と[4]のモデルでは専用 HW 数とクラスタ数を変化させることができ,スループットを向上
させることができる.スクラッチパッドメモリバス自体はボトルネックとなっていないため,提案手法によ
る連携処理を行ってもほぼスループットは変わらず,連携処理はこのようなアプリケーションには適さない.
専用 HW を使用しない場合
提案手法では,専用 HW を使用しない場合には,連携処理を行わない場合(n=1)と,処理を 2 分割にして連
携処理を行う場合(n=2)に対してプロセッサ構成探索を行った.連携処理を行う場合の 2 分割は,送受信ユニ
ットからバッファメモリへのパケット転送+パケットの前半部の暗号化を部分処理 1 とし,パケットの後半
部の暗号化+バッファメモリから送受信ユニットへのパケット転送を部分処理 2 とした.暗号化の途中で分
247
割したため,MPP 間で受け渡すデータ量は大きくなるが,スクラッチパッドメモリバスを倍の 2 本にするこ
とが目的である.提案手法による実験結果として,制約条件スループット 13.3Mbps 以上を与えた場合に得ら
れたネットワークプロセッサ構成は,分割数 2,クラスタ数 3,部分処理 1 の MPP 数 3,部分処理 1 の MPP の
スレッド数 3,部分処理 2 の MPP 数 3,部分処理 2 の MPP のスレッド数 t3 であり,面積が約 275.7 平方ミリ,
約 13.3Mbps の最大スループットが見込める.制約条件を満足するまでのスループットと回路面積の見積もり
結果を図 6 に示す.
比較のため,専用 HW を使用しない場合に対して,[4],[5]によるプロセッサ構成探索を行った.[4],[5]
による実験結果では,スループット 6Mbps 程度の構成までしか得られないため,解を得ることができなかっ
た.
専用 HW を使用しない場合,スクラッチパッドメモリのアクセスが頻繁に起こるため,スクラッチパッドメ
モリバスがボトルネックとなる.[4],[5]の場合,スクラッチパッドメモリバスが 1 本しかなく,クラスタ
数を増加させても 6Mbps 程度で飽和してしまう.提案手法の場合,連携処理を行い分割数を増やすと共に,
スクラッチパッドメモリバスも増加させることで,スループットの向上が見込める.提案手法の連携処理を
行わせる n=2 の場合,クラスタ数が 1 で 10Mbps ほど,2 以上にすることで従来モデル/従来システムの約 2
倍の 13Mbps 程度までスループットを向上させることができる.
提案手法,[4],[5]の実験結果から,制約条件に対して得られた構成を表 3 にまとめる.これらの結果よ
り,スクラッチパッドメモリバスがボトルネックとなる場合,提案手法による連携処理を行うことで,ネッ
トワークプロセッサの設計空間を広げることが可能である.
図 5 スループットと回路面積(3DES,専用 HW 有)
図 6 スループットと回路面積(3DES,専用 HW 無)
表 3 実験結果から得られた最適構成
5 まとめと今後の課題
本稿では,連携処理を考慮したネットワークプロセッサモデルを提案し,ネットワークプロセッサ合成シ
ステムに適用した.適用した合成システムにより,対象アプリケーションに応じて設計者の要求を満たすネ
ットワークプロセッサ構成を提供することができる.
248
今後の課題として,提案モデルでは分割数分のスクラッチパッドメモリバスを用意するが,部分処理ごと
の負荷に応じた構成に変えられるようにすることが挙げられる.また,連携処理を対象としたことで探索範
囲が大幅に増えたため,ボトルネックにあわせた効率の良い探索手法を検討していく.
【参考文献】
[1] M. A. Franklin and T. Wolf, "A Network Processor Performance and Design Model with
Benchmark Parameterization," in Proc. of 1st Workshop on Network Processors (HPCA-8), Feb.
2002.
[2] Intel, Intel IXP2400 Network Processor Datasheet}, Dec. 2002.
[3] Intel, Intel Microengine C Compiler Language Support Reference Manual}, March 2002.
[4] 升本英行, 戸川望, 柳澤政生, 大附辰夫, "ネットワークプロセッサ合成システムの改良とその評価," 電子
情報通信学会技術研究報告, VLD2004-141, ICD2004-237, 2005.
[5] 松浦努, 内田純平, 宮岡祐一郎, 戸川望, 柳澤政生, 大附辰夫, "ネットワークプロセッサ合成システム,"
電子情報通信学会技術研究報告, VLD2003-145, ICD2003-238, 2004.
[6] P. Paulin, F. Karim, and P. Bromley, "Network Processors: A Perspective on Market
Requirements, Processor Architectures and Embedded S/W Tools," in Proc. of DATE'01, 2001.
[7] P. Paulin, C. Pilkington, and E. Bensoudane, "Network Processing Challenges and an
Experimental NPU Platform," in Proc. of DATE'03, 2003.
[8] L. Thiele, S. Chakraborty, M. Gries, and S. Kunzli, "Design Space Exploration of Network
Processor Architectures," in Proc. of 1st Workshop on Network Processors (HPCA8), Feb. 2002.
[9] L. Thiele, S. Chakraborty, M. Gries, and S. Kunzli, "A Framework for Evaluating Design
Treadoffs in Packet Processing Architectures," in Proc. of DAC 2002, pp. 880-885, June 2002.
[10] S. Vercauteren, B. Lin, and H. De Man, "Constructing Application-Specific Heterogeneous
Embedded Architectures from Custom HW/SW Applications," in Proc. 33rd DAC, pp. 521-526,
1996
[11] J.-H. Yang, B.-W. Kim, S.-J. Nam, Y.-S. Kwon, D.-H. Lee, J.-Y. Lee, C.-S. Hwang, Y.-H. Lee,
S.-H. Hwang, I.-C. Park, and C.-M. Kyung, "MetaCore: An Application-Specific Programmable
DSP Development System," IEEE Trans. on Very Large Scale Integration (VLSI) systems, vol. 8,
no. 2, pp. 173-183, 2000.
〈発
題
名
動的再構成可能なマルチレート対応 LDPC
符号復号器の実装
アプリケーションプロセッサのフォワーデ
ィングユニット最適化手法
SIMD 型プロセッサコア設計におけるプロセ
ッシングユニット最適化手法
アプリケーションプロセッサ向けデータキ
ャッシュ構成最適化システムとその評価
携帯機器向け MPEG-A Photo Player のメタ
データ生成システムのハードウェア化に関
する一考察
エニーキャスト通信におけるサーバ処理時
間を考慮した経路選択手法
表
資
料〉
掲載誌・学会名等
電子情報通信学会技術研究報告,
RECONF2006-43
電子情報通信学会技術研究報告,
VLD2006-80
電子情報通信学会技術研究報告,
VLD2006-119
電子情報通信学会技術研究報告,
VLD2006-122
電子情報通信学会技術研究報告,
VLD2006-145
電子情報通信学会技術研究報告,
NS2006-231
249
発表年月
2006 年 11 月
2006 年 11 月
2007 年 3 月
2007 年 3 月
2007 年 3 月
2007 年 3 月
Fly UP