التسلسل الهرمي للذاكرة

مخطط هرمي لذاكرة الحاسوب

في هندسة الحاسوب ، يفصل التسلسل الهرمي للذاكرة تخزين الحاسوب إلى مستويات هرمية بناءً على زمن الاستجابة . ونظرًا لارتباط زمن الاستجابة والتعقيد والسعة ، يمكن أيضًا تمييز المستويات من خلال أدائها وتقنيات التحكم الخاصة بها. [ 1 ] يؤثر التسلسل الهرمي للذاكرة على الأداء في تصميم هندسة الحاسوب، وتوقعات الخوارزميات، وبنى البرمجة منخفضة المستوى التي تتضمن مرجعية محلية.

يتطلب تصميم الأنظمة عالية الأداء مراعاة قيود التسلسل الهرمي للذاكرة، أي حجم وقدرات كل مكون. يمكن اعتبار كل مكون من المكونات المختلفة جزءًا من تسلسل هرمي للذاكرة (m1، m2، ...، mn)، حيث يكون كل عنصر m1 أصغر حجمًا وأسرع من العنصر التالي له m1 + 1 في التسلسل الهرمي . وللحد من انتظار المستويات الأعلى، يستجيب المستوى الأدنى بملء مخزن مؤقت ثم إرسال إشارة لتفعيل عملية النقل.

توجد أربعة مستويات تخزين رئيسية. [ 1 ]

  • داخلي - سجلات المعالج وذاكرة التخزين المؤقت . 
  • الرئيسية ذاكرة الوصول العشوائي للنظام وبطاقات التحكم. 
  • التخزين الجماعي عبر الإنترنت التخزين الثانوي. 
  • التخزين بالجملة خارج الإنترنت التخزين الثانوي والتخزين خارج الإنترنت. 

هذا هيكل هرمي عام للذاكرة. توجد العديد من الهياكل الأخرى المفيدة. على سبيل المثال، يمكن اعتبار خوارزمية الترحيل مستوىً للذاكرة الافتراضية عند تصميم بنية الحاسوب، ويمكن تضمين مستوى تخزين شبه متصل بين التخزين المتصل والتخزين غير المتصل.

خصائص التقنيات في التسلسل الهرمي للذاكرة

  • يؤدي إضافة التعقيد إلى إبطاء التسلسل الهرمي للذاكرة . [ 2 ]
  • تعمل تقنية ذاكرة CMOx على توسيع مساحة الفلاش في التسلسل الهرمي للذاكرة [ 3 ]
  • إحدى الطرق الرئيسية لزيادة أداء النظام هي تقليل مدى الوصول إلى مستويات الذاكرة اللازمة لمعالجة البيانات. [ 4 ]
  • يُعد زمن الاستجابة وعرض النطاق الترددي مقياسين مرتبطين بالذاكرة المؤقتة. ولا يتسم أي منهما بالتجانس، بل يرتبط كل منهما بمكون معين من التسلسل الهرمي للذاكرة. [ 5 ]
  • يُعدّ التنبؤ بمكان وجود البيانات في التسلسل الهرمي للذاكرة أمرًا صعبًا. [ 5 ]
  • يحدد الموقع في التسلسل الهرمي للذاكرة الوقت اللازم لحدوث عملية الجلب المسبق. [ 5 ]

أمثلة

التسلسل الهرمي للذاكرة في خادم AMD Bulldozer كما تم اكتشافه بواسطة أداة lstopo الخاصة بـ hwloc

ازداد عدد مستويات التسلسل الهرمي للذاكرة والأداء في كل مستوى بمرور الوقت. كما تغير نوع مكونات الذاكرة أو التخزين تاريخيًا. [ 6 ]

