تُعد سرعات الساعة “Frequencies” وعدد الأنوية “Core Number” من أكثر خصائص المعالجات المركزية لفتًا للأنظار بالنظر إلى الدور الذي يؤديانه في عملية تحليل البيانات وفك شفرات المعادلات الحسابية ومعالجة المنطق والبيانات الفيزيائية والذكاء الاصطناعي.
ولكن ماذا عن ذاكرة التخزين المؤقت “CPU Cache”، ولماذا تعاظمت أهميتها في السنوات الأخيرة بشكل أكبر من أي وقت مضى؟
ذاكرة التخزين المؤقت “CPU Cache”، أو كما نُسميها أحيانًا “الذاكرة المُخبّئة”، ليست نوعًا من شرائح الذاكرة العشوائية الرئيسية (الرامات)، وإنما هي ذاكرة مؤقتة فائقة السرعة موجودة بنفس قالب سيليكون المعالج المركزي نفسه.
صُممت ذاكرة التخزين المؤقت خصيصًا حتى لا يضطر المعالج المركزي إلى اللجوء باستمرار إلى الذاكرة العشوائية (الرامات) التي تستغرق وقتًا أطول في الامتثال للأوامر، مهما كانت سرعتها.
في المعالجات المركزية الحديثة، تُدشّن ذاكرة التخزين المؤقت “CPU Cache” في تسلسل هرمي مكوّن من ثلاث مستويات رئيسية: المستوى الأولى L1 Cache، المستوى الثاني L2 Cache، والمستوى الثالث L3 Cache. وحرف “L” هنا يشير إلى اختصار كلمة “Level” والتي تعني “مستوى”.
يُعد المستوى الثالث “L3 Cache” هو الأكبر بين المستويات الثلاث، ومن الخصائص الحيوية للمعالج، خاصةً في ألعاب الفيديو، حيث يسهم هذا المستوى في استقرار معدل الإطارات (FPS)، وهو الذي يحدد مصير ما إذا كان من الضروري لجوء المعالج المركزي إلى الذاكرة العشوائية الأبعد.
خلال العقد الماضي، ازدادت أهمية ذاكرة التخزين المؤقت في الألعاب التي تعتمد بشكل كبير على قوة المعالج المركزي، وتظهر قيمتها الحقيقية عندما يضطر المعالج للاعتماد على الذاكرة العشوائية في المشاهد التي تحتوي على مؤثرات بصرية معقدة وعالية الدقة، أو عند التنقل والعودة إلى نفس المنطقة التي كنا فيها بعالم اللعبة، أو عندما يُرهق المعالج ببيانات فيزيائية كثيفة أو ذكاء اصطناعي.
كيف تعمل ذاكرة التخزين المؤقت CPU Cache في تسلسلها الهرمي؟
ذاكرة التخزين المؤقت عبارة عن مستودع لتخزين أنواع معينة من نتائج العمليات الحسابية والمنطقية والفيزيائية التي قد انتهى المعالج المركزي من معالجتها بالفعل. إنها مجموعة من التعليمات التي يعتقد النظام أن المعالج سيحتاجها مرة أخرى لاحقًا، ونظرًا لأهميتها، يتم تخزينها في هذا المستودع، باعتباره المخزن الحيوي الأقرب إلى المعالج.
تجدر الإشارة إلى أن عملية تطوير مستويات ذاكرة التخزين المؤقت الثلاثة وعلاقتها بالأنوية هي عملية غير متماثلة، وتختلف باختلاف الطرازات والشركات المُصنّعة.
فعلى سبيل المثال، ذاكرة المستوى الأولى “L1 Cache” دائمًا ما تكون الأسرع والأصغر حجمًا والأقرب إلى جميع الأنوية، وتحتفظ بالبيانات التي يستخدمها النظام في الوقت الفعلي.
ذاكرة المستوى الثاني “L2 Cache” أبعد قليلًا، ويتم توزيعها على عدد قليل من النوى، وتحتفظ بالبيانات التي قد تحتاجها النواة في الدورات اللاحقة.
أما ذاكرة المستوى الثالث “L3 Cache” هي المخزن الرئيسي الذي يتيح لجميع الأنوية الوصول إليه من أجل حفظ أو استخدام البيانات الحديثة.
إذًا، لماذا نحتاج إلى الذاكرة العشوائية الأساسية؟ السبب بوضوح يرجع إلى التكلفة المرتفعة في عملية إنتاج ذاكرة التخزين المؤقت ودمجها بداخل المعالج المركزي. فهي عادةً بسعة تخزين محدودة جدًا تبلغ بضعة ميجابايت أو بضعة مئات من الميجابايت (في أفضل الأحوال)، بينما تسمح الذاكرة العشوائية الرئيسية (الرامات) بتخزين النتائج بسعة غير محدودة تقريبًا، وبالجيجابايت.
يلجأ المعالج المركزي إلى الذاكرة العشوائية عندما تمتلئ مساحة ذاكرة التخزين المؤقت “CPU Cache”، أو عندما تتأخر في إرسال التعليمات التي يحتاجها في هذا الوقت بالتحديد.
بالنسبة للمعالج، التبديل بين ذاكرة التخزين المؤقت والذاكرة العشوائية الأساسية لا يستغرق سوى بضع أجزاء من الثانية “nanosecond”، إلا أن هذه المدة الوجيزة تؤثر بشكل واضح على أداء النظام، وتتجلّى بشكل خاص في الألعاب.
لذلك، كلما ازدادت سعة التخزين المؤقت للمعالج، كلما قلت عدد المرات التي سيحتاج فيها المعالج المركزي طلب التعليمات من الذاكرة العشوائية. الفكرة تكمن في منع المعالج المركزي من انتظار تسليم البيانات بواسطة الذاكرة العشوائية التي تستغرق وقتًا أطول في التنفيذ.
لماذا ازدادت أهمية المستوى الثالث بالتحديد في الألعاب؟
المستوى الثالث من ذاكرة التخزين المؤقت هو المعيار الذي يُحدد أداء اللعبة، حيث تعتمد ألعاب العالم المفتوح والخرائط الضخمة والألعاب متعددة اللاعبين وألعاب المحاكاة على أداء المعالج المركزي بالمقام الأول. لذا، فهي تستفيد بشكل كبير من موارد المعالج، ولا سيما ذاكرة التخزين المؤقت التي تحتفظ بالبيانات الحديثة لاستخدامها في أي وقت.
بمعنى آخر، عندما يكون المستوى الثالث “L3 Cache” من التخزين المؤقت جاهز لتسليم التعليمات، يكون المعالج أيضًأ جاهز في نفس اللحظة. لكن إذا لم تكن الذاكرة المؤقتة جاهزة، سيضطر المعالج لانتظار التسليم من الذاكرة العشوائية.
ظهرت أهمية هذه الذاكرة بشكل كبير في معالجات Ryzen X3D التي تحتوي على ذاكرة تخزين مؤقت ثلاثية الأبعاد V-Cache.
في معالجات AMD من هذا النوع، يتم تكديس ذاكرة التخزين المؤقت من المستوى الثالث عموديًا (ليس أفقيًا كالمعتاد) على شريحة المعالج، مما يضمن مضاعفة سرعة تسليم البيانات بمقدار ثلاث مرات (على الأقل من الناحية النظرية).
من الناحية العملية، تُعزز هذه التقنية من تنفيذ التعليمات بسرعة أكبر، وتنعكس بشكل بوضوح على الأداء، لتوفر عدد إطارات أكبر بنسبة تتراوح من 10% إلى 20%، وأحيانًا أكثر، خاصةً في الألعاب التي تعمل بدقة 1080p.
في الماضي، لم تكن ذاكرة التخزين المؤقت بنفس القدر من الأهمية كما هي الآن، وقد راهنت شركة AMD على تقنية التخزين المؤقت ثلاثية الأبعاد في معالجاتها لتحسين تجربة اللعب، الأمر الذي أثمر بالفعل عن نتائج واعدة مع معالجات X3D ومنحها الريادة في سوق الألعاب.
