¿Cómo se traduce un código guardado en el almacenamiento a través de un editor de texto en un flujo modificado de carga eléctrica dentro de la computadora?

La respuesta de Michael es una descripción excelente y simple de una computadora con un conjunto de instrucciones reducido, o RISC, como un núcleo ARM. Las computadoras más complejas son VLIW, o sistemas de palabras de instrucción muy largas. En estos sistemas complejos, pueden suceder muchas cosas diferentes, de modo que una sola instrucción puede agregar dos valores, almacenarlos en registros específicos para su uso posterior, sin adicional. Accesos RAM; determine un desplazamiento a un registro para recuperar un operando base, y use el campo de operando de la institución como un desplazamiento de la base, y genere la dirección para una rama lógica. La ejecución interna se realiza a través de multiplexores y escaleras que el programador no puede acceder directamente. Un ejemplo heredado sería Univac 1832.

Los campos de instrucción se definieron como tales. Se definieron las instrucciones:

F = Instrucción, como ADD:

a = acumulador para usar. Hay A0-7 u 8 disponibles;

k = qué porción del operando se usaría, 8-, 16-, 32-, bits;

B = qué registro base usar, B0-B7. Uno los usó como una dirección base para listas de operandos, como compensaciones. Estos se incrementan automáticamente cuando se accede.

I = acceso indirecto al operando requerido;

S = registros de estado o base, S0-S7. Estos no se incrementan.

Y = operando, desplazamiento u otro, según la instrucción de tipo. En el ejemplo ADD, este valor se agrega al acumulador designado. Entonces, básicamente, la mayoría de estos bits se usan directamente para cambiar lógicamente números de multiplexores y compuertas combinatorias para que se seleccionen los registros, las escaleras y demás. Esta computadora tenía literalmente cientos de tarjetas de circuitos de circuitos integrados TTL. No tenía un sistema operativo, exactamente. Un programador usó una tarjeta impresa que contenía el conjunto completo de instrucciones, y tuvo que codificar cada instrucción a mano, y hacer coincidir manualmente el flujo lógico con un diagrama de flujo con precisión.

Afortunadamente, hoy en día existen pocos programas que requieran la codificación de la máquina para este detalle, principalmente cosas como los controladores de dispositivos y el código del núcleo.

Así es como funcionó en mi computadora que construí en la década de 1970. El teclado es una red de cables como un tablero de ajedrez. En cada lugar donde se cruzan los cables horizontales y verticales hay un interruptor de botón; cuando lo empuja, los cables horizontal y vertical están conectados. La fila y la columna de cables están conectadas a los pines de E / S en la computadora. La computadora escribe un alto voltaje en cada cable de columna a su vez y lee los cables de la fila. Cuando ve un alto voltaje en un cable de fila, eso significa que presionó esa tecla en particular. Entonces la computadora tiene dos palabras binarias, digamos 010 y 100 (para 64 teclas). Utiliza una tabla de búsqueda para convertir eso a ASCII, y tiene un cable separado para el cambio para que pueda separar A de a. Eso está en un poco de código en una función de biblioteca para “obtener un carácter del teclado”. Luego, en el editor hay un código que dice algo así como “si está en modo de inserción, siga obteniendo caracteres del teclado y escribiéndolos en un archivo”.

Dentro del chip de la computadora, hay un cable conectado a tierra (0 V) y otro conectado a un voltaje de alimentación (5 V, 3 V o 1 V, no importa). Hay transistores, probablemente MOSFET, que conectan un pin de E / S a la tierra y al suministro. Cuando uno se enciende y el otro se apaga, el pin se conduce a alto voltaje y cuando está al revés, se conecta a bajo voltaje. Ambos encendidos, el chip se quema para que el circuito no permita que eso suceda. Ambos apagados, el pin puede ser accionado por una entrada externa (como los cables de la fila), y está conectado a la entrada de otro transistor. Los circuitos digitales funcionan activando y desactivando los transistores, básicamente, y puede pensar en una compuerta AND como dos interruptores de transistores en serie: ambos deben estar encendidos para que la salida esté activada. En un nivel básico, las computadoras están formadas por compuertas de transistores, millones de ellas. Es la forma en que están conectados lo que le da complejidad y función.

En mi computadora de la década de 1970, podría haber señalado todas las instrucciones involucradas en obtener un carácter del teclado y escribirlo en el almacenamiento (una unidad de cinta de cassette o grabadora EEPROM). Podría haber señalado cada cable y chip desde el teclado al microprocesador y al cabezal de la grabadora, pero no dentro del procesador. En otro sistema que utilicé más tarde, hecho de chips de corte de bits, podría haber señalado cada chip de corte, cada registro y un esquema de chip que muestra cada puerta individual. Ahora, eso es absurdo, acabo de comprar placas base y procesadores prefabricados como todos los demás. Pero el principio es el mismo (al menos, a menos que obtengamos computadoras cuánticas con q-bits).

Mi explicación está algunas décadas desactualizada. Las computadoras modernas son demasiado complejas (y secretas) para explicarlas en una respuesta.
Considere un procesador imaginario con las siguientes instrucciones (3 bits por byte):

00 apagado
01 agregar
10 restar
11 tienda

Estas instrucciones se pueden representar con dos cables. Si el cable está cargado, es un 1. De lo contrario, 0
(rojo representa carga)
Ahora debo explicar algunas puertas lógicas.
En primer lugar, Y.
Si ambas entradas están cargadas, la salida está cargada. De lo contrario, la salida no se carga.
Ahora no
La salida es lo opuesto a cualquier entrada.
Ahora, explicaré el autobús. La instrucción se envía a todos los componentes, y el componente decide si ejecutar o no.
Por razones de espacio, estoy saltando el círculo debajo de
El siguiente diagrama debería ilustrar cómo funciona:
Accidentalmente volteé sumar y restar en el diseño, pero entiendes la idea