Celda de memoria

La celda de memoria o posición de memoria es el elemento base fundamental en el que se basa la memoria informática. Es un circuito electrónico que almacena un bit de información binaria y que debe de ser activado para almacenar un valor lógico de 1 (nivel alto de voltaje) y reseteado para almacenar un valor lógico de 0 (nivel bajo de voltaje). El valor de la celda de memoria se mantiene o es recordado hasta que sea cambiado por el proceso de activación/reseteo. Se puede acceder al valor almacenado en la celda de memoria mediante el proceso de lectura.

Historia

Celda de memoria usada en el integrado Intel 1103. Fue la primera memoria comercialmente disponible.

El 11 de diciembre de 1946 Freddie Williams solicitó una patente para el Tubo Williams, un elemento de almacenaje basado en un Tubo de rayos catódicos (también conocido como CRT por sus siglas en inglés) su invención contaba con 128 palabras de 40 bits cada una.[1]​ Williams consiguió hacerlo funcionar en 1947 y se considera como la primera implementación práctica de una memoria de acceso aleatorio.[2]​ En ese mismo año, se cursó la primera solicitud de patente para la memoria de núcleo magnético por parte de Frederick Viehe. An Wang, Ken Olsen y Jay Forrester también contribuyeron a su desarrollo.[1]​ Las primeras celdas de memoria modernas aparecieron en 1969, cuando John Schmidt diseñó la primera memoria estática de acceso aleatorio (SRAM por sus siglas en inglés) de 64 bits usando MOSFETs con canal de tipo p. la primera SRAM con transistores bipolares fue comercializada por Intel en 1969 con el chip 3101 Schottky TTL y un año más tarde comercializaron el chip Intel 1103 que fue la primera memoria dinámica de acceso aleatorio (DRAM).[1]

Descripción

La celda de memoria es el elemento básico y fundamental de las memoria electrónica.[3]​ Se puede implementar usando múltiples tecnologías como por ejemplo:bipolar, MOS, y otros dispositivos semiconductores, también pueden estar compuestas por material magnético como los núcleos de ferrita o memorias de burbuja.[4]​ Independientemente de la tecnología usada para su implementación, el propósito de una celda de memoria binaria es siempre el mismo: Almacena un bit de información binaria y debe de ser activado para almacenar un 1 y reseteado para almacenar un 0.[5]

Implementación

En los siguientes diagramas se detallan las tres implementaciones más usadas en la actualidad para las celdas de memoria:

  • La celda de una memoria dinámica de acceso aleatorio (DRAM).[6]
  • La celda de una memoria estática de acceso aleatorio (SRAM).[7]
  • Biestables como el J/K que se muestra a continuación.[8]
Celda DRAM(1 Transistor y un condensador)
Celda SRAM (6 Transistores)
Biestable J/K activo por flanco

Funcionamiento

Celda de memoria DRAM

Die de MT4C1024 integrando un-mebibit de celdas de memoria DRAM.
  • Almacenamiento
El elemento de almacenamiento de la celda de memoria DRAM es el condensador etiquetado con el número (4) en el diagrama de la sección anterior. La carga almacenada en el condensador se degrada con el tiempo, por lo que su valor se debe restaurar o refrescar periódicamente (leído y reescrito). El transistor nMOS (3) actúa como una puerta para permitir la lectura o escritura cuando está abierto o el almacenamiento cuando está cerrado.[9]
  • Lectura
Para la lectura la fila (word line) transmite un valor lógico de 1 (voltaje alto) a la compuerta del transistor nMOS (3) que lo vuelve conductivo permitiendo que la carga almacenada en el condensador (4) sea transferida a la columna de datos.[9]​ La columna de datos (bit line) tiene una capacidad parasítica (5) adicional que absorberá parte de la carga y ralentizará el proceso de lectura. la capacidad eléctrica de la columna (bit line) determinará el tamaño necesario del condensador de almacenamiento (4). En el diseño se debe de elegir. Si el condensador de almacenamiento es demasiado pequeño, el voltaje de la columna (bit line) tardaría demasiado tiempo en alcanzar o no alcanzaría el nivel necesario por los amplificadores al final de cada columna de datos. Ya que el proceso de lectura degrada la carga en el condensador de almacenamiento (4), su valor debe de ser reescrito tras cada lectura.[6]
  • Escritura
El proceso de escritura es el más sencillo. El valor deseado 1 (voltaje alto) o 0 (voltaje bajo) se transmite a la columna de datos (bit line). La fila de datos (word line) activa los transistores nMOS (3) conectando la fila de datos con el valor a escribir al condensador de almacenamiento (4).[9]​ El único factor a tener en cuenta es asegurar que el transistor nMOS (3) se mantiene abierto el tiempo necesario para permitir que el condensador se cargue o descargue completamente.[6]

Celda de memoria SRAM

Celda de memoria SRAM con los transistores centrales representados como inversores
  • Almacenamiento
El principio de funcionamiento de la celda de memoria SRAM es más fácil de comprender si representamos los transistores M1 a M4 como inversores. De esta manera se puede apreciar claramente que el corazón de la celda de memoria está formado por dos inversores en lazo. Este simple lazo crea un circuito biestable.[10]​ Un valor lógico de 1 en la entrada del primer inversor se convierte en un 0 en su salida, y se transmite a la entrada del segundo inversor que transforma ese 0 en un 1 y lo transmite de nuevo a la entrada del primer inversor. Esto crea un estado estable que se mantiene en el tiempo.[10]​ Igualmente el otro estado estable del circuito se da cuando se tiene un valor de 0 en la entrada del primer inversor tras pasar por ambos inversores en serie, y ser invertido dos veces el valor se mantiene en 0.[10]
Por tanto existen solo dos estados estables en los que se puede encontrar el circuito:
  • = 0 y   = 1
  • = 1 y   = 0[10]
  • Lectura
Para leer los contenidos de la celda de memoria almacenados en el lazo los transistores M5 y M6 deben de ser activados. Cuando reciben voltaje a sus compuertas desde la fila de datos (word line) (), se convierten en conductivos por lo que los valores en and    se transmiten a la columna de datos (bit line) () y a su complementaria (). Finalmente estos valores se amplifican al final de las columnas de datos (bit lines).[10]
  • Escritura
El proceso de escritura es similar. La diferencia es que en este caso el nuevo valor que queremos almacenar en la celda de memoria se transmite a la columna de datos (bit line) () y a su complementaria (). Seguidamente los transistores M5 y M6 son activados transmitiendo un valor de 1 (voltaje alto) a la fila de datos (word line) () Conectando las columnas de datos (bit lines) al lazo cerrado.[10]​ Hay dos casos posibles:
  1. Si el valor del lazo biestable es el mismo que el nuevo valor transmitido no se produce ningún cambio.
  2. Si el valor del lazo biestable es diferente que el nuevo valor transmitido hay un conflicto entre ambos valores. Para que el valor en las columnas de datos (bit lines) puedan sobre-escribir las salidas de los inversores, el tamaño de los transistores M5 y M6 debe de ser mayor que el de M1 a M4 para permitir que fluya mayor corriente a través de ellos y poder alcanzar el punto de inversión del lazo a partir del cual los inversores amplificarán el voltaje hasta alcanzar el nuevo valor estable.[11]

Biestable

Existen múltiples implementaciones de biestables. Su elemento de almacenamiento suele ser un latch implementado con un lazo de puertas NAND o un lazo de puertas NOR más otras puertas adicionales para implementar sincronismo. Su valor está siempre disponible para su lectura como una salida. Dicho valor se mantiene almacenado estable hasta que es cambiado por el proceso de activación o reseteo.[8]

Aplicaciones

Proceso de lectura en matriz cuadrada de celdas de memoria DRAM

Los circuito digitales sin celdas de memoria o lazos cerrados se denominan sistemas combinacionales, sus salidas en cualquier momento dependen únicamente del valor en ese mismo momento de sus entradas. No disponen de memoria.[12]

Sin embargo la memoria es un elemento clave de los sistemas digitales. En computadoras permiten el almacenamiento de código y datos. Las celdas de memoria también se usan para el almacenamiento temporal de las salidas de circuitos combinacionales para su posterior uso por sistemas digitales.[13]​ Los sistemas digitales que utilizan celdas de memoria se denominan sistemas secuenciales. Sus valores no dependen únicamente del valor actual de sus entradas, sino también del estado anterior del sistema que es determinado por los valores almacenados en sus celdas de memoria. Los sistemas secuenciales necesitan un reloj para funcionar, se los denomina "síncronos" o "sincrónicos".[13]

