ميپس MIPS (معالج دقيق بدون مراحل متشابكة بتخطيط القنوات أو النواقل) Microprocessor without Interlocked Pipelined Stages[1] هي بنى مجموعة التعليمات (ISA) لحاسب مجموعة مخفضة من تعليمات (RISC) [2]:A-1[3]:19تم تطويرها بواسطة ميپس كومپيوتر سستمز، المعروفة الآن ميپس تكنولوجيز، ومقرها في الولايات المتحدة.

MIPS
المصممMIPS Technologies, Imagination Technologies
Bits64-bit (32 → 64)
Introduced1985; 39 years ago (1985
الإصدارMIPS32/64 Release 6 (2014)
التصميمRISC
النوعRegister-Register
الترميزFixed
BranchingCompare and branch
EndiannessBi
حجم الصفحة4 KB
الإمتداداتMDMX, MIPS-3D
OpenNo (opening was retracted)
Registers
General purpose32
Floating point32

توجد إصدارات متعددة من ميپس: بما في ذلك ميپس I و II و III و IV و V؛ بالإضافة إلى خمسة إصدارات من ميپس32 / 64 (لتطبيقات 32 بت و 64 بت، على التوالي). كانت بنى ميپس الأولى 32 بت فقط ؛ وقد تم تطوير إصدارات 64 بت لاحقًا. فاعتبارًا من أبريل 2017، تم تقديم الإصدار الحالي من ميپس وهو MIPS32 / 64 Release 6.[4][5]حيث يختلف MIPS32 / 64 بشكل أساسي عن ميپس I–V من خلال تحديد معالج مشترك في وضع النواة للتحكم في النظام بالإضافة إلى بنية وضع المستخدم.

تحتوي بنية ميپس على العديد من الملحقات الاختيارية. MIPS-3D وهي مجموعة بسيطة من تعليمات SIMD للفواصل العائمة المخصصة للمهام ثلاثية الأبعاد الشائعة ،[6] MDMX (MaDMaX) وهو عبارة عن مجموعة تعليمات SIMD ذات عدد صحيح أكثر شمولاً باستخدام سجلات الفاصلة العائمة 64 بت، MIPS16e الذي يضيف ضغط إلى تدفق التعليمات لكي تأخذ البرامج مساحةً أقل،[7] و MIPS MT ميپس إم تي، والتي تضيف قدرة تعدد مؤشرات الترابط.[8]

غالبًا ما تدرس وتبحث صفوف ودورات هندسة الكمبيوتر في الجامعات والمدارس الفنية هندسة ميپس.[9]فقد أثرت هذه البنى بشكل كبير على بنية RISC فيما بعد مثل ألفا.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

تاريخ

تم تصميم الإصدار الأول من بنية ميپس بواسطة ميپس كومپيوتر سستمز لمعالجها الدقيق R2000، وهو أول تطبيق ميپس. تم تقديم كل من ميپس و R2000 معًا في عام 1985.[بحاجة لمصدر] عندما تم تقديم ميپس II، تمت إعادة تسمية ميپس ب ميپس I لتمييزها عن الإصدار الجديد.[3]:32

كان المعالج الدقيق R6000 من ميپس كومپيوتر سستمز عام (1989) أول تطبيق لميپس II.[3]:8 تم تصميم R6000 للمخدمات، وتم تصنيعه وبيعه بواسطة بيپولار انتگريتد تكنولوجي، ولكنه فشل تجاريًا. خلال منتصف التسعينيات، كانت العديد من معالجات ميپس 32 بت الجديدة لـ الأنظمة المضمنة تطبيقات ميپس II لأن إدخال بنية ميپس III 64 بت في 1991 تاركاً ميپس II كأحدث بنية ميپس 32 بت حتى تم تقديم ميپس‌إس‌32 في عام 1999.A[3]:19
كان المعالج الدقيق R4000 من ميپس كومپيوتر سستمز عام (1991) أول تطبيق ميپس III. تم تصميمه للاستخدام في أجهزة الحواسيب الشخصية و حواسيب محطات العمل والمخدمات. قامت ميپس كومپيوتر سستمز بتعزيز بنية ميپس و R4000 بإصرار، وأنشأت اتحاد بيئة الحوسبة المتقدمة (ACE) لتطوير معيارها حوسبة ريسك (RISC) المتقدمة (ARC)، والذي يهدف إلى إنشاء ميپس كنظام أساسي للحوسبة الشخصية المشرفة. فقد وجدت ARC نجاحًا ضئيلًا في أجهزة الحواسب الشخصية، ولكن تم استخدام R4000 (ومشتق R4400) على نطاق واسع في أجهزة الحاسب ومحطات العمل، وخاصة من قِبل أكبر مستخدم لها، سليكون گرافكس. وشملت الاستخدامات الأخرى لـ R4000 الأنظمة المدمجة المتطورة وأجهزة الحاسب العملاقة. تم تنفيذ ميپس III في النهاية بواسطة عدد من المعالجات الدقيقة المدمجة. وقد تم استخدام R4600 الخاص بQuantum Effect Design  (1993) ومشتقاته على نطاق واسع في الأنظمة المضمنة المتطورة ومحطات العمل والمخدمات المنخفضة النهاية. وقد تم تصميم R4200 الخاص ب ميپس تكنولوجيز (1994) للأنظمة المضمنة والحاسب المحمول وأجهزة الحواسب الشخصية. فتم تصنيع مشتق R4300i، بواسطة NEC Electronics، تم استخدامه في وحدة تحكم الألعاب ننتندو 64. كان ننتندو 64، إلى جانب پلاي ستيشن، من بين المستخدمين الأكبر حجمًا لمعالجات بنية ميپس في منتصف التسعينيات.

أول تطبيق ل ميپس IV كان شرائح المعالجات الدقيقة الخاص لميپس تكنولوجيز R8000عام (1994). بدأ تصميم R8000 في شركة سليكون گرافكس. ولم يتم استخدامه إلا في حواسب محطات العمل والمخدمات المتطورة للتطبيقات العلمية والتقنية حيث كان الأداء العالي مهماً في أحمال العمل الكبيرة ذات الفواصل العائمة. التطبيقات اللاحقة كانت تقنيات ميپس R10000 (1996) وأجهزة Quantum Effect R5000 (1996) و RM7000 (1998). تم استخدام R10000، الذي تم تصنيعه وبيعه بواسطة NEC Electronics و توشيبا، ومشتقاته بواسطة NEC و پيرميد تكنولوجي وشركة سليكون گرافكس. و حواسيب تاندم (من بين أمور أخرى) في محطات العمل والمخدمات وأجهزة الحواسب العملاقة. تم استخدام R5000 و R7000 في الأنظمة المضمنة المتطورة، وأجهزة الحاسب الشخصية، ومحطات العمل والمخدمات منخفضة الجودة. تم استخدام أحد مشتقات R5000 من توشيبا، R5900، في محرك إيموشن من سوني كومبيوتر انترتينمنت، والذي كان يدعم وحدة التحكم في الألعاب پلاي ستيشن 2.

تم الإعلان عنه في 21 أكتوبر 1996 في منتدى المعالجات الدقيقة 1996 جنبًا إلى جنب مع ملحق ملحقات الوسائط الرقمية لميپس (MDMX)، تم تصميم ميپس V لتحسين أداء تحويلات الرسومات ثلاثية الأبعاد.[10] في منتصف التسعينيات، كان الاستخدام الرئيسي لمعالجات ميپس الدقيقة غير المضمنة عبارة عن محطات عمل رسومية من SGI. تم إكمال ميپس V بامتداد MDMX للأعداد الصحيحة فقط لتوفير نظام كامل لتحسين أداء تطبيقات الرسومات ثلاثية الأبعاد.[11] لم يتم تقديم تطبيقات ميپس V. في 12 مايو 1997، وقد أعلنت SGI عن معالجات "H1" ("بيست") و "H2" ("كاپيتان"). كان من المفترض أن يكون الأول هو أول تطبيق ميپس V، وكان من المقرر تقديمه في النصف الأول من عام 1999.[12]تم دمج مشروعي "H1" و "H2" لاحقًا وتم إلغاؤهما في نهاية المطاف في عام 1998. على الرغم من عدم وجود أي تطبيقات ميپس V، إلا أن MIPS64 الإصدار 1 (1999) كان يعتمد على ميپس V ويحتفظ بجميع ميزاته باعتباره معالجًا مساعداً اختياريًا 1 (FPU) و الذي يسمى ميزة مفرد مزدوج.

عندما انشقت ميپس تكنولوجيز عن سليكون گرافيكس في عام 1998، أعادت التركيز على سوق العمل المدمج. حتى ميپس V، كان كل إصدار تالي عبارة عن مجموعة شاملة دقيقة من الإصدار السابق، ولكن وجدوا أن هذه الخاصية بمثابة مشكلة ،[بحاجة لمصدر]وتم تغيير تعريف البنية لتعريف بنية 32 بت و 64 بت: MIPS32 و MIPS64. تم تقديم كلاهما في عام 1999.[13] يستند MIPS32 إلى ميپس II مع بعض الميزات الإضافية من ميپس III و ميپس IV و ميپس V ؛ ويستند MIPS64 إلى ميپس V.[13] حصلت شركة NEC و توشيبا و SiByte سي بايت (حصلت عليها من برودكوم لاحقاً) على تراخيص MIPS64 بمجرد الإعلان عنها. فلپس ، LSI لوجك ، IDT ، Raza Microelectronics ، Inc. ، كاڤيوم ، لونگسون تكنولوجي وقد انضمت إليهم إنجنك سميكوندكتور. تم الإعلان عن الإصدار 5 من MIPS32 / MIPS64 في 6 ديسمبر 2012.[14] تم تخطي الإصدار 4 لأن الرقم أربعة يُنظر إليه على أنه سيئ الحظ في العديد من الثقافات الآسيوية.[15]

في ديسمبر 2018، أعلنت ويڤ للحوسبة، المالك الجديد لبنية ميپس، أن ميپس ISA ستكون مفتوحة المصدر في برنامج أطلق عليه اسم مبادرة ميپس المفتوحة.[16] كان الهدف من البرنامج هو فتح الوصول إلى أحدث الإصدارات من تصميمات 32 بت و 64 بت مما يجعلها متاحة دون أي رسوم ترخيص أو حقوق ملكية بالإضافة إلى منح تراخيص المشاركين لبراءات اختراع ميپس الحالية.[17][18][19]

في مارس 2019، تم توفير إصدار واحد من هذه البنية بموجب ترخيص بدون حقوق ملكية، [20] ولكن في وقت لاحق من ذلك العام تم إغلاق البرنامج مرة أخرى.[21]


تصميم

ميپس عبارة عن بنية معيارية تدعم ما يصل إلى أربعة معالجات مساعدة (CP0/1/2/3). في مصطلحات ميپس CP0 هو المعالج المساعد للتحكم في النظام (جزء أساسي من المعالج الذي تم تحديده من قبل التنفيذ في ميپس I–V) CP1 اختياري وحدة الفاصلة العائمة (FPU) و CP2/3 هي معالجات مساعدة اختيارية محددة التنفيذ \(قامت ميپس III بإزالة CP3 وإعادة استخدام أكواد التشغيل الخاصة بها لأغراض أخرى). على سبيل المثال، في وحدة التحكم في ألعاب الفيديو پلاي ستيشن، CP2 هي محرك تحويل هندسي (GTE)، والتي تقوم بتسريع معالجة الهندسة في رسوميات الحاسب ثلاثية الأبعاد.

إصدارات

ميپس I

ميپس هي بنية التحميل/التخزين (تُعرف أيضًا باسم بنية مسجل-مسجل) ؛ باستثناء تعليمات التحميل/ لتخزين المستخدمة للوصول إلى الذاكرة، حيث تعمل جميع التعليمات على المسجلات.

مسجلات

لدى ميپس I اثنين وثلاثين من مسجلات الأغراض العامة (GPR) 32 بت. تم ربط المسجل 0$ إلى الصفر ويتم تجاهل الكتابة إليه. و المسجل 31$ هو مسجل الربط. بالنسبة لتعليمات الضرب والقسمة الصحيحة، والتي تعمل بشكل غير متزامن من التعليمات الأخرى، يتم توفير زوج من مسجلات 32 بت، "HI" و "LO". وهناك مجموعة صغيرة من التعليمات لنسخ البيانات بين مسجلات الأغراض العامة ومسجلات HI / LO.

يحتوي عداد البرنامج على 32 بت. يحتوي البتان منخفضا الترتيب دائمًا على صفر نظرًا لأن تعليمات ميپس I يبلغ طولها 32 بت وتتوافق مع حدود الكلمات الطبيعية.

تشكيلات التعليمات

التعليمات مقسمة إلى ثلاثة أنواع: R، I و J. تبدأ كل تعليمات بكود تشغيل 6 بت. بالإضافة إلى كود التشغيل، تحدد التعليمات من النوع R ثلاثة مسجلات، وحقل مقدار الإزاحة، وحقل الوظيفة؛ تحدد تعليمات النوع الأول مسجلين وقيمة فورية 16 بت؛ تتبع تعليمات نوع J كود التشغيل مع قفزة 26 بت للوصول للهدف.[2]:A-174

فيما يلي التشكيلات الثلاثة المستخدمة لمجموعة التعليمات الأساسية:

النوع -31-                                 تشكيل(بتات)                                 -0-
R opcode (6) rs (5) rt (5) rd (5) shamt (5) funct (6)
I opcode (6) rs (5) rt (5) immediate (16)
J opcode (6) address (26)

تعليمات وحدة المعالجة المركزية

تحتوي ميپس I على تعليمات تقوم بتحميل وتخزين 8 بنت ببايت و 16 بت نصف كلمات وكلمات 32 بت. يتم دعم وضع العنونة واحد فقط: القاعدة + الإزاحة. نظرًا لأن ميپس I عبارة عن بنية 32 بت، فإن تحميل الكميات الأقل من 32 بت يتطلب أن يكون مرجع المعطيات إما مرمَّزاً أو صفريًا ممتدًا إلى 32 بت. تؤدي تعليمات التحميل الملحقة بـ "غير المرمَّزة" إلى عدم التمديد؛ خلاف ذلك يتم تنفيذ تمديد الترميز. يتم تحميل قاعدة مصدر التعليمات من محتويات GPR (rs) وكتابة النتيجة إلى GPR (rt) آخر. ويتم تخزين قاعدة مصدر التعليمات من محتويات GPR (rs) وتخزين البيانات من GPR (rt) آخر. يتم حساب جميع تعليمات التحميل والتخزين عنوان الذاكرة عن طريق تلخيص القاعدة برمز 16 بت موسع على الفور. يتطلب ميپس I أن تكون جميع عمليات الوصول إلى الذاكرة متوافقة مع حدود الكلمات الطبيعية، وإلا يتم الإشارة إلى استثناء. لدعم عمليات الوصول الفعالة إلى الذاكرة غير المحاذاة، توجد تعليمات كلمات التحميل / التخزين ملحقة بكلمة "يسار" أو "يمين". يتم اتباع جميع تعليمات التحميل بواسطة فتحة تأخير التحميل. لا يمكن للتعليمات الموجودة في فتحة تأخير التحميل استخدام البيانات المحملة بواسطة تعليمات التحميل. يمكن ملء فتحة تأخير التحميل بتعليمات لا تعتمد على التحميل؛ يتم استبدال nop إذا تعذر العثور على مثل هذه التعليمات.

لدى ميپس I تعليمات لإجراء عمليات الجمع والطرح. يكون مصدر هذه التعليمات معاملاتهم من اثنين من GPRs (rs و rt)، وتتم كتابة النتيجة إلى ثالث (rd) GPR. بدلاً من ذلك، يمكن أن تُصدر الإضافة أحد المعامِلات من 16 بت فوريًا (والتي يتم تمديدها إلى 32 بت). تحتوي تعليمات الجمع والطرح على متغيرين: بشكل افتراضي، يتم الإشارة إلى استثناء إذا فاضت النتيجة؛ الإرشادات ذات اللاحقة "غير المرمزة" لا تشير إلى استثناء. يفسر التحقق من تجاوز السعة النتيجة على أنها عدد صحيح مكمل مكون من 32 بت. لدى ميپس I تعليمات لتنفيذ عمليات أحادية منطقية آند AND و أور OR و إكسور XOR و نور NOR. مصدر هذه التعليمات معاملاتهم من جهازي GPR وتتم كتابة النتيجة إلى ثالث GPR. يمكن لتعليمات AND و OR و XOR بدلاً من ذلك أن تصدر أحد المعامِلات من 16 بت فوريًا (الذي يمتد صفرًا إلى 32 بت). تكتب تعليمات تعيين "العلاقة" واحدًا أو صفرًا إلى مسجل الوجهة إذا كانت العلاقة المحددة صحيحة أو خاطئة. مصدر هذه التعليمات معاملاتهم من اثنين من GPRs أو GPR واحد و 16 بت فوري (والذي يتم تمديده إلى 32 بت)، وتتم كتابة النتيجة إلى ثالث GPR. بشكل افتراضي، يتم تفسير المعاملات على أنها أعداد صحيحة بعلامة. تفسر متغيرات هذه التعليمات الملحقة بـمعاملات "غير مرمزة" على أنها أعداد صحيحة بدون رمز (حتى تلك التي تُصدر مُعاملًا من العلامة الممتدة 16 بت فوري).

تقوم تعليمات التحميل الفوري العلوي بنسخ 16 بت فورًا إلى 16 بت عالية الترتيب من GPR. يتم استخدامه جنبًا إلى جنب مع التعليمات أو التعليمات الفورية لتحميل 32 بت فورًا في المسجل.

لدى ميپس I تعليمات لأداء التحولات المنطقية اليمنى واليسرى والتحولات الحسابية اليمنى. يتم الحصول على المعامل من GPR (rt)، والنتيجة مكتوبة إلى GPR (rd) آخر. يتم الحصول على مسافة الإزاحة إما من GPR (rs) أو من "مقدار التحول" 5 بت (الحقل "sa").

لدى ميپس I تعليمات لضرب الأعداد الصحيحة المرمزة وغير المرمزة والقسمة. مصدر هذه التعليمات معاملاتهم من اثنين من GPR وكتابة نتائجهم إلى زوج من مسجلات 32 بت تسمى HI و LO، نظرًا لأنها قد تنفذ بشكل منفصل عن (وبالتزامن مع) تعليمات وحدة المعالجة المركزية الأخرى. بالنسبة للضرب، تتم كتابة نصفي الرتبة العالية والمنخفضة لمنتج 64 بت إلى HI و LO (على التوالي). للقسمة ، يتم كتابة حاصل القسمة إلى LO والباقي إلى HI. للوصول إلى النتائج، يتم توفير زوج من التعليمات (النقل من HI و النقل من LO) لنسخ محتويات HI أو LO إلى GPR. هذه التعليمات متشابكة: تقرأ من HI و LO ولا تتقدم بعد تعليمات حسابية غير مكتملة التي ستكتب إلى HI و LO. يقوم زوج آخر من التعليمات (نقل إلى HI أو نقل إلى LO) بنسخ محتويات GPR إلى HI و LO. تُستخدم هذه التعليمات لاستعادة HI و LO إلى حالتهما الأصلية بعد معالجة الاستثناءات. يجب فصل التعليمات التي تقرأ HI أو LO بتعليمين لا يكتبان إلى HI أو LO.

كل تعليمات تدفق التحكم ميپس I يتبعها فتحة تأخير الفرع. يتم الاستبدال بnop، ما لم يتم ملء فتحة تأخير الفرع بتعليمات تؤدي عملاً مفيدًا. تقوم تعليمات فرع ميپس I بمقارنة محتويات GPR (rs) مقابل الصفر أو GPR (rt) آخر كأعداد صحيحة مرمزة وفرع إذا كان الشرط المحدد صحيحًا. يتم نقل التحكم إلى العنوان المحسوب عن طريق تحويل إزاحة 16 بت إلى اليسار بمقدار بتين، وتمديد الرمز إلى نتيجة 18 بت، وإضافة النتيجة الممتدة للرمز 32 بت إلى مجموع عداد البرنامج (عنوان التعليمات) و 810. تحتوي القفزات على نسختين: مطلقة ومسجل غير مباشرة. تحسب القفزات المطلقة ("القفز" و "القفز والارتباط") التحكم في العنوان الذي يتم نقله إليه عن طريق إزاحة مؤشر instr_index ذي 26 بتًا إلى بتين وتوصيل نتيجة 28 بت مع البتات الأربعة عالية الترتيب لعنوان تعليمات في فتحة تأخير الفرع. تنقل القفزات غير المباشرة المسجلة التحكم إلى التعليمات الموجودة على العنوان المصدر من GPR (rs). يجب أن يكون العنوان الذي يتم الحصول عليه من GPR محاذيًا للكلمات، وإلا يتم الإشارة إلى استثناء بعد تنفيذ التعليمات في فتحة تأخير الفرع. تعليمات الفرع والانتقال التي تربط (باستثناء "مسجل القفز و الوصل") بحفظ عنوان المرسل إلى GPR 31. تسمح تعليمات "مسجل القفز و الوصل" بحفظ عنوان المرسل في أي GPR قابل للكتابة.

تحتوي ميپس I على تعليمتين للبرنامج لترميز استثناء: استدعاء النظام ونقطة التوقف. يتم استخدام استدعاء النظام بواسطة برنامج وضع المستخدم لإجراء استدعاءات النواة؛ ويتم استخدام نقطة التوقف لنقل التحكم إلى مصحح أخطاء عبر معالج استثناء النواة. يحتوي كلا التوجيهين على حقل رمز 20 بت يمكن أن يحتوي على معلومات خاصة ببيئة التشغيل لمعالج الاستثناء.

تحتوي ميپس على 32 من مسجلات الفاصلة العائمة. تم إقران مسجلين لأرقام الدقة المزدوجة. لا يمكن استخدام المسجلات المرقمة الفردية في العمليات الحسابية أو التفريعية، تمامًا كجزء من زوج مسجل مزدوج الدقة، مما ينتج عنه 16 مسجلاً قابلاً للاستخدام لمعظم التعليمات (لم تتأثر عمليات النقل / النسخ وعمليات التحميل / التخزين).

يتم الإشارة إلى الدقة المفردة بواسطة اللاحقة .s ، بينما يتم الإشارة إلى الدقة المزدوجة بواسطة اللاحقة .d.

ميپس II

قامت ميپس II بإزالة دخل تأخير التحميل[3]:41 وأضافت عدة مجموعات من التعليمات. بالنسبة للمعالجة المتعددة للذاكرة المشتركة، تمت إضافة تعليمات مزامنة الذاكرة المشتركة و تحميل كلمة مرتبطة و تخزين الكلمة الشرطية. تمت إضافة مجموعة من تعليمات Trap-on-Condition. تسببت هذه التعليمات في استثناء إذا كانت الحالة التي تم تقييمها صحيحة. تم إعطاء جميع تعليمات القسم الفرعي الحالية إصدارات من المحتمل أن تكون فرعًا والتي نفذت التعليمات في دخل تأخير الفرع فقط إذا تم أخذ القسم الفرعي.[3]:40 تعمل هذه التعليمات على تحسين الأداء في حالات معينة من خلال السماح بإرشادات مفيدة لملء فتحة تأخير الفرع.[3]:212 تمت إضافة تعليمات تحميل وتخزين الكلمة المضاعفة لCOP1–3. تماشياً مع تعليمات الوصول إلى الذاكرة الأخرى، تتطلب هذه التحميلات والتخزينات تناسباً مؤكداً للكلمة المزدوجة.

تم أيضًا إضافة العديد من التعليمات والأوامر إلى مجموعة التعليمات الخاصة بالمعالج المساعد للفاصلة العائمة. تمت إضافة تعليمات الجذر التربيعي للفاصلة العائمة المتوافقة مع IEEE 754. وقد دعمت كلا من المعاملات الفردية والمزدوجة الدقة والضبط. وتمت إضافة مجموعة من التعليمات التي تحول أرقام الفاصلة العائمة أحادية ومزدوجة الدقة إلى كلمات ذات 32 بت. واستكملت تعليمات التحويل الحالية بالسماح بتحديد وضع تقريب IEEE من خلال الأوامر بدلاً من التحكم في الفاصلة العائمة ومسجل الحالة.

ميپس III

ميپس III هو امتداد متوافق مع الإصدارات السابقة من ميپس II الذي أضاف دعماً لعنونة الذاكرة وعمليات العدد الصحيح 64 بت. يُطلق على نوع بيانات 64 بت كلمة مزدوجة، وقد وسعت ميپس III مسجلات الأغراض العامة ومسجلات HI / LO وعداد البرامج إلى 64 بت لدعمها. تمت إضافة تعليمات جديدة لتحميل الكلمات المزدوجة وتخزينها، لإجراء عمليات الجمع والطرح والضرب والقسمة والتحويل عليها، ولتحريك الكلمات المزدوجة بين مسجلات GPRs و HI / LO. تم إعادة تعريف التعليمات الحالية التي تم تعريفها في الأصل للعمل على كلمات 32 بت، عند الضرورة، لتوسيع نطاق نتائج 32 بت للسماح بمعالجة الكلمات والكلمات المزدوجة بشكل متماثل في معظم التعليمات. من بين تلك التعليمات التي أعيد تعريفها كان كلمة تحميل. في ميپس III، تقوم بالترميز لتمديد الكلمات إلى 64 بت. لاستكمال كلمة تحميل، تمت إضافة إصدار لا يمتد إلى الصفر.

عدم قدرة تنسيق تعليمات R على تحديد مسافة الإزاحة الكاملة لإزاحات 64 بت (حقل مقدار التغيير 5 بت ضيق جدًا بحيث لا يمكن تحديد مسافة الإزاحة للكلمات المزدوجة) تطلب ميپس III توفير ثلاثة إصدارات 64 بت لكل تعليمات إزاحة ميپس I. الإصدار الأول هو إصدار 64 بت من تعليمات الإزاحة الأصلية، ويستخدم لتحديد مسافات إزاحة ثابتة تبلغ 0–31 بت. الإصدار الثاني مشابه للإصدار الأول، ولكنه يضيف 3210 قيمة حقل مقدار الإزاحة بحيث يمكن تحديد مسافات إزاحة ثابتة تبلغ 32–64 بت. يحصل الإصدار الثالث على مسافة الإزاحة من البتات الستة ذات الترتيب المنخفض لجهاز GPR.

أضافت ميپس III مستوى امتياز "مشرف" بين مستويات امتياز المستخدم و النواة الحالية. أثرت هذه الميزة فقط على معالج التحكم في النظام المحدد من قبل التنفيذ (المعالج المساعد 0).

قامت ميپس III بإزالة تعليمات دعم المعالج المساعد 3 (CP3)، وأعاد استخدام أكواد التشغيل الخاصة به لتعليمات الكلمات المزدوجة الجديدة. حصلت المعالجات المشتركة المتبقية على تعليمات لنقل الكلمات المزدوجة بين مسجلات المعالجات المشتركة و GPRs. تم تمديد المسجلات العامة العائمة (FGRs) إلى 64 بت وتمت إزالة متطلبات التعليمات لاستخدام المسجل ذي الأرقام الزوجية فقط. هذا غير متوافق مع الإصدارات السابقة من البنية؛ يتم استخدام بت في مسجل التحكم / الحالة في الفاصلة العائمة لتشغيل وحدة الفاصلة العائمة ميپس III (FPU) في وضع متوافق مع ميپس I- و II. لم يتم تمديد مسجلات التحكم في الفاصلة العائمة من أجل التوافق. كانت التعليمات الوحيدة الجديدة الخاصة بالفاصلة العائمة المضافة هي تلك الخاصة بنسخ الكلمات المزدوجة بين وحدة المعالجة المركزية CPU و (FPU) لتحويل أرقام الفاصلة العائمة الفردية والمزدوجة الدقة إلى أعداد صحيحة مزدوجة الكلمات والعكس صحيح.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ميپس IV

ميپس IV هو الإصدار الرابع من هذه البنية. وهي مجموعة شاملة من ميپس III ومتوافقة مع كافة الإصدارات الموجودة من ميپس. تم تصميم ميپس IV لتحسين أداء الفاصلة العائمة (FP) بشكل أساسي. لتحسين الوصول إلى المعاملات، تمت إضافة وضع عنونة مفهرس (أساس + فهرس ، كلاهما مصدر من GPRs) لتحميلات FP وتخزيناتها، كما تم إضافة تعليمات الاستدعاء المسبق لأداء النقل المسبق للذاكرة وتحديد تلميحات ذاكرة التخزين المؤقت (هذه تدعم كلاً من القاعدة + أوضاع الإزاحة والفهرس الأساسي).

أضاف ميپس IV العديد من الميزات لتحسين التوازي على مستوى التعليمات. للتخفيف من الاختناق الناجم عن بتة شرط واحدة، تمت إضافة سبع بتات كود شرط إلى تحكم الفاصلة العائمة ومسجل الحالة، وبذلك يصل المجموع إلى ثمانية. تم إعادة تعريف مقارنة FP وتعليمات الفرع حتى يتمكنوا من تحديد بت الشرط الذي تمت كتابته أو قراءته (على التوالي)؛ وتمت إزالة فتحة التأخير بين فرع FP الذي يقرأ بت الحالة المكتوبة بواسطة مقارنة FP سابقة. تمت إضافة دعم التحديد الفرع في شكل تعليمات نقل حركة مشروطة لكل من GPRs و FPRs ؛ ويمكن أن يختار التطبيق بين وجود استثناءات دقيقة أو غير دقيقة للواقط IEEE 754.

أضاف ميپس IV العديد من التعليمات الحسابية الجديدة لـ FP لكل من FPNs أحادية ومزدوجة الدقة: الجمع أو الطرح المندمج و المضاعف والمتبادل والجذر التربيعي المتبادل. تؤدي تعليمات الإضافة أو الطرح المدموجة لFP إما جولة واحدة أو اثنتين (يتم تحديدها من قبل التنفيذ)، لتتجاوز أو تلبي متطلبات دقة IEEE 754 (على التوالي). لا تتوافق تعليمات الجذر التربيعي المتبادلة وFP المتبادلة مع متطلبات دقة IEEE 754، وتنتج نتائج تختلف عن الدقة المطلوبة بوحدة أو وحدتين من الموضع الأخير (يتم تعريف التنفيذ). تخدم هذه التعليمات التطبيقات حيث يكون زمن انتقال التعليمات أكثر أهمية من الدقة.

ميپس V

أضافت ميپس V نوعاً جديداً من البيانات، وهو المفرد المقترن (المزدوج) (PS)، والذي يتكون من رقمين فاصلة عائمة أحادية الدقة (32 بت) مخزنين في مسجلات الفاصلة العائمة 64 بت الموجودة أو الحالية. وقد تمت إضافة متغيرات تعليمات الفاصلة العائمة الحالية للحساب والمقارنة والنقل الشرطي للعمل على نوع البيانات هذا بطريقة SIMD. تمت إضافة تعليمات جديدة لتحميل وإعادة ترتيب وتحويل بيانات PS.[3]:426–429وكانت أول مجموعة تعليمات لاستخدام SIMD للفاصلة العائمة مع الموارد أو المصادر الموجودة.[11]

ميپس32/ميپس64

أضاف الإصدار الأول من ميپس32، استنادًا إلى ميپس II، حركات نقل شرطية، استدعاء مسبق للتعليمات، وميزات أخرى من عائلات R4000 و R5000 من معالجات 64 بت.[13] يضيف الإصدار الأول من ميپس64 وضع ميپس32 لتشغيل كود 32 بت.[13] تمت إضافة تعليمات MUL و MADD عملية (ضرب-الجمع)، المتوفرة سابقًا في بعض التطبيقات، إلى مواصفات ميپس32 و ميپس64، مع وجود تعليمات التحكم في ذاكرة التخزين المؤقت.[13]

أضاف ميپس32/ميپس64 الإصدار 6 في 2014 ما يلي:[22]

  • عائلة جديدة من الفروع بدون فتحة تأخير:
    • الفروع غير المشروطة (BC) والفرع والرابط (BALC) بتعويض 26 بت،
    • فرع مشترط على صفر / غير صفري بتعويض 21 بت،
    • مجموعة كاملة من الفروع الشرطية المرمزة وغير المرمزة مقارنة بين مسجلين (على سبيل المثال BGTUC) أو مسجل مقابل الصفر (مثل BGTZC)،
    • مجموعة كاملة من الفرع والرابط التي تقارن التسجيل مقابل الصفر (على سبيل المثال BGTZALC).
  • تعليمات قفزة الفهرس بدون فتحة تأخير المصممة لدعم العناوين الكاملة الكبيرة.
  • تعليمات لتحميل فوري 16 بت في موضع بت 16 أو 32 أو 48 ، مما يسمح بإنشاء ثوابت كبيرة بسهولة.
  • تعليمات التحميل النسبي للحاسب الشخصي، بالإضافة إلى إنشاء العناوين مع تعويضات كبيرة (نسبية للكمبيوتر الشخصي).
  • تعليمات عكس البت وموازاة البايت (كانت متوفرة سابقًا فقط مع امتداد DSP).
  • تعليمات الضرب والقسمة المعاد تعريفها بحيث تستخدم مسجل واحد لنتائجهم).
  • التعليمات التي تولد قيم حقيقية واحدية بحيث تولد الآن كل الأصفار أو كل الواحدات بدلاً من مجرد مسح / ضبط البت0 ،
  • تفسر التعليمات التي تستخدم قيمة حقيقية واحدية حالياً فقط جميع الأصفار على أنها حالة خطأ بدلاً من مجرد النظر إلى البت0.

إزالة التعليمات التي نادراً ما يتم استخدامها:

  • بعض حركات النقل الشرطية
  • تعليمات "الفرع المحتمل" (مهملة في الإصدارات السابقة).
  • عدد صحيح من تعليمات الملاءمة مع 16 بت فوري
  • تعليمات تراكم الأعداد الصحيحة (مسجلات HI / LO معًا، تم نقلها إلى الامتداد الخاص بالتطبيق DSP)
  • تعليمات التحميل غير الموازاة (LWL و LWR)، (تتطلب أن تدعم معظم التحميلات والتخزينات العادية الوصول غير المحاذي، ربما عن طريق الملائمة وإضافة تعليمات جديدة (BALIGN))

أعادت تنظيم ترميز التعليمات، مما يوفر مساحة للتوسعات المستقبلية.

مايكرو ميپس

إن بنى مايكرو ميپس 32 / 64 (ميپس دقيقة) هي مجموعات عملاقة من بنيات ميپس32 و ميپس64 (على التوالي) مصممة لتحل محل MIPS16e ASE. من عيوب MIPS16e أنها تتطلب مفتاح وضع قبل أن تتم معالجة أي من تعليماتها ذات 16 بت. تضيف مايكرو ميپس إصدارات من إرشادات 32 بت الأكثر استخدامًا والتي تم ترميزها كتعليمات 16 بت. يسمح هذا للبرامج بمزج تعليمات 16 بت و 32 بت دون الحاجة إلى تبديل الأوضاع. تم تقديم مايكرو ميپس جنبًا إلى جنب مع MIPS32 / 64 Release 3، وكل إصدار لاحق من MIPS32 / 64 له إصدار microMIPS32 / 64 مقابل. قد يقوم المعالج بتطبيق microMIPS32 / 64 أو كليهما microMIPS32 / 64 ومجموعة فرعية MIPS32 / 64 المقابلة له. بدءًا من MIPS32 / 64 Release 6، انتهى دعم MIPS16e، و مايكرو ميپس هو الشكل الوحيد لضغط التعليمات البرمجية في ميپس.

ملحقات خاصة بالتطبيقات

يمكن استكمال بنى ميپس32 و ميپس64 الأساسية بعدد من الامتدادات البنيوية الاختيارية، والتي يشار إليها مجتمعة باسم "الملحقات الخاصة بالتطبيقات" (ASEs). توفر ASEs ميزات تعمل على تحسين كفاءة وأداء تحميلات عمل معينة، مثل معالجة الإشارات الرقمية.

ميپس MCU
تحسينات لتطبيقات الميكروكونترولر (المتحكمات الدقيقة). تم تطوير MCU ASE (الملحق الخاص بالتطبيقات) لتوسيع دعم وحدة التحكم بالمقاطعة، وتقليل زمن انتقال المقاطعة، وتعزيز وظيفة التحكم في الإدخال / الإخراج المطلوبة عادةً في تصميمات نظام المتحكم الدقيق.
  • يفصل الأولوية ويولد المتجهات
  • يدعم حتى 256 مقاطعة في وضع EIC (وحدة تحكم المقاطعة الخارجية) وثمانية أرجل لمقاطعة الأجهزة
  • يوفر عنوان تعويض أو إزاحة متجه 16 بت
  • الاستدعاء المسبق لمتجه استثناء المقاطعة
  • مقدمة وتمهيد المقاطعة الآلية - تضيف الأجهزة لحفظ حالة النظام وتحديثها قبل روتين معالجة المقاطعة
  • ختام المقاطعة الآلية - استعادة حالة النظام المخزنة مسبقًا في المكدس للعودة من المقاطعة.
  • تسلسل المقاطعة - يدعم خدمة المقاطعات المعلقة دون الحاجة إلى الخروج من روتين المقاطعة الأولي، مما يوفر الدورات المطلوبة لتخزين واستعادة المقاطعات المتعددة النشطة
  • يدعم الاستدعاء المسبق التخميني لعنوان متجه المقاطعة. مما يقلل من عدد دورات خدمة المقاطعة من خلال تداخل عمليات الوصول إلى الذاكرة مع عمليات تدفق خطوط الأنابيب وتحديد أولويات الاستثناءات
  • يشمل تعليمات البتات الذرية تحديد\مسح التي تمكن البتات داخل مسجل الإدخال/الإخراج التي تُستخدم عادةً لمراقبة الوظائف الطرفية الخارجية أو التحكم فيها ليتم تعديلها دون انقطاع، مما يضمن تنفيذ الإجراء بشكل آمن.
