MIPSセミナ 最後のパートのtudaった記録
- RT @himamura: 台湾、中国系MIPSライセンスを受けたのファブレスメーカー http://ow.ly/i/2jA4
- RT @himamura: MIPS 32bit Processor Core Familys 74Kの赤字の注釈に注目! http://ow.ly/i/2jAh
- RT @himamura: モバイルプラットフォームの例 左のオレンジの部分がARMだったが、某社がMIPSをのマルチコアに置き換えてるらしい。 http://ow.ly/i/2jAk
- 簡単にMIPSコアのおさらい。4KSdのサポートはなくなって、microMIPSができた。
- MIPSはシングルコアでパフォーマンスが高いが、それは理想的な環境において。リアルとは違う。パイプラインが1つの場合、多くのタスクが動くのでスイッチングがパフォーマンスを縛る。ハードでもロードストアやキャッシュのミスヒットで外部メモリを使う。IOでも。スタック操作も。
- 60-80%はidle状態でパフォーマンスに貢献しない。マルチスレッドで遊んでいるところを有効に使う。シングルプロセッサコアをより効率的に。(ふつーだな)
- スレッドコンテキストというユーザーレベルのプロセッシングをコンロとロールできるハードウエアユニットを実装している。スレッドコンテキストに応じて。OSも並列で動作させられる。ハードとの界面にはQoSを。
- クロックの割にメモリが進歩しておらず、ギャップが開いて行く。NormalなLinuxでは、50%も影響が出る。並列化をハードウエアでどうカバーできるか。34kでの実装概念図。実行ユニットはすべて1つの前提。仮想プロセッサ2つ。
- スレッドを単純に増やせばいいというものではない。ハードスレッドでベンチマーク。エンバシーで評価。メモリとの関係などもあるが、スレッドをある程度増やせば有効に活用できる。0.5-0.8IPC。4つ目のスレッドでは効果は低い。3スレッドまで。
- マルチスレッドにアサインするのではなく、切り替えるとどうか。(このへんはわたしにはイメージできないな...) 突出したパフォーマンスが出るのは、QoSの層に依存している部分。
- QoSでリソースを動的にスケジュールできることができる。STBアプリを仮想的に作ってテストした。Linuxでシングルスレッドとマルチスレッド。オーディオはソフトウエアでpthred。
- Audioでの効果。24KEcシングル6.3fps。34Kcスレッド8.45fps。3割改善している。Audio+File I/Oでの効果。AudioはどちらもQoSで高い優先度で設定。そこにIO負荷。シングルではほとんどIOできない。マルチでは空いた時間にIOできている。
- 同じアプリでIOを優先のQoS設定でテスト。オーディオは極端に落ちてしまうが、マルチのほうはオーディオはそれほど落ちていない。単なるマルチスレッドを考慮したものではなく、CPUリソースに注目した実装。
- マルチコアのシステムソリューションについて説明。マルチコアは昔から使われている。MIPS32を使ったSoCの実装例。メイン以外にもセキュリティとオーディオ、それ以外のIPにもMIPSが乗っていたり。アシンメトリックであれば普通にマルチコア。
- シンメトリックな1004K。34Kコアと同じ性能+コヒーレント機能を追加。コヒーレントマネージャは、メモリだけでなく、外部IOも制御している。1004Kは常に4つ乗っているわけではない。リアル2仮想プロセッサx2で4つにしている例もある。自由な構成が作り込める。
- 1004Kでは、IOのコヒーレンシーユニットをはじめて登載。L2メモリやメインメモリにキャッシュがいらない場合は直接制御。メインメモリに行く前にCPU一次キャッシュで完結することもできる。
- BD実装ではストリームにJavaインストラクションが含まれている場合、必要な部分だけCPUに抜き出せる。
- CPUのDMIPSのみを比べる。同一消費電力あたりでは、類似OoOの2コアにくらべ、3コア動作させられる。CoreMark、Javascript benchmark、H.264デコーダでも消費電力で動作させられる。
- (基本的には実行器が1つしかないので、スーパースカラに劣る部分はマルチコア・マルチスレッドで補えて、さらに亭消費電力ですよと言いたいのかな。)
- コア数とマルチスレッドの間でARMとMIPSの比較。3スレッドでピークになるのはどのようなベンチマークでも同じ結果。ソフトやアプリなどシステム全体で眺めた上で性能が決まって来る。そのような状況で1004Kは自由度が高い選択ができる。
- ソフトウエア。Kernel/AndroidはOSSで。DSPライブラリやMIPS32インストラクションはソースで提要。IDEのプラグインの提供。シミュレータなども提供。これをベースにエコパートナーで補ったり拡張したりしたツールがある。
- CGGとCodeSourceryの間に入らず、後者に手を貸している。直接関わらず間接的にコミュニティをコントロールしていく。(それでいいのかな?)
- ロードマップ。64bit fpuを使えるglibcを提供。つい最近。Eclipsの統合環境を2.7として提供。
- プローブについては、オンチップデバッグに対応したものを用意している。マルチスレッドのトレーサーもあり、Eclipsのプラグインから利用できる。
- 74Kのスーパースカラに対応したコンパイラ。pthredの不具合にも対応した。ABIの拡張など。uMIPSに対応したもの。これらを提供予定。Linuxは、マルチスレッド、パワーマネージメント、uMIPS kernel、2.6.29から33にアップデート。
- 3-6ヶ月でkernelのメンテナンスアップデートを行い。追いかけてゆく。Androidは、バイエンディアン対応。QEMMで実行で、実機対応は最近。Flashはadobeと締結、10.1リリース。ActionScriptはオープンソースだがプレーヤーはadobeとNDAが必要。
- yahooのウィジェットもMIPS最適化版を用意。ブラウザでは、V8を最適化。予定ではFroyoは一ヶ月遅れてリリース。ブラウザは64bit fpuを有効に使えるようにする。
- 開発環境について。ボードの更新があった。Maltaボード。標準ボード。実CPU版とFPGA版。Linux Eval Board。1、2万円。24Kコア。ギガルーター用。Android用はシグマ。PIC32のキットも。SEAD-3仮想チッププラットホーム。
- 半分。RT @nhoriuch: どのくらいのキャパの会場に 28人なのでしょうか? RT @himamura:
- Androidアップデート。新しい話はないかな。WebMはオプティマイズ済み。事例は増えている。MIPSのAndroidロードマップ図。Froyoは予定では二ヶ月後。(さっきと違うじゃん) パートナーでマルチコア/マルチスレッドの実機環境が世界初でリリース予定。
- KDDIのSTB。シグマのボード。OESFと連携。
- HomeJINNI。昨年暮。Android TV。CESでのデモ動画。(これはAndroidである必要性が見えないぞ)
- KatDC。AndroidのUI作るキット。パートナー。
- 製品として、Android実装されたものも出ている。マルチスレッドのJIT環境も。myriadのDalvikのオプティマイズ。Flashも。マルチスレッド最適化している。
- MIPSセミナー。質問はなし。どういう人が来ているのだろう?
- MIPSセミナーの今日の資料はWebに掲載予定だそうです。