تبلیغات
باران الکترونیک - مقایسه بین پردازنده های ‏ARM، ‏AVR، ‏DSP‏ و ‏FPGA
جمعه 14 تیر 1392  09:39 ب.ظ
نوع مطلب: (FPGA ،DSP ،ARM ،) توسط: امیرحسین رستمی

در این مقاله به مقایسه، تفاوت ها. کاربردهای پردازنده های مختلف پرداخته ایم.
برای این که بتوانیم تفاوت بین این­ها را درک کنیم ابتدا به بیان ساختار هر یک و کاربردهایشان می­پردازیم:

میکرو کنترلر AVR

میکرو کنترلرهای AVR دارای معماری RISC (Reduced Instruction Set Architecture) می­باشند یعنی در هر کلاک می­توانند یک دستور ساده، مانند جابجایی عدد از حافظه به رجیستر را انجام دهند. این میکروها عموما 8 بیتی می­باشند. میکرو کنترلرهای ‏AVR‏ ‏ شامل 5 خانواده می­باشد که در ادامه به همراه ویژگی هر خانواده آورده شده است:


برای دیدن مقاله کامل به همراه دانلود فایل PDF روی ادامه مطلب کلیک کنید.




برای این که بتوانیم تفاوت بین این­ها را درک کنیم ابتدا به بیان ساختار هر یک و کاربردهایشان می­پردازیم:

میکرو کنترلر AVR

میکرو کنترلرهای AVR دارای معماری RISC (Reduced Instruction Set Architecture) می­باشند یعنی در هر کلاک می­توانند یک دستور ساده، مانند جابجایی عدد از حافظه به رجیستر را انجام دهند. این میکروها عموما 8 بیتی می­باشند. میکرو کنترلرهای ‏AVR‏ ‏ شامل 5 خانواده می­باشد که در ادامه به همراه ویژگی هر خانواده آورده شده است:

1)     tinyAVR

·         1 تا 16 کیلو بایت حافظه فلش

·         8 تا 32 پایه

2)     megaAVR

·         4 تا 256 کیلوبایت حافظه فلش

·         28 تا 100 پایه

3)     AVR XMEGA

·         16 تا 384 کیلوبایت حافظه فلش

·         44 تا 100 پایه

4)     AVR32 UC3

·         64 تا 512 کیلوبایت حافظه فلش

·         48 تا 144 پایه

5)     AVR32 AP7

·         فرکانس 150 مگا هرتز

·         196 تا 256 پایه

این میکرو کنترلرها برای کارهای کنترلی مناست می­باشند. در حقیقت میکروکنترلرها برای انجام پروژه­های کوچک جایی که نیاز به عملیات پردازشی نمی­باشد بهترین انتخاب می­باشند.

کاربردهای AVR عبارتند از:

       استفاده در سیستم­های امنیتی

avr

       استفاده در پرینترها

       کنترل روشنایی

       کنترل موتور

ARM

ARM یک میکرو کنترلر یا میکروپروسسور 32 بیتی با معماری RISC می­باشد.  ARM7 یک میکروکنترلر قوی با فرکانس کاری بین 66 مگاهرتز تا 133 مگاهرتز می­باشد. در حالی که ARM11 یک میکروپروسسور با فرکانس کاری بین 350 تا 550 مگاهرتز می­باشد. این میکروها دارای کاربردهای مختلف و زیادی می­باشند و بیش­تر در سیستم­های کاربر پسند که نیازمند ظاهری زیبا می­باشند استفاده می­شوند. دلیل این امر این است که ARM برای اجرای سیستم عامل­های مختلف مانند لینوکس و ویندوز CE مناسب می­باشد. کاربرد می­تواند برنامه مورد نظر خود را در برنامه ویژوال استودیو به صورت گرافیکی بنویسد، به صورت فایل .exe دربیاورد و روی سیستم عامل این پردازنده نصب کند.

از کاربردهای ARM می­توان به موارد زیر اشاره کرد:

       پایانه­های بانکیPOS

       سیستم­های موقعیت یاب GPS

       تلفن­های همراه (مانند N8)

       دوربین­های عکس برداری و فیلم برداری دیجیتال

       Microsoft Surface

       تبلت

       دستیار دیجیتالی شخصی یا PDA

ARM

DSP

واژه DSP مخفف Digital Signal Processing یا Digital Signal Processor می باشد.

