موضوع مقاله: دی‌ال‌اکس | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # دی‌ال‌اکس | مقدمه: دی‌ال‌اکس (که به صورت «دیلاکس» تلفظ می‌شود) یک معماری پردازنده مبتنی بر RISC است که توسط جان هنسِی و دیوید پترسون طراحی شده است؛ این دو به ترتیب طراحان اصلی پروژه‌های و برکلی ریسک بوده‌اند. | ## بخش 1: دی‌ال‌اکس | این دو پروژه، نمونه‌های محک طراحی ریسک به‌شمار می‌روند (نام دی‌ال‌اکس نیز از طراحی برکلی گرفته شده است). دی‌ال‌اکس در اصل نسخه‌ای ساده‌شده، پاک‌سازی‌شده و مدرن‌شده از پردازنده میپس دانشگاه استنفورد است. دی‌ال‌اکس از یک معماری ساده ۳۲ بیتی بارگیری/ذخیره‌سازی (به انگلیسی: load/store) بهره می‌برد که تا حدودی با پردازنده‌های مدرن معماری میپس متفاوت است. از آنجا که دی‌ال‌اکس عمدتاً با هدف آموزش طراحی شده بود، این معماری به‌طور گسترده‌ای در دوره‌های دانشگاهی مربوط به معماری کامپیوتر مورد استفاده قرار می‌گیرد. پروژه ASPIDA منجر به هسته ای با ویژگی‌های خوب بسیاری شد: متن باز است، از پشتیبانی می‌کند، طراحی ناهمزمان دارد، از چندین مجموعه دستورالعمل پشتیبانی می‌کند و توسط ای‌سیک (به انگلیسی: ASIC) تأیید شده است. این پیاده‌سازی با PVS مشخص شده، در وریلاگ پیاده‌سازی شده و روی یک اف‌پی‌جی‌ای از زایلینکس اجرا می‌شود. تاریخچه در معماری MIPS استنفورد، یکی از روش‌های استفاده‌شده برای افزایش کارایی این بود که همه دستورالعمل‌ها باید در یک سیکل کلاک به پایان برسند. این امر باعث می‌شد کامپایلرها در مواردی که اجرای یک دستورالعمل قطعاً بیشتر از یک سیکل کلاک طول می‌کشید، دستور NOP وارد کنند؛ بنابراین، فعالیت‌های ورودی و خروجی (مانند دسترسی به حافظه) به‌طور خاص این رفتار را تحمیل می‌کردند و در نتیجه، منجر به افزایش بیهوده حجم برنامه می‌شدند. | ## بخش 2: دی‌ال‌اکس | به‌طور کلی، برنامه‌های میپس مجبور بودند تعداد زیادی دستورالعمل بی‌فایده NOP داشته باشند، که رفتاری ناخواسته بود. معماری دی‌ال‌اکس اجرای تک سیکل کلاک را تحمیل نمی‌کند و در نتیجه از این مشکل مصون است. در این حالت، دستورالعمل‌های طولانی در واحدهای عملیاتی خود «متوقف» می‌شوند و سپس زمانی که قادر به اتمام اجرا باشند، مجدداً به جریان دستورالعمل بازگردانده می‌شوند. از دید بیرونی، این رفتار طوری به نظر می‌رسد که گویی اجرای برنامه به‌صورت خطی صورت گرفته است. دستورالعمل‌های نوع R، دستورالعمل‌های کاملاً مبتنی بر ثبات هستند که ارجاع به سه ثبات درون یک کلمه ۳۲ بیتی دارد. دستورالعمل‌های نوع I دو ثبات را مشخص می‌کنند و از ۱۶ بیت برای نگهداری یک مقدار فوری استفاده می‌کنند. در نهایت، دستورالعمل‌های نوع J مربوط به پرش هستند و شامل یک آدرس ۲۶ بیتی می‌باشند. در مورد دستورالعمل‌های نوع R، این بدان معناست که فقط ۲۱ بیت از کلمه ۳۲ بیتی استفاده می‌شود، که به ۶ بیت پایین‌تر اجازه می‌دهد به عنوان «دستورالعمل‌های توسعه‌یافته» استفاده شوند. | ## بخش 3: دی‌ال‌اکس | دی‌ال‌اکس می‌تواند بیش از ۶۴ دستورالعمل را پشتیبانی کند، مادامی که آن دستورالعمل‌ها صرفاً روی ثبات‌ها کار کنند. خط لوله دی‌ال‌اکس، مانند طراحی میپس، عملکرد خود را بر اساس استفاده از خط لوله دستورالعمل بنا نهاده است. در طراحی DLX، این یک طراحی نسبتاً ساده است، که در مفهوم، ریسک «کلاسیک» محسوب می‌شود. ثبات IR برای نگهداری دستورالعمل بعدی که در سیکل‌های کلاک متوالی مورد نیاز خواهد بود استفاده می‌شود؛ به همین صورت، ثبات NPC برای نگهداری PC ترتیبی بعدی استفاده می‌شود. ID - واحد رمزگشایی دستورالعمل عملیات: دستورالعمل را رمزگشایی کرده و برای خواندن ثبات‌ها به فایل ثبات دسترسی پیدا می‌کند. این واحد دستورالعمل را از IF دریافت می‌کند و کد عملیاتی و عملوند را از آن دستورالعمل استخراج می‌کند. EX – واحد اجرا/چرخه آدرس مؤثر عملیات: واحد محاسبه و منطق (ALU) روی عملوندهایی که در چرخه قبلی آماده شده‌اند، عمل می‌کند و بسته به نوع دستورالعمل دی‌ال‌اکس، یکی از چهار عملکرد زیر را انجام می‌دهد. ارجاع به حافظه: دستورالعمل ثبات-ثبات ALU، دستورالعمل ثبات-فوری ALU پرش شرطی MEM - واحد دسترسی به حافظه دستورالعمل‌های دی‌ال‌اکس فعال در این واحد عبارتند از بارگذاری، ذخیره‌سازی و پرش‌های شرطی. | ## جمع‌بندی | نتیجه را -چه از سیستم حافظه و چه از واحد محاسبه و منطق (ALU) دریافت شود- در فایل رجیستر بنویسید.