IAR Embedded Workbench®導入で、2コアのi.MXへ円滑移行

カシオ計算機(以下、カシオ)は電子辞書「EX-word」の新シリーズの開発に、IARシステムズ(以下、IAR)の統合開発環境「IAR Embedded Workbench® for Arm(以下、EWARM)」を適用した。電子辞書の心臓部であるプロセッサを、長年使い続けた32bit RISC CPUからArm®系のデュアルコア品に切り替えたのを機に、EWARMの導入を決めた。性能と省電力の両立に苦労しつつも、IARの支援を受けながら開発作業を遅滞なく進めることができた。柔軟なライセンス、初心者でも直感的に分かる操作性、マルチコアデバッグの機能などが高評価だった。ここでは電子辞書開発の技術課題やEWARM採用の経緯などを聞いた。

メインイメージ
集合写真(左より)
カシオ計算機株式会社 羽村技術センター 開発本部 コンシューマ開発統轄部 第一開発部 榊原 昌輝 氏
カシオ計算機株式会社 羽村技術センター 開発本部 コンシューマ開発統轄部 第一開発部 植田 智明 氏
カシオ計算機株式会社 羽村技術センター 開発本部 コンシューマ開発統轄部 第一開発部 チーフ・エンジニア 柳澤 正明 氏
カシオ計算機株式会社 羽村技術センター 開発本部 コンシューマ開発統轄部 第一開発部 北地 誠 氏
IARシステムズ株式会社 セールス アカウント マネージャ 深谷 尚礼 氏

電子辞書最大手のカシオが、解像度、フォント、音質を大幅改善

――開発を担当している製品を教えてください。

柳澤(カシオ):私たちの部署は、語学学習機というカテゴリの製品を開発しています。主力製品は電子辞書の「EX-word」で、学生向け、ビジネス向け、生活・教養重視のシニア向け、言語別など、幅広い機種展開を行っています。また、英会話学習の専用機である「EX-word RISE」と「joy study」の開発も担当しています。

――IARの事業内容は?

深谷(IAR):当社は、創業36年を超えるソフトウェア開発ツールの専業ベンダーです。主力製品として統合開発環境の「IAR Embedded Workbench」を開発・販売しており、今回はそのArm対応版である「EWARM」を採用していただきました。IAR Embedded Workbenchは、使い勝手やコンパイラの品質がよく、さらにCPUアーキテクチャに依存しないという特徴があります。グローバルで入手可能なマイコンや組み込みプロセッサのほとんどに対応しており、国内で上場している製造業上位50社のうちの47社に導入(※2018年末現在)していただいています。

――EWARMを開発に適用した機種は?

柳澤:2019年1月に発売したEX-wordの「XD-SRシリーズ」です(図1)。

――XD-SRシリーズの特徴は?

柳澤:液晶ディスプレイの解像度が上がっています。前の機種はHVGA (528×320)でしたが、FWVGA(864×480)になりました。フォントも、ビットマップフォントからアウトラインフォントに切り替えました。英語などの音声出力の音質も、インターネットでよく使われているOpusという音声圧縮技術(最大48kHzエンコード)を採用して改善しています。プロセッサを変えることにより、快適に動作できるようになりました。

図図1:カシオ計算機の電子辞書 EX-wordの「XD-SRシリーズ」。

――新たにどのようなプロセッサを採用したのでしょう?

柳澤:NXPセミコンダクターズ社製のi.MXシリーズプロセッサで、Cortex®-AとCortex-Mを内蔵したデュアルコア品です。Cortex-Aで検索、グラフィックス表示、動画再生、英語発音判定、USB通信などの処理を行い、Cortex-Mでキー入力、タッチ入力、音声再生・録音などの処理を行っています。また、OSとしてAMP(Asymmetric Multiprocessing)のマルチコアに対応したμITRON仕様のリアルタイムOSを採用しています。つまり、Cortex-AとCortex-Mの両方にμITRONを搭載した構造となっています。

――どのようなプロセッサを使っていましたか?

柳澤:最初にEX-wordを発売したのが1996年で、当時は16bitのx86系のプロセッサを使っていました。その後2000年代の前半から32bit RISCプロセッサを使うようになり、今回初めてArm系を採用しました。

