تحتوي الرقائق الموجودة على معظم أجهزة الكمبيوتر المكتبية الحديثة على أربعة نوى ، لكن صانعي الرقائق قد أعلنوا بالفعل عن خطط للترقية إلى ستة نوى ، واليوم لا تعد المعالجات ذات 16 نواة نادرة للخوادم عالية الأداء.
كلما زادت النوى ، زادت مشكلة تخصيص الذاكرة بين جميع النوى أثناء العمل معًا. مع زيادة عدد النوى ، أصبح من المربح أكثر فأكثر التقليل من فقدان الوقت في إدارة النوى أثناء معالجة البيانات - لأن معدل تبادل البيانات يتخلف عن سرعة المعالج ومعالجة البيانات في الذاكرة. يمكنك اللجوء فعليًا إلى ذاكرة التخزين المؤقت السريعة لشخص آخر ، أو يمكنك استخدام ذاكرة التخزين المؤقت البطيئة الخاصة بك ، ولكن توفير وقت نقل البيانات. إن المهمة معقدة بحقيقة أن حجم الذاكرة التي تطلبها البرامج لا تتوافق بوضوح مع أحجام ذاكرة التخزين المؤقت لكل نوع.
يمكن تحديد موقع كمية محدودة جدًا من الذاكرة فعليًا بالقرب من المعالج قدر الإمكان - ذاكرة تخزين مؤقت بالمستوى L1 ، مقدارها صغير للغاية. قام دانييل سانشيز ، وبو أن تساي ، وناثان بيكمان ، الباحثون في معهد علوم الكمبيوتر والذكاء الاصطناعي بمعهد ماساتشوستس للتكنولوجيا ،
بتعليم الكمبيوتر
كيفية تكوين أنواع مختلفة من الذاكرة لتناسب التسلسل الهرمي المرن للبرامج في في الوقت الحقيقي. يحلل النظام الجديد ، المسمى Jenga ، الاحتياجات الحجمية وتواتر الوصول إلى البرامج إلى الذاكرة ويعيد توزيع قوة كل نوع من أنواع ذاكرة التخزين المؤقت الثلاثة للمعالجات في مجموعات توفر زيادة الكفاءة وتوفير الطاقة.

بادئ ذي بدء ، اختبر الباحثون زيادة الأداء بمزيج من الذاكرة الثابتة والديناميكية في العمل على البرامج الخاصة بمعالج أحادي النواة وحصلوا على التسلسل الهرمي الأساسي - عندما يكون من الأفضل استخدام المجموعة. من نوعين من الذاكرة أو من واحد. تم تقييم معلمتين - تأخير الإشارة (الكمون) واستهلاك الطاقة أثناء تشغيل كل برنامج. بدأ حوالي 40 ٪ من البرامج في العمل بشكل أسوأ مع مجموعة من أنواع الذاكرة ، والباقي - أفضل. بعد إصلاح البرامج المختلطة التي "تعجب" الأداء ، وأيها - حجم الذاكرة ، قام الباحثون ببناء نظام Jenga.
لقد اختبروا فعليًا 4 أنواع من البرامج على جهاز كمبيوتر افتراضي يحتوي على 36 نواة. اختبر البرنامج:
- omnet - اختبار الشبكة المعياري الموضوعي ، مكتبة النمذجة C ومنصة أدوات نمذجة الشبكة (الأزرق في الصورة)
- mcf - إطار عمل ميتا (أحمر)
- astar - برنامج لعرض الواقع الافتراضي (أخضر)
- bzip2 - أرشيفي (اللون الأرجواني)

توضح الصورة مكان وكيفية معالجة بيانات كل برنامج. تُظهر الحروف مكان تشغيل كل تطبيق (واحد لكل ربع) ، وتظهر الألوان مكان وجود بياناته ، ويشير الفقس إلى المستوى الثاني من التسلسل الهرمي الافتراضي عندما يكون موجودًا.
مستويات التخزين المؤقتتنقسم ذاكرة التخزين المؤقت لوحدة المعالجة المركزية إلى عدة مستويات. بالنسبة إلى المعالجات العالمية - حتى 3. أسرع ذاكرة هي ذاكرة التخزين المؤقت من المستوى الأول - ذاكرة التخزين المؤقت L1 ، لأنها تقع على نفس الشريحة مع المعالج. يتكون من ذاكرة تخزين مؤقت للأوامر وذاكرة تخزين مؤقت للبيانات. لا يمكن أن تعمل بعض المعالجات بدون ذاكرة التخزين المؤقت L1. تعمل ذاكرة التخزين المؤقت L1 بتردد المعالج ، ويمكن الوصول إليها في كل دورة ساعة. غالبًا ما يكون من الممكن إجراء عمليات قراءة / كتابة متعددة في نفس الوقت. عادة ما يكون الحجم صغيرًا - لا يزيد عن 128 كيلو بايت.
تتفاعل ذاكرة التخزين المؤقت L1 مع ذاكرة التخزين المؤقت من المستوى الثاني - L2. إنها ثاني أسرع. عادة ما يكون موجودًا إما على الشريحة ، مثل L1 ، أو في المنطقة المجاورة مباشرة للنواة ، على سبيل المثال ، في خرطوشة المعالج. في المعالجات القديمة ، مجموعة شرائح على اللوحة الأم. حجم ذاكرة التخزين المؤقت L2 من 128 كيلو بايت إلى 12 ميجا بايت. في المعالجات الحديثة متعددة النواة ، ذاكرة التخزين المؤقت من المستوى الثاني ، الموجودة على نفس الشريحة ، هي ذاكرة مشتركة - يبلغ حجم ذاكرة التخزين المؤقت الإجمالية 8 ميجا بايت ، 2 ميجا بايت لكل نواة. عادةً ما يتراوح وقت استجابة ذاكرة التخزين المؤقت L2 الموجودة على الشريحة الأساسية بين 8 و 20 دورة ساعة. في المهام المتعلقة بالعديد من عمليات الوصول إلى مساحة محدودة من الذاكرة ، على سبيل المثال ، نظام إدارة قواعد البيانات ، فإن استخدامه الكامل يجعل الإنتاجية تزيد عشرة أضعاف.
عادة ما تكون ذاكرة التخزين المؤقت L3 أكبر ، على الرغم من أنها أبطأ قليلاً من L2 (نظرًا لأن الحافلة بين L2 و L3 أضيق من الحافلة بين L1 و L2). عادةً ما يقع L3 بشكل منفصل عن وحدة المعالجة المركزية الأساسية ، ولكن يمكن أن يكون كبيرًا - أكثر من 32 ميغابايت. ذاكرة التخزين المؤقت L3 أبطأ من ذاكرة التخزين المؤقت السابقة ، ولكنها لا تزال أسرع من ذاكرة الوصول العشوائي. في الأنظمة متعددة المعالجات شائعة الاستخدام. إن استخدام ذاكرة التخزين المؤقت من المستوى الثالث له ما يبرره في مجموعة ضيقة جدًا من المهام وقد لا يؤدي فقط إلى زيادة الإنتاجية ، ولكن العكس صحيح ويؤدي إلى انخفاض عام في أداء النظام.
يعد تعطيل ذاكرة التخزين المؤقت للمستويين الثاني والثالث مفيدًا للغاية في المشكلات الرياضية عندما تكون كمية البيانات أقل من حجم ذاكرة التخزين المؤقت. في هذه الحالة ، يمكنك تحميل جميع البيانات على الفور في ذاكرة التخزين المؤقت L1 ، ثم معالجتها.
بشكل دوري ، يعيد Jenga على مستوى نظام التشغيل تكوين التسلسلات الهرمية الافتراضية لتقليل تبادل البيانات ، بالنظر إلى قيود الموارد وسلوك التطبيق. تتكون كل إعادة تشكيل من أربع خطوات.

تقوم Jenga بتوزيع البيانات ليس فقط اعتمادًا على البرامج التي يتم إرسالها - محبة ذاكرة كبيرة ذات سرعة واحدة أو أداء ذاكرة التخزين المؤقت المختلط ، ولكن أيضًا اعتمادًا على القرب المادي لخلايا الذاكرة من البيانات التي يتم معالجتها. بغض النظر عن نوع ذاكرة التخزين المؤقت التي يتطلبها البرنامج بشكل افتراضي أو هرمي. الشيء الرئيسي هو تقليل تأخير الإشارة واستهلاك الطاقة. اعتمادًا على عدد أنواع الذاكرة التي "يحبها" البرنامج ، يصمم Jenga زمن الانتقال لكل تسلسل هرمي افتراضي بمستوى واحد أو مستويين. تشكل التدرجات الهرمية ذات المستويين سطحًا ، وتشكل التدرجات الهرمية ذات المستوى الواحد منحنى. ثم تصمم Jenga الحد الأدنى من التأخير في أحجام VL1 ، مما يعطي منحنيين. أخيرًا ، تستخدم Jenga هذه المنحنيات لتحديد أفضل التسلسل الهرمي (أي حجم VL1).
أعطى استخدام Jenga تأثيرًا ملموسًا. كانت الشريحة الافتراضية المكونة من 36 نواة أسرع بنسبة 30 بالمائة واستخدمت طاقة أقل بنسبة 85 بالمائة. بالطبع ، في حين أن Jenga هي مجرد محاكاة لجهاز كمبيوتر يعمل ، فسوف يستغرق الأمر بعض الوقت قبل أن ترى أمثلة حقيقية على ذاكرة التخزين المؤقت هذه وحتى قبل أن يقبلها مصنعو الرقائق إذا كانوا يحبون التكنولوجيا.
36 تكوين الجهاز النووي مشروط
- المعالجات . 36 نواة ، x86-64 ISA ، 2.4 غيغاهرتز ، تشبه Silvermont OOO: بعرض 8B
ifetch 2-bpred مع 512 × 10 بت BHSRs + 1024 × 2 بت PHT ، فك / إصدار / إعادة تسمية / التزام ثنائي الاتجاه ، IQ-32 و ROB ، 10-LQ دخول ، 16-SQ دخول ؛ 371 pJ / تعليمات ، قدرة ثابتة 163 ميجاوات / أساسية - مخابئ مستوى L1 . 32 كيلوبايت ، ذاكرة التخزين المؤقت للبيانات والمجموعات المقسمة 8 اتجاهات ، ومخازن التعليمات ،
الكمون 3 دورة. 15/33 pJ لكل إصابة / ملكة جمال - خدمة الجلب المسبق . 16-إدخال الجهائز المسبقة على غرار بعد التحقق من صحتها
نهالم - مخابئ مستوى L2 . 128 كيلوبايت خاصة لكل نواة ، و 8 اتجاهات تجميعية ، وشاملة ، وكمون 6 دورات ؛ 46/93 بي جيه لكل ضربة / تفوت
- وضع متماسك (تماسك) . 16 مسارًا ، بنوك دليل الكمون 6 دورات لـ Jenga ؛ الدلائل L3 في ذاكرة التخزين المؤقت للآخرين
- NoC العالمي . شبكة 6 × 6 ، انسياب ووصلات 128 بت ، توجيه XY ، موجهات خط أنابيب من دورتين ، روابط دورة واحدة ؛ 63/71 pJ لكل اجتياز فاصل بين موجِّه البيانات / الموجّه ، وطاقة ثابتة للموجِّه / الرابط 12 / 4mW
- كتل الذاكرة الثابتة SRAM . 18 ميغا بايت ، بنك واحد بسعة 512 كيلوبايت لكل مربع ، zcache رباعي 52 مرشحًا ، زمن انتقال البنك 9 دورات ، تقسيم Vantage 240/500 pJ لكل إصابة / ملكة جمال ، 28 mW / طاقة ثابتة للبنك
- ذاكرة ديناميكية متعددة الطبقات DRAM مكدسة . 1152 ميجا بايت ، مخزن واحد 128 ميجا بايت لكل 4 بلاطات ، سبيكة مع MAP-I DDR3-3200 (1600 ميجا هرتز) ، ناقل 128 بت ، 16 رتبة ، 8 بنوك / رتبة ، 2 كيلو بايت مخزن مؤقت للصف ؛ 4.4 / 6.2 نيوتن لكل ضربة / ملكة جمال ، 88 mW / vault power ثابت
- الذاكرة الرئيسية . 4 قنوات DDR3-1600 ، ناقل 64 بت ، 2 صفوف / قناة ، 8 بنوك / رتبة ، 8 صف تخزين مؤقت للصف ؛ 20 nJ / access ، طاقة ثابتة 4 وات
- أوقات DRAM . tCAS = 8 ، tRCD = 8 ، tRTP = 4 ، tRAS = 24 ، tRP = 8 ، tRRD = 4 ، tWTR = 4 ، tWR = 8 ، tFAW = 18 (جميع التوقيتات في tCK ؛ تحتوي ذاكرة DRAM المكدسة على نصف tCK كذاكرة رئيسية )