ASCII.jpに掲載のIntel Quarkに関する記事を読んで思うこと

はじめに

AMD Ryzen 7000シリーズの性能について知りたいことがあって検索していて、その検索先で大原雄介さんによる「ロードマップでわかる!当世プロセッサー事情 第666回 CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark」という記事が目に入りました(以下、「該当記事」とします)。

当時、Intel Quark/Edison/Galileo/Curie/Jouleなどについていろいろと当サイトで書いていた私にとっては懐かしい話題です。この「さかきけいのメモ」を検索してみたところ、本メモを書いている時点において少なくともこれまでにQuark関連について90本も書いていました。そういったこともあり、該当記事を興味深く読みました。

さらに言うならば、Intelとの間でNDA(Non-Disclosure Agreement、秘密保持契約書)にサインすることなくIntel Quarkに関する情報を収集して発表をしていた一般人として、日本でトップクラス(自称)の情報量を誇る私「さかきけい」が、どのように該当記事を読んだのかということを書いてみたいと思います。

目次

Intel Quarkに関する基礎知識

Intel Quarkシリーズ(一部を除く)に採用されているプロセッサー コアであるIntel Quark Core(コードネーム:Lakemont Core)は、Write-back Enhanced Intel DX4(コードネーム:P24C、以下はIntel DX4と略記、別称Write-back Enhanced Intel 486DX4)※1をベースとし、Pentium Classic(コードネーム:P54C/P54CS)で採用されていた命令セット アーキテクチャー(ISA : Instruction Set Architecture)や追加のモードおよびレジスターを追加したうえで、さらに開発当時のセキュリティー要件に合わせるための機能を追加で実装したものとなっています。これについては以前(2013年)に「Intel Quark Core(Lakemont Core)はPentiumベースではない」というメモで紹介しています。

またUパイプとVパイプの2本のパイプラインを持つスーパー スケーラー※2であるPentium Classicと異なり、Intel DX4は1本のパイプラインだけを持っています。さらにキャッシュの構成もPentium Classicが命令とデータのキャッシュを分離した構成としていますが、Intel DX4では分離していません。こうしたIntel DX4の特徴を継承したIntel Quark Coreの仕様については、以前(2013年)に「Intel Quark Core自体の仕様(コードネームはLakemont Core?)」というメモで紹介しています※3

このIntel Quark Coreを搭載したIntel Quark SoC X1000シリーズ(コードネーム:Clanton)には8つのSKUがあり、決してIntel Galileo開発ボード(コードネーム:Kips Bay Fab-D/Kips Bay Fab-H※4)に搭載されたIntel Quark SoC X1000ただ1つが存在しているわけではないという点を強調しておきます:

  • Intel Quark SoC X1000
  • Intel Quark SoC X1001
  • Intel Quark SoC X1010
  • Intel Quark SoC X1011
  • Intel Quark SoC X1020
  • Intel Quark SoC X1020D
  • Intel Quark SoC X1021
  • Intel Quark SoC X1021D

こうした点がIntel Quarkにまつわる話題を正しく理解するうえで重要な基礎知識となります。

Intel QuarkはPentium Classicベースであるとの誤解の影響

該当記事はIntel Quark CoreがPentium Classicベースであると誤解したうえでの記述となってしまっています。このため、残念ながらこの誤解に基づく数々の誤った記述が並ぶ結果となっています:

さてこのQuarkのCPUコアであるが、実はP54Cである。つまり第2世代のPentiumコアである。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (2/3)

これは先ほど基礎知識として説明したように完全なる誤解です。

そのくせインオーダーながらスーパースカラーのプロセッサーなので、割り込み処理は8bit MCUより遅い。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (2/3)

これも前提が間違っているため、結果として説明を誤ってしまっています(Intel Quark Coreはスーパー スケーラー構成ではありません)。

ちなみにQuarkの派生型で、Silver ButteやMint Valleyといったコード名の製品(製品名はQuark D1000/D2000)もあり、こちらは32MHzまで動作周波数を落とした代わりに消費電力は25mWと超ローパワーになったが、同じ動作周波数の8bit MCUより遅かったため、やはり採用例を聞いたことがない。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (2/3)

ここで言及されている製品のうち、Intel Quark microcontroller D1000(コードネーム:Silver Butte)はIntel Quarkシリーズの中で例外的な製品となっています。この製品が採用しているMicrocontroller Unit(MCU)はIntel Quark Core派生の設計ではありません

