تبلیغات
باران الکترونیک - پردازنده­ های DSP
شنبه 7 دی 1392  10:25 ب.ظ
نوع مطلب: (DSP ،) توسط: امیرحسین رستمی

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

پردازنده­های DSP رایج

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

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

این پردازنده های DSP رایج و پیشرفته برای الگوریتم­های رایج DSP از قبیل فیلترکردن دارای ویژگی های زیر هستند:

  • واحدهای ضرب و جمع (MAC) سریع عملیات ضرب و جمع در بیشتر دستورعمل­های DSP از قبیل فیلترینگ، FFT  و کرولیشن به کار می­روند. پردازنده­های DSP، ضرب کننده و جمع کننده را در یک مسیر داده ترکیب می­کنند تا عملیات MAC را در یک سیکل دستورعمل کامل کنند.
  • حافظهء دسترسی چندگانه بیشتر پردازنده های DSP از معماری هاروارد اصلاح شده استفاده می­کنند تا به دلیل جدا بودن حافظه­ی برنامه و حافظه­ی داده بتوانند دستورعمل و داده را همزمان  واکشی[2] کنند. پردازنده­های DSP برای پشتیبانی از دسترسی هم زمان به چندین داده، از باس­های داخل تراشه چندگانه، بانک­های حافظه­ی مستقل و حافظه­ی داده با قابلیت دسترسی دوگانه استفاده می­کنند.
  • مودهای آدرس دهی مخصوص پردازنده­های DSP اغلب برای این که آدرس­های داده را به موازات اجرای دستورعمل ها تولید کنند، واحدهای اختصاصی تولید آدرس داده را با یکدیگر ترکیب می کنند. این واحدها معمولاً از آدرس­دهی چرخشی و آدرس­دهی بیت معکوس برای بعضی از الگوریتم های مشخص استفاده می­کنند.
  • کنترل برنامهء ویژه   بیشتر  پردازنده­های  DSP  از حلقه های بدون  پردازش [3] که به برنامه نویس این اجازه را می دهد تا یک حلقه را بدون استفاده از سیکل ساعت اضافی برای به روز رسانی و تست شمارنده­ی حلقه یا پرش به ابتدای حلقه پیاده سازی کند، استفاده می­کنند.

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

تعدادی از پردارنده­های DSP از قبیل TMS320C6000 (C62x, C64x, and C67x) با هدف رسیدن به کارایی بالا و معماری با پشتیبانی کارآمدتری از کامپایلر C  طراحی و ساخته شده­اند که از دستورعمل­های خیلی ساده­ای پشتیبانی می کنند. این پردازنده­ها با فراخوانی و اجرای چندین دستورعمل ساده به موازات یکدیگر در نرخ کلاک بالاتر، به حد بالایی از دستورات موازی دست می یابند. برای مثال TMS320C6000 از معماری دستورعمل­های خیلی طولانی (VLIW[4]) استفاده می­کند و دارای هشت واحد اجرای برنامه می­باشد تا اجرای چهار تا هشت دستورعمل به طور هم زمان در هر سیکل ساعت ممکن باشد. این دستورعمل­ها محدودیت­های اندکی را روی استفاده از رجیسترها و مودهای آدرس دهی می گذارند بنابراین بهره وری کامپایلر C را  افزایش می دهند. اما اشکال استفاده از دستورعمل های ساده این است که پردازنده­های VLIW به دستورعمل های بیشتری برای انجام یک وظیفه نیاز دارند، بنابراین به حافظه­ی برنامه و مصرف توان نسبتاً بیشتری نیاز دارند. این پردازنده های DSP با عملکرد بالایی که دارند معمولاً در سیستم های راداری و تصویری پیشرفته، زیرساخت­های مخابرات، ایستگاه­های اصلی بی­سیم و سیستم­های کدینگ تصویر بلادرنگ با کیفیت زیاد به کار می روند.

اجزای یك سیستم DSP  رایج:

