no-img
انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب

پروژه آماده متلب - انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب


انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب
مطالب ویژه
گزارش خرابی لینک
اطلاعات را وارد کنید .

ادامه مطلب

پروژه آماده متلب
zip
نوامبر 14, 2019
۰ تومان
فروش

پروژه آماده متلب


پروژه آماده متلب

 

فصل ۱

« پردازش سیگنال دیجیتال و سیستم های DSP »:

پروژه آماده متلب

 

فصل ۱

« پردازش سیگنال دیجیتال و سیستم های DSP »:

پروژه آماده متلب سیستم پردازش سیگنـال به هر سیستمی گفته می شود که از این دانش  بهره می برد . پردازش  سیگنال دیجیتال کاربرد  اعمـــال حسابی  بر روی سیگنالها می باشد که بصورت رقمی نمایش داده می شوند  سیگنالها همانند دنباله ای ازنمونه هانشان داده می شوند.غالباًاین نمونه ها ازسیگنالهای فیزیکی ( همانند سیگنالهای صوتی ) با استفاده از تراگردانها ( همـانند میکروفن ) و مبدلهای A/D بدست می آیند . بعـد از پردازش حسابی،سیگنالهای دیجیتال می بایست توســط مبدلهای D/A به سیگنالهای فیزیکی تبدیل شوند .

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

 می باشند .

بخش چشــم اندازی کلی بر پردازش سیگنال است . ابتدا در مورد مزیت DSP بر سیستم آنالوگ بحث شده سپس بعضی از ویژگیها و مشخصـات سیستم های DSP   بصورت کلی بررسی می شود.درپایان نتیجه گیری با نگرشی خلاصه به بعضی ازکلاسهای مهم کاربردهای DSP  انجام می شود .

  • مزایای DSP :

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

« عدم حساسیت به محیط » : سیستم های دیجیتـــــال به تغییرات شرایط محیطی کمتر حساس می باشند . رفتار مدار آنالوگ بسته به دما است . در مقایسه عمل سیستم DSP  به محیط آن (خشک یا مرطوب ) وابسته نمی باشد . در هر صورت سیستمDSP   پاسخ یکسانی خواهد بود .

«عدم حساسیت به تغییر عناصر » : قطعـات آنالوگ با تلورانس همراهند . پروژه آماده متلب پاســخ کلی یک سیستم آنالوگ به مقادیر داخلی اش وابسته است . بنابراین دوسیستم آنالوگ که بطوردقیق همانند یکدیگرطراحی شده باشند بسته به تغییرعناصرشان پاسخهای متفاوتی خواهند داشت.در مقایسه عناصر دیجیتال همواره خروجیهای مشابه برای ورودی های مشابه تولید خواهند کرد .

این دو مزیت بصورت زیر نیز بیان می شوند :

 

« رفتارتکرار پذیر و پایدار» : از آنجاییکه خروجی سیستم DSP  به عوامل محیطی یا تغییر عناصر حساس نمی باشد لذا این امکــان وجود دارد که سیستم هایی با پاسخهای شناخته شده ، دقیق وثابت داشته باشیم.نهایتاً بعضی ازسیستم های DSP  ممکن است دو مزیت دیگر نیز نسبت به آنالوگ داشته باشند.

« قابلیت برنامه ریزی » : اگریک سیستمDSP  براساس پردازنده های برنامه پذیر طراحی شود ، می توان آن را  مجدداً برنامه ریزی نمود بطوریکه وظایف دیگری را انجام دهد . در مقایسه سیستم های آنالوگ ازلحاظ فیزیکی به عناصرمتفاوتی نیازداشته تا وظایف متفاوتی را انجام دهند .

« اندازه » : اندازه اجزاء آنالوگ بسته به مقــادیرشان متغیر است . برای مثـال یک خازن MF 100که در فیلتـــر آنالوگ استفاده می شود از خازن PF 10 که در فیلتر دیگری بکار می رود بزرگتر است.اما ممکن است تحقق دیجیتال هردو فیلتراندازه مشابه ای داشته باشد . حتی ممکن است از سخت افزار یکسانی که تنها در ضرایب فیلتر متفاوت است استفاده شود .گاهگاهی ممکن است این پیاده سازی از هر دو تحقق آنالوگ نیز کوچکتر باشد .

    این مزایا و توجه به فرآیندهای ساخت IC  با استفاده از فن آوریهای DSP    و مزیت آن در این فن آوری منجربه این واقعیت می شودکهDSP  انتخاب وراه حلی مناسب وبهینه برای پردازش سیگنال به حساب آید .

  • مشخصات سیستم های DSP :

در این بخش برخی از مشخصات عمومی در همه سیستم های DSP نظیر الگوریتم ها،نرخ نمونه برداری ، نرخ CLOOK  و انواع حساب توصیف می شوند .

الگوریتم ها :

سیستم های DSP  اغلب به وسیله الگوریتم هایی که بکار می برند ، مشخــص می شوند . الگوریتم اعمال حسابی را که می بایست انجام شوند ، مشخص کرده امـــا نحوه پیاده سازی آن محاسبات رامعلوم نمیکند.ممکن است درنرم افزارو بروی یک ریزپردازنده معمولی یا ریزپردازنده سیگنال قابل برنامه ریــزی پیاده سازی با توجه به نیازمندیهای سرعت و دقت حسابی می باشد. جدول ( ۱-۱ ) بعضی از انواع عمومی الگوریتم های DSP و برخی از کاربردهایی را که عموماً این الگوریتم ها در آنها اسنفاده می شوند نشان می دهد .

    نرخ نمونه برداری :

    مشخصه کلـیدی یک سیستم DSP  نرخ نمونه برداری آن است . نرخی که در آن نمونه ها گرفته ، پردازش و یا تولید می شوند.با توجه به پیچیدگی الگوریتم،نرخ نمونه برداری سرعت مورد نیاز را در فن آوری پیاده سازی معین می کند . یک مثال معروف پخش CD صوتی می باشد که در آن نمونه ها با نرخ ۴۴٫۱ کیلو هرتز روی دو کانال تولید می شوند .  

    البته یک سیستم DSP ممکن است بیشتر از یک نرخ نمــونه برداری داشته باشد . به این قبیل سیستم ها، سیستم های DSP چند نرخی گفته می شود . مثـال آن تبدیل نرخ نمونه های CD  از ۴۴٫۱KHZ به نرخ نوار صوتی دیجیتال یا ۴۸KHZ  می باشد . بدلیـــل پیچیدگی نسبت بین این نرخ ها ، معمولاً تبدیل در مراحلی انجام می شود ( معمولاً با حدفاصل حداقل دو نمونه ) مثال دیگر الگوریتم چند نرخی یک بانک فیلتر است که در کاربردهایی نظیر کدکردن صــــدا، ویدئو و گفتار استفاده می شود . بانکهای فیلتر معمولاً شامل مراحلی هستند که سیگنال را به بخشهای فرکانس  بالا و پایین تقسیم می کنند. آنگاه این سیگنالهای جدید با نرخ کمتر نمونه برداری شده مجــدداً تقسیم می شوند . در کاربردهای چند نرخی نسبت بین بالاترین و پایین ترین نرخ نمونه بـرداری  در سیستم می تواند کاملاً بزرگ باشد. گاهگاهی به ۰۰۰،۱۰۰ ممکن است برسد .

    محدوده نرخ های نمونه برداری که درسیستم های پردازش سیگنال وجود داردوسیع است  در شکل ( ۱-۱ )کلاسهـــــای کاربردها بهمراه پیچیدگی الگوریتم و نرخ نمونه برداری افزایش

می یابد . الگوریتم هایی که در نــرخ های بالاتر استفاده می شوند به نظر می رسد که ساده تر از آنهایی باشند که در نرخ کمتر بکار می روند .

   پروژه آماده متلب بسیاری از سیستم های DSP  می بایست با سرعت بسیار بالا کار کنند چرا که بتوانند روی  بخشهای طولی سیگنالهای ورودی به صورت بلادرنگ عملیات انجام دهند . انواع دیگر سیستم ها

 

 

( همانند پایگاه داده ) ممکن است به کارایی متوسطی نیاز داشته باشنـد . سیستم های بلادرنگ با هر دو هدف یعنی سرعت و کارایی مناسب طراحی می شوند . در این قبیــل سیستم ها تغییر نرخ پردازش مورد نیاز باعث بد عمل کردن  سیستم می شود.به این قبیل سیستــــــــــم ها اغلب « فرآیندهای بلادرنگ با قیدهای پیچیده » نیز گفته می شود . برای مثال فرض کنیم مبدل نرخ CD  صوتی به نوار صوتی همانند سیستم بلادرنگ پیاده سازی شود . مبدل بایستی نمونــه جدید را از CD در هر ۲۲٫۶MS بگیرد و نمونه خروجی را برای نوار صوتی در هر ۲۰٫۸NS تولیدکند  اگر سیستم نتواند نمونه ها را با این ترتیب بگیرد و بفرستد،داده ها از بین رفته سیگنال خروجی دچـــار نویز

 می شود . نیاز به رویارویی با این قبیل قیدهای بلادرنگ ، مطالبات ویژه ای را در طراحی و اشکال زدایی سیستم های DSP  بلادرنگ بوجود می آورد .

نرخ CLOCK :

سیستم های  الکترونیک دیجیتـــال اغلب توسط نرخهای ساعت مورد نیازشان مشخص

 می شوند . نرخ ساعت معمولاً به نرخی گفـته می شود  که در آن سیستم اساسی ترین وظایفش را انجام می دهد . در محصولات تجاری نرخ ساعت تا ۱۰۰MHZ عمومی است . هرچند در بعضی از محصولات بسیار کار این نرخ سریعتر می شود.درسیستم هایDSP  نسبت نرخ ساعت سیستم یکی از مهمترین مشخصات است که جهت چگونگی پیاده سازی سیستم استفاده می شود . ارتباط بین نرخ ساعت و نرخ نمونه مقدار سخت افزار  مورد نیاز را برای پیاده سازی یک الگوریتم داده شده ( با توجه به پیچیدگی بلادرنگ ) تعیین می کند . با افزایش نسبت نرخ نمونه برداری به نرخ ساعت مقداروپیچیدگی سخت افزارمورد نیاز برای پیاده سازی الگوریتم نیز افزایش می یابد .

 

 

 

نمایشهای عددی :

۱
۲۵۶

اعمـــال حسابی از قبیل جمع و ضرب در قالب الگوریتمها و سیستم های DSP  هستند . بنابراین نمایشهای عددی و نوع حســـابی که استفاده می شود ، می تواند در  رفتار و کارایی یک سیستمDSP  تاثیرگذار باشد.عمومی ترین انتخاب برای طراحان حساب مسیر ثابت یا ممیز شناور می باشد . حساب ممیز ثابت اعداد را در محدودثابت ۱-تا ۱+  با تعداد معینی بیت که عرض کلمه نامیده می شود ، نشان می دهد . برای مثال یک عدد ۸ بیتی  دقت تفکیکـــی            دارد . اعمال حســـــابی که نتایجی خارج از محدوده عددی داشته باشند اصطلاحاً اشباع خواهند شد .         حساب ممیز شناور محدوده قابل نمایش مقادیر را گسترش می دهد . هر عدد در دو بخش نمایش می یابد : یک ماشیـــن و یک مفسر . ماشین بین ۱- تا ۱+ و مفسر بعنوان نما می توان دو تلقی

می شود . در حقیقت داریم :                              ۲ enponent×Value = mantissa

حســــاب ممیز شناور محدوده دینامیک ( نسبت بین بزرگترین و کوچکترین مقادیری که

می توانند نمایش داده شوند )بزرگتری نسبت به ممیز ثابت دارد، از آن جاییکه این حساب احتمال سر ریز و مقیاس بندی را کمتر می کند لذا می تواند بطور قابل ملاحظه ای طراحی نرم افـــزار و الگوریتم را ساده سازد . بنابراین حساب ممیز شناور عموماً ازحساب ممیز ثابت کندتر و پیچیده تر بوده پیاده سازی آن نیز دشوارتر است .

 

  • کلاسهای کاربردهای DSP :

پردازش سیگنـال دیجیتال بطور عام و پردازنده های DSP بطور خاص در محدوده وسیعی از کاربردها استفـاده می شوند . از سیستم های رادار گرفته تا مصارف معمولی الکترونیک . طبیعتاً هیچ پردازنده ای نمی تواند نیازمنـدیهای همه و یا اکثر کاربردها را برآورده سازد . بنابراین اولین وظیفه طراح انتخاب یک پردازنده است بطوریکه تواماً کارایی،هزینه ، قابلیت مدار مجتمع ، آسانی توسعه،مصرف توان ودیگر ویژگیهای مناسب را برای کاربرد در دست داشته باشد. جدول ( ۱-۲ ) برخی از کلاسهای کاربردی را نشان می دهد .

سیستم های محاط شده کم هزینه :

بزرگترین کاربردها ( از نظر هزینه ) در پردازش سیگنال دیجیتال سیستم های محاط شده پرحجم و ارزان نظیــــر تلفن های سلولی ، مودمها و دیسک درایوها ( که DSP برای سرو کنترل می شود ) می باشند.دراین کاربردها هزینه و ملاحظات مدار مجتمع برتر می باشند . در محصولات قابل حمل مصرف توان حائـز اهمیت است . در کاربردهای محاط شده پرحجم کارایی و ملاحظات آسانی توسعه غالباً کمتر مورد توجه هستند .

   

کاربردهای بسیار کارا :

درکلاس دیگری از کاربردها حجم پردازش داده زیاد و الگوریتم های پیچیده برای نیازهای ویژه وجود دارند.رادار، سونار و تحلیل سیگنال زلزله از این نوع می باشند . در این کاربردها حجم تولیدات کمتر،محاسبات درالگوریتمها بیشتر و طراحی محصول پیچیده تر است . بنابراین طراحان به پردازنده هایی توجه دارندکه تواماًکارایی ماکزیمم، آسانی بکارگیری وپشتیبانی چندپردازنده ای را داشته باشند .

 

چند رسانه ای در PC  :

کلاس جدیدتری از کاربردها قابلیتهای چند رسانه ای در PC  می باشد .پردازنده های DSP بطور روزافزونی در PC جهت انجام وظایف گوناگونی نظیر پست صوتی، مودمهــــای تصویری و داده ای،سنتزگفتاروفشرده سازی تصویر استفاده می شوند.همانندکاربردهای محاط شده پرحجم ، چند رسانه ای در PC هر چند در بعضــــی دیگر از کاربردهای چندرسانه ا ی ممکن است کارایی بیشتری نیاز باشد بطوریکه پردازنده DSP بتوانـــد چندین وظیفه را به صورت همزمان و بلادرنگ انجام دهد.علاوه براین پردازنده می بایست بتواندبین وظایف گوناگون سوئیچ کند.همچنین ممکن است ظرفیت حافظه در این کاربردها مورد توجه باشد چرا که اکثر کاربردهای چنــد رسانه ای به قابلیتی نیاز دارند که  بتواند حجم انبوهی از داده ها را مدیریت کند .

 

 

 

 

 

 

 

 

 

 

 

 

فصل ۲

« پردازنده های DSP » :

 

    در فصل قبل پردازش سیگنال دیجیتال با توجه به مبانی سیستم های DSP  و حــوزه های کاربردی بطور خلاصه توصیف شد . در این بخش با یک توصیف کلی ویژگی های عمومــی که در اکثر پردازنده های DSP وجود دارند ، مطرح می شوند .

 

۲-۱ پردازنده های DSP  :

    نسلهای مختلفی از پردازنده های DSP  در بازارامروزی موجود می باشد.ویژگیهای برجسته برخی از آنها در جدول ( ۲-۱ ) خلاصه شده است . این پردازنده ها به عنــوان نمونه هایی جهت توضیح معماریها و ویژگیهای موجود در پردازنده های تجاری بکار خواهند رفت .

    اکثر پردازنده های DSP   از ساختارهای مشترکی برخوردارند بطوریکــه می توانند وظایف سنگین محاسباتی و تکراری را پشتیبانی کنند. ویژگیهای مهمتر به طور خلاصه بررسی می شوند . این ویژگیها درجدول ( ۲-۲ ) آورده شده اند.هریک ازاین خصوصیات وانواع دیگربه صورت جزئی تردرفصلهای بعدی مطرح خواهد شد .

ضرب انباره سریع  :                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                غالباً مهمتــرین ویژگی DSP  قابلیتی است که می تواند عمل ضرب انباره ( اغلب MAC نامیده می شود ) را در یک سیکــل دستور انجام دهد . عمل ضرب انباره در الگوریتم هایی مفید است که محاسباتی از نوع ضرب برداری را شامل می شوند . فیلتـــرهای دیجیتال ، کورولیشن و تبدیلات فوریه از این نوع می باشند . برای به انجام رساندن این وظیفـه پردازنده های DSP یک ضرب کننده و انباره را که در واحد اصلی پردازش حسابی ( مسیرداده ) قرار دارد،شامل می شوند . علاوه بر این به منظور انجام دنباله ای از اعمال ضرب-انباره که می بایست بدون سـرریز حسابی انجام شوند ، پردازنده های DSP در رجیسترهای انباره خود بیتهای بیشتری داشته تا بتوانند خود را با رشد نتایج انبارشده وفق دهند .مسیر داده DSP  به صورت جزئی تر در فصل ۴ بررسی خواهد شد .

معماری حافظه با چندین دسترسی :

ویژگی دومی که در اکثـر پردازنده های DSP مشاهده می شود قابلیت چندین دسترسی به حافظه دریک سیکل دستورمی باشد.این ویژگی پردازنده راقادرمی سازدکه یک دستور را برداشت نمایدودرعین حال همزمان درحال برداشت عملوندهای دستور قبل یا ذخیره نتیجه درحافظه باشد . پهنای باند ( تعداد کلماتی که می توان از حافظه خواند یا در آن نوشت ) بیشتریــــن پردازنده و حافظه جهت بهبود کارایی لازم است چرا که عموماً در بسیاری از کاربردهای DSP  الگوریتم ها به اعمال سنگین تکراری روی داده ها نیاز دارند .دربسیاری ازپردازنده ها چندین دسترسی به حافظه در یک سیکل محدودیتهایی نیز ایجاد می کند . معمولاً دسترسی به تمامی مکانهــــــای حافظه می بایست در داخل تراشه و با دستورات ویژه ای انجام شود .به منظورچندین دسترسی به حافظه پردازنده های DSP از چندین گذرگاه داخلی ، حافظــه های چند پورتی داحلی و در بعضی موارد از چندین بانک حافظه مستقل برخوردارند.ساختارهای حافظه درDSP در قیاس با پردازنده های هدف عمومی کاملاً متفاوت است . معماری های حافظه بصورت کاملتر در فصل ۵ بررسی خواهند شد .

 

