1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

‫‪ -1‬مقدمة ‪:‬‬

‫معالجات اإلشارة الرقمٌة هً متحكمات صؽرٌة لها الموصفات التالٌة ‪:‬‬


‫لها القدرة على معالجة اإلشارة الرقمٌة فً الزمن الحقٌقً ‪ .‬إن معالجات اإلشارة الرقمٌة ٌجب‬ ‫‪-1‬‬
‫علٌها أن تقوم بمعالجة البٌانات فً الزمن الحقٌقً ‪ .‬بمعنى آخر إن صحة العمل تعتمد بشكل كبٌر‬
‫على الزمن الذي ستنتهً عنده عملٌة المعالجة ‪.‬‬
‫لها إنتاجٌة عالٌة ‪ٌ : high throughput‬جب على معالجات اإلشارة الرقمٌة أن تحافظ على‬ ‫‪-2‬‬
‫استمرار عملٌة المعالجة من أجل البٌانات ذات التدفق العالً ‪, high-speed streaming data‬‬
‫مثل معالجة الصوت و معالجة الوسائط المتعددة ‪.‬‬
‫العمل الحتمً ‪ :‬إن تنفٌذ برامج معالجات الوسائط المتعددة ٌمكن أن ٌتم التأكد من حتمٌة وقوعه‬ ‫‪-3‬‬
‫بشكل دقٌق ‪ ,‬و هكذا فإنه ٌمكن ضمان تكرارٌة األداء المرؼوب ‪.‬‬
‫إمكانٌة إعادة البرمجة عن طرٌق برمجٌة خاصة ‪ٌ :‬مكن أن ٌتم الحصول على سلوك نظام مختلؾ‬ ‫‪-4‬‬
‫عن طرٌق إعادة كتابة كود خوارزمٌة ٌتم تنفٌذها عن طرٌق ال ‪ DSP‬بدالً من إعادة تعدٌل‬
‫الهاردوٌر ‪.‬‬
‫ظهرت معالجات الوسائط المتعددة فً أوائل الثمانٌنٌات من العام القرن الماضً ‪ ,‬و خالل السنوات األخٌرة‬
‫الماضٌة كانت هذه المعالجات التقنٌة األساسٌة التً مكنت العدٌد من المنتجات من التطور مثل نظم‬
‫االتصاالت ‪ ,‬الوسائط المتعددة ‪ ,‬صناعة السٌارات ‪ ,‬القٌاسات ‪ ,‬الصناعات العسكرٌة ‪.‬‬
‫الجدول رقم ‪ٌ 1‬عطً لمحة عامة عن بعض هذه المجاالت و التطبٌقات النمطٌة ‪ typical‬معالجات اإلشارة‬
‫الرقمٌة ‪.‬‬
‫الشكل رقم ‪ٌ 1‬ظهر تطبٌقا ً من الحٌاة الواقعٌة لمعالجات اإلشارة الرقمٌة و الذي ٌستخدم معالج إشارة رقمٌة‬
‫من شركة ‪ Texas Instruments‬فً مسجل و مشؽل صوتً لصٌؽة ‪ . MP3‬ال ‪ٌ DSP‬طبق الوظٌفة‬
‫الصوتٌة (مشؽل صوتً ) و وظٌفة الترمٌز ‪ .‬مهام إضافٌة تم تطبٌقها هً إدارة الملفات و التحكم بواجهة‬
‫المستخدم و خوارزمٌات ما بعد المعالجة مثل المعادلة ‪ equalization‬و التحكم بالجهٌر ‪bass‬‬
‫‪. management‬‬
‫الشكل ‪-1-‬‬

‫‪ -2‬تطور ال ‪ DSP‬و الوضع الحالي لها ‪:‬‬


‫ظهرت معالجات ‪ DSP‬فً السوق فً أوائل الثمانٌنٌات ‪ ,‬و منذ ذلك الوقت و مرت هذه المعالجات بتطور‬
‫كبٌر فٌما ٌخص خصائص الهاردوٌر و التكامل و األدوات البرمجٌة الخاصة بعملٌة التطوٌر ‪ .‬معالجات‬
‫اإلشارة الرقمٌة اآلن تكنولوجٌا ناضجة ‪ . mature‬هذا القسم ٌعطً لمحة عامة عن تطور معالجات ‪DSP‬‬
‫خالل السنوات الماضٌة ‪ .‬المصطلحات التخصصٌة التً تم استخدامها بنٌة هارفارد ‪Harvard‬‬
‫‪ architecture‬و تقنٌة ال ‪ pipelining‬و مجموعة التعلٌمات ‪ instruction set‬و ال ‪. JTAG‬‬
‫الجدول ‪-1-‬‬
‫‪ -1-2‬تطور معالجات ‪ DSP‬من حيث مميزات الهاردوير ‪.‬‬
‫فً أواخر السبعٌنات ظهرت العدٌد من الشرائح التً كان الهدؾ منها معالجة اإلشارة الرقمٌة ‪ ,‬إال أنها لم‬
‫تعتبر معالجات إشارة رقمٌة بسبب محدودٌة إمكانٌة برمجتها أو النقص فً مزاٌاها المتعلقة بالهاردوٌر مثل‬
‫الضاربات المبنٌة كهاردوٌر ‪.‬‬
‫الشرائح األولى التً تم تسوٌقها كمعالج إشارة رقمٌة قابل للبرمجة كان ‪ MPD2227‬المصنع من قبل شركة‬
‫‪ NEC‬فً عام ‪ .1891‬كان ٌملك ضارب مبنً ضمنه كهادوٌر ‪ hardware multiplier‬وتبنى معمارٌة‬
‫هارفارد ‪ .‬تم تصنٌع المعالج ‪ TMS327c17‬من قبل شركة ‪ TI‬فً عام ‪. 1892‬‬
‫الشكل ‪ٌ 2‬بٌن قائمة من ال ‪ DSPs‬مختارة و مرتبة بشكل زمنً و التً تم تسوٌقها بٌن الثمانٌنٌات إلى أوائل‬
‫العام ‪2777‬‬

