17 votos

¿Por qué la mayoría de los no-volátil recuerdos tiene de lógico 1 como el estado predeterminado?

He usado la memoria no volátil, como la memoria EEPROM y memoria FLASH, en aplicaciones embebidas y siempre he encontrado que las de la memoria (EEPROM/FLASH) bit lugares siempre se establecen en 1 por defecto. ¿Por qué esto es usado en lugar de 0?

Por ejemplo una dirección, digamos 0 dirección (primer byte de la memoria), si no escritos por el usuario, siempre almacena 0xff e no 0x00. ¿Por qué es que la gente que construyó los chips de la memoria mantenerse de esa manera? Estoy seguro de mantener la ubicación predeterminada de la memoria como 0xff daría cierta ventaja o algo importante para el fabricante.

¿Cuál es la razón detrás de esta estructura en los chips de memoria?

20voto

Matt McMinn Puntos 6067

Voy a hablar de memoria flash de programación, pero una gran cantidad de material será similar a la de EEPROMs (Eléctricamente Borrable Programable ROM), ya que la memoria flash se deriva de EEPROMs a mediados de 1980. Como se describe a continuación, desde un punto de vista físico, el estado predeterminado es 1. Pero lo que es más importante, voy a explicar por qué no es un estado predeterminado -- usted no puede arbitrariamente programa en la parte superior de lo que ya está programada a partir de la última vez.

NI el flash es casi siempre elegido para el programa de flash ya que la interfaz es el más adecuado para la colocación de los datos en el mapa de memoria del microcontrolador -- dirección completa y datos de los buses de imitar RAM y permitir el acceso aleatorio a cualquier lugar. Los datos se pueden leer una palabra en un tiempo, donde una palabra se define como la anchura de datos del microcontrolador, generalmente de 8, 16 o 32 bits. NAND flash, por otro lado fue desarrollado para reemplazar las unidades de disco duro y funciona de forma secuencial.

Sin embargo, la programación se vuelve un poco más complicado. Como ya se ha mencionado, el estado predeterminado para NI flash y otros no volátil de los recuerdos como NAND flash, memorias eeprom, e incluso EPROMs es un 1 lógico. Usted no puede programar de 1 a estos dispositivos, sólo puede programa 0. Así, por ejemplo, si usted tiene un byte que contiene 0x0123 y desea cambiar a 0x3210, usted no puede hacerlo directamente, como la escritura de más de un byte en la memoria RAM.

En lugar de ello, los bits en la memoria que debe ser borrado, lo que les sitúa en el valor predeterminado de 1 estado ya se ha mencionado. Esto sólo puede hacerse en bloques, no en las palabras. En el Microchip PIC32, que he trabajado con la mayoría de los últimamente, el tamaño mínimo de bloque que se puede borrar, es de 4096 bytes. Así que si usted quiere cambiar una sola palabra (32 bits), tendría que leer el 4K de memoria, borrar el bloque, a continuación, escribir el 4K de memoria flash, pero incluyendo el nuevo valor de 32 bits según sea necesario. Este borrado puede tomar algún tiempo, una buena parte de un segundo.

La siguiente es una imagen de un flash de celda de memoria. Flash almacena los datos quitando o poniendo electrones en la puerta flotante. Cuando los electrones están presentes en la puerta flotante, no fluye corriente a través del transistor, lo que indica un 0. Cuando los electrones se eliminan de la puerta flotante, el transistor empieza a conducir, lo que indica un 1. (Esto es por convención-que podría haber sido de otra manera, pero requería de los inversores en todas las líneas de datos.)

enter image description here

Operación de borrado. El estado predeterminado de las celdas de memoria flash (un solo nivel NI el flash de la célula) es 1 porque flotante, puertas de transportar cargas negativas. Borrado de una memoria flash de celda (restablecer un 1) se logra mediante la aplicación de un voltaje a través de la fuente y la puerta de control (palabra de la línea). El voltaje puede estar en el rango de -9V-12V. Y también se aplican alrededor de 6V a la fuente. Los electrones en la puerta flotante son sacados y trasladados a la fuente de túnel cuántico. En otras palabras, los electrones túnel de la puerta flotante a la fuente y sustrato.

Debido a que el borrado de los usos altos voltajes, por lo que el borrado de bloques requiere menos área de la matriz. De modo que los voltajes sólo puede ser aplicada a toda la filas de transistores en un momento.

Para escribir, un flash NOR de la célula puede ser programado, o establecer un 0 por el siguiente procedimiento. Mientras que la escritura, de un alto voltaje de alrededor de 12V se aplica a la puerta de control (palabra de la línea). Si un alto voltaje de alrededor de 7V se aplica a poco (Línea de drenaje de la terminal), un 0 se almacena en la celda. El canal está ahora activada, por lo que los electrones pueden fluir desde la fuente al drenaje. La fuente de corriente de drenaje es lo suficientemente alta como para causar que algunos de los electrones de alta energía para saltar a través de la capa aislante en la puerta flotante a través de un proceso llamado hot-inyección electrónica.

Para la lectura, un voltaje de alrededor de 5V se aplica a la puerta de control y alrededor de 1V a la fuga. El estado de la celda de memoria se distingue por la corriente que fluye entre el drenaje y la fuente.

La vida útil de la memoria no volátil se mide en términos de ciclos de borrado. La desventaja de NI, es que el número de ciclos de borrado es de alrededor de 1/10 de memoria NAND. Muchas versiones de la PIC32 sólo permitir la memoria flash para ser actualizado 1000 veces, la manera menos la típica de 100.000 ciclos de borrado de memorias eeprom.

Así que no es tan importante si los diseñadores de hecho el estado por defecto es 1 o 0 (se escogió el valor que permite la implementación más sencilla); lo importante es que uno tiene que borrar un bloque de flash primero (que lleva su tiempo), y luego volver a programar el bloque entero (incluso si una sola palabra se va a cambiar (que requiere una cantidad considerable de memoria RAM).

Este bloque de borrado del dispositivo se remonta a la primera EPROMs (Erasable Programmable ROM), la cual procedió EEPROMs El código fue programado en fichas (como el 16KB 27128) y se coloca en los zócalos. Estos chips había una pequeña ventana en la parte superior que permite que la luz brille en el molde. Cuando el programa tuvo que ser cambiado, las fichas se colocan en una UV borrador por 20 minutos o así, que iba a borrar todo el chip. A continuación, el chip podría ser programado con el nuevo programa.

Algunos EEPROMs requieren de borrar de bloques de memoria antes de programación; otros permiten la escritura de un byte en un momento (la EEPROM controlador en realidad se borra el primer byte y de los programas).

5voto

Al pacino Puntos 415

En la moderna memoria flash, no sé de ninguna razón para elegir las que más ceros como el valor predeterminado. La lectura se realiza a través de diferencial sentido corriente de los amplificadores, por lo que en principio podría tomar la salida desde cualquiera de los lados. (La primera EEPROMs podría haber tenido más simple lectura de los circuitos -- no estoy seguro.)

No es una buena razón para no añadir más inversores -- sería aumentar el retardo de propagación de la memoria a la CPU. En los microcontroladores, el flash de la CPU datapath tiene un gran efecto sobre el rendimiento general del sistema, ya que determina el tiempo que se necesita para obtener instrucciones.

Circuito Digital a los diseñadores a menudo esperan cero significa borrar/restablecer/borrar. Pero flash transistores y leer los circuitos analógicos. Desde ese punto de vista, que describe la realización del estado de la flash transistor lógico tiene más sentido. Y resulta que va de una a un cero es mucho, mucho más rápido de lo que va de cero a uno, entonces uno se convierte en el "borrado" del estado, mientras que el cero se convierte en el "programado" del estado.

Versión corta: Semiconductor físicos y circuito analógico diseñadores importa nada de digital intuiciones. :-)

1voto

llee94 Puntos 23

No estoy seguro de lo que se está citando, pero al salir de la página de Wikipedia de memoria flash, parece ser el resultado de un hardware de memoria flash:

Un solo nivel, NI el flash de la célula en su estado por defecto es lógicamente equivalente a un binario "1" valor", dado que la corriente fluirá a través del canal bajo la aplicación de un voltaje adecuado para el control de la puerta, de modo que el bitline tensión se tira hacia abajo."

Si usted fuera a utilizar otro tipo de flash, por ejemplo, NAND, el estado por defecto es 1 ya que la salida de NAND es 1 cuando cualquiera de los transistores de salida está por debajo de su alta/baja tensión de umbral.

Disculpas si estoy totalmente perdido el barco en lo que estábamos pidiendo, soy bastante nuevo en todo esto así.

1voto

Wolfgang Haak Puntos 38

Las ROMs y fiestas de graduación, de camino de regreso cuando había de ser manipulado por la adición de metal en la capa de máscara durante la fabricación o la quema de la basura en la programación y ambos procesos tuvieron una alta predeterminada de estado cuando se fabrican. Disponer de ellos de forma predeterminada a BAJO coste más transistores, la reducción de la programación de la conveniencia o la velocidad de operación de alguna manera.

Desde entonces se ha convertido convención debido a la adición de un inversor en algún punto de la ruta de datos en estos días sería posible.

La convención puede haber comenzado en los días de diodo lógica de las matrices de memoria que había diodos para tirar hacia abajo las líneas de datos, cuando fueron abordados y la memoria no utilizada palabras no tendrían diodos en lugar de todos los diodos. La mayoría de los principios de la lógica digital estándares fueron activamente sacó BAJO y flotaba si no.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X