osc 2012 hokkaido でのプレゼン資料
DESCRIPTION
2012/06/17 に開催された、OSC 2012 Hokkaido での、セミナーのプレゼン資料。TRANSCRIPT
Kinect から OpenCL まで
イマドキの組み込みシステムについて語ろう
株式会社サムシングプレシャス
古賀信哉
札幌市在住
(株)サムシングプレシャス代表取締役
組み込み機器分野に軸足を置いたソフト屋
Microsoft MVP: Windows Embedded http://mvp.microsoft.com/profiles/A3D3BFEA-8A25-4960-9870-
1FBE11FDCA28
使ってきたプログラミング言語
UtiLisp, Scheme, C++, C, Objective-C
Java, ARM アセンブラ, C#, etc.
ET ロボコン北海道地区大会実行委員会
モデル駆動開発(UML 設計記述と実機動作)
役割:審査委員長&技術委員長(2011, 2012)
Device2Cloud コンテスト審査委員会 http://www.d2c-con.com/
センサー + CPU ボード + クラウドサービス
役割:技術委員(長)
どちらも、組み込みシステムに関する
コンテスト
Arduino から Armadillo-800 EVA まで
Armadillo-800 EVA Arduino Uno
NXTway-ET
(ET ロボコン)
Arduino: AVR 8bit MCU (16MHz)
• SRAM: 1~8KB, Flash: 8~128KB (Uno has 2nd AVR 8bit for USBSer)
ET ロボコン: ARM7TDMI 32bit MCU (48MHz)
• with AVR 8bit MCU (8MHz)
• RAM: 64KB, Flash: 256KB
Armadillo-800 EVA: ARM Cortex-A9 (800MHz)
• with SH4A (600MHz), PowerVR SGX540 (within the package/die)
• RAM: 512MB, Flash: 8GB (eMMC)
プロセッサ (CPU) のクロックやメモリ容量では、決まらない。
ちなみに・・・
僕の入社時の「配給」マシン:
SPARC station SLC
Fjitsu MB86901A/sun4c 20MHz
RAM: 8MB/16MB
diskless
単機能
「汎用」プラットフォームではない
PC, スマートフォン, タブレット
メンテナンスのコストが高い
アップデートの工夫が必要
ex. Mars path finder
大量製造
コストダウンの圧力が高い
POS 端末
据置型、携帯型
ハンディターミナル
宅配便、検針機
アーケードゲーム
キオスク端末
x86 + Windows Embedded XP/Standard
工場のライン制御(eg. 計測機)
品川駅の自動販売機
ネットワークカメラ
ドライビングアシストコンソール
医療機器 (x86 + Linux, and GPU)
「映像」カルテ用の録画/再生機
遠隔地診断補助用の大量画像圧縮機
個々の要素技術は、他の分野と共通するものが多い
OS
uITRON →Linux, Windows (for embedded)
プログラミング言語
C/C++, Java/C# (たまにアセンブラ)
インターネットアクセス
デジタルTV、IoT
ET ロボコンの例
コンテストの対象:組み込みに特化しているわけではない
Bluetooth 利用モデル
クラウドコンピューティングとの相似性
リソース制約と時間制約のある端末
より豊富なリソースの「サーバ」
サーバとの間の通信の隘路
適用される局面が違う→各々の重要さが異なる。
信頼性
低消費電力
ハードウェアのパフォーマンスを、最大限に引き出す
メンテナンスのコストが高い!
大量製造:コストダウン圧力!
(運用コストを含む)
ハードウェアの特性
SoC (System On Chip) 化
様々な周辺機器コントローラが内蔵される
CPU の演算能力よりも、I/O がボトルネック
グラフィクスはプロセッサ内蔵が普通に
ノート PC やモバイル機と共通に
プロセッサのパフォーマンス向上
ARM 全盛
PC; Windows タブレットでも!
クラウド連携
Android
Siri
画像処理能力の進化
デジタルカメラ
iPod touch/iPhone
Kinect
GPU コンピューティングの台頭
Android 端末の電池もたない問題
ソフトウェアアーキテクチャの共通化/統一化の必要性
電源管理のサブシステムとドライバフレームワーク
Linaro
Windows 8 での取り組み
高度なグラフィクス
組み込み機器用プロセッサ(SoC)のグラフィクス機能が強化
Freescale i.MX3x, 5x, 6
TI OMAP3, 4
NVIDIA Tegra
組み込みプラットフォーム/OS のグラフィクス機能も強化
OpenGL ES 2.0
Flash, Silverlight for Embedded
CPU の省電力化
SoC 化
単純化(スーパースカラ/out-of-order)
CPU の並列化:周波数増大から並列度向上へ
複数の ALU(ハイパースレッディング, SIMD)
マルチコア化
CPU と GPU を同じダイに
バス消費電力を抑える
GPU の積極活用:CPU との性格の違いを活かす
NVIDIA Tesla 20 シリーズ
Tesla M2050
並列プロセッサコア:28, メモリ:3GB GDDR5
TSUBAME 2.0
2010年11月のスパコン Top500 ランキング4位
日本最速(※2011年6月に、京が1位に!)
2010年11月の Green500 で2位
IBM BlueGine/Q, 国立天文台 GRAPE-DR に次ぐ
958.35 MFLOPS/W (1192TFLOPS)
京:828.67, BlueGineQ: 1684.20
ピーク時消費電力:1MW以下(京は 9.89MW)
典型的な構造
AMD Radeon HD6970 NVIDIA GeForce GTX580
SIMD 型 ALU の列(8~16)
出典: “Heterogeneous Computing with OpenCL (2012, Morgan Kaufmann)
大量の(並列動作)ALU と、単純な制御回路
データ並列処理に、大きな威力を発揮
浮動小数点演算
プログラマブルシェーダを発展させたアーキテクチャ
出典: “Programming Massively Parallel Processors” (2010, Morgan Kaufmann)
ET ロボコンでの例
弊社の事例
ダウンロード実行:アップデートの改善
Everything over HTTP, evertything over
JavaScript!
アプリケーションの開発効率の重要性
サービス進化への追随
JSX by DeNA とか
ジェスチャー
マルチタッチのタッチパネル
NUI (Natural UI)
組込み機器の、新しい使われ方
手術中に PC を操作(Kinect)
デバイス単体ではない
クラウド上のサービスまで含めた、全体としてのアプリケーション/システム
サービスまで含めた製品づくり
大規模化するソフトウェア開発
労働集約から知識集約へ
ET ロボコン
ソフトウェアの再利用促進
知識集約のために
モデル駆動開発
大規模開発のリスク軽減
プロダクトラインへ向かって
Device2Clolud コンテスト
「新たなサービスを生みだす力を持ったデバイスを!」
組み込み開発/デバイスアプリケーション開発と、クラウド上のサービス開発を繋ぐ