2011-07-10 18 views
18

मेरे पास इस सप्ताह मेरे असाइनमेंट पर यह प्रश्न है, और मुझे नहीं पता कि कैसे कैश को पराजित किया जा सकता है, या मैं इसे एक असेंबली प्रोग्राम के साथ कैसे दिखा सकता हूं .. क्या कोई मुझे सही दिशा में इंगित कर सकता है?कैसे कैश को पराजित किया जा सकता है?

असेंबली प्रोग्राम उदाहरणों के साथ दिखाएं, कैसे दो अलग-अलग कैश (एसोसिएटिव और डायरेक्ट मैपिंग) को पराजित किया जा सकता है। समझाओ कि ऐसा क्यों होता है और इसे कैसे ठीक किया जा सकता है। क्या एक ही कार्यक्रम कैश को हराने के लिए उपयोग किया जाता है?

नोट: यह होमवर्क है। मेरे लिए सिर्फ सवाल का जवाब न दें, यह मुझे सामग्री को समझने में मदद नहीं करेगा।

+1

कृपया इसे अगली बार होमवर्क के रूप में टैग करें। –

+1

होमवर्क के रूप में सही ढंग से पहचानने के लिए धन्यवाद :) –

+11

आपको केवल घर के काम को स्वीकार करने के लिए एक अपवित्र नहीं है, बल्कि यह स्पष्ट करने के लिए कि आप सामग्री को समझना चाहते हैं। –

उत्तर

6

प्रदर्शन बढ़ाने के लिए एक कैश है। तो कैश को हराकर मतलब है कि मेमोरी एक्सेस का एक पैटर्न ढूंढना जो इसे बढ़ाने के बजाय प्रदर्शन को कम करता है (कैश की उपस्थिति में)।

ध्यान रखें कि कैश आकार में सीमित है (मुख्य स्मृति से छोटा है, उदाहरण के लिए) तो आम तौर पर कैश को हराकर इसे भरना शामिल होता है ताकि वह उस डेटा को फेंक दे जो आप बस पहुंचने वाले हैं, बस आपके सामने इस तक पहुंचें।

+0

तो, क्या मैं यह सोचने में सही हूं कि इसे दिखाने का सबसे अच्छा तरीका केवल एक लूप बनाना होगा जो कैश के आकार से कम से कम एक कैश लाइन है, या लूप का संयोजन और डेटा को पढ़ने/संग्रहीत करना दो कैश लाइनों में विभाजित होना होगा? – John

+0

आप सही लाइनों के साथ सोच रहे हैं, हां। हालांकि ध्यान रखें कि आप ऐसे पैटर्न को खोजने की कोशिश कर रहे हैं जो बिना कैश के कम कुशल है। कैश के सटीक विवरण के आधार पर, बस अनुक्रमिक रूप से बड़ी मात्रा में डेटा पढ़ने से शायद इसे पराजित नहीं किया जाएगा (आपको इससे अधिक लाभ नहीं मिल रहा है, लेकिन न ही यह आपको चोट पहुंचाएगा)। चाल एक ऐसा पैटर्न ढूंढना है जहां कैश की लागत उस लाभ से अधिक हो जो आपको देता है। –

3

यदि आप एक संकेत की तलाश में हैं, तो 2 कैश लाइनों में डेटा शब्द को विभाजित करने के बारे में सोचें। अधिक जानकारी उपलब्ध here और here लिंक उच्च जानकारीपूर्ण रहे हैं, और मैं वास्तव में आप आप के बाद भी उन्हें पढ़ने का सुझाव -

(मामले में आप भी जवाब की तलाश में हैं, एक ऐसी ही समस्या x264 डेवलपर्स द्वारा सामना करना पड़ा था। आपको अपना जवाब मिल गया है।)

0

ध्यान में रखना एक और बात यह है कि क्या आप जिन कैशों से निपटते हैं वे लगभग या शारीरिक रूप से अनुक्रमित/टैग किए गए हैं। कुछ प्रकारों में, कैश एलियासिंग कैश की तरह पूरी तरह से भरने के बावजूद लाइन प्रतिस्थापन को मजबूर करता है। अन्य रूपों में, कैश/पृष्ठ रंग टकराव उत्पीड़न का कारण बन सकता है। अंत में, कुछ वर्कलोड के तहत मल्टीप्रोसेसर सिस्टम में, कैशलाइन माइग्रेशन (विभिन्न CPUs के कैश के बीच) CPU कैश की उपयोगिता को सीमित कर सकता है।

संबंधित मुद्दे