Yeni yazı: Sabit Nokta Aritmetik — FPU'suz Cortex-M0'da Q15 FIR Filtresi#114
Open
Mavrikant wants to merge 1 commit into
Open
Yeni yazı: Sabit Nokta Aritmetik — FPU'suz Cortex-M0'da Q15 FIR Filtresi#114Mavrikant wants to merge 1 commit into
Mavrikant wants to merge 1 commit into
Conversation
Konu: Q-format (Q15/Q31) sabit nokta aritmetik ve FPU'suz Cortex-M0 üzerinde gerçekleştirilen 32-tap FIR filtresi. Derinlik öğesi (CLAUDE-task Bölüm 7): assembly inspection + cycle benchmark. Aynı Q15 MAC kodu Cortex-M0 (Armv6-M), M3 (Armv7-M) ve M4 (Armv7E-M, DSP) için arm-none-eabi-gcc ile derlenip gerçek assembly çıktıları yan yana gösteriliyor. Sonra 32-tap FIR için Q15 vs libgcc soft-float cycle karşılaştırması yapılıyor (~3 cycle/MAC vs ~300 cycle/MAC, ~100x oran). Bölümler: - Q-format notasyonu (Qm.n, Q15 LSB ≈ 30.5 µ) - Q15 × Q15 = Q2.30 anatomisi - Cortex-M0 MULS sınırları (32×32→32 düşük; SSAT/SMLABB/SMLAL yok) - M3/M4 karşılaştırma (barrel shifter, DSP eklentisi) - Soft-float maliyeti analizi - Saturasyon (−1 × −1 köşesi) - Yuvarlama biası (round-to-nearest: +(1<<14)) - Headroom ve accumulator (L1 norm) - 32-tap FIR tam örnek (Python coefficient generator + C kodu + assembly) - CMSIS-DSP SMLALD karşılaştırması - Pratik tavsiyeler ve WCET Novelty (Bölüm 8): Q-format Türkçe içerikte boş; Cortex-M0 özelinde "MAC 3 cycle vs soft-float ~300 cycle" tek bir benchmark olarak hiçbir yerde ölçülmemiş. TI SLAA329 ve CMSIS-DSP başlık dosyalarına dağınık halde gömülü. Kaynaklar: ARM DUI 0497 (M0), DUI 0553 (M4), DDI 0432 (M0 TRM), DDI 0403 (Armv7-M ARM), TI SLAA329, CMSIS-DSP dokümantasyon ve GitHub kaynağı, Wikipedia Q (number format), gcc-arm-none-eabi. Gizlilik (Bölüm 11): tüm bilgiler kamuya açık ARM dokümanları ve Apache 2.0 CMSIS-DSP'den. Proje/müşteri/iç süreç referansı yok. Defteri (agent/topics.md) güncellendi: yayınlanan 4 yeni post, 17 açık PR, seçim gerekçesi ve "neden bu konu az bulunuyor" notları eklendi. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Konu
Sabit Nokta Aritmetik: FPU'suz Cortex-M0'da Q15 FIR Filtresi — Q-format
sabit nokta aritmetik, ARM Cortex-M0/M3/M4 ISA farkları, ve 32-tap FIR
filtresinin Q15 ile soft-float karşılaştırması.
Dosya:
_posts/2026-06-04-sabit-nokta-cortex-m0-q15-fir.md(~3100 kelime)Araştırma notu:
agent/research/2026-06-04-sabit-nokta-cortex-m0-q15-fir.mdNeden bu konu seçildi (Bölüm 6)
fark, hiçbir Türkçe kaynakta bu somutlukla ölçülmüş değil.
Mevcut Expand denormalize numbers and FTZ/DAZ section in float post #50 (Float FTZ/DAZ) IEEE 754 davranışı, Yeni yazı:
volatileYetmediğinde — Zynq-7000 Üzerinde C11_Atomic, SCU ve Bellek Bariyerleri #100 (volatile/_Atomic)eşzamanlılık — Q15 saf integer DSP, ayrı alt-alan.
problem; doğru çözüm pratik mühendislik faydası sağlar.
CMSIS-DSP kaynağından.
Derinlik öğesi (Bölüm 7)
Assembly inspection + cycle benchmark.
için arm-none-eabi-gcc ile derlenip gerçek assembly çıktısı gösterildi.
soft-float'ta ~300 cycle/MAC.
Bu konu neden internette zor bulunuyor? (Bölüm 8)
dosyaları, ARM blogları — sentezlenmiş tek bir referans yok.
pratik sonuçları (yazılım saturasyonu, MULS'un düşük 32 bit kısıtı) tek
bir yazıda hiçbir yerde ele alınmamış.
Kullanılan kaynaklar
gcc-arm-none-eabibelgeleri, libgcc soft-float rutinleri.Öz-eleştiri özeti (Bölüm 13)
gömülü/SoC). Bu yazı: gömülü/DSP-implementation.
cycle hesabı dökümante edildi).
Cortex-M3 SSAT, Cortex-M4 DSP eklentisi).
birebir).
dünyasında" vb.) yok.
Critic fazında yapılan düzeltmeler
yalnızca M0'ın sentez zamanı seçeneği, M0+ daima 1-cycle multiplier.
~9 değil ~12 cycle/tap; toplam ~360 değil ~450 cycle/örnek; CPU yükü
%36 değil %45.
İnsan inceleyicinin dikkatine
mermaid: trueçıkarıldı.
/img/posts/8.webpkullanıldı (jenerik, mevcut).(PR WCET Analizi: Statik mi, Ölçüm mü, Hibrit mi? #88 ile Yeni yazı: WCET Analizi — Statik Yöntemler, Ölçüm Tabanlı Yaklaşımlar ve Cache'in Karanlık Tarafı #98 WCET konusunda olası çakışma; PR Add blog post: MISRA C ve Statik Analiz #51 ile yayındaki MISRA
C:2025 yazısının olası çakışması).
🤖 Generated with Claude Code