نمط الوصول إلى الذاكرة

في الحوسبة ، نمط الوصول إلى الذاكرة أو نمط الوصول إلى الإدخال/الإخراج هو النمط الذي يستخدمه النظام أو البرنامج لقراءة الذاكرة وكتابتها على وحدة تخزين ثانوية . تختلف هذه الأنماط في مستوى محلية المرجع وتؤثر بشكل كبير على أداء ذاكرة التخزين المؤقت، [1] ولها أيضًا آثار على نهج التوازي [2] [3] وتوزيع عبء العمل في أنظمة الذاكرة المشتركة . [4] علاوة على ذلك، يمكن أن تؤثر مشكلات تماسك ذاكرة التخزين المؤقت على أداء المعالجات المتعددة ، [5] مما يعني أن أنماط وصول معينة إلى الذاكرة تضع سقفًا على التوازي (الذي تسعى مناهج manycore إلى كسره). [6]

عادةً ما يتم وصف ذاكرة الكمبيوتر بأنها " وصول عشوائي "، ولكن عمليات التنقل بواسطة البرامج ستظل تُظهر أنماطًا يمكن استغلالها لتحقيق الكفاءة. توجد أدوات مختلفة لمساعدة مصممي النظام [7] والمبرمجين على فهم وتحليل وتحسين نمط الوصول إلى الذاكرة، بما في ذلك VTune و Vectorization Advisor ، [8] [9] [10] [11] [12] بما في ذلك أدوات لمعالجة أنماط الوصول إلى ذاكرة وحدة معالجة الرسومات [13]

أنماط الوصول إلى الذاكرة لها أيضًا آثار على الأمان ، [14] [15] مما يحفز البعض على محاولة إخفاء نشاط البرنامج لأسباب تتعلق بالخصوصية. [16] [17]

أمثلة

يتم رسم الأنماط المتسلسلة والخطية بشكل غير صحيح باعتبارها متماثلة لبعضها البعض بواسطة بعض المنشورات؛ في حين تحتوي أحمال العمل في العالم الحقيقي على أنماط لا حصر لها تقريبًا. [18]

تسلسلي

أبسط نمط متطرف هو نمط الوصول المتسلسل ، حيث تتم قراءة البيانات ومعالجتها وكتابتها باستخدام عنونة متزايدة/متناقصة مباشرة. هذه الأنماط من الوصول قابلة بشكل كبير للجلب المسبق .

متدرج

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

خطي

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

أقرب جار

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

متماسك مكانيًا ثنائي الأبعاد

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

تشتت

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

ومع ذلك، قد يكون من الصعب تنفيذ التوازي نظرًا لعدم وجود ضمان بعدم تفاعل عمليات الكتابة، [27] ولا تزال العديد من الأنظمة مصممة على افتراض أن ذاكرة التخزين المؤقت للأجهزة سوف تدمج العديد من عمليات الكتابة الصغيرة في عمليات أكبر.

في الماضي، حاولت عملية تعيين الملمس الأمامي التعامل مع العشوائية من خلال "الكتابة"، مع قراءة معلومات الملمس المصدر بشكل متسلسل.

استخدمت وحدة تحكم PlayStation 2 رسمًا عكسيًا تقليديًا للنسيج، لكنها تعاملت مع أي معالجة للتشتت/التجميع "على الشريحة" باستخدام EDRAM، بينما تم تغذية النموذج ثلاثي الأبعاد (والكثير من بيانات النسيج) من الذاكرة الرئيسية بشكل متسلسل بواسطة DMA. وهذا هو السبب في افتقارها إلى دعم العناصر البدائية المفهرسة، وفي بعض الأحيان كانت هناك حاجة إلى إدارة النسيج "في المقدمة" في قائمة العرض .

يجتمع

في نمط الوصول إلى الذاكرة المجمعة ، تتم معالجة عمليات القراءة أو فهرستها بشكل عشوائي، بينما تكون عمليات الكتابة متسلسلة (أو خطية). [26] يوجد مثال على ذلك في تعيين الملمس العكسي ، حيث يمكن كتابة البيانات بشكل خطي عبر خطوط المسح ، بينما يتم حساب عناوين الملمس للوصول العشوائي لكل بكسل .

