ड्राइवरों को लोड करने से पहले सीपीयू जीपीयू के साथ कैसे संवाद करता है? [डुप्लिकेट]


24

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


जवाबों:


34

"क्या कुछ आधार निर्देश हैं ...?" हाँ बिल्कुल। सभी जीपीयू को कई सरल इंटरफेस में से एक को लागू करने की आवश्यकता होती है - वे "इंस्ट्रक्शन सेट" कहलाने के लिए बहुत आदिम हैं - कौन से प्लेटफ़ॉर्म फ़र्मवेयर ("BIOS" या "UEFI") और OS के साथ शामिल किए गए ड्राइवर जानते हैं कि कैसे बात करना है । इन दिनों "सरल इंटरफ़ेस" की सामान्य पसंद "वीजीए" ("वीडियो ग्राफिक्स ऐरे") है, रजिस्टर-स्तरीय इंटरफ़ेस मूल रूप से उस मानक के वीडियो कार्ड के लिए परिभाषित किया गया है। (अब 30+ साल पुराना!)

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

खैर, तकनीकी रूप से, विंडोज हमेशा उस ड्राइवर को लोड करता है (इसलिए यह बूट प्रगति स्क्रीन प्रदर्शित कर सकता है), फिर (बूट में काफी देर से) आपके ग्राफिक्स कार्ड के लिए "वास्तविक" ड्राइवर को पहचानता है और लोड करता है।

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

वीडियो ग्राफिक्स ऐरे


1
पूरी स्थिति जटिल है। बहुत पहले "वीजीए" कार्ड वास्तव में सीमित थे। लंबे समय तक विंडोज एनटी को 800x600 के लिए समर्थन की आवश्यकता थी, लेकिन हां, सिर्फ 16 रंग। यह बहुत भयानक लग रहा था! मेरे द्वारा लिंक किया गया विकिपीडिया लेख देखें।
जेमी हनराहन

9
विंडोज अधिक संभावना अपने बुनियादी एडाप्टर के लिए वीईएसए BIOS एक्सटेंशन्स (VBE) का उपयोग करता है । VBE बहुत व्यापक रूप से समर्थित है और 16-24 बिट रंग और 1600x1200 पिक्सेल तक की अनुमति देता है।
8bittree

3
यह वीईएसए BIOS एक्सटेंशन नहीं होगा, क्योंकि बूटस्ट्रैप के बहुत शुरुआती चरणों के बाद विंडोज सपाट कुछ भी के लिए BIOS / UEFI कोड को लागू नहीं करता है।
जेमी हनराहन

2
मैंने अपने लैपटॉप सहित कुछ कंप्यूटरों को देखा है, जहां "कताई डॉट्स" विंडोज बूट स्क्रीन बेहद कम रिज़ॉल्यूशन (320x200, मैं कहता हूं, वीजीए के 256-रंग मोड) शुरू करता है और फिर जल्दी से एक उच्च रिज़ॉल्यूशन पर स्विच करता है।
आर्टेलियस

1
यहां तक ​​कि 16 रंगों में 800x600 वीजीए की क्षमताओं से परे है। वीजीए 640x480 16 रंगों में अधिकतम हुआ। हालांकि, ग्राफिक्स चिप निर्माता इससे आगे निकल गए और "सुपरवीजीए" उर्फ ​​एसवीजीए मोड जोड़ेंगे जो रंग और रिज़ॉल्यूशन बढ़ाएंगे, जबकि उनके स्वयं के मालिकाना मोड भी होंगे। वीईएसए उन मालिकाना मोड तक पहुंचने के लिए एक मानक तरीके के साथ आया था, लेकिन यह उस समय के आसपास था जब पीसी मुख्य रूप से जीयूआई संचालित होना शुरू हो गया था, और इस तरह ड्राइवर एक अच्छा विकल्प थे। यह तब भी था जब 3 डी त्वरण को जोड़ा जाने लगा था। इसलिए, जबकि अधिकांश कार्ड वीईएसए संगत थे, किसी ने इसके बारे में बात नहीं की।
त्रिकली

16

मैं इस सब के पीछे "वूडू" को साफ करने की कोशिश करूंगा, यह समझाकर कि पुराने हार्डवेयर ने कैसे काम किया। आधुनिक जीपीयू इस तरह से काम नहीं करते हैं लेकिन वे सीपीयू-टू-ग्राफिक्स-कार्ड इंटरफेस का अनुकरण करते हैं।

tl; डॉ

80 और 90 के दशक की शुरुआत में ग्राफिक्स चिप्स / कार्ड्स को बहुत जल्दी (क्लॉक स्पीड के सापेक्ष) आउटपुट का उत्पादन करना था, इसलिए उन्होंने निर्देशों को निष्पादित नहीं किया, बल्कि निश्चित सर्किट थे। वे बस रैम के डेटा को बाहर निकालते हैं क्योंकि वे जाते थे, इसलिए सीपीयू को बस रैम को डेटा को सही जगह पर डंप करने की आवश्यकता होती है, और ग्राफिक्स चिप इसे उठाकर स्क्रीन पर फेंक देगा। सीपीयू ग्राफिक्स चिप पर विभिन्न कॉन्फ़िगरेशन चर भी सेट कर सकता है।

विवरण:

80 के दशक में, होम कंप्यूटर में वास्तव में "डंब" ग्राफिक्स चिप था जिसमें कुछ निश्चित व्यवहार थे। अगर मैं पाइप लाइन के पीछे से जाऊंगा तो यह सबसे ज्यादा मायने रखेगा।

CRT मॉनिटर्स

इन मॉनिटरों को एनालॉग इनपुट्स की जरूरत थी। दूसरे शब्दों में, उच्च वोल्टेज = उज्जवल आउटपुट। कलर मॉनिटर में 3 चैनल थे (लाल, हरा और नीला (या, जैसे। YUV या YIQ ) )। इन वोल्टेज ने एक इलेक्ट्रॉन बीम की ताकत को समायोजित किया। साधारण सामान।

CRT मॉनिटर इलेक्ट्रोमैग्नेट का इस्तेमाल करता है जो कि इलेक्ट्रान बीम को बाएं से दाएं डिफ्लेक्ट करता है, फिर फिर से थोड़ा नीचे से शुरू होता है और बाएं से दाएं जाता है, और इसी तरह ऊपर से नीचे तक। फिर शीर्ष पर वापस जाएं और दोहराएं।

डीएसी

ग्राफिक्स चिप्स में "डिजिटल से एनालॉग" कनवर्टर (एक बहुत ही सामान्य विद्युत घटक ) था। इसने डिजिटल मूल्यों (जैसे 2, 4, या 8 बिट्स) को वोल्ट्स में परिवर्तित किया जो मॉनिटर को आपूर्ति की जा सकती थी।

स्कैनिंग

इलेक्ट्रॉन चिप्स को इलेक्ट्रॉन बीम के साथ "रखना" था, डीएसी को सही मूल्य भेजना ताकि यह सही समय पर संबंधित वोल्टेज को आउटपुट कर सके। (इसके लिए घड़ियों का उपयोग किया गया था, जिसमें मैं नहीं जाऊँगा।) यहाँ निर्देशों को निष्पादित करने का समय नहीं था। सब कुछ हार्ड-वायर्ड था और घड़ी चक्रों की एक छोटी, निश्चित संख्या थी।

वीडियो मोड

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

तीन उल्लेखनीय वीजीए मोड हैं:

  • 16 (ईश) रंग 80x25 टेक्स्ट मोड (यह अनिवार्य रूप से एक BIOS लोडिंग स्क्रीन जैसा दिखता है)
  • 16 रंग 640x480 हाई-रेज मोड
  • 256-रंग 320x200 उच्च-रंग मोड

पेंटिंग पिक्सल

बहुत मोटे तौर पर, ग्राफिक्स सिस्टम के आधार पर, पाइपलाइन कुछ इस तरह दिखती है:

वर्तमान पिक्सेल स्थान ⇒ प्रक्रिया वर्ण / फ़ॉन्ट / स्प्राइट / पिक्सेल / कॉन्फ़िगर डेटा ⇒ पिक्सेल मान ⇒ पैलेट ⇒ DAC

यह दूसरा चरण है जिसे कुछ स्थानों पर RAM से पढ़ना है। उदाहरण के लिए, पाठ मोड में, एक 1-बाइट वर्ण को देखा जाएगा। यह एक फॉन्ट टेबल में एक इंडेक्स बनाएगा। इस तालिका से थोड़ा ऊपर देखा जाएगा, यह दर्शाता है कि पिक्सेल अग्रभूमि या पृष्ठभूमि रंग होना चाहिए। एक तीसरा बाइट उस अग्रभूमि / पृष्ठभूमि के रंग को प्राप्त करने के लिए प्राप्त किया जाएगा। सभी में, 3 बाइट्स रैम से पढ़ते हैं।

लेकिन यह "प्रवाह" बहुत ही सरल निश्चित सर्किटों का एक सेट है जो ठीक उसी तरह व्यवस्थित किया जाता है, ठीक है, प्रवाह का सिर्फ वर्णन किया गया है।

मेमोरी बस इंटरफ़ेस

इंटेल CPU में इस कष्टप्रद विरासत को एक IO बस कहा जाता है, लेकिन यह महत्वपूर्ण नहीं है इसलिए मैं दिखावा करूंगा कि यह वहां नहीं है।

READ या WRITE अनुरोध, और मेमोरी बस में एक पता प्रसारित करके सीपीयू रैम तक पहुँचता है। यद्यपि अधिकांश वैध पते रैम से प्रतिक्रिया प्राप्त करते हैं, कुछ निश्चित रेंज इसके बजाय उपकरणों द्वारा नियंत्रित की जाती हैं । उदाहरण के लिए, किसी विशेष पते से रीडिंग आपको कीबोर्ड की के बारे में जानकारी दे सकती है।

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

वीजीए के साथ, ग्राफिक्स कार्ड पर वास्तव में रैम है , क्योंकि आप ग्राफिक्स कार्ड को कुछ स्थितियों में प्रदर्शन को बढ़ावा देने के लिए ग्राफिक्स रैम को लिखे जाने से पहले ग्राफिक्स कार्ड को पूर्व-संसाधित डेटा से कॉन्फ़िगर कर सकते हैं।

VESA

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

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