¿Por qué las CPU de servidor son tan caras? Estas son las diferencias

Alguna vez seguramente se os ha pasado por la cabeza comprar una CPU de servidor. Estas tienen una potencia mucho mayor que las de sobremesa, pero también un mayor precio y vienen acompañadas de placas especiales, memoria RAM distinta y todo ello por unos precios mucho más altos que una CPU de sobremesa. Os explicamos las diferencias y el motivo de ellas.

Sabemos que hay CPU para todo tipo de tamaños y ordenadores. Desde el que hay en un smartphone hasta el superordenador más potente. Pero mientras que existe una diferencia clara entre los procesadores para smartphones y los de PC no parece que sea tanta la diferencia entre la de un ordenador y un servidor excepto en la cantidad de núcleos y el hecho de ser más caros. Realmente no es así.

Más núcleos en una CPU para servidor

Server CPU

Debido a que los servidores tienen que ejecutar una mayor cantidad de procesos que un PC convencional al mismo tiempo, se necesita que su CPU tenga una mayor cantidad de núcleos. Como bien sabréis los programas escalan en rendimiento bajo dos métricas. La primera de ellas es el rendimiento en paralelo que crece con la cantidad de núcleos que hay en el sistema, el segundo es el rendimiento en serie que depende de la potencia de cada procesador en solitario.

En realidad el motivo por el cual una CPU para servidores tiene más núcleos, al igual que más caché, tiene que ver con la economía. Una empresa que monte un servidor tiene capital suficiente para rentabilizar la compra de un procesador de gran tamaño, con una gran cantidad de núcleos y una gran cantidad de memoria caché en el interior.

Por la mayor capacidad económica, a la hora de construir las CPU para servidores, los fabricantes tienen una mayor cantidad de núcleos y de memoria caché.

Múltiples CPU en servidores

Placa base doble socket

Antes de la llegada de las CPU multinúcleo tuvimos una pequeña era en la que vimos configuraciones de varios procesadores sobre un mismo interposer o compartiendo un mismo socket, pero eso duro poco tan pronto como aparecieron las CPU de dos núcleos.

En el mercado de los servidores es normal ver varias CPUs montadas en una placa base, cada una con su socket. En PC hemos visto CPUs con chiplets, pero no es lo mismo, ya que estas continúan utilizando un solo socket y no es del mismo tamaño que los socket para servidores.

El socket y la placa base de una CPU para servidor es distinto

Placa Base Servidor

El otro punto es el Socket, que es donde va conectado el procesador. El hecho de que el procesador de un servidor sea mucho más grande que el de un PC hace que sea necesario un socket especial y con ello placas base especiales que están diseñadas para dicho mercado, las cuales obviamente son mucho más caras.

Las placas base para servidores tienen cosas que las de PC convencional no tienen, ya que pueden tener cosas como una mayor cantidad de interfaces Gigabit Ethernet, transceptores SFP que permiten utilizar interconexiones de fibra óptica, puertos SAS para la conexión de discos en servidores, etc. En cuanto a la memoria RAM muchas CPU para servidores utilizan memoria ECC, la cual no se puede utilizar con CPUs convencionales y tampoco se puede utilizar la RAM tradicional con las placas base y por tanto con las CPU para servidores.

La memoria ECC incluye bits de memoria adicionales, los cuales son manejados por hardware adicional en el controlador y la interfaz de la memoria. Estos bits adicionales se utilizan para almacenar un código de encriptación, el cual es escrito cuando se almacenan los datos en memoria. Cuando los datos son leídos desde la CPU del servidor se comparan ambos códigos. De esta manera se puede mantener la integridad de los datos y por tanto de la información.

Una CPU para servidor esta siempre en funcionamiento

Mantenimiento Servidor

La CPU de un servidor va a estar encendida durante 24 horas al día, 7 días a la semana y 365 días al año. Es decir, desde que se instalan hasta que dejan de funcionar van a estar en funcionamiento todo el rato. Lo que se traduce es que a la hora de hacer los test de calidad a una CPU para servidores estos son mucho más exigentes y la cantidad de procesadores que superan el corte es mucho más baja. Es por ello que son tan caros y tas escasos.

Es por ello que las CPU para servidores suelen funcionar a una velocidad de reloj medía inferior por núcleo que en sus equivalentes de escritorio. El motivo es que están diseñadas para que puedan funcionar sin tener que apagar nunca el servidor y que este no alcance niveles de consumo críticos. Es por ello que tampoco están pensadas para el overclocking y todo hardware para dicha función queda completamente descartado.

La menor velocidad de reloj lo compensan con una mayor cantidad de núcleos. Lo que le permite a la CPU poder ejecutar una mayor cantidad de hilos de ejecución en paralelo. Hay que tener en cuenta que los sistemas operativos contemporáneos manejan no decenas, sino centenares de hilos de ejecución de manera simultánea, los cuales van a ser asignados a los núcleos que queden libres de la CPU del servidor.

Sin GPU ni coprocesadores multimedia integrados

CPU Servidor Xeon

Las CPU para servidores no se utilizan para reproducir gráficos completos, es más, los diseñadores no integran ningún hardware gráfico dentro del mismo chip que la propia CPU, por lo que no tienen una GPU integrada. Uno de los motivos es por el ahogamiento termal que puede provocar una GPU de alto rendimiento sobre la CPU al compartir espacio con esta. Ya hemos dicho que lo importante para una CPU para servidores es el hecho de poder estar siempre encendida.

Es por ello que mientras las actuales CPU que hay en PC son realmente SoCs en los que tenemos varios tipos de procesador de arquitectura heterogénea, las CPU para servidores son aún configuraciones homogéneas que en general suelen utilizar un solo tipo de núcleo, los de la CPU. Y no incluyen ningún otro tipo de procesador en su interior.

Muchos servidores actuales realizan servicios de computación en la nube y suelen llevar tarjetas gráficas dedicadas con virtualización, esto significa que la GPU puede funcionar como varias GPU virtuales de manera asíncrona para varios clientes remotos distintos.