Movatterモバイル変換


[0]ホーム

URL:


پرش به محتوا
ویکی‌پدیادانشنامهٔ آزاد
جستجو

معماری میپس

از ویکی‌پدیا، دانشنامهٔ آزاد
میپس
طراحMIPS Technologies, Imagination Technologies
بیت‌ها۶۴ بیت (۳۲ به ۶۴)
تاریخ معرفی۱۹۸۵
نسخهمیپس ۳۲/۶۴ توزیع ۴ (۲۰۱۴)
طرحمعماری ریسک
گونهرجیستر - رجیستر
کدگذاریثابت
شاخه‌بندیثبات شرطی
اندیاندوگانه
اندازه صفحه۴ کیلوبایت
افزونه‌هاMDMX, MIPS-3D
آزاد بودنبله و بدون بهره مالکیت
ثبّات‌ها
هدف اصلی۳۲
ممیز شناور۳۲

میپس (MIPS) یک خانوادهٔ ریزپردازنده است که نام آن کوتاه‌شدهٔ عبارت «Microprocessor without Interlocked Pipelined Stages» به معنای «ریزپردازنده بدون قفل‌های خطوط لوله» می‌باشد. هدف از این طراحی، ساده‌سازی و سریع‌تر کردن اجرای دستورها درپردازنده است.

در معماری میپس، دستورهای برنامه به چند مرحلهٔ پشت‌سرهم تقسیم می‌شوند؛ مراحلی مانند آوردن دستور از حافظه، تفسیر دستور، انجام محاسبه، دسترسی به حافظه و نوشتن نتیجه. این مراحل به‌صورت خط لوله‌ای (pipeline) انجام می‌شوند، شبیه یکخط تولید که هر بخش آن وظیفه‌ای مشخص دارد. به این ترتیب، چند دستور می‌توانند هم‌زمان در مراحل مختلف خط لوله پیش بروند و پردازنده کارایی بیشتری پیدا می‌کند.

برخلاف برخی معماری‌ها که سخت‌افزار باید برای جلوگیری از تداخل میان دستورها مکث کند یا سرعت را کاهش دهد، در میپس پیچیدگی سخت‌افزار کمتر شده است. مسئولیت هماهنگ‌سازی بیشتر بر عهدهٔ نرم‌افزار و به‌ویژه کامپایلر قرار می‌گیرد. به همین دلیل این معماری به‌طور دقیق و ساده طراحی شده و اجرای دستورها قابل پیش‌بینی است.

میپس در ردهٔ معماری‌هایرایانۀ کم‌دستور قرار می‌گیرد. در این نوع معماری، دستورها ساده، کم‌تعداد و تقریباً هم‌اندازه هستند. بیشتر عملیات نیز در رجیسترها انجام می‌شود که از نظر سرعت بسیار سریع‌تر از حافظهٔ اصلی‌اند. این ویژگی‌ها سبب می‌شوند میپس برای دستگاه‌هایی با نیاز به مصرف کم‌انرژی، سرعت بالا و هزینهٔ ساخت پایین مناسب باشد.

این معماری در طیف گسترده‌ای از ابزارها به کار رفته است؛ از دستگاه‌های شبکه مانند روترها و مودم‌ها گرفته تا برخی کنسول‌های بازی وسامانه‌های توکار. به‌طور خلاصه، میپس نمونه‌ای از معماری پردازنده است که با ساده‌سازی و کاهش پیچیدگی سخت‌افزاری، اجرای کارآمد دستورها را ممکن می‌سازد.

بررسی کلی

[ویرایش]

میپس[۱] (به انگلیسی: MIPS مخففMicroprocessor without InterlockedPipelined Stages)[۲] یکمعماری مجموعه دستورالعمل (ISA) برایرایانه‌های کم‌دستور (RISC)[۳]:A-1[۴]:19 است که توسط MIPS Technologies (MIPS Computer Systems سابق) توسعه یافته‌است. معماری اولیه میپس ۳۲ بیتی بود، و نسخه‌های ۶۴ بیتی بعداً به آن اضافه شد. نسخه‌های متعددی از میپس وجود دارد از جمله: میپس IV ,III ,II, I و V؛ و همچنین پنج توریع میپس ۶۴/۳۲ (به ترتیب برای پیاده‌سازی ۳۲ و ۶۴ بیتی). از آوریل ۲۰۱۷، آخرین نسخه میپس ۶۴/۳۲ توزیع ۶ است.[۵][۶] تفاوت اساسی بین میپس ۶۴/۳۲ و میپس V-I تعریف پردازنده کمکی برای کنترل سیستم در حالت کرنل دارای حق ویژه علاوه بر معماری حالت کاربر است.

چندین افزونه اختیاری نیز موجود است، از جمله میپس سه بعدی که مجموعه ای ساده ازدستورتممیز شناورچند داده است که به وظایف سه بعدی معمول اختصاص دارد،[۷]MDMX (یا MadMaX) که یک مجموعهٔ جامع ترچند داده برایاعداد صحیح است و از رجیسترهای ممیز شناور ۶۴ استفاده می‌کند، MIPS16e است که فشرده سازی را به جریان دستورها اضافه می‌کند تا برنامه‌ها از فضای کمتری را اشغال کنند،[۸] و میپس MT، که قابلیتچندریسمانی را اضافه می‌کند.[۹]

اغلب دوره‌هایمعماری کامپیوتر در دانشگاه‌ها و مدارس فنی معماری میپس را مطالعه می‌کنند.[۱۰] معماری‌های ریسک جدید تر مانندآلفا تا حد زیادی از این معماری تأثیر پذیرفته‌اند.

از آوریل ۲۰۱۷، پردازنده‌های میپس درسامانه‌های نهفته مانند دروازه‌های محلی وروترها استفاده می‌شود. در آغاز، میپس برای محاسبات عمومی طراحی شده بود. در دهه‌های ۱۹۸۰ و ۱۹۹۰، شرکت‌های بسیاری مانندDigital Equipment Corporation , MIPS Computer Systems،NEC , Pyramid Technology , SiCortex , Siemens Nixdorf , Silicon Graphics و Tandem Computers از پردازنده‌های میپس برایکامپیوترهای شخصی،ایستگاه‌های کار وکامپیوترهای سرور استفاده می‌کردند. در طول تاریخ،کنسول‌های بازی مانندنینتندو ۶۴ ،پلی استیشن،پلی استیشن ۲ وپلی استیشن همراه از پردازنده‌های میپس استفاده می‌کردند. همچنین در دهه ۱۹۹۰ پردازنده‌های میپس محبوبیت زیادی درابر رایانه‌ها داشتند، اما تمام این سیستم‌ها از فهرست TOP500 (پانصد ابررایانه برتر) حذف شده‌اند. این استفاده‌ها در ابتدا توسط کاربردهای جاسازی شده جا افتاد، اما در دهه ۱۹۹۰، میپس بخش بزرگی از بازار پردازنده‌های جاسازی شده را به خود اختصاص داده بود، و در دههٔ ۲۰۰۰، اکثر پردازنده‌های میپس در این زمینه به کار می‌رفتند. در اواسط تا اواخر دهه ۱۹۹۰ تخمین زده شد که یک در هر سهریزپردازنده ریسک تولید شده یک پردازنده میپس بوده.[۱۱]

میپس یک معماری مدولار است که تا چهار پردازنده کمکی را پشتیبانی می‌کند(CP۰/۱/۲/۳). در اصطلاح میپس، CP۰ پردازندهٔ کمکی کنترل سیستم است (بخشی حیاتی از پردازنده است که در میپس V-I در پیاده‌سازی تعریف شده‌است)، CP۱ یک واحد اختیاریممیز شناور (FPU) است و CP۲ / ۳ پردازنده‌های کمکی اختیاری اند که در پیاده‌سازی تعریف می‌شوند. (میپس CP3 III را حذف کرد و آپ کد ان را برای امور دیگر استفاده کرد). به عنوان مثال، درکنسول بازیپلی استیشن، CP۲ موتور تبدیل هندسی (GTE) است که پردازش هندسه را در گرافیک کامپیوتری سه بعدی تسهیل می‌کند.

در دسامبر ۲۰۱۸، Wave Computing، صاحب جدید[۱۲] معماری میپس (رجوع شود به MIPS Technologies)، اعلام کرد که میپس ISA در برنامه ای که MIPS Open initiative نامیده می‌شود، متن باز می‌شود. هدف برنامه ای که برای سال ۲۰۱۹ برنامه‌ریزی شده‌است، این است کهدسترسی آزاد به اکثر نسخه‌های اخیر طراحی‌های ۳۲ بیتی و ۶۴ بیتی را بدون نیاز به هیچ گونه مجوز یا هزینه حق امتیاز فراهم کند و همچنین مجوز استفاده از اختراع‌های ثبت شدهٔ میپس موجود را در اختیار به شرکت کنندگان قرار دهد.[۱۳][۱۴][۱۵]

میپس I

[ویرایش]

اولین نسخه معماری میپس توسط MIPS Computer Systems برای ریزپردازنده R2000، اولین پیاده‌سازی میپس، طراحی شد. میپس و R2000 با هم در سال ۱۹۸۵ معرفی شدند.[نیازمند منبع] هنگامی که میپس II معرفی شد،میپس بهمیپس I تغییر نام داد تا از نسخه جدید متمایز شود.[۴]:32

MIPS یک معماری بارگذاری / ذخیره‌سازی (نام دیگر آن رجیستر رجیستر) است؛ به جز دستورهای بارگذاری / ذخیره‌سازی استفاده شده برای دسترسی بهحافظه، تمام دستورها در رجیسترها عمل می‌کنند.

رجیسترها

[ویرایش]

میپس I دارای سی و دو رجیستر ۳۲ بیتی عمومی است. رجیستر ۰ $ سخت‌افزاری صفر است و و هر آنچه در آن نوشته شود دور انداخته می‌شود. رجیستر ۳۱ $ رجیستر پیوند است. برای دستورهای ضرب و تقسیم اعداد صحیح، که مستقل از دستورات دیگر اجرا می‌شود، یک جفت رجیستر ۳۲ بیتی،HI وLO ارائه شده‌است. مجموعهٔ کوچکی از دستورها برای کپی کردن داده‌ها بین رجیسترهای کلی و رجیسترهای HI / LO وجود دارد.

