क्या आधुनिक पीसी वीडियो हार्डवेयर एचजीए में वीजीए पाठ मोड का समर्थन करता है, या क्या BIOS इसका अनुकरण करता है (सिस्टम प्रबंधन मोड के साथ)?


10

जब आप भौतिक रैखिक पते पर वीजीए पाठ (मोड 03) फ्रेम बफ़र में बाइट को स्टोर करते हैं, तो वास्तव में 16-बिट लीगेसी BIOS एमबीआर मोड में बूट किए गए आधुनिक पीसी हार्डवेयर पर क्या होता है ? यूसी के लिए उस क्षेत्र के लिए एमटीआरआर के साथ एक स्टोर कितना धीमा है ? ( एक केबी लेक iGPU लैपटॉप पर प्रायोगिक परीक्षण इंगित करता है कि WC पर Clflushopt लगभग VGA मेमोरी के लिए UC के समान गति है। लेकिन Clflushopt के बिना, WC मेमोरी में स्टोर CPU को कभी नहीं छोड़ते हैं और सुपर फास्ट रनिंग करते हुए स्क्रीन को कभी भी अपडेट नहीं करते हैं। ।)'1'B8000mov [es:di], eaxmov

यदि यह हर दुकान के लिए SMI नहीं है, तो क्या वास्तव में वास्तविक मोड में रिबूट किए बिना प्रदर्शन प्रयोगों के लिए, उपयोगकर्ता-स्पेस में WB मेमोरी के एक हिस्से पर इस लागत को अनुमानित करने का कोई तरीका है? (उदाहरण के लिए एक बीएसएस पृष्ठ का उपयोग एक ढोंग फ़्रेमबफ़र के रूप में किया जाता है जो वास्तव में कहीं भी प्रदर्शित नहीं होता है)।

अगले फॉन्ट में स्क्रीन पर संबंधित फ़ॉन्ट ग्लिफ़ दिखाई देता है, लेकिन क्या हार्डवेयर स्कैन-आउट वास्तव में पढ़ रहा है कि VRC से ASCII char (या एक iGPU के लिए DRAM) और मक्खी पर बिटमैप फ़ॉन्ट ग्लिफ़ को मैप कर रहा है? या क्या प्रत्येक दुकान पर या प्रति बार एक बार कुछ सॉफ़्टवेयर अवरोधन होता है, इसलिए वास्तविक हार्डवेयर को केवल एक बिटमैप फ़्रेम फ्रेमर को संभालना पड़ता है?


विरासत BIOS बूटिंग को पीएस / 2 उपकरणों के रूप में USB kbd / माउस का अनुकरण करने के लिए सिस्टम प्रबंधन मोड (SMM) का उपयोग करने के लिए जाना जाता है। मैं सोच रहा था कि यह वीजीए टेक्स्ट मोड फ्रेमबफ़र के लिए भी उपयोग किया जाता है। मैं यह मान रहा है वीजीए मैं / मोड स्थापित करने के लिए हे बंदरगाहों के लिए इस्तेमाल किया, लेकिन यह है कि एक पाठ फ्रेमबफर हार्डवेयर द्वारा समर्थित किया जा सकता है प्रशंसनीय है। हालाँकि, अधिकांश कंप्यूटर ग्राफिक्स मोड में अपना सारा समय बिताते हैं, इसलिए पाठ मोड के लिए HW समर्थन को छोड़ना ऐसा लगता है जैसे कुछ विक्रेता करना चाहते हैं। (ओटीओएच इस ब्लॉग से पता चलता है कि होमब्रेव वेरिलॉग वीजीए कंट्रोलर टेक्स्ट मोड को काफी सरलता से लागू कर सकता है।)

मैं विशेष रूप से Intel Skylake में iGPU का उपयोग करने वाले सिस्टम में दिलचस्पी रखता हूं, लेकिन Intel और AMD से पहले / बाद के iGPU में दिलचस्पी होगी, और नए या पुराने असतत GPU।

