セッションD2: コデザイン 座長 渡辺@CATS, 石原@九大 20名程がメイン会場に集まった。 最初、九大の安浦先生から、コデザインに関する現在の一般的な考え方、即ち、 C/C++言語による仕様記述=>ソフトとハードの分離=>ハードウエア記述言語(HDL)+ コンパイラ(=ソフト部分のROM化)の生成に関する話があり、 C/C++言語による記述が一般化されれば、 C/C++の使用人口はHDLのそれに比べ 格段に大きいことを考えれば、なんらかのブレイクスルーが得られるだろうという 意見を述べられた。 ついで、阪大の今井先生から、最近の仕様記述言語動向についてのサーベイが 述べられ、分類の指標として、Semantic-Domain,Requiremnt,Notation があり、 更にRequirementsは、Behavior,Structure,Constraintに別れていて、現在、 Behavior+Structureの領域を、HDLとJAVA/C++との間のSemanticで記述できる、 SLDL言語に注目しているとのお話があった。 SLDL言語は、Apprication依存の部分がplug-in可能な構成を持っていて、 また、今後はConstraintの領域も記述できるようになるとのこと。 これらのお話を元に議論が始まった。 ...とはいっても、本当の意味で始まりかけた途端に時間が来てしまった感があった。 いろいろ出された意見を、誤りを恐れず敢えてまとめてみると、以下のような感じ であったように思われる。 (前座) コデザインはなぜ必要か? 意見1: [ハードの検証] (LSI屋の実感として..)現在、システムレベルで必要とされる機能 検証が手に負えない位、大規模化してきている。システムの仕様記述 から検証項目をブレイクダウンできると嬉しい。特にバス周り.. 意見2: [ソフトの検証] そういうレベルの話は本質的ではない。 極論すると、既にソフトについては、機能の完全な検証はあきらめている。 工程による管理が主になってきている。 意見3: [複雑性と検証の度合] これまでシステムの仕様に纏わる複雑性はソフト側が、LSIや信号などの 物理的側面に纏わる複雑性はハード側が担ってきていたが、最近は、 システムの仕様に纏わる複雑性の一部をハードが担う必要が出て来て いて、それで戸惑っているのだろう。しかも、ハードとソフトでは、 検証の完全性に対する要求の度合が格段に違うから.. 意見4: とはいえ、検証面でないとしたら、何故必要なの? 意見5: そもそも、コデザインに対する基本的な考え方自体に問題がある。=>(1)へ (1) 現在のコデザインはハード/LSIのデザインのためにある(=コデザインとは呼べない) 意見6: [現状のコデザインと本来のコデザイン] 現状「コデザイン」といわれているものの実態は、ハード/LSIの設計 手法の一つであるように見える。 システムをC/C++で記述するというが、C/C++で"記述し終えたと確信で きた"時点で本質的にはソフトの設計は終わっている。 そんな「コデザイン」はおかしい。 意見7: SLDLも基本的にはハード指向なのか..? 意見8: では本来のコデザインとは? =>(2)へ (2) 本来のコデザインとは? そしてこれを実現するには? (途中で時間切れ) 意見9-1: [ModelingとSpecification] そもそも、コデザインにおける仕様記述を考える場合、Modelingと Specificationの両者は区別して考えるべき。 意見9-2: [記述の方法] どう記述すべきか? 自然言語で記述するしかないのか? 意見9-3: [工程による管理] いっそ、仕様記述という方向ではなく、仕事の仕方として定義すべきでは? 意見9-4: [アプリケーションによる相違] 記述できるとしても、アプリケーションによる相違は考慮の必要がある。 標準化されやすいものやプロトコル処理などは、ある程度容易だろうが.. 意見9-5: ソフトとハードの中間ということで、デバイスドライバ に注目しては どうか 話は、いろいろなところに飛び火して、結論を出すまでにはいたらなかったが、 それなりの意義はあったと思われる。現在一般的に使われている意味での「コデザイン」 ではなく、ソフト系技術者の意見を採り入れた「本来のコデザインとは?」に関する議論 については、できれば今後も議論していきたい。 (以上)