Mengapa x86 mewakili 32bit ketika x64 mewakili 64bit? [Tutup]

97

Pertanyaan saya adalah mengapa singkatan untuk 32-bit x86 ketika singkatan untuk 64-bit adalah x64?

Saya menduga itu ada hubungannya dengan hari-hari 386 dan 486, ketika prosesor 32-bit semua berakhir pada 86, tapi tentu saja ada prosesor yang tidak berakhir pada 86 dan masih 32-bit?

Adakah yang tahu sejarah ini atau dapat mengarahkan saya ke sumber info yang bagus?

Terima kasih

Simon Foster
sumber
7
selalu ingin tahu +1 ini karena rasa ingin tahu yang tidak sadar!
Gabriel Guimarães
Saya hanya bertanya pada diri sendiri pagi ini!
Sean Howat
9
Saya pikir istilah lengkapnya bukan x64 tetapi x86_64
Kedare
3
IMHO, "x86" tidak berarti (dan tidak pernah berarti) sembarang arsitektur 32-bit umum. Jawaban Daniel di bawah ini memberikan sejarah. Ada banyak prosesor 32-bit lain yang sebaya dengan (atau lebih tua dari) 80386, dan beberapa masih hidup dan baik di pasar saat ini. Keluarga 68000 (digunakan dalam Macintosh asli) jauh lebih tua daripada 8086, misalnya. Klaim PowerPC untuk ketenaran ketika baru adalah dukungan emulasi yang kuat untuk x86 dan 68K. ARM 32-bit, lebih modern, dan cukup umum juga.
RBerteig
Saya tidak melihatnya sebagai x64, setidaknya saya tidak menuliskannya seperti itu. Saya menulisnya masing-masing sebagai 32b dan 64b.
vol7ron

Jawaban:

34

Mungkin karena garis x86 menjadi identik dengan prosesor 32 bit untuk beberapa waktu, sementara x64 secara khusus merupakan penunjukan untuk 64 bit ketika aplikasi dan sistem operasi dialihkan, dan sekarang ada aplikasi perangkat lunak yang memerlukan penunjukan 64 bit untuk menjalankan (seperti beberapa perangkat lunak VM).

Dengan kata lain, itu lebih dari sekadar pemasaran karena alasan itu.

Bart Silverstrim
sumber
20
x86 berasal dari 8086, 286, 386, 486, 586, dll. Bisa dengan mudah menjadi "* 86"
gWaldo
6
Dan karena x86 berasal dari 8086 saya tidak pernah bisa mengetahui mengapa itu selalu dikaitkan dengan 32 bit. Seingat saya, 8086 adalah prosesor 16 bit, yang menggunakan register ganda untuk mengaktifkan pengalamatan memori 32 bit. Intel jauh dari menjadi pemimpin di bidang itu saat itu. BTW @ gWaldo, Anda ketinggalan 80186.
John Gardeniers
Kebetulan. Dari Wikipedia, "Baik arsitektur dan chip fisik karena itu dikembangkan agak cepat oleh sekelompok kecil orang, dan menggunakan elemen mikroarsitektur dasar yang sama dan teknik implementasi fisik seperti yang digunakan untuk 8085 yang sedikit lebih tua (dan untuk mana 8086 juga akan berfungsi sebagai kelanjutan). " Ada juga 8087 dan 8089.
Bart Silverstrim
Ya, saya meninggalkan 80186 karena saya benar-benar tidak dapat mengingat apakah itu merupakan produk yang dirilis (dan merasa terlalu malas untuk mencarinya ...)
gWaldo
1
Jawaban ini tidak ada salahnya, tapi jujur ​​saya pikir jawaban Daniel harus diterima, karena jauh lebih rinci.
Massimo
189

Ya, pernah ada chip yang disebut 8086, dengan versi yang lebih murah bernama 8088 yang digunakan di komputer pribadi yang disebut IBM PC. Versi yang lebih baik dari chip itu dibuat dan disebut 80186, meskipun itu bukan versi yang sangat populer. Namun, versi yang ditingkatkan diperbaiki kemudian dibuat, dan disebut 80286. Sekarang, itu adalah chip yang sangat populer, khususnya karena digunakan dalam komputer yang disebut IBM PC AT.

Kemudian, Intel, yang menciptakan dan menjual chip 8086, 8088, 80186 dan 80286, yang semuanya memiliki arsitektur 16 bit, melihat perlunya membuat chip 32 bit untuk bersaing dengan penawaran serupa oleh orang lain. Untuk memanfaatkan posisi petahana, itu membuat chip baru yang mampu menjalankan perangkat lunak yang dibuat untuk chip yang disebutkan sebelumnya. Secara alami, Intel menyebut chip baru ini sebagai 80386.

Pada saat itu ada banyak komputer menggunakan berbagai versi chip Intel, dan ada juga chip non-Intel yang kompatibel dengan yang Intel. Jadi orang-orang mulai menyebut mereka sebagai 80x86.