IA-32の32ビット モード用の命令フォーマットをベースとして採用した、完全ハーバード アーキテクチャ-※5の新設計MCUです。命令フォーマットにIA-32の面影を残すものの、IA-32と比較してリアル モードやプロテクト モードといった区分やセグメント、ページング、コントロール レジスター(CR)、I/Oポートなどが存在しません。マイクロコード制御が必要になる命令(例えば繰り返し系の命令とプリフィクス※6)も軒並み省略されています。つまり、既存のIA-32とは互換性がありません

こういった構造のため、本当に「同じ動作周波数の8bit MCUより遅かった」と言い切れるのかは未知数でしょう。なぜなら、ここでいう8-bit MCUと同種の構造だからです。それが32-bitだとすると、それなりの速度が期待できるのではないかとは想像できますが、残念ながら私はIntel Quark microcontroller D1000の現物を触ったことがないので断言はすることはできません。

なお、これらのIntel Quark microcontroller D1000の仕様については、以前(2015年)に「Intel Quark microcontroller D1000のCPUはIA-32ではない」というメモで紹介しています。

Intel Galileo開発ボードの位置づけ

ここは私見に基づいて該当記事を読んだ感想によります。

該当記事はIntel Quark SoC X1000とIntel Galileo開発ボードという1つの組み合わせで固定し、すべての面においてArduino Uno R3対抗製品であるという前提の中で組み立てているように読めました。確かにArduino Uno R3が受け持つ分野に競合として投入するということであれば、一部の批評はその通り当てはまる部分があるように思います。一方でその前提が正しいのかどうか、については私は疑問を持っています。

まず、Intel Galileo開発ボードはArduino公式のボードではありません。Intel独自のものです※7。このボードはIntel Quark SoC X1000シリーズのカスタマー リファレンス ボード(CRB : Customer Reference Board、コードネーム:Kips Bay Fab-C)※8を一般小売り用に調整して製品化※9したものです。つまり、明確にArduino Uno R3を置き換えるものとしてリリースされたものではないのです。

一般向けという視点で見ると、IntelがIoTソリューション グループの設立とともに華々しくIntel Galileo開発ボードの提供を開始したように見えますが、実際にIntelが最も売りたかったのはIntel Galileo開発ボードではなく、Intel Quark SoC X1000(以下、「X1000」と略記)シリーズという半導体製品群だったようです。Intel Galileo開発ボードは、その売りたかったX1000シリーズを、これまでIntelと付き合いの薄かったルートに浸透させるためのもの、つまりCRBの一般向け版という位置づけで出されたものだったと考えるのが自然です。言い換えれば、あくまでもX1000シリーズを売るのための戦略的製品であったわけです※10 ※11

これらのことを事実として理解やすい事例を挙げるとすれば、X1000シリーズはArduino Uno R3やその他のArduinoシリーズに搭載することを前提とする設計とはなっていないということがあります。ですから、Intel Galileo開発ボードはX1000シリーズをArduino Uno R3とハードウェア面での互換性を持たせるために多種多様な他社製半導体製品を搭載する構成となっています。Intelの意図としては、既存のArduino資産を活用することで最初からいろいろな用途に使えるようにするために、ハードウェア面でArduino Uno R3互換ボードにしたてることでX1000シリーズの浸透を図ったということでしょう。

ソフトウェア面からみても、IA-32を丸ごと搭載しているX1000を採用するIntel Galileo開発ボードはArduino Uno R3とは一線を画します。Ardiuno Uno R3に搭載されているMicrochip Technology ATmega328Pは特権管理などは行わずに直接ピン入出力する仕組みとなっています※12。Linuxのようなカーネル層もありません。一方でIntel Galileo開発ボードはIA-32を丸ごと搭載しているX1000を採用してLinuxを搭載することで、スケッチ※13をLinux上で稼働するアプリケーションとして動作させます。当然ピン入出力もカーネルを経由することになります。このことは該当記事にも記載がありますが、その内容はデメリットをメリットよりも強調しているように読めます:

Galileoでは、まずLinuxカーネルが動作し、その上で仮想的にArduinoのSketchをサポートするクライアントが動くという構造だったので、そもそも効率が悪い。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (2/3)

ここでいう「効率」というのは、おそらくはピン入出力の「速度(あるいは遅延)」に関してのみ着目しているものと思われます。

しかし、このLinuxを介在する方式にはメリットもあります。それはここでデメリットとして指摘されている、スケッチがLinuxのアプリケーションであるというところにあります。スケッチがEthernetやUSB、オプションとしてWi-FiとBluetoothなどをLinuxの一般的な手法でアクセスすることができるのです。そしてそのコードとArduinoの記法によるコードが併用できます。また、Intel Galileo開発ボードはDDR3メモリーを256 MBも搭載していて、Arduino Uno R3(ATmega328Pの仕様、Flash: 32 KB, EEPROM: 1 KB, RAM: 2 KB)には到底不可能な高速で高度な処理を実行することができます。

