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