Embedded World 2021への道:第5回
編集部注:来たるEmbedded World 2021まで続く5回連載ブログシリーズの第1回では、Embedded Worldの概要を紹介しました。第2回では、ランドールが忘れてしまったC言語に磨きをかける過程を紹介しました。第3回では、オブジェクト指向プログラミングの考え方を応用することで、いかに複雑さを軽減できるかに焦点を当てました。第4回では、優れた設計の基本的尺度とは、構成ブロックを再実装することなく、要件の変化に応じて再構成できる能力であることを説きました。最終回となる第5回では、Embedded World 2021で行われるランドールの基調講演に先立ち、オペレーティングシステムが要求するスペース拡大の傾向に疑問を投げかけ、システム分割について取り上げます。
前回の投稿では、システムはインターフェースの背後にある情報を隠すべきであり、システムは容易に変化に対応できるモジュールに分解されるべきだというデイビッド・パーナス氏の見解を紹介しました。また、『Righting Software』という書籍の著者であるユバル・ローウィー氏が、現在このアプローチを推奨しているという情報に言及しました。
このアプローチは、おそらく現在広く採用されていると思われる、機能の分割とは異なります。さらに、パーナス氏のアプローチの方が優れていることを示す十分な根拠もあります。そうした根拠の1つが、変更を前提として設計されたシステムの方が理解しやすいという点です。このようなシステムは「感覚的に理解(grok)」しやすい上に、新たな実装環境で簡単に再構成できます。再使用を推進するには、こうしたコンセプトが重要です。なぜなら、専門家でない人々が他者の専門知識を利用できるからです。また、組み込みエンジニアが、他者に影響力を及ぼして自分の構想を実現することにより、自分たちの市場を広げることができる機会にもなります。さて、優れた設計の基本的尺度とは、要件の変更時に基本的要素を再実装することなく再構成できることです。この尺度が満たされていれば、特定のユースケースと特定の要件のために設計された基本的要素を操作することで、主なユースケースのバリエーションに対応できます。
しかし、残念ながらこのアプローチには欠点や危険があります。非効率性や無駄がその例です。システムが拡大するにつれ、必然的にこうした問題も大きくなります。ここで、ニキータという人が書いた興味深いブログを読むことをお勧めします。2020年の第53週時点で、このブログはオンラインで読めるようになっていました。ニキータは次のように述べています。
「Androidシステムでは、アプリを使わなくても約6GBを必要とします。これはとてつもなく大きな容量です。一体このシステムには何があるのでしょうか。HD動画か何かでしょうか。たぶん、基本的にはカーネル、ドライバなどのコードだと思います。ストリングやリソースなどもあるでしょうが、それほど大きいものではないはずです。では、携帯電話に一体いくつのドライバが必要だというのでしょう?
かつて、Windows 95のサイズは30MBでした。今や、ウェブページでもこれより重いのです。Windows 10は4GBで、Windows 95の133倍です。でも、性能は133倍になっているのでしょうか。基本的な機能は同じですよね。Cortanaが搭載されているからといって、3970MBも必要でしょうか。ましてや、AndroidにWindows 10の150%の容量が必要ですか?」
2020年11月に発表されたAppleのM1チップは、160億個のトランジスタを備えているそうです。現在の基準からしても膨大な数です。組み込みエンジニアは、大型のFPGAを使用することもできます。多用途コンピュータのハードウェアやプログラムは野放図に拡張を続けていますが、組み込みの分野でも同じことが起こっています。
デジタル信号処理は1960年代初頭に開発が始められ、この技術はレーダー信号の処理に使用されていました。当時、マイクロプロセッサやプログラマブルロジックはまだ登場していませんでした。それ以降、私たちはFPGAベンダーのIPブロックや、そうしたベンダーの付加価値を付けた再販業者やあらゆる種類のソフトウェアライブラリなど、第三者が開発した機能を使用してきました。こうすることで、生産性が向上し、同時にソリューションの規模も大きくなりました。しかし問題は、アプリケーションに搭載された機能がすべて必要であるとは限らない上に、私たちには搭載されている機能の内容を完全には把握できない場合があることです(使用しているICにサプライヤがテストスイートを組み込んでいる場合など)。既成の機能をまとめて、最終製品に組み込んでしまう方がシンプルです。ソリューションを絞り込むことで実装に時間がかかってしまうため、こうした絞り込みは割に合いません。
前回の投稿では、象とネズミが基本的に同じアーキテクチャを共有しているというローウィー氏のコメントを紹介しました。これを聞いて思い出したのが、ヒトのDNAにはバナナや果実蠅(ミバエ)の遺伝子の多くが含まれている(バナナの90%、ミバエの95%)という情報です。だからといって、私は自分のDNAに関するこの事実を自覚しているわけではありません。組み込みシステムでも似たような現象が起きているのではないでしょうか。つまり、使用できる機能が余分に積み込まれているような状態です。私たちは、まるで組み込みシステムをITのデパート(MicrochipのHarmony、Texas InstrumentsのxDAIS、NXPのMCUXpressoなど)から調達したフレームワークを使って組み上げているようなものです。
最近、EE Journalのケヴィン・モリス氏が執筆した記事を読んだのですが、その中に次のような記述がありました。
「この数十年間、FPGA全体の市場シェアが80%近くになるにも関わらず、大半のFPGAデバイスを出荷しているのはXilinxでもAltera/Intelでもありません。その栄誉の担い手はLattice Semiconductorであり、その差はわずかではありません。それはもちろん、主要なプログラマブルロジック企業がFPGAやFPGA-SoCやなどの大規模で非常に高価なコンポーネントの分野で優位に立とうとしてきた一方で、Latticeが近年この市場のミッドレンジおよびローエンドセグメントに注力してきたことが理由です。
ローコストかつ高ボリュームのソケットに集中するという戦略により、Latticeは膨大な市場セグメントにおいて、様々なシステムに対して数十億ものFPGAを提供することができるようになりました。そして、FPGAテクノロジの性能が向上する中、Latticeはトップ2企業の背後に迫り、ほんの数年前まではハイエンドと考えられていたテクノロジをコスト制約が非常に厳しいアプリケーションに導入することで、事前構築されたソリューションによって、それらのテクノロジの新たな活路を見出しました。そのように事前構築されたソリューションを使用することで、FPGAに関する経験がそれほどないエンジニアリングチームであっても、FPGAテクノロジを簡単に活用できるようになったのです」
DigiKey米国サイトで検索ボックスに「microcontroller」と入力すると、87,000点を超えるデバイスがリストアップされます(注:数字は筆者執筆時点)。「FPGA」と入力すると、検索結果には25,000点を超えるデバイスが表示されます。図1を見てください。この図は、購入されたマイクロコントローラの種類を示しています。最大の商機はローエンドの8ビット市場にあることが分かるでしょうか。現在のARMやRISC-Vを考えると驚かれるかもしれませんが、この状況はLatticeに関する前述の記事と一致します。
図1:マイクロコントローラの種類別の需要
組み込みエンジニアとしての私たちの課題は、機能をあれこれ盛り込みたいという誘惑に抵抗することです。現在はMicrosemiによって買収され、Microchipの一部門となっているActelでは、gate gobblerというツールが使われていました。私が知る限り、このツールはまだ存在しているはずです。このツールは、余分なロジックを削減するためのものです。こうしたツールを再び使用することで、ユーザーが必要としない機能を排除できるようにする必要があるのではないでしょうか。
Embedded Worldでの私のプレゼンテーションでは、パーナス氏のアプローチを使用したシステム分割の例を取り上げ、組み込みエンジニアの市場は広く、成長を続けていることを示す予定です。また、ユーザーが使用する機能の複雑さを解消することは、初心者とエキスパートの双方にとって利点があるという見解についても説明します。そして、この機会が素晴らしい未来につながることをお話しするつもりです。また、プログラマブルロジックの企業が自分たちの市場に及ぼしてきた悪影響と、その状況を解消するために何が必要なのかについても説明するつもりです。
幅広い顧客が製品を使用できるようにすることは、企業にとって重要なことです。私がまだキャリアをスタートさせたばかりのころ、米国のある自動車企業が大規模なレイオフを行いました。私は、そのように大勢の人を一時解雇することによって、エジソン、フォード、そしてダ・ヴィンチになり得るような人も一時解雇してしまう確率が高まるという記事を読んだのを覚えています。普通に考えれば、未来のダ・ヴィンチも、おそらくは未成熟な市場からキャリアを開始することでしょう。そのような人々が、私たちが持つ専門知識を障壁なく利用できるようにしなくてはなりません。
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum