2009-06-17 26 views
10

क्या सीपीयू कैश सामग्री को पढ़ने का कोई तरीका है? आर्किटेक्चर एआरएम के लिए है।सीपीयू कैश सामग्री पढ़ें

मैं पते की एक श्रृंखला को अमान्य कर रहा हूं और फिर यह सुनिश्चित करना चाहता हूं कि यह अमान्य है या नहीं। हालांकि मैं अमान्यता को अमान्य और जांच किए बिना पते की सीमा को पढ़ और लिख सकता हूं, लेकिन मैं जानना चाहता हूं कि कैश सामग्री

धन्यवाद !!

उत्तर

8

एआरएम 9 कैश हेरफेर और टेस्ट रजिस्ट्रार प्रदान करता है जो आपको कैश की स्थिति की जांच करने की अनुमति देता है।यहाँ एक उचित शुरुआती बिंदु है:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0151c/Chdcfejb.html

ICache और DCache एमसीआर और एमआरसी निर्देशों का उपयोग कर CP15 पंजीकृत करता है 7 और 9, एआरएम v4T प्रोग्रामर के मॉडल के आधार पर परिभाषित करने के लिए रखा जाता है। सीपी 15 रजिस्टर 15 में एमसीआर और एमआरसी का उपयोग करके अतिरिक्त परिचालन उपलब्ध हैं। इन परिचालनों को पूरी तरह से सॉफ्टवेयर में कैश के परीक्षण को सक्षम करने के लिए रजिस्टरों 7 और 9 का उपयोग करने वालों के साथ जोड़ा जाता है।

ये विशेषाधिकार प्राप्त निर्देश हैं ताकि वे आपके लक्षित प्लेटफ़ॉर्म पर पहुंच योग्य न हों।

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

2

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

विकल्प एचडब्ल्यू अवलोकन मॉड्यूल और सिस्टम बस पर स्नीफ का उपयोग करना है, जो कैश को रैम से जोड़ता है। यदि डेटा के लिए अनुरोध बस पर दिखाई देगा, तो अनुरोध किया गया डेटा कैश में नहीं था।

उम्मीद है कि गहरे एचडब्ल्यू ज्ञान वाले किसी व्यक्ति को प्रकाश डाला जाएगा।

सीपीयू कैशिंग पर चर्चा विकिपीडिया पर एक प्रविष्टि है: http://en.wikipedia.org/wiki/CPU_cache

0

रूप this thread में कहा गया है, बस सीपीयू का उपयोग कर कैश की सामग्री का कारण बदलने के लिए कर सकते हैं। चूंकि (अधिकांश) कैश कार्यान्वयन सीपीयू के लिए जानबूझकर पूरी तरह से पारदर्शी हैं, आप पारंपरिक सीपीयू पर चल रहे सॉफ्टवेयर के भीतर सीधे कैश की सामग्री को देखने में सक्षम नहीं होंगे।

ऐसा कुछ करने के लिए या तो कैश-जागरूक CPU (कैश को नियंत्रित करने के लिए विशेष निर्देशों के साथ) की आवश्यकता होगी; मुझे पता नहीं है कि ये वास्तव में मौजूद हैं या नहीं, या आपको कैश देखने के लिए एक अलग एचडब्ल्यू मॉड्यूल स्थापित करने की आवश्यकता होगी ।

  1. एक अतिरिक्त नियंत्रण सुविधाओं की है और सिस्टम बस से जोड़ा जा सकता डेटा पढ़ने के लिए उस के साथ अपने मूल कैश नियंत्रक बदलें: यहां 2 विचारों मुझे लगता है कि के लिए कर रहे हैं। यह नियंत्रक सीपीयू और कैश के बीच "बैठता है"।

  2. केवल कैश पहुंच के साथ मूल कैश के साथ समानांतर में एक माध्यमिक मॉड्यूल रखें। एक विशेष इंटरप्ट लाइन (या समान हार्डवेयर-एनओटी-सॉफ्टवेयर सिग्नल) का उपयोग करके, सीपीयू तब इस मॉड्यूल की मेमोरी में कैश का डंप ट्रिगर कर सकता है, और उसके बाद इसे बाद में (बस पर) पढ़ा जा सकता है। यह नियंत्रक आपके कैश के संचालन को प्रभावित नहीं करेगा; यह आपको किसी भी समय स्नैपशॉट लेने की अनुमति देगा।

1

परिभाषा के अनुसार, कैश सामग्री को पढ़ने के लिए आपको केवल कैश सामग्री को लोड करने के लिए मेमोरी स्थान को लोड करना होगा। यदि कैश ठीक तरह से काम कर रहा है, तो यह सामग्री को कैश से निकाल देगा।

हालांकि, यदि आप आई-कैश की सामग्री को पढ़ने की कोशिश कर रहे हैं, तो यह आर्किटेक्चररी रूप से निर्भर है। इसके अलावा, आपके पास विचार करने के लिए दौड़ की स्थिति होगी। कैश सामग्री पढ़ने के लिए निर्देश अनजाने में कैश सामग्री को ओवर-राइट कर सकता है।

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