Unidad central de procesamiento | una parte importante de todo ordenador

La unidad central de procesamiento (CPU) es una parte importante de todo ordenador. La CPU envía señales para controlar las demás partes del ordenador, casi como el cerebro controla un cuerpo.

La CPU es una máquina electrónica que trabaja con una lista de cosas que debe hacer el ordenador, llamadas instrucciones. Lee la lista de instrucciones y ejecuta (ejecuta) cada una de ellas en orden. Una lista de instrucciones que una CPU puede ejecutar es un programa informático.

La tasa de reloj, o velocidad de las piezas internas de una CPU, se mide en hercios (Hz). Los procesadores modernos suelen funcionar tan rápido que en su lugar se utiliza el gigahercio (GHz). Un GHz es 1.000.000.000 de ciclos por segundo.

La mayoría de las CPU que se utilizan en los ordenadores de sobremesa (domésticos) son microprocesadores fabricados por Intel o Advanced Micro Devices (normalmente abreviado como AMD). Otras empresas que fabrican CPUs son ARM (recientemente comprada por Nvidia), IBM y AMD bajo ATI Technologies, que es el líder en estos momentos. La mayoría de sus CPU se utilizan en sistemas integrados para cosas más especializadas, como en teléfonos móviles, coches, consolas de videojuegos o en el ejército.




  Una CPU Pentium dentro de un ordenador  Zoom
Una CPU Pentium dentro de un ordenador  

Tipos de CPU

En el siglo XX los ingenieros inventaron muchas arquitecturas informáticas diferentes. Hoy en día, la mayoría de los ordenadores de sobremesa utilizan CPUs de 32 bits o CPUs de 64 bits. Las instrucciones de una CPU de 32 bits son buenas para manejar datos que tienen un tamaño de 32 bits (la mayoría de las instrucciones "piensan" en 32 bits en una CPU de 32 bits). Del mismo modo, una CPU de 64 bits es buena para manejar datos que tienen un tamaño de 64 bits (y a menudo también es buena para manejar datos de 32 bits). El tamaño de los datos que una CPU maneja mejor se suele denominar tamaño de palabra de la CPU. Muchas CPU antiguas de los años 70, 80 y principios de los 90 (y muchos sistemas integrados modernos) tienen un tamaño de palabra de 8 o 16 bits. Cuando se inventaron las CPU a mediados del siglo XX, tenían muchos tamaños de palabra diferentes. Algunas tenían diferentes tamaños de palabra para las instrucciones y los datos. Los tamaños de palabra menos populares dejaron de utilizarse posteriormente.

La mayoría de las CPU son microprocesadores. Esto significa que la CPU es un solo chip. Algunos chips con microprocesadores en su interior también contienen otros componentes, y son "ordenadores" completos de un solo chip. Esto se denomina microcontrolador.


 

Registros

Cuando la CPU ejecuta un programa informático, necesita algún lugar donde almacenar los datos sobre los que operan las instrucciones (los datos que leen y escriben). Este almacenamiento se llama registro. Una CPU suele tener muchos registros. El acceso a los registros debe ser muy rápido (para leer y escribir). Por ello, forman parte del propio chip de la CPU.


 

Memoria

Almacenar todos los datos en los registros haría que la mayoría de las CPUs fueran demasiado complicadas (y muy caras). Por lo tanto, los registros normalmente sólo almacenan los datos en los que la CPU está trabajando "en este momento". El resto de los datos utilizados por el programa se almacena en la memoria RAM (Random Access Memory). Excepto en los microcontroladores, la RAM suele almacenarse fuera de la CPU en chips separados.

Cuando la CPU quiere leer o escribir datos en la RAM, emite una dirección para esos datos. Cada byte de la RAM tiene una dirección de memoria. El tamaño de las direcciones suele ser el mismo que el de la palabra: Una CPU de 32 bits utiliza direcciones de 32 bits, etc. Sin embargo, las CPUs más pequeñas, como las de 8 bits, suelen utilizar direcciones mayores que el tamaño de la palabra. De lo contrario, la longitud máxima del programa sería demasiado corta.

Como el tamaño de las direcciones es limitado, la cantidad máxima de memoria también lo es. Los procesadores de 32 bits normalmente sólo pueden manejar hasta 4 GB de RAM. Este es el número de bytes diferentes que pueden seleccionarse utilizando una dirección de 32 bits (cada bit puede tener dos valores-0 y 1-y 232 bytes es 4 GB). Un procesador de 64 bits puede ser capaz de manejar hasta 16 EB de RAM (16 exabytes, unos 16 mil millones de GB, o 16 mil millones de bytes). El sistema operativo puede limitarlo a utilizar cantidades menores.

La información que se almacena en la memoria RAM suele ser volátil. Esto significa que desaparecerá si se apaga el ordenador.

Unidades de gestión de memoria (MMU) y memoria virtual

Las CPUs modernas suelen utilizar una unidad de gestión de memoria (MMU). Una MMU es un componente que traduce las direcciones de la CPU a (normalmente) diferentes direcciones de la RAM. Cuando se utiliza una MMU, las direcciones utilizadas en un programa no son (normalmente) las direcciones "reales" donde se almacenan los datos. Esto se denomina memoria virtual (lo contrario de "real"). Aquí se enumeran algunas de las razones por las que es bueno tener una MMU:

  • Una MMU puede "ocultar" la memoria de otros programas a un programa. Esto se hace no traduciendo ninguna dirección a las direcciones "ocultas" mientras el programa se está ejecutando. Esto es bueno porque significa que los programas no pueden leer y modificar la memoria de otros programas, lo que mejora la seguridad y la estabilidad. (Los programas no pueden "espiarse" unos a otros, ni "pisarse").
  • Muchas MMU pueden hacer que algunas partes de la memoria sean no escribibles, no legibles o no ejecutables (lo que significa que el código almacenado en esa parte de la memoria no puede ejecutarse). Esto puede ser bueno por razones de estabilidad y seguridad, así como por otras razones.
  • Las MMU permiten que diferentes programas tengan diferentes "vistas" de la memoria. Esto es útil en muchas situaciones diferentes. Por ejemplo, siempre será posible tener el código "principal" de un programa en la misma dirección (virtual) sin colisionar con otros programas. También es útil cuando hay muchas piezas diferentes de código (de bibliotecas) que se comparten entre programas.
  • Las MMUs permiten que el código de las bibliotecas aparezca en diferentes direcciones cada vez que se ejecuta un programa. Esto es bueno porque no saber dónde están las cosas en la memoria suele dificultar que los hackers hagan que los programas hagan cosas malas. Esto se llama aleatorización del espacio de direcciones.
  • Los programas avanzados y los sistemas operativos pueden utilizar trucos con las MMU para evitar tener que copiar los datos entre diferentes lugares de la memoria.

 

Caché

En los ordenadores modernos, la RAM es mucho más lenta que los registros, por lo que el acceso a la RAM ralentiza los programas. Para acelerar los accesos a la memoria, a menudo se coloca un tipo de memoria más rápida llamada caché entre la RAM y las partes principales de la CPU. La caché suele formar parte del propio chip de la CPU y es mucho más cara por byte que la RAM. La caché almacena los mismos datos que la RAM, pero suele ser mucho más pequeña. Por lo tanto, es posible que todos los datos utilizados por el programa no quepan en la caché. La caché trata de almacenar los datos que probablemente se utilicen mucho. Por ejemplo, los datos utilizados recientemente y los datos cercanos en la memoria a los utilizados recientemente.

A menudo tiene sentido tener una "caché para la caché", igual que tiene sentido tener una caché para la RAM. En la caché multinivel, hay muchas cachés, llamadas la caché L1, la caché L2, y así sucesivamente. La caché L1 es la más rápida (y la más cara por byte) y está "más cerca" de la CPU. La caché L2 está a un paso y es más lenta que la caché L1, etc. La caché L1 puede considerarse a menudo como una caché para la caché L2, etc.


 

Autobuses

Los buses informáticos son los cables que utiliza la CPU para comunicarse con la RAM y otros componentes del ordenador. Casi todas las CPUs tienen al menos un bus de datos -utilizado para leer y escribir datos- y un bus de direcciones -utilizado para emitir direcciones-. Otros buses dentro de la CPU llevan datos a diferentes partes de la misma.


 

Conjuntos de instrucciones

Un conjunto de instrucciones (también llamado ISA - Instruction Set Architecture) es un lenguaje que entiende directamente una determinada CPU. Estos lenguajes también se denominan código máquina o binario. Dicen cómo se le dice a la CPU que haga diferentes cosas, como cargar datos de la memoria en un registro, o sumar los valores de dos registros. Cada instrucción de un conjunto de instrucciones tiene una codificación, que es cómo se escribe la instrucción como una secuencia de bits.

Los programas escritos en lenguajes de programación como C y C++ no pueden ser ejecutados directamente por la CPU. Deben ser traducidos a código máquina antes de que la CPU pueda ejecutarlos. Un compilador es un programa informático que realiza esta traducción.

El código máquina es sólo una secuencia de 0s y 1s, lo que dificulta su lectura por parte de los humanos. Para hacerlo más legible, los programas en código máquina suelen estar escritos en lenguaje ensamblador. El lenguaje ensamblador utiliza texto en lugar de 0s y 1s: Puede escribir "LD A,0" para cargar el valor 0 en el registro A, por ejemplo. Un programa que traduce el lenguaje ensamblador a código máquina se llama ensamblador.


 

Funcionalidad

Estas son algunas de las cosas básicas que puede hacer una CPU:

  • Leer datos de la memoria y escribir datos en la memoria.
  • Suma un número a otro número.
  • Prueba para ver si un número es mayor que otro.
  • Mover un número de un lugar a otro (por ejemplo, de un registro a otro, o entre un registro y la memoria).
  • Salta a otro lugar en la lista de instrucciones, pero sólo si alguna prueba es verdadera (por ejemplo, sólo si un número es mayor que otro).

Incluso se pueden hacer programas muy complicados combinando muchas instrucciones simples como éstas. Esto es posible porque cada instrucción tarda muy poco tiempo en producirse. Hoy en día, muchas CPU pueden hacer más de mil millones (1.000.000.000) de instrucciones en un solo segundo. En general, cuanto más pueda hacer una CPU en un tiempo determinado, más rápida será. Una forma de medir la velocidad de un procesador es el MIPS (millón de instrucciones por segundo). Los flops (operaciones en coma flotante por segundo) y la velocidad del reloj de la CPU (que suele medirse en gigahercios) son también formas de medir cuánto trabajo puede hacer un procesador en un tiempo determinado.

Una CPU está construida con puertas lógicas; no tiene partes móviles. La CPU de un ordenador está conectada electrónicamente a otras partes del ordenador, como la tarjeta de vídeo o la BIOS. Un programa informático puede controlar estos periféricos leyendo o escribiendo números en lugares especiales de la memoria del ordenador.


 

Canalizaciones de instrucciones

Cada instrucción ejecutada por una CPU suele realizarse en muchos pasos. Por ejemplo, los pasos para ejecutar una instrucción "INC A" (aumentar en uno el valor almacenado en el registro A) en una CPU sencilla podrían ser estos

  • Lea la instrucción de la memoria,
  • descodificar la instrucción (averiguar lo que hace la instrucción), y
  • añada uno al registro A.

Diferentes partes de la CPU hacen estas cosas diferentes. A menudo es posible ejecutar algunos pasos de diferentes instrucciones al mismo tiempo, lo que hace que la CPU sea más rápida. Por ejemplo, podemos leer una instrucción de la memoria al mismo tiempo que descodificamos otra instrucción, ya que esos pasos utilizan módulos diferentes. Esto puede considerarse como tener muchas instrucciones "dentro de la tubería" a la vez. En el mejor de los casos, todos los módulos están trabajando en diferentes instrucciones a la vez, pero esto no siempre es posible.


 

Múltiples núcleos

Los procesadores multinúcleo se hicieron mucho más comunes a principios del siglo XXI. Esto significa que tienen muchos procesadores incorporados en el mismo chip para poder ejecutar muchas instrucciones a la vez. Algunos procesadores pueden tener hasta sesenta y cuatro núcleos, como la próxima serie Epyc "Milan" de AMD. Incluso los procesadores para consumidores tienen muchos núcleos, como el AMD Ryzen 9 5950x de 16 núcleos.


 

Multithreading

Algunos procesadores disponen de una tecnología conocida como multihilo. Se trata de ejecutar más de un "hilo" de instrucciones en un sistema operativo. Muchos procesadores modernos utilizan esto para aumentar el rendimiento con programas pesados de varios hilos, como los programas de referencia.


 

Fabricantes

Las siguientes empresas fabrican CPUs para ordenadores:

  • ARM
  • Intel
  • Advanced Micro Devices
  • MCST
  • SRISA
  • Sun Microsystems

 

Más información



 

Preguntas y respuestas

P: ¿Qué es una CPU?


R: Una CPU (unidad central de procesamiento) es una parte importante de todo ordenador. Envía señales para controlar las otras partes del ordenador, casi como un cerebro controla un cuerpo. La CPU es una máquina electrónica que funciona con una lista de instrucciones para realizar determinadas tareas.

P: ¿Cómo funciona la CPU?


R: La CPU lee la lista de instrucciones y ejecuta (ejecuta) cada una de ellas en orden. Una lista de instrucciones que una CPU puede ejecutar es un programa de ordenador.

P: ¿En qué se mide la frecuencia de reloj o la velocidad de una CPU?


R: La tasa de reloj o velocidad de las piezas internas de una CPU se mide en hercios (Hz). Los procesadores modernos suelen funcionar tan rápido que en su lugar se utiliza el gigahercio (GHz), siendo un GHz 1.000.000.000 de ciclos por segundo.

P: ¿Quiénes son algunas de las empresas que fabrican CPUs?


R: Algunas empresas que fabrican CPUs son Intel, Advanced Micro Devices (AMD), ARM (recientemente comprada por Nvidia), IBM y AMD bajo ATI Technologies, que actualmente lidera el mercado.

P: ¿Dónde se utilizan la mayoría de las CPU?


R: La mayoría de las CPU que se utilizan en los ordenadores de sobremesa son microprocesadores fabricados por Intel o AMD, mientras que la mayoría de los demás se utilizan en sistemas integrados para cosas más especializadas como teléfonos móviles, coches, consolas de videojuegos o aplicaciones militares.

AlegsaOnline.com - 2020 / 2023 - License CC3