"सामान्य मोड नहीं" के सामान्य एमवी / 8000 गुण


10

मैं ट्रेसी किडर की "द सोल ऑफ ए न्यू मशीन" पढ़ रहा हूं, जहां डेटा जनरल की एक टीम एक नई मशीन डिजाइन करती है (कोडनाम "ईगल", जिसे बाद में एमवी / 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 केस दिखाता है)।

मुझे यकीन है कि कुछ ऐसा है जो मैंने याद किया, इसलिए यह बहुत अच्छा होगा यदि कोई व्यक्ति इस "कोई मोड-बिट" डिज़ाइन के तकनीकी विवरण और गुणों पर अधिक चर्चा कर सकता है।


उन दिनों में - आम शब्दों के आकार को 16-बिट्स से 32-बिट्स तक ले जाने के दिन - अधिकांश नए 32-बिट आर्किटेक्चर के पास पूरी तरह से एक ही mfr की16-बिट लाइन से अलग-अलग निर्देश सेट थे - भले ही वे भी निष्पादित कर सकते हों एक "मोड बिट" के साथ सेट 16-बिट निर्देश। इसके कारण मार्केटिंग अनिश्चितता पैदा हो गई क्योंकि लोगों ने नई 32-बिट मशीनों में प्रोजेक्ट्स को अपग्रेड करने का कोई कारण नहीं देखा, क्योंकि वे एक ही एमआरएफ के साथ बने रहे - जब तक कि यह एक नया आर्किटेक्चर था , जो भी एमएफआर से नई मशीनों का सबसे अच्छा चयन नहीं करता था । "मोड बिट" की कमी ने एक आसान "वृद्धिशील" संक्रमण का सुझाव दिया: इसलिए, डीजी के साथ रहें।
दाविदबक

जवाबों:


8

इसका उत्तर यह है कि डेटा जनरल मैनेजमेंट के अध्यक्ष एड डेकास्त्रो ने विशेष रूप से अगली पीढ़ी के सीपीयू को डिजाइन करने के लिए उत्तरी कैरोलिना में इंजीनियरों की एक टीम की स्थापना की थी। उन्होंने हमें, मैसाचुसेट्स टीम को समर्थन और वृद्धिशील संवर्द्धन का काम सौंपा। तीन बार हमने एक प्रमुख नई वास्तुकला का प्रस्ताव किया, जो हर बार एक बहुत ही समझदार मोड बिट के साथ था, और इसे एक मामूली वृद्धि के रूप में वर्णित किया। हर बार, एड ने हमारे भेस के माध्यम से देखा और उत्तरी कैरोलिना टीम के सफल होने की उम्मीद करते हुए प्रस्ताव को अस्वीकार कर दिया। एड का मानना ​​था कि हमने अपने प्रस्तावों को छिपाने के लिए कैसे भी प्रयास किया हो, उसे पता होगा कि यह एक नई पीढ़ी का आर्किटेक्चर था, अगर इसमें कोई मोड होता। इसलिए हमें नई पीढ़ी के आर्किटेक्चर को बिना किसी मोड बिट के प्रस्तावित करना था, भले ही यह कम कुशल हो। इसी तरह से हमें यह पिछले डेकास्ट्रो से मिला। एक नई मशीन की आत्मा देखें,


हाय कार्ल, इस जानकारी के लिए धन्यवाद, हाँ यह मेरी धारणा है (पुस्तक को पढ़ने से) कि मोड-बिट चर्चा बहुत महत्वपूर्ण प्रभाव के बारे में थी। अंदरूनी सूत्र जानकारी के साथ अच्छा है - एमवी / 8000 की तरह लगता है का हिस्सा बनने के लिए एक बहुत ही रोमांचक परियोजना थी।
मोर्टी सेप

6

216

एक मोड बिट के साथ पुराने 16-बिट ओएस को यह पता लगाने के लिए संशोधित किया गया होगा कि क्या कार्यक्रम 16-बिट या 32-बिट था और फिर प्रोग्राम लॉन्च करने से पहले उचित तरीके से मोड सेट करें।

व्यवहार में, ऐसा लगता है कि एमवी / 8000 वास्तव में एक मोड बिट था। क्लेम्सन में मार्क स्मॉथरमैन के वेब पेज पर कहीं और उन्होंने 1980 के डेटा जनरल, ईसीएलआईपीएसई एमवी / 8000 सिद्धांतों के ऑपरेशन को पोस्ट किया है । यदि आप परिशिष्ट ई (पेज 369 पर शुरू) में देखते हैं, तो आप देखेंगे कि एमवी / 8000 में दो पूरी तरह से अलग पेज टेबल तंत्र थे। एमवी / 8000 की विशिष्ट मशीन सी / 350 के साथ पीछे की ओर संगत थी, और सी / 350 में उस यूनिट को नियंत्रित करने के विशिष्ट तरीकों के साथ एक विशिष्ट 16-बिट मेमोरी आवंटन और संरक्षण इकाई थी। 32-बिट तार्किक से शारीरिक संचालन के लिए, आप इसके बजाय एड्रेस ट्रांसलेशन यूनिट (अध्याय 3 में वर्णित) को 31 पेज से शुरू करेंगे।