شمارنده برنامه ۳۲ بیت دارد. از آنجا که طول دستورهای میپس ۳۲I بیت است و هم اندازهٔ حد طبیعی یک کلمه است، دو بیت مرتبه پایین‌تر همواره صفر است.

قالب‌های دستورها

[ویرایش]

دستورها به سه نوع تقسیم می‌شوند:I, R و J. هر دستور با یک آپ کد ۶ بیتی شروع می‌شود. علاوه بر آپ کد، دستورهای نوع R، سه رجیستر، یک فیلد برای اندازهٔ شیفت و یک فیلد برای تابع مشخص می‌کنند. دستورهای نوع I دو رجیستر و یک مقدار فوری ۱۶ بیتی را مشخص می‌کند؛ دستورهای نوع J از آپ کد همراه با مقصد پرش ۲۶ بیتی پیروی می‌کنند.[۳]:A-174

در زیر سه قالب مورد استفاده برای مجموعه دستورهای اصلی آمده‌است:

نوع-۳۱- قالب (بیت‌ها) -۰-
Rآپ کد

(۶)

rs

(۵)

rt

(۵)

rd

(5)

مقدار شیفت (۵)تابع (۶)
Iآپ کد (۶)rs

(۵)

rt

(۵)

فوری (۱۶)
Jآپ کد (۶)آدرس (۲۶)

دستورهای CPU

[ویرایش]

بارگذاری‌ها و ذخیره‌سازی‌ها

[ویرایش]

میپس I دستورهایی برای بارگذاری و ذخیره بایت‌های ۸ بیتی، نیم کلمه‌های ۱۶ بیت و کلمات ۳۲ بیتی دارد. تنها یکحالت آدرس دهی پشتیبانی می‌شود: پایه + جابجایی. از آنجا که میپس I یک معماری ۳۲ بیتی است، برای بارگذاری مقادیر کمتر از ۳۲ بیت داده باید آن‌ها را یا با علامت یا با صفر به ۳۲ بیت رساند. دستورهای بارگذاری با پیشوند "unsigned" داده‌ها را با صفر توسعه می‌دهند و در غیر اینصورت با علامت. منبع دستورهای بارگذاری برای پایه محتوای یک رجیستر عمومی (rs) است و نتیجه را در یک رجیستر عمومی دیگر (rt) می‌نویسند. منبع دستورهای ذخیره‌سازی برای پایه نیز محتوای یک رجیستر عمومی (rs) و برای داده‌های ذخیره شونده یک رجیستر عمومی دیگر (rt) است. تمام دستورهای بارگذاری و ذخیره، برای محاسبه آدرس مقدار پایه را با مقدار فوری ۱۶ بیتی که با علامت به ۳۲ بیت رسانده شده جمع می‌کنند. در میپس I همهٔ دسترسی‌های حافظه باید بر مرزهای طبیعی کلمه‌شان منطبق باشند، در غیر این صورت یک استثنا پرتاب می‌شود. برای پشتیبانی از دسترسی‌های بهینهٔ غیر منطبق حافظه، دستورهای بارگذاری/ذخیره‌سازی کلمه با پیشوندهای «left» یا «right» وجود دارد. تمام دستورهای بارگذاری با یک شکاف تأخیر بارگذاری دنبال می‌شود. دستورهایی که در شکاف تأخیر بارگذاری می‌آیند نمی‌تواند از داده‌های بارگذاری شده توسط دستور بارگذاری استفاده کنند. شکاف تأخیر بارگذاری را می‌توان با دستورهایی که به بارگذاری بستگی ندارند پر کرد. اگر چنین دستورهایی یافت نشد یک دستور بی عمل جایگزین آن می‌شود

نام دستوریادیارقالبرمزگذاری
بارگذاری بایتLBI3210rsrtoffset
بارگذاری نیم کلمهLHI3310rsrtoffset
بارگذاری کلمه چپLWLI3410rsrtoffset
بارگذاری کلمهLWI3510rsrtoffset
بارگذاری بایت بدون علامتLBUI3610rsrtoffset
بارگذاری نیم کلمه بدون علامتLHUI3710rsrtoffset
بارگذاری کلمه راست.LWRI3810rsrtoffset
ذخیره بایتSBI4010rsrtoffset
ذخیره نیم کلمهSHI4110rsrtoffset
ذخیره کلمه چپSWLI4210rsrtoffset
ذخیره کلمهSWI4310rsrtoffset
ذخیره کلمه راست.SWRI4610rsrtoffset

واحد محاسبه و منطق

[ویرایش]

میپس I دستورهایی برای جمع و تفریق دارد. این دستورها عمل وندهای خود را از دو رجیستر عمومی (rs و rt) می‌گیرند، و نتیجه را در یک رجیستر عمومی سوم (rd) ذخیره می‌کنند. علاوه بر این، یکی از عملوندهای جمع می‌تواند یک مقدار فوری ۱۶ بیتی باشد (که با علامت به ۳۲ بیت گسترش یافته‌است). دستورهای جمع و تفریق دو نوع اند: به‌طور پیش فرض، اگر نتیجه سرریز شود، یک استثناء پرتاب می‌شود؛ دستورهایی که پسوند "unsigned" دارند استثنا پرتاب نمی‌کنند. کنترل سرریز نتیجه را به صورت یک عدد صحیح متمم دو ۳۲ بیتی تفسیر می‌کند.

میپس I دستورهای برای انجام اعمال منطقی AND, OR, XOR و NOR بر رویبیتها دارد. این دستورها، عملوندهای خود را از دو رجیستر عمومی می‌گیرند و نتیجه را در رجیستر سوم ذخیره می‌کنند. همچنین یکی از عملوندهای دستورهای AND, OR و XOR می‌تواند یک مقدار فوری ۱۶ بیتی (که با صفر تا ۳۲ بیت توسعه یافته‌است) باشد.

مجموعه دستورهایرابطه ای بسته به برقرار بودن یا نبودن رابطه در رجیستر مقصد مقدار صفر یا یک را ذخیره می‌کند. عملوندهای این دستورها دو رجیستر عمومی یا یک رجیستر و یک مقدار فوری ۱۶ بیتی (که با علامت تا ۳۲ بیت توسعه یافته‌است) هستند، و نتیجه نیز در یک رجیستر عمومی سوم ذخیره می‌شود. به‌طور پیش فرض عملوندها به عنوان اعداد صحیح علامت دار تفسیر می‌شوند. فرمهایی از این دستورها که پسوند "unsigned" دارند عملوندها را اعداد صحیح بدون علامت تفسیر می‌کنند (حتی آن‌هایی که از توسعهٔ با علامت یک مقدار فوری ۱۶ بیتی حاصل شده‌اند).

دستور بارگذاری بالایی مقدار فوری، مقدار فوری ۱۶ بیتی را در ۱۶ بیت مرتبه بالاتر یک رجیستر عمومی کپی می‌کند. این دستور همراه با دستور Or استفاده می‌شود تا یک مقدار فوری ۳۲ بیتی را در یک رجیستر بارگذاری کند

نام دستوریادآورقالبرمزگزاری
جمعADDR010rsrtrd0103210
جمع بدون علامتADDUR010rsrtrd0103310
تفریقSUBR010rsrtrd0103410
تفریق بدون علامتSUBUR010rsrtrd0103510
AndANDR010rsrtrd0103610
OrORR010rsrtrd0103710
Exclusive OrXORR010rsrtrd0103810
NorNORR010rsrtrd0103910
یک اگر کمترSLTR010rsrtrd0104210
یک اگر کمتر بدون علامتSLTUR010rsrtrd0104310
جمع مقدار فوریADDII810rsrdمقدار فوری
جمع مقدار فوری بدون علامتADDIUI910$s$dمقدار فوری
یک اگر کمتر از مقدار فوریSLTII1010$s$dمقدار فوری
یک اگر کمتر از مقدار فوری بدون علامتSLTIUI1110$s$dمقدار فوری
And مقدار فوریANDII1210$s$dمقدار فوری
Or مقدار فوریORII1310$s$dمقدار فوری
Exclusive Or مقدار فوریXORII1410$s$dمقدار فوری
بار گزاری بالایی مقدار فوریLUII1510010$dمقدار فوری

شیفت‌ها

[ویرایش]

میپس I دستورهایی برای شیفت‌های چپ و راست منطقی و راست جبری دارد. عملگر از یک رجیستر عمومی (rt) گرفته می‌شود، و نتیجه نیز در یک رجیستر عمومی دیگر (rd) ذخیره می‌شود. مقدار شیفت یا از یک رجیستر عمومی (rs) گرفته می‌شود یا یک " مقدار شیفت" ۵ بیتی (فیلد "sa").

نام دستوریادآورقالبرمزگزاری
شیفت چپ منطقیSLLR010010rtrdsa010
شیفت راست منطقیSRLR010010rtrdsa210
شیفت راست جبریSRAR010010rtrdsa310
شیفت متغیر چپ منطقیSLLVR010rsrtrd010410
شیفت متغیر راست.SRLVR010rsrtrd010610
شیفت متغیر راست جبریSRAVR010rsrtrd010710

ضرب و تقسیم

[ویرایش]

میپس 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 نمی‌نویسند.

نام دستوریادآورقالبرمزگزاری
انتقال از HIMFHIR010010010rd0101610
انتقال به HIMTHIR010rs0100100101710
انتقال از LOMFLOR010010010rd0101810
انتقال به LOMTLOR010rs0100100101910
ضربMULTR010rsrt0100102410
ضرب بدون علامتMULTUR010rsrt0100102510
تقسیمDIVR010rsrt0100102610
تقسیم بدون علامتDIVUR010rsrt0100102710

پرش و انشعاب

[ویرایش]

