~~~~~~~~~~~~~~

~~~~~~~~~~~~~~

lunes, 27 de marzo de 2023

Puertos PCIe

 

Puertos PCIe de la placa base: cuáles son y para qué sirven


Todos conocemos qué es un puerto PCIe, y la función que desempeñan en una placa base. Sin embargo, no todos conocen los tipos de este puerto que podemos encontrar en ellas. De la misma manera que, muchos usuarios desconocen lo que pueden esperar de cada uno de ellos. Es por ello que hemos querido realizar este artículo. En el que veremos los diferentes tipos de puertos PCIe y sus especificaciones.

Bajo el nombre de PCI Express tenemos varios puertos diferentes en nuestra placa base. Os enseñamos cuáles son las características de cada uno de ellos y que forma tienen para que los puedas identificar sin problemas.

¿Qué es el PCI Express?

Llamamos «puertos PCIe» a algunas de las ranuras o zócalos de expansión que hay sobre el PCB de nuestra placa base. Como suponemos que sabréis, estas ranuras tienen como función, permitir la colocación de tarjetas de expansión para nuestros ordenadores personales. Hasta no hace muchos años, nuestros PC solían tener una mezcla de ranuras PCI y PCIe. Sin embargo, desde hace unos cuantos años ni Intel ni AMD dan soporte oficial al bus PCI en sus placas base, con lo que, actualmente, las placas base solo soportan puertos PCIe.

Se trata de lo que llamamos un bus en paralelo, el cual tiene una gran cantidad de pines para la transferencia de datos de forma simultánea. Lo cual le permite otorgar un ancho de banda mucho mayor que los puertos USB. Lo que lo hace ideal para componentes que requieren comunicarse con el procesador y la RAM a gran velocidad. Siendo el caso más famoso el de las tarjetas gráficas. Eso a su vez lo hace modular, es decir, existen diferentes variaciones de los puertos PCI Express que los fabricantes distribuyen alrededor de sus placas base. Lo cual influirá en el ancho de banda disponible y obviamente en la longitud.

Esto significa que el fabricante de la placa base puede elegir qué tipo de puertos quiere instalar en ella. Y esto lo hará, dado que, según el modelo de puerto, así será el ancho de banda y la tasa de transferencia que tendrá disponible una tarjeta de expansión. Esto es en claro contraste a los puertos PCI antiguos (como el de la imagen superior). Cuyo ancho de banda era compartido por todas las tarjetas conectadas en el bus.

Puerto PCI (arriba) y PCIe x1 (abajo)

Tipos de puertos PCIe

Todos los puertos PCIe se caracterizan por estar divididos en dos partes, con un pequeño saliente en medio que «parte» el puerto en dos, para separar precisamente la una de la otra. Este es el motivo por el que las tarjetas de expansión PCIe, como pueden ser las tarjetas gráficas, tienen también «partido» su puerto de conexión.

  • La parte inicial es la alimentación que proporciona la placa base a la tarjeta de expansión. Esta alimentación puede llegar hasta los 75 W. Y es el motivo por el que algunas tarjetas gráficas de gama baja, no requieren de conectores de alimentación auxiliar.
  • En cuanto a la parte que va a continuación de la alimentación, es la zona donde se conectan las vías de datos. Y, en función del número de vías de datos que hay conectadas a este, así de larga será la ranura. De hecho, todos los puertos PCIe se denominan siempre en función de este número. Es por ello que existen puertos PCIe x1, x4, x8 y x16.

Puerto PCIe x1

El más pequeño de todos, este tipo de puerto es el más empleado para ser usado con tarjetas de expansión. Dado que, la gran mayoría de ellas no requieren tasas de transferencia de archivos muy elevadas para poder funcionar.

A este conector solo llega una vía PCIe. Esto significa que, si la placa base usa PCIe 3.0, el máximo ancho de banda será de 8 GT/s (GigaTransfers per second). Pudiendo alcanzar una tasa de transmisión de datos de hasta 984,6 MB/s. En el caso de usar PCIe 4.0, las tasas se doblan. Lo cual significa que el ancho de banda sería de 16 GT/s y la tasa de transferencia máxima será de 1.969 MB/s.

