| بیتها = ۶۴ بیت
| معرفی شده در = ۱۹۸۱
| نسخه =
| طرح = [[معماری ریسک]]
| گونه = ثبات-ثبات
| شاخهبندی = ثبات شرطی
| اندیان = Bi
| اندازه صفحه =
| افزونهها =
| آزاد بودن =
| ثباتها =
| همه منظوره =
| ممیز شناور = }}
'''میپس''' (به انگلیسی: MIPS مخفف ''Microprocessor without Interlocked [[:en:Pipeline_(computing)|Pipelined]] Stages'') <ref>{{Cite book|title=Computer Organization and Design|last=Patterson|first=David|publisher=Elsevier|year=2014|isbn=978-0-12-407726-3|location=http://booksite.elsevier.com/9780124077263/downloads/historial%20perspectives/section_4.16.pdf|pages=4.16-4}}</ref> یک [[مجموعه دستورالعمل|معماری مجموعه]] (ISA) برای [[کامپیوتر کمدستور|کامپیوتر هایکامپیوترهای کم دستور]] (RISC)<ref name="Price1995"><div> قیمت، چارلز (سپتامبر 1995). ''مجموعه آموزش MIPS IV'' (ویرایش 3.2)، MIPS Technologies،Technologies, Inc. </div></ref> {{Rp|A-1}} <ref name="Sweetman1999">{{Cite book|last=Sweetman|first=Dominic|date=1999|title=See MIPS Run|publisher=Morgan Kaufmann Publishers, Inc.|isbn=1-55860-410-3}}</ref> {{Rp|19}} است که توسط MIPS Technologies (MIPS Computer Systems سابق ) توسعه یافته استیافتهاست. معماری اولیه میپس ۳۲ بیتی بود،وبود، نسخهو هاینسخههای 64۶۴ بیتی بعداً به آن اضافه شد. نسخه هاینسخههای متعددی از میپس وجود دارد از جمله: میپس IV ،III,III ،II،,II, I و V؛ و همچنین پنج توریع میپس ۶۴/۳۲ (به ترتیب برای پیاده سازیپیادهسازی ۳۲ و ۶۴ بیتی). از آوریل ۲۰۱۷، آخرین نسخه میپس ۶۴/۳۲ توزیع ۶ است. <ref>{{Cite web|url=http://www.imgtec.com/mips/mips32-architecture.asp|title=MIPS32 Architecture|accessdate=January 4, 2014|publisher=[[Imagination Technologies]]|archiveurl=https://web.archive.org/web/20140103091909/http://www.imgtec.com/mips/mips32-architecture.asp|archivedate=January 3, 2014|deadurl=no}}</ref> <ref>{{Cite web|url=http://www.imgtec.com/mips/mips64-architecture.asp|title=MIPS64 Architecture|accessdate=January 4, 2014|publisher=[[Imagination Technologies]]|archiveurl=https://web.archive.org/web/20140103091913/http://www.imgtec.com/mips/mips64-architecture.asp|archivedate=January 3, 2014|deadurl=no}}</ref> تفاوت اساسی بین میپس ۶۴/۳۲ و میپس V-I تعریف پردازنده کمکی برای کنترل سیستم در حالت کرنل دارای حق ویژه علاوه بر معماری حالت کاربر است.
چندین افزونه اختیاری نیز موجود است، از جمله میپس سه بعدی که مجموعه ای ساده از [[مجموعه دستورالعمل|دستورت]] [[ممیز شناور]] [[یک دستور چند داده|چند داده]] است که به وظایف سه بعدی معمول اختصاص دارد، <ref>{{Cite web|url=http://www.imgtec.com/mips/mips-3d-ase.asp|title=MIPS-3D ASE|accessdate=January 4, 2014|publisher=[[Imagination Technologies]]|archiveurl=https://web.archive.org/web/20140103091950/http://www.imgtec.com/mips/mips-3d-ase.asp|archivedate=January 3, 2014|deadurl=no}}</ref> MDMX (MaDMaX( که یک مجموعه های جامع تر [[یک دستور چند داده|چند داده]] برای اعداد صحیح است و از رجیسترهای ممیز شناور 64۶۴ استفاده می کند،میکند، MIPS16e است که فشرده سازی را به جریان دستورلعمل هادستورلعملها اضافه می کندمیکند تا برنامه هابرنامهها از فضای کمتری را اشغال کنند، <ref>{{Cite web|url=http://www.imgtec.com/mips/mips-16e-ase.asp|title=MIPS16e|accessdate=January 4, 2014|publisher=[[Imagination Technologies]]|archiveurl=https://web.archive.org/web/20140103091948/http://www.imgtec.com/mips/mips-16e-ase.asp|archivedate=January 3, 2014|deadurl=no}}</ref> و میپس MT، که قابلیت [[چندریسمانی]] را اضافه می کندمیکند. <ref>{{Cite web|url=http://www.imgtec.com/mips/mips-multithreading.asp|title=MIPS Multithreading|accessdate=January 4, 2014|publisher=[[Imagination Technologies]]|archiveurl=https://web.archive.org/web/20140103091922/http://www.imgtec.com/mips/mips-multithreading.asp|archivedate=January 3, 2014|deadurl=no}}</ref>
اغلب دوره هایدورههای [[معماری رایانه|معماری کامپیوتر]] در دانشگاه هادانشگاهها و مدارس فنی معماری میپس را مطالعه می کنندمیکنند. <ref>{{Cite web|url=http://www.cs.ucdavis.edu/~peisert/teaching/ecs142-sp09/rt.html|title=ECS 142 (Compilers) References & Tools page|accessdate=May 28, 2009|last=University of California, Davis|archiveurl=https://web.archive.org/web/20110321052440/http://www.cs.ucdavis.edu/~peisert/teaching/ecs142-sp09/rt.html|archivedate=March 21, 2011|deadurl=no}}</ref> معماری هایمعماریهای ریسک جدید تر مانند [[دک آلفا|آلفا]] تا حد زیادی از این معماری تأثیر پذیرفته اندپذیرفتهاند.
از آوریل 2017،۲۰۱۷، پردازنده هایپردازندههای میپس در [[سامانه نهفته|سامانه هایسامانههای نهفته]] مانند دروازه هایدروازههای محلی و [[رهیاب|روترها]] استفاده می شودمیشود. در آغاز، میپس برای محاسبات عمومی طراحی شده بود. در دههدهههای های 1980۱۹۸۰ و 1990، شرکت۱۹۹۰، هایشرکتهای بسیاری مانند [[دیجیتال ایکویپمنت کورپوریشن|Digital Equipment Corporation]] ،, MIPS Computer Systems ،Systems، [[انایسی|NEC]] ،, Pyramid Technology ،, SiCortex ،, Siemens Nixdorf ،, Silicon Graphics و Tandem Computers از پردازنده هایپردازندههای میپس برای [[رایانه شخصی|کامپیوتر هایکامپیوترهای شخصی]] ، [[ایستگاه کار|ایستگاه هایایستگاههای کار]] و [[سرور (رایانه)|کامپیوتر هایکامپیوترهای سرور]] استفاده می کردندمیکردند. در طول تاریخ، [[کنسول بازی|کنسول هایکنسولهای بازی]] مانند [[نینتندو ۶۴]] ،[[پلیاستیشن|پلی استیشن]] ، [[پلیاستیشن ۲|پلی استیشن ۲]] و [[پلیاستیشن همراه|پلی استیشن همراه]] از پردازنده هایپردازندههای میپس استفاده می کردندمیکردند. همچنین در دهه ۱۹۹۰ پردازنده هایپردازندههای میپس محبوبیت زیادی در [[ابررایانه|ابر رایانه هارایانهها]] داشتند، اما تمام این سیستم هاسیستمها از فهرست TOP500 (پانصد ابررایانه برتر) حذف شده اندشدهاند. این استفاده هااستفادهها در ابتدا توسط کاربرد های کاربردهای جاسازی شده جا افتاد، اما در دهه 1990،۱۹۹۰، میپس بخش بزرگی از بازار پردازنده هایپردازندههای جاسازی شده را به خود اختصاص داده بود، و در دهه یدههٔ 2000،۲۰۰۰، اکثر پردازنده هایپردازندههای میپس در این زمینه به کار می رفتندمیرفتند. در اواسط تا اواخر دهه 1990۱۹۹۰ تخمین زده شد که یک در هر سه ریزپردازنده ریسک تولید شده یک پردازنده میپس بوده. <ref name="Victor P. Rubio, 2004">{{Cite web|url=http://www.ece.nmsu.edu/~jecook/thesis/Victor_thesis.pdf|title=A FPGA Implementation of a MIPS RISC Processor for Computer Architecture Education|accessdate=December 22, 2011|publisher=[[New Mexico State University]]|last=Rubio|first=Victor P|archiveurl=https://web.archive.org/web/20120415011539/http://www.ece.nmsu.edu/~jecook/thesis/Victor_thesis.pdf|archivedate=April 15, 2012|deadurl=no}}</ref>
میپس یک معماری مدولار است که تا چهار پردازنده کمکی را پشتیبانی میکندمیکند(CP۰/۱/۲/۳). در اصطلاح میپس، CP۰ پردازنده یپردازندهٔ کمکی کنترل سیستم است (بخشی حیاتی از پردازنده است که در میپس V-I در پیاده سازیپیادهسازی تعریف شده استشدهاست)، CP۱ یک واحد اختیاری [[واحد ممیز شناور|ممیز شناور]] (FPU) است و CP۲ / ۳ پردازنده هایپردازندههای کمکی اختیاری اند که در پیاده سازیپیادهسازی تعریف می شوندمیشوند. (میپس CP۳CP3 III را حذف کرد و آپ کد ان را برای امور دیگر استفاده کرد). به عنوان مثال، در [[پلیاستیشن|کنسول]] بازی [[پلیاستیشن|پلی استیشن]] ، CP۲ موتور تبدیل هندسی (GTE) است که پردازش هندسه را در گرافیک کامپیوتری سه بعدی تسهیل می کندمیکند.
در دسامبر 2018،۲۰۱۸، Wave Computing، صاحب جدید <ref>{{Cite web|url=https://wavecomp.ai/wave-computing-extends-ai-lead-by-targeting-edge-of-cloud-through-acquisition-of-mips|title=Wave Computing Extends AI Lead by Targeting Edge of Cloud Through Acquisition of MIPS|date=2018-06-15}}</ref> معماری میپس (رجوع شود به MIPS Technologies )، اعلام کرد که میپس ISA در برنامه ای که MIPS Open initiative نامیده می شود،میشود، متن باز می شودمیشود. هدف برنامه ای که برای سال 2019۲۰۱۹ برنامهبرنامهریزی ریزی شده است،شدهاست، این است که دسترسی آزاد به اکثر نسخه هاینسخههای اخیر طراحی هایطراحیهای 32۳۲ بیتی و 64۶۴ بیتی را بدون نیاز به هیچ گونه مجوز یا هزینه حق امتیاز فراهم کند و همچنین مجوز استفاده از اختراع های اختراعهای ثبت شده یشدهٔ میپس موجود را در اختیار به شرکت کنندگان قرار دهد. <ref>{{Cite web|url=https://wavecomp.ai/wave-computing-launches-the-mips-open-initiative|title=Wave Computing® Launches the MIPS Open Initiative To Accelerate Innovation for the Renowned MIPS® Architecture|date=2018-12-17}}</ref> <ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=MIPS-Open-Source-2019|title=MIPS Processor ISA To Be Open-Sourced In 2019 - Phoronix}}</ref> <ref>{{Cite web|url=https://www.eetimes.com/document.asp?doc_id=1334087|title=MIPS Goes Open Source|date=December 17, 2018|accessdate=|website=EE Times|last=Yoshida|first=Junko|archiveurl=|archivedate=|deadurl=}}</ref>
== میپس I ==
اولین نسخه معماری میپس توسط MIPS Computer Systems برای ریزپردازنده R2000 ،R2000، اولین پیاده سازیپیادهسازی میپس، طراحی شد. میپس و R2000 با هم در سال 1985۱۹۸۵ معرفی شدند. {{مدرک|date=June 2016}} هنگامی که میپس II معرفی شد، ''میپس'' به ''میپس I'' تغییر نام داد تا از نسخه جدید متمایز شود. <ref name="Sweetman1999">{{Cite book|last=Sweetman|first=Dominic|date=1999|title=See MIPS Run|publisher=Morgan Kaufmann Publishers, Inc.|isbn=1-55860-410-3}}</ref> {{Rp|32}}
MIPS یک معماری بارگذاری / ذخیره سازیذخیرهسازی (نام دیگر آن رجیستر رجیستر ) است؛ به جز دستورلعمل هایدستورلعملهای بارگذاری / ذخیره سازیذخیرهسازی استفاده شده برای دسترسی به [[حافظه رایانه|حافظه]] ، تمام دستورلعمل هادستورلعملها در رجیستر هارجیسترها عمل می کنندمیکنند.
=== رجیستر هارجیسترها ===
میپس I دارای سی و دو رجیستر 32۳۲ بیتی عمومی است. رجیستر ۰ $ سخت افزاریسختافزاری صفر است و و هر آنچه در آن نوشته شود دور انداخته می شودمیشود. رجیستر ۳۱ $ رجیستر پیوند است. برای دستورلعملهای ضرب و تقسیم اعداد صحیح، که مستقل از دستورت دیگر اجرا می شود،میشود، یک جفت رجیستر ۳۲ بیتی، ''HI'' و ''LO'' ارائه شده استشدهاست. مجموعه یمجموعهٔ کوچکی از دستورلعمل هادستورلعملها برای کپی کردن داده هادادهها بین رجیستر هایرجیسترهای کلی و رجیستر هایرجیسترهای HI / LO وجود دارد.
شمارنده برنامه ۳۲ بیت دارد. از آنجا که طول دستورلعمل هایدستورلعملهای میپس ۳۲I بیت است و هم اندازه یاندازهٔ حد طبیعی یک کلمه است، دو بیت مرتبه پایین ترپایینتر همواره صفر است.
=== قالبهای دستورلعملها ===
=== قالب های دستورلعمل ها ===
دستورلعمل هادستورلعملها به سه نوع تقسیم می شوندمیشوند:I،I, R و J. هر دستورلعمل با یک آپ کد 6۶ بیتی شروع می شودمیشود. علاوه بر آپ کد، دستورلعمل هایدستورلعملهای نوع R ،R، سه رجیستر، یک فیلد برای اندازه یاندازهٔ شیفت و یک فیلد برای تابع مشخص می کنندمیکنند. دستورلعمل هایدستورلعملهای نوع I دو رجیستر و یک مقدار فوری 16۱۶ بیتی را مشخص میمیکند؛ کند؛ دستورلعمل هایدستورلعملهای نوع J از آپ کد همراه با مقصد پرش ۲۶ بیتی پیروی میکنندمیکنند. <ref name="Price1995"><div> قیمت، چارلز (سپتامبر 1995). ''مجموعه آموزش MIPS IV'' (ویرایش 3.2)، MIPS Technologies،Technologies, Inc. </div></ref> {{Rp|A-174}}
در زیر سه قالب مورد استفاده برای مجموعه دستورلعمل هایدستورلعملهای اصلی آمده استآمدهاست:
{| class="wikitable"
!نوع
! colspan="6" | -۳۱- قالب (بیتها) -۰-
! colspan="6" | -۳۱- قالب (بیت ها) -۰-
|- align="center"
| R
| آپ کد
(۶)
| rs
(۵)
| rt
(۵)
| rd
(5)
| مقدار شیفت (5۵)
| تابع (۶)
|- align="center"
| I
| آپ کد (۶)
| rs
(۵)
| rt
(۵)
| colspan="3" | فوری (16۱۶)
|- align="center"
| J
| آپ کد (۶)
| colspan="5" | آدرس (26۲۶)
|}
=== دستورلعمل هایدستورلعملهای CPU ===
==== بارگذاریها و ذخیرهسازیها ====
میپس I دستورلعملهایی برای بارگذاری و ذخیره بایتهای ۸ بیتی، نیم کلمههای ۱۶ بیت و کلمات ۳۲ بیتی دارد. تنها یک [[حالت آدرسدهی|حالت آدرس دهی]] پشتیبانی میشود: پایه + جابجایی. از آنجا که میپس I یک معماری ۳۲ بیتی است، برای بارگذاری مقادیر کمتر از ۳۲ بیت داده باید آنها را یا با علامت یا با صفر به ۳۲ بیت رساند. دستورلعملهای بارگزاری با پیشوند "unsigned" دادهها را با صفر توسعه میدهند و در غیر اینصورت با علامت. منبع دستور العملهای بارگزاری برای پایه محتوای یک رجیستر عمومی (rs) است و نتیجه را در یک رجیستر عمومی دیگر (rt) مینویسند. منبع دستورلعملهای ذخیرهسازی برای پایه نیز محتوای یک رجیستر عمومی (rs) و برای دادههای ذخیره شونده یک رجیستر عمومی دیگر (rt) است. تمام دستورلعملهای بارگذاری و ذخیره، برای محاسبه آدرس مقدار پایه را با مقدار فوری ۱۶ بیتی که با علامت به ۳۲ بیت رسانده شده جمع میکنند. در میپس I همهٔ دسترسیهای حافظه باید بر مرزهای طبیعی کلمه شان منطبق باشند، در غیر این صورت یک استثنا پرتاب میشود. برای وشتیبانی از دسترسیهای بهینهٔ غیر منطبق حافظه، دستورلعملهای بارگزاری/ذخیرهسازی کلمه با پیشوندهای «left» یا «right» وجود دارد. تمام دستورلعملهای بارگزاری با یک شکاف تأخیر بارگزاری دنبال میشود. دستورلعملهایی که در شکاف تأخیر بارگزاری میآیند نمیتواند از دادههای بارگزاری شده توسط دستورلعمل بارگزاری استفاده کنند. شکاف تأخیر بارگزاری را میتوان با دستورهایی که به بارگزاری بستگی ندارند پر کرد. اگر چنین دستورهایی یافت نشد یک دستور بی عمل جایگزین آن میشود
==== بارگذاری ها و ذخیره سازی ها ====
میپس I دستورلعمل هایی برای بارگذاری و ذخیره بایت های ۸ بیتی، نیم کلمه های ۱۶ بیت و کلمات ۳۲ بیتی دارد. تنها یک [[حالت آدرسدهی|حالت آدرس دهی]] پشتیبانی می شود: پایه + جابجایی. از آنجا که میپس I یک معماری ۳۲ بیتی است، برای بارگذاری مقادیر کمتر از ۳۲ بیت داده باید آن ها را یا با علامت یا با صفر به ۳۲ بیت رساند. دستورلعمل های بارگزاری با پیشوند "unsigned" داده ها را با صفر توسعه می دهند و در غیر اینصورت با علامت.منبع دستور العمل های بارگزاری برای پایه محتوای یک رجیستر عمومی (rs) است و نتیجه را در یک رجیستر عمومی دیگر (rt) می نویسند. منبع دستورلعمل های ذخیره سازی برای پایه نیز محتوای یک رجیستر عمومی (rs) و برای داده های ذخیره شونده یک رجیستر عمومی دیگر (rt) است. تمام دستورلعمل های بارگذاری و ذخیره، برای محاسبه آدرس مقدار پایه را با مقدار فوری ۱۶ بیتی که با علامت به ۳۲ بیت رسانده شده جمع می کنند. در میپس I همه ی دسترسی های حافظه باید بر مرزهای طبیعی کلمه شان منطبق باشند، در غیر این صورت یک استثنا پرتاب می شود. برای وشتیبانی از دسترسی های بهینه ی غیر منطبق حافظه، دستورلعملهای بارگزاری/ذخیره سازی کلمه با پیشوند های «left» یا «right» وجود دارد. تمام دستورلعمل های بارگزاری با یک شکاف تاخیر بارگزاری دنبال می شود. دستورلعمل هایی که در شکاف تاخیر بارگزاری می آیند نمی تواند از داده های بارگزاری شده توسط دستورلعمل بارگزاری استفاده کنند. شکاف تأخیر بارگزاری را می توان با دستورهایی که به بارگزاری بستگی ندارند پر کرد. اگر چنین دستورهایی یافت نشد یک دستور بی عمل جایگزین آن می شود
{| class="wikitable"
! نام دستور
! یادیار
! قالب
! colspan="6" | رمزگذاری
|-
| بارگزاری بایت
| LB
| style="text-align:center" | I
| style="text-align:center" width="60px" | 32 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" | offset
|-
| بارگذاری نیم کلمه
| LH
| style="text-align:center" | I
| style="text-align:center" width="60px" | 33 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" | offset
|-
| بارگذاری کلمه چپ
| LWL
| style="text-align:center" | I
| style="text-align:center" width="60px" | 34 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" | offset
|-
| بارگذاری کلمه
| LW
| style="text-align:center" | I
| style="text-align:center" width="60px" | 35 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| بارگزاری بایت بدون علامت
| LBU
| style="text-align:center" | I
| style="text-align:center" width="60px" | 36 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| بارگزاری نیم کلمه بدون علامت
| LHU
| style="text-align:center" | I
| style="text-align:center" width="60px" | 37 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| بارگزاری کلمه راست
| LWR
| style="text-align:center" | I
| style="text-align:center" width="60px" | 38 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| ذخیره بایت
| SB
| style="text-align:center" | I
| style="text-align:center" width="60px" | 40 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| ذخیره نیم کلمه
| SH
| style="text-align:center" | I
| style="text-align:center" width="60px" | 41 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| ذخیره کلمه چپ
| SWL
| style="text-align:center" | I
| style="text-align:center" width="60px" | 42 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| ذخیره کلمه
| SW
| style="text-align:center" | I
| style="text-align:center" width="60px" | 43 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|-
| ذخیره کلمه راست
| SWR
| style="text-align:center" | I
| style="text-align:center" width="60px" | 46 <sub>10</sub>
| style="text-align:center" width="50px" | rs
| style="text-align:center" width="50px" | rt
| colspan="3" style="text-align:center" width="160px" |offset
|}
==== واحد محاسبه و منطق ====
میپس I دستورهایی برای جمع و تفریق دارد. این دستور هادستورها عمل وند هایوندهای خود را از دو رجیستر عمومی (rs و rt) میگیرند،میگیرند، و نتیجه را در یک رجیستر عمومی سوم (rd) ذخیره می کنندمیکنند. علاوه بر این، یکی از عملوند هایعملوندهای جمع میتواندمیتواند یک مقدار فوری ۱۶ بیتی باشد (که با علامت به ۳۲ بیت کسترش یافته استیافتهاست). دستورهای جمع و تفریق دو نوع اند: به طوربهطور پیش فرض، اگر نتیجه سرریز شود، یک استثناء پرتاب می شود؛میشود؛ دستورهایی که پسوند "unsigned" دارند استثنا پرتاب نمی کنندنمیکنند. کنترل سرریز نتیجه را به صورت یک عدد صحیح متمم دو ۳۲ بیتی تفسیر می کندمیکند.
میپس I دستورهای برای انجام اعمال منطقی AND،AND, OR،OR, XOR و NOR بر روی [[عملیات بیتی|بیتها]] دارد. این دستورها، عملوند هایعملوندهای خود را از دو رجیستر عمومی می گیرندمیگیرند و نتیجه را در رجیستر سوم ذخیره می کنندمیکنند. همچنین یکی از عملوند هایعملوندهای دستورهای AND،AND, OR و XOR می تواندمیتواند یک مقدار فوری ۱۶ بیتی (که با صفر تا ۳۲ بیت توسعه یافته استیافتهاست) باشد.
مجموعه دستور های دستورهای ''رابطه ای'' بسته به برقرار بودن یا نبودن رابطه در رجیستر مقصد مقدار صفر یا یک را ذخیره می کندمیکند. عملوند هایعملوندهای این دستور هادستورها دو رجیستر عمومی یا یک رجیستر و یک مقدار فوری ۱۶ بیتی (که با علامت تا ۳۲ بیت توسعه یافته استیافتهاست) هستند، و نتیجه نیز در یک رجیستر عمومی سوم ذخیره می شودمیشود. به طوربهطور پیش فرض عملوند هاعملوندها به عنوان اعداد صحیح علامت دار تفسیر می شوندمیشوند. فرمهایی از این دستور هادستورها که پسوند "unsigned" دارند عملوند هاعملوندها را اعداد صحیح بدون علامت تفسیر می کنندمیکنند (حتی آنهایی که از توسعه یتوسعهٔ با علامت یک مقدار فوری ۱۶ بیتی حاصل شده اندشدهاند).
دستور بارگزاری بالایی مقدار فوری، مقدار فوری ۱۶ بیتی را در ۱۶ بیت مرتبه بالاتر یک رجیستر عمومی کپی می کندمیکند. این دستور همراه با دستور Or استفاده می شودمیشود تا یک مقدار فوری ۳۲ بیتی را در یک رجیستر بارگداری کند
{| class="wikitable"
!نام دستور
|}
==== شیفت هاشیفتها ====
میپس I دستور هاییدستورهایی برای شیفت هایشیفتهای چپ و راست منطقی و راست جبری دارد. عملگر از یک رجیستر عمومی (rt) گرفته می شود،میشود، و نتیجه نیز در یک رجیستر عمومی دیگر (rd) ذخیره می شودمیشود. مقدار شیفت یا از یک رجیستر عمومی (rs) گرفته می شودمیشود یا یک " مقدار شیفت" ۵ بیتی (فیلد "sa").
{| class="wikitable"
!نام دستور
| style="text-align:center" width="60px" |4<sub>10</sub>
|-
|شیفت متغیر راست
|SRLV
| style="text-align:center" |R
==== ضرب و تقسیم ====
میپس I دستور هاییدستورهایی برای ضرب و تقسیم اعداد صحیح با علامت و بدون علامت دارد. عملوند هایعملوندهای این دستور هادستورها دو رجیستر عمومی اند و حاصل را در یک جفت رجیستر ۳۲ بیتی به نام هاینامهای HI و LO ذخیره می کنند،میکنند، آنها ممکن است جدا از ( و همزمان با) دستورهای دیگر CPU اجرا شوند. در ضرب نیمه هاینیمههای مرتبه بالا و مرتبه پایین حاصل ضرب ۶۴ بیتی به ترتیب در HI و LO ذخیره می شوندمیشوند. در تقسیمُ خارج قسمت در LO و باقیمانده در HI نوشته می شوندمیشوند. برای دسترسی به نتایج دو دستور (انتقال از HI و انتقال از LO) فراهم شده اندشدهاند که محتویات HI و LO را در یک رجیستر عمومی کپی می کنندمیکنند. این دستور هادستورها به هم پیوسته اندپیوستهاند: خواندن HI و LO قبل از اتمام عمل جبری ای که در HIو LO خواهد نوشت میسر نیست. دو دستور دیگر (انتقال به HI و انتقال به LO) محتویات یک رجیستر عمومی را در HI و LO کپی میکندمیکند. کاربرد این دستور هادستورها در رسیدگی به استثنا هاست. با کمک آن هاآنها مقادیر قبلی HI و LO را پس از رسیدگی به استثنا بازیابی می کنیممیکنیم. بین دستور هاییدستورهایی که HI و LO را می خوانندمیخوانند باید دو دستور دیگر بیاید که در HI و LO نمینویسندنمینویسند.
{| class="wikitable"
!نام دستور
==== پرش و انشعاب ====
پس از تمام دستور هایدستورهای کنترل جریان میسپ I یک شکاف تاخیرتأخیر انشعاب می آیدمیآید. اگر این شکاف با دستوری که کار مفیدی انجام دهد پر نشده باشد، یک دستور بی عمل در آن قرار می گیردمیگیرد. دستور هایدستورهای انشعاب میسپ I محتوای یک رجیستر عمومی (rs) را با صفر یا یک رجیستر عمومی دیگر (rt) به عنوان اعداد صحیح علامت دار مقایسه می کنندمیکنند و اگر شرط تعیین شده برقرار باشد انشعاب میکنندمیکنند. برای محاسبه یمحاسبهٔ مقصد پرش، آفست ۱۶ بیتی دو بیت به چپ شیفت داده میمیشود، شود، نتیجه ینتیجهٔ ۱۸ بیتی با علامت گستش داده می شود،میشود، و حاصل ۳۲ بیتی به حاصل جمع شمارنده یشمارندهٔ برنامه (آدرس دستور) و ۸ اضافه می شودمیشود. پرش هاپرشها دو نوع اند: مطلق و غیر مستقیم. پرش هایپرشهای مطلق ("پرش" و "پرش و پیوند") برای محاسبه یمحاسبهٔ آدرس مقصد instr_index را دو بیت به چپ شیفت می دهندمیدهند و حاصل را به ۴ بیت مرتبه بالای آدرس دستوری که در شکاف تأخیر انشعاب آمده پیوند می زنندمیزنند. پرش هایپرشهای غیر مستقیم آدرس دستور مقصد را از یک رجیستر عمومی (rs) می گیرندمیگیرند. آدرسی که در رجیستر است باید بر اساس کلمه تراز شده باشد، وگرنه پس از آن که دستوری که در شکاف تأخیر انشعاب قرار دارد اجرا شود یک استثنا پرتاب می شودمیشود. دستور هایدستورهای انشعاب و پرشی که پیوند برقرار می کنندمیکنند (به غیر از "پرش و پیوند رجیستر") آدرس بازگشت را در رجیستر عمومی ۳۱ ذخیره می کنندمیکنند. دستور "پرش و پیوند رجیستر" اجازه میدهدمیدهد آدرس برگشت در هر رجیستر عمومی قابل استفاده ای ذخیره شود.
{| class="wikitable"
!نام دستور
| style="text-align:center" width="60px" |1<sub>10</sub>
| style="text-align:center" width="50px" |rs
| style="text-align:center" width="50px" |16۱۶
| colspan="3" style="text-align:center" width="160px" |آفست
|-
| style="text-align:center" width="60px" |1<sub>10</sub>
| style="text-align:center" width="50px" |rs
| style="text-align:center" width="50px" |17۱۷
| colspan="3" style="text-align:center" width="160px" |آفست
|-
==== استثنا ====
میپس I برای نرمافزارها دو دستور درتاب استثنا دارد: فراخوانی سیستمی و نقطه توقف. فراخوانی سیستمی توسط نرمافزار هاینرمافزارهای کاربری برای فراخوانی کرنلی استفاده میشود؛ و نقطهنقطه توقف برای انتقال کنترل به یک اشکالزدا (به انگلیسی: debugger) از طزیق رسیدگی کننده استثنائات کرنل به کار می رودمیرود. هر دو دستور دارای بخش کد ۲۰ بیتی هستند که میتوانند حاوی اطلاعات مختص محیط سیستم عامل برای رسیدگی کننده استثنائات باشند.
{| class="wikitable"
!نام دستور
=== دستورهای نقطه شناور (FPU) ===
میپس دارای ۳۲ رجیستر نقطه شناور است. دو رجیستر برای اعداد دقت دوگانه (double precision) با هم جفت شده اندشدهاند. رجیسترهای فرد تنها به عنوان بخشی از یک جفت رجیستر دقت دوگانه قابل استفادهاند، نه برای عملیات جبری یا انشعاب. در نتیجه برای اکثر دستورها ۱۶ رجیستر قابل استفاده موجود است ( انتقالها/کپیها و باگذاریها/ذخیرهسازیها تحت تأثر قرار نمیگیرند).
==== عملیات جبری ====
|$x
|2<sub>10</sub>
|-
|تقسیم نقطه شناور
| style="font-family:monospace" |div.s $x,$y,$z
|
|}
دقت یگانه (single precision) با پسوند s. نشان داده می شودمیشود و دقت دوگانه با پسوند d. نشان داده می شودمیشود.
==== انتقال داده ====
|
|
|کلمه ۴ بایتی ذخیره شده در [MEM[$y+CONST را در رجیستر داده ی پردازنده کمکی بارگزاری می کندمیکند. توسعه علامتدار
|-
|ذخیره از پردازنده کمکی
| style="font-family:monospace" |swcZ $x,CONST ($y)
| style="font-family:monospace" |Memory[$y + CONST] = Coprocessor[Z].DataRegister[$x]
|I
|
|
|کلمه یکلمهٔ ۴ بایتی موجود در رجیستر دادهیدادهٔ پردازنده کمکی را در [MEM[$y+CONST ذخیره می کندمیکند. توسعه علامتدار
|}
==== انشعاب ====
{| class="wikitable"
! نام
! نحوه آموزش
! معنا
! فرمت
! آپکد
! fact
! توضیحات / رمزگذاری
|-
| انشعاب اگر FP درست
| style="font-family:monospace" | bc1t 100
|<syntaxhighlight>
if (cond)
|-
|انشعاب اگر FP غلط
| style="font-family:monospace" | bc1f 100
|<syntaxhighlight lang="c">
if (!cond)
== میپس II ==
میپس II شکاف تأخیر بارگزاری را حذف کرد<ref name="Sweetman1999">{{Cite book|last=Sweetman|first=Dominic|date=1999|title=See MIPS Run|publisher=Morgan Kaufmann Publishers, Inc.|isbn=1-55860-410-3}}</ref> {{Rp|41}} و مجموعه هایمجموعههای مختلفی از دستورها را اضافه کرد. دستورهایی برای پردازش چندگانه با حافظه مشترک، بارگزاری کلمه یکلمهٔ پیوندیافته و ذخیرهذخیرهٔ ی کلمهیکلمهٔ مشروط اضافه کرد. مجموعه ای از دستورهای دام اگر شرط اضافه شد. این دستورها در صورت برقراری شرط باعث استثنا میشوند. برای تمام دستورهای انشعاب موجود نسخههای انشعاب گونه ای اضافه شد که هنگام انشعاب دستورهای داخل شکاف تأخیر انشعاب را اجرا میکنند. <ref name="Sweetman1999" /> {{Rp|40}} در برخی موارد این دستورها با ایجاد امکان قرار دادن دستورهای مفید در شکاف تأخیر انشعاب باعث بهبود عملکرد می شوندمیشوند. <ref name="Sweetman1999" /> {{Rp|212}} دستورهای بارگذاری و ذخیرهیذخیرهٔ دوکلمه برای COP1 – 3 اضافه شد. همانند دستورهای دسترسی حافظهیحافظهٔ دیگر، در این بارگزاریها و ذخیرهها دوکلمه باید به طوربهطور طبیعی تراز شده باشد.
همچنین دستوهای مختلفی به مجموعه دستورهای پردازنده کمکی نقطه شناور اضافه شد. یک دستور جذر نقطه شناور سازگار با IEEE754 اضافه شد. این دستور از هردو نوع عملوند دقت یگانه و دقت دوگانه پشتیبانی میکند. مجموعه دستورهایی برای تبدیل اعداد نقطه شناور دقت یگانه و دقت دوگانه به کلمات ۳۲ بیتی اضافه شد. این دستورها این امکان را فراهم میکردند که حالت گرد کردن IEEE به جای کنترل نقطه شناور و رجیستر وضعیت توسط دستورها مشخص شود و به این وسیله یوسیلهٔ دستورهای تبدیل موجود را کاملتر کردند.
ریزپردازندهریزپردازنده R6000 از شرکت MIPS Computer Systemsر (1989۱۹۸۹) اولین پیادهسازی میپس II است. <ref name="Sweetman1999">{{Cite book|last=Sweetman|first=Dominic|date=1999|title=See MIPS Run|publisher=Morgan Kaufmann Publishers, Inc.|isbn=1-55860-410-3}}</ref> {{Rp|8}} این ریزپردازنده برای سرورها طراحی شد. R6000 توسط Bipolar Integrated Technology ساخته و به بازار عرضه شد، اما با شکست تجاری مواجه شد. در اواسط دهه 1990،۱۹۹۰، بسیاری از پردازندههای جدید 32۳۲ بیتی میپس برای [[سامانه نهفته|سیستم هایسیستمهای جاسازی شده]] ، پیاده سازیپیادهسازی میپس II بودند،زیرابودند، زیرا با معرفی معماری میپس III ی ۶۴ بیتی در 1991۱۹۹۱ میپس II تا معرفی میپس ۳۲ در 1999۱۹۹۹ جدیدترین معماری میپس ۳۲ بیتی باقی ماند. <ref name="Sweetman1999" /> {{Rp|19}}
{| class="wikitable sortable"
|+دستورهای افزوده شده به میپس II.<ref name="Price1995"><div> قیمت، چارلز (سپتامبر 1995). ''مجموعه آموزش MIPS IV'' (ویرایش 3.2)، MIPS Technologies،Technologies, Inc. </div></ref>
!نام
!یادآور
|LDC3
|-
|ذخیره سازیذخیرهسازی مشروط
|SC
|-
|ذخیره سازیذخیرهسازی دوکلمه از پردازنده کمکی ۱
|SDC1
|-
|ذخیره سازیذخیرهسازی دوکلمه از پردازنده کمکی ۲
|SDC2
|-
|ذخیره سازیذخیرهسازی دوکلمه از پردازنده کمکی ۳
|SDC3
|}
== میپس III ==
میپس III یک توسیع [[سازگاری عقبرو|سازگار با گذشته]] از میپس II است که پشتیبانی از عملیات اعدادصحی آدرس دهی 64۶۴ بیتی حافظه را اضافه کرده استکردهاست. نوع داده یدادهٔ ۶۴ بیتی دوکلمه نامیده میشود، و میپس III رجیستر هایرجیسترهای عمومی، رجیسترهای HI/LO ،LO، شمارندهیشمارندهٔ برنامه را به ۶۴ بیت توسعه داد تا بتواند از آن پشتیبانی کند. دستورهای جدیدی برای بارگزاری و ذخیره یذخیرهٔ دوکلمهها، انجام جمع، تفریق، ضرب و تقسیم اعداد صحیح و همچنین عملیاتهای شیفت بر روی آن هاآنها و انتقال دوکلمهها بین رجیسترهای عمومی و HI/LO اضافه شد. دستور هایدستورهای موجود که در اصل برای عمل کردن بر روی کلمههای ۳۲ بیتی تعریف شده بودند، هرجا نیاز بود بازتعریف شدند تا بتوانند حاصلهای ۳۲ بیتی را با علامت توسعه دهند و اکثر دستورها بتوانند با کلمهها و دوکلمهها یکسان برخورد کنند. از میان این دستورهای بازتعریف شده میتوان به ''بارگزاری کلمه'' اشاره کرد. در میپس III این دستور کلمهها را باعلامت به ۶۴ بیت توسعه میدهد. برای کامل کردن ''بارگزاری کلمه''، نسخه ای اضافه شد که با صفر توسعه میدهد.
ناتوانی قالب R در مشخص کردن مقدار کامل شیفت برای شیفتهای ۶۴ بیتی (فیلد ۵ بیتی آن برای مقدار شیفت بسیار کوتاهتر از آن است مقدار شیفت برای دوکلمهها را نشان دهد) باعث شد میپس III سه نسخه ۶۴ بیتی از هر دستور شیفت میپس I ارائه دهد. اولین نسخه، نسخه ینسخهٔ ۶۴ بیتی دستورهای شیفت اصلی است، که برای مشخص کردن مقدار شیفتهای ۰ تا ۳۱ بیتی استفاده میشود. دومین نسخه مشابه اولی است، اما به مقدار فیلد مقدار شیفت ۳۲<sub>۱۰</sub> میافزاید تا مقدارهای ثابت شیفت ۳۲ تا ۶۴ بیت را بتوان مشخص کرد. نسخهینسخهٔ سوم مقدار شیفت را از ۶ بیت مرتبه یمرتبهٔ پایین یک رجیستر عمومی به دست میآورد.
میپس III سطوح امتیاز کرنل و کاربر که از قبل موجو بودند یک سطح ''ناظر'' افزود. این قابلیت تنها پردازنده یپردازندهٔ کنترل سیستم تعریف شده در پیاده سازیپیادهسازی ( پردازندهیپردازندهٔ کمکی ۰) را تحت تأثیر قرار داد.
{| class="wikitable"
|+دستورهای CPU اضافه شده توسط میپس III
| colspan="3" |آفست
|}
میپس III پشتیبانی از پردازنده کمکی ۳ (CP3) را حذف کرد، و آپکد آن را برای دستورهای دوکلمه یدوکلمهٔ جدید استفاده کرد. پردازنده هایپردازندههای کمکی باقی مانده دستورهایی برای انتقال دوکلمهها بین رجیسترهای پردازنده کمکی و رجیسترهای عمومی به دست آوردند. رجیسترهای عمومی شناور (FGRs) به ۶۴ بیت توسعه یافتند و دیگر نیازی به دستورهایی برای محدود کردن استفاده از رجیستر هارجیسترها تنها به تعداد زوج وجود نداشت. این با نسخههای قبلی این معماری سازگار نبود؛ برای اداره کردن واحد نقطه شناور (FPU) میپس III در یک حالت سازگار با میپس I و II، یک بیت در رجیستر کنترل/وضعیت نقطه شناور استفاده میشود. رجیسترهای کنترل نقطه شناور توسعه نیافتند تا سازگاری حفظ شود. تنها دستورهای نقطه شناور اضافه شده دستورهای کپی دوکلمهها بین CPU و FPU، تبدیل اعداد نقطه شناور دقت یگانه و دوگانه به دوکلمههای صحیح و برعکس هستند.
{| class="wikitable"
|+دستورهای FPU اضافه شده توسط میپس III
|fs
|fd
|8۸
|-
|گرد کردن نقطه شناور به طولانی
|17<sub>10</sub>
|16<sub>10</sub>
|0۰
|fs
|fd
|37<sub>10</sub>
|}
ریزپردازندهیریزپردازندهٔ R4000 شرکت MIPS Computer Systems، (در سال ۱۹۹۱) اولین پیادهسازی میپس III بود. این ریزپردازنده برای استفاده در کامپیوترهای شخصی، استگاه کاری، و سرور طراحی شده بود.MIPS Computer Systems به شدت معماری میپس و R4000 را ترویج میداد، و کنسرسیوم محیط محاسباتی پیشرفته (ACE) را برای پیشبرد استاندارد محاسبهيمحاسبهٔ ریسک پیشرفته (ARC) اش ایجاد کرد، که هدف ان جاانداختن میپس به عنوان پلتفورم غالب برای محاسبات شخصی بود. ARC چندان موفقیتی در کاپیوترهای شخصی پیدا نکرد، اما R4000 (و R4400 مشتق آن) به طوربهطور گسترده در کامپیوترهای استگاه کاری و سرور استفاده میشد، به خصوص توسط بزرگترین کاربر آن Silicon Graphics. سایر کاربردهای R4000 شامل سیستم هایسیستمهای جاگذاری شده پیشرفته و سوپر کامپيوترهاکامپیوترها می باشندمیباشند.
پس از گذر زمان میپس III توسط تعدادی ریزپردازنده یریزپردازندهٔ جاگذاری شده پیادهسازی شد. ریزپردازندهی ریزپردازندهٔ R4600 شرکت Quantum Effect Design (سال ۱۹۹۳) و مشتقات آن به طوربهطور گسترده در سیستم هایسیستمهای جاگذاری شده یشدهٔ پیشرفته و ایستگاههای کاری ابتدایی و سرورها استفاده میشدند. ریزپردازندهیریزپردازندهٔ R4200 شرکت MIPS Technologies (سال ۱۹۹۴) برای سیستم هایسیستمهای جاگذاری شده، لپ تاپها و کامپیوترهای شخصی طراحی شد. یکمشتق آن، R4300i، ساخته شده توسط NEC Electronics ،Electronics، در [[نینتندو ۶۴|کنسول]] بازی [[نینتندو ۶۴|نینتندو 64]] استفاده شد. نینتندو 64۶۴ در کنار پلی استیشن از بزرگترین استفاده کننده هایاستفادهکنندههای پردازندههای معماری میپس در میانهیمیانهٔ دههدهه ۱۹۹۰ بودند.
== میپس IV ==
میپس IV چهارمین نسخهینسخهٔ معماریست. این معماری یک فوق مجموعه یمجموعهٔ میپس III و با تمام نسخه هاینسخههای موجود میپس سازگار است. انگیزهیانگیزهٔ اصلی طراحی میپس IV بهبود عملکرد نفطه شناور (FP) بود. برای بهبود دسترسی به عملوندها، یک [[حالت آدرسدهی|حالت آدرس دهی]] اندیس گذاری شده (پایه + اندیس که منبع هردو رجیسترهای عمومی است) برای بارگزاری هابارگزاریها و ذخیره سازی هایذخیرهسازیهای FP اضافه شد، دستورهای فراخوانی زودرس نیز برای انجام فراخوانی زودرس حافظه و مشخص کردن راهنماهای کش (اینها هر دو حالت آدرس دهی وایه + آفست و پایه + اندیس را پشتیبانی میکردند) اضافه شد.
میپس IV قابلیت هایقابلیتهای گوناگونی برای بهبود موازی کاری در سطح دستورها اضافه کرد. برای سبک کردن بار گلوگاهی که در اثر یک بیت شرطی به وجود میآید، هفت بیت کد شرطی به رجیسترهای نقطه شناور کنترل و وضعیت اضافه شدند، و مجموع را به هشت رساندند. دستورهای مقایسه و انشعاب FP بازتعریف شدند تا بتوانند مشخص کنند کدام بیت شرطی نوشته یا خوانده می شودمیشود (به ترتیب)؛ و شکاف تأخیر بین یک انشعاب FP که یک بیت شرطی را میخواند و مقایسه FP قبلی که آن بیت رانوشته است حذف شد. پشتیبانی از [[پیشبینی انشعاب|پیشبینی جزئی]] در قالب دستورهای انتقال شرطی برای هردوی رجیسترهای عمومی و نقطه شناور اضافه شد؛ و یک پیادهپیادهسازی سازی میتوانستمیتوانست بین استثنائات دقیق یا مبهم تله هایتلههای IEEE 754 انتخاب کند.
میپس IV دستورهای جبری FP جدیدی برای هردوی اعداد نقطه شناور دقت یگانه و دوگانه اضافه کرد: ترکیب جمع یا تفریق با ضرب، معکوس، معکوس ریشه یریشهٔ دوم. دستورهای ترکیب جمع یا تفریق و ضرب نقطه شناور یک یا دو گردکردن انجام میدهند (این امر در پیادهسازی تعریف میشود)، به ترتیب برای رسیدن به دقت مورد نیاز IEEE754 یا رفتن فراتر از آن. دستورهای نقطه مشترک معکوس و معکوس ریشه دوم از دقت مورد نیاز IEEE754 پیروی نمیکنند. و نتایج آنها با دقت مورد نیاز در یک یا دو واحد جایگاه آخر اختلاف دارد (در پیاده سازیپیادهسازی تعریف میشود). این دستورها هنگامی کاربرد دارند که تأخیر دستور مهم ترمهمتر از دقت آن است.
اولین پیاده سازیپیادهسازی میپس IV چیپست ریزپردازندهیریزپردازندهٔ R8000 شرکت MIPS Technologies بود (1994۱۹۹۴). طراحی R8000 در شرکت .Silicon Graphics,inc آغاز شد و تنها در ایستگاه هایایستگاههای کاری و سرورهای پیشرفته برای کاربردهای علمی و فنی که در آن کارایی بالا در بار کاری نقطه شناور زیاد مهم بود. پیاده سازی هایپیادهسازیهای بعدی R10000 از شرکت MIPS Technologies (سال ۱۹۹۶) و R5000 از شرکت Quantum Effect Devicex (سال ۱۹۹۶) و RM7000 (سال 1998۱۹۹۸) بود. R10000، که توسط NEC Electronics و Toshiba ساخته و به بازار عرضه شد، و مشتقات آن توسط NEC و Pyramid Technology و .Silicon Graphics,inc و Tandem Computers (در میان دیگر شرکتها) در ایستگاههای کاری، سرورها و ابررایانه هاابررایانهها به کار رفت. R5000 و R7000 در سیستم هایسیستمهای جاگذاری شده پیشرفته شده، رایانه هایرایانههای شخصی و ایستگاه هایایستگاههای کاری و سرورهای ابتدایی به کار رفت. یک مشتقات R5000 از ToshibaToshiba، ، ریزپردازندهیریزپردازندهٔ R5900، در Emotion Engine شرکت Sony Computer Entertainment در کنسول [[پلیاستیشن ۲|PlayStation 2]] آن شرکت استفاده .
== میپس V ==
معرفی شده ار ۲۱ اکتبر ۱۹۹۶ در سمینار میکروپروسسور سال 1996۱۹۹۶ همراه با افزونهیافزونهٔ Digital Media Extensions یا MDMX، میپس V برای بهبود عملکرد تحولات گرافیکی سه بعدی طراحی شد. <ref>{{Cite web|url=http://infopad.eecs.berkeley.edu/CIC/otherpr/enhanced_mips.html|title=Silicon Graphics Introduces Enhanced MIPS Architecture to Lead the Interactive Digital Revolution|date=October 21, 1996|publisher=[[Silicon Graphics, Inc.]]|archiveurl=https://archive.is/20120710115823/http://infopad.eecs.berkeley.edu/CIC/otherpr/enhanced_mips.html|archivedate=July 10, 2012|deadurl=yes}}</ref> در میانه یمیانهٔ دهه ۱۹۹۰، یک کاربرد اصلی ریزپردازنده هایریزپردازندههای غیر جاگذاری شده یشدهٔ میپس، ایستگاه هایایستگاههای کاری گرافیکی SGI بود. میپس V با افزونه یافزونهٔ اعداد صحیح MDMX تکمیل شد تا یک سیستم کامل برای بهبود عملکرد برنامه هایبرنامههای گرافیک سه بعدی فراهم آورد. <ref name="MPR:1996-11-18">{{Cite journal|last=Gwennap|first=Linley|date=November 18, 1996|title=Digital, MIPS Add Multimedia Extensions"|url=http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/mdmx%20(mpr).pdf|dead-url=no|journal=[[Microprocessor Report]]|volume=10|issue=15|pages=24-28|archive-url=https://web.archive.org/web/20110720095552/http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/mdmx%20(mpr).pdf|archive-date=July 20, 2011}}</ref>
هیچگاه برای میپس V پیاده سازیپیادهسازی ای معرفی نشد. در ۱۲ مه ۱۹۹۷، شرکت SGI خبر از ریزپردازنده هایریزپردازندههای «H1» (ملقب به «Beast») و «H2» (ملقب به «Captain») داد. اولی قرار بود اولین پیادهسازی میپس V باشد، و بنا بود در نیمه ینیمهٔ اول ۱۹۹۹ معرفی شود. <ref>{{Cite press release|title=Silicon Graphics Previews New High-Performance MIPS Microprocessor Roadmap|date=May 12, 1997}}</ref> پروژه هایپروژههای «H1» و «H2» بعد هابعدها ترکیب شده و در نهایت در سال ۱۹۹۸ لغو شدند. با این که هیچ پیاده سازیپیادهسازی ای از میپس V وجود ندارد، میپس ۶۴ توزیع ۱ (۱۹۹۹) بر پایه یپایهٔ آن است تمام قابلیت هایقابلیتهای آن را در یک پردازندهیپردازندهٔ کمکی ۱ اختیاری (FPU) به نام Paired-Single حفظ کرده استکردهاست.
میپس V نوع داده یدادهٔ جدیدی معرفی کرد، یگانه جفت شده (PS)، که متشکل است از دو عدد نقطه شناور دقت یگانه (۳۲ بیتی) که در رجیسترهای ۶۴ بیتی نقطه شناور موجود ذخیره شده اندشدهاند. صورت هایصورتهای دیگری از دستورهای نقطه شناور موجود برای عملیات جبری، مقایسه و انتقال شرطی اضافه شدند تا با این نوع داده به صورت SIMD کار کنند. دستورهای جدیدی برای بارگزاری، بازآرایی و تبدیل داده هایدادههای PS اضافه شد. <ref name="Sweetman1999">{{Cite book|last=Sweetman|first=Dominic|date=1999|title=See MIPS Run|publisher=Morgan Kaufmann Publishers, Inc.|isbn=1-55860-410-3}}</ref> {{Rp|426–429}} این اولین مجموعه دستور برای استفاده از SIMD نقطه شناور با منابع موجود بود. <ref name="MPR:1996-11-18">{{Cite journal|last=Gwennap|first=Linley|date=November 18, 1996|title=Digital, MIPS Add Multimedia Extensions"|url=http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/mdmx%20(mpr).pdf|dead-url=no|journal=[[Microprocessor Report]]|volume=10|issue=15|pages=24-28|archive-url=https://web.archive.org/web/20110720095552/http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/mdmx%20(mpr).pdf|archive-date=July 20, 2011}}</ref>
== میپس ۳۲/میپس۶۴ ==
هنگامی که MIPS Technologies در سال 1998۱۹۹۸ از Silicon Graphics خارج شد، باری دیگر بر بازار جاگذاری شده تمرکز کرد. تا میپس V، هر نسخه ینسخهٔ جدید فوق مجموعه از نسخه قبلی بود، اما این ویژگی مشکل ساز شد، {{مدرک|date=June 2016}} و تعریف معماری برای تعریف معماری ۳۲ بیتی و ۶۴ بیتی تغییر یافت: میپس ۳۲ و میپس ۶۴، هر دو در سال ۱۹۹۹ معرفی شدند. <ref name="mips32-and-mips64">{{Cite press release|title=MIPS Technologies, Inc. Enhances Architecture to Support Growing Need for IP Re-Use and Integration|date=May 3, 1999|publisher=[[Business Wire]]|url=http://www.thefreelibrary.com/MIPS+Technologies,+Inc.+Enhances+Architecture+to+Support+Growing+Need...-a054531136}}</ref> میپس۳۲ بر پایهیپایهٔ میپس II است همراه با برخی قابلیت هایقابلیتهای اضافه از میپس III، میپس IV و میپس V؛ میپس ۶۴ بر پایهیپایهٔ میپس V است. <ref name="mips32-and-mips64" /> [[انایسی|NEC]] و [[توشیبا|Toshiba]] و [[شرکت برودکام|SiByte]] (که بعدها به مالکیت [[برودکام|Broadcom]] درآمد) هرکدام به محض اعلام خبر میپس ۶۴ مجوزهای آن را گرفتند. از آن موقع به بعد [[فیلیپس|Philips]] و LSI Logic و IDT و .Raza Microelectronics،Microelectronics, Inc و Cavium و Loongson Technology و Semiconductor Ingenic نیز به آنها پیوستند.
=== میپس۳۲/میپس۶۴ توزیع ۱ ===
اولین توزیع میپس۳۲، بر اساس میپسII، انتقال شرطی، دستورهای زودرس و سایر ویژگیویژگیهای های خانواده هایخانوادههای R4000 و R5000 پردازندهپردازندههای های 64۶۴ بیتی را اضافه کرد. <ref name="mips32-and-mips64">{{Cite press release|title=MIPS Technologies, Inc. Enhances Architecture to Support Growing Need for IP Re-Use and Integration|date=May 3, 1999|publisher=[[Business Wire]]|url=http://www.thefreelibrary.com/MIPS+Technologies,+Inc.+Enhances+Architecture+to+Support+Growing+Need...-a054531136}}</ref> اولین اولین توزیع میپس۶۴ یک حالت میپس۳۲ برای اجرای کدهای ۳۲ بیتی اضافه کرد. <ref name="mips32-and-mips64" /> دستورهای MUL و MADD ( ضرب جمع ) که قبلاقبلاً در برخی از پیاده سازی هاپیادهسازیها در دسترس بود، به ویژگی هایویژگیهای میپس۳۲ و میپس۶۴ اضافه شد، همانطورهمانطور نیز دستورهای کنترل کش . <ref name="mips32-and-mips64" />
=== میپس۳۲/میپس۶۴ توزیع ۲ ===
=== میپس۳۲/میپس۶۴ توزیع ۳ ===
=== میپس۳۲/میپس۶۴ توزیع ۵ ===
در ۶ دسامبر 2012۲۰۱۲ اعلام شد. <ref>{{Cite press release|title=Latest Release of MIPS Architecture Includes Virtualization and SIMD Key Functionality for Enabling Next Generation of MIPS-Based Products|date=December 6, 2012|publisher=[[MIPS Technologies]]|url=http://www.mips.com/news-events/newsroom/newsindex/index.dot?id=79069|archiveurl=https://web.archive.org/web/20121213115846/http://www.mips.com/news-events/newsroom/newsindex/index.dot?id=79069|archivedate=December 13, 2012}}</ref> دلیل پرش از توزیع ۳ به ۵ آن است که عدد چهار در بسیاری از فرهنگ هایفرهنگهای آسیایی نحس تلقی میشود. <ref>{{Cite news|url=http://www.eetasia.com/ART_8800679179_480100_NT_439c939b.HTM|title=MIPS skips Release 4 amid bidding war|date=December 10, 2012|publisher=[[EE Times]]|archiveurl=https://web.archive.org/web/20161014214534/http://www.eetasia.com/ART_8800679179_480100_NT_439c939b.HTM|archivedate=October 14, 2016|deadurl=no}}</ref>
=== میپس۳۲/میپس۶۴ توزیع ۶ ===
میپس۳۲/میپس۶۴ توزیع ۶ در ۲۰۱۴ <ref>{{Cite web|url=https://imgtec.com/mips/architectures/mips32/|title=MIPS – Market-leading RISC CPU IP processor solutions|website=imgtec.com|archiveurl=https://web.archive.org/web/20160309061723/https://imgtec.com/mips/architectures/mips32/|archivedate=March 9, 2016|deadurl=no}}</ref> موارد زیر را اضافه کرد:
* یک خانواده جدید از انشعابهای بدون شکاف تأخیر:
** انشعابهای غیر شرطی (BC) و انشعاب و پیوند (BALC) با یک افست ۲۶ بیتی
* یک خانواده جدید از انشعابهای بدون شکاف تأخیر:
** انشعابهای غیرانشعاب شرطی (BC)اگر و انشعاب و پیوند (BALC)صفر/غیرصفر با یک افست ۲۶ بیتی۲۱ بیتی،
** مجموعه ای کامل از شاخههای شرطی با علامت و بدون علامت برای مقایسه بین دو رجیستر (به عنوان مثال BGTUC) یا یک رجیستر و صفر (به عنوان مثال BGTZC)،
** انشعاب شرطی اگر صفر/غیرصفر با یک افست 21 بیتی،
** مجموعه ای کامل از شاخه های شرطی با علامتانشعاب و بدونپیوند علامتکه برای مقایسه بین دویک رجیستر (بهرا عنوانبا مثالصفر مقایسه BGTUC) یا یک رجیستر و صفرمیکنند (به عنوان مثال BGTZCBGTZALC)،
* دستورهای پرش اندیس بدون شکاف تأخیر طراحی شده برای پشتیبانی از آدرسهای مطلق بزرگ.
** مجموعه ای کامل از انشعاب و پیوند که یک رجیستر را با صفر مقایسه میکنند (به عنوان مثال BGTZALC)
* دستورهایی برای بارگذاری مقادیر فوری ۱۶ بیتی در بیتهای ۱۶، ۳۲ یا ۴۸، اجازه میدهد ثابتهای بزرگ به راحتی تولید شوند.
* دستورهای پرش اندیس بدون شکاف تأخیر طراحی شده برای پشتیبانی از آدرس های مطلق بزرگ.
* دستورهای بارگزاری وابسته به PC، همچنین تولید آدرس با آفستهای (وابسته به PC) بزرگ.
* دستورهایی برای بارگذاری مقادیر فوری 16 بیتی در بیتهای ۱۶، ۳۲ یا ۴۸، اجازه می دهد ثابت های بزرگ به راحتی تولید شوند.
* دستورهای معکوس کننده بیتها و تراز کننده بایتها (پیش از این تنها با افزونهٔ DSP ممکن بود).
* دستورهای بارگزاری وابسته به PC، همچنین تولید آدرس با آفستهای (وابسته به PC) بزرگ.
* دستورهای ضرب و جمع بازتعریف شدند تا برای نتایجشان از یک رجیستر استفاده کنند.
* دستورهای معکوس کننده بیتها و تراز کننده بایت ها (پیش از این تنها با افزونهی DSP ممکن بود).
* دستورهایی که مقدار حقیقت تولید میکنند اکنون تمام صفر یا تمام یک تولید میکنند به جای تنها ست کردن یا پاک کردن بیت ۰.
* دستورهای ضرب و جمع بازتعریف شدند تا برای نتایجشان از یک رجیستر استفاده کنند.
* دستورهایی که از یک مقدار حقیقت تولیداستفاده میکنند اکنونبه تمامجای صفردر یانظر تمامگرفتن یکفقط تولیدبیت می۰ کنند به جایاکنون تنها ستتمام کردنصفرها یارا پاکبه کردنعنوان بیتغلط ۰.تفسیر میکنند.
* دستورهایی که از یک مقدار حقیقت استفاده میکنند به جای در نظر گرفتن فقط بیت ۰ اکنون تنها تمام صفرها را به عنوان غلط تفسیر میکنند.
دستورهای کم کاربرد حذف شده
* برخی انتقالهای شرطی
* دستورهای انشعاب محتمل (در نسخههای قبلی بد دانسته شده بود).
* برخی انتقالهای شرطی
* دستورهای انشعابدام محتملسرریز (دربا نسخهمقدار هایفوری قبلی بد دانسته شده بود).۱۶ بیتی
* دستورهای دامانباشت سرریزاعداد صحیح (رجیسترهای HI / LO با مقدارهم، به فوریافزونهٔ 16تخصصیDSP بیتیمنتقل شدند)
* دستورهای بارگزاری غیر تراز (LWL و LWR)، (نیازمند است اگثر بارگزاریها و ذخیرهسازیهای معمولی دسترسی بدترازشده را پشتیبانی کنند، احتمالاً از طریق به دام انداختن و افزودن یک دستور جدید(BALIGN))
* دستورهای انباشت اعداد صحیح (رجیسترهای HI / LO با هم، به افزونهی تخصصیDSP منتقل شدند)
* دستورهای بارگزاری غیر تراز (LWL و LWR)، (نیازمند است اگثر بارگزاریها و ذخیرهسازی های معمولی دسترسی بدترازشده را پشتیبانی کنند، احتمالا از طریق به دام انداختن و افزودن یک دستور جدید(BALIGN))
رمزنگاری دستورها را بازآراست، تا فضا برای توسعه در آینده باز کند.
== میکرومیپس ==
معماریهای میکرومیپس۶۴/۳۲ فوق مجموعه هایمجموعههای معماریهای میپس۳۲ و میپس۶۴ اند (به ترتیب) و برای جایگزینی افزونهیافزونهٔ تخصصی میپسe۱۶ طراحی شده اندشدهاند. یک ایراد میپسe۱۶ این است که پیش از پردازش هرکدام از دستورهای ۱۶ بیتیاش نیازمند یک تغییر حالت است. میکرومیپس از پراستفاده ترینپراستفادهترین دستورهای ۳۲بیتی نسخه هایینسخههایی دارد که به صورت دستورهای ۱۶ بیتی کدگزاری شده اندشدهاند. این امر اجازه میدهد برنامهها دستورها ۱۶ و ۳۲ بیتی را بدون نیاز به تغییر حالت مخلوط کنند. میکرومیپس به همراه میپس۶۴/۳۲ توزیع ۳ معرفی شد، و هر توزیع میپس ۶۴/۳۲ بعد از آن یک نسخه ینسخهٔ میکرومیپس۶۴/۳۲ متناطر دارد. یک پردازنده ممکن است میکرومیپس۶۴/۳۲ را پیاده سازیپیادهسازی کند یا هردو میکرومیپس ۶۴/۳۲ و زیرمجموعه میپس۶۴/۳۲ متناظر با آن را. از میپس ۶۴/۳۲ به بعد، پشتیبانی میپسe۱۶ به پایان رسید و میکرومیپس تنها فرم فشرده سازی کد در میپس است.
<br />
== افزونه هایافزونههای تخصصی ==
ممیپس۳۲ و میپس۶۴ پایه هردو میتوانند تعدادی افزونههای معماری اختیاری بپذیرند، که به آنها کلاً ''افزونههای تخصصی''(ASEs) گفته می شودمیشود. این ASE هاASEها ویژگیهایی فراهم میکنند که بازده و عملکرد را در بارهای کاری خاصی مانند [[پردازش سیگنال دیجیتال|پردازش سیگنال دیجیتال را]] بهبود می بخشدمیبخشد.
=== میپس MCU ===
عملکرد در کاربردهای مربوط به میکروکنترلرها را بهبود میبخشد. MCU ASE (افزونه تخصصی) برای بهبود بخشیدن پشتیبانی کنترل کنندهیکنندهٔ وقفه توسعه داده شده، تأثیر وقفه را کاهش میدهد و کار کنترل ورودی خروجی ثانوی که معمولاً در طراحی سیستمهای میکروکنترلر مورد نیاز است بهبود میبخشدمیبخشد.
* اولویت و تولید بردار جداگانه
* پشتیبانی از ۲۵۶ وقفه در حالت EIC (کنترل وقفه خارجی) و هشت پین وقفه سختافزاری
* اولویت و تولید بردار جداگانه
* آدرس ۱۶ بیتی آفست برداری در اختیار میگزارد
* پشتیبانی از 256 وقفه در حالت EIC (کنترل وقفه خارجی) و هشت پین وقفه سخت افزاری
* فراخوانی زودرس بردار استثنای وقفه
* آدرس ۱۶ بیتی آفست برداری در اختیار می گزارد
* مقدمهٔ وقفهٔ خودکار- سختافزاری برای ذخیره و به روزرسانی وضعیت سیستم پیش از آغاز روال رسیدگی به وقفه اضافه میکند.
* فراخوانی زودرس بردار استثنای وقفه
* مقدمهی وقفهیخاتمهٔ خودکار- سختافزاریوقفه برای- ذخیرهحالت وسیستم بهرا روزرسانیکه وضعیتقبلاً سیستمدر پیشپشته ازذخیره آغازشدهاست روالبرای رسیدگیبازگشتن بهاز وقفه اضافهبازیابی میکند.
* وقفههای زنجیره ای - از سرویس انتطار وقفه بدون نیاز به خروج از روال وقفهٔ اولیه پشتیبانی میکند، چرخههای مورد نیاز برای نگهداری و بازیابی وقفههای فعال متعدد را ذخیره میکند.
* خاتمهی خودکار وقفه - حالت سیستم را که قبلا در پشته ذخیره شده است برای بازگشتن از وقفه بازیابی میکند.
* پشتیبانی از فراخوانی زودرس آدرس بردای وقفه. تعداد چرخههای سرویس وقفه را با همپوشانی دسترسیهای حافظه و تخلیهٔ خطوط لوله و اولویت بندی استثنائات کاهش میدهد.
* وقفه های زنجیره ای - از سرویس انتطار وقفه بدون نیاز به خروج از روال وقفه ی اولیه پشتیبانی می کند، چرخههای مورد نیاز برای نگهداری و بازیابی وقفه های فعال متعدد را ذخیره میکند.
* شامل دستورهای اتمی ست/پاک است که به بیتهای داخل یک رجیستر I / O که معمولاً برای نظارت و کنترل توابع محیطی خارجی استفاده میشوند این توانایی را میدهد که بدون وقفه، تغییر داده شوند، و به این وسیله از امنیت عمل اطمینان حاصل میکند
* پشتیبانی از فراخوانی زودرس آدرس بردای وقفه. تعداد چرخه های سرویس وقفه را با همپوشانی دسترسی های حافظه و تخلیه ی خطوط لوله و اولویت بندی استثنائات کاهش می دهد.
* شامل دستورهای اتمی ست/پاک است که به بیتهای داخل یک رجیستر I / O که معمولاً برای نظارت و کنترل توابع محیطی خارجی استفاده میشوند این توانایی را می دهد که بدون وقفه، تغییر داده شوند، و به این وسیله از امنیت عمل اطمینان حاصل می کند
=== میپس۱۶ ===
میپس۱۶ یک افزونهیافزونهٔ تخصصی برای میپس I تا V است و توسط LSI Logic و MIPS Technologies طراحی و در ۲۱ اکتبر ۱۹۹۶ به همزاه اولین پیاده سازیپیادهسازی اش، پردازنده TinyRISC از شرکت LSI Logic معرفی شد. <ref>{{Cite press release|title=Silicon Graphics Introduces Compact MIPS RISC Microprocessor Code For High Performance at a Low Cost|date=October 21, 1996}}</ref> و به دنبال آن شرکتهای NEC Electronics و [[انایکسپی|Philips Semiconductors]] و [[توشیبا|Toshiba]] (و غیره) مجوز آن را خریداری کرده؛ و آن را به عنوان یک افزونه برای معماریهای میپس I، میپس II و III پیاده سازیپیادهسازی کردند. میپس ۱۶ با استفاده از دستورهای ۱۶ بیتی به جای ۳۲ بیتی اندازه یاندازهٔ برنامه را تا ۴۰٪ کاهش میدهد، همچنین بازده انرژی و سرعت کش را بهبود می بخشدمیبخشد و از نظر کارکرد معادل معماری پایه اش است. <ref>{{Cite book|last=Sweetman|first=Dominic|title=See MIPS Run|date=2007|publisher=Morgan Kaufmann Publishers|location=San Francisco, California|isbn=978-0-12-088421-6|pages=425–427|edition=2nd}}</ref> این معماری توسط ابزارهای توسعه یتوسعهٔ نرمافزاری و سخت افزاری سختافزاری شرکت MIPS Technologies و شرکتهای دیگر پشتیبانی میشود.
==== میپس e۱۶e16 ====
میپس e۱۶ نسخهینسخهٔ بهبود یافتهییافتهٔ میپس۱۶ است و در آغاز توسط میپس۳۲ و میپس۶۴ توزیع ۱ پشتیبانی میشد
==== میپس۲e۱۶میپس۲e16 ====
میپس۲e۱۶ نسخهای بهبود یافته از میپس۱۶ است کهتوسط میپس۳۲ و میپس۶۴ پشتیبانی میشود (تا توزیع ۵). توزیع ۶ آن را با میکرومیپس جایگذین کرد.
=== میپس DSP ===
افزونه یافزونهٔ تخصصی DSP یک افزونهیافزونهٔ اختیاری برای میپس۳۲/میپس۶۴ توزیع ۲ و مجموعه دستورهای جدیدتر است و میتواند برای شتاب بخشیدن به گسترهیگسترهٔ وسیعی از محاسبات «رسانهای»، مشخصاً صدا و تصویر، به کار رود. ماژول DSP شامل یک مجموعه دستور و وضعیت خط لولهیلولهٔ اعداد صحیح است و نیاز به منطق اضافهیاضافهٔ حداقلی برای پیادهسازی در هستههای پردازندهیپردازندهٔ میپس دارد. ویرایش ۲ این ASEدر نیمهینیمهٔ دوم ۲۰۰۶ معرفی شد. این ویرایش دسترهای جدیدی به ASE اصلی اضافه میکند، اما از هر نظر دیگر با آن سازگار بازگشتی است.<ref>{{Cite web|url=https://gcc.gnu.org/onlinedocs/gcc/MIPS-DSP-Built-in-Functions.html|title=Using the GNU Compiler Collection (GCC): MIPS DSP Built-in Functions|website=gcc.gnu.org|archiveurl=https://web.archive.org/web/20170420143138/https://gcc.gnu.org/onlinedocs/gcc/MIPS-DSP-Built-in-Functions.html|archivedate=April 20, 2017|deadurl=no}}</ref>
برخلاف اکثر معماریهای میپس، این معماری نسبتاً میجموعهای غیرعادی از عملیات است، که بسیاری از آنها به خاطر ازتباطشان با برحی الگوریتم هایالگوریتمهای کلیدی انتخاب شده اندشدهاند.
ویژگی هایویژگیهای اصلی جدید آن (در قیاس با میپس۳۲ اصلی): <ref>{{Cite web|url=https://www.linux-mips.org/wiki/Instruction_Set_Architecture#DSP_ASE|title=Instruction Set Architecture - LinuxMIPS|website=www.linux-mips.org|archiveurl=https://web.archive.org/web/20170420045837/https://www.linux-mips.org/wiki/Instruction_Set_Architecture#DSP_ASE|archivedate=April 20, 2017|deadurl=no}}</ref>
* محاسبه دقیق (زمانی که یک محاسبه سرریز میشود، نزدیکترین عدد به پاسخ بدون سرریز را ارئه میدهد).
* محاسبات نقطه ثابت بر روی کسرهای نقطه ثابت علامتدار ۳۲ و ۱۶ بیتی با دامنهٔ -۱ تا ۱ (اینها معمولاُ با نامهای «Q31» و «Q15» شناخته میشوند).
* دستورهای ضرب و ضرب-انباشت اعداد صحیح موجود، که حاصل را به یک انباشتگر هماندازهٔ یک نقطه شناور دقت دوگانه (در CPUهای میپس۳۲ «hi/lo» و ۶۴ بیت نامیده میشود) منتقل میکند. افزونهٔ تخصصی DSP سه انباشتگر دیگر و چند صورت دیگر ضرب-انباشت اضافه میکند.
* دستورهای [[یک دستور چند داده|SIMD]] بر روی ۴ بایت بدون علامت یا ۲ مقدار ۱۶ بیتی که در یک رجیستر ۳۲ بیتی ذخیره شدهاند عمل میکنند (نسخهٔ ۶۴ بیتی اوزونه تخصصی DSP بردارهای بزرگتر را نیز پشتیبانی میکند).
* عملیات SIMD عبارتند از عملیات جبری ابتدایی، شیفتها و برخی عملیات از نوع ضرب-انباشت.
برای استفاده از افزونهٔ تخصصی میپس DSP، میتوان:
* محاسبه دقیق (زمانی که یک محاسبه سرریز می شود، نزدیک ترین عدد به پاسخ بدون سرریز را ارئه میدهد).
* دستی در زبان اسمبلی کد زد، که وقتگیرترین روش استفاده از افزونهٔ تخصصی میپس DSP است، اما میتواند کدی با بهترین عملکرد نتیجه بدهد.
* محاسبات نقطه ثابت بر روی کسرهای نقطه ثابت علامتدار ۳۲ و ۱۶ بیتی با دامنهی -۱ تا ۱ (اینها معمولاُ با نامهای «Q31» و «Q15» شناخته می شوند).
* از ماکروهای asm پشتیبانی شده توسط GCC استفاده کرد که دستورهای DSP را مستقیماً از کد C تولید میکنند.
* دستورهای ضرب و ضرب-انباشت اعداد صحیح موجود، که حاصل را به یک انباشتگر هماندازهی یک نقطه شناور دقت دوگانه (در CPU های میپس۳۲ «hi/lo» و ۶۴ بیت نامیده میشود) منتقل میکند. افزونهی تخصصی DSP سه انباشتگر دیگر و چند صورت دیگر ضرب-انباشت اضافه میکند.
* از توابع درونی (انگلیسی: intrinsics) پشتیبانی شده توسط GCC برای افزونهٔ تخصصی میپس DSP استفاده کرد.
* دستورهای [[یک دستور چند داده|SIMD]] بر روی ۴ بایت بدون علامت یا ۲ مقدار ۱۶ بیتی که در یک رجیستر ۳۲ بیتی ذخیره شدهاند عمل میکنند (نسخهی ۶۴ بیتی اوزونه تخصصی DSP بردارهای بزرگتر را نیز پشتیبانی میکند).
* از انواع داده و عملگرهای نقطهثابت در C که از آنها GCC پشتیبانی میکند استفاده کرد. افزونهٔ تخصصی میپس DSP تنها معماری پردازندهایست که از انواع دادهٔ نقطه ثابت در یک پردازندهٔ عمومی پشتیبانی میکند.
* عملیات SIMD عبارتند از عملیات جبری ابتدایی، شیفتها و برخی عملیات از نوع ضرب-انباشت.
* از طریق گزینه بهینهساز <code>ftree-vectorize-</code> از برداری سازی خودکار پشتیبانی شده توسط GCC استفاده کرد. برتری برداری سازی خودکار در این است که کامپایلر میتواند متغیرهای نردهای (که میتوانند از نوع عدد صحیح، نقطه ثابت یا نقطه شناور باشند) را برای استفاده خودکار از دستورهای SIMD شناسایی کند. در حالت آرمانی، هنگام استفاده از برداری سازی خودکار، دیگر نیازی نیست صریحاً از متغیرهای SIMD استفاده شود.<ref>{{Cite web|url=http://cdn.imgtec.com/mips-documentation/login-required/five_methods_of_utilizing_the_mips_dsp_ase.pdf|title=Five Methods of Utilizing the MIPS® DSP ASE|publisher=|archiveurl=https://web.archive.org/web/20161230010209/http://cdn.imgtec.com/mips-documentation/login-required/five_methods_of_utilizing_the_mips_dsp_ase.pdf|archivedate=December 30, 2016|deadurl=no}}</ref>
از تاریخ ۳۱ مه ۲۰۰۵ [[لینوکس]] 2.6.12-rc5 پشتیبانی از افزونهٔ تخصصی DSP را اضافه کرد. دقت شود برای آن که بتوان واقعاً از افزونهٔ تخصصی DSP استفاده کرد یک [[زنجیره ابزار]] که از این افزونه پشتیبانی میکند مورد نیاز است. GCC از قبل از DSP و DSPr2 پشتیبانی میکند.
برای استفاده از افزونه ی تخصصی میپس DSP، میتوان:
* دستی در زبان اسمبلی کد زد، که وقتگیرترین روش استفاده از افزونهی تخصصی میپس DSP است، اما می تواند کدی با بهترین عملکرد نتیجه بدهد.
* از ماکروهای asm پشتیبانی شده توسط GCC استفاده کرد که دستورهای DSP را مستقیماً از کد C تولید میکنند.
* از توابع درونی (انگلیسی: intrinsics) پشتیبانی شده توسط GCC برای افزونهی تخصصی میپس DSP استفاده کرد.
* از انواع داده و عملگرهای نقطهثابت در C که از آنها GCC پشتیبانی میکند استفاده کرد. افزونهی تخصصی میپس DSP تنها معماری پردازندهایست که از انواع دادهی نقطه ثابت در یک پردازندهی عمومی پشتیبانی میکند.
* از طریق گزینه بهینه ساز <code>ftree-vectorize-</code> از برداری سازی خودکار پشتیبانی شده توسط GCC استفاده کرد. برتری برداری سازی خودکار در این است که کامپایلر میتواند متغیرهای نردهای (که می توانند از نوع عدد صحیح، نقطه ثابت یا نقطه شناور باشند) را برای استفاده خودکار از دستورهای SIMD شناسایی کند. در حالت آرمانی، هنگام استفاده از برداری سازی خودکار، دیگر نیازی نیست صریحاً از متغیرهای SIMD استفاده شود.<ref>{{Cite web|url=http://cdn.imgtec.com/mips-documentation/login-required/five_methods_of_utilizing_the_mips_dsp_ase.pdf|title=Five Methods of Utilizing the MIPS® DSP ASE|publisher=|archiveurl=https://web.archive.org/web/20161230010209/http://cdn.imgtec.com/mips-documentation/login-required/five_methods_of_utilizing_the_mips_dsp_ase.pdf|archivedate=December 30, 2016|deadurl=no}}</ref>
از تاریخ ۳۱ مه ۲۰۰۵ [[لینوکس]] 2.6.12-rc5 پشتیبانی از افزونهی تخصصی DSP را اضافه کرد. دقت شود برای آن که بتوان واقعاً از افزونهی تخصصی DSP استفاده کرد یک [[زنجیره ابزار]] که از این افزونه پشتیبانی میکند مورد نیاز است. GCC از قبل از DSP و DSPr2 پشتیبانی میکند.
=== معماری میپس SIMD ===
افزونههایی از مجموعه دستورهایی که برای شتاب بخشیدن به محاسبات چندرسانهای طراحی شدهاند.
* ۳۲ رجیستر برداری متشکل از ۱۶ عنصر برداری ۸ بیتی، ۸ عنصر برداری ۱۶ بیتی، ۴ عنصر برداری ۳۲ بیتی و ۲ عنصر برداری ۶۴ بیتی
* عملیات جبری موازی برداری بهینه برروی دادههای صحیح، نقطه ثابت و نقطه شناور
* عملیات برروی عملوندهای مقدار مطلق
* گزینههای گرد کردن و اشباع موجود است
* ضرب و ضرب-جمع دقت کامل
* تبدیل بین دادههای صحیح، نقطه شناور و نقطه ثابت
* مجموعهٔ کامل دستورهای مقایسه و انشعاب در سطح بردار بدون هیچ پرچم شرطی
* عملیات بهم آمیختن بردار (یک بعدی) و آرایه (دو بعدی)
* دستورهای بارگزاری و ذخیرهسازی نوع بندی شده برای عملیات مستق از [[اندیان]]
* منطبق بر استاندارد IEEE 754-2008 برای عملیات جبری نقطه شناور
* پرتاب استثنای نقطه شناور عنصر دقیق
* افزونههای نرده ای شوندهٔ ازپیش تعیین شده برای تراشههایی با تعداد دروازه/ترانزیستور بالاتر
* سرعت دادن به کاربردهای دارای حجم محاسبات بالا در ارتباط با بهرهبرداری از پشتیبانی عمومی کامپایلر
* راه حل قابل برنامهریزی نرمافزاری برای کربردهای الکترونیکی مصرفی یا توابعی که توسط سختافزار اختصاصی پوشش داده نشدهاند.
* کاربردهای درحال ظهور در [[دادهکاوی]]، [[استخراج ویژگی]]، پردازش عکس و فیلم، و ارتباط انسان و کامپیوتر
* محاسبات علمی با کارایی بالا
=== [[مجازیسازی|مجازی سازی]] میپس ===
* ۳۲ رجیستر برداری متشکل از ۱۶ عنصر برداری ۸ بیتی، ۸ عنصر برداری ۱۶ بیتی، ۴ عنصر برداری ۳۲ بیتی و ۲ عنصر برداری ۶۴ بیتی
* عملیات جبری موازی برداری بهینه برروی دادههای صحیح، نقطه ثابت و نقطه شناور
* عملیات برروی عملوندهای مقدار مطلق
* گزینه های گرد کردن و اشباع موجود است
* ضرب و ضرب-جمع دقت کامل
* تبدیل بین دادههای صحیح، نقطه شناور و نقطه ثابت
* مجموعهی کامل دستورهای مقایسه و انشعاب در سطح بردار بدون هیچ پرچم شرطی
* عملیات بهم آمیختن بردار (یک بعدی) و آرایه (دو بعدی)
* دستورهای بارگزاری و ذخیره سازی نوع بندی شده برای عملیات مستق از [[اندیان]]
* منطبق بر استاندارد IEEE 754-2008 برای عملیات جبری نقطه شناور
* پرتاب استثنای نقطه شناور عنصر دقیق
* افزونه های نرده ای شوندهی ازپیش تعیین شده برای تراشه هایی با تعداد دروازه/ترانزیستور بالاتر
* سرعت دادن به کاربردهای دارای حجم محاسبات بالا در ارتباط با بهرهبرداری از پشتیبانی عمومی کامپایلر
* راه حل قابل برنامه ریزی نرمافزاری برای کربردهای الکترونیکی مصرفی یا توابعی که توسط سختافزار اختصاصی پوشش داده نشدهاند.
* کاربردهای درحال ظهور در [[دادهکاوی]]، [[استخراج ویژگی]]، پردازش عکس و فیلم، و ارتباط انسان و کامپیوتر
* محاسبات علمی با کارایی بالا
=== [[مجازیسازی|مجازی سازی]] میپس ===
فن آوری مجازی سازی پشتیبانی شده توسط سختافزار
=== [[چندریسمانی]] میپس ===
هر هستهیهستهٔ چندریسمانی میپس میتواند تا دو VPE (عنصر پردازش مجازی) را پشتیبانی کند. این VPE هاVPEها یک [[خط لوله]] و همچنین منابع سختافزاری دیگر را بین خود تقسیم میکنند. با این حال، از آنجا که هر VPE حاوی یک کپی کامل از وضعیت پردازنده از دید سیستم نرمافزاری است، یک سیستمسیستم عامل [[لینوکس]] [[چندپردازی متقارن|SMP]] هر VPE را به عنوان یک پردازنده یپردازندهٔ مستقل میبیند. برای کاربردهای پردازش ریسمان ریزبخشتر، هر VPE میتواند تا نه TC اختصاص یافته میان دو VPE را پشتیبانی کند. TC هاTCها میتوانند از یک واحد اجرای مشترک استفاده کنند اما هرکدام شمارندهیشمارندهٔ برنامه و فایل رجیستر هسته یهستهٔ خودشان را دارند تا هرکدام بتواند به یک ریسمان از نرمافزار رسیدگی کند. معماری میپس MT امکان اختصاص چرخههای پردازنده به ریسمانها را فراهم میکند و اولویت ریسمانهای مربوطه را با بلوک مدیریت [[کیفیت خدمات]] ([[کیفیت خدمات|QoS]]) اختیاری تنظیم میکند. این مسألهمسئله دو سازوکار اولویتاولویت بندی برای تعیین جریان اطلاعات در [[گذرگاه (رایانه)|گذرگاه]] در اختیار میگزارد. اولین سازوکار به کاربر امکان اولویت دادن یک ریسمان نسبت به دیگری را میدهد. دومین سازوکار برای اختصاص دادن کسر خاصی از چرخه هاچرخهها به یک ریسمان خاص استفاده میشود. ادغام کاربرد هردو سازوکار اجازه میدهد تا پهنای باند را به طوربهطور بهینه به مجموعهای از ریسمانها اختصاص داد ،داد، و کنترل بهتری برروی تأخیرها داشت. در سیستم هایسیستمهای [[بی درنگ]]، جبرگرایی در سطح سیستم اهمیت بسیار بالایی دارد، و بلوک QoS افزایش قابلیت پیشبینی رفتار سیستم را تسهیل میکند. طراحان سختافزار سیستمهای پیشرفته میتوانند به جای بلوک استاندارد QoS شرکت MIPS Technologies از بلوکی که مشخصاً بر کاربرد آنها منطبق شده استشدهاست استفاده کنند.
امروزه ریزپردازندههای تک ریسمانی هنگام انتظار برای دسترسی به حافظه چرخه هایچرخههای بسیاری را تلف میکنند، و در نتیجه کارکرد سیستم را به میزان قابل ملاحظه ایای کاهش می دهندمیدهند.{{مشکوک}} استفاده از چندریسمانی اثر تأخیر حافظه را با افزاشیش استفاده از پردازنده می پوشاندمیپوشاند. هنگامی که یک ریسمان متوقف میشود، ریسمانهای دیگر فوراً به [[خط لوله (رایانش)|خط لوله]] داده داده و اجرا میشوند، و نتیجهینتیجهٔ آن افزایش قابل توجه عملکرد در تمام برنامه است. کاربر میتواند مقدار مشخصی از پهنای باند را به کارهای [[بیدرنگ|بیبی درنگ]] و در نتیجه یک کیفیت خدمات (QoS) تضمین شده به دست بیاورد. فنآوری MT میپس داعم بر پیشرفت ریسمانها نظارت میکند و به صورت پویا اصلاحات لازم را انجام میدهد تا الزامات [[بیدرنگ|بی درنگ]] را برآورده کند یا از آنها فراتر رود. یک خط لولهیلولهٔ پردازنده در هنگام توفق هایتوفقهای وابسته یا از دست رفتن کش می تواندمیتواند با تعویض ریسمانها به ۸۰ تا ۹۰ درصد بهرهبرداری برسد. نتیجه ی همهنتیجهٔ یهمهٔ اینها افزایش قابل توجه قابلیت پاسخ گویی و در نتیجه بهبود تجربهیتجربهٔ کاربری یک وسیلهیوسیلهٔ همراه است.{{مشکوک}}
=== میپس هوشمند ===
میپس هوشمند یک افزونهیافزونهٔ تخصصی (ASE) طراحی شده توسط Gemplus International و MIPS Technologies است. این افزونه عملکرد نرم افزارهاینرمافزارهای [[کارت هوشمند]] را بهبود میبخشدمیبخشد و مصرف حافظهیحافظهٔ آنها را کاهش میدهد. میپس هوشمند از آنجا که کارتهای هوشمند نیاز به تواناییهای پردازندههای میپس۶۴ ندارند، تنها توسط میپس۳۲ پشتیبانی میشود. تعداد کمی از کارتهای هوشمند از میپس هوشمند استفاده میکنند.
=== MDMX ===
=== میپس سه بعدی ===
== شبیهسازها ==
پلتفورمهای مجازی باز (OVP) <ref>{{Cite web|url=http://www.OVPworldovpworld.org|title=OVP: Fast Simulation, Free Open Source Models. Virtual Platforms for software development|accessdate=May 30, 2012|publisher=Ovpworld.org|archiveurl=https://web.archive.org/web/20120608022021/http://www.ovpworld.org/|archivedate=June 8, 2012|deadurl=no}}</ref> شامل شبیهساز غیرتجاری آزادانه در دسترس OVPsim، یک کتابخانه از مدلهای پردازنده ها،پردازندهها، لوازم جانبی و پلتفورمها، و API هاییAPIهایی که به کاربر امکان توسعه یتوسعهٔ مدلهای خود را میدهد،میدهد، می شوندمیشوند. مدلهای موجود در کتابخانه متن بازاند، به زبان C نوشته شدهاند، شامل هسته هایهستههای ۳۲ بیتی میپس 4K و 24K و 34K و 74K و 1004K و 1074K و M14K و microAptiv و interAptiv و proAptiv و سری هسته هایهستههای میپس ۶۴ بیت 5K می شوندمیشوند. Imperas این مدلها را تولید کرده و نگهداری میکند <ref>{{Cite web|url=http://www.imperas.com|title=Imperas|date=March 3, 2008|accessdate=May 30, 2012|publisher=Imperas|archiveurl=https://web.archive.org/web/20120614212338/http://www.imperas.com/|archivedate=June 14, 2012|deadurl=no}}</ref> و به همراه MIPS Technologies آنها تست شدهاند و علامت MIPS-Verified (tm) دریافت کردند. برخی پلتفورمپلتفورمهای های نمونهینمونهٔ بر پایه میپس دارای هردو محیط فلزی ساده و پلتفورم هاییپلتفورمهایی برای [[راه اندازی]] ایمیجهای باینری دستکاری نشدهینشدهٔ [[لینوکس]] هستند. این [[برابرساز|برابرسازهای]]های پلتفورم هم به صورت سورس و هم باینری در دسترس هستند و سریع، مجانی و غیرتجاری اند و استفاده از آنها آسان است. OVPsim توسط Imperas توسعه یافته و نگهداری میشود. بسیار سریع است (صدها میلیون دستور در ثانیه) و برای رسیدگی به معماریها و سیستمهای چندهسته ای همگن و غیرهمگن ساخته شده استشدهاست.
یک شبیه سازشبیهساز مجانی میپس۳۲ (نسخههای قبلی تنها R2000/R3000 را شبیهسازی میکردند) برای استفادههای آموزشی به نام SPIM در دسترس است. EduMIPS64 <ref>{{Cite web|url=http://www.edumips.org|title=EduMIPS64|accessdate=May 30, 2012|publisher=Edumips.org|archiveurl=https://web.archive.org/web/20120507013250/http://www.edumips.org/|archivedate=May 7, 2012|deadurl=no}}</ref> یک شبیه سازشبیهساز CPU میپس بین پلتفرمی گرافیکی GPL است که به زبان [[Java/Swing]] نوشته شده استشدهاست. این شبیه سازشبیهساز از زیرمجموعهیزیرمجموعهٔ گستردهای از میپس۶۴ ISA پشتیبانی میکند و به کاربر امکان میدهدمیدهد که بتواند به صورت گرافیکی ببیند هنگامی که یک برنامه یبرنامهٔ [[اسمبلی]] توسط CPU اجرا میشود در [[خط لوله (رایانش)|خطخط لوله]] چه اتفاقی می افتدمیافتد.
MARS <ref>{{Cite web|url=http://courses.missouristate.edu/KenVollmar/MARS/|title=MARS MIPS simulator - Missouri State University|accessdate=May 30, 2012|publisher=Courses.missouristate.edu|archiveurl=https://web.archive.org/web/20120502195025/http://courses.missouristate.edu/KenVollmar/MARS/|archivedate=May 2, 2012|deadurl=no}}</ref> [[برابرساز]] میپس بر پایه یپایهٔ [[رابط کاربر گرافیکی]] دیگری است که برای استفاده در آموزش ،آموزش، مشخصاً برای استفاده با Computer Organization and Design هنسی، طراحی شده استشدهاست.
WebMIPS <ref>{{Cite web|url=http://www.maiconsoft.com.br/webmips/index.asp|title=WebMIPS - MIPS CPU PIPLINED SIMULATION On Line|accessdate=January 13, 2012|archiveurl=https://archive.is/20121231212131/http://www.maiconsoft.com.br/webmips/index.asp|archivedate=December 31, 2012|deadurl=yes}} (online demonstration) {{Cite web|url=http://www.dii.unisi.it/~giorgi/WEBMIPS/|title=Archived copy|accessdate=January 13, 2012|archiveurl=https://web.archive.org/web/20111010100936/http://www.dii.unisi.it/~giorgi/WEBMIPS/|archivedate=October 10, 2011|deadurl=no}} (source)</ref> یک شبیه سازشبیهساز میپس مبتنی بر مرورگر همراه با ارائهیارائهٔ تصویری یک پردازنده یپردازندهٔ خط لوله ای معمولی است. این شبیه سازشبیهساز برای ردگیری رجیستر هارجیسترها هنگام اجرای گامبهگام بسیار مفید است.
[[برابرساز]] آزاد پیشرفته تری در GXemul (که قبلاقبلاً به عنوان پروژه mips64emul شناخته میشد) و پروژه هایپروژههای [[کیوییامیو|QEMU]] در دسترساند. اینها ریزپردازندههای میپس III و میپس IV مختلف را افزون بر تمام سیستمهای کامپیوتری ای که از آنها استفاده میکنند، شبیهسازی میکنند.
شبیهسازهای تجاری به ویژه برای استفادهیاستفادهٔ جاگذاری شدهیشدهٔ میپس موجود هستند، به عنوان مثال Wind RiverSimics (میپس 4Kc و 5Kc همچنین PMC RM9000 و QED RM7000 و Broadcom/Netlogic ec44000 وCavium Octeon I) و Imperas (تمام هستههای میپس۳۲ و میپس۶۴) VaST Systems (پردازندههای R3000 و R4000) و CoWare (میپس 4KE، میپس 24K، میپس 25Kf، و میپس 34K).
WepSIM <ref>{{Cite web|url=https://wepsim.github.io/wepsim/|title=WepSim|accessdate=April 27, 2018|id=(Web version with examples)|archiveurl=https://web.archive.org/web/20171001030848/https://wepsim.github.io/wepsim/|archivedate=October 1, 2017|deadurl=no}} {{Cite web|url=https://github.com/wepsim/wepsim|title=WepSim|accessdate=April 27, 2018|id=(GitHub site with source)|archiveurl=https://web.archive.org/web/20180103211610/https://github.com/wepsim/wepsim|archivedate=January 3, 2018|deadurl=no}}</ref> یک شبیهساز مبتنی بر مرورگر است که یک زیرمجموعه از دستورهای میپس در آن ریز برنامهریزی شده استشدهاست. این شبیهساز در یادگیری چگونگی عملکرد یک CPU مفید است (روتین هایروتینهای میپس، دامها، توقفها، فراخوانیهای سیستمی و غیره ریز برنامهریزی شده اندشدهاند)
== جستارهای وابسته ==
== همچنین ببینید ==
* DLX، معماری ای بسیار مشابه طراحی شده توسط [[جان هنسی|جان ل. هنسی]] (معمار میپس) برای آموزشی
* لیست پردازندههای معماری میپس
* DLX ، معماری ای بسیار مشابه طراحی شده توسط [[جان هنسی|جان ل. هنسی]] (معمار میپس) برای آموزشی
* لیست پردازنده هایپردازندههای معماری میپس
<references group="" />
* پردازنده های معماری میپس
<references group=""></references>
== مطالعه بیشتر ==
== برای مطالعهٔ بیشتر ==
* {{Cite book|first=Erin|last=Farquhar|last2=Philip Bunce|title=MIPS Programmer's Handbook|publisher=Morgan Kaufmann Publishers|isbn=1-55860-297-6}}
* {{Cite book|first=David A|last=Patterson|authorlink=David A. Patterson (scientist)|last2=[[John L. Hennessy]]|title=Computer Organization and Design: The Hardware/Software Interface|publisher=[[Morgan Kaufmann Publishers]]|isbn=1-55860-604-1}}
* {{Cite book|first=Dominic|last=Sweetman|title=See MIPS Run, 2nd edition|publisher=Morgan Kaufmann Publishers|isbn=0-12-088421-6}}
== پیوند به بیرون ==
== پیوندهای خارجی ==
* [https://www.mips.com/products/ MIPS Processors]
* [https://prplfoundation.org/ prpl Foundation] (a non-profit foundation founded by Imagination Technologies to support the MIPS platform)
* [https://web.archive.org/web/20110111031634/http://meld.org/library/education/mips-architectures MIPS Architecture history diagram]
* [https://rivoire.cs.sonoma.edu/cs351/wemips/ Online MIPS emulator]
|