Thumbnail for The Engineering that Runs the Digital World 🛠️⚙️💻 How do CPUs Work? by Branch Education

The Engineering that Runs the Digital World 🛠️⚙️💻 How do CPUs Work?

Branch Education

43m 13s5,116 words~26 min read
Auto-Generated

[0:00]Dentro de cada ordenador de sobremesa, smartphone, videoconsola, portátil o prácticamente cualquier otro dispositivo que utilices a diario, hay una CPU o unidad central de procesamiento. Y en este vídeo vamos a ver cómo funcionan. Un procesador típico para un portátil potente como este, está construido a partir de miles de millones de transistores nanoscópicos. Conectados entre sí mediante decenas de capas de cables y es esencialmente el cerebro del dispositivo. Pero antes de que exploremos el microprocesador y toda su complejidad, viajemos a los inicios de los ordenadores personales y las videoconsolas. Y comparemos el Apple 2 E de 1983 con el MacBook Pro moderno. Dentro del Apple 2 E encontramos un chip llamado 6502. Que está considerado uno de los grandes abuelos de todos los procesadores modernos. Este chip está construido a partir de 4528 transistores. Y puede realizar unas 430.000 operaciones por segundo. Aunque solo podía ejecutar aplicaciones primitivas y videojuegos con gráficos sencillos. Este chip fue la columna vertebral de una generación de primeros ordenadores y videoconsolas, como la NES, el Commodore 64 y el Atari. Compárese con el procesador M1 del MacBook Pro, construido con 16.000 millones de transistores, capaz de realizar unos 3 billones de cálculos por segundo. Lo que le permite generar vastos mundos 3D con gráficos inmersivos. A pesar de que estos dos chips se lanzaron con unos 45 años de diferencia. Los principios subyacentes de su funcionamiento son bastante similares. En cierto modo, se puede decir que estos dispositivos comparten una sección común de ADN tecnológico. De hecho, si abriéramos un ordenador de sobremesa y cogiéramos la CPU o la GPU dentro de la tarjeta gráfica. O desmontáramos una Nintendo Switch o un smartphone y encontráramos el sistema en un chip o SoC. O incluso si pudieras adentrarte en un centro de datos de IA y coger un chip de IA de última generación. Descubrirías que todos estos procesadores funcionan con los mismos principios subyacentes. En otras palabras, tanto el Camino de Oregón de hace 50 años. Como los algoritmos avanzados de IA, se ejecutan en procesadores con un ADN tecnológico similar. Pero, por supuesto, uno de estos chips es 10.000 millones de veces más potente que el otro. Así que en este vídeo vamos a desmontar este microprocesador y averiguar exactamente cuál es el ADN tecnológico compartido y cómo permite que funcionen las CPU. Y para que quede claro, el ADN tecnológico no son transistores ni puertas lógicas. Sino un diseño arquitectónico y un principio de funcionamiento básico. Que es fundamental para los microprocesadores y los diferencia de otros circuitos integrados. Así que quédate y vamos a sumergirnos.

[4:09]Este vídeo está patrocinado por Brilliant. Empecemos con un rápido desmontaje animado en 3D de este MacBook Pro. Al abrirlo, encontramos una serie de componentes diferentes, como el panel táctil, las pilas, los altavoces, un ventilador de refrigeración y la placa base en el centro. Montados en la placa base están los chips de almacenamiento de unidad de estado sólido o SSD, donde se guardan todos los archivos, y una serie de otros chips. Debajo del tubo de calor, encontramos la DRAM, que es la memoria de trabajo a corto plazo y la unidad central de procesamiento. Desoldemos la DRAM y la CPU y abrámosla. Dentro encontramos tres partes. En la parte superior hay una cubierta protectora que conduce y disipa el calor. En la parte inferior hay un interponedor con miles de puntos de conexión a cada lado. Y cables que lo atraviesan. Y soldado al interponedor está el circuito integrado o chip, que es la parte funcional de la CPU. En el chip podemos ver el complejo diseño de miles de millones de transistores y cables, organizados en diferentes secciones, como los cuatro núcleos de cálculo de alto rendimiento. Cuatro núcleos de eficiencia energética, núcleos de procesamiento gráfico, memoria caché y muchas otras secciones. Acerquémonos a uno de los núcleos de rendimiento, donde descubrimos que está separado en diferentes bloques funcionales, a los que añadiremos etiquetas y luego reorganizaremos en un diagrama arquitectónico. Este diagrama ilustra cómo se mueven los datos y las instrucciones por un único núcleo de procesamiento de la CPU. Y, aunque es bastante complicado, entenderás cómo funciona al final de este vídeo. Pero, por ahora, acerquémonos aún más para obtener una vista nanoscópica de un laberinto multicapa masivo de cables con los transistores en la parte inferior. Aquí vemos un grupo de seis transistores que están conectados entre sí para construir una puerta lógica AND. Y en esta vista podemos ver unos 650 transistores del total de 16.000 millones que componen el chip. Comprender cómo miles de millones de transistores trabajan juntos para construir una CPU capaz de jugar a videojuegos, ver películas o navegar por Internet, requerirá un poco de trabajo. Así que, empecemos con una analogía. Es posible que hayas oído que las CPU son como calculadoras superpotentes. Esta analogía sólo está completa en un 20%, ya que le faltan algunas partes críticas. Así que vamos a añadirlas para hacer una analogía más precisa. Primero, añadiremos una mesa para la calculadora. Junto con un lápiz y una hoja de papel. A continuación, añadiremos filas y filas de estanterías con miles de libros. Junto con un carrito que puede transportar una pequeña pila de libros entre las estanterías y la mesa. Y, por último, añadiremos un robot automatizado al que llamaremos unidad de control o controlador. El controlador puede coger libros de la estantería, moverlos al carrito y a la mesa. Y puede devolverlos. El controlador también puede leer el contenido de cada libro, escribir en el papel y en los libros, y usar la calculadora. Puedes pensar en el controlador como un humano superrápido, pero se nos da mal animar humanos, así que es un robot en su lugar. Y con eso, tenemos todas las piezas para nuestra analogía. Ahora veamos cómo funciona cada parte de nuestra analogía de CPU. Para empezar, las estanterías son los dispositivos de almacenamiento del ordenador. Como los chips SSD, el carrito representa la DRAM. Y la mesa y su contenido representan la CPU. En la mesa de la CPU hay un pequeño espacio para un único libro abierto, que es similar a la capacidad muy limitada de la memoria caché, dentro de la propia CPU. A continuación, la única hoja de papel representa los registros, que se utilizan para almacenar valores o números que se están utilizando activamente. Concretamente, en ella hay cuatro registros de propósito general y algunas ubicaciones especiales más que comentaremos dentro de un rato. Además, el lápiz sirve para escribir y borrar cosas en el papel y en los libros. Por último, la calculadora representa la unidad lógica aritmética o ALU. Esta calculadora ALU funciona con binarios, por lo que sólo hay los dígitos 0 y 1, y puede realizar funciones sencillas como sumar, restar o multiplicar dos números. La calculadora ALU tiene muchas más funciones que quizá no conozcas, pero que siguen siendo bastante sencillas. Por ejemplo, puede incrementar o decrementar un número en uno. O la ALU puede realizar desplazamientos de bits, que es esencialmente tomar un número y añadirle un cero al final. En decimal, el desplazamiento de bits es como multiplicar un número por 10. Pero en binario, es equivalente a multiplicar un número por dos. La ALU también puede realizar funciones lógicas con dos números, como las operaciones lógicas AND, OR o OR exclusivo. Por ejemplo, aquí está la operación AND lógica para dos entradas binarias. Y se puede ver que la salida es una AND lógica para cada valor posicional de las dos entradas. Sin embargo, lo que es más importante, la calculadora ALU puede realizar comparaciones. Por ejemplo, puedes introducir dos números y pulsar el botón comparar para comprobar si los números son iguales. Y si lo son, se levanta un indicador de igualdad. Mientras que los otros indicadores de comparación, como menor que o mayor que, permanecen bajados. Por último, la pantalla de la calculadora ALU que emite el resultado tiene un nombre especial, el acumulador. Así que ahora que hemos explicado las distintas partes de esta analogía. ¿Cómo funciona todo junto? Pues el primer paso es cargar un programa que queramos ejecutar. Lo que es como mover un conjunto de libros de las estanterías al carrito y luego mover un solo libro a la mesa y abrirlo. Es importante señalar que la memoria RAM del carro y la memoria caché de la mesa son ubicaciones temporales y de capacidad limitada. Mientras que las estanterías SSD pueden almacenar mucho más y son de almacenamiento semipermanente a largo plazo. Además, cuando el ordenador está apagado, no hay libros en la DRAM ni en la CPU. Pero cuando el ordenador se enciende, el carrito y la mesa mueven los libros muy activamente. Veamos el contenido de uno de los libros. Esencialmente, hay dos tipos de páginas, instrucciones y datos. Puedes pensar en las instrucciones como las direcciones de un libro de cocina, con cada paso numerado secuencialmente en las páginas. Y las páginas de datos contienen una lista de direcciones con valores almacenados en cada dirección. Y son como los ingredientes que componen la propia receta. Al igual que al cocinar, se necesitan tanto la receta como los ingredientes para que funcione. Y unos pocos ingredientes pueden combinarse de decenas de formas diferentes utilizando distintas recetas. Pero para no utilizar una analogía dentro de otra analogía, dejemos la de la cocina y centrémonos en los libros, la mesa y la calculadora. Empecemos al principio de este programa y pasemos a la página 1, instrucción 1. Que se llama carga y es el tipo de instrucción más común. Esta carga nos hace abrir las páginas de datos y buscar una dirección específica. A continuación, copiamos y escribimos el valor almacenado en esa dirección. En uno de los registros de propósito general de la hoja de papel. Con la instrucción 1 completada, pasamos a la instrucción 2. Que es incrementar el valor del registro 0 en uno. Así que conectamos el valor a la calculadora ALU y pulsamos +1. La tercera instrucción, llamada instrucción de almacenamiento, se utiliza para guardar o almacenar la salida de la calculadora que se encuentra en la pantalla del acumulador. En las páginas de datos, en la misma dirección en la que estaba antes. Estas instrucciones sencillas, pero muy comunes, son equivalentes a esta línea de código. A continuación, pasamos a la instrucción 4 y la completamos. Y luego la instrucción 5 y así sucesivamente. Avanzando por la lista de instrucciones que sigue y sigue y sigue. Para poder seguir el rastro de qué instrucción es la siguiente que debe completarse. Utilizamos una de las ubicaciones especiales de la hoja de papel que mencionamos antes, el contador de programa o PC. También llamado registro de dirección de instrucción o puntero de instrucción. Como el PC tiene actualmente un valor de 5, encontramos la instrucción 5, la completamos y aumentamos el contador de programa en uno. Por lo tanto, la siguiente instrucción a completar será la instrucción 6. Sin embargo, ¿qué pasaría si, después de completar la instrucción 6, quisiéramos saltar directamente a la instrucción 42? Pues para ello, utilizamos una instrucción de salto en 7, que establece directamente el valor del contador de programa en un nuevo número. Y en este caso, es 42. Como resultado, la secuencia de instrucciones será 5, 6, 7, que es la instrucción de salto, luego 42, 43, 44 y así sucesivamente. Un conjunto similar de instrucciones se denomina ramificación condicional, que se utiliza para implementar sentencias if, bucles y otro código condicional. Usemos un ejemplo de bucle for, con unas pocas líneas de código sencillas en su interior. Muy sencillo, este bucle se utiliza para repetir el código de su interior cuatro veces. Aquí están las instrucciones correspondientes al bucle for, junto con las instrucciones para el código que contiene. Y hemos codificado por colores cada uno de los elementos para saber qué líneas de código específicas dan como resultado las instrucciones correspondientes. Hablaremos de cómo los compiladores convierten el código en instrucciones más adelante en este vídeo. Pero por ahora, centrémonos en el bucle for y sus instrucciones. Concretamente, aquí es donde I se pone a cero y se almacena en una dirección de las páginas de datos. Aquí es donde I se carga de esa dirección y se incrementa en uno. Y aquí está el contenido del bucle. En la parte superior, puedes ver las tres instrucciones: cargar, comparar y ramificar si es mayor o igual que. La carga primero toma el valor de I y lo coloca en el registro cero. Comparar, introduce I almacenado en el registro cero y un valor de 4 en la ALU y los compara. Lo que da como resultado la activación de los indicadores de comparación aplicables. A continuación, ramificar si es mayor o igual que, comprueba si el indicador mayor que o el indicador igual que están activados. Y si es así, establece el contador de programa en 23, que corresponde a completar y salir del bucle. Sin embargo, cuando I es menor que 4, esos indicadores no se activan y el bucle continúa. Hasta que llega a la instrucción de salto en la dirección 22, donde el salto establece el contador de programa en 6, lo que corresponde al principio del bucle for. Como resultado, el bucle se repetirá un total de cuatro veces. Ten en cuenta que este código de la izquierda está en C++. Mientras que las instrucciones reales completadas por tu CPU están en un lenguaje binario llamado código máquina. Y la versión semileíble de las instrucciones se llama ensamblador. Pero modificamos este ensamblador un poco para hacerlo más legible. Una nota interesante es que se podría pensar que con todo lo que puede hacer un ordenador, debe haber decenas de miles de instrucciones diferentes. En realidad, el procesador 6502 del Apple II e de 1983 sólo podía ejecutar 56 instrucciones diferentes. Mientras que el chip M1 moderno del MacBook Pro puede ejecutar 354 instrucciones. Aquí está la lista de todas las instrucciones que puede ejecutar cada chip. Y si echas un vistazo, la mayoría de estas instrucciones son bastante sencillas. Pensemos en ello un segundo. Todo lo que haces en tu ordenador puede construirse utilizando sólo varias secuencias de 354 instrucciones diferentes. Sin embargo, muchos programas tienen millones y millones de líneas de instrucciones y, con suerte, no tienen errores. Así que, ahora que hemos hablado de la gama de instrucciones posibles. Exploremos con más detalle cómo funcionan las CPU. Para completar una instrucción, siempre hay tres pasos clave: buscar, decodificar y ejecutar. El primer paso es buscar, y es donde el controlador utiliza el valor del contador de programa para buscar la instrucción correspondiente en las páginas de instrucciones del libro. A continuación, el controlador copia la instrucción encontrada en esa dirección, en una ubicación especial llamada registro de instrucción actual o CIR. Al mismo tiempo, el controlador aumenta el contador de programa en uno. El segundo paso es decodificar, y en este paso la instrucción actual se introduce en un circuito llamado decodificador de instrucciones. En nuestra analogía anterior, este decodificador es una parte clave del controlador. Y, en esencia, es el circuito que lee una instrucción y, al mismo tiempo, interpreta lo que realmente hace el código máquina de una instrucción. Y produce las señales de control para ejecutar correctamente esa instrucción. Concretamente, este circuito decodificador de instrucciones utiliza los valores binarios de la instrucción. Y una disposición increíblemente compleja de puertas lógicas para producir las señales de control correspondientes, que luego se envían a los diferentes elementos de la CPU. Los decodificadores de instrucciones son una de las partes más complicadas de la CPU. Pero aquí hay un ejemplo, junto con una explicación simplificada. Supongamos que tenemos esta instrucción de suma en el registro de instrucción actual o CIR. Y se introduce en el decodificador de instrucciones. La primera parte de la instrucción binaria especifica que queremos usar la ALU. Con la ALU seleccionada, los siguientes tres bits especifican que queremos usar la función de suma. Y luego los últimos cuatro bits de la instrucción, indican que queremos los valores de los registros 0 y 1, para ser enrutados y enviados a la ALU. Los decodificadores de instrucciones son considerablemente más complejos que eso, pero pasemos al tercer paso, que es ejecutar. Durante la ejecución, utilizando nuestra instrucción de ejemplo, las señales de control del decodificador de instrucciones y un intrincado conjunto de señales de temporización eléctrica. Se utilizan para enviar primero el valor del registro cero y luego el valor del registro uno a la ALU. Las señales de temporización se utilizan para acomodar el tiempo que tarda la electricidad en viajar de los registros a la ALU. Y para que los transistores y las puertas lógicas cambien su estado, asegurando así el resultado correcto en la salida. Una vez introducidos los valores, la ALU suma los dos números. Y una señal de temporización posterior guarda el resultado en el acumulador, completando así el paso de ejecución. Estos tres pasos: buscar, decodificar y ejecutar. Se utilizan para completar una única línea de instrucciones. Y una vez completada, estos pasos se repiten, pero utilizando el nuevo valor del contador de programa y así sucesivamente. El ciclo buscar, decodificar y ejecutar se utiliza en todos los procesadores. No importa si es el 6502 del Apple II e, o el M1 del MacBook Pro. Pero, por supuesto, hay muchas diferencias, como el tamaño de la caché, los registros o las funciones de la calculadora ALU y mucho más. Exploraremos las diferencias exactas en unos minutos. Pero, por ahora, un detalle importante es que el ciclo buscar, decodificar y ejecutar utiliza el reloj del ordenador para regular su ritmo. El chip 6502 tenía un reloj de 1 megahercio, que marcaba un millón de veces por segundo. Y así, cada paso del ciclo buscar, decodificar y ejecutar, tardaba un microsegundo. Además, el 6502 era un procesador de 8 bits, lo que significa que el tamaño de los registros y la entrada y salida de la ALU eran de 8 bits de ancho. Por otro lado, el chip M1 es un procesador de 64 bits. Por lo tanto, puede manejar números mucho mayores, y utiliza un reloj de 3,2 gigahercios. Y por lo tanto, cada paso tarda un tercio de nanosegundo. Además, el chip M1, junto con todos los chips modernos, utiliza una técnica llamada pipelining. Donde se ponen en cola varias instrucciones, lo que da como resultado la búsqueda, decodificación y ejecución de diferentes valores del contador de programa. Y diferentes instrucciones se completan al mismo tiempo. Hay muchas otras optimizaciones en los procesadores modernos que pronto discutiremos. Pero es importante entender que desde el segundo en que enciendes tu portátil, smartphone, consola de juegos, GPU o servidor de IA. Hasta el segundo en que lo apagas, el procesador está continuamente ciclando a través de buscar, decodificar, ejecutar una y otra vez. Utilizando programas llenos de instrucciones y datos, junto con el reloj de la CPU para regular su ritmo. En esencia, este ciclo de buscar, decodificar y ejecutar. Es la sección común del ADN tecnológico que ha impulsado a todos los procesadores construidos en los últimos 50 años. Este ciclo de pasos es increíblemente potente. Capaz de realizar billones a cuatrillones de operaciones matemáticas cada segundo en un solo chip. Pero te estarás preguntando, ¿hay alternativas al ciclo buscar, decodificar y ejecutar? Pues hay un mundo de diferentes tipos de microchips. Pero, concretamente, las alternativas incluyen los circuitos integrados de aplicación específica, o ASIC. Como estos microchips que se encuentran en este ordenador de minería de Bitcoin. O las matrices de puertas programables en campo, o FPGA, que son los chips principales de varios ordenadores y cámaras de automoción. Tanto los ASIC como los FPGA no utilizan los pasos de buscar y decodificar, sino que realizan operaciones repetitivas. Haciendo fluir los datos a través de un patrón fijo de puertas lógicas y unidades de ejecución, lo que los hace altamente optimizados, pero muy inflexibles. Y aún más lejos de estos chips, están los ordenadores cuánticos que se basan en cúbits y circuitos cuánticos, de los que hablaremos en futuros vídeos.

[27:56]Pero ahora que hemos cubierto el ciclo buscar, decodificar y ejecutar, es importante discutir dos pasos más, que son memoria y reescritura. La memoria es análoga a mover libros de las estanterías SSD al carro DRAM, y luego a la mesa o memoria caché. Y la reescritura es como escribir datos en los libros. Y cuando se necesita espacio para un nuevo libro en la mesa, el libro antiguo se vuelve a colocar en el carro DRAM y, finalmente, se devuelve a las estanterías. Estos dos pasos utilizan otro lugar especial, llamado registro de dirección de memoria, y son fundamentales para el funcionamiento de un ordenador. Pero suelen tardar mucho más en completarse que los pasos de buscar, decodificar y ejecutar. Y por lo tanto, en algunas arquitecturas y libros de texto están incluidos en el ciclo, y a veces no. Estamos trabajando en otro vídeo que te ayudará a explicar el auge de los SoC, así que mantente atento. Ahora que hemos descubierto el ADN tecnológico de todos los procesadores, es importante señalar que, al igual que el ADN que se encuentra en el núcleo de la célula, y que hay múltiples capas de organización y estructura biológica para todos los seres vivos. Hay muchas capas de complejidad o abstracción entre el ciclo buscar, decodificar y ejecutar, y un ordenador que ejecuta un videojuego o navega por Internet. Si quieres profundizar en algunas de las otras capas y comprender mejor cómo funcionan los ordenadores, te recomendamos que consultes Brilliant, patrocinador de este vídeo. Brilliant tiene una enorme biblioteca de cursos interactivos que incluyen temas como cálculo, pensamiento científico, circuitos, programación en Python. Lógica, análisis de datos y muchos otros temas que tardaríamos demasiado en enumerar. Sin embargo, Brilliant es mucho más que una lista de cursos. Más bien, es como si tu profesor favorito, que hace que las clases sean atractivas, se combinara con tu videojuego favorito. Y luego se mezclara con los conocimientos de innumerables libros de texto. El resultado sería Brilliant. Su misión es crear un mundo de mejores solucionadores de problemas. Y cada uno de sus cursos se centra en el pensamiento crítico a través de juegos y lecciones interactivas. Además, la tecnología avanza más rápido que nunca. Brilliant actualiza continuamente sus lecciones para anticiparse a lo que necesitas saber para tu educación y carrera. Por ejemplo, tienen un nuevo curso sobre IA y modelos de lenguaje grandes. Que explica cómo funciona la IA generativa mucho mejor que cualquier otro libro de texto o vídeo. Desarrolla tus conocimientos aprendiendo un poco cada día. Puedes empezar hoy mismo registrándote gratis, utilizando el enlace brilliant.org/BranchEducation/, o escaneando el código QR de la pantalla. Y tendrás acceso a la amplia gama de cursos de su catálogo. Si te gusta su contenido y decides quedarte. El enlace de la descripción de abajo también te ahorrará un 20% en una suscripción premium anual, lo que te dará acceso diario ilimitado a todo lo de Brilliant. De acuerdo. Así que vamos a repasar rápidamente algunos temas ligeramente más avanzados para terminar este vídeo. Anteriormente, mencionamos que el chip M1 del MacBook Pro puede ejecutar 354 instrucciones diferentes. Este conjunto de instrucciones se denomina ARM V8.4. Y se clasifica por una arquitectura RISC o Reduced Instruction Set Computer (ordenador con conjunto de instrucciones reducido). Por ejemplo, aquí tienes un sencillo juego de Snake. Utilizando 145 líneas de código C++. Es tarea de un compilador, que es una pieza de software independiente, tomar este código junto con las 354 instrucciones RISC de ARM V8.4. Y generar una lista de 676 instrucciones de ensamblador, equivalentes a las instrucciones de código máquina que se encontrarían en un libro o programa llamado Snake.app. La otra arquitectura común que se encuentra en los chips Intel y AMD se llama CISC, o Complex Instruction Set Computer. Y se compone de miles de posibles instrucciones diferentes. Por ejemplo, aquí está el programa Snake equivalente que se compila para ejecutarse en un chip Intel o AMD. Utilizando CISC y 64 bits de instrucciones x86. Y puedes ver que ahora sólo tiene 560 instrucciones. Algunas diferencias clave entre RISC y CISC. Son que cada instrucción RISC es relativamente sencilla y se ejecuta a una velocidad de ejecución consistentemente rápida. Además, las arquitecturas RISC son más eficientes energéticamente. Y por lo tanto, se utilizan en todos los smartphones. Mientras que las arquitecturas CISC tienen miles de instrucciones diferentes, y empaquetan mucho más en una sola instrucción. Además, el decodificador de instrucciones CISC es mucho más complicado, y las instrucciones individuales tienen una tasa de ejecución variable. A veces, tardando varios ciclos de reloj en ejecutarse. Hay muchas otras ventajas y desventajas de RISC frente a CISC. Que guardaremos para otro vídeo. Pero nos pareció oportuno mencionar aquí estas diferencias simplificadas.

