مجموعة التعليمات المتعامدة
في هندسة الحاسوب ، تُعرف مجموعة التعليمات المتعامدة بأنها بنية مجموعة تعليمات تسمح لجميع أنواع التعليمات باستخدام جميع أنماط العنونة . وهي " متعامدة " بمعنى أن نوع التعليمات ونمط العنونة قد يختلفان بشكل مستقل. لا تفرض مجموعة التعليمات المتعامدة قيودًا تُلزم تعليمات معينة باستخدام سجل محدد [ 1 ]، لذا فإن تداخل وظائف التعليمات يكون ضئيلاً. [ 2 ]
كان التعامد يُعتبر هدفًا رئيسيًا لمصممي المعالجات في سبعينيات القرن الماضي، وكثيرًا ما يُستخدم معالج VAX-11 كمعيار لهذا المفهوم. إلا أن ظهور فلسفات تصميم RISC في ثمانينيات القرن الماضي قلب هذا التوجه رأسًا على عقب.
غالباً ما تحاكي وحدات المعالجة المركزية الحديثة التعامد في خطوة تمهيدية قبل تنفيذ المهام الفعلية في نواة شبيهة بمعالجات RISC. ويُعدّ "التعامد المُحاكى" مفهوماً أوسع يشمل مفاهيم الفصل والاكتمال في مكتبات الدوال ، كما هو الحال في المفهوم الرياضي: فمجموعة الدوال المتعامدة يسهل استخدامها كأساس لتوسيع الدوال، مما يضمن عدم تأثير أي جزء منها على الآخر عند تغيير جزء منها.
المفاهيم الأساسية
في جوهرها، تعمل جميع الحواسيب العامة بنفس الطريقة الأساسية؛ حيث تقرأ وحدة المعالجة المركزية (CPU) البيانات المخزنة في الذاكرة الرئيسية إلى ذاكرة مؤقتة سريعة (مثل مجموعة من سجلات وحدة المعالجة المركزية )، ثم تُجري عليها العمليات، ثم تُعيد كتابتها إلى الذاكرة الرئيسية. تتكون الذاكرة من مجموعة من قيم البيانات، مُشفّرة كأرقام [ أ ] ويُشار إليها بعناوينها ، وكل عنوان منها يُمثل قيمة عددية. هذا يعني أنه يُمكن تطبيق العمليات نفسها المُطبقة على البيانات على العناوين نفسها. [ ب ] أثناء معالجة البيانات، يُمكن تخزينها مؤقتًا في سجلات المعالج ، وهي قيم مؤقتة يُمكن الوصول إليها بسرعة كبيرة. تُستخدم السجلات، على سبيل المثال، عند جمع سلاسل من الأرقام للحصول على مجموع. [ 3 ]
تعليمة واحدة، معامل واحد
في الحواسيب القديمة، كانت بنية مجموعة التعليمات (ISA) تستخدم غالبًا سجلًا واحدًا، يُعرف باسم المُراكم . تضمنت التعليمات عنوانًا للمعامل. على سبيل المثال، كانت إحدى التعليمات تُجبر وحدة المعالجة المركزية على استرجاع الرقم الموجود في الذاكرة عند ذلك العنوان، ثم إضافته إلى القيمة الموجودة مسبقًا في المُراكم. تتميز بنية مجموعة التعليمات هذه، على سبيل المثال البسيط، بـ "تنسيق عنوان واحد" لأن كل تعليمة تتضمن عنوان البيانات. [ 4 ]ADD address
تعاني الحواسيب ذات العنوان الواحد من عيب يتمثل في أن حتى العمليات البسيطة كالجمع تتطلب تعليمات متعددة، كل منها يشغل مساحة محدودة من الذاكرة، [ ج ] ويستغرق وقتًا للقراءة. لنأخذ مثالًا بسيطًا وهو جمع عددين في الذاكرة، 5 و4. في هذه الحالة، سيتعين على البرنامج تحميل القيمة 5 من الذاكرة إلى المُراكم باستخدام التعليمة ، ثم استخدام التعليمة التي تشير إلى 4، وأخيرًا تخزين النتيجة، 9، في موقع آخر في الذاكرة. [ 4 ]LOAD addressADD addressSAVE address
تعليمة واحدة، معاملات متعددة
يمكن تحقيق تحسينات إضافية بتوفير عنواني المعاملين في تعليمة واحدة، على سبيل المثال. تُعدّ مجموعات تعليمات المعالجات ذات "تنسيق العنوانين" شائعة جدًا. ويمكن توسيع المفهوم ليشمل "تنسيق العناوين الثلاثة" حيث يتم أيضًا دمج عنوان المعامل في عنوان موسع . [ 4 ]ADD address 1, address 2SAVEADD address 1, address 2, address of result
في كثير من الأحيان، تكون مساحة الكلمة الأساسية في الحاسوب أكبر بكثير من اللازم لاستيعاب التعليمات والعنوان فقط، وفي معظم الأنظمة، توجد بتات فائضة يمكن استخدامها لتخزين قيمة ثابتة بدلاً من العنوان. ويمكن تحسين التعليمات بشكل أكبر إذا سمحت باستبدال أي من المعاملات بقيمة ثابتة. على سبيل المثال، يؤدي ذلك إلى إلغاء دورة ذاكرة واحدة، وأخرى. [ 4 ]ADD address 1, constant 1ADD constant 1, constant 2
بيانات متعددة
تنشأ التعقيدات عند النظر في الأنماط الشائعة للوصول إلى الذاكرة. أحد هذه الأنماط الشائعة هو إمكانية تطبيق عملية واحدة على كمية كبيرة من البيانات المتشابهة. على سبيل المثال، قد يرغب المستخدم في جمع 1000 عدد. في صيغة تعليمات بسيطة ذات عنوانين، [ ] لا توجد طريقة لتغيير العنوان، لذا يجب كتابة 1000 عملية جمع بلغة الآلة . تعالج مجموعات تعليمات المعالج (ISAs) هذه المشكلة بمفهوم العنونة غير المباشرة ، حيث لا يكون عنوان نقطة البيانات التالية ثابتًا، بل يُخزَّن في الذاكرة أو في سجل الآلة. هذا يعني أن المبرمج يستطيع تغيير العنوان بإجراء عملية جمع على موقع الذاكرة أو السجل هذا. غالبًا ما تتضمن مجموعات تعليمات المعالج أيضًا إمكانية إزاحة عنوان من موقعه الأولي، بإضافة قيمة مخزنة في أحد سجلاتها، وفي بعض الحالات سجل فهرسة خاص . بينما تُجري مجموعات أخرى عملية الجمع هذه تلقائيًا كجزء من التعليمات التي تستخدمها. [ 4 ]
يؤدي تنوع أنماط العنونة إلى وفرة من التعليمات المختلفة قليلاً. عند النظر إلى مجموعة تعليمات ذات عنوان واحد، حتى بالنسبة لتعليمة واحدة، ADDلدينا الآن العديد من "أنماط العنونة" الممكنة:
- فوري (ثابت): — يضيف القيمة الثابتة إلى النتيجة في المُجمِّع
ADD.C constant 1 - العنوان المباشر: — أضف القيمة المخزنة في العنوان 1
ADD.A address 1 - الوصول غير المباشر إلى الذاكرة: — اقرأ القيمة الموجودة في العنوان 1، واستخدم تلك القيمة كعنوان آخر، ثم أضف تلك القيمة.
ADD.M address 1
تحتوي العديد من مجموعات تعليمات المعالج (ISAs) على سجلات يمكن استخدامها للعنونة بالإضافة إلى العمليات الحسابية. ويمكن استخدام ذلك في تنسيق عنوان واحد إذا تم استخدام سجل عنوان واحد. في هذه الحالة، يصبح عدد من الأوضاع الجديدة متاحًا:
- التسجيل المباشر: — أضف القيمة المخزنة في العنوان الموجود في السجل الأول
ADD.R register 1 - الإزاحة: — أضف الثابت إلى سجل العنوان، ثم أضف القيمة الموجودة في الذاكرة في ذلك الموقع الناتج
ADD.D constant 1 - الفهرس: — أضف القيمة الموجودة في السجل 1 إلى سجل العنوان لإنشاء عنوان جديد، ثم أضف القيمة الموجودة في ذلك الموقع إلى المُراكم.
ADD.I register 1 - الفهرسة التلقائية: — كما هو الحال في حالة الفهرسة، ولكن يتم زيادة العنوان تلقائيًا
ADD.AI register 1
التعامد
التعامد هو مبدأ ينص على أن كل تعليمة يجب أن تكون قادرة على استخدام أي نمط عنونة مدعوم. في هذا المثال، إذا ADDكان إصدار العنونة المباشرة متاحًا، فيجب أن تكون جميع الإصدارات الأخرى متاحة أيضًا. لا يكمن سبب هذا التصميم في الجانب الجمالي، بل الهدف هو تقليل الحجم الإجمالي لرمز البرنامج . من خلال توفير مجموعة متنوعة من أنماط العنونة، تسمح مجموعة تعليمات المعالج (ISA) للمبرمج باختيار النمط الذي يلبي احتياجات برنامجه بدقة في تلك المرحلة، وبالتالي تقليل الحاجة إلى استخدام تعليمات متعددة لتحقيق نفس الغاية. هذا يعني تقليل العدد الإجمالي للتعليمات، مما يوفر الذاكرة ويحسن الأداء. غالبًا ما يُوصف التعامد بأنه "فعال للغاية على مستوى البتات". [ 5 ]
يؤدي فصل بتات تحديد وضع العنونة عن بتات عملية رمز العملية إلى إنتاج مجموعة تعليمات متعامدة.
بما أن الغاية النهائية للتصميم المتعامد هي ببساطة السماح لأي تعليمة باستخدام أي نوع من العناوين، فإن تطبيق التعامد غالبًا ما يكون مجرد إضافة المزيد من الأسلاك بين أجزاء المعالج. ومع ذلك، فإنه يزيد أيضًا من تعقيد وحدة فك تشفير التعليمات، وهي الدائرة التي تقرأ التعليمات من الذاكرة في الموقع الذي يشير إليه عداد البرنامج ، ثم تقرر كيفية معالجتها. [ 5 ]
في مثال مجموعة تعليمات المعالج الموضح أعلاه، ADD.Cتحتوي التعليمات التي تستخدم التشفير المباشر على البيانات اللازمة لتنفيذها، ولا حاجة إلى أي معالجة إضافية، حيث يقوم المُفكِّك ببساطة بإرسال القيمة إلى وحدة الحساب والمنطق (ALU). مع ذلك، عند ADD.Aاستخدام التعليمات، يجب قراءة العنوان، ثم قراءة القيمة الموجودة في موقع الذاكرة هذا، وبعدها يمكن لوحدة الحساب والمنطق (ALU) المتابعة. تستغرق هذه السلسلة من العمليات وقتًا أطول بكثير وتتطلب خطوات داخلية أكثر. [ 5 ]
ونتيجةً لذلك، قد يختلف الوقت اللازم لإكمال مختلف صيغ التعليمات اختلافًا كبيرًا، مما يزيد من تعقيد تصميم وحدة المعالجة المركزية ككل. لذا، يُمثل التعامد حلاً وسطًا في التصميم؛ إذ يُمكن لمصمم الحاسوب أن يختار توفير المزيد من أنماط العنونة للمبرمج لتحسين كثافة التعليمات البرمجية على حساب زيادة تعقيد وحدة المعالجة المركزية نفسها. [ 5 ]
عندما كانت الذاكرة صغيرة ومكلفة، لا سيما في عصر ذاكرة الأسطوانة أو الذاكرة الأساسية ، كان التعامد مرغوبًا للغاية. مع ذلك، كان التعقيد غالبًا يتجاوز ما يمكن تحقيقه باستخدام التكنولوجيا المتاحة آنذاك. لهذا السبب، لم تُوفر معظم أجهزة الستينيات سوى تعامد جزئي، في حدود إمكانيات المصممين. في السبعينيات، أدى إدخال التكامل واسع النطاق إلى تقليل تعقيد تصميمات الحواسيب بشكل ملحوظ، وبدأت التصاميم المتعامدة بالكامل بالظهور. وبحلول الثمانينيات، أصبح بالإمكان تنفيذ هذه التصميمات على وحدة معالجة مركزية أحادية الشريحة. [ 5 ]
في أواخر سبعينيات القرن العشرين، ومع ظهور أولى التصاميم المتعامدة بالكامل عالية الأداء، اتسع نطاق الهدف ليصبح بنية حاسوب لغات البرمجة عالية المستوى ، أو اختصارًا HLLCA. وكما كان الهدف من التعامد تحسين كثافة البتات في لغة الآلة، كان هدف HLLCA تحسين كثافة البتات في لغات البرمجة عالية المستوى مثل ALGOL 68. تستخدم هذه اللغات عادةً سجل التنشيط ، وهو نوع من المكدس المعقد الذي يخزن القيم المؤقتة، والذي لم تكن بنى مجموعة التعليمات (ISA) تدعمه بشكل مباشر، وكان لا بد من تنفيذه باستخدام العديد من التعليمات الفردية من بنية مجموعة التعليمات الأساسية. إن إضافة دعم لهذه البنى من شأنه أن يسمح بترجمة البرنامج بشكل مباشر إلى بنية مجموعة التعليمات. [ 5 ]
التعامد في الممارسة العملية
جهاز PDP-11
يتميز معالج PDP -11 باستقلاليته الكبيرة (باستثناء تعليمات الفاصلة العائمة بشكل أساسي). [ 6 ] تعمل معظم تعليمات الأعداد الصحيحة على قيم من بايت واحد أو بايتين، ويمكنها الوصول إلى البيانات المخزنة في المسجلات، أو المخزنة كجزء من التعليمات، أو المخزنة في الذاكرة، أو المخزنة في الذاكرة والتي يُشار إليها بواسطة عناوين في المسجلات أو الذاكرة. حتى عداد البرنامج (PC) ومؤشر المكدس يمكن أن يتأثرا بالتعليمات العادية باستخدام جميع أنماط البيانات العادية. يُنفذ نمط "الفوري" (الأرقام المضمنة في التعليمات، مثل (R1 = R1 + 4)) كنمط "التسجيل غير المباشر، الزيادة التلقائية"، مع تحديد عداد البرنامج (R7) كمسجل يُستخدم كمرجع للتوجيه غير المباشر والزيادة التلقائية. (مُشفّر كـ ) [ 7 ]ADD #4, R1ADD (PC)+,R1 .word 4.
يستخدم معالج PDP-11 حقولًا ثلاثية البتات لأنماط العنونة (من 0 إلى 7)، لذا يوجد (إلكترونيًا) ثمانية أنماط عنونة. ويحدد حقل إضافي ثلاثي البتات السجلات (R0-R5، SP، PC). توفر معاملات العنونة الفورية والمطلقة، التي تطبق نمطي الزيادة التلقائية على عداد البرنامج (R7)، ما مجموعه عشرة أنماط عنونة نظرية. تدعم معظم التعليمات ذات المعاملين جميع أنماط العنونة لكلا المعاملين. [ 7 ]
MOV #123,#456يتميز جهاز PDP-11 بأنه متعامد لدرجة أنه يمكن ترميز وتنفيذ التعليمات غير المنطقية مثل نقل البيانات الفورية إلى بيانات فورية بشكل صحيح.
VAX-11
وسّع جهاز VAX-11 خاصية التعامد في جهاز PDP-11 لتشمل جميع أنواع البيانات، بما في ذلك الأعداد العشرية. [ 5 ] قُسّمت تعليمات مثل "ADD" إلى متغيرات تعتمد على حجم البيانات، مثل ADDB وADDW وADDL وADDP وADDF لجمع البايت والكلمة والكلمة الطويلة وBCD المضغوط والأعداد العشرية أحادية الدقة، على التوالي. وكما هو الحال في جهاز PDP-11، كان مؤشر المكدس وعداد البرنامج موجودين في ملف السجلات العام (R14 وR15). [ 8 ]
سيكون الشكل العام لتعليمات VAX-11 كما يلي:
رمز العملية [ المعامل ] [ المعامل ] ...
كل مكون عبارة عن بايت واحد ، ورمز العملية قيمة في النطاق من 0 إلى 255، وكل معامل يتكون من نصفين ، حيث تحدد البتات الأربعة العليا نمط العنونة، وتحدد البتات الأربعة السفلى (عادةً) رقم السجل (R0-R15). [ 8 ]
على عكس حقول PDP-11 ذات الثلاث بتات، نتج عن البايتات الفرعية ذات الأربع بتات في VAX-11 ستة عشر نمطًا للعنونة (من 0 إلى 15). مع ذلك، كانت أنماط العنونة من 0 إلى 3 "فورية قصيرة" للبيانات الفورية المكونة من 6 بتات أو أقل (حيث يمثل البتّان الأدنى رتبة في نمط العنونة البتّين الأعلى رتبة في البيانات الفورية، عند إضافتهما إلى البتات الأربعة المتبقية في بايت عنونة البيانات). ولأن أنماط العنونة من 0 إلى 3 كانت متطابقة، فقد نتج عن ذلك ثلاثة عشر نمطًا للعنونة (إلكترونيًا)، ولكن كما هو الحال في PDP-11، أدى استخدام مؤشر المكدس (R14) وعداد البرنامج (R15) إلى إنشاء ما يزيد عن خمسة عشر نمطًا للعنونة المفاهيمية (حيث يقوم برنامج التجميع بترجمة الشفرة المصدرية إلى نمط العنونة الفعلي المطلوب بناءً على مؤشر المكدس أو عداد البرنامج). [ 8 ]
MC68000 وما شابهها
سعى مصممو موتورولا إلى جعل لغة التجميع مستقلة عن لغة الآلة الأساسية، بينما كانت لغة الآلة الأساسية أقل استقلالية. على عكس PDP-11، استخدم MC68000 (68k) سجلات منفصلة لتخزين البيانات وعناوينها في الذاكرة. كانت بنية مجموعة التعليمات مستقلة لدرجة أنه لا يمكن استخدام العناوين إلا في تلك السجلات، ولكن لم يكن هناك أي قيد على السجلات التي يمكن استخدامها بواسطة تعليمات مختلفة. وبالمثل، كانت سجلات البيانات مستقلة أيضًا بين التعليمات. على عكس PDP-11، دعم 68000 نمط عنونة عامًا واحدًا فقط للتعليمات ذات المعاملين. كان المعامل الآخر دائمًا سجلًا، باستثناء تعليمات MOV. دعمت تعليمات MOV جميع أنماط العنونة لكلا المعاملين. [ 9 ]
على النقيض من ذلك، صُممت سلسلة NS320xx في الأصل كمعالجات أحادية الشريحة لبنية مجموعة تعليمات VAX-11. ورغم أن هذا التصميم اضطر للتغيير لأسباب قانونية، إلا أن النظام الناتج احتفظ بجزء كبير من فلسفة تصميم VAX-11 العامة، وظل مستقلاً تماماً. [ 10 ] وشمل ذلك إلغاء سجلات البيانات والعناوين المنفصلة الموجودة في معالج 68k. [ 11 ]
التصميم 8080 والتصاميم اللاحقة
يُعدّ معالج Intel 8080 ذو 8 بت (وكذلك 8085 و8051) تصميمًا مُطوّرًا قليلاً يعتمد على المُراكم، ولذلك فهو ليس مُتعامدًا. يجب على مُبرمج لغة التجميع أو مُصمم المُترجمات مراعاة العمليات المُمكنة على كل مُسجل: يُمكن تنفيذ مُعظم عمليات 8 بت فقط على المُراكم ذي 8 بت (المُسجل A)، بينما يُمكن تنفيذ العمليات الحسابية ذات 16 بت فقط على المُؤشر/المُراكم ذي 16 بت (زوج المُسجلات HL). العمليات البسيطة، مثل الزيادة، مُمكنة على جميع المُسجلات ذات 8 بت وأزواج المُسجلات ذات 16 بت. ويعود ذلك في الغالب إلى الرغبة في الحفاظ على طول جميع رموز العمليات بايتًا واحدًا.
أضاف معالج Z80 المتوافق مع النظام الثنائي لاحقًا بادئات رموز العمليات لتجاوز حد البايت الواحد، مما أتاح استخدام مجموعة تعليمات أكثر قوة . استُخدمت الفكرة الأساسية نفسها في معالج Intel 8086 ، ولكن للسماح بتوسعات جذرية، لم تُجرَ محاولة لتحقيق التوافق الثنائي مع معالج 8080. حافظ المعالج على درجة من عدم التعامد لضمان كثافة عالية للتعليمات البرمجية في ذلك الوقت. يُعدّ امتداد 32 بت لهذه البنية، الذي طُرح مع معالج 80386 ، أكثر تعامدًا إلى حد ما، على الرغم من احتفاظه بجميع تعليمات 8086 ونظائرها الموسعة. ومع ذلك، لا تزال استراتيجية التشفير تُظهر العديد من آثار معالجي 8008 و8080 (وZ80). على سبيل المثال، لا تزال التشفيرات أحادية البايت مستخدمة لبعض العمليات المتكررة، مثل دفع وسحب القيم من السجلات والثوابت؛ ويستخدم المُراكم الأساسي، سجل EAX ، تشفيرات أقصر من السجلات الأخرى في أنواع معينة من العمليات. تُستغل ملاحظات كهذه أحيانًا لتحسين الكود في كل من المترجمات البرمجية والكود المكتوب يدويًا.
RISC
أظهرت العديد من الدراسات التي أُجريت خلال سبعينيات القرن الماضي أن المرونة التي توفرها الأنماط المتعامدة نادراً ما تُستخدم، أو لا تُستخدم إطلاقاً، في المشكلات العملية. وعلى وجه الخصوص، أجرت شركة IBM دراسةً لآثار التعليمات البرمجية التي تعمل على جهاز System/370، وأظهرت أن جزءاً ضئيلاً فقط من الأنماط المتاحة كان يُستخدم في البرامج الفعلية. وأظهرت دراسات مماثلة، غالباً ما كانت تُجرى على جهاز VAX، النمط نفسه. في بعض الحالات، تبيّن أن تعقيد التعليمات يعني أنها تستغرق وقتاً أطول للتنفيذ من سلسلة التعليمات الأصغر، وكان المثال الأبرز على ذلك هو INDEXتعليمات VAX. [ 12 ]
خلال الفترة نفسها، شهدت ذاكرة أشباه الموصلات نموًا سريعًا في الحجم وانخفاضًا في التكلفة. مع ذلك، لم تتحسن سرعتها بنفس الوتيرة. هذا يعني أن الوقت اللازم للوصول إلى البيانات من الذاكرة كان يزداد نسبيًا مقارنةً بسرعة المعالجات المركزية. وقد استدعى ذلك إضافة المزيد من المسجلات، مما يمنح المعالج المركزي المزيد من القيم المؤقتة للعمل بها. كما أن زيادة عدد المسجلات تعني الحاجة إلى المزيد من البتات في كلمة الحاسوب لترميز رقم المسجل، مما يشير إلى ضرورة تقليل عدد التعليمات نفسها لتوفير مساحة أكبر.
أخيرًا، أوضحت ورقة بحثية لأندرو تانينباوم أن 97% من الثوابت في البرنامج تتراوح قيمها بين 0 و10، حيث يمثل الصفر ما بين 20 و30% من المجموع. بالإضافة إلى ذلك، تتراوح نسبة الثوابت بين 30 و40% من إجمالي القيم في البرنامج، بينما تمثل المتغيرات البسيطة (على عكس المصفوفات وما شابهها) ما بين 35 و40% أخرى. [ 13 ] إذا كان المعالج يستخدم كلمة تعليمات أكبر، مثل 32 بت، فيمكن ترميز رقمي سجل وثابت في تعليمة واحدة طالما أن التعليمة نفسها لا تستخدم عددًا كبيرًا من البتات.
أدت هذه الملاحظات إلى التخلي عن التصميم المتعامد كهدف أساسي لتصميم المعالجات، وظهور فلسفة RISC في ثمانينيات القرن العشرين. تحتوي معالجات RISC عمومًا على نمطين فقط للعنونة: العنونة المباشرة (الثابتة) وعنونة المسجلات. أما الأنماط الأخرى الموجودة في المعالجات القديمة، فتُعالج بشكل صريح باستخدام تعليمات التحميل والتخزين لنقل البيانات من وإلى المسجلات. قد لا يتوفر سوى عدد قليل من أنماط العنونة ، وقد تختلف هذه الأنماط تبعًا لما إذا كانت التعليمات تشير إلى بيانات أو تتضمن نقلًا للتحكم .
ملحوظات
مراجع
- ↑ نول، ليندا؛ لوبور، جوليا (2010). أساسيات تنظيم وهندسة الحاسوب . دار نشر جونز وبارتليت. الصفحات 287-288 . ISBN 978-1449600068.
- ↑ طارق، جميل (1995)، "RISC مقابل CISC: لماذا الأقل هو الأكثر" ، IEEE Potentials (أغسطس/سبتمبر) ، تم الاطلاع عليه في 7 مايو 2019
- ↑ "التنظيم والتصميم الأساسي للحاسوب" (ملف PDF) . مختبر أنظمة الحوسبة الحسية الحركية.
- 1 2 3 4 5 تولسن، دين. "هندسة مجموعة التعليمات" (ملف PDF) . جامعة كاليفورنيا في سان دييغو.
- 1 2 3 4 5 6 7 هينيسي، جون؛ باترسون، ديفيد (29-05-2002). هندسة الحاسوب: منهج كمي . إلسيفير. ص 151. ISBN 9780080502526.
- ↑ "مقدمة إلى جهاز PDP-11" . جامعة سيدني .
- 1 2 "مرجع تعليمات PDP-11" (ملف PDF) . جامعة تورنتو .
- 1 2 3 "نهج آخر لهندسة مجموعة التعليمات - VAX" (PDF) .
- ↑ فيرونيس، أندرو (2012-12-06). المعالج الدقيق 68000. سبرينغر. ص 54. ISBN 9781468466478.
- ↑ تيلسون، مايكل (أكتوبر 1983). "نقل يونكس إلى أجهزة جديدة" . بايت . ص 266. تم الاطلاع عليه في 31 يناير 2015 .
- ↑ "NS32532" . متحف داتور .
- ↑ باترسون، د . أ.؛ ديتزل، د. ر. (1980). "حجة لصالح حاسوب مجموعة التعليمات المختصرة". أخبار هندسة الحاسوب الصادرة عن جمعية آلات الحوسبة (ACM SIGARCH) . 8 (6): 25-33 . CiteSeerX 10.1.1.68.9623 . doi : 10.1145/641914.641917 . S2CID 12034303 .
- ↑ تانينباوم، أندرو (1978). "آثار البرمجة الهيكلية على بنية الآلة" . اتصالات رابطة آلات الحوسبة . 21 (3): 237-246 . doi : 10.1145/359361.359454 . hdl : 1871/2610 . S2CID 3261560 .
- معالجة التعليمات
- بنى مجموعات التعليمات
