デバイス古今東西(7) ―― 半導体システム設計から見たハードIP,ソフトIPの使いどころ
本稿では,ディジタルLSIを開発する際のシステム設計における再利用可能な回路ブロック(ハード・マクロ,ソフト・マクロ)の効用について考察してみます.実体概念と抽象概念という対極的な視座を用い,それぞれが影響を及ぼすシステム設計上の特性の違い,すなわち「部分改善」と「ブレーク・スルー」について考えます.
なお,ここでは半導体のハード・マクロまたはソフト・マクロに標準インターフェースが一定の基準で装備されているものを,それぞれ「ハードIPモジュール」,「ソフトIPモジュール」と呼ぶことにします.
●分解 vs. 組み立て
ディジタルLSIに限らず,大規模なシステムを設計するときは,一般に,トップ・ダウン,あるいはボトム・アップ,またはその二つを統合した手法で行います.
トップ・ダウン手法では,まず要求仕様となるシステムを分析し,複数のサブシステムへと機能分解します.そして最下層のサブシステムの詳細設計を経て,設計解を得ます.例えば,レジスタ・トランスファ・レベル(RTL)で記述されたモデルからゲート・レベルの回路データを生成する論理合成ソフトウェアは,トップ・ダウン設計を支援する道具として知られています.
ボトム・アップ手法は,まずサブシステム(コンポーネント)に着目してその詳細設計を行った後,それらを統合して設計解を導出するアプローチです.ボトム・アップ設計は,あらかじめ一定の知見がなければ難しいアプローチと言えます.その一つの例が電子ブロックです.
電子ブロックは,トランジスタや抵抗を組み込んだ多数のブロックを組み合わせて,ワイヤレス・マイクや電子ブザー,テスタといった応用システムを構築し,電気実験が行える玩具です.この商品のねらいは,回路の基礎技術を習熟することにあります.ユーザ自身が電子部品の組み合わせや実験を繰り返し行うことで,回路の知識が記憶に残るわけです.つまり,この商品はボトム・アップ設計の学習教材であるといえます.ボトム・アップ設計は,要素部品や要素技術の知見なくしては,応用製品を組み上げることが困難なアプローチです.
なお,統合型のアプローチとは文字通り,設計工程の一部をトップ・ダウンで,一部をボトム・アップで実施する手法です.
●三つの半導体IPモジュール
上記で述べたサブシステムが事前に詳細設計済みで,サブシステム間のインターフェースが一定の基準に基づいて作成されている場合,そのサブシステムは一般に「モジュール」と呼ばれます.モジュールの入出力は標準化されているので,モジュールの組み合わせによってシステムを実現できます.多くのサブシステムがモジュールとしてあらかじめ準備されているのであれば,それが準備されていない場合よりシステム構築は容易になります.
半導体設計におけるモジュールは,標準インターフェースを装備した半導体IPコアです.ここでは,これを「半導体IPモジュール」と呼ぶことにします.
モジュール化された半導体IPコアは三つの種類に分類できます.すなわち「ハードIPモジュール」,「ファームIPモジュール」,そして「ソフトIPモジュール」です.ハードIPモジュールは現実に存在する半導体チップ,すなわち実体に一番近い存在です.一方,ソフトIPモジュールはその半導体チップの特徴に対応して作られた抽象概念に近い存在(モデル)です.ファームIPモジュールは,二つの概念の特徴を兼ね備えた中庸のモジュールです.
次に,実体概念と抽象概念という対極的な視座を用いて,システム設計時の部分改善とブレーク・スルーについて述べます.
●部分改善ならハードIPモジュール
ハードIPモジュールは実体の存在(半導体チップ)に近いサブシステムであり,内部の構造はほぼ最適化されていると想定されます.もしこのハードIPモジュールだけでシステムを構築するのであれば,それは積木を積み重ねで何かを作ることに似ています.
このようなシステム構築は,部分最適を意識した大規模システムの開発に有効です.なぜなら,システム上の部分的修正だけで開発が済むのであれば,開発コストと開発期間を大幅に抑えることができるからです.また,ハードIPモジュールの集積化は容易なので,大規模なシステムの構築に適しています.
商品の中には,標準プラットホーム(システムの大枠)を固定しつつ,商品化のサイクルごとに性能の向上や機能の追加と改善が継続して行われる場合があります.例えば,バージョン・アップ,グレード・アップという部分修正に対応した商品づくりが要求される場合です.このような場合,部分修正が必要な個所については,ハードIPモジュールで部分的な反映を行えば済みます.それが効果的な活用です.
以下の図1に,ハードIPモジュールによるシステムの構築例を示します.
ハードIPモジュールによるシステム設計では,例えば図1-2で部分修正が必要な機能ブロックを交換すればよいのです.なお,図1-1の階層の機能Cに注目すると,機能Cは機能Fと機能Gを組み合わせて作る,という知見がなければ実現できないことが分かります.つまり,これは先の電子ブロックと同じボトム・アップ手法と言えます.