このように、単にArduino Uno R3が得意とする部分のみに着目すると、Intel Galileo開発ボードはデメリットだらけに見えるのですが、一方でIntel Galileo開発ボード独自のメリットにも目を向けるとその評価は大きく変わる可能性を秘めています。もちろん、そういった部分が不要で、Arduino Uno R3互換のシングル ボード コンピューター(SBC : Single Board Computer)が必要なのであれば、最初からそれらの互換ボードの中から選ぶべきでしょうし、処理能力の高さが必要であればIntel Galileo開発ボードを採用するという考え方もあったといえるでしょう。選択肢が多いのは、少ないよりもよいことであるのは指摘するまでもありません。

また、これだけの機能とIA-32をまるごと搭載していた関係で、MicrosoftによりWindows for IoTもリリースされました。

そして、X1000シリーズにおいて当初からIntelによって企画されていたボードにはIntel Galileo開発ボード系統以外にも以下のものが存在しています:

  • 工業・エネルギー関連用リファレンス デザインで、2つのEthernetポートとSecure SKUのX1000を搭載する。コードネームはCross Hill。※14
  • 輸送関連用リファレンス デザインで、加速度計、オーディオ サブシステム、ADC、2つのEthernetポートを搭載する。コードネームはClanton Hill。※15
  • Intel社内評価用のシステム検証プラットフォーム(SVP : System Validation Platform)。2つのEthernetポートを搭載する。コードネームはClanton Peak。

また、それ以外にも日本でX1000シリーズを搭載して販売されたサード パーティーのボードがいくつか存在しています。

しかしながら、結果として、該当記事はArduino Uno R3互換ボードとしての視点のみに立脚していることから、X1000シリーズを評しているのか、Intel Galileo開発ボードを評しているのかが不明瞭となっているといわざるを得ません。結果として焦点がぼやけてしまっているように感じました。

実際に該当記事を基礎知識がなく読んだ人は、まるでX1000シリーズがIntel Galileo開発ボード専用に存在しているように思えてしまうのではないでしょうか?

開発はIntelのアイルランド法人

これは余談です。

Intel Quark Coreの開発はIntel Irelandで行われたということが知られています。Intel Irelandが当時出していた求人情報に、まさにIntel Quarkに関するものがいくつか出ていました。

また、関連する「Designed in Ireland: Intel’s Quark chip a world first」という記事も出ていました。今回改めてこの記事を読んだのですが、今回話題としているアイルランドのほかにも、これまで知られていたイスラエル※16とともに、マレーシアにもデザイン拠点がある(あった?)のですね。これは記憶にありませんでした。

Intel Quark Coreの始まり

Intel Quark Coreは、その前身となるものが存在していることが明らかになっています。それはIntel Edison Compute Module(コードネーム:Bodega Bay)として一般に販売された製品に搭載されたIntel Atom Z3400シリーズ(コードネーム:Merrifield)にMCUとして内蔵されていた「Minute IA」と呼ばれているものです※17。このMCUとIntel Galileo開発ボードに搭載されたX1000に含まれるIntel Quark Coreを比較すると、仕様的にMinute IAの方がIntel Quark CoreよりもIntel DX4に近いもの(=古いもの)となっていることが判明しています。この件については以前(2015年)に「Intel Edison Compute ModuleのMicrocontroller Unit(MCU)を分析する」というメモで紹介しています。

その後、IntelはMinute IAをさらに現代(=当時)の基準に合わせて発展させることにしたのでしょう。その結果として生まれたのがIntel Quark Coreで、その検証用チップとして製造されたのがIntel Quark SoC X1000シリーズとなる「前身」あるいは「そのもの」だったのではないか。そのように私は推測しています。

一方で該当記事にはIntel Quark Coreが生まれたエピソードを紹介する部分があります:

そんなときに、たまたまアリゾナで、P54コアを使っていろんなものを作ってみていた中の1つにQuarkがあったらしい。というか、実はQuarkそのものは、2010~2012年ごろに、Douglas L. Davis氏(2019年までIoT Solution Groupと、2017年からはAutomotive Groupの両方のトップを務めていた)が、当時の上司だったKrzanich氏と一緒に作ったものだったらしい。

もちろんこれは目的があって作ったというよりは、P54コアでなにかできないかいろいろ試してみたうちの1つということらしい。ただ当時組み込み部門を率いていたTon Steenman氏には評価されず(冷静に考えれば正しい)、ところがKrzanich氏がCEOになってDavis氏が組み込み部門を統括することになったことで「とりあえず他にないし、いいやこれ出しちゃえ」みたいなノリで投入されたらしい。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (3/3)

