Actualizado a: 22 de enero de 2024
El microprocesador es la parte más importante de un computador, ya que es la que se encarga de procesar toda la información y los programas, así como de comandar otras partes como la GPU, la memoria RAM a través del direccionamiento, o el sistema de E/S. Sin embargo, pocos conocen realmente lo que es este elemento. Por eso en este artículo vamos a aprender más sobre este componente tan importante.
CPU (Control Processing Unit), procesador o microprocesador son sinónimos. Cada vez que nos refiramos a esos términos estaremos señalando al mismo componente. No comentas el error de denominar CPU a toda la caja o torre del PC, puesto que ahí dentro hay algo más que la CPU…
Computadoras everywhere
Muchas personas usan una computadora o PC, ya sea de sobremesa, AIO o portátil. Sin embargo, olvidan que el término computadora se refiere a todo aquello que cuenta con una CPU, una memoria, y un sistema de E/S o de entrada y salida. Por tanto, bajo esa definición también tenemos una computadora en los dispositivos móviles, como tablets y smartphones, en muchos electrodomésticos, aparatos IoT, Smart TVs, en los vehículos, etc. Por ejemplo, un router es también un computador, ya que tiene una CPU, una memoria y un sistema de E/S, e incluso un sistema operativo embebido, solo que en este caso está dedicado a gestionar el tráfico de red.
Además, es importante señalar otra cosa y es que los microcontroladores (también denominados MCU o MicroController Unit) también integran una CPU en su interior. Es decir, son chips que tienen dentro la memoria RAM, la ROM, la CPU, y otros controladores de E/S. En este sentido, también vas a encontrar microprocesadores en otros muchos productos, como la maquinaria industrial, etc.
Lo que quiero decir con esto es que hay microprocesadores por todos lados, ya sean en tu vehículo, en los electrodomésticos que usas en casa, o en los equipos de la oficina donde trabajas… Son una parte indispensable para el funcionamiento de los sistemas digitales.
Existen microprocesadores analógicos también, aunque esto es otro tema y no están tan extendidos como los digitales, por lo que en este artículo nos centraremos solo en los digitales.
Para finalizar, también me gustaría señalar otro dato importante para entender los microprocesadores y es el hecho de la necesidad del control programado. Cuando hablamos de electrónica nos podemos encontrar dos grandes variantes. Por un lado está la electrónica cableada y por otra la programada:
- La cableada es una circuitería hecha expresamente para cumplir una función. No puede hacer otra cosa más que esa. Si se quisiera hacer otra cosa habría que diseñar otro circuito totalmente diferente.
- En cambio, la programada es mucho más versátil y flexible en ese sentido, ya que al incorporar memoria, se puede guardar instrucciones que pueden ser procesadas por la CPU para hacer multitud de cosas. Por ejemplo, cuando estás navegando por la red, o escribiendo un documento de texto, o jugando a un videojuego, no necesitas un hardware diferente para cada cosa, sino que gracias al software almacenado en esas memorias y a cómo la CPU lo ejecuta se puede hacer todo con un mismo equipo. Es ahí donde radica el potencial de la CPU.
¿Qué es un microprocesador?
El microprocesador es la unidad central de un sistema informático que realiza operaciones aritméticas y lógicas, que generalmente incluyen sumar, restar, transferir números de un área a otra, comparar dos números, etc. A menudo se lo conoce simplemente como procesador, o unidad central de procesamiento (CPU). Es esencialmente el motor o el cerebro de la computadora que se pone en movimiento cuando se enciende el sistema e irá extrayendo instrucciones y datos desde la memoria para ejecutarlos en sus unidades de procesamiento y así hacer que se ejecuten los programas.
Antiguamente la CPU o microprocesador no estaba integrada en un solo chip como en la actualidad, sino que estaba separada en distintos circuitos o PCBs y con la llegada del chip se pudo empezar a integrar en un conjunto de chips hasta terminar en un solo chip. En los últimos tiempos hemos visto que la tendencia va en contra de esto, ya que la complejidad de los chips monolíticos está impulsando a muchas empresas a usar modelos chiplets (o MCM) y 3D packaging apilando varios chips.
¿Cómo funciona un microprocesador?
Un microprocesador acepta datos binarios como entrada (que son de dos tipos: datos e instrucciones). Según la instrucción, así operará sobre los datos. Luego proporciona un resultado a su salida y se almacena en la memoria. Es decir, cuando arrancas tu PC, se ejecutarán unas rutinas esenciales para el sistema BIOS/UEFI y luego se cargará primero el kernel del sistema operativo en la memoria RAM y desde ahí se irán ejecutando sus instrucciones y datos para mantener el proceso. Luego también se irán cargando otros procesos necesarios, como los diferentes programas que uses.
Los datos se procesan utilizando la ALU (unidad aritmética y lógica) del microprocesador, la unidad de control y una matriz de registros. La matriz de registros procesa los datos a través de una serie de registros que actúan como ubicaciones temporales de memoria de acceso rápido. La unidad de control gestiona el flujo de instrucciones y datos a través del sistema.
Beneficios de un microprocesador
Aquí hay algunas razones por las que los microprocesadores son tan ampliamente utilizados:
- Son baratos: como se usan chips o circuitos integrados, su producción es barata. No obstante, los microprocesadores más complejos suelen ser caros.
- Son rápidos: el avance de la tecnología ha conseguido que estas unidades de procesamiento sean altamente eficientes y rápidas.
- Consumen poca energía: a pesar de que la lógica cableada es más eficiente y rinde más que la programada, lo cierto es que se ha llegado a un nivel muy alto de eficiencia energética en los últimos chips.
- Pequeños: se pueden integrar en multitud de equipos diferentes, incluso embebidos, dado que su tamaño es pequeño.
- Son confiables: debido a que la tecnología de semiconductores se utiliza en la producción de microprocesadores, su tasa de fallas es extremadamente baja.
- Son versátiles: el mismo chip de microprocesador se puede usar para numerosas aplicaciones solo con cambiar la programación, lo que lo hace increíblemente versátil frente a la lógica cableada, como he mencionado anteriormente.
Las CPU solían ser enormes en la antigüedad. No fue hasta la década de 1960 que los diseñadores intentaron integrar las funciones de una CPU en unidades de microprocesador. Fue el desarrollo exitoso del microprocesador lo que condujo a la a la computadora doméstica que hoy todos usamos o a que estén por todas partes como antes he dicho.
Los microprocesadores de uso general son los que permiten que nuestras computadoras se utilicen para la edición de texto, visualización multimedia, computación y comunicación a través de Internet. Debido a lo rápidos, pequeños y energéticamente eficientes que son, han sido parte integral del desarrollo de la tecnología cotidiana, incluidos los electrodomésticos, los teléfonos inteligentes y más. Es decir, el microprocesador cambió al mundo como también lo hizo la invención del transistor o del chip…
Términos comunes utilizados
Cuando se trata de hablar sobre microprocesadores, es probable que encuentres una serie de términos con los que quizás no estés familiarizado. Los siguientes son algunos términos comunes relacionados con los microprocesadores:
- Longitud de palabra: se trata de la cantidad de bits que puede llevar el bus de datos interno del microprocesador y que determinará la cantidad de bits que puede procesar a la vez. Por ejemplo, un microprocesador de 8-bit puede operar con datos de esa longitud, sin embargo, un procesador de 64-bit puede trabajar con datos de 64 bits. No obstante, esto no es siempre así, como ya expliqué en otro artículo…
- ISA: es el conjunto de instrucciones, definición de tipos de datos que puede manejar la CPU y los registros. Son las siglas de Instruction Set Architecture. Por ejemplo, tenemos ISAs como RISC-V, POWER, SPARC, ARM, AMD64, IA-64, etc. Esto determinará la compatibilidad, ya que un binario de software compilado para una de estas arquitecturas no será compatible con otra, ya que usan un «lenguaje» diferente y no lo entenderá el microprocesador. La ISA, por tanto, es la que define el tipo de datos que la CPU acepta, sus registros necesarios y las instrucciones que puede ejecutar (por ejemplo de transferencia, aritméticas, lógicas, de control, o de E/S). Por ejemplo, si has visto alguna vez un código fuente en ensamblador, habrás visto que hay datos y también instrucciones como ADD, SUB, MUL, DIV, etc., pues todo eso es lo que se define en la ISA.
- Frecuencia de reloj: se trata de la velocidad a la que el microprocesador trabaja, es decir, el reloj marcará la cantidad de pasos u operaciones que un procesador puede hacer en cada segundo. Se mide en hercios, concretamente usando los múltiplos Megahercios (Mhz) o Gigahercios (Ghz). Por ejemplo, un procesador que trabaja a 1 Ghz quiere decir que puede realizar 1.000.000.000 operaciones por segundo.
- Bus: es el término empleado para describir a una serie de conductores por los que se transmite información. Puede haber diferentes buses, con formas de trabajar diferentes, con ancho de banda diferente, o que transportan información diferente. Por ejemplo, en una CPU nos podemos encontrar el bus de datos, el bus de direcciones, o el bus de control que luego analizaremos con más detalle.
Categorías de Microprocesadores
Los microprocesadores se pueden clasificar en diferentes categorías según diferentes criterios. Existen muchas formas de hacerlo, aunque aquí expresaré solo las más básicas y elementales que debes conocer:
- Basado en la longitud de la palabra: como he dicho anteriormente, según la longitud de palabra que manejen, los microprocesadores se pueden catalogar de esta forma. Por ejemplo, puede haber microprocesadores de 8-bit, de 16-bit, de 32-bit, y de 64-bit. Esto afectará también al software que ejecuta, ya que deberá ser para esa arquitectura concreta. No obstante, algunos microprocesadores mantienen retrocompatibilidad, por lo que pueden ejecutar software de tamaños de palabra anteriores.
- RISC vs CISC: son términos que se refieren a la complejidad de las instrucciones que manejan. Por un lado están los Reduced Instruction Set Computer y por otro lado están los Complex Instruction Set Computer.
- Los microprocesadores RISC son de uso más general y tienen unas instrucciones que tienen un tamaño reducido y no tan numerosas en su ISA como en el caso de las CISC. Al ser más sencillas, estos procesadores pueden ejecutar instrucciones de forma más rápida. Un ejemplo de este tipo de arquitectura son SPARC, ARM, POWER, RISC-V, etc.
- Los microprocesadores CISC tienen un conjunto de instrucciones mucho más numeroso, además de tener longitudes de direcciones más grandes, más modos de direccionamiento posibles, etc. En definitiva, son más complejas. Esto puede hacer que en una misma instrucción ejecutada se pueda realizar el mismo trabajo que en varias RISC, pero estos procesadores son más complejos a nivel de hardware y no son tan rápidos. Por eso, algunas ISAs CISC, como es el caso de x86 de Intel o AMD, ahora funcionan internamente como una RISC, traduciendo las instrucciones CISC a microoperaciones más simples. No obstante, sigue habiendo microprocesadores puramente CISC, como los IBM Z para mainframes.
- Propósito general vs propósito específico: algunos microprocesadores están construidos para realizar funciones específicas. Por ejemplo, los coprocesadores (solo ejecuta ciertas operaciones matemáticas) se utilizan en combinación con un procesador principal, mientras que otros pueden usarse para propósito general, como es el caso de la CPU de un PC.
Partes del microprocesador y conceptos
El microprocesador es el cerebro de la computadora, como ya he dicho. Aunque anteriormente había otros procesadores construidos en PCBs o en chipsets, uno de los primeros microprocesadores comerciales vino a principios de 1970 de la mano de Intel. Fue su 4004, un microprocesador de propósito general de 4-bit de longitud de palabra y que supuso toda una revolución. En principio fue usado para calculadoras. Luego se vio su potencial más allá de eso y futuros microprocesadores comenzaron a dar forma a la informática actual.
En comparación con los primeros microprocesadores, los procesadores actuales son muy complejos, pero aún tienen estas partes básicas desde el primer modelo. Aquí intentaré de describir las partes fundamentales, sin entrar en detalles de otras unidades funcionales o partes que puedan tener los procesadores actuales, ya que es algo bastante complejo:
- Unidad de control
- Bus
- ALU/FPU (unidades de ejecución)
- Memoria caché
Unidad de control
La CPU se crea con una parte fundamental llamada unidad de control, se trata del Front-End del microprocesador, por donde entran las instrucciones y los datos. En esta unidad de control se realizarán tareas como la decodificación de la instrucción. Es decir, al llegar la instrucción será descifrada y la unidad de control generará una serie de señales de control en función de la instrucción para que el resto de unidades funcionales se pongan a trabajar para ejecutarla correctamente. Por ejemplo, imagina que es una instrucción MUL, pues la unidad de control enviará las señales de control a la ALU para que se multipliquen los datos y se obtenga el resultado.
También tendremos en esta parte el registro de instrucciones, donde se almacena la instrucción que se va a ejecutar. Además del registro PC o Program Control. Ese registro es muy importante, ya que apunta a la dirección de la siguiente instrucción (+1) del programa que se está ejecutando para que así se ejecuten en serie todas las instrucciones que lo componen.
Dentro de la unidad de control también tenemos una memoria ROM donde se almacena el microcódigo. Un firmware para la CPU que se puede actualizar como ya sabrás. Este microcódigo es el que se encarga de interpretar las instrucciones que van llegando.
Por otro lado, también habrá una unidad fetch o de búsqueda, que será la encargada de buscar la siguiente instrucción para traerla a la CPU. Esta unidad buscará primero en la memoria caché L1 de instrucciones, si no está allí buscará en la L2, y si no lo está en la L3 y si tampoco la encuentra irá a la RAM. Es decir, comienza desde la memoria con menor latencia o más rápida.
Unidades de ejecución
También podemos hablar del Back-end de la CPU, es decir, las unidades de ejecución. Se trata de la ALU (Arithmetic Logic Unit) o de la FPU (Floating Point Unit) que se encargan de realizar los cálculos matemáticos de enteros y de coma flotante respectivamente. Por supuesto, también puede haber otras unidades funcionales diferentes.
Aquí es donde llegarán las señales de control de la unidad de control y los datos para que sean ejecutados conforme a la instrucción. Por ejemplo, si es una instrucción ADD o suma, la unidad de control habrá enviado las señales de control a la ALU para que ésta use los datos de los registros y los sume. Así es como el software funciona, todo se basa en algoritmos y matemáticas…
Bus
Las líneas de conexión utilizadas para conectar las partes internas del chip del microprocesador se denominan bus. Hay tres tipos de buses en un microprocesador:
- Bus de datos: las líneas que transportan datos hacia y desde la memoria se denominan bus de datos. Es un bus bidireccional con ancho igual a la longitud de palabra del microprocesador. Por supuesto, este bus también puede transportar las instrucciones.
- Bus de direcciones: es unidireccional responsable de llevar la dirección de una ubicación de memoria o puerto de E/S desde la CPU a la memoria o puerto de E/S.
- Bus de control: las líneas que transportan señales de control como señales de reloj, señal de interrupción o señal de listo, etc. Son bidireccionales. Es decir, se encargan de toda la señalización para controlar las distintas partes.
Por supuesto, en la actualidad, con los sistemas multinúcleo, chiplets, etc., también se han creado otros buses o mallas para interconectar los diferentes elementos, pero esto es otro tema.
Memoria
El microprocesador tiene tres tipos de memoria:
- Memoria caché: es un tipo de memoria SRAM muy rápida que se integra dentro de la CPU o cerca de ella. Antiguamente se integraba en módulos similares a los de la RAM actual, luego se comenzó a integrar on-package o dentro del mismo empaquetado de la CPU y más tarde on-chip, es decir, dentro del propio chip de la CPU. Al estar tan cerca de las unidades funcionales y ser tan rápida, la latencia de acceso es muy baja, por lo que cuesta pocos ciclos de reloj acceder a ella. Es una forma de interponer una memoria entre la CPU y la RAM, ya que para acceder a la RAM se tardan más ciclos de reloj. Como sabes, suele haber varios niveles de memoria caché, cada una más grande y más lenta que la anterior. Por ejemplo, la memoria L1 es la más rápida, pero la que menor capacidad tiene. Además, suele estar dividida en una parte para datos y en otra parte para instrucciones. Luego está la L2, algo más grande y más lenta que la L1, y que está unificada para datos e instrucciones sin distinción. Y después estaría la L3 en algunos casos puede haber más niveles…
- Registros: son memorias muy rápidas y pequeñas. Son aún más pequeñas que la memoria caché, y se encuentran junto a las diferentes unidades funcionales de la CPU para un acceso rapidísimo. Puede haber registros de propósito general o de propósito específico, como los registros de control, los registros para almacenar flags, los registros PC, los registros de instrucciones, etc.
- ROM: la memoria de solo lectura es una memoria no volátil cuyos datos permanecen intactos incluso después de apagar la alimentación. El microprocesador puede leerlo en cualquier momento que lo desee, pero no puede escribir en él. Está preprogramado por el fabricante con la mayoría de los datos esenciales, como la interpretación de las instrucciones del set.