(AMD और NVidia के अलावा विक्रेताओं में शामिल हैं; PCI स्लॉट्स के साथ कुछ Skylake मदरबोर्ड हैं, PCIe नहीं। यदि आधुनिक GPU फर्मवेयर ड्राइवर पाठ मोड का अनुकरण करते हैं, तो संभवतः हार्डवेयर VGA पाठ मोड के साथ कुछ पुराने PCI वीडियो कार्ड हैं। और शायद ऐसा कार्ड है। स्टोर केवल SMI के बजाय एक PCI लेनदेन हो सकते हैं।)

मेरा खुद का डेस्कटॉप एक Asus Z170 प्रो गेमिंग मोबो में एक i7-6700k है, डीवीआई-डी आउटपुट पर 1920x1200 मॉनिटर के साथ सिर्फ iGPU पर कोई ऐड-ऑन कार्ड नहीं है। मुझे पता नहीं है कि केबी झील i5-7300HQ प्रणाली का विवरण @ Eldan केवल CPU मॉडल पर परीक्षण कर रहा है।


मुझे 2011 से फीनिक्स BIOS का पेटेंट US20120159520 मिला , uefi का उपयोग करके विरासत वीडियो का अनुकरण । UEFI और देशी 16-बिट वास्तविक मोड विकल्प-ROM ड्राइवरों को आपूर्ति करने के लिए वीडियो हार्डवेयर विक्रेताओं की आवश्यकता के बजाय , वे एक वास्तविक-मोड VGA ड्राइवर ( int 10hफ़ंक्शन और इतने पर) का प्रस्ताव करते हैं जो एसएमएम हुक के माध्यम से एक विक्रेता द्वारा आपूर्ति किए गए UEFI वीडियो ड्राइवर को कॉल करता है।

सार
[...] सामान्य वीडियो विकल्प ROM वीडियो सेवाओं के लिए अनुरोध के एक सामान्य वीडियो SMM ड्राइवर को सूचित करता है। इस तरह की अधिसूचना एक सॉफ्टवेयर सिस्टम मैनेजमेंट इंटरप्ट (SMI) का उपयोग करके की जा सकती है। सूचना पर, सामान्य वीडियो SMM ड्राइवर वीडियो सेवाओं के लिए अनुरोध के तीसरे पक्ष UEFI वीडियो ड्राइवर को सूचित करता है। थर्ड पार्टी वीडियो ड्राइवर ऑपरेटिंग सिस्टम के लिए अनुरोधित वीडियो सेवाएँ प्रदान करता है। इस तरह, एक तीसरा पक्ष यूईएफआई ग्राफिक्स ड्राइवर ऑपरेटिंग सिस्टम की एक विस्तृत विविधता का समर्थन कर सकता है, यहां तक ​​कि वे जो यूईएफआई प्रदर्शन प्रोटोकॉल का मूल रूप से समर्थन नहीं करते हैं।

विवरण का अधिकांश हिस्सा int 10hकॉलिंग और सामान को कवर करता है, जो पहले से ही स्पष्ट रूप से आईवीटी के माध्यम से फंसता है, इस प्रकार आसानी से कस्टम कोड चला सकता है जो उद्देश्य पर एसएमआई को ट्रिगर करता है। संबंधित भाग वह है जो वे टेक्स्ट-मोड फ्रेमबफ़र में सीधे स्टोर के लिए वर्णन करते हैं जो कोड के लिए भी काम करने की आवश्यकता होती है जो किसी भी सॉफ़्टवेयर या हार्डवेयर को बाधित नहीं करता है। (ऐसे स्टोर पर एचडब्ल्यू ट्रिगर एसएमआई को छोड़कर अन्य, जो कहते हैं कि वे समर्थित होने पर उपयोग कर सकते हैं।)

पाठ बफर समर्थन

[००६६] कुछ विशिष्ट अवतार में, आवेदन वीजीए के पाठ बफर को सीधे जोड़ सकते हैं । इस तरह के एक अवतार में, जेनेरिक वीडियो एसएमएम चालक 130 दो तरीकों में से एक में इसका समर्थन करता है, यह इस बात पर निर्भर करता है कि हार्डवेयर एसएमआई को 740 KB-768 KB मेमोरी क्षेत्र (जहां टेक्स्ट बफ़र्स स्थित हैं) पर पढ़ने / लिखने की पहुंच प्रदान करता है

[००६ [] एसएमआई ट्रैपिंग उपलब्ध होने पर, हार्डवेयर प्रत्येक रीड या राइट एक्सेस पर एक एसएमआई उत्पन्न करता है। SMI जाल के ट्रैप पते का उपयोग करके, सटीक टेक्स्ट कॉलम और पंक्ति की गणना की जा सकती है और वर्चुअल विंडो स्क्रीन में संबंधित पंक्ति और कॉलम एक्सेस किया जा सकता है।

वैकल्पिक रूप से, इस क्षेत्र के लिए सामान्य मेमोरी को सक्षम किया जाता है और, आवधिक एसएमआई, जेनेरिक वीडियो एसएमएम चालक 130 स्कैन का उपयोग करके एमुलेटेड हार्डवेयर टेक्स्ट बफर में बदलाव के लिए और वीडियो ड्राइवर द्वारा बनाए गए संबंधित वर्चुअल टेक्स्ट स्क्रीन को अपडेट करता है। दोनों मामलों में, जब एक परिवर्तन का पता लगाया जाता है, तो चरित्र को आभासी पाठ स्क्रीन पर फिर से तैयार किया जाता है।

यह सिर्फ एक BIOS विक्रेता का पेटेंट है, और हमें यह नहीं बताता कि अधिकांश हार्डवेयर वास्तव में किस तरह से काम करते हैं, या यदि अन्य विक्रेता अलग-अलग काम करते हैं। यह अनिवार्य रूप से पुष्टि करता है कि कुछ हार्डवेयर मौजूद हैं, जो उस सीमा में दुकानों पर फंस सकते हैं, हालांकि। (जब तक कि यह केवल एक काल्पनिक संभावना नहीं है कि उन्होंने अपने पेटेंट में कवर करने का फैसला किया है।)

मेरे दिमाग में जो उपयोग-मामला है, उसके लिए केवल स्क्रीन रिफ्रेश पर फंसना हर दुकान पर फंसने की तुलना में बहुत तेज होगा, इसलिए मैं उत्सुक हूं कि हार्डवेयर / फर्मवेयर किस तरह से काम करता है।


इस प्रश्न के लिए प्रेरणा

7 वें जीन इंटेल कोर पर वीडियो रैम में एक वृद्धि ASCII दशमलव काउंटर का अनुकूलन - बार-बार वीडियो रैम के कुछ बाइट्स में एक ASCII पाठ काउंटर के लिए नए अंकों को संग्रहीत करना।

मैंने लिनक्स के तहत 32-बिट यूजर-स्पेस में कोड का एक संस्करण का परीक्षण किया, डब्ल्यूबी मेमोरी पर, movntiप्रत्येक दुकान के बाद (या शायद कभी-कभी) अपने सीपीसी बफर को वीडियो रैम में सिंक करने के लिए सीपीयू प्राप्त करने के अलग-अलग तरीकों से स्थिति की लगभग उम्मीद की । एक टाइमर बाधा)। लेकिन यह वास्तविक नहीं है यदि वास्तविक-मोड बूटलोडर स्थिति DRAM के लिए सिर्फ भंडारण नहीं है, बल्कि एक SMI को ट्रिगर करता है।

WB मेमोरी पर, movntiएक के साथ फ्लशिंग स्टोर lock xor byte [esp], 0कुछ हद तक फ्लशिंग के साथ है clflushopt। लेकिन @ Eldan ने WC बनाने के लिए MTRR प्रोग्रामिंग करने के बाद VGA मेमोरी पर उन लोगों के लिए कोई गति सुधार नहीं होने की रिपोर्ट की। (और सामान्य स्टोर करने वाले मूल स्टोर के लिए समान गति, यह दर्शाता है कि डिफ़ॉल्ट रूप से वीजीए फ्रेमबफ़र यूसी था। कुछ पुराने BIOS में वीजीए मेमोरी डब्ल्यूसी बनाने का एक विकल्प था , जिसे उन्होंने यूएसडब्ल्यूसी = अनकैप्ड सट्टा लिखने के संयोजन कहा।)