競合他社のスペックに負けないよう、プラットフォームを見直し

――開発を検討した当時は、どのような課題があったのでしょう?

柳澤:実は、前機種のプロセッサをそのまま使用して、海外市場向けにWVGA(800×480)の液晶ディスプレイを装備した機種を開発したことがあるのですが、表示速度に課題がありました。そういった中、世の中の市場では競合他社が高解像度の製品をリリースしてきており、「プラットフォームを変更しないとこのままではダメだ」、「システム性能を上げていかないとダメだ」という意識を強く持ちました。

北地(カシオ):表示フォントの課題も大きかったです。「ビットマップフォントが汚い」という声が目立つようになりました。

柳澤:前機種のプロセッサも、OpenVGのアクセラレータを搭載していたのですが、それだけではぜんぜんパフォーマンスが足りなくて…。アウトラインフォントを実装する場合、データをメモリから呼び出す処理などで、描画以外の処理の負荷が大きくなります。

――バスやメモリアクセスの速度を上げないと解決しない、と。

柳澤:そうです。前機種のプロセッサは、CPUコアの処理速度は問題なかったのですが、課題がありました。外部RAMはSDRAMで、動作クロックもあまり速くありませんでした。これに対して今回の機種では、LPDDR2を搭載しました。データ転送速度は10倍以上向上し、システム性能が格段に上がっています(図2)。

図図2:SRモデル電子辞書機能ブロック図。

――検索や音声データのアクセスに問題はなかったのでしょうか?

柳澤:そこもいろいろと考えました。弊社の場合、コンテンツデータの格納にeMMCのフラッシュROMを用いています。前機種のプロセッサにはeMMCインターフェイスのアクセスが遅いという課題がありました。今回の機種はeMMCをDDRモードで動かしており、データ転送速度が4倍くらい向上しています。

――体感速度はどのくらい改善しましたか?

柳澤:システム構成が変わったので単純に比較するのは難しいのですが、画面解像度がHVGAからFWVGAへ変わったにもかかわらず、検索・表示などの通常処理は最大1.5倍ほど高速になっています。

――性能が上がると、消費電力が増加するのでは?

北地:弊社の電子辞書は電池駆動にこだわっています。性能を上げる一方で、電力も抑えなければなりません。そのために処理を二つのコアに分割しています。性能向上と省電力の両立には、かなり苦労しました。

――ほかにどのような工夫を行っていますか?

柳澤:「なるべく使わないものは止める」が省電力化の基本です。そのためにOSのtick時間をかなり長めに設定し、このtick時間を作るタイマーにはCPUの“深い”低電力モードからでも復帰できるものを使っています。リアルタイムOSの場合、tick時間を1ミリ秒オーダの短い間隔にして、高速応答を優先させるケースが多いのですが、電子辞書のシステムではこの時間をかなり長くしています。必要なときだけ高速なタイマーを動かして高速にタスクを起動し、それ以外のときはできるだけ低速で動かしています。電力効率は、前機種と比べて5倍ほど向上しました。

――Cortex-AにLinuxを搭載するという選択肢はなかったのでしょうか?

柳澤:Linuxにはトラブルが発生した時の保証や自己責任の課題がつきまといます。さらに、省電力にできるのか、という問題もありました。半導体メーカーはLinuxのBSPを提供していますが、そのままでは弊社の省電力の要求を満たせません。カーネルレベルで手を入れるという方法もあるのですが、今回、採用したi.MXの品種が開発当時は未知のCPUだったこともあり、それがうまくいくのかどうか分かりませんでした。

――μITRONならなんとかなる、と。

柳澤:はい。弊社は長年、μITRONを使っています。μITRONであれば、ある意味、アクロバティックな対応もとれます。電子辞書は春先に大量に売れる季節商品で、納期が厳格です。危ない橋は渡れません。リスク回避を考えて、あえてLinuxを採用しませんでした。

決め手は柔軟なライセンス、国内外の協力会社へ貸し出し可能

――EWARMを使ってみて、いかがでしたか?