これらはエピソードとしては興味深いのですが、「らしい」と書かれているように具体的ではありません。

ただ、このエピソードには疑義を挟み込む余地があると考えています。例えば「P54コア」を対象としている点については、実際にはIntel Quark Coreが「P24C」ベースであることを考えれば、その噂自体が別の製品であることを示唆していることになります。つまり、噂そのものが正しくないのではないかと考えられるということになります。そして、

「とりあえず他にないし、いいやこれ出しちゃえ」みたいなノリで投入された

というのは、Android OSによるスマートフォンおよびタブレットへ参入するための戦略的製品であるIntel Atom Z3400シリーズにIntel Quark Coreの前身となる設計のMCUが搭載されていることを考え合わせると、事実であると考えるのは難しいように思います。意図され、企画され、設計され、製造され、搭載されたと考える方がはるかに説得力があるからです。

ただし、該当記事はX1000シリーズとIntel Galileo開発ボードを別の製品として認識できていないという側面があります。それを受け入れて考えた場合、(X1000シリーズの)CRBとして目の前にあったKips Bay Fab-CとX1000シリーズを一般向け製品化をしてIntel Galileo開発ボードとして売り出すという決定をしたということだけは「ノリ」であった可能性は否定できないかもしれないとは考えることができそうです。その場合はつまり、その他の派生製品は全て後付けで企画されたということになります。

Intel Quark Coreのその後

一般にIntel Quarkシリーズは、すでに終了した製品群であると思われているのではないかと思います。しかし現在、Intel Quark Coreの後継製品は大量に市場に出回っています。実はまったく終わってなどはいなかったのです。

こちらのサイトをご覧の皆さんは一体どのようなプラットフォームを用いていますか?

Intel系のプロセッサーを用いている皆さんのうち、第6世代Intel Coreプロセッサー シリーズ(コードネーム:Skylake)以降を搭載しているのであれば、メイン(あるいはマザー)ボードに搭載されているチップセットにIntel Management Engine(ME)のMCUとしてIntel Quark Core派生のコアが広範囲に搭載されています。

このように、皆さんの知らない※18うちに劇的な普及を果たしているのです。

Intel Quark Core系のプロセッサーは、皆さんのコンピューター ライフとともにある、そんな身近なプロセッサー コアとして稼働しています。

まとめ

ここまで該当記事と私の認識の異なる部分を中心に書いてきました。一方で該当記事の中でもIntelのエッジIoTの側面における結論については同意せざるを得ません:

これに付き合わされた同社の組み込み向けパートナー企業はたまったものじゃない。

引用元:ASCII.jp:CPU黒歴史 思い付きで投入したものの市場を引っ掻き回すだけで終わったQuark (3/3)

まったくです。どういう目論見でIntelが始めたのかはわかりませんが、結果として、これらのIoTの構想に参加した多くの皆さま(法人・個人を問わず)が同じような結論に達したのではないでしょうか。

このIntelによるQuark/Galileo/Edison/Curie/Jouleなどからの撤退という決断によって、Intelの半導体製品群を使用したエッジIoTが終焉を迎えます。

Intelはエッジ向けIoTソリューションへ参入するプランを事実上放棄し、同じころにスマートフォンおよびタブレット向けのプランも同様に放棄しました。これらのエッジIoTを捨てたうえで、それよりも上のインフラストラクチャー レイヤーを押さえることで利益を最大化する方向へ舵を切ったように思われます。現在のIntelの立場であれば、それは説得力のある戦略であるようにも考えられます。

しかしそれは、IBMが中央集権的なコンピューターとは別に、個人のコンピューターとして最初の「IBM PC」を企図した設計思想(アーキテクチャー)から外れるということであるように考えられます※19。その際にCPUを提供していたIntelが、中央集中型のコンピューターに活路を見出すというのは、ある意味で「歴史の転換点」なのだということをいうことができるのではないかとも思います。やや、大袈裟ではありますが。

追記

このメモはここで終わる予定でしたが、本稿の見直し中に新しい情報が入ってきました:

