در بازار محصولات نظامی، رقابت فناوری ها و استانداردها برای جلب رضایت خریداران، مطمئناً کمتر از بازار محصولات دیگر نیست. گذرگاه VME یا CompactPCI؟ سوئیچ های StarFabric یا InfiniBand؟ پردازندهای Freescale یا Intel؟ در یک جهان ایدهآل از امکانات و منابع نامحدود، هر یک از سازندگان کلیهی استاندارد ها را رعایت می کنند و همهی فناوری ها را بکار می گیرند. اما جهان ما، یک جهان ایدهآل نیست.
با دیدی سطحی، انتخاب مشابه دیگری خودش را در حوزه پردازش سیگنال نشان می دهد. آیا DSP سخت افزار مورد نیازمان است یا اینکه FPGA مناسب تر است؟ آیا این دو رقیبی برای یکدیگرند؟
در پاسخ به این پرسش باید گفت، مطمئناً نه این از دیگری بهتر است و نه آن رقیب این دیگری است. گاهی اوقات DSP بهتر است، گاهی FPGA و حتی گاهی یک رویکرد طراحی دیگر؛ اینها همگی بستگی به مشخصات کاربرد مورد نظرمان دارد. هر کدام از این دو جایگاه خودش را دارد. در صنعتی که هر روزه در معرض خطر بدبینی قرار دارد- بسیاری از رسانه ها طوری پوشش خبری می دهند که به نظر رسد که FPGAها دارند DSPها را از میدان خارج می کنند- این واقعیتی است که به راحتی میتواند به دست فراموشی سپرده شود. این مقاله تلاش خواهد کرد که این موازنه را تصحیح کند.
مسلماً این واقعیتی است که فناوری FPGA، با بهبود قابل توجهی که در قیمت و عملکرد در طول چند سال گذشته داشته، اکنون برای طراحان سیستمی که تا چندی پیش تنها به استفاده از فناوری DSP فکر می کردند، بسیار جذاب شده است.
در آغاز باید به این نکته اشاره شود که پردازش سیگنال دیجیتال نه تنها یک کاربرد منفرد نیست، بلکه بیش از یک رابطهی پیچیده بین تعدادی کاربرد است که به راحتی بتوان بطور کلی و بدون ورود به جزئیات، و با همه تفاصیل شرح داده شود. یک توسعهدهندهی ماهر با بکارگیری معیارهایی که همیشه آنها را مد نظر داشته است، توانایی لازم برای انتخاب گزینهی درست را دارد. او معمولاً نه تنها به معیار عملکرد، بلکه همچنین به توان مصرفی، هزینهها، محدودیت های زمانی برای عرضه کالا به بازار، مصرف حافظه، و الزامات برنامهنویسی و خیلی موارد دیگر توجه دارد.
برای نمونه، یک توسعهدهنده ماهر با بررسی این موضوع که آیا قابلیتهای (عملیات) مورد نیاز برای پردازش سیگنال دیجیتال می توانند با استفاده از یک FPGA پیادهسازی شوند، یا نه، کارش را آغاز میکند. مثلاً، عملیات ممیز شناور به خوبی در یک FPGA قابل پیاده سازی نیست، و چنانچه دقت یکی از نیازهای کلیدی مورد نظر کاربرد باشد، آنگاه عملیات ممیز شناور معمولاً به یک حوزهی بالاتر محول خواهد شد. کاربردهایی از قبیل سیستم جاسوسی علائم مخابراتی (SIGINT) و سیستم جمعآوری و شنود علائم الکترونیکی (ELINT) که نیاز به عملیات حجیم تبدیل فوریه سریع (به عنوان مثال، یک میلیون نقطه یا بیشتر) دارند، و معمولاً مستلزم عملیات ممیز شناور میباشند.
به طور مشابه، پردازشی که برای تعیین معکوس یک ماتریس لازم است، با یک DSP یا یک پردازندهی همه منظوره (GPP) بهتر انجام می شود. (به عنوان یک نمونه، یک سیستم آنتن هوشمند یا آنتنی باقابلیت شکلدهی پرتو، که نمونههای دریافتی از چندین آنتن را در وزنهایی ضرب میکنند.) اگرچه یک FPGA برای انجام عملیات ضرب پرسرعت کاملاً مناسب است، اما محاسبهی پویای وزنها مستلزم تعیین معکوس ماتریس است، بنابراین بهتر است این کار با استفاده از یک GPP یا یک DSP اختصاصی پیادهسازی گردد.
در اینجا شایسته است به بررسی برخی از تفاوت های اساسی بین DSPها، GPPها و FPGAها بپردازیم. به عنوان نمونه، DSPها میتوانند عملیاتی را با سرعت بسیار بالایی انجام دهند، اما صرفاً به انجامِ تعداد معدودی از عملیات در یک زمان، محدود شدهاند. از سوی دیگر، FPGAها معمولاً دارای سرعت عملیاتی (فرکانس کاری) کمتری نسبت به DSPها و GPPها هستند، اما قادر به انجام تعداد نامحدودی از عملیات به صورت همزمان (موازی) می باشند.
به طور مشابه، DSPها و GPPها دارای واحدهای محاسباتی ممیز شناور بسیار خوبی جهت افزایش حوزه های دقت یا پویایی می باشند، بنابراین بهترین گزینه برای الگوریتم های ممیز شناور پیچیده هستند. FPGAها در عملیات ممیز ثابت و موازیکاری عملیات بسیار بهتر هستند، بنابراین برای عملیات ریاضی ممیز ثابت از قبیل فیلترینگ بسیار مناسبتر هستند.
ممکن است در ظاهر مطالب گفته شده در بالا، بخاطر اشاره به دلایل ممکنی که چرا ممکن است DSP به FPGA ترجیح داده شود، نوعی تلاش برای محبوب جلوه دادن و طرفداری از DSP به نظر رسد. به هر حال هدف از طرح این موضوع، برقراری یک توازن و تعامل بوده است. با وجود بسیاری از مطالبی که نوشته می شود، FPGA، پاسخگو هر نیاز توسعهدهنده نیست، اما بدون شک برای بعضی از کاربردها مزیتهای مناسب فراوانی را فراهم می آورد.
جدول 1 ضعف ها و قوت های هر یک از آنها را در حوزه های مختلف متذکر می شود.
البته، این به طور حتم یک قضاوت شخصی است. کاربرد هدف تعیین می کند که آیا این یکی نسبت به دیگری برتر است یا نه.
برای نمونه، کثرت FPGAهایی به عنوان کمک پردازنده، در کنار DSPها یا GPPها بکار گرفته میشوند، بسیار مفید می باشند. همان طور که در قبل اشاره شده، کاربردهایی مانند شکل دهی پرتو و فیلترینگ پرسرعت می توانند بطور موثر در یک FPGA پیاده سازی و اجرا شوند. بنابراین، داشتن یک FPGA با قابلیت برنامه ریزی، معماری سیستم را بسیار ساده می کند. به علاوه، این معماری معمولاً نرخ تبادل داده ها را کاهش داده و بدین گونه بار پردازشی کاهش می یابد. قابلیت بازپیکربندی موجب جذابیت تنوع کاربردهای محصول و تمایزشان از بوردهای صرفاً با کاربرد خاص می گردد.
FPGAبا قابلیت بازپیکربندی کاربران را قادر می سازد تا قابلیت های مورد نظرشان را به بورد اضافه کنند و باعث انجام هر چه بیشتر فرایند یکپارچه سازی سیستم شوند. استفاده از IP Coreهای از پیش نوشته شده که اغلب جهت تسریع آماده سازی سخت افزار هدف قابل اهمیت است، باعث ساده شدن معماری نرم افزار می شود، و این موضوع در مورد ماژول های پردازشی بزرگ، در هنگام به ارتقاع قابلیت های سیستم بسیار مفید است.
در واقع، هر بحثی در مورد فناوری پردازش سیگنال، بدون آنکه صحبتی از نقش GPPها شود، ناقص خواهد بود. همان طوری که فناوری FPGA برای بعضی از کاربردها مناسب است و فناوری DSP برای کاربردهای دیگر، کاربردهایی وجود دارد که در آنها استفاده از یک GPP ارجحتر است.
به عنوان نمونه، قلب بسیاری از بوردهای DSP، یک CPU است. این معماری بخاطر دلایلی برای بسیاری از خریداران جذاب است. در کاربردهای فراوانی، مطمئناً این سخت افزار مستعد عملکرد و بازدهی بالاتر از یک سخت افزار مبتنی بر FPGA یا DSP میباشد. اما این فقط قسمتی از داستان است. تجربه و تخصص بخش اعظمی از مهندسان در برنامهنویسی به زبانهای C و C++، شاید در جذابیت این رویکرد قابل توجه باشد. آن طرف دیگر، سیستم عامل های بسیاری موجود دارد که از این فنآوری پشتیبانی می کنند و همچنین مجموعه ابزارهای توسعه خوبی برای پشتیبانی از این فنآوری وجود دارد. انتخاب رویکرد استفاده از یک GPP به جای یک DSP یا FPGA ممکن است منجر به کاهش دوره توسعه سیستم و زمان عرضه محصول به بازار شود.
ممنون از شما
جالب و مفید بود