ميپس16
ميپس16 هو ملحق خاص بالتطبيقات لـ ميپس I حتى V تم تصميمه بواسطة LSI Logic و ميپس تكنولوجيز ، وتم الإعلان عنه في 21 أكتوبر 1996 جنبًا إلى جنب مع أول تطبيق له، وهو معالج LSI Logic TinyRISC إل إس آي لوجك تايني ريسك.[23] تم ترخيص ميپس16 لاحقًا بواسطة NEC Electronics و أشباه الموصلات من فلپس و توشيبا (من بين آخرين)؛ وتم تنفيذه كملحق لبنى ميپس I و II و III. يقلل ميپس16 من حجم التطبيق بنسبة تصل إلى 40٪ باستخدام تعليمات 16 بت بدلاً من تعليمات 32 بت، كما يعمل على تحسين كفاءة الطاقة، ومعدل دخول ذاكرة التخزين المؤقت للتعليمات، وهو مكافئ في الأداء بالقياس إلى بنيته الأساسية.[24] فقد تم دعمه بواسطة أدوات تطوير الأجهزة والبرامج من ميپس تكنولوجيز ومزودين آخرين. ميپس16e هو إصدار محسّن من ميپس16 تم دعمه لأول مرة بواسطة ميپس32 و ميپس64 الإصدار 1. ميپس16e2 هو نسخة محسنة من ميپس16 مدعومة من ميپس32 و ميپس64 (حتى الإصدار 5). استبدله الإصدار 6 بـ ميپس دقيق.
ميپس DSP
يعد DSP ASE ملحقاً اختياريًا للإصدار 2 من ميپس32 / ميپس64 ومجموعات التعليمات الأحدث التي يمكن استخدامها لتسريع نطاق كبير من حسابات "الوسائط" - خاصة الصوت والفيديو. تتكون وحدة DSP من مجموعة من التعليمات والحالة في عدد صحيح من خطوط النواقل وتتطلب الحد الأدنى من المنطق الإضافي للتنفيذ في نوى معالج ميپس. تم تقديم المراجعة 2 من ASE في النصف الثاني من عام 2006. تضيف هذه المراجعة تعليمات إضافية إلى ASE الأصلي، ولكنها بخلاف ذلك فهي متوافقة معها.[25] على عكس الجزء الأكبر من بنية ميپس، فهي مجموعة غير منتظمة إلى حد ما من العمليات، تم اختيار العديد منها لعلاقة خاصة ببعض الخوارزميات الرئيسية. ميزات العمل الرئيسية (مقابل ميپس32 الأصلي):[26]
  • عملية حسابية مشبعة (عند تجاوز عملية حسابية، يقدم الرقم الذي يمكن تمثيله الأقرب إلى الإجابة غير الفائضة).
  • حساب الفاصلة المتحركة على كسور عشرية متحركة 32 بت و 16 بت مع نطاق من -1 إلى +1 (يطلق عليها على نطاق واسع "Q31" و "Q15").
  • تعليمات الضرب الأعداد الصحيحة الموجودة، والتي تقدم النتائج في تجميع مزدوج الحجم (يسمى "hi / lo" و 64 بت على وحدات المعالجة المركزية MIPS32). ويضيف DSP ASE ثلاث مجمعات أخرى، وبعض الصفات على المجمعات متعددة.
  • تعليمات SIMD التي تعمل على 4 × بايت غير مرمزة أو قيم 2 × 16 بت مجمعة في مسجل 32 بت (متغير 64 بت من DSP ASE يدعم متجهات أكبر أيضًا).
  • عمليات SIMD هي العمليات الحسابية الأساسية والتحولات وبعض عمليات من النوع التجميع المضاعف.
بنية ميپس SIMD
تم تصميم امتدادات مجموعة التعليمات لتسريع الوسائط المتعددة.
  • مسجلات المتجه عدد 32 من عناصر متجه 16 × 8 بت و 8 × 16 بت و 4 × 32 بت و 2 × 64 بت
  • عمليات حسابية متوازية المتجه فعالة على بيانات العدد الصحيح، الفاصلة المتحركة والفاصلة العائمة
  • العمليات على معاملات القيمة المطلقة
  • خيارات التقريب والتشبع المتاحة
  • الدقة الكاملة بالمضاعفة وتضاعف التجميع
  • التحويلات بين بيانات الأعداد الصحيحة والفاصلة العائمة والفاصلة المتحركة
  • مجموعة كاملة من إرشادات المقارنة والتفرع على مستوى المتجهات بدون علامة شرط
  • عمليات خلط المتجه (1D) والمصفوفة (2D)
  • تعليمات التحميل والتخزين المكتوبة لـ عمليات النهايات - المستقلة
  • متوافق مع معيار IEEE الخاص بحساب الفاصلة العائمة 754-2008
  • عنصر إشارة استثناء الفاصلة العائمة الدقيقة
  • امتدادات قابلة للتحجيم معرفة مسبقًا للرقائق مع المزيد من البوابات / الترانزستورات
  • تسريع التطبيقات كثيفة الحوسبة جنبًا إلى جنب مع الاستفادة من دعم المترجم أو المحول العام
  • حل برمجي قابل للبرمجة لتطبيقات أو وظائف الإلكترونيات الاستهلاكية التي لا تغطيها الأجهزة المخصصة
  • التنقيب عن البيانات الناشئة واستخراج الميزات ومعالجة الصور والفيديو وتطبيقات التفاعل بين الإنسان والحاسوب
  • حوسبة علمية عالية الأداء