روشهای آدرس دهی ویژه :

به منظورسرعت بخشیدن به پردازش حسابی ومشخص کردن چندین عملوند در یک کلمه کوچک دستور پردازنده های  DSP  از واحدهای تولید آدرس بهــــره می برند . ابتدا رجیسترهای آدرس دهی مخصوصی پیکربندی می شوند.سپس واحدهای تولیدآدرس درپشت صفحه به صورت مستقل کار می کنند . این واحدها آدرسهای مورد نیاز برای دسترســی به عملوند را بطور موازی با اجرای دستورات تشکیل می دهند . واحدهای تولید آدرس معمولاً گلچینی از  روشهای آدرس دهی را پشتیبانی می کنند . این روشها با توجه به کاربردهای DSP     لحاظ می شوند . عمومی ترین آن آدرس دهی غیرمستقیم رجیستر بطریقه پس افزایشی می باشد . ایـن آدرس دهی درمواقعی بکار می رود که می بایست محاسبات تکراری روی مجموعه ای از داده هــــا که به صورت ترتیبی در حافظه ذخیره شده اند ، انجام شود . آدرس دهی ماژول یا گردشی غالباً استفاده از بافرهای داده را آسان می سازد . بعضی از پردازنده ها آدرس دهی bit – reversed  را نیز پشتیبــانی می کنند . این آدرس دهی در الگوریتم FFT  کارآمد است . روشهای آدرس دهی با جزئیات بیشتـــر در فصل ۵ بررسی خواهند شد .

 

کنترل اجرای دستور :

ازآنجائیکه دربسیاری ازالگوریتم های DSP  محاسبات تکراروجود دارد،لذااکثرپردازنده های DSP  روش ویژه ای را برای حلقه سازی مناسب فراهم می کنند . غالبــــاً در مجموعه دستورات پردازنده دستور خاصی برای  حلقه سازی لحاظ می شود . این دستورسربار حلقه را حذف می کند . بهنگام سازی و آزمایش شمارنده حلقه یا پرش به ابتدای حلقه به عنوان سربارهای حلقه تلقـــی می شوند . با حذف این سربارها سیکلهای کمتری مصرف خواهند شد.بعضی ازپردازنده های DSP جهت بهبود کارایی ویژگیهای دیگری از کنترل اجرایی را فراهم می آورند . قابلیتهایی نظیــــــر سوئیچینگ مناسب و وقفــــه های کم سربار و کم دوره برای ورودی / خروجی سریع از این نوع

می باشند .

 حلقه ساری و وقفه های سریع در بخش ۸ بررسی خواهند شد .                                                                                                                                                                                                                                                    

 

ارتباطات ورودی / خروجی و دستگاههای جانبی :

در اکثـر پردازنده های DSP  به منظور هزینه کمتر و  ورودی / خروجی کارآمدتر ، ارتباطات I/O موازی یا سریال و مکانیزمهای دسترسی به I/O نظیرDMA  باهم یکی می شوند .دستگاههای جانبی در DSP  اغلب به منظور ارتباط مستقیم با قطعات جانبی نظیرمبدلهای A/D  و D/A  طراحی می شوند.با توجه به پیشرفت های فن آوری های مدارمجتمع (چگالی وانعطـــــــــاف پذیری) فروشندگان  DSP در پی قراردادن کلیه دستگاههای جانبی بروی یک تراشه می باشند . نمونه آن تراشه هایی است که برای کاربردهای تلفن سلولی طراحی می شوند. در این قطعات چندین مبدل A/D  و D/A  روی یک تراشه تعبیه می شود .

 

   فصل ۳

« حساب و نمایش عددی »

 

پروژه آماده متلب یکی ازمهمترین مشخصاتی که کارآمدی یک DSP را برای کاربرد داده شده معین می کند ، نوع نمایش عددی در پردازنده است . انواع حساب که درپردازنده های تجارتی عمومی می باشد ، به صورت درختی در شکل ( ۳-۱ ) آمده است .

  • ممیز ثابت در مقایسه با ممیز شناور :

پردازنده های اولیه از حساب ممیز ثابت استفاده می کردند ودرواقع هنوز هم پردازنده های DSP ممیـــز ثابت بر بازار مسلط می باشند . در پردازنده های ممیز ثابت اعدادی که نمایش داده

می شوند، همانند اعداد صحیح یا کسرهای بین ۱- تا ۱+ می باند . الگوریتمها و سخت افزارهایی که برای پیاده سازی حساب کســری استفاده می شوند بطور مجازی مشابه همانهایی هستند که برای حساب صحیح بکارمی روند .تفاوت اصلی دراین است که چگونه نتایج اعمـــــال ضرب در دسترس واقع می شوند .درعمل اکثر پردازنده های ممیز ثابت حساب کسری و صحیح را توامـــاً

پشتیبانی می کنند . حساب کسری بیشتر در الگوریتم های پردازش سیگنال مفید است اما حساب صحیح جهت اعمال کنترلی ، محاسبــات آدرس و دیگر اعمالی که مرتبط به سیگنال نمی باشند ، بکار می رود . شکلهای ( ۳-۲ ) و ( ۳-۳ ) نمـایشهای ساده صحیح و کسری را توضیح می دهند . نکته اینکه انجام حساب صحیح روی DSP هـــای ممیز ثابت ممکن است زمان بیشتری نیز نیاز داشته باشد .

کلاس دیگری از پردازنده های DSP  ازحساب ممیز شناوراستفاده می کنند. در این حساب اعداد ترکیبی از مفسر و مانتیس می باشند . این مورد در شکل ( ۳-۴ ) آمده است.مانتیس  معمولاً

 

یک مقدار کسری علامت دار با یک بیت صحیح می باشد . ( بیت صحیح در واقع به عنوان بخشی از داده ذخیره نمی شود بلکه همواره“۱” فرض می شود ) . این بدان معناست که مانتیس می تواند مقداری در محدوده ۱+ تا ۲+ و ۱- تا ۲- داشته باشد.مفسر یک عدد صحیح بوده تعداد مکانهایی را که ممیز باینری مانتیس می بایست به چپ یا راست شیفت داده شود ، نشــان می دهد . مقدار نمایش داده شده از طریق عبارت زیر محاسبه محاسبه می شود :

   ۲ exponent× Value = mantissa

شکل ( ۳-۴ ) نمایش ممیز شناور را نشان می دهد . عموماً پردازنده های ممیز شناور قالب داده ممیز ثابت ( معمولاً صحیح ) را نیز پشتیبانی می کنند بطوریکه بتوانند اعمالی نظیر محاسبات آدرس حافظه را که ذاتاً صحیح می باشند به آسانی انجام دهند .

حساب ممیز شناور نسبت به ممیـز ثابت مکانیزم عمومی تر و انعطاف پذیرتری می باشد . به کمک این حساب طراحان سیستم به محدوده دینامیک وسیعتر و در خیلی از موارد دقت بهتری دسترسی دارند .

دقت برمبنای خطای کوانتیزاسیون تعریف میشود .خطای عددی کوانتیزاسیون هنگام تبدیل قالب عددی بزرگتر به کوچکتر تولید می شود . در قالب ممیز ثابت ، ماکزیمم دقت ، تعداد بیتهـای قالب تعریف می شود . برای مثال یک قالب کسری ۱۶ بیتی ماکزیمم ۱۶ بیت دقت را فراهــــم می کند . این تعریف براساس نسبت اندازه مقدار نمایــــش داده شده به انداره ماکزیمم خطای کوانتیزاسیون می باشد ، بطوریکه داریم :

maximum precision ( in bits )  = log 2 ( 1 maximum value 1 / 1 maximum guantization error 1 )

در نمایش کسری ۱۶  بیتی بزرگترین دامنه مقدار قابل نمایش ۱- است . هنگام  تبدیـل به یک قالب کسری   ۱۶بیتی از یک قالب دقیق تر ( از طریقگردکردن ) ماکزیمم خطای کوانتیزاسیون

۲-۱۶   بیت است .لذا با توجه به تعریف این قالب ، ماکزیمم دقتی معادل (۱/۲ –۱۶ ) l og  ۲  یـــا ۱۶ بیت دارد که همـان عرض قالب می باشد . نکته اینکه اگر مقدار تنمایش یافته نسبت به ماکزیمم دامنه کوچکتـری داشته باشد ، دقتی که بدست می آید ، کمتر از ماکزیمم دقت در دسترس خواهد بود . این مورد بر اهمیت دقت مقیـــاس بندی سیگنال هنگام استفاده از حساب ممیز ثابت تاکید دارد . مقیاس بندی به منظور حفظ دقت می باشد.این فرآیند توسط پیراسته سازی مقادیر سیگنال جهت قرارگرفتن در نزدیکی ماکزیمم محدوده نمایـش انجام می شود . مقیاس بندی در بخش ۴ بررسی می شود .

تعریف مشابه ای برای قالب ممیز شناور وجود دارد : ماکزیمـــم دقت در دسترس ، تعداد بیتهای مانتیس است .( البته با در نظر گرفتن بیت صحیح ) . از آنجاییکه پردازنده های ممیز شناور بطور خودکار تمامی مقادیر را مقیاس بندی می کنند ( بطوریکـه بیت صحیح “ / “ است ) لذا دامنه مانتیس به حداقل مقدار ۱۰۵ محدود می شود .این ویژگی تضمین می کند که دقت هر مقدار ممیز شناور کمتر از نصف ماکزیمم دقت در دسترس نبـاشد . بنابراین پردازنده های ممیز شناور دقت را بسیار خوب حفظ نموده  وظیفه برنامه نویس آسان تر می گردد.

    در عمل پردازنده های ممیزشناورازقالب ۳۲ بیتی استفاده می کنند ( ۲۴ بیت مانتیس و یک بیت صحیح که در نتیجه ۲۵ بیت دقت را فراهم می کنند) . اکثر پردازنده های ممیز ثابت قالب ۱۶ بیت را با ۱۶ بین دقت بکار می برند . بنابراین درحالیکه از لحاظ تئوری انتخاب ممیز شناور یا ثابت می توانست مستقل از انتخاب دقت باشد اما درعمل پردازنده های ممیزشناورمعمولاً دقت بیشتری را فراهم می کنند .

    بنابراین محدوده دینامیک نسبت بین بزرگترین و کوچکترین عدد قابل نمـــایش در قالب داده تعریف می شود . مزیت حساب ممیز شناور با مثالی روشن می شود . در نمایش۳۲ بیتی ممیز ثابت مینیمم مقدار قابل نمایش  ۲ – ۳۱      و ماکزیمم آن ۱  -۲ –۳۱       می باشد . نسبت بین ایـن دو که محدوده دینامیک قالب داده است تقریباً   و ۱۵×۲ . ۱۵    حدود  ۱۸۷Db  می باشد . یک قــالب ممیز شناور ۳۲ بیتی با همان اندازه ( ۲۴ بیت مانتیس و ۸ بیت مفسر ) می تواند اعداد را از حدوداً

۱۰ – ۳۹×۵٫۸۸     تـــا ۱۰ ۳۸ × ۳٫۴ نمایش می دهد . محدوده دینامیک تقریباً  ۱۰۷۶× ۵ . ۷۹  یا ۱۵۳۵Db  می باشد . لذا با استفاده ازهمان تعداد بیتهای ممیز ثابت ، قالب ممیز شناور بطور قابل ملاحظه ای محدوده دینامیک بیشتری را فراهم می کند .

    درکاربردها محدوده دینامیک به محدوده  دامنــــــه های سیگنالهایی اطلاق می شود که می توانندباحفظ دقت کافی پردازش شوند.کاربردهای متفاوت محدوده دینامیک متفاوتی نیازدارند.  درکاربردهای مخابرات راه دور معمولاً محدوده دینامیک در همسایگی ۵۰ dB    کفایت می کند . در کاربردهای صوتی با کیفیت بالا مقدار ۹۰ dB  عمومی است .

    پردازنده های DSP ممیـز شناور عموماً از نوع ممیز ثابت گرانتر بوده اما برنامه نویسی آنها آسانتر است . هزینه بیشتر به دلیــل مداربندی پیچیده تر است . علاوه براین ، اندازه کلمه بزرگتر در پردازنده های ممیز شناور مستلـزم گذرگاههای عریض تر و حافظه های بیشتر است که هزینه کل سیستم را افزایش می دهد .

    آسانی کاربرد پردازنده های ممیــز شناور به این دلیل است که برنامه نویس در بسیاری از موارد لازم نیست به محدوده دینامیک و دقت توجـه نماید . ولی در نوع ممیز ثابت برنامه نویسان می بایست سیگنالها را در مراحل گوناگون برنامه هایشان مقیاس بندی کنند تا از محدوده عددی و دقت مناسب در پردازنده تجاوز ننمایند.

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

 

۳-۲ عرض اصلی کلمه :

عـــرض اصلی کلمه داده در یک پردازنده عرض داده ای است که گذرگاههای پردازنده و مسیر داده می توانند در یک سیکـــل بر روی آن عملیات انجام دهند . تمامی پردازنده های ممیز شناور از عرض داده ۳۲ بیتی بهــــره می برند . در نوع ممیز ثابت عرض ۱۶ بیت معمول است . خانواده های DSP5600X  و  DSP 563XX   موتورولا   کلمه داده ۲۴ بیتی و ZR3800X کلمه ۲۰ بیتی دارند . اندازه کلمه داده اثر مهمی روی هزینه پردازنده دارد چرا که اندازه تراشه و تعداد پایه های مورد نیاز برای قطعات خارجی را افزایش می دهد .بنابراین طراحان سعی می کنند از تراشه ای با کمترین عرض داده مناسب با کاربردشان استفاده کنند.تراشه CD 2450 از CLARKSPUR Designs منحصر به فرد است بطوریکه انتخاب هر کلمه داده ای بین  ۱۶ یا ۲۴ بیت را ممکن می سازد .

غالباً هنگام انتخاب تراشه های ممیز شناور یا ممیز ثابت مصالحه ای بین کلمه و پیچیدگی توسعه وجود دارد . کاربردی که نشان می دهد جهت کارایی بهتر به داده ۲۴ بیتی نیاز دارد ممکن است با یک پردازنــده ۱۶ بیتی البته به بهای هزینه بیشتر و الگوریتم پیچیده تر یا برنامه نویسی دشوارتر به انجام رسد .

۳-۳دقت توسعه یافته :

دقت توسعه یافته به معنای استفاده ازنمایشهایی است که دقت بیشتری به قــــالب داده اصلی پردازنده فراهم می کنند . دقت گسترش یافته به دو روش زیر صورت می گیرد :

اول : بسیاری از پردازنده های ممیز شناور یا ثابت جهت اعمالی که بطور انحصـاری داخل مسیر داده قرار دارند پشتیبانی داخلی برای قالب دقت گسترش یافته را فراهم می کنند. این بدان معناست که وقتی مجموعه هایی از اعمال حسابی داخل مسیر داده پردازنده در حال اجرا هستند و نتایج  میانی یا نهایی به و یا از حافظه منتقل نمی شوند،عرض کلمه داده بزرگتری نسبت به عرض داده اصلی در دسترس می باشد . لذل مجموعه ای از اعمـــال حسابی با دقت بیشتر  یا محدوده دینامیک وسیعتری انجام می شوند .نهایتاً هنگام ذخیره نتیجه به حافظه یک عمل گردکردن انجام می شود .

دوم : عموماً ممکن است و اغلب دشوارکه حساب چند دقتی را با ساختن کلمه های بزرگتر نسبت به کلمه های اصلی انجام دهیم.برای مثال بایک پردازنده ممیز ثابت  ۱۶ بیتی برنامه نویس می تواندکلمات داده ۳۲ بیتی را بااتصال جفت کلمات ۱۶ بیتی تشکیل دهد.برنامه نویس می تواتد اعمال حساب چند دقتی رابه کمک دنباله ای دقیق ازدستورات تک دقتی پیاده سازی کند. مثلاً یک جمع چند دقتی اغلب می تواند توسط یک سری از دستورات جمع تک دقتی محقق شود .

البته از آنجاییکه هر عمل حسابی چند دقتی به دنباله ای از دستورات تک دقتی نیاز دارد لذا حساب چند دقتی کندتر می باشد . هر چند بعضی از پردازنده ها ویژگیهایی دارند که حسـاب چند دقتی ر آسان می کنند .

اگر حجم یک کاربرد با حساب تک دقتی دستکاری شود اما برای بخشهای کوچک برنـامه دقت بیشتری نیاز باشد ، حساب چند دقتی مناسب نخواهد بود . چنانچه اکثر کـــاربردها به دقت بیشتری نیاز داشته باشند به نظر می رسد پردازنده ای با کلمه داده بزرگتر انتخاب بهتری باشد .

 

  • ممیز شناور بلوکی :

 

حتی هنگام استفاده از پردازنده ممیز ثابت این امکان وجود داردکه دقت ومحدوده دینامیک حساب ممیز شناوررا به کمک روتین های نرم افزاری که همانند پردازنده ممیزشناور رفتار می کنند به دست آوریم .بعضی ازسازندگان ، کتابخانه روتین های مشابه ممیز شناور را برای پردازنده های ممیز ثابت فراهم می کنند.اگرکتابخانه دردسترس نباشدکاربرمی بایست این روتین ها را بنویسد . روتین های ممیز شناور معمولاً برای اجرا به سیکلهای بسیاری نیـاز دارند . این ایجاب می کند که استفاده از این روش تنهادرمواقعی باشدکه بخشهای بسیارکوچکی از محاسبات ریاضی در کاربرد داده شده به قالب ممیز شناور نیـاز داشته باشند . اگر حجم قابل ملاحظه ای از حساب ممیز شناور نیاز است معمولاًپردازنده ممیز انتخاب دقیق تری می باشد .

رهیـافت دیگر برای بدست آوردن محدوده دینامیک و دقت بیشتر جهت داده انتخاب شده در پردازنده ممیزثابت نمایش ممیزشناوربلوکی می باشد.دراین روش گروهی ازاعدادباماشین های متفاوت اما مفسر مشترک به عنوان بلوکی از داده پردازش می شوند . علاوه بر ذخیره مفسر داخل هر کلمه داده ( همچنانکه در ممیز شناور انجام می شود ) مفسر در کلمه داده مجزای خودپپش نیز ذخیره می شود.برای مثال یک بلوک از هشت مقدارداده ممکن است یک مفسرعمومی را بکار برد . در این مورد ذخیره یک بلوک از ۸  مقدار داده به ۹  موقعیت حافظه نیاز دارد ( ۸  مـــــانتیس و ۱ مفسر ) .