پردازش سیگنال های دیجیتال(Digital signal processing) شامل نمایش دیجیتالی سیگنال ها و استفاده از سیستم های دیجیتالی برای تحلیل کردن، تغییر دادن، ذخیره سازی یا استخراج اطلاعات از سیگنال های دیجیتالی می باشد.

DSP  (digital signal processor) مدار مجتمعی است كه برای پردازش دیتا با سرعت بالا طراحی شده است و در صدا، تصویر، مخابرات و ... كاربرد دارد.

پردازش سیگنال های دیجیتالی به طور طبیعی نیازمند تعداد زیادی محاسبات به صورت A=B×C+D می باشد. شاید این عمل ساده به نظر برسد، اما وقتی كه به سرعت نیز نیازمندیم، اختصاص دادن یك سخت افزار برای اجرای این عمل خیلی مفید خواهد بود.

بیشتر DSP ها دستور عمل ویژه ای دارند كه به آن ها اجازه می دهد كه عملیات ضرب، جمع و ذخیره كردن نتیجه را در یك سیكل انجام دهند. این دستور عمل معمولاً MAC (Multiply,Accumulate) نامیده می شود.

امروزه انواع مختلفی از پردازنده های DSP به صورت تجاری در دسترس هستند. در جدول زیر تعدادی از پردارنده های DSP رایج خلاصه شده اند. 

در گروه ساده و ارزان قیمت، از شرکت TI خانواده TMS320C2000 (C24x and C28x)، از شرکت Analog Devices خانواده ADSP-218x و از شرکت Freescale خانواده DSP568xx قرار دارند. این پردازنده های DSP شامل ضرب کننده های سخت افزاری و  شیفت دادن هستند و در هر سیکل یک دستورعمل را اجرا می کنند. همچنین آن ها از دستورعمل های پیچیده ای که چندین عملیات را از قبیل ضرب، جمع و جدید کردن آدرس اشاره گر اجرا می کنند، استفاده می کنند. آن ها کارایی خوب را  همراه با مصرف برق و حافظهء مورد استفادهء نسبتاً کم فراهم می کنند. بنابراین به طور گسترده در وسایل موتوری، مصرف کننده های الکترونیکی، درایورهای هارد دیسک و مودم ها به کار می روند. برای مثال خانواده های TMS320C2000 و DSP568xx برای کاربردهای موتوری از قبیل کنترل موتور و کنترل اتومبیل با جمع کردن خیلی از ویژگی های میکروکنترلرها و دستگاه های جانبی داخل یک تراشه، بهینه هستند.

گروه پردازشگرهای متوسط شامل  ‏TMS320C5000 (C54x and C55x)‎‏ ساخت شرکت ‏TI، ‏ADSP219x‏ و ‏ADSP-BF5xx‏ ساخت شرکت ‏Analog Devices‏ و ‏DSP563xx‏ ساخت شرکت ‏Freescale‏ می باشد. این ‏پردازنده های پیشرفته با بهره گیری از ترکیب افزایش نرخ کلاک و معماری های خیلی پیشرفته تر قادرند به ‏عملکرد بالایی دست یابند. این دسته از ‏DSPها معمولاً شامل خط لولهء عمیق تر، دستورعمل کش، ‏دستورعمل های پیچیده، باس دادهء چندگانه(برای این که در هر سیکل به چندین داده دست یابند)، شتاب ‏دهنده های سخت افزاری اضافی  و  واحدهای اجرای موازی برای این عملیات بیشتری به صورت موازی اجرا ‏شوند، می باشند. برای مثال ‏TMS320C55x‏ شامل دو واحد ضرب و جمع(‏MAC‏) می باشد. این دسته از ‏DSPها  با بهره گیری از مصرف توان کمتر، عملکرد بهتری را فراهم می کنند، بنابراین بیشتر در کاربردهای ‏قابل حمل از قبیل موبایل، دستگاه های بی سیم، دوربین های دیجیتالی، پخش کننده های صوتی و تصویری ‏و دستگاه های کمک شنوایی دیجیتالی مورد استفاده قرار می گیرند.‏

کاربردهای عملی سیستم های DSP:

از زمان معرفی DSP ها به بازار، کاربرد های متنوع و گسترده ای پیدا کرده اند. از آن ها در سیتم های HI-FI و همچنین کاربرد های واقعیت مجازی پیشرفته(high-end virtual-reality) استفاده می شوند. به طور کلی، DSP یک تکنولوژی گران نیست.

تعدادی از سیستم های DSP   عملی عبارتند از:

  • تجهیزات Hi-Fi
  • اسباب بازی ها
  • تلفن های تصویری
  • مودم ها
  • سیستم های صوتی
  • سیستم های گرافیکی سه بعدی
  • سیستم های پردازش تصویر


 FPGA

FPGAها با استفاده از معماری موازی عالیشان قدرت محاسباتی چشمگیری را برای کارایی خیلی بالا فراهم می کنند. سخت افزار  FPGA  قابل پیکربندی مجدد می باشد، بنابراین به طراحان سیستم این اجازه را می دهد که برای پیاده سازی الگوریتم هایی که نیازمند عملکرد بالا و  قیمت تولید کم هستند، معماری سخت افزاری را بهینه سازی کنند.

مزیت اصلی FPGA این است که دارای معماری خیلی انعطاف­پذیری می­باشد. اما این انعطاف پذیری با پرداخت هزینه­ی بیش­تر در سخت افزار همراه می­باشد. یعنی این که، انعطاف­پذیری بیش­تر به معنی گیت­های بیش­تر، مساحت سطح سیلیکون بیش­تر، منابع بیش­تر برای مسیریابی و در نتیجه مصرف توان بیش­تر می­باشد. همچنین برنامه نویسی FPGA مشکل می­باشد و نیازمند استفاده از یک زبان سخت­افزارگرا می­باشد. نوشتن کد به زبان VHDL پنج برابر بیش­تر از نوشتن کد به زبان C طول می­کشد. این اشکال روی هزینه­ی توسعه و زمان عرضه­ی بردهای مبتنی بر FPGA به بازار اثر منفی می­گذارد

  •  مزیت ها:
    •        انعطاف پذیری بیشتر نسبت به ASIC
    •   عملکرد بالا در بعضی از کاربردها
    • قابلیت استفاده از سخت افزار یکسان برای کاربردهای مختلف

  •    عیب ها:

    •           مدت زمان زیادی برای توسعه دادن آن ها طول می کشد
    •           نسبت به DSPها گران تر هستند
    •           نسبت به DSPها توان بیشتری مصرف می کنند
    •      نسبت به ‏DSPها زمان عرضهء آن ها به بازار کندتر است


   جمع بندی


پردازنده­ی ARM نسبت به پردازنده DSP و FPGA دارای مزیت­های زیر می­باشد:

  •            پردازنده­های ARM برای استفاده آسان­تر هستند و ارزان­تر تمام می­شوند.
  •      پردازنده­های DSP و FPGA از لحاظ هزینه­ی توسعه کلی گران­تر هستند و نیازمند زمان توسعه­ی بیش­تری از پردازنده­های رایج هستند.

در مقایسه با FPGA، پردازنده های DSP دارای برتری هایی از قبیل سادگی توسعه هستند و دارای قابلیت برنامه ریزی مجدد در مدار برای بروز رسانی و برطرف کردن باگ، می باشند. DSPها از نظر اقتصادی از FPGA به خصوص در کاربردهای کم حجم با صرفه تر هستند. در مقایسه با μP/μc همه منظوره، پردازنده های DSP  سریع تر، دارای بازده بیشتر و ارزان تر هستند.

به طور کلی:

  •             در کاربردهای ساده مانند کارهای کنترلی میکروکنترلرهای AVR مناسب می­باشند
  •      در کارهای کاربرپسند که نیازمند یک رابط کاربری زیبا می­باشند، پردازنده­های ARM مناسب می­باشند.
  •     در کاربردهایی که نیاز است یک الگوریتم پردازشی روی تعدادی زیادی از داده به طور هم­زمان اعمال شود، FPGA مناسب می­باشد.
  •      در کارهایی که نیازمند سرعت بالا، حجم پردازشی زیاد و پردازش پیچیده هستیم مانند کارهای پردازش سیگنال (صدا، تصویر و ...) پردازنده­های DSP مناسب می­باشد.
برای کاربردهایی که ترکیبی از موارد بالا هستند، ترکیب پردازنده­ها گزینه مناسبی می­باشند. برای مثال برای کاربردهایی که نیاز به حجم پردازش بالا و محیط کاربر پسندی دارند پردازنده­های omap ساخت شرکت TI که شامل یک هسته DSP و ARM می­باشد مناسب هستند.

دانلود فایل PDF مقاله کامل‎تر


نظرات()   
   
reza ahmadl
دوشنبه 26 مهر 1395 03:40 ب.ظ
با سلام می خواستم نقش pic سری 32 را در این بین بیان کنید
جمعه 27 آذر 1394 11:01 ب.ظ
مرسی از مطالبتون
فکر میکنم نظرتون راجع به FPGA درست نیست. FPGA به دلیل قابلیت اجرای موازی، نسبت به DSP سریعتر هست. ولی در اپلیکیشن هایی که پردازش نسبتا ساده باید روی حجم داده ی بالا اجرا شود، DSP ترجیح داده می شود. اونم نه به خاطر کند بودن FPGA، بلکه به خاطر حجم فضای محدود در FPGA. برای تصدیق صحبت های بنده بر فرض اگر شما الگوریتم DTC رو برای کنترل موتور روی FPGA پیاده کنید حلقه ی کنترلی در 20us اجرا میشه، در صورتی که همین الگوریتم در DSP 200us زمان میبره. در FPGA و DSP هم قیمت.
البته اینم بگم طراحی که الگوریتم پیچیده در FPGA به مراتب سخت تر از DSP است.
پاسخ امیرحسین رستمی : اگه جایی گفتم که DSP از FPGA سریع تر است اشتباه کردم. ببخشید.
برای مثال فرمت تصویر JPEG2000 را در نظر بگیرید که از تبدیل ویولت برای فشرده سازی استفاده می شود. یک FPGA که با با فرکانس 200MHz کار می کند 10 برابر سریع تر از یک پردازنده اینتل core i7 با سرعت 3GHz این کار را انجام می دهد.
جواد
جمعه 29 آبان 1394 11:40 ب.ظ
سلام. ممنون از وقتی که صرف کردید.
یک سوال؟
آیا dsp مانند fpga قابلیت برنامه نویسی سخت افزار رو داره؟
چون در fpga تمامی کد ها به سخت افزار تبدیل میشه که این خیلی نقطه ی پر رنگیه واسه کسی که ارزشش رو بدونه. و یا این که مثل avr,arm برنامه ی ما فقط در قالب کد های نرم افزاری به کاربر ارائه میشه؟
ممنونم.
پاسخ امیرحسین رستمی : DSP یک میکرو پروسسور می باشد و مانند ARM و AVR شما کد C می نویسید.
shahram
یکشنبه 1 شهریور 1394 09:00 ب.ظ
بسیار عالی سپاس از لطف شما
جمعه 2 مرداد 1394 01:58 ب.ظ
ممنون عالی
Rana
یکشنبه 21 دی 1393 01:22 ق.ظ
و احترام
سلام
اما من در چند مقاله خارجی خوانده ام که به دلیل پردازش موازی fpga هزار بار بهتر و با سرعت بیشتری نسبت به dsp عمل می کند.

پاسخ امیرحسین رستمی : در حالت کلی می شود گفت FPGA با کلاک 200MHz از DSP با فرکانس 1GHz سریع تر هست ولی این هم به پیچیدگی الگوریتم بستگی دارد. هرچی برنامه در FPGA بزرگ تر و پیچیده تر بشود تاخیر گیت ها و سیم کشی بیش تر می شود و این خود باعث کاهش فرکانس کاری FPGA می شود.
پیاده سازی الگوریتم های پیچیده ریاضی در DSP به مراتب ساده تر از FPGA می باشد و زمان بسیار کمتری را از طراح می گیرد.
شنبه 13 دی 1393 06:29 ب.ظ
جناب رستمی خدا خیرتون بده که اینقدر خالصانه و بی ریا دانشتون رو با بقیه به اشتراک می گذارید.
سید محمد
جمعه 7 آذر 1393 12:35 ق.ظ
سلام
بسیار عالی یود
سپاس گزارم

یاعلی
زهرا
یکشنبه 5 آبان 1392 05:29 ب.ظ
خیلی خوب هست
حسین میر
شنبه 30 شهریور 1392 11:35 ق.ظ
خیلی جالب و مفید بود. خیلی وقت بود که دنبال همچین مقایسه ای که یکجا جمع آوری شده باشه میگشتم.بنظر من اگه تو این مقایسه ها، پی ال سی رو هم وارد می کردید عالی تر می شد . خسته نباشید و ممنون
دوشنبه 17 تیر 1392 02:48 ب.ظ
از میکروکنترلرهای AVR توی بردهای اموزشی وبردهایی که خودمون طراحی میکردیم زیاد استفاده کردم واطلاعات خیلی دقیق وجامعی در مورد هرنوعش دارم اطلاعات خواستی بیا سر کلاسم
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
آخرین پست ها