التسلسل الهرمي لذاكرة التخزين المؤقت والذاكرة والتخزين الخارجي لنظام حاسوبي من عشرينيات القرن الحادي والعشرين (AMD Zen 4 )
مستوىمقاسالإنتاجيةكمونملحوظات
ملف التسجيل18432 بتتصل إلى 256  جيجابايت/ثانية (512 بت/دورة)0.25  نانوثانية (دورة واحدة) [ 7 ]تفترض جميع عمليات التحويل المتعلقة بوحدة المعالجة المركزية  ترددًا يبلغ 4.0 جيجاهرتز. وينطبق الأمر نفسه على ما يلي. من المستحيل الاستفادة الكاملة من الإنتاجية في أحمال العمل الحقيقية. يتم توفير الحجم لكل نواة.
ذاكرة التخزين المؤقت لوحدة المعالجة المركزيةبيانات L132  كيلوبايتسرعة تصل إلى 64  جيجابايت/ثانية (64 بايت/4 دورات)1  نانوثانية (4 دورات) [ 7 ]يتطلب تحقيق أقصى إنتاجية استخدام تقنية الجلب المسبق للأجهزة. يعتمد حجم الذاكرة المؤقتة للإعدادات وإنتاجيتها على كل نواة معالجة. تتمتع ذاكرة التخزين المؤقت للتعليمات البرمجية بنفس الحجم، ولكن لا يمكن التعامل معها كبيانات.
المستوى الثاني1  ميجابايتسرعة تصل إلى 18.3  جيجابايت/ثانية (64 بايت/14 دورة)3.5  نانوثانية (14 دورة) [ 7 ]الحجم والإنتاجية لكل نواة.
المستوى 316 32  ميجابايتتصل إلى 5.45  جيجابايت/ثانية (64 بايت/47 دورة)11.75  نانوثانية (47 دورة) [ 7 ]يتم توزيع الحجم بين 8 أنوية. الإنتاجية خاصة بكل نواة.
الذاكرة الرئيسية ( الأساسية )64  جيجابايت~60  جيجابايت/ثانية82.5  نانوثانيةيتم توزيع الحجم بين جميع النوى. يعتمد زمن الاستجابة على تردد الذاكرة وتوقيتاتها. في هذه الحالة، يتم استخدام نتيجة من زوج من  وحدات ذاكرة DDR5 DIMM سعة 32 جيجابايت مضبوطة على 6000 ميجا نقلة/ثانية عبر ملف تعريف EXPO المصنعي. [ 8 ] 

الأنظمة التي تحتوي على منافذ معالجة مركزية متعددة تعاني من تأخير NUMA إضافي عندما تحاول وحدة المعالجة المركزية الوصول إلى الذاكرة الخاضعة لسيطرة عقدة NUMA أخرى.

التخزين الجماعي ( الثانوي )محرك أقراص الحالة الصلبة2  تيرابايت2000  ميجابايت/ثانية0.2  مللي ثانيةبيانات خاصة بقرص SSD من نوع M.2 NVMe من عام 2017، وهو سامسونج 960 برو. [ 9 ]
محرك الأقراص الصلبة18  تيرابايت500  ميجابايت/ثانية4.16  مللي ثانيةالأرقام لكل محرك أقراص Exos 2X18 (ST18000NM0092)، وهو محرك أقراص صلبة SATA بحجم 3.5 بوصة من فئة المؤسسات. [ 10 ]
التعليم الثانوي ( الثالثي )محركات الأقراص الصلبة المتوقفة عن الدوران ( MAID )بيتابايت25  ثانيةبيانات لكل محرك أقراص لجهاز Exos 2X18 (ST18000NM0092)، مأخوذة من مدخل "أوقات البدء/الإيقاف" في دليل المستخدم. [ 11 ] في إعداد MAID نموذجي، يمكن استخدام مئات محركات الأقراص الصلبة المتوقفة لتخزين بيانات بحجم بيتابايت.
مكتبة الأشرطةإكسابايت160 ميجابايت/ثانية [ 12 ]دقائق
التخزين غير المتصل بالإنترنتإكسابايتيعتمد على الوسيطيعتمد على التدخل البشري

تتضمن بعض وحدات المعالجة المركزية مستويات إضافية من ذاكرة التخزين المؤقت بين ذاكرة التخزين المؤقت من المستوى الثالث (L3) والذاكرة الرئيسية. على سبيل المثال، تتضمن بنية Haswell الدقيقة ذاكرة تخزين مؤقت من المستوى الرابع (L4) بسعة 128  ميجابايت في الوحدات المحمولة. [ 13 ] [ 14 ]

تُعرف المستويات الدنيا من التسلسل الهرمي - بدءًا من التخزين الضخم نزولًا - أيضًا باسم التخزين الهرمي . والتمييز الرسمي بين التخزين المتصل بالإنترنت، والتخزين شبه المتصل بالإنترنت، والتخزين غير المتصل بالإنترنت هو: [ 15 ]  

  • تتوفر مساحة التخزين عبر الإنترنت فورًا لعمليات الإدخال/الإخراج.
  • لا تتوفر خدمة التخزين القريب من الإنترنت على الفور، ولكن يمكن إجراؤها عبر الإنترنت بسرعة دون تدخل بشري.
  • التخزين غير المتصل بالإنترنت غير متاح على الفور، ويتطلب بعض التدخل البشري لتفعيله.

على سبيل المثال، تُعتبر الأقراص الدوارة التي تعمل باستمرار متصلة بالإنترنت، بينما تُعتبر الأقراص الدوارة التي تتوقف عن الدوران، مثل مصفوفات الأقراص الخاملة الضخمة (MAID)، شبه متصلة بالإنترنت. أما الوسائط القابلة للإزالة، مثل خراطيش الأشرطة التي يمكن تحميلها تلقائيًا، كما هو الحال في مكتبة الأشرطة ، فهي شبه متصلة بالإنترنت، بينما تُعتبر الخراطيش التي يجب تحميلها يدويًا غير متصلة بالإنترنت.

برمجة

معظم وحدات المعالجة المركزية الحديثة سريعة للغاية، لدرجة أن عنق الزجاجة في معظم أحمال العمل البرمجية يكمن في موضع الوصول إلى الذاكرة وكفاءة التخزين المؤقت ونقل البيانات بين مستويات التسلسل الهرمي المختلفة . ونتيجة لذلك، تقضي وحدة المعالجة المركزية معظم وقتها في وضع الخمول، بانتظار اكتمال عمليات الإدخال/الإخراج للذاكرة. يُطلق على هذا أحيانًا اسم " تكلفة المساحة" ، حيث من المرجح أن يتجاوز حجم كائن الذاكرة الأكبر مستوىً صغيرًا وسريعًا، مما يستدعي استخدام مستوى أكبر وأبطأ. يُعرف الحمل الناتج على استخدام الذاكرة باسم " الضغط" ( ضغط المسجلات ، وضغط ذاكرة التخزين المؤقت، وضغط الذاكرة الرئيسية ). أما المصطلحات المستخدمة لوصف البيانات المفقودة من مستوى أعلى والتي تحتاج إلى جلبها من مستوى أدنى فهي: " انسكاب المسجلات " (بسبب ضغط المسجلات : من المسجلات إلى ذاكرة التخزين المؤقت)، و" فقدان ذاكرة التخزين المؤقت " (من ذاكرة التخزين المؤقت إلى الذاكرة الرئيسية)، و" خطأ الصفحة " ( من الذاكرة الرئيسية الحقيقية إلى الذاكرة الافتراضية ، أي وحدة التخزين، والتي يُشار إليها عادةً باسم القرص بغض النظر عن تقنية التخزين المستخدمة).

تعتمد لغات البرمجة الحديثة بشكل أساسي على مستويين من الذاكرة: الذاكرة الرئيسية ( ذاكرة العمل ) وذاكرة التخزين العامة. ويُستثنى من ذلك لغة التجميع منخفضة المستوى نسبيًا ، ومجمعات اللغات عالية المستوى مثل لغة C، حيث يمكن استخدام تعليمات "الجلب المسبق" لتحميل ذاكرة التخزين المؤقت مسبقًا. ويتطلب الاستفادة المثلى من تسلسل الذاكرة تعاونًا بين المبرمجين والأجهزة والمترجمات (بالإضافة إلى الدعم الأساسي من نظام التشغيل).

  • يتحمل المبرمجون مسؤولية نقل البيانات بين القرص والذاكرة من خلال عمليات الإدخال والإخراج للملفات.
  • تتولى الأجهزة مسؤولية نقل البيانات بين الذاكرة الرئيسية وذاكرة التخزين المؤقت.
  • تتولى المترجمات المحسّنة مسؤولية توليد التعليمات البرمجية التي، عند تنفيذها، ستؤدي إلى استخدام الأجهزة للذاكرة المؤقتة والسجلات بكفاءة.

يفترض العديد من المبرمجين وجود مستوى واحد من الذاكرة. وهذا يعمل بشكل جيد حتى يصل التطبيق إلى حدٍّ معين في الأداء. عندئذٍ، يحتاج المبرمج إلى تغيير أنماط الوصول إلى الذاكرة في الكود لكي يعمل بكفاءة مع موارد التخزين المؤقت. ومن الأمثلة الكلاسيكية على تأثير الموضعية والتخزين المؤقت تغيير ترتيب تكرار عناصر مصفوفة ثلاثية الأبعاد. يُعد كتاب "أنظمة الحاسوب: منظور المبرمج" مرجعًا كلاسيكيًا يتناول هذا الجانب من برمجة الأنظمة. [ 16 ]

تقسيم الذاكرة

تُعرف عملية تقسيم الذاكرة إلى مستويات متعددة بتقسيم الذاكرة الرئيسية إلى عدة مستويات بناءً على خصائص أدائها، ونقل محتوى الذاكرة بينها (قياسًا على تقسيم التخزين ). قد تتكون "الذاكرة الرئيسية" (مساحة العناوين الفيزيائية) من أجزاء غير متجانسة نتيجةً لتقنية NUMA، أو الذاكرة المتصلة عبر CXL (في فتحات PCIe)، أو وحدات Optane DCPMM، أو الذاكرة الموجودة على أجهزة توسعة أخرى مثل المعالجات المساعدة ووحدات معالجة الرسومات، ومن هنا تأتي الحاجة إلى تقسيم الذاكرة إلى مستويات. كما يُمكن اعتبار التبديل شكلاً من أشكال تقسيم الذاكرة إلى مستويات. [ 17 ]

يُطبَّق تقسيم الذاكرة على نظام لينكس كامتداد لتقنية NUMA، حيث يمتلك كل مُزوِّد ذاكرة عقدة NUMA بدون وحدة معالجة مركزية، مع "مسافة تجريدية" مناسبة تعكس أداءه. وقد قام هوانغ يينغ بتكييف المخطط الحالي لنقل الذاكرة بين عقد NUMA باستخدام "الحالة" المُشار إليها بأخطاء الصفحات ، ليناسب تقسيم الذاكرة (مخطط TPP الخاص بآل معروف غير موجود في نواة لينكس الرئيسية). [ 18 ] كما يستخدم سياسة تخصيص متداخلة مُرجَّحة. [ 19 ]

انظر أيضاً

مراجع

  1. 1 2 توي، وينغ؛ زي ، بنجامين (1986). هندسة أجهزة/برمجيات الحاسوب . برنتيس هول. ص 30. ISBN  0-13-163502-6.
  2. الكتابة والدمج
  3. "التسلسل الهرمي للذاكرة" . شركة يونيتي لأشباه الموصلات. مؤرشف من الأصل في 5 أغسطس 2009. تم الاطلاع عليه في 16 سبتمبر 2009 .
  4. ^ بادريج برادي. "متعدد النواة" . تم الاسترجاع في 16 سبتمبر 2009 .
  5. 1 2 3 فان دير باس، رود (2002). "التسلسل الهرمي للذاكرة في الأنظمة القائمة على ذاكرة التخزين المؤقت" (ملف PDF) . سانتا كلارا، كاليفورنيا: صن مايكروسيستمز : 26. 817-0742-10.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  6. "الذاكرة والتخزين - التسلسل الزمني لتاريخ الحاسوب - متحف تاريخ الحاسوب" . www.computerhistory.org .
  7. 1 2 3 4 فوغ، أغنر. "البنية الدقيقة لوحدات المعالجة المركزية من إنتل وإيه إم دي" (PDF) .الفصول المستخدمة: 24.16 الوصول إلى ذاكرة التخزين المؤقت والذاكرة (Zen 4).
  8. "دليل كسر سرعة ذاكرة الوصول العشوائي AMD Ryzen 7000/9000 DDR5 XPM و EXPO Profile Benchmarks" .
  9. "مراجعة قرص التخزين Samsung 960 Pro M.2 NVMe SSD" . storagereview.com. 20 أكتوبر 2016. تم الاطلاع عليه بتاريخ 13 أبريل 2017 .
  10. "ورقة بيانات Exos 2X18" (PDF) .
  11. "دليل منتج SATA 2X18" (PDF) .
  12. "ألتريوم - تقنية LTO - أجيال ألتريوم LTO" . Lto.org. مؤرشف من الأصل بتاريخ 27-07-2011 . تم الاطلاع عليه بتاريخ 31-07-2014 .
  13. كروثرز، بروك. "تحليل أفضل معالج رسومات من إنتل في جهاز ماك بوك برو من آبل مقاس 15 بوصة - سي نت" . News.cnet.com . تاريخ الاسترجاع: 31 يوليو 2014 .
  14. "منطقة برامج SiSoftware" . Sisoftware.co.uk. مؤرشف من الأصل بتاريخ 13 سبتمبر 2014. تم الاطلاع عليه بتاريخ 31 يوليو 2014 .
  15. بيرسون، توني (2010). "الاستخدام الصحيح لمصطلح Nearline" . IBM Developerworks، Inside System Storage . مؤرشف من الأصل بتاريخ 27-11-2018 . تم الاطلاع عليه بتاريخ 16-08-2015 .
  16. "منظور المبرمج: أنظمة الذاكرة" .
  17. كوربيت، جوناثان (12 مايو 2023). "مستقبل تصنيف الذاكرة" . LWN .
  18. "موازنة NUMA: تحسين موضع الصفحات لنظام تقسيم الذاكرة · torvalds/linux@c574bbe" . GitHub .
  19. كوربيت، جوناثان (25 أكتوبر 2023). "التداخل الموزون لتقسيم الذاكرة إلى طبقات" . LWN .