ممیز شناور بلوکی به منظور محدوده دینامیک و دقت بیشتر نسبت به قالبهای حسابی ممیز ثابت پردازنده بکار می رود . ممکن است یک روتین فیلتر بر اساس مقادیر ۳۲ بیتی بوده ، امــــا برنامه نویس آن را به بلوکهایی با نمایش ۱۶ بیت مانتیس و مفسر۴ بیتی برای هربلوک داده تقلیل دهد . مفسر  برای بلوکی از داده معمولاً به وسیله المان داده در بلوک با بزرگترین دامنه تعییــــن می شود . اگر بلوکی از داده ها مقادیر کوچکی داشته باشد این مقادیر چندین مکان به چپ شیفت داده می شوندکه به تبع آن مفسر منفی تر می شود . اگر آن بلوک مقادیر بزرگی داشته باشد تعداد شیفت به چپ کمتر خواهد بود . چنانچه قابلیت شیفت داده وجود نداشته باشد دقت حاصل مشابه همان قالب اصلی پردازنده می باشد . شکل ( ۳-۵ ) مفاهیم ممیز شناور بلوکی را توضیح می دهد .

تبدیل بیـــن قالب ممیز ثابت و ممیز شناور بلوکی توسط برنامه نویس در نرم افزار انجام می شود . بعضی از پردازنده ها ویژگیهای سخت افزاری بخصوصی دارند که آنها را در استفاده از ممیز شناور بلوکی یاری می کنند.عمومی ترین آن دستور « آشکار کننده مفسر » است . این دستور شیفت های مورد نیاز را محاسبه می کند .

 دستورات ویژه که ممیز شناور بلوکی را پشتیبانی می کنند در فصل ۷ بررسی می شوند .

  • استاندارد ممیز شناور IEEE – ۷۵۴ :

در سال ۱۹۸۵  انستیتوی مهندسان برق و الکترونیک استاندارد IEEE – ۷۵۴  را تعریف کرد . پردازنده های معدودی سخت افـــزاری را برای پشتیبانی از این حساب فراهم می کنند . در DSP 96002  پشتیبانی سخت افزاری  بـرای حساب ممیز شناور تک دقتی مطابق با این استاندارد وجود دارد . خانواده ADSP – ۲۱۰XX  بطور کامل از این استاندارد تبعیت می کند .

بعضی از پردازنده های ممیز شناور نظیر AT&TDSP32XX   ویژگی داخلی برای IEEE – ۷۵۴  ندارد اما سخت افزارویژه ای رابرای تبدیل سریع اعداد بین نمایش ممیز شناور داخلی و استاندارد مذکور در بر می گیرد.پشتیبانی سخت افزاری برای تبدیل قالی می تواند در کاربردهایی مهم باشد که به یک DSP براساس این استانداردنیاز نداشته باشند و بتوانند با دیگر پردازنده هایی که از این استاندارد بهره می برند ارتباط برقرار کنند.بدون این ویژگی DSP ممیز شناور مذکور می بایست از روتین نای نرم افزاری جهت تبدیل دو قالب استفاده کند که می تواند زمان بر و وقت گیر باشد .

 

  • ارتباط بین اندازه کلمه و اندازه کلمه دستور :

دراکثرپردازنده هایDSP بجزتعداد اندکی اندازه کلمه دستوربا اندازه کلمه داده برابر است . تنها خانواده ADSP – ۲۱XX   و IBM MDSP2780   کلمه داده ۱۶ بیتی وکلمه دستور۲۴ بیتی دارند . خانواده ZORUN ZR3800X  نیز داده ۲۰ بیتی و دستور ۳۲ بیتی را بکار می برد .

پردازنده هایی با اندازه های کلمه متفاوت عموماً  در موارد ذخیره داده در حافظه با قیدهایی مواجه اند ( برای مثال  داده ۱۶ بیتی در حافظه ۲۴ بیتی ) . واضح است که این روش در استفاده از حافظه کارآمد نمی باشد چرا که بخش قابل ملاحظه ای از کلمه حافظه برنامه که جهت ذخیره داده استفاده می شود بلا استفاده مانده و این می تواند روی هزینه کلی سیستم تاثیر گذار باشد .

 

 

 فصل ۴

مسیــــــــر داده :

 

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

۴-۱ مسیر داده ممیز ثابت :

مسیرهای داده پردازنده های ممیز ثابت معمولاً شامل یک ضرب کننده ، یک AIU ، یک یا چندشیفت دهنده،رجیسترهای عملوند،انباره هاودیگرواحدهای ویژه می باشند . بعضی فروشندگان به مسیرداده، ALU یا واحد حسابی نیز می گویند . اما در این جا واژه ALU برای واحدهای عملیاتی جمع کننده / تفـریق کننده و اعمال منطقی بکار می رود . شکل ( ۴-۱ ) یک مسیر داده ممیز ثابت معمولی را از شرکت موتورولا نشان می دهد .

مسیرداده درDSP عموماً برای محاسبات آدرس حافظه بکارنمی رود . اما معمولاً در پردازنده های ممیز ثابت یک واحد سخت افزار مجزا برای محاسبه آدرس وجود دارد . این واحد اغلب واحد تولید آدرس یا AGU نامیده می شود . این سخت افزارمعمولاً مجموعه ای غنی ازمحاسبات آدرس را نظیر آدرس دهی ماژول و bit – neversed  انجام می دهد . ATRDSP32C  و DSP32XX استثنــاء هستند . در آنها مسیرهای ممیز شناور و ممیز ثابت مجزا می باشند بطوریکه مسیر ممیزثابت برای محاسبات آدرس استفاده می شود .

تنوع روشهای آدرس دهی ویژه که در پردازنده های DSP  وجود دارد ، یکی ازعواملی است که این تراشه ها را از دیگر انواع پردازنده ها نظیر پردازنده های RISC  هدف عمومی متمـــــایز می سازد . واحد های تولید آدرس در DSP  و روشهای آدرس دهی در فصل ۶  بررسی می شوند .

ضرب کننده :

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

در بسیاری از کاربردها نیم یا بیشتردستوراتی که توسط پردازنده اجرامی شوند،عمل ضرب را در بر دارند . بنابراین در همه پردازنده های DSP یک ضرب کننده وجود دارد بطوریکه دو عملوند با عرض قالب اصلی پردازنده را در یک سیکـل ضرب می کند . هر چند ظرفیتهای ضرب کننده در پردازنده های گوناگون متفاوت است .

گاهی اوقات خط لوله داخلی ضرب کننــــده می تواند تاخیری بیشتر از یک سیکل را بین ورودیها و خروجی هانتیجه دهد.این تاخیر از ورودی تا نتیجه حاصل « دوره » نامیده می شود . این ضرب کننده هاکارایی خودراتنهامواقعی نشان می دهندکه دنباله ای ازاعمال ضرب انجام میشود . اگر تنها یک عمل ضرب مورد نظر باشد ، می بایست برای نتیجه آن چندین سیکل صبـــر کرد . پردازنده ای با این نوع ضرب کننده CD2450  می باشد .

در بعضی موارد ( DSP 5600X  ) ضرب کننـــده بهمراه یک جمع کننده برای تشکیل واحد ضرب انبارش مجتمع می شود . در موارد دیگر ( AT&TDSP16XX ) ضرب کننـــده مجزا است  بطوریکه خروجی آن به یک رجیستر ضرب منتقل شده و ازآن جامی تواند به یک جمع کننده جهت انبارش فرستاده شود . اگر ضرب کننده و جمع کننده متمایز باشند ، نتیجه عمل ضرب انباره قبل اینکه دستور بعدی بتواند از آن استفاده کند ، یک سیکل دستور تاخیر می یابد .

تفاوت دیگری در بین ضرب کننده های DSP  اندازه ضرب بوده که مرتبط به عملونــــدها می باشد . عموماً هنگام ضرب دو عدد n بیتی ، ۲n بیت نیاز بوده تا نتیجه ضرب بدون خطـا بدست آید . به این فرآیند قانون حفظ بیت نیز می گویند . لذا خود ضرب کننده در محاسبات خطایــی را موجب نخواهد شد . هر چند بعضی از پردازنده های ممیز ثابت به دلیل اقتصادی و ســـــرعت از ضرب کننده هایی استفاده میکنندکه نتایج کوتاهتری تولیدمی کنندلذا منجربه خطاهای محاسباتی می شوند . برای مثال  Z893XX  و  CD2400  عملوندهای ۱۶ بیتی را گرفته نتایج ۲۴ بیتی به جای ۳۲ بیتی تولید می کنند . اگـــــر چه این امکان وجود دارد که نتیجه کامل ضرب را به مرحله بعد محاسبات بفرستیم اما این امر معمولاً غیر عملی می باشد چرا که دنباله ای از اعمال ضرب و جمع نتایجی با عرض خیلی بیشترتولید خواهند کرد . بنابراین در اکثر موارد لزومی  ندارد که نتیجه کامل ضرب را داشته باشیم زیرا اغلب محدوده دینامیک و دقت اضافی مفید نمی باشد.بنابراین به دلایل عملی برنامه نویس معمولاًزیرمجموعه ای ازبیتهای خروجی ضرب راکه برای محاسبات لازم است انتخاب می کند.یا ممکن است جهت انبارش مجموعه ای از نتایج ضرب ابتدا انبارش با طول کامل انجام شود سپس نتیجه نهایی قبل از رفتن به مرحله بعدی محاسبات گرد شود .

۲
N
۲
N

هنگامیکه دوعددباینری ضرب می شوند مکان ممیز در نتیجه کامل بستگی به مکان ممیزها در عملوندها دارد . این مورد در شکل ( ۴-۲ ) و ( ۴-۳ ) آورده شده است . اگر حساب صحیح بکار می رود خروجی ضرب کننده با عرض کامل نیز صحیح است و برنامه نویس معمولاً  بیتهای پایینی را حفظ می کند. دراین مورد اندازه عملوندها می بایست توسط برنامه نویس محدود شود بطوریکه نتیجه ضرب کامـلاً در نیمه پایین نتیجه ضرب کننده قرار می گیرد . هنگامیکه این عمل انجام شد ۱+      بیت پردازشتر از N بیت نتیجه بیت علامتند ( که گاهگاهی بیتهای گسترش علامت نامیده می شوند ) . بنابراین هنگامیکه          بیت حذف شوند ، تقریباً اطلاعاتی از بین نمی رود .

چنانچه حساب کسری استفاده شود،نتیجه کامل ضرب در طرف راست دو برابر عملوندهای ضرب می باشد و برنامه نویس معمولاً بیت های کم ارزش را حذف می کند .

رجیسترهای انباره :

رجیسترهای انباره نتیج میانی و یـا نهایی عمل ضرب انباره و دیگر اعمال حسابی را حفظ می کنند . اکثر پردازنده های DSP  دو یا چنـد انباره دارند . بعضی از آنها تنها یک انباره داشته که می توانددربسیاری از کاربردها ناکارآمد باشد . وجود یک انباره در معماری DSP  مساله ساز است . از آنجاییکه انباره معمولاً به عنوان عملوند منبع یـا مقصد برای اعمال ALU  به حساب می آید لـذا می بایست محتویاتش به صورت پی در پی بارگذاری شود ( و یا ذخیره شود ) . بنابراین در حالیکه ALU  برای وظایف متغیری بکار می رود ، این بارگذاری ها و ذخیره ها نرخی راکه درآن داده بتواند از ALU  بگذرد محدود می کند .

معمولاً اندازه رجیسترهای انباره می بایست از اندازه کلمه خروجی ضرب کننده چندین بیت بزرگتر باشد . بیتهای بیشتر ، بیتهای گارد نامیده می شوند . این بیتها برنامه نویس را قــــــادر می سازند تعدادی از مقادیر را بدون سرریز شدن انباره یا بدون مقیـــــاس بندی مقادیر میانی، پردازش و انبارش نماید . انباره ای با R  بیت گارد معادل ۲N     مقدار ( جهت انبارش بدون سرریز ) ظرفیت دارد . اکثر پردازنده ها ۴  یا ۸  بیت گارد دارند . مثلاً DSP 16XX  ، ۴  بیت گارد ( انباره های ۳۶ بیتی با رجیستر ضرب ۳۲ بیتی ) و ADSP – ۲۱ XX ، ۸  بیت گارد ( ۴۰  بیت انبـــاره و رجیستر ضرب ۳۲ بیتی ) را فراهم می کنند .

در یک پردازنده فاقد بیتهای گارد ، سیگنالهای ورودی یا نتایج میانی اغلب می بایست قبل از جمع با مقدار انباره مقیاس بندی شوند تا امکان سرریز حذف شود . معمولاً این عمـــل شامل مقیاس بندی نتیجه ضرب ( با شیفت آن چند بیت به راست ) می شود . در نبود بیتهای گارد گاهی اوقات قابلیت شیفت مقادیر رجیستر ضرب بدون ضرب سیکل دستور وجود دارد . مثلاً در C2X  و C5X  رجیستر ضرب بطور خودکار ۶ بیت به راست شیفت می یابد . این قبیل شیفتها با کم شدن دقت همراه است .

بیتهای گارد انعطاف پذیری بیشتری را نسبت به مقیاس بندی نتیجه ضرب نتیجه می دهند چراکه امکان حفظ ماکزیمم دقت را در مراحل میانی محاسبات میسر می سازند . در C1X بیتهـای گارد و قابلیت مقیاس بندی ضرب وجود ندارد لذا بایستی ورودی ضرب کننده مقیاس بنـدی شده که این امر منجر به کم شدن دقت به میزان زیادی خواهد شد . فقدان این دو ویژگی در بسیـاری از موارد محدودیتهای جدی به بار می آورد .

ALU

واحدهــای محاسبه و منطق در DSP اعمال حسابی و منطقی را در یک سیکل دستور انجام می دهند . اعمـال عمومی جمع ، تفریق ، افزایش و اعمال منطقی OR  ، and  ، NOT  می باشند .در ALU  ها اندازه کلمــه ای که برای اعمال منطقی بکتر می رود ، متغیر است . بعضی از پردازنده ها اعمال منطقی را روی عملوندهایی که عرض کاملی از انباره هستند، انجام می دهند در حالیکه انواع دیگر اعمال را روی کلمــات داده با قالب اصلـی DSP  انجام می دهند . مثلاً در DSP 16XX  اعمال منطقی روی مقادیر انبــاره ۳۶  بیتی انجام می شود در حالیکه در DSP5600X    با انباره ۵۶  بیتی این اعمال روی ۲۴ بیت انجـام می شود . اگر ALU  نتواند اعمال منطقی را روی داده ای با عرض انباره انجام دهد برنامه نویسان می بایست در چندین مرحله با صرف سیکلهای دستور این کار را انجام دهند .

شیفت دهند ها :

ضرب و جمع منجر به رشد نتایج در محاسبات می شوند . دراکثـــــر موارد برنامه نویس زیرمجموعه ای از بیتهای نتیجه را برای پردازش به مرحله بعدی محاسبه می فرستد .  یک شیفت دهنده در مسیر داده این امکان را با مقیاس بندی ورودی اش بصورت توانی از ۲  آسان می سازد .

مقیاس بندی عمل مهمی است که در اکثر کاربردهای DSP  ممیز ثابت وجود دارد .این بدان علت است که اکثر وظابف DSP اثر انقباض یا انبساط روی محدوده مقادیر سیگنالهای پــردازش

 

۱
۱
۱۲۸

شده دارند .به مثال سـاده فیلتر FIR  که در شکل ( ۴-۴ ) آمده است توجه کنید . فیلتر مثال بهـره ۱۰۰ دارد . به این معناکه محدوده مقادیر در خروجی فیلتر می توانند ۱۰۰مرتبه بزرگتر از محدوده مقادیر درورودی باشند.اگرسیگنال ورودی به بازه ۱- تا ۱+ محدود شود مقادیرخروجی به محدوده ۱۰۰- تا ۱۰۰ محدود می شوند . مشکل وقتی به وجود می آید که نمایش عددی به بازه ۱- تا ۱+ محـدود شود ( برای حساب کسری ). اگر سیگنالها با این شرایط پردازش شوند سرریز رخ داده نتایج غیر صحیح تولید خواهد شد . لذا برنامه نویس می بایست به محدوده مقادیر سیگنال در هر نقطـــه از برنامه توجه کرده سیگنالها را مقیاس بندی نماید . همانگونه که در شکل ( ۴-۴ ) آمده است برنامه نویس می تواند امکان سرریز را با مقیاس بندی سیگنال  xn   با ضریب ۰ . ۰۰۷۸ ( ،

۱۰۰

 نزدیکترین توان دو به            ) قبل از فیلتر آن حذف نماید . مصالحه ای که بهمراه این مقیاس بــندی حاصل می شود کم شدن دقت و محدوده دینامیک است . با توجه به تعریف دقت هنگامیکه یک سیگنال مقیاس بندی شود ( به محدوده کوچکتری ) برخی از بیتهای مرتبه پایین مقدار اصلی از طریق ترانکیشن و گرد کردن از بین می روند . بنابراین دامنه مقادیر قابل نمایش کمتر شده در حالیکه ماکزیمم دامنــــه خطای کوانتیزاسیون بدون تغییر باقی می ماند . لذا دقت ک  می شود . بطور مشابه  از آنجاییکه  دامنــه بزرگتـــــرین مقدار قابل نمایش کم می شود اما دامنه کوچکترین مقدار قابل نمایش بدون تغییر باقی

می ماند لذا محدوده دینامیک کم می شود .

بنابراین مقیاس بندی می بایست با دقت فراوان انجام شود بطوریکه امکان سرریز حذف شده و در عین حال محدوده دینامیک و دقت مناسب نیز حفظ شود .

خاصیت مقیــــاس بندی سیگنال می تواند در پیاده سازی یک کاربرد روی پردازنده  ممیز ثابت مطالعه قابل ملاحظه ای باشد. معمولاً توسعه دهندگان کاربرد  از تحلیلها و شبیه سازی های ظریفی برای تعیین اینکه کجا و چگونه می بایست سیگنالها مقیاس بندی شوند استفاده می کنند . آنگاه اعمال لازم را در موقعیتها و مکانهای دقیق لحاظ می کنند .

