• پردازشگرهای سیگنال دیجیتال: اصول انتخاب DSP ها

    پردازنده سیگنال دیجیتال

    DSP (Dدیجیتال اسسیگنال پ rocessor) (ترجمه شده از انگلیسی به معنای پردازشگر سیگنال دیجیتال (DSP) یا به آن ریزپردازنده سیگنال (SMP) نیز گفته می شود که معماری آن برای نیازهای عملیاتی پردازش سیگنال دیجیتال بهینه شده است) - یک ریزپردازنده تخصصی که ویژگی آن یک طبیعت جریانی که حجم زیادی از داده ها را در زمان واقعی پردازش می کند و معمولاً با تبادل داده های فشرده با دیگران دستگاه های خارجی. (برای تبدیل سیگنال هایی که به صورت اعداد نشان داده می شوند، معمولاً در زمان واقعی مورد نیاز است).

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

    شرح

    هدف DSP

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

    سیستم پردازش دیجیتال معمولی

    پردازش دیجیتال

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

    مزایای DSP

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

    معماری

    معماری پردازنده سیگنال دیجیتال به ویژه برای پردازش سیگنال دیجیتال بهینه شده است. برخی از عملکردها، مانند یک پردازنده برنامه یا یک میکروکنترلر، نیز بیشترین پشتیبانی را دارند، زیرا پردازش سیگنال به ندرت تنها وظیفه یک سیستم است. مقداری ویژگی های مفیدبهینه‌سازی الگوریتم DSP در زیر توضیح داده شده است.

    معماری و ویژگی های آن

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

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

    1. "ضرب با تجمع" (معمولاً در سخت افزار پیاده سازی می شود و در یک چرخه ماشین انجام می شود) (M = M + X × Y)، که در آن M، X و Y عناصر آرایه های واقعی با محاسبه خودکار آدرس های عناصر آرایه هستند. (مک)
    2. اجرای سخت افزاری از تکرار مکرر مجموعه ای از دستورالعمل ها.
    3. استفاده از چندین پورت دسترسی به حافظه DSP برای انتخاب همزمان (در یک چرخه ماشین) دستورالعمل ها و دو آرگومان عملیاتی برای ضرب سریع با انباشت.
    4. قابلیت پردازش بردار خط لوله با استفاده از مولدهای دنباله آدرس.

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

    معماری نرم افزار

    بر اساس استانداردهای پردازنده همه منظوره، سیستم های دستورالعمل DSP اغلب نادرست هستند. یکی از مفاهیم معماری نرم‌افزار این است که روال‌های کد اسمبلی بهینه‌سازی شده با دست معمولاً برای استفاده مجدد به جای تکیه بر فناوری‌های کامپایلر پیشرفته برای پردازش الگوریتم‌های ضروری، در کتابخانه‌ها بسته‌بندی می‌شوند.

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

    معماری سخت افزار

    معماری حافظه

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

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

    آدرس دهی و حافظه مجازی

    DSPS اغلب از سیستم عامل های چندوظیفه ای استفاده می کند، اما هیچ پشتیبانی از حافظه مجازی یا حفاظت ندارد. سیستم عامل هایی که استفاده می کنند حافظه مجازی، نیاز بیشترزمان برای جابجایی بین فرآیندها، که تاخیر را افزایش می دهد.

    • سخت افزار آدرس دهی ماژول
      • امکان اجرای بافرهای دایره ای، بدون نیاز به آزمایش برای بسته بندی را فراهم می کند
    • آدرس دهی معکوس کمی، راه خاصخطاب به
    • استثناء بلوک مدیریت حافظه
    • ماژول محاسبه آدرس حافظه

    مثال ها: TMS320Cхххх, ADSP-21XX

    برنج. 1. معماری پردازنده های خانواده ADSP-218x

    ویژگی های DSP

    ویژگی های بارز DSP (DSP):

    • حافظه دسترسی تصادفی، حافظه فقط خواندنی.
    • رابط های سریال و موازی.
    • طرح مدیریت وقفه؛
    • نقطه کنترل مرکزی برای عملیات ریاضی بی‌درنگ تکراری بهینه شده است.

    پارامترهای اصلی DSP

    پارامترهای اصلی DSP:

    1. نوع حسابی (ثابت/مقطع شناور).
    2. عمق بیت داده (به ترتیب برای ثابت / شناور - 16/32 بیت).
    3. کارایی.
    4. فرکانس ساعت (داخلی و/یا خارجی) و زمان چرخه فرمان (زمان اجرای یک مرحله از دستور).
    5. تعداد دستورات اجرا شده در واحد زمان.
    6. تعداد عملیات انجام شده در واحد زمان (MIPS).
    7. تعداد عملیات ممیز شناور انجام شده در واحد زمان.
    8. تعداد عملیات ضرب و انباشت انجام شده در واحد زمان.
    9. انواع (رم و فلش مموری) و مقدار حافظه داخلی (میزان داده ای که DSP می تواند بدون دسترسی پردازش کند حافظه خارجی).
    10. مقدار حافظه قابل آدرس دهی
    11. تعداد و پارامترهای پورت های ورودی-خروجی.
    12. ترکیب دستگاه های اضافی داخلی (تایمر، کمپرسور و غیره).
    13. ولتاژ تغذیه و مصرف برق.
    14. ترکیب و عملکرد ابزارهای توسعه و پشتیبانی.
    15. لیست زبان های برنامه نویسی که کامپایلرهای این سیستم برای آنها وجود دارد.
    16. در دسترس بودن و قابلیت های ابزارهای اشکال زدایی برای برنامه های تمام شده؛
    17. در دسترس بودن اسناد و پشتیبانی فنی؛
    18. در دسترس بودن کتابخانه های روال استاندارد و توابع ریاضی.
    19. در دسترس بودن، در دسترس بودن و قابلیت های دستگاه های سازگار - ADC، DAC، کنترل کننده های قدرت و غیره.
    20. پارامترهای محیطی مجاز
    21. بقیه بسته به مقصد.

    برنامه های کاربردی

    حوزه های بسیار کمی از کاربرد DSP ها وجود دارد.

    برنامه های کاربردی DSP:

    1. ارتباطات (کدگذاری اطلاعات و/یا چندگانه سازی کانال (طیفی))
    2. شناخت چیزی
    3. آنالایزر طیف (دستگاهی برای مشاهده و اندازه گیری توزیع نسبی انرژی نوسانات الکتریکی (الکترومغناطیسی) در باند فرکانسی) و غیره.

    اغلب، اینها مناطقی هستند که پردازش با سرعت بالا هر سیگنال (اطلاعات) ضروری است.

    داستان

    قبل از وجود تراشه‌های DSP، بسیاری از برنامه‌های DSP با استفاده از ریزپردازنده‌های مقطعی پیاده‌سازی می‌شدند. تراشه BS (کریستال ماژولار بیتی) AMD 2901 با مجموعه ای از اجزای خود محبوب بود. AMD نیز مدل های مشابهی را ایجاد کرد، با این حال، ویژگی های مشخصه یک طراحی خاص اغلب یافت می شد. این معماری های مقطعی در مواقعی حاوی یک تراشه چند برابر کننده محیطی بودند. نمونه‌هایی از این ضرب‌کننده‌ها تعدادی از TRW بودند، از جمله TDC1008 و TDC1010، که برخی از آن‌ها دارای یک انباشته بودند که تابع ضرب-انباشتگی (MAC) لازم را فراهم می‌کردند.

    در سال 1976 ریچارد ویگینز مفهوم «صحبت و املا» را در مرکز تحقیق و توسعه تگزاس اینسترومنتز در دالاس به پل بردلو، لری برانتینگهام و جین فرانتس ارائه کرد. دو سال بعد، در سال 1978، آنها اولین "Speak & Spell" را با هسته فناوری TMS5100 به عنوان اولین پردازنده سیگنال دیجیتال صنعت ایجاد کردند. همچنین مراحل دیگری را هدایت کرد و اولین تراشه ای بود که از کدگذاری پیش بینی خطی برای انجام سنتز گفتار استفاده کرد.

    به نوبه خود، اینتل 1978. "پردازنده سیگنال آنالوگ" -2920 را تولید کرد. این شامل یک مبدل از آنالوگ به دیجیتال و بالعکس، بر روی یک تراشه با پردازنده سیگنال داخلی بود، اما ضریب سخت افزاری نداشت و در بازار مورد تقاضا نبود. در سال 1979م AMI یک دستگاه پردازش داده جانبی S2811 منتشر کرد. این به عنوان یک دستگاه رابط ریزپردازنده طراحی شده است که می تواند توسط مالک شخصی سازی شود. S2811 نیز به طور مشابه در بازار مورد تقاضا نبود.

    در سال 1980 اولین پردازنده مستقل پیاده‌سازی شد: DSP - NEC µPD7720 و AT&T DSP1 - در MK (کنفرانس بین‌المللی) مدارهای حالت جامد "80 ارائه شدند. این دو پردازنده الهام‌بخش تحقیقات در ارتباطات راه دور PSTN بودند.

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

    TMS32010، DSP دیگر تولید شده توسط Texas Instruments (TI) که در سال 1983 معرفی شد، موفقیت بزرگی بود. این بر اساس معماری هاروارد بود و به همین ترتیب بود آموزش فردیو حافظه داده او یک سیستم فرماندهی ویژه با دستورالعمل داشت: بار با انباشت یا ضرب با انباشت. او می دانست که چگونه روی اعداد 16 بیتی کار کند و 390 ns طول کشید تا در این ضرب شود. TI اکنون رهبر بازار در DSPهای عمومی است.

    DSP چیست؟

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

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

    برای نشان دادن این مفهوم، بلوک دیاگرام زیر را در نظر بگیرید که نشان می دهد چگونه یک پردازنده سیگنال دیجیتال در پخش کننده صوتی MP3 استفاده می شود. در مرحله ضبط، یک سیگنال صوتی آنالوگ از یک گیرنده یا منبع دیگر وارد سیستم می شود. این سیگنال آنالوگ توسط یک مبدل A/D به سیگنال دیجیتال تبدیل شده و به یک پردازنده سیگنال دیجیتال ارسال می شود. DSP به فرمت MP3 کد می کند و فایل را در حافظه ذخیره می کند. در مرحله پخش، فایل از حافظه بازیابی می شود، توسط DSP رمزگشایی می شود و توسط مبدل دیجیتال به آنالوگ به سیگنال آنالوگ تبدیل می شود که می تواند روی بلندگو پخش شود. در یک مثال پیچیده تر، پردازنده سیگنال دیجیتال ممکن است عملکردهای اضافی مانند کنترل صدا، جبران فرکانس و ارائه یک رابط کاربری را انجام دهد.

    اطلاعات تولید شده توسط پردازشگر سیگنال دیجیتال می تواند توسط یک کامپیوتر، به عنوان مثال، برای کنترل سیستم های امنیتی، تلفن، سیستم های سینمای خانگی یا فشرده سازی تصویر ویدئویی استفاده شود. سیگنال ها را می توان برای انتقال سریعتر و کارآمدتر از یک مکان به مکان دیگر فشرده (فشرده) کرد (به عنوان مثال، در سیستم های کنفرانس از راه دور برای انتقال تصاویر صوتی و تصویری از طریق خطوط تلفن). سیگنال‌ها همچنین می‌توانند برای بهبود کیفیتشان بیشتر پردازش شوند یا اطلاعاتی را ارائه کنند که در ابتدا برای ادراک انسان در دسترس نیست (مثلاً در کارهای لغو اکو در تلفن‌های همراه یا بهبود کیفیت تصویر رایانه). سیگنال های فیزیکی را می توان به شکل آنالوگ نیز پردازش کرد، اما پردازش دیجیتال کیفیت و عملکرد بهتری را ارائه می دهد.

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

    بیشتر اطلاعات دقیقبا مطالعه قسمت اول مقاله پردازش سیگنال دیجیتال 101 - مقدمه ای بر طراحی DSP با عنوان "چرا به پردازنده سیگنال دیجیتال نیاز دارم؟" از مزایای استفاده از DSP ها در پردازش سیگنال در دنیای واقعی مطلع شوید.


    داخل یک پردازنده سیگنال دیجیتال (DSP) چیست؟

    پردازنده سیگنال دیجیتال شامل اجزای کلیدی زیر است:

    • حافظه برنامه:شامل برنامه هایی است که پردازنده سیگنال دیجیتال برای پردازش داده ها استفاده می کند
    • حافظه داده:حاوی اطلاعاتی است که باید پردازش شوند
    • هسته محاسباتی:پردازش ریاضی را با دسترسی به برنامه موجود در حافظه برنامه و داده های موجود در حافظه داده انجام می دهد
    • زیر سیستم I/O:طیف وسیعی از توابع را برای ارتباط با دنیای خارج پیاده سازی می کند

    برای اطلاعات دقیق در مورد پردازنده های دستگاه های آنالوگ و میکروکنترلرهای دقیق، از شما دعوت می کنیم منابع زیر را مرور کنید:

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

    • - بررسی فن آوری ها و سوالات کاربردی عملی
    • مجموعه ای از مقالات در مجله آنالوگ دیالوگ: (به زبان انگلیسی)
      • بخش 1: چرا به یک پردازنده سیگنال دیجیتال نیاز دارید؟ معماری پردازنده سیگنال دیجیتال و مزایای پردازش سیگنال دیجیتال نسبت به مدارهای آنالوگ سنتی
      • قسمت 2: درباره فیلترهای دیجیتال بیشتر بدانید
      • بخش 3: پیاده سازی الگوریتم ها بر روی یک پلت فرم سخت افزاری
      • بخش 4: ملاحظات برنامه نویسی برای پشتیبانی بلادرنگ I/O
    • : کلمات پرکاربرد و معنی آنها

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

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

    هنگام انتخاب کفش می خواهیم شیک، راحت و کیفیت بالابنابراین، ما به مارک های شناخته شده ترجیح می دهیم، آن دسته از شرکت هایی که قبلاً به خوبی شناخته شده اند و از آخرین مکان های موجود در بازار فاصله دارند. اکنون باید تصمیم بگیریم: چرا به این کفش ها نیاز داریم؟ اگر برای دویدن صبحگاهی هستید، پس بهتر است کفش های کتانی بخرید، و برای یک عصر شرکتی - کفش. در کوهستان چه بپوشیم؟ در این مورد، شما نیاز به کفش های خاص قوی با کف سخت - ویبرم دارید. مشکل DSP چیست؟ هنگام انتخاب یک پردازنده سیگنال دیجیتال، بد نیست که بازار DSP موجود را معرفی کنید، سازنده های اصلی و جهت گیری های توسعه پردازنده هایی را که ایجاد می کنند، بشناسید.

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

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

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

    در عین حال، برای سیستم‌های هیدروآکوستیک یا راداری، پارامترهای تعیین‌کننده سرعت عملیات، در دسترس بودن رابط‌های پرسرعت و یک سیستم توسعه مناسب است و هزینه یک معیار ثانویه است. علاوه بر این، در بسیاری از موارد منطقی است که جایگاهی را در بازار که توسط تامین کننده پردازنده اشغال شده است در نظر بگیریم، زیرا. همه تولیدکنندگان نمی توانند طیف وسیعی از پردازنده ها را در اختیار شما قرار دهند که تمام نیازهای شما را پوشش دهد. توزیع فعلی بازار در میان تامین کنندگان پیشرو (به جدول 1 مراجعه کنید) نشان می دهد که 4 شرکت در بالای لیست بیش از 80٪ از تمام DSP های مورد استفاده در جهان را تامین می کنند. این شرکت ها شناخته شده ترین هستند بازار روسیه، و محصولات آنها اغلب ذکر می شود.

    جدول 1. تولیدکنندگان عمده DSP و سهم بازار آنها

    شرکت های پیشرو در بازار نام شرکت سهم بازار DSP
    1 تگزاس اینسترومنتز 54,3%
    2 نیمه هادی مقیاس آزاد 14,1%
    3 دستگاه های آنالوگ 8,0%
    4 نیمه هادی های فیلیپس 7,5%
    5 سیستم های Agere 7,3%
    6 توشیبا 4,9%
    7 گروه DSP 2,2%
    8 NEC Electronics 0,6%
    9 فوجیتسو 0,4%
    10 اینترسیل 0,3%
    سایر شرکت ها 0,5%
    جمع 100,0%

    لازم به یادآوری است که سازندگان DSP هنگام طراحی ریز مدارهای جدید، کاملاً واضح آنها را برای استفاده در برنامه های مختلف قرار می دهند. این امر بر معماری آنها و عملکرد و تجهیز پردازنده به مجموعه ای از ماژول های جانبی تأثیر می گذارد. جدول 2 موقعیت DSP ها را از دیدگاه سازندگان آنها نشان می دهد.

    جدول 2. کاربردهای خانواده پردازنده سیگنال از سازندگان مختلف

    پردازش ویدئو، نظارت تصویری، دوربین های دیجیتال، گرافیک سه بعدی TMS320DM64x/DaVinci، TMS320C64xx، TMS320C62xx (TI)، PNX1300، PNX1500، PNX1700 (Philips)، MPC52xx (مقیاس آزاد)
    پردازش صدا، تشخیص گفتار، سنتز صدا TMS320C62xx، TMS320C67xx (TI)، SHARC (دستگاه‌های آنالوگ)
    دستگاه های رسانه ای قابل حمل TMS320C54xx، TMS320C55xx (TI)، Blackfin (دستگاه‌های آنالوگ)
    بی سیم، مخابرات، مودم، دستگاه های شبکه TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC II Pro, MPC85xx PowerQUICC II Pro, MPC85xx PowerQUICC,Blacke 300 (لب فی)
    کنترل درایو، تبدیل قدرت، الکترونیک خودرو، اقلام خانگی، تجهیزات اداری TMS320C28xx، TMS320C24xx (TI)، ADSP-21xx (دستگاه‌های آنالوگ)، MPC55xx، MPC55xx (مقیاس آزاد)
    پزشکی، بیومتریک، سیستم های اندازه گیری TMS320C62xx، TMS320C67xx، TMS320C55xx، TMS320C28xx (TI)، TigerSHARC، SHARC (دستگاه‌های آنالوگ)

    قالب داده و عمق بیت

    یکی از ویژگی های اصلی پردازنده های سیگنال دیجیتال، فرمت داده های پردازش شده است. همه DSP ها با اعداد صحیح یا اعداد ممیز شناور کار می کنند، با عرض اعداد صحیح 16 یا 32 بیت و بیت های ممیز شناور 32. هنگام انتخاب فرمت داده، موارد زیر را در نظر داشته باشید: DSP هایی با داده های عدد صحیح (یا داده های نقطه ثابت) معمولاً ارزان‌تر است و دقت مطلق بیشتری را با عمق بیت برابر ارائه می‌دهد (زیرا همه 32 بیت در یک پردازنده نقطه ثابت 32 بیتی و فقط 24 بیت در یک پردازنده ممیز شناور به مانتیس اختصاص داده می‌شوند).

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

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

    البته، می‌توانید عملیات ممیز شناور روی یک پردازنده را با محاسبه اعداد صحیح شبیه‌سازی کنید یا به پردازش اعداد دو رقمی بروید، اما این نیز برنامه را تا حد زیادی پیچیده می‌کند و عملکرد را به میزان قابل توجهی کاهش می‌دهد.

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

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

    سرعت

    پارامتر اصلی هنگام انتخاب پردازنده سرعت است. بر زمان پردازش سیگنال ورودی تأثیر می گذارد و بنابراین حداکثر فرکانس آن را تعیین می کند. یکی از رایج ترین اشتباهات توسعه دهندگان، شناسایی فرکانس ساعت و عملکرد است که در بیشتر موارد اشتباه است. اغلب، سرعت DSP در MIPS (میلیون ها دستورالعمل در ثانیه) نشان داده می شود. این پارامتر ساده ترین اندازه گیری است.

    با این حال، مشکل مقایسه سرعت DSP های مختلف این است که پردازنده ها دارند سیستم های مختلفدستورات، و برای اجرای همان الگوریتم پردازنده های مختلفتعداد متفاوتی از این دستورات مورد نیاز است. علاوه بر این، گاهی اوقات به منظور تیم های مختلفیک پردازنده به تعداد چرخه های ساعت متفاوتی نیاز دارد. در نتیجه، یک پردازنده با سرعت 1000 MIPS ممکن است چندین برابر کندتر از یک پردازنده با سرعت 300 MIPS باشد، به خصوص با عمق بیت های مختلف.

    یکی از راه حل های این مشکل، مقایسه پردازنده ها بر اساس سرعت انجام برخی عملیات، مانند عملیات چند برابری انباشته (MAC) است. سرعت چنین عملیاتی برای الگوریتم هایی که استفاده می کنند بسیار مهم است فیلتر دیجیتال، همبستگی و تبدیل فوریه. متأسفانه چنین تخمینی نیز اطلاعات کاملی در مورد سرعت واقعی پردازنده ارائه نمی دهد.

    دقیق ترین تخمین سرعت اجرای الگوریتم های خاص است - به عنوان مثال، فیلتر FIR و IIR، اما این نیاز به توسعه برنامه های مناسب و تجزیه و تحلیل کامل نتایج آزمون دارد.

    شرکت هایی درگیر تجزیه و تحلیل و مقایسه پردازنده ها از نظر ویژگی های اساسی از جمله سرعت هستند. رهبر در میان چنین شرکت هایی BDTI - Berkeley Design Technology, Inc. (www.bdti.com). به عنوان مثال، شکل 1 مقایسه سرعت DSP های مدرن از سازندگان مختلف را نشان می دهد.

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

    سازماندهی حافظه

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

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

    اکثر DSP های نقطه ثابت مورد استفاده در برنامه های جاسازی شده به مقدار کمی حافظه داخلی، معمولاً 4 تا 256 کیلوبایت، و گذرگاه های داده خارجی کوچک نیاز دارند.

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

    سهولت توسعه اپلیکیشن

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

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

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

    بهترین نتایج هنگام کامپایل برنامه ها در HLL برای پردازنده های VLIW (پردازنده هایی با یک کلمه دستورالعمل طولانی) با یک سیستم دستورالعمل ساده متعامد RISC و فایل های ثبت بزرگ به دست می آید. با این حال، حتی برای این پردازنده ها، کد تولید شده توسط کامپایلر کندتر از کد اسمبلر بهینه شده دستی است. از سوی دیگر، توانایی شبیه‌سازی فرآیند پردازش سیگنال در برنامه‌ای مانند MathLab با ترجمه خودکار بیشتر به یک برنامه برای DSP به شما امکان می‌دهد از بسیاری از خطاهای جدی در مرحله اولیه توسعه خلاص شوید.

    اشکال زدایی برنامه های تمام شده را می توان بر روی یک شبیه ساز سخت افزاری سیستم تمام شده یا بر روی یک شبیه ساز نرم افزاری انجام داد. معمولاً اشکال زدایی در یک شبیه ساز از نظر سخت افزار استفاده شده تا حدودی ساده تر است، اما همه خطاهای احتمالی را آشکار نمی کند. تقریباً همه سازندگان هم شبیه سازها و هم شبیه سازهای DSP خود را در اختیار توسعه دهندگان قرار می دهند. تقریباً تمام DSPهای مدرن از شبیه سازی درون مدار مطابق با استاندارد IEEE 1149.1 JTAG پشتیبانی می کنند. هنگام استفاده از فناوری JTAG، ما از شبیه سازی CPU توسط یک دستگاه خارجی به سمت کنترل مستقیم CPU در طول اجرای برنامه حرکت می کنیم، که به ما امکان می دهد درجه انطباق طرح با دستگاه واقعی را به میزان قابل توجهی افزایش دهیم و بنابراین، قابلیت اطمینان را افزایش دهیم. فرآیند اشکال زدایی

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

    مصرف انرژی

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

    تخمین مصرف انرژی کار ساده ای نیست، زیرا این مقدار بسته به وظایف انجام شده توسط پردازنده متفاوت است. متأسفانه اکثر تولیدکنندگان فقط مصرف «معمولی» و «حداکثر» را منتشر می کنند و منظور از این تعاریف همیشه روشن نیست. استثنا Texas Instruments است که مصرف انرژی را بر اساس نوع دستورالعمل و پیکربندی پردازنده فهرست می کند.

    قیمت

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

    روش انتخاب پردازنده

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

    به عنوان مثال، برای اجرای یک برنامه، سرعت، قیمت، کارایی حافظه و مصرف انرژی در درجه اول برای ما مهم است. ما رقبای برتر را شناسایی کرده ایم، از جمله DSP های C64x و C64x+ از Texas Instruments و TigerSHARC از دستگاه های آنالوگ. شکل 2 نمودار را نشان می دهد ویژگی های مقایسه ایاین پردازنده ها با توجه به معیارهای سرعت، هزینه، توان مصرفی و راحتی ابزارهای توسعه.


    برنج. 2. نمودار برای انتخاب DSP

    حالا اولویت ها اگر ابتدا نیاز داشته باشیم سرعت بالاو قیمت پایین، ما Texas Instruments را انتخاب می کنیم. اگر در حال طراحی یک دستگاه تلفن همراه هستیم و نیاز به مصرف برق کم داریم و آماده ایم که سرعت را فدا کنیم، دستگاه های آنالوگ را می گیریم. این امکان وجود دارد که پردازنده های انتخاب شده از نظر پارامترهای کلیدی بسیار نزدیک باشند. در این مورد، انتخاب با ویژگی های غیر بحرانی تعیین می شود: در دسترس بودن ابزارهای اشکال زدایی، تجربه قبلی توسعه دهنده، در دسترس بودن اجزا و غیره.

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

    ادبیات

    1. جف بیر، انتخاب یک پردازنده: معیارها و فراتر از آن (S043)، برکلی، کالیفرنیا: فناوری طراحی برکلی، شرکت، ایالات متحده آمریکا، 2006.
    2. انتخاب یک پردازنده DSP، برکلی، کالیفرنیا: فناوری طراحی برکلی، شرکت، ایالات متحده آمریکا، 2000.

    امروزه، که در اواسط دهه هشتاد در میان مهندسان الکترونیک محبوب بود، صحبت در مورد میزان عقب ماندن الکترونیک شوروی از الکترونیک غربی قبلاً فراموش شده است. سپس آنها میزان توسعه الکترونیک را با توسعه پردازنده های رایانه های شخصی قضاوت کردند. "پرده آهنین" کار خود را انجام می داد، ما حتی نمی توانستیم تصور کنیم که الکترونیک شوروی نه یک یا دو سال، بلکه برای همیشه از محصولات غربی عقب مانده است.

    مهندسان معمولی شوروی که در بزرگترین سمینارهای حرفه ای الکترونیک جهان پذیرفته نشدند و از اسرار کشف شده توسط KGB مطلع نبودند، می توانستند توسعه الکترونیک را بر اساس برنامه Vremya و فیلم های هالیوود ده سال پیش قضاوت کنند. پس از هیجان گجت های الکترونیکی جیمز باند، این نتیجه گرفته شد که: همه اینها جلوه های ویژه سینما هستند. همه چیز بر روی ریزپردازنده های تخصصی ایجاد می شود (هیچ وقت مشخص نشده است که کدام یک). و اینکه "ما، در جایی که لازم است و چه کسی نیاز به داشتن چیزها و خنک تر دارد." پس از چنین نتیجه گیری های متفکرانه ای، مهندسان شوروی، با انگیزه خلاقانه جدیدی در مؤسسات تحقیقاتی خود، به خلق شاهکارها بر روی 155 ریزمدار TTL یا نزدیک ترین به مجتمع نظامی-صنعتی، در سری 133 ادامه دادند.

    با شرمندگی، باید اعتراف کنم که تا اواسط دهه نود نیز به طور ضمنی به این موضوع اشاره می‌کردم که پردازنده‌های تخصصی چیزی کاملاً پیچیده و غیرقابل تصور هستند. اما، خوشبختانه، زمان تغییر کرده است و اولین پردازنده های تخصصی که من فرصت ملاقات با آنها را داشتم، پردازنده های سیگنال دیجیتال یا پردازنده های سیگنال (DSP، DSP - Digital Signal Processor) بودند.

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

    پردازنده های سیگنال در اوایل دهه 80 ظاهر شدند. اولین پردازنده سیگنال به طور گسترده شناخته شده TMS32010 DSP بود که در سال 1982 توسط Texas Instruments با عملکرد چندین MIPS (میلیون ها دستورالعمل در ثانیه) که با استفاده از فناوری 1.2 میکرون ایجاد شد، منتشر شد. به دنبال تگزاس اینسترومنتز، شرکت های دیگری شروع به تولید DSP کردند. در حال حاضر، تگزاس اینسترومنتز پیشرو در تولید DSP است، حدود نیمی از بازار این کنترلرها را در اختیار دارد. دومین تولید کننده بزرگ DSP ها Lucent Technologies است که حدود یک سوم از این دستگاه ها را تولید می کند. در پایان چهار دستگاه آنالوگ و موتورولا قرار دارند که سهم بازار تقریباً برابری دارند و با هم حدود یک چهارم کل DSP ها را تولید می کنند. تولیدکنندگان باقی مانده، اگرچه در میان آنها شرکت های مشهوری مانند سامسونگ، زیلوگ، اتمل و دیگران هستند، 5 تا 6 درصد باقی مانده از بازار پردازنده های سیگنال را به خود اختصاص می دهند.

    واضح است که پیشرو در میان تولید کنندگان، شرکت های پیشرو در این زمینه و در درجه اول تگزاس اینسترومنتز هستند. سیاست شرکت های پیشرو در تولید و ارتقاء پردازنده های سیگنال به طور قابل توجهی متفاوت است.

    تگزاس اینسترومنتز قصد دارد تا وسیع‌ترین طیف ممکن را تولید کند، که بتواند تمام کاربردهای ممکن پردازنده‌ها را با افزایش کارایی پوشش دهد. در حال حاضر، عملکرد پردازنده های سیگنال تا 8800 MIPS می رسد و در فناوری از 0.65 میکرون تا 0.1 میکرون ساخته می شوند. فرکانس ساعت به 1.1 گیگاهرتز می رسد.

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

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

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

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

    ویژگی های پردازنده های DSP

    پردازنده‌های سیگنال دارای محاسبات پرسرعت، انتقال و دریافت اطلاعات در زمان واقعی و معماری حافظه چندگانه هستند.

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

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

    ساخت حافظه با دسترسی چندگانه عمدتاً با استفاده از معماری هاروارد به دست می آید. معماری هاروارد به معماری اطلاق می شود که دارای دو گذرگاه داده از هم جدا شده فیزیکی است که امکان دسترسی همزمان به دو حافظه را فراهم می کند. اما برای انجام عملیات DSP، این به تنهایی کافی نیست، به خصوص زمانی که از دو عملوند در یک دستورالعمل استفاده می شود. بنابراین، معماری هاروارد با یک حافظه کش اضافه می شود تا دستورالعمل هایی را که دوباره استفاده می شود ذخیره کند. هنگام استفاده از حافظه نهان، گذرگاه آدرس و گذرگاه داده آزاد می مانند که امکان واکشی دو عملوند را فراهم می کند. چنین پسوندی - معماری هاروارد به اضافه کش - معماری توسعه یافته هاروارد یا SHARC (Super Harvard Architecture) نامیده می شود.

    ما ویژگی های خاص DSP را در خانواده DSP568xx در نظر خواهیم گرفت موتورولاکه ترکیبی از ویژگی های پردازنده های سیگنال دیجیتال و میکروکنترلرهای جهانی است.

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

    حافظه داخلی ممکن است شامل (برای خانواده):

    حافظه برنامه فلش تا 60K

    داده فلش تا 8K

    برنامه های رم تا 2K

    رم داده تا 4K

    فلش برنامه بوت 2K

    تعداد زیادی از دستگاه های جانبی بر روی ریزتراشه های خانواده پیاده سازی می شوند: ژنراتورهای PWM، ADC های 12 بیتی با نمونه برداری همزمان، رمزگشاهای چهارگانه، تایمرهای چهار کانال، کنترل کننده های رابط CAN، رابط های ارتباطی سریال دو سیمه، رابط های سریال، یک PLL قابل برنامه ریزی. ژنراتور برای تولید فرکانس ساعت هسته DSP و غیره

    خصوصیات عمومی

    عملکرد 40 MIPS در 80 مگاهرتز، ولتاژ تغذیه 2.7:3.6 ولت؛

    ضریب جمع کننده موازی تک چرخه 16x16.

    دو انباشته کننده 36 بیتی، از جمله بیت های پسوند.

    شیفتر چرخه ای 16 بیتی تک پایانی؛

    اجرای سخت افزاری دستورات DO و REP.

    سه گذرگاه داده 16 بیتی داخلی و سه گذرگاه آدرس 16 بیتی.

    یک گذرگاه رابط خارجی 16 بیتی؛

    پشته ای از برنامه های فرعی و وقفه هایی که هیچ محدودیتی برای عمق ندارند.

    تراشه های خانواده DSP568xx برای استفاده در دستگاه های ارزان قیمت، لوازم خانگی طراحی شده اند که به هزینه کم نیاز دارند و به پارامترهای فوق العاده بالا نیاز ندارند: سیمی و مودم های بی سیم، سیستم های انتقال بی سیمپیام‌رسان دیجیتال، منشی تلفن دیجیتال، دوربین‌های دیجیتال، کنترل‌کننده‌های اختصاصی و چند منظوره، کنترل‌کننده‌های سروو و موتور AC.

    به طور کلی، پردازنده های سیگنال قبلاً به مرحله ای از توسعه خود رسیده اند که می توانند در دستگاه هایی از ایستگاه های فضایی گرفته تا اسباب بازی های کودکان استفاده شوند.

    استفاده از پردازنده های سیگنال چقدر می تواند غیرمنتظره باشد، من باید در چندی پیش دقیقاً بر روی نمونه یک اسباب بازی مطمئن می شدم. یک بار یکی از دوستانم رو به من کرد و از من خواست که یک عروسک سخنگو را که دوستان آلمانی اش به دخترش داده بودند، درست کنم. عروسک، در واقع، فوق العاده بود، به گفته یکی از دوستان، او تا پنجاه عبارت را فهمید و "آگاهانه" مکالمه را ادامه داد. در آلمان صد و پنجاه مارک هزینه داشت که باعث شد فکر کنم والدین از شکستن یک عروسک بیشتر از فرزندشان پشیمان هستند. دختر خیلی عروسک را دوست داشت، به خصوص که قبل از خنگ شدن، آلمانی صحبت می کرد. بدون هیچ امیدی به موفقیت، تعمیر این عروسک را انجام دادم. با یک فایل، رزین اپوکسی را که مدار با آن پر شده بود، اره کردم و در زیر یک لایه ضخیم و ضخیم از اپوکسی، نیم دوجین بسته ریز مدار پیدا کردم که مرکز آن DSP برای DSP56F بود ... متأسفانه آخرین اعداد به طور غیرقابل برگشتی پاک شدند. امکان صحبت کردن عروسک وجود نداشت، و افسوس، من مشخص نکردم که پردازنده سیگنال چقدر به آن هوشمند اضافه کرده است. همانطور که بعداً مشخص شد، پسر بزرگ آشنایان من، برای اینکه عروسک بلندتر جیغ بزند، ابتدا به جای 3 ولت، 4.5 ولت ولتاژ به آن وصل کرد که هنوز "کشنده" نبود، و اگرچه اسباب بازی خس خس می کرد، اما جیغ زد اما بعد از 220 ولت ... . از این رو اولین نتیجه گیری تکنولوژی بالاخوب است، اما نه همیشه و نه همه جا. نتیجه دوم این است که به زودی، شاید بتوانیم DSP را در ظروف، کفش و لباس آشپزخانه ببینیم، حداقل هیچ مانع فنی برای این کار وجود ندارد.


    در حالی که کل بشریت مترقی (بخوانید - وابسته به رایانه شخصی) در یک انتظار طولانی برای مرسدس و سایر موارد عجیب و غریب و نویدبخش شاخص‌های عملکرد بی‌سابقه پردازنده‌ها منجمد شدند، بخش کوچک اما بیش از حد کنجکاو از افراد غیرمسئول دائماً به دنبال راه‌هایی برای دستیابی به عملکرد فوق‌العاده هستند. کامپیوترهای امروزی البته فردگرایی این «جنبش حزبی» متضمن مقادیر بسیار اندکی بودجه است که محبوبیت مرسدس هنوز کاملاً متولد نشده، اما از قبل بسیار گران قیمت در «محیط حزبی» را حذف می کند. شور و شوق قدرت با تأخیر در راه اندازی سونی پلی استیشن II، کاهش قیمت کل پردازنده های RISC از خانواده 64 بیتی MIPS و در نهایت، بحران متمایز در معماری رایانه های شخصی IBM تقویت می شود. در این شرایط، نامحسوس بودن یک خانواده گسترده از ریزپردازنده‌های کم‌هزینه با کارایی بالا، به نام DSP، که به‌طور جداگانه در «جدول رتبه‌ها» پردازنده قرار گرفته‌اند، بیش از حد عجیب به نظر می‌رسد. نمایندگان "DSP-clan" در زمینه معماری پردازنده بهترین راه حل ها (مورد انتظار در آینده دور در CPU های "رومیزی") را متمرکز می کنند و از نظر نسبت "مصرف برق / عملکرد" ​​(میلی وات / MIPS) به طور کلی به نظر می رسند. "بیگانه" واقعی بودن.

    DSP و DSP مفاهیم متفاوتی هستند

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

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

    تکرار دیگری در کلمات "دیجیتال" و "دیجیتال" مشاهده می شود که در ترکیب با "سیگنال" نشان می دهد که اطلاعات موجود در تغییرات "چیزی" قبلاً ذکر شده به صورت دیجیتال ارائه شده است.

    و در نهایت "پردازش" و "پردازنده" (معروف به روسی "پردازنده"): دنباله خاصی از اقدامات با همین اطلاعات انجام می شود و دستیابی به اهداف خاصی را دنبال می کند.

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

    شما می گویید: «بنابراین، هر ریزپردازنده معمولی را می توان DSP نامید. مطمئناً به این شکل نیست. قیاس ناپذیری «مقیاس‌های» زمانی دنیای واقعی (که DSPها برای آن طراحی شده‌اند) و صبر یا واکنش انسان (در استثنایی‌ترین موارد کمتر از 0.05 ثانیه است که دست طراحان ریزپردازنده‌های جهانی و «را آزاد می‌کند». سیستم عامل) - چنین تفاوت ظریف "کوچکی" منجر به "جدایی" عظیم در معماری ها، شاخص های عملکرد و برنامه های نمایندگان دو دنیای موازی DSP / CPU می شود.

    و در مورد PC چطور؟

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

    اما زمان در حال تغییر است - کامپیوترها کوچکتر و کوچکتر می شوند، آنها قبلاً در کف دست شما قرار می گیرند. بگذارید امروز آنها فقط اسباب بازی باشند - همه این نوت بوک های نه چندان راحت برای "افراد تجاری" و ویرایشگرهای متن کاملاً ناخوشایند (به طور دقیق تر، دست و پا چلفتی) با ورودی قلم - اما اسباب بازی ها از قبل قابل پوشیدن هستند! ما به آنها عادت می کنیم، دیگر متوجه آنها نمی شویم و با وجود همه ناراحتی ها، از توانایی های آنها در زندگی روزمره استفاده می کنیم. به عبارت دیگر، ما از قبل برای رایانه‌سازی «کوچک» خانگی آماده هستیم، اما رایانه‌ها هنوز آماده نشده‌اند (از این رو تمام ناراحتی‌های کف دست‌ها و رایانه‌های شخصی وجود دارد). در دسترس نبودن رایانه ها نه با درجه کم ادغام ریز مدارهای مورد استفاده در آنها، نه با عملکرد کم یا مصرف انرژی بالا مرتبط نیست. دلیل اصلی این در دسترس نبودن، به اصطلاح «اشتباه» است سطح بالا"، ریشه محکمی در ذهن توسعه دهندگان دارد: به دلایلی، همه فراموش کردند که یک رایانه پوشیدنی به "بخشی" از حامل آن تبدیل می شود و با آن در دنیای واقعی "زندگی" می کند! که پاسخ به سوال در مورد "درگیری کامپیوتر" است: از آنجایی که DSP ها بر روی پردازش سیگنال های دنیای واقعی متمرکز هستند و رایانه های شخصی پوشیدنی فقط در دنیای واقعی "زندگی می کنند"، پس ... درست است! Real PERSONAL ( بر اساس تعلق به یک "شخص"، و نه به عنوان یک انحصاری) کامپیوترها باید بر اساس DSP باشند، نه پردازنده هدف کلی.

    نمی شود

    شما به نقل از شخصی می گویید: «...زیرا پردازنده های تخصصی الزامات نرم افزارهای مدرن را برآورده نمی کنند». این کاملاً امکان پذیر است که نرم افزارهای مدرن هنوز به تلاش هایی برای همزیستی مسالمت آمیز برنامه های حالت محافظت شده (32 بیتی) و BIOS 16 بیتی (سیستم ورودی / خروجی اصلی) رایانه شخصی معماری IBM PC نیاز داشته باشند و به همین دلیل است. الزامات این است که یک ناسازگاری واقعی بین پردازنده‌های "سازگار" وجود داشته باشد (به تمام برنامه‌های افزودنی احتمالی سیستم فرمان از اینتل و AMD فکر کنید)، و در نهایت، به دلیل "مدرن بودن"، چنین چیز کوچکی مانند تحرک نرم‌افزار به شدت فراموش شده است، که باعث بسته شدن دایره باطل: "نقص پلت فرم - وابستگی به پلت فرم نرم افزار - بهبود پلت فرم به سطح جدیدی از نقص - حتی وابستگی بیشتر پلت فرم نرم افزار - ...".

    در واقع، DSPهای مدرن برای کار تحت کنترل سیستم‌عامل‌های چندوظیفه‌ای بلادرنگ و ایجاد شتاب‌دهنده‌های سه بعدی قدرتمند و پردازش اطلاعات صوتی/تصویری در زمان واقعی سازگار شده‌اند و خدا می‌داند برای چه. خودتان قضاوت کنید: DSP های خانواده 32 بیتی TMS320C6700 تگزاس اینسترومنت می توانند نمایش دیجیتالی سیگنال ها (یا به سادگی ضرب ماتریس های 4×4 در کارهای تجسم سه بعدی) را در 1 GFLOPS در فرکانس ساعت بیش از متوسط ​​167 مگاهرتز و قیمت در دسته های کوچک تا 250 دلار کاهش دهند. و DSP SHARC شگفت‌انگیز و ارزان (دستگاه‌های آنالوگ) با قیمت 10 دلار (در لات‌های بزرگ) 150 MFLOPS را می‌گیرد و فقط ... 0.3 V.

    ارقام، حقایق، تاریخ

    یک بار دیگر سعی خواهم کرد از خودم در برابر اتهامات احتمالی مبنی بر "بیرون کردن" شایستگی های یک فناوری بسیار تخصصی که برای هیچکس علاقه ای ندارد، دفاع کنم. وضعیت بازار نیمه هادی ها - بهترین شاخص چشم انداز یک فناوری خاص - گواه محبوبیت روزافزون DSP است: به عنوان مثال، در سال 1998، در پس زمینه کاهش کلی 10 درصدی فروش هر چیزی که در آن قرار می گیرد. در دسته "نیمه هادی ها"، بازار DSP های قابل برنامه ریزی جهانی 9٪ (به سطح 4 میلیارد دلار) و بسیار تخصصی - 15٪ (به ترتیب 5.3 میلیارد) رشد کرد. بنابراین می توان محبوبیت DSP را ثابت شده دانست. در عین حال، با در نظر گرفتن ویژگی های DSP، می توان با اطمینان در مورد تجلی واضح یک روند در نهایت "سالم" در محاسبات صحبت کرد: معرفی فعال به دنیای واقعی اطراف (در غیر این صورت چرا DSP؟).

    اگر اطلاعات بیش از اندازه کافی در مورد وضعیت بازارها وجود داشته باشد، تاریخچه DSP موضوعی است که ارزش مطالعه جداگانه ای دارد. با این حال، می‌توانید چیزی را در دنیای اینترنت پیدا کنید: عنوان یکی از دورترین اجداد DSPهای مدرن به درستی شایسته ریزپردازنده 8×300 است که به فراموشی سپرده شده است، که توسط SMS ساخته شده است (که بعداً 8×300 را به دیگری فروخت. ، شرکت شناخته شده تر، Signetics). 8×300 که در سال 1978 ظاهر شد، تقریباً بلافاصله فراموش شد و در سال 1979 اینتل تصمیم گرفت برای جایگزینی به «بازی‌های DSP» متصل شود. در زمان خود، Intel 2920 DSP دستگاهی شگفت‌انگیز بود که بر روی یک تراشه، هم مبدل آنالوگ به دیجیتال (ADC)، یک ریزپردازنده تخصصی و یک DAC (مبدل دیجیتال به آنالوگ) را ترکیب می‌کرد. در واقع، از دیدگاه مهندس توسعه، 2920 شبیه نوعی دستگاه آنالوگ با ویژگی های خودسرانه به نظر می رسید. DSP بسیار موفق بود، اگر نه برای یک "اما": DSP از اینتل بسیار کند بود (0.9 میکرو ثانیه طول کشید تا دستورات "سریعترین" در حداکثر فرکانس ساعت 2920 اجرا شوند، که در واقع از امکان استفاده از آن در هر کار واقعی). عملکرد بسیار ضعیف باعث شد که 2920 "قبل از تولد بمیرد" و این تجربه غم انگیز باعث شد اینتل برای مدت طولانی توسعه DSP را فراموش کند.

    پس از اینتل، Lucent Technologies و NEC وارد بازار DSP شدند و اولین DSP قابل برنامه ریزی را در سال 1980 معرفی کردند. در برابر این پیشینه تاریخی، به سختی قابل توجه به نظر می رسد که در سال 1978 تگزاس اینسترومنتز تراشه هایی برای اسباب بازی های "Speak & Spell" ("صحبت و گوش دادن") در مقادیر زیاد تولید کرد. با بررسی دقیق تر، مشخص شد که تگزاس اینسترومنتز با شروع تولید انبوه در مقیاس بزرگ اولین DSP های تخصصی از همه جلوتر بود. متعاقباً، در سال 1982، تگزاس اینسترومنتز (TI) اولین DSP TMS32010 قابل برنامه‌ریزی جهانی خود را معرفی کرد که معماری آن به یک ترند مطلق در بازار پردازش سیگنال دیجیتال تبدیل شد و خود TI به آنالوگ اینتل در دنیای پردازنده‌های رایانه شخصی تبدیل شد. امروزه فهرست اسامی سازندگان DSP های مختلف به سختی قابل شمارش است، کارشناسان بیش از 300 (!) معماری منحصر به فرد پیاده سازی شده "در سیلیکون" دارند، و حتی با فراموش کردن بازار DSP برای مدت طولانی، اینتل اعلام کرد که قصد دارد به طور مشترک توسعه نسل جدید DSP با دستگاه های آنالوگ.

    تکامل معماری

    فراوانی معماری‌های DSP قادر است هر ماندگاری را خنک کند، اما ... همه DSP‌ها به دلیل ویژگی‌های خاص خود، باید شرایط یکسانی را برآورده کنند. دشوار است که ویژگی های پردازنده های مشخصه وظایف پردازش سیگنال را منحصر به فرد بنامیم: حسابی بسیار سریع در اینجا مورد نیاز است (و کجا نیازی به آن نیست؟)، سرعت بالای تبادل پردازنده با دستگاه های خارجی که سیگنال های دنیای اطراف را به یک الکتریکی تبدیل می کنند. نمایش، و در نهایت، پهنای باند بالای حافظه زیرسیستم. بنابراین در واقعیت این الزامات خیلی خاص نیستند - این دقیقاً همان چیزی است که ما از رایانه های شخصی خود می خواهیم، ​​افزایش فرکانس گذرگاه سیستم، بهبود رابط های جانبی (به عنوان مثال، انتقال از PCI به PCI 2) و نصب ماژول های حافظه SDRAM.

    نکته دیگر این است که الگوریتم‌های پردازش سیگنال دارای کلیاتی هستند که باعث می‌شود تلاش‌های طراحان و معماران DSP برای حل مؤثر تعدادی از مشکلات خاص متمرکز شود. عملیات اولیه جمع و ضرب دو عدد - عملوند، نمایه سازی آرایه های داده و تاخیر برای پردازش دیجیتالی اساسی در نظر گرفته می شود. زیرگروه حسابی در این لیست (جمع و ضرب) کاملاً واضح است: برای انجام عملیات مربوطه، باید دو عملوند را در جایی ببرید، عملیات لازم را روی آنها انجام دهید و نتیجه را در یک "ذخیره سازی" موقت قرار دهید، سپس نتیجه را بنویسید. از این "ذخیره" به یک مکان خاص (سلول حافظه دسترسی تصادفییا ثبت پردازنده). با عملیات آدرس (آرایه های داده نمایه سازی)، وضعیت پیچیده تر است: DSP باید بتواند خیلی سریع داده ها را از آرایه های متوالی انتخاب کند و یک دستورالعمل کپی حافظه به حافظه را اجرا کند که در پردازنده های RISC (و CISC) نادر است. عملیات تاخیر، علیرغم نام "وحشتناک" غیر ریزپردازنده، به معنای "پنهان کردن" بسیار سریع داده ها برای استفاده بعدی است.

    به طور کلی، هیچ اشتباه بزرگی در این ادعا وجود نخواهد داشت که تمام نوآوری‌های معماری و ظاهراً "افراط" DSPهای مدرن نشان دهنده تمایل طراحان برای دستیابی به راندمان بالای این چهار عملیات اساسی است.

    برای سرعت بخشیدن به محاسبات حسابی، DSP از چندین واحد منطقی حسابی (ALUs) استفاده می کند که به طور موازی کار می کنند، که در مورد یک حافظه ثبت داخلی مرتب شده با حیله گری، به شما امکان می دهد دستورالعمل های بسیار جالبی را در سیستم فرمان DSP وارد کنید. ترجمه شده به زبان انسانی، تقریباً به این معنی است: "محتوای ثبات 1 را با محتویات ثبت 2 ضرب کنید و حاصل ضرب را با محتویات ثبت 3 اضافه کنید". و همه اینها یک فرمان است که در یک چرخه ساعت اجرا می شود. برای تحسین خیلی زود است: عملیات ضرب-انباشتگی (این همان چیزی است که چنین لیستی از اقدامات نامیده می شود) یک کلاسیک از پردازش سیگنال دیجیتال است و سخت افزاری که آن را اجرا می کند به تدریج در پردازنده هایی نفوذ می کند که اخیراً جهانی در نظر گرفته شده اند، در درجه اول RISC. معماری ها، به ویژه، در بسیاری از کلون های MIPS.

    اجرای کارآمد عملیات تاخیر مستلزم آن است که یک DSP خوب دارای رجیسترهای داخلی زیادی باشد (در اصل، هر چه بیشتر، بهتر)، در این صورت یافتن یکی از سلول‌های رجیستر خالی برای "مخفی کردن" داده‌ها آسان است. علاوه بر این، سرعت بالای این عملیات تنها از طریق راه حل های معماری خوب، مانند سازماندهی منطقی موفق آرایه ثبت DSP قابل دستیابی است. در زمینه ما، این ویژگی DSP نیز بسیار جذاب به نظر می رسد - فراوانی رجیسترهای داخلی و سازماندهی منطقی آنها توسعه کامپایلرها از زبان های سطح بالا را بسیار ساده می کند (که اتفاقاً با تمرین تأیید می شود - در Texas Instruments در سایت ftp می توانید تغییرات بسیار موفقی از کامپایلر معروف C gcc را بیابید که کدهایی را برای DSPهای خانواده TMS تولید می کند.

    پیچیده ترین عملیات - نمایه سازی آرایه های داده - DSP ها مدیون منحصر به فرد بودن خود هستند. فراوانی رجیسترها و محاسبات سریع مشخصه، برای مثال، پردازنده های RISC (و همچنین بسیاری از CISC ها) است. اما «ماشین» برای تولید آدرس‌های تخصیص یافته به یک زیرسیستم پردازشگر جداگانه، نکته برجسته‌ای است که ویژگی DSP را می‌دهد، اما به هیچ وجه دامنه آنها را محدود نمی‌کند. برعکس - تنها رجیستر شمارنده برنامه در پردازنده های معمولی در اصل نمی تواند از عملکرد کل زیرسیستم فراتر رود. کارایی مولد آدرس یکی از بهترین هاست شاخص های مهم، که کارایی کل DSP را به طور کلی تعیین می کند. تقریباً در تمام DSPها، مولدهای آدرس برای همه زیرسیستم‌های پردازشگر دیگر «شفاف» کار می‌کنند، یعنی زمان ماشین را نمی‌گیرند و نیازی به تعلیق عملیات اصلی ندارند. علاوه بر این، به دلیل استفاده از یک مولد آدرس، DSP ها با روش های آدرس دهی بسیار پیشرفته مشخص می شوند (برای کسانی که زبان برنامه نویسی C را می دانند، غنی از ترفندهایی با اشاره گر است، هر DSP حاوی دستورالعمل های ماشینی است که تقریباً تمام عملیات آدرس ممکن را اجرا می کند. از این زبان).

    اگر نیازهای افزایش یافته DSP برای سرعت تبادل با دستگاه های خارجی را به خاطر بیاوریم، در هر پردازنده خاصی نتایج تلاش های جدی طراحی را خواهید یافت. اول از همه، اینها کانال های I/O سریال پرسرعت هستند. با وجود سادگی، هزینه کم رابط ها، همراه با پهنای باند کافی برای برنامه های کاربردی واقعی (به عنوان مثال، 40 مگابیت در ثانیه)، تقریباً تمام نیازهای بالقوه توسعه دهندگان را برآورده می کند. برای گسترش قابلیت های پردازنده های خاص، آنها به صورت همزمان (سه سیم: فرکانس ساعت، داده ها و ساعت) و کانال های سریال ناهمزمان (دو سیمه، ساعت "ماسک شده" در جریان داده).

    جالب‌ترین و غیرمنتظره‌ترین یافته‌های معماری در زیرسیستم‌های حافظه DSP متمرکز شده‌اند. نیاز فوری به گنجاندن دستورالعمل های تک چرخه برای ضرب با انباشت در سیستم دستورالعمل منجر به این واقعیت شد که DSP هیچ شباهتی با CPUهای جهانی "استاندارد" نداشت. در واقع، در یک چرخه، خواندن یا نوشتن همزمان داده‌های آدرس‌دهی شده توسط یک گذرگاه آدرس غیرممکن است - به تعداد واحدهای داده‌ای که به عنوان عملوند دستورالعمل عمل می‌کنند، به تعداد گذرگاه‌های آدرس نیاز است. جالب ترین چیز این است که توسعه دهندگان DSP حتی در مورد استفاده از معماری حافظه آشنای فون نویمان (تک حافظه فیزیکی برای برنامه و داده) راه حلی کاملاً بی اهمیت و ظریف برای این مشکل پیدا کرده اند. "چرا اصلاً از معماری فون نویمان استفاده کنیم؟" - تو پرسیدی. به هر حال، معماری هاروارد وجود دارد و در بسیاری از پردازنده‌ها (حافظه فیزیکی مجزا برای برنامه‌ها و داده‌ها با اتوبوس‌های جداگانه) وجود دارد، اما ... یک DSP جهانی باید بتواند با RAM خارجی کار کند - بسیاری از برنامه‌های پردازش سیگنال بسیار پیچیده هستند، برای ذخیره کدهایی که آنها را پیاده سازی می کند و داده های میانی به مقدار قابل توجهی RAM نیاز دارد (اکثر DSP های مدرن مکانیسم های داخلی برای مدیریت SDRAM ارزان و سریع با ظرفیت 16 تا 64 مگابایت دارند). برای پیاده سازی یک معماری واقعی هاروارد، دو گذرگاه آدرس و داده مورد نیاز است که با یک پردازنده 32 بیتی، 128 پین ایجاد می کند - این بسیار گران و بسیار ناخوشایند است. معماران DSP در چنین اقدام متعادل کننده ای بین عملکرد و قیمت، یک "تعادل" غیرمنتظره پیدا کردند: معماری داخلی هاروارد و معماری های خارجی فون نویمان را در همان زمان اصلاح کرد. ما قبلاً به این واقعیت عادت کرده‌ایم که پردازنده‌ها با فرکانس ساعت بالاتری نسبت به گذرگاه‌های حافظه کار می‌کنند، بنابراین اصلاح DSP Neumann تا حدودی عجیب به نظر می‌رسد: گذرگاه حافظه در یک بالاتر (معمولاً 4 برابر) در رابطه با داخلی کار می‌کند. فرکانس پردازنده این به یک دوره (ساعت) از پردازنده اجازه می دهد تا چندین دسترسی به حافظه داشته باشد - به سادگی و کارآمد، و در عین حال در یک دسته کامل از خروجی های اضافی صرفه جویی کند.

    اکنون، طبیعتاً این سؤال مطرح می شود: اگر پردازنده در فرکانس پایین تری کار کند، چگونه چنین عملکرد DSP بالایی حاصل می شود؟ امروزه چندین ترفند و معماری مورد علاقه تقریباً در کل صنعت DSP وجود دارد که نقش "ضریب ساز ساعت ساختاری" را بازی می کنند. در اینجا آنها نه با تعداد (نه با مگاهرتز) بلکه با مهارت می گیرند. اصطلاحات انتزاعی مد روز مانند VLIW (دستورالعمل های ماشین بسیار طولانی) برای مدت طولانی با موفقیت مورد استفاده قرار گرفته اند، به عنوان مثال، در پردازنده های Texas Instruments از خانواده TMS320C6xxx، که کد دستورالعمل 256 بیتی آن قادر است تا 8 32 بیتی را "کپسوله" کند. عملوندهایی که با اعداد شناور و نقطه ثابت نشان داده می شوند. برای "استفاده" از چنین دستوراتی، از چندین واحد منطقی حسابی (در مورد TMS320C6xxx - شش) و ضرب کننده های سخت افزاری سریع جداگانه استفاده می شود. SHARC نامتناسب ارزان‌تر از دستگاه‌های آنالوگ (مدل ADSP-21065L، قیمت در مقادیر زیاد 10 دلار) از سه ALU مجزا با ضرب‌کننده‌های پرسرعت (قابلیت عملکرد "موازی")، یک "تغییرگر" سخت‌افزاری جداگانه (شیفت‌کننده، که "تغییر" محتوای بیت را با تعداد بیت های مشخص شده به عنوان یک عملوند N بیت به چپ یا راست، که معادل ضرب یا تقسیم بسیار سریع بر 2**N است، معماری داخلی هاروارد و خارجی اصلاح شده فون نویمان را فراهم می کند. (فرکانس ساعت گذرگاه RAM تا 60 مگاهرتز)، حافظه داخلی دو پورت (با امکان دسترسی همزمان توسط دو زیرسیستم پردازنده) پیکربندی قابل تنظیم و در نهایت یک سیستم فرمان بسیار خاص (اما بسیار راحت). اسمبلر SHARC شبیه یک زبان برنامه نویسی در سطح نسبتاً بالایی است که بر توسعه برنامه های کاربردی ریاضی متمرکز است (من این را خواهم گفت: یک FORTRAN موازی ساده شده). با وجود فرمت بیت دستورالعمل نسبتاً "کوتاه" (69 بیت)، در اسمبلر 21065 می توان به عنوان مثال دستورالعمل یک چرخه زیر را نوشت:

    IFMS MRF=0; F6=(F2+F3)/2;

    (اگر شرط "MRF برابر با 0" باشد، نصف رجیسترهای F2 و F3 را با نتیجه در ثبات F6 محاسبه کنید).

    در نتیجه، یک تراشه ده دلاری یک برنامه بسیار منابع فشرده از تبدیل فوریه پیچیده 1024 نقطه ای را در 304 میکرو ثانیه انجام می دهد (برای مقایسه، این مشکل را به عنوان آزمایش پنتیوم خود امتحان کنید).

    بازگشت به کامپیوتر

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

    در مورد سوال PC، بیایید برای لحظه ای تمام آن اتوبوس های PCI و AGP، شتاب دهنده های گرافیکی، سیستم عامل های هیولایی را فراموش کنیم. بیایید سعی کنیم یک رایانه چند پردازنده عملکردی را تصور کنیم (یک پردازنده CPU است، دومی زیرسیستم پنجره گرافیکی است، سومی زیرسیستم ورودی / خروجی هوشمند است)، که برای آن استانداردهایی فقط برای زبان های برنامه نویسی، فراخوانی سیستم ماژول CPU وجود دارد. و دستورات بین ماژول‌های جداگانه رد و بدل می‌شوند (به عنوان مثال، یک دستور 32 بیتی بسته بندی شده با کلمه "پنجره ای به اندازه 1024 x 1024 پیکسل را باز کنید" یا "یک خط از موقعیت فعلی به نقطه ای با مختصات X، Y رسم کنید"). پس از جسارت، بیایید تصور کنیم که سیستم عامل رایانه شخصی ما اصلاً در مورد انواع درایوها: هارد، CD-ROM و موارد دیگر هیچ ایده ای ندارد، اما می داند ftp چیست (اجرای چنین چیزی وجود دارد و به ترتیب Andrew Filesystem نامیده می شود - ماژول ورودی / خروجی یک سرور ftp نازک است.

    و در آخر بیایید ماژول های کاربردی را با یک لینک سریال پرسرعت (مثلاً یک گیگابیت ارزان 1355 که قبلاً در مورد آن صحبت کردم) وصل کنیم. اگر همه چیز درست شد (و درست شد)، اضافه می‌کنم: تمام پردازنده‌های این رایانه شخصی DSPهای کلاس SHARC (یا پردازنده‌های قدرتمندتر برای مدل‌های تولیدی) هستند. ما می‌گیریم: باز کردن در سطح مشخصات، باز کردن دست سازندگان (اجازه دهید تا آنجا که دوست دارند در داخل ماژول‌های عملکردی رقابت کنند، تا زمانی که مشخصات بین ماژول‌های بیرونی را لمس نکنند) معماری، در ابتدا شبکه‌گرا (ftp) -سیستم فایل بین درایوهای محلی و راه دور تمایز قائل نمی شود)، بسیار مولد (حتی با قابلیت های محاسباتی "متوسط" 21056L - هرگز به این فکر نکردید که چه تعداد منابع سیستم عامل و زیرسیستم گرافیکی/پنجره ای که روی یک پردازنده اجرا می شود "غذا می کند" بالا، ارزان، و مهمتر از همه، واقعاً قادر به برآورده کردن نیازهای رو به رشد کاربران تلفن همراه. زیرا این DSP است که برای کارهایی مانند تشخیص گفتار و الگوی بصری، سنتز پیام گفتار بسیار سخت است. جستجوی سریعدر پایگاه‌های داده، تجسم سه‌بعدی بلادرنگ تقریباً هر چیزی است که تخیل امروز ما قادر به انجام آن است.