これによるとルネサスがArduinoプロジェクトに出資し、取締役を派遣します。そして、Arduinoの製品にルネサス製品を搭載するとのことです。この狙いはIntelがX1000シリーズの浸透を狙ってArduino LLCと提携した動きと重なるものがあります。この例からも見られるように、半導体企業にとってArduinoの世界というものが一般向け(BtoCや教育方面を含む)ルートに入り込むための入り口としての魅力があることを示しています。これを先に狙ったのがIntelであったということを指し示す事例といえるでしょう。数年後に、ルネサスがIntelのようにあきらめる道をたどるのか、新たな市場を手に入れるのか。興味深く見ていきたいと思います。


  • Write-back Enhanced Intel DX2(コードネーム:P24D)も同一の設計からの派生(オプション)となっています。このオプションは完全合成可能(Fully Synthesizable、HDLレベルで記述して論理合成することが可能であることを意味する)なIntel Quark Coreにも引き継がれる特徴となっています。
  • このほかに「スーパー スカラー」「スーパー スケイラー」などとも表記されることがあります。
  • このメモの「Intel Quark Coreの仕様」セクションの「Intel Quark Core」を「Intel DX4」あるいは「Intel 486」に置き換えて読んでみると、いろいろとしっくりくるかと思います。
  • 「Kips Bay Fab-D」が「Intel Galileo開発ボード」、「Kips Bay Fab-H」が「Intel Galileo Gen 2 開発ボード」のコードネームです。
  • 命令とデータのアクセス経路が完全に分離していることを指します。命令及びデータのキャッシュが分離している、一般的なハーバード アーキテクチャーではなく、命令及びデータのアクセス経路が分かれているIntel Quark microcontroller D1000の構造を指して「完全ハーバード アーキテクチャー」と記述しています。
  • 「prefix」のことです。カタカナ表記では「プリフィクス」「プレフィクス」「プリフィックス」「プレフィックス」などと揺れが生じています。
  • 同時期にIntelはArduino LLCと提携を発表していますが、Intel Galileo開発ボードが公式のボードとなったわけではありません。実際に、Arduino LLCが提供するArduino IDEではIntel Galileo開発ボードやIntel Edison Kit for Arduinoをサポートしていません
  • CRBとはIntelがCPUなどの製品を採用する予定のカスタマー(製品製造を行うベンダー)向けに提供する、参考用の実動ボードです。通常は設計情報や関連するソフトウェア情報などを含めて提供されます。このX1000シリーズのCRBはソルダー レジストが緑です。
  • ソルダー レジストが青のもので、一部仕様がCRBと異なります。
  • 日本電気(NEC)がIntel 8080A互換のμPD8080Aを、これまでの同社にとって付き合いのあった方面以外に浸透させ、需要を掘り起こすために「TK-80」を市場に投入したことと同じような意味合いがあるといえるでしょう。
  • IntelはIntel Galileo開発ボードを教育機関向けに広く配布するなど、採算を度外視した普及活動を行っていました。こうしたことからもIntel Galileo開発ボードそのもので利益を出すという目的がなかったであろうことを示しています。
  • このようなことから、Arduino Uno R3で動きながらIntel Galileo開発ボードで動作しない「ライブラリ」の一部はMCUがATmega328Pであることを前提としたものが含まれていました。
  • Sketch、Arduino向けのアプリケーション ソフトウェアのことです。
  • 推測で未確認ですが、おそらくIoTゲートウェイ開発キット「DK 100」シリーズが該当製品と思われます。
  • 推測で未確認ですが、おそらくIoTゲートウェイ開発キット「DK 200」シリーズが該当製品と思われます。
  • Pentium with MMX Technology(コードネーム:P55Cなど)やPentium M(コードネーム:Baniasなど)、初代Coreプロセッサー(コードネーム:Yonahなど)などを設計した拠点として知られています。すでに閉鎖済みとのうわさもありますが、確認はしていません。
  • ちなみに、Intel Atom Z3400シリーズのスペック表にはMCUが搭載されているとは一切記載がありません。にもかかわらず実際にはMCUが載っていたというはとても興味深いところです。
  • もちろん、ご存じの方が一定数いらっしゃることは理解していますが、多くの方々はご存じないのでは。そう思っています。
  • その時点では、それまでのコンピューターはリモート接続をして使用するもので、処理自体は中央コンピューターで行うというものが多勢であったのです。

ASCII.jpに掲載のIntel Quarkに関する記事を読んで思うこと」への1件のフィードバック

  1. がじぇぴん

    面白い!忘れてることだらけですが、記事には思い込みによる主観が多く入ってることに改めて気付かされました

    個人的には多くの時間やエネルギー、お金を使いましたが、出会えなかった人との繋がりができたり、友人の新たな一面を知ることが出来たりして、楽しい時間でした。もう一度やれって言われたら遠慮しますけどw

    会社でも個人でも、付き合うかどうかの選択は最終的にその人に任されてるはず、、

    返信

コメントを残す

メールアドレスが公開されることはありません。