المحاكاة الافتراضية لميپس
الأجهزة التي تدعم التقنية الافتراضية.
ميپس متعدد القنوات
يمكن لكل نواة ميپس متعددة القنوات أن تدعم ما يصل إلى VPEs (عناصر المعالجة الافتراضية) التي تشترك في خط نقل واحد بالإضافة إلى موارد الأجهزة الأخرى. ومع ذلك، نظرًا لأن كل VPE يتضمن نسخة كاملة من حالة المعالج كما يراها نظام البرنامج، فإن كل VPE يظهر كمعالج مستقل كامل لنظام التشغيل الخاص ب لينكس SMP. لمزيد من تطبيقات معالجة القنوات الدقيقة، فإن كل VPE قادر على دعم ما يصل إلى تسعة مساهمات أساسية مخصصة عبر اثنين من VPE. تشترك أبرز المساهمين في وحدة تنفيذ مشتركة ولكن لكل منها عداد برنامج خاص به وملفات تسجيل أساسية بحيث يمكن لكل منها التعامل مع مؤشر ترابط من البرنامج. تسمح بنية ميپس MT أيضًا بتخصيص دورات المعالج للقنوات، وتعيين أولويات القناة النسبية مع كتلة إدارة جودة الخدمة ( QoS). يتيح ذلك آليتين لتحديد الأولويات التي تحدد تدفق المعلومات عبر الناقل. الآلية الأولى تسمح للمستخدم بإعطاء الأولوية لواحد على الآخر. يتم استخدام الآلية الثانية لتخصيص نسبة محددة من الدورات إلى قنوات محددة بمرور الزمن. يسمح الاستخدام المشترك لكلتا الآليتين بالتخصيص الفعال لعرض النطاق الترددي لمجموعة القنوات، وتحكم أفضل في زمن الانتقال. في أنظمة الزمن الفعلي، تعتبر الحتمية على مستوى النظام أمرًا بالغ الأهمية، وتسهل مجموعة جودة الخدمة تحسين إمكانية التنبؤ بالنظام. قد يستبدل مصممو الأجهزة للأنظمة المتقدمة كتلة QoS القياسية التي توفرها ميپس تكنولوجيز بأخرى تم ضبطها خصيصًا لتطبيقاتهم.
ميپس الذكية
ميپس الذكية هي ملحق خاص بالتطبيق (ASE) صممته گيمپلَس إنترناشونال و ميپس تكنولوجيز لتحسين الأداء وتقليل استهلاك الذاكرة لبرامج البطاقة الذكية. مدعوم فقط من قبل ميپس32، لأن البطاقات الذكية لا تتطلب قدرات معالجات ميپس64. قليل من البطاقات الذكية تستخدم ميپس الذكية.
MDMX
ميپس-3D

استدعاء الاصطلاحات

لدى ميپس العديد من اصطلاحات الاتصال، خاصة على النظام الأساسي 32 بت.

O32 ABI هو ABI الأكثر استخدامًا، نظرًا لحالته مثل ABI System V لـ ميپس .[27][28]حيث يعتمد بشكل دقيق على المكدس، مع وجود أربعة مسجلات فقط $a0-$a3 متاحة لتمرير الوسائط. يتم حجز مساحة على المكدس في حالة احتياج المستدعي إلى حفظ وسائطه، ولكن لا يتم تخزين المسجلات هناك من قبل المستدعي. يتم تخزين قيمة الإرجاع في المسجل $v0؛ يمكن تخزين قيمة إرجاع ثانية في $v1. هذا البطء الملحوظ، إلى جانب نموذج الفاصلة العائمة القديمة مع 16 مسجلًا فقط، شجع على انتشار العديد من مصطلحات الاتصال الأخرى. تم تشكيل ABI في عام 1990 ولم يتم تحديثه أبدًا منذ عام 1994. تم تعريفه فقط لـ ميپس 32 بت، ولكن تم إنشاء GCC 64 بت متباين يسمى O64.[29]

بالنسبة للإصدار 64 بت، فإن N64 ABI من سليكون گرافكس هو الأكثر استخدامًا. التحسين الأكثر أهمية هو أن ثمانية مسجلات متاحة حالياً لتمرير الوسائط؛ كما أنه يزيد من عدد مسجلات الفاصلة العائمة إلى 32. هناك أيضًا إصدار ILP32 المسمى N32، والذي يستخدم مؤشرات 32 بت لرمز أصغر، مشابه لـ x32 ABI. كلاهما يعمل تحت وضع 64 بت لوحدة المعالجة المركزية.[29] تمرر قيم ABI N32 و N64 الوسائط الثمانية الأولى إلى دالة موجودة في المسجلات $a0-$a7؛ يتم تمرير الوسائط اللاحقة على المكدس. يتم تخزين القيمة المعادة (أو المؤشر إليها) في المسجلات $v0؛ يمكن تخزين قيمة إرجاع ثانية في $v1. في كل من N32 و N64 ABI، تعتبر جميع المسجلات بعرض 64 بت.

تم إجراء عدة محاولات لاستبدال O32 بـ 32 بت ABI المشابه ل N32 أكثر. جاء مصطلح عام 1995 مع ميپس EABI، والذي كان إصدار 32 بت مشابهًا تمامًا.[30]ألهمت EABI شركة ميپس تكنولوجيز لاقتراح "NUBI" ABI أكثر جذرية بالإضافة إلى إعادة استخدام مسجلات وسيطة للقيمة المرتجعة.[31] يتم دعم ميپس EABI من قبل GCC وليس LLVM، ولا يدعم أي منهما NUBI.

بالنسبة لجميع O32 و N32 / N64، يتم تخزين عنوان الإرجاع في مسجل $ra. يتم تعيين هذا تلقائيًا باستخدام تعليمات JAL (القفز والربط) أو تعليمات JALR (مسجل القفز و الربط). تدفع مقدمة التابع لروتين ميپس فرعي (non-leaf) عنوان المرسل ($ra) إلى المكدس.[32][33]

في كل من O32 و N32 / N64، يزداد المكدس لأسفل، لكن N32 / N64 ABIs تتطلب محاذاة 64 بت لجميع إدخالات المكدس. يُعد مؤشر الإطار ($30) اختياريًا ونادرًا ما يستخدم عمليًا إلا عندما يتم تحديد تخصيص المكدس في تابع في وقت التشغيل، على سبيل المثال، عن طريق استدعاء alloca().

