जब x 64 64 बिट का प्रतिनिधित्व करता है तो x86 32 बिट का प्रतिनिधित्व क्यों करता है? [बन्द है]


97

मेरा सवाल यह है कि 32-बिट x86 के लिए शॉर्टहैंड क्यों है जब 64-बिट के लिए शॉर्टहैंड x64 है?

मैं यह अनुमान लगा रहा हूं कि 386s और 486s के दिनों के साथ कुछ करना है, जब 32-बिट प्रोसेसर सभी 86 में समाप्त हो गए, लेकिन निश्चित रूप से ऐसे प्रोसेसर थे जो 86 में समाप्त नहीं हुए थे और अभी भी 32-बिट थे?

किसी को भी इस का इतिहास पता है या मुझे जानकारी का एक अच्छा स्रोत के लिए निर्देशित कर सकते हैं?

धन्यवाद


7
हमेशा यह जानने की उत्सुकता के लिए +1 चाहता था!
गेब्रियल गुइमारेस

मैंने आज सुबह ही अपने आप से पूछा!
शॉन हावत

9
मुझे लगता है कि पूर्ण शब्द x64 नहीं है, लेकिन x86_64
Kedare

3
IMHO, "x86" का मतलब (और कभी मतलब नहीं है) बस किसी भी सामान्य 32-बिट वास्तुकला। नीचे दिए गए डैनियल का जवाब इतिहास देता है। अन्य 32-बिट प्रोसेसर के बहुत सारे हैं जो दोनों 80386 के समकालीन (या पुराने) हैं, और काफी कुछ अभी भी जीवित हैं और आज भी बाजार में हैं। उदाहरण के लिए, 68000 परिवार (मूल Macintosh में प्रयुक्त) 8086 की तुलना में बहुत पुराना है। पावरपीसी का दावा प्रसिद्धि के लिए जब नए x86 और 68K दोनों के लिए मजबूत उत्सर्जन समर्थन था। एआरएम 32-बिट, अधिक आधुनिक और साथ ही काफी सामान्य है।
RBerteig

मैं इसे x64 के रूप में नहीं देखता, कम से कम मैं इसे इस तरह नहीं लिखता। मैं इसे क्रमशः 32 बी और 64 बी लिखता हूं।
vol7ron

जवाबों:


34

शायद इसलिए क्योंकि x86 लाइन काफी समय तक 32 बिट प्रोसेसर का पर्याय बन गई थी, जबकि x64 विशेष रूप से 64 बिट के लिए एक पदनाम था क्योंकि अनुप्रयोगों और ऑपरेटिंग सिस्टम पर संक्रमण हो गया था, और अब ऐसे सॉफ़्टवेयर एप्लिकेशन हैं जिन्हें चलाने के लिए 64 बिट पदनाम की आवश्यकता होती है (कुछ वीएम सॉफ्टवेयर की तरह)।

दूसरे शब्दों में, यह कारण से तकनीक की तुलना में अधिक विपणन है।


20
x86 8086, 286, 386, 486, 586 इत्यादि से आता है, यह आसानी से "* 86" हो सकता था
gWaldo

6
और क्योंकि x86 की उत्पत्ति 8086 के साथ हुई है, इसलिए मैं कभी यह काम नहीं कर पाया कि यह हमेशा 32 बिट्स के साथ क्यों जुड़ा होता है। जैसा कि मुझे याद है, 8086 एक 16 बिट प्रोसेसर था, जो 32 बिट मेमोरी एड्रेसिंग को सक्षम करने के लिए डबल रजिस्टरों का उपयोग करता था। इंटेल उन दिनों क्षेत्र में अग्रणी होने से बहुत दूर था। BTW @gWaldo, आपने 80186 को छोड़ दिया।
जॉन गार्डनियर्स

संयोग। विकिपीडिया से, "आर्किटेक्चर और भौतिक चिप दोनों को लोगों के एक छोटे समूह द्वारा जल्दी से विकसित किया गया था, और थोड़े पुराने 8085 (और जिसके लिए 8086 भी कार्य करेगा) के लिए एक ही मूल सूक्ष्म-तत्व तत्वों और भौतिक कार्यान्वयन तकनीकों का उपयोग करना। एक निरंतरता के रूप में) "। एक 8087 और 8089 भी था।
बार्ट सिल्वरस्ट्रिम

हाँ, मैंने 80186 को छोड़ दिया क्योंकि मैं ईमानदारी से याद नहीं कर सकता था कि यह एक जारी किया गया उत्पाद था (और इसे देखने के लिए बहुत आलसी महसूस कर रहा था ...)
gWaldo

1
इस उत्तर में कुछ भी गलत नहीं है, लेकिन मुझे ईमानदारी से लगता है कि डैनियल को स्वीकार किया जाना चाहिए, क्योंकि यह बहुत अधिक विस्तृत है।
मासिमो

189

खैर, एक बार 8086 नामक एक चिप थी, जिसका सस्ता संस्करण 8088 था जिसे आईबीएम पीसी नामक एक पर्सनल कंप्यूटर में इस्तेमाल किया गया था। उस चिप का एक बेहतर संस्करण बनाया गया और जिसे 80186 कहा गया, हालांकि यह बहुत लोकप्रिय संस्करण नहीं था। हालांकि, एक बेहतर सुधार संस्करण तब बनाया गया था, और 80286 कहा जाता था। अब, यह एक बहुत लोकप्रिय चिप था, विशेष रूप से क्योंकि यह आईबीएम पीसी एटी नामक कंप्यूटर में उपयोग किया गया था।

बाद में, इंटेल, जिसने 8086, 8088, 80186 और 80286 चिप्स बनाए और बेचे, जिनमें से सभी में 16 बिट्स आर्किटेक्चर था, दूसरों द्वारा इसी तरह के प्रसाद के साथ प्रतिस्पर्धा करने के लिए 32 बिट्स चिप बनाने की आवश्यकता देखी गई। अपनी सुगम स्थिति का लाभ उठाने के लिए, इसने नई चिप को पहले बताए गए चिप्स के लिए बनाए गए सॉफ्टवेयर को चलाने में सक्षम बनाया। स्वाभाविक रूप से, इंटेल ने इस नई चिप को 80386 कहा।

तब तक इंटेल चिप्स के विभिन्न संस्करणों का उपयोग करने वाले बहुत सारे कंप्यूटर थे, और गैर-इंटेल चिप्स भी थे जो इंटेल वाले के साथ संगत थे। इसलिए लोगों ने उन्हें 80x86 कहना शुरू कर दिया।

थोड़ी देर के बाद, इंटेल ने एक नई चिप लॉन्च की, लेकिन इसने 80 को छोड़ने का फैसला किया, इसलिए यह 80486 के बजाय 486 हो गई। इसी तरह, लोग "80x86" के सामने से "80" को गिरा रहे थे, और इस सामान को केवल 1686 पर कॉल कर रहे थे। ।

अब, मुझे पूरा यकीन है कि कुछ लोग आयेंगे और कहेंगे कि इंटेल ने अपने चिप्स x86 को ऐसे और ऐसे समय में ब्रांड किया है, जो उन्होंने किया था, लेकिन मुझे परवाह नहीं है।

तथ्य यह है कि लगातार बढ़ते मध्य अंक ने 80x86 को जन्म दिया, और x86 उस से आया - भले ही 80186 और 80286 32 बिट्स नहीं थे।

तो, एक बार इंटेल 64 बिट्स चला गया, तो उसने अपनी नई वास्तुकला को क्या कहा? सही! IA64! :-) यह भी बात करने के लिए x86 का नाम बदलकर x86 IA32 कर दिया। केवल IA64 x86 के साथ संगत नहीं था, मेरा मतलब है, IA32, इसलिए सभी ने इसे अनदेखा कर दिया।

और फिर एएमडी आया, जिसने तय किया कि बाजार 64 बिट्स सीपीयू चाहता है जो कि x86 परिवार के साथ संगत था। एक विपणन अपील के रूप में, उन्होंने इसे "x86-64" परिवार कहा, और वे बेहद रसीले थे। इतना है कि इंटेल x86 पर आधारित अपने स्वयं के 64 बिट सीपीयू के साथ grudgingly निम्नलिखित समाप्त हो गया।

बाद में, क्योंकि लोग आलसी हैं, x86-64 को x64 के रूप में जाना जाता है।

तो, अपने प्रश्न के उत्तर में, क्योंकि x64 x86-64 से छोटा है।


10
नाइट पिक लेने के लिए नहीं बल्कि जटिल रूप से सटीक होने के लिए, एएमडी ने 64 बिट चिप की मार्केटिंग कभी नहीं की। x64 या x86_64 कि AMD के साथ बाहर आए 64 बिट एक्सटेंशन को x86 निर्देश सेट इंटेल में जोड़ा गया था - इसलिए इंटेल के इटेनियम (IA_64) के विपरीत x86_64 जो कि x 64 निर्देश सेट के साथ कंपैटिबल नहीं एक सच्ची 64 बिट चिप थी।
जेरेमी हजेक

6
इसके अतिरिक्त, मुझे विश्वास है कि इंटेल ने ट्रेडमार्क मुद्दों का सामना किया था क्योंकि वे केवल संख्याओं का उपयोग कर रहे थे और आप संख्याओं के अनुक्रम को ट्रेडमार्क नहीं कर सकते, यही कारण है कि 80586 पेंटियम बन गया था, एक बना-बनाया नाम जो वे ट्रेडमार्क जारी रख सकते थे।
cdkMoose

3
स्पष्ट करने के लिए: एएमडी ने अपने एक्सटेंशन को एएमडी 64 कहा, और इंटेल ने उन्हें (एएमडी से लाइसेंस प्राप्त) इंटेल 64 कहा। कुछ सूक्ष्म अंतर हैं (वे 100% संगत नहीं हैं), इसलिए अधिकांश ओएस वेंडर आमतौर पर सामान्य सबसेट का उपयोग करते हैं। Windows 2008 DVD पर, स्थापित फ़ोल्डर वास्तव में AMD64 (32-बिट पर I386 के विपरीत) कहा जाता है। मुझे नहीं पता कि x86_64 कहां से आता है: एएमडी से क्योंकि यह एक्स 86 का विस्तार है या यूनिक्स-विक्रेताओं से जो एक तटस्थ शब्द चाहते थे।
माइकल Stum

20
@ जेरेमी हजेक: AMD64 / x86_64 एक सच्ची 64-बिट चिप डिज़ाइन है, इसका 64-बिट मोड एक एमुलेशन नहीं है और इसका कोई प्रदर्शन प्रभाव नहीं है (और वास्तव में, इसका 32-बिट मोड भी एमुलेशन नहीं है)। चिप में 64-बिट इंस्ट्रक्शन सेट और 64-बिट रजिस्टर हैं, जो इसे 64-बिट चिप बनाता है। मुझे नहीं पता कि आपको यह धारणा कहां है कि एएमडी ने कभी 64-बिट चिप से मार्केटिंग नहीं की। हालांकि यह सच है, कि AMD ने कभी 64-बिट का विपणन नहीं किया जो 32-बिट चिप के साथ संगतता को तोड़ता है, जैसे इंटेल ने अपने IA64 के साथ किया था।
रेयान

1
x64 का उपयोग केवल Windows / Microsoft शब्दावली में किया जाता है। GNU / Linux आर्किटेक्चर को x86-64, या amd64 कहता है। (और 32-बिट x86 पर कॉल करता है i386)। यह विंडोज दुनिया में केवल (या कम से कम ज्यादातर) है कि x86 विशेष रूप से 32-बिट x86 का मतलब है। सीपीयू के बारे में बात करने वाले अधिकांश हार्डवेयर लोग x86 को 8086 के साथ किसी भी सीपीयू से मतलब करने के लिए समझते हैं, चाहे वह किसी भी मोड में संचालित हो, चाहे (64-बिट कर्नेल के तहत सामान्य रूप से 64-बिट लॉन्ग मोड, या कभी-कभी 32-बिट कम्प्रेसर मोड।) मैं कहता हूं कि "x86 में कुशल रिलीज / लॉक-फ्री एटॉमिक्स है", मैं 64-बिट को बाहर नहीं कर रहा हूं।
पीटर कॉर्ड्स

16

से विकिपीडिया : अवधि 86 अनुदेश सेट इंटेल 8086 CPU पर आधारित आर्किटेक्चर के एक परिवार को दर्शाता है।


3

तकनीकी रूप से x86 केवल प्रोसेसर के एक परिवार को संदर्भित करता है और निर्देश सेट करता है जो वे सभी उपयोग करते हैं। यह वास्तव में डेटा आकार के बारे में कुछ भी विशिष्ट नहीं कहता है।

x86 ने 16-बिट प्रोसेसर (8086 और 8088 प्रोसेसर) के लिए 16-बिट अनुदेश सेट के रूप में शुरू किया, फिर 32-बिट प्रोसेसर (80386 और 80486) के लिए 32-बिट अनुदेश सेट के लिए बढ़ाया गया था, और अब इसे बढ़ा दिया गया है 64-बिट प्रोसेसर के लिए 64-बिट निर्देश सेट। यह चिप मॉडल नंबरों के बीच में बदलते मूल्य को प्रतिबिंबित करने के लिए 80x86 के रूप में लिखा जाता था, लेकिन कहीं-कहीं लाइन के सामने वाले हिस्से में 80 को छोड़ दिया गया था, बस x86 को छोड़कर।

पेंटियम को दोष दें और यह उस तरीके को बदलने के लिए वंश है जिसमें प्रोसेसर का नाम और विपणन किया गया था, हालांकि इंटेल के x86 निर्देश सेट का उपयोग करने वाले सभी नए प्रोसेसर अभी भी x86, i386, या i686 के रूप में संदर्भित हैं (जिसका अर्थ है मूल 8086 के सभी उपयोग एक्सटेंशन। निर्देश समुच्चय)।