Setelah beberapa saat, Intel meluncurkan chip baru, tetapi memutuskan untuk menjatuhkan 80, sehingga menjadi 486 bukannya 80486. Demikian juga, orang-orang menjatuhkan "80" dari depan "80x86", dan menyebut hal ini hanya x86 .

Sekarang, saya cukup yakin beberapa akan datang dan mengatakan Intel merekkan chip mereka x86 pada waktu ini dan itu, yang mereka lakukan, tapi saya tidak peduli.

Faktanya adalah bahwa angka tengah yang terus meningkat memunculkan 80x86, dan x86 berasal dari itu - bahkan jika 80186 dan 80286 bukan 32 bit.

Jadi, begitu Intel akhirnya menjadi 64 bit, apa yang disebutnya arsitektur baru? Baik! IA64! :-) Ini juga secara retroaktif mengganti nama x86 ke IA32, jadi untuk berbicara. Hanya IA64 yang tidak kompatibel dengan x86, maksud saya, IA32, jadi semua orang mengabaikannya.

Dan kemudian muncul AMD, yang memutuskan pasar menginginkan CPU 64 bit yang kompatibel, sedapat mungkin, dengan keluarga x86. Sebagai daya tarik pemasaran, mereka menyebutnya keluarga "x86-64", dan mereka sangat sukses. Sedemikian rupa sehingga Intel akhirnya dengan enggan mengikuti dengan 64 bit CPU mereka sendiri berdasarkan x86.

Belakangan, karena orang malas, x86-64 dikenal sebagai x64.

Jadi, sebagai jawaban atas pertanyaan Anda, karena x64 lebih pendek dari x86-64.

Daniel C. Sobral
sumber
10
Bukan untuk nit pick tetapi lebih tepatnya, AMD tidak pernah memasarkan chip 64 bit. x64 atau x86_64 yang keluar dengan AMD adalah ekstensi 64 bit ditambahkan ke set instruksi x86 yang dibuat Intel - maka x86_64 yang bertentangan dengan Intel Itanium (IA_64) yang merupakan chip 64 bit benar yang tidak kompatibel dengan set instruksi x86.
Jeremy Hajek
6
Selain itu, saya percaya Intel menghadapi masalah merek dagang karena mereka hanya menggunakan angka dan Anda tidak dapat merek dagang urutan angka, itulah mengapa 80586 menjadi Pentium, nama yang dibuat-buat yang dapat terus mereka merek dagang.
cdkMoose
3
Untuk memperjelas: AMD menyebut ekstensi mereka AMD64, dan Intel menyebut milik mereka (yang mereka lisensikan dari AMD) Intel64. Ada beberapa perbedaan halus (mereka tidak 100% kompatibel), sehingga kebanyakan Vendor OS biasanya menggunakan Subset umum. Pada DVD Windows 2008, folder instal sebenarnya bernama AMD64 (berbeda dengan I386 pada 32-Bit). Saya tidak tahu dari mana x86_64 berasal: Dari AMD karena ini merupakan ekstensi ke x86 atau dari Unix-Vendor yang menginginkan istilah netral.
Michael Stum
20
@Jeremy Hajek: AMD64 / x86_64 adalah desain chip 64-bit yang sebenarnya, mode 64-bitnya bukan emulasi dan tidak memiliki dampak kinerja (dan pada kenyataannya, mode 32-bitnya juga bukan emulasi). Chip ini memiliki set instruksi 64-bit dan register 64-bit, yang membuatnya menjadi chip 64-bit. Saya tidak tahu dari mana Anda mendapatkan kesan bahwa AMD tidak pernah memasarkan chip 64-bit. Memang benar, AMD tidak pernah memasarkan 64-bit yang merusak kompatibilitas dengan chip 32-bit, seperti yang dilakukan Intel dengan IA64-nya.
Lie Ryan
1
x64 hanya digunakan dalam terminologi Windows / Microsoft. GNU / Linux memanggil arsitektur x86-64, atau amd64. (Dan panggilan 32-bit x86 i386). Hanya (atau setidaknya sebagian besar) di dunia Windows yang x86 secara khusus berarti x86 32-bit. Sebagian besar orang perangkat keras berbicara tentang CPU memahami x86 berarti CPU apa pun yang mundur-compat dengan 8086, terlepas dari mode apa yang beroperasi di (mode 64-bit panjang, atau kadang-kadang mode 32-bit compat di bawah kernel 64-bit.) Jika Saya mengatakan bahwa "x86 memiliki rilis efisien / memperoleh atom bebas kunci", saya tidak termasuk 64-bit.
Peter Cordes
16

Dari Wikipedia : Istilah x86 mengacu pada keluarga arsitektur kumpulan instruksi yang didasarkan pada CPU Intel 8086.

bindbn
sumber
3

Secara teknis x86 hanya merujuk pada kelompok prosesor dan set instruksi yang mereka gunakan. Itu sebenarnya tidak mengatakan sesuatu yang spesifik tentang ukuran data.

x86 dimulai sebagai set instruksi 16-bit untuk prosesor 16-bit (prosesor 8086 dan 8088), kemudian diperluas ke set instruksi 32-bit untuk prosesor 32-bit (80386 dan 80486), dan sekarang telah diperluas ke set instruksi 64-bit untuk prosesor 64-bit. Dulu ditulis sebagai 80x86 untuk mencerminkan perubahan nilai di tengah-tengah nomor model chip, tetapi di suatu tempat di sepanjang garis 80 di depan dijatuhkan, hanya menyisakan x86.

Salahkan Pentium dan keturunannya untuk mengubah cara prosesor dinamai dan dipasarkan, meskipun semua prosesor yang lebih baru menggunakan set instruksi x86 Intel masih disebut kompatibel dengan x86, i386, atau i686 (yang berarti mereka semua menggunakan ekstensi dari 8086 yang asli set instruksi).

x64 benar-benar pria aneh di sini. Nama pertama untuk ekstensi 64-bit ke set x86 disebut x86-64. Itu kemudian dinamai AMD64 (karena AMD adalah yang akan datang dengan ekstensi 64-bit pada awalnya). Intel melisensikan set instruksi 64-bit dan menamai versi mereka EM64T. Baik set instruksi dan prosesor yang menggunakannya semuanya masih dianggap x86.

Kalajengking
sumber
x86-64 kembali menjadi istilah netral vendor yang mencakup AMD64 dan EM64T. 80 terkemuka selalu ada di nomor bagian, tetapi setelah 80186 menjadi lebih mudah hanya mengatakan 186 vs 8086 vs 386. Pentium tidak pernah secara resmi disebut 586 atau 80586 dalam nomor bagiannya ( cpu-world.com/sspec/Pentium. html ); istilah i586 dan i686 hanya didasarkan pada bidang "keluarga" CPUID tentang cara CPU melaporkan sendiri.
Peter Cordes
3

x86 dan x64 adalah nama-nama arsitektur cpu . Ada lebih banyak arsitektur cpu daripada hanya jumlah bit per register.

x64 take adalah nama karena lompatan ke 64 bit adalah perubahan terbesar dalam arsitektur dari x86, tetapi lompatan itu jauh dari satu - satunya perubahan.

x86 mendapatkan namanya dari prosesor dan keluarga 8086, yang mencakup 80286, 80368, 486, dll. Pada saat x86 ditetapkan sebagai nama untuk arsitektur, 32 bit per register tidak dianggap sebagai fitur yang cukup penting untuk membenarkan bangunan itu ke dalam nama.

Joel Coel
sumber
2

Yah, x64tidak pernah benar-benar datang dari set instruksi atau produsen chip. Awalnya berasal dari Windows XP. Edisi 64 bit pertama Windows diberi judul Windows XP x64. Dan saya kira istilah itu x64macet dari sana.

The x86moniker berasal dari instruksi 32bit set. Jadi semua x86prosesor (tanpa 80pengarah) menjalankan set instruksi 32 bit yang sama (dan karenanya semuanya kompatibel). Jadi x86telah menjadi nama defacto untuk set itu (dan karenanya 32 bit).

Ekstensi 64 bit asli AMD pada x86set disebut AMD64. Intel kemudian melisensikannya, tetapi bahkan masih nama untuk x86set instruksi 64 bit biasanya AMD64.

Tapi kebanyakan itu adalah perbedaan merek. Inilah yang beberapa distro Sistem Operasi utama sebut masing-masing rasa 64 bit:

Jadi pada dasarnya, tampaknya Linux lebih suka x86_64, BSD lebih suka amd64dan yang lainnya x64...

Tetapi hal besar yang perlu diperhatikan adalah bahwa mereka semua memiliki arti yang sama untuk tujuan pemasaran. Dalam seluk-beluk mereka benar-benar berarti hal yang berbeda (well, amd64berarti sesuatu yang berbeda dari x86_64(yang pertama adalah arsitektur khusus vendor, dan yang terakhir adalah subset dari dua arsitektur vendor), tetapi x86_64=== x64), tetapi bagi siapa pun kecuali programmer yang menulis dalam perakitan atau mesin kode itu benar-benar tidak membuat perbedaan ...

ircmaxell
sumber
1
Semua x64 saat ini sebenarnya AMD-64 sejak IA64 meninggal.
Overmind
@Overmind: x64 dan IA-64 selalu merupakan hal yang terpisah. IA-64 sama sekali tidak terkait dengan x86 atau x86-64. (Kecuali bahwa implementasi IA-64 awal termasuk inti x86 untuk alasan compat, karena Intel ...)
Peter Cordes
Ya itu benar. Tapi "sudah mati, Jim".
Overmind