विभिन्न कैश के टैग, इंडेक्स और ऑफसेट बिट्स की संख्या की गणना कैसे करें?


20

विशेष रूप से:

1) 4096 ब्लॉक / लाइनों के साथ एक डायरेक्ट-मैप्ड कैश जिसमें प्रत्येक ब्लॉक में 8 32-बिट शब्द हैं। 32-बिट पते को टैग और इंडेक्स फ़ील्ड के लिए कितने बिट्स की आवश्यकता है?

2) 1 के रूप में एक ही सवाल) लेकिन पूरी तरह से साहचर्य कैश के लिए ?

सही है अगर मैं गलत हूँ, क्या यह है:

टैग बिट्स = पता बिट लंबाई - सूचकांक के घातांक - ऑफसेट के प्रतिपादक?

[क्या 2 = 3 = 8 के कारण ऑफसेट = 3 है या यह 2 ^ 5 = 32 से 5 है?]


जवाबों:


20

जैसा कि कहा गया है सवाल काफी जवाबदेह नहीं है। एक शब्द को 32-बिट्स के रूप में परिभाषित किया गया है। हमें यह जानने की जरूरत है कि क्या सिस्टम "बाइट-एड्रेसेबल" है (आप 8-बिट चंक डेटा एक्सेस कर सकते हैं) या "वर्ड-एड्रेसेबल" (सबसे छोटा एक्सेसिबल चंक 32-बिट्स है) या यहां तक ​​कि "हाफ-वर्ड एड्रेसेबल" (शब्द) आपके द्वारा एक्सेस किया जा सकने वाला डेटा का सबसे छोटा हिस्सा 16-बिट्स है।) यह जानने के लिए आपको यह जानना होगा कि किसी पते का निम्नतम-क्रम बिट आपको क्या बता रहा है।

फिर आप नीचे से ऊपर की ओर काम करते हैं। मान लेते हैं कि सिस्टम बाइट का पता है।

फिर प्रत्येक कैश ब्लॉक में 8 शब्द * (4 बाइट्स / शब्द) = 32 = 2 5 बाइट्स होते हैं, इसलिए ऑफसेट 5 बिट्स होते हैं।

सूचकांक एक सीधा मैप किया कैश के लिए (इस मामले में 12 बिट क्योंकि 2 कैश में ब्लॉक की संख्या है 12 = 4096।)

फिर टैग उन सभी बिट्स को छोड़ दिया जाता है, जैसा आपने संकेत दिया है।

के रूप में कैश अधिक साहचर्य हो जाता है, लेकिन एक ही आकार रहता है कम सूचकांक बिट्स और अधिक टैग बिट्स हैं।


हाँ, यह पता करने योग्य है, लेकिन जिस प्रश्न को मैंने देखा, वह विशेष रूप से यह नहीं
बताता है

3

टैग बिट्स के लिए आपका फॉर्मूला सही है।

क्या ऑफसेट तीन बिट्स है या पांच बिट्स इस बात पर निर्भर करता है कि प्रोसेसर बाइट (ऑक्टेट) एड्रेसिंग या वर्ड एड्रेसिंग का उपयोग करता है या नहीं। डीएसपी के बाहर, लगभग सभी हाल ही में प्रोसेसर बाइट एड्रेसिंग का उपयोग करते हैं, इसलिए बाइट एड्रेसिंग (और फाइव वाइब्रेशन) मान लेना सुरक्षित होगा।


मुझे नहीं पता था कि इस तरह के भेद हैं, हाँ यह बाइट को संबोधित कर रहा है
compuke

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

1

मैं विषय कंप्यूटर सिस्टम की अंतिम परीक्षा के लिए सीख रहा हूं, मैंने थोड़ी देर के लिए गुगली की और यह प्रश्न पाया। और सवाल का यह हिस्सा भ्रामक है: "जिसमें प्रत्येक ब्लॉक में 8 32-बिट शब्द हैं"। एक शब्द 4 बाइट्स (या 32 बिट्स) है, इसलिए सवाल बस "होना चाहिए ... जिसमें प्रत्येक ब्लॉक में 8 शब्द हों"

इसका उत्तर है - प्रत्येक ब्लॉक 32 बाइट्स (8 शब्द) है, इसलिए हमें प्रत्येक ब्लॉक में बाइट निर्धारित करने के लिए 5 ऑफसेट बिट्स की आवश्यकता है - डायरेक्ट मैप्ड => सेट की संख्या = ब्लॉक की संख्या = 4096 => हमें 12 इंडेक्स बिट्स की आवश्यकता है जो निर्धारित करें

=> टैग बिट = 32 - 12 - 5 = 15

पूरी तरह से साहचर्य के लिए, सेट की संख्या 1 => कोई सूचकांक बिट => टैग बिट = 32 - 0 - 5 = 27 नहीं है


1

पूरी तरह से साहचर्य कैश में कोई इंडेक्स बिट्स नहीं हैं। सूचकांक बिट्स का उपयोग विशिष्ट रूप से पहचान करने के लिए किया जाता है कि ब्लॉक किसके अंतर्गत आता है। पूरी तरह से सहयोगी कैश में, सभी ब्लॉक अनिवार्य रूप से एक ही सेट का हिस्सा हैं।


-1

फुल एसोसिएट मैपिंग इंडेक्स में 0 b / s जैसा आप सेट करते हैं = 1 इसलिए इंडेक्स = बेस 1 में 1 का लॉग = 0 सेट ऑफसेट = बाइट बेस 2 के ब्लॉक आकार का लॉग होता है इसलिए 8 = 2 ^ 3 या 32 = 2 ^ का उपयोग करें 5 टैग = 32-0-5 = 27 प्रत्यक्ष सूचकांक के लिए = 2 ^ 12 = 12 ऑफसेट = 0 बिट टैग = 32-12-0 = 20


मुझे यह पढ़ना बहुत असंभव लगता है। कृपया, कुछ विराम चिह्नों का उपयोग करें।
डेविड रिचीर्बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.