ソフトウェアの先行開発やマルチコアSoCの開発環境として注目を集めるVirtual Platformの解説書 ―― 『ESL Models and their Application: Electronic System Level Design and Verification in Practice』

Verification Enginnerの戯言

tag: 組み込み 半導体

書評 2010年4月 6日

●Virtual Platformを構築する実際の手順が分かる

 最後まで読んでみてあらためて感じたのは,本書が「アルゴリズム記述(一般的にはC言語やC++)からいかに早くVirtual Platformを作り込むか?」という課題に対する各ツールの解決策を示している,ということです.

 各ツールの概要は開発元が開くセミナなどで知ることができますが,一般にはプレゼンテーション資料になっており,具体的な説明がありません.本書を読むことで,各ツールがどのようなステップを経てVirtual Platformを構築していくのを把握できます.これが分かるのは非常に良いことだと思います.

 話がちょっとそれますが,SNUG(Synopsys Users Group)ではプレゼンテーション資料だけでなく,論文もいっしょに公開されています.プレゼンテーション資料はその場で聞いているときはいいのですが,後から読み返したとき,情報不足になる傾向があります.その点,論文にはきちんとした説明があるので,後で読み返しても内容が分かります.同じことが本書についても言えると思います.

 できればVaST社CoWare社,Carbon社,Imperas社などのVirtual Platformベンダのツールも同じように説明されていたら,各ツールの比較ができて,非常に役に立つと思います.とはいってもVaST社とCoWare社はSynopsys社に吸収されてしまいましたが....

 以下では,本書の中で筆者が読んで面白いと感じた二つのツール(Tensilica社とSpace CoDesign社)について見ていきたいと思います.

●ESLでコンフィギャラブル・プロセッサを作る例が示されている

 筆者は今まで機会がなくてTensilica社のツールについて詳しく調べていませんでしたが,本書の6章を読むことでTensilica社のプロセッサの開発フローがある程度理解できたと思っています.本書を読むまでは,「カスタム・プロセッサを作るツールがESLに分類されるのはおかしい」と思っていました.本章を読んではじめて,カスタム・プロセッサを利用することでリソースや消費電力を削減できることを知りました(今さら,と言われそうですが...).また,リソースおよび消費電力を削減するためのステップが明確に示されている点も,分かりやすかったです.そのステップとは以下の六つです.

  1. アルゴリズムをC言語やC++で記述する
  2. 汎用的なターゲット・プロセッサ上でアルゴリズム(C/C++プログラム)を実行し,キャラクタライズする
  3. ターゲット・アプリケーションのホットスポット(電力消費の多い個所)を特定する
  4. プロセッサのコンフィギュレーションおよび拡張命令を追加し,再度,キャラクタライズする
  5. 性能の要求を満足していたら,消費電力と面積を最適化する
  6. ハードウェア・ブロックが必要なときは,アルゴリズム記述をHigh Level SynthesisでRTLのHDL記述に変換する.

 特に2.と3.の部分が,消費電力を定量的に判断する良い方法だと思いました.汎用的なターゲット・プロセッサを一つだけでなく複数個使うことで,対象となるアルゴリズムの特徴を再確認できることは,新しい発見でした.そして,これはほかにも応用できると思いました.六つのステップに対してJPEGデコーダの例が示されています.実際の数値を出しているので,イメージがつかみやすくなっていると思います.

 ただし,プロセッサを開発するためのツールであるXtensa Explorerの画面が小さすぎます.画面の内容を文章で説明しているのですが,小さすぎて読み取れません.この点は改善してもらいたいです.

●Virtual PlatformだけでなくFPGAベースのプロトタイプも作成

 Virtual Platformは,サンプル・チップが出来上がってくるまでのソフトウェアの先行開発だけに使うものではありません.より上位で検証した機能(アルゴリズムなど)をハードウェアやソフトウェアでどう実現していくかを検討するためにも使われます.

 本書の7章では,Virtual Platformを使ったハードウェア・ソフトウェア協調開発について説明しています.使用しているツールはSpace Codesign社のものです.本書を読むまで,筆者はSpace Codesign社を知りませんでした.ホームページの情報によると,Eclipseベースの「SpaceStudio」というツールによってアーキテクチャの探索や分析,性能評価を行えるようです.例題は6章と同じJPEGデコーダで,Space CoDesign社のツールを使ってどのようにVirtual Platformを作り上げていくかを説明しています.

 SpaceStudioでは,2種類のツール(ElixとSimtek)を使い分けます.Elixというツールはシステム仕様の決定と機能検証に,Simtekはアーキテクチャの探索に使います.Elixによって機能とプラットホームのコンポーネント(クロスバー,バス,メモリ,チャネル,クロックなど)をシステムに割り当てます.プラットホーム内で利用できるコンポーネントを変えたり(例えばCPUやバスの数を増やす),各機能のマッピングを変えたりすることで,いろいろなコンフィグレーションを実現でき,またいろいろな組み合わせで検証できます.これなら,いろいろな組み合わせを比較的容易に試せそうです.出来上がったシステムの各機能モデルの間は,Transaction-Level Model(TLM)のレベル(設計抽象度)で接続しています.ここまでの作業で出来上がったVirtual Platformは,ソフトウェアの先行開発用に利用されます.


 SpaceStudioでは,このあとSimtekを使って,このVirtual PlatformのTLMモデルをBus Cycle Accurate(BCA)モデルに置き換えます.こうすることでより精度を高めた検証が行えるのは,効率的です.また,ハードウェアとソフトウェアを統合したあと,GenXというツールを使うことで,FPGA上にシステム全体(プロセッサやソフトウェアを含む)を展開できるようです.対応するFPGAはXilinx社のVirtexシリーズに限定されていますが,実機へ展開できるというのはなんともうれしい限りです.今後は米国Altera社のFPGAにも対応してほしいところです.

●これ1冊でESLの幅広い情報が得られる

 最近では書籍が出版されても,技術的な内容が古くなっているものが多くあります.基礎的な内容はそうでもないのですが,応用的な内容について特にその傾向があります.

 本書はベースとなる知識の部分と応用となる部分から構成されていますが,かなり新しい情報になっています.また,メジャーなベンダ以外のツールについても取り上げられています.それが著者の意図かどうかは分かりませんが,読者の立場からすると,いろいろな情報がこれ1冊で入手できるメリットは大きいと思います.そういう意味で,本書はとても有用だと思います.

 ただし進化の激しい業界の情報ですので,賞味期限はそれほど長くないと考えます.せいぜい1年~2年くらいでしょうか.今後のタイムリな改訂を期待したいところです.

●オープンなVirtual Platform規格に注目

 Virtual Platformは,数年前まではどちらかというと,「ハードウェアのアーキテクチャの探索などに使うもの」という位置づけだったのですが,昨年くらいからソフトウェアの先行開発にも使われるようになってきました.

 今後は,「マルチコアSoCの開発環境として,どのように使っていくか」という点に議論が移っていくのではないかと筆者は思っています.そう意味で,Imperas社のOVP(Open Virtual Platforms)は非常に気になる存在です.

 OVPは,API(Application Programming Interface)が公開された比較的オープンなVirtual Platformで,モデルもオープン・ソースで公開されます(Imperas社はOVP対応の独自ツールを開発している.現時点では特定ユーザにのみ提供している).

 SystemCはオープン戦略によってVirtual Platformの基盤技術となりました.OVPも同じ道をたどる可能性があります.そうなると,新しい世界が見えてくるかもしれません.


Verification Enginnerの戯言
http://blogs.yahoo.co.jp/verification_engineer
 

«  1  2
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日