Puerto PCIe x4

Este puerto no es muy común en las placas base de la gama de escritorio. Los fabricante de placas base suelen preferir poner más puertos PCIe x1 que x4, porque no existen muchas tarjetas de expansión, en dicho segmento, que requieran de 4 vías de datos PCIe para funcionar.

Las especificaciones de este tipo de puerto, para el PCIe 3.0, es que proporciona una tasa de transferencia máxima de 3,94 GB/s. Y, para PCIe 4.0, dicha tasa de transferencia se eleva hasta los 7,88 GB/s. El ancho de banda es el mismo que en el caso del PCIe x1 en ambos casos.

Una particularidad de este tipo de puerto, es que su extremo derecho suele estar abierto. Esto le permite que se conecten a él tarjetas de expansión desarrolladas para puertos PCIe de superiores especificaciones.

PCIe x8

Otro puerto PCIe que no se suele usar demasiado en la gama de escritorio. Al igual que el anterior PCIe x4, suele ser más empleado en placas base de la gama HEDT y, sobre todo, en la gama de servidores. Y exactamente por los mismos motivos que hemos enumerado antes.

La tasa de transferencia máxima de archivos de este puerto es de 7,88 GB/s en el caso de ser PCIe 3.0. Y de 15,75  MB/s, en el caso de ser PCIe 4.0.

PCIe x16

Terminamos el listado de tipos de puertos PCIe con el que probablemente es el puerto PCIe más conocido por la mayoría de usuarios, dado que es en ellos donde deberemos de instalar, habitualmente, la tarjeta gráfica de nuestro PC. De hecho, es el único de todos los puertos PCIe que está presente en  todos los formatos de placas base de la gama de escritorio.

La tasa de transferencia máxima que admite este puerto es de 15,75 MB/s en el caso de ser PCIe 3.0 y de 31,51 MB/s en el caso de ser PCIe 4.0. En cada generación de PCIe la tasa de transferencia se va doblando, así que para las próximas generaciones que se vayan introduciendo en la industria el cálculo es bastante sencillo como podéis imaginar.

Hay algo que debemos de aclarar al respecto de este puerto en las placas base. No es raro que los fabricantes de placas base incluyan un segundo puerto PCIe x16 en la placa o incluso más. A pesar de que el chipset que monte no permita usar ni x16 ni x8 vías de datos para este segundo puerto. En realidad, este puerto suele tener solo 4 vías de datos habilitadas y en el mejor de los casos en plataformas mainstream x8. Y sí, en él podremos conectar una tarjeta gráfica sin problemas.

Solo en plataformas HEDT de Intel tendremos habilitado este segundo puerto PCIe x16 debido al mayor número de líneas disponibles desde el procesador, ya que en este caso no dependen del chipset y, por lo tanto, podremos activar con dos tarjetas gráficas las tecnologías SLI o CrossFire. No obstante, en los últimos tiempos incluso las placas base de gama media ya tienen la posibilidad de ejecutar configuraciones de varias tarjetas gráficas dado que incorporan varios de estos tipos de puertos PCIe compatibles.

lunes, 6 de marzo de 2023

Memoria caché

 ¿Has oído hablar alguna vez de la memoria caché L1, L2 y L3? Seguramente sí, pero si no están seguro de lo que realmente significan estos niveles de caché, en este artículo vamos a tratar de explicarte todo lo mejor posible. A partir de ahora entenderás mejor las características de memoria de un procesador.

memoria caché L1, L2 y L3

Ya sabrás que uno de los componentes más importantes de un ordenador es su memoria, hablamos por supuesto de la memoria RAMaquella en donde todos los programas y sistema operativo se carga para que sean utilizados por el procesador ni necesidad de tener que acceder al disco duro.

La memoria RAM es mucho más rápida que un disco duro, sobre todo que los discos mecánicos. 

jerarquia memoria






Qué es la memoria caché de una CPU

Memoria caché L1, L2 y L3

Lo primero que tendremos que saber es en qué consiste la memoria caché en general. Como ya hemos dicho, dentro de un PC hay varios tipos de memoria.

Los niveles de almacenamiento

El almacenamiento primario básico son los discos duros. En ellos se almacena toda la información de forma permanente, a partir de ella el sistema operativo hace un PC funcional. Es la memoria más lenta, desde unos 150 MB/s en un HDD (disco duro mecánico) hasta los impresionantes 3.500 MB/s de los SSD (unidad en estado sólido) más rápidos del mercado.

La memoria de acceso aleatorio o memoria RAM. Es una memoria en estado sólido más pequeña, que no es capaz de almacenar datos de forma permanente y que hace de pasarela entre el disco duro y el procesador. Ofrece una velocidad mayor a los 30.000 MB/s en las DDR4. La memoria también se denomina DRAM (Dynamic RAM) porque necesita actualizarse constantemente para no perder la información.

Y por fin llegamos a la que se encuentra en la cima, la memoria caché, por supuesto, por debajo de los registros. Se trata de una memoria muy pequeñita que está instalada dentro de propio microprocesador y de tipo SRAM (Static RAM). Es mucho más cara de fabricar que la memoria RAM normal, y puede contener datos sin necesidad de actualizarse constantemente.

El hecho de estar instalada dentro de la CPU la hace ser la más cercana a los núcleos de procesamiento, y es por ello que debe ser endemoniadamente rápida. De hecho, alcanza velocidades de más de 200 GB/s y latencias de unos 10 o 11 ns (nanosegundos). La memoria caché se encarga de almacenar las instrucciones que inminentemente van a ser procesadas por la CPU, para que este pueda acceder a ellas de la forma más rápida posible.

A su vez, la memoria caché se divide en varios niveles, cada uno de ellos más rápidos, más pequeños y más cercanos al procesador. Actualmente los procesadores cuentan con varios niveles de memoria caché en su interior. Antes de entrar en esto, vamos a ver de forma rápida cómo funciona una memoria caché.


Memoria caché: ¿qué es y cómo funciona?


haswell

Imagen de un procesador Haswell-E de ocho núcleos. Como vemos todos tienen acceso a la caché L3.

La memoria caché es, como su propio nombre indica, un tipo de memoria específica. En un ordenador existen diferentes tipos de memoria que se agrupan en dos grandes variantes: la memoria volátil y la memoria no volátil, siendo la primera aquella que pierde los datos cuando apagamos el equipo (memoria RAM, por ejemplo) y la segunda aquella que los mantiene (un disco duro o un SSD, por ejemplo).

Pues bien, la memoria caché es un tipo de memoria específica que está preparada para servir de apoyo al procesador, y que es capaz de trabajar a velocidades muy elevadas. Esta memoria se divide en diferentes niveles como dijimos, pero su función base es la misma: apoyar a la CPU para mejorar su rendimiento.

Para ello actúa como un sistema de almacenamiento de instrucciones y de datos capaz de comunicarse con el procesador a gran velocidad. Normalmente en la memoria caché se almacenan datos e instrucciones que el procesador va a necesitar para completar diferentes tareas a corto plazo. Con ello se evitan dos cosas muy importantes que podrían reducir el rendimiento:

  1. Que el procesador tenga que volver a completar ciclos de trabajo para conseguir los datos o instrucciones que necesita.

  2. Que tenga que acceder a la memoria RAM (más lenta que la caché) para obtener dichos datos o instrucciones.

La velocidad de la memoria caché importa, y mucho, pero también la capacidad de la misma, aunque sobre este tema hablaremos en el siguiente punto. Es importante recordar que en las generaciones más antiguas de procesadores la memoria caché L2 y L3 estuvo integrada durante mucho tiempo en la placa base, y no en el encapsulado del procesador. Esto suponía que la información tenía que recorrer una distancia importante en cada acceso lo que acababa teniendo un impacto considerable en el rendimiento.

Actualmente todos los tipos de memoria caché se encuentran integrados en el encapsulado del procesador, con la única excepción de la L4 que, por cuestiones de tamaño y de espacio, suele ir en un encapsulado propio ubicado justo a continuación del encapsulado principal. Esto tiene consecuencias importantes, como veremos a continuación.

Memoria caché: tipos y jerarquía


intel2

Imagen de un procesador Intel Nehalem. Como vemos los cuatro núcleos tienen acceso a la caché L3. Los círculos grandes identifican la caché L2, y los pequeños la caché L1.

Ya hemos visto qué es y qué trabajo realiza la memoria caché. En general es un apoyo importante para el procesador que, como dijimos, se divide en un total de tres niveles generales al que podemos sumar un cuarto que no resulta nada común y que juega un papel particular, como vamos a explicar más adelante.

La diferenciación entre memoria caché L1, L2 y L3 obedece a un orden de jerarquía establecido por cercanía al procesador, velocidad y capacidad. Utilizaremos dos ejemplos extremos para que veáis las grandes diferencias que pueden haber en términos de cantidad en función de cada CPU, aunque la función de la memoria caché será la misma en todos los casos.

  • Caché L1: es el nivel más básico, la más cercana al procesador y la más rápida. También es la que menos capacidad tiene, por ejemplo un procesador de dos núcleos como el Pentium G4560 tiene 64 KB en total (32 KB por núcleo), aunque los modelos más potentes (serie Xeon y Epyc) pueden alcanzar los 3 MB sin problema.

  • Caché L2: es un nivel intermedio que presenta un buen equilibrio entre capacidad, cercanía y velocidad. Siguiendo el ejemplo anterior el Pentium G4560 tiene 512 KB (256 KB por núcleo) de caché L2, pero un Threadripper 2990WX llega a los 16 MB en total (512 KB por núcleo).

  • Caché L3: posiciona en un nivel inferior a la anterior tanto en cercanía como en velocidad, pero tiene una capacidad mucho mayor. El Penitum G4560 tiene 3 MB de caché L3 compartida en sus dos núcleos, mientras que el Threadripper 2990WX viene con un total de 64 MB (16 MB compartidos por cada bloque de ocho núcleos).

  • Caché L4: es un tipo de memoria caché poco habitual que se utiliza normalmente como apoyo para mejorar el rendimiento de GPUs integradas. Por ejemplo, el Core i5 5775C venía con 6 MB de caché L3 y 128 MB de eDRAM como caché L4, que se utilizaba como buffer para la gráfica Intel Iris Pro 6200 que integraba. Así se mejoraba el ancho de banda y se reducía el impacto de tener que recurrir a la RAM como memoria gráfica.

Cuando un procesador busca instrucciones y datos que necesita primero recurre a la memoria caché L1, si no encuentra nada recurre a la caché L2 y finalmente a la caché L3. En caso de que ninguna de las cachés contenga lo que está buscando no tiene más opción que recurrir a la memoria RAM, y si tampoco está en ella tiene que realizar un ciclo de trabajo completo, con todo lo que ello supone a nivel de rendimiento.

Esta explicación nos ayuda a entender también la referencia que hemos hecho anteriormente a los diseños que integraban la caché L2 y L3 en la placa base. La distancia entre componentes aumentaba enormemente la latencia y reducía en gran medida el rendimiento, algo que se pudo superar al montar los tres tipos principales de caché en el encapsulado de la CPU.

rayzen

Imagen de un procesador Ryzen. Como vemos la caché L3 se comparte en bloques de cuatro núcleos.

A día de hoy la caché ha dejado de ser un problema, ya que incluso los procesadores más básicos vienen equipados con memoria caché L3, algo que, sin embargo, no ocurría hace unos años.

No debemos obsesionarnos con este tema, aunque es cierto que el impacto de la memoria caché en el rendimiento general del sistema no tiene porque ser uniforme, ya que depende de otros aspectos como la arquitectura del procesador y su potencia bruta, y también, de forma indirecta, de la velocidad de trabajo y la latencia de la memoria RAM.

Por ejemplo, la arquitectura de núcleo monolítico que usan los procesadores Intel permite trabajar con memorias caché L3 más rápidas que tienen una latencia inferior, mientras que en el caso de los procesadores AMD Ryzen ocurre todo lo contrario, debido a la arquitectura MCM que separa la caché L3 en bloques de núcleos, conocidos como unidades CCX en Zen y Zen+ y chiplets (dos unidades CCX) en Zen 2.

Al contar con una memoria RAM más rápida es posible reducir también el impacto que tiene la ausencia de datos necesarios en la caché, que como vimos obliga al procesador a buscar en la RAM.

Cómo funciona la memoria caché

Memoria caché L1, L2 y L3

Quizás no lo sepas, pero prácticamente todos los periféricos y elementos de un ordenador cuentan con su propia memoria caché, por ejemplo, los propios discos duros, la impresora, y por supuesto las GPU de las tarjetas gráficas. Y la función de todas ellas, incluida la de una CPU será la misma.

Como sabemos, un ordenador es “inteligente” gracias al sistema operativo y a sus programas. Cada uno de estos programas está creado a partir de un lenguaje de programación, que a su vez son un conjunto de instrucciones que deben ser ejecutadas de forma ordenada en la CPU. Decimos de forma ordenada porque es en este punto en donde cobra sentido el establecer distintos niveles de almacenamiento.

Los datos se encuentran almacenados de forma fija en los discos duros, pero como son tan lentos y están “tan lejos” de la CPU, éstos se cargan antes en la memoria RAM, un almacenamiento mucho más rápido y solo utilizado para los programas que están en funcionamiento.

El controlador de memoria entra en juego

Memoria caché L1, L2 y L3

Pero aún no es suficiente, debido a que las CPU de la actualidad son tan rápidas y capaces de ejecutar millones de operaciones en cada segundo en cada núcleo, entra la memoria caché. Dentro de la CPU existe un controlador de memoria, que básicamente se trata de lo que antes se llamaba puente norte o north bridge y que era un chip instalado en la placa base. Pues este controlador de memoria ahora está dentro de la CPU y se encarga de tomar de la memoria RAM las instrucciones que van a ser ejecutadas, y también de devolver los resultados del ciclo de procesamiento.

Pero es que además existen dos tipos de buses que se encargan de comunicar la CPU con la memoria RAM, se llaman bus de datos y bus de direcciones:

  • Bus de datos: son básicamente las pistas por donde circulan los datos e instrucciones. Existirá un bus de datos que comunica la memoria RAM, caché y núcleos entre sí.
  • Bus de direcciones: es un canal independiente por donde la CPU pide la dirección de memoria en donde se encuentra el dato. Les instrucciones se guardan en celdas de memoria, las cuales tienen una dirección, y tanto la memoria RAM, caché y CPU deben conocerla para ubicar el dato en cuestión.

La memoria caché L1, L2 y L3

Memoria caché L1, L2 y L3 configuración

A estas alturas, ya entendemos de forma bastante aproximada cómo funciona el almacenamiento en un PC, y cómo funciona la caché. Pero debemos saber que existe una memoria caché L1, L2 y L3 dentro de la CPU, parece mentira que dentro de algo tan pequeño quepan tantas cosas ¿verdad? Pues estos tres niveles de memoria caché atienden a una jerarquía de velocidad y por supuesto, de capacidad.

Memoria caché L1

La caché L1 es la configuración más rápida, la que se encuentra más cerca de los núcleos. Ésta almacena los datos que inmediatamente van a ser usados por la CPU, y es por ello que las velocidades están en torno a los 1150 GB/s y la latencia en tan solo 0,9 ns.

El tamaño de esta memoria caché está en torno a los 256 KB en total, aunque según la potencia de la CPU (y coste) será menor o mayor, de hecho, los procesadores de Workstation como el Intel Core i9-7980 XE cuentan con unos 1152 KB en total.

Esta caché L1 se divide en dos tiposla caché L1 de datos y la caché L1 de instrucciones, la primera se encarga de almacenar los datos que se procesarán y la segunda almacena la información sobre la operación a realizar (suma, resta, multiplicación, etc).

Además, cada núcleo cuenta con sus propias memorias caché L1, así que, si tenemos un procesador de 6 núcleos, tendremos 6 caché L1 divididas en L1 D y L1 I. En los procesadores Intel cada una de ellas son de 32 KB, y en los procesadores AMD también son de 32 KB o 64 KB en la L1 I. Por supuesto variarán según la calidad y potencia, como siempre.

Memoria caché L1, L2 y L3 latencia

Memoria caché L2

La siguiente que encontramos será la caché L2 o de nivel 2. Esta tiene mayor capacidad de almacenamiento, aunque será un poco más lenta, de unos 470 GB/s y 2,8 ns de latencia.  El tamaño de almacenamiento suele variar entre los 256 KB y los 18 MB. Ya vemos que son capacidades considerables para las velocidades que manejamos.

En ella se almacenan las instrucciones y datos que pronto serán utilizadas por la CPU y en este caso no está dividida en Instrucciones y datos. Pero sí que tenemos una caché L2 por cada núcleo, al menos es así en los procesadores más relevantes. Por cada núcleo, suele haber 256, 512 o hasta 1024 KB.

Memoria caché L3

Finalmente nos encontraremos con la caché L3, la cual tiene un espacio dedicado para ella en el chip del procesador. Será la de mayor tamaño y también la más lenta, hablamos de más de 200 GB/s y 11 ns de latencia.

En la actualidad un procesador que se precie va a tener al menos 4 MB de caché L3, y puede verse unidades de hasta 64 MB. La L3 se reparte normalmente en unos 2 MB por cada núcleo, pero digamos que no está dentro de cada núcleo, así que hay un bus de datos para comunicarse con ellos. De este bus y del propio de la memoria RAM depende en gran medida la solvencia y velocidad de una CPU, y es donde Intel saca su poderío frente a AMD.

Cómo conocer la memoria caché L1, L2 y L3 de mi procesador

Pues una de las formas más rápidas de conocer esta información es descargar la herramienta CPU-Z, la cual es completamente gratuita y te proporcionará una información muy completa sobre tu CPU. Incluso los tres niveles y la cantidad de almacenamiento de cada una. Podrás descargarla desde su página web oficial.

Memoria caché L1, L2 y L3 CPU-Z

También podrías colocar la marca y modelo en el navegador y dirigirte a la página del fabricante, aunque normalmente solo proporcionan información acerca de la caché L3. Por supuesto, en todas nuestra review de procesadores damos información completa sobre la cache de cada CPU y realizamos benchmarks de su rendimiento.

Latencia, ancho de bus y la falta de caché

Hemos entendido que los datos fluyen desde el disco duro hasta el núcleo de procesamiento a través de todos los niveles de memoria. Donde primero busca el procesador la siguiente instrucción a procesar, es en la memoria caché, un sistema de calidad debería se saber ubicar correctamente los datos en función de su importancia para así reducir al máximo los tiempos de acceso a ellos, lo que se llama latencia.

La latencia es entonces, el tiempo que se tarda en acceder a los datos desde la memoria. Mientras más lejos y más lenta, mayor latencia y más tiempo tendrá que esperar la CPU su siguiente instrucción. Así cuando una instrucción no está situada en la memoria caché, el procesador debe buscarla directamente en la memoria RAM, a esto se le denomina falta de caché o caché miss, es entonces cuando se experimenta un PC más lento.

El ancho de bus también es de gran importancia para la velocidad, ya que éste marca la capacidad para transferir mayores bloques de datos desde la memoria a la CPU. Tanto CPU como memoria RAM son de 64 bits, pero la función de Dual Channel es capaz de doble esta capacidad a 128 bits para que la transferencia entre estos elementos tenga mayor capacidad.

Conclusión acerca de la memoria cache L1, L2 y L3

Siempre nos fijamos mucho en la cantidad de núcleos y la velocidad de un procesador, está claro que determina en gran medida la velocidad total de éste. Pero un elemento que a veces no suele ser tenido en cuenta es la memoria caché, y es fundamental a la hora de tener un procesador potente.

Tener una CPU de 6 núcleos con 4 o 16 MB de cache L3 por ejemplo, va a ser muy significativo a la hora de medir su rendimiento, sobre todo cuando tenemos múltiples programas abiertos. Así que, a partir de ahora, fijaos bien en este apartado cuando decidáis comprar un procesador, porque no todo depende de la frecuencia.