¿Qué sucede dentro de un microprocesador?

¿Tu teléfono inteligente parece una caja mágica que responde a los movimientos de tus dedos con brujería? ¿Se pregunta qué sprites ocultos convierten el código de la computadora en software en ejecución? Vayamos a la aventura para comprender cómo funciona un microprocesador.

Nuestros dispositivos digitales están pensados ​​para ser intuitivos y naturales de usar. Pero para crear esta superficie familiar para los humanos, los teléfonos móviles y las computadoras deben activarse detrás de escena con muchas operaciones matemáticas. Entonces, ¿cómo podemos, con solo unos y ceros, hacer emerger todos estos universos digitales?

No necesitas mucho para hacer una computadora. Necesita un dispositivo de entrada para hablar con él, como una pantalla táctil o un teclado. Necesitas un dispositivo de salida para que nos pueda contestar, como una simple pantalla o altavoces. Entre los dos necesitas un recuerdo y un procesador que le sirve de cerebro, y eso es lo que nos interesará en este artículo.

Y hablando del cerebro, te advertimos: ¡tendrás que hacer que el tuyo funcione para entender todo sobre el tema que aquí se trata!

En el taller de CPU

los UPC (Unidad Central de procesamiento) es el corazón del procesador. Si el procesador es multinúcleo, contiene varias CPU. Pero aparte de eso, los dos términos a menudo son intercambiables en el idioma hablado. Hoy todos los procesadores son microprocesadores, es decir que todos sus componentes están presentes en el mismo circuito integrado.

La CPU tiene tres componentes principales: la ALU (Unidad lógica aritmética), la centralita y los registros. Podemos imaginar una CPU como un taller donde elALU sería el trabajador, donde elunidad de control sería su jefe, y donde registros serían estanterías. El trabajo de este lugar es realizar instrucciones, que son libros escritos llamados programas. Los programas se almacenan fuera del taller, en un gran hangar llamado el memoria.

El ciclo de instrucción

Casi todas las CPU se ejecutan en ciclo de instrucción compuesto por estos tres o cuatro pasos: recuperar la instrucción, decodificarla, ejecutarla (y escribir el resultado). La duración de este ciclo está determinada por la frecuencia de relojo cadencia. El “reloj” de una CPU es un cristal oscilante que envía pulsos a intervalos regulares, como el tic-tac de un reloj real.

En cada ciclo de reloj, la instrucción se mueve a la siguiente unidad de procesamiento. Una CPU de 2 GHz tiene dos mil millones de pulsos por segundo. Este es un indicador aproximado de la velocidad real de un procesador y, en condiciones reales, es más confiable confiar en los puntos de referencia.

¿Estás listo para sumergirte en el torbellino del ciclo de instrucción? ¡Porque la siguiente parte es densa, muy densa! Así que abróchate el cinturón, calienta tu cerebro y ¡vamos!

Buscar instrucción (ir a buscar)

Primero, la unidad de control debe ir a la memoria para buscar la instrucción, ubicada en una dirección de memoria calculada por elAGU (Generación de direcciones Unidad). Es necesario pedir indicaciones para llegar al MMU (Unidad de gestión de memoria). Esta pieza de hardware tiene un mapa grande de la memoria virtual de la computadora, la que incluye la CPU, que enumera las direcciones físicas correspondientes. Depende de la MMU limitar el acceso de la CPU a la memoria para evitar que un programa ocupe demasiado espacio.

En lugar de ir y venir al hangar tomando solo una instrucción a la vez, sería muy lento, preferiríamos tomar el libro completo del programa y hojearlo en el taller, en el caché, una pequeña pieza memoria ubicada directamente en el procesador. Uno de los registros de la CPU contiene un contador de programa, una especie de marcador que indica en qué instrucción se encuentra uno en el libro anotando su dirección de memoria.

Cada vez, la información se divide en palabrasy una CPU de 32 bits tendrá palabras de 32 dígitos. La mayoría de los registros tienen un tamaño de una palabra y esta es la cantidad máxima de bits que se pueden manejar en una sola acción.

Te advertí que tenías que aguantar y lamento decirte que no ha terminado. ¡Vamos, un esfuerzo más!

Decodificación (descodificar), ejecución (ejecutar) y escribiendo (respóndeme)

La instrucción se coloca en el estante llamado MBR (Registro de búfer de memoria). Pero ALU no puede leerlo así. De hecho, solo puede realizar acciones muy básicas, como sumar o multiplicar. Puedes compararlo con apilar ladrillos Lego. Es el decodificador de instrucciones decirle a la ALU qué ladrillos usar, extrayendo de un stock de ladrillos disponibles llamado conjunto de instrucciones. Algunos son comunes a todos los procesadores, pero otros dependen del fabricante o incluso del modelo.

Puedes compararlo con apilar ladrillos Lego

UN arquitectura x86, como en un procesador Intel, no utilizará los mismos ladrillos Lego que un procesador Qualcomm con arquitectura ARM. Esto también significa que un sistema operativo diseñado para una arquitectura dada no se ejecutará en otro procesador: al mirar las instrucciones, el decodificador verá ladrillos de los que nunca ha oído hablar.

La ALU finalmente ejecuta la instrucción leyendo o escribiendo en los registros según sea necesario. Para ello, cuenta con circuitos lógicos cada uno especializado en una operación matemática. El resultado puede guardarse en registros para facilitar el acceso o guardarse en la memoria (RAM o ROM) donde hay más espacio.

Interrupciones y paralelismo

¡Felicitaciones, ahora conoce el ciclo de trabajo diario de una CPU! Tómate un tiempo para respirar un poco, porque pronto saldremos para algunos detalles prácticos. La CPU es un lugar muy ocupado y necesita usar algunos trucos para ser lo más eficiente posible y no hacer que los programas esperen.

Imagine que un software o un dispositivo tiene una tarea urgente que realizar, por ejemplo, cuando el usuario presiona un botón. La CPU no puede decir “lo siento, estoy trabajando en otro programa, espera tu turno”. De lo contrario, nunca lo logramos. Por tanto, el dispositivo enviará un interrumpir a la CPU para decirle que detenga temporalmente lo que está haciendo. El contador de programa observa dónde la CPU detuvo su programa anterior, para que pueda reanudarlo después de que se haya manejado la interrupción.

Los procesadores modernos aplican el principio de canalización, es decir “trabajo en línea de montaje”: cuando el decodificador termina de dar una instrucción a la ALU, inmediatamente ataca la siguiente instrucción sin esperar el final del ciclo. Si la instrucción # 2 necesita saber absolutamente el resultado de la instrucción # 1, un burbuja se agrega a la canalización para que espere un poco. En procesadores multiescalaires, cada unidad trabaja con varias instrucciones al mismo tiempo.

Muchos procesadores modernos son multicœurs, es decir, formado por varias CPU o “núcleos” distintos. Pero, ¿cómo hacer que funcionen en el mismo programa al mismo tiempo? Gracias a multihilo. Los procesos se dividen en hilos, secuencias de instrucciones dependientes unas de otras, cada una de las cuales tiende a colocarse en corazones diferentes. Tenga cuidado de que los hilos no se enreden: se produce un error de carrera si intentan modificar los mismos datos al mismo tiempo.

Esta es solo una breve descripción general de cómo funciona una CPU. En la práctica, hay muchas otras mejoras en el nivel de cada paso. Lo crea o no, solo hemos arañado la superficie en este artículo. Son todas estas complejidades las que hacen que la computación sea una maravilla, y esperamos que los núcleos de nuestros dispositivos se hayan vuelto menos insondables para usted.