はじめに
1カ月ちょっと前に書いた「Intel Quark Core自体の仕様(コードネームはLakemont Core?)」および「Intel Galileo BoardとQuarkに関するまとめ(勝手にFAQ)」において、「Intel Quark Core」を「Pentium(P54C)ベース」だと紹介しましたが、これが誤りだということに気付きましたので、その説明をしたいと思います。
なお、本稿では現状「Intel Quark Core」として発表されているものをコードネームの「Lakemont Core」と記述します。というのも、IntelがInternet of Things(IoT)部門を設立して本格的に参入してくるため、今後、新たな設計のプロセッサーコアIPを投入する可能性があると考えられるからです。その際にはコードネームで呼び分けられていた方が利便性が高いだろうと思いますので、このようにします。
Lakemont CoreはIntel DX4ベース
結論を先に書きますが、Lakemont Coreは「Intel DX4(別名Intel 486DX4)」をベースとするものです。このIntel DX4にPentiumで追加された各種仕様と、Pentium 4(Prescott)で導入されたXD(eXecute Disable)ビットとCore iシリーズ(Ivy Bridge)で導入されたSMEP(Supervisor Mode Execution Protection)をサポートする目的で、32ビットアドレスのままPAE(Physical Address Extension)を実装しています。これがLakemont Coreの正体です。
したがって、Lakemont CoreはIntel 80386ベースでもIntel Pentiumベースでもありません。
気づくのが遅れた理由
事前情報として「【後藤弘茂のWeekly海外ニュース】IntelがAtomよりさらに低電力なCPU「Quark」を発表 ~その正体はClaremont? – PC Watch」と「プロセッサ-マイコン:Intelが“iPhone 5sのA7”と同じ64ビットSoC「Quark」を発表――マイコン市場を脅かすか? – EE Times Japan」という2つの記事を読み、私自身は後藤さんのClaremont(Pentium)説を支持していた関係で、Pentiumベースだという先入観が私の中にできあがっていました。
また、Intelが「Galileo is a microcontroller board based on the Intel® Quark SoC X1000 Application Processor, a 32-bit Intel Pentium®-class system on a chip (SoC).」(Product Brief Intel® Galileo Boardより引用)などのように、Pentium「クラス」としていることにも必要以上に影響を受けてしまいました。
このためPentiumとLakemont Coreの比較のみをしてしまい(Intel 80386とは比較するまでもなく異なる設計でした)、それ以外のプロセッサーコアを転用した可能性の検討をしなかったことが誤認した原因です。
先入観にとらわれず、視野を広げて見るべきでした。
気づいた経緯
昨日、偶然に「EMBEDDED WRITE-BACK ENHANCED IntelDX4™ PROCESSOR(October 1995 Order Number: 272771-001)」というデータシートを目にしたことです。1ページ目にどこかで最近見たことのあるブロックダイアグラムが…。ということで気づきました。
それは少々の違いはあれど、ほぼLakemont Coreと同一のものです。このことからLakemont CoreはPentiumベースという認識は誤りで、Intel DX4ベースだ、ということに気付いたわけです。
以下にIntel DX4とLakemont Coreのブロックダイアグラムを示します:
Intel DX4のブロックダイアグラム
EMBEDDED WRITE-BACK ENHANCED IntelDX4™ PROCESSOR(October 1995 Order Number: 272771-001)より引用
Lakemont Coreのブロックダイアグラム
Intel Quark SoC X1000 Core Hardware Reference Manualより引用
Lakemont CoreとIntel 486シリーズの比較
Intel 486シリーズには、初期のIntel 486DX/SXシリーズと後期のIntel DX4(あるいは前述のようにIntel 486DX4とも呼ばれる)があります。1次キャッシュの容量が前者が8キロバイトに対して後者は16キロバイトに拡大されていること、前者の1次キャッシュはライトバックができないが後者の1次キャッシュはライトバックが可能(Write-Back Enhancedオプション)なことを考慮に入れ、Lakemont Coreでは標準16キロバイトのキャッシュで、コンフィグレーションによってはライトバックのサポートが提供されること、SL Technology(System Management ModeとCPUID
のサポートなど)が実装済みであることなどから、Intel DX4ベースであると判断しました。
このIntel DX4をベースに、現在の主要なOSとアプリケーションが動作するようにPentium ISA互換に拡張し、セキュリティ上の後退を起こさないためにPAEの追加によってXDビットとSMEPをサポートするという改良を施したのがLakemont Coreです。そう考えれば、
- Pentium ISA互換という言い方をIntelがしていること(≒Pentiumではないと間接的に言っている)
- Pentiumと異なりIntel 486と同じくシングルパイプラインであること
- Intel 486シリーズと同じ(=Pentiumでも同じ)基本5ステージのパイプライン構造であること
- 外部バスがIntel 486シリーズと同じ32ビットであること
- その他、ブロックダイアグラムが酷似していること
などといった特徴がすべてすんなり納得できるものになります。
まとめ
このようにLakemont CoreはIntel DX4の発展形でした。それを現代のOSやアプリケーションを動かすために必要となる要素を加えてフルシンセサイザブルにしたのがLakemont Coreというわけです。
当初はPentium(P54C)との比較しかせず、結果として誤った情報を掲載してしまいました。今後は思い込みをなくし、広い視野で見ていこうと思います。
2013年11月13日追記
「Intel DX4」が正式名称で「Intel 486DX4」が通称であるという状況に合わせて、記述を「Intel DX4」に統一する形で変更を行いました。
2014年01月09日追記
「SMEP(Supervisor Mode Execution Protection)」についても追記を行いました。
関連記事
- Intel Galileo(Fab D)とKips Bay Fab Cとの違い
- Intel Quark関連コードネームまとめ
- Intel Galileo BoardやKips Bayのファームウェア更新について
- 2013年12月中旬よりIntel Galileo Board国内販売開始
- Intel Galileo BoardとQuarkに関するまとめ(勝手にFAQ)
- Intel Quark Core自体の仕様(コードネームはLakemont Core?)
- Intel Quark SoC X1000自体の仕様
- Intel Quark SoC X1000搭載Intel Galileo Boardを発表
- Intel Quarkの正体は80386?それともPentium?