Bueno, es fácil para las computadoras lidiar con el binario cuando lo piensas porque realmente no ‘entiende’ el binario, solo hace lo que haces para que lo haga.
Como sabe que los números binarios son solo formatos de representación: 1 y 0 no son valores numéricos, sino solo porcentajes del voltaje de la fuente de activación, es decir, un 1 binario o alto generalmente es 100% fuente o 1 ‘de’ fuente y así sucesivamente para bajo binario 0.
Considere esta simple puerta CMOS NAND de dos entradas (suponiendo que sepa cómo funcionan PMOS y NMOS y qué hace NAND).
¿Cómo diría que este circuito de compuerta NAND comprende lo que debe hacer? ¿Tiene algún tipo de autoconciencia, un propósito en la vida si es necesario?
Bueno, la respuesta es simple (tonto, podría agregar): esto hace lo que hace porque realmente lo cableó para hacerlo, es decir, desea que la salida sea baja solo cuando ambas entradas son altas (todos los demás casos son altos) y la P complementada y el par N MOS solo hacen eso. Esto significa que puede construir todas sus puertas lógicas de esta manera.
Aumentemos la apuesta: hagamos un pequeño circuito de transistor que agregue números (o una computadora que solo entienda la suma). . ¿Cómo? Dejaré este maravilloso artículo que explica cómo construir un sumador de transporte de ondulación de manera hermosa. Ver Computadora de 4 bits: esperando el viernes
Lo que hizo fue hacer 2 cosas
- consumir las puertas que hicimos arriba
- conseguir la ayuda de alguna lógica booleana
Voila! hiciste lo que comenzaron con las computadoras Casio (aunque la suya era una calculadora del tamaño de un escritorio, construida con solenoides en 1954–55)
En todos los ejemplos anteriores y en las computadoras en general: solo está organizando sus componentes eléctricos (transistores, condensadores y resistencias) de tal manera que obtenga la salida deseada y básicamente todas las computadoras funcionan de esta manera (bueno, esta disposición que menciono está simplificado en exceso, pero cumple el propósito). Debe proporcionar la entrada en un formato comprensible que sea voltajes (por extensión, números binarios). Después de eso, simplemente interpreta la salida de estos de la manera que desee. Básicamente, su circuito solo está sumando o restando voltajes basados en las viejas leyes probadas de cómo se suman las intensidades de campo eléctrico y los teoremas de la red: es usted quien quiere creer que realmente está sumando números y facilitando su vida.
Saltar a las computadoras que se pueden programar: lo que la gente se dio cuenta fue que, a pesar de lo ingeniosos que son estos circuitos anteriores, en realidad están cableados utilizando vías de cobre / cables / conectores de puente en toda la tienda. Pero, ¿qué sucede si quiero construir un circuito genérico, que realiza una cierta cantidad de operaciones basadas en cualquier entrada cuando solo le doy un código de operación (o código operativo)? Nacimiento de microprocesadores.
Microprocesadores, en los términos más simplistas, es el nombre de una unidad lógica aritmética con una unidad de control, algunos registros y algunos circuitos digitales secuenciales en el mismo chip, para alentar a toda la parte que usted llama ‘entender los números binarios’ y hacer lo que quiero. que hacer La ALU es el corazón (con un par de registros para almacenar valores), con la unidad de control como cerebro. CU contiene un mapa de códigos operativos asignados a operaciones matemáticas que ALU necesita y puede hacer. ALU comprende el tipo de operación de esta unidad de control. ¿Cómo? Trae memoria y programación. Supongamos que emite un comando ADD al procesador. Este ADD es básicamente para usted y solo para usted desde una perspectiva de lenguaje ensamblador. En realidad, este es un valor hexadecimal almacenado en la ROM de la CU como ‘0x8A’. Consulte estos para obtener una lista completa de los códigos operativos 8085 y el tipo de operaciones
http://www.eazynotes.com/notes/m …
8085 / 8085A Mnemonics Opcode Instruction Set Table que incluye la descripción
la unidad de control busca lo que debe emitirse a la ALU en función de este código de operación.
Una vez más, algunas personas maravillosas se tomaron la molestia de construir una computadora desde cero, en nombre de la ciencia y la humanidad: cómo construir una computadora de 8 bits. Si tiene lo que se necesita (paciencia, resistencia y muchos cables, placas de pan de IC y, por supuesto, tiempo), intente esto usted mismo (aunque diría que una cosa más fácil sería tomar el desafío del cubo de hielo, buck desnuda en medio de la Antártida en esta época del año)
Nota al margen: para ver cómo funciona una ALU, consulte esta unidad de lógica aritmética – Wikipedia (gracias Jimmy Wales. Prácticamente hizo que todos fueran merovingios)
La versión TL; DR?
Lo que las computadoras hacen con los voltajes es lo que usted les dice que hagan, que es básicamente donde comienza la fuente de toda la programación, lo que le da la impresión de que las computadoras entienden los números binarios. Si mi computadora me entendiera (lo que la mayoría de la gente no entiende), consideraría seriamente casarme con ella.
EDITAR: enumeré 8085 arriba solo porque es uno de los procesadores más fáciles de entender. No quería intimidar aún más al tipo ya embrujado con EAX y EPX con un procesador de canalización de escenario Pentium 20 con instrucciones como ‘PUNPCKHDQ’ que asustaría a los que preguntan esto. Aquí hay una referencia a Pentium 4 IS (juego MMX incluido) http://cse.unl.edu/~goddard/Cour …
En caso de que te guste cómo funciona 8085, es hora de que aprecies la arquitectura x86 y x64. 😉