Las unidades centrales de procesamiento (CPU) son el cerebro de nuestras computadoras. Procesan todo lo que hacemos a diario, desde abrir una aplicación hasta ver una película. Pero, ¿qué es exactamente una CPU? ¿Como funciona? ¿Y cuál es la diferencia entre las CPU y las CPU virtuales cada vez más populares?
Entendiendo los cerebros de las computadoras
Las primeras computadoras electrónicas se crearon a principios del siglo XIX, según la guía de historia completa publicada por G2 . Sin embargo, estas computadoras eran grandes y costosas, y solo podían ser utilizadas por matemáticos y científicos capacitados
A Charles Babbage se le atribuye la invención de la primera máquina informática, el motor diferencial, que podía programarse para realizar cualquier cálculo que pudiera hacerse a mano. Sin embargo, el proyecto Difference Engine nunca se completó debido a la falta de fondos, según el Museo de Historia de la Computación .
En 1937, Babbage mencionó por primera vez el motor analítico, que se convertiría en la primera computadora mecánica de propósito general del mundo. “El motor analítico incorporó todos los elementos de una computadora moderna: una unidad lógica aritmética, flujo de control en forma de bifurcaciones y bucles condicionales, y memoria integrada” ( Notas de electrónica ).
Un componente clave de la computadora actual es la CPU o unidad central de procesamiento. La CPU es responsable de ejecutar las instrucciones que le da el software, como un sistema operativo o una aplicación. En términos sencillos, puede pensar en la CPU como el cerebro de su computadora. La CPU se compone de dos partes principales: la unidad de control y la unidad aritmética lógica (ALU). Si estas abreviaturas lo confunden, consulte nuestra descripción general de cómo se diferencian las APU, las CPU y las GPU .
La unidad de control es responsable de obtener instrucciones de la memoria, decodificarlas y luego enviarlas a la unidad lógica aritmética para que sean ejecutadas. La ALU realiza operaciones aritméticas y lógicas sobre datos almacenados en registros, que son unidades de almacenamiento internas dentro de la CPU.
Las CPU modernas también contienen un caché , que es una pequeña cantidad de memoria de alta velocidad que almacena instrucciones y datos de uso frecuente. Los cachés se dividen en niveles; El caché de nivel 1 (L1) está integrado en la CPU, el caché de nivel 2 (L2) se encuentra en un chip separado cerca de la CPU y el caché de nivel 3 (L3) se encuentra más lejos de la CPU en su propio chip o incluso en su propia placa de circuito.
CPU frente a vCPU
Con el auge de los servicios en la nube llegó la llegada de la unidad central de procesamiento virtual, o vCPU para abreviar. TechTarget define vCPU como "una unidad central de procesamiento (CPU) física que se asigna a una máquina virtual (VM)".
Las máquinas virtuales son básicamente sistemas operativos autónomos que se ejecutan dentro de otro sistema operativo como si fueran aplicaciones. Las máquinas virtuales se utilizan para una variedad de propósitos, como probar software nuevo en un entorno seguro, ejecutar múltiples sistemas operativos (por ejemplo, Windows y Linux) en la misma computadora o consolidar múltiples servidores físicos en un solo servidor para ahorrar espacio y reducir costos.
Entonces, una vCPU es una implementación de software de una CPU; no existe físicamente dentro de su computadora como lo hace una CPU real. El hipervisor, que es el software que crea y administra máquinas virtuales, asigna vCPU a la máquina virtual. El sistema operativo dentro de la máquina virtual ve cada vCPU como un núcleo de CPU real. Consulte nuestra explicación de los hipervisores para obtener más información.
Sin embargo, debido a que las vCPU están basadas en software, no son tan eficientes como las CPU reales. Por lo tanto, es importante especificar cuántos núcleos tiene su procesador cuando compra una computadora (por ejemplo, "cuatro núcleos" significa cuatro núcleos). La misma regla se aplica al elegir un servidor privado virtual (VPS) o un plan de alojamiento de servidor dedicado.
La principal diferencia entre CPU y vCPU es que las CPU están basadas en hardware, mientras que las vCPU están basadas en software. Esto significa que las CPU existen físicamente dentro de su computadora mientras que las vCPU no; en cambio, son creados por hipervisores cuando es necesario. Debido a esta diferencia en la implementación, las CPU son mucho más eficientes que las vCPU; no tienen la sobrecarga asociada con la ejecución de software.
Desde principios de la década de 2000, las vCPU se han vuelto cada vez más populares porque son más baratas y fáciles de asignar que las CPU físicas; sin embargo, si busca rendimiento, es mejor usar una computadora con varios núcleos de CPU, ya que cada núcleo puede procesar instrucciones de forma independiente.
Núcleos frente a hilos
Una CPU puede tener uno o más núcleos, que es la unidad de procesamiento que realiza tareas en un momento específico. El núcleo mantendrá el orden de ejecución de las tareas, los registros y la memoria caché (si corresponde) y realizará las operaciones a través de la ALU. La CPU controla los núcleos, pero el núcleo ejecuta cada proceso de software o subproceso que programa el sistema operativo. Un hilo es una secuencia independiente de instrucciones que puede ser procesada por una CPU.
Pueden existir múltiples subprocesos dentro del mismo proceso y compartir el mismo espacio de memoria. Esto les permite comunicarse entre sí más fácilmente que si se estuvieran ejecutando en procesos separados. Los subprocesos se utilizan a menudo para mejorar el rendimiento de las aplicaciones multiproceso al permitir que diferentes partes del programa se ejecuten simultáneamente en diferentes núcleos o procesadores.
El término "hilo" se ha utilizado en la terminología informática durante muchos años; sin embargo, no fue hasta principios de la década de 2000 que se introdujo en los procesadores la compatibilidad con subprocesos a nivel de hardware. Esto permitió que múltiples subprocesos se ejecutaran simultáneamente en núcleos separados. Anteriormente, solo se podía ejecutar un subproceso a la vez en un solo núcleo, independientemente de cuántos núcleos estuvieran presentes en el procesador. Los procesadores multinúcleo ahora son comunes y la mayoría de los sistemas operativos brindan cierto nivel de soporte para ejecutar programas como múltiples subprocesos.
Resumiendo los problemas centrales
En resumen, las CPU son el cerebro basado en hardware de nuestras computadoras, mientras que su contraparte virtual, las vCPU, están basadas en software y son creadas por hipervisores para ejecutarse dentro de máquinas virtuales. Los núcleos son las unidades de procesamiento basadas en hardware dentro de una CPU, mientras que los subprocesos son las instrucciones basadas en software que pueden ser procesadas por una CPU.
Los subprocesos se pueden ejecutar simultáneamente en núcleos separados, lo que permite que diferentes partes del programa se ejecuten al mismo tiempo. Esto puede mejorar el rendimiento del hardware, ya que se pueden procesar varias tareas simultáneamente en lugar de secuencialmente.
Ahora que comprende la diferencia entre CPU, vCPU, núcleos y subprocesos, puede tomar una decisión informada al elegir una computadora o servidor. Si busca rendimiento, es mejor elegir una computadora con varios núcleos de CPU, ya que cada núcleo puede procesar instrucciones de forma independiente. Sin embargo, si está buscando una solución rentable, las vCPU pueden ser el camino a seguir.