حاسوب ذو مجموعة تعليمات معقدة
الحاسوب ذو مجموعة التعليمات المعقدة ( CISC ) هو بنية حاسوبية تسمح للتعليمات الفردية بتنفيذ عدة عمليات منخفضة المستوى (مثل تحميل البيانات من الذاكرة ، وإجراء عملية حسابية ، وتخزين البيانات في الذاكرة) ، أو تنفيذ عمليات متعددة الخطوات أو أنماط عنونة مختلفة ضمن التعليمات الفردية. [ 1 ] وقد صِيغ هذا المصطلح لاحقًا في مقابل الحاسوب ذي مجموعة التعليمات المختصرة (RISC)، [ 2 ] ولذلك أصبح مصطلحًا شاملًا لكل ما ليس من نوع RISC، [ 3 ] حيث تتمثل بعض أبرز عوامل التمييز في بنية RISC في طول التعليمات الموحد، وفصل تعليمات الوصول إلى الذاكرة بشكل صارم .
تشمل أمثلة معمارية CISC الحواسيب المركزية المعقدة وصولاً إلى وحدات التحكم الدقيقة البسيطة حيث لا يتم فصل عمليات تحميل وتخزين البيانات في الذاكرة عن التعليمات الحسابية. [ 4 ] من بين معمارية مجموعات التعليمات التي أُطلق عليها لاحقًا اسم CISC معمارية System/360 إلى z/Architecture ، ومعمارية PDP-11 و VAX ، وغيرها الكثير. تشمل المعالجات الدقيقة ووحدات التحكم الدقيقة المعروفة التي أُطلق عليها أيضًا اسم CISC في العديد من المنشورات الأكاديمية [ 5 ] عائلات Motorola 6800 و 6809 و 68000 ؛ وعائلات Intel 8080 و iAPX 432 و x86 و 8051 ؛ وعائلات Zilog Z80 و Z8 و Z8000 ؛ وعائلة National Semiconductor NS320xx ؛ وعائلة MOS Technology 6502 ؛ وغيرها.
اعتبر بعض الكتّاب بعض التصاميم حالاتٍ هامشية. فعلى سبيل المثال، وُصفت شريحة PIC من شركة Microchip Technology بأنها RISC في بعض الأوساط وCISC في أوساط أخرى.
الحوافز والفوائد
قبل أن تبرز فلسفة RISC، سعى العديد من مهندسي الحاسوب إلى سد ما يُعرف بالفجوة الدلالية ، أي تصميم مجموعات تعليمات تدعم مباشرةً بنيات البرمجة عالية المستوى، مثل استدعاءات الإجراءات، والتحكم في الحلقات، وأنماط العنونة المعقدة ، مما يسمح بدمج عمليات الوصول إلى هياكل البيانات والمصفوفات في تعليمات واحدة. كما تُشفّر التعليمات عادةً بشكل مكثف لزيادة كثافة الشيفرة. ينتج عن الطبيعة المُدمجة لمجموعات التعليمات هذه أحجام برامج أصغر وعدد أقل من عمليات الوصول إلى الذاكرة الرئيسية (التي كانت غالبًا بطيئة)، مما أدى في ذلك الوقت (أوائل الستينيات وما بعدها) إلى توفير هائل في تكلفة ذاكرة الحاسوب ومساحة التخزين، بالإضافة إلى سرعة تنفيذ أعلى. كما ساهم ذلك في رفع إنتاجية البرمجة حتى في لغة التجميع ، حيث لم تكن لغات البرمجة عالية المستوى مثل فورتران أو ألغول متاحة أو مناسبة دائمًا. في الواقع، لا تزال بعض المعالجات الدقيقة في هذه الفئة تُبرمج بلغة التجميع لأنواع معينة من التطبيقات الحساسة. [ 6 ]
New instructions
في سبعينيات القرن الماضي، أشارت تحليلات لغات البرمجة عالية المستوى إلى أن المترجمات تنتج لغة آلة معقدة مقابلة. وقد تبيّن أن إضافة تعليمات جديدة من شأنها تحسين الأداء. أُضيفت بعض التعليمات التي لم يكن من المفترض استخدامها في لغة التجميع، ولكنها تتوافق جيدًا مع لغات البرمجة عالية المستوى المُترجمة. وجرى تحديث المترجمات للاستفادة من هذه التعليمات. ويمكن ملاحظة فوائد التعليمات الغنية بالدلالات ذات الترميزات المُختصرة في المعالجات الحديثة أيضًا، لا سيما في قطاع الأداء العالي حيث تُعدّ الذاكرة المؤقتة عنصرًا أساسيًا (على عكس معظم الأنظمة المُدمجة ). ويعود ذلك إلى أن هذه الذاكرة السريعة، ولكنها معقدة ومكلفة، محدودة الحجم بطبيعتها، مما يجعل استخدام التعليمات البرمجية المُختصرة أمرًا بالغ الأهمية.
مشاكل التصميم
رغم أن العديد من التصاميم حققت هدف زيادة الإنتاجية بتكلفة أقل، وسمحت أيضًا بالتعبير عن بنيات لغات البرمجة عالية المستوى بعدد أقل من التعليمات، فقد لوحظ أن هذا لم يكن هو الحال دائمًا . على سبيل المثال، قد تؤدي الإصدارات منخفضة التكلفة من البنى المعقدة (أي التي تستخدم موارد أقل) إلى حالات يمكن فيها تحسين الأداء عن طريق عدم استخدام تعليمات معقدة (مثل استدعاء إجراء أو تعليمة إدخال)، واستخدام سلسلة من التعليمات الأبسط بدلاً من ذلك.
أحد أسباب ذلك هو أن مصممي البرامج ( مطوري الشفرة المصغرة ) كانوا أحيانًا يُبالغون في تصميم تعليمات لغة التجميع، بما في ذلك ميزات لا يُمكن تنفيذها بكفاءة على الأجهزة الأساسية المتاحة. على سبيل المثال، قد تحدث "آثار جانبية" (تتجاوز العلامات التقليدية)، مثل ضبط سجل أو موقع ذاكرة نادر الاستخدام؛ فإذا تم ذلك عبر ناقلات داخلية عادية (غير مكررة)، أو حتى الناقل الخارجي، فسيتطلب ذلك دورات إضافية في كل مرة، وبالتالي يكون غير فعال.
حتى في التصاميم المتوازنة عالية الأداء، قد يكون فك تشفير التعليمات عالية التشفير وعالية المستوى (نسبيًا) وتنفيذها بكفاءة ضمن عدد محدود من الترانزستورات أمرًا معقدًا. ولذلك، تطلبت هذه البنى جهدًا كبيرًا من مصمم المعالج في الحالات التي لا يكون فيها الحل الأبسط، ولكنه (عادةً) أبطأ، القائم على جداول فك التشفير و/أو تسلسل التعليمات البرمجية الدقيقة مناسبًا. في وقت كانت فيه الترانزستورات والمكونات الأخرى موردًا محدودًا، أدى ذلك أيضًا إلى تقليل عدد المكونات وفرص تحسين الأداء الأخرى.
فكرة RISC
تُعدّ الدوائر الإلكترونية التي تُنفّذ العمليات المُحدّدة بواسطة الشفرة الدقيقة في العديد من معالجات CISC (وليس جميعها) بمثابة معالج يُشبه في بنيته، من نواحٍ عديدة، تصميمات وحدات المعالجة المركزية (CPU) المبكرة جدًا. في أوائل سبعينيات القرن الماضي، أدى ذلك إلى ظهور أفكار للعودة إلى تصميمات معالجات أبسط، وذلك لتسهيل العمل دون الحاجة إلى جداول ذاكرة القراءة فقط (ROM) ( التي كانت آنذاك كبيرة الحجم ومكلفة نسبيًا) أو هياكل مصفوفة الطور القابلة للبرمجة (PLA) للتسلسل وفك التشفير.
كان معالج RISC المبكر ( IBM 801 - مركز أبحاث واتسون التابع لشركة IBM ، منتصف سبعينيات القرن الماضي) عبارة عن جهاز بسيط ذي بنية خطية مُحكمة، صُمم في الأصل ليُستخدم كنواة داخلية للتعليمات البرمجية الدقيقة، أو محرك، في تصميمات CISC، ولكنه أصبح أيضًا المعالج الذي عرّف جمهورًا أوسع بفكرة RISC. إن البساطة والانتظام في مجموعة التعليمات الظاهرة من شأنهما تسهيل تنفيذ مراحل المعالجة المتداخلة ( التنفيذ المتسلسل ) على مستوى لغة الآلة (أي المستوى الذي تراه المترجمات). مع ذلك، كان التنفيذ المتسلسل على هذا المستوى مُستخدمًا بالفعل في بعض "الحواسيب العملاقة" CISC عالية الأداء لتقليل زمن دورة التعليمات (على الرغم من تعقيدات التنفيذ ضمن العدد المحدود للمكونات وتعقيد التوصيلات الممكن في ذلك الوقت). من ناحية أخرى، يمكن أن يكون تنفيذ التعليمات البرمجية الدقيقة الداخلية في معالجات CISC مُنفذًا متسلسلًا بدرجات متفاوتة اعتمادًا على التصميم المحدد، وبالتالي فهو يُشبه إلى حد ما البنية الأساسية لمعالجات RISC.
تم وصف الحاسوب العملاق CDC 6600، الذي تم تسليمه لأول مرة عام 1965، بأثر رجعي بأنه من نوع RISC. [ 7 ] [ 8 ] وقد تميز ببنية تحميل وتخزين تسمح بتنفيذ ما يصل إلى خمس عمليات تحميل وعمليتي تخزين في وقت واحد تحت سيطرة المبرمج. كما احتوى على وحدات وظيفية متعددة يمكنها العمل في الوقت نفسه.
مقياس فائق
في سياق أكثر حداثة، يجعل التشفير المعقد ذو الطول المتغير المستخدم في بعض معمارية CISC النموذجية من الصعب، ولكنه لا يزال ممكنًا، بناء تطبيق فائق القياس لنموذج برمجة CISC مباشرةً ؛ ويُعد معالج Pentium الأصلي فائق القياس ذو الترتيب الداخلي ومعالج Cyrix 6x86 فائق القياس ذو الترتيب الخارجي مثالين معروفين على ذلك. قد تحد عمليات الوصول المتكررة إلى الذاكرة لمعاملات جهاز CISC النموذجي من التوازي على مستوى التعليمات الذي يمكن استخراجه من الكود، على الرغم من أن هذا الأمر يتم التخفيف منه بشكل كبير بواسطة هياكل ذاكرة التخزين المؤقت السريعة المستخدمة في التصاميم الحديثة، بالإضافة إلى تدابير أخرى. نظرًا للتعليمات المدمجة والغنية دلاليًا بطبيعتها، فإن متوسط كمية العمل المنجز لكل وحدة كود آلة (أي لكل بايت أو بت) يكون أعلى بالنسبة لمعالج CISC منه بالنسبة لمعالج RISC، مما قد يمنحه ميزة كبيرة في تطبيق حديث قائم على ذاكرة التخزين المؤقت.
لم تعد الترانزستورات المستخدمة في المنطق، ومصفوفات البوابات المنطقية القابلة للبرمجة (PLAs)، والبرامج الدقيقة موارد نادرة؛ فالذاكرة المؤقتة الكبيرة عالية السرعة هي الوحيدة التي يحدها الحد الأقصى لعدد الترانزستورات اليوم. على الرغم من تعقيدها، فإن عدد الترانزستورات في وحدات فك تشفير CISC لا ينمو بشكل أُسّي مثل العدد الإجمالي للترانزستورات في المعالج (حيث تُستخدم الغالبية العظمى منها عادةً للذاكرة المؤقتة). وقد أدى ذلك، إلى جانب الأدوات الأفضل والتقنيات المُحسّنة، إلى تطبيقات جديدة لتصاميم عالية التشفير ومتغيرة الطول دون قيود على التحميل والتخزين (أي غير RISC). وهذا ما يُفسّر إعادة تنفيذ البنى القديمة مثل x86 واسعة الانتشار (انظر أدناه)، بالإضافة إلى تصميمات جديدة لوحدات التحكم الدقيقة للأنظمة المُدمجة ، والاستخدامات المُشابهة. تم حل مشكلة التعقيد الفائق في x86 الحديثة عن طريق تحويل التعليمات إلى عملية دقيقة واحدة أو أكثر ، وإصدار تلك العمليات الدقيقة ديناميكيًا، أي التنفيذ الفائق غير المباشر والديناميكي؛ ويُعد معالج Pentium Pro ومعالج AMD K5 من الأمثلة المبكرة على ذلك. يُتيح هذا التصميم وضع تصميم فائق التوازي بسيط نسبيًا بعد وحدات فك التشفير (والمخازن المؤقتة) (المعقدة نوعًا ما)، مما يُوفر، إن صح التعبير، أفضل ما في كلا النوعين من حيث العديد من الجوانب. تُستخدم هذه التقنية أيضًا في معالجات IBM z196 والمعالجات الدقيقة اللاحقة من نوع z/Architecture .
مصطلحات CISC و RISC
بحلول منتصف ثمانينيات القرن العشرين، كان الإجماع السائد في صناعة الحواسيب أن معالجات RISC أكثر كفاءة من معالجات CISC. وقدّرت شركة Digital Equipment Corporation أن نسبة السعر إلى الأداء في معالجات RISC لا تتجاوز نصف مثيلتها في معالجات CISC. وكان من بين ردود فعل موردي معالجات CISC المحتملة ما يلي: [ 9 ]
- قم بتحسين معالج CISC قدر الإمكان حتى الوصول إلى حدود البنية الحالية. تم اختياره لأجهزة IBM الرئيسية و x86 .
- انتقل إلى معالجات RISC بأسرع ما يمكن. وقد اختارت شركة Sun Microsystems هذا الخيار بالانتقال من سلسلة Motorola 68000 إلى معالجات SPARC .
نجحت إنتل في تحسين معالجات x86 لتُضاهي أداء معالجات RISC. [ 10 ] وقد فقدت مصطلحات CISC وRISC دلالتها مع التطور المستمر لتصاميمها وتطبيقاتها. دعمت أولى تطبيقات x86 ذات البنية المتوازية العالية (أو الضيقة)، وهي تصاميم 486 من إنتل، و AMD ، و Cyrix ، وIBM، جميع التعليمات التي دعمتها سابقاتها، لكنها حققت أقصى كفاءة فقط على مجموعة فرعية بسيطة نسبيًا من تعليمات x86، والتي كانت أكبر بقليل من مجموعة تعليمات RISC النموذجية (أي بدون حدود التحميل والتخزين النموذجية لـ RISC ). [ 5 ] كان جيل معالجات بنتيوم P5 من إنتل نسخة فائقة التوازي من هذه المبادئ. ومع ذلك، تقوم معالجات x86 الحديثة أيضًا (عادةً) بفك تشفير التعليمات وتقسيمها إلى تسلسلات ديناميكية من العمليات الدقيقة المخزنة داخليًا ، مما يساعد على تنفيذ مجموعة فرعية أكبر من التعليمات بطريقة متوازية (متداخلة)، ويسهل استخراج التوازي بشكل أكثر تقدمًا من تدفق التعليمات البرمجية، لتحقيق أداء أعلى.
خلافًا للتبسيطات الشائعة (الموجودة أيضًا في بعض النصوص الأكاديمية)، لا تحتوي جميع معالجات CISC على ترميز دقيق أو تعليمات "معقدة". [ 11 ] ولأن مصطلح CISC أصبح مصطلحًا شاملًا يُشير إلى أي شيء ليس بنية تحميل وتخزين (RISC)، فإن ما يُحدد CISC ليس عدد التعليمات، ولا تعقيد التنفيذ أو التعليمات نفسها، بل أن التعليمات الحسابية تُجري أيضًا عمليات وصول إلى الذاكرة. [ 12 ] بالمقارنة مع معالج CISC صغير ذي 8 بت، تُعد تعليمات الفاصلة العائمة في RISC معقدة. ولا يشترط أن تحتوي CISC على أنماط عنونة معقدة؛ فقد تحتوي معالجات RISC ذات 32 أو 64 بت على أنماط عنونة أكثر تعقيدًا من معالجات CISC الصغيرة ذات 8 بت.
تختلف معالجات PDP -10 و PDP-8 ومعالجات x86 ومعالجات Intel 4004 ومعالجات Motorola من سلسلة 68000 وحواسيب IBM Z المركزية و Burroughs B5000 و VAX و Zilog Z80000 و MOS Technology 6502 اختلافًا كبيرًا في عدد التعليمات وأحجامها وتنسيقاتها، وعدد السجلات وأنواعها وأحجامها، وأنواع البيانات المتاحة. بعضها يدعم عمليات مثل البحث عن سلسلة فرعية، أو العمليات الحسابية العشرية ثنائية الرتبة (BCD) بدقة عشوائية، أو الدوال المتسامية ، بينما يقتصر البعض الآخر على الجمع والطرح بدقة 8 بت. لكنها جميعًا تندرج ضمن فئة CISC [ 13 ] ، لأنها تحتوي على تعليمات "تحميل-تشغيل" تقوم بتحميل و/أو تخزين محتويات الذاكرة ضمن نفس التعليمات التي تُجري العمليات الحسابية الفعلية. على سبيل المثال، يُعتبر معالج PDP-8، الذي يحتوي على 8 تعليمات ثابتة الطول فقط ولا يحتوي على أي شفرة دقيقة، معالج CISC بسبب طريقة عمل التعليمات. أما معالج PowerPC، الذي يحتوي على أكثر من 230 تعليمة (أكثر من بعض معالجات VAX)، والعديد من تطبيقاته تتضمن عمليات داخلية معقدة مثل إعادة تسمية السجلات ومخزن إعادة الترتيب ، فهو معالج RISC. في حين أن معالج Minimal CISC يحتوي على 8 تعليمات، ولكنه يُعتبر بوضوح معالج CISC لأنه يجمع بين الوصول إلى الذاكرة والحساب في نفس التعليمات. [ 14 ]
انظر أيضاً
مراجع
- ↑ هينيسي، جون ل.؛ باترسون، ديفيد أ. (2012). هندسة الحاسوب: منهج كمي ( الطبعة الخامسة). مورغان كوفمان. الصفحات 14-16 . ISBN 978-0123838728.
- ↑ باترسون، د . أ.؛ ديتزل، د. ر. (أكتوبر 1980). "حجة لصالح حاسوب مجموعة التعليمات المختصرة". أخبار هندسة الحاسوب الصادرة عن جمعية آلات الحوسبة (ACM SIGARCH) . 8 (6). ACM : 25-33 . doi : 10.1145/641914.641917 . S2CID 12034303 .
- ↑ تانينباوم، أندرو س. (2006). تنظيم الحاسوب الهيكلي ( الطبعة الخامسة). بيرسون. الصفحات 12-14 . ISBN 978-0131485211.
- ↑ ستالينغز، ويليام (2013). تنظيم وبنية الحاسوب ( الطبعة التاسعة). بيرسون. الصفحات 48-50 . ISBN 978-0-13-2936330.
- 1 2 سميث، جيمس إي. (1988). "دراسة لهياكل مجموعات التعليمات". مجلة IEEE Computer . 21 (7): 8-22 . doi : 10.1109/2.46 .
- ↑ كيرنيغان، برايان دبليو. (2017). فهم العالم الرقمي . مطبعة جامعة برينستون. ص 87-88 . ISBN 978-0691176543.
- ↑ "تاريخ الحاسوب: بنية أجهزة سلسلة CDC 6000" . متحف فالسدورب . 23 يوليو 2023. تم الاطلاع عليه في 19 يناير 2024 .
- ↑ أنتوني، سيباستيان (10 أبريل 2012). "تاريخ الحواسيب العملاقة" . إكستريم تك . تم الاطلاع عليه في 19 يناير 2024 .
- ↑ بيل، جوردون ؛ ستريكر، دبليو دي. ما تعلمناه من جهاز PDP-11 - ما تعلمناه من جهازي VAX و Alpha (ملف PDF) (تقرير) . تم الاطلاع عليه بتاريخ 26-06-2025 .
- ↑ "الرئيس التنفيذي السابق لشركة آبل يندم على إلغاء صفقة إنتل" . فوربس . 9 أكتوبر 2003. تاريخ الاطلاع: 28 يونيو 2025 .
- ↑ نول، ليندا؛ لوبور، جوليا (2014). أساسيات تنظيم وهندسة الحاسوب ( الطبعة الرابعة). جونز وبارتليت. الصفحات 63-65 . ISBN 978-1284033144.
- ↑ هينيسي، جون ؛ باترسون، ديفيد . هندسة الحاسوب: منهج كمي (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 14 يونيو 2023. تم الاطلاع عليه في 13 يونيو 2023 .
- ↑ فوربر، ستيف (1989). "جدل RISC-CISC". مجلة الكمبيوتر . 22 (5). معهد مهندسي الكهرباء والإلكترونيات: 29-37 . doi : 10.1109/2.24143 .
- ↑ جونز، دوغلاس و. (1988-06-01). "نموذج CISC مصغر" . أخبار هندسة الحاسوب SIGARCH. 16 ( 3): 56-63 . doi : 10.1145/48675.48684 . ISSN 0163-5964 .
مراجع عامة
- تانينباوم، أندرو س. (2006) تنظيم الحاسوب الهيكلي، الطبعة الخامسة ، بيرسون للتعليم، Inc. أبر سادل ريفر، نيوجيرسي.
للمزيد من القراءة
- مانو، إم. موريس. هندسة نظم الحاسوب ( الطبعة الثالثة). رقم ISBN 978-0131755635.
- فئات الحواسيب
- بنى مجموعات التعليمات
