Todo sobre trucos y tutoriales de Android

¿Qué sucede dentro de un microprocesador?

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

Crédito: David Latorre Romero // Unsplash

Nuestras cámaras digitales están diseñadas para ser intuitivas y fáciles de usar. Pero para crear esta superficie conocida por los humanos, los teléfonos inteligentes y los ordenadores deben activarse entre bastidores con muchas operaciones matemáticas. Entonces, ¿cómo podemos, con unos pocos ceros, sacar a la luz todos estos mundos digitales?

No necesitas mucho para hacer una computadora. Necesita un dispositivo de entrada para poder hablar con él, como una pantalla táctil o un teclado. Necesitas un dispositivo de salida para que pueda respondernos, como un monitor o altavoces. En el medio, se necesita una memoria y un procesador que sirva como su cerebro, y eso es lo que nos interesará en este artículo.

Y hablando de cerebros, te advertimos: ¡tú tendrás que trabajar en los tuyos para entender todo sobre el tema aquí discutido!

En el taller de CPU

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

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

El ciclo de instrucciones

Casi todas las CPUs se ejecutan en un ciclo de instrucción compuesto de 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 reloj , o cadencia. El «reloj» de una CPU es un oscilador de cristal que envía pulsos a intervalos regulares, como el tictac de un reloj real.

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

¿Está listo para sumergirse en el torbellino del ciclo de formación? Porque la siguiente parte es densa, muy densa! ¡Así que abróchense el cinturón, calienten sus cerebros y vámonos!

Búsqueda de instrucciones (fetch)

Primero, la unidad de control debe ir a la memoria para buscar la instrucción, ubicada en una dirección de memoria calculada por la AGU (Address Generation Unit) . Para hacer esto, debe pedir instrucciones a la MMU ( Memory Management Unit ). Este hardware tiene una tarjeta grande de la memoria virtual del ordenador, la que la CPU entiende, con las direcciones físicas correspondientes. Es responsabilidad 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 sólo una instrucción a la vez – sería muy lento – preferiríamos tomar todo el libro de programas y hojearlo en el taller, en la caché, una pequeña pieza de memoria ubicada directamente en el procesador.Uno de los registros de la CPU contiene un contador de programas, una especie de marcador que indica en qué instrucción se encuentra en el libro anotando su dirección de memoria.

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

Le advertí que resistiera y lamento decir que esto no ha terminado. ¡Vamos, un esfuerzo más!

Decodificación (decodificación), ejecución (ejecución) y escritura (writeback)

La instrucción se coloca en el estante llamado MBR ( Memory Buffer Register ). Pero la ULA no puede leerlo así.De hecho, sólo es capaz de realizar acciones muy básicas, como sumas o multiplicaciones. Esto se puede comparar con el apilamiento de ladrillos Lego. Corresponde al decodificador de instrucciones indicar a la ALU qué ladrillos utilizar, dibujando a partir 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.

Podemos comparar esto con el apilamiento de ladrillos Lego

Una arquitectura x86 x86, como en un procesador Intel, no utilizará los mismos ladrillos Lego que un procesador de Qualcomm con arquitectura ARM.También significa que un sistema operativo diseñado para una arquitectura dada no funcionará en otro procesador: al mirar la instrucción, el decodificador verá ladrillos de los que nunca ha oído hablar.

La ALU finalmente ejecuta la instrucción leyendo o escribiendo desde los registros según sea necesario. Para ello, dispone de circuitos lógicos especializados en una operación matemática. El resultado se puede guardar en los registros para facilitar el acceso o en la memoria (viva o muerta) donde hay más espacio.

Interrupciones y paralelismo

Enhorabuena, ya conoce el ciclo de trabajo diario de una CPU! Tómate un tiempo para descansar, porque pronto nos iremos a ver algunos detalles prácticos.La CPU es un lugar muy concurrido, y necesita usar algunos trucos para ser lo más eficiente posible y no hacer esperar a los programas.

Imagine que un software o dispositivo tiene una tarea urgente que realizar, por ejemplo, cuando el usuario ha pulsado un botón. La CPU no puede decir «lo siento, estoy trabajando en otro programa, espera tu turno». De lo contrario, nunca nos salimos con la nuestra. Por lo tanto, el dispositivo enviará una interrupción a la CPU para decirle que interrumpa temporalmente lo que está haciendo. El contador de programa anota donde la CPU detuvo su programa anterior, para que pueda reanudarlo una vez que se gestione la interrupción.

Créditos de la imagen: Skitterphoto // Pexels

Los procesadores modernos aplican el principio de la canalización, es decir, el «trabajo en cadena»: cuando el decodificador termina de dar una instrucción a la ALU, ataca inmediatamente la siguiente instrucción sin esperar al final del ciclo. Si la instrucción n°2 necesita absolutamente conocer el resultado de la instrucción n°1, se añade una burbuja en la tubería para hacerla esperar un poco.En los procesadores multiescalas , cada unidad trabaja con varias instrucciones al mismo tiempo.

Muchos procesadores modernos son multi-core , es decir, están formados por varias CPUs o «núcleos» distintos. Pero, ¿cómo se les puede hacer trabajar en el mismo programa al mismo tiempo? Gracias al multihilo. Los procesos se dividen en hilos , una serie de instrucciones que dependen unas de otras, cada una de las cuales tiende a colocarse en núcleos diferentes.Tenga cuidado de que los hilos no se enreden: se produce un error de competencia si intentan modificar los mismos datos al mismo tiempo.

Esto es sólo un breve resumen de cómo funciona una CPU. En la práctica, hay muchos otros refinamientos en cada paso. Lo creas o no, sólo hemos arañado la superficie en este artículo. Son precisamente estas complejidades las que hacen posibles las maravillas de la informática, y esperamos que los corazones de nuestros dispositivos se hayan vuelto menos insondables para usted.

Deja tu comentario!