CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide

1 Úvod

Energeticky nezávislé paměti Cypress SPI F-RAM lze použít různými způsoby. Jednak je jejich instrukční sada kompatibilní s klasickými sériovými EEPROM a Flash pamětmi. Tato funkce umožňuje vývojářům provozovat zařízení F-RAM, jako je EEPROM nebo Flash část, pomocí stávajících softwarových ovladačů.
Na druhou stranu, zařízení F-RAM mají vlastnosti RAM a výhodytages: lze je číst a zapisovat okamžitě po bytech bez nutnosti mazání nebo dotazování jako u zařízení Flash. Pokročilé moderní řadiče SPI mohou generovat požadované sekvence příkazů za chodu v hardwaru a podporují přístup mapovaný do paměti pomocí ukazatelů. Díky tomu sériová zařízení F-RAM vypadají pro aplikace jako normální RAM.
Tyto dva modely použití jsou uvedeny a podrobně porovnány v následujících částech.

2 Přístup ke stylu EEPROM/Flash

Pokud se sériová F-RAM používá jako EEPROM nebo Flash zařízení, pak je typický řídicí tok:

  1. Otevřete speciální zařízení file
  2. Nastavte file offset do určité polohy
  3. Vydejte hovor pro čtení nebo zápis.

Kroky 2 a 3 se opakují tak často, jak je potřeba.
Přidání podpory F-RAM do stávajících ovladačů EEPROM/Flash je obvykle jednoduché. V mnoha případech stačí přidat pouze nové ID zařízení do seznamu podporovaných zařízení ve zdrojovém kódu ovladače, aby zařízení fungovala. Příkazy SPI pro čtení a zápis dat jsou kompatibilní mezi EEPROM/Flash a F-RAM a příkazy mazání jsou zařízením F-RAM jednoduše ignorovány. Většina aplikací se nespoléhá na výchozí hodnotu čerstvě vymazané paměti (např. 0xFF), takže toto chování je v pořádku. Ve zvláštních případech, kdy ano, lze oblast vymazané paměti explicitně nastavit na očekávanou výchozí hodnotu pomocí funkce vymazání. Kromě toho kód dotazování používaný v softwarových ovladačích EEPROM/Flash k detekci konce operací programu neovlivňuje F-RAM. Takovým softwarovým ovladačům se zdá, že zařízení F-RAM jsou okamžitě provedena jakýmkoli programem nebo operací mazání a řízení se vrátí po jediné iteraci dotazování. Alternativně může být dotazování pro F-RAM v ovladačích zcela zakázáno.

V Linuxu jako konkrétní exampMetoda přístupu vyžaduje, aby uživatel otevřel speciální zařízení Memory Technology Device (MTD) nebo EEPROM file a vydejte dvě systémová volání pro každé čtení nebo zápis. Nejprve volání funkce sleek() pro umístění file deskriptor na požadovaný offset a poté zahájí systémové volání read() nebo write() pro čtení nebo zápis dat. U velkých bloků dat jsou přidružená systémová volání a jejich režie nepodstatná a lze je zanedbat. Propustnost je v takových případech rozhodujícím parametrem. Pro malé objemy dat (napřample, proměnné 1-16 bajtů), avšak režie systémového volání způsobuje znatelné latence.

Co dělá věci složitější pro aplikace, je potřeba alokovat a spravovat vyrovnávací paměti, které jsou předávány funkcím čtení a zápisu. Velmi často se při této přístupové metodě data několikrát kopírují tam a zpět, do a z vyrovnávacích pamětí v aplikaci a pak znovu z vyrovnávacích pamětí do SPI řadiče FIFO v ovladači zařízení a naopak. Tyto operace kopírování mají negativní dopad na propustnost rychlých systémů.

3 Přístup k paměti

Uživatelem spravované datové vyrovnávací paměti a ruční přesun dat není potřeba pro přístup mapovaný do paměti (také známý jako Memory Mapped I/O nebo MMIO). V této přístupové metodě mohou aplikace číst a zapisovat do F-RAM jednoduše dereferencováním ukazatelů na datové objekty požadované velikosti.

