Yeni yazı: DMA ve Cache — Cortex-A9 / Zynq-7000 üzerinde sessiz veri bozulması#119
Open
Mavrikant wants to merge 1 commit into
Open
Yeni yazı: DMA ve Cache — Cortex-A9 / Zynq-7000 üzerinde sessiz veri bozulması#119Mavrikant wants to merge 1 commit into
Mavrikant wants to merge 1 commit into
Conversation
…bozulması ARM Cortex-A9'da DMA ile L1/L2 cache arasındaki coherency problemini somut bir ADC ring buffer örneği üzerinden ele alan uzun-form bir yazı. DCCMVAC, DCIMVAC ve DCCIMVAC ile maintenance dilbilgisi; partial-line ve clean+invalidate yarış koşulu gibi klasik tuzaklar; non-cacheable bölge ve ACP alternatifleri; pratik bir karar tablosu. agent/topics.md güncellendi, agent/research/ altına araştırma notları eklendi. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced Jun 8, 2026
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
DMA ve Cache: ARM Cortex-A9 Üzerinde Sessizce Eskimiş Veri Hatasının Anatomisi. Zynq-7000 (Cortex-A9 + PL310) zemininde, DMA ile L1/L2 cache arasındaki coherency probleminin somut bir ADC ring buffer örneği üzerinden ele alındığı uzun-form bir yazı.
Neden bu konu seçildi?
volatileYetmediğinde — Zynq-7000 Üzerinde C11_Atomic, SCU ve Bellek Bariyerleri #100 ("volatileYetmediğinde —_Atomic, SCU, bellek bariyerleri") CPU↔CPU senkronizasyonunu ele alıyor; bu yazı ise CPU↔DMA cephesindeki cache coherency'yi ele alıyor. Ortak yön yalnızca DSB bariyeri ve Zynq-7000 zemini — konular birbirinden bağımsız.Bu konuyu Türkçe içerikte bulmak neden zor?
Bilgi şu kaynaklar arasında dağınık: ARM ARM (DDI 0406C), Cortex-A9 TRM, PL310 TRM (DDI 0246H), Xilinx UG585, Xilinx embeddedsw
xil_cache.c, Linux kernel DMA-API dokümanı, ARM Community ve Xilinx forum cevapları. Klasik tuzaklar (partial-line, adjacent variable corruption, L1/L2 ayrı bakım, ACP'nin bant darlığı) bu kaynakların hiçbirinde tek bir sentezde toplanmamış. Türkçe içerikte konunun ciddi bir tartışması neredeyse yok. Yazı bu kaynakları bir araya getirip somut bir reprodüksiyon ile bağlıyor.Derinlik öğesi (Bölüm 7)
Failure mode analysis + cache maintenance instruction walkthrough + somut yarış koşulu reprodüksiyonu. Yazı, bug'lı bir ADC ring buffer kodunu adım adım inceliyor; alignment, L1/L2 sırası, clean+invalidate yarış koşulu ve cache pressure ile ilgili gözlemleri gerçek bir senaryoda gösteriyor; ardından kodu düzeltiyor.
Kullanılan kaynaklar
Yazının sonundaki "Kaynaklar" bölümünde tam listesi var; özetle:
xil_cache.c.Documentation/core-api/dma-api-howto.rst.Öz-eleştiri (Critic fazı bulguları ve düzeltmeleri)
Xil_DCacheFlushRange()v8.0'da düzeltilen L1/L2 race condition'ı, web search ile doğrulandı; kesin sürüm numarası kaynaklara dayandı.Stil ve şekil kontrolü
coupling-dengesi,bandpass-samplingile karşılaştırıldı) ✓mermaid: trueile bir sequence diagram ✓## Kaynaklarsonda, gerçek linkler ✓/img/posts/3.webp(generic, mevcut) ✓Yayın akışı
master'a doğrudan hiçbir şey push edilmedi. Bu PR insan inceleme bekliyor; merge kararı tamamen insana ait.