Intel Edisonに搭載されているMCUは本当にQuark?

はじめに

今の形のIntel Edison Compute Moduleの発表仕様では、SilvermontアーキテクチャーのCPUコア2つのほかにMCUとしてQuarkが1つ搭載されていることになっています。しかし、昨日公開されたMCU関連の情報では、このMCUがQuarkであると明示しているものが見当たりません。

そんなMCUとQuarkを比較してみたいと思います。

MCUの仕様

MCUの仕様として挙げられている主な特徴は以下の通りです:

  • Minute Intelアーキテクチャーは486をベースとし、Pentium IA ISA互換性が追加されています。
  • MCUでは浮動小数点のサポートを全く行いません(MCUで浮動小数点を使用するコードをビルドすることができますが、それは実行時に例外を生成します)。

これらのほかには特にMCUのCPUコアの特徴として挙げられているものはありません。

この挙げられている特徴は、Intel Quarkと比較して命令がPentium互換であること、(Quarkでは明示はされていないものの)486系のデザインを流用していることなどは一致しています。一方で、浮動小数点のサポートを行わないという点は異なります。

486やQuark Core(Intel Quark SoC X1000のCPUコア部分をQuark Coreと呼ぶ)の大きな特徴の一つは浮動小数点命令をオンチップでサポートするという点にありました。486系では後に486SXという、浮動小数点数命令の実行部分(FPU)を無効にして価格を下げたバリエーションが出現しました。このようなことから、486アーキテクチャーはFPUを無効にすることができるオプションを備えていると見ることができます。

MCUではこのオプションを採用し、FPUを無効にしたものと考えられます。また、無効にしたFPUを設計に含まないように変更したバリエーションなのではないかと思われます。

486系のもう一つの大きな特徴はオンチップでキャッシュをサポートした点です。この特徴はQuark Coreにも含まれており、Intel Write-back Enhanced DX4(486DX4とも呼ばれる)で追加された、キャッシュのライトバック機能も搭載しています。これに対して、MCUのCPUコアに関する記述を見る限り、キャッシュに関する記述が見当たりません。このことから、おそらくはMCUのCPUコアにはキャッシュが存在していないのではないかと思われます。

というのも、MCU単体ではなくMCUサブシステムという一回り大きな枠組みで見ると、コードおよびデータ両者で使用するSRAM 192 KBが搭載されており、ここでプログラムの実行を行うような構成となっています。オンチップのSRAMからコードおよびデータの読み書きができるのであれば、キャッシュを搭載する効果は薄れますし、キャッシュを搭載することよりもコードとデータで使用できるSRAMのサイズを増やす方が得策であるように思えます。このこととキャッシュに関する言及がないことを考え合わせると「MCUにはキャッシュが存在しないのではないか」という推測が成り立ちます。

つまりQuark Coreと比較して、MCUの仕様には以下の差があると思われます:

  • 浮動小数点演算装置(FPU)が存在しない。
  • キャッシュが存在しない。

まとめ

これにより、MCUはQuark Coreよりもさらに小さなCPUコアになっていることでしょう。一方で、これだけ仕様が異なるとなると、これはもはやQuarkと呼んでいいのかどうか悩ましいものになります。

これが、今回公開された情報でMCUを「Minute Intel アーキテクチャー コア(微小Intel アーキテクチャー コア)」と呼び、Quarkだとは呼ばない理由なのかもしれません。


補足事項

当初はコードネームに関する話題を含めて仕様について書いていたのですが、コードネームに関しては誤りであることが判明したので、その部分を省いて仕様に関する部分のみでまとめ直して再掲載しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です