اقرأ في هذا المقال
- ما هو كمبيوتر مجموعة التعليمات المعقدة CISC Processor
- معمارية معالجات CISC Processors
- مجموعات تعليمات معالجات CISC
- كيف تقلل تعليمات نمط CISC من طول الكود
- خطوط أنابيب التجزئة للتعليمات في معالجات CISC
- مزايا وعيوب معالجات CISC
تمّ تقديم معالج (CISC) قبل تطور معالج (RISC)، لم يكن السبب أنّ (CISC) كان أسلوبًا خاطئًا، تمّ تطوير كل من (CISC) و(RISC) على طيف مختلف، يحتوي معالج (CISC) على تعليمات تشغل أكثر من كلمة ذاكرة واحدة، وهي تعليمات واحدة لها عدة تعليمات منخفضة المستوى، تتطلب كل تعليمة أكثر من دورة (one clock cycle).
ما هو كمبيوتر مجموعة التعليمات المعقدة CISC Processor
(CISC) هو اختصار لـ “كمبيوتر مجموعة التعليمات المعقدة” (Complex Instruction Set Computer)، تمّ تطوير معالجات (CISC) في السبعينيات قبل تطور معالجات (RISC) “أجهزة كمبيوتر مجموعة التعليمات المخفضة” (Reduced Instruction Set Computers) خلال هذه الفترة، تكون ذاكرة الكمبيوتر “صغيرة” و “باهظة الثمن”.
كانت معالجات (CISC) مفيدة في تبسيط الشفرة وجعلها أقصر لتقليل متطلبات الذاكرة، في معالج (CISC)، تحتوي التعليمات الفردية على “عدة عمليات منخفضة المستوى”، وهذا يجعل تعليمات (CISC) قصيرة ولكنّها “معقدة”، في هذا المقال، سنتعرف على البنية ومجموعة التعليمات وخطوط أنابيب التجزئة في معالجات (CISC) ومزاياها وعيوبها.
معمارية معالجات CISC Processors
كما تحدثنا أعلاه، فإنّ الهدف الرئيسي لمعالج (CISC) هو تقليل حجم البرنامج عن طريق تقليل عدد التعليمات في البرنامج، يتم ذلك عن طريق “تضمين بعض التعليمات ذات المستوى المنخفض في تعليمات معقدة واحدة”، في وقت لاحق، عند فك تشفير هذه التعليمات، تولد عدة تعليمات دقيقة لتنفيذها.
الآن إذا تمّ تبسيط البرنامج / البرمجية (program/software)، فيجب أن يبدأ الجهاز في العمل ويجب أن يكون قادرًا على أداء المهام المعقدة، لهذا السبب يحتوي معالج (CISC) على أجهزة معقدة، في معمارية (CISC) سنلاحظ التالي:
هنا، لدينا وحدة تحكم خاصة بالبرنامج المصغر تستخدم سلسلة من التعليمات الدقيقة للبرنامج المصغر (microprogram) المخزنة في “ذاكرة التحكم” (control memory)، لوحدة التحكم في البرنامج الصغير وتوليد إشارات التحكم، تصل وحدات التحكم إلى إشارات التحكم التي تنتجها وحدة التحكم في برنامج (microprogram) وتعمل على تشغيل أجهزة المعالجات.
يقوم مسار التعليمات والبيانات بجلب كود التشغيل ومعاملات التعليمات من الذاكرة، ذاكرة التخزين المؤقت (Cache) والذاكرة الرئيسية هي المكان الذي يتم فيه تخزين تعليمات البرنامج والمعاملات، أمثلة على معالجات (CISC) هي: (IBM 370/168, VAX 11/780, Intel 80486).
مجموعات تعليمات معالجات CISC
تعليمات (CISC) معقدة بطبيعتها وتشغل أكثر من كلمة واحدة في الذاكرة، مثل (RISC) يستخدم (Load / Store) للوصول إلى معاملات الذاكرة، يحتوي (CISC) على تعليمات (Move) للوصول إلى معاملات الذاكرة، ولكن، على عكس (Load and Store)، فإنّ عملية النقل في (CISC) لها نطاق أوسع، يمكن لتعليمات (CISC) “الوصول مباشرة إلى معاملات الذاكرة”، الشكل العام لتعليمات (Move) هو:
Move destination, source
يمكنه نقل معامل فوري إلى موقع ذاكرة أو سجل:
Move A, 100
Move R, 100
يمكنه نقل المعامل بين موقعين من الذاكرة:
Move A, B
يمكنه نقل المعامل بين سجلين:
Move R1, R2
بما في ذلك أوضاع العنونة الأساسية الخمسة مثل: الوضع المباشر (Immediate mode)، الوضع المباشر / المطلق (direct/absolute mode)، وضع السجل (register mode)، الوضع غير المباشر (Indirect mode) ووضع الفهرس (Index mode)، تحتوي مجموعة تعليمات (CISC) على بعض أوضاع العنونة الإضافية، وهي “وضع الزيادة التلقائية” (auto increment mode) و “وضع التناقص التلقائي” (auto decrement mode) و “الوضع النسبي” (relative mode):
وضع الزيادة التلقائية Auto increment mode
هنا، العنوان الفعلي (effective address) للمعامل هو محتوى السجل، بعد الوصول إلى محتوى السجل، تتم زيادته تلقائيًا للإشارة إلى موقع ذاكرة المعامل التالي.
وضع التناقص التلقائي Auto decrement mode
هنا أيضًا، العنوان الفعلي للمعامل هو محتوى السجل، ولكن، هنا في البداية، يتم تقليل محتوى السجل ثمّ يتم استخدام محتوى السجل كعنوان فعلي للمعامل.
الوضع النسبي Relative Mode
إنّه مشابه لـ “وضع سجل الفهرس” حيث يتم الحصول على العنوان الفعلي عن طريق إضافة ثابت إلى محتوى سجل الأغراض العامة، في الوضع النسبي بدلاً من سجل الأغراض العامة (general-purpose register)، يتم استخدام عداد البرنامج (program counter)، يستخدم هذا النوع من وضع العنونة للإشارة إلى نطاق كبير من المساحة في الذاكرة، لقد ذكرنا أعلاه أنّ معالج (CISC) يقلل من عدد التعليمات التي تجعل طول الكود أقصر نسبيًا.
كيف تقلل تعليمات نمط CISC من طول الكود
لنفترض أنّ لدينا عملية كالتالي:
A= B+C
مجموعة تعليمات (RISC) لهذا ستكون:
Load R2, B
Load R3, C
Add R4, R2, R3
Store R4, A
الآن، لنرى مجموعة تعليمات (CISC) لنفس العملية:
Move A, B
Add A, C
يتم تحقيق الهدف من أربعة تعليمات نمط (RISC) من خلال تعليمتين فقط من نمط (CISC)، لذلك يمكننا القول أنّ بنية (CISC) تقلل بشكل فعّال عدد التعليمات في البرنامج كتنفيذ تعليمة واحدة، وتنفذ العديد من التعليمات منخفضة المستوى في البرنامج.
خطوط أنابيب التجزئة للتعليمات في معالجات CISC
توفر تعليمات نمط (RISC) سهولة في تنفيذ خطوط أنابيب التجزئة (pipelining) لأنّها كلها تتكون من كلمة واحدة، توجد معاملات جميع التعليمات في نفس الموضع داخل الكلمة، باستثناء تعليمات التحميل والتخزين، تعمل جميع التعليمات الأخرى على معاملات السجل، لذلك يصبح من السهل تنفيذ خطوط أنابيب لتعليمات نمط (RISC)، ولكن، الأمر نفسه لا ينطبق على تعليمات أسلوب (CISC)، تعليمات (CISC) ذات “طول متغير” ولديها “معاملات متعددة” و”أوضاع عنونة معقدة” و”تعليمات معقدة”.
الآن، تشغل تعليمات (CISC) أكثر من كلمة ذاكرة، لذلك سوف يستغرق الأمر عدة دورات لجلب المعامل، علاوةً على ذلك، نعلم أنّ التعليمات ذات أحجام وتنسيقات متغيرة، وهذا يعقد فك تشفير التعليمات وجلب المعامل، هذا هو السبب في أنّ تنفيذ خطوط أنابيب التعليمات إلى تعليمات نمط (CISC) يعد مهمة معقدة، دعونا نفهم هذا بمساعدة المثال التالي:
Move (R2), (R3)
Move (R4), R5
في تعليمة (Move) الأولى، يكون العنوان الفعلي لكل من المعاملين هو موقع الذاكرة، لذلك، سوف يتطلب وصولين للذاكرة، في تعليمة (Move) الثانية، يكون العنوان الفعلي لـ “المعامل الأول” هو موقع الذاكرة والعنوان الفعلي لـ “المعامل الثاني” هو سجل، التعليمة الثانية تحتاج فقط إلى ذاكرة وصول واحدة، هنا، يجب إيقاف تعليمة (Move) الثانية بحيث يمكن لتعليمات (Move) الأولى إكمال الوصول إلى كلا المعاملين من الذاكرة، ومن ثمّ، فإنّ تنفيذ خطوط أنابيب تعليمات نمط (CISC) معقد للغاية.
مزايا وعيوب معالجات CISC
المزايا
- حجم الكود أقصر نسبيًا ممّا يقلل من متطلبات الذاكرة.
- يؤدي تنفيذ تعليمة واحدة إلى إنجاز العديد من المهام ذات المستوى المنخفض.
- وضع العنونة المعقد يجعل الوصول إلى الذاكرة مرنًا.
- يمكن لتعليمات (CISC) الوصول مباشرة إلى مواقع الذاكرة.
العيوب
- على الرغم من تقليل حجم الكود، إلّا أنّه يتطلب عدة دورات على مدار الساعة لتنفيذ تعليمة واحدة، ممّا يقلل من الأداء العام للكمبيوتر.
- تنفيذ خطوط الأنابيب لتعليمات (CISC) معقد بعض الشيء.
- يجب أن تكون بنية الأجهزة أكثر تعقيدًا لتبسيط تنفيذ البرامج.
- مصممة لتقليل متطلبات الذاكرة إلى أدنى حد عندما تكون الذاكرة أصغر وأكثر تكلفة، لكن اليوم تغير السيناريو في الوقت الحاضر، أصبحت الذاكرة غير مكلفة ومعظم أجهزة الكمبيوتر لديها قدر كبير من الذاكرة.