نکته اینکه مقیاس بنـــدی با بیتهای گارد انباره مرتبط است چرا که در هر دو حذف یا امکان کم کردن سرریزمورد نظر است.مقیاس بندی محدوده نتایج میانی یا نهایی را به محدوده مقادیر قابل نمایش منحصرمی کند.اما بیتهای گاردامکان نمایش مقادیرمیانی را بامحدوده بزرگتری ممکن می سازند . لـــذا مقیاس بندی نتایج میانی می تواند گاهگاهی برای عدم نیاز به بیتهای گارد استفاده شود . اما بیتهای گارد نیاز به مقیاس بندی را حذف نمی کنند . هنگام استفاده از بیتهای گارد لازم است که نتیجه پایانی مقیاس بندی شود . برای مثال در پردازنـــده ۱۶ بیتی با ۴ بیت گارد در انباره ممکن است لازم باشد که مقادیر انباره با ضریب ۲ – ۴    قبل از نوشتن آنها به حافظه به عنوان مقادیر ۱۶ بیتی مقیاس بندی شوند .

   اغلب بلافاصله بعدازALU یاضرب کننده یک شیفت دهنده لحاظ می شود.بعضی ازشیفت دهنده ها ظرفیتهای محدودی دارند ( برای مثال یک بیت شیفت به راست یا چپ ) . شیفتهای چند بیتـی به صورت یک بیت در هر لحظه می تواند وقت گیر باشد .نوعی ازشیفت دهنده ها،شیفت دهنده های گردشی نامیده می شود که انعطاف پذیری بیشتری داشته شیفت چندین بیت را در یک سیکل دستور ممکن می سـازند. در بعضی از پردازنده ها شیفت دهنده با ظرفیتهـــای متفاوت در مکانهای مختلف مسیر داده قرار دارند . بنابراین انعطاف پذیری بیشتری برای انجام شیفت در هر الگوریتم وجود دارد . برای مثال DSP 5600 n  دو شیفت دهنده با ظرفیت محدود و مستقا دارد . یکی برای مقیاس بندی نتایج ضرب انباره در حـــال نوشتن آنها به حافظه می باشد و دیگری جهت شیفت مقادیر داخل انباره ( شیفتهای گردشی و منطقـی ) استفاده می شود .

 

   سرریز و اشباع :

   بسیاری از کاربردهای DSP  انبارش مجموعه ای از مقادیر را شامل می شوند . این فرآیند به عنوان مثال در الگوریتم پالایش رخ می دهد . در آنجا داده ها در ضرایب ضرب شده نتایج با یکدیگر جمـــــع می شوند . هنگام انبارش مجموعه ای از اعداد ممکن است دامنه رشد یابد و متجاوز ازمقدار قابل نمایش از انباره شود . در این حالت که سرریز نامیده می شود مقدار نادرستی ذخیره خواهد شد و خروجی واقعی از مقدار دقیق بسیار دور خواهد بود . حتی اگر رجیستر انباره سرریز نداشته باشد رخـــداد سرریز هنگام انتقال مقدار به حافظه نیز ممکن است ( در صورتی که انباره بیتهای گارد داشته باشد ). در ایـــن حالت

 

انباره می تواند اعداد بزرگتری را نسبت به کلمه حافظه نمایش دهد . این امر در بسیاری از پردازنــده ها خصوصــاً PineDSP  و DSP 16 XX  مشاهده می شود . سرریز در مواقعی که شیفت دهنده برای مقیاس بندی مقدار انباره استفاده می شود نیز می تواند اتفاق بافتد چرا که مقدار در حافظه ذخیره می شود .

   دو روش عمومــی در برخورد با سرریز وجود دادرد . تکنیک اول مقیاس بندی دقیق همه محاسبات صرفنظر از مقدار ورودی می باشـد . روش دیگر حساب اشباع است . در این حساب مدار ویژه ای رخداد سرریز را آشکار کرده خروجی نادرستی را با بزرگترین عدد مثبت یا منفی قابل نمایش جایگزین می کند . هر چند نتیجه همچنان غلط است اما خطا کوچکتر از موقعی است که از این حساب استفاده نمی شود .      برای مثال در حساب دهدهی ودو رقمی نتیجه جمع سه عدد ۵۰  و ۴۵  و ۲۰  بدون اشباع ۱۵ می شود . اما در حساب اشباع مقدار آن وو خواهد بود که تنها به اندازه ۱۶ مقدار با ۱۱۵  فاصله دارد .

   از آنجاییکه اغلب دلخـواه و عملی نمی باشد که سیگنالها را برای حذف امکان سرریز مقیاس بندی نماییم لذا حساب اشباع بسیــار مفید است . پردازنده های ممیز ثابت عموماً سخت افزار ویژه ای جهت حساب اشباع دارند . این ساختـار بطور خودکار ( شاید تحت کنترل یک رجیستر مود ) یا با اجرای دستور ویژه ای فعال می شود . این واحد توسط بعضی از سازندگان محدود کننده نیز نامیده می شود .

 

   گرد کردن :

   همانطور که  دیدیم ضرب ، انبارش و دیگر اعمال حسابی منجر به افزایش تعداد بیتهایی می شوند که برای دقت منــاسب نتایج مورد نیاز هستند . در بعضی حالات لازم است که دقت این نتایج کم شود . ( مثلاً هنگام انتقـــال محتویات انباره ۳۶ بیتی به حافظه ۱۶ بیتی ) . ساده ترین روش برای اینکار حذف بیتهای کم ارزشتر می باشد . این عمل ترانکیشن یا سرزنی نامیده می شود .

   برای مثال جهت سرزنی مقدار ۳۶ بیتی به ۱۶ بیتی ، ۲۰ بیت کم ارزش حذف شده تنها ۱۶ بیت با ارزش تر پردازش می شوند . از آن جاییکه بخشی از اطلاعات در این روش از بین می روند لذا در شروع کار خطایی در سیگنالها رخ می دهد . مقدار حاصل همواره کوچکتر یا مساوی مقدار اصلی می باشد . بدان

 

معنا که عمل سرزنی آفست یا بایاسی را به سیگنالها اضافه می کند . بعضی از پردازنده ها عمل گردکردن را همـانند اشباع به صورت خودکار انجام می دهند . دیگر پردازنده ها دستور ویژه ای را برای اینکار اجرا می کننــــد . خانواده های ADSP – ۲۱XX و DSP 5600X  دستورات ویژه ای را برای گردکردن متفاوت بکار می برند . در این پردازنده ها گردکردن شرطی نیز پشتیبانی می شود .

 

   رجیسترهای عملوند :

   دراکثر پردازنده های ممیز ثابت عملوندها در مسیر داده توسط تعداد کمی از رجیسترهای عملوند یا توسط انباره تغذیه می شوند.مقادیرمی بایست در رجیسترهای عملوند قبل از پردازش به کمک دستورات MOVE  بارگذاری شوند . پردازنــده ای که داده ها را تنها پس از بارکردن آنها در رجیسترهای عملوند پردازش می کند اغلب منتسب به معمــاری Load – store  می باشد . رجیسترها به کمک آدرس دهی مستقیم و رجیستر در دسترس واقع می شوند .

   در پردازنده های دیگری نظیـــــر C5X و PineDSP عملوندها مستقیماً از حافظه به مسیر داده توسط آدرس دهی غیرمستقیم رجیستر یا مستقیم حافظه تغذیه می شوند .

 

   ۴-۲ مسیر داده ممیز شناور :

   مسیرهای داده درپردازنده ممیز شناور شبیه به آنهایی است که در نوع ممیز ثابت پیدا می شوند اما در چندین مورد متفاوتنــد . در این بخش این تفاوتها بررسی می شوند . شکل ( ۴-۶ ) مسیر داده ممیز شناور AT&T DSP DSP3210  را نشان می دهد .

   در اکثر پردازنده هـــای ممیز شناور مسیر اصلی داده قابلیت محاسبات ممیز ثابت و ممیز شناور را تواماً دارا می باشد . اما تنهــا در هر دستور یک نوع عملیات می تواند انجام شود . این مورد در پردازنده های ممیز شناور Texas Tnstruments ، Motorola  و Analog derices مشاهده می شود .

   بعضی از پردازنده ها دو مسیر داده داده دارند . یکی برای اعمال ممیز شناور و دیگری با ظرفیتهای

 

کمتر برای اعمال ممیز ثابت . برای مثال در تراشه DSP32XX واحد حساب کنترل به محاسبات آدرس و حساب صحیح دسترسی دارد در حالیکه واحد حساب داده محاسبات ممیز شناور را انجام می دهد . در پردازنده هایی که مسیرهای داده ممیز شناور و ثابت متمایزی دارند ، مسیر داده ممیز ثابت شامل ضرب کننده نمی شود .

 

   ضرب کننده :

   ضرب کننده های ممیزشناور دو عملوند ممیز شناور ( معمولاً ۳۲ بیت ) را دریافت می کنند . برخلاف ضرب کننده های ممیز ثابت،دراین نوع عموماًجهت کم نشدن دقت کلمه خروجی بزرگی تولید نمی شود . برای مثال هنگام ضرب دو مقدار ممیز شناور تک دقت ( IEEE 754  ) هر مقدار ورودی مانتیس مناسبی با عرض ۲۴ بیت دارا می باشد . برای دقت کامل عرض مانتیس خروجی می بایست  ۴۸ بیت باشد . اکثر پردازنده های ممیز شناور این عرض کامل را ندارند . اما قالب خروجی عموماً از قالب ورودی به اندازه ۸  الی  ۱۲ بیت در مانتیس بزرگتر می باشد .

   ALU

   واحدهای محاسبه و منطق در ممیز شناور معمولاً  جمع ، تفریق و دیگر اعمـال حسابی را نظیر قدر مطلق مکمل ، ماکزیمم و مینیمم را انجام می دهند .بعضی از این واحدها اعمال خاص دیگری را نیز انجام می دهند که در جدول ( ۱-۴ ) لیست شده اند .

   پردازنده های ممیزشناورازALU جهت انجام عمل جمع دراعمال ضرب انباره  استفاده می کنند . علاوه بر اعمال ضرب انباره بعضی از پردازنده ها نظیر AT&TDSP32C  یک عمل ضرب جمع را نیز انجام می دهند . این عمل با ضرب انباره تفاوت دارد چرا که نتیجه حاصـل در انباره متفاوتی نوشته می شود . اعمال منطقی نظیر and   ، or  و not  عموماً در مسیر داده ممیز شنــاور آنچنان حائز اهمیت نمی باشند .

 

 

   سرریز و دیگر موارد استثنایی :

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

 

   رجیسترهای انباره :

   عموماً در پردازنده های ممیز شناور رجیسترهای بیشتر و بزرگتری نسبت به ممیز ثابت وجود دارد. در بعضی از آنها نظیـــــــر AT&TDSP3210 تعداد کمی از رجیسترها مشخصاً برای انباره طراحی می شوند . در پردازنده های دیگر بانکی از رجیسترهای عمومی وجود دارد . برای مثال C3X که در آن ۸  رجیستر ۴۰ بیتی و ۳۲ بیتی وجود دارد .

 

   شیفت دهنده ها :

   در حساب ممیز شنــاور سخت افزاری وجود دارد که بطور خودکار نتایج را با بیشترین دقت ممکن مقیاس بندی می کند . در مسیـر داده ممیز شناور شیفت دهنده ای برای این منظور وجود داشته اما غالباً توسط برنامه نویس قابل کنتــرل و مشاهده نمی باشد . اما در پردازنده هایی که از هر دو مسیر استفاده می کنند می توات از شیفت دهنده برای اعمال کنترلی استفاده کرد .

   رجیسترهای عملوند :

   در این جا نیز مشابه نوع ممیــز ثابت رجیسترهایی برای عملوندهای مسیر داده طراحی می شوند . پردازنده های معدودی نظیـــر AT&DSP32XX عملوندها را بطور مستقیم از حافظه به مسیر داده به کمک آدرس دهی غیرمستقیم رجیستر تغذیه می کنند . نتایج حسابی به یک انباره نوشته شده و یا ممکن است با این آدرس دهی به حافظه منتقل شود .

   ۴-۳ واحدهای عملیاتی ویژه :

   پردازنده های DSP که در کاربردهای بسیار خاص استفاده می شوند ساختارهای ویـــــژه ای را می طلبند لذا به همین دلیل سازندگان به دنبال طراحی و گنجاندن سخت افزار ویژه ای در مسیـــر داده پردازنده به منظور کارایی بیشتر می باشند . یک مثال آن DSP 1610 می باشد . این پردازنده بـــرای کاربردهای رادیویی موبایل مورد توجه است . در این کاربردها پردازنده های DSP به منظــــور کدینگ گفتار استفاده می شوند . این کاربردها معمولاً اعمال بیتی فراوانی را شامل می شوند . ( مثلاً لحاظ کردن n بیت در مکان ویژه ای داخل m بیت ) .

   معمـاری پایه که از DSP1600 مشتق می شود شیفت دهنده گردشی را شامل نمی شود بنابراین نمی تواند اعمال مدیریت بیت را بطور مناسب انجام دهد . کمپانی AT&T این نقص را با اضافه کردن واحد ویـــژه مدیریت بیت ( BMU  ) در مسیر داده DSP1610  برطرف کرد . افزودن BMU کارایی قابل مقایســه DSP1610  را در اعمال مدیریت بیت به پردازنده های دیگر بسیار خوب نشان می دهد زیرا در این پردازنده ها تنها یک شیفت گردشی در مسیر اصلی داده وجود دارد .

   این معماری ابتکاری که توسطAT&T آغازشد گاهگاهی با واحدهای عملیاتی کاربرد مخصوص نیز تلفیق می شود . دستوراتی نیز برای دسترسی به این واحدها طراحی می شوند .

 

فصل ۵

 

معماری حافظه : 

 

همــانگونه که  در بخش قبل مشاهده شد مسیرهای داده پردازنده DSP به منظور فراهم آوردن کارایی بیشتـر در انواع الگوریتم های سنگین محاسباتی بهینه می شوند . هر چند مسیر داده کارآمد تنها بخشی از یک پردازنده بسیار کارا می باشد . به منظور نگه داشتن مسیر داده ای که با داده تغذیه می شود و همچنین جهت ذخیره نتایج اعمال مسیر داده ، پردازنده های DSP به قابلیتی نیاز دارند که حجم انبوهی از داده ها را به و یا از حافظه منتقل کنند . بنابراین سازمان حافظه و اتصالاتش بهمراه مسیر داده پردازنده ها فکتورهای اصلی در تعیین کارایی پردازنده می باشند . این مشخصات را معماری حافظه پردازنده نامیده و انواع معماریهای حافظه که در پردازنده های DSP پیدا می شوند بررسی خواهند شد . فصل ۶ روشهای آدرس دهی را پوشش می دهد . این روشها به عنوان ابزاری جهت دسترسی به حافظه برای برنامه نویسان تلقی می شوند .

به منظور درک نیاز به پهنای باند حافظه بیشتر در کاربردهای DSP مثال فیلتر FIR در شکل ( ۵-۱) مفروض است . این مثال ساده ترین نمونه برای توضیح نیاز به ویژگیهای مخصوص در پردازنده DSP  می باشد .

بلوکهای D  واحد تاخیر می باشند بطوریکه خروجی آنها همانند ورودی است که یک نمونه تاخیر یافته است . مجموعه ای از عناصر ذخیره سازی ( معمولاً مکانهای حافظه ) برای شبیع سازی این بلوکها به کار می روند . فیلتر FIR مجموعه ای از tab ها می باشد . هر tab یک عمل ضرب و انبارش را شامل می شود . در هر زمان R-1 نمونه ورودی در خط تاخیر مقیم می شوند . n تعداد tab در فیلتر است . هر لحظه یک نمونه ورودی جدید اعمال شده نمونه های قبلی یک مکان به راست شیفت می یابند و نمونه خروجی تولید می شود .

همانگونه که در فصل ۴ بحث شد مسیرهای داده در dsp  برای انجام عمل ضرب انباره در یک سیکل دستور طراحی می شوند . این بدان معناست که اعمال مورد نیاز برای یک tab  می توانند در یک

سیکل محاسبه شوند . لذا یک نمونه خروجی جدید می تواند برای n  ، tab  فیلتر FIT در هر n سیکل دستور تولید شود . اگر چه برای انجام این عمل پردازنده می بایست امکان جندین دسترسی به حافظه را در یک سیکل دستور داشته باشد . پردازنده می بایست موارد زیر ردا انجام دهد :

l     دستور ضرب انباره ( MAC ) را برداشت نماید .

l     مقدار داده را از خط تاخیر بخواند .

   l      مقدار ضریب را نیز بخواند .

    l      مقدار داده را به موقعیت بعد در خط تاخیر به منظور شیفت داده بنویسد .

   بنابراین اگر قرار است عمل MAC در یک سیکل اجرا شود پردازنده می بایست چهار دسترسی به حافظه در این سیکل داشته باشد . در عمل تعضی از پردازنده ها تکنیکهای دیگری را برای کم کردن تعداد دسترسی به حافظه ( ۳ یا ۲ دسترسی ) بکار می برند . با این حال همه پردازنده ها برای محاسبه یک فیلتر FIR  با یک tab در هر دستور به چندین دسترسی به حافظه در یک سیکل نیاز دارند . این پهنای باند حافظه برای دیگر الگوریتم های مهم DSP در کنار فیلتر FIR نیز نیاز است .

   ۵-۱ ساختارهای حافظه :

 

   ساده ترین ساختار حافظه پردازنده یک بانک حافظه است که پردازنده از طریق یک مجموعه از خطوط آدرس و داده به آن دسترسی دارد . این ساختار در شکل ( ۵-۲ ) آمده است .

   این ساختار که در میان پردازنده های DSP عمومیت ندارد معماری Von-neumann neumann

نامیده می شود . هر دوی دستورات برنامه و دادها در یک حافظه ذخیره می شوند . در ساده ترین و عمومی ترین حالت پردازنده می تواند یک دسترسی ( خواندن یا نوشتن ) به حافظه در طی یک سکل دستور داشته باشد . اگر برای پیاده سازی الگوریتم فیلتر FIR به معماری ساده Von numann دقت شود ضعف معماری بلافاصله مشاهده می شود . اگر چه کامل شدن عمل ضرب ئانباره در یک سیکل دستور مورد نظر است اما پهنای سیکل دستور در این معماری نیاز خواهد بود زیرا حافظه به صورت ترتیبی در اختیار پردازنده قرار می گیرد . این مورد دلیل بر آن است که چرا پردازنده های معمولی و عمومی غالباً در کاربردهای سنگین DSP به خوبی عمل نمی کنند . طراحان DSP تحولات اساسی در این معماری به وجود آورده اند . هر یک از این تحولات در قیاس با معماری Von numann پیشرفت هایی را در پهنای باند حافظه در اختیار قرار می دهند .

پردازنده های گوناگون تکنیکهای متفاوتی را برای افزایش پهنای باند حافظه بکار می برند و در بسیاری از موارد ( اکثراً در قطعات ممیز ثابت و کوچک ) پردازنده ها در قبال این پهنای باند اضافه شده محدودیتهایی دارند . این محدودیتها اغلب در پیچیدگی نرم افزار توسعه برای پردازنده های DSP بطور قابل ملاحظه ای سهیم هستند .

   معماریهای  هاروارد :

   معماریهای هاروارد به ساختاری گفته می شود که در آن پردازنده به دو بانک حافظه مستقل از طریق گذرگاههای مستقل متصل است . در معماریهای

 

 

