¿Por qué existe el comando QUAD INPUT PAGE PROGRAM OPERATION?

Mientras leía la hoja de datos de la serie IS25LP512M de dispositivos Flash de ISSI, me encontré con este extraño comando, 32h/38h llamado "FUNCIONAMIENTO DEL PROGRAMA DE PÁGINA DE ENTRADA CUÁDRUPLE" (en la sección 8.11) con el siguiente diagrama de tiempo:

Diagrama de 32h/38h

Este comando parece muy extraño ya que solo usa el bit menos significativo del bus de datos para transferir el comando y la dirección, en contraste con todos los otros comandos QSPI (hasta donde puedo decir) como 02h, "Secuencia de programa de página en SPI Modo" que transfiere el comando y la dirección a través de todas las líneas de datos al mismo tiempo:

Diagrama de 02h

Parece que sería complicado implementar este comando en el dispositivo Flash y en el lado del Maestro.

Buscando en Google " memoria flash de 32 h " y mirando los resultados, parece que hay una serie de otros chips que implementan este comando, GD5F4GQ4UAYIG , S25FL-S , W25M321AV , etc. Así que supongo que es de algún tipo de estándar. (aunque parece que el estándar JEDIC Common Flash Memory Interface no cubre los comandos).

¿De dónde vino este mandato? ¿Quién lo usa? ¿Por qué existe?

También existe el comando de lectura correspondiente, 6Bh
@asdfex buena observación, ¡me lo perdí!

Respuestas (1)

Esas Flash ROM se pueden operar de varias maneras: líneas de datos simples, dobles y cuádruples. Cuantas más líneas utilice, más rápido será el proceso de lectura o escritura para una mayor cantidad de datos. Incluso hay más modos disponibles, este dispositivo específico admite 27 (al menos si conté correctamente) diferentes comandos de lectura, todos con su número especial de bytes de dirección, velocidades y número de salidas.

Por lo general, los dispositivos se inician en el modo más simple, que es una sola entrada/salida y deben configurarse para usar cualquiera de los otros modos. Hay dos maneras de cómo esto se puede lograr:

Primero, el dispositivo se puede cambiar, por ejemplo, al modo de línea cuádruple, y luego todos los comandos y datos subsiguientes se transmiten en paralelo en cuatro líneas. Obviamente, este es el modo más rápido posible, pero también requiere un controlador complejo: debe comenzar en modo de línea única, configurar el dispositivo en línea cuádruple (modo QPI) y luego enviar comandos en cuatro líneas.

Este es el punto donde entran en juego los comandos 32h y 6bh: aquí todos los comandos se transmiten como una línea y solo los datos se transmiten en cuatro líneas. Esto permite un controlador simple: todos los comandos siempre se envían en una sola línea y no hay necesidad de cambiar de modo. Los datos, por otro lado, se transmiten en todas las líneas. Esto permite que el dispositivo alcance casi la misma velocidad que en el modo QPI; la diferencia real es pequeña, ya que, por ejemplo, la lectura requiere varios ciclos ficticios hasta que los datos estén disponibles.

Ese también fue mi pensamiento, sin embargo, en todas partes que he visto, debe poner el dispositivo en modo QSPI antes de poder usar este comando, de la hoja de datos: "Antes de la ejecución de la instrucción del programa de página de entrada cuádruple, el bit QE en el registro de estado debe establecerse en "1" y el pestillo de habilitación de escritura (WEL) debe habilitarse a través de una instrucción de habilitación de escritura (WREN). Configurar WREN en modo QSPI funciona como cabría esperar usando todas las líneas de datos, y cambiar el bit QE de nuevo a SPI de un solo cable requiere un comando cuádruple estándar.
Se debe configurar el bit @MarkOmo QE, pero aún es diferente a emitir 35h, "Habilitar modo QPI", que se necesita para las operaciones "reales" de 4 líneas. El bit QE es para seguridad adicional porque las líneas IO 2-4 tienen otros propósitos en paralelo o incluso pueden estar vinculadas a GND/VCC según la aplicación.
Ahh, ya veo, gracias. No conozco ninguna situación en la que esto sea más simple que QSPI completo. ¿Puede señalar un dispositivo que dependa de este modo para funcionar?