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

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

1 Introdución

As memorias non volátiles Cypress SPI F-RAM pódense usar de varias maneiras. En primeiro lugar, o seu conxunto de instrucións é compatible con EEPROM serie clásica e memorias Flash. Esta función permite aos desenvolvedores operar dispositivos F-RAM como unha EEPROM ou unha parte Flash utilizando controladores de software existentes.
Por outra banda, os dispositivos F-RAM posúen características e vantaxes de RAMtages: pódense ler e escribir ao instante byte por byte sen necesidade de borrar ou sondear como os dispositivos Flash. Os controladores SPI modernos avanzados poden xerar as secuencias de comandos necesarias sobre a marcha no hardware e admitir o acceso mapeado de memoria mediante punteiros. Isto fai que os dispositivos F-RAM serie parezan a RAM normal para as aplicacións.
Os dous modelos de uso preséntanse e compáranse en detalle nas seguintes seccións.

2 Acceso ao estilo EEPROM/Flash

Se se usa F-RAM serie como un dispositivo EEPROM ou Flash, entón o fluxo de control típico é:

  1. Abre un dispositivo especial file
  2. Establece o file desplazado a unha determinada posición
  3. Emita unha chamada de lectura ou escritura.

Os pasos 2 e 3 repítense tantas veces como sexa necesario.
Engadir soporte F-RAM aos controladores EEPROM/Flash existentes adoita ser sinxelo. En moitos casos, basta con engadir só un novo ID de dispositivo á lista de dispositivos compatibles no código fonte do controlador para que os dispositivos funcionen. Os comandos SPI para ler e escribir datos son compatibles entre EEPROM/Flash e F-RAM, e os comandos de borrado son simplemente ignorados polo dispositivo F-RAM. A maioría das aplicacións non confían no valor predeterminado da memoria recentemente borrada (por exemplo, 0xFF), polo que este comportamento está ben. Nos casos especiais nos que o fagan, a rexión de memoria borrada pódese establecer explícitamente co valor predeterminado esperado mediante a función de borrado. Ademais, o código de sondeo usado nos controladores de software EEPROM/Flash para detectar o final das operacións do programa non afecta a F-RAM. Para estes controladores de software, os dispositivos F-RAM parecen realizarse inmediatamente con calquera programa ou operación de borrado e retorno de control despois dunha única iteración de sondeo. Alternativamente, a sondaxe pode estar completamente desactivada para F-RAM nos controladores.

En Linux, como un exemplo concretoample, o método de acceso require que o usuario abra un dispositivo de tecnoloxía de memoria (MTD) ou un dispositivo especial EEPROM file e emita dúas chamadas de sistema para cada lectura ou escritura. Primeiro, unha chamada de sleek() para posicionar o file descriptor para o desplazamento desexado e o segundo problema é unha chamada ao sistema read() ou write() para ler ou escribir os datos. Para grandes bloques de datos, as chamadas de sistema asociadas e a súa sobrecarga son insignificantes e pódense descoidar. O rendemento é o parámetro crucial nestes casos. Para tamaños de datos pequenos (por exemplo,ample, variables de 1 a 16 bytes), con todo, a sobrecarga de chamadas do sistema provoca latencias notables.

O que fai as cousas máis complicadas para as aplicacións é a necesidade de asignar e xestionar os búfers que se pasan ás funcións de lectura e escritura. Moitas veces, os datos cópianse varias veces neste método de acceso, desde e cara os búfers da aplicación e, de novo, desde os búfers ata os FIFO do controlador SPI no controlador do dispositivo e viceversa. Estas operacións de copia teñen un impacto negativo no rendemento dos sistemas rápidos.

3 Acceso mapeado de memoria

Os búfers de datos xestionados polo usuario e o movemento manual de datos non son necesarios para o acceso mapeado de memoria (tamén coñecido como Memory Mapped I/O ou MMIO). Neste método de acceso, as aplicacións poden ler e escribir na F-RAM simplemente desreferenciando os punteiros a obxectos de datos do tamaño desexado.

A asistencia de software só é necesaria durante a inicialización para probar o dispositivo e, posteriormente, configurar unha asignación de enderezos adecuada para a aplicación. Unha vez establecida esta asignación, todos os accesos de lectura e escritura executaranse completamente en hardware. Isto leva a un mellor nivel de rendemento en comparación co acceso ao estilo clásico EEPROM/Flash. Principalmente, as latencias son máis curtas, o que resulta en resultados significativamente mellores para datos de pequeno tamaño.

Ademais, o acceso mapeado de memoria simplifica o código das aplicacións. Os datos non teñen que ser copiados entre búfers e non son necesarias chamadas ao sistema para acceder á memoria F-RAM despois da inicialización.

Finalmente, as funcións avanzadas como a execución de código directamente desde SPI F-RAM (XIP) só son posibles cunha configuración mapeada de memoria. Aínda que tamén son posibles aplicacións de só lectura con SPI Flash nunha configuración mapeada en memoria, as escrituras mapeadas fallan nestes dispositivos debido aos requisitos de sondeo e borrado.

Un desafío podería ser que se debe engadir un código de configuración específico do controlador aos controladores do software. O código de controlador xenérico case non é posible.

4 Estudo de caso

Para investigar os beneficios de rendemento do acceso mapeado de memoria, utilízase un SoC NXP i.MX8QXP cunha F-RAM Cypress Exelon Ultra CY15B104QSN para proporcionar unha plataforma de benchmarking moderna.

O SO neste caso é Linux (kernel 4.14.98) que executa o Cypress SPI Memories Driver versión v19.4. Este controlador de software admite tanto MTD clásico como acceso mapeado de memoria. O CY15B104QSN funciona en modo QPI cunha frecuencia de reloxo SPI de 100 MHz SDR. Así, o rendemento teórico máximo para operacións de lectura e escritura está limitado a 50 MiB/s1.

O controlador FlexiSpot i.MX8QXP admite accesos mapeados de memoria a través dunha pequena táboa configurable. Esta táboa de busca (LUT) pode albergar ata 32 secuencias para sintetizar transaccións de bus SPI sobre a marcha no hardware. Os rexistros de índice do controlador pódense configurar para informar ao procesador que secuencia(s) executar para lectura e escritura mapeadas na memoria, por exemploample, se un punteiro está desreferenciado. Pode ser unha secuencia única ou un conxunto de secuencias múltiples, por exemploample, se hai que emitir un comando Write Enable e un comando Program para unha operación de escritura. Para as lecturas e escrituras de QPI en F-RAM, pódense usar as seguintes entradas/secuencias LUT:

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

Nota que CY15B104QSN ten un bit WREN (Write Enable) adhesivo no rexistro de estado. Unha vez configurado este bit, o dispositivo xa non necesita comandos de activación de escritura explícitos que preceden a cada operación de escritura de memoria. Así, só se usa a segunda secuencia do par de secuencias listado para o camiño de escritura.

Outra técnica de optimización utilizada é a captación previa que se pode facer automaticamente polo controlador i.MX8QXP FlexSPI. Esta función afecta e acelera a ruta de lectura para todos os métodos de acceso. Sempre carga bloques de datos de 2 kB completos desde F-RAM nalgúns búfers de hardware. A continuación, as solicitudes de lectura do software son servidas fóra destes búfers.

A Táboa 1 resume os resultados medidos e mostra os beneficios de rendemento do acceso directo a memoria mapeada. En particular, as latencias son moito máis curtas en comparación co método estándar de acceso ao estilo Flash (máis de 20 veces). As latencias extremadamente curtas aproveitan a función de non volatilidade instantánea da F-RAM e axudan en situacións nas que a enerxía do sistema se perde bruscamente. O acceso ao mapeo de memoria convértese nun requisito gratuíto neses casos, o que reduce a xanela de tempo na que os datos están en risco.

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Táboa 1. Resultados de benchmarking para CY15B104QSN en i.MX8QXP

Neste punto de referencia, os resultados de rendemento mídense lendo ou escribindo todo o dispositivo. Para o caso de asignación de memoria, chámase a memcpy() para copiar todos os datos da matriz principal de F-RAM á DRAM do sistema normal ou viceversa. Consulte o Apéndice A para coñecer algunhas optimizacións específicas de memcpy() de ARMv8-A. Coa captura previa de hardware desactivada, os rendementos de lectura son da mesma orde que os de escritura.

As latencias indican o atraso despois de que a aplicación de software emitiu unha operación de escritura ou lectura ata que os datos se transfiran fisicamente no bus SPI. Neste punto de referencia, as latencias mídense emitindo pequenas operacións de lectura e escritura de 1 byte.

5 Almacenamento en caché da CPU

Por defecto, a memoria caché da CPU está desactivada na maioría das plataformas para todo o espazo de memoria de E/S. Isto impón accesos de memoria ordenados e descombinados e é imprescindible, por exemploample, para encher FIFO de hardware ou para programar ou borrar dispositivos Flash.

Non obstante, para as memorias F-RAM, as memorias cachés da CPU poden estar habilitadas en combinación co acceso asignado á memoria para impulsar máis o rendemento. Co caché da CPU, o tamaño da ráfaga natural no bus SPI para lecturas e escrituras é dunha liña de caché (64 bytes en i.MX8QXP). Isto fai un mellor uso do ancho de banda do bus SPI dispoñible en comparación cunha serie de transferencias máis pequenas. Non obstante, durante unha caída de enerxía os datos poden perderse se residen nunha liña de caché que aínda non foi escrita de novo na F-RAM. Mentres que para as memorias RAM normais este comportamento é perfectamente aceptable, para F-RAM non o é.

Activar un esquema de caché de lectura sinxelo (é dicir, cunha política de escritura a través da caché) é seguro para a F-RAM, xa que os datos se escriben inmediatamente de novo na matriz F-RAM nesta configuración.

Se a aplicación ten puntos de sincronización claros (por exemploample, gardando imaxes completas da cámara), ata se pode habilitar unha política de reescritura. Con este esquema pódense combinar operacións de escritura máis pequenas para crear escrituras de liña de caché completa de 64 bytes altamente eficientes. Non obstante, débense engadir instrucións de mantemento de barreiras e caché aos puntos de sincronización do código fonte, neste caso para limpar a caché de cando en vez. Tales instrucións fan que os datos acumulados na memoria caché da CPU se escriban explícitamente de novo, eliminando así o risco de perda de datos.

6 Conclusión

A maioría dos controladores SPI actuais admiten o acceso mapeado de memoria a dispositivos externos. Polo tanto, con estes controladores, o acceso a memoria mapeada converteuse nunha opción viable a considerar e os clientes poden beneficiarse del, especialmente no caso da F-RAM.

O acceso mapeado de memoria a F-RAM ten claras vantaxes de rendemento e simplifica o código da aplicación en comparación co método de acceso EEPROM/Flash en serie clásico. É universal, flexible e integra F-RAM perfectamente nun sistema moderno.

Ao analizar e optimizar coidadosamente o código da aplicación, unha combinación de acceso mapeado de memoria con caché da CPU pode mellorar aínda máis o rendemento e a latencia.

7 Documentos relacionados

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

Apéndice A. Memcpy() de 16 bytes optimizado para ARMv8-A

A implementación predeterminada de memcpy() para ARMv8-A en Linux usa instrucións de montaxe de pares de carga e de almacenamento que moven dous rexistros de 8 bytes á vez. Desafortunadamente, estas instrucións desencadean dúas ráfagas SPI de 8 bytes no bus en lugar dunha única ráfaga de 16 bytes. Para mellorar a situación, memcpy() pódese optimizar para utilizar un rexistro FP/SIMD de 16 bytes máis as instrucións de carga/almacenamento correspondentes, como se mostra a continuación. Este cambio crea as ráfagas SPI de 16 bytes desexadas no bus.

CYPRESS Memory Mapped Access to SPI F-RAM AN229843 User Guide - Apéndice A

Historial do documento

Título do documento: AN229843 – Acceso mapeado de memoria a SPI F-RAM Número de documento: 002-29843

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

Soporte de vendas e deseño a nivel mundial
Cypress mantén unha rede mundial de oficinas, centros de solucións, representantes dos fabricantes e distribuidores. Para atopar a oficina máis próxima a ti, visítanos en Cypress Locations.

Produtos
Microcontroladores Arm® Cortex® cypress.com/arm
Automoción  cypress.com/automotive
Reloxos e buffers cypress.com/clocks 
Interface cypress.com/interface
Internet das Cousas  cypress.com/iot
Memoria  cypress.com/memory
Microcontroladores cypress.com/mcu 
PSoC cypress.com/psoc
CI de xestión de enerxía  cypress.com/pmic
Tocar a detección  cypress.com/touch
Controladores USB cypress.com/usb 
Conectividade sen fíos cypress.com/sen fíos

Solucións PSoC®
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP | PSoC 6 MCU

Comunidade de programadores Cypress
Comunidade | Código Examples | Proxectos | Vídeos | Blogs | Formación | Compoñentes

Soporte técnico
cypress.com/support

Todas as outras marcas comerciais ou marcas rexistradas aquí referenciadas son propiedade dos seus respectivos propietarios.

Logotipo CIPRÉS

Cypress Semiconductor
An Infineon Technologies Company 198 ChampCorte iónica
San José, CA 95134-1709

© Cypress Semiconductor Corporation, 2020. Este documento é propiedade de Cypress Semiconductor Corporation e das súas filiais ("Cypress"). Este documento, incluído calquera software ou firmware incluído ou referenciado neste documento ("Software"), é propiedade de Cypress conforme ás leis e tratados de propiedade intelectual dos Estados Unidos e doutros países do mundo. Cypress resérvase todos os dereitos en virtude destas leis e tratados e non concede ningunha licenza baixo as súas patentes, dereitos de autor, marcas comerciais ou outros dereitos de propiedade intelectual, salvo o que se indica especificamente neste parágrafo. Se o Software non vai acompañado dun contrato de licenza e non tes doutro xeito un acordo escrito con Cypress que regule o uso do Software, Cypress outorgache unha licenza persoal, non exclusiva e non transferible (sen dereito a sublicencia). ) (1) baixo os seus dereitos de copyright sobre o Software (a) para o Software proporcionado en forma de código fonte, para modificar e reproducir o Software unicamente para o seu uso con produtos de hardware Cypress, só internamente na súa organización, e (b) para distribuír o Software en forma de código binario externamente para os usuarios finais (directa ou indirectamente a través de revendedores e distribuidores), unicamente para o seu uso en unidades de produtos de hardware de Cypress, e (2) baixo aquelas reclamacións de patentes de Cypress que infrinxen o Software (tal e como proporciona Cypress, sen modificar) para fabricar, utilizar, distribuír e importar o Software unicamente para o seu uso con produtos de hardware Cypress. Queda prohibido calquera outro uso, reprodución, modificación, tradución ou compilación do Software.

NA MEDIDA PERMITIDA POLA LEI APLICABLE, CYPRESS NON OFRECE NINGÚN TIPO DE GARANTÍA, EXPLÍCITA OU IMPLÍCITA, CON RESPECTO A ESTE DOCUMENTO OU A CALQUERA SOFTWARE OU HARDWARE ACOMPAÑADO, INCLUÍDAS, PERO NON LIMITADAS A, AS GARANTÍAS IMPLÍCITAS DE GARANTÍA DE PARTICIPACIÓNS E PARTICIPACIÓNS. .

Ningún dispositivo informático pode ser absolutamente seguro. Polo tanto, a pesar das medidas de seguridade implementadas nos produtos de hardware ou software de Cypress, Cypress non terá ningunha responsabilidade derivada de calquera violación de seguridade, como o acceso ou o uso non autorizado dun produto Cypress. CYPRESS NON REPRESENTA, GARANTÍA OU GARANTÍA QUE OS PRODUTOS OU SISTEMAS CREADOS CON PRODUTOS CYPRESS ESTÁN LIBRES DE CORRUPCIÓN, ATAQUE, VIRUS, INTERFERENCIA, PIRATERÍA, PERDA OU ROUBO DE DATOS, OU OUTRAS INFRUSIÓNS DA SEGURIDADE ). Cypress renuncia a calquera responsabilidade relacionada con calquera violación da seguridade e, polo presente, liberarás a Cypress de calquera reclamación, dano ou outra responsabilidade derivada de calquera infracción de seguridade. Ademais, os produtos descritos nestes materiais poden conter defectos de deseño ou erros coñecidos como erratas que poden provocar que o produto se desvíe das especificacións publicadas. Na medida en que o permita a lexislación aplicable, Cypress resérvase o dereito de facer cambios neste documento sen previo aviso. Cypress non asume ningunha responsabilidade derivada da aplicación ou uso de calquera produto ou circuíto descrito neste documento. Calquera información proporcionada neste documento, incluíndo calquera sampa información de deseño ou código de programación ofrécese só con fins de referencia. É responsabilidade do usuario deste documento deseñar, programar e probar adecuadamente a funcionalidade e a seguridade de calquera aplicación feita con esta información e calquera produto resultante. "Dispositivo de alto risco" significa calquera dispositivo ou sistema cuxa avaría pode causar danos persoais, morte ou danos materiais. ExampOs dispositivos de alto risco son armas, instalacións nucleares, implantes cirúrxicos e outros dispositivos médicos. "Compoñente crítico" significa calquera compoñente dun Dispositivo de Alto Risco cuxa falla de funcionamento se pode esperar razoablemente que cause, directa ou indirectamente, a falla do Dispositivo de Alto Risco, ou que afecte á súa seguridade ou eficacia. Cypress non é responsable, total ou parcialmente, e por este medio liberarás a Cypress de calquera reclamación, dano ou outra responsabilidade derivada de calquera uso dun produto Cypress como compoñente crítico nun dispositivo de alto risco. Deberá indemnizar e manter a Cypress, os seus directores, oficiais, empregados, axentes, afiliados, distribuidores e cesionarios inofensivos de e contra todas as reclamacións, custos, danos e gastos derivados de calquera reclamación, incluídas as reclamacións por responsabilidade do produto, danos persoais. ou morte, ou danos materiais derivados de calquera uso dun produto Cypress como compoñente crítico nun dispositivo de alto risco. Os produtos Cypress non están destinados nin están autorizados para o seu uso como compoñente crítico en ningún dispositivo de alto risco, excepto na medida en que (i) a folla de datos publicada por Cypress para o produto indique explícitamente que Cypress cualificou o produto para o seu uso nun determinado risco de alto risco. Dispositivo ou (ii) Cypress deulle autorización previa por escrito para utilizar o produto como un compoñente crítico no Dispositivo de alto risco específico e asinaches un acordo de indemnización por separado.
Cypress, o logotipo de Cypress, Spansion, o logotipo de Spansion e as súas combinacións, WICED, PSoC, CapSense, EZ-USB, F-RAM e Traveo son marcas comerciais ou marcas rexistradas de Cypress nos Estados Unidos e noutros países. Para obter unha lista máis completa das marcas comerciais de Cypress, visite cypress.com. Outros nomes e marcas pódense reclamar como propiedade dos seus respectivos propietarios.

www.cypress.com

Documentos/Recursos

Acceso mapeado de memoria CYPRESS a SPI F-RAM AN229843 [pdfGuía do usuario
CYPRESS, Memoria mapeada, acceso a, SPI, F-RAM, AN229843

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *