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

سيل تم تطوير المعالج سيل الشعاعي Cell(واسمه الرسمي محرك سيل العريض النطاق Cell Broadband Engine أو اختصاراً CellBE) بتعاون من الشركات الثلاث: سوني Sony، توشيبا Toshiba، وآي بي أم IBM – والتي تشكل حلف ال STI - ليكون معالجاً باستهلاك طاقة قليل وسعرٍ منخفض، وأداءٍ عالٍ ليستطيع تخديم العديد من التطبيقات- حتى تلك ذات المتطلبات العالية جداً- كالألعاب. تم تصميم المعالج CellBE بعد الأخذ بعين الاعتبار حاجات العلوم التالية: التشفير، الإضاءة، الفيزياء، تحويلات فورييه، العمليات على المصفوفات، وغيرها.
| عدد الترانزستورات | 234 مليون |
| التردد | 4.6 غيغا هرتز |
| درجة حرارة العمل | °85 |
| التوتر | 1.3 فولت |
| عدد عمليات الفاصلة العائمة في الثانية(دقة وحيدة) | 204.8 غيغافلوبس GFLOPS |
| عدد عمليات الفاصلة العائمة في الثانية(دقة مضاعفة) | 12 غيغافلوبس GFLOPS |
| عرض حزمة المسار | 307.2 غيغابايت في الثانية |
| نوع شبكة التوصيل | مسار حلقي ring مؤلف من 4 طبقات |
| نوع الذاكرة الرئيسية التي يستعملها | DDR2 |
| عرض تعليمة المعالج | 32 بت |
| عرض حزمة XIO(التخاطب مع الذاكرة) | 25.6 غيغا بت بالثانية |
| تردد عمل مسار الـ XIO | 3.2 غيغا هرتز بالثانية |
| نظام التشغيل الذي يعمل عليه | حيادي neutral ويدعم عدة أنظمة تشغيل |

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

المشكلة في المعالجات التي سبقت سيل – والتي أراد مصمووه التغلب عليها- كانت التعقيد الزائد، حيث كانت المعالجات مسؤولةً عن إعادة تسمية السجلات والتنبؤ بالقفز والعديد من عمليات تحسين الأداء الأخرى التي تهدف إلى استخدام تقنيات التوارد 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 وبالعكس.

### النواة الرئيسية PPE

و هو معالج من نوع Power Architecture وهذا الأخير هو عبارة عن معالج RISC بقناتي توارد (Two-way) كما أنه معالج عام غير تخصصي ويعمل كمتحكم لينظم عمل المعالجات الثمانية الأخرى (SPEs). ويحتوي هذا المعالج عدة مجموعات من السجلات :
* 32 سجل عام (General Purpose Registers) بـ 64 أو 32 بت للعمليات على الأعداد الصحيحة.
* 64 سجل شعاعي (Vector Scalar Registers)(VSR) بـ128 بت للعمليات على الأشعة والفاصلة العائمة.
* سجلات شرطية (Condition Registers)(CR) بـ4 بت لعمليات المقارنة والتحكم بالدفق.
* سجلات خاصة: سجل عداد(CTR)،سجل ربط (LR) ،سجلات زمنية(TBU,TBL)، سجلات زمنية مساعدة(ATBU,ATBL)،سجل مراكم (ACC)،سجلات حالة: (XER,FPSCR,VSCRC,SPEFSCR).
و هذا المعالج يدعم الدقتين الفردية والمضاعفة وذلك حسب المعيار آي إي إي إي 754-2008. ويحتوي هذا المعالج 32KB تعليمة، وذاكرة خابية مستوى أول (level 1) سعتها 32KB وذاكرة خابية بمستوى ثاني (level 2) سعتها 512KB.

### النوى الثانوية SPE

هي معالجات شعاعية Vector Processors وهناك جزءان أساسيان لكل نواة ثانوية:
* وحدة التنفيذ المتعاون Synergistic Execution Unit واختصاراً SXU: تحتوي على وحدات توابع التنفيذ المسؤولة عن الحساب (4 وحدات للأعداد الصحيحة و 4 لأعداد الفاصلة العائمة)، التحميل من الذاكرة والتخزين فيها، والتحكم المباشرة بالذاكرةDMA controller، وملف سجلات بعرض 128بت.
* المتحكم بتدفق الذاكرة Memory Flow Controller والذي بدوره يحتوي على المتحكم بالذاكرة DMA الذي يجلب المعطيات من الذاكرة الرئيسية RAM ويخزنها بالذاكرة المحلية Local Store عن طريق مسار الـ EIB، ووحدة التحكم بالذاكرة the memory management unit.
* ذاكرة محلية تقع بين هاتين الوحدتين تخزن فيها المعطيات التي سننفذ العمليات عليها.
كما تحتوي كل نواة SPE على سجلات بعرض 128 بت، ونلاحظ عدم وجود ذاكرة خابية واستبدالها بالذاكرة المحلية. يقع على عاتق هذه النوى تنفيذ العمليات الحسابية حيث تأخد كل نواة تعليمتين كل نبضة ساعة، وتفحصهما إمكانية تنفيذهما على التوازي، ثم تدخل كل من هاتين التعليمتين ضمن قناة توارد (زوجية أو فردية) حتى تنفذ. بعد التنفيذ تُأخد النتائج وتوضع في ترتيبها الصحيح ثم تأخد نتائجها إلى الذاكرة المحلية. وعندما تريد هذه النوى التخاطب مع الخابية ذات المستوى الثاني L2 ومع الذاكرة الرئيسية تستعمل ال MIC.

### مسار الربط بين العناصر 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.

## استخدامات المعالج سيل الممكنة

* السينما المنزلية: أعلنت توشيبا عن تخطيطها لاستخدام المعالج سيل في شاشات التلفاز العالية الدقة HDTV.
* الحوسبة الخارقة Super Computing كما في حاسب الرودرنر.
* ألعاب الفيديو سوني بلاي ستايشن 3 PlayStation.
* الحوسبة العنقودية Clustering.
* معالجة الإشارات الرقمية Digital Signal Processors (DSP).

## المصادر

Ahmadi, S.H.R.. The CELL processor. Tehran: School of Electrical and Computer Engineering at University of Tehran, 2005. School of Electrical and Computer Engineering at University of Tehran. 2005. 13 Dec. 2009 <http://ece.ut.ac.ir/classpages/S84/CustomDSPDesign/Seminars_05/AHMADI.PPT>.
The Potential of the Cell Processor for Scientific Computing
Synergistic Processing in Cell's Multicore Architecture
IBM Offers Higher Performance Computing Outside the Lab
* بوابة علم الحاسوب