উত্তর:
আমার কাছে দুটি কোর সহ একটি সিপিইউ রয়েছে, প্রতিটি কোরের নিজস্ব এল 1 ক্যাশে রয়েছে, এটি কি সম্ভব যে কোর 1 এবং কোর 2 একই সাথে মেমরির একই অংশকে ক্যাশে করবে?
হ্যাঁ. পারফরম্যান্স ভয়ানক হবে যদি এটি না হয়। একই কোড চলমান দুটি থ্রেড বিবেচনা করুন। আপনি উভয় এল 1 ক্যাশে সেই কোডটি চান।
যদি এটি সম্ভব হয় তবে কোর 1 এবং কোর 2 উভয়ই ক্যাশে তাদের মান সম্পাদনা করলে মূল স্মৃতিটির মান কত হবে?
পুরানো মানটি মূল স্মৃতিতে থাকবে, এটি সিপিইউ উভয়ই পড়বে না বলে কিছু যায় আসে না। ক্যাশে থেকে কোনও পরিবর্তিত মান বের করার আগে এটি অবশ্যই মেমোরিতে লেখা উচিত। সাধারণত এমইএসআই প্রোটোকলের কিছু বৈকল্পিক ব্যবহৃত হয়। এমইএসআই-র implementationতিহ্যবাহী বাস্তবায়নে, যদি একটি মানকে একটি ক্যাশে সংশোধন করা হয়, তবে একই স্তরের অন্য কোনও ক্যাশে এটি মোটেও উপস্থিত হতে পারে না।
হ্যাঁ, এটির (একই মেমরি অঞ্চলে দুটি ক্যাশে থাকা ক্যাশে থাকা) ঘটতে পারে, বাস্তবে এটি এমন একটি সমস্যা যা বাস্তবে প্রচুর ঘটে। বিভিন্ন সমাধান রয়েছে, উদাহরণস্বরূপ:
সমস্যাটিকে বলা হয় ক্যাশে সংহতি । বিষয়ে Wikipedia নিবন্ধটি সমস্যা ও সম্ভাব্য সমাধান একটি চমৎকার ওভারভিউ হয়েছে।
আপনার শিরোনামে প্রশ্নের উত্তর দেওয়ার জন্য, এটি ক্যাশিং প্রোটোকল কী তার উপর নির্ভর করে। যদি এটি রাইট-ব্যাক হয় তবে ক্যাশেটি কেবল তখনই মূল স্মৃতিতে ফিরে যাবে যখন ক্যাশে নিয়ন্ত্রণকারীটির ইতিমধ্যে দখলকৃত জায়গায় নতুন ক্যাশে ব্লক স্থাপনের বিকল্প নেই। পূর্বে স্থানটি দখল করা ব্লকটি মুছে ফেলা হবে এবং এর মানটি মূল স্মৃতিতে ফিরে লেখা হবে।
অন্য প্রোটোকলটি লেখার মাধ্যমে রয়েছে। সেক্ষেত্রে যে কোনও সময় স্তর স্তর এন-তে ক্যাশে ব্লকটি লেখা হয়, স্তরটিকে সংশ্লিষ্ট ব্লকটি (এন + 1) আপডেট করা হয়। (এটি নীচে কার্বন পেপার সহ আমাদের ফর্মটি পূরণ করার মত ধারণার মত; এটি আপনি যা লিখবেন তা নীচের শীটে অনুলিপি করা হয়েছে)) এটি ধীর কারণ এটি স্পষ্টতই আরও লেখার ক্রিয়াকলাপের সাথে জড়িত, তবে ক্যাশেগুলির মধ্যে মানগুলি আরও সামঞ্জস্যপূর্ণ। লিখন-ব্যাক স্কিমে, কেবলমাত্র সর্বোচ্চ স্তরের ক্যাশে নির্দিষ্ট মেমোরি ব্লকের সর্বাধিক আপ-টু-ডেট মান থাকতে পারে।