柳澤:実は複数コアのプロセッサを使ったのは今回が初めてで、最初は「本当にデバッグできるのか?」と思いました。意外にすんなりと動いてくれて助かりました。

――マルチコアデバッグの機能は使ったのですか?

柳澤:はい。二つのコアのふるまいを画面上で確認できました。一方のコアをブレークすると、もう一方のコアの処理も止まります。

北地:ブレークポイントの条件をきめ細かく設定できるのは使いやすいな、と思いました。例えば、変数が指定した値になったらブレークするとか、このアドレスを通ったらブレークするとか。

深谷:IARのツールは制御用マイコンの開発でよく使われています。そのため、(ハイエンドプロセッサに多い)マルチコアに対応していない、と誤解している開発者が多いようです。使いやすいと言っていただいて、ほっとしています。

榊原(カシオ):私は入社2年目で、今回のプロジェクトに参加するまで組み込み開発に携わったことがありません。EWARMの使い方について、きちんとしたトレーニングを受けたわけではないのですが、それでも1年間、無事に仕事ができています。まったく知識のない人でも開発できるのは、かなり良いことなのかな、と思います。

――Arm社の純正ツールやGNUのツールを使う方法もあったと思います。

柳澤:EWARMの採用を決めた理由の一つは、ライセンスの柔軟性です。弊社の電子辞書の開発では、社外調達のミドルウェアを多く使います。また、広辞苑やジーニアス英和辞典などのコンテンツが、それぞれ個別のプラグインソフトウェアになっており、それぞれを社外の協力会社などに割り振って開発してもらっています。このとき、Arm社の純正ツールだと、ライセンスの制約で、社外の会社にコンパイラを提供することが難しいことが分かりました。

深谷:社外の協力会社への貸し出しができない、ということですね。

柳澤:そうなると、協力会社向けに弊社がライセンスを購入しないといけない。それは難しい。

――協力会社は多いのですか?

柳澤:10社以上です。海外企業も含まれます。

深谷:ライセンスの貸与については前述の通りですが、加えて保守サービスについても、ライセンスを購入したリージョン(国や地域)でしかサポートを受けられない、というメーカが多いようです。IARの場合は中国のパートナー企業にライセンスを貸し出すと、中国のエンジニアは現地のIARの拠点から現地の言葉でサポートを受けられるメリットがあります。

――GNUツールにはどのような問題が?

柳澤:まず、Linuxと同じように保証の問題があります。次に、統合開発環境をどこから持ってくるか、という問題があります。例えばEclipseを導入すると、協力会社も含めて開発メンバ全員に使い方を教えなければなりません。無償なのはいいのですが、あとのサポートが大変です。さらに弊社の評価では、コンパイラのコード生成品質にも不満がありました。

植田(カシオ):GNUのコンパイラを使用する場合、ツールを使いこなすために覚えなければならないことがあります。ところが、Arm向けのGNUツールの情報は、意外とインターネット検索で引っかかりません。詳しい人といっしょに2カ月くらい格闘したのですが、思いどおりにいきませんでした。

――カシオ計算機製品について、今後の展開は?

柳澤:XD-SRシリーズは、ある意味、前機種で動かしていたコンテンツをそのままアップグレードしただけのものです。今後は、プロセッサの機能を十分に活用し、これまでであれば搭載をあきらめていたような機能やコンテンツの開発に挑戦していきたいと思います。

――IAR製品について、今後の展開は?

深谷:EWARMについては、最新版(8.40)でC18(ISO/IEC 9899:2018)言語の規格に対応しました。より高度なコードカバレッジ解析が可能になり、マルチコアデバッグの使い勝手も改善しました。さらに、2019年5月にはRISC-V向けの商用の統合開発環境を世界で初めてリリースしました。機能安全やセキュリティへの対応も強化します。今後も、顧客のイノベーションを加速するソリューションを提供していきたいと考えています。

APS EYE'S

IARの強みである柔軟なライセンス形態と強力なサポート体制が、採用の決め手となった好例の一つだ。実際の現場では、社内外を問わず多くのエンジニアが国境を超え、交差する。現場を知り尽くすIARの後押しがあれば、アーキテクチャ変更やマルチコア開発も怖くない。