بالمقارنة مع التشتت، فإن العيب هو أن التخزين المؤقت (وتجاوز فترات الانتظار) أصبح ضروريًا الآن للقراءة الفعالة للعناصر الصغيرة، ومع ذلك، من الأسهل التوازي حيث يتم ضمان عدم تداخل عمليات الكتابة. وبالتالي، فإن نهج التجميع أكثر شيوعًا لبرمجة gpgpu ، [27] حيث يتم استخدام الترابط الضخم (الممكن بواسطة التوازي) لإخفاء فترات انتظار القراءة. [27]

الجمع والتشتيت المشترك

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

عشوائي

في الطرف المقابل يوجد نمط وصول عشوائي حقيقي للذاكرة. تتخصص بعض أنظمة المعالجات المتعددة في التعامل مع هذه. [28] قد يساعد نهج PGAS عن طريق فرز العمليات حسب البيانات أثناء التنقل (مفيد عندما تكون المشكلة * هي * معرفة موقع البيانات غير المفرزة). [21] غالبًا ما تنتج هياكل البيانات التي تعتمد بشكل كبير على مطاردة المؤشر موقعًا ضعيفًا للمرجع ، على الرغم من أن الفرز يمكن أن يساعد في بعض الأحيان. نظرًا لنمط وصول عشوائي حقيقي للذاكرة، فقد يكون من الممكن تقسيمه (بما في ذلك مراحل التشتت أو التجميع، أو الفرز الوسيط الآخر) مما قد يحسن الموقع بشكل عام؛ غالبًا ما يكون هذا شرطًا أساسيًا للتوازي .

النهج

التصميم الموجه نحو البيانات

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

التباين مع موقع المرجع

تشير موضعية المرجع إلى خاصية تظهرها أنماط الوصول إلى الذاكرة. سيغير المبرمج نمط الوصول إلى الذاكرة (عن طريق إعادة صياغة الخوارزميات) لتحسين موضعية المرجع، [30] و/أو لزيادة إمكانية التوازي. [26] قد ينشئ المبرمج أو مصمم النظام أطر عمل أو تجريدات (على سبيل المثال، قوالب C++ أو وظائف من الدرجة الأعلى ) تغلف نمط وصول معين إلى الذاكرة. [31] [32]

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

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

انظر أيضا

