x64が64ビットを表すのにx86が32ビットを表すのはなぜですか?[閉まっている]


97

私の質問は、64ビットの短縮形がx64であるのに32ビットx86の短縮形はなぜですか?

32ビットプロセッサがすべて86で終了した386および486の時代と関係があると思いますが、86で終了せず、まだ32ビットであったプロセッサは確かにありましたか?

誰もがこれの歴史を知っていますか、または情報の良い情報源に私を導くことができますか?

ありがとう


7
気づかない好奇心のためにこの+1を常に知りたいと思っていました!
ガブリエルギマランイス

今朝このことを自問しました!
ショーンハワット

9
私は完全な用語はx64のが、x86_64ではないと思う
Kedare

3
私見、「x86」は、単なる一般的な32ビットアーキテクチャを意味するものではありません(意味しません)。以下のダニエルの答えは歴史を与えます。80386と同時期(またはそれ以上)の32ビットプロセッサは他にもたくさんありますが、現在でも市場に出回っているのはかなりの数です。68000ファミリ(元のMacintoshで使用)は、たとえば8086よりもずっと古いです。PowerPCの新しい名声は、x86と68Kの両方に対する強力なエミュレーションサポートでした。ARMは32ビットで、より現代的で、非常に一般的です。
RBerteig

私はそれをx64とは見ていません。少なくともそのようには書きません。それぞれ32bと64bと書きます。
vol7ron

回答:


34

おそらくx86ラインはかなり長い間32ビットプロセッサと同義語になったためです。一方、x64はアプリケーションとオペレーティングシステムの移行に伴い、64ビットの具体的な指定でしたが、現在は実行するために64ビットの指定を必要とするソフトウェアアプリケーションがあります(一部のVMソフトウェアと同様)。

言い換えれば、テクノロジーよりもマーケティングの方が理由です。



6
また、x86は8086に由来するため、32ビットに常に関連付けられている理由を解明することはできませんでした。私が思い出したように、8086は16ビットプロセッサであり、ダブルレジスタを使用して32ビットメモリアドレッシングを有効にしました。インテルは当時、この分野のリーダーではありませんでした。@gWaldoところで、あなたは80186.を残し
ジョンGardeniers

一致。ウィキペディアから、「アーキテクチャと物理チップの両方は、したがって、少数の人々によってかなり迅速に開発され、わずかに古い8085に使用されたのと同じ基本的なマイクロアーキテクチャ要素と物理実装技術を使用します(8086も機能します)続きとして)。」また、8087と8089.ありました
バートSilverstrim

ええ

1
この回答には何の問題もありませんが、正直なところ、ダニエルの方がはるかに詳細なので、受け入れられるべきだと思います。
マッシモ

189

まあ、かつて8086と呼ばれるチップがあり、IBM PCと呼ばれるパーソナルコンピューターで使用された8088と呼ばれる安価なバージョンがありました。そのチップの改良バージョンが作成され、80186と呼ばれましたが、それはあまり人気のあるバージョンではありませんでした。しかし、その後、改良された改良版が作成され、80286と呼ばれました。今では、特にIBM PC ATと呼ばれるコンピューターで使用されているため、非常に人気のあるチップでした。

後に、すべてが16ビットアーキテクチャを備えた8086、8088、80186、および80286チップを作成して販売したIntelは、他の製品と競合する32ビットチップを作成する必要性を認識しました。現在の位置を利用するために、前述のチップ用に作成されたソフトウェアを実行できる新しいチップを作成しました。当然、Intelはこの新しいチップを80386と呼びました。

それまでに、さまざまなバージョンのIntelチップを使用するコンピューターがたくさんあり、Intelチップと互換性のある非Intelチップもありました。そこで人々はそれらを80x86と呼び始めました。

しばらくして、Intelは新しいチップを発売しましたが、80をドロップすることを決めたので、それは80486ではなく486になりました。同様に、人々は "80x86"の前面から "80"をドロップし、 。

さて、Intelがチップをx86ブランドにしたと言っている人が来ると確信していますが、そうしましたが、私は気にしません。

実際、増え続ける中間桁が80x86になり、x86は80186と80286が32ビットでなくてもそこから来たという事実です。

それで、Intelがついに64ビットになったら、新しいアーキテクチャとは何と呼んだのでしょうか?右!IA64!:-)また、いわばx86の名前を遡ってIA32に変更しました。IA64のみがx86と互換性がなかった、つまりIA32であったため、誰もがそれを無視しました。

そして、AMDが登場し、x86ファミリと可能な限り互換性のある64ビットCPUが市場で求められていると判断されました。マーケティングの魅力として、彼らはそれを「x86-64」ファミリーと呼び、大成功を収めました。そのため、Intelはx86ベースの独自の64ビットCPUをしぶしぶついてきました。

後に、人々は怠け者であるため、x86-64は単にx64として知られるようになりました。

x64はx86-64よりも短いので、あなたの質問に答えてください。


10
ピックをすのではなく、完全に正確にするために、AMDは64ビットチップを販売しませんでした。AMDが出したx64またはx86_64は、Intelが作成したx86命令セットに64ビット拡張が追加されたため、x86命令セットと互換性のない真の64ビットチップであるIntelのItanium(IA_64)に対してx86_64です。
ジェレミーハジェク

6
さらに、Intelは数字を使用しているだけで、一連の数字を商標登録できないため、商標の問題に直面したと思います。それが、80586だったものがPentiumになった理由です。
cdkMoose

3
明確にするために:AMDは拡張機能をAMD64と呼び、Intelはそれらを(AMDからライセンスを受けた)Intel64と呼びます。いくつかの微妙な違いがあり(100%の互換性はありません)、ほとんどのOSベンダーは通常、共通のサブセットを使用します。Windows 2008 DVDでは、インストールフォルダーは実際にはAMD64と呼ばれます(32ビットのI386とは異なります)。x86_64がどこから来たのかはわかりません。AMDからはx86の拡張機能であるため、または中立的な用語が必要なUnixベンダーからです。
マイケル

20
@Jeremy Hajek:AMD64 / x86_64は真の64ビットチップデザインであり、その64ビットモードはエミュレーションではなく、パフォーマンスへの影響もありません(実際、32ビットモードもエミュレーションではありません)。チップには64ビット命令セットと64ビットレジスタがあり、64ビットチップになっています。AMDが64ビットチップを販売したことがないという印象をどこから得ているかはわかりません。ただし、AMDは、IntelがIA64で行ったように、32ビットチップとの互換性を破る64ビットを販売したことはありませんでした。
ライライアン

1
x64は、Windows / Microsoftの用語でのみ使用されます。GNU / Linuxは、アーキテクチャx86-64またはamd64を呼び出します。(32ビットx86を呼び出しますi386)。x86が特に32ビットx86を意味するのは、Windowsの世界でのみ(または少なくとも大部分)です。CPUについて話しているほとんどのハードウェアの人は、x86が8086と下位互換性のあるCPUを意味するものと理解しています。そのモード(通常は64ビットロングモード、または64ビットカーネルの場合は32ビット互換モード)に関係なく「x86には効率的なリリース/ロックフリーアトミックがあります」と言いますが、64ビットは除外していません。
ピーター


3

技術的には、x86は単にプロセッサのファミリとそれらがすべて使用する命令セットを指します。実際には、データサイズについて具体的なことは何も言いません。

x86は、16ビットプロセッサ(8086および8088プロセッサ)用の16ビット命令セットとして始まり、32ビットプロセッサ(80386および80486)用の32ビット命令セットに拡張され、現在は64ビットプロセッサ用の64ビット命令セット。以前は、チップモデル番号の中央の値の変化を反映するために80x86と記述されていましたが、線に沿ってどこかに前面の80がドロップされ、x86だけが残りました。

インテルのx86命令セットを使用するすべての新しいプロセッサーは、引き続きx86、i386、またはi686互換と呼ばれますが(これはすべて、元の8086の拡張機能を使用するという意味です)指図書)。

x64は本当に奇妙な男です。x86セットの64ビット拡張の最初の名前はx86-64と呼ばれていました。後にAMD64という名前が付けられました(AMDは元々64ビット拡張を思いついたものだったため)。Intelは64ビット命令セットのライセンスを取得し、バージョンをEM64Tと名付けました。命令セットとそれらを使用するプロセッサは両方とも、まだx86と見なされます。


x86-64は、AMD64およびEM64Tを含むベンダー中立の用語に戻りました。先頭の80は常に部品番号にありましたが、80186の後は186対8086対386と言うだけになりました。Pentiumは正式に部品番号で586または80586と呼ばれることはありません(cpu-world.com/sspec/Pentium。 html); i586およびi686の用語は、CPUが自分自身を報告した方法のCPUID「ファミリ」フィールドに基づいていました。
ピーター

3

x86およびx64はCPU アーキテクチャの名前です。CPUアーキテクチャには、レジスタあたりのビット数だけではありません。

64ビットへのジャンプはx86から​​のアーキテクチャの最大の変更であるため、x64が名前になりますが、そのジャンプは唯一の変更にはほど遠いです。

x86は、80286、80368、486などを含む由緒ある8086プロセッサおよびファミリから名前を取得します。x86がアーキテクチャの名前として確立された時点では、レジスタあたり32ビットは、構築を正当化するのに十分な重要な機能とは見なされていませんでした名前に入れます。


2

まあ、x64実際には命令セットやチップメーカーから来たことはありません。元々はWindows XPから来ました。Windowsの最初の64ビット版にはタイトルが付けられましたWindows XP x64。そして、私x64はそこから言葉が固まっていると思います。

このx86モニカーは、32ビット命令セットから取得されます。したがって、すべてのx86プロセッサ(先頭なし80)は同じ32ビット命令セットを実行します(したがって、すべて互換性があります)。そのx86ため、そのセットの事実上の名前になっています(したがって、32ビット)。

x86セットのAMDのオリジナルの64ビット拡張は呼ばれましたAMD64。Intelは後にライセンスを取得しましたが、それでも64ビットx86命令セットの名前は通常AMD64でした。

しかし、それは主にブランドの区別です。いくつかの異なる主要なオペレーティングシステムディストリビューションが各64ビットフレーバーと呼ぶものを以下に示します。

だから基本的に、Linuxが好むようでx86_64、BSDが好むamd64し、他のものも好むようだx64...

しかし、注意すべき大きなことは、それらがすべてマーケティング目的のために同じことを意味するということです。繊細で、彼らは(も、異なるものを意味するのですamd64から、何か別のことを意味しx86_64(前者は、ベンダー固有のアーキテクチャ、および2つのベンダーのアーキテクチャ)の後者のサブセットを、しかしx86_64=== x64)が、プログラマを除き、誰もがアセンブリまたはマシンに書くためのコードは本当に違いはありません...


1
IA64が死亡したため、現在のすべてのx64は実際にはAMD-64です。
オーバーマインド

@Overmind:x64とIA-64は常に別々のものでした。IA-64は、x86またはx86-64とはまったく関係ありません。(初期のIA-64実装には、互換性の理由でx86コアが含まれていたため、Intel ...)
Peter Cordes

はい、それは正しいです。しかし、「それは死んだ、ジム」。
オーバーマインド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.