Ventajas SDRAM

En cuanto a las tecnologías RAM (las básicas), considero la clasificación inicial (basada en el almacenamiento) como

  • SRAM: La entidad básica para el almacenamiento (cada celda) es el flip-flop (compuesto por transistores). Tiene un acceso rápido en comparación con otros, pero es costoso y ocupa mucho espacio debido a la cantidad de transistores empleados.

  • DRAM: cada celda es un circuito transistor-capacitor. El capacitor actúa como un dispositivo de almacenamiento, mientras que el transistor es la unidad de control que decide si se debe realizar una lectura/escritura en la celda específica. Además, el controlador de RAM necesita actualizar las celdas (es decir, leer y escribir) a intervalos regulares para superar la deficiencia de la fuga del condensador.

  • SDRAM: Esta es una sucesión de DRAM, excepto que cada operación en la RAM está sincronizada con el reloj del sistema.

Estoy encontrando dificultades para comprender la ventaja de hacer que las operaciones de RAM sean sincrónicas. ¿Alguien puede dar más detalles sobre esto, por favor?

Respuestas (4)

La principal ventaja del diseño síncrono es que su comportamiento es fácil de predecir, modelar y validar porque todo sucede en un horario predefinido. Sin embargo, esperar un tiempo específico para realizar una acción hace que el diseño síncrono sea más lento que un diseño asíncrono comparable. E incluso cuando el circuito no responde a sus entradas lógicas, sigue consumiendo energía ya que responde a la señal del reloj.

Un circuito asíncrono puede ser mucho más rápido porque responde a sus entradas a medida que cambian. No hay que esperar una señal de reloj antes de que pueda llevarse a cabo el procesamiento. También pueden consumir menos energía ya que no tienen nada que hacer cuando las entradas están inactivas y tienen un mejor rendimiento de EMI ya que no hay una señal digital constante flotando. Pero el diseño de dichos sistemas es mucho más difícil porque todas las combinaciones de entradas a lo largo del tiempo deben tenerse en cuenta para garantizar el funcionamiento adecuado del circuito. Cuando dos entradas cambian casi al mismo tiempo, esto se denomina condición de carrera y el circuito puede tener un comportamiento indefinido si el diseñador no planeó cada combinación de entradas en cada combinación de tiempo.

Al comparar y contrastar el diseño sincrónico con el asincrónico, probablemente esté pensando que las grandes empresas como Samsung pueden gastar miles de millones en investigación y diseño para modelar completamente un circuito DRAM para que su funcionamiento sea realmente estable y luego tendríamos un consumo de energía realmente bajo y realmente rápido. memoria. Entonces, ¿por qué la SDRAM es mucho más popular?

Si bien el diseño asíncrono es más rápido que el síncrono en operaciones secuenciales , es mucho más fácil diseñar un circuito para realizar operaciones en paralelo o simulaciones si las operaciones son síncronas. Y cuando se pueden realizar muchas operaciones al mismo tiempo, la ventaja de velocidad del diseño asíncrono desaparece.

Entonces, las tres cosas principales a considerar al diseñar un circuito RAM son la velocidad, la potencia y la facilidad de diseño. SDRAM gana a DRAM normal en dos de tres de ellos y por un margen muy amplio.

Citas de Wikipedia:

Memoria dinámica de acceso aleatorio -

El cambio más significativo, y la razón principal por la que SDRAM ha suplantado a la RAM asíncrona, es la compatibilidad con varios bancos internos dentro del chip DRAM. Usando unos pocos bits de "dirección de banco" que acompañan a cada comando, se puede activar un segundo banco y comenzar a leer datos mientras se realiza una lectura del primer banco. Al alternar los bancos, un dispositivo SDRAM puede mantener el bus de datos continuamente ocupado, de una manera que la DRAM asíncrona no puede.

Memoria dinámica síncrona de acceso aleatorio -

Classic DRAM tiene una interfaz asíncrona, lo que significa que responde lo más rápido posible a los cambios en las entradas de control. SDRAM tiene una interfaz síncrona, lo que significa que espera una señal de reloj antes de responder a las entradas de control y, por lo tanto, está sincronizada con el bus del sistema de la computadora. El reloj se utiliza para controlar una máquina interna de estados finitos que canaliza los comandos entrantes. El área de almacenamiento de datos se divide en varios bancos, lo que permite que el chip funcione con varios comandos de acceso a la memoria a la vez, intercalados entre los bancos separados. Esto permite velocidades de acceso a datos más altas que una DRAM asíncrona.

La canalización significa que el chip puede aceptar un nuevo comando antes de que haya terminado de procesar el anterior. En una escritura canalizada, el comando de escritura puede ser seguido inmediatamente por otro comando, sin esperar a que los datos se escriban en la matriz de memoria. En una lectura canalizada, los datos solicitados aparecen después de un número fijo de ciclos de reloj después del comando de lectura (latencia), ciclos de reloj durante los cuales se pueden enviar comandos adicionales.

Pero Dave Tweed dice que "la DRAM asíncrona siempre es más lenta...". ¿Quién tiene razón?
@Rocketmagnet Si tomara un banco de SDRAM y un banco de DRAM, la DRAM sería más rápida debido a su naturaleza asíncrona porque ambos tendrían que funcionar secuencialmente. Pero SDRAM nunca se fabrica de esa manera. SDRAM siempre hecho con varios bancos intercalados que permite el funcionamiento en paralelo. Dado que la SDRAM realiza operaciones en paralelo, siempre será más rápida que la DRAM.
@Rocketmagnet Dave Tweed tiene 100% de razón en que la DRAM siempre es más lenta que la SDRAM. Pero la razón por la que es más rápido es porque usa bancos intercalados. Y el uso de bancos intercalados se hace económicamente factible debido a su naturaleza síncrona. Averiguar el tiempo de los bancos intercalados de una memoria asíncrona sería una pesadilla.

La DRAM asíncrona siempre es más lenta que la DRAM síncrona en la misma tecnología. Esto se debe a que las líneas RAS, CAS, WE y CS en DRAM deben secuenciarse en un orden particular para realizar operaciones de lectura y escritura en el chip. Además de los anchos de pulso mínimos en cada una de estas líneas, hay tiempos de configuración y espera entre varios pares de ellos que deben tenerse en cuenta y, juntos, todos estos tiempos suman un tiempo de ciclo relativamente largo.

Al agregar una señal de reloj común, una SDRAM elimina todos esos requisitos independientes de configuración y tiempo de espera; en cambio, las cuatro líneas tienen los mismos requisitos en relación con el reloj común. Esto permite que ese reloj sea mucho más rápido que el número equivalente de flancos en el chip DRAM.

Además, como han señalado los demás, el reloj síncrono permite que tanto la interfaz externa como el funcionamiento interno del chip SDRAM estén fuertemente canalizados, lo que permite que se produzcan muchas más lecturas y escrituras individuales en un período de tiempo determinado. La latencia de lectura puede ser un poco mayor debido a esta canalización, pero el ancho de banda general de la memoria ha mejorado considerablemente.

Me gustaría señalar que también hay SRAM síncronas (SSRAM) que se utilizan en sistemas de alto rendimiento por las mismas razones.

Pero incrustado.kyle dice "Un circuito asíncrono puede ser mucho más rápido...". ¿Quién tiene razón?
Quizás quiere decir que, en un sentido más general, la lógica asíncrona tiene latencias más bajas que la lógica síncrona. Pero nunca he visto una DRAM que fuera más rápida que una SDRAM implementada en la misma generación de tecnología. En los sistemas modernos, el rendimiento (ancho de banda) es generalmente más importante que la latencia de todos modos. Ya nadie pone el esfuerzo en el diseño de DRAM, ya que la interfaz SDRAM se ha estandarizado razonablemente bien y tiene todas esas otras ventajas.
¿Has trabajado con DRAM de los 80? Me parece curioso que las lecturas repetidas dentro de una fila no sean mucho más rápidas que las lecturas de filas diferentes, y me preguntaba si conducir un autobús era parte de eso. Dado que muchos dispositivos NMOS son más rápidos conduciendo bajo que alto, me pregunto si la velocidad podría haberse mejorado al precargar las líneas de bus entre bytes.
@supercat: Sí, he trabajado mucho con DRAM asíncrona "anticuada". (Solía ​​diseñar placas base para estaciones de trabajo de ingeniería). Y sí, había varias variedades de chips que aprovechaban el acceso rápido a los datos en una sola fila. Por ejemplo, había "modo nibble" (cuatro bits adyacentes en secuencia), "modo de página rápida" (acceso aleatorio a cualquier bit en la fila), así como RAM de video especiales (toda la fila transferida a un registro de desplazamiento y cronometrada) . Pero no, la interfaz del bus físico tenía poco que ver con el rendimiento.
@DaveTweed: ¿Tiene alguna idea de por qué, internamente, el tiempo desde /CAS hasta la salida válida fue una fracción tan grande del tiempo total del ciclo? Creo que la estabilización del amplificador sensorial sería un factor dominante. Muchas computadoras de la década de 1980 podrían haber sido mucho mejores si pudieran exprimir dos ciclos de video de direcciones consecutivas junto con un ciclo de CPU de acceso aleatorio en cada ocho relojes de puntos (en lugar de un video y una CPU) y si /CAS-a-salida fuera un poco más rápido que sería viable.
@supercat: ¡Vaya, una pregunta hipotética sobre tecnología de hace 30 años! Realmente no sé la respuesta a tu pregunta. Yo era un usuario de DRAM, no un diseñador. Tengo una comprensión sólida de cómo funcionan conceptualmente, pero no conozco los detalles del diseño de su circuito interno o los presupuestos de tiempo. En general, el tiempo de acceso al CAS fue aproximadamente la mitad del tiempo de acceso al RAS; Yo no llamaría a esto "una gran fracción".
@supercat: tenga en cuenta que las computadoras de bajo costo de la época tendían a usar máquinas de estado sincronizadas simples como controladores de memoria; como tal, la sincronización del sistema tendía a ser más pesimista de lo que los chips podrían haber permitido.

Además de la respuesta de Dave Tweed, el reloj SDRAM es más fácil de diseñar. Específicamente, solo el reloj debe estar "limpio". Los otros pines de control pueden tener fallas siempre que 1) no violen los requisitos de sobreimpulso o subimpulso 2) se establezcan a tiempo para cumplir con los requisitos de SDRAM.

La matriz de memoria dentro de una DRAM y SDRAM es esencialmente la misma (aunque hay diferencias). La clave de SDRAM es que pone en cola el acceso a la memoria para que no incurra en la misma sobrecarga para cada acceso. Entonces, ya sea en modo ráfaga o en canalización, el acceso no se inicia y luego se detiene para cada lectura/escritura. Internamente, las matrices de memoria se dividen en bancos, por lo que la actividad puede ocurrir en un banco mientras otra actividad termina en otro. Esto significa que tiene un mayor rendimiento efectivo, todos los demás factores son iguales.

Como comentario adicional, el aspecto síncrono le permite diseñar una interfaz que es DDR (velocidad de datos doble), por lo que para una frecuencia de reloj determinada puede aumentar o disminuir el doble de la cantidad de datos. Una SDRAM es una colección de varias técnicas diferentes que se utilizan juntas para obtener un mayor acceso y rendimiento.
Vale la pena señalar que la matriz de memoria interna de un chip DRAM o SDRAM tiene un ancho de banda verdaderamente gigantesco, pudiendo leer muchos miles de bits en cada ciclo de acceso; dado que los chips no tienen miles de pines, normalmente solo se explota una pequeña porción (probablemente menos del 1%) de este ancho de banda. Mejorar el diseño de la interfaz de la memoria puede mejorar enormemente el ancho de banda que se puede lograr con un diseño de matriz de memoria determinado.
@supercat excelente punto! La matriz de memoria tendrá miles de columnas de ancho dentro del chip.
Muchos miles de columnas. Los chips de 64kbits y más pequeños normalmente habrían sido cuadrículas cuadradas (por ejemplo, 64kbits serían 256x256); el número de filas, sin embargo, no ha continuado aumentando tan rápido como el número de columnas (ya que aumentar el número de filas aumentaría el porcentaje de tiempo que se tendría que dedicar a la actualización). Por lo tanto, no creo que un chip de un cuarto de gigabit sea una cuadrícula de 16 384x16 384; Supongo que sería más probable algo como 1,024x262,144. Sin embargo, incluso si la cuadrícula fuera cuadrada, e incluso si el chip solo pudiera realizar 10 millones de accesos a filas por segundo (bastante lento)...
...eso representaría un ancho de banda de memoria de más de 160 gigabits por segundo por chip de memoria. Y eso es con algunas suposiciones muy conservadoras. Está bastante claro que hay mucho ancho de banda de memoria potencial que desafortunadamente no se puede usar; Pensaría que poner un caché en el mismo chip que la matriz DRAM podría aumentar el rendimiento del sistema, pero no sé cuánto.
Los amplificadores de sentido limitan la cantidad de dispositivos en una columna dada, eso es lo que impulsa principalmente el aumento en el número de columnas frente al número de filas. SDRAM tiene algunas canalizaciones que son una forma de "almacenamiento en caché".