مراجع

  1. ^ "التصميم الموجه للبيانات" (PDF) .
  2. ^ جانج، بيونج هيون؛ شا، دانا؛ ميستري، بيرهاد وكايلي، ديفيد (2010-05-27). "استغلال أنماط الوصول إلى الذاكرة لتحسين أداء الذاكرة في بنيات البيانات المتوازية". معاملات معهد مهندسي الكهرباء والإلكترونيات للأنظمة المتوازية والموزعة . 22 (1). نيويورك: معهد مهندسي الكهرباء والإلكترونيات : 105-118. doi :10.1109/TPDS.2010.107. eISSN  1558-2183. ISSN  1045-9219. S2CID  15997131. معرف المكتبة الوطنية للطب 101212014.
  3. ^ جيفيرز، جيمس؛ رايندرز، جيمس؛ سوداني، أفيناش (2016-05-31). تحسين فاي زيون. ISBN 9780128091951.
  4. ^ "تحليل الطاقة وأداء تحويلات الكود لأنماط الوصول إلى البيانات المستندة إلى PGAS" (PDF) .
  5. ^ "تعزيز بنيات ذاكرة التخزين المؤقت المتماسكة باستخدام أنماط الوصول إلى الذاكرة للأنظمة متعددة النواة المضمنة" (PDF) .
  6. ^ "إنتل تيرا سكيل" (PDF) .
  7. ^ تحليل أنماط الوصول إلى الذاكرة. WWC '98. 29 نوفمبر 1998. ص. 105. ISBN 9780769504506.
  8. ^ "QUAD محلل نمط الوصول للذاكرة" (PDF) .
  9. ^ "Dymaxion: تحسين أنماط الوصول إلى الذاكرة للأنظمة غير المتجانسة" (PDF) .
  10. ^ "تقييم مخطط تصنيف الوصول إلى الذاكرة للبرامج التي تعتمد على المؤشرات والبرامج الرقمية المكثفة". 1996. CiteSeerX 10.1.1.48.4163 .  {{cite journal}}: تتطلب المجلة الاستشهاد بها |journal=( مساعدة )
  11. ^ ماتسوبارا، يوكي؛ ساتو، يوكينوري (2014). "تحليل نمط الوصول إلى الذاكرة عبر الإنترنت على أداة تحديد ملف تعريف التطبيق". ندوة الحوسبة والشبكات الدولية الثانية لعام 2014. ص 602-604. doi :10.1109/CANDAR.2014.86. ISBN 978-1-4799-4152-0. S2CID  16476418.
  12. ^ "ترتيب بياناتك وأكوادك: البيانات والتخطيط".
  13. ^ CuMAPz: أداة لتحليل أنماط الوصول إلى الذاكرة في CUDA. Dac '11. 5 يونيو 2011. ص 128-133. doi :10.1145/2024724.2024754. ISBN 9781450306362. S2CID  16065152.
  14. ^ "حماية نمط الوصول إلى الذاكرة للأجهزة ذات الموارد المحدودة" (PDF) .
  15. ^ "فهم هجمات ذاكرة التخزين المؤقت" (PDF) .
  16. ^ "حماية البيانات في السحابة".
  17. ^ "تعزيز-أمان-السحابة-باستخدام----oblivious-ram". 24 سبتمبر 2013.تصميم ذاكرة الوصول العشوائي المقترحة لتجنب ثغرات نمط الوصول إلى الذاكرة
  18. ^ تشاك باريدون. "إرشادات قياس أداء التخزين - الجزء الأول: تصميم عبء العمل" (PDF) . في الممارسة العملية، أنماط الوصول إلى الإدخال/الإخراج عديدة مثل النجوم
  19. ^ "تحسين عملية التبليط وموقع البيانات" (PDF) .تغطي الورقة موضوع تقسيم الحلقات وتداعياتها على الكود الموازي
  20. ^ "تقسيم البيانات ثنائية الأبعاد الأمثل لنقل DMA على MPSoCs" (PDF) .
  21. ^ "برمجة مساحة العنوان العالمية المقسمة". يوتيوب .يغطي الحالات التي يكون فيها PGAS هو الفائز، حيث قد لا تكون البيانات مرتبة بالفعل، على سبيل المثال، عند التعامل مع الرسوم البيانية المعقدة - راجع "العلم عبر طيف عدم الانتظام".
  22. ^ "قياس المحلية في أنماط الوصول إلى الذاكرة في تطبيقات الحوسبة عالية الأداء" (PDF) .يذكر أنماط الوصول إلى أقرب جار في المجموعات
  23. ^ "تصميم وتحليل بنية ذاكرة التخزين المؤقت لتعيين الملمس" (PDF) .انظر ترتيب مورتون، نمط الوصول إلى الملمس
  24. ^ "أمر مورتون بتسريع عملية التنميط" (PDF) .
  25. ^ "مصفوفات ترتيب مورتون تستحق دعم المترجمين التقرير الفني رقم 533" (PDF) .يناقش أهمية ترتيب مورتون للمصفوفات
  26. ^ abcd "gpgpu spread vs gather". مؤرشف من الأصل في 2016-06-14 . تم الاسترجاع في 2016-06-13 .
  27. ^ abc GPU gems. 2011-01-13. ISBN 9780123849892.يتعامل مع "أنماط الوصول إلى الذاكرة المنتشرة" و"أنماط الوصول إلى الذاكرة المجمعة" في النص
  28. ^ "Cray و HPCC: التطورات المعيارية والنتائج من العام الماضي" (PDF) .انظر نتائج الوصول العشوائي العالمية لـ Cray X1. بنية متجهية لإخفاء أوقات الاستجابة، ليست حساسة جدًا لتماسك ذاكرة التخزين المؤقت
  29. ^ "التصميم الموجه للبيانات" (PDF) .
  30. ^ "تحسين هياكل البيانات وأنماط الوصول إلى الذاكرة لتحسين محلية البيانات".
  31. ^ "محرك الوصول إلى الذاكرة القائم على القالب للمسرعات في أنظمة SoC" (PDF) .
  32. ^ "متجه متعدد الأهداف باستخدام مكتبة MTPS C++ العامة" (PDF) .مكتبة قوالب C++ لإنتاج أنماط وصول ذاكرة محسنة
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=نمط_الوصول_للذاكرة&oldid=1148830100"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate