क्यों अधिक ट्रांजिस्टर = अधिक प्रसंस्करण शक्ति?


43

विकिपीडिया के अनुसार, प्रसंस्करण शक्ति दृढ़ता से मूर के कानून के साथ जुड़ी हुई है:

http://en.wikipedia.org/wiki/Moore's_law

एक एकीकृत सर्किट पर सस्ते में रखे जा सकने वाले ट्रांजिस्टर की संख्या लगभग हर दो साल में दोगुनी हो गई है। यह प्रवृत्ति आधी सदी से अधिक समय से जारी है और 2015 या उसके बाद तक रुकने की उम्मीद नहीं है। कई डिजिटल इलेक्ट्रॉनिक उपकरणों की क्षमताओं को मूर के नियम से मजबूती से जोड़ा गया है: प्रसंस्करण गति, मेमोरी क्षमता, सेंसर और यहां तक ​​कि डिजिटल कैमरों में पिक्सेल की संख्या और आकार। ये सभी (लगभग) घातीय दरों में भी सुधार कर रहे हैं।

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


10
अधिक ट्रांजिस्टर = अधिक
समानतावाद

2
यह सच है कि प्रोसेसर के पास कितने कोर हैं।
थॉमस ओ

1
हाँ। अधिक ट्रांजिस्टर का मतलब है कि आप अधिक समानांतर निष्पादन इकाइयों में रख सकते हैं। बड़ा कैश। गहरा पाइपलाइन।
कज़

1
कैश बड़ा है। मुझे लगता है कि कैश के लिए समर्पित सिलिकॉन अचल संपत्ति का अनुपात बढ़ रहा है। आधुनिक प्रोसेसर के अधिकांश प्रदर्शन कैशिंग के लिए जिम्मेदार हैं, और कैशिंग केवल तभी काम करता है जब स्थानीयता होती है, लेकिन बड़े कैश, अधिक आराम से स्थानीयता की आवश्यकता होती है (अधिक निराला मेमोरी एक्सेस पैटर्न के साथ बड़े अनुप्रयोग अभी भी बंद हैं)।
कज़

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

जवाबों:


29

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

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


19

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

एक आउट-ऑफ-ऑर्डर कार्यान्वयन, जो बाद में निर्देशों को पहले वाले से पहले निष्पादित करने की अनुमति देता है जब तक कि कोई डेटा निर्भरता नहीं होती है, जैसे ही डेटा उपलब्ध हो जाता है, निर्देशों की समयबद्धन को संभालने के लिए अतिरिक्त हार्डवेयर का उपयोग करता है और मैपिंग के लिए नाम बदलने के लिए रजिस्टर और हार्डवेयर जोड़ता है, आवंटन, और उन्हें (अधिक ट्रांजिस्टर) लिखने-पढ़ने और लिखने के बाद के खतरों से बचने के लिए। आउट-ऑफ-ऑर्डर निष्पादन प्रोसेसर को स्टालिंग से बचने की अनुमति देता है।

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

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

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

आउट-ऑफ-ऑर्डर प्रोसेसर के लिए, सभी पूर्ववर्ती दुकानों के पते की गणना करने से पहले मेमोरी से लोड करने की अनुमति देना वांछनीय हो सकता है, इसलिए इस तरह की अटकलों को संभालने के लिए कुछ हार्डवेयर की आवश्यकता होती है, संभावित रूप से एक भविष्यवक्ता सहित।

कैश विलंबता को कम कर सकते हैं और मेमोरी एक्सेस की बैंडविड्थ को बढ़ा सकते हैं, लेकिन डेटा स्टोर करने और टैग स्टोर करने के लिए ट्रांजिस्टर जोड़ सकते हैं (और अनुरोधित पते के साथ टैग की तुलना करें)। प्रतिस्थापन नीति को लागू करने के लिए अतिरिक्त हार्डवेयर की भी आवश्यकता होती है। हार्डवेयर प्रीफ़ैचिंग अधिक ट्रांजिस्टर जोड़ देगा।

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

SIMD / वेक्टर ऑपरेशन्स प्रति निर्देशानुसार किए गए कार्य की मात्रा को बढ़ाते हैं लेकिन अधिक डेटा स्टोरेज (व्यापक रजिस्टर) की आवश्यकता होती है और आमतौर पर अधिक निष्पादन संसाधनों का उपयोग करते हैं।

(सट्टा मल्टीथ्रेडिंग भी कई प्रोसेसर को एक सिंगल थ्रेडेड प्रोग्राम को तेजी से निष्पादित करने की अनुमति दे सकता है। स्पष्ट रूप से एक चिप में प्रोसेसर जोड़ने से ट्रांजिस्टर की गिनती बढ़ जाएगी।)

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

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

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

ऊपर से थकावट हो सकती है लेकिन थकावट नहीं होती है!


2
एक नए आदमी से उत्कृष्ट जवाब!
कॉनर वुल्फ

12

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


2
एलन के ने गणना की कि चूंकि वह जेरोक्स PARC में स्मॉलटाक पर काम कर रहे थे, इसलिए हमने गलत आर्किटेक्चर और सॉफ्टवेयर अक्षमता के कारण ट्रांजिस्टर दोहरीकरण के 18 साल खो दिए हैं क्योंकि कंप्यूटर निश्चित रूप से उतने तेज़ नहीं हैं जितना कि ट्रांजिस्टर दोहरीकरण का सुझाव देगा।
जेपीसी

5

एक अन्य कारक: जब आप किसी दिए गए क्षेत्र में अधिक ट्रांजिस्टर रेंगते हैं तो वे छोटे हो जाते हैं, जिससे वे तेज हो जाते हैं।


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

4

माइक्रोप्रोसेसरों ने हाल के वर्षों में काफी उन्नत किया है, लंबी पाइपलाइनों, विधेय शाखाओं और चिप कैश जैसी चीजों ने सभी को एक प्रोसेसर से जुड़ी जटिलताओं में जोड़ा है।

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

कैश मेमोरी रैम की तुलना में बहुत तेज है, लेकिन रैम से कैश में और कैश से रैम में कैसे जाना है ??? यह फिर से, मालिकाना सामान है, लेकिन इसे फिर से लागू करने के लिए ट्रांजिस्टर लेता है।

तो अतिरिक्त ट्रांजिस्टर लंबी पाइपलाइन, भविष्य कहनेवाला शाखा एल्गोरिदम, कैश मेमोरी और मेमोरी एल्गोरिदम जैसी चीजों में जाते हैं।

यह मल्टी कोर प्रोसेसर, और साझा मेमोरी / संसाधन एक्सेस कंट्रोलरों का उल्लेख किए बिना है।

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