पीसीआई गणना में डिवाइस को कैसे निर्धारित किया जाता है? (बस / डिवाइस / समारोह)


8

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

उदाहरण के लिए, मान लें कि मेरे पास एक PCI बस के साथ एक CPU है और एक PCI परिधीय इसके साथ जुड़ा हुआ है। मैं समझता हूं कि सीपीयू बस 0 (डिफ़ॉल्ट रूप से) पर दिखेगा और फ़ंक्शन को देखने वाले सभी डिवाइस नंबरों की जांच करेगा। परिधीय का डिवाइस नंबर कैसे निर्धारित होता है?

जवाबों:


6

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

एक उपकरण एक "पुल" भी हो सकता है जिसका मतलब है कि यह एक अधीनस्थ बस का गठन करता है। उस बस में एक अलग आईडी (अपस्ट्रीम से असाइन किया गया) होगा, और इसमें स्लॉट्स का अपना सेट होगा जो स्वतंत्र रूप से एनुमरेट किया गया था।

PCI-Express (PCIe) बिलकुल अलग है। PCIe वास्तव में एक बस नहीं है - जैसे कि उपकरणों के बीच साझा किए गए संसाधन में; इसके बजाय प्रत्येक डिवाइस का अपना अपस्ट्रीम डिवाइस (और किसी भी डाउनस्ट्रीम डिवाइस - और यदि उसके पास डाउनस्ट्रीम डिवाइस है, तो इसका मतलब है कि यह पुल के रूप में भी काम कर रहा है)। PCI की तरह एक LAN के बारे में सोचो। प्रत्येक पुल एक स्विच के अनुरूप है, जिसमें अन्य उपकरणों से जुड़े बंदरगाहों का एक गुच्छा है। अन्य उपकरण टर्मिनल डिवाइस हो सकते हैं, या वे अन्य स्विच (यानी PCIe पुल) हो सकते हैं।

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

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


1
इसका उत्तर थोड़ा भ्रमित करने वाला है: PCI में 1) "डिवाइस नंबर" वास्तव में "स्लॉट नंबर" (और यह समझ में आता है), 2) आप कहते हैं कि "PCIe पूरी तरह से अलग है" और "चूंकि प्रत्येक डिवाइस का अपना स्वतंत्र सेट तारों का है। , डिवाइस आईडी अनिवार्य रूप से सभी हार्ड-कोडित हैं ", जिसका अर्थ है तारों का सेट (= स्लॉट) में आईडी को हार्ड-कोडित किया गया है, इस प्रकार यह पीसीआई में समान है। अब, सवाल यह है कि "हार्ड-कोडिंग" कब होती है? स्विच / पुलों को रीसेट पर आईडी को फिर से असाइन करना है?
xealits

2
हाँ। जिसे बेहतर तरीके से शब्दबद्ध किया जा सके। मुद्दा यह है कि पीसीआई में, कार्ड एक साझा बस पर है, लेकिन यह जानता है कि यह किस स्लॉट में है और केवल इसका जवाब देता है जब इसका स्लॉट-विशिष्ट पिन मुखर होता है। PCIe में, पुल में "तारों" के अलग-अलग सेट हैं। इसलिए पुल डिवाइस में तारों के हर सेट के लिए एक असतत स्लॉट संख्या होती है। पुल के दृष्टिकोण से, उस स्लॉट की एक निश्चित संख्या है; यह केवल यह निर्धारित करना है कि वहां कुछ है या नहीं। कार्ड खुद नहीं जानता कि यह किस स्लॉट में है। एक बार जब पुल निर्धारित करता है कि वहां कुछ है, तो यह उस डिवाइस को बताता है कि उसका स्लॉट नंबर क्या है।
गिल हैमिल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.