はじめに
Intel Curie Moduleを搭載する具体的な製品であるArduino 101(あるいはGenuino 101、以下はArduino 101に統一)が発表されたので、これ以上の大きな仕様変動はないと思われます。そこで現時点で公表されている情報からIntel Curie ModuleとArduino 101についてまとめてみたいと思います。
Intel Curie Moduleとは
Intel Curie Moduleは、Intel Corporationが2015年1月6日にCES 2015で発表した、コートのボタンの大きさ程度にInternet of Things(IoT)で必要となる要素をまとめたモジュールで、同分野向けの製品群であるIntel Galileo、同Gen 2、Intel Edison Compute Moduleに続く、偉人シリーズ第3弾(製品としては4つ目)です。
発表当時のIntel Curie Moduleと現在Intel Curie ModuleとしてIntel Corporationにサイトに掲載されているモジュールの形状には大きな差異があり、当初発表されたIntel Curie Moduleは試作品のようです。
現時点でArduino 101での実装から外付けであることが明らかとなっているBluetooth LEのアンテナを含めて、あの段階ではボタンの大きさの中に各種要素を詰め込んでいたようです。現在はSystem in Package(SiP)として必要なチップを取りまとめた1つのモジュールとなっているようで、裏側の左右に多数のはんだボールの載った接点が見えます。
この接点を介して各種製品と接続するモジュールが、「Intel Curie Module」という製品の位置づけのようです。
当初の「コートのボタン程度の大きさ」からは変化がありませんが、その印象は若干変化したものとなっているように感じます。特に「パッと見」では、モジュールというよりは単独のチップのようにも見えるので、Intel Curie Moduleは当初のコンセプトから変化したと誤解されることもありそうです。
Intel Curie Moduleに含まれる内容
Intel Curie ModuleはIntel Quark SE SoCとともに発表されました。Intel Quark SE SoCには32-bitのマイクロコントローラーとセンサー・ハブとして統合されたDSPが搭載されていると発表されています。このことから、少なくともIntel Quark SE SoCにはこれらの要素が含まれるものと思われます。
フラッシュ・メモリーとSRAMについては同一のダイに統合されているかどうかを明示した資料は見当たりません。同様に否定する資料もないので現状では不明です。センサーやPMICについても同様に不明ですが、Intel Edison Compute Moduleでの実装を考えると別ダイの可能性が高いのではないかと推測しています。
これらを含めてIntel Curie Moduleの公開されている特徴は以下の通りです:
- 低消費電力の32ビット Intel Quark SE SoCを搭載
- 384 KB フラッシュ・メモリー
- 80 KB SRAM
- 低消費電力の統合されたDSPセンサー・ハブとパターンマッチング・テクノロジー
- Bluetooth Low Energy(Bluetooth LE)
- 6軸コンボ・センサー(加速度とジャイロ・スコープ)
- バッテリー充電回路(PMIC)
また、これとは別にArduino 101で信号が「3.3 V(5 V 入出力トレラント)」とされていて、写真を見る限りコネクターまでの間に1チップあることから、この3.3 Vという仕様がIntel Curie Moduleの信号仕様ということなのでしょう。Intel Edison Compute Moduleは1.8 Vでしたが、Intel Quark SoC X1000シリーズ(Intel Galileoシリーズに搭載)は3.3 Vを基本とするように、その後継であるIntel Quark SE SoCも3.3 V仕様なのでしょう。
Intel Curie Moduleのソフトウェア環境
Intel Curie Moduleのソフトウェア環境については以下のような記述があります:
To speed the development of wearable products based on the Intel® Curie™ module, Intel is providing a complete software platform that includes a small and efficient real-time operating system (RTOS) together with reference wearable applications called Intel® IQ Software kits.
Intel® Curie™ Moduleをベースとするウェアラブル製品の開発を後押しするために、IntelはIntel® IQ Software kitと呼ぶリファレンス・ウェアラブル・アプリケーションとともに、小さく効率的なリアルタイム・オペレーティング・システム(RTOS)を含む完全なソフトウェア・プラットフォームを提供します。
Intel® Curie™ Module Unleashing Wearable Device Innovationより引用
日本語の表記は筆者による意訳
また、Arduino LLCによるArduino 101のページを確認すると以下の記述があります:
The Quark core runs ViperOS RTOS and helps the Arduino core to accomplish the most demanding tasks.
Quarkコアは、ViperOS RTOSを稼働させており、最も重要なタスクを遂行するArduinoコアを助けます。
Arduino – ArduinoBoard101より引用
日本語の表記は筆者による意訳
この2点を合わせて考えると、RTOSとしてViperOSを採用しているということのようです。これはIntel Edison Compute ModuleのFirmware Release 2.1以降で使用可能になったMicrocontroller Unit(MCU)で実行されているViperOSと名前や特徴が一致することから、同系統のものでしょう。
稼働対象の容量が小さいということもあり、あまり高機能なOSではないようです。またRTOSと言いつつもリアルタイム処理が必ずしも得意とは言い難い構造は、評判が必ずしも良いわけではありません。
Intel Edison Compute ModuleにおけるAPIの仕様は「MCU API | Intel® Developer Zone(筆者による日本語意訳)」で見ることができます。ただし、これはOSとしてのAPIというよりはMCU SDKとして使用を許すAPIという位置づけだと思われます。
Arduino 101では、このViperOSの上にArduinoコアと呼ばれるArduinoの流儀に沿った環境を提供するソフトウェア・レイヤーが存在する構造を採用しているようです。
これまでのQuarkとMCU
現在まで、Intel Quarkが採用されているとされた製品は以下の通りです:
- Intel Quark SoC X1000シリーズ
- Intel Galileo Development Board
- Intel Galileo Gen 2 Board
- Intel Edison Compute ModuleのMicrocontroller Unit(MCU)
- Intel Quark SE SoC
- Intel Curie Module
このうち、Intel Edison Compute ModuleのMCUはPre-Quarkというべきもので、Intel Quark Coreとして仕様書が発行されているものよりは「Write-back Enhanced Intel DX2(コードネーム「P24D」)」に近いものです。
初のIntel Quark SoC X1000シリーズ(コードネーム「Clanton」、上の写真)に搭載されたPentium ISA(命令セット・アーキテクチャー)互換とされるIntel Quark Core(コードネーム「Lakemont Core」)と比較して、キャッシュ・メモリーは半分の8 KB、数値演算プロセッサーが存在せず、CPUID
命令が返すFamily番号はIntel 486シリーズと同様の4
であるなどの差があります。しかし、その一方でPentium(コードネーム「P5」)から実装されたTSC
(Time Stamp Counter)やMSR
(Model Specific Register)などは存在しています。このため、アーキテクチャー上の分類から「Pre-Quark」と考えられるわけです。
新たなIntel Quark SE SoCに搭載されるCPUコアがどのようなものであるか、現時点では詳細な仕様は不明ですが、「SE = Second Edition」だと思われる名称がつけられていることから、少なくとも既存のIntel Quark Coreと同一かそれ以上のスペックを持っているのではないかと思われます。
まとめ
現時点でのまとめなので、なんともすっきりしない点もありますが、だいたいこんな感じの製品のようです。
容量も小さく、環境もLinuxやWindowsではないため、既存のコードを転用するということはあまり多くなさそうに思えます。もしも最適化を意図してアセンブラでコードを書くことがあるのであれば、Atmel AVRシリーズやARM系よりは書ける人口は多そうな気がします。その点がメリットとなるのでしょうか?
一方でArduino 101での状況を見ると、既存のArduino向けの「ライブラリ」には、CPUがAtmel AVRシリーズであることを前提としたものも少なくありません。当然Arduino 101ではこれらの「ライブラリ」は動作しないでしょうから、Arduino 101が出てすぐにArduino Unoが不要になるとも思えません。その後の時間の流れがどのように作用するのか楽しみです。
ハードウェアとしては、Intel Curie Moduleが実現している低消費電力かつ小型のモジュールでBluetooth LEが使えるという利点を活用した機器の設計をサード・パーティが行えるという点をどのように見るかによって評価が変わってきそうです。
関連記事
- IntelがIntel Curie搭載のArduino 101(Genuino101)を発表
- Intel Edison Compute Module内蔵MCUのキャッシュを分析する
- Intel Edison Compute ModuleのMicrocontroller Unit(MCU)を分析する
- IntelがCES 2015でIntel Quark SE SoCとIntel Curieを発表
- IntelがIntel Edison Development Platformを正式発表
- 現行Intel Quark CoreのコードネームはLakemont Coreで確定
- Intel Quark Core(Lakemont Core)はPentiumベースではない
更新履歴
2015年10月20日
一部情報を追加するとともにイメージを追加しました。