Hoy nos disponemos a ver un poco de hardware. Nuestro equipo está formado por gran cantidad de componentes electrónicos que en su conjunto son capaces de almacena y procesar datos. El procesador, CPU o unidad central de procesamiento es su componente principal. Vamos a hablar de que es un procesador, cuáles son sus componentes y cómo funciona este en forma detallada.
¿Preparado? ¡Comenzamos!
Índice de contenidos
¿Que es un procesador?
Lo primero que tendremos que definir es qué es un microprocesador para saber todo lo demás. El microprocesador es el cerebro de un ordenador o computadora, está compuesto por un circuito integrado encapsulado en un chip de silicio que lo componen millones de transistores. Su función es procesar los datos, controlar el funcionamiento de todos los dispositivos del ordenador, al menos de gran parte de ellos y lo más importante: se encarga de realizar las operaciones lógicas y matemáticas.
Si nos damos cuenta, todos los datos que circular por nuestra máquina son impulsos eléctricos, compuestos por señales de unos y ceros llamados bits. Cada una de estas señales se agrupan en un conjunto de bits que forman las instrucciones y los programas. El microprocesador es el encargado de dar sentido a todo esto realizando operaciones básicas: SUMA, RESTA, AND, OR, MUL, DIV, OPUESTO E INVERSO. Entonces tenemos que el microprocesador:
- Decodifica y ejecuta las instrucciones de los programas cargados en la memoria principal del ordenador.
- Coordina y controla todos los componentes que forman el ordenados y los periféricos que están conectados a este, mouse, teclado, impresora, pantalla, etc.
Los procesadores suelen ser actualmente de forma cuadrada o rectangular y se encuentran colocados sobre un elemento llamado zócalo fijado a la placa base. Esta se encargará de distribuir los datos entre el procesador y el resto de elementos conectados a ella.
Arquitectura de una computadora
En las siguientes secciones veremos todo la arquitectura de un procesador.
Arquitectura de Von Neumann
Desde la invención de los microprocesadores hasta día de hoy estos están basados en una arquitectura que divide el procesador en varios elementos que luego veremos. Esta recibe el nombre de arquitectura de Von Neumann. Es una arquitectura inventada en 1945 por el matemático Von Neumann que describe el diseño de un computador digital dividido en una serie de partes o elementos.
Los procesadores actuales aún están basados en su gran mayoría en esta arquitectura básica, aunque lógicamente se han introducido gran cantidad de elementos nuevos hasta contar con los extremadamente completos elementos que hoy día tenemos. Posibilidad de múltiples números en un mismo chip, elementos de memoria en varios niveles, procesador de gráficos incorporado, etc.
Partes internas de una computadora
Las partes básicas de una computadora según esta arquitectura son las siguientes:
- Memoria: es el elemento en donde se guardan las instrucciones que ejecuta el computador y los datos sobre los que operan las instrucciones. Estas instrucciones reciben el nombre de programa.
- Unidad Central de Proceso o CPU: es el elemento que ya hemos definido anteriormente. Es el encargado de procesar las instrucciones que le llegan de la memoria
- Unidad de entrada y salida: permite la comunicación con los elementos del exterior.
- Buses de datos: son las pistas, vías o cables que conectan físicamente los elementos anteriores.
Elementos de un microprocesador
Una vez definidas las partes principales de una computadora y habiendo entendido como circula la información por ella.
- Unidad de control (UC): es el elemento que se encarga de impartir las órdenes mediante las señales de control, por ejemplo, el reloj. Busca las instrucciones en la memoria principal y las pasa al decodificador de instrucciones para que se ejecuten. Partes internas:
- Reloj: genera una onda cuadrada para sincronizar las operaciones del procesador
- Contador de programa: contiene la dirección de memoria de la siguiente instrucción que se va a ejecutar
- Registro de instrucciones: contiene la instrucción que se está ejecutando actualmente
- Secuenciador: genera ordenes elementales para el procesamiento de la instrucción.
- Decodificador de instrucciones (DI): se encarga de interpretar y ejecutar las instrucciones que llegan, extrayendo el código de operación de la instrucción.
- Unidad aritmético lógica (ALU): se encarga de hacer los cálculos aritméticos (SUMA, RESTA, MULTIPLICACION, DIVISION) y operaciones lógicas (AND, OR, …). Partes internas.
- Circuito operacional: contienen los multiplexores y circuitos para hacer operaciones.
- Registros de entrada: se almacenan los datos y operado antes de entrar al circuito operacional
- Acumulador: almacena los resultados de las operaciones realizadas
- Registro de estado (Flag): almacena ciertas condiciones que deben ser tenidas en cuenta en operaciones posteriores.
- Unidad de coma flotante (FPU): este elemento no estaba en el diseño original de la arquitectura, posteriormente fue introducido cuando las instrucciones y cálculos se hicieron más complejos con la aparición de los programas representados gráficamente. Esta unidad se encarga de realizar las operaciones en coma flotante, es decir, números reales.
- Banco de registros y la memoria caché (Cache): los procesadores actuales cuentan con una memoria volátil que hace de puente desde la memoria RAM hasta la CPU. Esta es mucho más rápida que la memoria RAM y se encarga de acelerar los accesos del microprocesador a la memoria principal.
- Bus frontal (Front Side Bus, FSB): También se conoce como bus de datos, bus principal o bus de sistema. Es la vía o canal que comunica el microprocesador con la placa base, concretamente con el chip llamado puente norte o nothbridge. Este se encarga de controlar el funcionamiento del bus principal de la CPU, la RAM y los puertos d expansión como son los PCI-Express.Los términos utilizados para definir a este bus son “Quick Path Interconnect” para Intel y “Hypertransport” para AMD
- Bus trasero (Back Side BUS, BSB): este bus comunica la memoria cache de nivel 2 (L2) con el procesador, siempre y cuando esta no esté integrada en el propio núcleo de la CPU. En la actualidad todos los microprocesadores disponen de memoria cache integrada en el propio chip, por lo que este bus también forma parte del mismo chip.
Microprocesador de dos o más núcleos
En un mismo procesador no solamente tendremos estos elementos distribuidos en su interior, sino que además ahora se encuentran replicados. Dispondremos de varios núcleos de procesamiento o lo que es lo mismo varios microprocesadores dentro de la unidad. Cada uno de estos contará con su propia memoria caché L1 y L2, normalmente la L3 se reparte entre ellos, a pares o en conjunto.
Además de esto contaremos con una ALU, UC, DI y FPU para cada uno de los núcleos por lo que la velocidad y capacidad de procesamiento se multiplican en función de la cantidad de núcleos que tenga. También aparecen nuevos elementos dentro de los microprocesadores:
- Controlador de memoria integrado (IMC): Ahora con la aparición de varios núcleos el procesador cuenta con un sistema que le permite acceder directamente a la memoria principal.
- GPU integrada (iGP): la GPU se encarga del procesamiento de gráficos. Estos son en su mayoría operaciones de coma flotante con cadenas de bits de gran densidad, por lo que el procesamiento es mucho más complejo que los datos de programa normales. Debido a esto, existen gamas de microprocesador que implementan en su interior una unidad exclusivamente destinada al procesamiento de gráficos.
Algunos procesadores, como los AMD Ryzen, no integran tarjeta gráfica interna. Sólo sus APU 😉
Funcionamiento de un microprocesador
Un procesador funciona mediante instrucciones, cada una de estas instrucciones es un código binario de una determinada extensión que la CPU es capaz de entender.
Un programa, por tanto, es un conjunto de instrucciones y para ejecutarlo se debe realizar de forma secuencial, esto es, ejecutando en cada paso o período de tiempo una de estas instrucciones. Para ejecutar una instrucción hay varias fases:
- Búsqueda d la instrucción: traemos la instrucción desde la memoria al procesador
- Decodificación de la instrucción: la instrucción se divide en códigos más simple entendibles por la CPU
- Búsqueda de operados: con la instrucción cargada en la CPU hay que buscar el operador que corresponder
- Ejecución de la instrucción: se realiza la operación lógica o aritmética necesaria
- Almacenamiento del resultado: el resultado se almacena en la memoria caché
Cada procesador trabaja con un determinado conjunto de instrucciones, estas han ido evolucionando a la vez que los procesadores. La denominación de x86 o x386 se refiere al conjunto de instrucciones con las que un procesador trabaja.
Tradicionalmente a los procesadores de 32 bits se las ha llamado también x86, esto se debe a que en esta arquitectura han trabajado con este conjunto de instrucciones desde el procesador Intel 80386 que fue el primero en implementar una arquitectura de 32 bits.
Este conjunto de instrucciones es necesario actualizarlo para trabajar más eficientemente y con programas más complejos. A veces vemos que en los requisitos para que un programa se ejecute vienen un conjunto de siglas como SSE, MMX, etc. Estas son el conjunto de instrucciones con las que un microprocesador puede lidiar. Así tenemos:
- SSE (Streaming SIMD Extensions): dotaron a las CPU para trabajar con operaciones en coma flotante.
- SSE2, SSE3, SSE4, SSE5, etc: distintas actualizaciones de este conjunto de instrucciones.
Incompatibilidad entre procesadores
Todos recordamos cunado un sistema operativo de Apple o se podía ejecutar en un PC con Windows o Linux. Esto es debido al tipo de instrucciones de los distintos procesadores. Apple usada procesadores PowerPC, que trabajaban con unas instrucciones distintas a Intel y AMD. De esta forma existen varios diseños de instrucciones:
- CISC (Complex Instruction Set Computer): es la que utilizan Intel y AMD, se trata de utilizar un conjunto de pocas instrucciones, pero complejas. Tienen mayor consumo de recursos, al ser instrucciones más completas que necesitan varios ciclos de reloj.
- RISC (Reduced Instruction Set Computer): es la que utilizaban Apple, Motorola, IBM y PowerPC, estos son procesadores más eficientes al contar con más instrucciones, pero de menor complejidad.
Actualmente ambos sistemas operativos son compatibles porque Intel y AMD implementan una combinación de arquitecturas en sus procesadores.
Proceso de ejecución de una instrucción
- El procesador se reinicia al recibir una señal de RESET, de esta forma se prepara el sistema recibiendo una señal de reloj que determinará la velocidad del proceso.
- En el registro CP (contador de programa) se carga la dirección de memoria en la que empieza el programa.
- La unidad de control (UC) emite la orden para traer la instrucción que la RAM tiene almacenada en la dirección de memoria que hay en el CP.
- A continuación, la RAM envía el dato y este se coloca en el bus de datos hasta que se almacena en el RI (Registro de instrucción).
- La UC gestiona el proceso y la instrucción pasa al decodificador (D) para hallar el significado de la instrucción. Seguidamente esta pasa por la UC para ser ejecutada
- Una vez que se sabe cuál es la instrucción y qué operación se debe realizar, se cargan ambas en los registros de entrada (REN) de la ALU.
- La ALU ejecuta la operación y coloca el resultado en el bus de datos y al CP se le suma 1 para ejecutar la siguiente instrucción.
Como saber si un procesador es bueno
Para saber si un microprocesador es bueno o malo debemos fijarnos en cada uno de sus componentes internos:
Anchura del bus
La anchura de un bus determina el tamaño de los registros que pueden circular por él. Esta anchura debe coincidir con el tamaño de los registros del procesador. De esta forma tenemos que la anchura que tiene el bus representa el registro más grande que este es capaz de transportar en una sola operación.
Directamente relacionado con el bus estará también la memoria RAM, este debe ser capaz de almacenar cada uno de estos registros con la anchura que estos tengan (esto se llama ancho de palabra de la memoria).
Lo que tenemos actualmente en cuando a ancho de bus es 32 bits o 64 bits, es decir, podremos transportar, almacena y procesar de forma simultánea cadenas de 32 o 64 bits. Con 32 bits teniendo cada uno la posibilidad de ser 0 o 1 podremos direccionar una cantidad de memoria de 232 (4GB) y con 64 bits 16 EB Exabytes. Esto no significa que tengamos 16 Exabytes de memoria en nuestro equipo, sino que representa la capacidad de dirección y utilizar una determinada cantidad de memoria. De aquí sale la famosa limitación de los sistemas de 32 bits de direccionar solamente 4 GB de memoria.
En definitiva, mientras más ancho de bus más capacidad de trabajo
Memoria caché
Estas memorias son mucho más pequeñas que la memoria RAM pero mucho más rápidas. Su función es almacenar las instrucciones que justamente se van a procesar o las últimas procesadas. Mientras más memoria caché, mayor será la velocidad de transacciones que la CPU pueda coger y soltar.
Aquí debemos de ser conscientes de que todo lo que llega al procesador provienen del disco duro, y este se puede decir que es tremendamente más lento que la memoria RAM y aún mucho más que la memoria caché. Es por este motivo por lo que se diseñaron estas memorias en estado sólido, para solución el gran cuello de botella que es el disco duro.
Y nos preguntaremos, porqué entonces no fabrican solamente memorias cachés de gran tamaño, la respuesta es simple, porque son muy caras.
Velocidad interna del procesador
La velocidad internet es casi siempre es lo más llamativo cuando miramos un procesador. “El procesador va a 3,2 GHz”, pero, ¿qué es esto? La velocidad es la frecuencia de reloj a la que trabajar el microprocesador. Cuanto mayor sea esta velocidad más cantidad de operaciones por unidad de tiempo será capaz de realizar. Esto se traduce en mayor rendimiento, por eso mismo existe la memoria caché, para acelerar la toma de datos por parte del procesador para hacer siempre el máximo de operaciones por unidad de tiempo.
Esta frecuencia de reloj viene dada por una señal de onda cuadrada periódica. El tiempo máximo para hacer una operación es de un período. El periodo es la inversa de la frecuencia.
Pero no todo es velocidad. Hay muchos componentes que influyen en la velocidad de un procesador. Si por ejemplo tenemos un procesador de 4 núcleos a 1,8 GHz y otro de un solo núcleo a 4,0 GHz, es seguro que el de cuatro núcleos es más rápido.
Velocidad del Bus
Al igual que es importante la velocidad del procesador, también es importante la velocidad del bus de datos. La placa base siempre trabaja a una frecuencia de reloj mucho menor que la del microprocesador, por este motivo vamos a necesitar un multiplicador que ajuste estas frecuencias.
Si por ejemplo tenemos una placa base con un bus a una frecuencia de reloj de 200 MHz un multiplicador de 10x alcanzará una frecuencia de CPU de 2 GHz.
Microarquitectura
La microarquitectura de un procesador determina la cantidad de transistores que hay por unidad de distancia en él. Esta unidad se mide actualmente en nm (nanómetros) mientras menor sea, mayor cantidad de transistores se podrá introducir, y, por tanto, mayor cantidad de elementos y circuitos integrados se podrán albergar.
Esto influye directamente en el consumo de energía, dispositivos más pequeños necesitará un menor flujo de electrones, por lo que menor será la cantidad de energía necesaria para hacer las mismas funciones que en una microarquitectura de mayor tamaño.
Refrigeración de componentes
Debido a la enorme velocidad que alcanza la CPU, el paso de corriente genera calor. A mayor frecuencia y voltaje habrá una mayor generación de calor, por ello es necesario refrigerar este componente. Existen diversas formas de hacer esto:
- Refrigeración pasiva: mediante disipadores metálicos (cobre o aluminio) que incrementan la superficie de contacto con el aire mediante aletas.
- Refrigeración activa: además del disipador también se coloca un ventilador para proporcionar un flujo de aire forzado entre las aletas del elemento pasivo.
- Refrigeración líquida: consta de un circuito compuesto por una bomba y un radiador aleteado. Se hace circular el agua por un bloque situado en la CPU, el elemento líquido recoge el calor generado y lo transporta hasta el radiador, que mediante ventilación forzada disipa el calor disminuyendo nuevamente la temperatura del líquido.
Algunos procesadores incluyen disipador. Normalmente no son nada del otro mundo… pero sirven para echar andar el PC y mejorarlo al tiempo
- Refrigeración por Heatpipes: el sistema está formado por un circuito cerrado de tubos de cobre o aluminio llenos de fluido. Este fluido recoge el calor de la CPU y se evapora subiendo hasta la parte superior del sistema. en este punto hay un disipador aleteado que intercambia el calor del fluido desde el interior al aire exterior, de esta forma el fluido se condensa y vuelve a bajar hasta el bloque de la CPU.
Con esto concluye nuestro artículo sobre qué es un procesador y como es su funcionamiento de forma detallada. Esperamos que te haya gustado.