यह एक वास्तविक दुनिया की समस्या नहीं है, इसलिए मैं वास्तविक वर्कअराउंड की तलाश नहीं कर रहा हूं ; हालांकि यह जानना दिलचस्प होगा कि मैन्युअल रूप से पिक्सेल बाइट्स को वीजीए ग्राफिक्स मोड में स्टोर करना बहुत तेज हो सकता है।


सारांश

  1. क्या कोई / सभी वास्तविक आधुनिक प्रणालियाँ प्रत्येक दुकान पर पाठ-मोड के फ्रेमबफ़र पर एक SMI ट्रिगर करती हैं?
  2. यदि नहीं, तो क्या हम WB मेमोरी पर यूजर-स्पेस में एक movnti + कुछ का उपयोग करते हुए फ्रेमबफ़र के लिए WC स्टोर + क्लफश को अनुमानित कर सकते हैं? तो हम आसानी से perfप्रदर्शन काउंटर के लिए प्रोफ़ाइल कर सकते हैं ।
  3. यदि अलग-अलग BIOS और / या हार्डवेयर अलग-अलग रणनीतियों का उपयोग करते हैं, तो वे रणनीति क्या हैं? (मुझे विवरण नहीं चाहिए, "एसएमआई हर vblank जैसे उच्च स्तर पर वीजीए फ्रेमबफ़र को वास्तविक हार्डवेयर फ्रेमबफ़र सिंक करने के लिए")
  4. क्या हार्डवेयर के साथ एक पीसीआई या पीसीआई वीडियो कार्ड वीजीए टेक्स्टमोड एकीकृत जीपीयू जो वास्तव में करते हैं, उससे तेज होगा? मुझे लगता है कि एक वास्तविक PCIe लिखने का लेनदेन DRAM को हिट करने के लिए स्टोर की प्रतीक्षा करने की तुलना में धीमा होगा, लेकिन यह कि PCIe लिखना हर दुकान पर SMI से सस्ता होगा। एक ballpark / परिमाण तुलना का क्रम दिलचस्प होगा।

ये प्रश्न सभी बहुत संबंधित हैं, लेकिन मैं इसे विभाजित कर सकता हूं यदि मेरी अपेक्षा के अनुसार अधिक ओवरलैप नहीं है।


क्या SMI के लिए प्रदर्शन काउंटर नहीं है?
प्राल

@prl: हाँ, मुझे ऐसा लगता है। अगर मैं वास्तव में एक बूटलोडर लिखता हूं जो पूर्ण काउंटरों को क्रमादेशित करता है, और एक परीक्षण चलाने के बाद उन्हें इकट्ठा किया जाता है, और फिर इसे चलाने के लिए अपने डेस्कटॉप को रिबूट किया जाता है, तो मुझे अपने डेस्कटॉप के लिए एक उत्तर मिल सकता है। स्पष्ट रूप से उपयोग नहीं कर सकते perfक्योंकि लिनक्स अभी तक बूट नहीं हुआ है। लिनक्स-सेंटोस / इंटेल मशीन पर मूल्यांकन एसएमआई (सिस्टम मैनेजमेंट इंटरप्ट) विलंबता में कुछ विवरण हैं कि आप एसएमआई को कैसे गिन सकते हैं।
पीटर कॉर्डेस

1
@prl: वास्तव में SMI को गिनना आसान है: जाहिरा तौर पर एक MSR है, न कि एक परफेक्ट काउंटर, इसलिए केवल MSR_SMI_COUNT=0x34पहले एक काउंटर प्रोग्राम किए बिना RDMSR ।
पीटर कॉर्डेस

यह मेरे अन्य विचार की तुलना में बहुत आसान है, जो एसएमआई का पता लगाने के लिए धारा 34.15 में वर्णित तकनीकों का उपयोग करना है।
प्राल

@prl: इंटेल के Vol.3 एसडीएम के 34.15, मुझे लगता है कि आपका मतलब है? xem.github.io/minix86/manual/intel-x86-and-64-manual-vol3/… को काउंटिंग के मामलों का वर्णन करना प्रतीत होता है जहाँ SMM का कारण बनता है या VMEXIT में शामिल होता है, न कि केवल "पुरानी धातु" पर पुरानी SMM। (या नकली नंगे धातु जो विरासत BIOS बूटिंग SMM जाल के माध्यम से प्रस्तुत करता है ...) वैसे भी, हाँ, अगर मेरे पास अगली बार मेरे डेस्कटॉप को रिबूट करने में कोई आपत्ति नहीं है, तो मैं 16-बिट बूटलोडर लिख सकता हूं और इसे अपने सिस्टम पर परीक्षण कर सकता हूं ... या उम्मीद है कि कोई और मेरे लिए उत्सुक है और इसका परीक्षण करता है।
पीटर कॉर्डेस

जवाबों:


7

क्या कोई / सभी वास्तविक आधुनिक प्रणालियाँ प्रत्येक दुकान पर पाठ-मोड के फ्रेमबफ़र पर एक SMI ट्रिगर करती हैं?

वीडियो कार्ड के लिए, मुझे बहुत संदेह है। वीडियो कार्ड निर्माताओं को 1980 के दशक के बाद से हार्डवेयर में बनाया गया "चार्ल + डेटा से पिक्सेल डेटा" लॉजिक मिला है (यह वीजीए की भविष्यवाणी करता है और सीजीए के बाद से बहुत ज्यादा नहीं बदला गया है), और इसके बारे में ज्यादा परवाह किए बिना प्रत्येक नए डिजाइन में उस तर्क को काट और पेस्ट करें ।

