मैं ट्रेसी किडर की "द सोल ऑफ ए न्यू मशीन" पढ़ रहा हूं, जहां डेटा जनरल की एक टीम एक नई मशीन डिजाइन करती है (कोडनाम "ईगल", जिसे बाद में एमवी / 8000 नाम दिया गया)। यह पिछले आर्किटेक्चर (16-बिट एक्लिप्स) का 32-बिट विस्तार है। घूमने वाले विषयों में से एक यह प्रतीत होता है, कि वे एक मोड बिट के साथ एक मशीन नहीं बनाना चाहते हैं और वे इसमें सफल रहे हैं।
हालाँकि, यह तकनीकी रूप से कैसे हासिल किया जाता है, यह छोड़ देता है, और यह भी नहीं पता है कि बिना मोड बिट के मशीन बनाना इतना आकर्षक क्यों था। पुस्तक कोई तकनीकी पुस्तक नहीं है, इसलिए यह हो सकता है कि विवरण किसी तरह विकृत थे। हालाँकि, आप उस पुस्तक को पढ़ते हुए महसूस करते हैं कि उस समय एक "मोड बिट" समाधान आम था (और इसलिए संभव है), लेकिन शायद सौंदर्य के कारणों के लिए इंजीनियरों द्वारा अनाकर्षक माना जाता था। किताब यह भी एक मोड बिट के बिना एक डिजाइन बनाने के लिए एक बेहद मुश्किल काम की तरह लगता है, जो किसी तरह इस विशेष टीम द्वारा दूर किया गया था।
मुझे यह विवरण मिला कि यह कैसे हासिल किया गया था:
http://people.cs.clemson.edu/~mark/330/kidder/no_mode_bit.txt
यह मूल रूप से नए निर्देशों के लिए ओपकोड स्थान के पहले अप्रयुक्त हिस्से का उपयोग करने के बारे में लगता है। मुझे मानना चाहिए कि मैं थोड़ा निराश था कि यह "बस" था। इसके अलावा, मुझे लगता है कि यह अभी भी अनुत्तरित कुछ प्रश्न छोड़ता है:
सबसे पहले, 32-बिट एड्रेस स्पेस में 16-बिट प्रोसेस कैसे रहते थे? क्योंकि मुझे लगता है कि "एक मोड बिट के बिना" 32-बिट एक्सटेंशन बनाने में महत्वपूर्ण चुनौती है। दूसरी ओर, निर्देश सेट का विस्तार, एक अपेक्षाकृत आम उपक्रम है। चूँकि इसका कोई वर्णन नहीं है कि यह कैसे हुआ कि कोई यह मान सकता है कि 16-बिट कोड बस मेमोरी को एक्सेस करता है जैसा कि उसने हमेशा किया है, शायद यह मेमोरी के कुछ प्रकार के वर्चुअलाइज्ड / बैंक्ड व्यू को देखता है (नए सीपीयू रजिस्टर को नियंत्रित करते हुए जहां पहला पता है) या ऐसा कुछ। लेकिन मुझे नहीं पता कि क्या इससे ज्यादा है। उस मामले में कोई यह तर्क दे सकता है कि यह "मोड बिट" समाधान था। 16-बिट मोड प्रक्रिया सीपीयू में जोड़ी गई विशेष सुविधाओं के आधार पर अन्य प्रक्रियाओं के साथ चल सकती है।
दूसरी बात, बिना मोड बिट के मशीन बनाने की इतनी अपील क्यों की गई? पुस्तक में बताए गए कई लाभ यह है कि ग्राहक पुराने सॉफ़्टवेयर को चलाना चाहते थे। लेकिन यह एक मोड बिट के खिलाफ बोलने के लिए प्रतीत नहीं होता है, क्योंकि मोड बिट का उपयोग करने का पूरा उद्देश्य पीछे की संगतता है। जब AMD ने x86 को 64-बिट तक बढ़ा दिया, तो कम से कम शब्द "मोड बिट" की मेरी समझ के अनुसार उन्होंने जो किया वह बिल्कुल मोड बिट जोड़ने के लिए था। एक विशेष बिट जो सीपीयू को 64-बिट मोड में बनाता है। और एक और बिट जो 64-बिट मोड के "सब-मोड" (32-बिट अनुप्रयोगों के साथ संगतता को सक्षम करने के लिए) में एक प्रक्रिया निष्पादित करेगा। सबमोड का सार यह है कि सीपीयू निर्देश धारा को पुराने 32-बिट निर्देशों के रूप में व्याख्या करता है लेकिन 32-बिट मेमोरी एक्सेस को नए पेज टेबल प्रारूप (64-बिट जागरूक ऑपरेटिंग सिस्टम द्वारा सेटअप) और अंततः का उपयोग करके हल किया जाता है। पूर्ण भौतिक पता स्थान पर मैप किया गया। साथ ही, 32-बिट कोड को 64-बिट कोड द्वारा प्रीपेप्ट किया जा सकता है। डेटा जनरल समाधान की तरह इसने भी 32-बिट प्रोग्राम को 64-बिट प्रोग्राम (16-बिट बनाम 32-बिट डीजी मामले में) के साथ चलने की अनुमति दी। तो एक ग्राहक के दृष्टिकोण से वहाँ कोई फर्क नहीं पड़ता प्रतीत होता है। इसलिए कार्यान्वयन में केवल लाभ ही हो सकता है, डिजाइन को सरल बनाना, लेकिन पुस्तक इसे ध्वनि नहीं बनाती है, यह चिंता का विषय है, क्योंकि मोड बिट को उस समय भी सामान्य माना जाता है (और ऐसा लगता है कि बाद में आर्किटेक्चर भी हैं इसे x64 केस दिखाता है)।
मुझे यकीन है कि कुछ ऐसा है जो मैंने याद किया, इसलिए यह बहुत अच्छा होगा यदि कोई व्यक्ति इस "कोई मोड-बिट" डिज़ाइन के तकनीकी विवरण और गुणों पर अधिक चर्चा कर सकता है।