Wind River Simicsによるマルチコアシステム開発

Wind River Simicsによるマルチコアシステム開発
目次
ンまたはPC上で稼働するハードウェアシミュレーションモデルです。こ
要 旨・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1
仮想プラットフォーム・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1
仮想化システム開発・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・2
の仮想プラットフォームは同じバイナリソフトウェアを物理ハードウェ
アと同様に実行可能であり、ソフトウェア開発用に強化された代替物理
ハードウェアとして使用するのに十分な速さで動作します。
ソフトウェアバグの洗い出し・・・・・・・・・・・・・・・・・・・・・・・・・2
仮想プラットフォーム
並列ソフトウェアのデバッグ・・・・・・・・・・・・・・・・・・・・・・・・・3
仮想プラットフォームには、物理的制約からの解放、自由な設定が可
デバッグの実例・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3
能、任意のポイントでのチェックポイント設定および再実行、優れた利
仮想プラットフォームによるデバッグの利点・・・・・・・・・・・・・3
便性と安定性、実際にプロトタイプハードウェアを使用するかなり前
スケーラビリティのテスト・・・・・・・・・・・・・・・・・・・・・・・・・・4
実行の分析・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5
結 論・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・7
段階でターゲットへのアクセスが可能、完全な制御と高い精度による
障害ケースおよび境界ケースのテストが可能、などの利点があります。
仮想プラットフォームによる開発では、ソフトウェアデバッグおよび
システム分析において、高い再現性が実現され、システム開発をより効
要旨
率よく制御可能な新たな方法を導入できます。
ハードウェアがマルチコアプロセッサへと移行する際、開発者が既存
のコードを並列アプリケーションに変換してパフォーマンスを向上さ
従来のデバッグ技術およびデバッグツールは、マルチプロセッサまた
せるための、ソフトウェアおよびシステムの新しい開発ツールが必要
はマルチコアプロセッサ搭載ハードウェアなどの本質的に非ディター
となります。今日の開発者は、並列ハードウェアを効率的に使用できる
ミニスティックなシステムではあまりうまく機能しません。
アーキテクチャデザイン、ソフトウェア開発方法を理解する必要があ
マルチコアシステムの将来像は、図 1 の例のようになります。小容量
ります。
(または大容量)の共有メモリノード上でソフトウェアスタックが稼働
Wind River Simics 仮想プラットフォームを活用する仮想化システム開発
し、各ノードはさまざまな種類の相互接続を通じて他のノードと通信
手法は、システムの実ハードウェアを置き換えつつ、開発そのものを更に
し、分散されたマルチコアハードウェア上でシステムレベルソフト
強化する先進的な開発手法です。Wind River Simicsは、ワークステーショ
ウェアの抽象化を実現します。
System-Level Software Abstractions
Software Stack
Software Stack
CPU
CPU
CPU
CPU
CPU
CPU
L1$
L1$
L1$
L1$
L1$
L1$
L2$
L2$
RAM
Timer
Serial
Timer
Serial
Other
Network
Network
Other
Devices
Multi-core Node
Devices
Multi-core Node
Shared Memory Space
Network (Ethernet, PCIe, RapidIO, etc.) with Local Memory in each Node
図1:マルチコアシステム例
RAM
Wind River Simics for Multi-core Systems Development
図 1 のようなソフトウェア構成は、単一のマルチコアハードウェアデバ
• 同時停止と実行:Simics を使用してマルチプロセッサ内の特定の
イス内で使用できます。マルチコアハードウェアにおけるシステム開
プロセッサ上でシングルステップを実行すると、システム内の他
発においてハイパーバイザーに代表されるバーチャライザーション
のすべての処理もステップ単位で進行します。この機能は、単一の
(仮想化)技術を活用することにより、複数の独立したコアを、それらが
マルチコアチップ上で限定されたブレークポイントしか提供でき
物理的に同じシリコンパッケージ内に存在する場合でも、他のコアを
リモートネットワークノードとして参照しつつ、独自の共有メモリ抽
象化を実現できるようになります。
仮想化システム開発
マルチコアハードウェアを正しく実行することは簡単ではありません
ない実ハードウェアでは、実現できません。
• 拡張性のテスト:Simics を使用すれば、システム内のプロセッサコ
ア数が、ハードウェアが提供する固定値ではなくシミュレーショ
ンパラメータになります。これにより、使用可能なコア数を増やし
たとき(または減らしたとき)のソフトウェアのふるまい、および
ソフトウェアの拡張性をテストできます。
が、マルチコアソフトウェアを正しく実行するより簡単であることは
• 逆実行機能:Simics の逆実行およびデバック機能は、マルチプロ
確かです。2004 年に本格的に始まったマルチコアハードウェアへの移
セッサおよびマルチコアプロセッサでも完全に機能します。Simics
行は、最終的に並列ソフトウェアを主流へと押し上げ、ソフトウェア開
では、すべてのコアを含むシステム全体を同期させて、逆方向に実
発業界は現在でもその流れに沿っています。その際の主な課題として、
行できます。これにより、ロック競合、デッドロック、優先度によ
次の 3 つが挙げられます。
る資源飢餓など、マルチコア環境では頻繁に発生するが検出が困
難なバグを容易に発見する強力な機能を提供します。
• 既存のシングルコア上のソフトウェアをマルチコア上で継続的に
活用できるようにする。
• マルチコアの並列実行によるパフォーマンスと電力消費の利点を
得るために、既存のソフトウェアを並列化する。
• 効率的なエラー誘発:Simics では、マルチプロセッサシステムで
エラーを誘発するための複数のメカニズムが用意されています。
第一に、システムのプロセッサの処理速度を変えることが可能で
あり、これは並列コアにストレスをかける良い方法です。第二に、
• 新しい並列ソフトウェアを最初から作成する。
排他制御に起因する問題をより顕在化するために、データ書き込
Wind River Simics を活用した開発では、マルチコアアプリケーションの
ウェアよりも非常に効率的に並列コードでエラーを誘発すること
み時間を非常に長くすることができます。これにより、実ハード
開発および移植のために、実ハードウェアを用いたデバッグやテスト
ができます。第三に、ターゲットシステムの動作をスクリプト化し
に比べて、魅力的なメリットを多く提供します。Simics には、並列コー
て任意の時点で実行できます。実ハードウェアでは、本質的なラン
ド、特に並列システムにおけるマルチコアの実装に対するテストとデ
ダム性という特性により時々エラーが誘発されるため、再現しづ
バッグのための、次のような重要な機能が備わっています。
らく、その診断を難しくしています。
• 再現性:Simics でソフトウェアのテストケースを実行する際、何度
ソフトウェアバグの洗い出し
実行しても、必ず同じ実行結果となります。たとえ、複数のプロ
真の並列マルチプロセッサ環境では、従来の並列処理の問題が悪化す
セッサコアを使用した場合、もしくは、各コア上で複数のプロセス
ることに加えて、新しいタイプの潜在的なソフトウェアエラーが多数
を実行した場合でも、同じ実行を正確に再現できます。したがっ
発生します。特に、シングルコアのマルチタスク設定で適切に機能する
て、障害状況の再現が困難であるというマルチプロセッサのデ
既存のソフトウェアが、多くの場合、マルチコアでは突然停止すること
バッグにおける最大の問題はなくなります。これにより、マルチプ
があります。図 2 は、シングルコアからデュアルコアプロセッサへの移
ロセッサのデバッグが、シングルプロセッサでの単一プログラム
行により、システムで並列プログラミング問題がどれほど発生しやす
のデバッグと同様に容易になります。Simics 上でエラーが検出され
くなるかを示しています。ここでは、同じプログラムをシングルコアと
た場合、そのエラーを何度でも再現することができるのです。
デュアルコアでテストする以外にも、さまざまなプロセッサコア速度
でテストしています。
Percentage of Runs Triggering Race
セッサコアに同時にデバッガを接続できます。同時にコアを止め
40%
30%
20%
べてのコア、プロセッサ、ボードにわたるシステムの実行に対し
て、同期化された単一のグローバルビューが用意されています。
2 | Wind River Simics for Multi-core Systems Development
1013
10000
Clock Frequency (MHz)
1 CPU
1000
• システムの詳細情報の把握:Simics Analyzer では、システム内のす
977
0%
950
10%
800
された通りに追跡され、表示されます。
50%
500
アのプロセスとスレッドは、システム内の異なったコア上で実行
60%
200
ムに加えて、プロセスやスレッドもデバッグできます。ソフトウェ
70%
100
た OS アウェアネス機能により、Simics はオペレーティングシステ
80%
3
• OS アウェアネスデバッグ:Wind River Simics Analyzer に搭載され
90%
1
てみるなど、実ハードでは不可能なシステム状態におけるデバッ
グが可能となります。
100%
10
• マルチコアのデバッグ:Simics では、マルチプロセッサの各プロ
2 CPUs
図2:シングルコアとデュアルコアでの実行の比較
INNOVATORS START HERE.
Wind River Simics for Multi-core Systems Development
このプログラムはマルチスレッドであり、競合状態の問題を抱えてい
問題を直裁的に調査するために、逆実行機能、およびシリアルポート、
ます。ただし、シングルコアプロセッサ(単一 CPU)では、この問題は
割り込みコントローラ、プロセッサコアでの割り込みトレースが使用
時々しか発生しません。また、クロック周波数が高い場合も、この問題
されました。これにより、問題が発生した正確なサイクルと命令、およ
は非常にまれにしか発生しません。オペレーティングシステムが各プ
び問題に至るまでのイベントのシーケンスを突き止めることができま
ロセス / スレッドを切り替えながらプログラム内のより多くの命令を
した。また、フリーズが発生したオペレーティングシステムの場所を特
実行するので、プロセスの切り替えが発生したときにちょうど危険な
定するために、重要なポイントでスタックバックトレースが実行され
セクションに入っている確率が低くなるためです。このプログラムの
ました。
各スレッドの実行区画は、比較的長い間中断せず連続しています。
問題は、割り込みを再度イネーブルする前にカーネルスピンロックを
デュアルコア設定を使用すると、1 つの実行それぞれがバグの引き金に
実行しようとする割り込みサービスルーチンであることが判明しまし
なります。このバグの影響度が低い場合は、シングルコアデバイスでは
た。フリーズした際、サービスルーチンに入った時点ですでにロックが
バグは年に 1 度程度しか表面化せず、単なるまれな障害になります。と
使用されており、割り込みが有効でなかったので、他のコードを実行し
ころが、システムがマルチコアに移行すると、バグは週に 1 度発生し、
てロックを解放することができませんでした。
大きな問題となります。Simics 仮想プラットフォームを使用し、ソフト
ウェアをさまざまな構成(ハードウェアでは実現できない構成を含む)
このバグは、割り込みハンドラやハードウェアドライバなど、実際のソ
でテストすることで、このような問題を早期に明らかにできます。
フトウェアスタック一式を Simics 仮想プラットフォームで実行したこ
並列ソフトウェアのデバッグ
こされており、仮想プラットフォームで設定の変更が可能であること
Simics 仮想プラットフォームの主な利点は、物理ハードウェアよりも優
の価値、および複雑なコードでエラーを誘発するために設定を変更す
とで、初めて発見できました。バグはシステム設定の変更により引き起
れたデバッグ機能および分析機能が備わっていることです。組込み
ることの有効性を実証しています。Simics の優れた再現性により、バグ
ボード向けコードの開発を経験した人であれば、だれでも仮想環境の
の再現は簡単でした。状態のあらゆる部分をトレースして調査する機
利便性を認識しています。不規則的な障害がない、ターゲットに対する
能は、何がどの順番で起きているのかを理解するために非常に重要で
制御性が非常に高い、通信が速い、ブレークポイント数が無制限などの
した。逆実行機能では、フリーズを逆にさかのぼって、システムがフ
利便性がある、といった特性を持つシステムを手に入れることができ
リーズに至るまでに通過したパスを調査することができました。
ます。ターゲットが完全にフリーズした場合、停止して何が起こったか
をチェックできます。また、ネットワーク設定の他、コア数、クロック速
Discover Bug
度、メモリサイズなどのシステムパラメータを、まったく自由に簡単に
Rerun, Bug Doesn’t Show Up
Discover Bug
変更できます。
Rerun, Bug Doesn’t Show Up
Reverse Execute and Find Source of Bug
これらの機能が実際にどのように稼働するのかを説明するために、
Simics を使用してマルチコアのバグをデバッグする実例を以下に示し
ます。
デバッグの実例
Simics 仮想プラットフォームを使用して、デュアルコアプロセッサプ
Rerun, Different Bug
Rerun, Initial Bug Occurs
ハードウェア上では、
一部の実行のみがエラーを再現する。
Simics仮想プラットフォームでは
エラーは再現可能であり、逆実行機能は
エラーを診断して修復する強力な手段となる。
図3:再現性と逆実行機能
ラットフォームに対するオペレーティングシステムの移植を実行して
Simics 仮想プラットフォームによるデバッグの利点
みました。まず、ターゲットシステムのクロック周波数を 800MHz から
図 3 で示すように、Simics 仮想プラットフォームの主な利点は、再現性
833MHz に変更すると、ブートプロセスの早い段階でシステムが突然フ
と逆実行機能です。並列ソフトウェアでバグを発見して修復するため
リーズしました。このシステムは入出力不能となり、完全に無反応にな
の主な問題は、ソフトウェアシステムの実行における決定性の欠如で
りました。
す。プログラムは実行するたびに、プログラム内のイベントの順番が異
なり、システムの状態やタイミングに対する非常に小さな変更でも、プ
クロック周波数を変化させることで、問題が 829.9MHz ∼ 833.3MHz の
ログラムの実行が大きく異なる原因となります。このことが、デバッグ
間でのみ発生することが判明しました。以前は、クロック周波数が
を非常に複雑にします。というのも、並列プログラムのデバック作業自
800MHz に設定されていたので、この問題は見られませんでしたが、
体が、異なる場所における競合状態の消失または出現などのタイミン
Simics の反復再現性により、容易にバグが再現しました。仮想プラット
グの影響を受けるバグを作り出すからです。
フォームを不正なクロック周波数で起動するたびに、同じクラッシュ
が同じタイミングで発生しました。物理ハードウェアではまったく反
応しない頼りにならない手段しかありませんが、Simics 仮想プラット
フォームではフリーズしたポイントでのプロセッサ、メモリ、ソフト
ウェアの状態を調査できます。
3 | Wind River Simics for Multi-core Systems Development
INNOVATORS START HERE.
Wind River Simics for Multi-core Systems Development
マルチコアのデバッグにおける仮想プラット
フォームのもう 1 つの利点は、システム全体の実
行を任意の時点で停止できることです。つまり、
プロセッサが互いに通信している状況でコード
の動作を変えることなく、コードを 1 ステップだ
け実行することが可能であり、他のプロセッサ
で実行中のコードが停止中のプロセッサに処理
するデータを送ることはできません。
また、仮想プラットフォームに追加的な統計情
報を組み込むことで、公平性とアクセス性を評
価し、システムのさまざまな部分の資源飢餓を
把握できます。
スケーラビリティのテスト
Simics 仮想プラットフォームは、システムのス
ケーラビリティおよびソフトウェア設計のテス
図4:再現性とマルチコア
トに適しています。物理ハードウェア上では、コ
ア 数 と 現 在 の 出 荷 構 成 に 必 ず 制 限 さ れ ま す。一 方、仮 想 プ ラ ッ ト
Simics 仮想プラットフォームには、決定性と再現性が備わっていま
フォーム上では、what-if 分析や自由な規模のシステムでのソフトウェ
す。このシミュレータは、命令の実行およびプロセッサ間の情報の伝
アテストが容易に実現できます。たとえば、デュアルコアプラット
搬を正確に制御可能であり、そのためマルチコアプロセッサ上でのソ
フォーム向けに作成されたソフトウェアスタックを、システムが 3 コ
フトウェアの実行動作を強制的に再現できます。一般に決定性として
ア、4 コア、12 コア、100 コア、または将来のハードウェア世代を超えた
知られているこの特性は、ソフトウェアプログラムの動作が常に同一
コア数に移行した場合、拡張できるかどうか、およびどのように拡張さ
であることを意味するわけではありません。同じ順序の非同期入力を
せるか(あるいは機能を維持できるかどうか)をチェックできます。
使用して同じ初期状態から同じソフトウェアを実行した場合、実行順
序が同じになるということを意味します。
また、システムおよびモデルの重要な競合箇所に遅延を挿入し、ハー
何らかの変更があれば、動作が変わります。図 4 はその例を示してお
構成または設定の影響を受けるかどうかを確認できます。
ドウェアとソフトウェアを組み合わせたシステムが特定のシステム
り、意図的なバグのある同じプログラムを、2 つの異なったマルチコア
シミュレーションマシンで数回実行しています。異なった初期状態か
ら実行しているので、実行ごとに異なった結果が得られています。
Simics は逆実行および各実行の正確な再現が可能であり、これは物理
ハードウェア上では不可能な機能です。
図5:物理ハードウェアにとらわれない拡張
4 | Wind River Simics for Multi-core Systems Development
INNOVATORS START HERE.
Wind River Simics for Multi-core Systems Development
Parallel and Transfer Size Speedup
Relative Performance to 1 Node, 1 Packet/Transfer
14.00
12.00
10.00
Perfect Memory
100 Cycles, Single Port
200 Cycles, Single Port
500 Cycles, Single Port
100 Cycles, Single Port, 4 Packets/Trans
200 Cycles, Single Port, 4 Packets/Trans
500 Cycles, Single Port, 4 Packets/Trans
8.00
6.00
4.00
Cycles refer to global (shared) memory
access time.
2.00
13
12
11
10
9
8
7
6
5
4
3
2
1
0.00
Worker Nodes
図6:スケーラビリティのテスト
図 5 は、現在のハードウェアの物理的制限を超えた拡張の例を示してい
図 6 は、7 つのノードでは、シングルパケット送信では十分なメモリを
ます。Freescale MPC8641D SoC をベースとした 3 台のマシンがありま
使用してもスケーラビリティが低下するので、スケーラビリティを確
す。MPC8641D はハードウェア構造内に 2 つのコアを搭載しています
保するにはクアッドパケット送信を使用する必要があることを示して
が、Simics では、マシンのうち 2 台はそれぞれ 3 コアと 8 コアを搭載して
います。また、遅いメモリとシングルパケット送信を使用した場合は、5
います。ただし、8 コアマシン用の /proc/interrupts の出力があまり優れ
つまたは 6 つを超えるノードを追加しても実際の利点はないことも示
ていないので、このソフトウェアスタックは完全にこのために設計され
しています。したがって、コンピュータ的に「都合よく並列化されてい
ているわけではありません。これは、物理ハードウェアで可能な範囲を超
る」プログラムでさえも、通信のオーバーヘッドがこのグラフの状態に
えてシステムを拡張することで、仮想マシンがどのようにソフトウェア
なるにつれて、拡張を停止する可能性があります。Simics には、実際に
問題を明らかにすることができるかを簡単で明確に示した例です。
ハードウェアを使用するかなり前にこの件を調査できる機能が備わっ
ているので、計画を立てて、それに応じてシステム設計を調整すること
図 6 は、仮想プラットフォームの別の使用法を示しており、ここでは並
ができます。
列コードのスケーラビリティを評価しています。このテストでは、一連
のパケットが 1 組の並列ノードを通じて送信されています。各ノード
実行の分析
は、独自のローカルメモリを使用して、ローカルのオペレーティングシ
Simics 仮想プラットフォームでは、実コードに手を加えたり、ターゲッ
ステムインスタンスと処理コードを実行するプロセッサコアです。こ
トシステムでバックグラウンドのサンプリングを実行するなど、一切
のような構成は、信号処理およびストリーミングデータ処理では一般
手を加えることなく、開発、調査をすることができます。それどころか
的です。Simics を使用すれば、関連するすべてのプロセッサコアにわ
Simics を使用すれば、ターゲットソフトウェアの実行を阻害することな
たって、エンドツーエンドの実行時間を測定できます。
く、ターゲットのソフトウェア(およびハードウェア)のイベントを監
仮想プラットフォームでは、1 ∼ 13 のプロセッサコアが構成され、各
定と逆実行機能により、開始時点に戻って分析ツールを活用し、問題を
視できます。テストケースで不具合が生じた場合、チェックポイント設
ハードウェア構成に対してソフトウェアが適切にセットアップされま
再現させ、その実行をプロファイリングする、またはトレースすること
す。競合および遅延モデルが、さまざまな遅延の範囲で、コア間の通信
ができます。完全な再現性が、Simics 仮想プラットフォームを用いるマ
に使用される共有メモリに適用されます。この目的は、特定のターゲッ
ルチコア開発における大きな利点です。Simics 仮想プラットフォームの
トプラットフォーム上での正確なソフトウェアパフォーマンスを見積
もう 1 つの利点はコア間の完全な同期であり、ハードウェアのジッタ
もることではなく、コア数の増加に伴って通信待ち時間が変化する中
(変動)やクロックの同期ずれを心配することなく、すべてのトレース
で、ソフトウェアをどのように適切に拡張できるかを評価することで
にタイムスタンプを付加できることです。
す。また、ソフトウェアで使用されるノードへの通信方法には、シング
ルパケット送信とクアッドパケット送信の 2 種類があります。
5 | Wind River Simics for Multi-core Systems Development
INNOVATORS START HERE.
Wind River Simics for Multi-core Systems Development
トレースは、メモリ操作のハードウェアレベルのトレースから、スレッ
能を使用して、どのスレッドとプロセスがターゲットシステムのどこで
ド切り替えなどのオペレーティングシステムイベント、および負荷分
実行されているかを認識します。Simics Analyzerには、ターゲットのハー
散を決定するためのマルチボード / マルチプロセッサ分散システムの
ドウェア構成とソフトウェア構成に関する階層ビューを備えたシステム
プロファイリングまで、さまざまなレベルに適用できます。
概要、および実行の履歴を表示するタイムラインビューが用意されてい
Simics Analyzerは、ターゲットシステムのハードウェアとソフトウェア
ます。タイムラインビューは、ソフトウェアのスレッド、プロセッサ、お
をリアルタイムでグラフィック表示します。SimicsはOSアウェアネス機
よびオペレーティングシステムのインスタンスがいつどこで実行されて
いるかを把握するのに役立ちます。
図7は、MPC8641デ ュ ア ル コ ア プ ロ
セッサでのLinuxのブートを示していま
す。多くの時間はカーネルで費やされて
いますが、ブートプロセスでさまざまな
プロセスがどのように実行され終了し
ているかを示しています。Simicsでは、
デバッグエージェントや他の分析ツー
ルが正常に実行されるまでに、オペレー
ティングシステムの起動中に何が起き
ているかを観察できます。デバッグ用の
カーネルを使用するのではなく、実シス
テムで使用するカーネルそのものを使
用してデータが収集されます。
図 8 は、8 コアマシン上でのマルチス
レッドコンピューティングプログラム
の実行を示しています。オペレーティ
図7:Wind River Simics Analyzerにおけるシステムブート
ングシステムのカーネルは、ほとんど
のスレッドが実行中に同じコアで動作
するようにしていますが、スレッド 863
はコアを 2 度変えています。プログラ
ムは利用可能なプロセッサ時間のほと
ん ど を 使 用 し て お り、実 行 終 了 後 は
カーネル(水色)のみがマシン上で稼働
しています。
アナライザ機能は、複数のマシンおよ
びハイパーバイザーベースのソフト
ウェア構成に拡張できます(図 8 では、
表示の最下部で他の数台のマシンを示
しています)
。Simics は、ハイパーバイ
ザー配下でどのゲストオペレーティン
グシステムが稼働しており、それらが
いつアクティブになり、ゲストの配下
でどのプロセスが稼働しているかを認
識しています。ゲストアプリケーショ
ン内にブレークポイントを設定して、
ゲストアプリケーションとオペレー
ティングシステムがどのプロセッサで
実行されているかに関係なく、実行を
停止することができます。
図8:Wind River Simics Analyzerにおけるマルチスレッドプログラム
6 | Wind River Simics for Multi-core Systems Development
INNOVATORS START HERE.
Wind River Simics for Multi-core Systems Development
Four Identical Worker Threads
Pipelined Division of Work
1,200,000,000.00
1,400,000,000.00
1,200,000,000.00
1,000,000,000.00
1,000,000,000.00
800,000,000.00
800,000,000.00
600,000,000.00
Total
tid54
tid53
tid52
tid51
tid50
400,000,000.00
200,000,000.00
CPU0
CPU1
CPU2
600,000,000.00
Total
tid53
tid52
tid51
tid50
400,000,000.00
200,000,000.00
CPU3
CPU0
CPU1
CPU2
CPU3
図9:各ソフトウェア案のオフライン分析
また、Simicsを使用して、オフライン分析用にデータを収集すること
かなり以前に、この種のコードがパケット抜けを経験していました。
も可能です。
対称的な構成は非常にうまく拡張され、1コアの場合の4倍速く4コア
図9は、さらなる詳細情報を得るためにMicrosoft Excelで処理されたプ
で稼働していますが、一方パイプライン化された構成はプロセシング
ロファイリングデータの例です。クアッドコアプラットフォームで稼
コアを追加してもまったく得るところがありませんでした。
働するパケット処理アプリケーションを並列化する2つの方法を比較し
ています。パケット処理には3つの異なったステップがあります。最初
結論
の案では、各ソフトウェアスレッドがパケットに対する3つのステップ
マルチコアプロセッサと並列ソフトウェアを使用して信頼できる高パ
をすべて実行します。2番目の案では、パイプライン化された構成が使
フォーマンスなシステムを構築することは、全世界のシステム開発者
用され、処理の各ステップが専用のスレッドを持ちます。
にとって困難な課題です。Simics仮想化プラットフォームは、このよ
うな課題を容易、かつ迅速に解決し、低リスク化するためのシステム
グラフは、対称的な構成での方が十分な負荷分散が行われ、4つのプロ
開発方法を提供します。Simics仮想プラットフォームを使用して物理
セッサコアすべてを適切に使用できることを示しています。
ハードウェアを仮想化、更に実ハードでは実現し得ない開発方法を強
一方、パイプライン化された案は、パイプライン処理の1つの段階が他
化することで、開発対象のシステム機能に対する詳細情報と知見が得
の2つのステップよりもかなり重いため、同様に負荷を分散することが
られ、デバッグを高速化し、システムおよびソフトウェアのアーキテ
できません。他のテストでは、対称的なソフトウェア構成を採用する
クチャを探求することができます。
ウインドリバーは組み込みソフトウェアとモバイルソフトウェアのリーディングカンパニーです。
企業がデバイスソフトウェアを、より早く高品質かつ低コスト、かつ高信頼性で開発、運用、管理することを可能にします。
ウインドリバー株式会社
■販売代理店
東京本社
〒 150- 0012 東京都渋谷区広尾 1-1-39 恵比寿プライムスクェアタワー
TEL.03-5778-6001(代表)
大阪営業所
〒 532-0011 大阪市淀川区西中島 7-5- 25 新大阪ドイビル
TEL.06-6100-5760(代表)
www.windriver.co.jp
© 2012 Wind River Systems, Inc. Wind River、およびVxWorks は、Wind River Systems, Inc. の
登録商標です。記載されているその他の商標は、各所有者に帰属します。
詳細:www.windriver.com/company/terms/trademark.html Rev.06/2011
120831WRKK