【題目】動的再構成可能ハードウェアで変わるSoCプラットフォーム 【講師】村上和彰 (九州大学) 【日時】8月14日(金) 8:50-10:30 ----------------------------------------------------------------------------------- 本日はシステム設計時の再構成化/カスタム化に話を絞る。 (出荷後のシステム再構成化の話は対象外。) ■SoCのハードウェアのカスタム化⇒カスタム・ロジック カスタムロジックの実現方法: 1.プロセッサ+ソフトウェア 2.コンフィギュラブル・プロセッサ+ソフトウェア 3.リコンフィギュラブル・プロセッサ+ソフトウェア 4.リコンフィギュラブル・ハードウェア 従来は製造コストが最も重要視されていた。 そのためチップ面積を小さくすることに注力。 近年は、コストパーフォーマンスが強く重要視されてきている。 そのためSoCカスタム品が ・短TAT/Time to market ・チップ上にシステムを構成 ・ランニングコスト(消費電力/信頼性) の観点から注目されている。 ■プラットフォーム/プラットフォーム設計 SoC設計資産をできるだけ共通化させる その共通化の規模は、社内の部門間または会社を跨いで(横断的に)アプリ毎 などが考えられる。 例:UniPhier(松下電器)、MeP(東芝セミコンダクター) Q:アプリ毎にプラットフォームに作り共通化と言われたが、その粒度は? A:例えばデジタルカメラでは、画像処理ブロック単位程度 要求にミートしない仕様については、作りこみが必要。それもできるだけ早く! ⇒カスタム・ロジック プラットフォーム・ベースSoC設計上の最重要課題 1.最適なプラットフォームの選択 2.同プラットフォームの特定半導体テクノロジ上での実装 3.同プラットフォーム上でのカスタム・ロジックの実現 Q:ソフトウェアではコンポーネントなどのような共通化の技術があり問題点もある。 HWでも問題点はあるのか? A。HWでもIPコア(当初の期待された効果が得られていない)が簡単に共通化ができない場合 があるなど問題はある。 ■リファレンス・リスト プラットフォームの紹介 ■SoC設計への諸アプローチ−−設計フローの観点から 従来は、 HDL⇒論理合成⇒布線論理 C⇒コンパイラ⇒ソフトウェア(+ハードウェア) という設計フローしかなかったが 近年は、 システムの動的再構成という設計フローも存在する。 プロセッサそのものをカスタム化することもできる。 しかし、そのためには仕様を記述する必要がある。 5つのアプローチ (「From Scratch」、IPコアベース、プラットフォーム・ベース、コンフィギュラブル、リコンフィギュラブル) は再利用vsプラットフォーム設計と大別できる。 ■カスタム・ロジックの実現方法 ・目標(実現対象)はカスタム・ロジック(仕様のカスタム化) ・アーキテクチャは (非カスタム化)プロセッサ カスタム化プロセッサ(ASIP) 専用ハードウェア の3つに分けられる。 ・実装方法は 動的再構成可能プロセッサ(DRP) 動的再構成可能ハードウェア(DRH) FPGA 布線論理(ガチガチのハードウェア) ■ハードウェア・ベース対プロセッサベース ハードウェア アルゴリズム⇒状態マシン⇒順序回路の通り設計/実装 プロセッサ+ソフトウェア アルゴリズム⇒プログラム⇒命令セットと実装 ■動的再構成可能ハードウェア 対 動的再構成可能プロセッサ ・動的再構成可能ハードウェア リコンフィギュラブル・ハードウェアを作りこむ。 後からハードウェア・コンフィギュレーション・データにアルゴリズムを吸収させる。 ・動的再構成可能プロセッサ プログラム部分にアルゴリズムを吸収させる。 プロセッサ・コンフィギュレーション・データに命令セットを実装。 ■時間的粒度 FSM-by-FSM Finite state machine毎に切り替え ISA-by-ISA 命令セット毎に切り替え ■動的再構成可能可能プロセッサ・アーキテクチャ ・コプロセッサ型 組込みプロセッサ(OSを載せることもある)+DSPの置き換えが狙い ・プロセッサ内蔵型 SoCのある部分の置き換えが狙い (OSのらない。オブジェクトコードがのる。) ■コンフィギュラブル vs リコンフィギュラブル ハードウェアまたはプロセッサとしての実現する機能が(SoC設計者によって)設定可能だが・・・ コンフィギュラブル − 1度だけ可能 リコンフィギュラブル − 何度でも可能 ■HW再構成可能性に関する設計空間 HW再構成の時間的粒度 vs HW再構成の機能的粒度の位置づけ ■設計フローに戻って ・リコンフィギュラブル・ハードウェア vs リコンフィギュラブル・プロセッサ ⇒ハードウェア設計スキルのみ必要 vs ハードウェアとソフトウェア設計スキルの両方必要 ・コンフィギュラブル・プロセッサ vs リコンフィギュラブル・プロセッサ ほとんど同じ設計フロー 最後の実装部分がちがう <これまでのまとめ> パワーポイント資料を参照。 当日強調された点 ・プラットフォーム・ベース SoC設計の共有&汎用化が可能になると、少品種大量生産が可能に! しかし、現段階ではまだそのような状況にはなっていない。 ・コンフィギュラブル カスタム化のために、どういう命令セットを追加するのかを考える必要がある。 ツールの準備が必要なのがデメリット ・リコンフィギュラブル 生産出荷後もカスタム化が可能なのがメリット。 構成情報を持たせなければいけなくなるのがデメリット。 ■Redefisについて カスタム化するためには、設計者が特殊な記述をしなければいけない。 これがネックであったが、RedefisはCだけの記述で設計可能。 そのため、ソストウェア開発者もカスタムなプロセッサを作成しやすい。 SoC設計者がSoCに載せたい機能をCで記述 ↓ ISA GeneratorがCプログラムを解析して、それを実行するのに適した命令セットを自動生成。 専用の命令セットとプロセッサ構成情報を生成する。 ■従来プロセッサ vs Redefis 設計フローはほとんど同じ。 しかしツールは異なる。 ■通常のリコンフィギュラブル・プロセッサ vs Redefis 通常のリコンフィギュラブル・プロセッサ:HDLで記述して、HW構成情報を生成。 Redefis:Cで記述してISA Generatorによって自動的に命令セットとHW構成情報を生成。 Redifis向けリコンフィギュラブル・プロセッサ:Vulcan リコンフィギュラブル・データパス(RDP)で128個のカスタム命令セットを実装できる。 パイプラインでは、Phase2とPhase3を重ねることはできていない。 Redefisの開発環境とISA Generatorの説明もあり。(パワーポイント資料を参照。) アプリケーション例:DES暗号 この例はVulcanの仕様にあった上手くいった例。 DES暗号化処理の性能比較で、 VulcanはPentium4と比較して、3〜4倍のスループットを出すことができた。