व्यवहार में, इसका मतलब यह है कि जब आप 32-बिट मोड में 16-बिट निर्देश निष्पादित करते हैं, तो यह निर्दिष्ट किया जाता है कि उच्च 16-बिट्स तार्किक पते के लिए सेट हो जाता है। 0. उच्च के साथ कुछ विनिर्देश होना चाहिए। जब आप 16-बिट मोड में 32-बिट निर्देश निष्पादित करते हैं, तो 16-बिट्स का पता, लेकिन मैं मैनुअल के अपने संक्षिप्त उपयोग के दौरान इसे खोजने में सक्षम नहीं था।

इसलिए यह कम सवाल है कि मोड बिट अच्छी या बुरी चीज है या नहीं। यह अधिक है कि 16-बिट और 32-बिट निर्देशों के बीच अंतर करने के लिए मोड-बिट का उपयोग करने के लिए विशेष रूप से अच्छा कारण नहीं था। 16-बिट निर्देश 16-बिट्स तार्किक पते (उच्च 16 बिट्स 0 पर सेट) और 16-बिट रजिस्टरों का उपयोग करते हैं, और 32-बिट निर्देश 32-बिट्स तार्किक पते और 32-बिट रजिस्टरों का उपयोग करते हैं। पुरानी ओएस नई मशीन पर "बस काम करती है", लेकिन आप पुराने ओएस के तहत एक नया प्रोग्राम चलाकर नए निर्देशों को भी आज़मा सकते हैं।


हाय ओके यह उद्देश्य "नो मोड बिट" के साथ स्पष्ट करता है - इसलिए उद्देश्य मूल 16-बिट ओ / एस को बूट करने में सक्षम होना था, लेकिन अभी भी वहां से 32-बिट प्रोग्राम लॉन्च करना है। हालाँकि, जैसा कि आप कहते हैं, उस मोड में चल रहे 32-बिट कार्यक्रमों के भीतर से 32-बिट तार्किक पता स्थान का उपयोग करना असंभव होगा। एक तरह से यह वही है जो इंटेल ने 16-बिट से 32-बिट संक्रमण के साथ किया था। यहां 16-बिट प्रोग्राम (उदाहरण के लिए, एमएस-डॉस के तहत) से 32-बिट निर्देशों (रजिस्टरों के उच्च हिस्से तक पहुंच) को निष्पादित करना भी संभव था। हालांकि, एक ही समय में उनके पास ...
मोर्टी ऑग

... "बिट" 32-बिट संरक्षित मोड में प्रवेश करने के लिए मोड बिट्स (जिसमें पेजिंग की भी अनुमति है)। हालांकि एक अंतर यह है कि 32-बिट मोड में 32-बिट निर्देशों का एन्कोडिंग 32-बिट निर्देशों के 16-बिट मोड में एन्कोडिंग से अलग है (चूंकि "डिफ़ॉल्ट" अलग है), लेकिन क्षमता समान है। दूसरी ओर, x86 संक्रमण के साथ 64-बिट में निर्देश एन्कोडिंग पूरी तरह से बदल गया था, इसलिए 32-बिट प्रोग्राम (या 16-बिट प्रोग्राम) 64-बिट रजिस्टरों आदि का उपयोग नहीं कर सकता है। इसके लिए एक अपडेटेड ओ की आवश्यकता होती है / प्रक्रिया को 64-बिट मोड ("लॉन्ग मोड") में लॉन्च करना है।
मोर्टी

हालांकि, कोई अभी भी इस "नो मोड बिट" डिज़ाइन पर जोर देने के गुण पर सवाल उठा सकता है क्योंकि सबसे पहले एक मोड बिट है, और यह बहुत कोने का मामला लगता है ("पुराने ओएस, और नए एप्लिकेशन चल रहा है") जहां यह किसी भी प्रदान करता है लाभ - अधिकांश ग्राहक नया ओएस नहीं चलाना चाहेंगे जो हार्डवेयर का पूरा लाभ उठा सके? यहाँ महत्वपूर्ण विशेषता यह है कि नई ओएस पुराने ऐप चला सकती है! लेकिन जिस लिंक के बारे में मैंने उल्लेख भेजा है, यह भी संभव नहीं है, सीपीयू कॉम्पटिटर्स को रेंडर करने के लिए प्रोग्राम को री-लिंकिंग और यहां तक ​​कि री-कॉम्पीलेशन (ओ / एस में बदलाव के कारण) की आवश्यकता होती है। पहलू मूट!
मॉर्टी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.