اگر آپ ابھی یہ جاننے کے لئے شروع کر رہے ہیں کہ ملٹی کور سی پی یو ، کیچنگ ، کیشے ہم آہنگی ، اور میموری کس طرح کام کرتی ہے تو ، یہ پہلے تھوڑا سا الجھا ہوا معلوم ہوسکتا ہے۔ اس بات کو ذہن میں رکھتے ہوئے ، آج کی سپر صارف سوال و جوابی پوسٹ میں ایک متجسس قاری کے سوال کے جوابات ہیں۔
آج کا سوال وجواب کا سیشن ہمارے پاس سوپر یوزر کے بشکریہ ہے St اسٹیک ایکسچینج کی ایک ذیلی تقسیم ، سوال و جواب کی ویب سائٹوں کی کمیونٹی سے چلنے والی گروپ بندی۔
سوال
سپر یوزر ریڈر کارمیلوس یہ جاننا چاہتا ہے کہ جب سی پی یو کا کیشہ واپس مرکزی میموری پر چلا گیا:
اگر میرے پاس سی پی یو ہے جس میں دو کور ہیں اور ہر کور کا اپنا L1 کیشے ہے ، تو کیا یہ ممکن ہے کہ کور 1 اور کور 2 ایک ہی وقت میں میموری کے ایک ہی حصے کو کیچ کریں؟ اگر یہ ممکن ہے تو ، اگر کور 1 اور کور 2 نے کیشے میں اپنی اقدار میں ترمیم کی ہو تو مرکزی میموری کی قیمت کیا ہوگی؟
سی پی یو کا کیشہ واپس مین میموری میں کب آتا ہے؟
جواب
ہمارے پاس سپر یوزر کے شراکت دار ڈیوڈ شوارٹز ، سلیسکے ، اور کمبرلی ڈبلیو کے پاس جواب ہے۔ پہلے ، ڈیوڈ شوارٹز:
اگر میرے پاس سی پی یو ہے جس میں دو کور ہیں اور ہر کور کا اپنا L1 کیشے ہے ، تو کیا یہ ممکن ہے کہ کور 1 اور کور 2 ایک ہی وقت میں میموری کے ایک ہی حصے کو کیچ کریں؟
ہاں ، اگر کارکردگی ایسی نہ ہوتی تو کارکردگی خوفناک ہوگی۔ ایک ہی کوڈ کو چلانے والے دو تھریڈز پر غور کریں۔ آپ یہ کوڈ دونوں L1 کیشوں میں چاہتے ہیں۔
اگر یہ ممکن ہے تو ، اگر کور 1 اور کور 2 نے کیشے میں اپنی اقدار میں ترمیم کی ہو تو مرکزی میموری کی قیمت کیا ہوگی؟
پرانی قدر اہم میموری میں ہوگی ، اس سے کوئی فرق نہیں پڑے گا کیونکہ دونوں ہی اسے نہیں پڑھیں گے۔ کیشے سے نظر ثانی شدہ قیمت کو نکالنے سے پہلے ، اسے میموری پر لکھنا ضروری ہے۔ عام طور پر ، کے کچھ مختلف حالتوں میں MESI پروٹوکول استعمال کیا جاتا ہے. MESI کے روایتی نفاذ میں ، اگر کسی کیچ میں قدر میں ترمیم کی جائے تو ، وہ اسی سطح پر کسی بھی دوسرے کیشے میں بالکل بھی موجود نہیں ہوسکتی ہے۔
سلیسکے کے جواب کے بعد:
ہاں ، ایک ہی میموری والے خطے میں دو کیشے رکھنے سے ہوسکتا ہے اور در حقیقت یہ ایک مسئلہ ہے جو عملی طور پر بہت ہوتا ہے۔ مختلف حل ہیں ، مثال کے طور پر:
- دونوں کیچز بات چیت کر سکتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ وہ متفق نہیں ہیں
- آپ کے پاس کسی طرح کا سپروائزر ہوسکتا ہے جو تمام کیچز پر نظر رکھتا ہے اور اسی کے مطابق ان کو اپ ڈیٹ کرتا ہے
- ہر پروسیسر میموری کے ان علاقوں پر نگاہ رکھتا ہے جس میں اس نے کیش کیا ہے ، اور جب اسے کسی تحریر کا پتہ لگاتا ہے تو وہ اپنی (اب غلط) کیچ نکال دیتا ہے
اس مسئلے کو کیشے ہم آہنگی اور کہا جاتا ہے ویکیپیڈیا آرٹیکل موضوع پر مسئلہ اور ممکنہ حل کا ایک عمدہ جائزہ ہے۔
اور کمبرلی ڈبلیو کا ہمارا آخری جواب:
اپنی پوسٹ کے عنوان میں سوال کے جواب کے ل it ، یہ اس بات پر منحصر ہے کہ کیشنگ پروٹوکول کیا ہے۔ اگر یہ تحریری طور پر ہے تو ، کیشے صرف تب ہی دوبارہ مرکزی میموری پر آ جائیں گے جب کیشے کنٹرولر کے پاس پہلے سے ہی مقبوضہ جگہ میں نیا کیشے بلاک ڈالنے کے سوا کوئی چارہ نہیں ہوتا ہے۔ اس بلاک کو جس نے پہلے جگہ پر قبضہ کیا تھا اسے ہٹا دیا جاتا ہے اور اس کی قیمت کو مرکزی میموری پر لکھا جاتا ہے۔
دوسرا پروٹوکول لکھنا ہے۔ اس صورت میں ، کسی بھی وقت کیشے کا بلاک سطح پر لکھا جاتا ہے n ، سطح پر اسی بلاک n + 1 اپ ڈیٹ ہے۔ یہ نیچے کاربن کاغذ کے ساتھ ایک فارم کو بھرنے کے تصور میں بھی ایسا ہی ہے۔ جو بھی آپ اوپر لکھتے ہیں وہ نیچے کی شیٹ پر کاپی کیا جاتا ہے۔ یہ سست ہے کیونکہ اس میں واضح طور پر زیادہ تحریری عمل شامل ہے ، لیکن کیچوں کے درمیان قدریں زیادہ مستقل ہیں۔ رائٹ بیک اسکیم میں ، کسی خاص میموری میموری کے ل only صرف اعلی سطحی کیشے میں سب سے زیادہ تازہ ترین قیمت ہوگی۔
وضاحت میں شامل کرنے کے لئے کچھ ہے؟ تبصرے میں آواز بند. ٹیک سیکھنے والے اسٹیک ایکسچینج کے دوسرے صارفین سے مزید جوابات پڑھنا چاہتے ہیں؟ یہاں مکمل گفتگو کے دھاگے کو چیک کریں .
تصویری کریڈٹ: لیمسیپمیٹ (فلکر)