21 octubre 2006

Lo que realmente interesa de la memoria RAM: los RAM timings

Tecnología

Cuando nos vamos a comprar un ordenador y nos centramos en el tema de la memoria RAM nos interesa que tenga mucha, burro grande ande o no ande. Algún sibaritas se fijará en la frecuencia y creerá tenerlo todo claro. Sin embargo esto no es así. Hay un conjunto de datos fundamentales sobre los tiempos de acceso en RAM que cualquier flipao del alto rendimiento hardware no puede dejar pasar. Obviamente en estos valores es donde se ve si un módulo de memoria es bueno o no y, obviamente, el precio variará mucho de una a otra.

Sabemos que la memoria RAM es aquella memoria intermedia entre el disco duro y el microprocesador, amén de cachés y registros del micro, que son buffers de memoria mucho más rápidos y mucho más caros. Para entender todo también debemos aclarar que la memoria RAM se organiza, físicamente, como una cuadrícula en la que en cada punto de corte horizontal-vertical hay un condensador que almacena carga o no (nunca se almacenan 0's y 1's, lo que hay es ausencia o presencia de un cierto estado de la materia).

Cada punto es un condensador que almacena o no carga. Por cierto, ¿habías visto esta ilusión óptica? ¿Cuánto puntos negros ves?

Si ya sabemos qué es y como se organiza la memoria RAM podemos hablar de los RAM timing, que son:
  • CL ó Cas Latency
  • tRCD ó RAS to CAS Delay
  • tRP ó RAS Precharge
  • tRAS ó Active to Precharge Delay
  • CMD ó Command Rate
Atención, todos los RAM Timings se miden en ciclos de reloj. Así, por ejemplo, CL=2 significa que el tiempo CL son 2 ciclos de reloj.

CL ó Cas Latency

El CL es el número de ciclos de reloj que la memoria tardará en devolver un dato pedido por el microprocesador. Por ejemplo, si CL=3 la memoria tardará 3 ciclos de reloj en devolver un dato. Tanto las memorias SDRAM como las DDR y DDR2 implementan el modo burst, de manera que el primer dato tardará CL ciclos y el siguiente será entregado a continuación sin la necesidad de esperar CL ciclos.

tRCD ó RAS to CAS Delay

El acceso a un dato en RAM se realiza activando la fila y después la columna a la que queremos acceder. Esta activación es realizada por la señales RAS (Row Address Strobe) y CAS (Column Address Strobe). tRCD mide el tiempo entre ambas señales, es decir, la latencia entre la señal RAS y la CAS. Otra forma de entender tRCD es esta: tRCD es el tiempo que ocurre desde que se activa (comando Active) la fila hasta que se lee/escribe en la columna.

tRP ó RAS Precharge

Despues de que el dato es tomado el comando Precharge debe ser ejecutado, cerrando la fila de la memoria que fue abierta y permitiendo otro acceso. tRP es el tiempo que pasa desde que se activa el comando Precharge hasta que la nueva activación de una columna puede ser llevada a cabo.

En este punto podemos decir que el tiempo que transcurre desde Precharge hasta que obtenemos el dato es tRP + tRCD + CL.

tRAS ó Active to Precharge Delay

Después de que el comando Active en tRCD sea ejecutado otro comando Precharge no puede ser inicializado hasta que el tiempo tRAS haya transcurrido. De esta forma tRAS limita cuándo la memoria puede empezar a leer/escribir en otra línea.

CMD ó Command Rate

CMD es el tiempo que ocurre desde que el chip de memoria es activado mediante la línea CS (Chip Select) hasta que cualquier comando puede ser ejecutado sobre dicho chip. Este parámetro lleva la letra T y sus posibles valores son 1T o 2T, que indican un ciclo o dos ciclos respectivamente. Si esta valor no es dado debemos sobreentender que se trata de 2T.


Bien, llegados a este punto ya sabemos toda la información sobre la RAM. Cuando compremos un módulo podremos ver los RAM timings en una secuencia de números como 2-3-2-6-T1, siendo el primer 2 el CL, el 3 el tRCD, etc. (ver imagen inferior la línea que empieza por CL) Obviamente cuanto menores sean estos valores mejor será la memoria.

En este caso los RAM Timings son CL=3, tRCD=4, tRP=4 y tRAS=8 (suponemos un CMD=T2)

2 comentarios:

Unknown dijo...

He estado buscando sobre esto en la Wikipedia pero no he encontrado nada, y me acordé de que habías escrito un post :)

Si te parece bien podrías compartirlo en la Wikipedia.

Saludos!

Anónimo dijo...

Para entender mejor, me gustaria saber que es un ciclo de reloj.
:)