Softwarová pomoc je potřebná pouze při inicializaci pro testování zařízení a později pro nastavení vhodného mapování adres pro aplikaci. Jakmile je toto mapování vytvořeno, všechny přístupy pro čtení a zápis běží kompletně v hardwaru. To vede k lepší úrovni výkonu ve srovnání s klasickým přístupem ve stylu EEPROM/Flash. Primárně jsou latence kratší, což vede k výrazně lepším výsledkům pro malé velikosti dat.

Přístup mapovaný do paměti navíc zjednodušuje kód aplikací. Data se nemusí kopírovat tam a zpět mezi buffery a pro přístup k paměti F-RAM po inicializaci nejsou potřeba systémová volání.

Konečně, pokročilé funkce, jako je spouštění kódu přímo z SPI F-RAM (XIP), jsou možné pouze s nastavením mapovaným do paměti. Ačkoli jsou s SPI Flash možné také aplikace pouze pro čtení v nastavení mapovaném do paměti, mapované zápisy na těchto zařízeních selhávají kvůli jejich požadavkům na dotazování a mazání.

Problémem může být, že do softwarových ovladačů musí být přidán kód nastavení specifického pro ovladač. Obecný kód ovladače je stěží možný.

4 Případová studie

K prozkoumání výkonnostních výhod přístupu mapovaného do paměti se používá NXP i.MX8QXP SoC s Cypress Exelon Ultra CY15B104QSN F-RAM, který poskytuje moderní platformu pro srovnávání.

OS je v tomto případě Linux (kernel 4.14.98), na kterém běží Verze zásobníku Cypress SPI Memories Driver v19.4. Tento softwarový ovladač podporuje jak klasický MTD, tak i paměťově mapovaný přístup. CY15B104QSN pracuje v režimu QPI na hodinové frekvenci SPI 100 MHz SDR. Maximální teoretická propustnost pro operace čtení i zápisu je tedy omezena na 50 MiB/s1.

Ovladač i.MX8QXP FlexiSpot podporuje přístupy mapované do paměti prostřednictvím malé konfigurovatelné tabulky. Tato vyhledávací tabulka (LUT) může obsahovat až 32 sekvencí pro syntetizaci transakcí sběrnice SPI za chodu v hardwaru. Indexové registry v řadiči lze nastavit tak, aby informovaly procesor, které sekvence se mají provést pro čtení a zápis mapované do paměti, např.ample, pokud je ukazatel dereferencován. Může to být jedna sekvence nebo sada více sekvencí, napřample, pokud musí být pro operaci zápisu vydán příkaz Write Enable plus příkaz Program. Pro čtení a zápis QPI do F-RAM lze použít následující položky/sekvence LUT:

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Case Study CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Case Study

Poznámka že CY15B104QSN má ve stavovém registru lepivý bit WREN (Write Enable). Jakmile je tento bit nastaven, zařízení již nepotřebuje před každou operací zápisu do paměti explicitní příkazy pro povolení zápisu. Pro záznamovou cestu je tedy použita pouze druhá sekvence z uvedeného páru sekvencí.

Další používanou optimalizační technikou je předběžné načítání, které lze provést automaticky pomocí ovladače FlexSPI i.MX8QXP. Tato funkce ovlivňuje a urychluje cestu čtení pro všechny přístupové metody. Do některých hardwarových vyrovnávacích pamětí vždy načte datové bloky plné 2 kB z F-RAM. Požadavky na čtení ze softwaru jsou pak obsluhovány z těchto vyrovnávacích pamětí.

Tabulka 1 shrnuje naměřené výsledky a ukazuje výkonnostní výhody přímého přístupu mapovaného do paměti. Zejména latence jsou mnohem kratší ve srovnání se standardní metodou přístupu ve stylu Flash (více než 20x). Extrémně krátké latence využívají okamžitou nevolatilní funkci F-RAM a pomáhají v situacích, kdy dojde k náhlé ztrátě napájení systému. Přístup mapovaný do paměti se v těchto případech stává doplňkovým požadavkem, což zkracuje časové okno, kdy jsou data ohrožena.

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Tabulka 1. Výsledky benchmarkingu pro CY15B104QSN na i.MX8QXP

