Intel 64
読み:インテル-ろくじゅうよん
外語:Intel 64

 Intelプロセッサーの64ビット技術(x64)の一つ。「インテル64」とも書かれる。旧称「EM64T」。
目次

概要

機能
 Intel x86シリーズマイクロプロセッサーのうち、i386以降で使用される32ビット機械語命令セットをIA-32という。
 これを拡張し、AMD64 ISA(x64、旧称x86-64)互換の64ビット拡張機能が追加された命令セットがIntel 64である。

由来
 Intelは64ビット化として従来とは非互換のIA-64を提唱したものの鳴かず飛ばずであった。このためIntelは、開発コードネームYamhill(ヤムヒル)として、極秘でIA-32上位互換の命令セットを開発していた。
 しかし、極秘の開発であったにも係わらずその情報は漏れ、Intelはその存在を公表せざるをえなくなる。
 また、この技術はAMDに先を越された。Microsoft側から、AMD64と非互換の仕様は受け入れられないという通告があったとする説があり、Intelは開発コードネームはClackamas(クラカマス)として、AMD64互換機能の開発をせざるをえなかったともされる。
 かくして、Clackamas、つまりAMD64互換のこの機能は2004(平成16)年2月17日(現地時間)に正式発表された。一時期は「IA-32e」とも呼ばれたが、すぐに改名され「EM64T」に名前が落ち着き、2006(平成18)年7月27日のCore 2発表後は更に「Intel 64」を正式名称とした。
 なお、AMD64もIntel 64も企業名が含まれていて扱いにくいため、Microsoftはそれらを無視して「x64」と呼んでいる。

対応する製品
 Intel 64はXeonの新CPUコアNocona(ノコナ)、Xeon MP用新CPUコアPotomac(ポトマック)・Cranford(クランフォード)、およびPentium 4の新CPUコアPrescott(プレスコット)からこの機能に対応させ、製品は2004(平成16)年後半に登場した。
 この当時のIntel 64対応プロセッサーは、周波数の後にFを付けて表示した。
 対応する製品に、次のようなものがある(順不同)。
 及び、これ以降の製品すべて。

機能の有無判別
 Intel 64対応プロセッサーにはAMD64と同様にIA32_EFERというレジスターがあり、この有無を調べることでIntel 64対応の有無を知ることができる。但し特権命令を使用する必要があり、一般のアプリケーションでは不可能である。
 拡張CPUID対応のプロセッサーで、かつEAX=80000001HでCPUIDを実行した結果EDXレジスターのビット20ないしビット29が1であれば、IA32_EFERが存在する。

特徴
 基本的なコンセプトはAMD64 ISA(旧称x86-64)と同様で、IA-32アーキテクチャーに64ビットアドレッシング機能などを搭載したものである。
 つまり、設計はIntelではなくAMDであり、Intel 64はAMD設計品の互換品である。
 もっとも、Intel 64はAMD64 ISAとは完全互換ではない。しかし新命令の機械語コードや64ビットモードで使えない命令、変更になった機械語コード等の仕様は全く同じであり、実用上は問題がない水準になっている。
 特筆すべき点は、これは決して、単に64ビット命令を利用できたり64ビットアドレッシングに対応したりするだけの仕様ではなく、あくまでも「AMD64 ISAの互換品」ということである。3DNow!には当然非対応だが、AMD K6から追加されたAMDの独自命令syscall/sysret命令も、Intel 64にはしっかりと実装されている。

互換性
 仕様の差異は、色々と確認されている。

フラグレジスター
 例えばフラグレジスターの違いがある。
 AMD64では他の汎用レジスターと同様に64ビットに拡張され、RFLAGSと呼ばれている。但し上位32ビットは予約扱いで、現在は未使用である。
 対してIntel 64では32ビットのままで、名前もEFLAGSのままである。

その他
 その他の差異として、次のような点が知られる。

対応環境
 Intel 64に対応するWindowsは、Windows XPの64ビット版以降およびWindows Server 2003(SP1)以降である。
 Linuxでは、Red HatがRed Hat Enterprise Linux version 3から対応する。またNovellがSUSE Linux Server 9から対応する。

再検索