La memoria usada por los ordenadores o computadoras está formada principalmente por celdas de memoria DRAM, ya que el espacio necesario es mucho menor que el de las celdas SRAM y por tanto se pueden agrupar con mayor densidad obteniendo mayor capacidad a menor precio. Teniendo en cuenta que las celdas DRAM almacenan su valor en un condensador cuya carga se degrada con el tiempo su valor debe de ser refrescado periódicamente esta es una de las razones que hace que las celdas DRAM sean más lentas que las SRAM que son mayores pero cuyo valor esta siempre disponible. Esta es la razón por la que las celdas de memoria SRAM se utilizan en la caché integrada dentro de los chips de los microprocesadores modernos.[14]

Referencias

  1. a b c W. Pugh, Emerson; R. Johnson, Lyle; H. Palmer, John (1991). IBM's 360 and Early 370 Systems (en inglés). MIT Press. p. 706. ISBN 0262161230. Consultado el 9 de diciembre de 2015. 
  2. O’Regan, Gerard (2013). Giants of Computing: A Compendium of Select, Pivotal Pioneers (en inglés). Springer Science & Business Media. p. 267. ISBN 1447153405. Consultado el 13 de diciembre de 2015. 
  3. Morris Mano, M. (2003). Diseño digital. Pearson Educación. p. 263. ISBN 9789702604389. Consultado el 2 de abril de. 
  4. D. Tang, Denny; Lee, Yuan-Jen (2010). Magnetic Memory: Fundamentals and Technology (en inglés). Cambridge University Press. p. 91. ISBN 1139484494. Consultado el 13 de diciembre de 2015. 
  5. Fletcher, William (1980). An engineering approach to digital design. Prentice-Hall. p. 283. ISBN 0-13-277699-5. 
  6. a b c Rubio Sola, José Antonio (2003). Diseño de circuitos y sistemas integrados. Univ. Politèc. de Catalunya. pp. 241-243. Consultado el 11 de diciembre de 2015. 
  7. Pavlov, Andrei; Sachdev, Manoj (2008). CMOS SRAM Circuit Design and Parametric Test in Nano-Scaled Technologies: Process-Aware SRAM Design and Test (en inglés). Springer Science & Business Media. p. 24. ISBN 1402083637. Consultado el 11 de diciembre de 2015. 
  8. a b Godse, A.P.; Godse, D.A. (2009). Digital Electronics And Logic Design (en inglés). Technical Publications. p. 6.16. ISBN 8184316690. Archivado desde el original el 22 de diciembre de 2015. Consultado el 11 de diciembre de 2015. 
  9. a b c Montoto San Miguel, Luis (2005). Fundamentos físicos de la informática y las comunicaciones. Paraninfo. p. 62. ISBN 8497324005. Consultado el 9 de diciembre de 2015. 
  10. a b c d e f Montoto San Miguel, Luis (2005). Fundamentos físicos de la informática y las comunicaciones. Paraninfo. p. 415-417. ISBN 8497324005. Consultado el 11 de diciembre de 2015. 
  11. Bagad, V.S. (2009). Vlsi Design. Technical Publications. p. 3.59. ISBN 8184317166. Archivado desde el original el 22 de diciembre de 2015. Consultado el 11 de diciembre de 2015. 
  12. Arias Pérez, Jagoba (2006). Electrónica digital. Delta Publicaciones. p. 15. ISBN 8496477444. Consultado el 11 de diciembre de 2015. 
  13. a b ["https://books.google.es/books?id=idO-oQEACAAJ&dq=978-0030073281&hl=en&sa=X&redir_esc=y" Microelectronic Circuits] (Second edición). Holt, Rinehart and Winston, Inc. 1987. p. 883. ISBN 0-03-007328-6. 
  14. «La Question Technique : le cache, comment ça marche ?». PC World Fr (en francés). Archivado desde el original el 30 de marzo de 2014. 

Véase también