V tomto benchmarku se výsledky propustnosti měří čtením nebo zápisem celého zařízení. V případě mapované paměti je volána memcpy() ke zkopírování všech dat hlavního pole z F-RAM do normální systémové DRAM nebo naopak. Některé optimalizace memcpy() specifické pro ARMv8-A najdete v příloze A. Pokud je hardwarové přednačítání zakázáno, propustnost čtení je ve stejném pořadí jako propustnost zápisu.

Latence označují zpoždění po provedení operace zápisu nebo čtení softwarovou aplikací, dokud nejsou data fyzicky přenesena na sběrnici SPI. V tomto benchmarku se latence měří pomocí malých 1bajtových operací čtení a zápisu.

5 Mezipaměť CPU

Ve výchozím nastavení je ukládání do mezipaměti CPU na většině platforem pro celý paměťový prostor I/O zakázáno. To vynucuje uspořádané a nekombinované přístupy do paměti a je to například nutnostample, k vyplnění hardwarových FIFO nebo k programování či vymazání Flash zařízení.

U pamětí F-RAM však mohou být povoleny mezipaměti CPU v kombinaci s přístupem mapovaným do paměti, aby se posunula hranice výkonu dále. Při ukládání do mezipaměti CPU je přirozená velikost shluku na sběrnici SPI pro čtení a zápis jeden řádek mezipaměti (64 bajtů na i.MX8QXP). To umožňuje lepší využití dostupné šířky pásma sběrnice SPI ve srovnání s řadou menších přenosů. Během výpadku napájení se však mohou data ztratit, pokud jsou uložena v mezipaměti, která ještě nebyla zapsána zpět do F-RAM. Zatímco u běžných pamětí RAM je toto chování naprosto přijatelné, u F-RAM nikoli.

Povolení jednoduchého schématu ukládání do mezipaměti pro čtení (tj. se zásadou zápisu prostřednictvím mezipaměti) je pro F-RAM bezpečné, protože data jsou v této konfiguraci okamžitě zapisována zpět do pole F-RAM.

Pokud má aplikace jasné synchronizační body (napřample, ukládání snímků z celé kamery), pak může být povolena i zásada zpětného zápisu. Menší operace zápisu mohou být kombinovány s tímto schématem pro vytvoření vysoce efektivních 64bajtových řádkových zápisů do mezipaměti. K synchronizačním bodům zdrojového kódu však musí být přidány pokyny pro údržbu bariéry a mezipaměti, v tomto případě pro čas od času vyprázdnění mezipaměti. Takové instrukce způsobí, že data, která se nashromáždila v mezipaměti CPU, jsou explicitně zapsána zpět, a tím eliminují riziko ztráty dat.

6 Závěr

Většina dnešních SPI řadičů podporuje paměťově mapovaný přístup k externím zařízením. Proto se u těchto řadičů přístup mapovaný do paměti stal životaschopnou možností, kterou je třeba zvážit, a zákazníci z něj mohou těžit, zejména v případě F-RAM.

Paměťově mapovaný přístup k F-RAM má jasné výkonnostní výhody a zjednodušuje kód aplikace ve srovnání s klasickou sériovou metodou přístupu EEPROM/Flash. Je univerzální, flexibilní a bezproblémově integruje F-RAM do moderního systému.

Pečlivou analýzou a optimalizací kódu aplikace může kombinace přístupu mapovaného do paměti s mezipamětí CPU dále zlepšit propustnost i latenci.

7 Související dokumenty

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Související dokumenty

Dodatek A. Optimalizovaná 16bajtová memcpy() pro ARMv8-A

Výchozí implementace memcpy() pro ARMv8-A v Linuxu používá instrukce sestavení páru načtení a páru úložiště, které přesunou dva 8bajtové registry najednou. Bohužel tyto instrukce spouštějí na sběrnici dva 8bajtové shluky SPI namísto jediného 16bajtového shluku. Pro zlepšení situace lze memcpy() optimalizovat tak, aby používala 16bajtový registr FP/SIMD plus odpovídající instrukce načítání/ukládání, jak je uvedeno níže. Tato změna vytvoří na sběrnici požadované 16bajtové shluky SPI.

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Appendix A

Historie dokumentu

Název dokumentu: AN229843 – Memory Mapped Access to SPI F-RAM Číslo dokumentu: 002-29843

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Document History

Celosvětová podpora prodeje a designu
Cypress udržuje celosvětovou síť kanceláří, center řešení, zástupců výrobců a distributorů. Chcete-li najít kancelář, která je vám nejblíže, navštivte nás na Cypress Locations.

Produkty
Mikrokontroléry Arm® Cortex® cypress.com/arm
Automobilový průmysl  cypress.com/automotive
Hodiny a vyrovnávací paměti cypress.com/clocks 
Rozhraní cypress.com/interface
Internet věcí  cypress.com/iot
Paměť  cypress.com/memory
Mikrokontroléry cypress.com/mcu 
PSoC cypress.com/psoc
Integrované obvody řízení spotřeby  cypress.com/pmic
Dotkněte se Snímání  cypress.com/touch
Řadiče USB cypress.com/usb 
Bezdrátové připojení cypress.com/wireless

PSoC® řešení
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP | PSoC 6 MCU

Komunita vývojářů Cypress
Společenství | Kód Examples | Projekty | videa | Blogy | Výcvik | Komponenty

Technická podpora
cypress.com/support

Všechny ostatní ochranné známky nebo registrované ochranné známky zde uvedené jsou majetkem příslušných vlastníků.

Logo CYPRESS

Cypress Semiconductor
An Infineon Technologies Company 198 Championtový soud
San Jose, CA 95134-1709

© Cypress Semiconductor Corporation, 2020. Tento dokument je majetkem společnosti Cypress Semiconductor Corporation a jejích dceřiných společností („Cypress“). Tento dokument, včetně jakéhokoli softwaru nebo firmwaru zahrnutého nebo odkazovaného v tomto dokumentu (“Software”), je vlastnictvím společnosti Cypress podle zákonů a smluv o duševním vlastnictví Spojených států a dalších zemí po celém světě. Společnost Cypress si vyhrazuje všechna práva podle těchto zákonů a smluv a neuděluje, s výjimkou případů výslovně uvedených v tomto odstavci, žádnou licenci na své patenty, autorská práva, ochranné známky nebo jiná práva duševního vlastnictví. Pokud k Softwaru není přiložena licenční smlouva a nemáte se společností Cypress jinak uzavřenou písemnou smlouvu upravující používání Softwaru, pak vám společnost Cypress tímto uděluje osobní, nevýhradní a nepřenosnou licenci (bez práva na sublicenci ) (1) v rámci svých autorských práv k Softwaru (a) pro Software poskytovaný ve formě zdrojového kódu upravovat a reprodukovat Software výhradně pro použití s ​​hardwarovými produkty Cypress, pouze interně v rámci vaší organizace, a (b) distribuovat Software ve formě binárního kódu externě koncovým uživatelům (buď přímo, nebo nepřímo prostřednictvím prodejců a distributorů), výhradně pro použití na jednotkách hardwarových produktů Cypress, a (2) na základě patentů společnosti Cypress, které jsou porušovány Softwarem (jak poskytuje Cypress, nemodifikované) vytvářet, používat, distribuovat a importovat Software výhradně pro použití s ​​hardwarovými produkty Cypress. Jakékoli jiné použití, reprodukce, úpravy, překlady nebo kompilace Softwaru jsou zakázány.

V ROZSAHU POVOLENÉM PLATNÝM ZÁKONEM, CYPRESS NEPOSKYTUJE ŽÁDNÉ ZÁRUKY JAKÉHOKOLI DRUHU, VÝSLOVNÉ NEBO PŘEDPOKLÁDANÉ, S OHLEDEM NA TENTO DOKUMENT NEBO JAKÝKOLI SOFTWARE ČI DOPROVODNÝ HARDWARE, VČETNĚ, ALE BEZ OMEZENÍ NA ODPOVĚDNÉ ODPOVĚDI ODPOVĚDNÝCH PARTNERŮ POST. .

