DSP
در مهندسی یا بهتر است بگوییم که در همه کارها وقتی قصد انجام کاری را داشتهباشیم بهطورمعمول چندین ابزار مختلف در اختیار ما قرار دارد(حالا اینکه بعضی وقتها همون یک ابزار هم برای انجامکار بهسختی پیدا میشود بماند…) حالا ما بهصورت خیلی ابتکاری قصد داریم این ابزارها را به ۳دسته تقسیمکنیم:
- ابزارهایی که مناسب پروژه موردنظر نیستند.
- ابزارهایی که مناسب پروژه موردنظر هستند.
- ابزارهایی که مناسب پروژه مورد نظر هستند و مشخصا برای این پروژه بهینهسازی و توسعه داده شدهاند.
ما در این مقاله قصد داریم در مورد آخرین مورد یعنی ابزار هایی که برای اهداف و کارهای خاصی توسعه یافته اند صحبت کنیم.
معرفی
(DSP (Digital Signal Processor: این ابزار نوعی پردازنده میباشد که مشخصا برای پردازش سیگنالهای دیجیتال ساختهشدهاست. البته توجهشود که Digital Signal Processor با Digital Signal Processing اشتباه گرفتهنشود، درواقع باید بگوییم که اولی ابزاری است که برای پیشبرد اهداف تئوریهای دومی ساختهشدهاست ولی هردو بهصورت اختصار با DSP شناخته میشوند. تااینجا متوجهشدیم که اگر بخواهیم پردازش سیگنال انجامبدهیم بهتر است که از این نوع پردازندهها استفادهکنیم البته پارامترهای دیگری مانند سرعت نیز وجود دارد که گاها باعث میشوند حتی اگر بخواهیم پردازش سیگنال انجامبدهیم سراغ ابزارهای دیگری برویم تا نیازمان برآورده شود، که ما در اینجا قصد نداریم درمورد این مقوله صحبتکنیم. در ادامه قصد داریم بیشتر درمورد تفاوت با سایر پردازندهها و کاربردهای DSP صحبتکنیم. تمرکز DSP بیشتر بر روی اجرای عملگرهای پایهای ریاضی بهخصوص ضرب میباشد به ایننحو که در این پردازندهها چندین ضربکننده از قبل آمادهشده و بهصورت بهینه وجود دارد. خب مسلما وقتی ما در پروژهای نیاز به عملیات پردازش سیگنال یا ضربکننده داریم بهتر است که از DSP استفادهکنیم چون میدانیم که یک تیم حرفهای از یک شرکت معتبر قبلا این ضربکنندهها را بهصورت سختافزاری برای ما طراحیکردهاست و تنها کاری که ما انجام میدهیم این است که باید این ضربکنندهها را درجای مناسب مقداردهی کنیم و بهکار بگیریم. حالا همین نتایج را مقایسهکنید با زمانیکه ما بخواهیم از پردازنده دیگری استفادهکنیم و این ضربکنندهها را بااستفادهاز کد و حافظههای داخلی توصیفکنیم(توجهشود که تنها راه نیز همین میباشد چون هیچ سختافزاری برای اینکار وجود ندارد و ما باید عملیات موردنظرمان را با کد توصیفکنیم)، در بهترین حالت یعنی زمانی که هم کد ما حرفهای باشد هم از حافظهها بهنحو احسنت استفادهکرده باشیم میتوان گفت که بهتر است از DSP استفادهکنیم، چرا؟ به ایندلیل که وقتی ما از DSP استفاده میکنیم مطمئنهستیم تا جایممکن سختافزار ضربکننده جوری در تراشه طراحی و قراردادهشدهاست که کمترین تاخیر انتشار وجود داشتهباشد ولی از بابت اینکه کدی که در پردازنده دیگر نوشتیم نیز اینقدر بهینه باشد و کمترین تاخیر انتشار را داشتهباشد مطمئننیستیم چون ما بهصورتکامل بر الکترونیک و سختافزاری که کد ما در آن جای خواهدگرفت اشراف کامل نداریم و سازنده نیز این نوع از پردازنده را مشخصا برای کار ما طراحینکردهاست. ما تنها درصورتیکه DSP نتواند سرعت موردنیازی که برای پروژه درنظرگرفتهشدهاست را برآورده کند از دیگر ابزارها استفاده میکنیم، که این ابزارها پردازنده نیستند بلکه یک سختافزار خامی است که قابلیت انعطاف دارد و بااستفادهاز کد قابلتغییر میباشد و بهصورت موازی کار میکند و همانطوری که قبلا گفتیم قصد پرداختن دقیق به این موضوع را نداریم(می دانم که الان دارید با خودتان فکر میکنید که اسم این ابزاری که میگوییم موازی کار میکند چی هست فقط درهمینحد بدانید که اسم این ابزار FPGA). از نکات قابل اهمیت دیگری که میتوان بیانکرد این است که وقتی ما برروی یک برد چندین تراشه داریم که کارهای مختلف را انجام میدهند، مثلا از عملیات بیتی سطح پایین گرفته تا عملیات سطح بالا مانند کار با سیستمعامل و امثالهم، بهتر این است که الگوریتمهای پیچیده ریاضی را بااستفادهاز DSP انجامدهیم. در کارهای پردازش سیگنال عموما ما با محاسبات اعشاری سروکار خواهیمداشت که انجام این عملیات با ابزار DSP بسیار راحتتر خواهد بود. در اینجا شایانذکر است که بگوییم قسمت اعشار فقط و فقط در ذهن ماست و تفسیری که ما از چندین بیت داریم و نحوهی استفادهاز حافظهها و مقدار ارزشدهی به هر بیت خاص است وگرنه چیزی به اسم اعشار در سختافزار یا حافظههایداخلی نهفته نیست. مثلا فرضکنید یک بایت که بیتهای آن با مقادیرخاصی پرشدهباشد میتواند ارزش یک عددصحیح را داشتهباشد یا ارزش یک عدد اعشاری، بستگی بهاینکه ما این بایت را چگونه تفسیرکنیم میتواند ارزشمتفاوتی داشتهباشد بدونتغییر در مقادیر بیتها. ازجمله کاربردهای DSP میتوان به پردازش صوت و تصویر، و ارتباطات دور برد(مخابراتی) و عموم کارهای یک میکروکنترلر مثل کنترل وسایلخانگی، کنترل ادوات صنعتی را میتوان انجام داد. در تصویر زیر نمایی از کاربردهای مختلف DSP را نیز مشاهده میکنید.
هدفما در این مقاله بیشتر آشنایی با ماهیت DSP و اینکه چهزمانی و در چهنوع پروژههایی از این نوع پردازندهها استفاده میکنیم بود و قصد پرداختن به جزئیات منابع داخلی و نحوه استفادهاز آنرا نداشتیم.
امیدوارم که از این مقاله خوشتان آمدهباشد و کمکی باشد برای اینکه بدانید چه زمانی، از چه ابزاری برای کارتان استفاده کنید.
منبع: سیسوگ