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

From Vigyanwiki
Revision as of 22:49, 7 June 2023 by alpha>Mithlesh

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