¿Cómo funciona realmente un procesador? Cuando veo un chip de computadora, todo lo que veo son pequeños trozos de metal aleatoriamente clasificados. ¿Cómo este metal aleatoriamente clasificado realmente calcula físicamente las cosas?

Lo primero que debe darse cuenta es que todos esos “cables” en un chip de computadora fueron grabados con precisión y colocados por un robot para formar miles de millones de transistores (y como señala Kirn Gill, condensadores ).

Página en intel.com (Making of a Chip)

El chip de la computadora es una especie de sándwich club microscópico con múltiples capas, cada capa grabada con un patrón predeterminado diferente. Las capas están hechas de diferentes materiales, y donde las capas se superponen en un patrón 3D específico, forman un transistor.

Cada transistor es esencialmente un interruptor de encendido / apagado electrónico. Los transistores conectados entre sí en pequeños grupos forman puertas lógicas y celdas de memoria .

Las puertas lógicas conectadas entre sí en grupos pueden hacer cálculos matemáticos o decodificar instrucciones de programas de computadora.

Las celdas de memoria conectadas entre sí en grupos pueden contener resultados temporales o permanentes de cálculos, así como instrucciones de programas de computadora.

Toda la comprensión y el cálculo que hace una computadora es mediante la combinación de operaciones realmente simples realizadas por bloques de construcción realmente simples que producen los mismos resultados que las matemáticas humanas cuando se usan en la combinación correcta.

Los componentes básicos son (nominalmente): compuerta AND, compuerta OR, inversor (compuerta lógica), pestillos y flip-flop (electrónica). Las operaciones matemáticas básicas se llaman álgebra booleana. Por ejemplo, ciertas combinaciones de los bloques de construcción pueden formar un sumador (electrónica).

Esto no es algo que pueda explicarse en pocas palabras: una persona puede tener un doctorado en ciencias de la computación y aún así no tener ni siquiera una fracción de las habilidades necesarias para fabricar un chip de computadora.

No puedo darle un tutorial sobre cómo funcionan las CPU en una forma corta como Quora (y de todos modos no estoy realmente calificado para hacerlo). Otros han dado algunas de las respuestas relacionadas con el hardware. Déjame probar con una analogía.

Piense en una CPU como una ciudad bastante grande, pero la ciudad está aislada en una isla. Esta ciudad tiene algunas conexiones de puentes con el mundo exterior y todo pasa por esos puentes. La ciudad tiene una red eléctrica sustancial, que proporciona una buena potencia uniforme. La ciudad tiene una torre de reloj central, que marca el tiempo regularmente.

Dentro de esta ciudad hay almacenes (registros), plantas de fabricación (Unidades de procesamiento) y Operadores (Unidades de control). Por supuesto, hay calles que conectan todo esto (muchas, muchas calles). Los automóviles en la calle transportan los materiales para su procesamiento por la ciudad (comandos y datos de la máquina).

La ciudad también tiene una excelente red (o sistema telefónico, si lo prefiere) y toda la comunicación sobre lo que está sucediendo se realiza aquí.

Todo en la ciudad es manejado por el reloj. El reloj señala cuándo sucederán las cosas. Los autos en la calle se mueven muy rápido, pero se alinean en colas esperando ser cargados y descargados.

A primera hora de la mañana, llega una llamada que solicita la fabricación de algo. Por lo tanto, se dispensa un automóvil para recoger los comandos necesarios para fabricar los productos necesarios. Mientras eso sucede, pueden aparecer otras llamadas que provocan el envío de más automóviles. Esto lleva tiempo, pero algunos de los autos deben descargarse en un orden determinado (no necesita el atasco antes de que el pan esté listo). Son los operadores los que se aseguran de que las cosas fluyan correctamente entre las plantas de fabricación.

Algunos de los autos tienen que recoger materiales para las instrucciones de uso (madera, clavos, tuberías, etc.). Se necesita mucho menos tiempo para obtener información desde fuera de la ciudad que desde un almacén dentro de la ciudad, por lo que cualquier material temporal que se pueda almacenar se almacena en el almacén. Sin embargo, el almacén solo puede almacenar una cantidad relativamente pequeña de producto, relacionado con el almacenamiento en el mundo fuera de la ciudad, por lo que algunos productos intermedios deben enviarse, solo para ser devueltos en unos pocos días más tarde. A veces se envían almacenes enteros fuera de la ciudad para su custodia, y luego se devuelven a los mismos almacenes donde estaban originalmente (cambio de contexto).

La mayoría de las plantas de fabricación son duplicados de otras. Mientras uno de ellos procesa sus instrucciones y hace lo que sea necesario, los autos pueden alinearse. En estas situaciones, los operadores enrutan estos automóviles a otras plantas idénticas para su procesamiento. A veces, los automóviles están marcados para ser manejados solo por una determinada planta. Otras veces, los automóviles son desordenados por los operadores.

