DSP 101
M12 · L01
الوحدة 12: الختام والتطبيقات الحقيقية

الـ DSP على الـ embedded systems

النظرية بتقابل الدواير الإلكترونية. الـ filters والـ FFTs والـ correlations بتشتغل فعلًا إزاي على chip بملّي واتات من الطاقة وميكروثانية للمعالجة؟

01 / 11
DSP 101
M12 · L01
الواقع

تلات قيود صارمة

الـ embedded DSP دايمًا موازنة تلاتية. وعكس software الكمبيوتر المكتبي، متقدرش تتحايل على أي قيد فيهم بالفلوس.

mW
ميزانية الطاقة — بيحددها عمر البطارية
KB
الـ memory — كيلوبايتات مش جيجابايتات
µs
الـ deadline — فوّته والـ signal تبوظ
02 / 11
DSP 101
M12 · L01
الحساب

fixed-point قصاد floating-point

الـ floating-point سهل في البرمجة بس غالي في الـ hardware. والـ fixed-point (Q15, Q31) بيشتغل على hardware الأعداد الصحيحة — طاقة أقل بـ 10 أضعاف، ونفس الخوارزمية.

صيغة Q
x = k \cdot 2^{-N}
03 / 11
DSP 101
M12 · L01
الخطر

الـ overflow كارثي

  • الـ fixed-point ليه نطاق محدود — لو عدّيته القيمة بتعمل wraparound
  • الـ wraparound في الصوت: click حاد أو تشويه كامل
  • الحل: الـ saturation arithmetic — التثبيت عند الحد الأقصى مش الـ wraparound
  • الحل: الـ scaling الدقيق — سيب headroom قبل الضرب
  • الـ accumulator اللي 64 bit بيستوعب مئات الضربات بأمان
04 / 11
DSP 101
M12 · L01
الـ hardware

processors متصمّمة للـ DSP

مش كل الـ processors زي بعض. أنوية الـ DSP بتضيف مزايا بتخلّي loops الـ signals أسرع بفرق كبير.

  • MAC في cycle واحدة: y += a × b في clock واحدة
  • SIMD: عمليتين MAC (أو تمانية) في كل cycle
  • الـ circular buffer addressing: delay lines من غير تكلفة
  • الـ bit-reversed addressing: إعادة ترتيب الـ FFT بالـ hardware
05 / 11
DSP 101
M12 · L01
أجهزة حقيقية

TI C6000 وARM Cortex-M

TI C6748
3,000 MMACS · VLIW · أقل من 1W · صوت، طب، modem
ARM Cortex-M55
Helium SIMD · 8 MACs/cycle · تيار mA · sensors الـ IoT
06 / 11
DSP 101
M12 · L01
تسلسل الـ memory hierarchy

خلّي البيانات قريبة من النواة

الـ DRAM الخارجية أبطأ من 10 لـ 100 ضعف من الـ SRAM الداخلية. والمعاملات والـ circular buffers لازم يعيشوا في TCM أو memory L1 عشان يلحقوا الـ deadlines بتاعة الـ real time.

مثال على الميزانية
معاملات FIR فيه 256 tap Q15 = 512 بايت · buffer FFT بـ 1024 نقطة = 8 كيلوبايت · الاتنين بيساعهم الـ TCM في Cortex-M7
07 / 11
DSP 101
M12 · L01
الـ real time

سريع بشكل متوقّع

الـ real time مش معناه سريع في المتوسط — معناه إنك عمرك ما تفوّت deadline. حتى مرة واحدة بتبوّظ الـ signal.

الـ CPU load
\text{Load} = \frac{\text{cycles / frame}}{f_{\mathrm{clk}} \times T_{\mathrm{frame}}}
08 / 11
DSP 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة عن الـ embedded DSP — حساب الـ fixed-point، والـ overflow، ومزايا أنوية الـ DSP، والـ memory hierarchy.

السؤال 1 من 0
النتيجة 0/0

09 / 11
DSP 101
M12 · L01
التحسين

code بيشتغل بسرعة

  • استخدم CMSIS-DSP / DSPLIB: assembly SIMD متظبّط — متعيدش كتابته
  • الـ SIMD intrinsics: عمليتين MAC بـ Q15 في كل cycle عن طريق __SMLAD()
  • شيل الـ branches من الـ loops الحرجة — الـ pipeline stalls بتقتل الـ throughput
  • DMA بـ ping-pong buffers: احسب والـ DMA بيملا الـ block اللي بعده
  • استهدف load أقل من 70% — سيب هامش للـ interrupts
10 / 11
DSP 101
اللي جاي
الجاي

سلسلة المؤثرات الصوتية

اجمع كل حاجة: EQ، وreverb، وcompression، وdelay — audio processor متعدد المراحل من الدخل للخرج.

11 / 11