MICROCHIP TB3308 Řešení problémů s koherencí mezipaměti za běhu pomocí údržby mezipaměti
Zavedení
Problém koherence mezipaměti je nevyhnutelný u aplikací běžících na mikrokontrolérech (MCU), které mají oblasti paměti s možností ukládání do mezipaměti, které pro operace přenosu dat používají přímý přístup do paměti (DMA). To je způsobeno tím, že CPU provádí operaci čtení/zápisu z mezipaměti, zatímco DMA přenáší data mezi periferií a fyzickou pamětí.
Jedna z metod pro zpracování koherence mezipaměti vyžaduje, aby aplikace spravovala mezipaměť za běhu pomocí operací údržby mezipaměti. MPLAB® Harmony v3 poskytuje aplikační programová rozhraní (API) pro údržbu mezipaměti pro zařízení PIC32MZ.
Tento dokument vysvětluje, jak může aplikace spravovat problémy s koherencí mezipaměti za běhu pomocí rozhraní API pro správu mezipaměti pod MPLAB Harmony v3.
Poznámka: Koncepty diskutované v tomto dokumentu jsou společné pro všechny MCU PIC32MZ. PIC32MZ EF se používá jako example diskutovat o konceptech.
Popis
Následující obrázek ilustruje problém koherence mezipaměti, který byl pozorován při čtení DMA z SRAM na PIC32MZ EF MCU.
Obrázek 1-1. Přenos z paměti na periferní zařízení (DMA čtení z SRAM)
Aplikace odešle požadavek na přenos datové vyrovnávací paměti TxBuffer s hodnotou 'ABCDEFGH' do periferie. CPU naplní vyrovnávací paměť DMA pro zápis (TxBuffer) daty, která mají být zapsána 'ABCDEFGH' do periferie.
Kvůli nastavené zásadě mezipaměti Write Back a Write Allocate však nemusí být vyrovnávací paměť pro zápis DMA (TxBuffer) okamžitě zapsána do hlavní paměti a zapsaná data mohou zůstat v mezipaměti dat. Zápisová vyrovnávací paměť DMA (TxBuffer) v hlavní paměti stále obsahuje starou hodnotu '12345678'.
Když je DMA spuštěno k zahájení přenosu z paměti do periferie, DMA načte vyrovnávací paměť (TxBuffer) z hlavní paměti jako „12345678“. Výsledkem je, že DMA skončí přenosem zastaralých dat do periferie.
Následující obrázek ilustruje problém s koherencí mezipaměti pozorovaný při zápisu DMA do SRAM.
Obrázek 1-2. Přenos z periferie do paměti (DMA zápis do SRAM)
Aplikace odešle požadavek na příjem dat v RxBuffer s hodnotou '12345678' z periferie. DMA naplní RxBuffer hodnotou '12345678' v SRAM. Datová mezipaměť se však neaktualizuje a nadále uchovává předchozí data. Když CPU načte RxBuffer, skončí čtením předchozí hodnoty obsažené ve vyrovnávací paměti jako 'ABCDEFGH'.
Zpracování koherence mezipaměti
Dva způsoby řešení problémů s koherencí mezipaměti jsou ilustrovány v Memory to Peripheral Transfer (DMA čtení z SRAM) a Peripheral-to-Memory Transfer (DMA zápisy do SRAM). Tyto metody zahrnují aplikaci spravující mezipaměť za běhu pomocí operací údržby. Operace zahrnují schopnost provádět tyto akce:
Zrušit platnost mezipaměti: Označí řádky mezipaměti jako neplatné. Následný přístup vynutí zkopírování dat z hlavní paměti do mezipaměti.
Vyčistěte mezipaměť: Zapíše řádky mezipaměti, které jsou označeny jako nečisté, zpět do hlavní paměti Chcete-li zvládnout koherenci mezipaměti, o níž se pojednává v části Přenos paměti na periferii (DMA Read from SRAM), proveďte následující akce:
- Aplikace naplní vyrovnávací paměť dat pro zápis (TxBuffer) hodnotou 'ABCEDFGH'. Kvůli výchozí zásadě mezipaměti (zpětný zápis a přidělení zápisu) mohou být zapsaná data v mezipaměti.
Obrázek 1-3. Naplnit vyrovnávací paměť pro zápis - Vyprázdněte vyrovnávací paměť pro zápis dat (TxBuffer) s hodnotou 'ABCDEFGH' do hlavní paměti voláním rozhraní API čisté mezipaměti.
Obrázek 1-4. Vyprázdnění vyrovnávací paměti zápisu - Aplikace odešle požadavek na přenos dat z TxBuffer s hodnotou 'ABCDEFGH' do periferie.
Obrázek 1-5. Pište na periferii
Chcete-li zpracovat koherenci mezipaměti, jak je popsáno v části Přenos periferie do paměti (DMA zápisy do SRAM), postupujte takto:
- Aplikace volá Invalidate cache API, aby označila řádky mezipaměti jako neplatné.
Obrázek 1-6. Zrušit platnost mezipaměti - Aplikace odešle požadavek na příjem dat v RxBuffer s hodnotou '12345678' z periferie.
- DMA naplní RxBuffer hodnotou '12345678' v SRAM.
- Protože řádek mezipaměti odpovídající RxBuffer je v neplatném stavu, přístup ke čtení ze strany CPU má za následek zkopírování RxBuffer z hlavní paměti do mezipaměti dat.
Obrázek 1-7. Zvládněte koherenci mezipaměti pro přenos periferních zařízení
Implementace
Konfigurace
V projektu MPLAB Harmony v3 pro PIC32 MZ EF jsou operace údržby mezipaměti povoleny pomocí MPLAB Harmony v3 Configurator (MHC) nebo MPLAB Code Configurator (MCC). V MHC nebo MCC lze nastavení konfigurace najít v grafu projektu > Systém > Konfigurace MIPS > Mezipaměť.
Obrázek 2-1. Konfigurace mezipaměti MHC
Data-Cache Maintenance API
MPLAB Harmony v3 poskytuje následující rozhraní API pro údržbu mezipaměti dat:
Tabulka 2-1. Data-Cache Maintenance API
Jméno | Popis |
DCACHE_INVALIDATE (neplatné) | Před povolením zruší platnost celé mezipaměti dat. |
DCACHE_CLEAN_BY_ADDR (uint32_t addr, size_t sz) | Zapište zpět a zrušte platnost rozsahu adres v mezipaměti dat. |
DCACHE_INVALIDATE_BY_ADDR (uint32_t addr, size_t sz) | Zrušte platnost rozsahu adres v mezipaměti dat. |
DCACHE_CLEAN_INVALIDATE_BY_ADDR (uint32_t addr, size_t sz) | Zapište zpět a zrušte platnost rozsahu adres v mezipaměti dat. |
Poznámky:
- API pro údržbu mezipaměti dat a instrukcí specifická pro MCU jsou dostupná jako periferní knihovna (PLIB) plib_cache.c. Viz aplikace PLIB example na:
https://github.com/Microchip-MPLAB-Harmony/csp_apps_pic32mz_ef/tree/master/apps/cache/cache_maintenance. - Při použití mezipaměti vyčistit a zrušit platnost mezipaměti pomocí rozhraní API adresy:
- adresa: Musí být zarovnáno s hranicí velikosti řádku mezipaměti. To znamená, že adresa vyrovnávací paměti DMA musí být zarovnána s hranicí 16 bajtů.
- dsize: Musí být násobkem velikosti řádku mezipaměti. To znamená, že velikost vyrovnávací paměti DMA musí být násobkem 16 bajtů.
Example
Následující kód exampTento soubor demonstruje použití rozhraní API pro údržbu mezipaměti dat spolu s rozhraními API periferní knihovny MPLAB Harmony v3 DMA pro čtení a zápis dat přes rozhraní UART.
Podrobný zdrojový kód naleznete v aplikaci PLIB example na:
https://github.com/Microchip-MPLAB-Harmony/csp_apps_pic32mz_ef/tree/master/apps/cache/cache_maintenance.
Poznámka: Problémy koherence mezipaměti diskutované výše lze také řešit v době propojení pomocí atributu koherentní proměnné do datové vyrovnávací paměti ve sporu.
unsigned int __attribute__((koherentní)) buffer[1024];
V tomto kódu kompilátor alokuje (v době propojení) prvek 1024 v oblasti paměti KSEG1, kterou nelze uložit do mezipaměti.
Reference
Následující dokumenty jsou uvedeny jako zdroje. Další informace o koherenci mezipaměti a souvisejících produktech Microchip naleznete na Microchip Webnebo kontaktujte místního obchodního zástupce Microchip.
- Použití mezipaměti L1 na zařízeních PIC32MZ
- PIC32MZ EF Údržba mezipaměti PLIB Přample
- Balíček MPLAB Harmony v3 Quick Docs poskytuje uživatelům samostatné stránky nápovědy, aby mohli začít s vývojem aplikací na 32bitových MCU Microchip SAM a PIC32. Stáhněte si repozitář quick_docs a začněte s index.html file k dispozici ve složce docs.
Online verze je k dispozici na adrese: microchip-mplab-harmony.github.io/quick_docs/. - Přistání MPLAB Harmony v3 web strana: www.microchip.com/mplab/mplab-harmony
Mikročip Webmísto
Microchip poskytuje online podporu prostřednictvím našeho webmísto na www.microchip.com/. Tento webmísto se používá k výrobě files a informace snadno dostupné zákazníkům. Některý dostupný obsah zahrnuje:
- Podpora produktu – Datové listy a errata, aplikační poznámky a sampprogramy, zdroje návrhů, uživatelské příručky a dokumenty podpory hardwaru, nejnovější verze softwaru a archivovaný software
- Obecná technická podpora – Často kladené otázky (FAQ), požadavky na technickou podporu, online diskusní skupiny, seznam členů programu designových partnerů Microchip
- Obchod s mikročipem – Průvodce pro výběr produktů a objednávky, nejnovější tiskové zprávy Microchip, seznam seminářů a akcí, seznamy prodejních kanceláří Microchip, distributorů a zástupců továren
Služba upozornění na změnu produktu
Služba oznamování změn produktů společnosti Microchip pomáhá zákazníkům udržovat aktuální informace o produktech společnosti Microchip. Předplatitelé obdrží e-mailové upozornění, kdykoli dojde ke změnám, aktualizacím, revizím nebo chybám souvisejícím s konkrétní produktovou řadou nebo vývojovým nástrojem, který je zajímá.
Chcete-li se zaregistrovat, přejděte na www.microchip.com/pcn a postupujte podle pokynů k registraci.
Zákaznická podpora
Uživatelé produktů Microchip mohou získat pomoc prostřednictvím několika kanálů:
- Distributor nebo zástupce
- Místní prodejní kancelář
- Embedded Solutions Engineer (ESE)
- Technická podpora
Zákazníci by měli kontaktovat svého distributora, zástupce nebo ESE s žádostí o podporu. Zákazníkům jsou k dispozici také místní prodejní kanceláře. V tomto dokumentu je uveden seznam prodejních kanceláří a míst.
Technická podpora je k dispozici prostřednictvím webmísto na: www.microchip.com/support
Funkce ochrany kódem zařízení Microchip
Všimněte si následujících podrobností o funkci ochrany kódu na produktech Microchip:
- Produkty Microchip splňují specifikace obsažené v jejich konkrétním datovém listu Microchip.
- Společnost Microchip věří, že její řada produktů je bezpečná, pokud se používají zamýšleným způsobem, v rámci provozních specifikací a za normálních podmínek.
- Microchip si cení a agresivně chrání svá práva duševního vlastnictví. Pokusy o porušení funkcí ochrany kódu produktu Microchip jsou přísně zakázány a mohou porušovat zákon Digital Millennium Copyright Act.
- Společnost Microchip ani žádný jiný výrobce polovodičů nemůže zaručit bezpečnost svého kódu. Ochrana kódem neznamená, že garantujeme, že produkt je „nerozbitný“. Ochrana kódu se neustále vyvíjí. Společnost Microchip se zavázala neustále zlepšovat funkce ochrany kódu našich produktů.
Právní upozornění
Tato publikace a zde uvedené informace mohou být použity pouze s produkty Microchip, včetně návrhu, testování a integrace produktů Microchip s vaší aplikací. Použití těchto informací jakýmkoli jiným způsobem porušuje tyto podmínky. Informace týkající se aplikací zařízení jsou poskytovány pouze pro vaše pohodlí a mohou být nahrazeny aktualizacemi. Je vaší odpovědností zajistit, aby vaše aplikace odpovídala vašim specifikacím. Obraťte se na místní obchodní zastoupení Microchip pro další podporu nebo získejte další podporu na www.microchip.com/en-us/support/design-help/client-support-services.
TYTO INFORMACE POSKYTUJE SPOLEČNOST MICROCHIP „TAK JAK JSOU“. MICROCHIP NEPOSKYTUJE ŽÁDNÁ PROHLÁŠENÍ ANI ZÁRUKY JAKÉHOKOLI DRUHU, AŤ UŽ VÝSLOVNÉ ČI PŘEDPOKLÁDANÉ, PÍSEMNÉ ČI ÚSTNÍ, ZÁKONNÉ
NEBO JINAK TÝKAJÍCÍ SE INFORMACÍ, VČETNĚ, ALE NE VÝHRADNĚ, JAKÝCHKOLI PŘEDPOKLÁDANÝCH ZÁRUK NEPORUŠENÍ, OBCHODOVATELNOSTI A VHODNOSTI PRO KONKRÉTNÍ ÚČEL NEBO ZÁRUKY VZTAHUJÍCÍ SE K JEHO STAVU, KVALITĚ NEBO VÝKONU.
V ŽÁDNÉM PŘÍPADĚ NEBUDE MICROCHIP ODPOVĚDNÁ ZA ŽÁDNÉ NEPŘÍMÉ, ZVLÁŠTNÍ, TRESTNÉ, NÁHODNÉ NEBO NÁSLEDNÉ ZTRÁTY, ŠKODY, NÁKLADY NEBO NÁKLADY JAKÉHOKOLI DRUHU, JAKKOLI SOUVISEJÍCÍ S INFORMACÍ NEBO JEJICH POUŽITÍM, JAKKOLI BY BYLO UVEDENO, JAK BY BYLO ZPŮSOBeno, MOŽNOST NEBO ŠKODY JSOU PŘEDVÍDAJÍCÍ. CELKOVÁ ODPOVĚDNOST SPOLEČNOSTI MICROCHIP ZA VŠECHNY NÁROKY SOUVISEJÍCÍ S INFORMACEMI NEBO JEJICH POUŽITÍM NEPŘEKROČÍ V NEJVYŠŠÍM ROZSAHU POVOLENÉM ZÁKONEM, KTERÉ JSTE ZA INFORMACE ZAPLATILI PŘÍMO SPOLEČNOSTI MICROCHIP.
Použití zařízení Microchip v aplikacích na podporu života a/nebo v bezpečnostních aplikacích je zcela na riziko kupujícího a kupující souhlasí s tím, že bude Microchip bránit, odškodnit a chránit před všemi škodami, nároky, žalobami nebo výdaji vyplývajícími z takového použití. Žádné licence nejsou poskytovány, implicitně ani jinak, v rámci jakýchkoli práv duševního vlastnictví společnosti Microchip, pokud není uvedeno jinak.
ochranné známky
Název a 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, logo Microsemi, MOST, logo MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, logo PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron a XMEGA jsou registrované ochranné známky společnosti Microchip Technology Incorporated v USA a dalších zemích.
AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSync, Flashtec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, logo ProASIC Plus, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath a ZL jsou registrované ochranné známky společnosti Microchip Technology Incorporated v USA.
Potlačení sousedících klíčů, AKS, Analog-for-the-Digital Age, Libovolný kondenzátor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, ddsPICDEM, Average , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, Inter-Chip Connectivity, JitterBlocker, Knob-on-Display, maxCrypto, max.View, 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, QQMatriICE , 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 a ZENA jsou ochranné známky společnosti Microchip Technology Incorporated v
USA a další země.
SQTP je servisní značka společnosti Microchip Technology Incorporated v USA
Logo Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom a Trusted Time jsou registrované ochranné známky společnosti Microchip Technology Inc. v jiných zemích.
GestIC je registrovaná ochranná známka společnosti Microchip Technology Germany II GmbH & Co. KG, dceřiné společnosti Microchip Technology Inc., v jiných zemích.
Všechny ostatní ochranné známky uvedené v tomto dokumentu jsou majetkem příslušných společností.
© 2021, Microchip Technology Incorporated a její dceřiné společnosti. Všechna práva vyhrazena.
ISBN: 978-1-5224-9447-8
Systém managementu kvality
Informace týkající se systémů řízení kvality společnosti Microchip naleznete na adrese www.microchip.com/quality.
Celosvětový prodej a servis
AMERIKY
Kancelář společnosti
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200
Fax: 480-792-7277 Technická podpora:
www.microchip.com/support
Web Adresa:
www.microchip.com
Atlanta
Duluth, GA
tel: 678-957-9614
Fax: 678-957-1455 Austin, TX
tel: 512-257-3370 Boston
Westborough, MA
tel: 774-760-0087
Fax: 774-760-0088 Chicago
Itasca, IL
tel: 630-285-0071
Fax: 630-285-0075 Dallas
Addison, TX
tel: 972-818-7423
Fax: 972-818-2924 Detroit
Novi, MI
tel: 248-848-4000 Houston, TX
tel: 281-894-5983 Indianapolis
Noblesville, IN
tel: 317-773-8323
Fax: 317-773-5453
tel: 317-536-2380
Los Angeles
Mise Viejo, CA
tel: 949-462-9523
Fax: 949-462-9608
tel: 951-273-7800 Raleigh, NC
tel: 919-844-7510
New York, NY
tel: 631-435-6000
San Jose, CA
tel: 408-735-9110
tel: 408-436-4270 Kanada – Toronto
tel: 905-695-1980
Fax: 905-695-2078
ASIE/PACIFIK
Austrálie – Sydney
Tel: 61-2-9868-6733 Čína – Peking
Tel: 86-10-8569-7000 Čína – Chengdu
Tel: 86-28-8665-5511 Čína – Chongqing Tel: 86-23-8980-9588 Čína – Dongguan
Tel: 86-769-8702-9880 Čína – Guangzhou Tel: 86-20-8755-8029 Čína – Hangzhou
Tel: 86-571-8792-8115 Čína – Hong Kong SAR Tel: 852-2943-5100 Čína – Nanjing
Tel: 86-25-8473-2460 Čína – Qingdao
Tel: 86-532-8502-7355 Čína – Šanghaj
Tel: 86-21-3326-8000 Čína – Shenyang
Tel: 86-24-2334-2829 Čína – Shenzhen
Tel: 86-755-8864-2200 Čína – Suzhou
Tel: 86-186-6233-1526 Čína – Wuhan
Tel: 86-27-5980-5300 Čína – Xian
Tel: 86-29-8833-7252 Čína – Xiamen
Tel: 86-592-2388138 Čína – Zhuhai
Tel: 86-756-3210040
ASIE/PACIFIK
Indie – Bangalore
Tel: 91-80-3090-4444 Indie – Nové Dillí
Tel: 91-11-4160-8631 Indie – Pune
Tel: 91-20-4121-0141 Japonsko – Osaka
Tel: 81-6-6152-7160 Japonsko – Tokio
Tel: 81-3-6880- 3770 Korea – Daegu
Tel: 82-53-744-4301 Korea – Soul
Tel: 82-2-554-7200 Malajsie – Kuala Lumpur Tel: 60-3-7651-7906 Malajsie – Penang
Tel: 60-4-227-8870 Filipíny – Manila Tel: 63-2-634-9065 Singapur
Tel: 65-6334-8870 Tchaj-wan – Hsin Chu
Tel: 886-3-577-8366 Tchaj-wan – Kaohsiung Tel: 886-7-213-7830 Tchaj-wan – Taipei
Tel: 886-2-2508-8600 Thajsko – Bangkok Tel: 66-2-694-1351 Vietnam – Ho Či Min Tel: 84-28-5448-2100
EVROPA
Rakousko – Wels
Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Dánsko – Kodaň Tel: 45-4485-5910
Fax: 45-4485-2829 Finsko – Espoo
Tel: 358-9-4520-820 Francie – Paříž
Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Německo – Garching Tel: 49-8931-9700 Německo – Haan
Tel: 49-2129-3766400 Německo – Heilbronn Tel: 49-7131-72400 Německo – Karlsruhe Tel: 49-721-625370 Německo – Mnichov Tel: 49-89-627-144-0 Fax: 49-89-627-144 -44 Německo – Rosenheim Tel: 49-8031-354-560 Izrael – Ra'anana
Tel: 972-9-744-7705 Itálie – Milán
Tel: 39-0331-742611 Fax: 39-0331-466781 Itálie – Padova
Tel: 39-049-7625286 Nizozemsko – Drunen Tel: 31-416-690399 Fax: 31-416-690340 Norsko – Trondheim Tel: 47-72884388 Polsko – Varšava
Tel: 48-22-3325737 Rumunsko – Bukurešť Tel: 40-21-407-87-50 Španělsko – Madrid
Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Švédsko – Gothenberg Tel: 46-31-704-60-40 Švédsko – Stockholm Tel: 46-8-5090-4654 UK – Wokingham
Tel: 44-118-921-5800 Fax: 44-118-921-5820
Dokumenty / zdroje
![]() |
MICROCHIP TB3308 Řešení problémů s koherencí mezipaměti za běhu pomocí údržby mezipaměti [pdfUživatelská příručka TB3308 Řešení problémů s koherencí mezipaměti za běhu pomocí údržby mezipaměti, TB3308, řešení problémů s koherencí mezipaměti za běhu pomocí údržby mezipaměti, běhu pomocí údržby mezipaměti, údržba mezipaměti |