web-dev-qa-db-ja.com

x64が64ビットを表すのにx86が32ビットを表すのはなぜですか?

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

32ビットプロセッサがすべて86で終わった386と486の時代と関係があると思いますが、86で終わらなかったプロセッサがまだ32ビットだったのでしょうか。

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

104
Simon Foster

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

言い換えれば、それは理由のために技術よりもマーケティングです。

36

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

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

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

しばらくして、Intelは新しいチップを発売しましたが、80を落とすことを決めたため、80486ではなく486になりました。同様に、人々は「80」を「80x86」の前から落として、これを単にx86と呼んでいました。

今では、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より短いので、あなたの質問に答えてください。

195

Wikipedia から:x86という用語は、Intel 8086 CPUに基づく命令セットアーキテクチャのファミリを指します。

16
bindbn

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

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

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

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

3
ScoRpion

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

64ビットへのジャンプはx86から​​のアーキテクチャにおけるbiggestの変更であるため、x64は名前ですが、そのジャンプはonly変更。

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

3
Joel Coel

まあ、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...を好みます。

しかし、注目すべき重要なことは、それらはすべてマーケティング目的で同じことを意味するということです。微妙な意味でそれらは異なる意味を持ちます(まあ、AMD64x86_64(前者はベンダー固有のアーキテクチャであり、後者は2つのベンダーアーキテクチャのサブセットです)とは異なる意味ですが、x86_64 === x64)ですが、アセンブリまたはマシンコードで書くプログラマ以外は、実際には違いはありません...

2
ircmaxell