x64 वास्तव में यहाँ अजीब आदमी है। 64-बिट एक्सटेंशन के लिए x86 सेट के लिए पहला नाम x86-64 था। इसे बाद में AMD64 नाम दिया गया (क्योंकि AMD 64-बिट एक्सटेंशन के साथ मूल रूप से आने वाले थे)। इंटेल ने 64-बिट इंस्ट्रक्शन सेट को लाइसेंस दिया और उनके संस्करण का नाम EM64T रखा। निर्देश सेट और प्रोसेसर जो दोनों का उपयोग करते हैं, वे सभी अभी भी x86 माने जाते हैं।


x86-64 एक विक्रेता-तटस्थ शब्द है जिसमें AMD64 और EM64T शामिल हैं। अग्रणी 80 हमेशा भाग संख्या में था, लेकिन 80186 के बाद यह कहना आसान हो गया कि केवल 186 बनाम 8086 बनाम 386 है। पेंटियम को आधिकारिक तौर पर इसके भाग संख्याओं में 586 या 80586 कभी नहीं कहा गया ( cpu-world.com/sspec/Pentium। html ); i586 और i686 शब्द केवल CPUID "परिवार" क्षेत्र पर आधारित थे कि CPU ने खुद को कैसे रिपोर्ट किया।
पीटर कॉर्ड्स

3

x86 और x64 cpu आर्किटेक्चर के नाम हैं । प्रति रजिस्टर बिट्स की संख्या की तुलना में सीपीयू वास्तुकला में अधिक है।

x64 का नाम इसलिए है क्योंकि 64 बिट्स में कूद x86 से आर्किटेक्चर में सबसे बड़ा बदलाव है, लेकिन यह कूद एकमात्र बदलाव से दूर है ।

x86 को आदरणीय 8086 प्रोसेसर और परिवार से नाम मिलता है, जिसमें 80286, 80368, 486, आदि शामिल थे। उस समय जो x86 वास्तुकला के लिए एक नाम के रूप में स्थापित हो गया था, प्रति रजिस्टर 32 बिट्स को इमारत का औचित्य साबित करने के लिए एक महत्वपूर्ण पर्याप्त विशेषता नहीं माना जाता था। नाम में।


2

खैर, x64वास्तव में कभी भी एक निर्देश सेट या चिप निर्माता से नहीं आया था। यह मूल रूप से विंडोज एक्सपी से आया है। विंडोज के पहले 64 बिट संस्करण को शीर्षक दिया गया था Windows XP x64। और मुझे लगता है कि यह शब्द x64वहां से अटक गया है।

x86उपनाम 32 बिट अनुदेश सेट से आता है। तो सभी x86प्रोसेसर (एक अग्रणी के बिना 80) समान 32 बिट निर्देश सेट चलाते हैं (और इसलिए सभी संगत हैं)। तो x86उस सेट के लिए एक डिफैक्टो नाम बन गया है (और इसलिए 32 बिट)।

x86सेट पर एएमडी के मूल 64 बिट एक्सटेंशन को बुलाया गया था AMD64। इंटेल ने बाद में इसे लाइसेंस दिया, लेकिन अभी भी 64 बिट x86निर्देश सेट के लिए नाम आम तौर पर है AMD64

लेकिन ज्यादातर यह ब्रांड भेद है। यहाँ कुछ अलग प्रमुख ऑपरेटिंग सिस्टम डिस्ट्रीब्यूशन में प्रत्येक 64 बिट फ्लेवर को कॉल किया गया है:

तो मूल रूप से, ऐसा लगता है कि लिनक्स पसंद करता है x86_64, बीएसडी पसंद करता है amd64और अन्य x64...

लेकिन ध्यान देने वाली बड़ी बात यह है कि वे सभी विपणन उद्देश्यों के लिए एक ही चीज का मतलब है। सूक्ष्मता में वे अलग-अलग चीजों का मतलब करते हैं (अच्छी तरह से, amd64कुछ अलग से मतलब है x86_64(पूर्व में एक विक्रेता विशिष्ट वास्तुकला, और बाद के दो विक्रेताओं के उपसमुच्चय), लेकिन x86_64=== x64), लेकिन असेंबली या मशीन में लिखने वाले प्रोग्रामर को छोड़कर किसी के लिए भी कोड यह वास्तव में एक अलग नहीं बनाता है ...


1
सभी वर्तमान x64 वास्तव में AMD-64 है क्योंकि IA64 का निधन हो गया।
Overmind

@ ऑवरमाइंड: x64 और IA-64 हमेशा अलग चीजें थीं। IA-64 पूरी तरह से x86 या x86-64 से असंबंधित है। (सिवाय इसके कि प्रारंभिक IA-64 कार्यान्वयन में कॉम्पिटिटर कारणों से एक x86 कोर शामिल था, क्योंकि इंटेल ...)
पीटर कॉर्ड्स

हां यह सही है। लेकिन "यह मर चुका है, जिम"।
Overmind
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.