1) معرفي DSPها
در دهه 70 ميلادي همزمان با ساخت اولين پردازندهها توسط شركتهاي مختلف، شركت Texas Instrument تصميم گرفت پردازندههايي را مخصوص پردازش سيگنال طراحي و روانه بازار نمايد. اين پردازندهها كه بيشتر با نام پردازندههاي DSP ) معروف هستند، همگي با نام TMS320 شروع ميشوند. پردازندههاي DSP در طول حدود 40 سال از حضورشان بسيار تكامل يافته و امروزه وارد حوزههاي مختلفي شدهاند. اولين سري پردازندههاي DSP ، با نام TMS320C10 به بازار عرضه شد.پس از چند سال حضور سري TMS320C25 باعث معروف شدن DSP ها گرديد. اين پردازنده كه در اواخر دهه 70 وارد بازار شد ميتوانست يك تبديل فوريه ([1]FFT) را با سرعتي انجام دهد كه 20 سال بعد اولين سريهاي پردازندههاي پنتيوم[2] ساخت شركت اينتل به آن سرعت رسيدند.
در علم پردازش سيگنال فيلترها و تبديل فوريه كاربردهاي زيادي دارند. يك فيلتر در عمل يك سيگما به شكل زير ميباشد.
اين سيگما در واقع، ضرب دو بردار در يكديگر ميباشد. اگر بخواهيم يك برنامه بسيار ساده C براي محاسبه اين سيگما بنويسيم ، داريم:
for( k = 0 ; k<=N ; k++ ) Y = Y + W[k] * X[n-k] ; |
اين برنامه براي اينكه دقيقا سيگماي نوشته شده را شبيهسازي نمايد، نياز به تكميل بيشتر دارد اما ميخواهيم ببينيم همين حلقه for ساده چند كلاك طول ميكشد. كارهايي كه در اين حلقه انجام ميشود عبارتند از :
1- ابتدا آدرس W در حافظه Load شده و سپس به اندازه مقدار k ( يا ضريبي از k ) به Wاضافه شده تا آدرس W[k] به دست آيد.
2- از آدرس W[k] خوانده شده و در يك رجيستر داخلي ريخته ميشود.
3- آدرس X[n-k] با روشي شبيه آنچه براي W انجام گرفت به دست ميآيد.
4- مقدار X[n-k] از حافظه خوانده شده و در مقدار W[k] كه در يكي از رجيسترها داخلي Loadشده بود ضرب ميگردد.
5- مقدار حاصل ضرب با مقدار Y جمع شده و دوباره در Yريخته ميشود.
6- اكنون برنامه به پايان حلقه رسيده است. بنابراين مقدار k يكي افزايش پيدا ميكند.
7- مقدار k با N مقايسه ميشود.
8- براساس نتيجه مقايسه يك دستور پرش اجرا ميشود كه باعث ميشود حلقه دوباره از اول اجرا شود و يا برنامه از درون حلقه خارج ميشود.
در هنگام كامپايل برنامه، كامپايلر يك برنامه اسمبلي بر اساس اين 8 مرحله توليد ميكند. بعضي از بخشهاي اين حلقه يك كلاك و بعضي تا چند كلاك طول مي كشند. مثلا فقط دستور پرش در آخرين مرحله كه براي تكرار حلقه وجود دارد در پردازندههاي مختلف بين 4 تا 8 كلاك طول ميكشد[3]. اگر اين برنامه را تكميلتر نماييد تا شيفت بر روي X را نيز پوشش دهد، در خوشبينانهترين حالت اين برنامه به ازاي هر ضرب 20 كلاك طول ميكشد. در DSPها كل اين مراحل در يك كلاك قابل انجام است. در DSP ها دستوري وجود دارد[4] كه ميتواند دو عدد را از دو حافظه خوانده و در هم ضرب نموده و نتيجه ضرب را با مقدار قبلي جمع نمايد. همچنين اين دستور ميتواند آدرسهاي W وX را به شكل اتوماتيك افزايش دهد.
يك ابداع ديگر شركت TIدستور Repeat يا RPT ميباشد. اين دستور قبل از هر دستوري قرار گيرد ميتواند دستور بعدي را به تعداد ذكر شده در اين دستور تكرار نمايد.
RPT N
MAC
در اينجا دستور MAC به اندازه N+1 بار تكرار ميشود.
اين روش كه در اولين پردازندههاي TI معرفي شد، به مرور زمان پيشرفت كرد تا جاييكه امروزه DSPها ميتوانند چند دستور را به جاي يك دستور تكرار نمايند.
با پيشرفت دانش پردازش سيگنال و معرفي كاربردهاي مختلف، در DSPها نيز تغييراتي ايجاد شد. دستورات پيچيده جديدي شبيه MAC به DSPها افزوده شدند كه كاربردهاي DSPها را گستردهتر كردند.
2) كاربران DSPها چه كساني هستند؟
پردازندههاي DSP هم اكنون در دو حوزه جداگانه كاربرد دارند.
1- محاسبات رياضي و پردازش سيگنال
2- به عنوان يك ميكروكنترلر پر سرعت.
در كشور ما در سالهاي اخير نياز به پردازندههاي پر سرعت افزايش يافته است. اين نياز باعث شده تا عدهاي از طراحان از ميكروهاي پرسرعت تر( در حدود 50 مگا هرتز) استفاده كنند. در بعضي از كاربردها هم طراحان به DSPهايي با سرعت 150 تا 300 مگاهرتز روي آوردهاند. البته اين DSPها بيش از 15 سال است كه وارد بازار شدهاند اما ميكروهاي پرسرعت به تازگي توسط شركتهايي نظير ATMEL معرفي شدهاند.
پس يكي از كاربردهاي پردازندههاي DSP، استفاده از سرعت بالاي آنها و كامپايلر بسيار قوي و بدون اشكالي است كه شركت TI براي آنها معرفي كرده است. در DSPها قابليتهاي زيادي وجود دارد كه اين قابليتها با كمك دستورات اسمبلي زياد و چند كارهآنها ايجاد شده است. اين دستورات به كامپايلرها كمك ميكنند كه بتوانند يك كد اسمبلي سريع از روي برنامه C توليد نمايند.
|
اگر ميخواهيد براي پردازندههاي DSP شركت TI برنامهنويسي كنيد بايد زبان C را بلد باشيد. اگر در اين مورد احساس ضعف ميكنيد كافي است 100 صفحه اول يك كتاب آموزشي C را مطالعه كنيد. همين مقدار يادگيري زبان C براي شروع آموزش كافي است. |
3) نگاهي اجمالي به پردازندههاي مختلف ساخت شركت TI
شركت TI در طول 40 سال حضور خود در بازار پردازندههاي پر قدرت دائما در حال نوآوري و توليد محصولات جديد بوده است. اگر امروز شما سري به سايت اين شركت[5] بزنيد تقريبا ميتوانيد براي هر كاربردي يك آيسي مناسب بيابيد. البته در بازار ايران مشهورترين آيسيهاي ساخت اين شركت همان DSPها هستند اما قطعات توليد شده توسط TI محدود به پردازندههاي DSP نميباشد. تنها مشكل اين شركت اين است كه قطعات توليدي آن نسبت به ديگر شركتها كمي گرانتر ميباشد. اين گراني قطعات باعث شده كه فروشندگان بازار ايران به دليل نوع تقاضاي مشتريان، ترجيح دهند قطعات ارزانتر مشابه شركتهاي ديگر را به بازار عرضه كنند. البته اين گراني قطعات بيشتر دلايل فني دارد و به قابليتهاي آنها بر ميگردد.
3-1) سريهاي قديمي
شركت TI تا قبل از ارائه نرمافزار Code Composer Studio پردازندههايي را به بازار عرضه ميكرد كه امكان اتصال آنها از طريق يك JTAG[6] به كامپيوتر وجود نداشت. شماره اصلي اين خانوادهها همگي 2 رقمي بودند، مثلا C25 يا C50 كه نام كامل آنها TMS320C25 يا TMS320C50 ميباشد. در شكل بعد اين سريهاي قديمي با هم مقايسه شده اند. در اين شكل دو دسته پردازنده وجود دارد. 1- پردازندههاي با قابليت محاسبات اعشاري . 2- پردازندههاي بدون قابليت محاسبات اعشاري .
شکل 1: مقايسه انواع پردازندههاي قديمي ساخت شركت TI[7]
امروزه تجهيزات زيادي بر اساس اين پردازندهها ساخته شدهاند كه هماكنون در حال كار هستند.
3-2) سريهاي جديد
با ورود JTAG به عرصه پردازندهها، شركت TI نيز يك نرمافزار يك پارچه به نام Code Composer Studio ( CCS ) به بازار عرضه نمود. اين نرمافزار با كمك JTAG به كامپيوتر وصل شده و كار با پردازندههاي DSP را آسان مينمايد. سريهاي جديد ساخت شركت TI چهار رقمي شده و در 3 دسته اصلي تقسيم بندي شدند.
الف- سري 5000 ( يا 5XXX ) : اين سري شامل دو خانواده اصلي ميباشد: 54XX و 55XX . سري 55XX كممصرفترين پردازنده DSP ساخت شركت TI ميباشد كه در بسياري از تجهيزاتي كه نياز به قدرت پردازش بالا و جريان مصرفي كم ( مانند موبايلها ) دارند
مورد استفاده قرار گرفتهاند. در حال حاضر عملا طراحي سريهاي جديد براي خانواده 54XX متوقف شده و هر روز پردازندههاي كممصرفتري بر اساس سري 55XX به بازار عرضه ميگردد. در سري 5000 سرعت پردازندهها بين 100 تا 300 مگا هرتز ميباشد و در سري 55XX
قدرت محاسبات رياضي دو برابر فركانس كاري پردازنده است. يعني سري 55XX ميتواند تا600 ميليون ضرب را در ثانيه انجام دهد.
كاربرد اصلي پردازندههاي سري 5000 در پردازش صوت و پروسههايي كه نياز به پردازشهاي پر سرعت دارند ميباشد. از بعضي از سريها كه حجم حافظه داخلي آنها بيشتر از 128 كيلو بايت است ميتوان براي پردازش تصوير نيز استفاده نمود.
ب- سري 2000 (يا 2XXX ): اين سري شامل دو خانواده اصلي ميباشد: 24XX و 28XX . سري 28XX يك خانواده با عملكردي نزديك به ميكرو كنترلرها ميباشد. اين سري تنها سرياي است كه درآن حافظه Flash وجود دارد. وجود حافظه Flash داخلي، برنامهريزي اين پردازندهها را نسبت به ديگر خانوادهها آسانتر نموده است. در اين سريها حجم حافظه داخلي از نوع SRAM كمتر از 32 كيلو ميباشد. به همين دليل اين سريها براي پردازش تصوير مناسب نميباشند. یکی از محاسن اصلی این سری، رعایت استانداردهای مربوط به محیطهای پر نویز در طراحی این خانواده است. به همین دلیل تا کنون این پردازنده ها در بسیاری از تجهیزات قدرت نظیر اینورتر ها ( که نویز بالائی دارند ) استفاده شده اند. شرکت TI در حال حاضر چهار دسته استاندارد نویزی برای این خانواده تعریف نموده که آی سی هایی که پایین ترین استاندارد را پوشش می دهند مناسب تجهیزات الکترونیک قدرت نظیر اینورترها هستند. هرچه شماره استاندارد افزایش می یابد آی سی در مقابل نویز مقاوم تر شده و کمتر هنگ می کند تا جایی که در آخرین و جدید ترین سری این خانواده ، سری 28M35 با کمک دو هسته موازی[8] ( ترکیب یک هسته ARM و یک هسته DSP) امن ترین عضو این خانواده ساخته شده است.
کلا كاربرد اصلي سري 2000 بيشتر به عنوان يك ميكروكنترلر پر سرعت[9] ميباشد و در سايت شركت TI نيز اين سري جزو پردازندههاي DSP طبقه بندي نشده است.
ج- سري 6000 ( يا 6XXX ) : اين سري شامل چهار خانواده اصلي ميباشد: 62XX، 64XX ، 67XX و 66XX. اين سريها پيشرفتهترين پردازندههاي ساخت شركت TI هستند. در اين سريها فركانس كاري پردازنده بين 150 مگا هرتز تا 2/1 گيگا هرتز ميباشد. اما سرعت واقعي اين پردازندهها 8 برابر كلاك كاري آنها ميباشد. در اين پردازندهها در هر كلاك تا حداكثر 8 دستوربه شكل همزمان قابل اجرا است. به همين دليل اين پردازندهها ميتوانند تا حدود 10 گيگا دستورالعمل را در ثانيه اجرا نمايند. در آخرین سری 6000 یعنی سری 66XX، هر هسته توانائی اجرای 32 دستور موازی را دارد و در هر آی سی تا 8 هسته موازی قرار داده شده است. اگر کلاک پردازنده 25/1 گیگا هرتز باشد این خانواده [10] قابلیت انجام 320 گیگا دستور العمل( 320 = 8 x 32 x 25/1 ( درثانیه را دارد.
سری 6000 براي تمامي انواع پردازشهاي پر سرعت مناسب است اما سري 64XX با قابلیت انجام 10 گیگا دستور العمل و سری 66XX با قابلیت 352 گیگا دستورالعمل(تا زمان تالیف این کتاب)جزو مناسبترين سري ها براي پردازش تصوير ميباشند.
در بين خانوادههاي مختلف، پيچيدهترين سري از نظر طراحي سختافزار، سري 6000 ميباشد. سريهاي 2000 و 5000 از نظر طراحي سختافزار، پيچيدگي يكساني دارند[11].
4) نرم افزار
در حال حاظر نسحه های مختلفی از این نرم افزار وجود دارد مشهورترین نسخه قدیمی این نرم افزارCCS نسخه 3.3 بود. بفاصله کوتاهی پس از چاپ نسخه اول، شرکت TI در سال 1389 نسخه جدید نرم افزار ( نسخه 4.0 ) را معرفی نمود که در آن ساختار ظاهری نرمافزار بسیار تغیر کرده بود (اگرچه ساختار داخلی همچنان حفظ شده بود). اما این نسخه به دلیل اشکالات زیادی که داشت به سرعت با نسخه های بعدی جایگزین شد. اولین نسخه قابل قبول و کم اشکال از سری جدید، نسخه 5.1 بود. و پس از آن نسخه های بعدی تا نسخه 6 همگی مشابه هم بودند اما فقط هر نسخه بعضی باگهای نسخه قبل را نداشت و البته پردازنده های جدیدتر را پشتیبانی مینمود.
[1] - تبديل فوريه سريع یا Fast Fourier Transform
[2]- پردازندههاي نظير پنتيوم 200 مگا هرتز در همان زماني يك تبديل فوريه را انجام مي دهند كه يك TMS320C25 با سرعت 10 مگاهرتز اين كار را انجام ميدهد.
[3]- به دليل وجود يك Pipe Line داخلي در طراحي پردازندهها ، دستورات پرش حداقل به اندازه طول Pipe Line داخلي، تاخير ايجاد ميكنند.
[4]- دستور MAC يا Multiply Accumulate ( به معني ضرب – جمع )
[5] -WWW.TI.COM
[6]-پروگرمر یا JTAG يك مدار كوچك سختافزاري است كه براي اتصال DSPها به كامپيوتر استفاده ميشود. با كمك JTAG ميتوان برنامهها را پس از كامپايل شدن ، با كمك نرمافزار CCS بر روي پردازنده بارگذاري كرده و سپس اجرا نمود.
[7]- اقتباس شده از كتاب "TMS320C2X User's Guide" ( فايل SPRU014c.PDF ) . اين كتاب يك كتاب قديمي اما بسيار مفيد براي آشنايي با سريهاي قديمي شركت TI ميباشد.
[8]- برای کسب اطلاعات بیشتر در باره این پردازنده می توانید به سایت WWW.MEPC.IR مراجعه فرمائید. در این سایت یک نمونه برد آموزشی برای این خانواده وجود دارد.
[9] -DSC ( Digital Signal Controller (
[10] - TMS320C6678
[11]- به غير از پردازندههاي DSP ، شركت TI يكسري ميكروكنترلر با نام تجاريOMAP ساخته است كه جزو كم مصرفترين ميكروكترلرهاي ساخته شده ميباشند. OMAPها به دليل جريان مصرفي بسيار پايين در بسياري از كاربردها كه جريان مصرفي پاييني دارند استفاده شدهاند. چون براي برنامهريزي OMAP ها از نرمافزار CCS استفاده ميگردد با يادگيري مفاهيم اين كتاب شما خواهيد توانست بسياري از مفاهيم مورد نياز براي كار با OMAP ها را نيز بياموزيد.