سيل (معالج صغري)

تاريخ المعالج

المشكلة في المعالجات التي سبقت سيل – والتي أراد مصمووه التغلب عليها- كانت التعقيد الزائد، حيث كانت المعالجات مسؤولةً عن إعادة تسمية السجلات والتنبؤ بالقفز والعديد من عمليات تحسين الأداء الأخرى التي تهدف إلى استخدام تقنيات التوارد pipelining،و التي كان لها تأثير سلبي بزيادة تعقيد بنية التعليمات الصغرية على حساب تعقيد العتاد الصلب.
أول من حاول حل هذه المشكلة هي شركة ترانسميتا Transmeta فنقلت مهام تسمية السجلات، وإعادة ترتيب التعليمات إلى البرامج Software، ولكن ذلك أدى إلى زيادة حجم تلك البرامج وشغلها للذاكرة الرئيسية مما اضطرر المعالج لزيادة عدد مرات تخاطبه مع الذاكرة الرئيسية RAM، فانعكس ذلك سلباً على أدائه بسبب وجود الهوة بين أداء المعالج وأداء الذاكرة الرئيسية.
ارتأى مصممو سيل أن يعالجو مشكلة تعقيد العتاد ولكن بطريقة مختلفة تماماً عن طريقة Transmetta، حيث تمت معالجة المشكلة الأساسية وهي الهوة بين الذاكرة والمعالج بتعزيز استخدام الخابيات، فأنشأت الشركات الثلات سوني، آي بي إم، وتوشيبا حلف الـ إس تي آي STI عام 2000 بهدف تطوير المعالج سيل وتصنيعه، حيث بدأ العمل عليه في مركز التصميم التابع للحلف إس تي آي في أوستن Austin، بولاية تكساس الأميركية والذي افتتح عام 2001.
استمر تطوير سيل لمدة أربع سنوات حيث تم الكشف عنه في شباط عام 2005، وبلغت كلفة هذا المشروع حوالي 400 مليون دولار، وعمل عليه حوالي الـ 400 مهندس من الشركات الثلاث.
أعلنت آي بي إم عن معالجها الجديد ذو الأداء المتفوق PowerXCell 8i والمبني بنفس تقنية المعالج سيل عام 2008، حيث يستخدم في نظام الرودرنر Roadrunner في مختبر لوس آلاموس الوطني Los Alamos National Laboratory في ولاية نيومكسيكو الأميركية، وهو ثاني أسرع حاسب في العالم حيث بلغت تكلفته 113 مليون دولار أميركي. وهذا الجهاز كان أول جهاز يستطيع تجاوز حد البيتافلوبس petaflops في العالم بأسره حيث يستطيع تنفيذ 1.7 × 1015 تعليمة فاصلة عائمة في الثانية.

بنية المعالج سيل

يتألف سيل من نواة رئيسية من النوع Power Architecture™ تعمل على 64 بت وذات البنية تعليمة-واحدة-معطيات-متعددة SIMD، وتم تدعيم هذه النواة بثماني معالجات ثانوية مختصة ذات البنية SIMD أيضاً وبتقنية جديدة أطلق عليها وحدة المعالجة المتعاونة Synergistic Processor Unit (SPU)، والتي تستخدم للمعالجة الكبيرة للمعطيات، كما في تطبيقات التشفير، الإعلام،و التطبيقات العلمية. النواة الرئيسية والنوى الثانوية عبارة عن معالجات RISC، عرض التعليمة الخاص بها هو 32 بت. يتعامل سيل مع ذاكرة رئيسية من نوع DDR2 على الرغم من أن نواته تتعامل مع ذاكرة Rambus وذلك بسبب إضافة الجهاز X2D الذي يحول طلبات الذاكرة DDR إلى طلبات الذاكرة Rambus وبالعكس.

مسار الربط بين العناصر EIB

يقوم هذا المسرى بربط المعالج PPE والمتحكم بالذاكرة ومعالجات الـSPE الثمانية، وواجهتي دخل/خرج. وبالتالي يتشارك 12 عنصر على هذا المسرى.
شكل هذا المسرى هو 4 حلقات دائرية وهي عبارة عن 4 قنوات موسعة غير موجهة بعرض 16B. وكل قناة منها تستطيع القيام بثلاث عمليات نقل عند تفعيلها وبشكل متزامن.
دور هذه القناة هو ضعف دور ساعة النظام وبالتالي في الحالة القسوى وعندما تكون جميع القنوات فعالة بإرسالاتها الثلاث سيصل عرض حزمة هذا المسرى إلى 96 خلال دور ساعة نظام واحدة.
كل عنصر مشارك على هذا المسرى يحوي مدخل بـ16B للقراءة ومدخل بـ16B للكتابة والحد الأعظمي لكل عنصر مشارك للقراءة والكتابة هو 16B لكل دور من أدوار المسرى (أي 8B لكل دور من أدوار ساعة النظام).

واجهة المحرك ذو الحزمة العريضة (Broadband Engine Interface (BEI

هي الواجهة التي تتيح لنا التخاطب مع واجهتي الدخل والخرج، ولكل من تلك الواجهتين مهام مختلفة فالواجهة رقم 1 : IOIF1 مسؤولة عن التعامل مع الدخل والخرح بواسطة بروتوكول IOIF، بينما الواجهة الثانية IOIF0 تستعمل بروتوكول الدخل والخرج الداخلي BIF والذي يستعمل على الشبكة الحلقية وهذا يمكننا من ربط عدة معالجات Cell معاً.

تطوير تطبيقات للمعالج سيل

قامت IBM بإنتاج مجموعة تطوير برمجية Software Development Kit لمعالجها سيل وهذا الدليل متوفر بشكل مجاني وهو ضروري حتى يستطيع المبرمجون اللذون يرغبون ببناء تطبيقات لهذا النوع من المعالجات أن يبنوها بشكل يسمح بالحصول على أداء أقرب ما يمكن من المثالي، فهناك العديد من العمليات التي يجب أخذها بعين الاعتبار عند تطوير البرامج الملائمة للمعالج سيل بحيث نحصل على أداء جيد مثل التحكم بنقل المعطيات من النواة الأساسية إلى النوى المساعدة، ونقل المعطيات بين النوى المساعدة، واسترجاع نتائج العمليات من النوى الثانوية وغيرها. يتضمن الدليل أيضاً أدوات لتصحيح الأخطاء debugging، ولتحليل الأداء performance analysis. البيئة التي تسمح بتطوير البرامج للمعالج سيل هي الإكليبس eclipse.