Intel 64 【EM64T】 Extended Memory 64 Technology

概要

Intel 64(EM64T)とは、米インテル(Intel)社がx86系マイクロプロセッサ(CPU/MPU)製品に組み込んだ64ビット命令セットで、32ビットx86系命令セットとの互換性を維持したまま64ビットコードの実行を可能にしたもの。米AMD社のAMD64(x86-64)とほぼ同じもの。

x86は米インテルIntel)社の8086を源流とするプロセッサ製品シリーズに搭載されてきた命令セットの体系で、i386以降は32ビット拡張されたものが使用されてきた。Intel 64はこれを64ビット拡張した命令セットで、新たに64ビット用に開発されたソフトウェアは高い性能や拡張性を得られる一方、旧来の32ビットx86プロセッサ向けのコードもそのまま実行することができる。

主な仕様

Intel 64では個々の32ビット命令の先頭に特定の識別子(REXプレフィックス)を追加することで、同じ動作の64ビット命令とすることができる。各レジスタ64ビット拡張され、汎用レジスタが8個から16個に新たに8個追加された。SSE命令などで使われる128ビット長のXMMレジスタも8個から16個に倍増した。

メモリ空間のアドレッシング32ビットの上限である4GiBから大きく拡張され、48ビットアドレスを用いることで理論上は一つのプロセスが最大で256TiBまでの単一のメモリ空間を使用できるようになった。

動作モード

動作モードとして64ビットOS実行するための「Longモード」と、旧来の32ビットOSなどを実行する「Legacyモード」がある。Longモードでは64ビットソフトウェア実行できるほか、32ビット互換モード32ビット向けソフトウェアもそのまま実行できる。これにより、64ビットOS上で新しく64ビット向けに設計されたアプリケーションと古い32ビットアプリケーションを混在させることができる。

Legacyモードはプロテクトモード、仮想8086モード、リアルモードなど旧来のx86プロセッサの動作モードサポートし、64ビット機能をオフにして古いx86プロセッサとして振る舞う。古いプロセッサを前提に設計された32ビットOSなどをそのまま実行することができる。

IA-64/AMD64との関係

Intel社は当初、64ビット命令セットとしてx86とまったく互換性のない新規設計のIA-64を米ヒューレット・パッカード(Hewlett-Packard)社(当時)と共同開発し、Itaniumなど高性能サーバ向けプロセッサ製品として販売していた。しかし、従来のx86向けソフトウェアエミュレーションにより動作させるため極端に性能が落ちる点などが敬遠され、普及は一向に進まなかった。

一方、x86系プロセッサの互換製品を開発・販売していたAMD社は32ビットx86との互換性を維持しながら64ビット拡張したAMD64(当初の名称は「x86-64」)を開発し、2003年から自社製品に組み込んでいった。

この方式は過去のソフトウェア資産を引き継ぎながら64ビットの機能や性能も活かすことができるとして好評を博し、開発者や市場に広く受け入れられたため、Intel社もこれとほぼ同じ仕様の64ビット拡張としてIntel 64(当初の名称は「EM64T」)を発表し、これを自社製品に組み込む方針に転換した。

Intel 64とAMD64は一部に細かな差異はあるもののほぼ同じ仕様となっており、OSコンパイラなどが仕様の違いを吸収してくれるため、ソフトウェアの開発者や利用者が違いを意識することはほとんどない。ソフトウェアメーカーなどは両者に同じように対応していることを示すため、どちらの名称も用いず「x64」といった表記を用いる場合もある。

(2019.1.10更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる