CELL開発環境の寄稿が面白い。
東芝が開発したCELL向けソフトウェア環境は上位から下位
に向かってこういう層になっている。
・メディア処理フレームワーク
アプリケーションにメディア処理などのAPIを提供する
・ユーティリティライブラリ
SPEスレッドのロードやアドレス解決などを行う。
・リアルタイムスケジューラ
SPE上で実行するスレッドをスケジューリングする
ハイパーバイザー
CELLが備えるLPARを制御するファームウェア
>>556 言われてみれば確かに。いつの間にか贅沢になってた。
PSの頃からCPU>>>GPUだったんだよな。
>>554 今度こそCellGPUで、とか思ってそうな気が
リアルタイムスケジューラ→リアルタイム・リソース・スケジューラ
の間違い。
これはPPE上のOSのスケジューラとは分離して実装したとのこと。
動作時も独立しているとか。
ゲストOSに対して、動的にロードされ、カーネル空間で動作する
んだと。Linux向けには「ローダブル・モジュール」として実装。
スレッドを切り替える際は、そのスレッドのコンテクストを
PPEで保存することで、以前のスレッドを再開させたい場合、
以前のコンテクストを短時間で復元。
コンテクストにはSPEレジスタ、LS、実行中のDMAコマンドなど。
>>559 Javaとかのserializeみたいな機能だな。
この機構を使えばシリアライズしたCellオブジェクトを別SPEや別Cellに転送出来そう。
・このスケジューラには新規にスレッドが追加された場合、
システムとしてリアルタイム性確保可能かどうかを自動的に
判定するアルゴリズムを新規に開発して実装
・スケジューリング・アルゴリズムには「ギャング・スケジューリング」
方式を採用。この方式は同一のSPEモジュールに含まれる全ての
SPEスレッドが、同時にSPE上にディスパッチされるように
スケジューリングする。同期対象のSPEスレッドを常に同時に
動作させ、スピンロックによって同期を実現し、コンテクスト
スイッチによるオーバーヘッドを低減。
・スケジューリングパラメータには「同時実行SPEスレッド数」
「平均SPE処理比率」「先行制約」がある。
「先行制約」とはSPEモジュール間における実行の順序関係。
・スケジューラ以外にもSPEの処理を仮想化する仕組みを
設けた。SPE上のプログラムからゲストOS上のデータに
アクセスする仕組みとか。それによってLinuxのように
メモリ保護機能のあるゲストOSでもPPEと同様にアクセス可能。
・256KBのLS容量にが収まらないことが考えられるため、
「SPEオーバーレイ」と呼ぶ仕組みを実装。プログラムや
データを主記憶上に配置し、その一部の関数だけを実行時に
LSに動的にロードして実行する。SPEオーバーレイにおける
関数の入れ替えは、DMAコントローラが行う。
・変数や関数などのシンボル解決は、ユーティリティライブラリ
が動的にリンク処理を行うことで対応。一般に大きなプログラム
はソースコードのファイルを複数用意し、分割コンパイル後に
リンクする。今回のシンボル解決機能は、事前に行っていた
こうした静的リンク処理を動的に行う。
会社帰りなのに長文乙!
ゆっくりビールでも飲んでくれや
>>561 ハードウェア資源の管理も仮想的に管理出来てるんだね。
セキュア保護もかなり厚そう。
面白い。
・今回開発したプラットフォームにはPPEとSPEを円滑に連携できるよう
専用のフレームワークを用意。XML形式で記述。フレームワークに
よって接続することで、まとまった機能を実現するソフトウェアを
「ソフトウェア・エンジン」と呼んでいる。
・ソフトウェア・エンジンを構成する際は、エンジンの処理内容を
記述する「ソフトウェア・エンジン構成ファイル」、
各モジュールの仕様を記述する「メタデータ・ファイル」がある。
・「ソフトウェア・エンジン構成ファイル」にはアプリケーション・
ソフトウェアがこのエンジンを操作するためのI/Fや、用いる
モジュール名の一覧、モジュール間の接続状況を記述。
・「メタデータ・ファイル」には、PPE用やSPE用が。
PPE用にPPEモジュールのオブジェクトファイルや
入出力ポートの名前など。SPE用にはPPE用と同様の
内容に加え、SPEスレッドの実行比率、スケジューリング
パラメータなど記述。メディア処理フレームワークは、
これらの設定ファイルを基に、ソフトウェア・エンジンを
自動的に構成。
・これらのプラットフォームを用いて、実際にGUIを備えた
アプリを試作。BSデジタルのHDTV放送を含むデジタル
放送の視聴エンジン、HDDに記録したMPEG2形式の
コンテンツを復号再生するエンジン、同じくHDDから
フルHDTV画質のH264を再生するエンジン、の3種類を
用意。
・試作の結果、以下の3点を確認できた。
・GUI部分とソフトウェアエンジンを独立に開発できる、
・メディア処理フレームワークにより自動的に構成したソフトウェア
エンジンが動画ストリームを円滑に処理できる
・ソフトウェア・エンジンを構成する各SPEモジュールがリアルタイム
性を維持して動作する
それにしても東芝すげーな。既にここまでプラットフォーム化が
進んでいるとは。結構驚いた。
製品化もそんなに遠い話でもなさそうだな。