Things)という用語が登場した当初は、インターネットに接続されるほとんど全てのものを指す包括的な用語として使われていました。市場の成熟とともに、アプリケーションの使用モデルや要件が細かく定義されるようになってくると、多くの業界オブザーバーがIoTアプリケーションを「クリティカルIoT」と「マッシブ(大量)IoT」の2つに区別するようになりました。ように低レイテンシであることが特に重視されるミッション・クリティカルなアプリケーションを指します。マッシブIoTとはエンドノード機器のように数十億個単位で設置されるコネクテッド機器を指します。これらのエンドノード機器には通常、消費電力とコストの厳しい制約があります。エンドノード機器で使用されるシステム・オン・チップの動作は、大きく4つの機能で構成されます。毎秒(または毎分)1サンプルの環境センシングから、動き、オーディオ、音声、ビジョンなど毎秒最大1千億サンプルを必要とするものまであります。/人工知能(AI)、デジタル信号処理、データ暗号化、オペレーティングシステム(OS)の実行など。通信:サポートする無線通信規格の種類は多岐にわたります(図1)。図1:エンドノード機器がサポートする無線通信規格セキュリティ:エンドノード機器ではデータ流出やその他のセキュリティ・リスクへの懸念が高まっています。Environment)の構築、暗号化、セーフティ・アイランドの実装などがあります。エンドノードIoT機器はコストと消費電力の制約が厳しいため、デザインで使用するプロセッサの数を最小限に抑える必要があります。理想的なのは、システム同期、リアルタイム・オペレーティング・システム(RTOS)、通信PHYインターフェイス、セキュリティ、暗号化などに対するコントローラ機能を含め、必要な機能を1つのコアですべてカバーすることです。これに加え、フロントエンド信号処理、センサー・データのフィルタ処理、無線通信、PHY演算などのDSP機能もコアで実行する必要があります。1つのプロセッサでこれらすべての要件を満たすのは困難なように思えますが、1つのエンドノード機器でこれらの機能がすべて求められることはそう多くありません。柔軟なコンフィギュレーションが可能なコアなら、消費電力と面積を最小限に抑えながら性能および演算スループットの要件を満たすことができます。EM9Dコアは、非常に小さな専有面積でコントローラ機能とDSP機能の両方をサポートする点に大きな特長があります。DMIPS/MHzの性能を達成できます。EM9Dプロセッサは、複数の命令を1命令に融合して1サイクルで実行できます。このため、非常に小容量の命令メモリーでも高い演算スループットが得られます。融合命令を利用すると、例えばメモリーから複数のデータ・ベクターをロードし、このデータに対してMACなどの演算を実行し、メモリー・ポインタを自動で更新してデータをストアするという一連の動作をすべて1命令で実行できます。これにより、1サイクルで最大7命令の実行が可能です。EM9Dプロセッサは1サイクルで2回のMAC演算を実行でき、高スループットのベクター・データ演算が可能です。MetaWareコンパイラは融合命令を完全にサポートしており、Cコードの命令を自動的に実行コードの命令にマップします。EM9Dプロセッサの命令セット・アーキテクチャ(ISA)は、エンドノードIoTアプリケーションに最適化されています。コアのデータ・メモリーに対するデータ・ストリーミング入出力命令を使用すると、事前にビットをワード単位にパッケージ化しなくてもデータ・メモリーに対してデータ・ビットを直接書き込み/読み出しできます。これは、低データ・レートのセンサー・インターフェイスと接続する場合に理想的な機能です。EM9Dは極めて強力なDSP演算性能を発揮します。顔検出CNNのソフトウェア・アルゴリズムの演算ならわずか40Kサイクルで実行できます。最適化する上で鍵となるのが、データ・メモリー・インターフェイスです。どれだけの量のデータをどの程度の頻度でロード/ストアするかは、データ・メモリー・インターフェイス(ロード/ストア・ユニット)によって決まります。これらのユニットは物理的な実装サイズも非常に大きいため、データ・メモリー・インターフェイスを最適化できるかどうかが、性能と消費電力および面積のバランスをとる上で非常に重要になってきます。EM9Dプロセッサのデータ・メモリー・インターフェイスは完全にコンフィギュレーション可能で、1~3個の密結合データ・メモリー(DCCM、XCCM、YCCM)をサポートできます。これらのメモリー領域はMetaWareコンパイラで完全にサポートされており、手動でデータ・ベクターを割り当てる必要はありません。これらメモリーへのアクセスは融合命令によってサポートされ、1サイクルで命令実行と3つのメモリー領域への並列アクセスが可能なため、必要に応じて非常に高い性能が得られます。このように柔軟なコンフィギュレーションにより、SoC開発者は演算スループット、面積、消費電力の要件に応じてコアのメモリー・インターフェイスを最適化できます。3つの物理データ・メモリーを使用するようにEM9Dをコンフィギュレーションした場合、演算性能は3倍に向上し、コアとメモリーの消費電力は最大40%削減されます。データ・メモリーのサイズとコンフィギュレーションだけでなく、命令メモリーのサイズもシステムの面積と消費電力を左右する重要な要因の1つです。EM9Dプロセッサのコード・サイズは、特別なカスタマイズをしなくても競合プロセッサの約80~85%に抑えられています。ISAに加え、コンパイラによる命令マッピングとスケジューリングの効率にも優れているのが理由です。融合命令によるコード・サイズの縮小も合わせると、命令メモリー・サイズは更に大きく削減されます。最適化する上で重要な点です。SoCはごくシンプルなものから非常に複雑なものまで多岐にわたりますが、伝統的なモジュール型のSoCインターコネクト・システムではゲート数、消費電力(mW)、サイクル数のオーバーヘッドが大きいことがあるため、これらの最適化が必要となります。シノプシスのARCプロセッサは非常に柔軟なコンフィギュレーションと拡張が可能で、IPプロセッサ・コアのシステムおよびハードウェア・コネクティビティも幅広くサポートしています。高データ・スループットが要求されるブロックの場合、ペリフェラル・ハードウェア・ブロックを専用のペリフェラル・インターフェイス経由でプロセッサに接続すると、レイテンシを0に抑えた「バスレス」デザインが可能です。コアのレジスタ・バンクはサイズを拡張でき、これらのレジスタにハードウェア・ブロックを直接接続すると、ハードウェア・ブロックの制御/ステータス更新をコアからソフトウェアで実行できます。ARCプロセッサ・エクステンション(APEX)テクノロジを利用して、設計者はカスタム・レジスタおよびインターフェイスをRTL記述の形でISAに追加できます。高い性能が必要な場合は、オプションのマイクロDMAコントローラをプロセッサに追加することもできます。EM9Dプロセッサから直接制御しますが、コアと並列に動作するため、コアに負荷をかけずに大量のデータを移動できます。EM9Dプロセッサは、制御機能とDSP(デジタル信号処理)機能の両方を必要とするIoTエンドノード・アプリケーションに最適であることが実証されています。これには、次の理由が挙げられます。IoTエンドノード機器の動作はセンシング、演算、通信、セキュリティの4つの領域に大きく分類され、これらを低コストのシングルコアで実行するのが理想的であること。これらの機能を実行するには、制御機能とDSP機能が必要であること。EM9D/11Dプロセッサはフットプリントと消費電力を最小限に抑え、高性能な制御機能とDSP機能を実行できる理想的なバランスを実現していること。データ・メモリー・インターフェイスを柔軟にコンフィギュレーションできるため、SoC開発者は消費電力とダイ・サイズの制約を満たしながら性能を最適化できること。EM9Dの高性能なISAと融合命令により、コード・サイズとコア面積を最小限に抑えて最高水準の性能を発揮できること。EM9Dプロセッサのシステム・コネクティビティを利用すると、更に性能の向上と消費電力および面積の削減が可能なこと。EM9Dプロセッサは業界最高水準の単位面積あたり性能を達成しており、システム・ペリフェラルおよびハードウェア・アクセラレータ・ブロックの緊密な統合オプションもサポートしています。要件を満たしたエンドノード機器向けSoCの開発が可能になります。