‫الشكل ‪-2-‬‬
‫من وجهة نظر السوق ٌمكن أن نقسم السنوات الماضٌة من عمر ال ‪ DSPs‬إلى طورٌن هما طور التطوٌر‬
‫الذي استمر حتى أوائل التسعٌنٌات و طور االندماج الذي ٌستمر حتى وقتنا الحالً ‪.‬‬
‫الشكل ‪ٌ 2‬ظهر لمحة عامة عن تطور ممٌزات ال ‪ DSPs‬سوٌة مع العام األول من التسوٌق من أجل بعض‬
‫عوائل ال ‪. DSPs‬‬
‫خالل طور التطوٌر ‪ , development phase‬معالجات اإلشارة الرقمٌة كانت مبنٌة بشكل نمطً على‬
‫بنٌة هارفارد ‪ .‬الجٌل األول من ال ‪ DSPs‬تضمن وحدات ضرب و جمع و وحدة مراكم ‪.accumulator‬‬
‫مثال على ذلك ‪ TMS 327C17‬من شركة ‪ , Texas instruments‬الجٌل الثانً من معالجات اإلشارة‬
‫الرقمٌة حافظ على البنٌة هارفارد الخاصة بالجٌل األول و أضاؾ بعص المٌزات مثل ‪ pipelining‬و‬
‫المعامالت الحسابٌة المتعددة و مولد عنوان الخاص ‪ special address generator‬و الوصول المباشر‬
‫للذاكرة )‪ . Direct Memory Access(DMA‬مثال على ذلك ‪ . TMS327C27‬كانت معالجات اإلشارة‬
‫الرقمٌة األولى تقوم بالحسابات األعداد ذات الفاصلة الثابتة ‪ fixed-point‬و فً نهاٌة الثمانٌنٌات ظهرت‬
‫معالجات إشارة رقمٌة مع مقدرة على معالجة البٌانات ذات الفاصلة العائمة مثل ‪ٌ . TMS327C37‬جب‬
‫مالحظة أن حسابات الفاصلة العائمة لم تكن دوما متوافقة مع معاٌٌر ‪ . IEEE‬على سبٌل المثال فإن‬
‫الحسابات الداخلٌة ل ‪ TMS327C37‬كانت تنفذ عن باستخدام صٌؽة تمثٌل بٌانات مملوكة للشركة و ٌجب‬
‫استخدام دارة متكاملة من أجل التحوٌل بٌن الصٌؽة المملوكة للشركة و الصٌؽة المعتمدة من قبل ‪. IEEE‬‬
‫معالجات اإلشارة الرقمٌة التً كانت تستخدم أثناء طور التطوٌر كان لها طول تعلٌمات ثابت ‪ .‬حٌث أن‬
‫واحدة من التعلٌمات التً تنتمً لمجموعة التعلٌمات ٌتم تنفٌذها عند كل دورة ساعة ‪ . clock cycle‬هذه‬
‫التعلٌمات من الممكن أن تكون معقدة و تنطوي على العدٌد من التعلٌمات ‪ .‬عرض التعلٌمة كان قصٌراً‬
‫بشكل نمطً ‪.‬‬
‫خالل طور االندماج فً السوق انبثقت المعالجات ذات عرض كلمة التعلٌمة الطوٌل جداً)‪Very )VLIW‬‬
‫‪ Long Instruction Word‬و ذات التعلٌمة الواحدة متعددة البٌانات ‪Single Instruction Multiple‬‬
‫‪ )SIMD( Data‬هذه البنى قامت بتحسٌن أداء معالج اإلشارة الرقمٌة عن طرٌق التفرع ‪. parallelism‬‬
‫من األمثلة على معالجات اإلشارة الرقمٌة ذات البنٌة المحسنة المعالجات الخاصة بشركة ‪Texas‬‬
‫‪ Instruments‬من النوع ‪ TMS327C6xxx‬والتً كانت المعالجات االولى التً طبقت بنٌة ‪ VLIW‬و‬
‫المعالج من شركة ‪ ADI‬المسمى ‪ , TigerSHARC‬والذي ٌتضمن ممٌزات ‪ VLIW‬و بنٌة ‪ . SIMD‬عدد‬
‫اإلضافات التً كانت مدمجة مع المعالج تزاٌد بشكل كبٌر خالل هذه الفترة باإلضافة إلى مزاٌا الهاردوٌر‬
‫التً تسمح للعدٌد من المعالجات أن تعمل مع بعضها ‪ .‬التقنٌات التً تسمح بتبادل البٌانات فً الزمن‬
‫الحقٌقً بٌن المعالج المضٌؾ و معالج اإلشارة الرقمٌة بدأت بالظهور عند نهاٌات التسعٌنٌات ‪ .‬األمر‬
‫الملحوظ أٌضا ً خالل هذه الفترة هو التناقص فً أعداد مصنعً معالجات اإلشارة الرقمٌة ‪ .‬عدد عائالت‬
‫معالجات اإلشارة الرقمٌة أٌضا ً تناقص بشكل كبٌر ‪ .‬باإلضافة لذلك كانت العدٌد من هذه العائالت مخصصة‬
‫ألؼراض معالجة إشارة معٌنة مثل المعدات الصوتٌة و حلقات التحكم ‪.‬‬
‫‪ -2-2‬تطور معالج اإلشارة الرقمية ‪ :‬تكامل الجهاز ‪: Device integration‬‬

‫الجدول ‪2‬‬

‫‪ -3-2‬تطور معالج الوسائط المتعددة ‪ :‬األدوات البرمجية‬


‫التحسٌنات فً األدوات البرمجٌة الخاصة بمعالجات اإلشارة الرقمٌة من األٌام األولى حتى اآلن كانت كبٌرة‬
‫جداً ‪.‬‬
‫مترجمات األكواد تطورت بشكل كبٌر لتكون قادرة على التعامل مع تعقٌدٌة الهاردوٌر الذي تطبق علٌه هذه‬
‫األكواد و مع البنى المحسنة الخاصة بمعالجات اإلشارة الرقمٌة ‪ .‬خالل نفس الوقت تسمح هذه المترجمات‬
‫المطور أن ٌقوم بعملٌة البرمجة بشكل أكثر فاعلٌة فً لؽات البرمجة عالٌة المستوى على العكس البرمجة‬
‫بلؽة التجمٌع ‪ .‬هذه الطرٌقة تسرع بشكل ملحوظ عملٌة تطور الكود و تجعل الكود نفسه أكر قابلٌة للنقل عبر‬
‫المنصات المختلفة ‪. platforms‬‬
‫األدوات المتقدمة تسمح الٌوم ببرمجة معالجات اإلشارة الرقمٌة بشكل رسومً ‪ graphically‬عن طرٌق‬
‫الوصل البٌنً بٌن مجموعة من البلوكات المعرفة مسبقا ً و التً تحول الحقا إلى كود خاص بمعالج اإلشارة‬
‫الرقمٌة و مثال على ذلك تولٌد الكود عن طرٌق برنامج ماتالب ‪ MATLAB Code Generation‬و الوحدة‬
‫الخاصة بمعالجة اإلشارة الرقمٌة فً برنامج ‪. ) labVIEW DSP Module( labVIEW‬‬
‫المحاكٌات ذات األداء العالً و تسهٌالت التنقٌح ‪ debugging facilities‬التً تسمح للمبرمج أن ٌملك‬
‫رؤٌة أوضح إلى معالج اإلشارة مع عدم التدخل أو التدخل قلٌال عند عملٌة تنفٌذ الكود ‪ .‬باإلضافة إلى ذلك‬
‫العدٌد من معالجات اإلشارة الرقمٌة من الممكن أن ٌتم الوصول إلٌها عن طرٌق منفذ ال ‪ jtag‬من أجل‬
‫عملٌة تطوٌر الكود و عملٌة تنقٌح الكود ‪.‬‬
‫‪ -4-2‬الوضع الحالي لمعالجات اإلشارة الرقمية ‪:‬‬
‫عدد مصنعً معالجات اإلشارة الرقمٌة اآلن محدود و الحصة األكبر الٌوم فً السوق هً لثالثة صانعٌن و‬
‫هم ‪. ADI , microchip , veriSilicon‬‬

‫الجدول ‪3‬‬

‫‪ -3‬بنية نواة معالج اإلشارة الرقمية ‪:‬‬


‫‪ 1-3‬مقدمة‬
‫تم تحدٌد شكل نواة معالجات ‪ DSP‬عن طرٌق مالحظة متطلبات نظام معالجة اإلشارة فً الزمن الحقٌقً ‪.‬‬
‫مثال على ذلك مرشح )‪ finite impulse response (FIR‬و الذي له المعادلة الرٌاضٌة الموافقة ‪:‬‬

‫حٌث ‪ y‬هو خرج المرشح و ‪ x‬هو الدخل و ‪ a‬هو شعاع معامالت المرشح ‪ .‬اعتماداً على التطبٌق من‬
‫الممكن أن تكون هناك بعض المعامالت للمرشح أو من الممكن أن تكون هناك العدٌد من المئات من‬
‫المعامالت أو أكثر ‪.‬‬
‫من المعادلة نالحظ أن المكون الرئٌسً فً خوارزمٌة المرشح هو عملٌة الضرب و المراكمة ‪ ,‬و ٌطلق‬
‫علٌها عادة )‪ . MAC (multiply and accumulate‬بٌانات المعامالت ٌجب أن ٌتم استعادتها من الذاكرة‬
‫و العملٌة ٌجب أن ٌتم تنفٌذها بطرٌقة متوقعة و سرٌعة ‪ ,‬و ذلك للحفاظ على معدل انتاجٌة عال ‪high‬‬
‫‪ . throughput rate‬فً النهاٌة ‪ ,‬الدقة العالٌة ٌجب أن ٌتم ضمانها أٌضا ً ‪ .‬هذه المتطلبات مشتركة بٌن‬
‫العدٌد من الخوارزمٌات المستخدمة فً معالجة اإلشارة الرقمٌة ‪ ,‬مثل مرشحات ‪Infinite Impulse‬‬
‫‪ Response‬و تحوٌل فورٌٌه ‪ٌ .‬ظهر الجدول مجموعة من متطلبات المعالجة سوٌة مع معالم الهاردوٌر‬
‫الرئٌسٌة التً تحقق هذه المتطلبات ‪.‬‬

‫الجدول ‪4‬‬

‫‪ -2-3‬الوصول السريع للبيانات ‪fast data access‬‬


‫الوصول السرٌع لبٌانات ٌشٌر إلى الحاجة إلى نقل البٌانات من و إلى الذاكرة أو محٌطٌات معالج اإلشارة‬
‫الرقمٌة ‪ ,‬باإلضافة إلى استعادة التعلٌمات من الذاكرة ‪.‬‬
‫التطبٌق على شكل عتاد صلب لتلبٌة هذه الحاجة ٌجب أن ٌحقق ‪:‬‬
‫‪ ‬بنٌة ذاكرة ذات عرض حزمة عال ‪.‬‬
‫‪ ‬أنماط عنونة خاصة ‪.‬‬
‫‪ ‬وصول مباشر للذاكرة ‪.‬‬

‫‪ 1-2-3‬بنية الذاكرة ذات عرض الحزمة العالي ‪:‬‬


‫المعالجات الصؽرٌة التقلٌدٌة ذات األؼراض العامة مبنٌة على بنٌة فون نٌومان المبٌنة فً الشكل ‪3‬‬
‫الشكل ‪ – a . 3‬بنٌة فون نٌومان‪ -b .‬بنٌة هارفارد‪ -c .‬بنٌة ‪. super-harvard‬‬
‫معمارٌة فون نٌومان هذه المعمارٌة فٌها بلوك وحٌد من الذاكرة ٌتضمن الداتا و تعلٌمات البرنامج سوٌة ‪ ,‬و‬
‫من ناقل ‪ BUS‬وحٌد ٌسمى ناقل البٌانات لنقل البٌانات و التعلٌمات من و إلى المعالج ‪ .‬سٌئة هذه المعمارٌة‬
‫أنه ٌمكن الوصول للذاكرة مرة واحدة عند كل دورة تعلٌمة ‪ .‬و بالتالً تشكل ما ٌسمى عنق الزجاجة فً‬
‫تنفٌذ الخوارزمٌة ‪.‬‬
‫معالجات اإلشارة الرقمٌة مبنٌة عادة باستخدام معمارٌة هارفارد المبٌنة فً الشكل ‪ b 3‬أو نسخة معدلة من‬
‫هذه البنٌة مثل ‪ Super-Harvard‬و المبٌنة فً الشكل ‪ . c 3‬فً معمارٌة هارفارد توجد ذواكر منفصلة‬
‫للبٌانات و لتعلٌمات البرنامج ‪ ,‬و ناقلٌن مختلفٌن ٌتم وصلهما إلى نواة معالج اإلشارة الرقمٌة ‪.‬‬
‫هذا ٌسمح بجلب تعلٌمات البرنامج و البٌانات بنفس الوقت ‪ ,‬و هكذا ٌتم تقدٌم أداء أفضل على حساب زٌادة‬
‫تعقٌد الهاردوٌر و الكلفة ‪.‬بنٌة هارفارد من الممكن أن ٌتم تحسٌنها عن طرٌق إضافة ذاكرة صؽٌرة سرٌعة‬
‫إلى ال ‪( DSP core‬نواه معالج اإلشارة الرقمٌة) ‪ ,‬و التً تسمى الذاكرة المخبئٌة للتعلٌمة و تسمح للبٌانات‬
‫أن ٌتم تخزٌنها فً ذاكرة البرنامج ‪ .‬تعلٌمات البرنامج األخٌرة التً تم تنفٌذها ٌتم وضعها خالل وقت العمل‬
‫فً ذاكرة التعلٌمات المخبئٌة ‪ .‬هذه العملٌة مفٌدة على سبٌل المثال إذا كان ال ‪ٌ DSP‬نفذ حلقة صؽٌرة بما‬
‫ٌكفً لكً تتسع كل التعلٌمات الخاصة بها ضمن ذاكرة التعلٌمات ‪ :‬فً هذه الحالة ٌتم نسخ التعلٌمات إلى‬
‫ذاكرة التعلٌمات المخبئٌة بعد تنفٌذ الحلقة ألول مرة من قبل معالج اإلشارة الرقمٌة الدورات التالٌة الخاصة‬
‫بالحلقة ٌتم تنفٌذها مباشرة من ذاكرة التعلٌمات المخبئٌة ‪ ,‬و هذا ٌسمح باستعادة الداتا من ذاكرة البرنامج و‬
‫ذاكرة البٌانات فً نفس الوقت ‪.‬‬
‫تحسٌن آخر طرأ على معمارٌة هارفارد هو وجود ذاكرة مخبئٌة خاصة بالبٌانات ‪ ,‬و هً ذاكرة سرٌعة تقع‬
‫بالقرب من نواة ‪ DSP‬و التً ٌتم شحنها بالبٌانات بشكل دٌنامٌكً ‪ .‬بالطبع فإن وجود ذاكرة مخبئٌة قرٌبة‬
‫جداً إلى ال ‪ DSP‬تسمح باستخدام ترددات ساعة أعلى ألن أزمنة التأخٌر فً أسالك التوجٌه ستكون صؽٌرة‬
‫جداً ‪.‬‬
‫ٌبٌن الشكل ‪ 4‬بنٌة الذاكرة المخبئٌة لمعالج اإلشارة الرقمٌة من شركة ‪ texas instruments‬ذو العائلة‬
‫‪TMS327C62xx‬‬

‫الشكل ‪4‬‬
‫ٌملك هذا المعالج ذاكرة مخبئٌة للداتا و ذاكرة مخبئٌة لتعلٌمات البرنامج ‪ٌ.‬وجد مستوٌٌن من الذاكرة المخبئٌة‬
‫هما المستوى ‪ L1‬و المستوى ‪ . L2‬المستوى ‪ L1‬هو عبارة عن ذاكرة بحجم ‪ 9Kbyte‬و هً مقسمة إلى‬
‫قسمٌن ‪ 4 Kbyte‬ذاكرة برنامج مخبئٌة و القسم الثانً بنفس الحجم و هو عبارة عن ذاكرة مخبئٌة للبٌانات ‪.‬‬
‫المستوى ‪ٌ L2‬شكل ذاكرة بحجم ‪ 256 Kbyte‬مقسم إلى ذاكرة ‪ maped-SRAM‬بحجم ‪ 182Kbyte‬و‬
‫‪ 64Kbyte‬ذاكرة ‪ cache‬ثنائٌة ‪ . dual‬الجزء األخٌر ٌمكن أن ٌكون على شكل ‪ maped memory‬أو‬
‫‪ cache‬أو تركٌبة من اإلثنٌن ‪.‬‬
‫ٌبٌن الشكل ‪ 5‬التالً الهرمٌة النمطٌة ‪ typical‬لذواكر معالجات اإلشارة الرقمٌة ‪.‬‬

‫الشكل ‪5‬‬
‫‪2-2-3‬أنماط عنونة مخصصة (خاصة) ‪Specialized‬‬
‫تملك معالجات اإلشارة الرقمٌة أنماط عنونة خاصة و تملك هاردوٌر موافق لهذه األنماط للسماح بالوصول‬
‫السرٌع لمعامالت التعلٌمات عن طرٌق التولٌد السرٌع لموقعها فً الذاكرة ‪ .‬معالجات اإلشارة الرقمٌة تدعم‬
‫بشكل متسارع نطاقا ً عرٌضا ً من أنماط العنونة المخصصة‪ ,‬مصممة من أجل التطبٌق الفعال لخوارزمٌات‬
‫معالجة اإلشارة ‪.‬‬
‫الشكل ‪ٌ 6‬ضٌؾ وحدات مولد العنوان إلى البنٌة األساسٌة لمعالج اإلشارة المبٌنة فً الشكل ‪ . c - 3‬كما‬
‫فً المعالجات ذات األؼراض العامة ‪ ,‬معالجات اإلشارة الرقمٌة تتضمن عداد برنامج و الذي ٌدٌر بنٌة‬
‫البرنامج و جرٌان البرنامج عن طرٌق إعطاء عناوٌن الذاكرة من أجل عملٌة جلب التعلٌمات ‪ .‬بعكس‬
‫معالجات األؼراض العامة فإن معالجات اإلشارة الرقمٌة تتضمن مولد عنوان الذاكرة و الذي ٌتحكم بتولٌد‬
‫العنوان من أجل أنماط العنونة المخصصة ‪.‬‬

‫الشكل ‪6‬‬
‫مثال على مولد عنوان باستخدام العوازل الحلقية ‪:‬‬
‫العوازل الحلقٌة هً مناطق محدودة من الذاكرة حٌث الداتا ٌتم تخزٌنها بطرٌقة ‪ FIFO‬هذه المناطق من‬
‫الذاكرة ٌتم إدارتها باستخدام طرٌقة ‪( warp-around‬االلتفاؾ حول) ‪ ,‬بمعنى آخر موقع ذاكرة متبوع بأول‬
‫موقع ذاكرة ‪ .‬مجموعتان من المؤشرات ٌتم استخدامها واحدة للقراءة و واحدة للكتابة ‪ ,‬طول الخطوة التً‬
‫عندها ٌتم الوصول إلى موقع الذاكرة ٌسمى ‪ . stride‬تستخدم وحدة تولٌد العنوان من أجل عملٌة "الخطو"‬
‫‪ striding‬عبر العوازل الحلقٌة بدون الحاجة إلى تعلٌمات خاصة من أجل تحدٌد أٌن سٌتم الوصول إلى‬
‫موقع الذاكرة التالً (تحدٌد عنوان الذاكرة التالً)‪ .‬تفٌد هذه الخاصة فً المرشحات الرقمٌة ‪.‬‬
‫الشكل ‪2‬‬
‫العنونة بعكس البتات ‪:‬‬
‫تستخدم فً حساب ‪ . DFT‬تتطلب العدٌد من عملٌات تنفٌذ تحوٌالت فورٌٌه أن ٌتم إعادة ترتٌب إما الدخل أو‬
‫الخرج و التً توافق عكس ترتٌب البتات فً فهرس المصفوفة ‪ .‬التنفٌذ عن طرٌق السوفتوٌر ٌتطلب العدٌد‬
‫من دورات الساعة فً ال ‪ CPU‬أما عن طرٌق خاصٌة ال ‪( bit-reversal‬عكس البتات) المنفذة كهاردوٌر‬
‫فالوضع أسهل ‪.‬‬

‫الشكل ‪9‬‬
‫‪ 3-2-3‬متحكم الوصول المباشر إلى الذاكرة ‪Direct Memory Access Controller DMA‬‬
‫متحكم الوصول السرٌع للذاكرة هو معالج ثان ٌعمل بالتوازي مع نواة ال ‪ DSP‬و مخصص لنقل المعلومات‬
‫بٌن موقعٌن من الذاكرة أو بٌن الطرفٌات و الذاكرة ‪ .‬عن طرٌق استخدام هذا المتحكم الثانً ٌتم تفرٌػ نواة‬
‫ال ‪ DSP‬من أجل عملٌات المعالجة األخرى ‪.‬‬

‫الشكل ‪8‬‬
‫ٌظهر الشكل ‪ 17‬فائدة استخدام ال ‪ DMA‬و المتمثلة فً تحرٌر معالج اإلشارة الرقمٌة من مهمة التعامل مع‬
‫الذاكرة بشكل مباشر و تفرؼه للقٌام بمهام أخرى ‪.‬‬

‫الشكل ‪ a . 17‬عملٌة القراءة و المعالجة و القراءة للبٌانات عند وجود نواة ‪ DSP‬بدون ‪ b . DMA‬عند‬
‫وجود نواة ‪ DSP‬و ‪. DMA‬‬
‫‪-3-3‬الحوسبة السريعة‬
‫نناقش اآلن تكتٌكات و بنى مستخدمة فً معالجات اإلشارة الرقمٌة من أجل الحوسبة السرٌعة ‪.‬‬
‫بنٌة ‪ MAC-centered‬مشتركة بٌن جمٌع المعالجات منذ أٌامها األولى ‪ .‬و باقً التقنٌات المذكورة تم‬
‫تقدٌمها منذ تسعٌنٌات القرن الماضً و ما بعد‪.‬‬
‫‪3.3.1‬بنية ال ‪MAC-centered‬‬
‫عملٌة ‪ MAC‬مستخدمة من قبل العدٌد من خوارزمٌات معالجة اإلشارة الرقمٌة كما تم مناقشته سابقا ً ‪ ,‬بناءاً‬
‫على ذلك ٌجب أن ٌتم أمثلة عملٌة تنفٌذها و بالتالً تحسٌن عمل معالج اإلشارة الرقمٌة ككل ‪ .‬إن الكتل‬
‫الرئٌسٌة الخاصة بالعملٌات الحسابٌة فً معالج اإلشارة الرقمٌة هً‬
‫عدد كبٌر من المسجالت ‪.‬‬ ‫‪-1‬‬
‫ضارب أو أكثر من ضارب ‪.‬‬ ‫‪-2‬‬
‫وحدة حساب و منطق واحدة أو أكثر ‪.‬‬ ‫‪-3‬‬
‫واحد أو أكثر من دارات اإلزاحة ‪.‬‬ ‫‪-4‬‬
‫هذه البلوكات تعمل على التوازي خالل نفس دورة الساعة ‪. clock cycle‬‬
‫البلوكات مبٌنة فً الشكل ‪ 11‬الذي ٌبٌن البلوكات الحسابٌة األساسٌة لمعالج ‪ADI SHARC‬‬

‫الشكل ‪11‬‬
‫المسجالت ‪ :‬هً كتل من الذاكرة ذات سرعة عالٌة جداً تستخدم من أجل تخزٌن البٌانات المرحلٌة‬ ‫‪-1‬‬
‫أثناء عملٌة المعالجة ‪ .‬و ؼالبا ً تكون هذه المسجالت ذات عرض أكبر من كلمة معالج اإلشارة‬
‫الرقمٌة العادٌة ‪ .‬و بالتالً ٌتم تقدٌم دقة أعلى أثناء عملٌة المعالجة ‪.‬‬
‫الضارب ‪ :‬من الممكن أن ٌقوم بتنفٌذ عملٌات الضرب خالل دورة ساعة واحدة و ؼالبا ً ما ٌتضمن‬ ‫‪-2‬‬
‫مسجالت مراكمة من أجل إنقاص عملٌة تدوٌر األعداد ‪ round-off‬و إلنقاص خطأ االقتطاع‬
‫‪ . truncation error‬كنتٌجة لذلك ‪ ,‬فإن أخطاء التدوٌر و االقتطاع ستحصل فقط فً نهاٌة عملٌة‬
‫معالجة البٌانات عندما تخزن البٌانات فً الذاكرة ‪ .‬فً بعض األحٌان ٌتم إدماج دارة جامع فً‬
‫الضارب ‪.‬‬
‫وحدة الحساب و المنطق ‪ : ALU‬تقوم بتنفٌذ العملٌات الحسابٌة و المنطقٌة‪.‬‬ ‫‪-3‬‬
‫دارات اإلزاحة ‪ : Sifters‬تقوم بإزاحة بتات الدخل بمقدار بت واحد أو أكثر إلى الٌمٌن أو الٌسار ‪.‬‬ ‫‪-4‬‬
‫من البنى المستخدمة من أجل اإلزاحة السرٌعة فً معالجات اإلشارة الرقمٌة بنٌة ال ‪barrel‬‬
‫‪ shifter‬و هو عبارة عن دارة إزاحة للدخل ال تستخدم أي منطق تتابعً و تتمٌز بسرعتها العالً ‪.‬‬
‫و ٌبٌن الشكل ‪ 12‬بنٌة ال ‪. barrel shifter‬‬

‫الشكل ‪12‬‬
‫‪ 2-3-3‬نقل التعليمات بطريقة أنبوبية ‪: instruction pipelining‬‬
‫عملٌة ال ‪ pipelining‬أصبحت عنصراً مهما ً لتحقٌق أداء عال لمعالجات اإلشارة الرقمٌة ‪ .‬تتألؾ من‬
‫تقسٌم التعلٌمات إلى مراحل متعددة و تنفٌذ التعلٌمات المتعددة بمراحل متوازٌة ‪ .‬نتٌجة لهذه العملٌة تزداد‬
‫انتاجٌة عملٌة تنفٌذ التعلٌمات ‪.‬العملٌة ككل ٌمكن مقارنتها بخط تجمٌع معمل ٌنتج السٌارات على سبٌل‬
‫المثال ‪ :‬حٌث توجد أكثر من سٌارة فً نفس الوقت على خط التجمٌع بنفس اللحظة ‪ ,‬و على مراحل مختلفة‬
‫من عملٌة التجمٌع ‪ .‬هذا ٌؤدي إلى إنتاج أعلى من الحالة التً ٌتم فٌها انتاج سٌارة واحدة فقط فً نفس‬
‫اللحظة حٌث تكون معظم طواقم التجمٌع فً حالة فراغ و ٌنتظرون السٌارة التالٌة التً تحتاج إلى قٌامهم‬
‫بعملهم ‪.‬‬
‫الجدول التالً ٌبٌن المراحل األساسٌة ‪ basic‬التً ٌنقسم إلٌها التنفٌذ األنبوبً للتعلٌمات ‪.‬‬
‫‪ -1‬عملٌة جلب التعلٌمة ‪ٌ :‬قوم معالج اإلشارة الرقمٌة بحساب العنوان الخاص بالتعلٌمة التالٌة ‪ .‬و‬
‫استعادة ترمٌز التعلٌمة و المعامالت التً ٌتم تنفٌذ العملٌة علٌهم ‪.‬‬
‫‪ -2‬فك ترمٌز التعلٌمة ‪ .‬رمز التعلٌمة ٌتم تفسٌره و ٌتم إرساله إلى الوحدة الوظٌفٌة الموافقة ‪ .‬التعلٌمة‬
‫ٌتم تفسٌرها و المعامالت ٌتم استعادتها ‪.‬‬
‫‪ -3‬التنفٌذ ‪ . Execute‬التعلٌمة ٌتم تنفٌذها و النتائج ٌتم كتابتها ضمن مسجالت ‪.‬‬

‫ٌظهر الشكل ‪ 13‬حسنة ‪ advantage‬المعالج الذي ٌنفذ التعلٌمات بشكل أنبوبً ‪ pipelined CPU‬بالمقارنة‬
‫مع معالج ال ٌنفذ التعلٌمات بشكل أنبوبً ‪ non-pipelined‬و ذلك فٌما ٌخص موضوع كسب المعالجة‬
‫‪ . processing gain‬فً المعالج الذي ال ٌنفذ التعلٌمات بشكل أنبوبً تكون التعلٌمات المختلفة منفذة بشكل‬
‫تسلسلً ‪ .‬بٌنما فً المعالج الذي ٌنفذ التعلٌمات بشكل أنبوبً الخطوات فقط هً التً تكون تسلسلٌة ( الجلب‬
‫و فك الترمٌز و التنفٌذ ( ‪ ,‬بٌنما التعلٌمات ٌتم تنفٌذها بشكل تفرعً ‪ .‬الخط األنبوبً ‪ٌ pipeline‬قال عنه‬
‫أنه محمل بشكل كامل ‪ fully-loaded‬إذا كانت كل المراحل تنفذ فً نفس الوقت ‪ ,‬و هذا ٌوافق أعلى‬
‫انتاجٌة ‪ throughput‬ممكن للتعلٌمات ‪.‬‬
‫الشكل ‪13‬‬

‫‪ 3-3-3‬البنى التفرعية ‪: parallel architectures‬‬


‫أداء معالج اإلشارة الرقمٌة ٌمكن أن ٌتم تحسٌنه عن طرٌق زٌادة التفرعٌة ‪ parallelism‬فً تنفٌذ‬
‫التعلٌمات‪.‬‬
‫بدأت معالجات اإلشارة الرقمٌة التً تم تحسٌن التفرعٌة فٌها بالظهور فً السوق فً أواسط التسعٌنٌات من‬
‫القرن الماضً و كان التفرع مبنٌا ً على مستوى التعلٌمة ‪ , instruction-based‬على مستوى البٌانات‬
‫‪ data-based‬أو من الممكن أن ٌكون مبنٌا ً على كلٌهما معا ‪ .‬هاتان الطرٌقتان تسمٌان " كلمة التعلٌمات‬
‫الطوٌلة جداً " )‪ Very Long Instruction Word (VLIW‬و طرٌقة الدخل الوحٌد و تعدد البٌانات‬
‫)‪ Single-Input Multiple-Data (SIMD‬على الترتٌب و سٌتم مناقشتهما الحقا ً ‪.‬‬
‫طرٌقة ‪ VLIW‬مبنٌة على تحقٌق عملٌة التفرع على مستوى التعلٌمة حٌث أن العدٌد من التعلٌمات ٌتم‬
‫التعامل معها فً نفس الوقت و ٌتم تنفٌذ هذه التعلٌمات بصورة تفرعٌة فً نفس الوقت عن طرٌق العدٌد من‬
‫وحدات التنفٌذ ‪ . execution units‬كنتٌجة لذلك فإن معالجات اإلشارة الرقمٌة المبنٌة على هذه البنٌة‬
‫أٌضا ً تسمى "‪ . "multi-issue‬تم استخدام هذه التقنٌة فً عائلة معالجات اإلشارة الرقمٌة ‪TMS323C22xx‬‬
‫من شركة ‪ . TI‬الشكل ‪ٌ 14‬بٌن مثاالً عن بنٌة مبنٌة بتقنٌة ‪. VLIW‬‬
‫الشكل ‪14‬‬
‫حٌث أن ثمانٌة تعلٌمات بطول ‪ 32‬بت قد تم تجمٌعها مع بعضها فً كلمة بطول ‪ 256-bit‬و قد تم تؽذٌتها‬
‫إلى ثمانٌة وحدات تنفٌذ منفصلة ‪.‬‬
‫فائدة مهمة لهذه البنٌة هً زٌادة أداء معالج اإلشارة الرقمٌة من أجل مجال واسع من الخوارزمٌات ‪.‬‬
‫باإلضافة إلى ذلك فإن هذه البنٌة من اإلمكان أن ٌتم تؽٌٌر مقاٌٌسها أي أنه من الممكن أن تتم إضافة المزٌد‬
‫من وحدات التنفٌذ و بالتالً المزٌد من التعلٌمات من الممكن أن ٌتم تنفٌذها بشكل متواز ‪ .‬توجد أٌضا ً‬
‫مساوئ لهذه العملٌة بسبب االستخدام الكبٌر للذاكرة استهالك الطاقة العالً فً هذه البنٌة ‪ .‬من وجهة نظر‬
‫المبرمج فإن كتابة كود أسمبلً من أجل بنٌة ‪ VLIW‬معقد للؽاٌة و عملٌة األمثلة من األفضل أن ٌتم تركها‬
‫للمترجم ‪. compiler‬‬
‫بنى ‪ SIMD‬مبنٌة على عملٌة التفرع على مستوى الداتا ‪ ,‬حٌث أن تعلٌمة واحدة ٌتم التعامل معها فً نفس‬
‫الوقت إال أن العملٌة ذاتها ٌتم تنفٌذها على العدٌد من مجموعات البٌانات ٌبٌن الشكل ‪ 15‬مثاالً عن معالج‬
‫إشارة رقمٌة مبنً على أساس بنٌة ‪: SIMD‬‬
‫الشكل ‪15‬‬
‫ٌستخدم مسجالن بطول ‪ 32‬بت من أجل تزوٌدنا بأربع مداخل بٌانات بطول ‪ 16‬بت ‪ٌ .‬تم التنفٌذ بشكل‬
‫تفرعً من قبل وحدتً تنفٌذ ‪ execution units‬و التان تنفذان العملٌة ذاتها ‪ .‬الخرجٌن اللذان ٌكونان‬
‫بطول ‪ٌ 16-bit‬تم تجمٌعهما فً مسجل بطول ‪ 32‬بت ‪ .‬تكون هذه الطرٌقة فعالة من أجل الخوارزمٌات‬
‫التً تتعامل مع قطع كبٌرة من البٌانات ‪ٌ .‬مكن لنمط ‪ SIMD‬أن ٌتم تفعٌله أو إلؽاء تفعٌله ‪ .‬مثال على ذلك‬
‫‪ . AID SHARC DSP‬إن فائدة بنٌة ‪ SIMD‬هو أنها من الممكن أن تطبق مع بنى أخرى بنفس الوقت ‪ ,‬على‬
‫سبٌل المثال معالج اإلشارة الرقمٌة ‪ٌ TigerSHARC‬تضمن خصائص ‪ . SIMD , VLIW‬سٌئة هذه الطرٌقة‬
‫هً أنها لٌست مفٌدة بالنسبة للخوارزمٌات التً تعالج البٌانات بشكل تسلسلً أو الخوارزمٌات األخرى التً‬
‫تضمن حلقات تؽذٌة عكسٌة ضٌقة ‪.‬‬
‫‪-4-3‬دقة األداء الرقمي ( دقة التعامل مع األعداد ) ‪Numerical fidelity‬‬
‫تتوفر فً معالجات اإلشارة أنماط تمثٌل لألعداد بصورة ‪ , fixed point , floating point‬باإلضافة إلى‬
‫هذه األنماط (الصٌػ) تؤمن معالجات اإلشارة الرقمٌة طرق تعتمد على الهاردوٌر لتحسٌن دقة التعامل مع‬
‫األعداد ‪ .‬مثال على ذلك ٌتم تمثٌله عن طرٌق مسجالت مراكمة كبٌرة ‪ ,‬تستخدم لكً ٌتم وضع القٌم‬
‫المرحلٌة و النهائٌة للعملٌات الحسابٌة ‪ .‬هذه المسجالت تملك عددا إضافٌا ً من البتات (على األقل أربعة بتات‬
‫) من أجل منع حصول الطفحان قدر اإلمكان خالل عملٌة المراكمة ‪ .‬البتات اإلضافٌة تسمى بتات الحماٌة و‬
‫تستخدم لكً تسمح للمبرمج أن ٌحصل على دقة أعلى فً العملٌات الحسابٌة المرحلٌة ‪ .‬تستخدم أٌضا ً‬
‫األعالم من أجل اإلشارة إلى أن الطفحان ‪ overflow / Underflow‬قد حصل ‪.‬هذه األعالم كون مرتبطة‬
‫بمقاطعات من أجل السماح لتوابع التعامل مع االستثناءات ‪ exceptions-handling routines‬بأن ٌتم‬
‫استدعاؤها ‪.‬‬
‫‪ 3.5‬التحكم السريع بالتنفيذ ‪fast-execution control‬‬
‫نبٌن هنا مثالٌن عن كٌفٌة قٌام معالج اإلشارة الرقمٌة بالتحكم السرٌع فً عملٌة التنفٌذ ‪ .‬المثال األول هو ال‬
‫‪ zero-overhead hardware loop‬و ٌشٌر إلى التحكم فً تدفق البرنامج عن طرٌق الحلقات ‪ .‬المثال‬
‫الثانً ٌشٌر إلى كٌفٌة قٌام معالج اإلشارة الرقمٌة بالتفاعل مع إشارات المقاطعة ‪.‬‬
‫العمل فً حلقات هو مٌزة حرجة فً العدٌد من خوارزمٌات معالجة اإلشارة الرقمٌة ‪ .‬إن مٌزة مهمة‬
‫لمعالجات اإلشارة الرقمٌة هً تنفٌذ البنى الحلقٌة عن طرٌق الهاردوٌر ‪ .‬و التً ٌشار إلٌها ب‬
‫" ‪ . "zero-overhead hardware loop‬هذا ٌسمح لمبرمج معالجات اإلشارة الرقمٌة أن ٌقوم بتهٌئة‬
‫عداد بصورة ابتدائٌة و تعرٌؾ حدود الحلقة ‪ ,‬بدون استخدام أي ‪ overhead‬إضافً خاص بالسوفتوٌر من‬
‫أجل تحدٌث و فحص عدادات الحلقات أو العودة إلى بداٌة الحلقة من جدٌد ‪.‬‬
‫إن إمكانٌة تخدٌم المقاطعات بصورة سرٌعة جداً و بصورة حتمٌة هً خاصٌة مهمة لمعالجات اإلشارة‬
‫الرقمٌة ‪ .‬المقاطعات هً أحداث تكون داخلٌة على سبٌل المثال ٌتم تولٌدها عن طرٌق المؤقتات أو خارجٌة‬
‫ٌتم تولٌدها عن طرٌق البنات الخارجٌة تقوم بتؽٌٌر تدفق التنفٌذ الخاص بمعالج اإلشارة الرقمٌة عندما ٌتم‬
‫تخدٌمها ‪ .‬التأخٌر هو الوقت الذي ٌمضً من لحظة قدح المقاطعة إلى اللحظة التً ٌبدأ فٌها معالج اإلشارة‬
‫الرقمٌة فً تنفٌذ أول عملٌة من تابع (روتٌن) تخدٌم المقاطعة ‪ . ISR‬عندما ٌتم استالم مقاطعة و عندما تكون‬
‫المقاطعة ذات أولوٌة عالٌة بشكل كاؾ ‪ٌ ,‬جب على معالج اإلشارة الرقمٌة أن ٌنفذ األعمال التالٌة ‪:‬‬
‫ا ‪ٌ -‬وقؾ الفعالٌة الحالٌة ‪.‬‬
‫ب – ٌحفظ المعلومات المرتبطة بالنشاط الذي ٌتم مقاطعته فً مكدس معالج اإلشارة الرقمٌة ‪.‬‬
‫ج – ٌبدأ فً عملٌة تخدٌم المقاطعة ‪.‬‬
‫تسمى المعلومات المحفوظة المرتبطة بالنشاط الحالً الذي تتم مقاطعته باسم ‪( context‬سٌاق أو مضمون)‪.‬‬
‫ال ‪ context‬الموافق للنشاط الذي تمت مقاطعته ٌمكن أن تتم استعادته عندما ٌتم تنفٌذ ال ‪ ISR‬و النشاط‬
‫السابق ٌتم استعادته ‪.‬‬
‫ٌتم استخدام أكثر من محول ‪ dispatcher‬بشكل نمطً فً معالجات اإلشارة الرقمٌة و هذا ٌعنً أن‬
‫المستخدم من الممكن أن ٌحدد كمٌة ال ‪ context‬التً ٌتم حفظها ‪ ,‬مع معرفة أن العدد األعلى من‬
‫المسجالت التً ٌتم حفظها ٌقتضً زمن تبدٌل أعلى ‪ .‬خاصٌة مهمة فً بعض معالجات اإلشارة الرقمٌة مثل‬
‫‪ ADI SHARC AD21123‬هى وجىد نىعين من مجمىعات المسجالت تسمى مسجالت أولية‬
‫‪ primary‬و مسجالت بدٌلة ‪ alternate‬من أجل جمٌع المسجالت الرئٌسٌة لوحدة المعالجة المركزٌة ‪.‬‬
‫عندما تحصل مقاطعة ٌتم استخدام المسجالت البدٌلة و بالتالً عملٌة تبدٌل المضمون ‪ context‬هً عملٌة‬
‫سرٌعة ‪ .‬الجدول التالً ٌبٌن المحوالت األربعة المتوفرة فً معالج اإلشارة الرقمٌة ‪ ADSP21123M‬و‬
‫التأخير المىافق المتعلق بهم ‪. corresponding latency‬‬

You might also like