سیستم پردازش سیگنـال به هر سیستمی گفته می شود که از این دانش  بهره می برد . پردازش  سیگنال دیجیتال کاربرد  اعمـــال حسابی  بر روی سیگنالها می باشد که بصورت رقمی نمایش داده می شوند  سیگنالها همانند دنباله ای ازنمونه هانشان داده می شوند.غالباًاین نمونه ها ازسیگنالهای فیزیکی ( همانند سیگنالهای صوتی ) با استفاده از تراگردانها ( همـانند میکروفن ) و مبدلهای A/D بدست می آیند . بعـد از پردازش حسابی،سیگنالهای دیجیتال می بایست توســط مبدلهای D/A به سیگنالهای فیزیکی تبدیل شوند .

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

 می باشند .

بخش چشــم اندازی کلی بر پردازش سیگنال است . ابتدا در مورد مزیت DSP بر سیستم آنالوگ بحث شده سپس بعضی از ویژگیها و مشخصـات سیستم های DSP   بصورت کلی بررسی می شود.درپایان نتیجه گیری با نگرشی خلاصه به بعضی ازکلاسهای مهم کاربردهای DSP  انجام می شود .

  • مزایای DSP :

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

« عدم حساسیت به محیط » : سیستم های دیجیتـــــال به تغییرات شرایط محیطی کمتر حساس می باشند . رفتار مدار آنالوگ بسته به دما است . در مقایسه عمل سیستم DSP  به محیط آن (خشک یا مرطوب ) وابسته نمی باشد . در هر صورت سیستمDSP   پاسخ یکسانی خواهد بود .

«عدم حساسیت به تغییر عناصر » : قطعـات آنالوگ با تلورانس همراهند . پاســخ کلی یک سیستم آنالوگ به مقادیر داخلی اش وابسته است . بنابراین دوسیستم آنالوگ که بطوردقیق همانند یکدیگرطراحی شده باشند بسته به تغییرعناصرشان پاسخهای متفاوتی خواهند داشت.در مقایسه عناصر دیجیتال همواره خروجیهای مشابه برای ورودی های مشابه تولید خواهند کرد .

این دو مزیت بصورت زیر نیز بیان می شوند :

 

« رفتارتکرار پذیر و پایدار» : از آنجاییکه خروجی سیستم DSP  به عوامل محیطی یا تغییر عناصر حساس نمی باشد لذا این امکــان وجود دارد که سیستم هایی با پاسخهای شناخته شده ، دقیق وثابت داشته باشیم.نهایتاً بعضی ازسیستم های DSP  ممکن است دو مزیت دیگر نیز نسبت به آنالوگ داشته باشند.

« قابلیت برنامه ریزی » : اگریک سیستمDSP  براساس پردازنده های برنامه پذیر طراحی شود ، می توان آن را  مجدداً برنامه ریزی نمود بطوریکه وظایف دیگری را انجام دهد . در مقایسه سیستم های آنالوگ ازلحاظ فیزیکی به عناصرمتفاوتی نیازداشته تا وظایف متفاوتی را انجام دهند .

« اندازه » : اندازه اجزاء آنالوگ بسته به مقــادیرشان متغیر است . برای مثـال یک خازن MF 100که در فیلتـــر آنالوگ استفاده می شود از خازن PF 10 که در فیلتر دیگری بکار می رود بزرگتر است.اما ممکن است تحقق دیجیتال هردو فیلتراندازه مشابه ای داشته باشد . حتی ممکن است از سخت افزار یکسانی که تنها در ضرایب فیلتر متفاوت است استفاده شود .گاهگاهی ممکن است این پیاده سازی از هر دو تحقق آنالوگ نیز کوچکتر باشد .

    این مزایا و توجه به فرآیندهای ساخت IC  با استفاده از فن آوریهای DSP    و مزیت آن در این فن آوری منجربه این واقعیت می شودکهDSP  انتخاب وراه حلی مناسب وبهینه برای پردازش سیگنال به حساب آید .

  • مشخصات سیستم های DSP :

در این بخش برخی از مشخصات عمومی در همه سیستم های DSP نظیر الگوریتم ها،نرخ نمونه برداری ، نرخ CLOOK  و انواع حساب توصیف می شوند .

الگوریتم ها :

سیستم های DSP  اغلب به وسیله الگوریتم هایی که بکار می برند ، مشخــص می شوند . الگوریتم اعمال حسابی را که می بایست انجام شوند ، مشخص کرده امـــا نحوه پیاده سازی آن محاسبات رامعلوم نمیکند.ممکن است درنرم افزارو بروی یک ریزپردازنده معمولی یا ریزپردازنده سیگنال قابل برنامه ریــزی پیاده سازی با توجه به نیازمندیهای سرعت و دقت حسابی می باشد. جدول ( ۱-۱ ) بعضی از انواع عمومی الگوریتم های DSP و برخی از کاربردهایی را که عموماً این الگوریتم ها در آنها اسنفاده می شوند نشان می دهد .

    نرخ نمونه برداری :

    مشخصه کلـیدی یک سیستم DSP  نرخ نمونه برداری آن است . نرخی که در آن نمونه ها گرفته ، پردازش و یا تولید می شوند.با توجه به پیچیدگی الگوریتم،نرخ نمونه برداری سرعت مورد نیاز را در فن آوری پیاده سازی معین می کند . یک مثال معروف پخش CD صوتی می باشد که در آن نمونه ها با نرخ ۴۴٫۱ کیلو هرتز روی دو کانال تولید می شوند .  

    البته یک سیستم DSP ممکن است بیشتر از یک نرخ نمــونه برداری داشته باشد . به این قبیل سیستم ها، سیستم های DSP چند نرخی گفته می شود . مثـال آن تبدیل نرخ نمونه های CD  از ۴۴٫۱KHZ به نرخ نوار صوتی دیجیتال یا ۴۸KHZ  می باشد . بدلیـــل پیچیدگی نسبت بین این نرخ ها ، معمولاً تبدیل در مراحلی انجام می شود ( معمولاً با حدفاصل حداقل دو نمونه ) مثال دیگر الگوریتم چند نرخی یک بانک فیلتر است که در کاربردهایی نظیر کدکردن صــــدا، ویدئو و گفتار استفاده می شود . بانکهای فیلتر معمولاً شامل مراحلی هستند که سیگنال را به بخشهای فرکانس  بالا و پایین تقسیم می کنند. آنگاه این سیگنالهای جدید با نرخ کمتر نمونه برداری شده مجــدداً تقسیم می شوند . در کاربردهای چند نرخی نسبت بین بالاترین و پایین ترین نرخ نمونه بـرداری  در سیستم می تواند کاملاً بزرگ باشد. گاهگاهی به ۰۰۰،۱۰۰ ممکن است برسد .

    محدوده نرخ های نمونه برداری که درسیستم های پردازش سیگنال وجود داردوسیع است  در شکل ( ۱-۱ )کلاسهـــــای کاربردها بهمراه پیچیدگی الگوریتم و نرخ نمونه برداری افزایش

می یابد . الگوریتم هایی که در نــرخ های بالاتر استفاده می شوند به نظر می رسد که ساده تر از آنهایی باشند که در نرخ کمتر بکار می روند .

    بسیاری از سیستم های DSP  می بایست با سرعت بسیار بالا کار کنند چرا که بتوانند روی  بخشهای طولی سیگنالهای ورودی به صورت بلادرنگ عملیات انجام دهند . انواع دیگر سیستم ها

 

 

( همانند پایگاه داده ) ممکن است به کارایی متوسطی نیاز داشته باشنـد . سیستم های بلادرنگ با هر دو هدف یعنی سرعت و کارایی مناسب طراحی می شوند . در این قبیــل سیستم ها تغییر نرخ پردازش مورد نیاز باعث بد عمل کردن  سیستم می شود.به این قبیل سیستــــــــــم ها اغلب « فرآیندهای بلادرنگ با قیدهای پیچیده » نیز گفته می شود . برای مثال فرض کنیم مبدل نرخ CD  صوتی به نوار صوتی همانند سیستم بلادرنگ پیاده سازی شود . مبدل بایستی نمونــه جدید را از CD در هر ۲۲٫۶MS بگیرد و نمونه خروجی را برای نوار صوتی در هر ۲۰٫۸NS تولیدکند  اگر سیستم نتواند نمونه ها را با این ترتیب بگیرد و بفرستد،داده ها از بین رفته سیگنال خروجی دچـــار نویز

 می شود . نیاز به رویارویی با این قبیل قیدهای بلادرنگ ، مطالبات ویژه ای را در طراحی و اشکال زدایی سیستم های DSP  بلادرنگ بوجود می آورد .

نرخ CLOCK :

سیستم های  الکترونیک دیجیتـــال اغلب توسط نرخهای ساعت مورد نیازشان مشخص

 می شوند . نرخ ساعت معمولاً به نرخی گفـته می شود  که در آن سیستم اساسی ترین وظایفش را انجام می دهد . در محصولات تجاری نرخ ساعت تا ۱۰۰MHZ عمومی است . هرچند در بعضی از محصولات بسیار کار این نرخ سریعتر می شود.درسیستم هایDSP  نسبت نرخ ساعت سیستم یکی از مهمترین مشخصات است که جهت چگونگی پیاده سازی سیستم استفاده می شود . ارتباط بین نرخ ساعت و نرخ نمونه مقدار سخت افزار  مورد نیاز را برای پیاده سازی یک الگوریتم داده شده ( با توجه به پیچیدگی بلادرنگ ) تعیین می کند . با افزایش نسبت نرخ نمونه برداری به نرخ ساعت مقداروپیچیدگی سخت افزارمورد نیاز برای پیاده سازی الگوریتم نیز افزایش می یابد .

 

 

 

نمایشهای عددی :

۱
۲۵۶

اعمـــال حسابی از قبیل جمع و ضرب در قالب الگوریتمها و سیستم های DSP  هستند . بنابراین نمایشهای عددی و نوع حســـابی که استفاده می شود ، می تواند در  رفتار و کارایی یک سیستمDSP  تاثیرگذار باشد.عمومی ترین انتخاب برای طراحان حساب مسیر ثابت یا ممیز شناور می باشد . حساب ممیز ثابت اعداد را در محدودثابت ۱-تا ۱+  با تعداد معینی بیت که عرض کلمه نامیده می شود ، نشان می دهد . برای مثال یک عدد ۸ بیتی  دقت تفکیکـــی            دارد . اعمال حســـــابی که نتایجی خارج از محدوده عددی داشته باشند اصطلاحاً اشباع خواهند شد .         حساب ممیز شناور محدوده قابل نمایش مقادیر را گسترش می دهد . هر عدد در دو بخش نمایش می یابد : یک ماشیـــن و یک مفسر . ماشین بین ۱- تا ۱+ و مفسر بعنوان نما می توان دو تلقی

می شود . در حقیقت داریم :                              ۲ enponent×Value = mantissa

حســــاب ممیز شناور محدوده دینامیک ( نسبت بین بزرگترین و کوچکترین مقادیری که

می توانند نمایش داده شوند )بزرگتری نسبت به ممیز ثابت دارد، از آن جاییکه این حساب احتمال سر ریز و مقیاس بندی را کمتر می کند لذا می تواند بطور قابل ملاحظه ای طراحی نرم افـــزار و الگوریتم را ساده سازد . بنابراین حساب ممیز شناور عموماً ازحساب ممیز ثابت کندتر و پیچیده تر بوده پیاده سازی آن نیز دشوارتر است .

 

  • کلاسهای کاربردهای DSP :

پردازش سیگنـال دیجیتال بطور عام و پردازنده های DSP بطور خاص در محدوده وسیعی از کاربردها استفـاده می شوند . از سیستم های رادار گرفته تا مصارف معمولی الکترونیک . طبیعتاً هیچ پردازنده ای نمی تواند نیازمنـدیهای همه و یا اکثر کاربردها را برآورده سازد . بنابراین اولین وظیفه طراح انتخاب یک پردازنده است بطوریکه تواماً کارایی،هزینه ، قابلیت مدار مجتمع ، آسانی توسعه،مصرف توان ودیگر ویژگیهای مناسب را برای کاربرد در دست داشته باشد. جدول ( ۱-۲ ) برخی از کلاسهای کاربردی را نشان می دهد .

سیستم های محاط شده کم هزینه :

بزرگترین کاربردها ( از نظر هزینه ) در پردازش سیگنال دیجیتال سیستم های محاط شده پرحجم و ارزان نظیــــر تلفن های سلولی ، مودمها و دیسک درایوها ( که DSP برای سرو کنترل می شود ) می باشند.دراین کاربردها هزینه و ملاحظات مدار مجتمع برتر می باشند . در محصولات قابل حمل مصرف توان حائـز اهمیت است . در کاربردهای محاط شده پرحجم کارایی و ملاحظات آسانی توسعه غالباً کمتر مورد توجه هستند .

   

کاربردهای بسیار کارا :

درکلاس دیگری از کاربردها حجم پردازش داده زیاد و الگوریتم های پیچیده برای نیازهای ویژه وجود دارند.رادار، سونار و تحلیل سیگنال زلزله از این نوع می باشند . در این کاربردها حجم تولیدات کمتر،محاسبات درالگوریتمها بیشتر و طراحی محصول پیچیده تر است . بنابراین طراحان به پردازنده هایی توجه دارندکه تواماًکارایی ماکزیمم، آسانی بکارگیری وپشتیبانی چندپردازنده ای را داشته باشند .

 

چند رسانه ای در PC  :

کلاس جدیدتری از کاربردها قابلیتهای چند رسانه ای در PC  می باشد .پردازنده های DSP بطور روزافزونی در PC جهت انجام وظایف گوناگونی نظیر پست صوتی، مودمهــــای تصویری و داده ای،سنتزگفتاروفشرده سازی تصویر استفاده می شوند.همانندکاربردهای محاط شده پرحجم ، چند رسانه ای در PC هر چند در بعضــــی دیگر از کاربردهای چندرسانه ا ی ممکن است کارایی بیشتری نیاز باشد بطوریکه پردازنده DSP بتوانـــد چندین وظیفه را به صورت همزمان و بلادرنگ انجام دهد.علاوه براین پردازنده می بایست بتواندبین وظایف گوناگون سوئیچ کند.همچنین ممکن است ظرفیت حافظه در این کاربردها مورد توجه باشد چرا که اکثر کاربردهای چنــد رسانه ای به قابلیتی نیاز دارند که  بتواند حجم انبوهی از داده ها را مدیریت کند .

 

 

 

 

 

 

 

 

 

 

 

 

فصل ۲

« پردازنده های DSP » :

 

    در فصل قبل پردازش سیگنال دیجیتال با توجه به مبانی سیستم های DSP  و حــوزه های کاربردی بطور خلاصه توصیف شد . در این بخش با یک توصیف کلی ویژگی های عمومــی که در اکثر پردازنده های DSP وجود دارند ، مطرح می شوند .

 

۲-۱ پردازنده های DSP  :

    نسلهای مختلفی از پردازنده های DSP  در بازارامروزی موجود می باشد.ویژگیهای برجسته برخی از آنها در جدول ( ۲-۱ ) خلاصه شده است . این پردازنده ها به عنــوان نمونه هایی جهت توضیح معماریها و ویژگیهای موجود در پردازنده های تجاری بکار خواهند رفت .

    اکثر پردازنده های DSP   از ساختارهای مشترکی برخوردارند بطوریکــه می توانند وظایف سنگین محاسباتی و تکراری را پشتیبانی کنند. ویژگیهای مهمتر به طور خلاصه بررسی می شوند . این ویژگیها درجدول ( ۲-۲ ) آورده شده اند.هریک ازاین خصوصیات وانواع دیگربه صورت جزئی تردرفصلهای بعدی مطرح خواهد شد .

ضرب انباره سریع  :                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                غالباً مهمتــرین ویژگی DSP  قابلیتی است که می تواند عمل ضرب انباره ( اغلب MAC نامیده می شود ) را در یک سیکــل دستور انجام دهد . عمل ضرب انباره در الگوریتم هایی مفید است که محاسباتی از نوع ضرب برداری را شامل می شوند . فیلتـــرهای دیجیتال ، کورولیشن و تبدیلات فوریه از این نوع می باشند . برای به انجام رساندن این وظیفـه پردازنده های DSP یک ضرب کننده و انباره را که در واحد اصلی پردازش حسابی ( مسیرداده ) قرار دارد،شامل می شوند . علاوه بر این به منظور انجام دنباله ای از اعمال ضرب-انباره که می بایست بدون سـرریز حسابی انجام شوند ، پردازنده های DSP در رجیسترهای انباره خود بیتهای بیشتری داشته تا بتوانند خود را با رشد نتایج انبارشده وفق دهند .مسیر داده DSP  به صورت جزئی تر در فصل ۴ بررسی خواهد شد .

معماری حافظه با چندین دسترسی :

ویژگی دومی که در اکثـر پردازنده های DSP مشاهده می شود قابلیت چندین دسترسی به حافظه دریک سیکل دستورمی باشد.این ویژگی پردازنده راقادرمی سازدکه یک دستور را برداشت نمایدودرعین حال همزمان درحال برداشت عملوندهای دستور قبل یا ذخیره نتیجه درحافظه باشد . پهنای باند ( تعداد کلماتی که می توان از حافظه خواند یا در آن نوشت ) بیشتریــــن پردازنده و حافظه جهت بهبود کارایی لازم است چرا که عموماً در بسیاری از کاربردهای DSP  الگوریتم ها به اعمال سنگین تکراری روی داده ها نیاز دارند .دربسیاری ازپردازنده ها چندین دسترسی به حافظه در یک سیکل محدودیتهایی نیز ایجاد می کند . معمولاً دسترسی به تمامی مکانهــــــای حافظه می بایست در داخل تراشه و با دستورات ویژه ای انجام شود .به منظورچندین دسترسی به حافظه پردازنده های DSP از چندین گذرگاه داخلی ، حافظــه های چند پورتی داحلی و در بعضی موارد از چندین بانک حافظه مستقل برخوردارند.ساختارهای حافظه درDSP در قیاس با پردازنده های هدف عمومی کاملاً متفاوت است . معماری های حافظه بصورت کاملتر در فصل ۵ بررسی خواهند شد .

 

روشهای آدرس دهی ویژه :

به منظورسرعت بخشیدن به پردازش حسابی ومشخص کردن چندین عملوند در یک کلمه کوچک دستور پردازنده های  DSP  از واحدهای تولید آدرس بهــــره می برند . ابتدا رجیسترهای آدرس دهی مخصوصی پیکربندی می شوند.سپس واحدهای تولیدآدرس درپشت صفحه به صورت مستقل کار می کنند . این واحدها آدرسهای مورد نیاز برای دسترســی به عملوند را بطور موازی با اجرای دستورات تشکیل می دهند . واحدهای تولید آدرس معمولاً گلچینی از  روشهای آدرس دهی را پشتیبانی می کنند . این روشها با توجه به کاربردهای DSP     لحاظ می شوند . عمومی ترین آن آدرس دهی غیرمستقیم رجیستر بطریقه پس افزایشی می باشد . ایـن آدرس دهی درمواقعی بکار می رود که می بایست محاسبات تکراری روی مجموعه ای از داده هــــا که به صورت ترتیبی در حافظه ذخیره شده اند ، انجام شود . آدرس دهی ماژول یا گردشی غالباً استفاده از بافرهای داده را آسان می سازد . بعضی از پردازنده ها آدرس دهی bit – reversed  را نیز پشتیبــانی می کنند . این آدرس دهی در الگوریتم FFT  کارآمد است . روشهای آدرس دهی با جزئیات بیشتـــر در فصل ۵ بررسی خواهند شد .

 

کنترل اجرای دستور :

ازآنجائیکه دربسیاری ازالگوریتم های DSP  محاسبات تکراروجود دارد،لذااکثرپردازنده های DSP  روش ویژه ای را برای حلقه سازی مناسب فراهم می کنند . غالبــــاً در مجموعه دستورات پردازنده دستور خاصی برای  حلقه سازی لحاظ می شود . این دستورسربار حلقه را حذف می کند . بهنگام سازی و آزمایش شمارنده حلقه یا پرش به ابتدای حلقه به عنوان سربارهای حلقه تلقـــی می شوند . با حذف این سربارها سیکلهای کمتری مصرف خواهند شد.بعضی ازپردازنده های DSP جهت بهبود کارایی ویژگیهای دیگری از کنترل اجرایی را فراهم می آورند . قابلیتهایی نظیــــــر سوئیچینگ مناسب و وقفــــه های کم سربار و کم دوره برای ورودی / خروجی سریع از این نوع

می باشند .

 حلقه ساری و وقفه های سریع در بخش ۸ بررسی خواهند شد .                                                                                                                                                                                                                                                    

 

ارتباطات ورودی / خروجی و دستگاههای جانبی :

در اکثـر پردازنده های DSP  به منظور هزینه کمتر و  ورودی / خروجی کارآمدتر ، ارتباطات I/O موازی یا سریال و مکانیزمهای دسترسی به I/O نظیرDMA  باهم یکی می شوند .دستگاههای جانبی در DSP  اغلب به منظور ارتباط مستقیم با قطعات جانبی نظیرمبدلهای A/D  و D/A  طراحی می شوند.با توجه به پیشرفت های فن آوری های مدارمجتمع (چگالی وانعطـــــــــاف پذیری) فروشندگان  DSP در پی قراردادن کلیه دستگاههای جانبی بروی یک تراشه می باشند . نمونه آن تراشه هایی است که برای کاربردهای تلفن سلولی طراحی می شوند. در این قطعات چندین مبدل A/D  و D/A  روی یک تراشه تعبیه می شود .

 

   فصل ۳

« حساب و نمایش عددی »

 

یکی ازمهمترین مشخصاتی که کارآمدی یک DSP را برای کاربرد داده شده معین می کند ، نوع نمایش عددی در پردازنده است . انواع حساب که درپردازنده های تجارتی عمومی می باشد ، به صورت درختی در شکل ( ۳-۱ ) آمده است .

  • ممیز ثابت در مقایسه با ممیز شناور :

پردازنده های اولیه از حساب ممیز ثابت استفاده می کردند ودرواقع هنوز هم پردازنده های DSP ممیـــز ثابت بر بازار مسلط می باشند . در پردازنده های ممیز ثابت اعدادی که نمایش داده

می شوند، همانند اعداد صحیح یا کسرهای بین ۱- تا ۱+ می باند . الگوریتمها و سخت افزارهایی که برای پیاده سازی حساب کســری استفاده می شوند بطور مجازی مشابه همانهایی هستند که برای حساب صحیح بکارمی روند .تفاوت اصلی دراین است که چگونه نتایج اعمـــــال ضرب در دسترس واقع می شوند .درعمل اکثر پردازنده های ممیز ثابت حساب کسری و صحیح را توامـــاً

پشتیبانی می کنند . حساب کسری بیشتر در الگوریتم های پردازش سیگنال مفید است اما حساب صحیح جهت اعمال کنترلی ، محاسبــات آدرس و دیگر اعمالی که مرتبط به سیگنال نمی باشند ، بکار می رود . شکلهای ( ۳-۲ ) و ( ۳-۳ ) نمـایشهای ساده صحیح و کسری را توضیح می دهند . نکته اینکه انجام حساب صحیح روی DSP هـــای ممیز ثابت ممکن است زمان بیشتری نیز نیاز داشته باشد .

کلاس دیگری از پردازنده های DSP  ازحساب ممیز شناوراستفاده می کنند. در این حساب اعداد ترکیبی از مفسر و مانتیس می باشند . این مورد در شکل ( ۳-۴ ) آمده است.مانتیس  معمولاً

 

یک مقدار کسری علامت دار با یک بیت صحیح می باشد . ( بیت صحیح در واقع به عنوان بخشی از داده ذخیره نمی شود بلکه همواره“۱” فرض می شود ) . این بدان معناست که مانتیس می تواند مقداری در محدوده ۱+ تا ۲+ و ۱- تا ۲- داشته باشد.مفسر یک عدد صحیح بوده تعداد مکانهایی را که ممیز باینری مانتیس می بایست به چپ یا راست شیفت داده شود ، نشــان می دهد . مقدار نمایش داده شده از طریق عبارت زیر محاسبه محاسبه می شود :

   ۲ exponent× Value = mantissa

شکل ( ۳-۴ ) نمایش ممیز شناور را نشان می دهد . عموماً پردازنده های ممیز شناور قالب داده ممیز ثابت ( معمولاً صحیح ) را نیز پشتیبانی می کنند بطوریکه بتوانند اعمالی نظیر محاسبات آدرس حافظه را که ذاتاً صحیح می باشند به آسانی انجام دهند .

حساب ممیز شناور نسبت به ممیـز ثابت مکانیزم عمومی تر و انعطاف پذیرتری می باشد . به کمک این حساب طراحان سیستم به محدوده دینامیک وسیعتر و در خیلی از موارد دقت بهتری دسترسی دارند .

دقت برمبنای خطای کوانتیزاسیون تعریف میشود .خطای عددی کوانتیزاسیون هنگام تبدیل قالب عددی بزرگتر به کوچکتر تولید می شود . در قالب ممیز ثابت ، ماکزیمم دقت ، تعداد بیتهـای قالب تعریف می شود . برای مثال یک قالب کسری ۱۶ بیتی ماکزیمم ۱۶ بیت دقت را فراهــــم می کند . این تعریف براساس نسبت اندازه مقدار نمایــــش داده شده به انداره ماکزیمم خطای کوانتیزاسیون می باشد ، بطوریکه داریم :

maximum precision ( in bits )  = log 2 ( 1 maximum value 1 / 1 maximum guantization error 1 )

در نمایش کسری ۱۶  بیتی بزرگترین دامنه مقدار قابل نمایش ۱- است . هنگام  تبدیـل به یک قالب کسری   ۱۶بیتی از یک قالب دقیق تر ( از طریقگردکردن ) ماکزیمم خطای کوانتیزاسیون

۲-۱۶   بیت است .لذا با توجه به تعریف این قالب ، ماکزیمم دقتی معادل (۱/۲ –۱۶ ) l og  ۲  یـــا ۱۶ بیت دارد که همـان عرض قالب می باشد . نکته اینکه اگر مقدار تنمایش یافته نسبت به ماکزیمم دامنه کوچکتـری داشته باشد ، دقتی که بدست می آید ، کمتر از ماکزیمم دقت در دسترس خواهد بود . این مورد بر اهمیت دقت مقیـــاس بندی سیگنال هنگام استفاده از حساب ممیز ثابت تاکید دارد . مقیاس بندی به منظور حفظ دقت می باشد.این فرآیند توسط پیراسته سازی مقادیر سیگنال جهت قرارگرفتن در نزدیکی ماکزیمم محدوده نمایـش انجام می شود . مقیاس بندی در بخش ۴ بررسی می شود .

تعریف مشابه ای برای قالب ممیز شناور وجود دارد : ماکزیمـــم دقت در دسترس ، تعداد بیتهای مانتیس است .( البته با در نظر گرفتن بیت صحیح ) . از آنجاییکه پردازنده های ممیز شناور بطور خودکار تمامی مقادیر را مقیاس بندی می کنند ( بطوریکـه بیت صحیح “ / “ است ) لذا دامنه مانتیس به حداقل مقدار ۱۰۵ محدود می شود .این ویژگی تضمین می کند که دقت هر مقدار ممیز شناور کمتر از نصف ماکزیمم دقت در دسترس نبـاشد . بنابراین پردازنده های ممیز شناور دقت را بسیار خوب حفظ نموده  وظیفه برنامه نویس آسان تر می گردد.

    در عمل پردازنده های ممیزشناورازقالب ۳۲ بیتی استفاده می کنند ( ۲۴ بیت مانتیس و یک بیت صحیح که در نتیجه ۲۵ بیت دقت را فراهم می کنند) . اکثر پردازنده های ممیز ثابت قالب ۱۶ بیت را با ۱۶ بین دقت بکار می برند . بنابراین درحالیکه از لحاظ تئوری انتخاب ممیز شناور یا ثابت می توانست مستقل از انتخاب دقت باشد اما درعمل پردازنده های ممیزشناورمعمولاً دقت بیشتری را فراهم می کنند .

    بنابراین محدوده دینامیک نسبت بین بزرگترین و کوچکترین عدد قابل نمـــایش در قالب داده تعریف می شود . مزیت حساب ممیز شناور با مثالی روشن می شود . در نمایش۳۲ بیتی ممیز ثابت مینیمم مقدار قابل نمایش  ۲ – ۳۱      و ماکزیمم آن ۱  -۲ –۳۱       می باشد . نسبت بین ایـن دو که محدوده دینامیک قالب داده است تقریباً   و ۱۵×۲ . ۱۵    حدود  ۱۸۷Db  می باشد . یک قــالب ممیز شناور ۳۲ بیتی با همان اندازه ( ۲۴ بیت مانتیس و ۸ بیت مفسر ) می تواند اعداد را از حدوداً

۱۰ – ۳۹×۵٫۸۸     تـــا ۱۰ ۳۸ × ۳٫۴ نمایش می دهد . محدوده دینامیک تقریباً  ۱۰۷۶× ۵ . ۷۹  یا ۱۵۳۵Db  می باشد . لذا با استفاده ازهمان تعداد بیتهای ممیز ثابت ، قالب ممیز شناور بطور قابل ملاحظه ای محدوده دینامیک بیشتری را فراهم می کند .

    درکاربردها محدوده دینامیک به محدوده  دامنــــــه های سیگنالهایی اطلاق می شود که می توانندباحفظ دقت کافی پردازش شوند.کاربردهای متفاوت محدوده دینامیک متفاوتی نیازدارند.  درکاربردهای مخابرات راه دور معمولاً محدوده دینامیک در همسایگی ۵۰ dB    کفایت می کند . در کاربردهای صوتی با کیفیت بالا مقدار ۹۰ dB  عمومی است .

    پردازنده های DSP ممیـز شناور عموماً از نوع ممیز ثابت گرانتر بوده اما برنامه نویسی آنها آسانتر است . هزینه بیشتر به دلیــل مداربندی پیچیده تر است . علاوه براین ، اندازه کلمه بزرگتر در پردازنده های ممیز شناور مستلـزم گذرگاههای عریض تر و حافظه های بیشتر است که هزینه کل سیستم را افزایش می دهد .

    آسانی کاربرد پردازنده های ممیــز شناور به این دلیل است که برنامه نویس در بسیاری از موارد لازم نیست به محدوده دینامیک و دقت توجـه نماید . ولی در نوع ممیز ثابت برنامه نویسان می بایست سیگنالها را در مراحل گوناگون برنامه هایشان مقیاس بندی کنند تا از محدوده عددی و دقت مناسب در پردازنده تجاوز ننمایند.

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

 

۳-۲ عرض اصلی کلمه :

عـــرض اصلی کلمه داده در یک پردازنده عرض داده ای است که گذرگاههای پردازنده و مسیر داده می توانند در یک سیکـــل بر روی آن عملیات انجام دهند . تمامی پردازنده های ممیز شناور از عرض داده ۳۲ بیتی بهــــره می برند . در نوع ممیز ثابت عرض ۱۶ بیت معمول است . خانواده های DSP5600X  و  DSP 563XX   موتورولا   کلمه داده ۲۴ بیتی و ZR3800X کلمه ۲۰ بیتی دارند . اندازه کلمه داده اثر مهمی روی هزینه پردازنده دارد چرا که اندازه تراشه و تعداد پایه های مورد نیاز برای قطعات خارجی را افزایش می دهد .بنابراین طراحان سعی می کنند از تراشه ای با کمترین عرض داده مناسب با کاربردشان استفاده کنند.تراشه CD 2450 از CLARKSPUR Designs منحصر به فرد است بطوریکه انتخاب هر کلمه داده ای بین  ۱۶ یا ۲۴ بیت را ممکن می سازد .

غالباً هنگام انتخاب تراشه های ممیز شناور یا ممیز ثابت مصالحه ای بین کلمه و پیچیدگی توسعه وجود دارد . کاربردی که نشان می دهد جهت کارایی بهتر به داده ۲۴ بیتی نیاز دارد ممکن است با یک پردازنــده ۱۶ بیتی البته به بهای هزینه بیشتر و الگوریتم پیچیده تر یا برنامه نویسی دشوارتر به انجام رسد .

۳-۳دقت توسعه یافته :

دقت توسعه یافته به معنای استفاده ازنمایشهایی است که دقت بیشتری به قــــالب داده اصلی پردازنده فراهم می کنند . دقت گسترش یافته به دو روش زیر صورت می گیرد :

اول : بسیاری از پردازنده های ممیز شناور یا ثابت جهت اعمالی که بطور انحصـاری داخل مسیر داده قرار دارند پشتیبانی داخلی برای قالب دقت گسترش یافته را فراهم می کنند. این بدان معناست که وقتی مجموعه هایی از اعمال حسابی داخل مسیر داده پردازنده در حال اجرا هستند و نتایج  میانی یا نهایی به و یا از حافظه منتقل نمی شوند،عرض کلمه داده بزرگتری نسبت به عرض داده اصلی در دسترس می باشد . لذل مجموعه ای از اعمـــال حسابی با دقت بیشتر  یا محدوده دینامیک وسیعتری انجام می شوند .نهایتاً هنگام ذخیره نتیجه به حافظه یک عمل گردکردن انجام می شود .

دوم : عموماً ممکن است و اغلب دشوارکه حساب چند دقتی را با ساختن کلمه های بزرگتر نسبت به کلمه های اصلی انجام دهیم.برای مثال بایک پردازنده ممیز ثابت  ۱۶ بیتی برنامه نویس می تواندکلمات داده ۳۲ بیتی را بااتصال جفت کلمات ۱۶ بیتی تشکیل دهد.برنامه نویس می تواتد اعمال حساب چند دقتی رابه کمک دنباله ای دقیق ازدستورات تک دقتی پیاده سازی کند. مثلاً یک جمع چند دقتی اغلب می تواند توسط یک سری از دستورات جمع تک دقتی محقق شود .

البته از آنجاییکه هر عمل حسابی چند دقتی به دنباله ای از دستورات تک دقتی نیاز دارد لذا حساب چند دقتی کندتر می باشد . هر چند بعضی از پردازنده ها ویژگیهایی دارند که حسـاب چند دقتی ر آسان می کنند .

اگر حجم یک کاربرد با حساب تک دقتی دستکاری شود اما برای بخشهای کوچک برنـامه دقت بیشتری نیاز باشد ، حساب چند دقتی مناسب نخواهد بود . چنانچه اکثر کـــاربردها به دقت بیشتری نیاز داشته باشند به نظر می رسد پردازنده ای با کلمه داده بزرگتر انتخاب بهتری باشد .

 

  • ممیز شناور بلوکی :

 

حتی هنگام استفاده از پردازنده ممیز ثابت این امکان وجود داردکه دقت ومحدوده دینامیک حساب ممیز شناوررا به کمک روتین های نرم افزاری که همانند پردازنده ممیزشناور رفتار می کنند به دست آوریم .بعضی ازسازندگان ، کتابخانه روتین های مشابه ممیز شناور را برای پردازنده های ممیز ثابت فراهم می کنند.اگرکتابخانه دردسترس نباشدکاربرمی بایست این روتین ها را بنویسد . روتین های ممیز شناور معمولاً برای اجرا به سیکلهای بسیاری نیـاز دارند . این ایجاب می کند که استفاده از این روش تنهادرمواقعی باشدکه بخشهای بسیارکوچکی از محاسبات ریاضی در کاربرد داده شده به قالب ممیز شناور نیـاز داشته باشند . اگر حجم قابل ملاحظه ای از حساب ممیز شناور نیاز است معمولاًپردازنده ممیز انتخاب دقیق تری می باشد .

رهیـافت دیگر برای بدست آوردن محدوده دینامیک و دقت بیشتر جهت داده انتخاب شده در پردازنده ممیزثابت نمایش ممیزشناوربلوکی می باشد.دراین روش گروهی ازاعدادباماشین های متفاوت اما مفسر مشترک به عنوان بلوکی از داده پردازش می شوند . علاوه بر ذخیره مفسر داخل هر کلمه داده ( همچنانکه در ممیز شناور انجام می شود ) مفسر در کلمه داده مجزای خودپپش نیز ذخیره می شود.برای مثال یک بلوک از هشت مقدارداده ممکن است یک مفسرعمومی را بکار برد . در این مورد ذخیره یک بلوک از ۸  مقدار داده به ۹  موقعیت حافظه نیاز دارد ( ۸  مـــــانتیس و ۱ مفسر ) .

ممیز شناور بلوکی به منظور محدوده دینامیک و دقت بیشتر نسبت به قالبهای حسابی ممیز ثابت پردازنده بکار می رود . ممکن است یک روتین فیلتر بر اساس مقادیر ۳۲ بیتی بوده ، امــــا برنامه نویس آن را به بلوکهایی با نمایش ۱۶ بیت مانتیس و مفسر۴ بیتی برای هربلوک داده تقلیل دهد . مفسر  برای بلوکی از داده معمولاً به وسیله المان داده در بلوک با بزرگترین دامنه تعییــــن می شود . اگر بلوکی از داده ها مقادیر کوچکی داشته باشد این مقادیر چندین مکان به چپ شیفت داده می شوندکه به تبع آن مفسر منفی تر می شود . اگر آن بلوک مقادیر بزرگی داشته باشد تعداد شیفت به چپ کمتر خواهد بود . چنانچه قابلیت شیفت داده وجود نداشته باشد دقت حاصل مشابه همان قالب اصلی پردازنده می باشد . شکل ( ۳-۵ ) مفاهیم ممیز شناور بلوکی را توضیح می دهد .

