オープンソースでの開発のポイントは、デバッグ~検証のフロントローディングにあり。

富士通コンピュータテクノロジーズ(略称:FCT)は、オープンソース戦略によってLinux搭載製品を多数開発している。そのデバッグ〜検証のフロントローディングにローターバッハのツールを活用し、大きな成果をあげている。もはやビジネスユーザーの域を飛び越え、TRACE32の熱烈なファンと自認するFCT浅羽氏を中心に、オープンソースでの製品開発やデバッガツール活用のポイントなどを聞いた。

メインイメージ

富士通製品のハードウェアとソフトウェアを開発

はじめに富士通コンピュータテクノロジーズについて教えてください。

FCT浅羽:私どもは富士通の100%子会社として、富士通製品のハードウェアとソフトウェアの開発を行っており、組み込みシステム向けOSの実績はすでに25年になります。当初は独自OSだったのですが、2000年くらいから汎用のOSとしてLinuxを採用するようになり、いまではあらゆる機器にLinuxが搭載されています。現在は富士通グループ以外への組み込みOSの開発サポートも行なっています。また、ハードウェア製品の品質を保証するための検証メソッドプロデュースから試験・保守プログラムの開発まで行なっています。40年にわたるテストプログラム開発を通じて、いわゆる「富士通品質」を支える高度な診断ノウハウと技術開発力を持つ会社です。

ARM®コア製品の取り扱いは、いつ頃からでしょうか。

FCT栗原:2000年くらいから携帯電話のベースバンドチップにARMコアを採用しました。当時、ベースバンドチップとアプリケーションプロセッサは別々に構成していました。その後も別チップで構成するものと、シングルチップのものがありましたが、現在はほとんどがARMアーキテクチャのチップに収斂してきています。

FCT浅羽:以前は自社製マイコンによる差別化を図っていたのですが、OSをはじめ、ミドルウェア、コンパイラやデバッガなど、すべての環境を自社で用意する必要がありました。ARMアーキテクチャに統一することで、チップ開発は半導体ベンダーに任せ、ソフトウェアは共通部分の開発工数を減らすことで、製品差別化で重要となるアプリケーション開発に注力することができるような体制となっています。

オープンソース戦略としてLinuxに注力

これはオープンソース戦略と相通じるところがありますね。

FCT浅羽:まさしくその通りです。富士通コンピュータテクノロジーズもオープンソース戦略としてLinuxに注力しており、Linux搭載製品はすでに50製品ほどにひろがっています。その実績として、スーパーコンピュータ、サーバ、ストレージシステム、イメージング機器、ネットワーク装置、スマートフォンなどがあげられます。独自OSを採用していたころは、ドライバなども独自に開発していましたが、標準的なインタフェースをすぐに搭載したいときなど、オープンソースを採用することでTAT短縮を図ることができます。開発のやり方も随分と変わりました。一般的には、構想設計、詳細設計、コーディング、デバッグ、検証という流れになりますが、早い段階からソフトウェアの流用や調達というフェーズが加わります。オープンソースでは、ソフトウェアの調達も自分たちの責任で行います。Linuxは年に数回バージョンアップするので、バージョンごとに動作を検証する必要があり、早期での検証がポイントとなります。いわゆる検証作業のフロントローディングです。

FCT栗原:伝送装置など特別高い信頼性が求められる製品は、スクラッチから開発することもあります。オープンソース以前のドライバなどの下回りのソフトウェアは、CPUのアドレスを見たりして開発していました。昨今のオープンソース時代では、調達したドライバを用いるときなどハードウェアに何か不都合が起きた場合、下回りまでは見ていないので解決まで時間がかかることがあります。オープンソースでもその品質によっては、かえって時間がかかってしまうことがあるのも事実です。

フロントローディングの比重を高めていく

そこで必要となるのがオープンソースに対応したツールということになるのでしょうか。

ローターバッハ香川:特段そうとも言えません。基本的に信頼できるソースであれば、オープンだから、独自だから、という違いはないと思います。

FCT浅羽:何か問題が起これば、世界中でみんな同じLinuxを使っており、しかもプロセッサも同じARMで問題を抱えているのであれば、すでに直っていることもあります。コンパイラやCライブラリなどは別のコミュニティで開発されており、なるべく早い段階で、どのIPを用いるかを検証することがポイントとなります。オープンソースの活用においては、そのあたりが開発工程の中で比重を占めるようになっています。実際には、工程が進んだところでの検証やデバッグの負担が大きいのも事実ですが、今後はよりフロントローディングの比重を高めていこうと考えています。

FCT栗原:以前は大量生産に向けてASICなどのカスタムチップを起こしていましたが、いまは多品種少量生産時代になっており、汎用プロセッサやFPGAを使うことが多くなっています。評価ボードも充実しており、オープンソースならそれを用いた評価が可能です。LinuxカーネルとネットワークIPなどのミドルウェア、GCCの組み合わせなど、ある程度は評価できます。

FCT浅羽:ミドルウェアのバッティングも以前は多くあったのですが、多くのユーザーが同じようなミドルウェアの組み合わせを試すことで少なくなってきています。いまの大きな流れは、カーネルバージョンを統一し、そのバージョンを一定期間メンテナンスするとか、ミドルウェアの組み合わせも実績のあるものを使うようにしています。たとえ問題が起こったとしても、オープンソース全体で同じことが起こるので迅速に解決できます。それが本来あるべきOSの位置づけであり、逆にそこで差別化しようとすると、かえって時代をさかのぼってしまうことになります。

純粋にデバッガである、ところが良い

ローターバッハ製品はいつ頃から導入されたのでしょうか。

ローターバッハ香川:富士通コンピュータテクノロジーズ様が、ローターバッハ製品を導入されたのは2005年です(当時の所属は富士通)。ハードウェアとしては導入当時のままですが、最新のプロセッサであるCortex™-A15でも使われています。今後登場するARMv8アーキテクチャでもお使いいただけます。現在は、JTAGエミュレータのPowerDebug II、リアルタイムトレースのPowerTrace、両デバッガで共通に使えるTRACE32 PowerViewです。さらに、ロジックアナライザのPowerIntegratorも導入いただいています。

FCT栗原:他社のデバッガはプロセッサが新しくなるごとに買い替えるのが一般的なのですが、ローターバッハは年間保守さえしておけば常に最新のプロセッサに対応できるところがすごいところですね。

ローターバッハ香川:私どもの思想として、まず末永くお使いいただけるハードウェアをしっかりと作り込み、ターゲットの違いはホスト側のソフトウェアで吸収する、これが国産メーカーとの大きな違いとなっています。日本ではこれから、といったところですが、すでに欧米や韓国などでは圧倒的なシェアを持っており、携帯端末メーカーやスマートフォンメーカーのほとんどに採用されています。また、欧州のオートモーティブ分野では標準環境として採用されていることなど、世界標準のデバッグツールと言えると思います。製品開発をグローバルで展開される場合には、開発環境の共通化はもちろんスクリプトなどの再利用も含めて、世界標準であることのメリットを感じていただけるはずです。

ローターバッハ中村:品質面での評価が高いポイントとして、主要半導体ベンダーとプロセッサの開発段階から協業してデバッグツールの開発を同時並行で進めている点です。いわばお墨付きをいただいているわけです。実チップが完成してからツールを後追いで開発していてはすでに遅く、開発期間短縮の要求にはお応えできないと考えています。ローターバッハであれば、よく聞かれるデバッガをデバッグする(笑)、といった悩みからも解放されます。

ローターバッハ香川:これまで400品種以上のプロセッサをサポートしてきた実績があり、異なるプロセッサでも同じ使い勝手で共通的にお使いいただけるため、余計なコストがかからないことは今の時代にマッチしていると思います。初期投資がかかるといった声も聞かれますが、トラブルがほとんど起こらないことから、トータルで考えれば適正な価格であると喜ばれています。

FCT栗原:確かにデバッグツールが新しくなると、習熟するまでかなりの工数が必要になります。常に同じ環境で使えるのは、ものすごく嬉しいですね。

FCT浅羽:ソフトウェア開発者は「自分の両腕となる」ツールが欲しいわけで、それはエディタとデバッガになります。効率的にコーディングするためには、しっかり手になじんだエディタが必要ですし、デバッグの効率アップには慣れ親しんだデバッガが必須です。

ローターバッハ中村:使い勝手で言えば、ホスト側のGUIを同じにすることで、ターゲットプロセッサの違いを吸収しています。ちなみに、定義ファイルはテキストで構成されており、それを用いてお客様独自のUIに変えることもできます。すなわち、中身は同じでも外から見ると自由にUIを変えることができるわけです。

FCT浅羽:TRACE32の最も良い点を一つあげるとすれば、「純粋にデバッガである」ところです。コンパイルはGCCを使いますし、何かあったらTRACE32でデバッグするというシンプルな使い方ができるのが嬉しいですね。

ローターバッハ中村:ローターバッハのツールは、どのバージョンのGCCにも対応していることもお客様にとってのメリットだと思います。

ロジックアナライザをソフトウェア開発に活用

各ツールの具体的な使い方を教えてください。

FCT浅羽:ペリフェラルのレジスタまで見る場合、以前はメモリダンプを詳しく見ていましたが、ローターバッハのデバッガはGUIでカーソルを当てるだけで、そのビットの意味が分かるなど、いろいろな意味を簡単に知ることができます。さらにトレースでの2点間測定も便利ですね。自分でコーディングしていないソースでボトルネックを調べるのは結構大変なのですが、2点間トレースを行うことにより関数単位ですべての遷移が見られますし、どのくらい処理時間がかかったのかも瞬時に分かります。この機能は、異なるCPUでの性能差をフロントローディングで調べる際にも活用しています。スタックトレース機能も便利ですね。たとえば、あるポイントでブレークさせ、そのスタックトレースを見ることでブレークまでの経路をつかむことができ、ポイントとなる部分をステップ実行などでつかむことが可能です。カバレッジ機能は、性能のチューニング時に頻繁にコールされる部分に注力する方が効果が上がるので、どの部分へのコールが多いかを見るのに重宝しています。

ロジックアナライザはどのように活用しているのでしょうか。

ローターバッハ香川:一般にロジックアナライザは、ハードウェア設計に使われますが、ローターバッハのロジックアナライザはTRACE32の画面上で見られるもので、ソフトウェア開発者のためのものとなっています。

FCT浅羽:ソフトウェアでハードウェアを叩いた後の信号の動きをソフトウェアと連動して見られることで、ソフトウェアの振る舞いが分かるのは大変便利です。Linuxのように自分でコーディングしていないソフトウェアの動きを調べるときに心強いですね。

FCT栗原:USBプロトコルの解析もできます。ロジックアナライザとデバッガが連動しているので、ハードとソフトの問題切り分けに活用しています。

ローターバッハ中村:トレースと一緒に使うことで、関数ごとにどれくらいの電力を消費しているかなどを統計的に表示できるといった、非常に細かい部分まで可視化することができます。関数のシンボル情報を読み込ませることで、関数ごとの統計解析情報を得られることが大きなメリットです。いわゆるprint文デバッグのようにソフトウェアに手を入れることがないため、製品レベルのソフトウェアのままで解析を行うことができます。

最後に、ARMへの要望や読者へのメッセージをお願いします。

FCT浅羽:ARMについては、今後搭載コア数がさらに増えたり、仮想化が進んだり、64ビット化など、ますますトレースが重要になります。そこで、チップにPTMインタフェースをサポートして欲しいというのがソフトウェア屋としての要望です。現在、64ビットのPowerPCをデバッグしていますが、今後ARMも64ビット版が各社からリリースされると思います。ローターバッハは、半導体ベンダーとチップの開発段階から緊密にやられているので、出荷されたと同時に64ビットや仮想化のデバッグ環境を、ARMでもそのまま活用できるという安心感がありますね。

本日はありがとうございました。