بالنسبة إلى N32 و N64، يتم تخزين عنوان الإرجاع عادةً 8 بايت قبل مؤشر المكدس على الرغم من أن هذا قد يكون اختياريًا.

بالنسبة إلى N32 و N64 ABI، يجب أن يحتفظ التابع بالمسجلات $S0-$s7، والمؤشر العام ($gp أو $28)، ومؤشر المكدس ($sp or $29) ومؤشر الإطار ($30). O32 ABI هو نفسه باستثناء تابع الاستدعاء المطلوب لحفظ مسجل $gp بدلاً من التابع التي يتم استدعاؤه.

بالنسبة للكود متعدد القنوات، يتم تخزين مؤشر التخزين المحلي لمؤشر الترابط عادةً في مسجل أدوات خاص $29 ويمكن الوصول إليه باستخدام تعليمات mfhw (النقل من الأدوات). من المعروف أن مورداً واحدًا على الأقل يقوم بتخزين هذه المعلومات في مسجل $k0 والذي يتم حجزه عادةً لاستخدام النواة، ولكن هذا ليس قياسيًا.

يتم حجز مسجلات $k0 و $k1 ($26–$27) لاستخدام النواة ويجب عدم استخدامها بواسطة التطبيقات نظرًا لأن هذه المسجلات يمكن تغييرها في أي وقت بواسطة النواة بسبب المقاطعات أو تبديل الحالة أو الأحداث الأخرى.

مسجلات لمصطلح استدعاء O32
الاسم الرقم الاستخدام هل يجب حجز المُستدعى؟
$zero $0 ثابت 0 {{N/A}}
$at $1 المجمع المؤقت لا
$v0–$v1 $2–$3 قيم إرجاع التابع وتقييم التعبير لا
$a0–$a3 $4–$7 وسائط التابع لا
$t0–$t7 $8–$15 مؤقتات لا
$s0–$s7 $16–$23 مؤقتات محفوظة نعم
$t8–$t9 $24–$25 مؤقتات لا
$k0–$k1 $26–$27 محجوز لنواة OS {{N/A}}
$gp $28 مؤشر عام نعم (except PIC code)
$sp $29 مؤشر المكدس نعم
$fp $30 مؤشر الإطار نعم
$ra $31 عنوان الإرجاع {{N/A}}
مسجلات لمصطلحات استدعاء N32 و N64[34]
الاسم الرقم الاستخدام هل يجب حجز المُستدعى؟
$zero $0 ثابت 0 {{N/A}}
$at $1 مجمع مؤقت لا
$v0–$v1 $2–$3 قيم إرجاع الدالة وتقييم المصطلح لا
$a0–$a7 $4–$11 وسائط التابع لا
$t4–$t7 $12–$15 مؤقتات لا
$s0–$s7 $16–$23 مؤقتات محفوظة نعم
$t8–$t9 $24–$25 مؤقتات لا
$k0–$k1 $26–$27 محجوز لنواة OS {{N/A}}
$gp $28 مؤشر عام نعم
$sp $29 مؤشر المكدس نعم
$s8 $30 مؤشر الإطار نعم
$ra $31 عنوان الإرجاع {{N/A}}

المسجلات التي يتم الاحتفاظ بها عبر الاستدعاء هي مسجلات لن يتم تغييرها (حسب الاصطلاح) عن طريق استدعاء النظام أو استدعاء الإجراء (التابع). على سبيل المثال، يجب حفظ مسجلات s$ في المكدس من خلال إجراء يحتاج إلى استخدامها، ودائمًا ما تتم زيادة $sp و $fp بواسطة الثوابت، وتنخفض مرة أخرى بعد الانتهاء من الإجراء معهم (والذاكرة امشار إليها). على النقيض من ذلك، يتم تغيير ra$ تلقائيًا بواسطة أي استدعاء دالة عادي (تلك التي تستخدم jal)، ويجب حفظ مسجلات t$ بواسطة البرنامج قبل أي استدعاء إجراء (إذا كان البرنامج يحتاج إلى القيم بداخلها بعد الاستدعاء).

يتطلب مصطلح استدعاء مساحة المستخدمين الخاصة بالتعليمات البرمجية المستقلة عن الموضع على نظام لينكس بالإضافة إلى ذلك أنه عندما يتم استدعاء تابع، يجب أن يحتوي السجل $t9 على عنوان ذلك التابع.[35] يعود تاريخ هذه الاتفاقية إلى ملحق System V ABI الخاص بـ ميپس.[36]


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

استخدامات

تُستخدم معالجات ميپس في الأنظمة المضمنة مثل البوابات الداخلية و أجهزة التوجيه (الراوتر). في الأصل، تم تصميم ميپس للحوسبة ذات الأغراض العامة. خلال الثمانينيات والتسعينيات، تم استخدام معالجات ميپس لـ محطة العمل الشخصية، و حواسيب المخدمات من قبل العديد من الشركات مثل شركة المعدات الرقمية و ميپس كومپيوتر سستمز و NEC و پيرميد تكنولوجي و سي كورتكس و سيمنز نكسدورف و سليكون گرافكس و أجهزة الحاسب تاندم.

تاريخيًا، تستخدم وحدة تحكم ألعاب الفيديو مثل ننتندو 64 و پلاي ستيشن من سوني و پلاي ستيشن 2 و پلاي ستيشن محمولة معالجات ميپس. اعتادت معالجات ميپس أيضًا أن تحظى بشعبية في أجهزة الحاسب العملاقة خلال التسعينيات، ولكن كل هذه الأنظمة سقطت من قائمة TOP500. تم استكمال هذه الاستخدامات بالتطبيقات المضمنة في البداية، ولكن خلال التسعينيات، أصبح لميپس حضوراً رئيسياً في سوق المعالجات المدمجة، وبحلول العقد الأول من القرن الحادي والعشرين، كانت معظم معالجات ميپس مخصصة لهذه التطبيقات.

في منتصف وأواخر التسعينيات، قُدر أن واحدًا من كل ثلاثة معالجات RISC (ريسك) الدقيقة المنتجة كان معالج ميپس من بينها.[37]

المحاكيات

تتضمن المنصات الافتراضية المفتوحة (OVP)[38]المحاكي المتاح للاستخدام غير التجاري OVPsim ، ومكتبة لنماذج المعالجات، والأجهزة الطرفية والمنصات، وواجهات برمجة التطبيقات التي تمكن المستخدمين من تطوير نماذجهم الخاصة. النماذج الموجودة في المكتبة مفتوحة المصدر، مكتوبة بلغة C، وتشمل MIPS 4K ، 24K ، 34K ، 74K ، 1004K ، 1074K ، M14K ، microAptiv ، interAptiv أنوية proAptiv 32-bit ومجموعة من أنوية MIPS 64-bit 5K. تم إنشاء هذه النماذج وصيانتها بواسطة إمپيراز Imperas[39] وبالشراكة مع ميپس تكنولوجيز، تم اختبارها وتعيين علامة تم التحقق من ميپس (tm). تتضمن نماذج الأنظمة الأساسية المستندة إلى ميپس كلاً من البيئات المعدنية الصافية والأنظمة الأساسية لتشغيل صور لينكس الثنائية غير المعدلة. تتوفر برامج محاكاة الأنظمة الأساسية هذه كمصدر أو ثنائيات وهي سريعة ومجانية للاستخدام غير التجاري وسهلة الاستخدام. تم تطوير وصيانة OVPsim بواسطة إمپيراز وهي سريعة جدًا (مئات الملايين من التعليمات في الثانية)، وتم بناؤها للتعامل مع البنى والأنظمة المتجانسة وغير المتجانسة متعددة الأنوية.

كما يوجد محاكي ل MIPS32 المتاح مجانًا (الإصدارات السابقة تمت محاكاتها فقط لـ R2000 / R3000) يسمى SPIM تم استخدامه في التعليم. EduMIPS64[40]وهو عبارة عن محاكي MIPS64 CPU بواجهة رسومية GPL، مكتوب بلغة Java / Swing. وهو يدعم مجموعة فرعية واسعة من MIPS64 ISA ويسمح للمستخدم برؤية ما يحدث بيانياً في خط النقل عندما يتم تشغيل برنامج التجميع بواسطة وحدة المعالجة المركزية. MARS مارس[41] هو محاكي ميپس آخر قائم على واجهة المستخدم الرسومية مصمم للاستخدام في التعليم، وخاصة للاستخدام مع تنظيم وتصميم الحاسوب من هنِسي. WebMIPS[42] عبارة عن محاكي ميپس قائم على المستعرض مع تمثيل مرئي لمعالج عام مبني على النواقل. هذا المحاكي مفيد جدًا لتتبع المسجل أثناء التنفيذ خطوة بخطوة.

