Unidad Central del Proceso (CPU)#
Introducción#
El microprocesador o Unidad Central de Procesamiento (CPU) es un circuito integrado que sirve como cerebro del computador. En el interior de este componente electrónico existen millones de transistores integrados. Internamente, un microprocesador está compuesto por millones de pequeños componentes electrónicos llamados transistores.
Actualmente, los microprocesadores se fabrican con unas distancias entre transistores del orden de 14 nm. El hecho de disminuir la separación entre transistores permite, que en el mismo espacio, se puedan concentrar más transistores, aumentando así la potencia del procesador. Fabricantes como Intel han adoptado desde 2007 un modelo denominado Tick-Tock (tictac en español) para seguir cada cambio de la microarquitectura de una contracción de tecnología del proceso de fabricación anterior.
Cada tic es una contracción de la tecnología de proceso de la microarquitectura anterior y cada tac es una nueva microarquitectura. Cada año se espera que sea un tic o un tac aunque actualmente Intel ya no está siguiendo este modelo debido a los problemas para mejorar los nodos de fabricación para disminuir el nivel de integración por debajo de los 14 nm.
Ahora es más bien un tictac seguido de un refresco de procesadores: Process-Architecture-Optimization (PAO). La litografía de 10 nm no está prevista hasta 2017 con el microprocesador Cannonlake de Intel. Otro parámetro que mide la potencia de un procesador es su frecuencia de reloj.
La frecuencia de reloj de un procesador se mide en Megahercios (MHz) o bien en Gigahercios (GHz). A cada herzio también se le suele denominar ciclo. En cada ciclo un procesador puede realizar una o varias microoperaciones. Cada microoperación es una parte de una operación. De este modo, cuanto mayor sea esta frecuencia de reloj, mayor número de microoperaciones podrá realizar.
Por último, hay que destacar que la potencia de un microprocesador no se debe medir sólo por su frecuencia de reloj, sino también por su número de transistores, por su tecnología de fabricación, por sus niveles internos de memoria caché, etc. Existen además diversos índices mediante los cuales se puede medir la potencia de un ordenador
-
• MIPS: mide cuántos millones de instrucciones por segundo es capaz de ejecutar un procesador. Este índice no tiene en cuenta que hay procesadores con instrucciones más potentes que las de otros, por lo que se puede considerar como una medida simplista.
-
• MFLOPS: mide cuantos millones de instrucciones de coma flotante por segundo es capaz de ejecutar el procesador. Análogamente, esta medida no tiene en cuenta las diferencias entre las instrucciones de procesadores diferentes. Normalmente, los fabricantes de procesadores suelen proporcionar para los índices MIPS y MFLOPS picos de rendimiento.
-
• SPEC: ejecuta en el procesador un conjunto de programas y combina las medidas de prestaciones de éstos con la media aritmética o geométrica.
-
• SPECint y SPECfp: son unos índices que miden las velocidades en operaciones con enteros y con coma flotante. La medida resultante se denomina SPECmarks.
Los microprocesadores suelen tener forma de prisma chato, y se instalan sobre un elemento llamado zócalo de la placa base. También, en modelos antiguos, se solía soldar directamente a la placa madre. Aparecieron algunos modelos donde se adoptó el formato de cartucho, sin embargo no tuvo mucho éxito. Actualmente, se dispone de un zócalo especial para alojar el microprocesador y el sistema de enfriamiento, que comúnmente es un ventilador (cooler).
Componentes#
El microprocesador está compuesto por:
a) Banco de Registros
b) Unidad de control
c) Unidad aritmético-lógica
d) Unidad de Coma Flotante (dependiendo del microprocesador)
e) Bus de control
A continuación se explica con más detalle cada uno de estos elementos:
a) Banco de Registros Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar y acceder a valores muy usados, generalmente en operaciones matemáticas. Los registros están en el punto más alto de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden, generalmente, por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Por otro lado, un procesador puede tener registros de estos tres tipos:
-
• Registros de propósito general: son aquellos que pueden ser usados explícitamente por el programador mediante el lenguaje ensamblador.
-
• Registros de propósito específico: son los que su valor sólo puede modificarse mediante instrucciones específicas. En este grupo, se encuentra un registro llamado contador de programa (PC, Program Counter) cuya función es apuntar, en todo momento, a la siguiente instrucción a ejecutar.
Dentro de este grupo de registros también se encuentran otros como el registro de estado (almacena cierta información sobre las operaciones que tienen lugar en la ALU) y el registro de puntero de pila (contiene una dirección de memoria a partir de la cual se encuentran una serie de datos).
-
• Registros transparentes: son registros sobre los que el programador no puede ni actuar ni referenciar. Son utilizados internamente por el procesador. Entre ellos se encuentra un registro muy importante, el denominado registro de instrucción, que contiene la instrucción que se está ejecutando.
b) Unidad de Control La Unidad de control es el "cerebro del microprocesador". Es la encargada de activar o desactivar los diversos componentes del microprocesador en función de la instrucción que el microprocesador esté ejecutando y de la etapa de dicha instrucción en que se encuentre. La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las señales de control necesarias para ello. Existen dos tipos de diseños para construir una Unidad de Control:
-
• Unidad de control cableada: se construye, en su mayor parte, mediante puertas lógicas. Una puerta lógica es un pequeño circuito electrónico que se comporta como alguna de las operaciones lógicas vistas en el tema anterior, con la diferencia de que los valores verdadero y falso son ahora señales eléctricas con tensión alta o baja. El conjunto de puertas lógicas actuará en función del tipo de instrucción leída.
-
• Unidad de control microprogramada: está formada por puertas lógicas y por una memoria que almacena, para cada instrucción, qué señales de control internas se deben activar y desactivar en cada instante con el fin de realizar la función de dicha instrucción. La información referente a la señales de control se almacena en esa memoria mediante secuencias de unos y ceros.
A cada palabra de esta memoria formada por unos y ceros se le denomina microinstrucción, la cual define uno de los pasos por los que está compuesta una instrucción. Cada bit de ésta se referirá a una señal interna específica de la unidad de control. Al conjunto ordenado de microinstrucciones necesarias para la ejecución de una se le denomina microprograma.
c) Unidad aritmético-lógica La Unidad Aritmético Lógica (UAL), o Arithmetic Logic Unit (ALU), es un circuito digital que calcula operaciones aritméticas (como suma, resta, etc.) y operaciones lógicas (como OR, NOT, XOR, etc.) entre dos números. Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual y comprobando si debe activar el pitido del temporizador, etc. Los circuitos electrónicos más complejos son los que están construidos dentro de los chips de microprocesadores modernos.
Por lo tanto, estos procesadores tienen en su interior una ALU más compleja y poderosa. De hecho, un microprocesador moderno (y los mainframes) pueden tener múltiples núcleos, cada uno con múltiples unidades de ejecución, cada una de ellas con múltiples ALU. La ilustración muestra un típico símbolo esquemático para una ALU:

componentes--a41d3c.png-
A y B son operandos.
-
R es la salida.
-
F es la entrada de la unidad de control.
-
D es un estado de la salida.
Imagen 21. Unidad Arimético-lógica.
d) Unidad de Coma Flotante Una Unidad de Punto Flotante o Unidad de Coma Flotante (Floating Point Unit, FPU) o, más comúnmente conocido como, coprocesador matemático, es un componente de la CPU especializado en el cálculo de operaciones en coma flotante. Las operaciones básicas que toda FPU puede realizar son las aritméticas (suma y multiplicación), si bien algunos sistemas más complejos son capaces también de realizar cálculos trigonométricos o exponenciales.
No todas las CPUs tienen una FPU dedicada. En ausencia de FPU, la CPU puede utilizar programas en microcódigo para emular una función en coma flotante a través de la unidad aritmético-lógica (ALU), la cual reduce el coste del hardware a cambio de una sensible pérdida de velocidad.
En algunas arquitecturas, las operaciones en coma flotante se tratan de forma completamente distinta a las operaciones enteras, con registros dedicados y tiempo de ciclo diferentes. Incluso para operaciones complejas, como la división, podrían tener un circuito dedicado a dicha operación.
e) Bus de control Generalmente, este bus interno es supervisado y controlado por el microprocesador debido a que es una vía de comunicación compartida por varios elementos del computador. Un bus tiene multitud de características, entre las cuales se destacan las siguientes:
-
• Ancho de banda: número máximo de elementos de información que se pueden transmitir por unidad de tiempo (por ejemplo, MB/s).
-
• Frecuencia: los buses también poseen una frecuencia de trabajo. Cuanto mayor sea esta frecuencia más cantidad de información por unidad de tiempo será capaz de transmitir.
-
• Grado de paralelismo: indica cuántas unidades de información, usualmente bits, es capaz de transmitir el bus simultáneamente. Aquí se encuentran los buses de tipo serie que sólo pueden transmitir bit a bit, y los buses paralelos que son capaces de transmitir n bits en un determinado instante. A esta característica también se denomina ancho de bus.
-
• Función: el bus puede ser de uso general o tener una función específica, como utilizarse solamente para la transmisión de datos, direcciones o información de control.
-
• Longitud: dependiendo del ámbito de aplicación del bus, éste deberá tener una longitud máxima establecida.
-
• Físicas y eléctricas: el bus, al estar fabricado con alguno de los materiales conductores, tendrá unas propiedades eléctricas determinadas.
Funcionamiento#
El microprocesador ejecuta instrucciones almacenadas como números binarios en la memoria principal. La ejecución de las instrucciones se puede realizar en varias fases:
-
• PreFetch, Pre lectura de la instrucción desde la memoria principal.
-
• Fetch, ordenamiento de los datos necesarios para la realización de la operación.
-
• Decodificación de la instrucción, es decir, determinar qué instrucción es y por tanto qué se debe hacer.
-
• Ejecución.
-
• Escritura de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de supersegmentación. La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal.
El microprocesador dispone de un oscilador de cuarzo capaz de producir pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo. Velocidad Actualmente se habla de frecuencias de Gigahercios (GHz), o de Megahercios (MHz). Lo que supone miles de millones o millones, respectivamente, de ciclos por segundo.
El indicador de la frecuencia de un microprocesador es un buen referente de la velocidad de proceso del mismo, pero no el único. La cantidad de instrucciones necesarias para llevar a cabo una tarea concreta, así como la cantidad de instrucciones ejecutadas por ciclo ICP (Instructions per cycle), son los otros dos factores que determinan la velocidad de la CPU.
La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones disponible, mientras que ICP depende de varios factores, como el grado de supersegmentación y la cantidad de unidades de proceso o "pipelines" disponibles, entre otros.
La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones. Bus de datos Los modelos de la familia x86 (a partir del 386) trabajan con datos de 32 bits, al igual que muchos otros modelos en la actualidad. Pero los microprocesadores de las tarjetas gráficas, que tienen un mayor volumen de procesamiento por segundo, se ven obligados a aumentar este tamaño, y así hoy en día, existen microprocesadores gráficos que trabajan con datos de 128, 256, 384 y 512 bits.
Estos dos tipos de microprocesadores no son comparables, ya que ni su juego de instrucciones ni su tamaño de datos son parecidos y, por tanto, el rendimiento de ambos no es comparable en el mismo ámbito. La arquitectura x86 se ha ido ampliando a lo largo del tiempo a través de conjuntos de operaciones especializadas denominadas "extensiones", las cuales han permitido mejoras en el procesamiento de tipos de información específica.
Este es el caso de las extensiones MMX y SSE de Intel, y sus contrapartes, las extensiones 3DNow! de AMD. A partir de 2003, el procesamiento de 64 bits fue incorporado en los procesadores de arquitectura x86 (x86-64) a través de la extensión AMD64 y, posteriormente, con la extensión EM64T (Intel 64) en los procesadores AMD e Intel respectivamente.
Arquitecturas de procesador RISC y CISC#
El procesador es todo un complejo universo en sí mismo y, aunque los primeros modelos eran comparativamente muy similares, con su evolución se han ido desarrollando distintos diseños que han afectado a numerosos elementos siendo de destacar las diferentes tendencias desarrolladas asociadas al juego de instrucciones que empleaban.
Podemos decir que frente a esta cuestión caben dos filosofías de diseño: las denominadas arquitecturas CISC y RISC. La arquitectura CISC (complex instruction set computer), que ya se daba en los primeros diseños de UCP, se caracterizaba por disponer de un grupo amplio de instrucciones complejas y potentes.
El ordenador era más potente a medida que era más amplio su repertorio de instrucciones. Toman como principio la microprogramación, que significa que cada instrucción de máquina es interpretada, empleando un microprograma localizado en una memoria en el circuito integrado del procesador.
Las instrucciones compuestas son codificadas internamente y ejecutadas con una serie de microinstrucciones que se almacenan en una memoria de control. Esto era efectivo y muy práctico porque al principio la memoria principal era más lenta que la UCP y el tiempo de una instrucción podía ser de varios ciclos de reloj ya que cuando una
instrucción era procesada en un único ciclo de reloj, no se podía continuar con la siguiente instrucción inmediatamente ya que todavía no estaba lista (al ser la memoria principal mucho más lenta que la de control). Buscando aumentar la velocidad de procesamiento se descubrió que con una determinada arquitectura, la ejecución de programas compilados directamente con microinstrucciones estando residentes en memoria externa al circuito resultaba más eficiente.
A finales de los setenta, al aumentar las prestaciones de la memoria principal la consecuencia inmediata fue que ya no tenía que esperar la UC a ésta, lo que permitió trabajar con instrucciones mucho más simples que se completasen en un ciclo de reloj y acelerando la ejecución de instrucciones.
Esta arquitectura es conocida como RISC (reduced instruction set computer) y está formada por un juego de instrucciones lo más reducido posible, la mayoría completadas en un ciclo de reloj. Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar por hardware directamente en la CPU, lo que elimina el microcódigo y la necesidad de decodificar instrucciones complejas.

arquitecturas-de-procesador-risc-y-cisc--490316.pngFigura 22. Arquitecturas RISC y CISC.
Para ejecutar una tarea se necesitan más instrucciones en RISC que en CISC, ya que en RISC las instrucciones son más elementales. Pero el hecho de disponer hoy de memorias tan rápidas y buses de alta velocidad hace que existan diversos mecanismos como el llamado pipeline , para que se lleguen incluso a solapar varias instrucciones en un mismo ciclo.
Realmente las diferencias son cada vez más borroras entre las arquitecturas CISC y RISC. Las CPU actuales combinan elementos de ambas y no son fáciles de encasillar ya que desde hace tiempo se ha empezado a investigar sobre microprocesadores “híbridos”, con el propósito de obtener ventajas procedentes de ambas tecnologías.
Los procesadores ARM, muy utilizados en Smartphones y pequeños dispositivos (IoT), utilizan la Tecnología RISC.
Segmentación de instrucciones#
La segmentación de instrucciones es una técnica que permite implementar el paralelismo a nivel de instrucción en un único procesador. La segmentación intenta tener ocupadas con instrucciones todas las partes del procesador dividiendo las instrucciones en una serie de pasos secuenciales que efectuarán distintas unidades de la CPU, tratando en paralelo diferentes partes de las instrucciones. Permite una mayor tasa de transferencia efectiva por
parte de la CPU que la que sería posible a una determinada frecuencia de reloj, pero puede aumentar la latencia debido al trabajo adicional que supone el propio proceso de la segmentación. Los modernos microprocesadores que incluyen segmentación utilizan ejecución especulativa* para reducir el coste de las instrucciones que dependen de la predicción de saltos, y lo hacen mediante técnicas que predicen la ruta de ejecución de un programa basándose en el historial de los saltos realizados anteriormente.
Con el fin de mejorar el rendimiento y optimizar la utilización de los recursos del sistema informático, las instrucciones pueden planificarse cuando todavía no se ha determinado si será o no necesario ejecutarlas, antes de un salto.
*Ejecución especulativa: es una forma de optimización en la que un sistema informático realiza una tarea que podría no ser necesaria; la idea consiste en llevar a cabo un trabajo antes de saber si será realmente necesario con la intención de evitar el retraso que supondría realizarlo después de saber que sí es necesario.
Si el trabajo en cuestión resulta ser innecesario, la mayoría de los cambios realizados por ese trabajo se revierten y los resultados se ignoran. El objetivo de esta técnica es proporcionar una mayor concurrencia en caso de disponer de más recursos.
Vulnerabilidades de seguridad#
Meltdown y Spectre.
Microprocesador (resumen)#
La Unidad Central de Proceso (CPU), también denominada procesador, es el elemento encargado del control y ejecución de las operaciones que se efectúan dentro del ordenador con el fin de realizar el tratamiento automático de la información. El procesador es la parte fundamental del ordenador; se encarga de controlar todas las tareas y procesos que se realizan dentro del él. Está formado por la unidad de control (UC), la unidad aritmético-lógica (ALU) y
su propia memoria interna, integrada en él. El procesado es la parte que gobierna el ordenador Para que el procesador pueda trabajar necesita utilizar la memoria principal o central del ordenador. En la mayoría de los casos también será necesario la intervención de la unidad de entrada-salida y los periféricos de entrada-salida. El procesador gestiona lo que recibe y envía la memoria desde y hacia los periféricos mediante la unidad de entrada salida, los buses y los controladores del sistema.

microprocesador-resumen--18200d.pngComponentes de la CPU:
-
• UC: es la parte pensante del ordenador, es la que se encarga del gobierno y funcionamiento del ordenador. La tarea fundamental de la UC es recibir información para interpretarla y procesarla después mediante las órdenes que envía a los otros componentes del ordenador. Se encarga de traer a la memoria interna o central del ordenador (memoria RAM) las instrucciones necesarias para la ejecución de los programas y el procesamiento de los datos.
Estas instrucciones y datos se extraen, normalmente, de los soportes de almacenamiento externo. Ademas, la UC interpreta y ejecuta las instrucciones en el orden adecuado para que cada una de ellas se procese en el debido instante y de forma correcta. Para realizar todas estas operaciones, la UC dispone de pequeños espacios de almacenamiento, denominados registros.
Además de los registros, tiene otros componentes. Todos ellos se detallan a continuación: o Registro de instrucción: Contiene la instrucción que se está ejecutando. Consta de diferentes campos:
-
▪ CO: Código de la operación que se va a realizar.
-
▪ MD: Modo de direccionamiento de la memoria para acceder a la información que se va a procesar.
-
▪ CDE: Campo de dirección efectiva de la información.
o Registro contador de programas: Contiene la dirección de memoria de la siguiente instrucción a ejecutar.
o Controlador y decodificador: Controla el flujo de instrucciones de la CPU e interpreta la instrucción para su posterior procesamiento. Se encarga de extraer el código de operación de la instrucción en curso.
o Secuenciador: Genera las microórdenes para ejecutar la instrucción
o Reloj: Proporciona una sucesión de impulsos eléctricos a intervalos constantes.

microprocesador-resumen--87ceab.png• ALU: es la parte de la CPU encargada de realizar las operaciones de tipo aritmético (suma, multiplicación, etc.), así como las de tipo lógico (comparación, etc.). Algunas de estas operaciones se detallan en la siguiente tabla: Operación
Operador
Mayor que
>
Menor que
<
Mayor o igual
>=
No mayor
NOT > (<>)
Y lógico
AND
O lógico
OR
Los elementos que componen la ALU son los que se indican a continuación:
o Circuito combinacional u operacional. Realiza las operaciones con los datos de los registros de entrada o Registros de entrada. Contienen los operandos de la operación. o Registro acumulador. Almacena los resultados de las operaciones. o Registro de estado. Registra las condiciones de la operación anterior.

microprocesador-resumen--a88f8b.png