フリースケールとエルイーテックで共同開発。ノイズ環境でも安定動作。

アミューズメント機器へのマイコン提供を行っているエルイーテックは、耐ノイズ性能を高める高レジリエンス技術「FUJIMI」を持つ。フリースケールとエルイーテックでは、このFUJIMIの機能をARM®版QorIQ(コアアイキュー)プロセッシング・プラットフォーム(QorIQ LS1020Aプロセッサ)に実装することで、高信頼性プロセッサ・ソリューションを共同開発した。これは、フォールトトレラントシステムをシングルチップで実現できるものだ。ここでは、FUJIMI開発の経緯や特長、QorIQ LS1020Aの魅力などを聞いた。

メインイメージ

リセット以外にプロセッサの動作を確実に戻せる方法はない

システムの暴走には、さまざまな要因がある。ソフトウェア的な暴走は、プログラムの検証ツールの充実によって減ってきている。ハードウェア的な暴走は、回路設計時のバグ以外にもノイズや熱、放射線などプロセッサ外部からの要因もある。

プロセッサが暴走したとき、リセットをかけることで復旧することは知られている。リセットは、ウオッチドックタイマ(WDT)によるもの、違法命令(誤った命令)の検出、メモリやI/Oに対する無効空間へのアクセス、コプロセッサによる監視などで行うことが多い。「リセット以外に動作を確実に戻せる方法はありません」(エルイーテック辰野氏)という。しかし、一度リセットしてしまうと動作の継続ができず、初期状態からの再起動になってしまう。

エルイーテックでは、外部からの改ざんを防止するセキュリティシステムに加え、異常時でも動作を継続する「高レジリエンス・システム」を追求してきた。それは、同社がアミューズメント機器へのマイコン提供を行ってきた実績からだ。エルイーテックは、三井物産が主体となって設立した会社で、アミューズメント機器向けの高信頼性マイコンを提供している。

「環境により発生する静電ノイズやモーターノイズはとても高く、いくらEMI対策を施しても暴走することがありました。そこで30年くらい前に思いついたことが、CPUを周期的にリセットするという方法でした」(辰野氏)。

周期的にCPUをリセットすれば暴走は見えなくなる

エルイーテックは、この周期的なCPUリセットの原理を活かした「FUJIMI」を提供している。ちなみに、FUJIMIは2011年の組み込み総合技術展(ET2011)のETアワードで最優秀賞を獲得した。

FUJIMIは、リセットの際にRAMはいじらないので、I/Oをソフト的に再構築できる。周期的にCPUをリセットすれば、暴走は見えなくなる。その課題となるのが、ソフトウェアの実行である。「FUJIMIでは、割込み処理の一部としてリセットを行っていますので、ソフトウェア的にも問題ありません」(辰野氏)。

WDTは異常が発生してからリセットを行うが、FUJIMIは周期的にリセットを行うことでシステム的に異常を見えなくしている。「システムを人間にたとえると、WDTは病気になった時に医者に行くのと同じで、FUJIMIは定期検査の人間ドックと同じです」(エルイーテック石井氏)という。

この度、フリースケールではエルイーテックと、最新のQorIQ LS1020AとFUJIMIを組み合わせることで高信頼性プロセッサ・ソリューションを実現した。「2012の秋頃にマイコンではなくプロセッサでFUJIMIを実現できないか、というお話をいただきました。ちょうどその頃QorIQ LS1ファミリの開発にかかる頃で、当初ユーザーロジックで実現しようとしたのですが、最終的にフレックスタイマの一部をFUJIMI用に解放することでCPUコアの周期リセットを実現しました」(フリースケール金澤氏)。

「エルイーテックはモトローラに自社ブランドのチップをOEMしていただいていました。フリースケールとの付き合いは、モトローラ時代からのものです」(石井氏)。エルイーテックでは、FUJIMIの特許を取得し一般産業システムへの展開を図っている。「エルイーテックは、実績ある耐ノイズ性のノウハウを一般産業システムへも展開しています」(石井氏)。知財関連を担当しているエルイーテックの長坂氏は、「特許は、日本で権利化済み、米国、欧州、インド、中国などの主要国で審査中です」という。

