مجموعه دستورالعمل: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
|||
خط ۱:
در علوم کامپیوتر، یک '''معماری مجموعه ی دستورالعمل''' (instruction set architecture ('''ISA'''))، نوعی مدل انتزاعی از یک کامپیوتر است که به آن '''معماری''' یا '''معماری کامپیوتر''' نیز می گویند. نمود یک ISA، مثلاً یک [[واحد پردازش مرکزی]]، پیاده سازی(
به طور کلی یک ISA، بیانگر انواع داده ی مورد پشتیبانی، [[ثبات پردازنده|رجیسترها]]، پشتیبانی سخت افزاری برای مدیریت [[حافظه دسترسی تصادفی|حافظه اصلی]]، ویژگیهای اساسی (همچون پایداری حافظه، [[حالت آدرسدهی|مد های آدرس دهی]]، [[حافظه مجازی|حافظه ی مجازی]]) و مدل ورودی/خروجی خانواده ای از پیاده سازی های ISA مورد نظر است.<br>
یک ISA، رفتار [[کد ماشین]] را که روی پیاده سازی های آن ISA اجرا میشود، مشخص می کند، به گونهای که وابستگی به مشخصات آن پیادهسازی نداشته باشد و بدین طریق موجب سازگاری باینری
(
اگر یک [[سیستم عامل]]، یک [[واسط دودویی کاربردی|رابط باینری اپلیکیشن]](
یک ISA را می توان با اضافه کردن دستورالعمل ها یا سایر قابلیت ها و یا اضافه کردن پشتیبانی برای آدرس ها و مقادیر داده ی بزرگتر، بسط داد. در این حالت یک پیاده سازی از ISA های بسط یافته را کماکان میتوان برای اجرای کد ماشین برای نسخههایی از همان ISA بدون بسط های ذکر شده، استفاده کرد. کد های ماشینی که از این بسط ها استفاده می کنند، فقط روی پیاده سازی هایی اجرا می شوند که از این بسط ها پشتیبانی کنند.<br>
این قابلیت های فراهم کردن سازگاری باینری، باعث شده است که ISA ها، یکی از اساسی ترین فرم های انتزاعی در رایانش باشند.
== مرور ==
معماری مجموعه دستورالعمل را باید از ریز معماری(
== طبقه بندی ISA ==
یک ISA را میتوان به شیوههای مختلفی طبقهبندی کرد. یک روش طبقه بندی معمول بر مبنای پیچیدگی معماری است. یک [[رایانه با دستورهای پیچیده|کامپیوتر با مجموعه دستورالعمل پیچیده]] (
سایر انواع ISA، عبارتند از: معماری های کلمه دستورالعمل بسیار بلند (
معماری هایی با پیچیدگیهای حتی کمتر مورد مطالعه قرار گرفته اند، نظیر: کامپیوتر مجموعه دستورالعمل حداقلی (
== دستورالعمل ها ==
خط ۲۵:
==== مدیریت داده و عملیات حافظه ====
* ''ست'' کردن یک رجیستر به یک مقدار ثابت<br>
* ''کپی'' کردن داده از یک مکان حافظه یا یک رجیستر به یک مکان حافظه یا یک رجیستر دیگر (یک دستورالعمل ماشین معمولاً move نام دارد، با این حال این اصطلاح گمراه کننده است). برای ذخیره کردن محتوای یک رجیستر، نتیجه ی یک محاسبه، یا استخراج داده ی ذخیره شده برای انجام یک محاسبه بعدی روی آن استفاده می شود. این ها معمولاً عملیات بارگذاری و ذخیره سازی (
* ''خواندن'' و ''نوشتن'' داده از ابزارهای سخت افزاری
خط ۵۰:
انتقال بلاک های بزرگ از حافظه (مثلاً، کپی کردن رشته یا انتقال از طریق دسترسی مستقیم به حافظه)<br>
محاسبات پیچیده روی اعداد صحیح یا اعداد اعشاری (جذر یا توابع متعالی نظیر: لگاریتم، سینوس، کسینوس، و ...)<br>
دستورالعمل های نوع یک-دستورالعمل-چندین-داده(
انجام یک دستورالعمل اتمیک "[[تست و ست]]" یا سایر دستورالعمل های اتمیک خواندن-تغییر-نوشتن.<br>
دستورالعمل هایی که عملیاتی را در ALU با یک عملوند از حافظه و نه از یک رجیستر انجام می دهند.<br>
خط ۶۱:
برخی مجموعه های دستورالعمل نامعمول، فاقد فضای آپ کد هستند؛ مثلاً در transport triggered architectures، فقط عملوند/عملوند ها وجود دارد.<br>
[[ماشین مجازی]] Forth و سایر مجموعه های دستورالعمل "بدون عملوند"، فاقد فضا برای مشخص کننده ی عملوند هستند؛ نظیر برخی [[ماشین پشته ای|ماشین های پشته]] از جمله NOSC . <br>
دستورالعمل های شرطی معمولاً دارای یک فضا برای گزاره هستند- گذاره درواقع، چند بیت کوتاه است که شرایط خاصی را کد گذاری می کند، که موجب می شود یک عملیات انجام شود و نه اینکه انجام نشود. برای مثال، یک دستورالعمل انشعاب شرطی، در صورتیکه شرایط مورد نظر صحیح شود، کنترل را منتقل می کند به گونه ای که روند اجرا به بخش متفاوتی از برنامه برود و اگر شرایط غلط باشد کنترل را منتقل نمی کند و روند اجرا به شکل متوالی ادامه پیدا میکند. همچنین، برخی مجموعههای دستورالعمل دارای حرکت های شرطی هستند، به گونه ای که اگر شرایط صادق باشد این حرکت اجرا خواهد شد و داده مذکور در مکان مورد نظر ذخیره خواهد شد و اگر شرایط مورد نظر صادق نباشد، اجرا نخواهد شد و مکان مورد نظر نیز تغییر پیدا نخواهد کرد. معماری IBM z/Architecture دارای یک دستورالعمل ذخیره سازی شرطی مشابهی است. برخی دستورالعملهای معدود حاوی یک فضای گزاره (
=== تعداد عملوند ها ===
|