Žádné výpočetní zařízení nemůže být absolutně bezpečné. Proto, navzdory bezpečnostním opatřením implementovaným v hardwarových nebo softwarových produktech Cypress, společnost Cypress nenese žádnou odpovědnost vyplývající z jakéhokoli porušení zabezpečení, jako je neoprávněný přístup nebo použití produktu Cypress. CYPRESS NEZARUČUJE, NEZARUČUJE ANI NEZARUČUJE, ŽE PRODUKTY CYPRESS NEBO SYSTÉMY VYTVOŘENÉ POMOCÍ PRODUKTŮ CYPRESS BUDOU BEZ KORUPCE, ÚTOKU, VIRŮ, RUŠENÍ, HACKOVÁNÍ, ZTRÁTY DAT NEBO KRÁDEŽE, NEBO JINÉ ZABEZPEČENÍ (selektivní „Security“ NEBO JINÉ ZABEZPEČENÍ ). Společnost Cypress se zříká jakékoli odpovědnosti související s jakýmkoli porušením zabezpečení a vy musíte a tímto zprošťujete společnost Cypress od jakéhokoli nároku, škody nebo jiné odpovědnosti vyplývající z jakéhokoli porušení zabezpečení. Kromě toho mohou produkty popsané v těchto materiálech obsahovat konstrukční vady nebo chyby známé jako errata, které mohou způsobit odchylku produktu od publikovaných specifikací. V rozsahu povoleném platnými zákony si společnost Cypress vyhrazuje právo provádět změny tohoto dokumentu bez dalšího upozornění. Cypress nepřebírá žádnou odpovědnost vyplývající z aplikace nebo použití jakéhokoli produktu nebo obvodu popsaného v tomto dokumentu. Veškeré informace uvedené v tomto dokumentu, včetně všech sampInformace o návrhu nebo programovací kód jsou poskytovány pouze pro referenční účely. Je odpovědností uživatele tohoto dokumentu řádně navrhnout, naprogramovat a otestovat funkčnost a bezpečnost jakékoli aplikace vytvořené z těchto informací a jakéhokoli výsledného produktu. „Vysoce rizikové zařízení“ znamená jakékoli zařízení nebo systém, jehož porucha by mohla způsobit zranění, smrt nebo poškození majetku. PřampMezi vysoce riziková zařízení patří zbraně, jaderná zařízení, chirurgické implantáty a další lékařská zařízení. „Kritická komponenta“ znamená jakoukoli komponentu Vysoce rizikového zařízení, u kterého lze důvodně předpokládat, že jeho selhání způsobí, přímo nebo nepřímo, selhání vysoce rizikového zařízení nebo ovlivní jeho bezpečnost nebo účinnost. Společnost Cypress nenese odpovědnost, a to zcela ani zčásti, a tímto zprostíte společnost Cypress jakékoli reklamace, škody nebo jiné odpovědnosti vyplývající z jakéhokoli použití produktu Cypress jako kritické součásti ve vysoce rizikovém zařízení. Společnost Cypress, její ředitele, vedoucí pracovníky, zaměstnance, agenty, přidružené společnosti, distributory a převodníky odškodníte a zajistíte, že budou odškodněni za všechny nároky, náklady, škody a výdaje vyplývající z jakéhokoli nároku, včetně nároků na odpovědnost za výrobek, zranění osob. nebo smrt nebo poškození majetku vyplývající z jakéhokoli použití produktu Cypress jako kritické součásti ve vysoce rizikovém zařízení. Produkty Cypress nejsou zamýšleny ani schváleny pro použití jako kritická komponenta v jakémkoli vysoce rizikovém zařízení s výjimkou omezeného rozsahu, kdy (i) zveřejněný technický list produktu Cypress výslovně uvádí, že společnost Cypress kvalifikovala produkt pro použití v konkrétním vysoce rizikovém zařízení. Zařízení nebo (ii) společnost Cypress vám předem poskytla písemné povolení k použití produktu jako kritické součásti v konkrétním vysoce rizikovém zařízení a podepsali jste samostatnou smlouvu o odškodnění.
Cypress, logo Cypress, Spansion, logo Spansion a jejich kombinace, WICED, PSoC, CapSense, EZ-USB, F-RAM a Traveo jsou ochranné známky nebo registrované ochranné známky společnosti Cypress ve Spojených státech a dalších zemích. Pro úplnější seznam ochranných známek Cypress navštivte cypress.com. Jiné názvy a značky mohou být majetkem jejich příslušných vlastníků.

www.cypress.com

Dokumenty / zdroje

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 [pdfUživatelská příručka
CYPRESS, Memory Mapped, Access, to, SPI, F-RAM, AN229843

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *