कम शक्ति के लिए डेटा संगठन: Difference between revisions
(Created page with "इलेक्ट्रॉनिक हार्डवेयर के भौतिक आकार के संबंध में बिजली की खपत...") |
No edit summary |
||
Line 1: | Line 1: | ||
[[इलेक्ट्रॉनिक हार्डवेयर]] के भौतिक आकार के संबंध में [[बिजली की खपत]] में वृद्धि हुई है क्योंकि घटक छोटे और अधिक सघन रूप से पैक हो गए हैं। उच्च ऑपरेटिंग आवृत्तियों के साथ मिलकर, इसने | [[इलेक्ट्रॉनिक हार्डवेयर]] के भौतिक आकार के संबंध में [[बिजली की खपत|विद्युत् के व्यय]] में वृद्धि हुई है क्योंकि घटक छोटे और अधिक सघन रूप से पैक हो गए हैं। उच्च ऑपरेटिंग आवृत्तियों के साथ मिलकर, इसने विद्युत् अपव्यय के अस्वीकार्य स्तर को उत्पन्न कर दिया है। [[सेमीकंडक्टर मेमोरी]] व्यय की गई बिजली के उच्च अनुपात के लिए मेमोरी खाते, और डेटा संगठन को अनुकूलित करके इस योगदान को कम किया जा सकता है- जिस तरह से डेटा संग्रहीत किया जाता है।<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> | ||
== कम ऊर्जा पता बस का मेमोरी डेटा संगठन == | == कम ऊर्जा पता बस का मेमोरी डेटा संगठन == | ||
सिस्टम स्तर [[बस (कंप्यूटिंग)]] जैसे ऑफ-चिप बसें या आईपी ब्लॉक के बीच लंबी ऑन-चिप बसें अक्सर उनके बड़े लोड कैपेसिटेंस के कारण ऊर्जा | सिस्टम स्तर [[बस (कंप्यूटिंग)]] जैसे ऑफ-चिप बसें या आईपी ब्लॉक के बीच लंबी ऑन-चिप बसें अक्सर उनके बड़े लोड कैपेसिटेंस के कारण ऊर्जा व्यय के प्रमुख स्रोत होते हैं। प्रायोगिक परिणामों से पता चला है कि डेटा को व्यवस्थित करके मेमोरी एक्सेस के लिए बस गतिविधि को 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|पंक्ति- और स्तंभ-प्रमुख क्रम का चित्रण]]अधिकांश मौजूदा सी कंपाइलर पंक्ति-प्रमुख रूप में एक बहुआयामी सरणी रखते हैं, जो कि पंक्ति से पंक्ति है: यह आसन्न तालिका में अडॉप्टिमाइज्ड कॉलम में दिखाया गया है। नतीजतन, इस कोड को चलाने के दौरान कोई मेमोरी एक्सेस अनुक्रमिक मेमोरी एक्सेस नहीं है क्योंकि कॉलम में तत्वों को अनुक्रमिक रूप से एक्सेस किया जाता है। लेकिन जिस तरह से उन्हें स्मृति में रखा गया है, उसे बदलना संभव है ताकि स्मृति से अनुक्रमिक पहुंच की संख्या को अधिकतम किया जा सके। तालिका के अनुकूलित कॉलम में दिखाए गए अनुसार डेटा को ऑर्डर करके इसे प्राप्त किया जा सकता है। कंपाइलर द्वारा डेटा का ऐसा पुनर्वितरण मेमोरी एक्सेस के कारण ऊर्जा की | [[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" | ||
|- | |- | ||
Line 60: | Line 60: | ||
== डेटा संरचना परिवर्तन == | == डेटा संरचना परिवर्तन == | ||
इस पद्धति में स्रोत कोड रूपांतरण शामिल है जो या तो स्रोत कोड में शामिल डेटा संरचना को संशोधित करता है या नई डेटा संरचनाओं का परिचय देता है या संभवतः, | इस पद्धति में स्रोत कोड रूपांतरण शामिल है जो या तो स्रोत कोड में शामिल डेटा संरचना को संशोधित करता है या नई डेटा संरचनाओं का परिचय देता है या संभवतः, विद्युत् की व्यय को कम करने के उद्देश्य से एक्सेस मोड और एक्सेस पथ को संशोधित करता है। ऐसे परिवर्तनों को करने के लिए कुछ तकनीकों का उपयोग किया जाता है। | ||
=== ऐरे डिक्लेरेशन सॉर्टिंग === | === ऐरे डिक्लेरेशन सॉर्टिंग === | ||
Line 74: | Line 74: | ||
== स्क्रैडपैड मेमोरी का उपयोग == | == स्क्रैडपैड मेमोरी का उपयोग == | ||
{{Main|scratchpad memory}} | {{Main|scratchpad memory}} | ||
ऑन-चिप कैश स्थिर RAM का उपयोग करते हैं जो कुल चिप शक्ति का 25% और 50% के बीच उपभोग करता है और कुल चिप क्षेत्र का लगभग 50% भाग घेरता है। [[स्क्रैचपैड मेमोरी]] ऑन-चिप कैश की तुलना में कम जगह घेरती है। यह आम तौर पर मेमोरी यूनिट की ऊर्जा | ऑन-चिप कैश स्थिर 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> | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[कम बिजली इलेक्ट्रॉनिक्स]] | * [[कम बिजली इलेक्ट्रॉनिक्स|कम विद्युत् इलेक्ट्रॉनिक्स]] | ||
* पावर अनुकूलन (ईडीए) | * पावर अनुकूलन (ईडीए) | ||
Revision as of 22:49, 7 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]
unoptimized | optimized |
---|---|
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]
स्क्रैडपैड मेमोरी का उपयोग
ऑन-चिप कैश स्थिर RAM का उपयोग करते हैं जो कुल चिप शक्ति का 25% और 50% के बीच उपभोग करता है और कुल चिप क्षेत्र का लगभग 50% भाग घेरता है। स्क्रैचपैड मेमोरी ऑन-चिप कैश की तुलना में कम जगह घेरती है। यह आम तौर पर मेमोरी यूनिट की ऊर्जा व्यय को कम करेगा, क्योंकि कम क्षेत्र का तात्पर्य कुल स्विच्ड कैपेसिटेंस में कमी से है। विशेष रूप से मल्टीमीडिया अनुप्रयोगों और ग्राफिक नियंत्रकों के क्षेत्र में वर्तमान एम्बेडेड प्रोसेसर में ऑन-चिप स्क्रैच पैड मेमोरी होती है। कैश मेमोरी सिस्टम में, प्रोग्राम तत्वों की मैपिंग रन टाइम के दौरान की जाती है, जबकि स्क्रैडपैड मेमोरी सिस्टम में यह या तो उपयोगकर्ता द्वारा या उपयुक्त एल्गोरिदम का उपयोग करके कंपाइलर द्वारा स्वचालित रूप से किया जाता है।[4]
यह भी देखें
- कम विद्युत् इलेक्ट्रॉनिक्स
- पावर अनुकूलन (ईडीए)
संदर्भ
- ↑ 1.0 1.1 "सॉफ़्टवेयर शक्ति और ऊर्जा खपत पर स्रोत कोड परिवर्तन का प्रभाव". CiteSeerX 10.1.1.97.6254.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ 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.
- ↑ "Power Optimization Techniques for DDR3 SDRAM"
- ↑ "Scratchpad Memory : A Design Alternative for Cache On-chip memory in Embedded Systems" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(help)