اقرأ في هذا المقال
تصميمات معمارية وحدة المعالجة المركزية CPU:
يعد كل من (RISC) و (CISC) بمثابة تصميمات معمارية لوحدة المعالجة المركزية بناءً على تباين مجموعة التعليمات، يتم التمييز بين الإثنين بناءً على عوامل مختلفة مثل وحدة البرمجة (programming unit)، ووضع العنونة (addressing mode)، والساعة (clock)، والتنفيذ، والتطبيق، وما إلى ذلك، الاختلاف الكبير بين (RISC) و(CISC) هو أنّ (RISC) تستخدم وحدة برمجة صلبة (hardwired programming unit)، بينما (CISC) لديها وحدة برمجة دقيقة (microprogramming unit).
ليس هذا فقط، حيث يشير الاسم (RISC) إلى أنّ لديها مجموعة تعليمات مخفضة، ممّا يعني أنّه لا يوجد سوى عدد قليل من الإرشادات في مجموعة التعليمات الخاصة بها، ومع ذلك، تحتوي (CISC) على العديد من التعليمات المختلفة الموجودة في مجموعة التعليمات الخاصة بها ويتم استخدامها لأداء عمليات معقدة، نظرًا لأنّ الإثنين مرتبطان بمجموعة تعليمات، فلنفهم أولاً، ما المقصود بمجموعة التعليمات؟
ما هي مجموعة التعليمات instruction set؟
مجموعة التعليمات أو بنية مجموعة التعليمات المختصرة باسم (ISA) هي مزيج من التعليمات المختلفة التي تأمر المعالج بتنفيذ أي عملية مرغوبة، يحتوي على تعليمات متعددة، وأنماط عنونة، وبعض السجلات، وبنية الذاكرة، وما إلى ذلك تحدد (ISA) التعليمات المتعددة التي يدعمها المعالج، بعض الأمثلة هي (Intel x86) و(AMD) وما إلى ذلك.
تعريف RISC:
(RISC) هو نهج حوسبة يعتمد على المعالج، يوفر تنفيذ مهام الحوسبة بتعليمات بسيطة متعددة، تمّ تصميمها بهدف أن تؤدي معالجات الكمبيوتر تنفيذ التعليمات البسيطة بسرعة كبيرة، من خلال هذا النهج، يمكن تثبيت معالجة البيانات عن طريق تقليل الإرشادات التي يتم تخزينها بشكل دائم في المعالج من البداية حيث أنّها توفر الاعتماد على البرامج بشكل أكبر مقارنة بالبرامج المخزنة المضمنة.
هنا بشكل أساسي، يتم أولاً تقسيم أي كود معقد إلى وحدات بسيطة ثم يتم تنفيذ كل وحدة بسيطة، يتطلب عددًا أكبر من سجلات الأغراض العامة (general-purpose registers)، حتى أنّ التعليمات الفردية مقسمة إلى أوامر متعددة يتطلب تخزينها سجلات متعددة.
تعريف CISC:
(CISC) هو نهج حوسبة آخر قائم على المعالج، يستخدم مجموعات تعليمات معقدة أو أكواد لتنفيذ أي مهمة مرغوبة، إنّه يضع التركيز الكامل على طريقة تقليل التعليمات الإجمالية لكل برنامج، وبالتالي، فهو مرتبط بأجهزة المعالج التي يمكنها التعامل مع تنفيذ العديد من العمليات المرتبطة بالتسلسل باستخدام تعليمات محددة.
إنّه يوفر تنفيذ التعليمات مباشرة مع نطاق ذاكرة النظام وبالتالي لا توجد حاجة هنا لوظائف التخزين أو التحميل، لا تعتمد هذه العملية كثيرًا على المترجم حيث يتم بناء التعليمات المعقدة على الأجهزة نفسها، وبالتالي فإنّ متطلبات ذاكرة الوصول العشوائي (RAM) أقل أيضًا، بشكل أساسي، يوفر تنفيذ العملية في الذاكرة حيث يمكن أن تكون التعليمات المعقدة قادرة على القيام بذلك وبالتالي يلزم عدد أقل من السجلات (registers).
الفرق بين RISC وCISC:
أساس المقارنة | RISC | CISC |
---|---|---|
ترمز إلى | تقليل مجموعة تعليمات الحوسبة (Reduced instruction set computing). | تعقيد مجموعة التعليمات الحوسبة (Complex instruction set computing). |
وحدة البرمجة | وحدة سلكية (Hardwired unit). | البرمجة الدقيقة (Microprogramming). |
طبيعة مجموعة التعليمات | بسيطة | معقدة |
وقت التنفيذ | قصير جدًا | طويل نسبيًا |
تحسين مجموعة التعليمات | في البرمجيات (On software) | في الأجهزة (On hardware) |
بنية التعليمات | ثابت (32 بت) | متغير (16 – 64 بت) |
وحدة الذاكرة | غير موجودة | موجودة |
أوضاع العنونة المتوفرة | محدودة | مركبة |
متطلبات مجموعة السجلات | مضاعفة | مفردة |
مساحة الذاكرة المطلوبة | كبيرة | صغيرة نسبيًا |
عرض فك التشفير | بسيط | معقد |
أنواع البيانات | أقل | أكثر |
متطلبات الساعة لكل دورة للتنفيذ | مفرد | معقد |
التعقيد المرتبط | المترجم (Compiler) | برنامج صغير (Microprogram) |
الحاجة إلى ذاكرة خارجية | لا يحتاج | يحتاج |
العمليات الحسابية | فقط من سجل إلى سجل. | من سجل إلى سجل ومن سجل إلى الذاكرة ومن الذاكرة إلى الذاكرة. |
الذاكرة المؤقتة (Cache) | فردي للبيانات والتعليمات. | مجمعة للبيانات والتعليمات. |
أمثلة | ARM, Alpha, Atmel’s AVR, RISC-V, etc. | Intel x86, AMD, VAX, etc. |
التطبيقات | مفيد في معالجة الفيديو والصور جنبًا إلى جنب مع تقنية الاتصالات. | مفيد في أنظمة الأمن والتشغيل الآلي للمنزل. |
الاختلافات الرئيسية بين RISC وCISC:
- تعتبر حوسبة مجموعة التعليمات المخفضة، أي (RISC)، بسيطة بشكل أساسي نظرًا لحقيقة أنّ مجموعة التعليمات هنا تتضمن تعليمات لتحميل العمليات وتقييمها وتخزينها، في حين أنّ حوسبة مجموعة التعليمات المعقدة، أي (CISC) تعتبر معقدة لأنّ تعليمة واحدة تؤدي العمليات وتعمل على تحميلها وتقييمها وتخزينها.
- تستخدم (RISC) وحدة برمجة سلكية بينما تمتلك (CISC) برمجة دقيقة.
- يعتمد تحسين مجموعة تعليمات (RISC) على البرامج بينما يعتمد (CISC) على الأجهزة.
- توفر الطبيعة البسيطة لمجموعة تعليمات (RISC) وقت تنفيذ قصيرًا مقارنة بمجموعة تعليمات (CISC)، حيث أنّ (CISC) لها طبيعة معقدة.
- لغرض تخزين التعليمات، يحتاج معالج (RISC) إلى مجموعات سجلات متعددة بينما يتطلب نفس الشيء مجموعة سجلات واحدة في حالة معالج (CISC).
- حجم تنسيق التعليمات في حالة (RISC) ثابت وهو (32) بت بينما تقدم (CISC) تنسيق مجموعة تعليمات متغيرة يتراوح حجمها بين (16) إلى (64) بت لكل تعليمة.
- البرنامج المصمم ل (RISC)، يحتاج مساحة ذاكرة كبيرة لتخزينه، على العكس من ذلك، بالنسبة لعمارة (CISC)، يتطلب البرنامج المصمم مساحة أقل نسبيًا.
- فك تشفير تعليمات (RISC) أبسط نسبيًا من (CISC).
- في (RISC)، يوجد عدد محدود من أوضاع العنونة التي تدعم العملية بينما يوفر (CISC) أوضاع عنونة مركبة للعملية.
- متوسط الساعة المطلوبة لكل دورة لتنفيذ العملية في (RISC) هو بشكل عام واحد بينما يتطلب (CISC) ساعات متعددة لتنفيذ العملية، أي حوالي (2) إلى (15).
- في معالج (RISC)، تتطلب كل من البيانات والتعليمات ذاكرة تخزين مؤقتة منفصلة، على العكس من ذلك، هناك ذاكرة تخزين مؤقتة مدمجة للبيانات والتعليمات في (CISC).
- في (RISC)، يرتبط التعقيد بالمترجم بينما في (CISC) يرتبط التعقيد بالبرنامج الصغير.
- لغرض الحساب، لا يستخدم (RISC) أي ذاكرة خارجية بينما يتطلب (CISC) ذاكرة خارجية لنفسه.
- في وقت توسيع الكود، قد تكون هناك بعض المشاكل في (RISC) لكن توسيع الكود لا يسبب مشكلة في (CISC).