Barakat Soror
Barakat Soror

@barakatsoror

7 تغريدة 44 قراءة Oct 08, 2019
1. هذه نظرة سريعة على معمارية CELL التي استخدمت في بلايستيشن 3، المعمارية عملياً انتهت بنهاية PS3، لكنها تستحق الدراسة لأنها معمارية غريبة وفيها أفكار ثورية رغم أنه لم يكتب لها النجاح لأسباب مختلفة منها صعوبة البرمجة عليها في بداياتها وظهور كروت الشاشة متعددة الاستخدام GPGPUs...
2. في معمارية CELL هناك نواة معالج 64 بت تقليدي general-purpose تسمى بالـ PPE (اختصار Power Processor Element) وتستخدم معمارية PowerPC، النواة توفر 2 hardware-threads وتستخدم pipeline عميق من 23 مرحلة ينفذ تعليمتين (dual-issue) في الـ cycle الواحدة بالترتيب (in-order)...
3. الـ PPE معالج متعدد الاستخدام، فيه branch predictor ووحدة لحسابات الأعداد الصحيحة (integers) وأعداد الفاصلة العائمة (floats) ووحدة إدارة ذاكرة MMU (بمعنى أنه قادر على تشغيل نظام تشغيل حديث يستخدم الذاكرة التخليلية)، ويدعم تعليمات SIMD تسمى VMX (مثل SSE من Intel)...
4. الشيء المميز في الـ CELL ومصدر قوة المعالجة فيه هو وجود معالجات مساعدة تسمى بالـ SPE (اختصار Synergistic Processing Elements)، يتحكم فيها الـ PPE ومرتبطة ببعض عن طريق bus سريع، الـ SPE لها تعليمات خاصة بمعنى أنك ستسخدم مترجم compiler مختلف عن الذي استخدمته مع الـ PPE...
5. الـ SPE ليست معالجات متعددة الاستخدام، بل معالجات vector processing أو SIMD ومسؤول الـ PPE عن تحميل برامجها وتشغيلها، كل معالج فيه 128 registers كل منها بحجم 128 بت وتستطيع إجراء عدد كبير من الحسابات المتوازية بنفس الوقت، كل تعليمة تستطيع تنفيذ 4 عمليات float في الـ cycle...
6. كل SPE لها ذاكرة scratchpad محلية ومنفصلة لا تستطيع القراءة والكتابة إلا منها، ولو احتجت شيء من الـ RAM فتحتاج لعمل DMA من الـ RAM للـ scratchpad، ولا يوجد فيها cache ولا branch predictor (بمعنى أن وجود branch قد يؤثر سلبياً على الأداء) مما يتطلب مجهود أكبر لبرمجتها...
7. في حالة PS3 هناك 8 أنوية SPE، منها 6 متاحة للمبرمج، وواحد محجوز ومعزول يستخدم مع الـ hypervisor للـ security، وواحد معطل لتقليل كلفة التصنيع، فلو كان المعالج فيه SPE تالفة، فهناك SPE احتياط يمكن استخدامه بدل من رمي كل المعالج، حتى لو كان سليم يتم تعطيله لتوحيد المعالج.

جاري تحميل الاقتراحات...