
كانت الفجوة بين سرعة المعالجات بالمعنى العام وسرعة DRAM الرئيسي ، بالمعنى العام أيضًا ، مشكلة في الثلاثين عامًا الماضية - خلال هذه الفترة بدأت الفجوة تنمو فعليًا. وتجدر الإشارة بصراحة إلى أن المهندسين الذين طوروا كل من المعدات والبرامج التي أوجدت التسلسل الهرمي للتخزين المؤقت والبرامج التي يمكن أن تستفيد منها قد حققوا ببراعة. هذه هي واحدة من أصعب البنى التي تصورها الإنسان على الإطلاق.
ومع ذلك ، نحن الآن على وشك التسلسل الهرمي المتسع باستمرار للذاكرة ، عندما تبدأ الذاكرة غير المتطايرة مثل Optane 3D XPoint (متغير من الذاكرة مع تغيير الطور) في تنسيقات DIMM و SSD ، وكذلك البروتوكولات الجديدة (CXL ، OpenCAPI ، CCIX ، NVLink و Gen-Z) ، السؤال الذي يطرح نفسه: هل حان الوقت لإضافة ذاكرة التخزين المؤقت من المستوى الرابع إلى الخوادم؟ نظرًا لأن عمل مثل هذا العدد من الأجهزة يعتمد على مجمع وحدة المعالجة المركزية - بعضها أقرب ، في حين أن البعض الآخر بعيد - فمن المنطقي أن نفكر فيما إذا كنا بحاجة إلى مستوى ذاكرة تخزين مؤقت آخر يخفي تأخر هذه الأنواع الأخرى من الذاكرة ويزيد من إنتاجية النظام بأكمله.
لتقديم الفرص ، بحثنا في ذاكرتنا الخاصة ، وفي الوقت نفسه تحدثنا مع مطوري هندسة الرقائق من IBM و Intel و AMD و Marvell لفهم رأيهم في استخدام ذاكرة التخزين المؤقت L4 في الخوادم. ذاكرة التخزين المؤقت L4 ، بالطبع ، ليست كلمة جديدة في السرعة ، ولكنها ليست شائعة جدًا في بنيات النظام.
ومع ذلك ، قبل أن نذهب إلى تاريخ القضية.
كانت إضافة ذاكرة التخزين المؤقت من المستوى الأول إلى المعالجات التي تحتوي على نواة واحدة فقط في ذلك الوقت بمثابة حل وسط في الثمانينيات من القرن الماضي أضاف الكمون إلى الأنظمة الفرعية للذاكرة مع تقليل متوسط زمن الاستجابة لطلبات البيانات والتعليمات من المعالجات. توجد أصلاً ذاكرة التخزين المؤقت L1 في SRAM الخارجية الموجودة على اللوحات الأم ومتصلة بمجمع ذاكرة وحدة المعالجة المركزية. كانت ذاكرة التخزين المؤقت L1 هذه قريبة جدًا من المعالج ، سواء من حيث تردد الساعة أو من حيث المساحة الفعلية على اللوحة ، وجعلت من الممكن زيادة تحميل وحدة المعالجة المركزية. ثم تم تقسيم هذه ذاكرات التخزين المؤقت بحيث يمكن تخزين البيانات المستخدمة بشكل متكرر في كتلة واحدة ، وتعليمات شائعة في المجموعة الثانية ، وهذا زيادة في الأداء قليلاً. في مرحلة ما من الزيادة في سرعة ساعة المعالج والفجوة المقابلة في سرعة وحدة المعالجة المركزية و DRAM ، تمت إضافة المزيد من الدهون ، ولكن أيضًا ذاكرة التخزين المؤقت L2 الأبطأ (ولكن أرخص من حيث النطاق الترددي) ، مرة أخرى في البداية كانوا خارج حالة وحدة المعالجة المركزية ، ولكن ثم دمجها فيه. وعندما بدأت إضافة المزيد من النوى إلى وحدة المعالجة المركزية ، بالإضافة إلى المزيد والمزيد من وحدات التحكم DRAM لتحميلها ، تمت إضافة كتل ذاكرة التخزين المؤقت L3 الأكبر إلى التسلسل الهرمي.
بالنسبة للجزء الأكبر ، مثل هذا النظام يعمل بشكل جيد للغاية. في بعض دوائر وحدة المعالجة المركزية ، نرى حتى بعض القواعد العملية التي تعكس مستويات التسلسل الهرمي للتخزين المؤقت ، والتي سوف تتيح لنا تقدير الاحتمالات المرتبطة بالمستوى الرابع.
يوضح كريس جيانوس ، وهو مهندس رقائق ومهندس في شركة Intel الذي قاد عملية تطوير العديد من الأجيال السابقة من معالجات Xeon ، ما يلي: "مع كل مستوى من ذاكرة التخزين المؤقت ، نحتاج عادةً إلى النمو بقوة كافية من المستوى السابق لجعل كل هذا جديراً بالاهتمام ، لأن لتحقيق زيادة ملحوظة في أداء النظام ، تحتاج إلى تحقيق تكرار مثير للاهتمام للمكالمات الناجحة. في حالة "الوقوع" في البيانات المخزنة مؤقتًا في عدد قليل فقط من الحالات ، سيكون من الصعب ملاحظة ذلك. كل شيء آخر يبطئ سرعتك ، وهذه الزيادة ستكون غير محسوسة. لذلك ، هناك حاجة إلى مخابئ كبيرة نسبيًا ، وعندما يتعلق الأمر بالمستويات الأعلى ، هناك حاجة إلى مخابئ ضخمة بالفعل. اليوم ، يتم قياس L2 بالميغابايت ، ويتم قياس L3 بعشرات أو مئات الميغابايت. لذلك فمن الواضح أنك إذا بدأت التفكير في ذاكرة التخزين المؤقت L4 ، فسنتحدث عن مئات ميغابايت ، إن لم يكن غيغا بايت. وهذا الحجم سيؤدي بالتأكيد إلى ارتفاع تكلفتها. من الضروري وجود شروط معينة ، حتى يصبح هذا الخيار مثيراً للاهتمام ، وبالتأكيد لن يكون رخيصًا. "
تمنى مهندسو AMD الذين قابلناهم عدم الكشف عن هويتهم لأنهم لم يرغبوا في إعطاء الانطباع بأن الشركة ستضيف ذاكرة التخزين المؤقت L4 إلى خط معالج Epyc - وعلى وجه الدقة ، فإن AMD لم تعد بشيء من هذا القبيل. ومع ذلك ، تدرك الشركة مع ذلك أن هذه هي الخطوة الواضحة التالية التي يجب مراعاتها ، ومثل Intel ، تعتقد أن جميع المهندسين يفكرون في تنفيذ ذاكرة التخزين المؤقت L4. في جوهرها ، تقول AMD إن المفاضلات المرتبطة بمستويات ذاكرة التخزين المؤقت والكمون قد تمت دراستها على نطاق واسع في كل من الصناعة والأوساط الأكاديمية ، وأنه مع كل مستوى جديد أكبر وأبطأ من المستوى السابق ، هناك مفاضلة في زيادة المسار العام إلى DRAM. يشار إلى ذلك أيضًا بواسطة Intel Gianos ، حيث يتحدث عن الحاجة إلى إيجاد توازن بين طلبات ذاكرة التخزين المؤقت الناجحة وحجمها.
بطبيعة الحال ، أضافت IBM ، ذاكرة التخزين المؤقت L4 إلى بعض شرائح X86 الخاصة بها في عام 2000 ، وفي عام 2010 أضافت L4 إلى شرائح NUMA (
وصول غير متساوٍ للذاكرة ) على الأنظمة الرئيسية لنظام z11. يحتوي المعالج z11 على أربعة مراكز ، وذاكرة تخزين مؤقت سعة 64 كيلوبايت L1 للحصول على الإرشادات وذاكرة تخزين مؤقت بسعة 128 كيلوبايت L1 للبيانات ، بالإضافة إلى ذاكرة تخزين مؤقت بسعة 1.5 ميجابايت لكل 2 وذاكرة تخزين مؤقت مشتركة بسعة 24 ميجابايت لكل المراكز. تحتوي مجموعة شرائح NUMA الخاصة بـ z10 على بنكين بسعة 96 ميجابايت L4 ، أي إجمالي 192 ميغابايت. من خلال تحرير z12 ، خفضت IBM حجم ذاكرة التخزين المؤقت L1 إلى 98 كيلوبايت لكل نواة ، لكنها زادت ذاكرة التخزين المؤقت L2 إلى 2 ميغابايت لكل قلب ، وقسمتها إلى قسمين ، للحصول على الإرشادات والبيانات ، كما في حالة L1. كما ضاعفت حجم ذاكرة التخزين المؤقت L3 إلى 48 ميجابايت لستة مراكز ، وتم زيادة حجم ذاكرة التخزين المؤقت L4 إلى 384 ميغابايت لزوج من الشرائح في مجموعة الشرائح. مع تغير أجيال من معالجات System z ، نمت أحجام ذاكرة التخزين المؤقت ، وبالنسبة لمعالجات z15 التي تم الإعلان عنها في شهر سبتمبر ، سيزن زوجان من ذاكرات التخزين المؤقت L1 128 كيلوبايت لكل منهما ، وسيزن زوجان من ذاكرات التخزين المؤقت L2 4 ميجابايت لكل منهما ، وستبلغ سعة ذاكرة التخزين المؤقت L3 المشتركة لـ 256 مركزًا 256 ميجابايت. تبلغ ذاكرة التخزين المؤقت L4 في كل حاوية المركزية 960 ميجابايت ، ويبلغ إجمالي حجمها للنظام بأكمله ، والذي يتكون من خمسة خلجان ، 4.68 جيجابايت.
كما أشرنا
سابقًا ، تحتوي معالجات Power8 و Power9 على ذاكرة مؤقتة ، وأضيفت شركة IBM ذاكرة تخزين مؤقت سعة 16 ميجابايت إلى كل ذاكرة مؤقتة من نوع Centaur ، وهي ذاكرة تخزين مؤقت تبلغ 128 ميجابايت L4 لكل مأخذ توصيل لـ 32 فتحة ذاكرة. لا تملك أجهزة Power9 الأرخص مخزن مؤقت للذاكرة ، وبالتالي لا توجد ذاكرة تخزين مؤقت L4. كان المهندسون المعماريون الذين طوروا دارة Power10 منشغلين في تطوير دارة Power11 ، وبالتالي لم يتمكنوا من الإجابة على أسئلتنا ، لكن ويليام ستارك ، الذي أدار تطوير Power10 ، وجد القليل من الوقت بالنسبة لنا ، ولاحظوا ما يلي:
"بشكل عام ، توصلنا إلى استنتاج مفاده أن المخابئ الكبيرة المستوى من المستوى الأخير مفيدة لزيادة سرعة النظم الصناعية" ، أوضح لنا ستارك عبر البريد الإلكتروني. "الكمون العالي المرتبط بالذاكرة غير المتطايرة ، وخاصة مع ذاكرة حالة الطور ، يولد طلب ذاكرة التخزين المؤقت - ربما ذاكرة تخزين مؤقت من النوع L4 - في التسلسل الهرمي للتخزين."
هذا هو بالضبط ما كنا نظن. وبالمناسبة ، نحن لا ندعي أن ذاكرة التخزين المؤقت L4 ستكون بالضرورة قريبة من الذاكرة المخزنة للمستقبل DDR5 DIMM. ربما من الأفضل وضعها بين ذاكرة التخزين المؤقت PCI-Express و L3 المعالج ، وحتى الأفضل ، في المخازن المؤقتة للذاكرة وبين PCI-Express وذاكرة التخزين المؤقت للمعالج L3. ربما يتعين وضعها على أعلى وحدة تحكم الإدخال / الإخراج والذاكرة في بنية الخادم المستقبلية ، والتي تشبه
إلى حد ما تقنية Foveros من Intel .
من الممكن النظر إلى هذا من وجهة نظر مختلفة - على سبيل المثال ، أتيحت لـ IBM الفرصة لتغيير حجم البلورة ، وقرر المهندسون إضافة ذاكرة التخزين المؤقت L4 إلى ناقل النظام z NUMA أو إلى شريحة التخزين المؤقت للذاكرة Power8 و Power9 ، وليس من أجل مصلحتها الخاصة ، ولكن ببساطة بسبب لا يزال لديهم الفرصة لإضافة الترانزستورات بعد تنفيذ جميع الوظائف اللازمة. في بعض الأحيان ، يبدو لنا أن عدد النوى في معالجات Intel X86 يعتمد على حجم ذاكرة التخزين المؤقت L3 التي يمكنهم تحملها. يبدو أحيانًا أن Intel تقوم بتعيين الحد الأقصى لحجم ذاكرة التخزين المؤقت L3 إلى بلورة واحدة ، وبعد ذلك تصنع بلورات Xeon بثلاثة أحجام مختلفة وفقًا لهذه المواصفات - في الأجيال الأخيرة ، يكون لديها 10 أو 18 أو 28 قلبًا في عملية تصنيع 14 نانومتر.
كل هذه ، بالطبع ، هي قضايا أكاديمية بحتة ، لكنها توفر لنا الدافع المحتمل لشركة IBM وغيرها من الشركات المصنعة للشرائح لإضافة ذاكرة التخزين المؤقت L4. لا يمكن أن يساعد هذا فقط في بعض الحالات ، إنه مجرد شيء واضح للغاية. نعتقد أنه على وحش الإدخال / الإخراج مثل النظام الرئيسي System z ، توجد ذاكرة التخزين المؤقت L4 في مكانها دون أي أسئلة وتفيد جميع العملاء من خلال زيادة إنتاجية هذه الأجهزة والسماح لهم بالعمل عند تحميل المعالج بنسبة 98 إلى 99٪ ، نظرًا لعدد المراكز الرئيسية ، وحجم NUMA في أجهزة الكمبيوتر المركزية نمت كثيرا في الآونة الأخيرة.
لا يوجد سبب لجعل ذاكرة التخزين المؤقت L4 حصريًا على DRAM المضمّن (كما تفعل IBM بشرائحها) أو على أساس SRAM أغلى ثمناً - هذا ما يذكره رابين سوجومار ، مهندس الرقائق من Cray Research و Sun Microsystems و Oracle و Broadcom و Cavium و Marvell:
يقول Sugumar: "لدينا مخابئ L3 كبيرة بالفعل بما فيه الكفاية". - لذا ، في حالة اهتمامك بـ L4 ، يجب القيام به باستخدام تقنية مختلفة. ربما eDRAM أو حتى HBM أو DRAM. في هذا السياق ، يبدو تطبيق ذاكرة التخزين المؤقت L4 المستندة إلى HBM خيارًا مثيرًا للاهتمام ، ولا تحل ذاكرة التخزين المؤقت هذه مشكلة الكمون بقدر عرض النطاق الترددي. نظرًا لأن سعة HBM محدودة وعرض النطاق الترددي مرتفع ، فيمكننا الحصول على زيادة معينة في السرعة - وفي بعض الحالات الخاصة نرى زيادة كبيرة في عرض النطاق الترددي. " يضيف Sugumar أنه بالنسبة لعدد كبير إلى حد ما من التطبيقات ، يتم ملاحظة عدد كبير نسبيًا من أخطاء التخزين المؤقت. ومع ذلك ، تحتاج إلى حساب ما إذا كان إضافة مستوى ذاكرة التخزين المؤقت التالي يستحق ذلك.
يقول سوجومار ، إن هناك حالة استخدام أخرى محتملة لشيء مثل ذاكرة التخزين المؤقت L4 ، وهي استخدام DRAM المحلي كذاكرة تخزين مؤقت. "نحن لا نجري أي دراسات من هذا القبيل في المختبر ، ولكن لنفترض أن لدينا واجهة النطاق الترددي العالي على الرقاقة ، متصلة بذاكرة مشتركة في مكان ما على الطرف الآخر من الحلقة ، على مسافة 500 n إلى 1 1s. ثم ستكون إحدى حالات الاستخدام هي إنشاء ذاكرة تخزين مؤقتة تنقل هذه البيانات من الذاكرة المشتركة إلى DRAM المحلي. يمكنك أن تتخيل عمل جهاز الحالة الذي يدير هذه الذاكرة ، لذلك في معظم الأوقات ستذهب المكالمات إلى DRAM المحلي ، ويمكنك تقليل عدد المكالمات إلى DRAM الموزع بشكل عام. "
هذا الخيار يبدو لنا نوعًا مثيرًا للاهتمام من NUMA. بالمناسبة ، كانت Sugumar تعمل على توزيع الذاكرة لأنظمة متوازية عالية السرعة في Sun Microsystems حتى قبل ظهور ذاكرة غير متطايرة. وكانت إحدى المشكلات المتعلقة بهذه المتغيرات المختلفة من التسلسل الهرمي للذاكرة هي أنه في حالة فقد أحد هذه الأجهزة بسبب عطل في الشبكة أو الحافلة ، فسوف يتعطل الجهاز بالكامل. "في أنظمة الذاكرة الموزعة ، يجب معالجة فشل الشبكات بشكل أكثر أناقة ، وهذا يتسبب في الكثير من تحديات التصميم."
نقطة أخرى هي أننا نريد تحقيق أي ذاكرة تخزين مؤقت عالية المستوى ، ولا حتى L4 ، إلى الحد الأقصى بمساعدة الحديد وبحد أدنى بمساعدة البرنامج. تحتاج نواة نظام التشغيل والبرامج الأخرى دائمًا إلى بعض الوقت للحاق بالأجهزة ، سواء أكانت تضيف نواة جديدة أو L3 أو L4 مخابئ أو ذاكرة غير متطايرة يمكن معالجتها.
يقول جيانوس: "في مرحلة ما ، سيصبح مستوى التخزين المؤقت الإضافي أمرًا لا مفر منه". - حصلنا على مستوى ذاكرة التخزين المؤقت الأول ، وفي مرحلة ما ظهر المستوى الثاني. ثم أضفنا أخيرًا الثلث. ويوما ما سيكون لدينا رابع. والسؤال الوحيد هو متى ولماذا. ويبدو لي أن ملاحظاتك المتعلقة بقدرات ذاكرة التخزين المؤقت هذه مثيرة جدًا للاهتمام. لكن إنتل لم تقرر بعد متى أو لماذا ستعلن مثل هذه الأشياء. شركات أخرى تدرس هذه المسألة أيضًا ؛ سيكون من الغباء عدم فحصه. سوف يحدث هذا عاجلاً أم آجلاً ، لكن سرعان ما سيحدث ذلك ، أم لا - ليس واضحًا بعد ".