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

From Vigyanwiki
No edit summary
No edit summary
 
(3 intermediate revisions by 3 users not shown)
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"
|-
|-
Line 75: Line 75:
{{Main|स्क्रैडपैड मेमोरी}}
{{Main|स्क्रैडपैड मेमोरी}}


ऑन-चिप कैश स्थिर रैम का उपयोग करते हैं जो कुल चिप शक्ति का 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 84: Line 84:
==संदर्भ==
==संदर्भ==
{{Reflist}}
{{Reflist}}
[[Category: सॉफ्टवेयर अनुकूलन]]


 
[[Category:Articles with hatnote templates targeting a nonexistent page]]
 
[[Category:CS1 errors]]
[[Category: Machine Translated Page]]
[[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)