فصل 1
« پردازش سیگنال دیجیتال و سیستم های 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 اغلب به وسیله الگوریتم هایی که بکار می برند ، مشخــص می شوند . الگوریتم اعمال حسابی را که می بایست انجام شوند ، مشخص کرده امـــا نحوه پیاده سازی آن محاسبات رامعلوم نمیکند.ممکن است درنرم افزارو بروی یک ریزپردازنده معمولی یا ریزپردازنده سیگنال قابل برنامه ریــزی پیاده سازی با توجه به نیازمندیهای سرعت و دقت حسابی می باشد. جدول ( 1-1 ) بعضی از انواع عمومی الگوریتم های DSP و برخی از کاربردهایی را که عموماً این الگوریتم ها در آنها اسنفاده می شوند نشان می دهد .
نرخ نمونه برداری :
مشخصه کلـیدی یک سیستم DSP نرخ نمونه برداری آن است . نرخی که در آن نمونه ها گرفته ، پردازش و یا تولید می شوند.با توجه به پیچیدگی الگوریتم،نرخ نمونه برداری سرعت مورد نیاز را در فن آوری پیاده سازی معین می کند . یک مثال معروف پخش CD صوتی می باشد که در آن نمونه ها با نرخ 44.1 کیلو هرتز روی دو کانال تولید می شوند .
البته یک سیستم DSP ممکن است بیشتر از یک نرخ نمــونه برداری داشته باشد . به این قبیل سیستم ها، سیستم های DSP چند نرخی گفته می شود . مثـال آن تبدیل نرخ نمونه های CD از 44.1KHZ به نرخ نوار صوتی دیجیتال یا 48KHZ می باشد . بدلیـــل پیچیدگی نسبت بین این نرخ ها ، معمولاً تبدیل در مراحلی انجام می شود ( معمولاً با حدفاصل حداقل دو نمونه ) مثال دیگر الگوریتم چند نرخی یک بانک فیلتر است که در کاربردهایی نظیر کدکردن صــــدا، ویدئو و گفتار استفاده می شود . بانکهای فیلتر معمولاً شامل مراحلی هستند که سیگنال را به بخشهای فرکانس بالا و پایین تقسیم می کنند. آنگاه این سیگنالهای جدید با نرخ کمتر نمونه برداری شده مجــدداً تقسیم می شوند . در کاربردهای چند نرخی نسبت بین بالاترین و پایین ترین نرخ نمونه بـرداری در سیستم می تواند کاملاً بزرگ باشد. گاهگاهی به 000،100 ممکن است برسد .
محدوده نرخ های نمونه برداری که درسیستم های پردازش سیگنال وجود داردوسیع است در شکل ( 1-1 )کلاسهـــــای کاربردها بهمراه پیچیدگی الگوریتم و نرخ نمونه برداری افزایش
می یابد . الگوریتم هایی که در نــرخ های بالاتر استفاده می شوند به نظر می رسد که ساده تر از آنهایی باشند که در نرخ کمتر بکار می روند .
بسیاری از سیستم های DSP می بایست با سرعت بسیار بالا کار کنند چرا که بتوانند روی بخشهای طولی سیگنالهای ورودی به صورت بلادرنگ عملیات انجام دهند . انواع دیگر سیستم ها
( همانند پایگاه داده ) ممکن است به کارایی متوسطی نیاز داشته باشنـد . سیستم های بلادرنگ با هر دو هدف یعنی سرعت و کارایی مناسب طراحی می شوند . در این قبیــل سیستم ها تغییر نرخ پردازش مورد نیاز باعث بد عمل کردن سیستم می شود.به این قبیل سیستــــــــــم ها اغلب « فرآیندهای بلادرنگ با قیدهای پیچیده » نیز گفته می شود . برای مثال فرض کنیم مبدل نرخ CD صوتی به نوار صوتی همانند سیستم بلادرنگ پیاده سازی شود . مبدل بایستی نمونــه جدید را از CD در هر 22.6MS بگیرد و نمونه خروجی را برای نوار صوتی در هر 20.8NS تولیدکند اگر سیستم نتواند نمونه ها را با این ترتیب بگیرد و بفرستد،داده ها از بین رفته سیگنال خروجی دچـــار نویز
می شود . نیاز به رویارویی با این قبیل قیدهای بلادرنگ ، مطالبات ویژه ای را در طراحی و اشکال زدایی سیستم های DSP بلادرنگ بوجود می آورد .
نرخ CLOCK :
سیستم های الکترونیک دیجیتـــال اغلب توسط نرخهای ساعت مورد نیازشان مشخص
می شوند . نرخ ساعت معمولاً به نرخی گفـته می شود که در آن سیستم اساسی ترین وظایفش را انجام می دهد . در محصولات تجاری نرخ ساعت تا 100MHZ عمومی است . هرچند در بعضی از محصولات بسیار کار این نرخ سریعتر می شود.درسیستم هایDSP نسبت نرخ ساعت سیستم یکی از مهمترین مشخصات است که جهت چگونگی پیاده سازی سیستم استفاده می شود . ارتباط بین نرخ ساعت و نرخ نمونه مقدار سخت افزار مورد نیاز را برای پیاده سازی یک الگوریتم داده شده ( با توجه به پیچیدگی بلادرنگ ) تعیین می کند . با افزایش نسبت نرخ نمونه برداری به نرخ ساعت مقداروپیچیدگی سخت افزارمورد نیاز برای پیاده سازی الگوریتم نیز افزایش می یابد .
نمایشهای عددی :
اعمـــال حسابی از قبیل جمع و ضرب در قالب الگوریتمها و سیستم های DSP هستند . بنابراین نمایشهای عددی و نوع حســـابی که استفاده می شود ، می تواند در رفتار و کارایی یک سیستمDSP تاثیرگذار باشد.عمومی ترین انتخاب برای طراحان حساب مسیر ثابت یا ممیز شناور می باشد . حساب ممیز ثابت اعداد را در محدودثابت 1-تا 1+ با تعداد معینی بیت که عرض کلمه نامیده می شود ، نشان می دهد . برای مثال یک عدد 8 بیتی دقت تفکیکـــی دارد . اعمال حســـــابی که نتایجی خارج از محدوده عددی داشته باشند اصطلاحاً اشباع خواهند شد . حساب ممیز شناور محدوده قابل نمایش مقادیر را گسترش می دهد . هر عدد در دو بخش نمایش می یابد : یک ماشیـــن و یک مفسر . ماشین بین 1- تا 1+ و مفسر بعنوان نما می توان دو تلقی
می شود . در حقیقت داریم : 2 enponent×Value = mantissa
حســــاب ممیز شناور محدوده دینامیک ( نسبت بین بزرگترین و کوچکترین مقادیری که
می توانند نمایش داده شوند )بزرگتری نسبت به ممیز ثابت دارد، از آن جاییکه این حساب احتمال سر ریز و مقیاس بندی را کمتر می کند لذا می تواند بطور قابل ملاحظه ای طراحی نرم افـــزار و الگوریتم را ساده سازد . بنابراین حساب ممیز شناور عموماً ازحساب ممیز ثابت کندتر و پیچیده تر بوده پیاده سازی آن نیز دشوارتر است .
کلاسهای کاربردهای DSP :
پردازش سیگنـال دیجیتال بطور عام و پردازنده های DSP بطور خاص در محدوده وسیعی از کاربردها استفـاده می شوند . از سیستم های رادار گرفته تا مصارف معمولی الکترونیک . طبیعتاً هیچ پردازنده ای نمی تواند نیازمنـدیهای همه و یا اکثر کاربردها را برآورده سازد . بنابراین اولین وظیفه طراح انتخاب یک پردازنده است بطوریکه تواماً کارایی،هزینه ، قابلیت مدار مجتمع ، آسانی توسعه،مصرف توان ودیگر ویژگیهای مناسب را برای کاربرد در دست داشته باشد. جدول ( 1-2 ) برخی از کلاسهای کاربردی را نشان می دهد .
سیستم های محاط شده کم هزینه :
بزرگترین کاربردها ( از نظر هزینه ) در پردازش سیگنال دیجیتال سیستم های محاط شده پرحجم و ارزان نظیــــر تلفن های سلولی ، مودمها و دیسک درایوها ( که DSP برای سرو کنترل می شود ) می باشند.دراین کاربردها هزینه و ملاحظات مدار مجتمع برتر می باشند . در محصولات قابل حمل مصرف توان حائـز اهمیت است . در کاربردهای محاط شده پرحجم کارایی و ملاحظات آسانی توسعه غالباً کمتر مورد توجه هستند .
کاربردهای بسیار کارا :
درکلاس دیگری از کاربردها حجم پردازش داده زیاد و الگوریتم های پیچیده برای نیازهای ویژه وجود دارند.رادار، سونار و تحلیل سیگنال زلزله از این نوع می باشند . در این کاربردها حجم تولیدات کمتر،محاسبات درالگوریتمها بیشتر و طراحی محصول پیچیده تر است . بنابراین طراحان به پردازنده هایی توجه دارندکه تواماًکارایی ماکزیمم، آسانی بکارگیری وپشتیبانی چندپردازنده ای را داشته باشند .
چند رسانه ای در PC :
کلاس جدیدتری از کاربردها قابلیتهای چند رسانه ای در PC می باشد .پردازنده های DSP بطور روزافزونی در PC جهت انجام وظایف گوناگونی نظیر پست صوتی، مودمهــــای تصویری و داده ای،سنتزگفتاروفشرده سازی تصویر استفاده می شوند.همانندکاربردهای محاط شده پرحجم ، چند رسانه ای در PC هر چند در بعضــــی دیگر از کاربردهای چندرسانه ا ی ممکن است کارایی بیشتری نیاز باشد بطوریکه پردازنده DSP بتوانـــد چندین وظیفه را به صورت همزمان و بلادرنگ انجام دهد.علاوه براین پردازنده می بایست بتواندبین وظایف گوناگون سوئیچ کند.همچنین ممکن است ظرفیت حافظه در این کاربردها مورد توجه باشد چرا که اکثر کاربردهای چنــد رسانه ای به قابلیتی نیاز دارند که بتواند حجم انبوهی از داده ها را مدیریت کند .
فصل 2
« پردازنده های DSP » :
در فصل قبل پردازش سیگنال دیجیتال با توجه به مبانی سیستم های DSP و حــوزه های کاربردی بطور خلاصه توصیف شد . در این بخش با یک توصیف کلی ویژگی های عمومــی که در اکثر پردازنده های DSP وجود دارند ، مطرح می شوند .
2-1 پردازنده های DSP :
نسلهای مختلفی از پردازنده های DSP در بازارامروزی موجود می باشد.ویژگیهای برجسته برخی از آنها در جدول ( 2-1 ) خلاصه شده است . این پردازنده ها به عنــوان نمونه هایی جهت توضیح معماریها و ویژگیهای موجود در پردازنده های تجاری بکار خواهند رفت .
اکثر پردازنده های DSP از ساختارهای مشترکی برخوردارند بطوریکــه می توانند وظایف سنگین محاسباتی و تکراری را پشتیبانی کنند. ویژگیهای مهمتر به طور خلاصه بررسی می شوند . این ویژگیها درجدول ( 2-2 ) آورده شده اند.هریک ازاین خصوصیات وانواع دیگربه صورت جزئی تردرفصلهای بعدی مطرح خواهد شد .
ضرب – انباره سریع : غالباً مهمتــرین ویژگی DSP قابلیتی است که می تواند عمل ضرب – انباره ( اغلب MAC نامیده می شود ) را در یک سیکــل دستور انجام دهد . عمل ضرب – انباره در الگوریتم هایی مفید است که محاسباتی از نوع ضرب برداری را شامل می شوند . فیلتـــرهای دیجیتال ، کورولیشن و تبدیلات فوریه از این نوع می باشند . برای به انجام رساندن این وظیفـه پردازنده های DSP یک ضرب کننده و انباره را که در واحد اصلی پردازش حسابی ( مسیرداده ) قرار دارد،شامل می شوند . علاوه بر این به منظور انجام دنباله ای از اعمال ضرب-انباره که می بایست بدون سـرریز حسابی انجام شوند ، پردازنده های DSP در رجیسترهای انباره خود بیتهای بیشتری داشته تا بتوانند خود را با رشد نتایج انبارشده وفق دهند .مسیر داده DSP به صورت جزئی تر در فصل 4 بررسی خواهد شد .
معماری حافظه با چندین دسترسی :
ویژگی دومی که در اکثـر پردازنده های DSP مشاهده می شود قابلیت چندین دسترسی به حافظه دریک سیکل دستورمی باشد.این ویژگی پردازنده راقادرمی سازدکه یک دستور را برداشت نمایدودرعین حال همزمان درحال برداشت عملوندهای دستور قبل یا ذخیره نتیجه درحافظه باشد . پهنای باند ( تعداد کلماتی که می توان از حافظه خواند یا در آن نوشت ) بیشتریــــن پردازنده و حافظه جهت بهبود کارایی لازم است چرا که عموماً در بسیاری از کاربردهای DSP الگوریتم ها به اعمال سنگین تکراری روی داده ها نیاز دارند .دربسیاری ازپردازنده ها چندین دسترسی به حافظه در یک سیکل محدودیتهایی نیز ایجاد می کند . معمولاً دسترسی به تمامی مکانهــــــای حافظه می بایست در داخل تراشه و با دستورات ویژه ای انجام شود .به منظورچندین دسترسی به حافظه پردازنده های DSP از چندین گذرگاه داخلی ، حافظــه های چند پورتی داحلی و در بعضی موارد از چندین بانک حافظه مستقل برخوردارند.ساختارهای حافظه درDSP در قیاس با پردازنده های هدف عمومی کاملاً متفاوت است . معماری های حافظه بصورت کاملتر در فصل 5 بررسی خواهند شد .
روشهای آدرس دهی ویژه :
به منظورسرعت بخشیدن به پردازش حسابی ومشخص کردن چندین عملوند در یک کلمه کوچک دستور پردازنده های DSP از واحدهای تولید آدرس بهــــره می برند . ابتدا رجیسترهای آدرس دهی مخصوصی پیکربندی می شوند.سپس واحدهای تولیدآدرس درپشت صفحه به صورت مستقل کار می کنند . این واحدها آدرسهای مورد نیاز برای دسترســی به عملوند را بطور موازی با اجرای دستورات تشکیل می دهند . واحدهای تولید آدرس معمولاً گلچینی از روشهای آدرس دهی را پشتیبانی می کنند . این روشها با توجه به کاربردهای DSP لحاظ می شوند . عمومی ترین آن آدرس دهی غیرمستقیم رجیستر بطریقه پس افزایشی می باشد . ایـن آدرس دهی درمواقعی بکار می رود که می بایست محاسبات تکراری روی مجموعه ای از داده هــــا که به صورت ترتیبی در حافظه ذخیره شده اند ، انجام شود . آدرس دهی ماژول یا گردشی غالباً استفاده از بافرهای داده را آسان می سازد . بعضی از پردازنده ها آدرس دهی bit – reversed را نیز پشتیبــانی می کنند . این آدرس دهی در الگوریتم FFT کارآمد است . روشهای آدرس دهی با جزئیات بیشتـــر در فصل 5 بررسی خواهند شد .
کنترل اجرای دستور :
ازآنجائیکه دربسیاری ازالگوریتم های DSP محاسبات تکراروجود دارد،لذااکثرپردازنده های DSP روش ویژه ای را برای حلقه سازی مناسب فراهم می کنند . غالبــــاً در مجموعه دستورات پردازنده دستور خاصی برای حلقه سازی لحاظ می شود . این دستورسربار حلقه را حذف می کند . بهنگام سازی و آزمایش شمارنده حلقه یا پرش به ابتدای حلقه به عنوان سربارهای حلقه تلقـــی می شوند . با حذف این سربارها سیکلهای کمتری مصرف خواهند شد.بعضی ازپردازنده های DSP جهت بهبود کارایی ویژگیهای دیگری از کنترل اجرایی را فراهم می آورند . قابلیتهایی نظیــــــر سوئیچینگ مناسب و وقفــــه های کم سربار و کم دوره برای ورودی / خروجی سریع از این نوع
می باشند .
حلقه ساری و وقفه های سریع در بخش 8 بررسی خواهند شد .
ارتباطات ورودی / خروجی و دستگاههای جانبی :
در اکثـر پردازنده های DSP به منظور هزینه کمتر و ورودی / خروجی کارآمدتر ، ارتباطات I/O موازی یا سریال و مکانیزمهای دسترسی به I/O نظیرDMA باهم یکی می شوند .دستگاههای جانبی در DSP اغلب به منظور ارتباط مستقیم با قطعات جانبی نظیرمبدلهای A/D و D/A طراحی می شوند.با توجه به پیشرفت های فن آوری های مدارمجتمع (چگالی وانعطـــــــــاف پذیری) فروشندگان DSP در پی قراردادن کلیه دستگاههای جانبی بروی یک تراشه می باشند . نمونه آن تراشه هایی است که برای کاربردهای تلفن سلولی طراحی می شوند. در این قطعات چندین مبدل A/D و D/A روی یک تراشه تعبیه می شود .
فصل 3
« حساب و نمایش عددی »
یکی ازمهمترین مشخصاتی که کارآمدی یک DSP را برای کاربرد داده شده معین می کند ، نوع نمایش عددی در پردازنده است . انواع حساب که درپردازنده های تجارتی عمومی می باشد ، به صورت درختی در شکل ( 3-1 ) آمده است .
ممیز ثابت در مقایسه با ممیز شناور :
پردازنده های اولیه از حساب ممیز ثابت استفاده می کردند ودرواقع هنوز هم پردازنده های DSP ممیـــز ثابت بر بازار مسلط می باشند . در پردازنده های ممیز ثابت اعدادی که نمایش داده
می شوند، همانند اعداد صحیح یا کسرهای بین 1- تا 1+ می باند . الگوریتمها و سخت افزارهایی که برای پیاده سازی حساب کســری استفاده می شوند بطور مجازی مشابه همانهایی هستند که برای حساب صحیح بکارمی روند .تفاوت اصلی دراین است که چگونه نتایج اعمـــــال ضرب در دسترس واقع می شوند .درعمل اکثر پردازنده های ممیز ثابت حساب کسری و صحیح را توامـــاً
پشتیبانی می کنند . حساب کسری بیشتر در الگوریتم های پردازش سیگنال مفید است اما حساب صحیح جهت اعمال کنترلی ، محاسبــات آدرس و دیگر اعمالی که مرتبط به سیگنال نمی باشند ، بکار می رود . شکلهای ( 3-2 ) و ( 3-3 ) نمـایشهای ساده صحیح و کسری را توضیح می دهند . نکته اینکه انجام حساب صحیح روی DSP هـــای ممیز ثابت ممکن است زمان بیشتری نیز نیاز داشته باشد .
کلاس دیگری از پردازنده های DSP ازحساب ممیز شناوراستفاده می کنند. در این حساب اعداد ترکیبی از مفسر و مانتیس می باشند . این مورد در شکل ( 3-4 ) آمده است.مانتیس معمولاً
یک مقدار کسری علامت دار با یک بیت صحیح می باشد . ( بیت صحیح در واقع به عنوان بخشی از داده ذخیره نمی شود بلکه همواره“1” فرض می شود ) . این بدان معناست که مانتیس می تواند مقداری در محدوده 1+ تا 2+ و 1- تا 2- داشته باشد.مفسر یک عدد صحیح بوده تعداد مکانهایی را که ممیز باینری مانتیس می بایست به چپ یا راست شیفت داده شود ، نشــان می دهد . مقدار نمایش داده شده از طریق عبارت زیر محاسبه محاسبه می شود :
2 exponent× Value = mantissa
شکل ( 3-4 ) نمایش ممیز شناور را نشان می دهد . عموماً پردازنده های ممیز شناور قالب داده ممیز ثابت ( معمولاً صحیح ) را نیز پشتیبانی می کنند بطوریکه بتوانند اعمالی نظیر محاسبات آدرس حافظه را که ذاتاً صحیح می باشند به آسانی انجام دهند .
حساب ممیز شناور نسبت به ممیـز ثابت مکانیزم عمومی تر و انعطاف پذیرتری می باشد . به کمک این حساب طراحان سیستم به محدوده دینامیک وسیعتر و در خیلی از موارد دقت بهتری دسترسی دارند .
دقت برمبنای خطای کوانتیزاسیون تعریف میشود .خطای عددی کوانتیزاسیون هنگام تبدیل قالب عددی بزرگتر به کوچکتر تولید می شود . در قالب ممیز ثابت ، ماکزیمم دقت ، تعداد بیتهـای قالب تعریف می شود . برای مثال یک قالب کسری 16 بیتی ماکزیمم 16 بیت دقت را فراهــــم می کند . این تعریف براساس نسبت اندازه مقدار نمایــــش داده شده به انداره ماکزیمم خطای کوانتیزاسیون می باشد ، بطوریکه داریم :
maximum precision ( in bits ) = log 2 ( 1 maximum value 1 / 1 maximum guantization error 1 )
در نمایش کسری 16 بیتی بزرگترین دامنه مقدار قابل نمایش 1- است . هنگام تبدیـل به یک قالب کسری 16بیتی از یک قالب دقیق تر ( از طریقگردکردن ) ماکزیمم خطای کوانتیزاسیون
2-16 بیت است .لذا با توجه به تعریف این قالب ، ماکزیمم دقتی معادل (1/2 –16 ) l og 2 یـــا 16 بیت دارد که همـان عرض قالب می باشد . نکته اینکه اگر مقدار تنمایش یافته نسبت به ماکزیمم دامنه کوچکتـری داشته باشد ، دقتی که بدست می آید ، کمتر از ماکزیمم دقت در دسترس خواهد بود . این مورد بر اهمیت دقت مقیـــاس بندی سیگنال هنگام استفاده از حساب ممیز ثابت تاکید دارد . مقیاس بندی به منظور حفظ دقت می باشد.این فرآیند توسط پیراسته سازی مقادیر سیگنال جهت قرارگرفتن در نزدیکی ماکزیمم محدوده نمایـش انجام می شود . مقیاس بندی در بخش 4 بررسی می شود .
تعریف مشابه ای برای قالب ممیز شناور وجود دارد : ماکزیمـــم دقت در دسترس ، تعداد بیتهای مانتیس است .( البته با در نظر گرفتن بیت صحیح ) . از آنجاییکه پردازنده های ممیز شناور بطور خودکار تمامی مقادیر را مقیاس بندی می کنند ( بطوریکـه بیت صحیح “ / “ است ) لذا دامنه مانتیس به حداقل مقدار 105 محدود می شود .این ویژگی تضمین می کند که دقت هر مقدار ممیز شناور کمتر از نصف ماکزیمم دقت در دسترس نبـاشد . بنابراین پردازنده های ممیز شناور دقت را بسیار خوب حفظ نموده وظیفه برنامه نویس آسان تر می گردد.
در عمل پردازنده های ممیزشناورازقالب 32 بیتی استفاده می کنند ( 24 بیت مانتیس و یک بیت صحیح که در نتیجه 25 بیت دقت را فراهم می کنند) . اکثر پردازنده های ممیز ثابت قالب 16 بیت را با 16 بین دقت بکار می برند . بنابراین درحالیکه از لحاظ تئوری انتخاب ممیز شناور یا ثابت می توانست مستقل از انتخاب دقت باشد اما درعمل پردازنده های ممیزشناورمعمولاً دقت بیشتری را فراهم می کنند .
بنابراین محدوده دینامیک نسبت بین بزرگترین و کوچکترین عدد قابل نمـــایش در قالب داده تعریف می شود . مزیت حساب ممیز شناور با مثالی روشن می شود . در نمایش32 بیتی ممیز ثابت مینیمم مقدار قابل نمایش 2 – 31 و ماکزیمم آن 1 -2 –31 می باشد . نسبت بین ایـن دو که محدوده دینامیک قالب داده است تقریباً و 15×2 . 15 حدود 187Db می باشد . یک قــالب ممیز شناور 32 بیتی با همان اندازه ( 24 بیت مانتیس و 8 بیت مفسر ) می تواند اعداد را از حدوداً
10 – 39×5.88 تـــا 10 38 × 3.4 نمایش می دهد . محدوده دینامیک تقریباً 1076× 5 . 79 یا 1535Db می باشد . لذا با استفاده ازهمان تعداد بیتهای ممیز ثابت ، قالب ممیز شناور بطور قابل ملاحظه ای محدوده دینامیک بیشتری را فراهم می کند .
درکاربردها محدوده دینامیک به محدوده دامنــــــه های سیگنالهایی اطلاق می شود که می توانندباحفظ دقت کافی پردازش شوند.کاربردهای متفاوت محدوده دینامیک متفاوتی نیازدارند. درکاربردهای مخابرات راه دور معمولاً محدوده دینامیک در همسایگی 50 dB کفایت می کند . در کاربردهای صوتی با کیفیت بالا مقدار 90 dB عمومی است .
پردازنده های DSP ممیـز شناور عموماً از نوع ممیز ثابت گرانتر بوده اما برنامه نویسی آنها آسانتر است . هزینه بیشتر به دلیــل مداربندی پیچیده تر است . علاوه براین ، اندازه کلمه بزرگتر در پردازنده های ممیز شناور مستلـزم گذرگاههای عریض تر و حافظه های بیشتر است که هزینه کل سیستم را افزایش می دهد .
آسانی کاربرد پردازنده های ممیــز شناور به این دلیل است که برنامه نویس در بسیاری از موارد لازم نیست به محدوده دینامیک و دقت توجـه نماید . ولی در نوع ممیز ثابت برنامه نویسان می بایست سیگنالها را در مراحل گوناگون برنامه هایشان مقیاس بندی کنند تا از محدوده عددی و دقت مناسب در پردازنده تجاوز ننمایند.
اکثر کاربردهای محاط شده و پرحجم از پردازنـده های ممیز ثابت استفاده می کنند چرا که اولویت با هزینه کمتر است . برنامه نویسان و طراحان الگوریتم محدوده دینامیک و دقت مورد نیاز کاربردشان را به صورت تحلیلی یا از طریق شبیه سـازی تعیین نموده اعمال مقیاس بندی لازم را به برنامه اضافه می کنند . در کاربردهایی که به قیمت کمتـر حساس هستند یا محدوده دینامیک و دقت بیشتری را می طلبند و یا آسانی برنامه نویسی مهم است ، پردازنـده های ممیز شناور مزیت دارند .
3-2 عرض اصلی کلمه :
عـــرض اصلی کلمه داده در یک پردازنده عرض داده ای است که گذرگاههای پردازنده و مسیر داده می توانند در یک سیکـــل بر روی آن عملیات انجام دهند . تمامی پردازنده های ممیز شناور از عرض داده 32 بیتی بهــــره می برند . در نوع ممیز ثابت عرض 16 بیت معمول است . خانواده های DSP5600X و DSP 563XX موتورولا کلمه داده 24 بیتی و ZR3800X کلمه 20 بیتی دارند . اندازه کلمه داده اثر مهمی روی هزینه پردازنده دارد چرا که اندازه تراشه و تعداد پایه های مورد نیاز برای قطعات خارجی را افزایش می دهد .بنابراین طراحان سعی می کنند از تراشه ای با کمترین عرض داده مناسب با کاربردشان استفاده کنند.تراشه CD 2450 از CLARKSPUR Designs منحصر به فرد است بطوریکه انتخاب هر کلمه داده ای بین 16 یا 24 بیت را ممکن می سازد .
غالباً هنگام انتخاب تراشه های ممیز شناور یا ممیز ثابت مصالحه ای بین کلمه و پیچیدگی توسعه وجود دارد . کاربردی که نشان می دهد جهت کارایی بهتر به داده 24 بیتی نیاز دارد ممکن است با یک پردازنــده 16 بیتی البته به بهای هزینه بیشتر و الگوریتم پیچیده تر یا برنامه نویسی دشوارتر به انجام رسد .
3-3دقت توسعه یافته :
دقت توسعه یافته به معنای استفاده ازنمایشهایی است که دقت بیشتری به قــــالب داده اصلی پردازنده فراهم می کنند . دقت گسترش یافته به دو روش زیر صورت می گیرد :
اول : بسیاری از پردازنده های ممیز شناور یا ثابت جهت اعمالی که بطور انحصـاری داخل مسیر داده قرار دارند پشتیبانی داخلی برای قالب دقت گسترش یافته را فراهم می کنند. این بدان معناست که وقتی مجموعه هایی از اعمال حسابی داخل مسیر داده پردازنده در حال اجرا هستند و نتایج میانی یا نهایی به و یا از حافظه منتقل نمی شوند،عرض کلمه داده بزرگتری نسبت به عرض داده اصلی در دسترس می باشد . لذل مجموعه ای از اعمـــال حسابی با دقت بیشتر یا محدوده دینامیک وسیعتری انجام می شوند .نهایتاً هنگام ذخیره نتیجه به حافظه یک عمل گردکردن انجام می شود .
دوم : عموماً ممکن است و اغلب دشوارکه حساب چند دقتی را با ساختن کلمه های بزرگتر نسبت به کلمه های اصلی انجام دهیم.برای مثال بایک پردازنده ممیز ثابت 16 بیتی برنامه نویس می تواندکلمات داده 32 بیتی را بااتصال جفت کلمات 16 بیتی تشکیل دهد.برنامه نویس می تواتد اعمال حساب چند دقتی رابه کمک دنباله ای دقیق ازدستورات تک دقتی پیاده سازی کند. مثلاً یک جمع چند دقتی اغلب می تواند توسط یک سری از دستورات جمع تک دقتی محقق شود .
البته از آنجاییکه هر عمل حسابی چند دقتی به دنباله ای از دستورات تک دقتی نیاز دارد لذا حساب چند دقتی کندتر می باشد . هر چند بعضی از پردازنده ها ویژگیهایی دارند که حسـاب چند دقتی ر آسان می کنند .
اگر حجم یک کاربرد با حساب تک دقتی دستکاری شود اما برای بخشهای کوچک برنـامه دقت بیشتری نیاز باشد ، حساب چند دقتی مناسب نخواهد بود . چنانچه اکثر کـــاربردها به دقت بیشتری نیاز داشته باشند به نظر می رسد پردازنده ای با کلمه داده بزرگتر انتخاب بهتری باشد .
ممیز شناور بلوکی :
حتی هنگام استفاده از پردازنده ممیز ثابت این امکان وجود داردکه دقت ومحدوده دینامیک حساب ممیز شناوررا به کمک روتین های نرم افزاری که همانند پردازنده ممیزشناور رفتار می کنند به دست آوریم .بعضی ازسازندگان ، کتابخانه روتین های مشابه ممیز شناور را برای پردازنده های ممیز ثابت فراهم می کنند.اگرکتابخانه دردسترس نباشدکاربرمی بایست این روتین ها را بنویسد . روتین های ممیز شناور معمولاً برای اجرا به سیکلهای بسیاری نیـاز دارند . این ایجاب می کند که استفاده از این روش تنهادرمواقعی باشدکه بخشهای بسیارکوچکی از محاسبات ریاضی در کاربرد داده شده به قالب ممیز شناور نیـاز داشته باشند . اگر حجم قابل ملاحظه ای از حساب ممیز شناور نیاز است معمولاًپردازنده ممیز انتخاب دقیق تری می باشد .
رهیـافت دیگر برای بدست آوردن محدوده دینامیک و دقت بیشتر جهت داده انتخاب شده در پردازنده ممیزثابت نمایش ممیزشناوربلوکی می باشد.دراین روش گروهی ازاعدادباماشین های متفاوت اما مفسر مشترک به عنوان بلوکی از داده پردازش می شوند . علاوه بر ذخیره مفسر داخل هر کلمه داده ( همچنانکه در ممیز شناور انجام می شود ) مفسر در کلمه داده مجزای خودپپش نیز ذخیره می شود.برای مثال یک بلوک از هشت مقدارداده ممکن است یک مفسرعمومی را بکار برد . در این مورد ذخیره یک بلوک از 8 مقدار داده به 9 موقعیت حافظه نیاز دارد ( 8 مـــــانتیس و 1 مفسر ) .
ممیز شناور بلوکی به منظور محدوده دینامیک و دقت بیشتر نسبت به قالبهای حسابی ممیز ثابت پردازنده بکار می رود . ممکن است یک روتین فیلتر بر اساس مقادیر 32 بیتی بوده ، امــــا برنامه نویس آن را به بلوکهایی با نمایش 16 بیت مانتیس و مفسر4 بیتی برای هربلوک داده تقلیل دهد . مفسر برای بلوکی از داده معمولاً به وسیله المان داده در بلوک با بزرگترین دامنه تعییــــن می شود . اگر بلوکی از داده ها مقادیر کوچکی داشته باشد این مقادیر چندین مکان به چپ شیفت داده می شوندکه به تبع آن مفسر منفی تر می شود . اگر آن بلوک مقادیر بزرگی داشته باشد تعداد شیفت به چپ کمتر خواهد بود . چنانچه قابلیت شیفت داده وجود نداشته باشد دقت حاصل مشابه همان قالب اصلی پردازنده می باشد . شکل ( 3-5 ) مفاهیم ممیز شناور بلوکی را توضیح می دهد .
تبدیل بیـــن قالب ممیز ثابت و ممیز شناور بلوکی توسط برنامه نویس در نرم افزار انجام می شود . بعضی از پردازنده ها ویژگیهای سخت افزاری بخصوصی دارند که آنها را در استفاده از ممیز شناور بلوکی یاری می کنند.عمومی ترین آن دستور « آشکار کننده مفسر » است . این دستور شیفت های مورد نیاز را محاسبه می کند .
دستورات ویژه که ممیز شناور بلوکی را پشتیبانی می کنند در فصل 7 بررسی می شوند .
استاندارد ممیز شناور IEEE – 754 :
در سال 1985 انستیتوی مهندسان برق و الکترونیک استاندارد IEEE – 754 را تعریف کرد . پردازنده های معدودی سخت افـــزاری را برای پشتیبانی از این حساب فراهم می کنند . در DSP 96002 پشتیبانی سخت افزاری بـرای حساب ممیز شناور تک دقتی مطابق با این استاندارد وجود دارد . خانواده ADSP – 210XX بطور کامل از این استاندارد تبعیت می کند .
بعضی از پردازنده های ممیز شناور نظیر AT&TDSP32XX ویژگی داخلی برای IEEE – 754 ندارد اما سخت افزارویژه ای رابرای تبدیل سریع اعداد بین نمایش ممیز شناور داخلی و استاندارد مذکور در بر می گیرد.پشتیبانی سخت افزاری برای تبدیل قالی می تواند در کاربردهایی مهم باشد که به یک DSP براساس این استانداردنیاز نداشته باشند و بتوانند با دیگر پردازنده هایی که از این استاندارد بهره می برند ارتباط برقرار کنند.بدون این ویژگی DSP ممیز شناور مذکور می بایست از روتین نای نرم افزاری جهت تبدیل دو قالب استفاده کند که می تواند زمان بر و وقت گیر باشد .
ارتباط بین اندازه کلمه و اندازه کلمه دستور :
دراکثرپردازنده هایDSP بجزتعداد اندکی اندازه کلمه دستوربا اندازه کلمه داده برابر است . تنها خانواده ADSP – 21XX و IBM MDSP2780 کلمه داده 16 بیتی وکلمه دستور24 بیتی دارند . خانواده ZORUN ZR3800X نیز داده 20 بیتی و دستور 32 بیتی را بکار می برد .
پردازنده هایی با اندازه های کلمه متفاوت عموماً در موارد ذخیره داده در حافظه با قیدهایی مواجه اند ( برای مثال داده 16 بیتی در حافظه 24 بیتی ) . واضح است که این روش در استفاده از حافظه کارآمد نمی باشد چرا که بخش قابل ملاحظه ای از کلمه حافظه برنامه که جهت ذخیره داده استفاده می شود بلا استفاده مانده و این می تواند روی هزینه کلی سیستم تاثیر گذار باشد .
فصل 4
مسیــــــــر داده :
مسیر داده یک پردازنده DSP ساختــاری است که پردازشهای اصلی حسابی روی سیگنال در آن جا انجام می شود . مسیرهای داده در DSP طوری طـــراحی می شوند که انواع محاسبات معمول در کاربردهای DSP را نظیر اعمال ضرب – انبارش با کـــارایی هر چه بیشتر انجام دهند . قابلیتهای مسیر داده بهمراه معماری حافظه در DSP ویژگیهایی هستند که پردازنده های DSP را از نوع دیگر ریزپردازنده ها متمایز می سازند . مسیرهای داده در پردازنـــده های ممیز شناور بطور قابل ملاحظه ای نسبت به نوع ممیز ثابت تفاوت دارد زیرا دو نوع حساب نیازهای متفاوتی دارند . در این بخش ابتدا مسیر داده ثابت و سپس ممیز شناور بررسی می شود .
4-1 مسیر داده ممیز ثابت :
مسیرهای داده پردازنده های ممیز ثابت معمولاً شامل یک ضرب کننده ، یک AIU ، یک یا چندشیفت دهنده،رجیسترهای عملوند،انباره هاودیگرواحدهای ویژه می باشند . بعضی فروشندگان به مسیرداده، ALU یا واحد حسابی نیز می گویند . اما در این جا واژه ALU برای واحدهای عملیاتی جمع کننده / تفـریق کننده و اعمال منطقی بکار می رود . شکل ( 4-1 ) یک مسیر داده ممیز ثابت معمولی را از شرکت موتورولا نشان می دهد .
مسیرداده درDSP عموماً برای محاسبات آدرس حافظه بکارنمی رود . اما معمولاً در پردازنده های ممیز ثابت یک واحد سخت افزار مجزا برای محاسبه آدرس وجود دارد . این واحد اغلب واحد تولید آدرس یا AGU نامیده می شود . این سخت افزارمعمولاً مجموعه ای غنی ازمحاسبات آدرس را نظیر آدرس دهی ماژول و bit – neversed انجام می دهد . ATRDSP32C و DSP32XX استثنــاء هستند . در آنها مسیرهای ممیز شناور و ممیز ثابت مجزا می باشند بطوریکه مسیر ممیزثابت برای محاسبات آدرس استفاده می شود .
تنوع روشهای آدرس دهی ویژه که در پردازنده های DSP وجود دارد ، یکی ازعواملی است که این تراشه ها را از دیگر انواع پردازنده ها نظیر پردازنده های RISC هدف عمومی متمـــــایز می سازد . واحد های تولید آدرس در DSP و روشهای آدرس دهی در فصل 6 بررسی می شوند .
ضرب کننده :
وجود یک ضرب کننده تک سیکلی بخشی از تعریف یک DSP قابل برنامه ریزی می باشد . ضرب عمل خاصی است که بطور فراوان در همه کاربردهای DSP وجود دارد .
در بسیاری از کاربردها نیم یا بیشتردستوراتی که توسط پردازنده اجرامی شوند،عمل ضرب را در بر دارند . بنابراین در همه پردازنده های DSP یک ضرب کننده وجود دارد بطوریکه دو عملوند با عرض قالب اصلی پردازنده را در یک سیکـل ضرب می کند . هر چند ظرفیتهای ضرب کننده در پردازنده های گوناگون متفاوت است .
گاهی اوقات خط لوله داخلی ضرب کننــــده می تواند تاخیری بیشتر از یک سیکل را بین ورودیها و خروجی هانتیجه دهد.این تاخیر از ورودی تا نتیجه حاصل « دوره » نامیده می شود . این ضرب کننده هاکارایی خودراتنهامواقعی نشان می دهندکه دنباله ای ازاعمال ضرب انجام میشود . اگر تنها یک عمل ضرب مورد نظر باشد ، می بایست برای نتیجه آن چندین سیکل صبـــر کرد . پردازنده ای با این نوع ضرب کننده CD2450 می باشد .
در بعضی موارد ( DSP 5600X ) ضرب کننـــده بهمراه یک جمع کننده برای تشکیل واحد ضرب – انبارش مجتمع می شود . در موارد دیگر ( AT&TDSP16XX ) ضرب کننـــده مجزا است بطوریکه خروجی آن به یک رجیستر ضرب منتقل شده و ازآن جامی تواند به یک جمع کننده جهت انبارش فرستاده شود . اگر ضرب کننده و جمع کننده متمایز باشند ، نتیجه عمل ضرب – انباره قبل اینکه دستور بعدی بتواند از آن استفاده کند ، یک سیکل دستور تاخیر می یابد .
تفاوت دیگری در بین ضرب کننده های DSP اندازه ضرب بوده که مرتبط به عملونــــدها می باشد . عموماً هنگام ضرب دو عدد n بیتی ، 2n بیت نیاز بوده تا نتیجه ضرب بدون خطـا بدست آید . به این فرآیند قانون حفظ بیت نیز می گویند . لذا خود ضرب کننده در محاسبات خطایــی را موجب نخواهد شد . هر چند بعضی از پردازنده های ممیز ثابت به دلیل اقتصادی و ســـــرعت از ضرب کننده هایی استفاده میکنندکه نتایج کوتاهتری تولیدمی کنندلذا منجربه خطاهای محاسباتی می شوند . برای مثال Z893XX و CD2400 عملوندهای 16 بیتی را گرفته نتایج 24 بیتی به جای 32 بیتی تولید می کنند . اگـــــر چه این امکان وجود دارد که نتیجه کامل ضرب را به مرحله بعد محاسبات بفرستیم اما این امر معمولاً غیر عملی می باشد چرا که دنباله ای از اعمال ضرب و جمع نتایجی با عرض خیلی بیشترتولید خواهند کرد . بنابراین در اکثر موارد لزومی ندارد که نتیجه کامل ضرب را داشته باشیم زیرا اغلب محدوده دینامیک و دقت اضافی مفید نمی باشد.بنابراین به دلایل عملی برنامه نویس معمولاًزیرمجموعه ای ازبیتهای خروجی ضرب راکه برای محاسبات لازم است انتخاب می کند.یا ممکن است جهت انبارش مجموعه ای از نتایج ضرب ابتدا انبارش با طول کامل انجام شود سپس نتیجه نهایی قبل از رفتن به مرحله بعدی محاسبات گرد شود .
هنگامیکه دوعددباینری ضرب می شوند مکان ممیز در نتیجه کامل بستگی به مکان ممیزها در عملوندها دارد . این مورد در شکل ( 4-2 ) و ( 4-3 ) آورده شده است . اگر حساب صحیح بکار می رود خروجی ضرب کننده با عرض کامل نیز صحیح است و برنامه نویس معمولاً بیتهای پایینی را حفظ می کند. دراین مورد اندازه عملوندها می بایست توسط برنامه نویس محدود شود بطوریکه نتیجه ضرب کامـلاً در نیمه پایین نتیجه ضرب کننده قرار می گیرد . هنگامیکه این عمل انجام شد 1+ بیت پردازشتر از N بیت نتیجه بیت علامتند ( که گاهگاهی بیتهای گسترش علامت نامیده می شوند ) . بنابراین هنگامیکه بیت حذف شوند ، تقریباً اطلاعاتی از بین نمی رود .
چنانچه حساب کسری استفاده شود،نتیجه کامل ضرب در طرف راست دو برابر عملوندهای ضرب می باشد و برنامه نویس معمولاً بیت های کم ارزش را حذف می کند .
رجیسترهای انباره :
رجیسترهای انباره نتیج میانی و یـا نهایی عمل ضرب – انباره و دیگر اعمال حسابی را حفظ می کنند . اکثر پردازنده های DSP دو یا چنـد انباره دارند . بعضی از آنها تنها یک انباره داشته که می توانددربسیاری از کاربردها ناکارآمد باشد . وجود یک انباره در معماری DSP مساله ساز است . از آنجاییکه انباره معمولاً به عنوان عملوند منبع یـا مقصد برای اعمال ALU به حساب می آید لـذا می بایست محتویاتش به صورت پی در پی بارگذاری شود ( و یا ذخیره شود ) . بنابراین در حالیکه ALU برای وظایف متغیری بکار می رود ، این بارگذاری ها و ذخیره ها نرخی راکه درآن داده بتواند از ALU بگذرد محدود می کند .
معمولاً اندازه رجیسترهای انباره می بایست از اندازه کلمه خروجی ضرب کننده چندین بیت بزرگتر باشد . بیتهای بیشتر ، بیتهای گارد نامیده می شوند . این بیتها برنامه نویس را قــــــادر می سازند تعدادی از مقادیر را بدون سرریز شدن انباره یا بدون مقیـــــاس بندی مقادیر میانی، پردازش و انبارش نماید . انباره ای با R بیت گارد معادل 2N مقدار ( جهت انبارش بدون سرریز ) ظرفیت دارد . اکثر پردازنده ها 4 یا 8 بیت گارد دارند . مثلاً DSP 16XX ، 4 بیت گارد ( انباره های 36 بیتی با رجیستر ضرب 32 بیتی ) و ADSP – 21 XX ، 8 بیت گارد ( 40 بیت انبـــاره و رجیستر ضرب 32 بیتی ) را فراهم می کنند .
در یک پردازنده فاقد بیتهای گارد ، سیگنالهای ورودی یا نتایج میانی اغلب می بایست قبل از جمع با مقدار انباره مقیاس بندی شوند تا امکان سرریز حذف شود . معمولاً این عمـــل شامل مقیاس بندی نتیجه ضرب ( با شیفت آن چند بیت به راست ) می شود . در نبود بیتهای گارد گاهی اوقات قابلیت شیفت مقادیر رجیستر ضرب بدون ضرب سیکل دستور وجود دارد . مثلاً در C2X و C5X رجیستر ضرب بطور خودکار 6 بیت به راست شیفت می یابد . این قبیل شیفتها با کم شدن دقت همراه است .
بیتهای گارد انعطاف پذیری بیشتری را نسبت به مقیاس بندی نتیجه ضرب نتیجه می دهند چراکه امکان حفظ ماکزیمم دقت را در مراحل میانی محاسبات میسر می سازند . در C1X بیتهـای گارد و قابلیت مقیاس بندی ضرب وجود ندارد لذا بایستی ورودی ضرب کننده مقیاس بنـدی شده که این امر منجر به کم شدن دقت به میزان زیادی خواهد شد . فقدان این دو ویژگی در بسیـاری از موارد محدودیتهای جدی به بار می آورد .
ALU
واحدهــای محاسبه و منطق در DSP اعمال حسابی و منطقی را در یک سیکل دستور انجام می دهند . اعمـال عمومی جمع ، تفریق ، افزایش و اعمال منطقی OR ، and ، NOT می باشند .در ALU ها اندازه کلمــه ای که برای اعمال منطقی بکتر می رود ، متغیر است . بعضی از پردازنده ها اعمال منطقی را روی عملوندهایی که عرض کاملی