C言語レベル  SpecCの記述レベル *敬称略 ?1   ハード屋だが、マイコンの担当をしている。マイコンの回路設計をしており、   マイコンでできるところはマイコンで、その他は回路で実装している。   処理が間に合わないところはハードで、残りはソフトで実装している。   FPGAは、設計がflexibleにできる。   ASICはCで実装・・・アナログ回路。   その他、プロセッサでアナログの処理は少ない。図の左側ではなくなりつつあ  る。   アナログもFPGAに移る。コスト的に安くなり、FPGAは早くなる。   しかし、ハードは専用プロセッサよりも大きくなる。 ソニー   LSIのコデザインをやっている。何個かのプロセッサの軌条が合っているのかを  知ることが難しい。   そのコデザインのツールが必要である。計算が異なるのなら、今までの製作にか  けてきた   コストが無駄になってしまう。FPGAで実装したいが、それでは規模が不足。   最終的な回路設計をするにふさわしい環境が必要である。 高田   机上における性能とは? ソニー   バスの最高負荷における動作性能。 高田   どのような環境が必要なのか? ソニー   そのモデルを誰が作るのか?   ハードのレベルがverilogで止まっているので、それ以上のシミュレーションが  できない。   systemLSIに移ることができない。 東大   ハードとソフトというと、性能、flexibility、コストで比較する。   専用ハードは、パフォーマンス、パワーは高いが、高い専用性を持つものほど、  コストがかかる。   しかし、CADの性能が上がると、バッファ、バスを専用ハードで実装させるだけ  でいいので、それほどコストをかける必要がなくなる。   しかし、性能の見積もりが大変。特に、verilogでは大変だが、C言語の場合は、   性能の見積もりを考える必要なく記述することができる。   論文と実際とでは、大きく異なる。Cで記述するとリソース制約も記述すること  ができる。しかし、モデリングが難しいので、本当の評価ができていないのかも? ソニー   モデルのTTLバスの抽象度高いシミュレーションができるソフトがある。 東大   負荷が、CPUかバスを取り合うときのパフォーマンスの見積もりが難しい。 ?2   テストをする時、テストパターンの全てのパターンを書くことができない。 司会   C言語の場合、どこまで抽象度を落とすことができるのかが問題。 高田   ソフトは動けば実装といえるが、ハードの場合動いただけでは実装とは  いえない。 ?3   ハードの制約がなくなりつつある。汎用プロセッサは安いのか?   FPGAの方が安くなる。使用、性能である程度の専用的なプロセッサは高い。   安いプロセッサでFPGAは十分。 ソニー   ハードに持っていかないと、本当の性能が分からないのでは? 司会   汎用プロセッサが安いとは言い切れない。 東大   製品の継承性。   汎用プロセッサの形態は専用ハードなので、汎用プロセッサで済むなら  その方がよい。 司会   元々あるものを利用する。   ハード化の部分が増加すると、検証が大変になる。   再検証においては、ソフトの方が手間がかかるのか?   それとのハードの方が手間がかかるのか? 高田   ソフト屋は、ソフトの変更を嫌がる。しかし、ハード屋はそうではない。   ソフトを直すよりもハードを直す場合のほうが多い。しかし、ハードは複雑なの  で検証ができない。ソフトは、ある一部の変更が、他の部分にどのような影響を与  えるのか分からない。また、プログラムが置かれているアドレスが変更したら、再  検証が必要になる。 深谷   雑誌を見ていると、ビット幅はflexibleであり、C言語のintegerは可能である。   しかし、16ビットから32ビットに変更するとソフトは動かなくなる。   ソフトは、一度ビット幅を決めたら変更してはいけない。この点がハードの限界。   ソフトは、ありとあらゆることの仕様書を作成するが、ハードは違う。 司会   検証性はどこまで? ソフトはそこまで堅い? ?の移植には、変更可能のよう  に作成すればいい。プロセッサの変更は、問題ではなくなるが、それは、コンパイ  ラにもよる。 ソニー   移植性を変更して、アーキテクチャを作成する。   デバイスの変更も必要。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−   プロセッサの独立 司会   ある程度のネームスペースが必要。   レイアウトプロセッサは単なるプログラムではなく、C言語のMDLになりつつ  ある。如何にテーマに沿うかはモデリングにもよる。 高田   ASPECT毎に記述すると、モデルに近づけることができる。   ソフトは、市次元的に書いてしまうが、これではダメである。   ASPECTで作成した方がよい。 ソニー   configuable・・・互換性が高いOSもある。組み合わせの全ての検証が必要  であるから、   検証のコストが高い。そういう意味では、ハードのほうが検証しやすい。   ハードは、上位階層よりも下位階層の検証が大変である。 ?5   ソフトよりも、検証が楽である。他のデバイスに追加したものだけを検証  すればよい。 東大   インターフェースがはっきりしているかどうかによる。   呼び出し関係は楽だが、検証が楽ではない。   ハードは自由度が低いので作成が大変である。 司会   ハードの方が、検証に長い期間が必要である。 高田   見ていると、とても大変そうだが、技術者の人はとても楽しそうに見える。 ?6   検証は、値段の高いASICを使用するが、FPGAになれば、検証が楽になる。 ?5   だが、ASICは高いので、例えバグがあっても直せない。   ハードの変更の方が楽になり、ハードを変更してしまうと、ソフトが動かなく  なってしまう。そこで、そのバグを修正するために、わざとバグを作って動作さ  せる。 ?7   ハードの方が、シミュレーションを行うので、検証しやすい。   論理レベルのシミュレーションまで、きっちりとできるようになった。   ソフトをC言語を使って作成したものが、なぜソフトの検証ができないのか? 高田   入力データ空間の問題である。ソフトの場合は、全てチェックすることができ  ない。   入力空間・・・ハードの32ビット、ソフトの32バイト。   ハードよりもソフトの方が入力パターンが多い。 ?7   ハードは独立で考えてよい。なぜなら、ソフトは部分部分で動くから。 高田   一つのプロセッサを左右して動いている。それは、バスも同様。 ?8   ハードとソフトのバグを作り出すデータ比は? ?7   具体的には、測定したことは無いので分からないが、感覚的にはソフトの方が  多いのでは? 富山   一ヶ月で作成するプログラムの行数は、例えばC言語どVHDLで書くということを  想定すると、比較にならない程ソフトの方が多いので、バグはソフトの方が多い。 東大   制約が強いので、プログラムの作成はとても慎重になるし、また同期の関係も考  慮しなければならない。その反対に、C言語は自由度が高いため、作成するのに慎重  さがかけるので、バグが多くなるのでは? ?7   ソフトはあまり制約を考えていなくハードのように同期など考えていない。   ハードのように同期を考えていたら、作成するのに時間と手間がかかり、   納期に間に合わないかもしれなくなる。 ?5   汎用プロセッサは意味がない。処理速度が5倍位早くなれば何とか商品にはなる  し、10倍から50倍の速さになるとハードと同等になる。プロセッサをC言語で  記述していると、同じシステムとLSI、ICでは、記述する量が多くなる。   ハードでやると、構成が必要かつ、制約が必要であるのでバグが少ない。   C言語で合成すると並列性が高くなる。また、オプションにもよるが、並列性を  低くするとハードが大きくなってしまう。また、並列性が大きいとバグ取りが大変。 高田   並列度が小さいと、図の左よりであるが、並列度が大きいと図の右よりである。   現在では、左側よりもっと並列度を高くしないと、右側には勝てない。   並列性とネットワーク処理(ビット・マニュギレーション)では、ハードの方が  早い。(ソフトの場合は、シフト、比較をやる必要があるが、ハードの場合は結線  だけですむ) 東大   汎用プロセッサは、各命令が同じような処理をする。2段から5段にパイプライ  ン処理をした方が効率がいい。複雑な処理が多い場合が右の方が早い。 ?8   それは、一つづつの処理の粒度による。判断の必要な処理はstateが必要なので  左側、処理がまとまっていると右側が効率がよい。 早稲田   並列処理技術は、どのように処理を切り分けるかが重要である。 高田   切り分けられた処理は、その粒度による。 感想   はっきり言って、議事録取りは想像以上に大変だった。  発言者の話すスピードもそうなのだが、発言している内容も、僕にとっては  難しい内容で、分からないことだらけでした。   しかし、あるデバイスを設計するのにも、さまざまな手法があるが、必ず  ある手法を用いれば、完全なものができるのではなく、それぞれの手法には  必ず長所もあり、短所もある。  そして、開発環境、設計手法においてもさまざまな意見を聞くことができ、  とても貴重な体験ができたと思う。