=========================================================================== 分科会F3 次世代組込みシステムアーキテクチャを考える C会場 参加人数30人程度 =========================================================================== ポジショントーク ----------------------------------------------------------------------------- 藤懸さん : SWEST4では開発プロセス設計手法やマネージメントなどの方向のセッション が多く,技術的な話が少ないため,無理やりこのタイトルでセッションを作った. ベースとして去年のSWEST3での 「プロセッサ・LSIにこんな機能は要らない/欲しい」の意見は,   ・プロセッサアーキテクチャはシンプルであって欲しい.  ・1つの汎用的かつ万能なプロセッサが欲しい.  ・ソフトウェアのデバッグを支援する機能が欲しい. 今回のテーマ 次世代の組込みシステムのアーキテクチャ(プラットホーム)はどうなるのか ハードウェア,ソフトウェアアーキテクチャはどうあるべきなのかを議論 したい。 次世代の組込みシステムとは? ネットワーク家電 ・全ての家電製品にIPを割り当て無線でLANに接続され,ルーターを介し てインターネットに接続されている. 現在よりも,ちょっと進歩した程度か(現在+アルファ). 次世代への方向性 : どちらか? ソフトウェア指向 ・ほとんどの処理をソフトウェア(プロセッサ)で実行する. ・専用回路の新規設計は行わない. ・LSI設計者は失業する? ハードウェア指向 ・LSIの面積が余っているため,積極的にカスタム回路を使いソフトウェ アを動きやすいようにする. ・場合によってはテンシリカのXtensaのようにプロセッサもカスタマイズ する. ソフトウェア指向の利点 最近の組込みプロセッサは高性能かつ低消費電力.  ・従来はHWで行っていた処理をSWで実現 多機能化するため機能は複雑化しているため,HWより開発期間が短縮化で きるSWで実装した方がよい. SWの方が柔軟性,拡張性に優れ,設計途中の仕様変更が容易にできる. 少量多品種の設計ならLSIを作成するよりコストの点で有利である. 全部ソフトウェアで作ればそれでいいと言う意見がありますが これについてどう思いますか? ----------------------------------------------------------------------------- 石山さん: ソフトウェア屋ですが,ソフトウェアだけではシステムは作れない. ネットワーク機器を設計している. 高性能 1Mbps のIP転送に60MIPSの性能が必要である.10Mbpsにすると1桁上昇す る.プロセッサが早くてもメモリアクセス等システム全体の実行速度が 必要.SW,HWをうまく合わせたアーキテクチャーが必要である. 低消費電力 CPUより専用ハードウェアの方が低消費電力 & モード毎電力制御が容易. SWESTでもConfigurablel Logic / Processor の話があり,ソフトウェア主 導だけではつらい. 藤懸さん: まっとうな意見で現在の状況ではこうだと思いますが,次世代を考えるとど うなのでしょうか. 南角さん: ソフトウェア屋ですが,全部HWで実現すればよいのか. IPコアを買ったのですが,これはSW,HWのどちらが分からなかった. ある機能があってそれをHW,SW両方で実現できる. そもそもHW,SWと区別する必要がないのではないのか. 石山さん: ポジションペーパーを読むと, ・組込みシステムはこれから汎用的なものになっていく,それでいい. ・汎用のコンピューターと組込みシステムのなかのシーケーンサー等のコン トローラー系はそもそも全然違うもの. という意見がある.このような文を書いた人の意見をいただきたい. A氏: 後者の方のペーパーを書きました.内容は,今使っているプロセッサは計算 のための処理をするためのアーキテクチャーとして作られた.それが発展し て早く安くなったため組込みに使われている. それに対して,組込みでは実世界に対応するためのシステムを作っている. 組込みの難しさは,コンピューターアーキテクチャーを代用品として使い回 しており,そのギャップをSWで穴埋めしているため,これがバグが発生する 原因となる.そのため,いろんなことが言われているおり,オブジェクト指 向などの方法論が出てきている.穴埋めがなければ, オブジェクト指向を使 わなくてもよく,ソフトウェア屋は余計な仕事をしなくてもすみ,やりたい 仕事ができる. B氏: 前者の方のペーパーを書きました. 家電メーカーではソフトウェア屋の立場は弱い,なぜならようは箱を作って 売ってなんぼの商売だから.ソフトウェアは見えないものだから.ソフトウェ アがツールが欲しいと言っても認められない. しかし組込みは制約は大きい,汎用的に向かえばいいといったのは,メーカー でソフトウェア屋が生き残っていくために,汎用的なものが家電に組込まれ, ソフトウェア屋の仕事が増えて,会社での立場が上がると思う. しかし,最近意見が変わって,最近のPDAは組込みと呼べない.こういう世界 でソフトウェア書いていると上はパソコンと同じ世界を要求してくる.しか しながら,所詮組込みなのでPCと異なりメーラーの起動に10秒かかってはい けなくソフトウェア屋さんの負荷が上がる.これを解決するにはHW屋と役割 分担をして協調しないとSW屋が苦しくなる.そのため,全てをSWで実現して もSW屋はハッピーにならない. C氏: ソフトウェアをやっている. HWとSWが仲良くやるというのは賛成。しかし、まだ次世代に間に合うような レベルには達していない。実時間制約が極めて厳しいと言う部分ではハードウ ェアと併用していくのがよいのでは. 組込みシステムで例えば全ての機能をSWで実現すると1つのプロセッサを無理 やり複数のタスクで共有している.そのためリアルタイム性が必要(本質的に PAR)が必要な部分はHWで実現する必要がある. D氏: SW、HWをそもそも分けるのがおかしい.まずやりたいことがあるのではない のか.汎用プロセッサは汎用ではなく,ベンチマーク対応プロセッサであり, ある特定のアプリケーションのみで高速であり,それを組込みに使っていいのか. USB等を作っているが,組込みは分野によって用途が変わるので,その用途に 応じて少しSWを助けるHWを作ると性能がでる. このようなことを考えるとSW、HWと切り分けて余計な苦労をしているのでは ないか. 石山さん: おっしゃる通りですが, SW,HWに分けるのが理想だが,現実にうまく行っているのでしょうか,行か ない場合の原因はなんでしょうかそこら辺の議論が必要なのではないのでしょ うか. 規模の違い,大きければ要求が分析可能なのでしょうか. みなさんの意見を聞かして下さい. 南角さん: SWをHWの仕様と考えて使うのがいいと思う. 現実解としてはCPU+DSPだが,最終的にはSWは仕様とみなし,最終的にすべて HWにするのが理想なのではないか. A氏: 私のした話は,次世代,次次世代を考えている.コストの制約があり,マー ケットの関連があるので実現は理想なのかもしれないと考えながらも理想と して書きました.SWとHWの切り分けより,システムの前提が処理をシーケン シャルに実行するものしかないのが問題である. 現場でソフトウェアを作っていて一番の問題は非同期の取り扱いでこれが一 番難しい.アルゴリズムは難しくても難しさが違う. 平行性,非同期が一番難しい理由を考えると,そもそもそれを取り扱うよう にシステムが設計されていないのが原因だと思う.それを誰かが解決してく れないかなと考えている. 以前にITRONのメッセージをチップにするアーキテクチャを見た.これも一種 の方法かなと思う.この話がもう少し進んでいき,イベントドリブンをベー スにしたHWが出てきてもいいのではないか.高速化のためやシステムの性能 を上げるよりも,SWが楽をするためのアーキテクチャの構造変化が出てきて 欲しい. B氏: ネットワーク部分が全てハードウェア化されてておしい.基本的に事業所 では,HW,メカを作るのがメインで,ソフトウェアは付加的なものと考えて いる.これ以上リソース制約が強いところに,TCP/IPは実装したくない.こ れがHWで実現されてば,SWは別のところに力を入れることが出来て幸せにな る.HWを使うアプローチが変わっていくことが大事では. E氏: SW、HWだろうがHW化したときの寿命とSW化したとこの寿命が違う. 寿命が長いものほど真剣に作らなければならない. コデザインでは一回毎にカスタムで作るが,これは問題があるのではないか. 仕様等変わるかもしれないものはやはりSWでするのがいい. 寿命という観点で見るのも重要だと思う. F氏: HWの進化を考えると,2つの方法があって,Cで書けばHWになるようになって きたので,HWとSWの壁をなくして,Cでシステムを記述してくと世界になる と思う.もう1つは,HWもオブジェクト指向になる世界,ある論理的インタ フェースになってしまえば,その先はどうでもよくなるそのようなアプロー チになってくるのではないか.デバイス自体がもうすこし論理的なインタ フェースを持つようになれば楽になる. これからユキピタスだとか言われる時代で,それ専用のコードを使う側が書 くのは馬鹿馬鹿しい.もう少し論理的なインタフェースで切れてちゃんと動 くようなデバイスを考えるのが重要なのではないか. 南角さん: 前提の確認. システムLSIの回路データはSWなのかHWなのか? HWと思う人 13人 SWと思う人 13人 藤懸さん: 普通資材発注の場合はどうしているのでしょうか. 富山さん: IPがHWがSWかについてですが,LSIの設計ではすべて計算機上で設計して いるおり,ホスト計算机上ではSWです. 設計段階ではHWかSWか分からない部分が多い. あるものがHWかSWかを判断するかは,LSIになるか,プロセッサ上で動作す るかで決まる.設計段階では分からない. G氏: ハードウェア屋です. HWかSWかは,原点に戻ってコンフィギュラブルなものはSWとしないと,言葉 自体としておかしいし分けられない. 南角さん: FPGAでは実行中に書き換えることができるので,同じデータでもFPGAに乗る とSWと呼びASIC上にのればHWと呼ぶのではないでしょうか. 石山さん: HWが何かの記憶からメモリからロードできるようになった時点で,SWと呼べ るものではないでしょうか. H氏: IPは2種類ソフトIP、ハードIPがある. ソフトIP : 論理合成可能 ハードIP : マスクパターン ここで議論する上では,カスタマイズできるかできないかという観点で議論 すべきだと思う. 高田先生: 言葉の問題ですが,ソフトIP,ハードIPとソフトウェアIPとハードウェアIP は異なる. 藤懸さん: 話が2つありました. 再構成可能という観点と,最終的にどう実装されるのかという話. どっちで決めればいいのか,どっちかというのは本質的ではないような気も しますが.... 石山さん: さっきのお話でソフトIPはオブジェクト的に扱えるような気がしましたがど うなのでしょうか. C氏: オブジェクト的にHWを扱いたい. コンポーネント的オブジェクトの話でこの技術はこの10年で熟成してきた. しかし,組込みの世界ではこの分野は遅れている.ある程度コンポーネント 的な考え方が必要なのではないか. この観点でみるとMSが一番進んでいる(COM)のではないでしょうか. このような枠組みが組込みでも必要なのではないでしょうか. 代表的なコンポーネント指向にはMSのDCOM,CORBAがありこれらに代表的なも のとしては,   IDL : オブジェクト的なインタフェースを定義するもので,言語に依存し      ない定義.  ESCOT : 考えた機構の名前 IDLをベースにしてインタフェースを決める.これにより,例えばJavaか  ら ITRONを呼ぶ場合,IDL経由で呼ぶことができる. CORBAがあるのでIIOPを使って呼ぶことができる. そこで,HWもIDLを使って呼べるようにするアーキテクチャを考えた.(特許 を出した) 同意してくれる人がいて心強いと思いました. これではSWとHWが同等に扱えると考えている. 石山さん: F氏の話と同じ意味でしょうか F氏: そこまできれいにやるとオーバーヘッドが大きくなると思いますが,実装を 考えるといろんな方法があると思いますが,取り扱う枠組みとしてはいいの ではないでしょうか. C氏: オーバーヘッドは,元々のIDLの定義では,CORBAから呼び出されるのでオー バーヘッドは発生するが,組込み用のIDLを扱う手段,軽い組込み用のIDLを 定義すれば,十分軽く使えるのではないでしょうか.C++程度のオーバーヘッ ドを予測しています. F氏: 昔から,組込みでの一番の問題はデバイスドライバの作成で,毎回作らなけ ればならないのが問題となっている. デバイスドライバ単位で流通するようになれば,使う側の負担は減ると思い ます. 石山さん: オブジェクト化はいいと思いますが,なんでもつながるオブジェクトは危険 と思う.モーターとタイマーを考えるとモーターとタイマーを組み合わせた 機能はもちろんある. システムとして見たときのデバイスは1つの目的にのみに使うわけではない. 組込みシステムは様々な視点で見て何が大事なのか見る必要がある. F氏: クラスにきちっと定義すればよいのではないか.標準的なクラス(MSのドライ バ)を決めればよい. 石山さん: いろんなレイヤーで切れるということですか. F氏: 標準的なインタフェースを標準化してけばいいと思う. G氏: C氏の図に賛成です.FPGA等書き換え可能なHWがあるので,オブジェクトとし て考え,入れ替えるような点でも利点があると思う. 高田先生: 確認したいのですが,ハードウェアコンポーネントは,HWだけではなくデバ ドラ等SWも含まれている. 反対しているわけではないですが,これは入り口としてはいいと思います. この図はSW中心のビューであると思います.計算機の全てのリソースは,SW が全て制御して,HWはそれに従うものであるというふに見える. C氏: 賛成できない.ハードウェアコンポーネントのインタフェースを簡素化でき る.IDLをダイレクトに呼び出すインタフェースをHW化するのはあまり大変で はないと考えている. インタフェースがこのように決まることで,HW屋も楽になるのではないだろ うか. 高田先生: HWはインターフェイスを曖昧に作成している.我々はSpecCでチャネルを使っ て同じようなことをしている.SW屋い都合のいいようにHWを作る. この絵にはバスはない,シングルプロセッサ等HW屋が興味を持つようなもの はこの絵にはない. 石山さん: HWをサービスを提供するコンポーネントと考えた図だが,IDL同士が通信する メカニズムなのどがHW屋が興味を持つところ. C氏: 今の意見は高田先生の意見に反対というように聞こえましたが,つなぎ方が 問題であって,それを重視したいという話. 高田先生: この図は論理的なモデルで,バスとかいうレベルで考えると思う. 石山さん: これを見てスケジューイングの話を考えても難しそう.この機能の実現方法 について議論をしたい.こういうアプローチはいいなと思う. C氏: 目新しいことをしようとしているつもりではなく,従来の方法で行いたい. CからC++を呼び出すようなイメージの軽いもの.このようなインタフェース があることで,簡単にテストにできるのではないかと考えている.昔はVBで 書いたものが商品にならないと言われていましたが,現在では商品になるよ うにこういったものが流通するときがくると思う. 富山さん: SW屋の書く図と思いました. HWがどうみるかというと, プロセッサ(演算機)があると考える プログラムがあり, プログラムをいれるRAMがある バスがあり GUIがあるのでグラフィックコントローラーがある システムを見る点がSW屋とHW屋と違うという点を考えた. F氏: 将来的にはGUIの部分を1つのチップと考えてそこを接続するインタフェース を考えれば分かりやすいと思う.コンポーネントを1つチップにしてしまえば よい. 石山さん: 論理的なものはいいが,ハード的なインタフェースを決めたとたんに,バス のバスのケージューリングなど別の話がででくるような気がする. 富山さん: HW実際に作るとなると,それとは答は違うかもしれませんが,HWの設計は簡 単になってきているが,このままいくと破綻するのではないだろうか.なぜ かというと,技術的な問題ではなく固定費(生産個数に依存しない費用)が大 きい.それゆえ,印刷業と呼ばれる. ・製造工場;数百からから数千億円 ・マスク(ネガ):>一千万円 ・CADツール:>一千万円/本 ・設計者:>500万円/人年 お金をかけるといいものは作れるが,それを回収できるかは分からない. F氏: 良く使う機能だけASICで作りそれいがいの機能はFPGAにするといいんではな いでしょうか.FPGAも早くなってきているので,問題はないのではないでしょ うか. 富山さん: SW指向ということで,プロセッサで全てするしかないでしょうか. 高田先生: CPUにFPGAが付いたものを大量生産するしかないのではないようか. ペイする分野は,ゲーム機器や携帯ぐらいじゃないでしょうか.HW屋が失業 するわけではなくFPGA上のHWを設計すればよい,CAD屋はFPGAの方のツールに 力をいれた方がいいと思う. 藤懸さん: HW屋にとってFPGA設計は楽しくない.FPGAそのものの設計は楽しいが. F氏: 同じインタフェースでいろいろなものが扱えるのが重要だ. B氏: FPGAはHW屋の領域で失業しないという話ですが,HW屋はまずいんでないでしょ うか. SWで全て書き,その一部を合成してHWをつくるものが出来ればHW設計者が必 要でなくなる世界は来るのですか? 高田先生: 高位合成が完璧になったらどうなるかといった話ですが,SWはリソースが増 やせない世界,HWは並列にリソースが増える世界という意味では違う.ここ 10年は大丈夫でしょう. I氏: コンフィギュラブルなものはどう思われますか. 富山さん: コンフィギュラブルプロセッサは実用性が疑問がある.HWとSWの検証をやる 価値があるアプリケーションがあるかという点に疑問がある. やるべき価値があるものがあれば使う価値はある. 石山さん: いろいろ意見がありそうと思います. G氏: FPGAでHW化するのは,SW的には関数単位でHWモジュールに分けることであり, プロセッサをいじるというのは,プロセッサに応じてOSを書き換える世界と 同じなのではないでしょうか. 石山さん: おっしゃる通りと思いますが,そこをがりがり書き換えなければならない分 野が相当あると思います. 高田先生: コンフィギュラブルプロセッサ発表を聞いて思うは,並列性とビット等を扱 うネットワーク系では効くと思う.SW,HWそれぞれの利点のガイドラインが ないと両方が柔軟に使いこなせる環境がないと使いこなせないなのではないか. F氏: 使いこなすという点を考えると,OSを早くすよりアプリを早くすればいいと いう話があるので,プロセッサは汎用的なものを使い,タスク毎という単位 でHW化すればリーズナブルなのではないのか.CPUは2,3種類あればよく,関 数毎にハードウェアにすればよいのではないでしょうか. 高田先生: ビット単位の詰め合わせでは,1命令でパフォーマンスがあがるので捨てたも のではないと思います,どのようなところでは,どうのようにすればよいか という指針があればよいのでは. 石山さん: これまでの話を聞いて思ったことは,過去のSWESTでもありましたが,組込み のシステムを幾つかに分類して,話すことが重要なのではないかと思う. 藤懸さん: うまくいくと思いますが,ドメインが1000とかなると大変. 3,4に分けることは可能であるような気はしますが. 高田先生: SWEST1,2では,KJ方で組込みシステムを分類したが,まとまらなかった. 目的別で分ける必要がある. この議論をするときはこの軸といった感じにする必要がある.目的別に分け ないと無意味だと思う.100万個でる製品と10万個でる製品では話が違う. 石山さん: そのようなこと考えたのは,個数やエンディアン変換は視点の違う話と思え る. 中島先生: このようになってくると,組込みシステム技術者として何が楽しいか.共通 プラットホームがあるのがいいのか,それともいろいろあるのがいいのだろ うか. 高田先生: 全部コモディティ化することは賛成しないが,8割は汎用化して,2割を自社 のノウハウを生かしたもので,早くシステムを作るのが重要であるのではな いだろうか. 中島先生: それは正しいと思いますが,競争力のある部分が分からなくて,コモディティ の部分だけになってしまうような気がします.次世代,組込みシステムを使っ たサービスとしてどのようなものを作ればよいかという議論をするべき時期 に来ているような気がする. 高田先生: ここでそようような議論をすべきかと言う点ですが,もちろんするのはいい と思いますが,次世代のOSを考えるときは次世代アプリケーションを考えな くてはいけない.そして次世代のキラーアプリはなんだろうとブレーンストー ミングをするのですが,なかなか出てこない.Iモードメールがキラーアプリ になることはエンジニアは予想していなかったが、社会学者は予想していた みたいだった。.このようなことは技術やに議論させない方が良いのではと 思います。 南角さん: おもしろいからといってそれをやっていてはいけなく,誰でも作れるものに なれなければならない.組込みもそうなっていかないとだめだと思います. 10年後15年後、時代ごとにおもしろいものがある. ??: 両者の意見に賛成 複数のものが組み合わさって機能を果たすというのは組込みシステムではな い.ソフト屋としては個々のものはクオリティ化していくとしてそれ以外で やるべきことも増えていくその辺を議論をしていくことが大事だと思う B氏: 個々のものは汎用的なものを使って,今後は,その組合わせを考える必要が あると思うので,中島先生の意見に賛成です. C氏: 成熟すると素材になるのではないか. 個人の感性を刺激する仕事に移っていくのではないか.PCはいまはそうなっ ている. 石山さん: 成熟していくと,面白味がなくなっていくとは思いますが,後10年は大丈夫 でしょう. I氏: 若い人が入ってきて思うことは,ソフト、ハードとも似成熟している。また、 試作機ができたとき奪い合ってチェックする.この状況を見るとそれほど悲 観する必要がないのではないのか.永遠にものを作るという喜びはなくらな いのではないでしょうか. 高田先生: 組込みの注目は汎用技術の進展である。それが続いている限り楽しいような 気がする.10年20年はそのような楽しい状態がつづくのでは。 要素技術の進歩が止ればどうなるのだろうという感じです。 石山さん: まとめではありませんが。 アーキテクチャを考える点で,オブジェクト指向的なアプローチという話と, コンフィギュラブルなものも視野に入ってくると思いました. この辺の議論はまだまだしなければいけないと思いました. コンフィギュラブルなものはFPGAの特許の話もあっていろいろおもしろいも のがでてきた,そのような関係もあり,これから当分おもしろい状況が続く と感じました. 記録者自身の感想 ハードとソフトに対する設計の捉え方が人によって違くて勉強になりました。 また、発言するときもっとはきはきと話してほしい人もいました。そのような 点で議事録とりに苦労した点がありました。 今までのエンジニアはきっと設計のしやすさからハードとソフトに分けるとい う手段を使ってきたのでハードとソフトの分け方を急に変えていくのは難しい だろうと思いました。