यह एक और मामला है जहां इस विषय पर प्राप्त लोक ज्ञान, दुर्भाग्य से उदाहरण के अनुसार psusi
और वास्तव में प्रश्न का हिस्सा है, दुनिया में अटक गया है क्योंकि यह 1991 के आसपास था, तकनीकी संदर्भों के धन के बावजूद यह बताते हुए कि यह अब कैसे है। अन्यथा।
1980 के दशक के उत्तरार्ध में, मशीन फर्मवेयर - आईबीएम पीसी की दुनिया में "BIOS" नामक दो चीजों में से एक संगत - आईएसए बस में एक आरईएम चिप में था; और सीपीयू ने वास्तव में भौतिक पते पर कोड निष्पादित करना शुरू किया 000FFFF0
, "पारंपरिक मेमोरी" में एक स्थान वास्तविक मोड पॉइंटर के माध्यम से पहुँचा F000:FFF0
। यह दुनिया बहुत लंबी चली गई है।
(दुनिया कि डब्ल्यूडब्ल्यूडब्ल्यू पेज के लेखक, जिसे आपने बताया। एस। इब्राहिम शुब्बर, 2002 में लिखने के बावजूद, ग़लती से रहता है। सीपीयू भी 8086 के बाद से CS:IP
संयोजन के साथ शुरू नहीं हुआ है FFFF:0000
। 80286 ने इसे बदल दिया। F000:FFF0
। लेकिन 80286 की दुनिया ही 1980 के दशक के उत्तरार्ध की दुनिया से बाहर है, जिसे लोक ज्ञान अभी भी प्रसारित करता है।)
आपका "BIOS चिप" है राम; और आपका CPU 16-बिट नहीं है।
आधुनिक पीसी में, मशीन फर्मवेयर गैर-वाष्पशील रैम में आयोजित किया जाता है । एनवीआरएएम चिप एलपीसी बस (या एक समर्पित "फ़र्मवेयर हब" इंटरफ़ेस) से जुड़ा हुआ है, और "चिपसेट" में एलपीसी / एफडब्ल्यूएच पुल सामान्य रूप से इसे लिखने के लिए चक्रों को निष्क्रिय करता है। "चमकती" फर्मवेयर में चिपसेट रजिस्टर स्थापित करना शामिल है जो एनवीआरएएम को लिखता है और फिर एनवीआरएएम को लिखता है। (इंटेल ICH10 में, उदाहरण के लिए, चिपसेट रजिस्टर बिट जो लिखने के माध्यम से साइकिल को लिखने की अनुमति देता है BIOSWE
, "BIOS लिखें सक्षम"। कुछ अतिरिक्त विवरण हैं जो मैं यहां छोड़ दूंगा, लेकिन यह इसका सार है।)
000FFFF0
80286 के दिनों से x86 प्रोसेसर ने स्थान पर निष्पादन शुरू नहीं किया है। 32-बिट सीपीयू की शुरुआत ऐसी होती है जिसे बोलचाल में असत्य विधा के रूप में जाना जाता है । भले ही CS
रीसेट के बाद रजिस्टर का प्रारंभिक मूल्य हो, फिर F000
भी उस रजिस्टर से जुड़ा सेगमेंट डिस्क्रिप्टर शुरू FFFF0000
में इसका आधार पता होता है। इसलिए शारीरिक पता जो शुरू में 16:16 सीएस से मेल खाता है: आईपी पता F000:FFF0
वास्तव में है, और 80-8086 के दिनों से है FFFFFFF0
।
और यही वह जगह है जहां मशीन फर्मवेयर मुख्य रूप से 32-बिट और 64-बिट x86 मशीनों पर भौतिक पता स्थान में मैप किया जाता है। "पारंपरिक मेमोरी" क्षेत्र में नीचे फर्मवेयर पर 128KiB विंडो है, लेकिन आधुनिक पीसी पर NVRAM मशीन फर्मवेयर को पकड़कर 16MiB (हालांकि यह चिपसेट द्वारा भिन्न होता है) तक हो सकता है और इसे तुरंत भौतिक पता स्थान के 16MiB में मैप किया जा सकता है 4GiB लाइन के नीचे - यानी भौतिक पते के FF000000
लिए FFFFFFFF
। (ICH10 को फिर से एक उदाहरण के रूप में उपयोग करने के लिए: NVRAM के लिए इस एड्रेस स्पेस का कितना हिस्सा मैप किया जाता है FWH_DEC_EN
, "फ़र्मवेयर हब डिकोड इनेबल" नामक एक चिपसेट रजिस्टर द्वारा नियंत्रित किया जाता है । रजिस्टर। फर्मवेयर को फिर से प्रोग्राम करने के लिए कोडित किया गया है।FWH_DEC_EN
मेनबोर्ड पर स्थापित वास्तविक एनवीआरएएम चिप के आकार के अनुसार पंजीकरण करें। लेकिन NVRAM के शीर्ष 512KiB को हमेशा मैप किया जाता है, भौतिक पते के FFF80000
लिए FFFFFFF
, और अक्षम नहीं किया जा सकता है।) इस 16MiB पता श्रेणी के शीर्ष 64KiB में रीसेट के तुरंत बाद प्रोसेसर द्वारा शुरू किया गया कोड।
जैसा कि BIOS ROM शैडोइंग के लिए (जो कि इसे कहा जाता है - काफी barlop
सोचता है कि CPU को छाया दिया जा रहा है एक रहस्य है): हां, LPC बस में NVRAM तक पहुंच या फ़र्मवेयर हब अभी भी मुख्य प्रणाली तक पहुंच के रूप में तेज़ नहीं है (वाष्पशील) RAM। लेकिन कारण यह है कि ऑपरेटिंग सिस्टम जैसे ओएस / 2 और विंडोज एनटी के बाद से - 1980 के दशक के अंत में और 1990 के दशक की शुरुआत में छायांकन महत्वपूर्ण है। वास्तविक मोड ऑपरेटिंग सिस्टम जैसे MS-DOS, PC-DOS, DR-DOS और इसके बाद मशीन फर्मवेयर द्वारा प्रदान किए गए I / O कार्यक्षमता के शीर्ष पर स्तरित किए गए थे। इसलिए फर्मवेयर का कोड और रीड-ओनली डेटा समाप्त हो गया जो रन-टाइम पर बहुत अधिक एक्सेस किया जा रहा है। OS / 2 और Windows NT जैसे संरक्षित मोड ऑपरेटिंग सिस्टम बहुत कम भरोसा करते हैंरन-टाइम पर फर्मवेयर-प्रदान की गई सेवाएं। तो यह तथ्य कि एनवीआरएएम से बाहर कोड निष्पादित होता है, और उसी में रीड-ओनली डेटा, प्रोसेसर से अधिक धीरे-धीरे आते हैं, जब सिस्टम रैम में छाया हुआ होता है, तो यह एक समस्या से कम होता है।
इसके अलावा, वे कौन से फर्मवेयर कोड और डेटा पर भरोसा करते हैं, वे जरूरी नहीं कि एनवीआरएएम के हिस्से में भौतिक पता स्थान के हिस्से में रहते हैं, उपरोक्त 128 केबीबी "पारंपरिक मेमोरी" विंडो, जो जरूरी है कि पहले स्थान पर भी छाया हुआ हो। संरक्षित मोड फर्मवेयर सेवाओं को भौतिक पते स्थान में 1MiB रेखा से नीचे रहने की आवश्यकता नहीं है क्योंकि असली मोड फर्मवेयर सेवाएं करते हैं, और कुछ नहीं करते हैं। (और निश्चित रूप से यह तभी संभव भौतिक पता अंतरिक्ष के क्षेत्र है कि वे के साथ एक ही चाल करने के लिए किया जाएगा करने के लाइव में हो, तो कम से कम प्रणाली रैम 4GiB।)
विडंबना यह है कि 2002 में एस। इब्राहिम शुब्बर लेखन की तुलना में इस बारे में जानकारी के लिए एक अधिक सटीक स्रोत फिल क्राउचर की पुस्तक है , जो एक साल पहले 2001 में BIOS कंपेनियन थी। एम। क्राउचर का मानना है कि यूनिक्स, लिनक्स, विंडोज एनटी और "संभवतः (95/95) 98) "" छायांकन से कोई लाभ नहीं मिलता "। यह जरूरी नहीं है कि पूरी तरह से कोई लाभ नहीं है, लेकिन यह एमएस-डॉस, पीसी-डॉस, और डीआर-डॉस चलाने वाले लोगों की दुनिया के संबंध में तुलनात्मक रूप से बहुत कम है, जो 1989 में 16-बिट 80286 मशीनों पर वास्तविक मोड में था।