تتوفر برامج محاكاة مجانية أكثر تقدمًا من GXemul (المعروف سابقًا باسم مشروع mips64emul) و QEMU. تحاكي هذه المعالجات الدقيقة ميپس III و IV بالإضافة إلى أنظمة الحاسب الكاملة التي تستخدمها.

تتوفر المحاكيات التجارية بشكل خاص للاستخدام المضمن لمعالجات ميپس، على سبيل المثال Wind River Simics (MIPS 4Kc و 5Kc ، PMC RM9000 ، QED RM7000 ، Broadcom / Netlogic ec4400 ، كاڤيوم Octeon I) ، إمپيراز (جميع أنوية MIPS32 و MIPS64) وأنظمة VaST (R3000 و R4000) و CoWare (MIPS4KE و MIPS24K و MIPS25Kf و MIPS34K).

WepSIM[43] هو محاكي قائم على المستعرض حيث يتم برمجة مجموعة فرعية من تعليمات ميپس بشكل دقيق. هذا المحاكي مفيد للغاية لمعرفة كيفية عمل وحدة المعالجة المركزية (البرمجة المصغرة ، إجراءات ميپس، التعليقات، المقاطعات ، استدعاءات النظام، إلخ).

انظر أيضاً

المراجع

  1. ^ Patterson, David (2014). Computer Organization and Design. http://booksite.elsevier.com/9780124077263/downloads/historial%20perspectives/section_4.16.pdf: Elsevier. pp. 4.16–4. ISBN 978-0-12-407726-3. {{cite book}}: External link in |location= (help)CS1 maint: location (link)
  2. ^ أ ب Price, Charles (September 1995). MIPS IV Instruction Set (Revision 3.2), MIPS Technologies, Inc.
  3. ^ أ ب ت ث ج ح خ د Sweetman, Dominic (1999). See MIPS Run. Morgan Kaufmann Publishers, Inc. ISBN 1-55860-410-3.
  4. ^ "MIPS32 Architecture". MIPS. Retrieved مارس 20, 2020.
  5. ^ "MIPS64 Architecture". MIPS. Retrieved مارس 20, 2020.
  6. ^ "MIPS-3D ASE". Imagination Technologies. Archived from the original on 3 يناير 2014. Retrieved 4 يناير 2014.
  7. ^ "MIPS16e". MIPS. Retrieved مارس 20, 2020.
  8. ^ "MIPS Multithreading". MIPS. Retrieved مارس 20, 2020.
  9. ^ University of California, Davis. "ECS 142 (Compilers) References & Tools page". Archived from the original on 21 مارس 2011. Retrieved 28 مايو 2009.
  10. ^ "Silicon Graphics Introduces Enhanced MIPS Architecture to Lead the Interactive Digital Revolution". Silicon Graphics, Inc. 21 أكتوبر 1996. Archived from the original on 10 يوليو 2012.
  11. ^ أ ب Gwennap, Linley (نوفمبر 18, 1996). "Digital, MIPS Add Multimedia Extensions" (PDF). Microprocessor Report. 10 (15): 24–28. Archived (PDF) from the original on يوليو 20, 2011.
  12. ^ "Silicon Graphics Previews New High-Performance MIPS Microprocessor Roadmap" (Press release). مايو 12, 1997.
  13. ^ أ ب ت ث ج "MIPS Technologies, Inc. Enhances Architecture to Support Growing Need for IP Re-Use and Integration" (Press release). Business Wire. مايو 3, 1999.
  14. ^ "Latest Release of MIPS Architecture Includes Virtualization and SIMD Key Functionality for Enabling Next Generation of MIPS-Based Products" (Press release). MIPS Technologies. ديسمبر 6, 2012. Archived from the original on ديسمبر 13, 2012.
  15. ^ "MIPS skips Release 4 amid bidding war". EE Times. 10 ديسمبر 2012. Archived from the original on 17 أبريل 2014.
  16. ^ "Wave Computing Extends AI Lead by Targeting Edge of Cloud Through Acquisition of MIPS". يونيو 15, 2018.
  17. ^ "Wave Computing® Launches the MIPS Open Initiative To Accelerate Innovation for the Renowned MIPS® Architecture". ديسمبر 17, 2018.
  18. ^ "MIPS Processor ISA To Be Open-Sourced In 2019 - Phoronix".
  19. ^ Yoshida, Junko (ديسمبر 17, 2018). "MIPS Goes Open Source". EE Times.
  20. ^ "MIPS R6 Architecture Now Available for Open Use". مارس 28, 2019.
  21. ^ "Wave Computing Closes Its MIPS Open Initiative with Immediate Effect, Zero Warning". نوفمبر 15, 2019.
  22. ^ "MIPS – Market-leading RISC CPU IP processor solutions". imgtec.com. Archived from the original on 9 مارس 2016. Retrieved 11 فبراير 2016.
  23. ^ "Silicon Graphics Introduces Compact MIPS RISC Microprocessor Code For High Performance at a Low Cost" (Press release). أكتوبر 21, 1996.
  24. ^ Sweetman, Dominic (2007). See MIPS Run (2nd ed.). San Francisco, California: Morgan Kaufmann Publishers. pp. 425–427. ISBN 978-0-12-088421-6.
  25. ^ "Using the GNU Compiler Collection (GCC): MIPS DSP Built-in Functions". gcc.gnu.org. Archived from the original on 20 أبريل 2017.
  26. ^ "Instruction Set Architecture - LinuxMIPS". www.linux-mips.org. Archived from the original on 20 أبريل 2017.
  27. ^ Sweetman, Dominic. See MIPS Run, 2nd edition. Morgan Kaufmann. ISBN 0-12088-421-6.
  28. ^ "MIPS32 Instruction Set Quick Reference".
  29. ^ أ ب "MIPS ABI History".
  30. ^ قالب:Cite mailing list
  31. ^ "NUBI".
  32. ^ Karen Miller. "The MIPS Register Usage Conventions". 2006.
  33. ^ Hal Perkins. ""MIPS Calling Convention". 2006.
  34. ^ MIPSpro N32 ABI Handbook (PDF). Silicon Graphics.
  35. ^ "PIC code – LinuxMIPS". www.linux-mips.org (in الإنجليزية). Retrieved سبتمبر 21, 2018.
  36. ^ "System V Application Binary Interface MIPS RISC Processor Supplement, 3rd Edition" (PDF). pp. 3–12.
  37. ^ Rubio, Victor P. "A FPGA Implementation of a MIPS RISC Processor for Computer Architecture Education" (PDF). New Mexico State University. Archived (PDF) from the original on 15 أبريل 2012. Retrieved 22 ديسمبر 2011.
  38. ^ "OVP: Fast Simulation, Free Open Source Models. Virtual Platforms for software development". Ovpworld.org. Archived from the original on 8 يونيو 2012. Retrieved 30 مايو 2012.
  39. ^ "Imperas". Imperas. 3 مارس 2008. Archived from the original on 14 يونيو 2012. Retrieved 30 مايو 2012.
  40. ^ "EduMIPS64". Edumips.org. Archived from the original on 7 مايو 2012. Retrieved 30 مايو 2012.
  41. ^ "MARS MIPS simulator - Missouri State University". Courses.missouristate.edu. Archived from the original on 2 مايو 2012. Retrieved 30 مايو 2012.
  42. ^ "WebMIPS - MIPS CPU PIPLINED SIMULATION On Line". Archived from the original on 31 ديسمبر 2012. Retrieved 13 يناير 2012. (online demonstration) "Archived copy". Archived from the original on 10 أكتوبر 2011. Retrieved 13 يناير 2012.{{cite web}}: CS1 maint: archived copy as title (link) (source)
  43. ^ "WepSim". (Web version with examples). Archived from the original on 1 أكتوبر 2017. Retrieved 21 أكتوبر 2019. "WepSim". (GitHub site with source). Archived from the original on 3 يناير 2018. Retrieved 21 أكتوبر 2019.

للاستزادة

وصلات خارجية

هناك كتاب ، MIPS Assembly، في معرفة الكتب.



قالب:MIPS microprocessors قالب:RISC-based processor architectures

الكلمات الدالة: