MICROCHIP TB3308 Nangani Masalah Koherensi Cache nalika Runtime Nggunakake Pangopènan Cache

Pambuka
Masalah koherensi cache ora bisa dihindari ing aplikasi sing mlaku ing mikrokontroler (MCU) sing duwe wilayah memori sing bisa di-cache, sing nggunakake Direct Memory Access (DMA) kanggo operasi transfer data. Iki amarga CPU nindakake operasi maca / nulis saka cache nalika DMA nransfer data antarane memori peripheral lan fisik.
Salah siji cara kanggo nangani koherensi cache mbutuhake aplikasi kanggo ngatur cache nalika mbukak-wektu nggunakake operasi pangopènan cache. MPLAB® Harmony v3 nyedhiyakake Antarmuka Program Aplikasi (API) pangopènan cache kanggo piranti PIC32MZ.
Dokumen iki nerangake carane aplikasi bisa ngatur masalah koherensi cache nalika mbukak kanthi nggunakake API manajemen cache ing MPLAB Harmony v3.
Cathetan: Konsep sing dibahas ing dokumen iki umum kanggo kabeh MCU PIC32MZ. PIC32MZ EF digunakake minangka mantanample kanggo ngrembug konsep.
Katrangan
Tokoh ing ngisor iki nggambarake masalah koherensi cache sing diamati nalika DMA maca saka SRAM ing PIC32MZ EF MCU.
Gambar 1-1. Transfer Memory-to-Peripheral (DMA Wacan saka SRAM)
Aplikasi ngirim panjalukan kanggo nransfer data buffer nilai TxBuffer 'ABCDEFGH' menyang peripheral. CPU populates DMA nulis buffer (TxBuffer) karo data bakal ditulis 'ABCDEFGH' kanggo peripheral.
Nanging, amarga kawicaksanan cache nyetel Write Back and Write Allocate, buffer nulis DMA (TxBuffer) bisa uga ora langsung ditulis ing memori utama, lan data sing ditulis bisa tetep ing cache data. Buffer nulis DMA (TxBuffer) ing memori utama isih ngemot nilai lawas '12345678'.
Nalika DMA micu kanggo miwiti transfer memori menyang peripheral, DMA maca buffer (TxBuffer) saka memori utama minangka '12345678'. Akibaté, DMA rampung nransfer data basi menyang peripheral.
Tokoh ing ngisor iki nggambarake masalah koherensi cache sing diamati nalika DMA nulis menyang SRAM.
Gambar 1-2. Transfer Peripheral-to-Memory (DMA Tulis menyang SRAM)
Aplikasi ngirim panjalukan kanggo nampa data ing RxBuffer kanthi nilai '12345678' saka peripheral. DMA populates RxBuffer karo nilai '12345678' ing SRAM. Nanging, cache data ora dianyari, lan terus nyimpen data sadurunge. Nalika CPU maos RxBuffer, ends maca Nilai sadurungé sing ana ing buffer minangka 'ABCDEFGH'.
Nangani Koherensi Cache
Cara loro kanggo nangani masalah koherensi cache digambarake ing Memory to Peripheral Transfer (DMA Reads from SRAM) lan Peripheral-to-Memory Transfer (DMA Writes to SRAM). Cara kasebut kalebu aplikasi sing ngatur cache nalika mbukak-wektu nggunakake operasi pangopènan. Operasi kasebut kalebu kemampuan kanggo nindakake tumindak kasebut:
Batal sah cache: Tandha garis cache ora sah. Akses sakteruse meksa data disalin saka memori utama menyang cache.
Ngresiki cache: Nulis garis cache, sing ditandhani minangka reged, bali menyang memori utama Kanggo nangani koherensi cache rembugan ing Memory to Peripheral Transfer (DMA Reads saka SRAM), nindakake tumindak ing ngisor iki:
- Aplikasi ngisi buffer data nulis (TxBuffer) kanthi nilai 'ABCEDFGH'. Amarga kabijakan cache standar (Tulis Mbalik lan Tulis Alokasi), data sing ditulis bisa uga ana ing cache.
Gambar 1-3. Populate Tulis Buffer
- Siram buffer data nulis (TxBuffer) kanthi nilai 'ABCDEFGH' menyang memori utama kanthi nelpon API cache sing resik.
Gambar 1-4. Flush Tulis Buffer
- Aplikasi ngirim panjalukan kanggo nransfer data saka TxBuffer kanthi nilai 'ABCDEFGH' menyang peripheral.
Gambar 1-5. Tulis menyang Peripheral
Kanggo nangani koherensi cache kaya sing dibahas ing Peripheral to Memory Transfer (DMA Writes to SRAM), tindakake langkah iki:
- Aplikasi kasebut nelpon API cache Invalidate kanggo menehi tandha garis cache ora valid.
Gambar 1-6. Cache ora sah
- Aplikasi ngirim panjalukan kanggo nampa data ing RxBuffer kanthi nilai '12345678' saka peripheral.
- DMA ngisi RxBuffer kanthi nilai '12345678' ing SRAM.
- Amarga garis cache sing cocog karo RxBuffer ing negara ora bener, akses diwaca dening CPU nyebabake RxBuffer disalin saka memori utama menyang cache data.
Gambar 1-7. Nangani Peripheral-kanggo-Memori Transfer Cache Koherensi
Implementasine
Konfigurasi
Ing proyek MPLAB Harmony v3 kanggo PIC32 MZ EF, operasi pangopènan cache diaktifake dening MPLAB Harmony v3 Configurator (MHC) utawa MPLAB Code Configurator (MCC). Ing MHC utawa MCC, setelan konfigurasi bisa ditemokake ing grafik proyek > Sistem > Konfigurasi MIPS > Cache.
Gambar 2-1. Konfigurasi Cache MHC
Data-Cache Maintenance API
MPLAB Harmony v3 nyedhiyakake API pangopènan cache data ing ngisor iki:
Tabel 2-1. Data-Cache Maintenance API
| jeneng | Katrangan |
| DCACHE_INVALIDATE (kosong) | Mbusak sah kabeh cache data sadurunge ngaktifake. |
| DCACHE_CLEAN_BY_ADDR (uint32_t addr, size_t sz) | Tulis maneh lan mbatalake sawetara alamat ing cache data. |
| DCACHE_INVALIDATE_BY_ADDR (uint32_t addr, size_t sz) | Batal sah sawetara alamat ing cache data. |
| DCACHE_CLEAN_INVALIDATE_BY_ADDR (uint32_t addr, size_t sz) | Tulis maneh lan mbatalake sawetara alamat ing cache data. |
Cathetan:
- MCU data tartamtu lan instruksi cache pangopènan API kasedhiya minangka perpustakaan peripheral (PLIB) plib_cache.c. Deleng aplikasi PLIB examping:
https://github.com/Microchip-MPLAB-Harmony/csp_apps_pic32mz_ef/tree/master/apps/cache/cache_maintenance. - Nalika nggunakake cache resik lan cache ora valid dening alamat API:
- addr: Kudu didadekake siji kanggo wates ukuran garis cache. Iki tegese alamat buffer DMA kudu didadekake siji kanggo wates 16-bait.
- dsize: Kudu dadi pirang-pirang ukuran garis cache. Iki tegese ukuran buffer DMA kudu pirang-pirang 16-byte.
Example
Ex kode ing ngisor ikiample nduduhake panggunaan data-cache pangopènan API bebarengan karo MPLAB Harmony v3 DMA perpustakaan peripheral API kanggo maca lan nulis data liwat antarmuka UART.
Kanggo kode sumber rinci, deleng aplikasi PLIB examping:
https://github.com/Microchip-MPLAB-Harmony/csp_apps_pic32mz_ef/tree/master/apps/cache/cache_maintenance.
Cathetan: Masalah koherensi cache sing dibahas ing ndhuwur uga bisa ditangani ing wektu link kanthi nggunakake atribut variabel koheren menyang buffer data ing pratelan.
unsigned int __attribute__((koheren)) buffer [1024];
Ing kode iki, compiler allocates (ing wektu link) unsur 1024 ing wilayah memori non-cacheable KSEG1.
Referensi
Dokumen ing ngisor iki kadhaptar minangka sumber daya. Kanggo informasi tambahan babagan koherensi cache lan produk Microchip sing gegandhengan, waca Microchip Websitus, utawa hubungi wakil sales Microchip lokal.
- Nggunakake L1 Cache ing Piranti PIC32MZ
- PIC32MZ EF Cache Maintenance PLIB Example
- Paket MPLAB Harmony v3 Quick Docs nyedhiyakake kaca bantuan mandiri kanggo pangguna kanggo miwiti ngembangake aplikasi ing SAM 32-bit Microchip lan PIC32 MCU. Ngundhuh repositori quick_docs lan miwiti karo index.html file kasedhiya ing folder docs.
Versi online kasedhiya ing: microchip-mplab-harmony.github.io/quick_docs/. - MPLAB Harmony v3 landing web kaca: www.microchip.com/mplab/mplab-harmony
Microchip kasebut Websitus
Microchip nyedhiyakake dhukungan online liwat kita websitus ing www.microchip.com/. Iki websitus digunakake kanggo nggawe files lan informasi gampang kasedhiya kanggo pelanggan. Sawetara konten sing kasedhiya kalebu:
- Dhukungan Produk - Lembar data lan kesalahan, cathetan aplikasi lan sampprogram le, sumber desain, Panuntun pangguna lan dokumen support hardware, Rilis piranti lunak paling anyar lan piranti lunak arsip
- Dukungan Teknis Umum - Pitakonan Paling Sering (FAQ), panjalukan dhukungan teknis, grup diskusi online, daftar anggota program mitra desain Microchip
- Bisnis Microchip - Pemilih produk lan pandhuan pesenan, siaran pers Microchip paling anyar, dhaptar seminar lan acara, dhaptar kantor penjualan Microchip, distributor lan perwakilan pabrik
Layanan Notifikasi Ganti Produk
Layanan kabar pangowahan produk Microchip mbantu para pelanggan tetep saiki ing produk Microchip. Pelanggan bakal nampa kabar email yen ana owah-owahan, nganyari, revisi utawa kesalahan sing ana gandhengane karo kulawarga produk utawa alat pangembangan sing dikarepake.
Kanggo ndhaftar, pindhah menyang www.microchip.com/pcn lan tindakake pandhuan registrasi.
Dhukungan Pelanggan
Pangguna produk Microchip bisa nampa pitulung liwat sawetara saluran:
- Distributor utawa Perwakilan
- Kantor Penjualan Lokal
- Embedded Solution Engineer (ESE)
- Dhukungan Teknis
Pelanggan kudu hubungi distributor, wakil utawa ESE kanggo dhukungan. Kantor penjualan lokal uga kasedhiya kanggo mbantu para pelanggan. Dhaptar kantor penjualan lan lokasi kalebu ing dokumen iki.
Dhukungan teknis kasedhiya liwat websitus ing: www.microchip.com/support
Fitur Proteksi Kode Piranti Microchip
Elinga rincian ing ngisor iki babagan fitur perlindungan kode ing produk Microchip:
- Produk Microchip cocog karo spesifikasi sing ana ing Lembar Data Microchip tartamtu.
- Microchip percaya yen kulawarga produk kasebut aman nalika digunakake kanthi cara sing dikarepake, ing spesifikasi operasi, lan ing kahanan normal.
- Nilai Microchip lan agresif nglindhungi hak properti intelektual sawijining. Usaha kanggo nglanggar fitur perlindungan kode produk Microchip dilarang banget lan bisa uga nglanggar Digital Millennium Copyright Act.
- Microchip utawa pabrikan semikonduktor liyane ora bisa njamin keamanan kode kasebut. Proteksi kode ora ateges manawa produk kasebut "ora bisa dipecah". Proteksi kode terus berkembang. Microchip nduweni komitmen kanggo terus ningkatake fitur perlindungan kode produk kita.
Kabar Legal
Publikasi iki lan informasi ing kene mung bisa digunakake karo produk Microchip, kalebu kanggo ngrancang, nguji, lan nggabungake produk Microchip karo aplikasi sampeyan. Panganggone informasi iki kanthi cara liya nglanggar syarat kasebut. Informasi babagan aplikasi piranti diwenehake mung kanggo penak sampeyan lan bisa uga diganti karo nganyari. Sampeyan tanggung jawab kanggo mesthekake yen aplikasi sampeyan cocog karo spesifikasi sampeyan. Hubungi kantor sales Microchip lokal kanggo dhukungan tambahan utawa, entuk dhukungan tambahan ing www.microchip.com/en-us/support/design-help/client-support-services.
INFORMASI IKI DISEDIAKAN BY MICROCHIP "AS IS". MICROCHIP TANPA REPRESENTASI UTAWA JAMINAN APA SAJA APA SAJA UTAWA TERSRAT, TERTULIS UTAWA LISAN, STATUTORY
Utawa liyane, RELATED TO INFORMASI Klebu Nanging ora winates kanggo ANY JAMINAN ON-PElanggaran, MERCHANTABILITY, lan FITNESS kanggo tujuan tartamtu, UTAWA JAMINAN RELATED TO KONDISI, QUALITY, UTAWA KINERJA.
MICROCHIP ORA TANGGUH TANGGUNG JAWAB ANGGAP, KHUSUS, PUNITIF, INSIDENTAL, UTAWA KONSEQUENTIAL RUGI, RUSAK, BIAYA, UTAWA BAYARAN APA SAJA KANGGO ING INFORMASI UTAWA PENGGUNAAN, NANGUN SING DIBUAT, SANAYAN ANA KEMUNGKINAN UTAWA KERUSAKAN SING BISA DIPIKIR. TO THE FULLEST EXTENT diijini dening hukum, TANGGUNG JAWAB TOTAL MICROCHIP ING ALL CLAIMS ing sembarang cara sing ana hubungane karo informasi utawa panggunaan ora ngluwihi jumlah biaya, yen ana, sing sampeyan wis mbayar langsung menyang microchip kanggo informasi.
Panggunaan piranti Microchip ing support urip lan / utawa aplikasi safety tanggung ing resiko panuku, lan panuku setuju kanggo defend, indemnify lan terus Microchip mbebayani saka samubarang lan kabeh karusakan, claims, cocog, utawa expenses asil saka nggunakake kuwi. Ora ana lisensi sing diwenehake, kanthi implisit utawa liya, miturut hak properti intelektual Microchip kajaba kasebut.
merek dagang
Jeneng lan logo Microchip, logo Microchip, Adaptec, AnyRate, AVR, logo AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron, lan XMEGA minangka merek dagang kadhaptar saka Microchip Technology Incorporated ing AS lan negara liya.
AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath, lan ZL minangka merek dagang kadhaptar saka Microchip Technology Incorporated ing AS
Penindasan Tombol Adjacent, AKS, Analog-kanggo-Digital Age, Kapasitor Apa wae, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Pencocokan Rata-rata Dinamis, DEM , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, Pemrograman Serial In-Circuit, ICSP, INICnet, Paralel Cerdas, Konektivitas Antar-Chip, JitterBlocker, Knob-on-Display, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE , Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect, lan ZENA minangka merek dagang saka Microchip Technology Incorporated ing
USA lan negara liyane.
SQTP minangka tandha layanan saka Microchip Technology Incorporated ing AS
Logo Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom, lan Trusted Time minangka merek dagang kadhaptar saka Microchip Technology Inc. ing negara liya.
GestIC minangka merek dagang kadhaptar saka Microchip Technology Germany II GmbH & Co. KG, anak perusahaan saka Microchip Technology Inc., ing negara liya.
Kabeh merek dagang liyane sing kasebut ing kene minangka properti saka perusahaan kasebut.
© 2021, Microchip Technology Incorporated lan anak perusahaan. Kabeh hak dilindhungi undhang-undhang.
ISBN: 978-1-5224-9447-8
Sistem Manajemen Mutu
Kanggo informasi babagan Sistem Manajemen Kualitas Microchip, bukak www.microchip.com/quality.
Dodolan lan Layanan ing saindenging jagad
AMERIKA
Kantor perusahaan
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Telpon: 480-792-7200
Fax: 480-792-7277 Dhukungan Teknis:
www.microchip.com/support
Web alamat:
www.microchip.com
Atlanta
Duluth, GA
Telpon: 678-957-9614
Fax: 678-957-1455 Austin, TX
Telpon: 512-257-3370 Boston
Westborough, MA
Telpon: 774-760-0087
Fax: 774-760-0088 Chicago
Itasca, IL
Telpon: 630-285-0071
Fax: 630-285-0075 Dallas
Addison, TX
Telpon: 972-818-7423
Fax: 972-818-2924 Detroit
Novi, MI
Telpon: 248-848-4000 Houston, TX
Telpon: 281-894-5983 Indianapolis
Noblesville, IN
Telpon: 317-773-8323
Fax: 317-773-5453
Telpon: 317-536-2380
Los Angeles
Mission Viejo, CA
Telpon: 949-462-9523
Fax: 949-462-9608
Telpon: 951-273-7800 Raleigh, NC
Telpon: 919-844-7510
New York, NY
Telpon: 631-435-6000
San Jose, CA
Telpon: 408-735-9110
Telpon: 408-436-4270 Kanada - Toronto
Telpon: 905-695-1980
Fax: 905-695-2078
ASIA / PASIFIK
Australia - Sydney
Telp: 61-2-9868-6733 China – Beijing
Tel: 86-10-8569-7000 China – Chengdu
Telp: 86-28-8665-5511 China – Chongqing Telp: 86-23-8980-9588 China – Dongguan
Telp: 86-769-8702-9880 China – Guangzhou Telp: 86-20-8755-8029 China – Hangzhou
Telp: 86-571-8792-8115 China – Hong Kong SAR Telp: 852-2943-5100 China – Nanjing
Telp: 86-25-8473-2460 China – Qingdao
Telp: 86-532-8502-7355 China – Shanghai
Tel: 86-21-3326-8000 China – Shenyang
Telpon: 86-24-2334-2829 China - Shenzhen
Telp: 86-755-8864-2200 China – Suzhou
Telpon: 86-186-6233-1526 China - Wuhan
Telp: 86-27-5980-5300 China – Xian
Telp: 86-29-8833-7252 China – Xiamen
Telp: 86-592-2388138 China – Zhuhai
Telpon: 86-756-3210040
ASIA / PASIFIK
India - Bangalore
Telp: 91-80-3090-4444 India – New Delhi
Tel: 91-11-4160-8631 India – Pune
Telp: 91-20-4121-0141 Japan – Osaka
Telp: 81-6-6152-7160 Japan – Tokyo
Telp: 81-3-6880-3770 Korea – Daegu
Telp: 82-53-744-4301 Korea – Seoul
Tel: 82-2-554-7200 Malaysia – Kuala Lumpur Tel: 60-3-7651-7906 Malaysia – Penang
Telp: 60-4-227-8870 Filipina – Manila Telp: 63-2-634-9065 Singapura
Telp: 65-6334-8870 Taiwan – Hsin Chu
Telp: 886-3-577-8366 Taiwan – Kaohsiung Telp: 886-7-213-7830 Taiwan – Taipei
Telp: 886-2-2508-8600 Thailand – Bangkok Telp: 66-2-694-1351 Vietnam – Ho Chi Minh Telp: 84-28-5448-2100
EROPA
Austria - Wels
Telp: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark – Copenhagen Telp: 45-4485-5910
Fax: 45-4485-2829 Finland – Espoo
Telp: 358-9-4520-820 Prancis – Paris
Telp: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Jerman – Garching Telp: 49-8931-9700 Jerman – Haan
Telp: 49-2129-3766400 Germany – Heilbronn Telp: 49-7131-72400 Germany – Karlsruhe Telp: 49-721-625370 Germany – Munich Telp: 49-89-627-144-0 Fax: 49-89-627 -144 Jerman – Rosenheim Telp: 44-49-8031-354 Israel – Ra'anana
Tel: 972-9-744-7705 Italia – Milan
Telp: 39-0331-742611 Fax: 39-0331-466781 Italia – Padova
Telp: 39-049-7625286 Walanda – Drunen Telp: 31-416-690399 Fax: 31-416-690340 Norwegia – Trondheim Telp: 47-72884388 Polandia – Warsawa
Telp: 48-22-3325737 Romania – Bucharest Telp: 40-21-407-87-50 Spanyol – Madrid
Telp: 34-91-708-08-90 Fax: 34-91-708-08-91 Swedia – Gothenberg Telp: 46-31-704-60-40 Swedia – Stockholm Telp: 46-8-5090-4654 UK – Wokingham
Tel: 44-118-921-5800 Fax: 44-118-921-5820
Dokumen / Sumber Daya
![]() |
MICROCHIP TB3308 Nangani Masalah Koherensi Cache nalika Runtime Nggunakake Pangopènan Cache [pdf] Pandhuan pangguna TB3308 Nangani Masalah Koherensi Cache ing Runtime Nggunakake Pangopènan Cache, TB3308, Nangani Masalah Koherensi Cache ing Runtime Nggunakake Pangopènan Cache, Runtime Nggunakake Pangopènan Cache, Pangopènan Cache |