سیستم های DSP   رایج  شامل  تراشه DSP، حافظه،‌ احتمالاً یك مبدل آنالوگ به دیجیتال  (ADC) ، یك مبدل دیجیتال به آنالوگ  (DAC)  و كانال های ارتباطی می باشد.

تراشه DSP:

تعدادی از اجزای سخت افزاری كه در بیشتر DSP  ها مشترك است عبارتند از :

واحد محاسبه مركزی ((Central Arithmetic Unit:

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

واحد محاسبه كمكی (Auxiliary Arithmetic Unit):

 DSPها اغلب  یك  واحد  محاسبه  كمكی دارند كه محاسبه اشاره گر، محاسبات ریاضی یا عملیات منطقی را به موازات واحد محاسبه مركزی انجام می دهد.

درگاه سری(Serial Ports):

DSP ها معمولاً برای ارتباط سریع با دیگر DSP ها  و مبدل های داده دارای پورت های سری داخلی می باشند. این پورت های سری برای افزایش عملكرد، كاهش مشكلات مربوط به دیكد كردن آدرس خارجی و كاهش هزینه ها،  مسقیماً به باس های داخلی وصل می شوند.

حافظه:

حافظه،  اطلاعات،  داده  و دستور عمل ها  را   برای DSP ها  نگه می دارد  و  یك قسمت ضروری برای هر سیستم DSP می باشد. گر چه  DSP ها  ماشین های هوشمندی هستند، هنوز هم باید به آن ها گفته شود كه چه كاری را انجام دهند. حافظه ها،  یك سری از دستور عمل ها را كه به DSP می گویند چه عملی را روی داده انجام دهد، در خود نگه می دارند.

مبدل های A/D و D/A :

مبدل ها عمل ترجمه را برای DSP ها بر عهده دارند.  چون DSP   فقط می تواند روی داده دیجیتالی عمل كند،  سیگنال های  آنا لوگ  باید به  سیگنال های دیجیتال تبدیل شوند. وقتی كه DSP یك خروجی را فراهم می كند،  ممكن است كه لازم شود، آن خروجی برای درك توسط جهان بیرونی به سیگنال آنالوگ تبدیل شود.

درگاه ها :

پورت های ارتباطی برای یك سیستم DSP ضروری هستند. اطلاعات اولیه دریافت و پردازش می شوند و سپس آن اطلاعات توسط این پورت ها به جهان بیرونی منتقل می شوند. رایج ترین پورت ها، پورت های سریال و موازی هستند. یک پورت سریال یک جریان پشت سر هم از اطلاعات را دریافت می کند و آن را به فرمت پروسسور تبدیل می کند. هنگامی که پروسسور می خواهد داده سریال را به خروجی بفرستد، پورت سریال دادهء پروسسور را دریافت و به یک جریان سریال تبدیل می کند (مانند ارتباط مودم در کامپیوتر های شخصی).  یک پورت موازی نیز همان کار را انجام می دهد، با این تفاوت که ورودی و خروجی به فرمت موازی (هم زمان) هستند (مانند پورت پرینتر).

طراحی یک سیستم DSP :

  • برنامه تراشهء  DSP یک قطعه ء سخت افزاری است که بدون هوش یک برنامه نمی توانند کار کنند. برنامه یک سری دستور عمل است که وظایف مشخصی را انجام می دهد.
  • اسمبلر اسمبلر از دستورات متنی کد ماشین را تولید می کند. اسمبلر باعث می شود که دیگر نیازی به یاد آوردن دستورعمل های باینری نداشته باشیم.
  • زبان برنامه نویسی سطح بالا زبان های برنامه نویسی سطح بالا مانند زبان های اسمبلی هستند، اما خیلی دوستانه تراند. زبان های اسمبلی دارای دستورعمل های خیلی ابتدایی از قبیل ضرب، جمع ومقایسه هستند. زبان های برنامه نویسی سطح بالا دارای دستورات سطح بالاتری از قبیل چاپ و تکرار تا زمان رسیدن به صفر هستند. بنابراین نوشتن برنامه در زبان های سطح بالا ساده تر می باشد. اما زبان های اسمبلی می توانند برنامه هایی را که سریع تر اجرا می شوند، تولید کنند. به همین دلیل از هر دوی آن ها در DSPها استفاده می شوند. گاهی اوقات لازم است که قسمت های زمان بر یک برنامه به اسمبلی نوشته شوند.
  • شبیه سازها شبیه سازهای پرواز باعث می شوند که شما احساس کنید مثل این که در کابین خلبان یک هواپیما هستید بدون این که هزینه یک هواپیمای واقعی، سوخت و ریسک تصادف آن  را بپردازید. یک شبیه ساز DSP، یک پیاده سازی نرم افزاری از یک تراشه DSP می باشد. یک شبیه ساز روی یک کامپیوتر راه اندازی می شود و تقریباً تمام وظایف اساسی یک DSP را شبیه سازی می کند. آن ها برای تحلیل امکان پذیر بودن طرح ها قبل از این که به سخت افزار تبدیل شوند،استفاده می شوند. آن ها همچنین برای تشخیص این که یک طرح به خصوص کار خواهد کرد یا نه، نیز خیلی مفید هستند.
  • Emulators یک emulator به ما این اجازه را می دهد که مستقیماً نتیجهء اجرای دستورعمل ها را روی DSP کنترل و اشکال زدایی کنیم. ما می توانیم با استفاده از emulator ها ما می توانیم تمام تغیرات داخلی در دستگاه را در هر مرحله ببینیم. توسعه دهندگان می توانند در هر زمان یک دستورعمل را اجرا کنند، برای اطمینان از عمل صحیح سطح ولتاژ را کنترل کنند و هر نتیجه را در زمان خورش بررسی کنند.
  • برنامهء اشکال زدا (Debugger)  یک برنامهء اشکال زدا برای نمایش اطلاعات اجرای برنامه به فرمتی قابل استفاده برای برنامه نویس، به کار می رود. داده هایی که در برنامهء اشکال زدا نمایش داده می شوند در واقع فرمی از داده های موجود در حافظهء DSP هستند. این حافظه به آسانی با استفاده از یک emulator و یا یک رابط ارتباطی به وسیلهء نرم افزار مناسب داخل یک PC  بارگذاری می شود. برای مثال پنجرهء حافظه در debugger می تواند داده را در مبنای 16، با فرمت عدد صحیح یا اعشاری نمایش دهد، با این حال داده در DSP به فرم باینری است. Debugger ها شامل یک رابط کاربر در کامپیوتر میزبان هستند، که می توانند محتویات و مسیر اجرای تراشه را کنترل و اصلاح کنند. رابط کاربر محتویات RAM، ثبات ها و اسمبلی برنامهء بارگذاری شده در داخل DSP را نمایش می دهند. مزیت عمدهء debuggerها نسبت به شبیه سازها این است که آن ها در زمان واقعی کار می کنند در نتیجه به طراح اجازه می دهندکه در محیط واقعی به عملکرد سیستم دسترسی پیدا کند.
  • سیکل توسعه بعد از آن که امکان پذیری طرح با استفاده از شبیه سازی تأیید شد، طراحی برنامه می تواند آغاز شود. ابتدا نرم افزار طراحی می شود. این مرحله ریزه کاری ها و بخش های کد را مشخص می کند. هر بخش از برنامه به صورت جداگانه نوشته و تست می شود و سپس تمام سیستم بسته و آزمایش  می شود. اگر همه چیز آن طور که مورد انتظار است کار کند، ورژن 1.0 محصول وارد بازار می شود. اگر برخلاف انتظار ما بود، این فرایند دوباره تکرار می شود.

رتبه بندی بازار DSP:


[1] Multiply And Accumulate

[2] fetch

[3] zero-overhead looping

[4]  Very Long Instruction Word

دانلود فایل PDF


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