تبدیل بیـــن قالب ممیز ثابت و ممیز شناور بلوکی توسط برنامه نویس در نرم افزار انجام می شود . بعضی از پردازنده ها ویژگیهای سخت افزاری بخصوصی دارند که آنها را در استفاده از ممیز شناور بلوکی یاری می کنند.عمومی ترین آن دستور « آشکار کننده مفسر » است . این دستور شیفت های مورد نیاز را محاسبه می کند .

 دستورات ویژه که ممیز شناور بلوکی را پشتیبانی می کنند در فصل ۷ بررسی می شوند .

  • استاندارد ممیز شناور IEEE – ۷۵۴ :

در سال ۱۹۸۵  انستیتوی مهندسان برق و الکترونیک استاندارد IEEE – ۷۵۴  را تعریف کرد . پردازنده های معدودی سخت افـــزاری را برای پشتیبانی از این حساب فراهم می کنند . در DSP 96002  پشتیبانی سخت افزاری  بـرای حساب ممیز شناور تک دقتی مطابق با این استاندارد وجود دارد . خانواده ADSP – ۲۱۰XX  بطور کامل از این استاندارد تبعیت می کند .

بعضی از پردازنده های ممیز شناور نظیر AT&TDSP32XX   ویژگی داخلی برای IEEE – ۷۵۴  ندارد اما سخت افزارویژه ای رابرای تبدیل سریع اعداد بین نمایش ممیز شناور داخلی و استاندارد مذکور در بر می گیرد.پشتیبانی سخت افزاری برای تبدیل قالی می تواند در کاربردهایی مهم باشد که به یک DSP براساس این استانداردنیاز نداشته باشند و بتوانند با دیگر پردازنده هایی که از این استاندارد بهره می برند ارتباط برقرار کنند.بدون این ویژگی DSP ممیز شناور مذکور می بایست از روتین نای نرم افزاری جهت تبدیل دو قالب استفاده کند که می تواند زمان بر و وقت گیر باشد .

 

  • ارتباط بین اندازه کلمه و اندازه کلمه دستور :

دراکثرپردازنده هایDSP بجزتعداد اندکی اندازه کلمه دستوربا اندازه کلمه داده برابر است . تنها خانواده ADSP – ۲۱XX   و IBM MDSP2780   کلمه داده ۱۶ بیتی وکلمه دستور۲۴ بیتی دارند . خانواده ZORUN ZR3800X  نیز داده ۲۰ بیتی و دستور ۳۲ بیتی را بکار می برد .

پردازنده هایی با اندازه های کلمه متفاوت عموماً  در موارد ذخیره داده در حافظه با قیدهایی مواجه اند ( برای مثال  داده ۱۶ بیتی در حافظه ۲۴ بیتی ) . واضح است که این روش در استفاده از حافظه کارآمد نمی باشد چرا که بخش قابل ملاحظه ای از کلمه حافظه برنامه که جهت ذخیره داده استفاده می شود بلا استفاده مانده و این می تواند روی هزینه کلی سیستم تاثیر گذار باشد .

 

 

 فصل ۴

مسیــــــــر داده :

 

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

۴-۱ مسیر داده ممیز ثابت :

مسیرهای داده پردازنده های ممیز ثابت معمولاً شامل یک ضرب کننده ، یک AIU ، یک یا چندشیفت دهنده،رجیسترهای عملوند،انباره هاودیگرواحدهای ویژه می باشند . بعضی فروشندگان به مسیرداده، ALU یا واحد حسابی نیز می گویند . اما در این جا واژه ALU برای واحدهای عملیاتی جمع کننده / تفـریق کننده و اعمال منطقی بکار می رود . شکل ( ۴-۱ ) یک مسیر داده ممیز ثابت معمولی را از شرکت موتورولا نشان می دهد .

مسیرداده درDSP عموماً برای محاسبات آدرس حافظه بکارنمی رود . اما معمولاً در پردازنده های ممیز ثابت یک واحد سخت افزار مجزا برای محاسبه آدرس وجود دارد . این واحد اغلب واحد تولید آدرس یا AGU نامیده می شود . این سخت افزارمعمولاً مجموعه ای غنی ازمحاسبات آدرس را نظیر آدرس دهی ماژول و bit – neversed  انجام می دهد . ATRDSP32C  و DSP32XX استثنــاء هستند . در آنها مسیرهای ممیز شناور و ممیز ثابت مجزا می باشند بطوریکه مسیر ممیزثابت برای محاسبات آدرس استفاده می شود .

تنوع روشهای آدرس دهی ویژه که در پردازنده های DSP  وجود دارد ، یکی ازعواملی است که این تراشه ها را از دیگر انواع پردازنده ها نظیر پردازنده های RISC  هدف عمومی متمـــــایز می سازد . واحد های تولید آدرس در DSP  و روشهای آدرس دهی در فصل ۶  بررسی می شوند .

ضرب کننده :

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

در بسیاری از کاربردها نیم یا بیشتردستوراتی که توسط پردازنده اجرامی شوند،عمل ضرب را در بر دارند . بنابراین در همه پردازنده های DSP یک ضرب کننده وجود دارد بطوریکه دو عملوند با عرض قالب اصلی پردازنده را در یک سیکـل ضرب می کند . هر چند ظرفیتهای ضرب کننده در پردازنده های گوناگون متفاوت است .

گاهی اوقات خط لوله داخلی ضرب کننــــده می تواند تاخیری بیشتر از یک سیکل را بین ورودیها و خروجی هانتیجه دهد.این تاخیر از ورودی تا نتیجه حاصل « دوره » نامیده می شود . این ضرب کننده هاکارایی خودراتنهامواقعی نشان می دهندکه دنباله ای ازاعمال ضرب انجام میشود . اگر تنها یک عمل ضرب مورد نظر باشد ، می بایست برای نتیجه آن چندین سیکل صبـــر کرد . پردازنده ای با این نوع ضرب کننده CD2450  می باشد .

در بعضی موارد ( DSP 5600X  ) ضرب کننـــده بهمراه یک جمع کننده برای تشکیل واحد ضرب انبارش مجتمع می شود . در موارد دیگر ( AT&TDSP16XX ) ضرب کننـــده مجزا است  بطوریکه خروجی آن به یک رجیستر ضرب منتقل شده و ازآن جامی تواند به یک جمع کننده جهت انبارش فرستاده شود . اگر ضرب کننده و جمع کننده متمایز باشند ، نتیجه عمل ضرب انباره قبل اینکه دستور بعدی بتواند از آن استفاده کند ، یک سیکل دستور تاخیر می یابد .

تفاوت دیگری در بین ضرب کننده های DSP  اندازه ضرب بوده که مرتبط به عملونــــدها می باشد . عموماً هنگام ضرب دو عدد n بیتی ، ۲n بیت نیاز بوده تا نتیجه ضرب بدون خطـا بدست آید . به این فرآیند قانون حفظ بیت نیز می گویند . لذا خود ضرب کننده در محاسبات خطایــی را موجب نخواهد شد . هر چند بعضی از پردازنده های ممیز ثابت به دلیل اقتصادی و ســـــرعت از ضرب کننده هایی استفاده میکنندکه نتایج کوتاهتری تولیدمی کنندلذا منجربه خطاهای محاسباتی می شوند . برای مثال  Z893XX  و  CD2400  عملوندهای ۱۶ بیتی را گرفته نتایج ۲۴ بیتی به جای ۳۲ بیتی تولید می کنند . اگـــــر چه این امکان وجود دارد که نتیجه کامل ضرب را به مرحله بعد محاسبات بفرستیم اما این امر معمولاً غیر عملی می باشد چرا که دنباله ای از اعمال ضرب و جمع نتایجی با عرض خیلی بیشترتولید خواهند کرد . بنابراین در اکثر موارد لزومی  ندارد که نتیجه کامل ضرب را داشته باشیم زیرا اغلب محدوده دینامیک و دقت اضافی مفید نمی باشد.بنابراین به دلایل عملی برنامه نویس معمولاًزیرمجموعه ای ازبیتهای خروجی ضرب راکه برای محاسبات لازم است انتخاب می کند.یا ممکن است جهت انبارش مجموعه ای از نتایج ضرب ابتدا انبارش با طول کامل انجام شود سپس نتیجه نهایی قبل از رفتن به مرحله بعدی محاسبات گرد شود .

۲
N
۲
N

هنگامیکه دوعددباینری ضرب می شوند مکان ممیز در نتیجه کامل بستگی به مکان ممیزها در عملوندها دارد . این مورد در شکل ( ۴-۲ ) و ( ۴-۳ ) آورده شده است . اگر حساب صحیح بکار می رود خروجی ضرب کننده با عرض کامل نیز صحیح است و برنامه نویس معمولاً  بیتهای پایینی را حفظ می کند. دراین مورد اندازه عملوندها می بایست توسط برنامه نویس محدود شود بطوریکه نتیجه ضرب کامـلاً در نیمه پایین نتیجه ضرب کننده قرار می گیرد . هنگامیکه این عمل انجام شد ۱+      بیت پردازشتر از N بیت نتیجه بیت علامتند ( که گاهگاهی بیتهای گسترش علامت نامیده می شوند ) . بنابراین هنگامیکه          بیت حذف شوند ، تقریباً اطلاعاتی از بین نمی رود .

چنانچه حساب کسری استفاده شود،نتیجه کامل ضرب در طرف راست دو برابر عملوندهای ضرب می باشد و برنامه نویس معمولاً بیت های کم ارزش را حذف می کند .

رجیسترهای انباره :

رجیسترهای انباره نتیج میانی و یـا نهایی عمل ضرب انباره و دیگر اعمال حسابی را حفظ می کنند . اکثر پردازنده های DSP  دو یا چنـد انباره دارند . بعضی از آنها تنها یک انباره داشته که می توانددربسیاری از کاربردها ناکارآمد باشد . وجود یک انباره در معماری DSP  مساله ساز است . از آنجاییکه انباره معمولاً به عنوان عملوند منبع یـا مقصد برای اعمال ALU  به حساب می آید لـذا می بایست محتویاتش به صورت پی در پی بارگذاری شود ( و یا ذخیره شود ) . بنابراین در حالیکه ALU  برای وظایف متغیری بکار می رود ، این بارگذاری ها و ذخیره ها نرخی راکه درآن داده بتواند از ALU  بگذرد محدود می کند .

معمولاً اندازه رجیسترهای انباره می بایست از اندازه کلمه خروجی ضرب کننده چندین بیت بزرگتر باشد . بیتهای بیشتر ، بیتهای گارد نامیده می شوند . این بیتها برنامه نویس را قــــــادر می سازند تعدادی از مقادیر را بدون سرریز شدن انباره یا بدون مقیـــــاس بندی مقادیر میانی، پردازش و انبارش نماید . انباره ای با R  بیت گارد معادل ۲N     مقدار ( جهت انبارش بدون سرریز ) ظرفیت دارد . اکثر پردازنده ها ۴  یا ۸  بیت گارد دارند . مثلاً DSP 16XX  ، ۴  بیت گارد ( انباره های ۳۶ بیتی با رجیستر ضرب ۳۲ بیتی ) و ADSP – ۲۱ XX ، ۸  بیت گارد ( ۴۰  بیت انبـــاره و رجیستر ضرب ۳۲ بیتی ) را فراهم می کنند .

در یک پردازنده فاقد بیتهای گارد ، سیگنالهای ورودی یا نتایج میانی اغلب می بایست قبل از جمع با مقدار انباره مقیاس بندی شوند تا امکان سرریز حذف شود . معمولاً این عمـــل شامل مقیاس بندی نتیجه ضرب ( با شیفت آن چند بیت به راست ) می شود . در نبود بیتهای گارد گاهی اوقات قابلیت شیفت مقادیر رجیستر ضرب بدون ضرب سیکل دستور وجود دارد . مثلاً در C2X  و C5X  رجیستر ضرب بطور خودکار ۶ بیت به راست شیفت می یابد . این قبیل شیفتها با کم شدن دقت همراه است .

بیتهای گارد انعطاف پذیری بیشتری را نسبت به مقیاس بندی نتیجه ضرب نتیجه می دهند چراکه امکان حفظ ماکزیمم دقت را در مراحل میانی محاسبات میسر می سازند . در C1X بیتهـای گارد و قابلیت مقیاس بندی ضرب وجود ندارد لذا بایستی ورودی ضرب کننده مقیاس بنـدی شده که این امر منجر به کم شدن دقت به میزان زیادی خواهد شد . فقدان این دو ویژگی در بسیـاری از موارد محدودیتهای جدی به بار می آورد .

ALU

واحدهــای محاسبه و منطق در DSP اعمال حسابی و منطقی را در یک سیکل دستور انجام می دهند . اعمـال عمومی جمع ، تفریق ، افزایش و اعمال منطقی OR  ، and  ، NOT  می باشند .در ALU  ها اندازه کلمــه ای که برای اعمال منطقی بکتر می رود ، متغیر است . بعضی از پردازنده ها اعمال منطقی را روی عملوندهایی که عرض کاملی از انباره هستند، انجام می دهند در حالیکه انواع دیگر اعمال را روی کلمــات داده با قالب اصلـی DSP  انجام می دهند . مثلاً در DSP 16XX  اعمال منطقی روی مقادیر انبــاره ۳۶  بیتی انجام می شود در حالیکه در DSP5600X    با انباره ۵۶  بیتی این اعمال روی ۲۴ بیت انجـام می شود . اگر ALU  نتواند اعمال منطقی را روی داده ای با عرض انباره انجام دهد برنامه نویسان می بایست در چندین مرحله با صرف سیکلهای دستور این کار را انجام دهند .

شیفت دهند ها :

ضرب و جمع منجر به رشد نتایج در محاسبات می شوند . دراکثـــــر موارد برنامه نویس زیرمجموعه ای از بیتهای نتیجه را برای پردازش به مرحله بعدی محاسبه می فرستد .  یک شیفت دهنده در مسیر داده این امکان را با مقیاس بندی ورودی اش بصورت توانی از ۲  آسان می سازد .

مقیاس بندی عمل مهمی است که در اکثر کاربردهای DSP  ممیز ثابت وجود دارد .این بدان علت است که اکثر وظابف DSP اثر انقباض یا انبساط روی محدوده مقادیر سیگنالهای پــردازش

 

۱
۱
۱۲۸

شده دارند .به مثال سـاده فیلتر FIR  که در شکل ( ۴-۴ ) آمده است توجه کنید . فیلتر مثال بهـره ۱۰۰ دارد . به این معناکه محدوده مقادیر در خروجی فیلتر می توانند ۱۰۰مرتبه بزرگتر از محدوده مقادیر درورودی باشند.اگرسیگنال ورودی به بازه ۱- تا ۱+ محدود شود مقادیرخروجی به محدوده ۱۰۰- تا ۱۰۰ محدود می شوند . مشکل وقتی به وجود می آید که نمایش عددی به بازه ۱- تا ۱+ محـدود شود ( برای حساب کسری ). اگر سیگنالها با این شرایط پردازش شوند سرریز رخ داده نتایج غیر صحیح تولید خواهد شد . لذا برنامه نویس می بایست به محدوده مقادیر سیگنال در هر نقطـــه از برنامه توجه کرده سیگنالها را مقیاس بندی نماید . همانگونه که در شکل ( ۴-۴ ) آمده است برنامه نویس می تواند امکان سرریز را با مقیاس بندی سیگنال  xn   با ضریب ۰ . ۰۰۷۸ ( ،

۱۰۰

 نزدیکترین توان دو به            ) قبل از فیلتر آن حذف نماید . مصالحه ای که بهمراه این مقیاس بــندی حاصل می شود کم شدن دقت و محدوده دینامیک است . با توجه به تعریف دقت هنگامیکه یک سیگنال مقیاس بندی شود ( به محدوده کوچکتری ) برخی از بیتهای مرتبه پایین مقدار اصلی از طریق ترانکیشن و گرد کردن از بین می روند . بنابراین دامنه مقادیر قابل نمایش کمتر شده در حالیکه ماکزیمم دامنــــه خطای کوانتیزاسیون بدون تغییر باقی می ماند . لذا دقت ک  می شود . بطور مشابه  از آنجاییکه  دامنــه بزرگتـــــرین مقدار قابل نمایش کم می شود اما دامنه کوچکترین مقدار قابل نمایش بدون تغییر باقی

می ماند لذا محدوده دینامیک کم می شود .

بنابراین مقیاس بندی می بایست با دقت فراوان انجام شود بطوریکه امکان سرریز حذف شده و در عین حال محدوده دینامیک و دقت مناسب نیز حفظ شود .

خاصیت مقیــــاس بندی سیگنال می تواند در پیاده سازی یک کاربرد روی پردازنده  ممیز ثابت مطالعه قابل ملاحظه ای باشد. معمولاً توسعه دهندگان کاربرد  از تحلیلها و شبیه سازی های ظریفی برای تعیین اینکه کجا و چگونه می بایست سیگنالها مقیاس بندی شوند استفاده می کنند . آنگاه اعمال لازم را در موقعیتها و مکانهای دقیق لحاظ می کنند .

