Herramientas de usuario

Herramientas del sitio


clase:asir:fhw:2eval:tema07

07. Memoria RAM

Clases de memorias

Hay dos grandes tipos de memoria en un ordenador:

  • RAM: Se borra al apagar el ordenador
  • ROM: Mantiene los datos aunque se apaguen el ordenador y no se puede modificar.

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:

  • Comprobar que el hardware funciona.
  • Permitir configurar el hardware. Ej: La velocidad de la RAM o del procesador para hacer overclocking
  • Cargar el sistema operativo

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:

  • Capacidad en GB
  • Velocidad de transferencia
  • Latencia CAS o CL

Mas información:

Double Data Rate (DDR)

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

Latencias CAS

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:

AMD Zen

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:

  • fclk: Frecuencia del Infinity Fabric
  • uclk: Frecuencia del Unified Memory Controller
  • mclk: Frecuencia del Reloj de 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
Estas velocidades máximas tienen ciertas tolerancias de algunos MHz.
Estas velocidades son las máximas que pueden alcanzar en cada microarquitectura pero cada modelo de procesador tendrá una frecuencia máxima de FCLK pero que nunca será mayor que el indicado en la tabla anterior.

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

Zen Timings

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:

  • fclk: Frecuencia del Infinity Fabric
  • uclk: Frecuencia del Unified Memory Controller
  • mclk: Frecuencia del Reloj de la RAM
  • tCL: Nº de Ciclos de Latencia CAS

Mas fotos de compañeros de clase zen_timing.zip

Experimento de Alumno (Becerril)

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):

  • La velocidad mínima del Infinity Fabric es 1200 MHz
  • Si la frecuencia de Infinity Fabric es mayor que la de la RAM se produce una bajada de rendimiento.

Mas información:

Versiones

Dentro de las DDR hay varias "generaciones" o "versiones" como en el bus PCIe. Siendo en el año 2020 las siguientes:

  • DDR: Ya no se usan excepto en equipos ya excesivamente viejos.
  • DDR-2: Ya no se usan excepto en equipos ya excesivamente viejos.
  • DDR-3: Solo se usa en equipos antiguos pero que aun pueden ejecutar software actual poco exigente.
  • DDR-4: Es la que se usa actualmente.
  • DDR-5: Es la nueva especificación, saldrán a la venta los nuevos módulos en el último trimestre del 2020.

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:

Formato físico

Para una misma versión de RAM hay dos formatos distintos:

  • DIMM
  • SO-DIMM

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:

Canales

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:

  • Que el procesador esté diseñado para leer de dos módulos de RAM a la vez
  • Que la placa base tenga los dos canales por donde transmitir los datos.
  • Tener 2 módulos de memoria.
  • Que los módulos sean del mismo tamaño de la misma velocidad y del mismo fabricante (véase Mezclar diferentes módulos de memoria RAM: ¿por qué no es recomendable?).
  • Que los 2 módulos se coloquen donde indique el fabricante de la placa base para aprovechar los 2 canales. Ya que 2 zócalos comparten un canal y otros dos zócalos comparten el segundo canal.

También existe la posibilidad de "Quad Channel" que es leer de 4 módulos de RAM a la vez.

Ejercicios

Ejercicio 1

En la placa base de tu ordenador, indica:

  • El modelo de la placa base
  • El tipo de Memoria DDR que soporta.
  • La cantidad máxima de memoria que soporta la placa base.
  • El Nº de zócalos de memoria
  • El tamaño máximo de cada módulo de memoria.
  • Si soporta dual channel.
    • En caso de que la soporte en que zócalos hay que colocar los módulos para que estén en dual channel.

Ejercicio 2

Rellena la siguiente tabla de las siguientes memorias:

  • Kingston HyperX Fury Blue DDR3 1600 PC3-12800 8GB CL10
  • Kingston ValueRAM DDR3 1333 PC3-10600 8GB CL9
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?

Ejercicio 3

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

Ejercicio 4

Dado la siguiente imagen del programa ZenTimings.

Indica si velocidad de la memoria que está utilizando es la mas adecuada. Justifica tu respuesta.

Ejercicio 5

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 %.

Si para alguno de los test hay varias pruebas , calcular la media de todos los % que se obtengan.

Ejercicio 6

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:

  • En el eje X representará el precio del módulo DIMM
  • En el eje Y representará el precio del módulo SO-DIMM que tiene la misma capacidad, frecuencia y CL

Ejercicio 7

Haz una tabla con datos de las generaciones de DDR, similar a la siguiente del PCIe

Generación
DDR
Año
Publicación
Vel. MB/s1) Capacidad MB2)
DDR-1
DDR-2
DDR-3
DDR-4
DDR-5
No hay que mirar la velocidad que un fabricante dice que tiene un módulo concreto sino mirar lo que dice el estándar de la DDR. Es decir hasta que velocidad ( o si te queda mas claro se puede usar como sinónimo la palabra "ancho de banda") puede llega cada generación de DDR según la especificación y eso es independientemente de que haya algún fabricante lo que haya fabricado. Y el mismo razonamiento también es para válido para la capacidad máxima que puede tener un único módulo de la memoria

Ejercicio 8

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:

  • En el eje X representará el año en el que salió cada una de las generaciones de DDR (Desde la DDR-1 hasta la DDR-5).
  • En el eje Y representará la máxima velocidad de transferencia en MB/s o GB/s que puede alcanzar como máximo esa versión de DDR.
  • Demás en cada punto de la gráfica debe indicarse a que versión de DDR corresponde.
La gráfica se puede hacer con el programa que queráis (Con Excel o Calc puede valer) pero debe ser una gráfica similar a la del PCIe pero referida a las DDR. Es decir quiero que hagáis algo similar a la del PCIe para que veáis como han ido evolucionando las memorias DDR ya que siempre es mucho mas didáctico ver un dibujo que ver una tabla con datos.

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 .

Ejercicio 9

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:

  • En el eje X representará el año en el que salió cada una de las generaciones de DDR (Desde la DDR-1 hasta la DDR-5).
  • En el eje Y representará la capacidad máxima en MB o GB que puede tener un único módulo en esa versión de DDR.
  • Demás en cada punto de la gráfica debe indicarse a que versión de DDR corresponde.
La gráfica se puede hacer con el programa que queráis (Con Excel o Calc puede valer) pero debe ser una gráfica similar a la del PCIe pero referida a las DDR. Es decir quiero que hagáis algo similar a la del PCIe para que veáis como han ido evolucionando las memorias DDR ya que siempre es mucho mas didáctico ver un dibujo que ver una tabla con datos.

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 .

Ejercicio 10

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?

Ejercicio 11

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

  • Latencia CAS (CL)
  • Retraso RAS a CAS (tRCD)
  • Precarga RAS (tRP)
  • Tiempo de ciclo (tRAS)

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:

  • Captura de pantalla de AIDA64 Extreme o de CPU-Z que muestre las velocidades que soporta RAM
  • Rellenar la siguiente tabla en base a la información obtenida de AIDA64 Extreme y CPU-Z
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
  • Indicar en base a toda la información anterior si la RAM está funcionando a la máxima velocidad. Para ello deberás comprobar si la máximaa velocidad que soporta la RAM es la máxima velocidad a la que está funcionando.
¿Funciona a la máxima velocidad?
Nº Módulo Si,No
Las tablas están hechas para 4 módulos, pero solo deberéis rellenar el nº de filas correspondiente al nº de módulos de memoria que hay en vuestro ordenador.

Deberás tener en cuenta las pequeñas tolerancias físicas que existen siempre.

Ejercicio 12

Dado las especificaciones de la RAM HX316C10FK2/8, indica:

  • Retraso RAS a CAS (tRCD)
  • Precarga RAS (tRP)
  • Tiempo de ciclo (tRAS)

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

Ejercicio 13

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:

si no tienes un USB libre o no quieres hacerlo con tu equipo, puedes probarlo con una máquina virtual.
1)
Velocidad máxima de transferencia en MB/s
2)
Capacidad máxima en MB que puede tener un único módulo de la memoria
clase/asir/fhw/2eval/tema07.txt · Última modificación: 2021/05/02 08:37 por admin