X64 64bit'i temsil ettiğinde neden x86 32bit'i temsil ediyor? [kapalı]


97

Sorum şu ki, 64-bit için kısa yol x64 iken neden 32-bit x86 için steno?

Bunun 32 bit işlemcilerin 86'da bittiği 386 ve 486'ların günleriyle bir ilgisi olduğunu tahmin ediyorum, ancak kesinlikle 86'da bitmeyen ve hala 32 bit olan işlemciler var mıydı?

Bunun tarihini bilen var mı veya beni iyi bir bilgi kaynağına yönlendirebilir mi?

Teşekkürler


7
Bilinçsiz meraktan hep bu + 1'i bilmek istedim!
Gabriel Guimarães

Bu sabah kendime sordum!
Sean Howat

9
Bence tam terim x64 değil x86_64
Kedare 18

3
IMHO, "x86", yalnızca herhangi bir genel 32 bit mimari anlamına gelmez. Daniel'in aşağıdaki cevabı tarih veriyor. 80386'ya hem eşzamanlı (ya da ondan daha eski) pek çok başka 32-bit işlemci var ve bunlardan birkaçı günümüzde hala hayatta ve iyi durumda. Örneğin, orijinal Macintosh'ta kullanılan 68000 ailesi, 8086'dan çok daha eskidir. PowerPC'nin yeni olduğu zaman hem x86 hem de 68K için güçlü emülasyon desteği olduğu iddiası. ARM, 32 bit, daha modern ve oldukça yaygın.
RBerteig

Bunu x64 olarak görmüyorum, en azından bu şekilde yazmıyorum. Sırasıyla 32b ve 64b olarak yazıyorum.
vol7ron

Yanıtlar:


34

Muhtemelen, x86 çizgisi, bir süredir 32 bit işlemcilerle eşanlamlı olduğu için, x64, uygulamalar ve işletim sistemleri geçişi sırasında x64 özellikle 64 bitlik bir tanımdı ve şimdi çalıştırmak için 64 bitlik atamayı gerektiren yazılım uygulamaları var. (bazı VM yazılımları gibi).

Başka bir deyişle, bu nedenle teknolojiden daha fazla pazarlama.


20
x86 8086, 286, 386, 486, 586, vb gibi kolayca olabilirdi "* 86" dan gelmektedir
gWaldo

6
Ve x86, 8086'dan kaynaklandığı için, neden her zaman 32 bit ile ilişkili olduğunu çözemedim. Hatırladığım kadarıyla 8086, 16 bit işlemciydi, bu da 32 bit bellek adreslemesini sağlamak için çift kayıt kullandı. Intel, o günlerde alanda lider olmaktan uzaktı. BTW @gWaldo, 80186'yı terk ettin.
John

Tesadüf. Vikipedi'den, "Hem mimari hem de fiziksel yonga, küçük bir grup insan tarafından oldukça hızlı bir şekilde geliştirildi ve aynı temel mikro mimari unsurlar ve biraz daha eski 8085 için kullanılan (ve bunun için de 8086'nın çalışacağı fiziksel uygulama teknikleri) kullanıldı. bir devamı olarak) " Ayrıca 8087 ve 8089 da vardı.
Bart Silverstrim

O (... ve bana arama tembel hissediyordum) bir serbest ürünü olsaydı dürüst hatırlamıyorum çünkü Evet, ben 80186 dışında kalan
gWaldo

1
Bu sorunun yanlış bir tarafı yok ama dürüst olmak gerekirse, Daniel’in kabul görmesi gerektiğini düşünüyorum, çünkü çok daha ayrıntılı.
Massimo,

189

Eh, bir zamanlar 8086 adında bir çip vardı, IBM PC adı verilen kişisel bir bilgisayarda kullanılan 8088 adında daha ucuz bir sürümü vardı. Çok popüler bir sürüm olmasa da, bu yonganın geliştirilmiş bir sürümü yapıldı ve 80186 olarak adlandırıldı. Bununla birlikte, geliştirilmiş bir geliştirilmiş sürüm yapıldı ve 80286 olarak adlandırıldı. Şimdi, özellikle IBM PC AT adlı bir bilgisayarda kullanıldığı için bu çok popüler bir çipti.

Daha sonra, 80 bit, 8088, 80186 ve 80286 yongalarını oluşturan ve satan ve hepsi 16 bit mimariye sahip olan Intel, diğerleri tarafından benzer tekliflerle rekabet edebilmek için 32 bit yonga oluşturma ihtiyacını gördü. Görevdeki konumundan faydalanmak için, yeni yongayı daha önce belirtilen yongalar için yapılan yazılımları çalıştırabilmiş hale getirdi. Doğal olarak, Intel bu yeni çipi 80386 olarak adlandırdı.

