¿La razón precisa por la que la DRAM es más lenta para escribir que para leer?

5

Solo quiero asegurarme de que tengo mis datos claros.

En los viejos tiempos cuando era un adolescente y no se conocía Internet fuera de la academia, recuerdo que aprendí (no me enseñaron esto per se) que escribir en DRAM es más lento que leer porque lleva tiempo cargar o descargar los condensadores dentro de cada celda de memoria DRAM.

¿Esto sigue siendo el caso o fue alguna vez?

    
pregunta Caladan

5 respuestas

6

Sí, sigue siendo el caso. El principio detrás de la DRAM es el de un condensador (simplemente, 1 transistor pequeño y uno grande), mientras que detrás de la SRAM es un pestillo, hecho de unos pocos (más) transistores. La DRAM tiene más capacitancia. Si asume que tienen una impedancia de entrada * igual, es sencillo ver que el DRAM RC-delay es más lento que el de SRAM.

DRAM es barato, sin embargo, así que todavía nos encanta. SRAM es increíble, así que también nos encanta.

DRAM: enlace

SRAM:

* (Es probable que no lo hagan, realmente se ajusta a su circuito de lectura, pero a quién le importa).

    
respondido por el tyblu
3

Un ciclo de lectura para una DRAM "tradicional" requería leer una fila de la matriz de memoria en el búfer de la fila y volver a escribirla sin cambios. Un ciclo de escritura requería leer una fila, modificarlo y luego volver a escribirlo. En general, no se puede comenzar a modificar una fila en la memoria hasta después de que se haya leído. Habría sido posible diseñar una DRAM que incluyera un bit de "etiqueta" para cada ubicación direccionable de modo que uno pudiera comenzar a escribir una fila incluso antes de que se leyera, y las ubicaciones "etiquetadas" sobrescribirían automáticamente los datos de lectura en la fila búfer, pero no sé de ningún fabricante que haya hecho esto. También habría sido posible permitir que se escribiera una fila completa a la vez sin leerla en absoluto, pero tampoco tengo conocimiento de que ningún fabricante haya hecho eso.

    
respondido por el supercat
3

Entiendo que "leer" y "escribir" tienen tiempos idénticos en una DRAM típica.

Tal vez alguien te estaba diciendo acerca de los tiempos de "memoria Flash". La memoria flash tiene tiempos de lectura relativamente rápidos pero tiempos de escritura mucho más largos. Por ejemplo, con un flash serie Numonyx M25P80-VMW6G 75MHz 8 Mbit, La lectura de un sector de datos (a 75 MHz) requiere 7 milisegundos, mientras que borrar y escribir nuevos datos en un sector suele ser de 0,6 segundos (máximo 3 segundos).

En otras palabras, escribir esta memoria flash normalmente toma 85 veces más tiempo que leer, y en el peor de los casos, escribir un sector lleva más de 400 veces más que leer. (Eso ni siquiera se toma en cuenta las ineficiencias de la actualización parcial del sector).

En mi experiencia, el tiempo que lleva borrar y reescribir un sector particular de flash continúa aumentando con cada ciclo de borrado / reescritura, pero los tiempos de lectura permanecen constantes.

    
respondido por el davidcary
3

La razón por la que la DRAM tarda más en escribir se debe a la naturaleza sensible del bit DRAM y la forma en que están cableadas las matrices. Esencialmente, estos dos parámetros hacen que sea necesario realizar una lectura antes de escribir cualquier información.

Las matrices de memoria, incluida la DRAM, generalmente se organizan en una cuadrícula. Las salidas de cada bit están conectadas verticalmente, y las señales de habilitación para cada bit están conectadas horizontalmente. Para leer un poco de datos, la señal de habilitación horizontal, o línea de palabra, conecta toda la fila a los cables verticales conocidos como líneas de bits. Incluso si solo desea un solo bit en una matriz grande, debe acceder a toda la fila. Esta flexibilidad reducida en el enrutamiento es necesaria para lograr la densidad deseada en las matrices de memoria.

DRAM es esencialmente una serie de condensadores con interruptores. Cuando se diseñan estos condensadores, son solo una fracción de las capacidades parásitas de cableado de las líneas de bits verticales. Los amplificadores conectados a las líneas de bits pueden detectar el pequeño cambio de voltaje que se produce cuando se conecta una celda DRAM cargada a la línea de bits y amplificarla en un valor lógico que otros circuitos y chips pueden usar. Debido a la carga compartida de la capacitancia de la línea de bits y la capacidad de la celda DRAM, los datos en un bit de DRAM se borran efectivamente cada vez que se accede a ellos. Si desea leer un solo bit de DRAM, debe volver a escribir el valor en el mismo bit. Por lo tanto, cada vez que lee desde DRAM, el ciclo se lee, luego se escribe.

Debido a la naturaleza de la cuadrícula de las matrices de memoria, el número de bits en una fila suele ser mucho mayor que el tamaño de palabra de la matriz. Esto significa que si desea leer o escribir una palabra de una fila, habrá bits que se activarán por la línea de palabra que no quiso leer o escribir. Estos datos serán destruidos si no se hace nada para preservarlos. Eso significa que cuando lees, debes leer toda la fila y escribir toda la fila. Para escribir, debe leer toda la fila y luego volver a escribir los datos que lee junto con los datos que desea escribir. Por lo tanto, el procedimiento para escribir datos en la matriz se lee, luego se escribe.

Así que vemos que el procedimiento es esencialmente el mismo tanto para leer como para escribir: primero lea una fila y luego vuelva a escribir los nuevos contenidos. La lectura se realiza primero, por lo que los datos podrían estar disponibles primero si el proceso es un evento de varios ciclos. La escritura puede llevar más tiempo, ya que la escritura no se produce hasta el final del proceso. Históricamente, esto puede haber sido un proceso de varios ciclos, pero he visto amplificadores para leer que responderán tan pronto como conozcan el valor que lo convierte en un vínculo para leer y escribir.

    
respondido por el W5VO
-2

Al escribir, cargue y descargue el pequeño condensador como las celdas de la DRAM. Un condensador corresponde a un bit, así que imagínese si tiene 1 Gigabyte de esas celdas. Y esta carga y descarga lleva más tiempo que leer esas celdas.

    
respondido por el LEM Adane

Lea otras preguntas en las etiquetas