割込み処理の一貫としてリセットを実施

FUJIMIでは、CPUコアだけをリセットし、I/O周りはそのままにしたい。そのためには、部分リセットがかけられるCPUコアが必要となる。「FUJIMIの開発に際し、調べられる限りのCPUコアを調べましたが、マルチのCPUコアを除いて、複数のリセット回路が入っているCPUコアは見つかりませんでした」(辰野氏)。

CPUをリセットするとソフトウェアの動作も止まってしまう。そこで辰野氏は、割込みに注目したという。「割込み処理は、その直前の状態を保持しており、ソフトウェアの動作に影響を与えません。そこで、割込み処理の一貫としてリセットを行うようにしました。OSが動いていようが他の処理をしていようが、問題なく動作できるようになりました」という。

一方で、DMA(Direct Memory Access)には苦労した。「DMAが入ってCPUが止まると時間的に間に合わなくなってしまいます。QorIQ LS1ファミリでは、バスに対する割込みをCPUに対する割込みレベルより下げるという方法で対処しました」(辰野氏)。

FUJIMIは、割込み処理の開始前に暴走をチェックし、暴走していれば割込み処理(NMI :Non Maskable Interrupt)の一貫として動作ログを保存してからリセットを実施している。それにより、暴走が起きてもCPUはリセット以前に保存していた復帰用データを用いて動作を復帰させることが可能だ。周期的にCPUの状態が記録されるので、ログとしても使用できる。

一般的なリセットはできるのかという疑問がわく。それに対して辰野氏は、「RAMの中まで初期化することで、はじめて一般的なリセットができるようなります。リセットの概念まで変えているということです」という。暴走のレベルにはさまざまあるが、特にノイズが周辺回路(I/O)の設定を変更してしまうような暴走に対して、FUJIMIではOSのリマウントという処理を行っている。「リセットをかけた後に、すべてのI/Oに対してリマウントを行っています。ただし、データは変えていないので処理の続行は可能です」(辰野氏)。

さらに周期的なリセットをかけると、動作速度が遅くなるのではという疑問もある。それに対して辰野氏は、「割込み処理が一つ増えただけのため、実測で1.5%程度ロスが出る程度なので、ほとんど問題はありません」という。さらに、マルチコアでも問題ない。「ハードウェア的には、すべてのコアに対して周期リセットがかけられるようにしています。実際にはAMPで動作させることが多く、コア間通信もしていることから、たとえ片方のコアに不具合が起きても問題なく動作させることができます」(辰野氏)。

ARMコアを搭載した初のQorIQプラットフォームLS1020A

QorIQは、もともとPowerQUICCなどと同じPower Architectureコアを搭載したプロセッサを展開していたが、2012年にコアに依存しないソフトウェア・アウェアなLayerscapeシステム・アーキテクチャを発表し、その第一弾としてARMのCortex®-A7コアを搭載したQorIQ LS1ファミリを発表した。

ARMコアを搭載したQorIQプラットフォームLS1ファミリには、QorIQ LS1020Aプロセッサ、QorIQ LS1021Aプロセッサ、QorIQ LS1022Aプロセッサの3品種がラインアップされている。QorIQ LS1020Aプロセッサは、エンタープライズアクセスポイントや、マルチプロトコルIoT(Internet of Things)ゲートウェイ、セキュリティアプライアンスといったエンタープライズ用/民生用ファンレスネットワークアプリケーションに向けたプロセッサとなる。QorIQ LS1021Aプロセッサは、ディスプレイコントローラと産業用インタフェースが追加されており、ファクトリオートメーションやビルディングオートメーション、M2M、プリンタ、航空宇宙などのアプリケーションに向けたものだ。QorIQ LS1022Aプロセッサは、最適なコストパフォーマンスを実現する低消費電力化に優れた製品で、極めて電力制約の厳しい産業アプリケーション向けに対し、高い信頼性を実現している。

ARM版とPower Architecture版との違いとしてフリースケールの浜野氏は、「お客様やマーケットのニーズによって棲み分けています。たとえば、通信系や産業系など既存のソフトウェア資産を活かしたいお客様はPower Architecture版を選ばれることが多く、民生系やコスト的に厳しい業界ではARM版が多いと思われます。ARM版は、ライブラリなどのソフトウェア資産やエコシステムも多く揃っていますので、これらを有効活用するにはARM版が良いでしょう」という。さらに、ペリフェラルはARM版もPower Architecture版も共通している。「Power Architecture版とARM版のいずれへ移行しても、ペリフェラルに関しては同じように扱えます」(浜野氏)。

3W以下で動作しファンレスでも高性能を発揮

QorIQ LS1通信プロセッサ・ファミリは、いずれの品種もARMコアとしてCortex-A7を複数搭載しており、3W以下の低消費電力で動作できる(LS1022Aは標準で2W以下)。さらに、LCDコントローラ、内蔵SRAMの信頼性を高めるECC保護機能、DDR3L/DDR4メモリサポート、仮想化サポート、QUICC Engineテクノロジ、SATA3およびPHY内蔵USB 3.0などを統合している。

QorIQ LS シリーズのQorIQ LS1020AでFUJIMI 機能を実現した。「われわれが求めていたのは、ファンレスで高性能を発揮できるプロセッサでして、それにQorIQ LS1020Aはマッチします」(辰野氏)。QorIQ LS1020Aは、Cortex-A7コアを2つ搭載し、低消費電力で動作しながらも、5000 CoreMark以上の高性能を発揮している。

「高性能なプロセッサであり、たとえば雷が落ちるような屋外の計測器や、ノイズの多い工場内でのシステムで使えることから、産業用システムが当初のターゲットです。一般のプロセッサで使用されている保護ダイオードでは、とてもまかないきれないほどのノイズがある環境でも、安定して動作し続けることができます」(金澤氏)。

「現在、実地テストが始まっているものに、屋外の気象観測機器があります。担当者によると『データの1つや2つは欠けても良いが、絶対に止まってくれるな』といいます。たとえば、電車の鉄橋にある風向風速計が止まってしまうと、それが復旧するまで電車の運行ができなくなります」(辰野氏)。

QorIQ LS1020A + FUJIMIの高信頼性プロセッサ・ソリューション

「FUJIMIはいかにも日本人らしい技術といえるでしょう。同じようなことは、コストをかけて多重化すれば実現できますが、FUJIMIはシングルチップで実現しています。FUJIMIには『不死身(死なない)』と『富士見(最高峰)』という意味があり、日本人の優れた発想で多くのソリューションに活用していただきたいと思います」(長坂氏)。

「現在は、さまざまな分野でCPUに頼っています。しかし、CPUが暴走する可能性を完全には排除できないため、常に最悪の状況を考えておくべきです。FUJIMIでプロセッサを日常的に検診しておくことをお奨めします」(石井氏)。

「フリースケールはモトローラ時代から組み込みシステムに向けたソリューションを提供してきました。それをベースにARMコア搭載プロセッサを充実させています。ARMアーキテクチャというとコンシューマというイメージがありますが、フリースケールはARMプロセッサでも高信頼性が要求されるアプリケーションでも充分に活用いただける製品を提供しています。今回、FUJIMI技術と組み合わせることで、さらなる高信頼性を獲得しました。引き続き通信インフラや産業系などでもフリースケールのソリューションが活躍し続けるでしょう」(浜野氏)という。

フリースケールの最新プロセッサQorIQ LS1020AでFUJIMIを使いたいユーザーには、エルイーテックからのソフトウェアが必要になる。ソフトウェアの提供やサポートは、デバイスと一括でフリースケールの代理店から受けられる予定だという。

最後に浜野氏は、「FUJIMIは全く新しいコンセプトが入っており、フリースケールとの高信頼性プロセッサ・ソリューションを共同開発したことにより、良いアイデアを持った多くのアプリケーションで活躍できることを楽しみにしています。FUJIMIは、2014年10月に開催されるFTF(フリースケール・テクノロジ・フォーラム)2014にも出展されますので、そこでも存分にその効果を確かめてください」とまとめた。