# الذواكر الذكية الشعاعية

### من ويكيبيديا، الموسوعة الحرة

## [تحرير] الذواكر الذكية الشعاعية VIRAM

### [تحرير] مدخل إلى الذاكرة الذكية الشعاعية

ظهرت الذواكر الذكية الشعاعية عبر الاتحاد بين المعالجات الشعاعية مع الذواكر الديناميكية(DRAM) المطمورة مما خلق حجم أكبر لعرض حزمة تبادل البيانات مما هو عليه في نظاما لشرائح المنفصلة المتعددة والتي تكون فيها عرض الحزمة محدودة بعرض الممر وعدد الأرجل,وللاستفادة القصوى من مميزات الدمج بدون زيادة في التعقيد او الطاقة أو المساحة فقد اعتمدت VIRAM على بنية RISC (( مدمجة مع بنية معالج شعاعي.

وبشكل عام فإن VIRAM ستكون ذات شأن كبير في مجال تغصين(تفريع) البيانات التفرعية .

كذلك فإن الإفادة من تأخير خطوط التجميع الشعاعية لتغطية زمن استجابة الذاكرة أدى إلى إمكانية الاستغناء عن الذواكر المخبئية وبدلاً منها

فقد استعاضت VIRAM بذواكر DRAM مدمجة أنبوبية مقسمة على بنوك والتي أمنت توصيل امثل مع نماذج الوصول للذاكرة مع المعالجات الشعاعية.

بنية الذواكر الذكية الشعاعية

وهكذا فإن بنية الذواكر الذكية الشعاعية تحافظ على المساحة بينما يؤمن تخفيض للطاقة فيها من خلال الاستفادة من كونها شريحة واحدة تدعم أنواع متعددة من أشكال الوصول إلى الذواكر السلسلية,وكذلك من كونها لاتحتاج عدد كبير من دورات الساعة أو من التعقيد كما في المعالجات التقليدية. وبما ان تعليمة شعاعية واحدة تدخل مجموعة من العلمليات على كامل الشعاع (64 32-bit elements or 128 16-bit elements) فإن VIRAMتمتلك تعليمات تحكم أكثر وشيفرة أكثر كثافة من بنية VLIW المستخدمة حالياً في DSP's بالإضافة على الذاكرة الديناميكية المخبئية والمعالج الشعاعي فإن VIRAM تمتلك (superscalar MIPS core) وتقاطعات ذاكرية وسطح دخل وخرج للاتصال مع الوسط الخارجي .

النموذج الاولي لها صمم للعمل ب200MHZ ويحتوي على 16MB ذاكرة ديناميكة (DRAM) تقسم إلى 8 بنوك بدون بنوك جزئية .و4 خطوط دخل وخرج تفرعية بسرعة 100 MB/S وتغذية 1.2V \2WATT.

وبما أننا نجري اختباراتنا اليوم قبل أن نحصل على بنية نهائية لVIRAM فإن سنقوم بالتجربة على نظام افتراضي تخيلي بذاكرة 32MB ب16 بنك وبدون بنوك فرعية -مع ملاحظة أن مايمكن الحصول عليه في الواقع أفضل بكثير خاصة مع الزيادة الكبيرة في حجم الذواكر وإذا مااستخدمنا بنوك فرعية إلا ان التكتم الشديد على هذه التقنية لم يدع أمامنا الفرصة إلا للاستعانة ببحوث قديمة-

### [تحرير] خطوط التجميع في الذاكرة الذكية الشعاعية

VIRAM تمتلك أربع خطوط تجميع بعرض 64-Bit تدعى ممرات,كل واحد منها لها وحدتان وظيفيتان صحيحتان (Integer),إحداهما تمثل ايضاً الفاصلة العائمة .وكل منهما قادرة على دعم عمليات الجمع المتعدد للتعليمات والتي يمكن تنفيذها خلال دورة معالج واحدة . لدعم بيانات ذات عرض اقل فإن كلاً من الممرات ذات ال64-Bit يمكن أن تنقسم جزئياً على إثنين أو أكثر من الممرات الوهمية.بشكل أكثر دقة فإن الممر ذا 64-Bit يقسم إلى ممرات وهمية ب32-Bit(وبالتالي يتولد لدينا ما مجموعه 8 ممرات وهمية) أو إلى ممرات وهمية ب 16-Bit (ممايولد مما مجموعه 16 ممر وهمي)

لاستفادة قصوى من كل إمكانيات الحوسبة المتاحة في IRAM فإن مسجل المعامل الشعاعي يجب أن يزود كل ممر وهمي بعنصر واحد خلال دورة المعالج الواحدة هذه المجموعات الجزئية من عناصر المسجل الشعاعي تعرف بالمجموعة العنصرية,وهناك دائماً ثمانية مجموعات عنصرية في المسجل الشعاعي في حالة السعة القصوى.

على سبيل المثال,من اجل 32 خانة ثنائية فإن العدد الاعظمي من العناصر والتي يمكن لمسجل واحد أن يمسكها هي 64.وذلك لأنه لدينا 8 ممرات وهمية ،وبالتالي8 عناصر في كل مجموعة عنصرية ،و8 مجموعات عنصرية في مسجل شعاعي واحد.

### [تحرير] ولوجات الذاكرة في الذاكرة الذكية الشعاعية

يوجد في بنية VIRAM ثلاث طرق مختلفة للولوج إلى الذاكرة وهي

- Unit-Stride loads/stores
- Strided loads/stores
- Indexed loads/stores

بالنسبة لتقنية Unit-Stride للتحميل والتخزين فإنها تلج إلى العناصر المتعاقبة في الذاكرة ،بينما Strided تلج الذاكرة باستخدام قفزات ثابتة بين العناوين مثل"كل عنصر أخر أو كل عنصر رابع".وفي كلتا الطريقتين سواءاً Unit-Stride أو Strided يتم الولوج إلى الذاكرة بعينات متناظرة.

أما في طريقة Indexed يتم الولوج على الذاكرة بشكل غير متناظر وذلك بالوصول بشكل عشوائي للعناصر غير المتعاقبة من الذاكرة.هذا الشكل من الولوج العشوائي يسمى أيضاً Gather/Scatter ويتكامل مع البنية الشعاعية من خلال مصفوفة من الفهارس والتي يعاد تحميلها إلى مسجل شعاعي منفصل لحساب العناوين الذاكرية.

الآلية النموذجية لل VIRAM يمكن أن تولد أربع أمثال عناوين الذاكرة في كل دورة معالج . بالنسبة لـ Unit-Strideفإن عنواناً واحداً فقط نحتاج لتوليده في كل مجموعة عنصرية وبما أنه لدينا ثمانية مجموعات عنصرية لتحميل كامل المسجل الشعاعي .لذا فإننا بحاجة لتوليد كل الثمانية عناوين إلى دورتي معالج. ولذلك فإن Unit-Stride يمكن أن تنجز بدون توقيف خطوط التجميع الناتجة عن توليد العنوان. بالنسبة لـ Strided أوIndexed فإن عنواناً لكل عنصر محمل أو مخزن يجب أن يولــّد وبالتالي فإننا نستطيع الولوج على 4 عناصر فقط في كل دورة معالج.

بالعودة على عدد الممرات الوهمية,نجد أنها هي من تحدد عدد العناصر في كل مجموعة عنصري,وكل مجموعة عنصرية يمكن أن تحوسب عند الطلب في دورة معالج واحدة من VIRAM

فعندما يكون لدينا 4 عناصر في المجموعة العنصرية الواحدة كما في حالة بيانات ب64 خانة ثنائية عندها فإن عمليات ولوج الذاكرة الثلاث Unit-Stride, Strided, Indexed كلها ستكون قادرة على الولوج على 4 عناصر في كل دورة معالج ،ولذلك سيكون لها نفس سرعة العمل. وعندها فإن الاستفادة ستكون قصوى من قدرة الحوسبة لدى VIRAM ولكن عندما يكون لدينا أكثر من 4 عناصر في كل مجموعة عنصرية كما في حالة بيانات ب32 خانة ثنائية أو بيانات ب16 خانة ثنائية عندها فإن العمليات على الذاكرة Unit-Stride لاتزال قادرة على الولوج إلى كامل المجموعة العنصرية في دورة معالج واحدة ،طالما اننا لانحتاج سوى على عنوان واحد ليحوسب كامل المجموعة العنصرية.

أما بالنسبة للعمليات الذاكرية Strided وIndexed عندما تكون البيانات ذات عرض أقل من 64 خانة ثنائية ،فإنها لاتستطيع سوى الولوج إلى 4 عناصر في كل دورة معالج ،ذلك أننا بحاجة لتوليد عناوين منفصلة لكل عنصر يتم الولوج إليه وبنية VIRAM محدودة بتوليد أربع عناوين فقط . لذلك فإن توليد العناوين ل Strided وIndexed توقف خط التجميع.

على سبيل المثال: من أجل بيانات ب32 خانة ثنائية فإن تحميل مسجل شعاعي كامل مؤلف من 64 عنصر "MVL=64" باستخدام Unit-Stride تاخذ 8 دورات معالج ((دورة معالج لكل مجموعة)).

أما بالنسبة لStride وIndexed فإنها تاخذ 16 دورة معالج ((حيث يتم تحميل 4 عناصر في كل دورة)). وفي حالة بيانات ب16 خانة ثنائية فإن Unit-stride تحمل كامل المسجل الشعاعي المحتوي على 128 عنصر "MVL=128" خلال 8 دورات معالج أيضاً."دورة معالج لكل مجموعة عنصرية",أما في حالة نفس المسجل في طريقتي Strided وIndexed فإنها تأخذ 32 دورة معالج. وبالتالي نلاحظ أنه من أجل بيانات بعرض 32 خانة ثنائية Strided وIndexed تأخذ ضعف عدد دورات المحالج التي تحتاجها Unit-stride للو لوج إلي الذاكرة,بينما في حالة بيانات بعرض 16 خانة ثنائية فإن Strided وIndexed تأخذ أربعة أضعاف عدد دورات المعالج الذي تحتاجه Unit-stride . ولكننا ننوه ان الاختبارات في هذا البحث مفترضة على الآلية النموذجية لVIRAM ولاتفصل بين وحدة الذاكرة الوظيفية وبين وحدة الحساب الوظيفية لخط التجميع.

ولذلك فغن أية توقفات في وحدة الذاكرة الوظيفية والناتجة عن بطئ عمليات الولوج Strided وIndexed أو عن تعارضات البنوك الذاكرية,ذات أثر على كل الوحدات الوظيفية الشعاعية لخطوط التجميع.

وبشكل خاص عن عمليات الولوج إلى الذاكرة Strided وIndexed ،الوحدة الحسابية الوظيفية لخط التجميع تعمل بنصف سعتها لبيانات بعرض 32 خانة ثنائية وبواحد على أربعة من سعتها في حالة بيانات بعرض 16 خانة ثنائية . فالبنسة للبيانات ب32 خانة ثنائية ،هذا يعني أن كل مجموعة عنصرية تحتاج إلى دورتي معالج بدل ن واحدة لكي تعالج بواسطة وحدة الحساب الوظيفية,وبالتالي فإنه في هاتين الدورتين تعمل الوحدات ا لوظيفية بنصف قدرتها الممكنة على الحوسبة. وفي البيانات ب16 خانة ثنائية فإن الوحدات الوظيفية تعمل بواحد على أربعة من قدرة الحوسبة الممكنة لها نظراً للقيام بعملية المعالجة عبر الوحدات الحسابية الوظيفية خلال ارع دورات بدل من واحدة. لمواجهة هذه النواقص فإن VIRAM إدخل عليها العديد من تحسينات تعزيز الإنتاجية .أحد هذه التحسينات هو فك الارتباط بين وحدة الحساب الوظيفية لخط التجمبع وبين وحدة الذاكرة الوظيفية لخط التجميع,وبالتالي فإن أي توقف في الذاكرة بسبب تحميل أو تخزين واحد لن يؤدي بعد الآن على توقف في وحدة الحساب الوظيفية لخط التجميع.

بالاضافة على ذلك فقد زودت VIRAM بذاكرة سريعة (Buffer)لمسك عملية تحميل أو تخزين واحدة معلّقة. ويمكن لهذه الذاكرة أن تزيد في المستقبل.

أخيراً فإنه من الضروري عند القيام بعملية تحميل أو تخزين لعنصر معرفة عدد البايتات في هذا العنصر.هذه العملية في IRAM ISA نقوم بها بتهيئة مسجل تحكم شعاعي وهو المسجل الشعاعيVPW والذي يشير إلى عدد البايتات في كل عنصر ،ويعرف أيضاً بعرض البيانات . كل تعليمة تنفذ على العنصر تقوم بذلك تحت إشراف مسجل التحكم VPW وهو عبارة عن تعليمات تجعلك قادراً على ولوج العدد الصحيح من البايتات لكل عنصر.

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

## [تحرير] الاستنتاجات

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

## [تحرير] روابط داخلية وخارجية

راجع الذواكر الذكية

وأيضا راجع الذاكرة الافتراضية وأيضا راجع الذاكرة الحية الساكنة وأيضا راجع الذاكرة العشوائية

## [تحرير] المراجع

1. رسالة ماجستير لـRandi Thomas بعنوان An Architectureal Performance On Vector IRAM
2. رسالة ماجستير لـ Christoforos Kozyrakis بعنوان A Media-Enhanced Vector Architecture

for Embedded Memory Systems

1. موقع جامعة Berkeley http://www.cs.berkeley.edu

تقديم : رشا كيالي

تم الاسترجاع من "http://ar.wikipedia.org../../../%D8%A7/%D9%84/%D8%B0/%D8%A7%D9%84%D8%B0%D9%88%D8%A7%D9%83%D8%B1_%D8%A7%D9%84%D8%B0%D9%83%D9%8A%D8%A9_%D8%A7%D9%84%D8%B4%D8%B9%D8%A7%D8%B9%D9%8A%D8%A9.html"

تصنيف الصفحة: بنية الحاسب

##### Views

- مقالة
- نقاش
- النسخة الحالية

##### الموسوعة

- الصفحة الرئيسية
- الأحداث الجارية
- أحدث التغييرات الأساسية

##### تصفح

- المواضيع
- أبجدي
- بوابات

##### المشاركة والمساعدة

- اتصل بنا
- بوابة المجتمع
- مساعدة
- الميدان
- التبرعات

##### ابحث