O zamana kadar Intel çiplerinin çeşitli sürümlerini kullanan çok sayıda bilgisayar vardı ve ayrıca Intel çipleriyle uyumlu olan Intel olmayan çipler de vardı. Böylece insanlar 80x86 olarak anmaya başladı.

Bir süre sonra, Intel yeni bir çip başlattı, ancak 80'i düşürmeye karar verdi, bu yüzden 80486 yerine 486 oldu. Aynı şekilde, insanlar "80" i "80x86" nın önünden "80" e düşürüyorlardı. .

Şimdi, bazılarının geleceklerinden ve Intel’in fişlerini x86’ya yaptıkları ve böyle bir zamanda markaladıklarını biliyorum, ama umrumda değil.

Gerçek şu ki, sürekli artan orta rakam 80x86'ya yükseltti ve x86 bundan çıktı - 80186 ve 80286 32 bit olmasa bile.

Peki, Intel nihayet 64 bit geçtiğinde, yeni mimarisi ne diyordu? Sağ! Ia64! :-) Ayrıca, geriye dönük olarak x86'yı IA32 olarak yeniden adlandırdı, tabiri caizse. Yalnızca IA64, x86 ile uyumlu değildi, yani, IA32, yani herkes onu görmezden geldi.

Ardından, pazarın x86 ailesiyle uyumlu olacak şekilde 64 bitlik bir CPU istediğine karar veren AMD geldi. Bir pazarlama temyiz başvurusu olarak, buna "x86-64" ailesi adını verdiler ve çok başarılı oldular. Öyle ki, Intel x86 tabanlı 64 bitlik işlemcileri istemeyerek takip etti.

Daha sonra, insanlar tembel oldukları için, x86-64, sadece x64 olarak bilinir hale geldi.

Öyleyse, sorunuza cevaben, çünkü x64, x86-64'ten daha kısa.


10
Nit toplama işlemi için değil, tamamen kesin olması için, AMD hiçbir zaman 64 bit yonga pazarlamamıştır. AMD'nin çıktığı x64 veya x86_64, Intel tarafından oluşturulan x86 komut setine eklenen 64 bit uzantılarıydı - bu nedenle x86 komut setiyle uyumlu olmayan gerçek 64 bit yonga olan Intel'in Itanium'una (IA_64) karşılık x86_64.
Jeremy Hajek

6
Ek olarak, Intel’in ticari marka sorunları ile karşılaştığına inanıyorum, çünkü sadece rakam kullanıyorlardı ve bir dizi numarayı markalayamıyorsunuz, bu nedenle 80586’nın Pentium olması, markalaşmaya devam edebilecekleri bir isim oldu.
cdkMoose 6'10

3
Açıklığa kavuşturmak için: AMD, uzantılarına AMD64, Intel ise (AMD'den lisans aldığı) Intel64 adında bir çağrı yaptı. Birkaç ince fark vardır (% 100 uyumlu değildir), bu nedenle çoğu OS Tedarikçisi genellikle ortak Alt Kümeyi kullanır. Windows 2008 DVD'sinde yükleme klasörü aslında AMD64 (32-Bit'deki I386'nın aksine) olarak adlandırılır. X86_64'ün nereden geldiğini bilmiyorum: AMD'den, x86'ya bir uzantısı olduğundan veya nötr bir terim isteyen Unix-Satıcılarından.
Michael Stum

20
@ Jeremy Hajek: AMD64 / x86_64 gerçek bir 64 bit yonga tasarımıdır, 64 bit modu bir emülasyon değildir ve performans etkisi yoktur (ve aslında 32 bit modu da bir emülasyon değildir). Çip 64-bit komut setine ve 64-bit kayıtlara sahiptir, bu onu 64-bit çip yapar. AMD'nin 64-bit bir yongayı asla pazarlamadığı izlenimini nereden edindiğini bilmiyorum. Yine de, AMD'nin, Intel IA64 ile yaptığı gibi, 32-bit yonga ile uyumluluğu kıran 64-bit'i asla pazarlamadığı doğru.
Lie Ryan,

1
x64 yalnızca Windows / Microsoft terminolojisinde kullanılır. GNU / Linux, x86-64 veya amd64 mimarisini çağırır. (Ve 32-bit x86'yı çağırır i386). Windows dünyasında yalnızca (veya en azından çoğunlukla) x86'nın özellikle 32-bit x86 olduğu anlamına gelir. İşlemcilerden bahseden çoğu donanım uzmanı, x86'yı, hangi modda çalıştığından bağımsız olarak (normalde 64-bit uzun mod veya bazen de 32-bit uyumlu moddan 64-bit bir çekirdekli moddan bağımsız olarak) herhangi bir CPU anlamına gelir. "X86'nın kilitlenme serbest atomları etkili bir şekilde serbest bırakma / edinme" olduğunu söylüyorum, 64-bit hariç değilim.
Peter Cordes,

16

Gönderen Vikipedi : vadeli x86 Intel 8086 tabanlı CPU komut seti mimarilerini bir aile anlamına gelir.


3

Teknik olarak x86, sadece bir işlemci ailesini ve hepsinin kullandığı komut setini ifade eder. Aslında veri boyutları hakkında özel bir şey söylemiyor.

x86, 16-bit işlemciler için (8086 ve 8088 işlemciler) ayarlanan 16-bit bir komut olarak başladı, ardından 32-bit işlemciler için (80386 ve 80486) ayarlanan 32-bit bir talimata genişletildi ve şimdi 64 bit işlemciler için ayarlanmış 64 bit komut. Çip model numaralarının ortasındaki değişen değeri yansıtacak şekilde 80x86 olarak yazılmıştı, ama çizgi boyunca bir yerde öndeki 80 düştü ve sadece x86'yı bıraktı.

Intel'in x86 komut setini kullanan tüm yeni işlemciler hala x86, i386 veya i686 uyumlu olarak adlandırılıyor olsa da, işlemcilerin adlandırılma ve pazarlanma şeklini değiştirmek için Pentium'u suçlayın. komut seti).

x64 gerçekten burada garip bir adam. X86 kümesine 64 bit uzantısının ilk adı x86-64 olarak adlandırıldı. Daha sonra AMD64 olarak adlandırıldı (çünkü AMD aslen 64 bit uzantıya sahip olanlardı). Intel 64-bit komut setini lisansladı ve EM64T versiyonlarını verdi. Hem komut setleri hem de bunları kullanan işlemciler hala x86 olarak kabul edilir.


x86-64, AMD64 ve EM64T'yi içeren satıcı-tarafsız bir terimdir. Önde gelen 80 parça numarasında her zaman oradaydı, ancak 80186'dan sonra sadece 186 ve 8086'ya karşı 386'yı söylemek kolaylaştı. Pentium resmen parça numaralarında 586 ya da 80586 olarak adlandırılmadı ( cpu-world.com/sspec/Pentium). html ); i586 ve i686 terimleri, CPU'ların kendilerinin rapor ettiği CPUID "ailesi" alanına dayanıyordu.
Peter Cordes,

3

x86 ve x64, cpu mimarilerinin isimleridir . Bir cpu mimarisi için sadece kayıt başına bit sayısından daha fazlası var.

x64, 64 bit'e atlamak , mimarlıkta x86'dan en büyük değişiklik olduğu için, ancak bu atlama tek değişiklikten çok uzak olduğu için isimdir .

x86, 80286, 80368, 486, vb. dahil olmak üzere, saygıdeğer 8086 işlemci ve ailesinden adını alır. adına.


2

Eh, x64gerçekten bir talimat ayarlamak veya çip üreticisinden gelmedi. Başlangıçta Windows XP'den geldi. Windows'un ilk 64 bit sürümü başlığı verildi Windows XP x64. Ve sanırım x64oradan sıkışmış terim .

x86Lakap 32bit komut kümesi geliyor. Bu nedenle, tüm x86işlemciler (öncü olmadan 80) aynı 32 bit komut setini çalıştırır (ve dolayısıyla hepsi uyumludur). Böylece x86bu set için bir defacto adı haline geldi (ve dolayısıyla 32 bit).

AMD'nin x86setteki orijinal 64 bit uzantısı çağrıldı AMD64. Intel daha sonra lisanslı, ancak yine de 64 bitlik x86talimat setinin adı bile genellikle AMD64.

Ancak çoğunlukla marka ayrımıdır. İşte birkaç farklı büyük İşletim Sistemi dağıtımının 64 bit lezzeti dediği şey:

Yani temelde, Linux'un tercih ettiği x86_64, BSD'nin amd64ve diğerlerinin tercih ettiği görünüyor x64...

Ancak dikkat edilmesi gereken en önemli şey, hepsinin pazarlama amacıyla aynı şeyi ifade ettiğidir. İncelik onlar (iyi, farklı anlamlara yapmak amd64farklı bir şey ifade eder x86_64(eski olmanın bir satıcıya özel mimarisi ve iki satıcıları mimariler) ikinci alt kümesi, ancak x86_64=== x64), ancak programcılar hariç herkes montaj veya makinede yazmak için kod gerçekten farklı yapmaz ...


1
IA64 öldüğünden beri mevcut tüm x64 aslında AMD-64.
Olağanüstü Zeka

@Overmind: x64 ve IA-64 her zaman ayrı şeylerdi. IA-64 tamamen x86 veya x86-64 ile ilişkili değildir. (Eski IA-64 uygulamalarının uyumluluk nedenlerinden ötürü bir x86 çekirdeği içermesi dışında, çünkü Intel ...)
Peter Cordes

Evet doğru. Ama "o öldü, Jim".
Olağanüstü Zeka
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.