उन चीज़ों के लिए जो वीडियो कार्ड नहीं हैं (उदाहरण के लिए LAN का उपयोग कर रिमोट सिस्टम प्रबंधन उपकरण), मुझे नहीं पता, लेकिन संदेह नहीं (अक्सर वे मुख्य सीपीयू / एस के बजाय एक विशेष प्रबंधन सीपीयू का उपयोग करते हैं ताकि यह काम करे, भले ही कंप्यूटर हो कामोत्तेजित")।

यदि नहीं, तो क्या हम WB मेमोरी पर यूजर-स्पेस में एक movnti + कुछ का उपयोग करते हुए फ्रेमबफ़र के लिए WC स्टोर + क्लफश को अनुमानित कर सकते हैं?

यदि आप उपयोगकर्ता-स्थान में नहीं हैं, तो आप RAM के एक क्षेत्र को "अनकैप्ड" बनाने के लिए MTTR (सभी CPU पर - MTRRs से मेल खाना चाहिए और इसमें एक विशेष अनुक्रम शामिल होना चाहिए) को बदल सकते हैं; या पृष्ठ तालिकाओं में PAT का उपयोग करें (MTRRs के साथ खिलवाड़ करने की तुलना में बहुत आसान, खासकर यदि आप वैसे भी पेजिंग का उपयोग कर रहे हैं, लेकिन अभी भी कैश सुसंगतता के कारण थोड़ा अलग व्यवहार है)। यदि आप उपयोगकर्ता-स्थान पर हैं, तो आपको ओएस / कर्नेल जो भी प्रदान करता है, उस पर निर्भर रहना होगा, और (यह किस ओएस पर निर्भर करता है) ओएस / कर्नेल को ऐसा करने का कोई भी तरीका प्रदान नहीं किया जा सकता है।

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

क्या हार्डवेयर के साथ एक पीसीआई या पीसीआई वीडियो कार्ड वीजीए टेक्स्टमोड एकीकृत जीपीयू जो वास्तव में करते हैं, उससे तेज होगा?

सीपीयू से वीआरएएम तक के लेखों के लिए; आमतौर पर एकीकृत वीडियो असतत कार्ड की तुलना में काफी तेज होता है (कम से कम सादे से सीपीयू से रैखिक फ्रेम बफ़र्स के लिए जहां वीजीए के "राइट लॉजिक" में से कोई भी शामिल नहीं है)।

अत्यंत मोटे बॉलपार्क अनुमानों के लिए; मुझे उम्मीद है कि RAM लिखने के लिए लगभग 150 चक्र होंगे और 1000 PC के करीब होने के लिए PCI को एक ही लिखना होगा। SMI के लिए, मुझे उम्मीद है कि SMI के CPU में आने से पहले लेटेंसी का कुछ सौ चक्र हो जाएगा, फिर CPU पाइपलाइन फ्लश की लागत, फिर CPU की स्थिति को बचाने के लिए लगभग 500 चक्र (और वापसी पथ पर समान लोडिंग अवस्था); तब फर्मवेयर के कोड को SMI (अन्य कुछ सौ चक्र?) का कारण खोजना होगा, इससे पहले कि यह पता चल सके कि यह वीआरएएम को लिखना था और कुछ और नहीं; तब उसे सहेजे गए CPU स्थिति की जांच करनी होगी और उस निर्देश को ढूंढना और डिकोड करना होगा, जिसने लिखा था (क्योंकि यह नहीं जान सकता है कि डेटा क्या लिखा जा रहा था, अगर यह एक बाइट / शब्द / डॉर्ड राइट, इत्यादि था) पिछला सीपीयू स्थिति खाता (कौन सा मोड सीपीयू में था, कोड आकार,XADD, आदि)। इसके बाद इसे वीजीए रजिस्टर्स (राइट मोड, राइटिंग मास्क, प्लेन इनेबल्ड, जो भी कंट्रोल हो, जो 64 KiB बैंक को लीगेसी एरिया, फॉन्ट हाइट, ...) में मैप किया जाता है, की स्थिति का विश्लेषण करना होगा। मूल रूप से; पाठ मोड फ्रेम बफर के लिए एक लिखने के एसएमआई अनुकरण के लिए; मुझे उम्मीद है कि फर्मवेयर के कोड की जटिलता की एक बड़ी मात्रा के बीच दफन एक मामूली लेकिन महत्वपूर्ण विवरण को अनदेखा करने से पहले यह हजारों चक्रों में ले जाएगा, जिससे यह गलत काम कर सकता है और असामान्य रूप से टूट जाएगा।

अन्य नोट

मुझे 2011 से फीनिक्स BIOS का पेटेंट US20120159520 मिला, uefi का उपयोग करके विरासत वीडियो का अनुकरण।

मुझे संदेह है कि यह कभी भी लागू किया गया था, क्योंकि मुझे संदेह है कि यह कभी भी काम कर सकता है। अब तक बहुत सी (सामान्य और अस्पष्ट) चीजें हैं जो आप लीगेसी इंटरफेस के साथ कर सकते हैं (उदाहरण के लिए वर्टिकल रिफ्रेश, सेटअप नॉन-स्टैंडर्ड वीडियो मोड जैसे "मोड X", स्मूथ स्क्रॉलिंग और / या पेज फ्लिपिंग को लागू करने के लिए "डिस्प्ले स्टार्ट" के साथ फील करना) , का उपयोग करें "CRTC जानकारी" VBE में वीडियो समय बदलने के लिए, आदि) जो UEFI द्वारा समर्थित नहीं है और इसके माध्यम से नहीं किया जा सकता है। UEFI के लिए थर्ड पार्टी वीडियो ड्राइवर।

इसके बजाय, वीडियो कार्ड निर्माताओं ने लगभग 10 वर्षों तक यूईएफआई ड्राइवरों को प्रदान करने की जहमत नहीं उठाई और यूईएफआई फर्मवेयर ने यूईएफआई सेवाओं का अनुकरण करने के लिए विरासत इंटरफ़ेस का उपयोग किया (अक्सर वे उस समय सुरक्षित बूट तोड़ रहे थे); वैसे भी लगभग सब कुछ UEFI था।

मुझे लगता है कि यह (SMM) मोड-सेटिंग के लिए VGA I / O पोर्ट के लिए उपयोग किया जाता है।

मैं नहीं मानता। केवल एक चीज जो वीडियो से संबंधित है, जिस पर मुझे संदेह है कि एसएमएम का उपयोग किया जा सकता है, लैपटॉप में स्क्रीन की बैकलाइट की चमक को नियंत्रित करने के लिए (विशेष रूप से पुराने लैपटॉप के लिए, और विशेष रूप से "ढक्कन खुला / करीबी घटनाओं के लिए") प्रारंभिक बूट के दौरान (ओएस से पहले) अधिग्रहण)।

.. पाठ मोड के लिए HW समर्थन छोड़ने से ऐसा लगता है कि कुछ विक्रेता करना चाहते हैं

मेरा अब भी मानना ​​है कि हार्डवेयर से 30 + साल की संचित विरासत गड़बड़ी (A20, VGA, PS / 2, PIT, PIC, ...) के पहले से ही बहुत लंबे "हाइब्रिड BIOS + UEFI" संक्रमण चरण) को हटाने के बाद (अंततः) हार्डवेयर निर्माताओं (इंटेल) UEFI को अपनाने के लिए जोर दे रहे हैं।


मुख्य रूप से, विरासत वीजीए रेंज को एल 3 कैश स्लाइस द्वारा सीधे प्रोसेसर ग्राफिक्स, डीएमआई या एक पीसीआई लिंक द्वारा कॉन्फ़िगर किया गया है जो कॉन्फ़िगरेशन रजिस्टरों में वीजीए स्टीयरिंग बिट्स पर आधारित है। मुझे यकीन नहीं है कि अगर वीजीए नहीं है तो प्रोसेसर ग्राफिक्स इस सीमा के साथ क्या करता है; संभवतः यह सिर्फ बफ़र्स करता है और इसे एचडीएमआई फ्रेमबफ़र में अनुवाद करता है और इसे एचडीएमआई एफडीआई पाइप में भेजता है, लेकिन मुझे एक सुराग नहीं मिला है
लुईस केल्सी

धन्यवाद, मैं अभी भी HW समर्थित होने की संभावना को नजरअंदाज कर दिया था, लेकिन सिस्टम एजेंट में एक धीमी पथ के माध्यम से सीधे स्मृति नियंत्रकों के लिए जा रहा है। यही कारण है कि और स्मृति नियंत्रक वालों इसलिए हम पर टोंटी लिखने को हराने वास्तविक > uncore - -> स्मृति नियंत्रक अंगूठी बस प्रवाह क्षमता वीजीए पूरी तरह से चलाने के समय हावी और के बीच कोई मतभेद छुपा लिखते हैं समझा सकता है DRAM सिर्फ कोर नहीं throughput clflushoptबनाम lock xor byte [esp], 0flushes ट्रिगर के लिए।
पीटर कॉर्ड्स

स्टोर डेटा प्राप्त करने के लिए किसी भी मोड में x86 का अनुकरण करने के बारे में आपकी बात एक अच्छी है, जो इसे काफी प्रशंसनीय बनाती है, और प्रदर्शन एक पाठ कंसोल पर स्क्रॉल करने के लिए अस्वीकार्य या कम से कम ध्यान देने योग्य होगा जो इसके बजाय वीजीए मोड का उपयोग करता है। जो कुछ भी इन दिनों डिफॉल्ट रूप से लिनक्स करता है, एक फ्रेमबफ़र कंसोल के साथ। मैं भूल रहा था कि एक ओएस एक मल्टी-कोर सिस्टम पर सभी कोर लाने के बाद भी वीजीए टेक्स्ट मोड को काम करते रहना है।
पीटर कॉर्ड्स

4

विभिन्न आधुनिक इंटेल सीपीयू और प्लेटफ़ॉर्म कंट्रोलर हब (पीसीएच) डेटाशीट्स के माध्यम से पढ़ना, यह प्रकट नहीं होता है कि आवश्यक हार्डवेयर लागू किया गया है। वीजीए फ्रेम बफर (भौतिक पते 0xA0000 - 0xBFFFF) के प्रोसेसर एक्सेस के जवाब में एसएमआई (सिस्टम मैनेजमेंट इंटरप्ट) उत्पन्न करने का कोई तरीका प्रतीत नहीं होता है।

सीपीयू में मेमोरी कंट्रोलर या तो एकीकृत ग्राफिक्स नियंत्रक के लिए वीजीए फ्रेम बफर तक पहुंच प्राप्त करता है, पीसीआई एक्सप्रेस पोर्ट सीधे सीपीयू से जुड़ा होता है, या डीएमआई इंटरफ़ेस सीपीयू को पीसीएच से जोड़ता है। हालांकि यह संभव है कि अलग-अलग मार्ग के हिस्से वीजीए फ्रेम बफर अलग-अलग हों, यह केवल एक अलग एमडीए (मोनोक्रोम डिस्प्ले एडेप्टर) डिवाइस का समर्थन करने के लिए है। एकीकृत ग्राफिक्स नियंत्रक को अच्छी तरह से प्रलेखित नहीं किया गया है, इसलिए यह संभव है कि इसे वीजीए फ्रेम बफर एक्सेस पर एसएमआई उत्पन्न करने के लिए कॉन्फ़िगर किया जा सकता है, लेकिन यह संभावना नहीं लगती है। किसी भी मामले में, यह असतत ग्राफिक्स के साथ काम नहीं करेगा।

इंटेल पीसीएच की भी वीजीए फ्रेम बफर एक्सेस के जवाब में एसएमआई उत्पन्न करने के लिए कोई समर्थन नहीं लगता है। यह इसके लिए सबसे स्वाभाविक जगह होगी, क्योंकि इसमें पहले से ही कीबोर्ड कंट्रोलर, आईडीई कंट्रोलर और अन्य लीगेसी डिवाइसेस तक I / O एक्सेस के जवाब में SMI जनरेट करने के लिए सपोर्ट मौजूद है। यह संभव है कि इसमें कुछ अनिर्दिष्ट सुविधा है जो ऐसा करता है, लेकिन यह पीसीएच डेटासेट में दिए गए संभावित एसएमआई स्रोतों की सूची में शामिल नहीं है।

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

(इसी तरह की समस्या साउंडब्लैस्टर लाइव पर साउंडब्लस्टर 16 इम्यूलेशन के साथ हुई। यह एक पीसीआईएसईआर # उत्पन्न करेगा जब विरासत साउंडब्लस्टर पोर्ट एक्सेस किए गए थे, जो सीपीयू पर एक एनएमआई उत्पन्न करेगा। दुर्भाग्य से एमुनेशन कई पेंटियम 4 मदरबोर्ड पर टूट जाएगा क्योंकि एनएमआई अगले या बाद के निर्देश पर आएगा।)


उस पर जाँच के लिए धन्यवाद। यह एक एसएमआई हैंडलर को एक बार वास्तविक वीजीए फ्रेम फ्रेमर (दूसरे तंत्र द्वारा प्रस्तावित पेटेंट) में वीजीए टेक्स्ट फ्रेमबफ़र को सिंक्रनाइज़ / रेंडर करने के लिए नियम नहीं देता है, लेकिन यह एक एसएमआई प्रति स्टोर से इंकार करता है। एक outनिर्देश तुल्यकालिक और ज्यादातर क्रमबद्ध है, लेकिन एक यूसी स्टोर अभी भी स्टोर बफर के माध्यम से जाता है और स्टोर के आने से पहले सेवानिवृत्त हो जाएगा, मुझे लगता है। यदि outपोर्ट एक्सेस P4 पर एक समस्या थी, तो एक प्लेन स्टोर एक आपदा होगी।
पीटर कॉर्डेस

यदि किसी सिस्टम ने टेक्स्ट फ्रेमबफ़र को स्कैन करने के लिए एक SMI हैंडलर का उपयोग किया है, तो इसका अर्थ यह होगा कि यह WB कैशेबल हो सकता है और अभी भी स्क्रीन को अपडेट कर सकता है, यहां तक ​​कि cliसामान्य बाधितों के साथ भी । तो यह कुछ परीक्षण योग्य होगा जिसका उपयोग हम शासन करने के लिए कर सकते हैं या अधिकतर अन्य संभावना की पुष्टि कर सकते हैं।
पीटर कॉर्डेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.