Hay dos grandes tipos de memoria en un ordenador:
La ROM es la que contiene el software que se ejecuta nada mas encender el ordenador y antes de que se ejecute el sistema operativo. Es lo que llamamos la BIOS. Actualmente esa ROM si que puede ser modificada al ser una memoria Flash (Como las memorias USB).
La BIOS que está en la ROM realiza las siguientes tareas:
La RAM se "compra" en lo que llamamos módulos de RAM:
Que se introducen en los zócalos de la RAM que están en la placa base. En la siguiente imagen podemos ver 4 zócalos:
Los módulos de memoria RAM tienen las siguientes características:
Mas información:
Desde hace mucho tiempo los PC usan una memoria llamada Double Data Rate (DDR). Esta RAM se caracteriza porque transfiere los datos al doble de velocidad de la frecuencia.Anteriormente a la DDR Existía la Single Data Rate (SDR). La diferencia entre la DDR y la SDR se puede ver en el siguiente esquema:
Es decir que a misma velocidad de Reloj una memoria DDR va al doble de velocidad que una SDR. Es doble velocidad se le llama frecuencia de datos. La frecuencia de datos en una SDR coincide con la frecuencia de reloj. Pero en una DDR la frecuencia de datos siempre es el doble que la frecuencia de reloj. La velocidad de transferencia en MB/s se obtiene de multiplicar la frecuencia de datos (en MHz) por 8 ya que en cada transferencia de datos se envían 8 bytes (64 bits). Por último cuando se muestra la frecuencia en Mhz hay ambigüedad ya que no se sabe si se habla de Frecuencia de Reloj o de Frecuencia de Datos. Para evitarla lo ideal sería usar siempre los MHz para frecuencia de reloj mientras que para la frecuencia de datos se puede expresas como la tasa de transferencia que se mide "mega transferencias por segundo" o MT/s
Por último existe un último datos que es el "nombre" de la memoria. Por ejemplo "PC-25600". Esa cifra es simplemente la velocidad en MB/s, aunque a veces se recondea un poco.
Veamos ahora las fómulas que relacionan todos los datos. Estas fómulas parten de que tenemos la frecuencia del reloj. Si tuviéramos otro datos, solo habría que despejar las fómulas.
$$Frecuencia \quad de \quad Datos \quad (MHz)= Frecuencia \quad de \quad Reloj * 2 $$
$$Velocidad \quad de \quad transferencia \quad (MB/s)=Frecuencia \quad de \quad datos * 8 $$ $$Velocidad \quad de \quad transferencia \quad (Mb/s)=Frecuencia \quad de \quad datos * 64 $$
$$Tasa \quad de \quad transferencia \quad (MT/s)=Frecuencia \quad de \quad datos \quad (MHz) $$
$$Nombre \quad de \quad la \quad memoria \quad PCv-NNNNN \quad $$ $$Siendo \quad NNNN=Velocidad \quad de \quad transferencia \quad (MB/s) \quad (Aunque \quad está \quad redondeada ) $$ $$Siendo \quad v=Versión \quad de \quad la \quad DDR. \quad Es \quad decir \quad DDR-2, \quad DDR-3, \quad etc $$
Nombre | Frecuencia (MHz) | Velocidad de transferencia (MB/s) | Tasa de transferencia (MT/s) | Versión de DDR | |
---|---|---|---|---|---|
Reloj | Datos | ||||
PC3-25600 | 1600 | 3200 | 25600 | 3200 | DDR-3 |
PC3-24000 | 1500 | 3000 | 24000 | 3000 | DDR-3 |
PC3-21300 | 1333 | 2666 | 21328 | 2666 | DDR-3 |
PC2-19200 | 1200 | 2400 | 19200 | 2400 | DDR-2 |
La latencia CAS (también llamada como CL) es el Nº de ciclos que pasan desde que se pide un dato hasta que se empieza a transmitir.
Un ciclo es la inversa de la frecuencia. Normalmente se miden en nanosegundos. Sabiendo la frecuencia a la que funciona la RAM (la frecuencia de reloj) se calcula la duración del ciclo de la siguiente forma:
$$Duración \quad de \quad un \quad Ciclo \quad (s)=\frac{1}{Frecuencia \quad de \quad Reloj \quad (Hz)}$$
Como ese valor sale muy pequeño y la frecuencia suele ya estar en MHz, podemos usar esta otra formula que da un valor mas "normal"
$$Duración \quad de \quad un \quad Ciclo \quad (ns)=\frac{1000}{Frecuencia \quad de \quad Reloj \quad (MHz)}$$
Por lo tanto lo que dura la latencia en ns es la siguiente
$$Latencia (ns)=CL* Duración \quad de \quad un \quad Ciclo \quad (ns)= CL * \frac{1000}{Frecuencia \quad de \quad Reloj \quad (MHz)} $$
Vamos ahora algunos ejemplos:
Nombre | Frecuencia de Reloj | CL | Latencia (ns) |
---|---|---|---|
PC3-25600 | 1600 | 16 | 10 |
PC3-24000 | 1500 | 15 | 10 |
PC3-21300 | 1333 | 14 | 10,5 |
PC3-19200 | 1200 | 13 | 10,8 |
Podemos ver que aunque la el módulo de RAM PC3-25600 tenga una CL de 16 y la PC3-24000 tenga una CL de 15 , es decir que es menor. La latencia en ns de ambos es la misma. Por lo que sería mejor comprar la PC3-25600 ya que la velocidad de transferencia es mayor.
Nombre | Frecuencia de Reloj | CL | Latencia (ns) |
---|---|---|---|
PC3-21300 | 1333 | 14 | 10,5 |
PC3-19200 | 1200 | 13 | 10,8 |
La PC3-21300 tiene mayor frecuencia y además menor latencia en ns por lo que es la mejor opción.
Nombre | Frecuencia de Reloj | CL | Latencia (ns) |
---|---|---|---|
PC3-21300 | 1333 | 13 | 9,7 |
PC3-19200 | 1200 | 11 | 9,1 |
En este caso la PC3-19200 tiene menor latencia en ns pero menor velocidad en MB/s. ¿Cual deberíamos comprar? Pues bien según el artículo que leas pone algo distinto:
Mas información:
Pero hay que tener una última cosa en cuenta.En los procesadores AMD con microarquitectura Zen, su bus interno Infinity Fabric, funciona a la misma frecuencia que la frecuencia del reloj de la RAM.
En la siguiente imagen podemos ver el bus que conecta cada uno de los CCD:
Por lo tanto en este caso siempre es recomendable comprar la RAM que tenga una mayor frecuencia ya que así la comunicación interna entre los CCD será mayor. Sin embargo no todo es tan sencillo.
Recordemos las 3 frecuencias que se usan para acceder a la RAM:
Inicialmente la relación es 1:1:1
$$uclk=mclk$$ $$fclk=uclk$$
Por lo tanto a mayor frecuencia de la RAM mayor frecuencia del Infinity Fabric, sin embargo si la frecuencia de la RAM es demasiado alta , ocurrirá que el Infinity Fabric no puede ir tan rápido por lo que automáticamente dividirá su frecuencia por la mitad, es decir irá mas lento.
Por lo que si la RAM es muy rápida la relación será 2:1:1
$$uclk=mclk$$ $$fclk=\frac{uclk}{2}$$
La velocidad máxima de reloj es la siguiente:
Microarquitectura | Velocidad máxima de reloj del Infinity Fabric (MHz) |
---|---|
Zen 2 | 1933 |
Zen 3 | 2000 |
Mas información:
Veamos dos ejemplos.
Ejercicio 1:
Si la Frecuencia máxima del Infinity Fabric en Zen 2 es de 1900 MHz.Si tenemos una módulo de memoria PC4-25600. ¿A que Frecuencia funcionará el Infinity Fabric?
La frecuencia de reloj de una RAM PC4-25600 es
$$frecuencia \quad de \quad reloj=\frac{\frac{25600}{8}}{2}=1600\quad MHz$$
Como 1600 MHz es menor o igual que 1933 MHz, la frecuencia del Infinity Fabric será de 1600 MHz
Ejercicio 2:
Si la Frecuencia máxima del Infinity Fabric en Zen 2 es de 1900 MHz.Si tenemos una módulo de memoria PC4-32000. ¿A que Frecuencia funcionará el Infinity Fabric?
La frecuencia de reloj de una RAM PC4-32000 es
$$frecuencia \quad de \quad reloj=\frac{\frac{32000}{8}}{2}=2000\quad MHz$$
Como 2000 MHz esmayor que 1900 MHz, la frecuencia del Infinity Fabric será de 1000 MHz
Si queremos saber exactamente cada una de las velocidades de nuestro procesador Zen, simplemente tenemos que bajarnos la aplicación ZenTimings y en la pantalla principal se muestra los valores de:
Mas fotos de compañeros de clase zen_timing.zip
El alumno Carlos, ha hecho el siguiente experimento. Con su memoria RAM "G.Skill Ripjaws V Red DDR4 2400 PC4-19200 16GB 2x8GB CL15", ha variado las velocidades y ha calculado la potencia del ordenador.
Nombre | Frecuencia (MHz) | Velocidad de transferencia (MB/s) | Tasa de transferencia (MT/s) | Versión de DDR | |
---|---|---|---|---|---|
Reloj | Datos | ||||
PC4-19200 | 1200 | 2400 | 19200 | 2400 | DDR-4 |
Resultados:
Nombre | uCLK | fCLK | Benchmark Cinebench R20 |
---|---|---|---|
Por defecto | 1067 MHz | 1200 MHz | 5061 |
Perfil XMP | 1200 MHz | 1200 MHz | 5106 |
Overclock | 1400 MHz | 1400 MHz | 5118 |
Overclock subiendo Infinity Fabric a 1900 | 1400 MHz | 1900 MHz | 5033 |
La fotos con los resultado se pueden descarga aquí: test_f.ram_f.infinityfabric-carlos.zip
Con los datos del experimento podemos sacar dos conclusiones (Aunque harían falta mas pruebas):
Mas información:
Dentro de las DDR hay varias "generaciones" o "versiones" como en el bus PCIe. Siendo en el año 2020 las siguientes:
Para que un módulo solo pueda colocarse en zócalos de la misma versión, cada versión de DDR tiene una muesca en una zona distinta , lo que impide físicamente colocarse en un zócalo que no corresponde.
Mas información:
Para una misma versión de RAM hay dos formatos distintos:
Como podemos ver en la siguiente imagen que el SO-DIMM es mas pequeño lo que implica una menor capacidad por módulo.
Además el zócalo donde se coloca es distinto lo que hace que se coloque "tumbado" sobre la placa lo que implica que tenga menos "altura".
En la siguiente imagen podemos ver como se introduce la RAM para tumbarla del todo sobre la placa base
Puesto que la ventaja del SO-DIMM es que ocupa menos espacio, lo que es ideal en los portátiles. Por lo tanto es ahí donde principalmente se usan.
Mas información:
Los procesadores usan lo que se llama canal para recibir los datos de la RAM. En la siguiente imagen podemos verlo:
Por desde hace tiempo los PCs permiten leer de dos módulos a la vez, es lo que se llama Dual Channel. Lo podemos ver en la siguiente imagen:
Podríamos pensar que en ese caso la velocidad de la RAM será el doble, pero según los siguientes artículos , únicamente es un poco mas rápida:
Poder tener Dual Channel es necesario lo siguiente:
En la placa base de tu ordenador, indica:
Rellena la siguiente tabla de las siguientes memorias:
Nombre | Frecuencia (MHz) | Velocidad de transferencia (MB/s) | Tasa de transferencia (MT/s) | CL | Latencia en ns | Versión de DDR | |
---|---|---|---|---|---|---|---|
Reloj | Datos | ||||||
PC3-12800 | |||||||
PC3-10600 |
¿Cual comprarías para un AMD Zen?
Indica la velocidad de reloj del Infinity Fabric para las siguientes memorias, y en función de los valores máximos la microarquitectura de AMD
-- | Frecuencia reloj del Infinity Fabric (MHz) | |
---|---|---|
Nombre | Zen 2 | Zen 3 |
PC4-36800 | ||
PC4-34128 | ||
PC4-32000 | ||
PC4-30900 | ||
PC4-30400 |
Dado la siguiente imagen del programa ZenTimings.
Indica si velocidad de la memoria que está utilizando es la mas adecuada. Justifica tu respuesta.
Dado el artículo RAM Performance Benchmark: Single-Channel vs. Dual-Channel - Does It Matter? que compara la mejora del dual channel.
Calcula para cada uno de los test que salen en el artículo el % de mejora.
$$ {\% \quad Mejora}=100*\frac{{indice \quad dual \quad channel} - {indice \quad single \quad channel}}{indice \quad single \quad channel} $$
Test | % Mejora con Dual Channel |
---|---|
Euler 3D | |
MaxxMem | |
WinRAR File Compression | |
Handbrake Video Transcoding | |
Shogun 2 | |
Cinebench OpenGL | |
Adobe Premiere | |
Adobe After Effects | |
Media de todos los test |
Al final de la tabla calcula la media de todos los %.
Busca módulos del memoria DIMM y SO-DIMM y compara los precios. Para ello, busca 10 módulos que tengan la misma capacidad, frecuencia y CL pero la mitad sean DIMM y la otra mitad SO-DIMM. Haz una gráfica de puntos en la que:
Haz una tabla con datos de las generaciones de DDR, similar a la siguiente del PCIe
Haz una gráfica similar a anterior del PCIe,pero referida a la velocidad máxima de transferencia en MB/s o GB/s de la memoria DDR:
Personalmente cuando yo vi la gráfica del PCIe me quedé impresionado de lo mucho que evoluciona cada una de las versiones de PCIe y lo importante que en caso de duda en la compra de una placa base, entre dos versiones de PCIe, siempre hay que elegir la versión superior ya que como digo hay mucha diferencia.
Por lo tanto repito que lo que quiero es que veáis si pasa lo mismo con las memorias RAM o no .
Haz una gráfica similar a anterior ,pero referida a la capacidad máxima en MB o GB que puede tener un único módulo de la memoria DDR:
Personalmente cuando yo vi la gráfica del PCIe me quedé impresionado de lo mucho que evoluciona cada una de las versiones de PCIe y lo importante que en caso de duda en la compra de una placa base, entre dos versiones de PCIe, siempre hay que elegir la versión superior ya que como digo hay mucha diferencia.
Por lo tanto repito que lo que quiero es que veáis si pasa lo mismo con las memorias RAM o no .
Viendo los resultados de las dos gráficas
a) Estima en que año aparecerá la DDR6, que máxima velocidad de transferencia tendrá y cual será la capacidad máxima que podrá alcanzar un único módulo. Para este ejercicio no debes mirar la información en Internet sino únicamente suponerlo siguiendo las tendencias de las 2 gráficas anteriores.
b) Indica como ha sido la progresión de velocidad de la memoria DDR versus la progresión de velocidad del bus PCIe. Es decir como se ha incrementado la velocidad de transferencia porcentualmente en la memoria DDR en cada generación versus como se ha incrementado la velocidad de transferencia porcentualmente en el bus PCIe. ¿Ves algún problema o diferencia?
Comprueba si tu RAM está funcionando a la máxima velocidad. Para ello deberás usar los programas AIDA64 Extreme y CPU-Z
La base de este ejercicio es que la RAM soporta una serie de velocidades pero luego al conectarla a la placa base puede que no funcione a la velocidad máxima que soporta.
En el siguiente artículo se explica como comprobarlo: Así puedes saber si tu RAM está funcionando a su máximo rendimiento
Respecto a la información que se proporciona, a mayor frecuencia (MHz) mas rápido funciona la RAM. Sin embargo los valores
Cuanto menor son eso valores, mas rápido funciona la RAM. Ya que eso valores con retrasos o esperas que debe hacer la RAM por lo que a menor retraso, la RAM funciona mas rápida.
Deberás entregar:
1º Módulo de RAM | |||||
---|---|---|---|---|---|
Frecuencia | Latencia CAS (CL) | Retraso RAS a CAS (tRCD) | Precarga RAS (tRP) | Tiempo de ciclo (tRAS) | |
Máxima velocidad que soporta | MHz | ||||
Máxima velocidad a la que está funcionando | MHz | ||||
2º Módulo de RAM | |||||
Frecuencia | Latencia CAS (CL) | Retraso RAS a CAS (tRCD) | Precarga RAS (tRP) | Tiempo de ciclo (tRAS) | |
Máxima velocidad que soporta | MHz | ||||
Máxima velocidad a la que está funcionando | MHz | ||||
3º Módulo de RAM | |||||
Frecuencia | Latencia CAS (CL) | Retraso RAS a CAS (tRCD) | Precarga RAS (tRP) | Tiempo de ciclo (tRAS) | |
Máxima velocidad que soporta | MHz | ||||
Máxima velocidad a la que está funcionando | MHz | ||||
4º Módulo de RAM | |||||
Frecuencia | Latencia CAS (CL) | Retraso RAS a CAS (tRCD) | Precarga RAS (tRP) | Tiempo de ciclo (tRAS) | |
Máxima velocidad que soporta | MHz | ||||
Máxima velocidad a la que está funcionando | MHz |
¿Funciona a la máxima velocidad? | |
---|---|
Nº Módulo | Si,No |
1º | |
2º | |
3º | |
4º |
Deberás tener en cuenta las pequeñas tolerancias físicas que existen siempre.
Dado las especificaciones de la RAM HX316C10FK2/8, indica:
Y rellena la siguiente tabla:
Nombre | Frecuencia (MHz) | Velocidad de transferencia (MB/s) | Tasa de transferencia (MT/s) | CL | Latencia en ns | |
---|---|---|---|---|---|---|
Reloj | Datos | |||||
DDR3-1600 | ||||||
DDR3-1333 | ||||||
DDR3-1333 |
Usando el programa Memtest86+ y tal y como se explica en el artículo Cómo comprobar si hay problemas con la memoria RAM con Memtest86+, comprueba que la RAM de tu ordenador funciona correctamente.
Para ello deberán arrancar tu ordenador con un USB que contenga Memtest86+ y ejecutar el programa de forma que no salgan líneas en rojo como en la siguiente imagen: