¿Cómo funciona fundamentalmente una computadora?

La mejor manera de imaginar cómo hemos llegado tan lejos en el desarrollo de máquinas complejas como las computadoras es abstraer cosas.

En algún momento de la historia, James Clerk Maxwell había formulado la base (ecuaciones de Maxwell) para la teoría electromagnética actual a partir del trabajo de varias personas.

Luego, Gustav Robert Kirchhoff trabajó en las ecuaciones de Maxwell para darnos las Leyes de Kirchhoff , que son el conjunto básico de ecuaciones que utilizan casi todos los circuitos electrónicos para analizarlos y diseñarlos. Aquí es donde tenemos la teoría del circuito, una aproximación adecuada de la teoría del campo electromagnético específica de los circuitos. Esto nos ayudó a resolver circuitos complejos sin lidiar con la intensa cantidad de matemáticas involucradas con la teoría de campo.

Poco a poco, estos circuitos comenzaron a incluir transistores como los MOSFET , que se utilizan principalmente en las computadoras actuales. Estos transistores se usaron para construir puertas lógicas , básicamente circuitos AND, OR, NAND, NOR y NO lógicos. A 1 significaba lógica alta, 0 significaba lógica cero. es decir, 5 voltios o 0 voltios clásicamente.

Los circuitos digitales se desarrollaron utilizando estas puertas con fines específicos que los ingenieros de VLSI pusieron en un circuito impreso / oblea de silicio. Estos circuitos eran simples sumadores, multiplexores, registros, etc.

La combinación de todos estos circuitos digitales era compleja, por lo que se requería una arquitectura de computadora universal. Intel trabajó en su todavía popular arquitectura x86 para CPU y es lo que es hoy en día debido a sus innovaciones en la arquitectura de computadoras. Esto había comenzado en los años 70. Hoy tenemos una arquitectura popular básica más por ARM.

Ahora, la forma en que funcionaban todos estos circuitos era usando 1 y 0. Las instrucciones fueron diseñadas para hacer operaciones básicas. Por ejemplo, un procesador de 16 bits podría tener sus primeros 4 bits que indiquen si sumar (0001), restar (0010), Multiplicar (0100) o dividir (1000); los siguientes 12 bits serían números de 2-6 bits en los que la operación debía realizarse.

Tenía que haber una forma inteligente de dar 1 y 0 a los circuitos sin tener que ingresar cada uno. En los primeros días, usaban cosas como la tarjeta perforada para almacenar los valores binarios. Entonces, un programa que probablemente haga un cálculo de área o algo de ese nivel sería una carta completa. (Imagine tener que ingresar cada bit en él, pero que se puede usar más tarde)

Hemos recorrido todo lo anterior, hoy tenemos millones de programas en un disco duro, miles de millones de transistores en una CPU, miles de núcleos en una GPU y Gigabytes de RAM que le permiten jugar, ver videos y, básicamente, cualquier cosa que hagamos en una computadora. Tenga en cuenta que la teoría electromagnética siempre fue una parte integral en el funcionamiento de cada etapa, pero nunca se usó debido a la abstracción realizada en cada etapa. Algún día llegaremos aquí (espero que no sea así):