
پردازنده سیگنال دیجیتال DSP چیست؟
- پردازنده های سیگنال دیجیتال میتوانند داده ها را در زمان واقعی و بدون تاخیر پردازش نمایند و برای کاربردهایی که نمیتوانند تاخیری را تحمل کنند بسیار ایده ال میباشد.
DSP چیست :
نقطه شروع یادگیری کار با پردازنده های سیگنال دیجیتال فهم عبارت DSP میباشد که در اصل پردازنده سیگنال دیجیتال یا DSP چیست و چه کاربردی دارد .
طبق تعریفی که ویکی پدیا ارائه داده پردازنده سیگنال دیجیتال (DSP) یک تراشه ریزپردازنده تخصصی است که معماری آن برای نیازهای عملیاتی پردازش سیگنال دیجیتال بهینه شده است.پردازش سیگنال دیجیتال خود زیرشاخه ای از پردازش سیگنال میباشد.
معمولا از پردازنده های سیگنال دیجیتال برای اعمال تغییرات در اطلاعات سیگنال با استفاده از توابع ریاضی به منظور اصلاح یا بهبود آن اطلاعات در سریعترین زمان ممکن استفاده میشود.
پردازنده های سیگنال دیجیتال میتوانند داده ها را در زمان واقعی و بدون تاخیر پردازش نمایند و برای کاربردهایی که نمیتوانند تاخیری را تحمل کنند بسیار ایده ال میباشد.
پردازنده سیگنال دیجیتال سیگنالهای صوتی تصویری دما موقعیت و …. را به صورت دیجیتال و با استفاده از توابع ریاضی دستکاری میکنند تا بتوان از اطلاعات موجود در آن استفاده کرد یا آنها را به شکل دیگری از سیگنال تبدیل نمود.
پردازش سیگنال دیجیتال و پردازنده های سیگنال دیجیتال در ارتباطات از راه دور پردازش صدا و گفتارنیز استفاده می شود. رادار، لیدار، سنسورها، پردازش بصری، پردازش تصویر وبسیاری کاربردهای دیگر. برخی از DSP ها برای پردازش شبکه های عصبی استفاده می شوند.
Cadence یک DPS اختصاصی را برای کاربردهای بینایی، رادار/لیدار و کاربرد سنسور فیوژن برای پردازش شبکه عصبی (Tensilica Vision C5 DSP) طراحی کرده است. DSP ها از دستگاه های مصرفی مانند تلفن های همراه گرفته تا ماهواره ها تجهیزات پزشکی و ارتباطات نظامی یافت می شوند.
تفاوت عمده DSP با سایر پردازنده ها در این نکته میباشد که آنها برای اجرای توالی دستورات فوق سریعی مانند shift و add و ضرب و جمع بهینه سازی شده اند.
در واقع وجه تمایز اصلی پردازنده های سیگنال دیجیتال با سایر پردازنده ها مانند میکروکنترلر در این نکته است که پردازنده سیگنال دیجیتال عملیاتهایی مانند جمع ضرب و یا مجموع حاصل ضرب و عملیاتهایی از این دست را در حداقل زمان ممکن و با حداقل سیکل ماشین و استفاده بهینه از فضای حافظه انجام میدهند به طور کلی DSPها برای این دسته از عملیاتها بهینه سازی شده اند.
این توالی دستورالعمل در بسیاری از برنامه های پردازش سیگنال فشرده رایج است.معمولا DSP ها در دستگاه هایی استفاده می شوند که این نوع پردازشهای سیگنال مهم است.
معماری حافضه :
DSP ها برای پردازش انبوهی از داده ها احتیاج به توانایی دریافت و ارسال حجم زیادی داده خام دارند که برای این منظور مسیرهای جریان داده آنها بهینه شده است.
بدین معنی که توانایی دریافت پردازش و ارسال حجم زیادی داده را بصورت بلادرنگ دارند و برای رسیدن به این توانایی از معماری های حافظه ویژه ای استفاده می کنند که می توانند چندین داده یا دستورالعمل را به طور همزمان واکشی کنند، مانند معماری هاروارد یا معماری Modified von Neumann که از حافظه های برنامه و داده جداگانه استفاده می کنند (گاهی اوقات حتی دسترسی همزمان به چندین گذرگاه داده).
آدرس دهی و حافظه مجازی:
DSP ها اغلب از سیستم عامل های چند وظیفه ای استفاده می کنند، اما هیچ پشتیبانی از حافظه مجازی یا محافظت از حافظه ندارند. سیستمعاملهایی که از حافظه مجازی استفاده میکنند، به زمان بیشتری برای تعویض متن (context switching) در میان فرآیندها نیاز دارند، که تأخیر را افزایش میدهد.
- آدرس دهی ماژول سخت افزاری
- اجازه می دهد تا بافرهای دایره ای بدون نیاز به آزمایش برای بسته بندی اجرا شوند.
- آدرس دهی معکوس بیتی، یک حالت آدرس دهی خاص
- برای محاسبه FFT مفید است.
آدرس دهی دایره ای یا بافرهای دایره ای :
عملیات DSP معمولاً محاسباتی هستند که شامل یک جریان بینهایت از دادههای بلادرنگ هستند. داده ها در یک بافر جمع می شوند و قدیمی ترین نمونه توسط جدیدترین نمونه بازنویسی می شود. اندازه بلوک برای این بافر دایره ای باید مشخص و در حافظه فیزیکی ذخیره شود. این حافظه اساساً دارای یک FIFO round-robin است که در داخل آن قرار گرفته است. دسترسی توسط یک آدرس پایه برای حافظه و یک سیستم اشاره گر فراهم می شود
آدرس دهی معکوس بیتی :
هنگام انجام تبدیل فوریه سریع پروانه ای، آدرس خروجی ها با توجه به ورودی ها معکوس می شوند. برخی از DSP ها این تغییر بیت را به عنوان بخشی از فرآیند آدرس دهی انجام می دهند.
در ادامه به بررسی جزئی معماری داخلی دو مدل DSP خواهیم پرداخت:
زیر سیستم داخلی سری C674x :
زیر سیستمهای اصلی سری ۶۰۰۰ شامل بخشهای زیر میباشند که اصطلاحا به این زیر سیستمها مگا ماژول هم گفته میشود .
فضای حافظه در پردازنده سری 674x به صورت زیر میباشد.پردازنده های سری 6000 دارای حافظه فلش از نوع داخلی نیستند و باید از فلش خارجی برای ذخیره سازی کد استفاده نمود.
C674x DSP CPU
• 32KB L1 Program (L1P)/Cache (up to 32KB)
• 32KB L1 Data (L1D)/Cache (up to 32KB)
• 256KB Unified Mapped RAM/Cache (L2)
• Boot ROM (cannot be used for application code)
• Little endian
واحد پردازش مرکزی (CPU) C674x از هشت واحد عملکردی، دو رجیستر فایل و دو مسیر داده همانطور که در شکل زیر مشاهده میکنید تشکیل شده است .
دو رجیستر همه منظوره A و B هرکدام شامل ۳۲ رجیستر ۳۲ بیتی و در مجموع ۶۴ رجیستر میباشد. رجیسترهای همه منظوره میتوانند به عنوان نگه دارنده داده ها و یا اشاره گرهایی به ادرس داده ها استفاده شوند.
انواع داده های پشتیبانی شده شامل داده های بسته بندی شده 8 بیتی، داده های بسته بندی شده 16 بیتی، داده های 32 بیتی، داده های 40 بیتی است.
مقادیر بزرگتر از 32 بیت مانند مقادیر 40 بیتی یا 64 بیتی در جفت رجیستر، به این ترتیب که ۳۲ بیت کم ارزش در یک رجیستر زوج و ۸ یا ۳۲ بیت باقی مانده در رجیستر بالایی بعدی (که همیشه یک رجیستر با عدد فرد است) قرار میگیرند.
هشت واحد عملکردی (.M1، .L1، .D1، .S1، .M2، .L2، .D2، و .S2) هر کدام قادر به اجرای یک عملیات در هر سیکل ماشین هستند .تمامی عملیاتهای ضرب توسط واحد .Mانجام میشود.
وظیفه واحدهای .S و .L اجرای توابع حسابی، منطقی و انشعاب ها میباشد.
واحدهای .D در درجه اول داده ها را از حافظه به فایل رجیستر و سپس نتایج را از فایل رجیستر به حافظه انتقال میدهد.
هر واحد عملیاتی .Mمیتواند یکی از عملیاتهای زیر را در هر سیکل ماشین اجرا کند:
یک ضرب ۳۲ بیتی در ۳۲ بیتی
دو ضرب ۱۶ بیت در ۱۶ بیت
دو ضرب ۱۶ بیتی در ۳۲ بیتی
دو ضرب ۱۶ بیت در ۱۶ بیت به اضافه عملیات جمع و تفریق
چهار ضرب 8 × 8 بیتی، چهار ضرب 8 در 8 بیتی با عملیات جمع و چهار
ضرب 16×16 با قابلیت جمع/ تفریق (از جمله ضرب مختلط)
این واحد همچنین از عملیات ضرب ۸ بیتی یا ۳۲ بیتی در میدان گالویس نیز پشتیبانی میکند.
بسیاری از الگوریتمهای مخابراتی و پردازش سیگنال به ضرب اعداد مختلط نیاز دارند.دستورالعمل ضرب مختلط (CMPY) چهار ورودی 16 بیتی به عنوان ورودی دریافت و یک خروجی حقیقی 32 بیتی و یک خروجی موهومی 32 بیتی تولید می کند.
امکان انجام ضربهای مختلط با قابلیت رند کردن نتیجه هم امکانپذیر میباشد. در این حالت یک خروجی ۳۲ بیتی که حاوی مقادیر حقیقی ۱۶ بیتی و ۱۶ بیتی موهومی است تولید میشود.
دستورالعملهای ضرب ۳۲ بیت در ۳۲ بیت، دقتی مضاعف را که برای الگوریتمهای با دقت بالا روی انواع دادههای ۳۲ بیتی علامتدار و بدون علامت لازم است، فراهم میکند.
واحد .L (یا واحد منطق حسابی) اکنون توانایی انجام عملیات جمع/تفریق موازی روی یک جفت ورودی مشترک را در خود جای داده است.
نسخههای این دستورالعمل برای کار روی دادههای ۳۲ بیتی یا روی جفت دادههای ۱۶ بیتی وجود دارد که دوعمل جمع و تفریق ۱۶ بیتی را به صورت موازی انجام میدهند.
هسته C674x عملکرد واحد .S را از طرق مختلف بهبود بخشیده است. در هسته های قبلی، توابع مقایسه کننده دوگانه MIN2 و MAX2 ۱۶ بیتی فقط در واحدهای .L موجود بود. در هسته C674x این توابع در واحد .S نیز قرار داده شده اند که عملکرد الگوریتم هایی جستجو و مرتب سازی را افزایش داده است.
لازم به ذکر است دانستن این جزئیات در بدو شروع به کار با DSP ها ضرورتی ندارد و صرفا جهت آشنایی شما با DSP ها ذکر شده است بیشتر این کارها توسط کامپایلرهای DSP انجام میپذیرد و شما تنها نیاز است الگوریتمهای خود را به زبان c یا ++C بنویسید الباقی کار بر عهده کامپایلر خواهد بود.
سری ۲۰۰۰ :
پردازنده های سری ۲۰۰۰ با معماری 32 بیتی، پردازش DSP و کنترل پیشرفته واحدهای جانبی عملکرد بینظیری را برای انواع برنامههایی که به کنترل بلادرنگ نیاز دارند مانند کنترل موتور، منابع تغذیه دیجیتال، انرژیهای خورشیدی و تجدیدپذیر، سیستمهای روشنایی و نورپردازی LED، شبکه های هوشمند، رادار و غیره را امکانپذیر میسازد.
پردازنده های سری ۲۰۰۰دارای هسته tms320c28xxمیباشند و کلیه اعضای این سری حول هسته c28xx توسعه یافته اند. هستهc2000 دارای یک DSP ۳۲ بیتی، واحد ضرب سخت افزار ۳۲ بیتی در ۳۲ بیتی سینگل سایکل و اجرای دستورالعمل اتمیک در یک سیکل ماشین هستند.
هسته C28x همچنین شامل شتابدهندههای سختافزاری مانند واحد Viterbi که وظیفه انجام محاسبات عملیاتهای ریاضی با اعداد مختلط که به عنوان مثال به صورت گسترده در الگوریتمهای ارتباطی از طریق خطوط قدرت کاربرد دارد و یا واحد اختصاصی انجام محاسبات مثلثاتی که برای تسریع عملکردهای مثلثاتی رایج در بسیاری از الگوریتمهای کنترل موتور مورد نیاز است را دارا میباشد.
یکی از ویژگیهای جدید که به سری ۲۰۰۰ اضافه شده است پردازشگر بلادرنگ با نام CLA می باشد، و در واقع یک CPU مستقل از هسته اصلیست و متواند وظایفی را مستقل از هسته اصلی C28x انجام دهد. با استفاده از CLA میتوان پهنای باند هسته C28x را با بارگذاری وظایف ریاضی یا کارهای موازی دیگر در CLA افزایش داد.
همچنین قرار دادن ویژگیهای خاص و ویژه در پرفرالهای جانبی مانند PWM مبدلهای انالوگ به دیجیتال با عملکرد غیر موازی, واحدهای کپچر بهبود یافته و معماری منحصر بفرد برای قرار گیری سیتمهای کنترلری سریعتر و امن تر از ویژگیهای جدید و خاص پردازنده های سری ۲۰۰۰ تگزاس اینسترومنت میباشد.
در قلب میکروکنترلرهای C2000 یک طراحی متمرکز بر کاربرد وجود دارد. بسیاری از ویژگی های منحصر به فرد برای بهبود عملکرد کاربردهای الکترونیک قدرت گنجانده شده است.در واقع اگر قصد طراحی و تولید یک محصول مبتنی بر الکترونیک قدرت مانند انواع درایورها,منابع تغذیه دیجیتال, اینورترها, سافت استارترها و بسیاری سیستمهای کنترلر را دارید بدون هیچ شکی بهترین انتخاب سری ۲۰۰۰ تگزاس اینسترومنت میباشد.
پردازنده های خانواده ۲۰۰۰:
خانواده پیکولو ,میکروکنترلرهای کاملا یکپارچه برای کنترل فرایندها در زمان واقعی برای مصارف الکترونیک قدرت که نیازمند هزینه پایین میباشد کاملا مناسب هستند.این میکروکنترلرها قیمت پایه ای نزدیک به ۲ دلار دارند که نسبت به عملکرد ارائه شده قیمت بسیار مناسبی میباشد.
این سری از خانواده ۲۰۰۰ با عملکرد بهینه کنترل شده، تجهیزات جانبی تخصصی، و معماری متمرکز بر کنترل، راه حل های نوآورانه ای را برای حل چالش های کنترلی سخت ارائه می دهد.
Delfino microcontrollers
خانواده دلفینو که پردازنده های f281x,f2833x و f2837x از معروفترین پردازنده های این دسته هستند میکروکنترلرهای پیشرو برای رفع نیازهای کنترل با عملکرد بسیار بالا میباشند.
این خانواده دارای پردازنده های تک هسته ای تا سرعت ۳۰۰ مگاهرتز و پردازنده های دو هسته ای با عملکرد ترکیبی تا ۴۰۰ مگاهرتز هستند. این خانواده همچنین دارای واحدهای PWM با عملرد بالا و بدون رقیب میباشد.
ADCهای با دقت بالا و زمان پاسخ دهی سریع از دیگر ویژگی های سری دلفینو میباشد.
سری دلفینو به راحتی از عهده چالش برانگیزترین سیستمهای کنترلی در صنعت بر می آید. قیمت این سری از پردازنده های از ۱۰ دلار شروع میشود.
F28M3x Microcontrollers
این دسته از میکروکنترلرهای سری ۲۰۰۰ با ترکیب هسته ارم کورتس M3و هسته c28x و قراردادن آنها در یک MCU سری F28M3xرا به وجود آوردند. ارتباطات و کنترل بلادرنگ واقعی بدون ایجاد وقفه در عملکرد کنترل یا ارتباطات.
کلام پایانی
دنیای امروز یک دنیای دیجیتال میباشد به هر سمت و سو که بنگرید اثری از پردازشگرها را مشاهده میکنید چه میکروکنترلرها چه FPGA ها و چه پردازنده های سیگنال دیجیتال DSP که هرکدام وظایف خاصی را برعهده گرفته و انجام میدهند در این میان هرجا که نیاز به پردازش سیگنالهای دیجیتال با دقت بالا سرعت زیاد و مصرف توان پایین و قیمت تمام شده متناسب با کاربرد مورد نیاز باشد بدون شک ردپایی از یک پردازنده سیگنال دیجیتال خواهید دید .
شما به عنوان یک مهندس الکترونیک فعال در حوزه دیجیتال بایستی توانایی کار با DSP ها چه طراحی سخت افزار مربوطه و چه برنامه نویسی و پیاده سازی الگوریتمهای پردازشی را بر روی DSP ها داشته باشید که این توانایی یک نقطه قوت بسیار تعیین کننده در راستای فعالیت شما به عنوان یک مهندس الکترونیک خواهد بود.
با توجه به پیشرفت روز افزون تجهیزات صنعتی پزشکی تجاری نظامی و فضایی توانایی کار با پردازنده های سیگنال دیجیتال به عنوان برگ برنده برنامه نویسان و طراحان الکترونیک خواهد بود.ما در مجموعه جهان پردازش نوین سعی داریم تجربه چندین ساله خود را در زمینه فعالیت در حوزه پردازنده های سیگنال دیجیتال با علاقه مندان به اشتراک گذاشته و دوره های آموزشی با تمرکز بر روی کار عملی و نیازهای بازار کار ارائه نماییم این دوره ها شامل اشنایی با پردازنده های سیگنال دیجیتال هم در زمینه برنامه نویسی و هم طراحی سخت افزار خواهد با ما همراه باشید و به دنیای پردازنده های سیگنال دیجیتال قدم بگذارید.

