Esta es una pregunta que requiere varios semestres de clases de ingeniería de hardware para comprender a un nivel razonable. No puedo hacer eso en la longitud de una respuesta, pero veré si no puedo resumirlo bien.
Imagen de una caja negra. Esta es la CPU. En un nivel alto, este cuadro solo hace dos cosas:
- Consume insumos.
- Produce salidas.
Podrías decirle a este cuadro, “Agregar 1 y 2.” Le diste tres entradas:
- ¿Cuáles son algunos ejemplos de computación distribuida?
- ¿Qué módulos funcionales de SAP son más relevantes / más cercanos a la informática?
- ¿Cuál es el mayor error cometido por una empresa en la industria informática?
- ¿Cuál es una explicación para los tipos de sistema operativo?
- ¿Cuál es la diferencia entre un proceso y un hilo?
- La instrucción: “agregar”
- Un primer operando: “1”
- Un segundo operando: “2”
Este cuadro producirá una salida (en este caso, probablemente 3).
Si no tiene un título de ingeniería o no está inscrito en un programa, es probable que la composición de este cuadro esté fuera del alcance de esta respuesta. Para aumentar su nivel, la caja consta de compuertas, que permiten que la corriente fluya o impiden que la corriente fluya en función de otro voltaje que se les aplica. Si desea ver ejemplos de cómo se pueden usar para expresar la lógica, busque en Google “NMOS”, “PMOS”, “CMOS”, “Diagramas CMOS”, “Estructura de compuerta XOR”, etc. .
Sin embargo, el punto más importante es que con suficientes transistores, pueden surgir ciertas estructuras e instrucciones más complicadas. En un procesador x86_64 que pueda existir dentro de su computadora portátil, por ejemplo, en lugar de decir “Agregar 1 y 2”, puede decir: “agregue el elemento en la dirección de memoria 0x897E82 y el elemento en la dirección de memoria 0x897EFA y almacene el dar como resultado la dirección de memoria 0x89B78C “. Aquí, le dio cuatro entradas:
- La instrucción: “agregar”
- El primer operando: “el elemento en la dirección de memoria 0x897E82”
- El segundo operando: “el elemento en la dirección de memoria 0x897EFA”
- Qué hacer con el resultado: “almacenar el resultado en la dirección de memoria 0x89B78C”
Estas instrucciones siguen siendo bastante simples, en comparación con el movimiento general y la imagen general en la que la mayoría de las personas piensan cuando visualizan una computadora (aunque todavía son terriblemente complejas en términos de hardware), pero suman. Por ejemplo, si envío una instrucción para almacenar un cierto valor, tal vez 0xFFFFFF, en una determinada dirección de memoria, y esa dirección de memoria corresponde a alguna salida de pantalla, es posible que accidentalmente haya convertido un píxel en una pantalla en blanco.
Esto no parece mucho: la CPU es solo una herramienta complicada que convierte entradas simples en salidas simples. Pero cuando tiene varias de estas instrucciones en paralelo, con miles de millones de ellas por segundo, todos esos pequeños cambios acumulativamente forman los efectos macroscópicos con los que nota e interactúa (y muchos con los que no lo hace).
Como dije, esta no es una explicación completa. No obtendrá una en menos de mil páginas y unos pocos años de trabajo. Pero con suerte, ayuda un poco.