[35:07]La arquitectura de los ordenadores es increíblemente compleja, con muchas facetas y capas de complejidad. Y tenemos previsto hacer más vídeos que profundicen en cada uno de estos temas. Pero es importante señalar que cada vídeo que hacemos lleva un total combinado de 1100 horas de investigación, escritura de guiones, modelado, animación y edición. Por ejemplo, pasamos más de 250 horas desmontando estos ordenadores que no funcionaban que compramos en eBay. Y reconstruyendo meticulosamente cada uno de los modelos 3D en Blender. Así que si pudieras tomarte unos segundos para darle a Me gusta

[36:00]A este vídeo, suscríbete si aún no lo has hecho, comparte este vídeo con alguien que pueda tener curiosidad por saber cómo funcionan las CPU. Y lo que es más importante, escribe un comentario rápido a continuación. Nos ayudaría inmensamente. Sólo unos segundos de tu tiempo nos ayudan mucho más de lo que crees. Así que, gracias.

[36:31]En la última sección de este vídeo, hablaremos de este diagrama que mostramos anteriormente. Y de la arquitectura de los procesadores modernos, como el M1. Por el contrario, la analogía que hemos expuesto es bastante sencilla. Y probablemente estés pensando que debe haber más componentes en una CPU real. De hecho, esta analogía se acerca bastante a lo que ocurre dentro de un ordenador Apple IIe. Concretamente, las disqueteras son las estanterías. Y cuando abrimos este ordenador, vemos los chips DRAM, que son el carro. Y luego, al entrar en el procesador 6502. Encontramos un circuito integrado o chip, que tiene las secciones correspondientes que organizaremos en un diagrama arquitectónico interno. En este diagrama, puedes ver el decodificador de instrucciones, la ALU, el contador de programa, el registro de instrucción actual, los otros registros y algunas otras secciones. Concretamente, aquí es donde se utiliza el contador de programa para buscar una instrucción. Y aquí es donde se introducen y extraen las instrucciones y los datos de los chips DRAM. Por último, aquí es donde se decodifican las instrucciones y se generan las señales de control. Una nota es que no hay caché en el 6502. Porque los chips DRAM de los años 80 eran tan rápidos como las instrucciones. Así que la mesa de la analogía es aún más pequeña. Como dijimos al principio de este vídeo, el chip 6502 está hecho de 4528 transistores. Así que veamos a qué se parece un chip M1 con 16.000 millones de transistores. Para empezar, tenemos que aumentar significativamente el tamaño de esta mesa. A continuación, tenemos que seccionar las áreas para cada uno de los núcleos de rendimiento y eficiencia energética. La GPU y otras áreas. Cuando nos centramos en uno de los núcleos de rendimiento, vemos el complejo diagrama de antes. Así que vamos a discutir cómo este diagrama se compara con nuestra analogía. Concretamente, hay un conjunto separado de 64 kilobytes de cachés de datos e instrucciones. Como se mencionó anteriormente, hay una tubería para poner en cola ocho instrucciones por ciclo de reloj. Y secciones adicionales como un predictor de ramas para reducir los problemas con la ramificación condicional y ayudar a la tubería a funcionar sin problemas. Aquí puedes ver el decodificador de instrucciones en la tubería. Y 32 registros de propósito general. Una diferencia clave es que la calculadora está dividida en ocho calculadoras más pequeñas separadas. Cada una de las cuales maneja unas pocas funciones. Además, hay una sección especial para las instrucciones de carga y almacenamiento. Este es el diseño de un solo núcleo de los ocho. Y hay arquitecturas completamente diferentes en la unidad de procesamiento gráfico, así como dentro de la unidad de procesamiento neural. Una nota importante es que la inclusión de estos tres tipos de procesadores, junto con aceleradores de hardware como el motor de medios. Hace que este chip M1 esté más cerca de ser un sistema en un chip o SoC que una CPU tradicional. Del mismo modo, todos los procesadores de estos dispositivos. Incluida la CPU de tu ordenador de sobremesa, pueden considerarse SoC. Y, por tanto, la diferencia es más un término de marketing que uno técnico. En otra nota, es importante mencionar que el M1, junto con todos los procesadores modernos, son diseños y conocimientos patentados. Y, por lo tanto, los diagramas que hemos mostrado son aproximaciones cercanas que construimos utilizando la aportación de expertos de la industria. Por último, hablemos de nuestra analogía en términos de chips GPU, que se encuentran en las tarjetas gráficas. Tenemos un vídeo aparte que explica cómo funcionan las tarjetas gráficas. Pero con respecto a esta analogía, un núcleo CUDA de GPU es en realidad muy similar en complejidad a la arquitectura del 6502. Por lo tanto, con 10.000 a 20.000 núcleos CUDA en un solo chip GPU, es como tener una enorme matriz de núcleos 6502. La diferencia es que las GPU suelen utilizar calculadoras ALU de 32 bits y realizan cálculos SIMT (Single Instruction Multiple Thread). Donde una única instrucción se busca, se decodifica y luego se distribuye a un lote de núcleos. Y luego esos núcleos ejecutan esa instrucción utilizando diferentes direcciones y datos. Sin embargo, hay muchos más matices en la arquitectura SIMT y GPU. Así que vamos a terminar este vídeo sobre cómo funcionan las CPU. Gracias a todos nuestros patrocinadores de Patreon y YouTube por apoyar nuestros vídeos. Si quieres apoyar económicamente nuestro trabajo, puedes encontrar los enlaces en la descripción de abajo. Esto es Branch Education. Y creamos animaciones 3D que profundizan en la tecnología que impulsa nuestro mundo moderno. Ve otro vídeo de Branch haciendo clic en una de estas tarjetas o haz clic aquí para suscribirte. Gracias por ver hasta el final.

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript