تبلیغات
" /> باران الکترونیک - مطالب ابر ممیز شناور
پنجشنبه 5 آذر 1394  11:25 ب.ظ
نوع مطلب: (DSP ،برنامه نوسی C ،) توسط: امیرحسین رستمی

نوآوری با پردازش سیگنال شروع می شود ...‏

در این مقاله ابتدا به بررسی تفاوت های پردازنده های ممیز ثابت و شناور می پردازیم، سپس با انجام ‏محاسبات ریاضی در پردازنده ممیز ثابت توضیح می دهیم.‏

Fixed-point‏ در مقابل ‏Floating-point

در پردازنده ‏DSP‏ ‏Floating-point‏ ضرب و جمع اعشاری در یک کلاک انجام می پذیرد ولی در ‏پردازنده ‏Fixed-point‏ برای ضرب یا جمع اعشاری تعداد زیادی کلاک لازم است.‏
پردازنده های ممیز شناور 32 بیتی و پردازنده های‎‏ ممیز ثابت‎ ‎‏16 بیتی می باشند.‏
در پردازنده های ممیز شناور زمان نوشتن برنامه سریع تر می باشد زیرا برنامه نویس نگران سرریز و ‏خطای گردن کردن نیست. در مقابل نوشتن برنامه برای پردازنده ممیز ثابت سخت تر است و برنامه ‏نویس باید برنامه بیش تری بنویسد تا از سریز جلوگیری کند.‏
پردازنده های ممیز شناور گران تر هستند و توان بیش تری مصرف می کنند اما پردازنده های ممیز ‏ثابت ارزان قیمت می باشند، توان مصرفی کمتری دارند و برای کارهای قابل حمل مناسب ترند.‏
مزیت اصلی که پردازنده ممیز شناور نسبت به ممیز ثابت دارد این است که نرخ سیگنال به نویز ‏‏(گرد کردن اعداد) در پردازنده ممیز شناور ‏ بسیار بالاتر از ممیز ثابت ‏است.‏

پردازنده ممیز ثابت
برای این که محاسبات اعشاری در ‏DSP‏ ممیز ثابت با سرعت بالا انجام شود، ابتدا اعداد اعشاری را بین 1- و ‏‏1+ نرمالیزه می کنند. سپس این اعداد را در ‏‎215 = 32768‎‏ ضرب می کنند. در انتها اعداد را گرد می کنند تا ‏بخش اعشاری حذف شود. به این فرمت نمایش ‏Q0.15‎‏ و یا به طور خلاصه ‏Q15‎‏ می گویند. یک بیت برای ‏علامت و 15 بیت برای قسمت صحیح می باشد که در مجموع 16 بیت می شود.‏
فرمت ‏Q3.12‎
در فرمت ‏Q15‎، 15 بیت اعشاری و صفر بیت صحیح می باشد. می توان ترکیبی از بیت های اعشاری و صحیح نیز داشت. برای ‏مثال 3 بیت صحیح و 12 بیت اعشاری برای نمایش اعداد بین ‏‎(-‎32768‎)   ⁄  2^12 ‎‏ تا ‏‎(+32768‎)   ⁄  2^12 ‎‏ یا 8- تا 9997/7 ‏داشت.‏
به عنوان یک مثال کاربردی بست تیلور سینوس را در نظر بگیرید:‏
sin(x) = c1*x + c2*x^2 + c3*x^3 + c4*x^4 + c5*x^5‎
c1 = 3.140625x
c2 = 0.02026367‎
c3 = − 5.3251‎
c4 = 0.5446778‎
c5 = 1.800293‎
همان که مشاهده می کنید ضرایب بین 5- تا 3 می باشند. به جای نرمالیزه کردن و نمایش اعداد به فرمت ‏Q15‎‏ می توان از فرمت ‏Q3.12‎‏ برای دقت به تر استفاده کرد. کافی است تا ضرایب را در 212‏‎ ‎‏ ضرب کنیم و نتیجه نهایی را گرد کنیم تا اعداد به فرمت ‏Q3.12‎‏ ‏نشان داده شوند.‏
(برای ادامه مطلب به ادامه مطلب بروید)


نظرات()       
شنبه 30 آذر 1392  10:43 ب.ظ
نوع مطلب: (DSP ،FPGA ،) توسط: امیرحسین رستمی

یک تفاوت اساسی بین پردازنده های DSP ساختار محاسباتی آن ها است: ممیز ثابت یا ممیز شناور. برای طراحان سیستم، این مهمترین عاملی است که به کمک آن تشخیص می دهند که آیا یک پردازنده DSP برای یک کاربرد مشخص مناسب است یا نه. پردازنده های DSP ممیز ثابت ممکن است 16 بیتی یا 24 بیتی باشند، در حالی که پردازنده های ممیز شناور معمولاً 32 بیتی هستند. یک پردازنده 16 بیتی ممیز ثابت رایج مانند TMS320C55x، اعداد را به فرمت صحیح یا اعشاری 16 بیتی در یک محدوده ثابت ذخیره می کنند. اگرچه ضرایب و سیگنال ها با دقت 16 بیتی ذخیره می شوند، مقادیر میانی برای کاهش خطاهای رند کردن تجمعی، ممکن است با دقت 32 بیتی  در accumulator ، 40 بیتی ذخیره شوند. DSPهای ممیز ثابت معمولاً از DSPهای ممیز شناور ارزان تر و سریع تر هستند چون آن ها از سیلیکون کمتری استفاده می کنند، مصرف توان کمتری دارند و به پین های خارجی کمتری نیاز دارند. موارد استفادهء پردازنده های ممیز ثابت عبارتند از: کنترل دستگاه های برقی، موبایل، درایو هارد دیسک، مودم ها پخش کننده های صوتی و دوربین های دیجیتالی.

حساب ممیز شناور محدوده دینامیکی اعداد را به شدت افزایش می دهد. یک پردازنده DSP ممیز شناور 32 بیتی رایج مانند TMS320C67x، اعداد را به صورت 24 بیت مانتیس و 8 بیت نما نمایش می دهد. مانتیس یک عدد اعشاری را در محدوده 1- و 1+ نمایش می دهد در حالی که نما یک عدد صحیح است که تعداد مکانهایی که ممیز باینری باید به چپ یا راست منتقل شود تا یک مقدار حقیقی بدست آید، را نمایش می دهد. یک فرمت ممیز شناور 32 بیتی، محدوده دینامیکی وسیعی را نمایش می دهد. بنابراین محدودیت هایی که روی حدود دینامیکی داده وجود دارند، ممکن است در یک طراحی با استفاده از پردازنده های DSP ممیز شناور نادیده گرفته شوند. این در نقطه مقابل طراحی با استفاده از ممیز ثابت قرار دارد. در طراحی با استفاده از ممیز ثابت طراح باید ضرایب مقیاس بندی و تکنیک های دیگری را اعمال کند تا از سرریز محاسبات جلوگیری کند، که یک فرایند خیلی مشکل و وقت گیر می باشد. از این رو، به طور کلی پردازنده های DSP ممیز شناور از نظر برنامه نویسی و استفاده آسان هستند، اما معمولاً گران تر هستند و توان بیشتری مصرف می کنند.

دقت و حدود دینامیکی پردازنده های DSP ممیز ثابت 16 بیتی رایج در جدول زیر خلاصه شده است.

 

دقت پردازنده های DSP ممیز شناور 32 بیتی، 23-^2 است. چون دارای 24 بیت مانتیس می باشند. همچنین حدود دینامیکی آن ها    1.18 ×10−38x ≤ 3.4 × 1038  می­باشد.

طراحان سیستم باید حدود دینامیکی و دقت مورد نیاز را برای کاربردشان تعیین کنند.  پردازنده های ممیز شناور ممکن است در کاربردهایی که ضرایب متغییر با زمان هستند، سیگنال ها و ضرایب به حدود دینامیکی وسیع و دقت بالایی نیاز دارند و یا جایی که ساختار حافظهء وسیعی لازم باشد، مانند پردازش تصویر، نیاز شوند. همچنین پردازنده های DSP ممیز شناور استفاده موثری از کامپایلر های C می کنند، بنابراین هزینه توسعه و نگه داری را کاهش می دهند. سیکل توسعه سریع تر پردازنده های ممیز شناور ممکن است از قیمت اضافی آن ها مهم تر باشد.


نظرات()   
   
آخرین پست ها