আসুন উদাহরণের সাহায্যে এটি দেখুন। মনে করুন আমাদের কাছে সরাসরি ম্যাপযুক্ত ক্যাশে রয়েছে এবং লিখন ব্যাক নীতি ব্যবহৃত হয়েছে। সুতরাং আমাদের ক্যাশে লাইনে একটি বৈধ বিট, একটি নোংরা বিট, একটি ট্যাগ এবং একটি ডেটা ফিল্ড রয়েছে। মনে করুন আমাদের একটি অপারেশন রয়েছে: A লিখুন (যেখানে ক্যাশের প্রথম লাইনে A ম্যাপ করা আছে)।
যা ঘটে তা হ'ল প্রসেসরের ডেটা (এ) ক্যাশের প্রথম লাইনে লেখা হয়। বৈধ বিট এবং ট্যাগ বিট সেট করা আছে। নোংরা বিট সেট করা আছে 1।
নোংরা বিটটি কেবল ইঙ্গিত করে যে ক্যাশে লাইনটি সর্বশেষে ক্যাশে আনার পরে লেখা হয়েছিল!
এখন ধরা যাক অন্য অপারেশন হয়েছে: ই পড়ুন (যেখানে ই প্রথম প্রথম ক্যাশে লাইনে ম্যাপ করা হয়েছে)
যেহেতু আমাদের সরাসরি ম্যাপযুক্ত ক্যাশে রয়েছে, তাই প্রথম লাইনটি সহজভাবে E ব্লক দ্বারা প্রতিস্থাপন করা যেতে পারে যা মেমরি থেকে আনা হবে। তবে যেহেতু সর্বশেষ লাইনে (ব্লক এ) লিখিত ব্লকটি এখনও মেমরিতে লিখিত হয়নি (নোংরা বিট দ্বারা নির্দেশিত), তাই ক্যাশে নিয়ন্ত্রক প্রথমে মেমোরিটিতে একটি ব্লক এ মেমোরিতে স্থানান্তর করার জন্য একটি লিখিত জারি করবে , তারপরে এটি মেমরিটিতে একটি রিড অপারেশন জারি করে ব্লক E এর সাথে রেখাটি প্রতিস্থাপন করবে। নোংরা বিট এখন 0 তে সেট করা হয়েছে।
সুতরাং লিখিত ব্যাক পলিসি গ্যারান্টি দেয় না যে মেমরি এবং তার সাথে সম্পর্কিত ক্যাশে লাইনে ব্লকটি একই হবে। তবে যখনই লাইনটি প্রতিস্থাপন করতে চলেছে, প্রথমে একটি লেখার ব্যাক সঞ্চালিত হবে।
নীতি মাধ্যমে একটি লিখন ঠিক বিপরীত। এটি অনুসারে, স্মৃতিটিতে সর্বদা একটি আপ-টু-ডেট ডেটা থাকবে। অর্থাৎ ক্যাশে ব্লকটি লেখা থাকলে মেমরিটিও সেই অনুযায়ী লেখা হবে। (নোংরা বিটের কোনও ব্যবহার নেই)
write back
চেয়ে ভাল পারফরম্যান্স হয়েছে?