پس از تمام دستورهای کنترل جریان میسپ I یک شکاف تأخیر انشعاب می‌آید. اگر این شکاف با دستوری که کار مفیدی انجام دهد پر نشده باشد، یک دستور بی عمل در آن قرار می‌گیرد. دستورهای انشعاب میسپ I محتوای یک رجیستر عمومی (rs) را با صفر یا یک رجیستر عمومی دیگر (rt) به عنوان اعداد صحیح علامت دار مقایسه می‌کنند و اگر شرط تعیین شده برقرار باشد انشعاب می‌کنند. برای محاسبهٔ مقصد پرش، آفست ۱۶ بیتی دو بیت به چپ شیفت داده می‌شود، نتیجهٔ ۱۸ بیتی با علامت گستش داده می‌شود، و حاصل ۳۲ بیتی به حاصل جمع شمارندهٔ برنامه (آدرس دستور) و ۸ اضافه می‌شود. پرش‌ها دو نوع اند: مطلق و غیر مستقیم. پرش‌های مطلق ("پرش" و "پرش و پیوند") برای محاسبهٔ آدرس مقصد instr_index را دو بیت به چپ شیفت می‌دهند و حاصل را به ۴ بیت مرتبه بالای آدرس دستوری که در شکاف تأخیر انشعاب آمده پیوند می‌زنند. پرش‌های غیرمستقیم آدرس دستور مقصد را از یک رجیستر عمومی (rs) می‌گیرند. آدرسی که در رجیستر است باید بر اساس کلمه تراز شده باشد، وگرنه پس از آن که دستوری که در شکاف تأخیر انشعاب قرار دارد اجرا شود یک استثنا پرتاب می‌شود. دستورهای انشعاب و پرشی که پیوند برقرار می‌کنند (به غیر از "پرش و پیوند رجیستر") آدرس بازگشت را در رجیستر عمومی ۳۱ ذخیره می‌کنند. دستور "پرش و پیوند رجیستر" اجازه می‌دهد آدرس برگشت در هر رجیستر عمومی قابل استفاده ای ذخیره شود.

نام دستوریادآورقالبرمزگزاری
پرش رجیسترJRR010rs010010010810
پرش و پیوند رجیسترJALRR010rs010rd010910
انشعاب اگر کمتر از صفرBLTZI110rs010آفست
انشعاب اگر بزرگتر مساوی صفرBGEZI110rs110آفست
انشعاب اگر کمتر از صفر و پیوندBLTZALI110rs۱۶آفست
انشعاب گر بزرگتر مساوی صفر و پیوندBGEZALI110rs۱۷آفست
پرشJJ210instr_index
پرش و پیوندJALJ310instr_index
ورش اگر مساویBEQI410rsrtآفست
پرش اگر نامساویBNEI510rsrtآفست
پرش اگر کوچکتر مساوی صفرBLEZI610rs010آفست
پرش اگر بزرگتر از صفرBGTZI710rs010آفست

استثنا

[ویرایش]

میپس I برای نرم‌افزارها دو دستور درتاب استثنا دارد: فراخوانی سیستمی و نقطه توقف. فراخوانی سیستمی توسط نرم‌افزارهای کاربری برای فراخوانی کرنلی استفاده می‌شود؛ و نقطه توقف برای انتقال کنترل به یک اشکال‌زدا (به انگلیسی: debugger) از طریق رسیدگی‌کننده استثنائات کرنل به کار می‌رود. هر دو دستور دارای بخش کد ۲۰ بیتی هستند که می‌توانند حاوی اطلاعات مختص محیط سیستم عامل برای رسیدگی‌کننده استثنائات باشند.

نام دستوریادآورقالبرمزگزاری
فراخوانی سیستمیSYSCALL?010Code1210
نقطه توقفBREAK?010Code1310

دستورهای نقطه شناور (FPU)

[ویرایش]

میپس دارای ۳۲ رجیستر نقطه شناور است. دو رجیستر برای اعداد دقت دوگانه (double precision) با هم جفت شده‌اند. رجیسترهای فرد تنها به عنوان بخشی از یک جفت رجیستر دقت دوگانه قابل استفاده‌اند، نه برای عملیات جبری یا انشعاب. در نتیجه برای اکثر دستورها ۱۶ رجیستر قابل استفاده موجود است (انتقال‌ها/کپی‌ها و باگذاری‌ها/ذخیره‌سازی‌ها تحت تأثر قرار نمی‌گیرند).

عملیات جبری

[ویرایش]
نامسینتکس دستورمعناآپ کدrsrtrdshamfunct
جمع نقطه شناورadd.s $x,$y,$z$x = $y + $z1710010$z$y$x010
تفریق نقطه شناورsub.s $x,$y,$z$x = $y - $z1710010$z$y$x110
ضرب نقطه شناورmul.s $x,$y,$z$x = $y * $z1710010$z$y$x210
تقسیم نقطه شناورdiv.s $x,$y,$z$x = $y / $z1710010$z$y$x310
جمع نقطه شناورadd.d $x,$y,$z$x = $y + $z1710110$z$y$x010
تفریق نقطه شناورsub.d $x,$y,$z$x = $y - $z1710110$z$y$x110
ضرب نقطه شناورmul.d $x,$y,$z$x = $y * $z1710110$z$y$x210
تقسیم نقطه شناورdiv.d $x,$y,$z$x = $y / $z1710110$z$y$x310
مقایسه نقطه شناور (eq,ne,lt,le,gt,ge)c.lt.s $f2,$f4cond = ($f2 <$f4)
مقایسه نقطه شناور (eq,ne,lt,le,gt,ge)c.lt.d $f2,$f4cond = ($f2 <$f4)

دقت یگانه (single precision) با پسوند s. نشان داده می‌شود و دقت دوگانه با پسوند d. نشان داده می‌شود.

انتقال داده

[ویرایش]
نامسینتکس دستورمعناقالبآپ کدfunctتوضیحات/رمزگذاری
بارگزاری کلمه در پردازنده کمکیlwcZ $x,CONST ($y)Coprocessor[Z].DataRegister[$x] = Memory[$y + CONST]Iکلمه ۴ بایتی ذخیره شده در [MEM[$y+CONST را در رجیستر دادهٔ پردازنده کمکی بارگذاری می‌کند. توسعه علامت‌دار
ذخیره از پردازنده کمکیswcZ $x,CONST ($y)Memory[$y + CONST] = Coprocessor[Z].DataRegister[$x]Iکلمهٔ ۴ بایتی موجود در رجیستر دادهٔ پردازنده کمکی را در [MEM[$y+CONST ذخیره می‌کند. توسعه علامت‌دار

انشعاب

[ویرایش]
نامنحوه آموزشمعنافرمتآپ کدfactتوضیحات / رمزگذاری
انشعاب اگر FP درستbc1t 100
if (cond)    goto PC+4+100
انشعاب وابسته به PC اگر شرط FP
انشعاب اگر FP غلطbc1f 100
if(!cond)gotoPC+4+100
انشعاب وابسته به PC اگر شرط متمم

میپس II

[ویرایش]

میپس II شکاف تأخیر بارگذاری را حذف کرد[۴]:41 و مجموعه‌های مختلفی از دستورها را اضافه کرد. دستورهایی برای پردازش چندگانه با حافظه مشترک، بارگذاری کلمهٔ پیوندیافته و ذخیرهٔ کلمهٔ مشروط اضافه کرد. مجموعه ای از دستورهای دام اگر شرط اضافه شد. این دستورها در صورت برقراری شرط باعث استثنا می‌شوند. برای تمام دستورهای انشعاب موجود نسخه‌های انشعاب گونه ای اضافه شد که هنگام انشعاب دستورهای داخل شکاف تأخیر انشعاب را اجرا می‌کنند.[۴]:40 در برخی موارد این دستورها با ایجاد امکان قرار دادن دستورهای مفید در شکاف تأخیر انشعاب باعث بهبود عملکرد می‌شوند.[۴]:212 دستورهای بارگذاری و ذخیرهٔ دوکلمه برای COP1 3 اضافه شد. همانند دستورهای دسترسی حافظهٔ دیگر، در این بارگذاری‌ها و ذخیره‌ها دوکلمه باید به‌طور طبیعی تراز شده باشد.

همچنین دستورهای مختلفی به مجموعه دستورهای پردازنده کمکی نقطه شناور اضافه شد. یک دستور جذر نقطه شناور سازگار با IEEE754 اضافه شد. این دستور از هردو نوععملوند دقت یگانه و دقت دوگانه پشتیبانی می‌کند. مجموعه دستورهایی برای تبدیل اعداد نقطه شناور دقت یگانه و دقت دوگانه به کلمات ۳۲ بیتی اضافه شد. این دستورها این امکان را فراهم می‌کردند که حالت گرد کردن IEEE به جای کنترل نقطه شناور و رجیستر وضعیت توسط دستورها مشخص شود و به این وسیلهٔ دستورهای تبدیل موجود را کامل‌تر کردند.

ریزپردازنده R6000 از شرکت MIPS Computer Systemsر (۱۹۸۹) اولین پیاده‌سازی میپس II است.[۴]:8 این ریزپردازنده برای سرورها طراحی شد. R6000 توسط Bipolar Integrated Technology ساخته و به بازار عرضه شد، اما با شکست تجاری مواجه شد. در اواسط دهه ۱۹۹۰، بسیاری از پردازنده‌های جدید ۳۲ بیتی میپس برایسیستم‌های جاسازی شده، پیاده‌سازی میپس II بودند، زیرا با معرفی معماری میپس III ی ۶۴ بیتی در ۱۹۹۱ میپس II تا معرفی میپس ۳۲ در ۱۹۹۹ جدیدترین معماری میپس ۳۲ بیتی باقی ماند.[۴]:19

دستورهای افزوده شده به میپس II.[۳]
نامیادآور
همزمان کردن حافظه مشترکSYNC
دام اگر بزرگتر مساویTGE
دام اگر بزرگتر مساوی بدون علامتTGEU
دام اگر کمترTLT
دام اگر کمتر بدون علامتTLTU
دام اگر برابرTEQ
دام اگر نابرابرTNE
انشعاب محتمل اگر کوچکتر مساوی صفرBLEZL
انشعاب محتمل اگر بزرگتر مساوی صفرBGEZL
دام اگر بزرگتر مساوی مقدار فوریTGEI
دام اگر بزرگتر مساوی مقدار فوری بدون علامتTGEIU
دام اگر کمتر از مقدار فوریTLTI
دام اگر کمتر از مقدار فوری بدون علامتTLTIU
دام اگر مساوی مقدار فوریTEQI
دام اگر نامساوی مقدار فوریTNEI
انشعاب و پیوند محتمل اگر کمتر از صفرBLTZALL
انشعاب و پیوند محتمل اگر بزرگتر مساوی صفرBGEZAL
جذر نقطه شناورSQRT.S
جذر نقطه شناورSQRT.D
گرد کردن نقطه شناور به کلمه نقطه ثابتROUND.S
گرد کردن نقطه شناور به کلمه نقطه ثابتROUND.D
کوتاه کردن نقطه شناور به کلمه نقطه ثابتTRUNC.S
کوتاه کردن نقطه شناور به کلمه نقطه ثابتTRUNC.D
سقف کردن نقطه شناور به کلمه نقطه ثابتCEIL.S
سقف کردن نقطه شناور به کلمه نقطه ثابتCEIL.D
کف کردن نقطه شناور به کلمه نقطه ثابتFLOOR.S
کف کردن نقطه شناور به کلمه نقطه ثابتFLOOR.D
انشعاب محتمل اگر FP غلطBC1FL
انشعاب محتمل اگر FP درستBC1TL
انشعاب محتمل اگر صفرBEQL
انشعاب محتمل اگر غیر صفرBNEL
انشعاب محتمل اگر کمتر از صفرBLTZL
انشعاب محتمل اگر بزرگتر مساوی از صفرBGTZL
بارگزاری پیوندخوردهLL
بارگزاری دوکلمه در پردازنده کمکی ۱LDC1
بارگزاری دوکلمه در پردازنده کمکی ۲LDC2
بارگزاری دوکلمه در پردازنده کمکی ۳LDC3
ذخیره‌سازی مشروطSC
ذخیره‌سازی دوکلمه از پردازنده کمکی ۱SDC1
ذخیره‌سازی دوکلمه از پردازنده کمکی ۲SDC2
ذخیره‌سازی دوکلمه از پردازنده کمکی ۳SDC3

میپس III

[ویرایش]

میپس III یک توسیعسازگار با گذشته از میپس II است که پشتیبانی از عملیات اعدادصحیح آدرس دهی ۶۴ بیتی حافظه را اضافه کرده‌است. نوع دادهٔ ۶۴ بیتی دوکلمه نامیده می‌شود، و میپس III رجیسترهای عمومی، رجیسترهای HI/LO، شمارندهٔ برنامه را به ۶۴ بیت توسعه داد تا بتواند از آن پشتیبانی کند. دستورهای جدیدی برای بارگذاری و ذخیرهٔ دوکلمه‌ها، انجام جمع، تفریق، ضرب و تقسیم اعداد صحیح و همچنین عملیات‌های شیفت بر روی آن‌ها و انتقال دوکلمه‌ها بین رجیسترهای عمومی و HI/LO اضافه شد. دستورهای موجود که در اصل برای عمل کردن بر روی کلمه‌های ۳۲ بیتی تعریف شده بودند، هرجا نیاز بود بازتعریف شدند تا بتوانند حاصل‌های ۳۲ بیتی را با علامت توسعه دهند و اکثر دستورها بتوانند با کلمه‌ها و دوکلمه‌ها یکسان برخورد کنند. از میان این دستورهای بازتعریف شده می‌توان بهبارگزاری کلمه اشاره کرد. در میپس III این دستور کلمه‌ها را با علامت به ۶۴ بیت توسعه می‌دهد. برای کامل کردنبارگزاری کلمه، نسخه ای اضافه شد که با صفر توسعه می‌دهد.

ناتوانی قالب R در مشخص کردن مقدار کامل شیفت برای شیفت‌های ۶۴ بیتی (فیلد ۵ بیتی آن برای مقدار شیفت بسیار کوتاه‌تر از آن است مقدار شیفت برای دوکلمه‌ها را نشان دهد) باعث شد میپس III سه نسخه ۶۴ بیتی از هر دستور شیفت میپس I ارائه دهد. اولین نسخه، نسخهٔ ۶۴ بیتی دستورهای شیفت اصلی است، که برای مشخص کردن مقدار شیفت‌های ۰ تا ۳۱ بیتی استفاده می‌شود. دومین نسخه مشابه اولی است، اما به مقدار فیلد مقدار شیفت ۳۲۱۰ می‌افزاید تا مقدارهای ثابت شیفت ۳۲ تا ۶۴ بیت را بتوان مشخص کرد. نسخهٔ سوم مقدار شیفت را از ۶ بیت مرتبهٔ پایین یک رجیستر عمومی به دست می‌آورد.

میپس III سطوح امتیاز کرنل و کاربر که از قبل موجو بودند یک سطحناظر افزود. این قابلیت تنها پردازندهٔ کنترل سیستم تعریف شده در پیاده‌سازی (پردازندهٔ کمکی ۰) را تحت تأثیر قرار داد.

دستورهای CPU اضافه شده توسط میپس III
نام دستوریادآورقالبرمزگزاری
شیفت چپ منطقی متغیر دوکلمهDSLLVR010rsrtrd0102010
شیفت راست منطقی متغیر دوکلمهDSRLVR010rsrtrd0102210
شیفت راست جبری متغیر دوکلمهDSRAVR010rsrtrd0102310
ضرب دوکلمهDMULTR010rsrt0100102810
ضرب بدون علامت دوکلمهDMULTUR010rsrt0100102910
تقسیم دوکلمهDDIVR010rsrt0100103010
تقسیم بدون علامت دوکلمهDDIVUR010rsrt0100103110
جمع دوکلمهDADDR010rsrtrd0104410
جمع بدون علامت دوکلمهDADDUR010rsrtrd0104510
تفریق دوکلمهDSUBR010rsrtrd0104610
تفریق بدون علامت دوکلمهDSUBUR010rsrtrd0104710
شیفت چپ منطقی دوکلمهDSLLR010010rtrdsa5610
شیفت راست منطقی دوکلمهDSRLR010010rtrdsa5810
شیفت راست جبری دوکلمهDSRAR010010rtrdsa5910
شیفت چپ منطقی دوکلمه + ۳۲DSLL32R010010rtrdsa6010
شیفت راست منطقی دوکلمه + ۳۲DSRL32R010010rtrdsa6210
شیفت راست منطقی دوکلمه + ۳۲DSRL32R010010rtrdsa6310
جمع مقدار فوری دوکلمهDADDII2410rsrdمقدار فوری
جمع بدون علامت مقدار فوری دوکلمهDADDIUI2510rsrdمقدار فوری
بارگزاری چپ دوکلمهLDLI2610rsrtآفست
بارگزاری راست دوکلمهLDRI2710rsrtآفست
بارگزاری بدون علامت دوکلمهLWUI3910rsrtآفست
ذخیره دوکلمه چپSDLI4410rsrtآفست
ذخیره دوکلمه راست.SDRI4510rsrtآفست
بارگزاری دوکلمه پیوند خوردهLLDI5210rsrtآفست
بارگزاری دوکلمهLDI5510rsrtآفست
ذخیره مشروط دوکلمهSCDI6010rsrtآفست
ذخیره دوکلمهSDI6310rsrtآفست

میپس III پشتیبانی از پردازنده کمکی ۳ (CP3) را حذف کرد، و آپ کد آن را برای دستورهای دوکلمهٔ جدید استفاده کرد. پردازنده‌های کمکی باقی مانده دستورهایی برای انتقال دوکلمه‌ها بین رجیسترهای پردازنده کمکی و رجیسترهای عمومی به دست آوردند. رجیسترهای عمومی شناور (FGRs) به ۶۴ بیت توسعه یافتند و دیگر نیازی به دستورهایی برای محدود کردن استفاده از رجیسترها تنها به تعداد زوج وجود نداشت. این با نسخه‌های قبلی این معماری سازگار نبود؛ برای اداره کردن واحد نقطه شناور (FPU) میپس III در یک حالت سازگار با میپس I و II، یک بیت در رجیستر کنترل/وضعیت نقطه شناور استفاده می‌شود. رجیسترهای کنترل نقطه شناور توسعه نیافتند تا سازگاری حفظ شود. تنها دستورهای نقطه شناور اضافه شده دستورهای کپی دوکلمه‌ها بین CPU و FPU، تبدیل اعداد نقطه شناور دقت یگانه و دوگانه به دوکلمه‌های صحیح و برعکس هستند.

دستورهای FPU اضافه شده توسط میپس III
نام دستوریادآورقالبرمزگزاری
انتقال دوکلمه به پردازنده کمکی ۱DMFC1R1710110rtfs010010
انتقال دوکلمه به پردازنده کمکی ۱DMTC1R1710510rtfs010010
گرد کردن نقطه شناور به طولانیROUND.L.SR17101610010fsfd۸
گرد کردن نقطه شناور به طولانیROUND.L.DR17101710010fsfd810
کوتاه کردن نقطه شناور به طولانیTRUNC.L.SR17101610010fsfd910
کوتاه کردن نقطه شناور به طولانیTRUNC.L.DR17101710010fsfd910
سقف نقطه شناور به طولانیCEIL.L.SR17101610010fsfd1010
سقف نقطه شناور به طولانیCEIL.L.DR17101710010fsfd1010
کف نقطه شناور به طولانیFLOOR.L.SR17101610۰fsfd1110
کف نقطه شناور به طولانیFLOOR.L.DR17101710010fsfd1110
تبدیل نقطه شناور به یگانهCVT.S.LR17101610010fsfd3210
تبدیل نقطه شناور به دوگانهCVT.D.LR17101710010fsfd3310
تبدیل نقطه شناور به طولانیCVT.L.SR17101610010fsfd3710
Floating Point Convert to LongCVT.L.DR17101710010fsfd3710

ریزپردازندهٔ 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، درکنسول بازینینتندو ۶۴ استفاده شد. نینتندو ۶۴ در کنار پلی استیشن از بزرگ‌ترین استفاده‌کننده‌های پردازنده‌های معماری میپس در میانهٔ دهه ۱۹۹۰ بودند.

میپس IV

[ویرایش]

میپس IV چهارمین نسخهٔ معماریست. این معماری یک فوق مجموعهٔ میپس III و با تمام نسخه‌های موجود میپس سازگار است. انگیزهٔ اصلی طراحی میپس IV بهبود عملکرد نقطه شناور (FP) بود. برای بهبود دسترسی به عملوندها، یکحالت آدرس دهیاندیس گذاری شده (پایه + اندیس که منبع هردو رجیسترهای عمومی است) برای بارگذاری‌ها و ذخیره‌سازی‌های FP اضافه شد، دستورهای فراخوانی زودرس نیز برای انجام فراخوانی زودرس حافظه و مشخص کردن راهنماهای کش (این‌ها هر دو حالت آدرس دهی وایه + آفست و پایه + اندیس را پشتیبانی می‌کردند) اضافه شد.

میپس IV قابلیت‌های گوناگونی برای بهبود موازی کاری در سطح دستورها اضافه کرد. برای سبک کردن بار گلوگاهی که در اثر یک بیت شرطی به وجود می‌آید، هفت بیت کد شرطی به رجیسترهای نقطه شناور کنترل و وضعیت اضافه شدند، و مجموع را به هشت رساندند. دستورهای مقایسه و انشعاب FP بازتعریف شدند تا بتوانند مشخص کنند کدام بیت شرطی نوشته یا خوانده می‌شود (به ترتیب)؛ و شکاف تأخیر بین یک انشعاب FP که یک بیت شرطی را می‌خواند و مقایسه FP قبلی که آن بیت را نوشته است حذف شد. پشتیبانی ازپیش‌بینی جزئی در قالب دستورهای انتقال شرطی برای هردوی رجیسترهای عمومی و نقطه شناور اضافه شد؛ و یک پیاده‌سازی می‌توانست بین استثنائات دقیق یا مبهم تله‌های IEEE 754 انتخاب کند.

میپس IV دستورهای جبری FP جدیدی برای هردوی اعداد نقطه شناور دقت یگانه و دوگانه اضافه کرد: ترکیب جمع یا تفریق با ضرب، معکوس، معکوس ریشهٔ دوم. دستورهای ترکیب جمع یا تفریق و ضرب نقطه شناور یک یا دو گردکردن انجام می‌دهند (این امر در پیاده‌سازی تعریف می‌شود)، به ترتیب برای رسیدن به دقت مورد نیاز IEEE754 یا رفتن فراتر از آن. دستورهای نقطه مشترک معکوس و معکوسریشه دوم از دقت مورد نیاز IEEE754 پیروی نمی‌کنند. و نتایج آن‌ها با دقت مورد نیاز در یک یا دو واحد جایگاه آخر اختلاف دارد (در پیاده‌سازی تعریف می‌شود). این دستورها هنگامی کاربرد دارند که تأخیر دستور مهم‌تر از دقت آن است.

اولین پیاده‌سازی میپس IV چیپست ریزپردازندهٔ R8000 شرکت MIPS Technologies بود (۱۹۹۴). طراحی R8000 در شرکت .Silicon Graphics,inc آغاز شد و تنها در ایستگاه‌های کاری و سرورهای پیشرفته برای کاربردهای علمی و فنی که در آن کارایی بالا در بار کاری نقطه شناور زیاد مهم بود. پیاده‌سازی‌های بعدی R10000 از شرکت MIPS Technologies (سال ۱۹۹۶) و R5000 از شرکت Quantum Effect Devicex (سال ۱۹۹۶) و RM7000 (سال ۱۹۹۸) بود. R10000، که توسط NEC Electronics و Toshiba ساخته و به بازار عرضه شد، و مشتقات آن توسط NEC و Pyramid Technology و .Silicon Graphics,inc و Tandem Computers (در میان دیگر شرکت‌ها) در ایستگاه‌های کاری، سرورها و ابررایانه‌ها به کار رفت. R5000 و R7000 در سیستم‌های جاگذاری شده پیشرفته شده، رایانه‌های شخصی و ایستگاه‌های کاری و سرورهای ابتدایی به کار رفت. یک مشتقات R5000 از Toshiba، ریزپردازندهٔ R5900، در Emotion Engine شرکت Sony Computer Entertainment در کنسولPlayStation 2 آن شرکت استفاده.

میپس V

[ویرایش]

معرفی شده ار ۲۱ اکتبر ۱۹۹۶ در سمینار میکروپروسسور سال ۱۹۹۶ همراه با افزونهٔ Digital Media Extensions یا MDMX، میپس V برای بهبود عملکرد تحولات گرافیکی سه بعدی طراحی شد.[۱۶] در میانهٔ دهه ۱۹۹۰، یک کاربرد اصلی ریزپردازنده‌های غیر جاگذاری شدهٔ میپس، ایستگاه‌های کاری گرافیکی SGI بود. میپس V با افزونهٔ اعداد صحیح MDMX تکمیل شد تا یک سیستم کامل برای بهبود عملکرد برنامه‌های گرافیک سه بعدی فراهم آورد.[۱۷]

هیچگاه برای میپس V پیاده‌سازی ای معرفی نشد. در ۱۲ مه ۱۹۹۷، شرکت SGI خبر از ریزپردازنده‌های «H1» (ملقب به «Beast») و «H2» (ملقب به «Captain») داد. اولی قرار بود اولین پیاده‌سازی میپس V باشد، و بنا بود در نیمهٔ اول ۱۹۹۹ معرفی شود.[۱۸] پروژه‌های «H1» و «H2» بعدها ترکیب شده و در نهایت در سال ۱۹۹۸ لغو شدند. با این که هیچ پیاده‌سازی ای از میپس V وجود ندارد، میپس ۶۴ توزیع ۱ (۱۹۹۹) بر پایهٔ آن است تمام قابلیت‌های آن را در یک پردازندهٔ کمکی ۱ اختیاری (FPU) به نام Paired-Single حفظ کرده‌است.

میپس Vنوع دادهٔ جدیدی معرفی کرد، یگانه جفت شده (PS)، که متشکل است از دو عدد نقطه شناور دقت یگانه (۳۲ بیتی) که در رجیسترهای ۶۴ بیتی نقطه شناور موجود ذخیره شده‌اند. صورت‌های دیگری از دستورهای نقطه شناور موجود برای عملیات جبری، مقایسه و انتقال شرطی اضافه شدند تا با این نوع داده به صورت SIMD کار کنند. دستورهای جدیدی برای بارگذاری، بازآرایی و تبدیل داده‌های PS اضافه شد.[۴]:426–429 این اولین مجموعه دستور برای استفاده از SIMD نقطه شناور با منابع موجود بود.[۱۷]

میپس ۳۲/میپس۶۴

[ویرایش]

هنگامی که MIPS Technologies در سال ۱۹۹۸ از Silicon Graphics خارج شد، باری دیگر بر بازار جاگذاری شده تمرکز کرد. تا میپس V، هر نسخهٔ جدید فوق مجموعه از نسخه قبلی بود، اما این ویژگی مشکل ساز شد،[نیازمند منبع] و تعریف معماری برای تعریف معماری ۳۲ بیتی و ۶۴ بیتی تغییر یافت: میپس ۳۲ و میپس ۶۴، هر دو در سال ۱۹۹۹ معرفی شدند.[۱۹] میپس۳۲ بر پایهٔ میپس II است همراه با برخی قابلیت‌های اضافه از میپس III، میپس IV و میپس V؛ میپس ۶۴ بر پایهٔ میپس V است.[۱۹]NEC وToshiba وSiByte (که بعدها به مالکیتBroadcom درآمد) هرکدام به محض اعلام خبر میپس ۶۴ مجوزهای آن را گرفتند. از آن موقع به بعدPhilips و LSI Logic و IDT و .Raza Microelectronics, Inc و Cavium و Loongson Technology و Semiconductor Ingenic نیز به آن‌ها پیوستند.

میپس۳۲/میپس۶۴ توزیع ۱

[ویرایش]

اولین توزیع میپس۳۲، بر اساس میپسII، انتقال شرطی، دستورهای زودرس و سایر ویژگی‌های خانواده‌های R4000 و R5000 پردازنده‌های ۶۴ بیتی را اضافه کرد.[۱۹] اولین اولین توزیع میپس۶۴ یک حالت میپس۳۲ برای اجرای کدهای ۳۲ بیتی اضافه کرد.[۱۹] دستورهای MUL و MADD (ضرب جمع) که قبلاً در برخی از پیاده‌سازی‌ها در دسترس بود، به ویژگی‌های میپس۳۲ و میپس۶۴ اضافه شد، همان‌طور نیز دستورهای کنترل کش.[۱۹]

میپس۳۲/میپس۶۴ توزیع ۲

[ویرایش]

میپس۳۲/میپس۶۴ توزیع ۳

[ویرایش]

میپس۳۲/میپس۶۴ توزیع ۵

[ویرایش]

در ۶ دسامبر ۲۰۱۲ اعلام شد.[۲۰] دلیل پرش از توزیع ۳ به ۵ آن است که عدد چهار در بسیاری از فرهنگ‌های آسیایی نحس تلقی می‌شود.[۲۱]

میپس۳۲/میپس۶۴ توزیع ۶

[ویرایش]

میپس۳۲/میپس۶۴ توزیع ۶ در ۲۰۱۴[۲۲] موارد زیر را اضافه کرد:

  • یک خانواده جدید از انشعاب‌های بدون شکاف تأخیر:
    • انشعاب‌های غیر شرطی (BC) و انشعاب و پیوند (BALC) با یک افست ۲۶ بیتی
    • انشعاب شرطی اگر صفر/غیرصفر با یک افست ۲۱ بیتی،
    • مجموعه ای کامل از شاخه‌های شرطی با علامت و بدون علامت برای مقایسه بین دو رجیستر (به عنوان مثال BGTUC) یا یک رجیستر و صفر (به عنوان مثال BGTZC)،
    • مجموعه ای کامل از انشعاب و پیوند که یک رجیستر را با صفر مقایسه می‌کنند (به عنوان مثال BGTZALC)
  • دستورهای پرش اندیس بدون شکاف تأخیر طراحی شده برای پشتیبانی از آدرس‌های مطلق بزرگ.
  • دستورهایی برای بارگذاری مقادیر فوری ۱۶ بیتی در بیت‌های ۱۶، ۳۲ یا ۴۸، اجازه می‌دهد ثابت‌های بزرگ به راحتی تولید شوند.
  • دستورهای بارگذاری وابسته به PC، همچنین تولید آدرس با آفست های (وابسته به PC) بزرگ.
  • دستورهای معکوس‌کننده بیت‌ها و ترازکننده بایت‌ها (پیش از این تنها با افزونهٔ DSP ممکن بود).
  • دستورهای ضرب و جمع بازتعریف شدند تا برای نتایجشان از یک رجیستر استفاده کنند.
  • دستورهایی که مقدار حقیقت تولید می‌کنند اکنون تمام صفر یا تمام یک تولید می‌کنند به جای تنها ست کردن یا پاک کردن بیت ۰.
  • دستورهایی که از یک مقدار حقیقت استفاده می‌کنند به جای در نظر گرفتن فقط بیت ۰ اکنون تنها تمام صفرها را به عنوان غلط تفسیر می‌کنند.

دستورهای کم کاربرد حذف شده

  • برخی انتقال‌های شرطی
  • دستورهای انشعاب محتمل (در نسخه‌های قبلی بد دانسته شده بود).
  • دستورهای دام سرریز با مقدار فوری ۱۶ بیتی
  • دستورهای انباشت اعداد صحیح (رجیسترهای HI / LO با هم، به افزونهٔ تخصصیDSP منتقل شدند)
  • دستورهای بارگذاری غیر تراز (LWL و LWR)، (نیازمند است اکثر بارگذاری‌ها و ذخیره‌سازی‌های معمولی دسترسی بد تراز شده را پشتیبانی کنند، احتمالاً از طریق به دام انداختن و افزودن یک دستور جدید(BALIGN))

رمزنگاری دستورها را بازآر است، تا فضا برای توسعه در آینده باز کند.

میکرومیپس

[ویرایش]

معماری‌های میکرومیپس۶۴/۳۲ فوق مجموعه‌های معماری‌های میپس۳۲ و میپس۶۴ اند (به ترتیب) و برای جایگزینی افزونهٔ تخصصی میپسe۱۶ طراحی شده‌اند. یک ایراد میپسe۱۶ این است که پیش از پردازش هرکدام از دستورهای ۱۶ بیتی‌اش نیازمند یک تغییر حالت است. میکرومیپس از پراستفاده‌ترین دستورهای ۳۲بیتی نسخه‌هایی دارد که به صورت دستورهای ۱۶ بیتی کدگذاری شده‌اند. این امر اجازه می‌دهد برنامه‌ها دستورها ۱۶ و ۳۲ بیتی را بدون نیاز به تغییر حالت مخلوط کنند. میکرومیپس به همراه میپس۶۴/۳۲ توزیع ۳ معرفی شد، و هر توزیع میپس ۶۴/۳۲ بعد از آن یک نسخهٔ میکرومیپس۶۴/۳۲ متناظر دارد. یک پردازنده ممکن است میکرومیپس۶۴/۳۲ را پیاده‌سازی کند یا هردو میکرومیپس ۶۴/۳۲ و زیرمجموعه میپس۶۴/۳۲ متناظر با آن را. از میپس ۶۴/۳۲ به بعد، پشتیبانی میپسe۱۶ به پایان رسید و میکرومیپس تنها فرم فشرده سازی کد در میپس است.

افزونه‌های تخصصی

[ویرایش]

ممیپس ۳۲ و میپس۶۴ پایه هردو می‌توانند تعدادی افزونه‌های معماری اختیاری بپذیرند، که به آن‌ها کلاًافزونه‌های تخصصی(ASEs) گفته می‌شود. این ASEها ویژگی‌هایی فراهم می‌کنند که بازده و عملکرد را در بارهای کاری خاصی مانندپردازش سیگنال دیجیتال را بهبود می‌بخشد.

میپس MCU

[ویرایش]

عملکرد در کاربردهای مربوط به میکروکنترلرها را بهبود می‌بخشد. MCU ASE (افزونه تخصصی) برای بهبود بخشیدن پشتیبانی کنترل کنندهٔ وقفه توسعه داده شده، تأثیر وقفه را کاهش می‌دهد و کار کنترل ورودی خروجی ثانوی که معمولاً در طراحی سیستم‌های میکروکنترلر مورد نیاز است بهبود می‌بخشد.

  • اولویت و تولید بردار جداگانه
  • پشتیبانی از ۲۵۶ وقفه در حالت EIC (کنترل وقفه خارجی) و هشت پین وقفه سخت‌افزاری
  • آدرس ۱۶ بیتی آفست برداری در اختیار می‌گزارد
  • فراخوانی زودرس بردار استثنای وقفه
  • مقدمهٔ وقفهٔ خودکار- سخت‌افزاری برای ذخیره و به روزرسانی وضعیت سیستم پیش از آغاز روال رسیدگی به وقفه اضافه می‌کند.
  • خاتمهٔ خودکار وقفه - حالت سیستم را که قبلاً در پشته ذخیره شده‌است برای بازگشتن از وقفه بازیابی می‌کند.
  • وقفه‌های زنجیره ای - از سرویس انتظار وقفه بدون نیاز به خروج از روال وقفهٔ اولیه پشتیبانی می‌کند، چرخه‌های مورد نیاز برای نگه‌داری و بازیابی وقفه‌های فعال متعدد را ذخیره می‌کند.
  • پشتیبانی از فراخوانی زودرس آدرس بردای وقفه. تعداد چرخه‌های سرویس وقفه را با همپوشانی دسترسی‌های حافظه و تخلیهٔ خطوط لوله و اولویت بندی استثنائات کاهش می‌دهد.
  • شامل دستورهای اتمی ست/پاک است که به بیت‌های داخل یک رجیستر I / O که معمولاً برای نظارت و کنترل توابع محیطی خارجی استفاده می‌شوند این توانایی را می‌دهد که بدون وقفه، تغییر داده شوند، و به این وسیله از امنیت عمل اطمینان حاصل می‌کند

میپس۱۶

[ویرایش]

میپس۱۶ یک افزونهٔ تخصصی برای میپس I تا V است و توسط LSI Logic و MIPS Technologies طراحی و در ۲۱ اکتبر ۱۹۹۶ به همراه اولین پیاده‌سازی اش، پردازنده TinyRISC از شرکت LSI Logic معرفی شد.[۲۳] و به دنبال آن شرکت‌های NEC Electronics وPhilips Semiconductors وToshiba (و غیره) مجوز آن را خریداری کرده؛ و آن را به عنوان یک افزونه برای معماری‌های میپس I، میپس II و III پیاده‌سازی کردند. میپس ۱۶ با استفاده از دستورهای ۱۶ بیتی به جای ۳۲ بیتی اندازهٔ برنامه را تا ۴۰٪ کاهش می‌دهد، همچنین بازده انرژی و سرعت کش را بهبود می‌بخشد و از نظر کارکرد معادل معماری پایه اش است.[۲۴] این معماری توسط ابزارهای توسعهٔ نرم‌افزاری و سخت‌افزاری شرکت MIPS Technologies و شرکت‌های دیگر پشتیبانی می‌شود.

میپس e16

[ویرایش]

میپس e۱۶ نسخهٔ بهبود یافتهٔ میپس۱۶ است و در آغاز توسط میپس۳۲ و میپس۶۴ توزیع ۱ پشتیبانی می‌شد

میپس۲e16

[ویرایش]

میپس۲e۱۶ نسخه‌ای بهبود یافته از میپس۱۶ است که توسط میپس۳۲ و میپس۶۴ پشتیبانی می‌شود (تا توزیع ۵). توزیع ۶ آن را با میکرومیپس جایگزین کرد.

میپس DSP

[ویرایش]

افزونهٔ تخصصی DSP یک افزونهٔ اختیاری برای میپس۳۲/میپس۶۴ توزیع ۲ و مجموعه دستورهای جدیدتر است و می‌تواند برای شتاب بخشیدن به گسترهٔ وسیعی از محاسبات «رسانه‌ای»، مشخصاً صدا و تصویر، به کار رود. ماژول DSP شامل یک مجموعه دستور و وضعیت خط لولهٔ اعداد صحیح است و نیاز به منطق اضافهٔ حداقلی برای پیاده‌سازی در هسته‌های پردازندهٔ میپس دارد. ویرایش ۲ این ASEدر نیمهٔ دوم ۲۰۰۶ معرفی شد. این ویرایش دسترهای جدیدی به ASE اصلی اضافه می‌کند، اما از هر نظر دیگر با آن سازگار بازگشتی است.[۲۵]

برخلاف اکثر معماری‌های میپس، این معماری نسبتاً مجموعه‌ای غیرعادی از عملیات است، که بسیاری از آن‌ها به خاطر ارتباطشان با برخی الگوریتم‌های کلیدی انتخاب شده‌اند.

ویژگی‌های اصلی جدید آن (در قیاس با میپس۳۲ اصلی):[۲۶]

  • محاسبه دقیق (زمانی که یک محاسبه سرریز می‌شود، نزدیک‌ترین عدد به پاسخ بدون سرریز را ارئه می‌دهد).
  • محاسبات نقطه ثابت بر روی کسرهای نقطه ثابت علامت‌دار ۳۲ و ۱۶ بیتی با دامنهٔ -۱ تا ۱ (این‌ها معمولاً با نام‌های «Q31» و «Q15» شناخته می‌شوند).
  • دستورهای ضرب و ضرب-انباشت اعداد صحیح موجود، که حاصل را به یک انباشتگر هم‌اندازهٔ یک نقطه شناور دقت دوگانه (در CPUهای میپس۳۲ «hi/lo» و ۶۴ بیت نامیده می‌شود) منتقل می‌کند. افزونهٔ تخصصی DSP سه انباشتگر دیگر و چند صورت دیگر ضرب-انباشت اضافه می‌کند.
  • دستورهایSIMD بر روی ۴ بایت بدون علامت یا ۲ مقدار ۱۶ بیتی که در یک رجیستر ۳۲ بیتی ذخیره شده‌اند عمل می‌کنند (نسخهٔ ۶۴ بیتی اوزونه تخصصی DSP بردارهای بزرگتر را نیز پشتیبانی می‌کند).
  • عملیات SIMD عبارتند از عملیات جبری ابتدایی، شیفت‌ها و برخی عملیات از نوع ضرب-انباشت.

برای استفاده از افزونهٔ تخصصی میپس DSP، می‌توان:

  • دستی در زبان اسمبلی کد زد، که وقت‌گیرترین روش استفاده از افزونهٔ تخصصی میپس DSP است، اما می‌تواند کدی با بهترین عملکرد نتیجه بدهد.
  • از ماکروهای asm پشتیبانی شده توسط GCC استفاده کرد که دستورهای DSP را مستقیماً از کد C تولید می‌کنند.
  • از توابع درونی (انگلیسی: intrinsics) پشتیبانی شده توسط GCC برای افزونهٔ تخصصی میپس DSP استفاده کرد.
  • از انواع داده و عملگرهای نقطه‌ثابت در C که از آن‌ها GCC پشتیبانی می‌کند استفاده کرد. افزونهٔ تخصصی میپس DSP تنها معماری پردازنده‌ایست که از انواع دادهٔ نقطه ثابت در یک پردازندهٔ عمومی پشتیبانی می‌کند.
  • از طریق گزینه بهینه‌سازftree-vectorize- از برداری سازی خودکار پشتیبانی شده توسط GCC استفاده کرد. برتری برداری سازی خودکار در این است که کامپایلر می‌تواند متغیرهای نرده‌ای (که می‌توانند از نوع عدد صحیح، نقطه ثابت یا نقطه شناور باشند) را برای استفاده خودکار از دستورهای SIMD شناسایی کند. در حالت آرمانی، هنگام استفاده از برداری سازی خودکار، دیگر نیازی نیست صریحاً از متغیرهای SIMD استفاده شود.[۲۷]

از تاریخ ۳۱ مه ۲۰۰۵لینوکس 2.6.12-rc5 پشتیبانی از افزونهٔ تخصصی DSP را اضافه کرد. دقت شود برای آن که بتوان واقعاً از افزونهٔ تخصصی DSP استفاده کرد یکزنجیره ابزار که از این افزونه پشتیبانی می‌کند مورد نیاز است. GCC از قبل از DSP و DSPr2 پشتیبانی می‌کند.

معماری میپس SIMD

[ویرایش]

افزونه‌هایی از مجموعه دستورهایی که برای شتاب بخشیدن به محاسبات چندرسانه‌ای طراحی شده‌اند.

  • ۳۲ رجیستر برداری متشکل از ۱۶ عنصر برداری ۸ بیتی، ۸ عنصر برداری ۱۶ بیتی، ۴ عنصر برداری ۳۲ بیتی و ۲ عنصر برداری ۶۴ بیتی
  • عملیات جبری موازی برداری بهینه بر روی داده‌های صحیح، نقطه ثابت و نقطه شناور
  • عملیات بر روی عملوندهای مقدار مطلق
  • گزینه‌های گرد کردن و اشباع موجود است.
  • ضرب و ضرب-جمع دقت کامل
  • تبدیل بین داده‌های صحیح، نقطه شناور و نقطه ثابت
  • مجموعهٔ کامل دستورهای مقایسه و انشعاب در سطح بردار بدون هیچ پرچم شرطی
  • عملیات بهم آمیختن بردار (یک بعدی) و آرایه (دو بعدی)
  • دستورهای بارگذاری و ذخیره‌سازی نوع بندی شده برای عملیات مستق ازاندیان
  • منطبق بر استاندارد IEEE 754-2008 برای عملیات جبری نقطه شناور
  • پرتاب استثنای نقطه شناور عنصر دقیق
  • افزونه‌های نرده ای شوندهٔ ازپیش تعیین شده برای تراشه‌هایی با تعداد دروازه/ترانزیستور بالاتر
  • سرعت دادن به کاربردهای دارای حجم محاسبات بالا در ارتباط با بهره‌برداری از پشتیبانی عمومی کامپایلر
  • راه حل قابل برنامه‌ریزی نرم‌افزاری برای کاربردهای الکترونیکی مصرفی یا توابعی که توسط سخت‌افزار اختصاصی پوشش داده نشده‌اند.
  • کاربردهای در حال ظهور درداده‌کاوی،استخراج ویژگی، پردازش عکس و فیلم، و ارتباط انسان و کامپیوتر
  • محاسبات علمی با کارایی بالا

فناوری مجازی سازی پشتیبانی شده توسط سخت‌افزار

هر هستهٔ چندریسمانی میپس می‌تواند تا دو VPE (عنصر پردازش مجازی) را پشتیبانی کند. این VPEها یکخط لوله و همچنین منابع سخت‌افزاری دیگر را بین خود تقسیم می‌کنند. با این حال، از آنجا که هر VPE حاوی یک کپی کامل از وضعیت پردازنده از دید سیستم نرم‌افزاری است، یک سیستم عامللینوکسSMP هر VPE را به عنوان یک پردازندهٔ مستقل می‌بیند. برای کاربردهای پردازش ریسمان ریزبخش‌تر، هر VPE می‌تواند تا نه TC اختصاص یافته میان دو VPE را پشتیبانی کند. TCها می‌توانند از یک واحد اجرای مشترک استفاده کنند اما هرکدام شمارندهٔ برنامه و فایل رجیستر هستهٔ خودشان را دارند تا هرکدام بتواند به یک ریسمان از نرم‌افزار رسیدگی کند. معماری میپس MT امکان اختصاص چرخه‌های پردازنده به ریسمان‌ها را فراهم می‌کند و اولویت ریسمان‌های مربوطه را با بلوک مدیریتکیفیت خدمات (QoS) اختیاری تنظیم می‌کند. این مسئله دو سازوکار اولویت بندی برای تعیین جریان اطلاعات درگذرگاه در اختیار می‌گزارد. اولین سازوکار به کاربر امکان اولویت دادن یک ریسمان نسبت به دیگری را می‌دهد. دومین سازوکار برای اختصاص دادن کسر خاصی از چرخه‌ها به یک ریسمان خاص استفاده می‌شود. ادغام کاربرد هردو سازوکار اجازه می‌دهد تا پهنای باند را به‌طور بهینه به مجموعه‌ای از ریسمان‌ها اختصاص داد، و کنترل بهتری بر روی تأخیرها داشت. در سیستم‌هایبی درنگ، جبرگرایی در سطح سیستم اهمیت بسیار بالایی دارد، و بلوک QoS افزایش قابلیت پیش‌بینی رفتار سیستم را تسهیل می‌کند. طراحان سخت‌افزار سیستم‌های پیشرفته می‌توانند به جای بلوک استاندارد QoS شرکت MIPS Technologies از بلوکی که مشخصاً بر کاربرد آن‌ها منطبق شده‌است استفاده کنند.

امروزه ریزپردازنده‌های تک ریسمانی هنگام انتظار برای دسترسی به حافظه چرخه‌های بسیاری را تلف می‌کنند، و در نتیجه کارکرد سیستم را به میزان قابل ملاحظه ای کاهش می‌دهند.[مشکوکبحث] استفاده از چندریسمانی اثر تأخیر حافظه را با افزایش استفاده از پردازنده می‌پوشاند. هنگامی که یک ریسمان متوقف می‌شود، ریسمان‌های دیگر فوراً بهخط لوله داده داده و اجرا می‌شوند، و نتیجهٔ آن افزایش قابل توجه عملکرد در تمام برنامه است. کاربر می‌تواند مقدار مشخصی از پهنای باند را به کارهایبی درنگ و در نتیجه یک کیفیت خدمات (QoS) تضمین شده به دست بیاورد. فناوری MT میپس داعم بر پیشرفت ریسمان‌ها نظارت می‌کند و به صورت پویا اصلاحات لازم را انجام می‌دهد تا الزاماتبی درنگ را برآورده کند یا از آن‌ها فراتر رود. یک خط لولهٔ پردازنده در هنگام توافق‌های وابسته یا از دست رفتن کش می‌تواند با تعویض ریسمان‌ها به ۸۰ تا ۹۰ درصد بهره‌برداری برسد. نتیجهٔ همهٔ این‌ها افزایش قابل توجه قابلیت پاسخ گویی و در نتیجه بهبود تجربهٔ کاربری یک وسیلهٔ همراه است.[مشکوکبحث]

میپس هوشمند

[ویرایش]

میپس هوشمند یک افزونهٔ تخصصی (ASE) طراحی شده توسط Gemplus International و MIPS Technologies است. این افزونه عملکرد نرم‌افزارهایکارت هوشمند را بهبود می‌بخشد و مصرف حافظهٔ آن‌ها را کاهش می‌دهد. میپس هوشمند از آنجا که کارت‌های هوشمند نیاز به توانایی‌های پردازنده‌های میپس۶۴ ندارند، تنها توسط میپس۳۲ پشتیبانی می‌شود. تعداد کمی از کارت‌های هوشمند از میپس هوشمند استفاده می‌کنند.

میپس سه بعدی

[ویرایش]

شبیه‌سازها

[ویرایش]

پلتفورم‌های مجازی باز (OVP)[۲۸] شامل شبیه‌ساز غیرتجاری آزادانه در دسترس OVPsim، یک کتابخانه از مدل‌های پردازنده‌ها،لوازم جانبی و پلتفورم‌ها، و APIهایی که به کاربر امکان توسعهٔ مدل‌های خود را می‌دهد، می‌شوند. مدل‌های موجود در کتابخانه متن بازاند، به زبان C نوشته شده‌اند، شامل هسته‌های ۳۲ بیتی میپس 4K و 24K و 34K و 74K و 1004K و 1074K و M14K و microAptiv و interAptiv و proAptiv و سری هسته‌های میپس ۶۴ بیت 5K می‌شوند. Imperas این مدل‌ها را تولید کرده و نگه‌داری می‌کند[۲۹] و به همراه MIPS Technologies آن‌ها تست شده‌اند و علامت MIPS-Verified (tm) دریافت کردند. برخی پلتفورم‌های نمونهٔ بر پایه میپس دارای هردو محیط فلزی ساده و پلتفورم‌هایی برایراه اندازی ایمیج‌های باینری دستکاری نشدهٔلینوکس هستند. اینبرابرسازهای پلتفورم هم به صورت سورس و هم باینری در دسترس هستند و سریع، مجانی و غیرتجاری اند و استفاده از آن‌ها آسان است. OVPsim توسط Imperas توسعه یافته و نگه‌داری می‌شود. بسیار سریع است (صدها میلیون دستور در ثانیه) و برای رسیدگی به معماری‌ها و سیستم‌های چندهسته ای همگن و غیرهمگن ساخته شده‌است.

یک شبیه‌ساز مجانی میپس۳۲ (نسخه‌های قبلی تنها R2000/R3000 را شبیه‌سازی می‌کردند) برای استفاده‌های آموزشی به نام SPIM در دسترس است. EduMIPS64[۳۰] یک شبیه‌ساز CPU میپس بین پلتفرمی گرافیکی GPL است که به زبانJava/Swing نوشته شده‌است. این شبیه‌ساز از زیرمجموعهٔ گسترده‌ای از میپس۶۴ ISA پشتیبانی می‌کند و به کاربر امکان می‌دهد که بتواند به صورت گرافیکی ببیند هنگامی که یک برنامهٔاسمبلی توسط CPU اجرا می‌شود درخط لوله چه اتفاقی می‌افتد.

MARS[۳۱]برابرساز میپس بر پایهٔرابط کاربر گرافیکی دیگری است که برای استفاده در آموزش، مشخصاً برای استفاده با Computer Organization and Design هنسی، طراحی شده‌است.

WebMIPS[۳۲] یک شبیه‌ساز میپس مبتنی برمرورگر همراه با ارائهٔ تصویری یک پردازندهٔ خط لوله ای معمولی است. این شبیه‌ساز برای ردگیری رجیسترها هنگام اجرای گام‌به‌گام بسیار مفید است.

برابرساز آزاد پیشرفته تری در 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[۳۳] یک شبیه‌ساز مبتنی بر مرورگر است که یک زیرمجموعه از دستورهای میپس در آن ریز برنامه‌ریزی شده‌است. این شبیه‌ساز در یادگیری چگونگی عملکرد یک CPU مفید است (روتین‌های میپس، دام‌ها، توقف‌ها، فراخوانی‌های سیستمی و غیره ریز برنامه‌ریزی شده‌اند)

جستارهای وابسته

[ویرایش]

منابع

[ویرایش]
  1. «دربارهٔ معماری میپس بیشتر بدانید».
  2. 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: موقعیت (link)
  3. 123
    قیمت، چارلز (سپتامبر 1995).مجموعه آموزش MIPS IV (ویرایش 3.2)، MIPS Technologies, Inc.
  4. 12345678Sweetman, Dominic (1999).See MIPS Run. Morgan Kaufmann Publishers, Inc.ISBN 1-55860-410-3.
  5. "MIPS32 Architecture".Imagination Technologies. Archived fromthe original on 3 January 2014. RetrievedJanuary 4, 2014.
  6. "MIPS64 Architecture".Imagination Technologies. Archived fromthe original on 3 January 2014. RetrievedJanuary 4, 2014.
  7. "MIPS-3D ASE".Imagination Technologies. Archived fromthe original on 3 January 2014. RetrievedJanuary 4, 2014.
  8. "MIPS16e".Imagination Technologies. Archived fromthe original on 3 January 2014. RetrievedJanuary 4, 2014.
  9. "MIPS Multithreading".Imagination Technologies. Archived fromthe original on 3 January 2014. RetrievedJanuary 4, 2014.
  10. University of California, Davis."ECS 142 (Compilers) References & Tools page". Archived fromthe original on March 21, 2011. RetrievedMay 28, 2009.
  11. Rubio, Victor P."A FPGA Implementation of a MIPS RISC Processor for Computer Architecture Education"(PDF).New Mexico State University. Archived fromthe original(PDF) on April 15, 2012. RetrievedDecember 22, 2011.
  12. "Wave Computing Extends AI Lead by Targeting Edge of Cloud Through Acquisition of MIPS". 2018-06-15. Archived fromthe original on 25 November 2020. Retrieved5 February 2019.
  13. "Wave Computing® Launches the MIPS Open Initiative To Accelerate Innovation for the Renowned MIPS® Architecture". 2018-12-17. Archived fromthe original on 28 July 2021. Retrieved5 February 2019.
  14. "MIPS Processor ISA To Be Open-Sourced In 2019 - Phoronix".
  15. Yoshida, Junko (December 17, 2018)."MIPS Goes Open Source".EE Times.
  16. "Silicon Graphics Introduces Enhanced MIPS Architecture to Lead the Interactive Digital Revolution".Silicon Graphics, Inc. October 21, 1996. Archived fromthe original on July 10, 2012.
  17. 12Gwennap, Linley (November 18, 1996)."Digital, MIPS Add Multimedia Extensions""(PDF).Microprocessor Report.10 (15): 24–28. Archived fromthe original(PDF) on July 20, 2011.
  18. "Silicon Graphics Previews New High-Performance MIPS Microprocessor Roadmap" (Press release). May 12, 1997.
  19. 12345"MIPS Technologies, Inc. Enhances Architecture to Support Growing Need for IP Re-Use and Integration" (Press release).Business Wire. May 3, 1999. Archived fromthe original on 1 December 2018. Retrieved5 February 2019.
  20. "Latest Release of MIPS Architecture Includes Virtualization and SIMD Key Functionality for Enabling Next Generation of MIPS-Based Products" (Press release).MIPS Technologies. December 6, 2012. Archived fromthe original on December 13, 2012.
  21. "MIPS skips Release 4 amid bidding war".EE Times. December 10, 2012. Archived fromthe original on October 14, 2016.
  22. "MIPS – Market-leading RISC CPU IP processor solutions".imgtec.com. Archived fromthe original on 9 March 2016. Retrieved5 February 2019.
  23. "Silicon Graphics Introduces Compact MIPS RISC Microprocessor Code For High Performance at a Low Cost" (Press release). October 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 fromthe original on April 20, 2017.
  26. "Instruction Set Architecture - LinuxMIPS".www.linux-mips.org. Archived fromthe original on April 20, 2017.
  27. "Five Methods of Utilizing the MIPS® DSP ASE"(PDF). Archived fromthe original(PDF) on 30 December 2016. Retrieved5 February 2019.
  28. "OVP: Fast Simulation, Free Open Source Models. Virtual Platforms for software development". Ovpworld.org. Archived fromthe original on June 8, 2012. RetrievedMay 30, 2012.
  29. "Imperas". Imperas. March 3, 2008. Archived fromthe original on June 14, 2012. RetrievedMay 30, 2012.
  30. "EduMIPS64". Edumips.org. Archived fromthe original on May 7, 2012. RetrievedMay 30, 2012.
  31. "MARS MIPS simulator - Missouri State University". Courses.missouristate.edu. Archived fromthe original on May 2, 2012. RetrievedMay 30, 2012.
  32. "WebMIPS - MIPS CPU PIPLINED SIMULATION On Line". Archived fromthe original on December 31, 2012. RetrievedJanuary 13, 2012. (online demonstration)"Archived copy". Archived fromthe original on October 10, 2011. RetrievedJanuary 13, 2012.{{cite web}}: نگهداری یادکرد:عنوان آرشیو به جای عنوان (link) (source)
  33. "WepSim". (Web version with examples). Archived fromthe original on October 1, 2017. RetrievedApril 27, 2018."WepSim". (GitHub site with source). Archived fromthe original on January 3, 2018. RetrievedApril 27, 2018.

برای مطالعهٔ بیشتر

[ویرایش]

پیوند به بیرون

[ویرایش]
ریزپردازنده‌های میپس
General
processors
MIPS64
compatible
  • Loongson 3 Series
    • LS3A1000/LS3A1000-I(LS3A1000-i)
    • LS3A2000/LS3A1500-I
    • LS3A3000/LS3A3000-I(LS3A3000-i)
    • LS3A4000/LS3A4000-I(LS3A4000-i)
    • LS3B1000
    • LS3B1500
    • LS3B2000
    • LS3B3000
    • LS3B4000
Application
processors
MIPS32
compatible
MIPS64
compatible
ریزکنترل‌گرs
(embedded device)
M4K
4Kc/4KEc
MIPS32
compatible
Networking
4Kc/4KEc
5Kc
24Kc/24KEc
34Kc
  • Lantiq
    • AR188
    • VRX288
    • GRX388
  • Ikanos
    • Fusiv Vx175/173
    • Fusiv Vx180
    • Fusiv Vx185/183
74Kc
1004Kc
1074Kc
MIPS32
compatible
MIPS64
compatible
Gaming
various
ابررایانه
MIPS64
compatible
Aerospace
MIPS64
compatible
MIPS32
compatible
Classic
processors
معماری میپس
معماری میپس
معماری میپس
معماری میپس
معماری میپس
    فهرست‌ها
    ریزمعماری‌ها
    آی‌ای-۳۲ (۳۲-بیت)
    رومیزی ایکس۸۶/۶۴
    کم‌مصرف ایکس۸۶/۶۴
    معماری آرم
    محصولات کنونی
    آی‌ای-۳۲ (۳۲-بیت)
    X86-64 (64-bit)
    منحل‌شده
    Early x86 (۱۶ بیتی)
    آی‌ای-۳۲ (۳۲-بیت)
    X86-64 (64-bit)
    سایر
    مدل‌های محاسبه
    معماری رایانه
    مجموعه دستورالعمل‌ها
    انواع
    Execution
    خط لوله
    مخاطره‌ها
    خروج از دستور در حال اجرا
    Speculative
    رایانش موازی
    سطح
    چندریسمانی
    طبقه‌بندی فلین
    Processor
    performance
    انواع
    By application
    Systems
    on chip
    شتاب‌دهنده سخت‌افزاری
    کلمه
    تعداد هسته
    اجزاء
    Functional units
    دروازه منطقی
    ثبات سخت‌افزاری
    واحد کنترل
    دیتاپد
    مدار الکترونیکی
    مدیریت نیرو
    مرتبط
    برگرفته از «https://fa.wikipedia.org/w/index.php?title=معماری_میپس&oldid=43249643»
    رده‌ها:
    رده‌های پنهان:

    [8]ページ先頭

    ©2009-2026 Movatter.jp