कम शक्ति के लिए डेटा संगठन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[इलेक्ट्रॉनिक हार्डवेयर]] के भौतिक आकार के संबंध में [[बिजली की खपत|विद्युत् के व्यय]] में वृद्धि हुई है क्योंकि घटक छोटे और अधिक सघन रूप से पैक हो गए हैं। उच्च ऑपरेटिंग आवृत्तियों के साथ मिलकर, इसने विद्युत् अपव्यय के अस्वीकार्य स्तर को उत्पन्न कर दिया है। [[सेमीकंडक्टर मेमोरी]] व्यय की गई बिजली के उच्च अनुपात के लिए मेमोरी खाते, और डेटा संगठन को अनुकूलित करके इस योगदान को कम किया जा सकता है- जिस तरह से डेटा संग्रहीत किया जाता है।<ref name=impact>{{cite document | title = सॉफ़्टवेयर शक्ति और ऊर्जा खपत पर स्रोत कोड परिवर्तन का प्रभाव| citeseerx = 10.1.1.97.6254 }}</ref>
[[इलेक्ट्रॉनिक हार्डवेयर]] के भौतिक आकार के संबंध में [[बिजली की खपत|विद्युत् के व्यय]] में वृद्धि हुई है क्योंकि घटक छोटे और अधिक सघन रूप से पैक हो गए हैं। उच्च ऑपरेटिंग आवृत्तियों के साथ मिलकर, इसने विद्युत् अपव्यय के अस्वीकार्य स्तर को उत्पन्न कर दिया है। [[सेमीकंडक्टर मेमोरी|अर्धचालक मेमोरी]] व्यय की गई विद्युत् के उच्च अनुपात के लिए मेमोरी खाते, और डेटा संगठन को अनुकूलित करके इस योगदान को कम किया जा सकता है- जिस प्रकार से डेटा संग्रहीत किया जाता है।<ref name=impact>{{cite document | title = सॉफ़्टवेयर शक्ति और ऊर्जा खपत पर स्रोत कोड परिवर्तन का प्रभाव| citeseerx = 10.1.1.97.6254 }}</ref>




== प्रेरणा ==
== प्रेरणा ==
उच्च मेमोरी घनत्व वाले इलेक्ट्रॉनिक सिस्टम में पावर ऑप्टिमाइजेशन [[ चल दूरभाष ]], [[ अंतः स्थापित प्रणाली ]] और [[ तार रहित ]] डिवाइस जैसे उपकरणों के लिए प्रमुख चुनौतियों में से एक बन गया है। जैसे-जैसे एक चिप पर कोर की संख्या बढ़ रही है, उपकरणों द्वारा विद्युत् की व्यय भी बढ़ रही है। स्मार्टफोन और डेटा केंद्रों में विद्युत् की व्यय के वितरण पर किए गए अध्ययनों से पता चला है कि मेमोरी सबसिस्टम कुल विद्युत् का लगभग 40% व्यय करता है। सर्वर सिस्टम में, अध्ययन से पता चलता है कि मेमोरी कोर विद्युत् की व्यय का लगभग 1.5 गुना उपभोग करती है।<ref>{{cite conference | title = Power Optimization Techniques for DDR3 SDRAM | doi = 10.1109/VLSID.2015.59 | conference = 28th International Conference on VLSI Design (VLSID), 2015 | date = 3–7 January 2015 | pages = 310–315 | last1 = Panda | first1 = P.R. | last2 = Patel | first2 = V. | last3 = Shah | first3 = P. | last4 = Sharma | first4 = N. | last5 = Srinivasan | first5 = V. | last6 = Sarma | first6 = D. | publisher = IEEE }}</ref>
उच्च मेमोरी घनत्व वाले इलेक्ट्रॉनिक प्रणाली में पावर ऑप्टिमाइजेशन [[ चल दूरभाष |मोबाइल फोन]], [[ अंतः स्थापित प्रणाली |अंतः स्थापित प्रणाली]] और [[ तार रहित |तार रहित]] डिवाइस जैसे उपकरणों के लिए प्रमुख लक्ष्यों में से है। जैसे-जैसे चिप पर कोर की संख्या बढ़ रही है, उपकरणों द्वारा विद्युत् की व्यय भी बढ़ रही है। स्मार्टफोन और डेटा केंद्रों में विद्युत् की व्यय के वितरण पर किए गए अध्ययनों से ज्ञात होता है कि मेमोरी उप-प्रणाली कुल विद्युत् का लगभग 40% व्यय करता है। सर्वर प्रणाली में, अध्ययन से ज्ञात होता है कि मेमोरी कोर विद्युत् की व्यय का लगभग 1.5 गुना उपभोग करती है।<ref>{{cite conference | title = Power Optimization Techniques for DDR3 SDRAM | doi = 10.1109/VLSID.2015.59 | conference = 28th International Conference on VLSI Design (VLSID), 2015 | date = 3–7 January 2015 | pages = 310–315 | last1 = Panda | first1 = P.R. | last2 = Patel | first2 = V. | last3 = Shah | first3 = P. | last4 = Sharma | first4 = N. | last5 = Srinivasan | first5 = V. | last6 = Sarma | first6 = D. | publisher = IEEE }}</ref>




== कम ऊर्जा पता बस का मेमोरी डेटा संगठन ==
== कम ऊर्जा एड्रेस बस का मेमोरी डेटा संगठन ==
सिस्टम स्तर [[बस (कंप्यूटिंग)]] जैसे ऑफ-चिप बसें या आईपी ब्लॉक के बीच लंबी ऑन-चिप बसें अक्सर उनके बड़े लोड कैपेसिटेंस के कारण ऊर्जा व्यय के प्रमुख स्रोत होते हैं। प्रायोगिक परिणामों से पता चला है कि डेटा को व्यवस्थित करके मेमोरी एक्सेस के लिए बस गतिविधि को 50% तक कम किया जा सकता है। [[सी (प्रोग्रामिंग भाषा)]] में लिखे गए कोड को संकलित करने के मामले पर विचार करें:
प्रणाली स्तर की [[बस (कंप्यूटिंग)|बसें (कंप्यूटिंग)]] जैसे ऑफ-चिप बसें या आईपी ब्लॉकों के मध्य लंबी ऑन-चिप बसें प्रायः उनके बड़े लोड कैपेसिटेंस के कारण ऊर्जा व्यय के प्रमुख स्रोत होते हैं। प्रायोगिक परिणामों से ज्ञात होता है कि डेटा को व्यवस्थित करके मेमोरी एक्सेस के लिए बस गतिविधि को 50% तक कम किया जा सकता है। [[सी (प्रोग्रामिंग भाषा)]] में लिखे गए कोड को संकलित करने की स्थति पर विचार करें:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
int A[4][4], B[4][4];
int A[4][4], B[4][4];
Line 18: Line 18:
</syntaxhighlight>
</syntaxhighlight>


[[File:Row_and_column_major_order.svg|thumb|upright|पंक्ति- और स्तंभ-प्रमुख क्रम का चित्रण]]अधिकांश मौजूदा सी कंपाइलर पंक्ति-प्रमुख रूप में एक बहुआयामी सरणी रखते हैं, जो कि पंक्ति से पंक्ति है: यह आसन्न तालिका में अडॉप्टिमाइज्ड कॉलम में दिखाया गया है। नतीजतन, इस कोड को चलाने के दौरान कोई मेमोरी एक्सेस अनुक्रमिक मेमोरी एक्सेस नहीं है क्योंकि कॉलम में तत्वों को अनुक्रमिक रूप से एक्सेस किया जाता है। लेकिन जिस तरह से उन्हें स्मृति में रखा गया है, उसे बदलना संभव है ताकि स्मृति से अनुक्रमिक पहुंच की संख्या को अधिकतम किया जा सके। तालिका के अनुकूलित कॉलम में दिखाए गए अनुसार डेटा को ऑर्डर करके इसे प्राप्त किया जा सकता है। कंपाइलर द्वारा डेटा का ऐसा पुनर्वितरण मेमोरी एक्सेस के कारण ऊर्जा की व्यय को काफी कम कर सकता है।<ref>[http://www.ics.uci.edu/~dutt/pubs/j41-hiroyuki-ieice-e87-c4.pdf "Power Optimization Techniques for DDR3 SDRAM"]</ref>
[[File:Row_and_column_major_order.svg|thumb|upright|पंक्ति- और स्तंभ-प्रमुख क्रम का चित्रण]]अधिकांश उपस्थित सी कंपाइलर पंक्ति-प्रमुख रूप में बहुआयामी सरणी रखते हैं, जो कि पंक्ति है: यह आसन्न सारणी में अडॉप्टिमाइज्ड कॉलम में दिखाया गया है। परिणाम स्वरुप, इस कोड को चलाने के समय कोई मेमोरी एक्सेस अनुक्रमिक मेमोरी एक्सेस नहीं है क्योंकि कॉलम में एलिमेंट्स को अनुक्रमिक रूप से एक्सेस किया जाता है। किन्तु जिस प्रकार से उन्हें मेमोरी में रखा गया है, उसे परिवर्तित करना संभव है जिससे मेमोरी से अनुक्रमिक पहुंच की संख्या को अधिकतम किया जा सके। सारणी के "अनुकूलित" कॉलम में दिखाए गए डेटा को ऑर्डर करके इसे प्राप्त किया जा सकता है। कंपाइलर द्वारा डेटा का ऐसा पुनर्वितरण मेमोरी एक्सेस के कारण ऊर्जा की व्यय को अधिक कम कर सकता है।<ref>[http://www.ics.uci.edu/~dutt/pubs/j41-hiroyuki-ieice-e87-c4.pdf "Power Optimization Techniques for DDR3 SDRAM"]</ref>
{| class="wikitable"
{| class="wikitable"
|-
|-
! unoptimized !! optimized
! अनऑप्टीमाइज़्ड !! ऑप्टीमाइज़्ड
|-
|-
| A[0][0] || A[0][0]
| A[0][0] || A[0][0]
Line 60: Line 60:


== डेटा संरचना परिवर्तन ==
== डेटा संरचना परिवर्तन ==
इस पद्धति में स्रोत कोड रूपांतरण शामिल है जो या तो स्रोत कोड में शामिल डेटा संरचना को संशोधित करता है या नई डेटा संरचनाओं का परिचय देता है या संभवतः, विद्युत् की व्यय को कम करने के उद्देश्य से एक्सेस मोड और एक्सेस पथ को संशोधित करता है। ऐसे परिवर्तनों को करने के लिए कुछ तकनीकों का उपयोग किया जाता है।
इस पद्धति में स्रोत कोड रूपांतरण सम्मिलित है जो या तो स्रोत कोड में सम्मिलित डेटा संरचना को संशोधित करता है या नई डेटा संरचनाओं का परिचय देता है या संभवतः, विद्युत् की व्यय को कम करने के उद्देश्य से एक्सेस मोड और एक्सेस पथ को संशोधित करता है। ऐसे परिवर्तनों को करने के लिए कुछ तकनीकों का उपयोग किया जाता है।


=== ऐरे डिक्लेरेशन सॉर्टिंग ===
=== ऐरे डिक्लेरेशन सॉर्टिंग ===
मूल विचार स्थानीय ऐरे डेटा संरचना घोषणा क्रम को संशोधित करना है, ताकि अधिक बार एक्सेस की जाने वाली सरणियों को स्टैक के शीर्ष पर इस तरह रखा जाए कि अक्सर उपयोग की जाने वाली मेमोरी लोकेशन सीधे एक्सेस की जा सके। इसे प्राप्त करने के लिए, सरणी घोषणाओं को पुनर्गठित किया जाता है ताकि पहले अधिक बार उपयोग किए जाने वाले सरणियों को रखा जा सके, जिसके लिए या तो स्थिर अनुमान या स्थानीय सरणियों की आवृत्ति के गतिशील विश्लेषण की आवश्यकता होती है।
मूल विचार स्थानीय ऐरे डेटा संरचना घोषणा क्रम को संशोधित करना है, जिससे अधिक बार एक्सेस की जाने वाली सरणियों को स्टैक के शीर्ष पर इस प्रकार रखा जाए कि प्रायः उपयोग की जाने वाली मेमोरी लोकेशन सरलता से एक्सेस की जा सके। इसे प्राप्त करने के लिए, सरणी घोषणाओं को पुनर्गठित किया जाता है जिससे पहले अधिक बार उपयोग किए जाने वाले सरणियों को रखा जा सके, जिसके लिए या तो स्थिर अनुमान या स्थानीय सरणियों की आवृत्ति के गतिशील विश्लेषण की आवश्यकता होती है।


=== सरणी गुंजाइश संशोधन (स्थानीय से वैश्विक) ===
=== सरणी स्कोप संशोधन (स्थानीय से ग्लोबल) ===
किसी भी संगणना कार्यक्रम में, [[स्थानीय चर]] एक कार्यक्रम के ढेर में संग्रहीत होते हैं और [[वैश्विक चर]] डेटा मेमोरी में संग्रहीत होते हैं। इस पद्धति में स्थानीय सरणियों को वैश्विक सरणियों में परिवर्तित करना शामिल है ताकि वे स्टैक के बजाय डेटा मेमोरी में संग्रहीत हों। एक वैश्विक सरणी का स्थान संकलन समय पर निर्धारित किया जा सकता है, जबकि स्थानीय सरणी स्थान केवल तभी निर्धारित किया जा सकता है जब उपप्रोग्राम कहा जाता है और स्टैक पॉइंटर मान पर निर्भर करता है। परिणामस्वरूप, वैश्विक सरणियों को निरंतर 0 के साथ ऑफसेट एड्रेसिंग मोड के साथ एक्सेस किया जाता है, जबकि स्थानीय सरणियों को, पहले को छोड़कर, 0 से अलग निरंतर ऑफसेट के साथ एक्सेस किया जाता है, और इससे ऊर्जा में कमी आती है।
किसी भी संगणना प्रोग्राम में, [[स्थानीय चर]] प्रोग्राम के समूह में संग्रहीत होते हैं और [[वैश्विक चर|ग्लोबल चर]] डेटा मेमोरी में संग्रहीत होते हैं। इस पद्धति में स्थानीय सरणियों को ग्लोबल सरणियों में परिवर्तित करना सम्मिलित है जिससे  वे स्टैक के अतिरिक्त डेटा मेमोरी में संग्रहीत हों। ग्लोबल सरणी का स्थान संकलन समय पर निर्धारित किया जा सकता है, जबकि स्थानीय सरणी स्थान केवल तभी निर्धारित किया जा सकता है जब उप-प्रोग्राम कहा जाता है और स्टैक पॉइंटर मान पर निर्भर करता है। परिणामस्वरूप, ग्लोबल सरणियों को निरंतर 0 के साथ ऑफसेट एड्रेसिंग मोड के साथ एक्सेस किया जाता है, जबकि स्थानीय सरणियों को, 0 से भिन्न निरंतर ऑफसेट के साथ एक्सेस किया जाता है, और इससे ऊर्जा में कमी आती है।


=== सरणी आकार बदलना (अस्थायी सरणी सम्मिलन) ===
=== सरणी आकार परिवर्तन (अस्थायी सरणी सम्मिलन) ===
इस पद्धति में, जिन तत्वों को अधिक बार एक्सेस किया जाता है, उन्हें प्रोफाइलिंग या स्थिर विचारों के माध्यम से पहचाना जाता है। इन तत्वों की एक प्रति तब एक अस्थायी सरणी में संग्रहीत की जाती है जिसे बिना किसी डेटा कैश मिस के एक्सेस किया जा सकता है। इसके परिणामस्वरूप महत्वपूर्ण प्रणाली ऊर्जा में कमी आती है, लेकिन यह प्रदर्शन को भी कम कर सकता है।<ref name=impact/>
इस पद्धति में, जिन एलिमेंट्स को अधिक बार एक्सेस किया जाता है, उन्हें प्रोफाइलिंग या स्थिर विचारों के माध्यम से पहचाना जाता है। इन एलिमेंट्स की एक प्रति तब अस्थायी सरणी में संग्रहीत की जाती है जिसे बिना किसी डेटा कैश मिस के एक्सेस किया जा सकता है। इसके परिणामस्वरूप महत्वपूर्ण प्रणाली ऊर्जा में कमी आती है, किन्तु यह प्रदर्शन को भी कम कर सकता है।<ref name=impact/>




== स्क्रैडपैड मेमोरी का उपयोग ==
== स्क्रैडपैड मेमोरी का उपयोग ==
{{Main|scratchpad memory}}
{{Main|स्क्रैडपैड मेमोरी}}
ऑन-चिप कैश स्थिर RAM का उपयोग करते हैं जो कुल चिप शक्ति का 25% और 50% के बीच उपभोग करता है और कुल चिप क्षेत्र का लगभग 50% भाग घेरता है। [[स्क्रैचपैड मेमोरी]] ऑन-चिप कैश की तुलना में कम जगह घेरती है। यह आम तौर पर मेमोरी यूनिट की ऊर्जा व्यय को कम करेगा, क्योंकि कम क्षेत्र का तात्पर्य कुल स्विच्ड कैपेसिटेंस में कमी से है। विशेष रूप से मल्टीमीडिया अनुप्रयोगों और ग्राफिक नियंत्रकों के क्षेत्र में वर्तमान एम्बेडेड प्रोसेसर में ऑन-चिप स्क्रैच पैड मेमोरी होती है। कैश मेमोरी सिस्टम में, प्रोग्राम तत्वों की मैपिंग रन टाइम के दौरान की जाती है, जबकि स्क्रैडपैड मेमोरी सिस्टम में यह या तो उपयोगकर्ता द्वारा या उपयुक्त एल्गोरिदम का उपयोग करके कंपाइलर द्वारा स्वचालित रूप से किया जाता है।<ref>{{cite document | title = Scratchpad Memory : A Design Alternative for Cache On-chip memory in Embedded Systems | url = http://robertdick.org/aeos/reading/banakar-scratchpad.pdf }}</ref>
 
ऑन-चिप कैश स्थिर रैम का उपयोग करते हैं जो कुल चिप शक्ति का 25% और 50% के मध्य उपभोग करता है और कुल चिप क्षेत्र का लगभग 50% भाग लेता है। [[स्क्रैचपैड मेमोरी]] ऑन-चिप कैश की तुलना में कम स्थान लेती है। यह सामान्यतः मेमोरी यूनिट की ऊर्जा व्यय को कम करेगा, क्योंकि कम क्षेत्र का तात्पर्य कुल स्विच्ड कैपेसिटेंस में कमी से है। विशेष रूप से मल्टीमीडिया अनुप्रयोगों और ग्राफिक नियंत्रकों के क्षेत्र में वर्तमान एम्बेडेड प्रोसेसर में ऑन-चिप स्क्रैच पैड मेमोरी होती है। कैश मेमोरी प्रणाली में, प्रोग्राम एलिमेंट्स की मैपिंग रन टाइम के समय की जाती है, जबकि स्क्रैडपैड मेमोरी प्रणाली में यह या तो उपयोगकर्ता द्वारा या उपयुक्त एल्गोरिदम का उपयोग करके कंपाइलर द्वारा स्वचालित रूप से किया जाता है।<ref>{{cite document | title = Scratchpad Memory : A Design Alternative for Cache On-chip memory in Embedded Systems | url = http://robertdick.org/aeos/reading/banakar-scratchpad.pdf }}</ref>




Line 83: Line 84:
==संदर्भ==
==संदर्भ==
{{Reflist}}
{{Reflist}}
[[Category: सॉफ्टवेयर अनुकूलन]]


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:CS1 errors]]
[[Category:Created On 01/06/2023]]
[[Category:Created On 01/06/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:सॉफ्टवेयर अनुकूलन]]

Latest revision as of 15:46, 14 June 2023

इलेक्ट्रॉनिक हार्डवेयर के भौतिक आकार के संबंध में विद्युत् के व्यय में वृद्धि हुई है क्योंकि घटक छोटे और अधिक सघन रूप से पैक हो गए हैं। उच्च ऑपरेटिंग आवृत्तियों के साथ मिलकर, इसने विद्युत् अपव्यय के अस्वीकार्य स्तर को उत्पन्न कर दिया है। अर्धचालक मेमोरी व्यय की गई विद्युत् के उच्च अनुपात के लिए मेमोरी खाते, और डेटा संगठन को अनुकूलित करके इस योगदान को कम किया जा सकता है- जिस प्रकार से डेटा संग्रहीत किया जाता है।[1]


प्रेरणा

उच्च मेमोरी घनत्व वाले इलेक्ट्रॉनिक प्रणाली में पावर ऑप्टिमाइजेशन मोबाइल फोन, अंतः स्थापित प्रणाली और तार रहित डिवाइस जैसे उपकरणों के लिए प्रमुख लक्ष्यों में से है। जैसे-जैसे चिप पर कोर की संख्या बढ़ रही है, उपकरणों द्वारा विद्युत् की व्यय भी बढ़ रही है। स्मार्टफोन और डेटा केंद्रों में विद्युत् की व्यय के वितरण पर किए गए अध्ययनों से ज्ञात होता है कि मेमोरी उप-प्रणाली कुल विद्युत् का लगभग 40% व्यय करता है। सर्वर प्रणाली में, अध्ययन से ज्ञात होता है कि मेमोरी कोर विद्युत् की व्यय का लगभग 1.5 गुना उपभोग करती है।[2]


कम ऊर्जा एड्रेस बस का मेमोरी डेटा संगठन

प्रणाली स्तर की बसें (कंप्यूटिंग) जैसे ऑफ-चिप बसें या आईपी ब्लॉकों के मध्य लंबी ऑन-चिप बसें प्रायः उनके बड़े लोड कैपेसिटेंस के कारण ऊर्जा व्यय के प्रमुख स्रोत होते हैं। प्रायोगिक परिणामों से ज्ञात होता है कि डेटा को व्यवस्थित करके मेमोरी एक्सेस के लिए बस गतिविधि को 50% तक कम किया जा सकता है। सी (प्रोग्रामिंग भाषा) में लिखे गए कोड को संकलित करने की स्थति पर विचार करें:

int A[4][4], B[4][4];

for (i = 0; i < 4; i++) {
  for (j = 0; j < 4; j++) {
    B[i][j] = A[j][i];
  }
}
पंक्ति- और स्तंभ-प्रमुख क्रम का चित्रण

अधिकांश उपस्थित सी कंपाइलर पंक्ति-प्रमुख रूप में बहुआयामी सरणी रखते हैं, जो कि पंक्ति है: यह आसन्न सारणी में अडॉप्टिमाइज्ड कॉलम में दिखाया गया है। परिणाम स्वरुप, इस कोड को चलाने के समय कोई मेमोरी एक्सेस अनुक्रमिक मेमोरी एक्सेस नहीं है क्योंकि कॉलम में एलिमेंट्स को अनुक्रमिक रूप से एक्सेस किया जाता है। किन्तु जिस प्रकार से उन्हें मेमोरी में रखा गया है, उसे परिवर्तित करना संभव है जिससे मेमोरी से अनुक्रमिक पहुंच की संख्या को अधिकतम किया जा सके। सारणी के "अनुकूलित" कॉलम में दिखाए गए डेटा को ऑर्डर करके इसे प्राप्त किया जा सकता है। कंपाइलर द्वारा डेटा का ऐसा पुनर्वितरण मेमोरी एक्सेस के कारण ऊर्जा की व्यय को अधिक कम कर सकता है।[3]

अनऑप्टीमाइज़्ड ऑप्टीमाइज़्ड
A[0][0] A[0][0]
A[0][1] B[0][0]
A[0][2] A[1][0]
A[0][3] B[0][1]
A[0][0] A[2][0]
A[1][0] B[0][2]
A[1][1] A[3][0]
. B[0][3]
. A[0][1]
B[0][0] B[1][0]
B[0][1] A[1][1]
B[0][2] B[1][1]
B[0][3] .
B[1][0] .
. .
. A[3][3]
B[3][3] B[3][3]


डेटा संरचना परिवर्तन

इस पद्धति में स्रोत कोड रूपांतरण सम्मिलित है जो या तो स्रोत कोड में सम्मिलित डेटा संरचना को संशोधित करता है या नई डेटा संरचनाओं का परिचय देता है या संभवतः, विद्युत् की व्यय को कम करने के उद्देश्य से एक्सेस मोड और एक्सेस पथ को संशोधित करता है। ऐसे परिवर्तनों को करने के लिए कुछ तकनीकों का उपयोग किया जाता है।

ऐरे डिक्लेरेशन सॉर्टिंग

मूल विचार स्थानीय ऐरे डेटा संरचना घोषणा क्रम को संशोधित करना है, जिससे अधिक बार एक्सेस की जाने वाली सरणियों को स्टैक के शीर्ष पर इस प्रकार रखा जाए कि प्रायः उपयोग की जाने वाली मेमोरी लोकेशन सरलता से एक्सेस की जा सके। इसे प्राप्त करने के लिए, सरणी घोषणाओं को पुनर्गठित किया जाता है जिससे पहले अधिक बार उपयोग किए जाने वाले सरणियों को रखा जा सके, जिसके लिए या तो स्थिर अनुमान या स्थानीय सरणियों की आवृत्ति के गतिशील विश्लेषण की आवश्यकता होती है।

सरणी स्कोप संशोधन (स्थानीय से ग्लोबल)

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

सरणी आकार परिवर्तन (अस्थायी सरणी सम्मिलन)

इस पद्धति में, जिन एलिमेंट्स को अधिक बार एक्सेस किया जाता है, उन्हें प्रोफाइलिंग या स्थिर विचारों के माध्यम से पहचाना जाता है। इन एलिमेंट्स की एक प्रति तब अस्थायी सरणी में संग्रहीत की जाती है जिसे बिना किसी डेटा कैश मिस के एक्सेस किया जा सकता है। इसके परिणामस्वरूप महत्वपूर्ण प्रणाली ऊर्जा में कमी आती है, किन्तु यह प्रदर्शन को भी कम कर सकता है।[1]


स्क्रैडपैड मेमोरी का उपयोग

ऑन-चिप कैश स्थिर रैम का उपयोग करते हैं जो कुल चिप शक्ति का 25% और 50% के मध्य उपभोग करता है और कुल चिप क्षेत्र का लगभग 50% भाग लेता है। स्क्रैचपैड मेमोरी ऑन-चिप कैश की तुलना में कम स्थान लेती है। यह सामान्यतः मेमोरी यूनिट की ऊर्जा व्यय को कम करेगा, क्योंकि कम क्षेत्र का तात्पर्य कुल स्विच्ड कैपेसिटेंस में कमी से है। विशेष रूप से मल्टीमीडिया अनुप्रयोगों और ग्राफिक नियंत्रकों के क्षेत्र में वर्तमान एम्बेडेड प्रोसेसर में ऑन-चिप स्क्रैच पैड मेमोरी होती है। कैश मेमोरी प्रणाली में, प्रोग्राम एलिमेंट्स की मैपिंग रन टाइम के समय की जाती है, जबकि स्क्रैडपैड मेमोरी प्रणाली में यह या तो उपयोगकर्ता द्वारा या उपयुक्त एल्गोरिदम का उपयोग करके कंपाइलर द्वारा स्वचालित रूप से किया जाता है।[4]


यह भी देखें

संदर्भ

  1. 1.0 1.1 "सॉफ़्टवेयर शक्ति और ऊर्जा खपत पर स्रोत कोड परिवर्तन का प्रभाव". CiteSeerX 10.1.1.97.6254. {{cite journal}}: Cite journal requires |journal= (help)
  2. Panda, P.R.; Patel, V.; Shah, P.; Sharma, N.; Srinivasan, V.; Sarma, D. (3–7 January 2015). Power Optimization Techniques for DDR3 SDRAM. 28th International Conference on VLSI Design (VLSID), 2015. IEEE. pp. 310–315. doi:10.1109/VLSID.2015.59.
  3. "Power Optimization Techniques for DDR3 SDRAM"
  4. "Scratchpad Memory : A Design Alternative for Cache On-chip memory in Embedded Systems" (PDF). {{cite journal}}: Cite journal requires |journal= (help)