cell37

このエントリーをはてなブックマークに追加
557名無しさん必死だな
CELL開発環境の寄稿が面白い。
東芝が開発したCELL向けソフトウェア環境は上位から下位
に向かってこういう層になっている。
・メディア処理フレームワーク
アプリケーションにメディア処理などのAPIを提供する
・ユーティリティライブラリ
 SPEスレッドのロードやアドレス解決などを行う。
・リアルタイムスケジューラ
 SPE上で実行するスレッドをスケジューリングする
ハイパーバイザー
 CELLが備えるLPARを制御するファームウェア
558名無しさん必死だな:2005/07/01(金) 22:00:13 ID:4tOKisIv
>>556
言われてみれば確かに。いつの間にか贅沢になってた。
PSの頃からCPU>>>GPUだったんだよな。
>>554
今度こそCellGPUで、とか思ってそうな気が
559名無しさん必死だな:2005/07/01(金) 22:06:08 ID:dNAOezyh
リアルタイムスケジューラ→リアルタイム・リソース・スケジューラ
の間違い。
これはPPE上のOSのスケジューラとは分離して実装したとのこと。
動作時も独立しているとか。
ゲストOSに対して、動的にロードされ、カーネル空間で動作する
んだと。Linux向けには「ローダブル・モジュール」として実装。
スレッドを切り替える際は、そのスレッドのコンテクストを
PPEで保存することで、以前のスレッドを再開させたい場合、
以前のコンテクストを短時間で復元。
コンテクストにはSPEレジスタ、LS、実行中のDMAコマンドなど。
560名無しさん必死だな:2005/07/01(金) 22:16:51 ID:bFFrbCA8
>>559
Javaとかのserializeみたいな機能だな。
この機構を使えばシリアライズしたCellオブジェクトを別SPEや別Cellに転送出来そう。
561名無しさん必死だな:2005/07/01(金) 22:18:08 ID:dNAOezyh
・このスケジューラには新規にスレッドが追加された場合、
システムとしてリアルタイム性確保可能かどうかを自動的に
判定するアルゴリズムを新規に開発して実装

・スケジューリング・アルゴリズムには「ギャング・スケジューリング」
方式を採用。この方式は同一のSPEモジュールに含まれる全ての
SPEスレッドが、同時にSPE上にディスパッチされるように
スケジューリングする。同期対象のSPEスレッドを常に同時に
動作させ、スピンロックによって同期を実現し、コンテクスト
スイッチによるオーバーヘッドを低減。

・スケジューリングパラメータには「同時実行SPEスレッド数」
「平均SPE処理比率」「先行制約」がある。
「先行制約」とはSPEモジュール間における実行の順序関係。

・スケジューラ以外にもSPEの処理を仮想化する仕組みを
設けた。SPE上のプログラムからゲストOS上のデータに
アクセスする仕組みとか。それによってLinuxのように
メモリ保護機能のあるゲストOSでもPPEと同様にアクセス可能。
562名無しさん必死だな:2005/07/01(金) 22:26:44 ID:dNAOezyh
・256KBのLS容量にが収まらないことが考えられるため、
「SPEオーバーレイ」と呼ぶ仕組みを実装。プログラムや
データを主記憶上に配置し、その一部の関数だけを実行時に
LSに動的にロードして実行する。SPEオーバーレイにおける
関数の入れ替えは、DMAコントローラが行う。

・変数や関数などのシンボル解決は、ユーティリティライブラリ
が動的にリンク処理を行うことで対応。一般に大きなプログラム
はソースコードのファイルを複数用意し、分割コンパイル後に
リンクする。今回のシンボル解決機能は、事前に行っていた
こうした静的リンク処理を動的に行う。
563名無しさん必死だな:2005/07/01(金) 22:28:05 ID:Wcdhkn35
会社帰りなのに長文乙!
ゆっくりビールでも飲んでくれや
564名無しさん必死だな:2005/07/01(金) 22:38:07 ID:FVa2b1DF
>>561
ハードウェア資源の管理も仮想的に管理出来てるんだね。
セキュア保護もかなり厚そう。

面白い。
565名無しさん必死だな:2005/07/01(金) 22:49:46 ID:dNAOezyh
・今回開発したプラットフォームにはPPEとSPEを円滑に連携できるよう
専用のフレームワークを用意。XML形式で記述。フレームワークに
よって接続することで、まとまった機能を実現するソフトウェアを
「ソフトウェア・エンジン」と呼んでいる。

・ソフトウェア・エンジンを構成する際は、エンジンの処理内容を
記述する「ソフトウェア・エンジン構成ファイル」、
各モジュールの仕様を記述する「メタデータ・ファイル」がある。

・「ソフトウェア・エンジン構成ファイル」にはアプリケーション・
ソフトウェアがこのエンジンを操作するためのI/Fや、用いる
モジュール名の一覧、モジュール間の接続状況を記述。

・「メタデータ・ファイル」には、PPE用やSPE用が。
PPE用にPPEモジュールのオブジェクトファイルや
入出力ポートの名前など。SPE用にはPPE用と同様の
内容に加え、SPEスレッドの実行比率、スケジューリング
パラメータなど記述。メディア処理フレームワークは、
これらの設定ファイルを基に、ソフトウェア・エンジンを
自動的に構成。
566名無しさん必死だな:2005/07/01(金) 22:55:00 ID:dNAOezyh
・これらのプラットフォームを用いて、実際にGUIを備えた
アプリを試作。BSデジタルのHDTV放送を含むデジタル
放送の視聴エンジン、HDDに記録したMPEG2形式の
コンテンツを復号再生するエンジン、同じくHDDから
フルHDTV画質のH264を再生するエンジン、の3種類を
用意。

・試作の結果、以下の3点を確認できた。

・GUI部分とソフトウェアエンジンを独立に開発できる、

・メディア処理フレームワークにより自動的に構成したソフトウェア
エンジンが動画ストリームを円滑に処理できる

・ソフトウェア・エンジンを構成する各SPEモジュールがリアルタイム
性を維持して動作する

それにしても東芝すげーな。既にここまでプラットフォーム化が
進んでいるとは。結構驚いた。
製品化もそんなに遠い話でもなさそうだな。