عنوان: معماری مجموعه دستورالعمل برای هسته پردازشگرVLIW DSP RISC 32 بیتی
مقدمه:
پردازش سیگنالهای دیجیتال به طور فزاینده ای در کاربردهای دنیای واقعی مانند ارتباطات تصویر برداری پزشکی رادار و سونار و باز سازی صدا با دقت مناسب وشباهت زیاد نسبت به اصل آن، اکتشاف نفت و غیره اهمیت پیدا کرده است. نظر به اینکه برنامههای کاربردی روز به روز پیچیدهتر میشوند، الگوریتمهای پردازش سیگنال دیجیتال به طور معمول به تعداد زیادی عملگرهای ریاضی که بر روی دادههای نمونه با سرعت و تکرار انجام میشوند نیازمند است. سیگنالهای گرفته شده از صوت و تصویر به طور مداوم از آنالوگ به دیجیتال تبدیل میشوند، به صورت دیجیتال دستکاری میشوند سپس به فرم آنالوگ تبدیل میشوند. بیشتر برنامههای پردازش سیگنال دیجیتال قیودی برای latency دارند. عمل پردازشگرهای سیگنال دیجیتال باید در زمان مشخصی به پایان برسد و پردازشهایی که بعد از این زمان انجام میشوند قابل دوام نیستند. بیشتر میکروپروسسورهای عمومی و سیستمهای عامل میتوانند الگوریتمهای پردازش دیجیتال عملاً نیاز به انجام اعمال ریاضی زیاد روی دادهها با سرعتی بالا و پی درپی دارند سیگنالها (احتمالاً از گیرندههای صدا یا تصویر) پیوسته از انلاگ به دیجیتال تبدیل شده بصورت دیجیتال بکار برده و تغییر میکنند و سپس دوباره به فرم انلاگ همانطور که در دیاگرام زیر قابل مشاهده است تبدیل میشود.
بسیاری از برنامههای (DSP) بخاطر تاخیر کار سیستم با مشکل مواجه میشوند چون عملیات (DSP) باید در زمان ثابت کامل شود، و پردازش نمیتواند به تعویق بیفتد. پردازش سیگنالهای دیجیتال با شیوه ای کارآمد باعث میشود سیستم مطلوبتر باشد. پردازنده دیجیتال یک پردازنده تخصصی است که معماری آن برای عملیاتهای مربوط به نیازهای پردازش سیگنال دیجیتال بهینه شده است. الگوریتمها و توابع DSP معماری مناسب برای پردازنده را مشخص میکنند. اگر چه پردازندههای DSP در چند دهه اخیر تغییرات زیادی کرده اند، برخی ویژگیها همچنان در DSPهای امروزی هم به چشم میخورد. پردازنده DSP به بانکهای متعدد حافظه با باسهای مستقل، دستور العملهای خاص، مدهای آدرس دهی، کنترل و لوازم جانبی نیاز دارد. معماری DSPهای مدرن را میتوان به 3 یا 4 دسته تقسیم کرد (نسل ها).در پردازندههای DSP معمولی، یک دستورالعمل در یک سیکل ساعت داده و اجرا میشود.این پردازندهها عمدتا شامل واحد ضرب (واحد MAC) و ALU هستند،اما واحدهای اجرایی به مقدار کمی افزایش داشته اند. پردازندههای نمونه در این دسته عبارتند از خانواده ADSP-21xx شرکت تگزاس اینسترومنتز، خانوادهTMS320C2xx شرکت آنالوگ دیوایس ، و خانواده DSP560xx شرکت موتورولا. پردازندههای DSP مانند Motorola DSP563xx و Texas Instruments TMS320C54x سرعت کلاک بالاتری کار میکند و اغلب شامل مقدار متوسطی از سخت افزار اضافی (barrel shifter, instruction cache)، به منظور بهبود عملکرد در الگوریتم DSPهای متداول است. در این پردازندهها نیز ترجیح داده میشود خطوط لوله عمیقتر باشد.
نسل دیگری از DSPها با پیشرفت و توسعه معماری DSP ساخته شد، به عنوان مثال، اضافه کردن واحد اجرای موازی، یعنی ضرب کننده و جمع کننده دوم ساخته شد. بخشهای اضافه شده سخت افزار معمولا با افزایش طول مجموعه دستورالعملها همراه است و این امکان را میدهد که عملیاتهای متعدد در یک دستور کدگذاری میشود و به صورت موازی اجرا شوند. این رده از پردازندههای DSP معمولا باس داده بزرگتری دارند، و این امکان فراهم میشود که تعداد کلمات داده بیشتری در هر سیکل کلاک دریافت شود. آنها همچنین میتوانند از کلمات دستور گستردهتری استفاده کنند تا دستورالعملهای موازی در داخل یک دستور گنجانده شود. ایراد این پردازندههای DSP سخت بودن برنامه نویسی به زبان اسمبلی است.
پردازندههای Multi-issue از دستور العملهای سادهای استفاده میکنند که معمولا کد یک عملیات ساده است. این پردازنده اگر دستور العملها را بصورت گروههای موازی و مجزا از هم تقسیم و بطور همزمان پردازش کنیم به سطح بالایی از موازی سازی میرسیم. استفاده از دستور العملهای ساده دیکد کردن و اجرای دستور العملها را ساده میکند، و این امکان را برای پردازندههای Multi-issue فراهم میآورد که با سرعت کلاک بالاتری نسبت به پردازندههای DSP معمولی عمل کنند. VLIW (کلمه دستورالعمل بسیار طولانی) و سوپر اسکالر دو روش اجرای این معماریاند که در آنها چند دستورالعمل به صورت موازی اجرا میگردد. بزرگترین تفاوت بین آنها چگونگی گروه بندی دستورالعملها برای اجرای موازی است.
در این جا در رابطه با RISC (کاهش مجموعه دستورالعملهای محاسباتی) ISA (معماری مجموعه دستورالعمل) برای DSP هسته پردازنده VLIW 32 بیتی ممیز ثابت بحث خواهیم کرد. بعلاوه ، توسعه و افزایش دستور العمل هایی که در برنامههای کار بردی صدا و تصویر بکار میرود در این جا ارائه خواهد شد.