Al ser un tema q suscita tanto interes, procedo a explicaros el funcionamiento de los ciclos de precarga-lectura-escritura de la DRAM
*Antes de comenzar con la Teoria del BUS de direccionamiento de la DRAM me pareceria MUY interesante hacer una clara distincion entre SRAM y DRAM.
*La SRAM o Static RAM, recibe su nombre debido a que una vez que los bits (0-1) son introducidos en las celdillas y permanecen solidariamente hasta que son re-escritos por otros bits o se produce un corte de alimentacion.
Una celdilla de SRAM implementa de 4-6 transistores organizados de tal manera q "cazan" los bit entre estos hasta que son reescritos o hay un fallo de alimentacion electrica. SRAM es MUY rapida,eficiente y de logica mas simple (SIMPLE=EFICAZ), pero a su vez tiene unos gastos de manufactura alrededor de x5 veces el precio de manufactura de la DRAM.
(Todos sabeis que la memoria cache, los RAMDACŽs y otros muxos integrados implementan este tipo de memoria).
Uno de los principales problemas nos encontramos es la variedad de empaquetados de la DRAM, SIMMs, DIMMs, RIMMs, la razon es que a medida q disminuye el tamaño de implementacion de los transistores, y la cantidad de celdillas a integrar hay q modificar el empaquetado para poder aprovechar todas las nuevas capacidades o "features".
*Empaquetados hay varios y todos los conoceis:
http://home.cfl.rr.com/bjp/Packaging.htm
Comentaros que los mas usuales en nuestras maquinas son los DIMM, RIMM, y como no BGA. Este BGA es ciertamente interesante, lo podreis reconocer facilmente, vuestros Northbridges y Southbridges son BGA. Se estan consiguiendo frecuencias internas de trabajo muy interesantes con este empaquetado. Las ventajas son evidentes:
Eliminacion de las backlines del integrado, mayor coeficente de planeidad, 70% de ahorro de espacio en el layout del PCB, y como no, unas mejores propiedades termicas y electricas.
No vamos a entrar a observar los ciclos de lectura y escritura de la SRAM, pero como podeis imaginar es muxo mas eficiente y practicamente sin delays.
Si nuestra main memory fuera SRAM, podriamos olvidarnos practicamente de todos los parametros de memoria. La gran paradoja de la DRAM es hacer que una integrado funcione como almacenamiento cuando realmente NO deberia hacerlo.
DRAM: [Bienvenidos al mundo de los DELAYs]
Como hemos comentado antes, los mecanismos de la DRAM son mas complejos, debido en gran medida a que la carga en sus celdillas es "expulsada" constantemente.
Con el plano de ambos integrados delante del monitor (mi caso), puedo observar que hay exactamente la mitad de lineas de direccionamiento (BUS) que en la SRAM.
*La pregunta que os estareis haciendo es clara:
¿Porque si tiene menos lineas es mas compleja?
"La Respuesta la encontre al ver que el interfaz de la memoria era mas complejo. Los direccionamientos estan cortados en 2 hojas o secciones. Y estas 2 hojas estan implementadas al BUS en 2 ciclos de reloj separados. [DELAY numero 1]
Asi que el address de por ejemplo 20 bit, se divide en 2 chunks de 10 bit cada uno. Y ambos chunks seran inyectados a la DRAM en 2 ciclos separados de reloj. Este fenomeno se conoce en Electronica como MULTIPLEXADO.
Este Multiplexado o "MUXing" es la PRINCIPAL CARACTERISTICA DE LA DRAM. Comentaros que esta MUXing es del tipo TDM entrelazando pulsos o clk de ambas hojas.
Estos direccionamientos multiplexados realmente complican el diseño y añadiendo ademas una gran cantidad de delays. El xip es mas complejo y su interface lo es tb.
La razon de este MUXing es referente a que las celdillas de la DRAM implementan 1 solo transistor per cell y son mas pequeñas que las celdillas de la SRAM (4-6transistores per cell). Al tener un tamaño tan pequeño,el tamaño del empaquetado aumenta ya que hay q direccionar todos los pines, siendo inevitable el multiplexado.
Echando un vistazo mas profundo a una celda de memoria DRAM, la podemos imaginar como un cuadrado bidimensional.
Realmente NO es un cuadrado, sino un rectangulo, con mas COLUMNs y menos ROWs. Ya que cuantas menos ROWs, habra menos penalizaciones para refrescarlas
Con ROWs y COLUMNs. Imaginad la celdilla como un tablero de ajedrez, en el que tenemos unas filas horizontales (ROWs) y otras Verticales (COLUMNs)
Hay 2 pines exclusivos para unas unidades que a todos os sonaran familiares:
#RAS: Row Address Strobe
#CAS: Column Address Strobe
Estos controlan los direccionamientos de los bit que se alojan dentro de la celdilla, localizandolos preciasamente en este mapeado 2D.
CICLOS de la DRAM:
1) Comienza el ciclo con un comando de activacion que selecciona un banco y una ROW a traves de los pines de entrada
2) Los bits son seleccionados de las datalines y inyectados en los amplificadores (situados en el dataBUS)
3) Cuando los bits alcanzan los amplificadores estos son "atrapados" por una señal discreta de timming
4) Este proceso consume un periodo de tiempo denominado RAS to CAS Delay, con una latencia de 2-3CLK. Claramente the less the better; Apostad por 2 CLK
5) Despues de este delay un comando de lectura apunta apunta al direccionamiento de COLUMn para seleccionar el direccionamiento de la primera WORD (8byte=64bit) que sera lleida del amplificador.
***RAStoCAS es por tanto llegado el BIT al amplifier
6) Despues del comando de lectura incurre otra penalizacion, el CAS Delay, mientras las words son leidas desde los amplificadores e inyectadas al pin de salida. CAS Delay tiene latencias de 2-3 CLK, the less the better, a la latencia 2CLK.
7) Despues de que toda la informacion ha salido del amplificador hacia los ROW hay otro delay de 2-3 CLK, como siempre a por la latencia mas baja, 2CLK. Estp es el tRP
8) Dependiendo del "sangrado" de las celdillas, que es caracteristica dependiente de la naturaleza de cada integrado, la recarga tendra unas latencias de 7-11 CLK. Esto es el Trcd, durante este tiempo, el flujo de datos se interrumpe totalmente e incide negativamente en el rendimiento. Aqui hay una gran paradoja, todos sabemos que este Trcd tiene que tener 11 CLK para el mejor rendimiento, NO tengo una explicacion al respecto, necesito estudiar mas detenidamente este parametro la verdad [COMPLETAR].
Entended ya para finalizar que las celdillas de DRAM solo "atrapan" bits (0-1) y que desde la perspectiva de la CPU y si pudieramos otorgarle ojos a esta, veria la memoria como una larga y estrecha fila de celdillas. Algo similar a esto.
-----.-----.-----.-----.-----.------.-----
Donde los guiones confirman el Address BUS y los puntos las memory-cells, o localizaciones fisicas del los bits almacenados.
La jerarquia I/O de los ciclos de la DRAM podria organizarse de esta manera:
INPUT (Address BUS)--->CAS Decoder/RAS Decoder----->Amplificador------>OUTPUT (Data BUS