معمارية MIPS
MIPS ( المعالج الدقيق بدون مراحل متداخلة ) [ 1 ] هي عائلة من بنى مجموعة تعليمات الكمبيوتر ذات مجموعة التعليمات المختصرة (RISC ) [ 2 ] : A-1 [ 3 ] : 19 التي طورتها شركة MIPS Computer Systems، والتي أصبحت الآن MIPS Technologies ، ومقرها في الولايات المتحدة .
توجد إصدارات متعددة من معالج MIPS، تشمل MIPS I وII وIII وIV وV، بالإضافة إلى خمسة إصدارات من MIPS32/64 (للتنفيذات 32 بت و64 بت على التوالي). كانت بنى MIPS الأولى 32 بت، بينما طُوّرت إصدارات 64 بت لاحقًا. اعتبارًا من أبريل 2017، كان الإصدار الحالي من MIPS هو MIPS32/64 الإصدار 6. [ 4 ] [ 5 ] يختلف MIPS32/64 بشكل أساسي عن MIPS I-V في تعريف معالج التحكم المساعد للنظام في وضع النواة المميز، بالإضافة إلى بنية وضع المستخدم.
تتضمن بنية MIPS عدة امتدادات اختيارية: MIPS-3D ، وهي مجموعة بسيطة من تعليمات SIMD ذات الفاصلة العائمة مخصصة لرسومات الحاسوب ثلاثية الأبعاد ؛ [ 6 ] وMDMX (MaDMaX)، وهي مجموعة تعليمات SIMD أكثر شمولاً للأعداد الصحيحة باستخدام سجلات الفاصلة العائمة 64 بت؛ وMIPS16e، التي تضيف ضغطًا إلى تدفق التعليمات لتقليل الذاكرة التي تتطلبها البرامج؛ [ 7 ] وMIPS MT، التي تضيف إمكانية تعدد الخيوط . [ 8 ]
تُدرَّس بنية MIPS غالبًا في مقررات هندسة الحاسوب بالجامعات والمعاهد التقنية. [ 9 ] وقد أثرت هذه البنية بشكل كبير على بنى RISC اللاحقة، مثل Alpha . في مارس 2021، أعلنت شركة MIPS عن توقف تطوير بنية MIPS، حيث تنتقل الشركة إلى RISC-V . [ 10 ]
تاريخ
صُممت النسخة الأولى من معمارية MIPS بواسطة شركة MIPS Computer Systems لمعالجها الدقيق R2000 ، وهو أول تطبيق لمعمارية MIPS. طُرحت كل من MIPS وR2000 معًا في عام 1985. [ 11 ] وعندما طُرحت MIPS II، أُعيد تسمية MIPS إلى MIPS I لتمييزها عن النسخة الجديدة. [ 3 ] : 32
كان معالج R6000 من شركة MIPS Computer Systems (1989) أول تطبيق لبنية MIPS II. [ 3 ] : 8 صُمم معالج R6000 للخوادم، وقامت شركة Bipolar Integrated Technology بتصنيعه وبيعه ، ولكنه لم يحقق نجاحًا تجاريًا. خلال منتصف التسعينيات، كانت العديد من معالجات MIPS الجديدة ذات 32 بت للأنظمة المدمجة تطبيقات لبنية MIPS II، وذلك لأن طرح بنية MIPS III ذات 64 بت في عام 1991 جعل MIPS II أحدث بنية MIPS ذات 32 بت حتى طرح MIPS32 في عام 1999. [ 3 ] : 19
كان معالج R4000 من شركة MIPS Computer Systems (1991) أول تطبيق لمعمارية MIPS III. صُمم هذا المعالج للاستخدام في الحواسيب الشخصية ومحطات العمل والخوادم. روجت شركة MIPS Computer Systems بقوة لمعمارية MIPS ومعالج R4000، وأسست اتحاد بيئة الحوسبة المتقدمة (ACE) لتطوير معيار الحوسبة المتقدمة RISC (ARC)، الذي كان يهدف إلى ترسيخ MIPS كمنصة الحوسبة الشخصية المهيمنة. لم يحقق معيار ARC نجاحًا يُذكر في الحواسيب الشخصية، لكن معالج R4000 (ومشتقاته R4400) استُخدم على نطاق واسع في محطات العمل والخوادم، وخاصة من قِبل أكبر مستخدميه، شركة Silicon Graphics . وشملت استخدامات R4000 الأخرى الأنظمة المدمجة المتطورة والحواسيب العملاقة. وفي نهاية المطاف، طُبقت معمارية MIPS III في عدد من المعالجات المدمجة. كما استُخدم معالج R4600 من شركة Quantum Effect Design (1993) ومشتقاته على نطاق واسع في الأنظمة المدمجة المتطورة ومحطات العمل والخوادم منخفضة التكلفة. صُمم معالج R4200 من شركة MIPS Technologies (عام 1994) للأنظمة المدمجة وأجهزة الكمبيوتر المحمولة والشخصية. واستُخدم معالج R4300i، وهو نسخة مشتقة منه من إنتاج شركة NEC Electronics ، في جهاز ألعاب نينتندو 64. وكان جهاز نينتندو 64، إلى جانب جهاز بلاي ستيشن ، من بين أكثر الأجهزة استخدامًا لمعالجات بنية MIPS في منتصف التسعينيات.
كانت شريحة المعالج الدقيق MIPS Technologies R8000 (1994) أول تطبيق لمعمارية MIPS IV . بدأ تصميم R8000 في شركة Silicon Graphics، واقتصر استخدامه على محطات العمل والخوادم المتطورة للتطبيقات العلمية والتقنية التي تتطلب أداءً عاليًا في عمليات الحساب ذات الفاصلة العائمة الكبيرة. وشملت التطبيقات اللاحقة MIPS Technologies R10000 (1996) وQuantum Effect Devices R5000 (1996) و RM7000 (1998). استُخدمت شريحة R10000، التي صنعتها وباعتها شركتا NEC Electronics وToshiba، ومشتقاتها، من قِبل شركات NEC وPyramid Technology وSilicon Graphics وTandem Computers (وغيرها) في محطات العمل والخوادم والحواسيب العملاقة. أما شريحتا R5000 وR7000 فقد استُخدمتا في الأنظمة المدمجة المتطورة، والحواسيب الشخصية، ومحطات العمل والخوادم منخفضة التكلفة. تم استخدام مشتق من R5000 من توشيبا، وهو R5900، في محرك Emotion Engine الخاص بشركة Sony Computer Entertainment ، والذي كان يشغل جهاز ألعاب PlayStation 2 الخاص بها.
أُعلن عن معالج MIPS V في 21 أكتوبر 1996، خلال منتدى المعالجات الدقيقة 1996، إلى جانب امتداد الوسائط الرقمية MIPS (MDMX)، وقد صُمم لتحسين أداء تحويلات الرسومات ثلاثية الأبعاد. [ 12 ] في منتصف التسعينيات، كان الاستخدام الرئيسي لمعالجات MIPS غير المدمجة في محطات عمل الرسومات من شركة Silicon Graphics. أُكمل MIPS V بامتداد MDMX الذي يدعم الأعداد الصحيحة فقط، لتوفير نظام متكامل لتحسين أداء تطبيقات الرسومات ثلاثية الأبعاد. [ 13 ] لم تُطرح تطبيقات MIPS V رسميًا. في 12 مايو 1997، أعلنت شركة Silicon Graphics عن معالجي H1 ("الوحش") وH2 ("الكابتن"). كان من المفترض أن يكون الأول هو أول تطبيق لـ MIPS V، وكان من المقرر تقديمه في النصف الأول من عام 1999. [ 14 ] تم دمج مشروعي H1 وH2 لاحقًا وتم إلغاؤهما في النهاية في عام 1998. على الرغم من عدم وجود أي تطبيقات لـ MIPS V، إلا أن MIPS64 الإصدار 1 (1999) كان مبنيًا على MIPS V ويحتفظ بجميع ميزاته كميزة اختيارية للمعالج المساعد 1 (FPU) تسمى Paired-Single.
عندما انفصلت شركة MIPS Technologies عن شركة Silicon Graphics عام 1998، ركزت جهودها على سوق الأنظمة المدمجة. وحتى إصدار MIPS V، كان كل إصدار لاحق بمثابة مجموعة فرعية من الإصدار السابق، إلا أن هذه الخاصية مثّلت مشكلة، فتم تغيير تعريف البنية لتحديد بنية 32 بت وأخرى 64 بت: MIPS32 وMIPS64. وقد طُرحت كلتاهما عام 1999. [ 15 ] تعتمد MIPS32 على MIPS II مع بعض الميزات الإضافية من MIPS III وMIPS IV وMIPS V؛ بينما تعتمد MIPS64 على MIPS V. [ 15 ] حصلت كل من NEC و Toshiba و SiByte (التي استحوذت عليها Broadcom لاحقًا ) على تراخيص MIPS64 فور الإعلان عنها. وانضمت إليها لاحقًا شركات Philips و LSI Logic و IDT و Raza Microelectronics و Cavium و Loongson Technology و Ingenic Semiconductor . أُعلن عن الإصدار الخامس من معالج MIPS32/MIPS64 في 6 ديسمبر 2012. [ 16 ] ووفقًا لمدير تسويق المنتجات في شركة MIPS، فقد تم تخطي الإصدار الرابع لأن الرقم أربعة يُعتبر نذير شؤم في العديد من الثقافات الآسيوية. [ 17 ]
في ديسمبر 2018، أعلنت شركة Wave Computing، المالكة الجديدة لبنية MIPS، عن إتاحة بنية MIPS مفتوحة المصدر ضمن برنامج يُعرف باسم مبادرة MIPS المفتوحة. [ 18 ] ويهدف البرنامج إلى إتاحة الوصول إلى أحدث إصدارات تصميمي 32 بت و64 بت، وجعلها متاحة دون أي رسوم ترخيص أو حقوق ملكية، بالإضافة إلى منح المشاركين تراخيص لبراءات اختراع MIPS الحالية. [ 19 ] [ 20 ] [ 21 ]
في مارس 2019، أُتيحت النسخة السادسة من معيار MIPS بموجب ترخيص مجاني، [ 22 ] ولكن في وقت لاحق من ذلك العام، تم إيقاف البرنامج مرة أخرى. [ 23 ]
في مارس 2021، أعلنت شركة Wave Computing توقفها عن تطوير معمارية MIPS. وانضمت الشركة إلى مؤسسة RISC-V، وستُبنى تصميمات المعالجات المستقبلية على معمارية RISC-V. [ 10 ] [ 24 ] مع ذلك، يواصل بعض المرخص لهم، مثل شركة Loongson ، تطوير امتدادات جديدة لبنى مجموعات تعليمات MIPS المتوافقة بشكل مستقل. [ 25 ]
في يناير 2024، ربح لونغسون قضية تتعلق بحقوق استخدام بنية MIPS. [ 26 ]
تصميم
MIPS عبارة عن بنية معيارية تدعم ما يصل إلى أربعة معالجات مساعدة (COP0/1/2/3). في مصطلحات MIPS، يُعرف COP0 باسم معالج التحكم بالنظام (وهو جزء أساسي من المعالج، ويُحدد تنفيذه في MIPS I-V)، بينما يُعد COP1 وحدة حسابية اختيارية للفاصلة العائمة (FPU)، أما COP2 وCOP3 فهما معالجان مساعدان اختياريان يُحدد تنفيذهما (أزالت MIPS III المعالج COP3 وأعادت استخدام رموزه البرمجية لأغراض أخرى). على سبيل المثال، في جهاز ألعاب الفيديو PlayStation ، يُعد COP2 محرك تحويل الهندسة (GTE)، الذي يُسرّع معالجة الهندسة في رسومات الحاسوب ثلاثية الأبعاد.
الإصدارات
نظام MIPS I
MIPS هي بنية تحميل/تخزين (تُعرف أيضًا باسم بنية السجل-السجل )؛ باستثناء تعليمات التحميل/التخزين المستخدمة للوصول إلى الذاكرة ، تعمل جميع التعليمات على السجلات.
يحتوي معالج MIPS I على 32 مسجلاً للأغراض العامة (GPR) سعة كل منها 32 بت. المسجل $0 مُبرمج مسبقًا على الصفر، وتُتجاهل أي كتابة إليه. المسجل $31 هو مسجل الربط . بالنسبة لتعليمات ضرب وقسمة الأعداد الصحيحة، التي تُنفذ بشكل غير متزامن مع التعليمات الأخرى، يُوفر زوج من المسجلات سعة كل منها 32 بت، وهما HI و LO . توجد مجموعة صغيرة من التعليمات لنسخ البيانات بين مسجلات الأغراض العامة ومسجلات HI/LO. يحتوي عداد البرنامج على 32 بت. يحتوي البتّان الأدنى قيمة دائمًا على الصفر لأن تعليمات MIPS I طولها 32 بت ومُحاذية لحدود الكلمات الطبيعية.
تُقسّم التعليمات إلى ثلاثة أنواع: R (المسجلات)، وI (القيمة الفورية)، وJ (القفز). تبدأ كل تعليمة برمز عملية (opcode) مكون من 6 بتات. بالإضافة إلى رمز العملية، تُحدد تعليمات النوع R ثلاثة مسجلات، [ 27 ] وحقل مقدار الإزاحة، وحقل الدالة؛ وتُحدد تعليمات النوع I مسجلين وقيمة فورية مكونة من 16 بتًا؛ وتتبع تعليمات النوع J رمز العملية بهدف قفز مكون من 26 بتًا. [ 2 ] : A-174
فيما يلي التنسيقات الثلاثة المستخدمة لمجموعة التعليمات الأساسية:
| يكتب | -31- تنسيق (بتات) -0- | |||||
|---|---|---|---|---|---|---|
| R | رمز العملية (6) | rs (5) | rt (5) | rd (5) | شامت (5) | دالة (6) |
| أنا | رمز العملية (6) | rs (5) | rt (5) | فوري (16) | ||
| ج | رمز العملية (6) | العنوان (26) | ||||
تحتوي معمارية MIPS I على تعليمات لتحميل وتخزين البايتات ذات 8 بت، وأنصاف الكلمات ذات 16 بت، والكلمات ذات 32 بت. يدعم هذا النظام نمط عنونة واحدًا فقط : الأساس + الإزاحة. بما أن MIPS I معمارية 32 بت، فإن تحميل كميات أقل من 32 بت يتطلب إما تمديد الإشارة أو تمديد الصفر إلى 32 بت. تُجري تعليمات التحميل التي تنتهي بـ "unsigned" تمديد الصفر؛ وإلا، يتم إجراء تمديد الإشارة. تستمد تعليمات التحميل الأساس من محتويات سجل عام مسجل (rs) وتكتب النتيجة إلى سجل عام مسجل آخر (rt). تستمد تعليمات التخزين الأساس من محتويات سجل عام مسجل (rs) وتخزن البيانات من سجل عام مسجل آخر (rt). تحسب جميع تعليمات التحميل والتخزين عنوان الذاكرة بجمع الأساس مع القيمة الفورية ذات 16 بت بعد تمديد الإشارة. تتطلب MIPS I أن تكون جميع عمليات الوصول إلى الذاكرة محاذية لحدود الكلمات الطبيعية، وإلا يتم الإبلاغ عن استثناء. لدعم الوصول الفعال إلى الذاكرة غير المحاذية، توجد تعليمات تحميل/تخزين الكلمات متبوعة بـ "يسار" أو "يمين". تلي كل تعليمات التحميل خانة تأخير التحميل . لا يمكن للتعليمة الموجودة في خانة تأخير التحميل استخدام البيانات التي تم تحميلها بواسطة تعليمة التحميل. يمكن ملء خانة تأخير التحميل بتعليمات غير معتمدة على التحميل؛ ويتم استبدالها بتعليمات NOP إذا تعذر العثور على مثل هذه التعليمات.
يحتوي معالج MIPS I على تعليمات لإجراء عمليات الجمع والطرح. تستمد هذه التعليمات معاملاتها من سجلين عامين (rs وrt)، وتكتب النتيجة إلى سجل عام ثالث (rd). بدلاً من ذلك، يمكن أن تستمد عملية الجمع أحد معاملاتها من قيمة فورية 16 بت (يتم تمديدها بالإشارة إلى 32 بت). توجد صيغتان لتعليمات الجمع والطرح: افتراضيًا، يتم الإبلاغ عن استثناء في حالة تجاوز النتيجة للسعة المحددة؛ أما التعليمات التي تحمل اللاحقة "unsigned" فلا تُبلغ عن أي استثناء. يُفسر فحص تجاوز السعة النتيجة على أنها عدد صحيح ثنائي المكمل 32 بت. يحتوي معالج MIPS I أيضًا على تعليمات لإجراء عمليات AND وOR وXOR وNOR المنطقية على مستوى البت . تستمد هذه التعليمات معاملاتها من سجلين عامين، وتكتب النتيجة إلى سجل عام ثالث. يمكن لتعليمات AND وOR وXOR، بدلاً من ذلك، أن تستمد أحد معاملاتها من قيمة فورية 16 بت (يتم تمديدها بالأصفار إلى 32 بت). تكتب تعليمات "تعيين العلاقة " القيمة 1 أو 0 في سجل الوجهة إذا كانت العلاقة المحددة صحيحة أو خاطئة. تستمد هذه التعليمات معاملاتها من سجلين عامين (GPRs) أو من سجل عام واحد وقيمة فورية 16 بت (يتم تمديدها إلى 32 بت)، وتكتب النتيجة في سجل عام ثالث. افتراضيًا، تُفسَّر المعاملات على أنها أعداد صحيحة مُوقَّعة. أما المتغيرات من هذه التعليمات التي تنتهي بـ "unsigned"، فتُفسِّر المعاملات على أنها أعداد صحيحة غير مُوقَّعة (حتى تلك التي تستمد معاملًا من القيمة الفورية 16 بت المُمدَّدة).
تقوم تعليمة Load Upper Immediate بنسخ القيمة الفورية ذات 16 بت إلى أعلى 16 بت من سجل GPR. وتُستخدم هذه التعليمة بالتزامن مع تعليمة Or Immediate لتحميل قيمة فورية ذات 32 بت في سجل.
يحتوي معالج MIPS I على تعليمات لإجراء عمليات الإزاحة المنطقية لليسار واليمين، بالإضافة إلى عمليات الإزاحة الحسابية لليمين. يتم الحصول على المعامل من سجل عام مسجل (rt)، وتُكتب النتيجة إلى سجل عام مسجل آخر (rd). يتم الحصول على مسافة الإزاحة إما من سجل عام مسجل (rs) أو من حقل "مقدار الإزاحة" ذي 5 بتات (الحقل "sa").
يحتوي معالج MIPS I على تعليمات لضرب وقسمة الأعداد الصحيحة الموقعة وغير الموقعة. تستمد هذه التعليمات معاملاتها من سجلين عامين (GPRs) وتكتب نتائجها في زوج من السجلات 32 بت يُطلق عليهما HI وLO، نظرًا لإمكانية تنفيذها بشكل منفصل (أو متزامن) مع تعليمات وحدة المعالجة المركزية الأخرى. في عملية الضرب، يُكتب النصف الأعلى والنصف الأدنى من ناتج الضرب ذي 64 بت في HI وLO (على التوالي). أما في عملية القسمة، فيُكتب ناتج القسمة في LO والباقي في HI. وللوصول إلى النتائج، تُستخدم تعليمتان (نقل من HI ونقل من LO) لنسخ محتويات HI أو LO إلى سجل عام. هاتان التعليمتان مترابطتان: لا تتجاوز قراءة HI وLO تعليمة حسابية غير مكتملة ستكتب في HI وLO. كما تُستخدم تعليمتان أخريان (نقل إلى HI أو نقل إلى LO) لنسخ محتويات سجل عام إلى HI وLO. تُستخدم هذه التعليمات لإعادة HI وLO إلى حالتهما الأصلية بعد معالجة الاستثناءات. يجب فصل التعليمات التي تقرأ HI أو LO بتعليمات أخرى لا تكتب إلى HI أو LO.
تتبع جميع تعليمات التحكم في تدفق MIPS I خانة تأخير للتفرع . ما لم تكن خانة تأخير التفرع مشغولة بتعليمات تؤدي عملاً مفيداً، يتم استبدالها بتعليمات NOP. تقارن تعليمات التفرع في MIPS I محتويات سجل عام مسجل (rs) مع الصفر أو سجل عام مسجل آخر (rt) كأعداد صحيحة موقعة، وتتفرع إذا كان الشرط المحدد صحيحاً. ينتقل التحكم إلى العنوان المحسوب عن طريق إزاحة الإزاحة ذات 16 بت إلى اليسار بمقدار بتين، وتمديد إشارة النتيجة ذات 18 بت، وإضافة النتيجة ذات 32 بت بعد تمديد الإشارة إلى مجموع عداد البرنامج (عنوان التعليمات) و8 × 10. للقفزات نوعان: مطلقة وغير مباشرة عبر السجلات. تحسب القفزات المطلقة ("Jump" و"Jump and Link") العنوان الذي ينتقل إليه التحكم عن طريق إزاحة فهرس التعليمات ذي 26 بت إلى اليسار بمقدار بتين، ودمج النتيجة ذات 28 بت مع البتات الأربعة العليا من عنوان التعليمات الموجودة في خانة تأخير التفرع. تنقل قفزات التسجيل غير المباشرة التحكم إلى التعليمة الموجودة في العنوان المُستمد من سجل عام مسجل (rs). يجب أن يكون العنوان المُستمد من السجل العام المسجل مُحاذيًا للكلمة، وإلا سيتم الإشارة إلى استثناء بعد تنفيذ التعليمة الموجودة في خانة تأخير التفرع. تحفظ تعليمات التفرع والقفز التي تربط (باستثناء تعليمة "القفز وربط السجل") عنوان العودة في السجل العام المسجل 31. تسمح تعليمة "القفز وربط السجل" بحفظ عنوان العودة في أي سجل عام مسجل قابل للكتابة.
يحتوي معالج MIPS I على تعليمتين للبرامج للإشارة إلى حدوث استثناء: استدعاء النظام ونقطة التوقف. يُستخدم استدعاء النظام بواسطة برامج وضع المستخدم لإجراء استدعاءات على النواة؛ بينما تُستخدم نقطة التوقف لنقل التحكم إلى مصحح الأخطاء عبر معالج استثناءات النواة. تحتوي كلتا التعليمتين على حقل رمز مكون من 20 بت، والذي يمكن أن يحتوي على معلومات خاصة ببيئة التشغيل لمعالج الاستثناءات.
تحتوي معمارية MIPS على 32 مسجلاً للفاصلة العائمة. يتم استخدام مسجلين متتاليين للأرقام ذات الدقة المزدوجة. لا يمكن استخدام المسجلات ذات الأرقام الفردية في العمليات الحسابية أو التفرع، بل فقط كجزء من زوج مسجلات الدقة المزدوجة، مما ينتج عنه 16 مسجلاً قابلاً للاستخدام لمعظم التعليمات (لم تتأثر عمليات النقل/النسخ والتحميل/التخزين).
يُشار إلى الدقة المفردة باللاحقة .s، بينما يُشار إلى الدقة المزدوجة باللاحقة .d.
نظام MIPS II
أزالت معمارية MIPS II خانة تأخير التحميل [ 3 ] : 41 وأضافت عدة مجموعات من التعليمات. ولمعالجة البيانات المتعددة في الذاكرة المشتركة، أُضيفت تعليمات مزامنة الذاكرة المشتركة ، وتحميل الكلمة المرتبطة ، وتخزين الكلمة الشرطية . [ 28 ] كما أُضيفت مجموعة من تعليمات اعتراض الشرط. تتسبب هذه التعليمات في حدوث استثناء إذا كان الشرط المُقيّم صحيحًا. أُعطيت جميع تعليمات التفرع الموجودة نسخًا مُحسّنة تُنفّذ التعليمات في خانة تأخير التفرع فقط في حالة تنفيذ التفرع. [ 3 ] : 40 تُحسّن هذه التعليمات الأداء في بعض الحالات من خلال السماح للتعليمات المفيدة بملء خانة تأخير التفرع. [ 3 ] : 212 أُضيفت تعليمات تحميل وتخزين الكلمات المزدوجة لـ COP1-3. وتماشيًا مع تعليمات الوصول إلى الذاكرة الأخرى، تتطلب عمليات التحميل والتخزين هذه أن تكون الكلمة المزدوجة مُحاذية بشكل طبيعي.
أُضيفت عدة تعليمات إلى مجموعة تعليمات المعالج المساعد للأعداد العشرية. فقد أُضيفت تعليمة لحساب الجذر التربيعي للأعداد العشرية متوافقة مع معيار IEEE 754، تدعم المعاملات أحادية وثنائية الدقة. كما أُضيفت مجموعة من التعليمات لتحويل الأعداد العشرية أحادية وثنائية الدقة إلى كلمات 32 بت. وقد أكملت هذه التعليمات تعليمات التحويل الموجودة، إذ سمحت بتحديد نمط التقريب وفقًا لمعيار IEEE من خلال التعليمة نفسها بدلًا من سجل التحكم والحالة للأعداد العشرية.
نظام MIPS III
يُعدّ MIPS III امتدادًا متوافقًا مع الإصدارات السابقة من MIPS II، حيث أضاف دعمًا لعنونة الذاكرة 64 بت وعمليات الأعداد الصحيحة. يُطلق على نوع البيانات 64 بت اسم "الكلمة المزدوجة"، وقد وسّع MIPS III سجلات الأغراض العامة، وسجلات HI/LO، وعداد البرنامج إلى 64 بت لدعم هذا النوع. أُضيفت تعليمات جديدة لتحميل وتخزين الكلمات المزدوجة، ولإجراء عمليات الجمع والطرح والضرب والقسمة والإزاحة عليها، ولنقل الكلمات المزدوجة بين سجلات الأغراض العامة وسجلات HI/LO. ولأغراض المعالجة المتعددة في الذاكرة المشتركة، أُضيفت تعليمات " تحميل الكلمة المزدوجة المرتبطة " و "تخزين الكلمة المزدوجة المشروطة" . [ 28 ] أُعيد تعريف التعليمات الموجودة، والتي عُرّفت في الأصل للعمل على كلمات 32 بت، عند الضرورة، لتوسيع إشارة نتائج 32 بت للسماح لمعظم التعليمات بمعاملة الكلمات والكلمات المزدوجة بشكل متطابق. من بين هذه التعليمات التي أُعيد تعريفها تعليمة " تحميل الكلمة" . في MIPS III، تُوسّع هذه التعليمة إشارة الكلمات إلى 64 بت. ولإكمال وظيفة تحميل الكلمات ، تمت إضافة نسخة تقوم بتمديد الكلمات بدون أصفار.
نظراً لعدم قدرة صيغة تعليمات R على تحديد مسافة الإزاحة الكاملة لعمليات الإزاحة ذات 64 بت (حيث أن حقل مقدار الإزاحة ذو الخمسة بتات ضيق جداً بحيث لا يسمح بتحديد مسافة الإزاحة للكلمات المزدوجة)، فقد استلزم ذلك من MIPS III توفير ثلاثة إصدارات 64 بت من كل تعليمة إزاحة MIPS I. الإصدار الأول هو إصدار 64 بت من تعليمات الإزاحة الأصلية، ويُستخدم لتحديد مسافات إزاحة ثابتة تتراوح بين 0 و31 بت. أما الإصدار الثاني فهو مشابه للأول، ولكنه يضيف 32 إلى قيمة حقل مقدار الإزاحة بحيث يمكن تحديد مسافات إزاحة ثابتة تتراوح بين 32 و63 بت. بينما يحصل الإصدار الثالث على مسافة الإزاحة من البتات الستة الأقل أهمية في سجل عام مسجل (GPR).
أضافت MIPS III مستوى امتيازات إشرافي بين مستويي امتيازات النواة والمستخدم الحاليين. وقد أثرت هذه الميزة فقط على معالج التحكم بالنظام المحدد في التنفيذ (المعالج المساعد 0).
أزالت معمارية MIPS III تعليمات دعم المعالج المساعد 3 (COP3)، وأعادت استخدام رموزها التشغيلية لتعليمات الكلمات المزدوجة الجديدة. واكتسبت المعالجات المساعدة المتبقية تعليمات لنقل الكلمات المزدوجة بين سجلات المعالج المساعد وسجلات البيانات العامة (GPRs). وتم توسيع سجلات البيانات العامة العائمة (FGRs) إلى 64 بت، وأُلغي شرط استخدام التعليمات للسجلات ذات الأرقام الزوجية فقط. وهذا غير متوافق مع الإصدارات السابقة من المعمارية؛ حيث يُستخدم بت في سجل التحكم/الحالة للفاصلة العائمة لتشغيل وحدة الفاصلة العائمة (FPU) في MIPS III في وضع متوافق مع MIPS I وII. ولم يتم توسيع سجلات التحكم للفاصلة العائمة لتحقيق التوافق. وكانت تعليمات الفاصلة العائمة الجديدة الوحيدة المضافة هي تلك الخاصة بنسخ الكلمات المزدوجة بين وحدة المعالجة المركزية (CPU) ووحدة الفاصلة العائمة (FPU)، وتحويل أعداد الفاصلة العائمة أحادية وثنائية الدقة إلى أعداد صحيحة من الكلمات المزدوجة والعكس.
نظام MIPS IV
MIPS IV هو الإصدار الرابع من هذه البنية. وهو امتداد لـ MIPS III ومتوافق مع جميع إصدارات MIPS الحالية. [ 29 ] : صُمم MIPS IV بشكل أساسي لتحسين أداء العمليات الحسابية ذات الفاصلة العائمة (FP). ولتحسين الوصول إلى المعاملات، أُضيف نمط عنونة مُفهرس (الأساس + الفهرس، وكلاهما مُستمد من سجلات التصفح العامة (GPRs)) لعمليات تحميل وتخزين البيانات ذات الفاصلة العائمة، بالإضافة إلى تعليمات الجلب المُسبق لتنفيذ الجلب المُسبق للذاكرة وتحديد تلميحات التخزين المؤقت (التي تدعم نمطي العنونة: الأساس + الإزاحة والأساس + الفهرس).
أضافت معمارية MIPS IV العديد من الميزات لتحسين التوازي على مستوى التعليمات. وللتخفيف من الاختناق الناتج عن بت شرط واحد، أُضيفت سبعة بتات لرمز الشرط إلى سجل التحكم في الفاصلة العائمة وسجل الحالة، ليصل المجموع إلى ثمانية. أُعيد تعريف تعليمات مقارنة الفاصلة العائمة والتفرع بحيث يمكنها تحديد بت الشرط الذي تمت كتابته أو قراءته (على التوالي)؛ كما أُزيلت خانة التأخير بين تفرع الفاصلة العائمة الذي يقرأ بت الشرط المكتوب بواسطة مقارنة فاصلة عائمة سابقة. أُضيف دعم التنبؤ الجزئي في شكل تعليمات نقل شرطية لكل من سجلات العدادات العامة وسجلات الفاصلة العائمة؛ وأصبح بإمكان التطبيق الاختيار بين وجود استثناءات دقيقة أو غير دقيقة لمصائد IEEE 754.
أضافت معمارية MIPS IV عدة تعليمات حسابية جديدة للأعداد العشرية ذات الدقة المفردة والمزدوجة: الجمع أو الطرح مع الضرب المدمج، والمقلوب، والجذر التربيعي المقلوب. تُجري تعليمات الجمع أو الطرح مع الضرب المدمج عملية تقريب واحدة أو اثنتين (حسب تصميم المعالج)، وذلك لتجاوز أو تلبية متطلبات دقة معيار IEEE 754 (على التوالي). أما تعليمات المقلوب والجذر التربيعي المقلوب فلا تتوافق مع متطلبات دقة معيار IEEE 754، وتُنتج نتائج تختلف عن الدقة المطلوبة بمقدار وحدة أو وحدتين في الخانة الأخيرة (حسب تصميم المعالج). تُستخدم هذه التعليمات في التطبيقات التي يكون فيها زمن استجابة التعليمات أهم من الدقة.
نظام MIPS V
أضافت معمارية MIPS V نوع بيانات جديدًا، وهو الزوج الأحادي المزدوج (PS)، الذي يتكون من عددين من نوع الفاصلة العائمة أحادية الدقة (32 بت) مخزنين في سجلات الفاصلة العائمة الموجودة ذات 64 بت. أُضيفت صيغ مختلفة من تعليمات الفاصلة العائمة الموجودة للعمليات الحسابية والمقارنة والنقل الشرطي للعمل على هذا النوع من البيانات بطريقة SIMD. كما أُضيفت تعليمات جديدة لتحميل بيانات PS وإعادة ترتيبها وتحويلها. [ 3 ] : 426-429. وكانت هذه أول مجموعة تعليمات تستغل تقنية SIMD للفاصلة العائمة مع الموارد المتاحة. [ 13 ]
MIPS32/MIPS64
أضاف الإصدار الأول من MIPS32، المبني على MIPS II، عمليات نقل مشروطة، وتعليمات جلب مسبق ، وميزات أخرى من عائلتي معالجات R4000 وR5000 ذات 64 بت. [ 15 ] وأضاف الإصدار الأول من MIPS64 وضع MIPS32 لتشغيل التعليمات البرمجية ذات 32 بت. [ 15 ] كما أُضيفت تعليمات MUL وMADD ( الضرب والجمع )، المتوفرة سابقًا في بعض التطبيقات، إلى مواصفات MIPS32 وMIPS64، بالإضافة إلى تعليمات التحكم في الذاكرة المخبئية . [ 15 ] ولغرض التحكم في الذاكرة المخبئية، تم إعداد كلتا التعليمات SYNC. [ 30 ] [ 31 ]SYNCI
أضاف الإصدار السادس من MIPS32/MIPS64 في عام 2014 ما يلي: [ 32 ]
- عائلة جديدة من الفروع بدون خانة تأخير:
- الفروع غير المشروطة (BC) والفروع والوصلات (BALC) مع إزاحة 26 بت،
- تفرع شرطي على الصفر/غير الصفر مع إزاحة 21 بت،
- مجموعة كاملة من الفروع الشرطية الموقعة وغير الموقعة تقارن بين سجلين (مثل BGTUC) أو سجل مقابل الصفر (مثل BGTZC).
- مجموعة كاملة من عمليات التفرع والربط التي تقارن سجلًا بالصفر (على سبيل المثال BGTZALC).
- تعليمات قفز المؤشر بدون خانة تأخير مصممة لدعم العناوين المطلقة الكبيرة.
- تعليمات لتحميل القيم الفورية ذات 16 بت في موضع البت 16 أو 32 أو 48، مما يسمح بإنشاء ثوابت كبيرة بسهولة.
- تعليمات التحميل النسبية لعداد البرنامج، بالإضافة إلى توليد العناوين بإزاحات كبيرة (نسبية لعداد البرنامج).
- تعليمات عكس البتات ومحاذاة البايتات (كانت متاحة سابقًا فقط مع ملحق DSP).
- (تم إعادة تعريف تعليمات الضرب والقسمة بحيث تستخدم سجلًا واحدًا لنتيجتها).
- أصبحت التعليمات التي تولد قيم الصواب الآن تولد جميعها أصفارًا أو جميعها آحادًا بدلاً من مجرد مسح/تعيين البت 0.
- التعليمات التي تستخدم قيمة الصواب الآن تفسر جميع الأصفار على أنها خاطئة بدلاً من مجرد النظر إلى البت 0.
تمت إزالة التعليمات قليلة الاستخدام:
- بعض التحركات المشروطة
- تعليمات التفرع المحتملة (تم إهمالها في الإصدارات السابقة).
- تعليمات اعتراض تجاوز سعة الأعداد الصحيحة مع قيمة فورية 16 بت
- تعليمات مُجمِّع الأعداد الصحيحة (مع سجلات HI/LO، تم نقلها إلى ملحق DSP الخاص بالتطبيقات)
- unaligned load instructions (LWL and LWR), (requiring that most ordinary loads and stores support misaligned access, possibly via trapping and with the addition of a new instruction (BALIGN))
تمت إعادة تنظيم ترميز التعليمات، مما أتاح مساحة للتوسعات المستقبلية.
microMIPS
تُعدّ معمارية microMIPS32/64 مجموعةً فرعيةً من معماريتي MIPS32 وMIPS64 (على التوالي)، وقد صُممت لتحل محلّ امتداد MIPS16e الخاص بالتطبيقات (ASE). من عيوب MIPS16e أنها تتطلب تبديل الوضع قبل معالجة أيٍّ من تعليماتها ذات 16 بت. تُضيف microMIPS نسخًا من أكثر تعليمات 32 بت استخدامًا، مُشفّرةً كتعليمات 16 بت. يسمح هذا للبرامج بدمج تعليمات 16 بت و32 بت دون الحاجة إلى تبديل الأوضاع. طُرحت microMIPS بالتزامن مع الإصدار الثالث من MIPS32/64، ولكل إصدار لاحق من MIPS32/64 نسخةٌ مُقابلةٌ من microMIPS32/64. يُمكن للمعالج تنفيذ microMIPS32/64 أو كليهما، microMIPS32/64 ومجموعة MIPS32/64 الفرعية المُقابلة له. ابتداءً من الإصدار السادس من MIPS32/64، انتهى دعم MIPS16e، وأصبح microMIPS هو الشكل الوحيد لضغط التعليمات البرمجية في MIPS.
ملحقات خاصة بالتطبيق
يمكن إضافة عدد من الامتدادات المعمارية الاختيارية إلى بنيتي MIPS32 وMIPS64 الأساسيتين، والتي تُعرف مجتمعةً باسم امتدادات التطبيقات الخاصة (ASEs). توفر هذه الامتدادات ميزات تُحسّن كفاءة وأداء بعض أحمال العمل، مثل معالجة الإشارات الرقمية .
وحدة تحكم MIPS
تحسينات لتطبيقات المتحكمات الدقيقة. تم تطوير وحدة MCU ASE (امتداد خاص بالتطبيقات) لتوسيع دعم وحدة التحكم في المقاطعات ، وتقليل زمن استجابة المقاطعات، وتحسين وظيفة التحكم في وحدات الإدخال/الإخراج الطرفية المطلوبة عادةً في تصميمات أنظمة المتحكمات الدقيقة.
- تحديد الأولويات وتوليد المتجهات بشكل منفصل
- يدعم ما يصل إلى 256 مقاطعة في وضع وحدة التحكم الخارجية بالمقاطعات (EIC) وثمانية دبابيس مقاطعة للأجهزة.
- يوفر عنوان إزاحة متجه 16 بت
- الجلب المسبق لمتجه استثناء المقاطعة
- مقدمة المقاطعة الآلية – تضيف مكونات مادية لحفظ وتحديث حالة النظام قبل روتين معالجة المقاطعة
- خاتمة المقاطعة الآلية - تستعيد حالة النظام المخزنة مسبقًا في المكدس للعودة من المقاطعة.
- ربط المقاطعات – يدعم خدمة المقاطعات المعلقة دون الحاجة إلى الخروج من روتين المقاطعة الأولي، مما يوفر الدورات المطلوبة لتخزين واستعادة المقاطعات النشطة المتعددة.
- يدعم جلب عنوان متجه المقاطعة مسبقًا بشكل استباقي. يقلل عدد دورات خدمة المقاطعة عن طريق تداخل عمليات الوصول إلى الذاكرة مع عمليات تفريغ خط الأنابيب وتحديد أولويات الاستثناءات.
- يتضمن تعليمات ضبط/مسح البتات الذرية التي تتيح تعديل البتات الموجودة داخل سجل الإدخال/الإخراج والتي تستخدم عادة لمراقبة أو التحكم في وظائف الأجهزة الطرفية الخارجية دون انقطاع، مما يضمن تنفيذ الإجراء بشكل آمن.
MIPS16
MIPS16 هو امتداد خاص بالتطبيقات لمعالجات MIPS من الإصدار الأول إلى الخامس، صممته شركتا LSI Logic و MIPS Technologies ، وأُعلن عنه في 21 أكتوبر 1996، بالتزامن مع أول تطبيق له، وهو معالج TinyRISC من LSI Logic. [ 33 ] حصلت شركات NEC Electronics و Philips Semiconductors و Toshiba (وغيرها) على ترخيص MIPS16 لاحقًا ، وطُبّق كامتداد لبنى MIPS I وII وIII. يُقلل MIPS16 حجم التطبيقات بنسبة تصل إلى 40% باستخدام تعليمات 16 بت بدلًا من 32 بت، كما يُحسّن كفاءة استهلاك الطاقة، ومعدل نجاح الوصول إلى ذاكرة التخزين المؤقت للتعليمات، ويُعادل أداء بنيته الأساسية. [ 34 ] وهو مدعوم بأدوات تطوير الأجهزة والبرامج من MIPS Technologies ومزودين آخرين. يُعدّ MIPS16e نسخةً مُحسّنة من MIPS16، وقد دعمته في البداية معالجات MIPS32 وMIPS64 الإصدار 1. أما MIPS16e2 فهو نسخة مُحسّنة أخرى من MIPS16، ويدعمها معالجات MIPS32 وMIPS64 (حتى الإصدار 5). وقد استُبدل في الإصدار 6 بمعالج microMIPS.
معالجة الإشارات الرقمية MIPS (DSP)
وحدة معالجة الإشارات الرقمية (DSP ASE) هي امتداد اختياري لمجموعات تعليمات MIPS32/MIPS64 الإصدار 2 والإصدارات الأحدث، ويمكن استخدامها لتسريع نطاق واسع من عمليات حساب الوسائط المتعددة، وخاصة الصوت والفيديو. تتألف وحدة DSP من مجموعة من التعليمات والحالة في مسار معالجة الأعداد الصحيحة، وتتطلب الحد الأدنى من المنطق الإضافي للتنفيذ في نوى معالجات MIPS. تم طرح المراجعة الثانية من وحدة ASE في النصف الثاني من عام 2006. تضيف هذه المراجعة تعليمات إضافية إلى وحدة ASE الأصلية، ولكنها متوافقة معها في باقي الجوانب. [ 35 ] على عكس معظم بنية MIPS، فهي عبارة عن مجموعة غير منتظمة إلى حد ما من العمليات، تم اختيار العديد منها لأهميتها الخاصة في بعض الخوارزميات الرئيسية. أهم ميزاتها الجديدة (مقارنةً بـ MIPS32 الأصلية): [ 36 ]
- تشبع الحساب (عندما تتجاوز عملية حسابية الحد الأقصى، قم بتسليم الرقم القابل للتمثيل الأقرب إلى الإجابة غير المتجاوزة).
- العمليات الحسابية ذات النقطة الثابتة على الكسور ذات النقطة الثابتة الموقعة 32 و 16 بت بنطاق من -1 إلى +1 (تسمى هذه على نطاق واسع "Q31" و "Q15").
- تتضمن هذه الوحدة تعليمات الضرب الصحيح والضرب والتجميع الموجودة، والتي تُخزّن النتائج في مُجمِّع بحجم مضاعف (يُسمى "hi/lo" ويبلغ حجمه 64 بت على معالجات MIPS32). وتضيف وحدة DSP ASE ثلاثة مُجمِّعات أخرى، بالإضافة إلى بعض أنواع الضرب والتجميع المختلفة.
- تعليمات SIMD التي تعمل على 4 بايتات غير موقعة أو قيمتين 16 بت مجمعة في سجل 32 بت (يدعم الإصدار 64 بت من DSP ASE متجهات أكبر أيضًا).
- عمليات SIMD هي عمليات حسابية أساسية، وعمليات إزاحة، وبعض عمليات الضرب والتجميع.
بنية MIPS SIMD (MSA)
امتدادات مجموعة التعليمات المصممة لتسريع الوسائط المتعددة.
- امتدادات قابلة للتطوير مُحددة مسبقًا للرقائق ذات عدد أكبر من البوابات/الترانزستورات
- 32 سجلًا متجهيًا لعناصر متجهية بأبعاد 16 × 8 بت، و8 × 16 بت، و4 × 32 بت، و2 × 64 بت، جميعها بعرض 128 بت.
- يشمل العمليات التالية:
- عمليات حسابية متجهة فعالة على بيانات الأعداد الصحيحة، والأعداد ذات الفاصلة الثابتة، والأعداد ذات الفاصلة العائمة مع خيارات التقريب والتشبع الكاملة
- إنشاء القيم المطلقة في المتجهات
- الضرب بدقة كاملة والضرب والجمع المدمج
- التحويلات بين البيانات الصحيحة، والبيانات ذات الفاصلة العائمة، والبيانات ذات الفاصلة الثابتة
- مقارنة على مستوى المتجهات والتفرع بدون علامات شرطية
- خلط المتجهات (أحادية البعد) والمصفوفات (ثنائية البعد)
- عمليات تحميل وتخزين مُحددة النوع للتشغيل المستقل عن ترتيب البايتات
- متوافق مع معيار IEEE 754-2008
- الإشارة إلى استثناءات الفاصلة العائمة الدقيقة للعناصر
- يعمل على تسريع التطبيقات كثيفة الحساب من خلال الاستفادة من دعم المترجم العام
- تم تصميمه كحل قابل للبرمجة بواسطة البرمجيات لتطبيقات أو وظائف الإلكترونيات الاستهلاكية التي لا تغطيها الأجهزة المخصصة
- صُممت هذه التقنية خصيصاً لتطبيقات استخراج البيانات الناشئة، واستخلاص الميزات ، ومعالجة الوسائط المتعددة، وواجهات المستخدم الرسومية ، والحوسبة العلمية عالية الأداء.
تقنية المحاكاة الافتراضية MIPS
أضافت مراجعة MIPS 6 خاصية المحاكاة الافتراضية الأصلية المدعومة بواسطة الأجهزة.
تعدد الخيوط في معالجات MIPS
يمكن لكل نواة MIPS متعددة الخيوط دعم ما يصل إلى وحدتي معالجة افتراضية (VPE) تشتركان في مسار واحد وموارد عتادية أخرى. ونظرًا لأن كل وحدة VPE تتضمن نسخة كاملة من حالة المعالج كما يراها نظام البرمجيات، فإنها تظهر كمعالج مستقل تمامًا لنظام تشغيل SMP Linux. بالنسبة لتطبيقات معالجة الخيوط الأكثر دقة، يمكن لكل وحدة VPE دعم ما يصل إلى تسع وحدات معالجة (TC) موزعة على وحدتي VPE. تشترك وحدات المعالجة في وحدة تنفيذ مشتركة، ولكن لكل منها عداد برنامج وملفات سجلات أساسية خاصة بها، مما يسمح لكل منها بمعالجة خيط من البرمجيات. كما تتيح بنية MIPS متعددة الخيوط تخصيص دورات المعالج للخيوط، وتحديد أولويات الخيوط النسبية باستخدام وحدة إدارة جودة الخدمة ( QoS ) الاختيارية. وهذا يُمكّن آليتين لتحديد الأولويات تُحددان تدفق المعلومات عبر ناقل البيانات. تسمح الآلية الأولى للمستخدم بتحديد أولوية خيط على آخر، بينما تُستخدم الآلية الثانية لتخصيص نسبة محددة من الدورات لخيوط معينة بمرور الوقت. يُتيح الاستخدام المُدمج للآليتين تخصيصًا فعالًا لعرض النطاق الترددي لمجموعة الخيوط، وتحكمًا أفضل في زمن الاستجابة. في الأنظمة الآنية، يُعدّ التحديد على مستوى النظام أمرًا بالغ الأهمية، وتُسهّل وحدة جودة الخدمة (QoS) تحسين إمكانية التنبؤ بأداء النظام. قد يستبدل مصممو الأجهزة للأنظمة المتقدمة وحدة جودة الخدمة القياسية التي توفرها شركة MIPS Technologies بوحدة مُخصصة لتطبيقاتهم.
SmartMIPS
SmartMIPS عبارة عن امتداد خاص بالتطبيقات (ASE) صممته شركتا Gemplus International وMIPS Technologies لتحسين الأداء وتقليل استهلاك الذاكرة لبرامج البطاقات الذكية . وهو مدعوم فقط من قبل معالجات MIPS32، حيث أن البطاقات الذكية لا تتطلب إمكانيات معالجات MIPS64. عدد قليل من البطاقات الذكية يستخدم SmartMIPS.
MIPS Digital Media eXtension (MDMX)
تسريع تطبيقات الوسائط المتعددة التي كانت شائعة في التسعينيات على أنظمة RISC و CISC.
تقنية MIPS-3D
يُعدّ MIPS-3D امتدادًا لمعمارية MIPS V، حيث أضاف 13 تعليمة جديدة لتحسين أداء تطبيقات الرسومات ثلاثية الأبعاد. [ 37 ] وقد حسّنت هذه التعليمات الأداء من خلال تقليل عدد التعليمات اللازمة لتنفيذ أربع عمليات شائعة في الرسومات ثلاثية الأبعاد: تحويل الرؤوس، والقص ، والتحويل ، والإضاءة.
لتحويل الرؤوس:
- العنوان
للقص:
- سيارات الأجرة
- BC1ANY2F
- BC1ANY2T
- BC1ANY4F
- BC1ANY4T
لتقسيم المنظور وتطبيعه:
- RECIP1
- RECIP2
- RSQRT1
- RSQRT2
اصطلاحات الاتصال
كان لدى MIPS العديد من اصطلاحات الاستدعاء، خاصة على منصة 32 بت.
يُعدّ O32 ABI أكثر واجهات برمجة التطبيقات استخدامًا، نظرًا لكونه واجهة System V ABI الأصلية لمعالجات MIPS. [ 38 ] [ 39 ] وهو يعتمد كليًا على المكدس، حيث لا يتوفر سوى أربعة سجلات ( من $a0 إلى $a3 ) لتمرير الوسائط. يتم حجز مساحة على المكدس في حال احتاجت الدالة المستدعاة إلى حفظ وسائطها، ولكن لا يقوم المستدعي بتخزين السجلات هناك. تُخزّن القيمة المُعادة في السجل $v0 ؛ ويمكن تخزين قيمة مُعادة ثانية في $v1 . ظهرت واجهة برمجة التطبيقات هذه في عام 1990، وتم تحديثها آخر مرة في عام 1994. وقد شجع هذا البطء الملحوظ، إلى جانب نموذج الفاصلة العائمة القديم الذي يحتوي على 16 سجلًا فقط، على انتشار العديد من اصطلاحات الاستدعاء الأخرى. تم تعريفها فقط لمعالجات MIPS ذات 32 بت، ولكن قام GCC بإنشاء نسخة 64 بت تُسمى O64. [ 40 ]
بالنسبة للأنظمة ذات 64 بت، يُستخدم عادةً واجهة N64 ABI من شركة Silicon Graphics. ويتمثل التحسين الأهم في توفير ثمانية سجلات لتمرير الوسائط، بالإضافة إلى زيادة عدد سجلات الفاصلة العائمة إلى 32. يوجد أيضًا إصدار ILP32 يُسمى N32، يستخدم مؤشرات 32 بت لبرمجة أصغر حجمًا، على غرار واجهة x32 ABI . يعمل كلا الإصدارين في وضع 64 بت لوحدة المعالجة المركزية. [ 40 ] تمرر واجهتا N32 وN64 ABI الوسائط الثمانية الأولى إلى الدالة في السجلات من $a0 إلى $a7 ، بينما تُمرر الوسائط اللاحقة عبر المكدس. تُخزن القيمة المُعادة (أو مؤشر إليها) في $v0 ، ويمكن تخزين قيمة مُعادة ثانية في $v1 . في كلتا واجهتي N32 وN64 ABI، تُعتبر جميع السجلات بعرض 64 بت.
بُذلت بعض المحاولات لاستبدال O32 بواجهة برمجة تطبيقات ثنائية (ABI) ذات 32 بت تُشبه N32 أكثر من O32. وقد انبثقت عن مؤتمر عام 1995 واجهة MIPS EABI، التي كان إصدارها ذو 32 بت مشابهًا لها إلى حد كبير. [ 41 ] ألهمت EABI شركة MIPS Technologies لاقتراح واجهة برمجة تطبيقات ثنائية (ABI) أكثر جذرية تُسمى "NUBI"، والتي تُعيد استخدام سجلات الوسائط لقيمة الإرجاع. [ 42 ] يدعم GCC واجهة MIPS EABI، لكنه لا يدعمها LLVM، وكلاهما لا يدعم NUBI.
في جميع معالجات O32 و N32/N64، يُخزَّن عنوان العودة في المتغير $ra (الموجود في $31 ). ويتم ضبط هذا العنوان تلقائيًا باستخدام تعليمات JAL (القفز والربط) أو JALR (القفز وربط السجل). يقوم مقدمة الدالة في روتين MIPS الفرعي (غير الطرفي) بدفع عنوان العودة (الموجود في $ra ) إلى المكدس. [ 43 ] [ 44 ]
في كل من معالجات O32 و N32/N64، ينمو المكدس تنازليًا، لكن واجهات برمجة التطبيقات N32/N64 تتطلب محاذاة 64 بت لجميع مداخل المكدس. مؤشر الإطار ( $30 ) اختياري، ونادرًا ما يُستخدم عمليًا إلا عندما يتم تحديد تخصيص المكدس في دالة ما أثناء التشغيل، على سبيل المثال، عن طريق استدعاء دالة معينة .alloca()
بالنسبة لـ N32 و N64، يتم تخزين عنوان الإرجاع عادةً قبل 8 بايتات من مؤشر المكدس ، على الرغم من أن هذا قد يكون اختياريًا.
بالنسبة لواجهات برمجة التطبيقات N32 وN64، يجب على الدالة الاحتفاظ بالسجلات من $s0 إلى $s7 ، والمؤشر العام ( $gp أو $28 )، ومؤشر المكدس ( $sp أو $29 )، ومؤشر الإطار ( $fp أو $30 ). أما واجهة برمجة التطبيقات O32 فهي مماثلة، باستثناء أن الدالة المستدعِية مُلزمة بحفظ السجل $gp بدلاً من الدالة المُستدعاة.
في البرامج متعددة الخيوط، يُخزَّن مؤشر التخزين المحلي للخيط عادةً في سجل الأجهزة الخاص $29، ويُستَخدَم فيه تعليمة mfhw (نقل من الأجهزة). من المعروف أن أحد الموردين على الأقل يُخزِّن هذه المعلومات في السجل $k0 ، وهو مُخصَّص عادةً لاستخدام نواة النظام، ولكن هذا ليس معيارًا قياسيًا.
يتم حجز سجلات $k0 و $k1 ( $26 ، $27 ) لاستخدام النواة ولا ينبغي استخدامها بواسطة التطبيقات لأن هذه السجلات يمكن تغييرها في أي وقت بواسطة النواة بسبب المقاطعات أو تبديل السياق أو الأحداث الأخرى.
| اسم | رقم | يستخدم | هل يجب على كالي الحفاظ على؟ |
|---|---|---|---|
| صفر دولار | 0 دولار | ثابت 0 | غير متوفر |
| بسعر | دولار واحد | مُجمِّع مؤقت | لا |
| $v0 – $v1 | 2 - 3 دولارات | قيم لإرجاع الدوال وتقييم التعبيرات | لا |
| $a0 – $a3 | 4 دولارات - 7 دولارات | وسائط الدالة | لا |
| $t0 – $t7 | 8 دولارات - 15 دولارًا | مؤقتون | لا |
| من 0 دولار إلى 7 دولارات | 16 دولارًا - 23 دولارًا | الملفات المؤقتة المحفوظة | نعم |
| $t8 – $t9 | 24 - 25 دولارًا | مؤقتون | لا |
| $k0 – $k1 | 26 - 27 دولارًا | محجوز لنواة نظام التشغيل | غير متوفر |
| $gp | 28 دولارًا | المؤشر العالمي | نعم (باستثناء رمز PIC) |
| $sp | 29 دولارًا | مؤشر المكدس | نعم |
| $fp | 30 دولارًا | مؤشر الإطار | نعم |
| $ra | 31 دولارًا | عنوان المرسل | غير متوفر |
| اسم | رقم | يستخدم | هل يجب على كالي الحفاظ على؟ |
|---|---|---|---|
| صفر دولار | 0 دولار | ثابت 0 | غير متوفر |
| بسعر | دولار واحد | مُجمِّع مؤقت | لا |
| $v0 – $v1 | 2 - 3 دولارات | قيم لإرجاع الدوال وتقييم التعبيرات | لا |
| $a0 – $a7 | من 4 دولارات إلى 11 دولارًا | وسائط الدالة | لا |
| $t4 – $t7 | 12 - 15 دولارًا | مؤقتون | لا |
| من 0 دولار إلى 7 دولارات | 16 دولارًا - 23 دولارًا | الملفات المؤقتة المحفوظة | نعم |
| $t8 – $t9 | 24 - 25 دولارًا | مؤقتون | لا |
| $k0 – $k1 | 26 - 27 دولارًا | محجوز لنواة نظام التشغيل | غير متوفر |
| $gp | 28 دولارًا | المؤشر العالمي | نعم |
| $sp | 29 دولارًا | مؤشر المكدس | نعم |
| 8 دولارات | 30 دولارًا | مؤشر الإطار | نعم |
| $ra | 31 دولارًا | عنوان المرسل | غير متوفر |
السجلات التي تُحفظ عبر الاستدعاء هي سجلات (بحسب الاصطلاح) لا تتغير عند استدعاء النظام أو الإجراء (الدالة). على سبيل المثال، يجب حفظ سجلات $s في المكدس بواسطة أي إجراء يحتاج إلى استخدامها، ويتم دائمًا زيادة قيم $sp و $fp بثوابت، ثم إنقاصها بعد انتهاء الإجراء من استخدامها (ومن الذاكرة التي تشير إليها). في المقابل، يتم تغيير قيمة $ra تلقائيًا عند أي استدعاء دالة عادي (التي تستخدم jal )، ويجب على البرنامج حفظ سجلات $t قبل أي استدعاء إجراء (إذا احتاج البرنامج إلى القيم الموجودة بداخلها بعد الاستدعاء).
يتطلب نظام استدعاء الدوال في مساحة المستخدم، الخاص بالبرامج المستقلة عن الموقع في لينكس، أن يحتوي سجل $t9 على عنوان تلك الدالة عند استدعائها . [ 46 ] يعود هذا النظام إلى ملحق واجهة التطبيق الثنائية (ABI) الخاص بنظام System V لمعمارية MIPS. [ 47 ]
الاستخدامات
تُستخدم معالجات MIPS في الأنظمة المدمجة مثل بوابات الإنترنت المنزلية وأجهزة التوجيه . صُممت MIPS في الأصل للحوسبة العامة. خلال ثمانينيات وتسعينيات القرن الماضي، استخدمت العديد من الشركات، مثل Digital Equipment Corporation و MIPS Computer Systems و NEC و Pyramid Technology و SiCortex و Siemens Nixdorf و Silicon Graphics و Tandem Computers ، معالجات MIPS لأجهزة الكمبيوتر الشخصية ومحطات العمل والخوادم .
تاريخيًا، استخدمت أجهزة ألعاب الفيديو مثل نينتندو 64 ، وسوني بلاي ستيشن ، وبلاي ستيشن 2 ، وبلاي ستيشن بورتبل معالجات MIPS. كما شاعت هذه المعالجات في الحواسيب العملاقة خلال تسعينيات القرن الماضي، إلا أن جميع هذه الأنظمة اختفت من قائمة أفضل 500 حاسوب عملاق . في البداية، استُكملت هذه الاستخدامات بتطبيقات مُدمجة، ولكن خلال تسعينيات القرن الماضي، أصبحت معالجات MIPS حاضرة بقوة في سوق المعالجات المُدمجة، وبحلول العقد الأول من الألفية الثانية، كانت معظم معالجات MIPS مُخصصة لهذه التطبيقات.
في منتصف إلى أواخر التسعينيات، تشير التقديرات إلى أن واحداً من كل ثلاثة معالجات دقيقة من نوع RISC تم إنتاجها كان معالج MIPS. [ 48 ]
بحلول أواخر العقد الثاني من القرن الحادي والعشرين، كانت معالجات MIPS لا تزال شائعة الاستخدام في الأسواق المدمجة، بما في ذلك السيارات، وأجهزة التوجيه اللاسلكية، ومودمات LTE (بشكل رئيسي عبر شركة MediaTek )، ووحدات التحكم الدقيقة (على سبيل المثال، معالج PIC32M من شركة Microchip Technology ). وقد اختفت هذه المعالجات إلى حد كبير من مجالات الحواسيب الشخصية والخوادم والتطبيقات.
أجهزة المحاكاة
تتضمن منصة Open Virtual Platforms (OVP) [ 49 ] برنامج المحاكاة OVPsim ، المتاح مجانًا للاستخدام غير التجاري، ومكتبة نماذج للمعالجات والأجهزة الطرفية والمنصات، بالإضافة إلى واجهات برمجة التطبيقات (APIs) التي تُمكّن المستخدمين من تطوير نماذجهم الخاصة. النماذج في المكتبة مفتوحة المصدر، مكتوبة بلغة C، وتشمل أنوية MIPS 4K، 24K، 34K، 74K، 1004K، 1074K، M14K، microAptiv، interAptiv، proAptiv ذات 32 بت، ونطاق أنوية MIPS 64 بت 5K. تم إنشاء هذه النماذج وصيانتها بواسطة Imperas [ 50 ] ، وبالشراكة مع MIPS Technologies، تم اختبارها وحصلت على علامة MIPS-Verified. تتضمن نماذج المنصات القائمة على MIPS بيئات تشغيل مباشرة (bare metal) ومنصات لتشغيل صور Linux الثنائية غير المعدلة. تتوفر هذه المنصات - المحاكيات - كملفات مصدرية أو ثنائية، وهي سريعة ومجانية للاستخدام غير التجاري وسهلة الاستخدام. تم تطوير OVPsim وصيانته بواسطة Imperas وهو سريع للغاية (مئات الملايين من التعليمات في الثانية)، وقد تم بناؤه للتعامل مع البنى والأنظمة المتجانسة وغير المتجانسة متعددة النوى.
SPIM هو برنامج محاكاة MIPS32 متاح مجانًا للاستخدام في التعليم. أحدث إصداراته يسمى QtSpim ويستخدم إطار عمل واجهة المستخدم Qt . [ 51 ]
EduMIPS64 هو برنامج محاكاة رسومي متعدد المنصات لوحدة المعالجة المركزية MIPS64، مكتوب بلغة Java/Swing، وقد بدأ كنسخة معدلة من WinMIPS64، وهو برنامج محاكاة آخر لوحدة المعالجة المركزية MIPS64، ويدعم مجموعة واسعة من بنية مجموعة تعليمات MIPS64، ويتيح للمستخدم رؤية ما يحدث في مسار المعالجة عند تشغيل برنامج تجميعي بشكل رسومي. [ 52 ]
MARS [ 53 ] هو برنامج محاكاة MIPS آخر قائم على واجهة المستخدم الرسومية مصمم للاستخدام في التعليم، وتحديداً للاستخدام مع كتاب Hennessy's Computer Organization and Design . لم يعد يتم تحديثه.
ساتورن [ 54 ] هو بيئة تطوير متكاملة (IDE) تعتمد على واجهة المستخدم الرسومية (GUI) بلغة MIPS، وتستخدم مُجمِّعًا يُسمى تايتان [ 55 ] . بدأ المشروع كمشروعٍ لأحد طلاب جامعة تورنتو كبديلٍ لبرنامج MARS، الذي توقف دعمه [ 56 ] . يُستخدم ساتورن حاليًا في مقررات جامعة تورنتو، ويتولى الطلاب وأعضاء هيئة التدريس صيانته.
WebMIPS [ 57 ] هو برنامج محاكاة MIPS يعمل عبر المتصفح، ويقدم تمثيلاً مرئياً لمعالج عام ذي بنية خطية. يُعد هذا البرنامج مفيداً للغاية لتتبع السجلات أثناء التنفيذ خطوة بخطوة.
يوفر QtMips تصورًا بسيطًا لخط أنابيب مكون من 5 مراحل، بالإضافة إلى تصور لمبدأ التخزين المؤقت، وذلك لدورات هندسة الحاسوب الأساسية. [ 58 ] [ 59 ] [ 60 ] وهو متوفر كتطبيق ويب وكبرنامج قابل للتنزيل لأنظمة ويندوز ولينكس وماك أو إس .
تتوفر محاكيات مجانية أكثر تطوراً من مشروعي GXemul (المعروف سابقاً باسم مشروع mips64emul) و QEMU . تحاكي هذه المحاكيات معالجات MIPS III وIV المختلفة، بالإضافة إلى أنظمة حاسوبية كاملة تستخدمها.
تتوفر برامج المحاكاة التجارية خصيصًا للاستخدام المدمج لمعالجات MIPS، على سبيل المثال Wind River Simics (MIPS 4Kc و 5Kc، و PMC RM9000، و QED RM7000، و Broadcom/Netlogic ec4400، و Cavium Octeon I)، و Imperas (جميع أنوية MIPS32 و MIPS64)، و VaST Systems (R3000، و R4000)، و CoWare (MIPS4KE، و MIPS24K، و MIPS25Kf، و MIPS34K).
CREATOR [ 61 ] [ 62 ] بيئة تطوير متكاملة (IDE) مفتوحة المصدر [ 63 ] ، تعمل عبر الويب، مصممة لتكون سهلة الاستخدام، ومتعددة المنصات، وعامة، ومتوافقة مع الأجهزة الحقيقية. تتيح هذه البيئة للمستخدمين تحرير وتجميع وتصحيح ومحاكاة وتشغيل البرامج المكتوبة بلغات التجميع مثل MIPS32 وRISC-V وZ80 وغيرها، كل ذلك ضمن أداة واحدة. بالإضافة إلى ذلك، تسمح بتشغيل هذه البرامج على أجهزة حقيقية، مثل المتحكمات الدقيقة (ESP32-C3 وESP32-C6 وغيرها) ولوحات SBC (OrangePi RV2 وNezha D1-H وغيرها). [ 64 ] [ 65 ]
WepSIM [ 66 ] هو برنامج محاكاة يعمل عبر المتصفح، حيث تتم برمجة مجموعة فرعية من تعليمات MIPS برمجة دقيقة. يُعد هذا البرنامج مفيدًا جدًا لفهم كيفية عمل وحدة المعالجة المركزية على مستوى البرمجة الدقيقة ، وعلى مستوى لغة تجميع MIPS ، ومع المقاطعات ، وما إلى ذلك.
انظر أيضاً
مراجع
- ↑ باترسون، ديفيد (2014). تنظيم وتصميم الحاسوب (ملف PDF) . إلسيفير. الصفحات 4.16-4.14. ISBN 978-0-12-407726-3تمت أرشفة الملف (PDF) من النسخة الأصلية في 4 سبتمبر 2019. تم الاطلاع عليه في 28 نوفمبر 2018 .
- 1 2 برايس، تشارلز (سبتمبر 1995). مجموعة تعليمات MIPS IV (المراجعة 3.2)، شركة MIPS Technologies.
- 1 2 3 4 5 6 7 8 سويتمان، دومينيك (1999). انظر MIPS Run . دار نشر مورغان كوفمان. رقم ISBN 1-55860-410-3.
- ↑ "معمارية MIPS32" . MIPS . مؤرشف من الأصل في 21 مارس 2020. تم الاطلاع عليه في 20 مارس 2020 .
- ↑ "معمارية MIPS64" . MIPS . مؤرشف من الأصل في 2 فبراير 2020. تم الاطلاع عليه في 20 مارس 2020 .
- ↑ "MIPS-3D ASE" . شركة إيماجينيشن تكنولوجيز . مؤرشف من الأصل في 3 يناير 2014. تم الاطلاع عليه في 4 يناير 2014 .
- ↑ "MIPS16e" . MIPS . مؤرشف من الأصل في 16 يناير 2021. تم الاطلاع عليه في 20 مارس 2020 .
- ↑ "معالجة الخيوط المتعددة في MIPS" . MIPS . مؤرشف من الأصل في 26 أكتوبر 2020. تم الاطلاع عليه في 20 مارس 2020 .
- ↑ جامعة كاليفورنيا، ديفيس. "صفحة المراجع والأدوات لمقرر ECS 142 (المترجمات)" . مؤرشف من الأصل في 21 مارس 2011. تم الاطلاع عليه في 28 مايو 2009 .
- 1 2 تورلي، جيم (8 مارس 2021). "لحظة، ماذا؟ MIPS تتحول إلى RISC-V" . مجلة الهندسة الإلكترونية . مؤرشف من الأصل في 21 مارس 2021. تم الاسترجاع في 28 مارس 2021 .
- ↑ "معالج MIPS" . www.d.umn.edu . مؤرشف من الأصل في 17 مايو 2023. تم الاطلاع عليه في 17 مايو 2023 .
- ↑ «سيليكون غرافيكس تُقدّم بنية MIPS المُحسّنة لقيادة ثورة التفاعل الرقمي» (بيان صحفي). شركة سيليكون غرافيكس، 21 أكتوبر 1996. مؤرشف من الأصل في 6 يونيو 1997.
- 1 2 غويناب، لينلي (18 نوفمبر 1996). "المعالجات الرقمية، MIPS تضيف امتدادات الوسائط المتعددة" (ملف PDF) . تقرير المعالجات الدقيقة . 10 (15): 24-28 . مؤرشف (ملف PDF) من الأصل في 20 يوليو 2011.
- ↑ "سيليكون غرافيكس تستعرض خارطة طريق جديدة للمعالجات الدقيقة عالية الأداء بتقنية MIPS" (بيان صحفي). 12 مايو 1997.
- ١ ٢ ٣ ٤ ٥ "شركة MIPS Technologies تُحسّن بنيتها لدعم الحاجة المتزايدة لإعادة استخدام الملكية الفكرية وتكاملها" (بيان صحفي). بزنس واير . ٣ مايو ١٩٩٩. مؤرشف من الأصل في ١ ديسمبر ٢٠١٨. تم الاطلاع عليه في ١١ فبراير ٢٠١٦ .
- ↑ «أحدث إصدار من معمارية MIPS يتضمن وظائف أساسية للمحاكاة الافتراضية وSIMD لتمكين الجيل القادم من المنتجات القائمة على MIPS» (بيان صحفي). شركة MIPS Technologies . 6 ديسمبر 2012. مؤرشف من الأصل في 13 ديسمبر 2012.
- ↑ "تخطي MIPS الإصدار الرابع وسط حرب مزايدة" . إي إي تايمز . 10 ديسمبر 2012.
{{cite magazine}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "شركة Wave Computing تعزز ريادتها في مجال الذكاء الاصطناعي من خلال استهداف حافة الحوسبة السحابية عبر الاستحواذ على شركة MIPS" . 15 يونيو 2018. مؤرشف من الأصل في 25 نوفمبر 2020. تم الاطلاع عليه في 19 ديسمبر 2018 .
- ↑ "أطلقت شركة Wave Computing® مبادرة MIPS المفتوحة لتسريع الابتكار في بنية MIPS® الشهيرة" . WAVE Computing . 17 ديسمبر 2018. مؤرشف من الأصل في 28 يوليو 2021. تم الاطلاع عليه في 19 ديسمبر 2018 .
- ↑ "سيتم فتح مصدر مجموعة تعليمات معالج MIPS في عام 2019 - فورونيكس" . مؤرشف من الأصل في 6 مارس 2021. تم الاطلاع عليه في 18 ديسمبر 2018 .
- ↑ يوشيدا، جونكو (17 ديسمبر 2018). "MIPS تصبح مفتوحة المصدر" . EE Times . مؤرشف من الأصل في 5 يوليو 2022. تم الاطلاع عليه في 18 يوليو 2022 .
- ↑ "معمارية MIPS R6 متاحة الآن للاستخدام المفتوح" . 28 مارس 2019. مؤرشف من الأصل في 4 أغسطس 2020. تم الاطلاع عليه في 16 ديسمبر 2019 .
- ↑ «شركة Wave Computing تُغلق مبادرة MIPS المفتوحة بأثر فوري ودون سابق إنذار» . ١٥ نوفمبر ٢٠١٩. مؤرشف من الأصل في ٧ مارس ٢٠٢١. تم الاطلاع عليه في ١٦ ديسمبر ٢٠١٩ .
- ↑ «شركة Wave Computing ومعالج MIPS تخرجان من إجراءات الإفلاس بموجب الفصل الحادي عشر» (بيان صحفي). 1 مارس 2021. مؤرشف من الأصل في 13 مايو 2021. تم الاطلاع عليه في 11 مارس 2021 .
- ↑ شيلوف، أنطون (25 أغسطس 2021). "لونغسون ينتقد معالج MIPS: يستخدم شفرة برمجية قديمة لوحدات المعالجة المركزية الجديدة" . تومز هاردوير . مؤرشف من الأصل في 25 يناير 2022. تم الاطلاع عليه في 1 ديسمبر 2021 .
- ↑ كوناتسر، ماثيو (19 يناير 2024). "شركة لونغسون الصينية لصناعة الرقائق تفوز بقضية حقوق معمارية MIPS - معمارية وحدة المعالجة المركزية الجديدة للشركة تشبه إلى حد كبير معمارية MIPS الحالية" . تومز هاردوير . مؤرشف من الأصل في 19 يناير 2024. تم الاسترجاع في 19 يناير 2024 .
- ↑ هاريس، ديفيد موني؛ هاريس، سارة ل. (2013). "الهندسة المعمارية". التصميم الرقمي وهندسة الحاسوب . إلسيفير. ص 294-369 . doi : 10.1016/b978-0-12-394424-5.00006-9 . ISBN 9780123944245R
-type هو اختصار لـ register-type. تستخدم تعليمات R-type ثلاثة سجلات كمعاملات: اثنان كمصادر، وواحد كوجهة.
- 1 2 "ملاحظة تطبيقية: أساسيات التزامن في معالج MIPS R4000" (ملف PDF) . صفحة 5. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 27 ديسمبر 2023. تم الاطلاع عليه بتاريخ 27 ديسمبر 2023 .
- ↑ مجموعة تعليمات MIPS IV (ملف PDF) (الإصدار 3.2 ). شركة MIPS Technologies . سبتمبر 1995. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 27 نوفمبر 2022. تم الاطلاع عليه بتاريخ 24 أغسطس 2022 .
- ↑ "مجموعة تعليمات MIPS R5" (ملف PDF) . الصفحات 59-62. مؤرشف (ملف PDF) من الأصل بتاريخ 15 ديسمبر 2023. تم الاطلاع عليه بتاريخ 15 ديسمبر 2023 .
- ↑ "مواصفات بروتوكول التماسك MIPS®، الإصدار 01.01" (ملف PDF) . الصفحات 26، 25، 57. مؤرشف (ملف PDF) من الأصل بتاريخ 4 سبتمبر 2018. تم الاطلاع عليه بتاريخ 15 ديسمبر 2023 .
- ↑ "MIPS - حلول معالجات RISC الرائدة في السوق" . imgtec.com . مؤرشف من الأصل في 9 مارس 2016. تم الاطلاع عليه في 11 فبراير 2016 .
- ↑ "شركة سيليكون غرافيكس تُقدّم برنامج معالج دقيق MIPS RISC صغير الحجم لأداء عالٍ بتكلفة منخفضة" (بيان صحفي). 21 أكتوبر 1996.
- ^ سويتمان ، دومينيك (2007). انظر تشغيل MIPS ( الطبعة الثانية). سان فرانسيسكو، كاليفورنيا: دار نشر مورغان كوفمان. ص 425 – 427. ISBN 978-0-12-088421-6.
- ↑ "استخدام مجموعة مترجمات جنو (GCC): وظائف MIPS DSP المدمجة" . gcc.gnu.org . مؤرشف من الأصل في 20 أبريل 2017.
- ↑ "بنية مجموعة التعليمات - لينكس ميبس" . www.linux-mips.org . مؤرشف من الأصل في 20 أبريل 2017.
- ↑ ثيكاث، راديكا وآخرون (1999) " امتداد معماري لمعالجة الهندسة بكفاءة ". ندوة الرقائق الساخنة .
- ↑ سويتمان، دومينيك (2007). انظر MIPS Run، الطبعة الثانية . مورغان كوفمان. ISBN 978-0-12088-421-6.
- ↑ "مرجع سريع لمجموعة تعليمات MIPS32" . مؤرشف (PDF) من الأصل بتاريخ 25 يناير 2022. تم الاطلاع عليه بتاريخ 17 أغسطس 2020 .
- 1 2 "تاريخ MIPS ABI" . مؤرشف من الأصل في 26 أغسطس 2018.
- ↑ إريك كريستوفر (11 يونيو 2003). "توثيق MIPS EABI" . binutils@sources.redhat.com (قائمة بريدية). مؤرشف من الأصل في 7 مايو 2020. تم الاطلاع عليه في 19 يونيو 2020 .
- ↑ "نوبي" . مؤرشف من الأصل في 29 يوليو 2021. تم الاطلاع عليه في 17 أغسطس 2020 .
- ↑ كارين ميلر (2006). "اتفاقيات استخدام سجلات MIPS" . مؤرشف من الأصل في 25 أكتوبر 2020.
- ↑ هال بيركنز (2006). "اتفاقية استدعاء MIPS" (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 30 سبتمبر 2020.
- ↑ دليل MIPSpro N32 ABI (ملف PDF) . شركة Silicon Graphics . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 17 ديسمبر 2021. تم الاطلاع عليه بتاريخ 17 أغسطس 2020 .
- ↑ "كود PIC – LinuxMIPS" . www.linux-mips.org . مؤرشف من الأصل في 21 سبتمبر 2018. تم الاطلاع عليه في 21 سبتمبر 2018 .
- ↑ "ملحق معالج MIPS RISC لواجهة التطبيقات الثنائية لنظام System V، الطبعة الثالثة" (ملف PDF) . الصفحات 3-12 . مؤرشف (ملف PDF) من الأصل بتاريخ 12 نوفمبر 2020. تم الاطلاع عليه بتاريخ 17 أغسطس 2020 .
- ↑ روبيو، فيكتور ب. "تنفيذ معالج MIPS RISC باستخدام FPGA لتعليم هندسة الحاسوب" (ملف PDF) . جامعة ولاية نيو مكسيكو . مؤرشف (ملف PDF) من الأصل في 15 أبريل 2012. تم الاطلاع عليه في 22 ديسمبر 2011 .
- ↑ "OVP: محاكاة سريعة، نماذج مفتوحة المصدر مجانية. منصات افتراضية لتطوير البرمجيات" . Ovpworld.org. مؤرشف من الأصل في 8 يونيو 2012. تم الاطلاع عليه في 30 مايو 2012 .
- ↑ "إمبيراس" . إمبيراس. 3 مارس 2008. مؤرشف من الأصل في 14 يونيو 2012. تم الاسترجاع في 30 مايو 2012 .
- ↑ "موقع محاكاة Spim" .
- ↑ "EduMIPS64" . Edumips.org. مؤرشف من الأصل في 7 مايو 2012. تم الاطلاع عليه في 30 مايو 2012 .
- ↑ "مجمع MARS MIPS ومحاكي وقت التشغيل" . Computerscience.missouristate.edu. مؤرشف من الأصل في 16 نوفمبر 2025. تم الاطلاع عليه في 16 نوفمبر 2025 .
- ↑ واتلي، تايلور (16 نوفمبر 2025)، 1whatleytay/saturn ، جيت هاب ، تم الاطلاع عليه في 16 نوفمبر 2025
- ↑ واتلي، تايلور (9 أبريل 2025)، 1whatleytay/titan ، جيت هاب ، تم الاطلاع عليه في 16 نوفمبر 2025
- ↑ بدر، ماريو (23 مارس 2023). "زحل (وتيتان)" . موقع ماريو بدر الإلكتروني . تم الاطلاع عليه في 16 نوفمبر 2025 .
- ↑ "WebMIPS - محاكاة معالجة MIPS CPU عبر الإنترنت" . تم الاطلاع عليه في 13 يناير 2012 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) (online demo) "Archiveved copy" . تم أرشفة النسخة الأصلية في 10 أكتوبر 2011. تم الاطلاع عليها في 13 يناير 2012 .{{cite web}}: CS1 maint: archived copy as title ( link ) (source) - ↑ QtMips - محاكي معالج MIPS لأغراض تعليمية على GitHub
- ↑ كوتشي، كارل (2018). محاكاة وحدة المعالجة المركزية الرسومية مع تصور ذاكرة التخزين المؤقت (ملف PDF) (رسالة ماجستير). الجامعة التقنية التشيكية في براغ . مؤرشف (ملف PDF) من الأصل في 19 نوفمبر 2020. تم الاطلاع عليه في 25 يناير 2021 .
- ^ جيزوبولوس ، ديميتريس (6 ديسمبر 2020). "أساسيات QtMips-v3" (PDF) . الجامعة الوطنية وكابوديستريا في أثينا . تم الاسترجاع في 25 يناير 2021 .
- ↑ الموقع الرسمي للمبدعين على الرابط التالي: https://creatorsim.github.io
- ↑ مثال على حساب المضروب باستخدام برنامج CREATOR ومعالج MIPS32: https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e12
- ↑ شفرة المصدر الخاصة بـ CREATOR على GitHub: https://github.com/creatorsim
- ^ كامارماس-ألونسو، دييغو؛ جارسيا كارباليرا، فيليكس؛ كالديرون ماتيوس، أليخاندرو؛ ديل بوزو بونال، إلياس؛ كانو-ريسا، خوان كارلوس؛ أوتريلا أرويو ، إليسا (13 يونيو 2026). "CREATOR: بيئة تطوير متكاملة لتجميع البرمجة في بنيات RISC-V" . سوفت وير اكس . 35 : 1– 13. دوى : 10.1016/j.softx.2026.102792 . ردمك 2352-7110 .
- ^ كامارماس-ألونسو، دييغو؛ جارسيا كارباليرا، فيليكس؛ ديل بوزو بونال، إلياس؛ أليخاندرو كالديرون ماتيوس (29 مايو 2024). "CREATOR: بيئة تطوير تعليمية متكاملة لبرمجة RISC-V" . الوصول إلى IEEE . 12 : 127702– 127717. بيب كود : 2024IEEEA..12l7702C . دوى : 10.1109/ACCESS.2024.3406935 . ردمك 2169-3536 .
- ↑ غارسيا-كارباليرا، فيليكس؛ كالديرون-ماتوس، أليخاندرو؛ ألونسو-مونزالفي، سول؛ برييتو-سيبيدا، خافيير (2020). "WepSIM: محاكي تعليمي تفاعلي عبر الإنترنت يدمج التصميم المصغر والبرمجة المصغرة وبرمجة لغة التجميع". معاملات IEEE في تقنيات التعلم . 13 (1): 211-218 . Bibcode : 2020ITLT...13..211G . doi : 10.1109/TLT.2019.2903714 . hdl : 10016/33660 .
للمزيد من القراءة
- فاركوهار، إيرين؛ فيليب بونس (1994). دليل مبرمج MIPS . دار نشر مورغان كوفمان. ISBN 1-55860-297-6.
- باترسون، ديفيد أ .؛ جون ل. هينيسي (2004). تنظيم وتصميم الحاسوب: واجهة الأجهزة/البرمجيات . دار مورغان كوفمان للنشر . ISBN 1-55860-604-1.
- سويتمان، دومينيك (1999). انظر سباق MIPS . دار نشر مورغان كوفمان. رقم ISBN 1-55860-410-3.
- سويتمان، دومينيك (2007). انظر MIPS Run، الطبعة الثانية . دار نشر مورغان كوفمان. رقم ISBN 978-0-12-088421-6.
روابط خارجية
- معالجات MIPS مؤرشفة بتاريخ 11 مايو 2022 في أرشيف الإنترنت (Wayback Machine) .
- مخطط تاريخ بنية MIPS في Wayback Machine (تمت أرشفته في 30-05-2013)
- محاكي MIPS عبر الإنترنت، مؤرشف في 5 مارس 2022، على موقع Wayback Machine.
- تعليمات MIPS - مجموعة تعليمات MIPS مؤرشفة في 7 أبريل 2022 على موقع Wayback Machine
- معمارية MIPS
- الحوسبة المتقدمة بتقنية RISC
- مقدمات متعلقة بالحاسوب في عام 1985
- تقنيات MIPS