نکته اینکه مقیاس بنـــدی با بیتهای گارد انباره مرتبط است چرا که در هر دو حذف یا امکان کم کردن سرریزمورد نظر است.مقیاس بندی محدوده نتایج میانی یا نهایی را به محدوده مقادیر قابل نمایش منحصرمی کند.اما بیتهای گاردامکان نمایش مقادیرمیانی را بامحدوده بزرگتری ممکن می سازند . لـــذا مقیاس بندی نتایج میانی می تواند گاهگاهی برای عدم نیاز به بیتهای گارد استفاده شود . اما بیتهای گارد نیاز به مقیاس بندی را حذف نمی کنند . هنگام استفاده از بیتهای گارد لازم است که نتیجه پایانی مقیاس بندی شود . برای مثال در پردازنـــده ۱۶ بیتی با ۴ بیت گارد در انباره ممکن است لازم باشد که مقادیر انباره با ضریب ۲ – ۴    قبل از نوشتن آنها به حافظه به عنوان مقادیر ۱۶ بیتی مقیاس بندی شوند .

   اغلب بلافاصله بعدازALU یاضرب کننده یک شیفت دهنده لحاظ می شود.بعضی ازشیفت دهنده ها ظرفیتهای محدودی دارند ( برای مثال یک بیت شیفت به راست یا چپ ) . شیفتهای چند بیتـی به صورت یک بیت در هر لحظه می تواند وقت گیر باشد .نوعی ازشیفت دهنده ها،شیفت دهنده های گردشی نامیده می شود که انعطاف پذیری بیشتری داشته شیفت چندین بیت را در یک سیکل دستور ممکن می سـازند. در بعضی از پردازنده ها شیفت دهنده با ظرفیتهـــای متفاوت در مکانهای مختلف مسیر داده قرار دارند . بنابراین انعطاف پذیری بیشتری برای انجام شیفت در هر الگوریتم وجود دارد . برای مثال DSP 5600 n  دو شیفت دهنده با ظرفیت محدود و مستقا دارد . یکی برای مقیاس بندی نتایج ضرب انباره در حـــال نوشتن آنها به حافظه می باشد و دیگری جهت شیفت مقادیر داخل انباره ( شیفتهای گردشی و منطقـی ) استفاده می شود .

 

   سرریز و اشباع :

   بسیاری از کاربردهای DSP  انبارش مجموعه ای از مقادیر را شامل می شوند . این فرآیند به عنوان مثال در الگوریتم پالایش رخ می دهد . در آنجا داده ها در ضرایب ضرب شده نتایج با یکدیگر جمـــــع می شوند . هنگام انبارش مجموعه ای از اعداد ممکن است دامنه رشد یابد و متجاوز ازمقدار قابل نمایش از انباره شود . در این حالت که سرریز نامیده می شود مقدار نادرستی ذخیره خواهد شد و خروجی واقعی از مقدار دقیق بسیار دور خواهد بود . حتی اگر رجیستر انباره سرریز نداشته باشد رخـــداد سرریز هنگام انتقال مقدار به حافظه نیز ممکن است ( در صورتی که انباره بیتهای گارد داشته باشد ). در ایـــن حالت

 

انباره می تواند اعداد بزرگتری را نسبت به کلمه حافظه نمایش دهد . این امر در بسیاری از پردازنــده ها خصوصــاً PineDSP  و DSP 16 XX  مشاهده می شود . سرریز در مواقعی که شیفت دهنده برای مقیاس بندی مقدار انباره استفاده می شود نیز می تواند اتفاق بافتد چرا که مقدار در حافظه ذخیره می شود .

   دو روش عمومــی در برخورد با سرریز وجود دادرد . تکنیک اول مقیاس بندی دقیق همه محاسبات صرفنظر از مقدار ورودی می باشـد . روش دیگر حساب اشباع است . در این حساب مدار ویژه ای رخداد سرریز را آشکار کرده خروجی نادرستی را با بزرگترین عدد مثبت یا منفی قابل نمایش جایگزین می کند . هر چند نتیجه همچنان غلط است اما خطا کوچکتر از موقعی است که از این حساب استفاده نمی شود .      برای مثال در حساب دهدهی ودو رقمی نتیجه جمع سه عدد ۵۰  و ۴۵  و ۲۰  بدون اشباع ۱۵ می شود . اما در حساب اشباع مقدار آن وو خواهد بود که تنها به اندازه ۱۶ مقدار با ۱۱۵  فاصله دارد .

   از آنجاییکه اغلب دلخـواه و عملی نمی باشد که سیگنالها را برای حذف امکان سرریز مقیاس بندی نماییم لذا حساب اشباع بسیــار مفید است . پردازنده های ممیز ثابت عموماً سخت افزار ویژه ای جهت حساب اشباع دارند . این ساختـار بطور خودکار ( شاید تحت کنترل یک رجیستر مود ) یا با اجرای دستور ویژه ای فعال می شود . این واحد توسط بعضی از سازندگان محدود کننده نیز نامیده می شود .

 

   گرد کردن :

   همانطور که  دیدیم ضرب ، انبارش و دیگر اعمال حسابی منجر به افزایش تعداد بیتهایی می شوند که برای دقت منــاسب نتایج مورد نیاز هستند . در بعضی حالات لازم است که دقت این نتایج کم شود . ( مثلاً هنگام انتقـــال محتویات انباره ۳۶ بیتی به حافظه ۱۶ بیتی ) . ساده ترین روش برای اینکار حذف بیتهای کم ارزشتر می باشد . این عمل ترانکیشن یا سرزنی نامیده می شود .

   برای مثال جهت سرزنی مقدار ۳۶ بیتی به ۱۶ بیتی ، ۲۰ بیت کم ارزش حذف شده تنها ۱۶ بیت با ارزش تر پردازش می شوند . از آن جاییکه بخشی از اطلاعات در این روش از بین می روند لذا در شروع کار خطایی در سیگنالها رخ می دهد . مقدار حاصل همواره کوچکتر یا مساوی مقدار اصلی می باشد . بدان

 

معنا که عمل سرزنی آفست یا بایاسی را به سیگنالها اضافه می کند . بعضی از پردازنده ها عمل گردکردن را همـانند اشباع به صورت خودکار انجام می دهند . دیگر پردازنده ها دستور ویژه ای را برای اینکار اجرا می کننــــد . خانواده های ADSP – ۲۱XX و DSP 5600X  دستورات ویژه ای را برای گردکردن متفاوت بکار می برند . در این پردازنده ها گردکردن شرطی نیز پشتیبانی می شود .

 

   رجیسترهای عملوند :

   دراکثر پردازنده های ممیز ثابت عملوندها در مسیر داده توسط تعداد کمی از رجیسترهای عملوند یا توسط انباره تغذیه می شوند.مقادیرمی بایست در رجیسترهای عملوند قبل از پردازش به کمک دستورات MOVE  بارگذاری شوند . پردازنــده ای که داده ها را تنها پس از بارکردن آنها در رجیسترهای عملوند پردازش می کند اغلب منتسب به معمــاری Load – store  می باشد . رجیسترها به کمک آدرس دهی مستقیم و رجیستر در دسترس واقع می شوند .

   در پردازنده های دیگری نظیـــــر C5X و PineDSP عملوندها مستقیماً از حافظه به مسیر داده توسط آدرس دهی غیرمستقیم رجیستر یا مستقیم حافظه تغذیه می شوند .

 

   ۴-۲ مسیر داده ممیز شناور :

   مسیرهای داده درپردازنده ممیز شناور شبیه به آنهایی است که در نوع ممیز ثابت پیدا می شوند اما در چندین مورد متفاوتنــد . در این بخش این تفاوتها بررسی می شوند . شکل ( ۴-۶ ) مسیر داده ممیز شناور AT&T DSP DSP3210  را نشان می دهد .

   در اکثر پردازنده هـــای ممیز شناور مسیر اصلی داده قابلیت محاسبات ممیز ثابت و ممیز شناور را تواماً دارا می باشد . اما تنهــا در هر دستور یک نوع عملیات می تواند انجام شود . این مورد در پردازنده های ممیز شناور Texas Tnstruments ، Motorola  و Analog derices مشاهده می شود .

   بعضی از پردازنده ها دو مسیر داده داده دارند . یکی برای اعمال ممیز شناور و دیگری با ظرفیتهای

 

کمتر برای اعمال ممیز ثابت . برای مثال در تراشه DSP32XX واحد حساب کنترل به محاسبات آدرس و حساب صحیح دسترسی دارد در حالیکه واحد حساب داده محاسبات ممیز شناور را انجام می دهد . در پردازنده هایی که مسیرهای داده ممیز شناور و ثابت متمایزی دارند ، مسیر داده ممیز ثابت شامل ضرب کننده نمی شود .

 

   ضرب کننده :

   ضرب کننده های ممیزشناور دو عملوند ممیز شناور ( معمولاً ۳۲ بیت ) را دریافت می کنند . برخلاف ضرب کننده های ممیز ثابت،دراین نوع عموماًجهت کم نشدن دقت کلمه خروجی بزرگی تولید نمی شود . برای مثال هنگام ضرب دو مقدار ممیز شناور تک دقت ( IEEE 754  ) هر مقدار ورودی مانتیس مناسبی با عرض ۲۴ بیت دارا می باشد . برای دقت کامل عرض مانتیس خروجی می بایست  ۴۸ بیت باشد . اکثر پردازنده های ممیز شناور این عرض کامل را ندارند . اما قالب خروجی عموماً از قالب ورودی به اندازه ۸  الی  ۱۲ بیت در مانتیس بزرگتر می باشد .

   ALU

   واحدهای محاسبه و منطق در ممیز شناور معمولاً  جمع ، تفریق و دیگر اعمـال حسابی را نظیر قدر مطلق مکمل ، ماکزیمم و مینیمم را انجام می دهند .بعضی از این واحدها اعمال خاص دیگری را نیز انجام می دهند که در جدول ( ۱-۴ ) لیست شده اند .

   پردازنده های ممیزشناورازALU جهت انجام عمل جمع دراعمال ضرب انباره  استفاده می کنند . علاوه بر اعمال ضرب انباره بعضی از پردازنده ها نظیر AT&TDSP32C  یک عمل ضرب جمع را نیز انجام می دهند . این عمل با ضرب انباره تفاوت دارد چرا که نتیجه حاصـل در انباره متفاوتی نوشته می شود . اعمال منطقی نظیر and   ، or  و not  عموماً در مسیر داده ممیز شنــاور آنچنان حائز اهمیت نمی باشند .

 

 

   سرریز و دیگر موارد استثنایی :

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

 

   رجیسترهای انباره :

   عموماً در پردازنده های ممیز شناور رجیسترهای بیشتر و بزرگتری نسبت به ممیز ثابت وجود دارد. در بعضی از آنها نظیـــــــر AT&TDSP3210 تعداد کمی از رجیسترها مشخصاً برای انباره طراحی می شوند . در پردازنده های دیگر بانکی از رجیسترهای عمومی وجود دارد . برای مثال C3X که در آن ۸  رجیستر ۴۰ بیتی و ۳۲ بیتی وجود دارد .

 

   شیفت دهنده ها :

   در حساب ممیز شنــاور سخت افزاری وجود دارد که بطور خودکار نتایج را با بیشترین دقت ممکن مقیاس بندی می کند . در مسیـر داده ممیز شناور شیفت دهنده ای برای این منظور وجود داشته اما غالباً توسط برنامه نویس قابل کنتــرل و مشاهده نمی باشد . اما در پردازنده هایی که از هر دو مسیر استفاده می کنند می توات از شیفت دهنده برای اعمال کنترلی استفاده کرد .

   رجیسترهای عملوند :

   در این جا نیز مشابه نوع ممیــز ثابت رجیسترهایی برای عملوندهای مسیر داده طراحی می شوند . پردازنده های معدودی نظیـــر AT&DSP32XX عملوندها را بطور مستقیم از حافظه به مسیر داده به کمک آدرس دهی غیرمستقیم رجیستر تغذیه می کنند . نتایج حسابی به یک انباره نوشته شده و یا ممکن است با این آدرس دهی به حافظه منتقل شود .

   ۴-۳ واحدهای عملیاتی ویژه :

   پردازنده های DSP که در کاربردهای بسیار خاص استفاده می شوند ساختارهای ویـــــژه ای را می طلبند لذا به همین دلیل سازندگان به دنبال طراحی و گنجاندن سخت افزار ویژه ای در مسیـــر داده پردازنده به منظور کارایی بیشتر می باشند . یک مثال آن DSP 1610 می باشد . این پردازنده بـــرای کاربردهای رادیویی موبایل مورد توجه است . در این کاربردها پردازنده های DSP به منظــــور کدینگ گفتار استفاده می شوند . این کاربردها معمولاً اعمال بیتی فراوانی را شامل می شوند . ( مثلاً لحاظ کردن n بیت در مکان ویژه ای داخل m بیت ) .

   معمـاری پایه که از DSP1600 مشتق می شود شیفت دهنده گردشی را شامل نمی شود بنابراین نمی تواند اعمال مدیریت بیت را بطور مناسب انجام دهد . کمپانی AT&T این نقص را با اضافه کردن واحد ویـــژه مدیریت بیت ( BMU  ) در مسیر داده DSP1610  برطرف کرد . افزودن BMU کارایی قابل مقایســه DSP1610  را در اعمال مدیریت بیت به پردازنده های دیگر بسیار خوب نشان می دهد زیرا در این پردازنده ها تنها یک شیفت گردشی در مسیر اصلی داده وجود دارد .

   این معماری ابتکاری که توسطAT&T آغازشد گاهگاهی با واحدهای عملیاتی کاربرد مخصوص نیز تلفیق می شود . دستوراتی نیز برای دسترسی به این واحدها طراحی می شوند .

 

فصل ۵

 

معماری حافظه : 

 

همــانگونه که  در بخش قبل مشاهده شد مسیرهای داده پردازنده DSP به منظور فراهم آوردن کارایی بیشتـر در انواع الگوریتم های سنگین محاسباتی بهینه می شوند . هر چند مسیر داده کارآمد تنها بخشی از یک پردازنده بسیار کارا می باشد . به منظور نگه داشتن مسیر داده ای که با داده تغذیه می شود و همچنین جهت ذخیره نتایج اعمال مسیر داده ، پردازنده های DSP به قابلیتی نیاز دارند که حجم انبوهی از داده ها را به و یا از حافظه منتقل کنند . بنابراین سازمان حافظه و اتصالاتش بهمراه مسیر داده پردازنده ها فکتورهای اصلی در تعیین کارایی پردازنده می باشند . این مشخصات را معماری حافظه پردازنده نامیده و انواع معماریهای حافظه که در پردازنده های DSP پیدا می شوند بررسی خواهند شد . فصل ۶ روشهای آدرس دهی را پوشش می دهد . این روشها به عنوان ابزاری جهت دسترسی به حافظه برای برنامه نویسان تلقی می شوند .

به منظور درک نیاز به پهنای باند حافظه بیشتر در کاربردهای DSP مثال فیلتر FIR در شکل ( ۵-۱) مفروض است . این مثال ساده ترین نمونه برای توضیح نیاز به ویژگیهای مخصوص در پردازنده DSP  می باشد .

بلوکهای D  واحد تاخیر می باشند بطوریکه خروجی آنها همانند ورودی است که یک نمونه تاخیر یافته است . مجموعه ای از عناصر ذخیره سازی ( معمولاً مکانهای حافظه ) برای شبیع سازی این بلوکها به کار می روند . فیلتر FIR مجموعه ای از tab ها می باشد . هر tab یک عمل ضرب و انبارش را شامل می شود . در هر زمان R-1 نمونه ورودی در خط تاخیر مقیم می شوند . n تعداد tab در فیلتر است . هر لحظه یک نمونه ورودی جدید اعمال شده نمونه های قبلی یک مکان به راست شیفت می یابند و نمونه خروجی تولید می شود .

همانگونه که در فصل ۴ بحث شد مسیرهای داده در dsp  برای انجام عمل ضرب انباره در یک سیکل دستور طراحی می شوند . این بدان معناست که اعمال مورد نیاز برای یک tab  می توانند در یک

سیکل محاسبه شوند . لذا یک نمونه خروجی جدید می تواند برای n  ، tab  فیلتر FIT در هر n سیکل دستور تولید شود . اگر چه برای انجام این عمل پردازنده می بایست امکان جندین دسترسی به حافظه را در یک سیکل دستور داشته باشد . پردازنده می بایست موارد زیر ردا انجام دهد :

l     دستور ضرب انباره ( MAC ) را برداشت نماید .

l     مقدار داده را از خط تاخیر بخواند .

   l      مقدار ضریب را نیز بخواند .

    l      مقدار داده را به موقعیت بعد در خط تاخیر به منظور شیفت داده بنویسد .

   بنابراین اگر قرار است عمل MAC در یک سیکل اجرا شود پردازنده می بایست چهار دسترسی به حافظه در این سیکل داشته باشد . در عمل تعضی از پردازنده ها تکنیکهای دیگری را برای کم کردن تعداد دسترسی به حافظه ( ۳ یا ۲ دسترسی ) بکار می برند . با این حال همه پردازنده ها برای محاسبه یک فیلتر FIR  با یک tab در هر دستور به چندین دسترسی به حافظه در یک سیکل نیاز دارند . این پهنای باند حافظه برای دیگر الگوریتم های مهم DSP در کنار فیلتر FIR نیز نیاز است .

   ۵-۱ ساختارهای حافظه :

 

   ساده ترین ساختار حافظه پردازنده یک بانک حافظه است که پردازنده از طریق یک مجموعه از خطوط آدرس و داده به آن دسترسی دارد . این ساختار در شکل ( ۵-۲ ) آمده است .

   این ساختار که در میان پردازنده های DSP عمومیت ندارد معماری Von-neumann neumann

نامیده می شود . هر دوی دستورات برنامه و دادها در یک حافظه ذخیره می شوند . در ساده ترین و عمومی ترین حالت پردازنده می تواند یک دسترسی ( خواندن یا نوشتن ) به حافظه در طی یک سکل دستور داشته باشد . اگر برای پیاده سازی الگوریتم فیلتر FIR به معماری ساده Von numann دقت شود ضعف معماری بلافاصله مشاهده می شود . اگر چه کامل شدن عمل ضرب ئانباره در یک سیکل دستور مورد نظر است اما پهنای سیکل دستور در این معماری نیاز خواهد بود زیرا حافظه به صورت ترتیبی در اختیار پردازنده قرار می گیرد . این مورد دلیل بر آن است که چرا پردازنده های معمولی و عمومی غالباً در کاربردهای سنگین DSP به خوبی عمل نمی کنند . طراحان DSP تحولات اساسی در این معماری به وجود آورده اند . هر یک از این تحولات در قیاس با معماری Von numann پیشرفت هایی را در پهنای باند حافظه در اختیار قرار می دهند .

پردازنده های گوناگون تکنیکهای متفاوتی را برای افزایش پهنای باند حافظه بکار می برند و در بسیاری از موارد ( اکثراً در قطعات ممیز ثابت و کوچک ) پردازنده ها در قبال این پهنای باند اضافه شده محدودیتهایی دارند . این محدودیتها اغلب در پیچیدگی نرم افزار توسعه برای پردازنده های DSP بطور قابل ملاحظه ای سهیم هستند .

   معماریهای  هاروارد :

   معماریهای هاروارد به ساختاری گفته می شود که در آن پردازنده به دو بانک حافظه مستقل از طریق گذرگاههای مستقل متصل است . در معماریهای

 

 

به این پست امتیاز دهید.
هر چقدر ما رو دوست دارید ستاره بدید!!!


موضوعات :
برچسب‌ها :
ads

درباره نویسنده

mrk kiani 16 نوشته در انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب دارد . مشاهده تمام نوشته های

مطالب مرتبط


دیدگاه ها


دیدگاهتان را بنویسید