¿Cómo entienden las computadoras binarias?

En el sistema informático, todos los mecanismos de trabajo dependen de las técnicas de encendido y apagado para leer / escribir datos. Un ENCENDIDO corresponde a 1 y APAGA la O correspondiente. De esta manera, todos los datos se almacenan en la memoria. Los datos de entrada se convierten en señales digitales y pasan de componente a componente, y al almacenar dispositivos (memoria o registro) se convierten en códigos binarios o de máquina.

Ejemplo :

Supongamos que tenemos que escribir BIKAS, se necesita 5 bytes para almacenarlo. Cuando presionamos letras BIKAS, estas letras se convierten en señales digitales y se envían a la memoria a través del bus, donde se convierten en números binarios. En la memoria principal, los flip-flops se usan para hacer celdas de almacenamiento, las celdas usan la técnica ON y OFF para almacenar binarios.

// ahora esta es una convención estándar para representaciones.

Dígitos binarios 1010 0010 para B

Dígitos binarios 1010 1001 para I

Binario 1010 1011 para K

Binario 1010 0001 para A

Binario 1011 0011 para S

Las celdas de memoria se utilizan para almacenar datos y cuando los datos se actualizan, se almacenan los siguientes datos. Vemos que las celdas de memoria se usan una y otra vez para almacenar datos en forma binaria.

Si almacenará decimales, el tamaño de la memoria no será menor que el espacio y su portabilidad puede terminarse.

Cuando decimos que las computadoras “entienden”, en realidad no queremos decir que las computadoras entiendan .

Voy a elaborar algunas analogías que podrían ser de mal gusto y prisa probable.

¿Sabes cómo cuentas las cosas? ¿Como estas líneas que se pueden usar para dibujar caracteres del 0 al 9 en un papel, y se pueden organizar de diferentes maneras para formar números más grandes?

Ahora, piense de esta manera: su comprensión de la cantidad es a través de los ojos de los números.

¿Es A más grande que B? ¿Qué tan grande es A?

¿Es más barato llevar un Uberpool a la oficina o necesita llegar 10 minutos antes porque tiene una reunión importante? ¿Recibo todos los comestibles a principios de mes, o hago un viaje al supermercado una vez por semana; porque mi refrigerador no está en buen estado?

Puede tener sentido de la mayoría de estas decisiones, porque tiene una comprensión básica de los números decimales.

Usted sabe que 3 es mayor que 1, 1 viene después de 0, 9 es el último dígito único, 2 x 2 es 4, etc.

Ahora pregúntate, ¿cómo entendiste esto? ¿Cómo llegaste a poseer esta información sobre las relaciones entre los números decimales?

Porque te lo dijeron . Porque lo definimos para ser .

¿Sabes por qué 2 + 2 = 4? ¿O por qué hay 10 de esos dígitos? Porque decidimos que debería ser así, y compartimos esta noción con otros hace mucho tiempo; y desde entonces, simplemente elegimos seguir esta noción generación tras generación.


Las computadoras no entienden las cosas. No tienen sus propias mentes.

En cambio, algún programador deja algunas instrucciones para que una computadora las ejecute.

El diseño de hardware desde los primeros días de la informática sugirió que sería más fácil diseñar en binario. La arquitectura sería fácil de mantener, actualizar, etc. Se interconectaría muy bien con los niveles de voltaje eléctrico subyacentes.

Y los programadores pueden dejar instrucciones personalizadas de manera consistente.

Sin embargo, esto no es una limitación . Puede darle a la computadora un poema para que lo guarde, y lo convertiría a binario, lo guardaría. Cuando quiera volver a verlo, lo recuperará y pintará en la pantalla o imprimirá en papel su poema favorito.

Para el usuario final, no hay diferencia.


Si no está satisfecho con esta explicación mundana, la verdad es aburrida.

¿Es posible que aún desee saber por qué no utilizamos simplemente el sistema de números decimales en lugar de binario?

Es una gran opción, porque un rango de voltaje es fácil de clasificar en dos niveles de voltaje: alto por encima de cierto valor y bajo por debajo de cierto valor. La computadora almacena un 1 o 0 en consecuencia.

Clasificar el mismo rango en 10 niveles separados sería anarquía. Debido a que el rango es pequeño, y los valores de voltaje reales pueden fluctuar a lo largo de la distancia; podría enviar un 5, pero probablemente recibiría un 4 o un 6. Y al enviar, me refiero a enviar una distancia.

Esto podría ser a través de una red, o desde una ubicación de memoria en el disco duro a otra ubicación, o incluso a través del bus del sistema.

También tenga en cuenta que no hay ninguna ventaja en hacer esto. Podemos expresar todo en binario, así como decimal, así como cualquier otro sistema de números.

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

  1. consumir las puertas que hicimos arriba
  2. 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. 😉

Simplificado mucho, también se puede preguntar ¿cómo entiende mi bombilla binaria? Cuando el interruptor está encendido, es 1 y la luz está ENCENDIDA. Cuando el interruptor está apagado, es 0, la luz está apagada.

Ahora, combine esto con su ventilador (y el interruptor del ventilador). El interruptor de la luz y el interruptor del ventilador combinados pueden crear estados (ambos encendidos), (ambos apagados), (luz encendida, ventilador apagado) y (luz apagada, ventilador encendido) en su habitación. Por lo tanto, su complejo sistema de 2 interruptores se puede utilizar para alimentar el sistema inteligente y complejo de combo de luz y ventilador.

Por supuesto, la computadora es una versión mucho más glorificada de esto.

Binario significa 2 Es decir, si se vuelve a utilizar el lenguaje binario, solo tenemos 2 alfabetos y estos se denotan como 0 y 1 para comprender el ser humano. Podemos decir incluso x o y en lugar de 0 y 1, pero la idea es la misma. Pero en una computadora que está hecha de circuitos electrónicos, no hay 0 o 1, sino solo 2 estados posibles … el circuito está abierto (la corriente no fluye) o el circuito está cerrado (la corriente fluye) como un interruptor eléctrico. Ahora, para algunos circuitos, hay 2 estados solo como en el ejemplo anterior, excepto que el estado 0 es, digamos .25 v (bajo) y 1 estado es .50 v (alto) o incluso cualquier otra especificación de voltaje o corriente. Ahora tenga en cuenta que si es .60 v, entonces, ¿a qué estado pertenece? Responda, el circuito funcionará mal ya que solo se definen 2 estados. La idea es que la computadora entienda el idioma que puede tener solo 2 estados a diferencia del inglés con 26 estados.

Puede preguntar por qué solo 2 estados, es porque el circuito anterior fue diseñado para tener 2 estados activados o desactivados.