چرا باید در پروژه ها به خرید برد FPGA اقدام کنیم؟ و سوال مهم تر آنکه برای چه پروژه هایی باید به خرید برد FPGA اقدام کنیم؟ در این مطلب میخواهیم به این سوال پاسخ دهیم و جهت پاسخ به بررسی خاصیت های FPGA و در برخی موارد به مقایسه آن با پردازنده های دیگر خواهیم پرداخت، با ما همراه باشید تا در آخر مطلب یک هدیه به شما تقدیم می کنیم.
اولین و مهمترین دلیل برای خرید برد FPGA و کلا پردازش سیگنال با FPGA “قابلیت پردازش موازی” است به این معنا که یک هسته CPU در یک لحظه (در یک لبه بالا رونده کلاک) فقط یک پردازش میتواند انجام دهد (هر هسته CPU در هر لبه کلاک فقط یک دستور اسمبلی را انجام میدهد).
یک مثال از نعمت پردازش موازی در زندگی روزمره، وقتی به دقت به اطرافمان نگاه میکنیم میبینیم زمانی که ما در حال صحبت تلفنی هستیم، افراد بیشمار دیگری هم در حال تماس تلفنی هستند، کامپیوتری که پردازش و انتقال بخشی از این سیگنهال های فوق سنگین را به عهده دارد، به راستی! باید چند هسته پردازنده داشته باشد؟ پس اینجا یک خلا به وجود میاید که پر نمیشود مگر با سیستمی که توانایی پردازش موازی را داشته باشد. در کل سیستمی که بتواند چندین پردازش را به صورت موازی و همزمان انجام دهد دوای خیلی از دردهای سیگنالی دنیای امروز را درمان خواهد شد.
بهینه سازی سخت افزار دلیل دیگری است که مهندسین را مصمم میکند تا برای انجام پروژه ها به خرید برد FPGA روی بیاورند. و اما بهینه سازی سخت افزار به چه معناست؟ به این معنا که در کامپیوترها، میکروکنترلرها و … یک سخت افزار از پیش ساخته شده، شما محکوم به استفاده از یک سیستم 8 بیت یا 32 بیت یا 64 بیت و … هستید.
یا به عنوان مثال دیگر در ارتباط سریال جهت انتقال داده ها توانایی تعداد ارسال بیت به دلخواه را ندارید و بسیاری موارد دیگر که از پیش در سخت افزار طراحی شده است و شما توانایی تغییر در ساختار آنها را ندارید. اما در FPGA کاربر میتواند سیستم را با توجه به نیاز خود تغییر دهد و بهینه سازی کند تا به بهترین نقطه ی توان و عملکرد و بازدهی در سخت افزار دست یابد.
همچنین در خرید برد FPGA در واقع یک برد real time خریداری میکنیم به بیان دیگر تنها جایی که میتوان ادعای پردازش در زمان واقعی کرد، سخت افزار است. بیایید یک سوال را مطرح کنیم، فرض کنید شما پیامکی را به مخاطب خود ارسال میکنید و پس از 2 دقیقه او این پیام را دریافت میکند.
خب این که مشکلی ندارد اما در یک مثال مشابه فرض کنید در حال صحبت تلفنی با یک شخص هستید، اگر صحبت کنونی شما پس از 2 دقیقه به گوش مخاطب شما برسد و همچنین صحبت مخاطب شما پس از 2 دقیقه به گوش شما برسد، آیا از این گفتگوی تلفنی راضی خواهید بود و به آن ادامه میدهید؟
همچنین فرض کنید که قرار است در یک سیستم هواپیمایی به محض رسیدن هواپیما به ارتفاع کمتر از 20 متری و باز نبودن چرخ ها به خلبان هشدار دهد و یا خودکار چرخ ها را باز کند. آیا اگر این عمل چند دقیقه طول بکشد سیستم شما چند نفر را رهسپار دیار باقی میکند؟!
در FPGA شما داده هایی که نیاز به پردازش آن دارید را به سیستم وارد میکنید نهایتا بعد از یک مدت تاخیر (در حد نانو تا میلی ثانیه) داده های پردازش شده را تحویل خواهید گرفت و این روند همیشه و تحت هر شرایطی ثابت خواهد بود مگر اینکه خودتان به هر دلیلی بخواهید پردازش در زمان واقعی متوقف شود.
باید به این نکته توجه کرد که پردازش در زمان واقعی روز به روز اهمیت بیشتری پیدا کرده است. تا حدی که در کوچکترین مسائل روزمره ما ورود پیدا کرده است.
به عنوان مثال فرض کنید شما در حال بازی اکشن (کانتر!) به صورت اینترنتی باشید آیا اگر فرایند بازی طوری باشد که شما دقیقا به سر حریف شلیک کرده باشید اما به دلیل سرعت پایین اینترنت رقیب شما 10 متر جلوتر بوده باشد! آیا به بازی ادامه خواهید داد؟ خب اینجا حجت پردازش زمان واقعی را بر شما و تمام کاربران IRANFPGA تمام کردیم، برویم سر قدرت های دیگری که با خرید برد FPGA به شما داده میشود
فرض کنید موبایلتان را برای تعمیر پیش تعمیر کار برده اید، با توجه به اینکه امروزه موبایل یکی از اعضای بدن است! اگر تعمیرکار در مورد زمان تحویل به شما بگوید که ممکن است تعمیر، یک روز تا یک ماه طول بکشد.
حال آنکه تعمیرگاه دیگری به شما میگوید که دو روز دیگر موبایل را به شما تحویل خواااهد داد. موبایلتان را به کدام تعمیرگاه خواهید سپرد؟ نرخ هر دو هم برابر است، موبایلتان را به کدام تعمیرگاه خواهید سپرد؟
بله مطمعنا باید موبایلتان را به برد FPGA میسپارید! چرا که با اطمینان زمان تحویل را به شما میگوید، حال آنکه در میکروکنترلرها ممکن است به دلیل هر تاخیر (وقفه) این زمان به طول بیانجامد. و خلاصه مطلب آنکه به شما اطمینان خاصی در جهت زمان دقیق انجام نخواهد داد، ممکن است شما هم با این مشکل روبه رو شده باشید که میکرو به وقفه میرود و گاهی اوقات تا زمان بازگشت یک پردازش مهم را از دست میدهد.
قابلیت تغییر برنامه منجر به خرید برد FPGA خواهد شد اما میکروکنترلرها هم که این خاصیت را دارند! چرا باید آن را به عنوان یک قابلیت مطرح کرد؟! به دلیل اینکه اینجا هدف مقایسه FPGA با میکروکنترلرها نیست بلکه هدف مقایسه با پردازشگر دیگری است که اتفاقا زیاد با FPGA ها مقایسه میشود، به نام ASIC.
فرض کنید یک اتوموبیل خریده اید و با این اتوموبیل شما هر روز میتوانید با بیشترین سرعت ممکن، سرکار بروید و از سرکار برگردید، اما با این اتوموبیل توانایی سفر به هیچ جای دیگری را نداشته باشید! یعنی این اتوموبیل فقط برای این ساخته شده است که مسیر خانه شما تا محل کارتان را با بهترین زمان ممکن طی کند اما قادر به انجام کار دیگری نیست! این داستان در مورد ASIC هم صادق است، هرچند در عملکرد بهتر ASIC ها شکی نیست اما فقط برای یک کار ساخته شده اند و درواقع ساختار آنها تغییر نمیکند، همین عامل باعث میشود که خرید برد FPGA در این مورد انتخاب بهتری از ASIC ها باشند.
این مطلب ادامه دارد….