De día en día, o incluso minuto a minuto, las plantas de fabricación no saben lo que van a producir. Tienen que estar listos para cualquier cosa. Algunas de las plantas de fabricación tienen un solo propósito (FPU), pero lo hacen muy rápidamente. No recuerdan lo que sucedió antes o lo que vendrá después, a menos que esos hechos estén almacenados en un almacén. No es necesario solicitar materiales antes de que sean necesarios, pero a veces los operadores pueden adivinar qué materiales o instrucciones pueden necesitarse a continuación (dejar de lado acciones pasadas y su propio conocimiento). Si están equivocados, estos materiales se desperdician, pero son correctos más a menudo de lo que están equivocados (¡vaya!).

Todas las calles de esta ciudad son de vital importancia. Si se pierde un solo producto o, a veces, llega tarde, se debe reiniciar todo el proceso. El diseño de estas calles depende de los comités de planificación y requiere mucho trabajo duro. Los almacenes, por el contrario, son relativamente simples, pero hay muchos de ellos.

En esta analogía, todavía simplifiqué muchísimo. Los procesadores son bestias complejas con mucho caos organizado dentro de ellos. Me centré en los procesadores de “propósito general” que consideramos CPU, pero hay otras clases de procesadores. Podrías pasar varios años de tu vida aprendiendo cómo funcionan los procesadores de proa a popa, pero es de esperar que la analogía anterior con las otras excelentes respuestas dadas te ayudará a apreciar lo que está sucediendo allí.

En primer lugar, un procesador no está conectado al azar ni tiene nada de mágico . Un procesador es en gran medida una disposición intrincada de transistores, condensadores y diodos.

Es posible que desee visitar http://www.Visual6502.org .

“por arte de magia”. Buena palabra. También es mágico para Meeven, aunque llevo 50 años diseñando estas cosas. Lo primero: esos pedazos de plástico y cables que ves no son lo que está haciendo el trabajo, solo contenedores protectores, interconexiones y energía. Dentro de esa pieza de plástico hay, en estos días, miles de millones de circuitos de transistores, y son esos los que hacen el trabajo real. Cuando comencé, el plactic ni siquiera existía, y los primeros solo tenían una docena de circuitos. Coma un largo camino.

Cómo funcionan esos circuitos y logran la computación requiere la comprensión de dos temas: cómo funcionan los semiconductores (transistores, FET y diodos) y álgebra booleana. Tampoco intentaré enseñar en este pequeño espacio (no creo que sea posible, tal vez alguien más pueda intentarlo), pero estudie esos temas y luego regrese.

De lo que aprendí en Arquitectura de Computadores en mi curso de posgrado,
El procesador utiliza ampliamente los circuitos electrónicos que ejecutan ” instrucciones de programas almacenados “. Se compone principalmente de dos partes: una unidad de control y una unidad aritmética / lógica (ALU).

Una unidad de control es como un líder de orquesta. Envía señales eléctricas a toda la computadora para ejecutar las instrucciones del programa almacenado. Debe comunicarse con ALU y la memoria en particular. Lo que hay que tener en cuenta aquí es que no ejecuta ninguna instrucción en sí misma, sino que solo dirige a otras partes del sistema para que lo hagan.

Una unidad aritmética / lógica es un circuito digital que realiza operaciones aritméticas básicas (+, -, *, /) y operaciones lógicas (>, <, =). Por lo que sé de la clase de electrónica digital, puede realizar estas operaciones utilizando puertas básicas ( y, o, no, ni, nand, xor, etc.) para realizar en el mundo binario. Puede ver sus detalles estudiando sumador binario, medio sumador, etc.

El procesador también accede a los registros (una memoria muy rápida) y son de diferentes tipos. Principalmente hay un acumulador que almacena los resultados de los cálculos, un registro de dirección que realiza un seguimiento de los datos / instrucciones en la memoria, un registro de almacenamiento que contiene datos temporales mientras se computa y un registro de propósito general que se utiliza para muchas funciones.

Básicamente, un procesador es una integración a gran escala de circuitos digitales y el corazón tiene bits (0 y 1, dos niveles de voltaje que lo controlan).

Y otro curso interesante al que me sometí fue Microprocesadores en los que codificamos en lenguaje ensamblador / instrucciones de la máquina en el chip Intel 8085 con 16 MB de memoria. Te sorprenderá saber la cantidad de programas y cálculos que puedes hacer en un procesador tan simple con un conjunto de instrucciones limitado y memoria limitada.

Me temo, es todo lo que puedo pensar. Estoy seguro de que alguien más lo explicará mejor.

El concepto básico es una máquina de estados: hay un conjunto de entradas binarias que se transforman en un conjunto de salidas, algunas de las cuales se convierten en entradas para el siguiente ciclo de reloj. Estas máquinas de estado son bastante modulares, se duplican muchas veces y se anidan jerárquicamente. La “transformación” se debe a los transistores conectados por el metal (¡lo cual es altamente no aleatorio!) Las disposiciones más simples de los transistores y el cableado no aleatorio se llaman “compuertas”, y están compuestas para formar unidades más interesantes, como sumadores, registros, etc., y aquellos compuestos para formar núcleos.

Por ejemplo, un bloque de construcción básico podría ser incrementar un número; el número podría ser un puntero de instrucción, obtener la siguiente instrucción en su programa, o tal vez sea un contador de bucle. Visto como una máquina de estado, tiene algunas entradas (el valor actual) y se le pide que produzca el siguiente valor mayor. Incrementar un número de varios bits es sencillo: la salida consta de un bit y un carry; el siguiente bit más significativo toma el carry y su bit de entrada actual y calcula su bit de salida correspondiente (incluido el carry). Esto describe la forma en que funciona una versión simple de un sumador; hay máquinas de estado correspondientes que puede usar para componer un multiplicador, o para realizar operaciones a nivel de bit y / u operaciones, etc. Este concepto también incluye elementos de memoria (una máquina de estado que sigue produciendo la misma salida hasta que se le dan dos entradas: un comando para cambiar ( a menudo llamado “habilitar” o “escribir”) y un nuevo valor para cambiar.

Estas piezas están compuestas para formar unidades más grandes que aún puede considerar máquinas de estado: el todo no “comprende” los datos en absoluto, en ningún sentido. Las computadoras solo tienen entradas, estado y salidas; todo el comportamiento interesante se produce porque las entradas cambian el estado y el “tamaño” del estado es muy, muy grande. Tenga en cuenta que si solo tiene 1 kilobit de estado, el tamaño del espacio de estado es 2 ^ 1024; esa es la cantidad de salidas únicas que puede generar. Y los sistemas reales tienen mucho más de 1 kb de estado (aunque también es cierto que debido a la modularidad / composición mencionada anteriormente, gran parte de ese espacio de estado nunca se alcanza).

Probablemente aprendiste a sumar, restar, multiplicar, etc. en la escuela primaria. Para hacerlo, memorizó las tablas de sumar y multiplicar para un solo dígito, y se le enseñó a escribir dígitos en patrones específicos en una hoja de papel y aplicar ciertas reglas (sustitución, acarreo, etc.) para obtener una respuesta correcta.

También le enseñaron algunos de los conceptos más abstractos detrás de la aritmética. A + B = B + A; unos, decenas y cientos de lugares; etc.

Sin los conceptos detrás de la aritmética, aún sería capaz de calcular “mágicamente” la respuesta correcta, pero todos esos números en papel se verían bastante aleatorios.

Los chips de computadora de hoy son tan grandes y complejos (como en miles de millones de transistores) que es imposible para cualquier mente humana entender cómo funcionan sin usar varias capas de conceptos abstractos. No podrían haber sido diseñados sin estos conceptos.

Entonces, si desea saber cómo funcionan los procesadores desde cero, debe aprender acerca de los transistores, las puertas lógicas, los bits / bytes, etc. Si no desea hacer esto, probablemente sea mejor pensar que las computadoras son mágicas .

Los procesadores realmente no “entienden” los datos. Siguen un conjunto de instrucciones, ciega y estúpidamente, como un turista con un GPS conduciendo hacia un río. La comprensión, si la hay, está en la forma en que se escriben las instrucciones. Una aplicación moderna, algo así como el programa de reconocimiento facial que permite a Facebook etiquetar automáticamente a sus amigos en fotografías, se basa en el trabajo acumulado de miles de personas que han creado bibliotecas de instrucciones: rutinas para traducir imágenes a números que describen los colores y el brillo, rutinas reconocer líneas, rutinas para reconocer círculos, reconocer que un círculo puede ser un ojo, rutinas para leer y escribir bases de datos, etc. Pero básicamente utilizamos computadoras digitales, por lo que todos los problemas deben expresarse como números; por ejemplo, las fotografías se dividen en puntos de colores usando una paleta finita de colores posibles, para que puedan manipularse como números. Podríamos resolver problemas numéricos en un ábaco antes de tener computadoras, pero las computadoras nos permiten resolverlos mucho más rápido. Una computadora digital es muy poco parecida a un ábaco: una cuenta en una posición significa una y ninguna cuenta significa cero, pero en el chip de la computadora es una carga eléctrica, no una cuenta, por lo que puede moverse mucho más rápido y ocupa mucho menos espacio.