¿La memoria de la computadora registra el estado binario cero?

1

Hace dos años que empecé a leer sobre electrónica y circuitos de computadoras. Me enamoré de las computadoras caseras y la posibilidad de construir una por mi cuenta. Verá: Cuando alguien explica la memoria de la computadora, dice "Hay y no hay" "Hay Voltaje (1) o no hay voltaje (0)"

¿Hay alguna manera en que las computadoras graben el estado cero? (Si es con diferentes voltajes, ¿cómo lo reconocen?)

Por ejemplo, si quiero crear una cinta de papel en serie, voy a colocar un agujero donde hay uno y no lo haré cuando haya un cero. Pero mi computadora no reconocerá esa "falta de agujero" como un cero, y al leer:

Si la señal original es: 1010

Luego en la cinta es: 1 (Nada) 1 (Nada)

Qué resulta en los datos finales como: 11 (es decir, no es correcto)

Sé que las computadoras usan algo como la sincronización o las señales de control, ya sea que deban ser datos o no. ¿Puede alguien explicarme eso?

Gracias por ahora.

PD: No sé si es el mejor foro. Pero como mi pregunta es sobre la forma electrónica en que las computadoras leen y escriben datos, decidí publicar aquí. ¡No me mates, por favor T.T!

    
pregunta coldSunday

4 respuestas

3
  

Si la señal original es 1010, en la cinta es 1 (Nothing) 1 (Nothing), lo que resulta en los datos finales como 11. (Es decir, no es correcto).

Ha detectado el problema con la transmisión serial binaria básica. Hay dos formas comunes de solucionar esto:

  • Envía un pulso de reloj separado junto con los datos. En su ejemplo de cinta de papel, esto significaría perforar una segunda línea de agujeros, uno por bit. Ahora monitoreamos ambas líneas de agujeros y los agujeros de "reloj" nos dicen cuándo buscar un agujero de datos. Si encontramos uno, grabamos un '1' y si no lo hacemos, anotamos un '0'. Este esquema se llama transmisión de datos síncrona.

Figura1.Transmisiónasíncronadedatosenserie.Fuente: Wikipedia .

  • Acuerde una velocidad de datos (consulte la velocidad de transmisión). En este esquema, ambos estamos de acuerdo en que el '1' y '0' van a estar a una cierta distancia o tiempo separados. En su cinta de papel que podría ser un paso de 3 mm. Todo lo que se requiere es iniciar la máquina, perforar un orificio para obtener un bit de 'inicio' y luego perforar o no perforar los bits subsiguientes de acuerdo con el patrón de datos. Un problema con esto es que cualquier error en la velocidad de alimentación se acumulará y el tiempo se apagará. Para evitar esto, un bit de inicio se transmite de vez en cuando. Para RS232, por ejemplo, los datos se dividen en palabras de 7 u 8 bits y cada una está precedida por un bit de inicio ('1') y termina con uno o dos bits de parada ('0'). Esto permite que el receptor vuelva a entrenar. Este método se llama transmisión asíncrona.

Otra nota que puede ayudar a su comprensión: cuando se recibe el bit de inicio, el receptor esperará un ciclo y medio y comenzará a muestrear en el centro de los bits subsiguientes. De esa manera, si los relojes son ligeramente rápidos o lentos, el muestreo debería estar dentro del ancho de bits y permitir una recuperación de datos precisa.

    
respondido por el Transistor
2

Un error común es que puede tener un punto en un circuito sin "voltaje". Eso no es realmente cierto, y cuando la gente dice que generalmente significa que hay un voltaje de 0V. Otra cosa importante a recordar es que cuando hablamos de la tensión en un punto en un circuito, realmente nos referimos a la diferencia de tensión entre ese punto y un punto de referencia común que generalmente es llamada tierra.

Entonces, cuando decimos que los datos binarios se almacenan como voltajes, lo que realmente queremos decir es que un '1' lógico es un voltaje relativamente alto y un '0' es un voltaje relativamente bajo, donde de nuevo todos los voltajes se miden con respeto al suelo. Para un circuito digital que funciona a 3.0V, cualquier voltaje superior a 2.0V puede interpretarse como un '1' y cualquier voltaje menor a 1.0V puede interpretarse como un '0'.

Por supuesto, si está transmitiendo datos, debe haber una forma de saber cuándo está presente un bit de datos válido en la línea de señal. Este es un problema separado de cómo se almacenan los datos como voltajes, y @Transistor hizo un buen trabajo al abordar esos problemas.

    
respondido por el Elliot Alderson
1

Como has entrenado, obviamente, tu computadora tiene que poder almacenar 0s. Puede usar un símbolo diferente para 0, o puede usar la falta de un 1 para almacenar un 0, pero en ese caso, la computadora debe saber dónde puede estar el 1 para que pueda indica entre un 0 y algo que no es realmente parte de los datos.

En señales electrónicas, podemos usar un voltaje para 1 y no voltaje para 0. La clave para esto es que la computadora solo está buscando el voltaje en los cables de señal . No hay voltaje entre los cables o en la caja de plástico, pero no es un problema porque la computadora no está mirando allí.

En la celda de memoria SRAM más simple, por ejemplo, tiene dos puertas, una de las cuales está activada y la otra está desactivada. Usted elige un lado y dice "este es el lado que almacena el bit". Si ese lado está en un 1, si ese lado está en un 0, no hay otra posibilidad (ambas puertas no pueden estar apagadas, a menos que la computadora esté desenchufada) y no hay posibilidad de mirar en el lugar equivocado (la computadora no se va a confundir e intentar leer desde donde no hay una celda de memoria). Así que básicamente no hay posibilidad de un error de este tipo.

En la cinta y en los medios de disco, y en las señales seriales en general, la computadora debe tener cuidado de mirar donde hay datos. Hay muchos enfoques diferentes para esto.

Quizás lo más simple es tener solo dos líneas de orificios en la cinta de papel y decir que un orificio en el lado izquierdo es un 1 y un orificio en el lado derecho es un 0.

Los métodos de codificación más complicados permiten que la computadora "bloquee" el espacio entre los orificios. Si tienes un agujero cada medio centímetro y recorres medio centímetro sin ver un agujero, es un 0. Pero, ¿qué pasa si tu computadora mide 0.499 cm en lugar de 0.500? O, ¿y si la persona que escribió la cinta la midió como 0.499 cm? Entonces podría perder la sincronización y vería un 0 extra de vez en cuando, o perdería un 0. Por lo tanto, es necesario que haya al menos un agujero de vez en cuando, para que la computadora pueda restablecer su medición para que no llegue demasiado lejos. fuera de sincronía. La ventaja de este tipo de métodos, en comparación con el método de dos pistas, es que puede obtener casi el doble de datos en el mismo espacio. (También puedes ir por tiempo, en lugar de distancia)

En el protocolo UART, tiene un bit que siempre está 1, delante de cada byte, y los 8 bits en el byte están cronometrados. El bit 1 (que sería un agujero en su caso) sincroniza al lector durante los siguientes 8 bits (al menos) y el lector sabe que no debe enviar el bit adicional a la computadora.

Otro enfoque podría ser usar un tipo de modulación de frecuencia, donde (digamos) un agujero a menos de 0.5 cm del último agujero es un 1, y un agujero a más de 0.5 cm del último agujero es un 0.

    
respondido por el immibis
-1

Hay varios tipos diferentes de memoria de computadora, y todos estos varían en los detalles, pero los principios básicos son los mismos: se usan diferentes voltajes para representar ceros y unos, y se usa un circuito de comparación de voltaje para detectar estas diferencias.

Para una explicación concreta, me limitaré a un solo tipo de memoria y un tipo de detector de voltaje, en este caso el tipo de memoria que se llama "RAM dinámica" o "DRAM" y el tipo de circuito llamado "low" voltaje CMOS "o" LVCMOS ".

Existen varios tipos de DRAM, pero el principio básico detrás de ellos es el mismo, por lo que podemos ignorar esas diferencias aquí, lo que significa que DRAM es el tipo de memoria más común. La memoria principal de su computadora es casi seguro que usa algún tipo de DRAM.

DRAM almacena el voltaje que se usa en cada bit de memoria en un capacitor (muy pequeño). Cuando el sistema necesita leer el bit de la memoria, ese condensador se conecta a un amplificador que produce un voltaje que luego se usa para controlar la lógica que usa el bit.

También hay varios tipos de sistemas LVCMOS, dependiendo de la tensión en la que se ejecutan. Muchas computadoras tienen procesadores que funcionan con 1.8V o 1.5V, por ejemplo. Este voltaje se llama "VDD". En un sistema lógico LVCMOS, generalmente un bit se considera un 1 si el voltaje es mayor que 0.7 * VDD, y un 0 si es menor que 0.2 * VDD. Si el voltaje está entre estas dos bandas, es posible que no se reconozca correctamente.

En cuanto a cómo se reconoce, los sistemas LVCMOS se construyen utilizando dos tipos diferentes de transistores: FET de canal N y FET de canal P. Ambos transistores tienen una entrada de puerta que los controla y un canal entre su fuente y las conexiones de drenaje que conducen o no conducen (es decir, son interruptores controlados por voltaje). Si una entrada está conectada a una puerta FET de canal N, entonces el canal de ese FET se conducirá cuando el voltaje de la entrada sea alto; para un FET de canal P, se realizará cuando el voltaje de la entrada sea bajo. Esto se usa para variar si la salida del circuito está conectada a VDD o a 0 V en diferentes condiciones.

En esta descripción, estoy descuidando algunos casos extraños, pero vale la pena señalar que esta no es necesariamente la única forma de hacer las cosas, y hay diferentes sistemas que funcionan de manera diferente. Aquí hay algunos ejemplos:

  • No necesariamente tiene que usar solo 2 niveles de voltaje para almacenar 1 bit de datos en una sola celda de almacenamiento; hay otras opciones Por ejemplo, muchos dispositivos de memoria flash baratos utilizan un tipo de flash llamado "MLC" o "celda de varios niveles"; estos tienen más de 2 niveles de voltaje y los utilizan para almacenar más de 1 bit, por ejemplo. una celda de almacenamiento MLC podría tener 0.2V para representar 00, 0.8V para representar 01, 1.4V para representar 10 y 2.0V para representar 11.
  • Podría usar dos señales de voltaje separadas para representar un solo bit; en ese caso, puede hacer que el bit entre en su circuito por dos cables separados, y luego tiene un 1 si el cable A tiene un voltaje más alto que el cable B, o 0 si el cable B es más alto que el cable A. Esto proporciona una forma interesante de saber si los datos están presentes o no: si los voltajes son los mismos, no tiene datos válidos. Esto se usa principalmente para la comunicación entre dispositivos separados (por ejemplo, USB, HDMI y muchas otras interfaces modernas que usan este tipo de señal), pero también se está volviendo más común dentro de los sistemas informáticos.
  • Hablas de querer construir una computadora casera, así que señalaré que muchas computadoras caseras específicamente no usan DRAM, pero con frecuencia usan Static RAM, simplemente porque es más fácil Interfaz con, aunque es más caro y solo está disponible en cantidades más pequeñas. La RAM estática almacena su bit de memoria con dos transistores cuyas puertas están conectadas a los canales de cada uno, de modo que cada vez que uno de los transistores tiene su canal activado y el otro desactivado; entonces un 1 o 0 se determina por cuál de ellos está actualmente activado.
respondido por el Jules

Lea otras preguntas en las etiquetas