1 votos

¿La memoria del ordenador registra el estado binario cero?

Hace dos años que empecé a leer sobre electrónica y circuitos informáticos. Me enamoré de los ordenadores caseros y de la posibilidad de construir uno por mí mismo. Ya lo verás: Cuando alguien explica la memoria de un ordenador, dice "Hay y no hay" "Hay voltaje (1) o no hay voltaje (0)"

¿Hay algún modo de que los ordenadores registren 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 poner un agujero donde haya un uno, y no lo voy a hacer cuando haya un cero. Pero mi ordenador no reconocerá esa "falta de agujero" como un cero, y al leer:

Si la señal original es: 1010

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

Wich resulta en los datos finales como: 11 (Es decir, no es correcto)

Sé que los ordenadores utilizan algo así como señales de temporización o de control, independientemente de que deban ser datos o no. ¿Puede alguien explicármelo?

Gracias.

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

3voto

transistor Puntos 2074

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

Has detectado el problema con la transmisión binaria básica en serie. Hay dos formas comunes de evitarlo:

  • Envía un impulso de reloj separado junto con los datos. En el ejemplo de la cinta de papel, esto significaría perforar una segunda línea de agujeros, uno por bit. Ahora controlamos ambas líneas de agujeros y los agujeros del "reloj" nos indican cuándo buscar un agujero de datos. Si encontramos uno, grabamos un "1" y si no, un "0". Este esquema se denomina transmisión síncrona de datos.

enter image description here

Figura 1. Transmisión asíncrona de datos en serie. Fuente: Wikipedia .

  • Acuerde una velocidad de transmisión de datos (véase velocidad en baudios). En este esquema, ambos estamos de acuerdo en que los "1" y los "0" van a estar separados por una cierta distancia o tiempo. En tu cinta de papel puede ser un paso de 3 mm. Todo lo que hay que hacer es poner en marcha la máquina, perforar un agujero para un bit de "inicio" y luego perforar o no los bits siguientes según el patrón de datos. El problema es que cualquier error en la velocidad de avance se acumulará y se perderá la sincronización. Para evitarlo, se transmite un bit de inicio cada cierto tiempo. En RS232, por ejemplo, los datos se dividen en palabras de 7 u 8 bits, cada una precedida de un bit de arranque ('1') y terminada con uno o dos bits de parada ('0'). De este modo, el receptor puede volver a entrenarse. Este método se denomina transmisión asíncrona.

Una nota adicional que puede ayudar a su comprensión: Cuando se recibe el bit de inicio el receptor esperará un ciclo y medio y comenzará el muestreo en el centro de los bits siguientes. De esta forma, si los relojes son ligeramente rápidos o lentos, el muestreo se mantendrá dentro de la anchura del bit y permitirá una recuperación precisa de los datos.

2voto

dahulius Puntos 11

Un error muy común es creer que en un circuito puede haber un punto "sin tensión". Eso no es realmente cierto, y cuando la gente dice eso normalmente quiere decir que hay una tensión de 0V. Otra cosa importante que hay que recordar es que cuando hablamos de tensión en un punto en un circuito nos referimos realmente a la tensión diferencia entre ese punto y un punto de referencia común que suele llamarse tierra.

Por lo tanto, 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 respecto a tierra. Para un circuito digital que funciona a 3,0 V, cualquier tensión superior a 2,0 V podría interpretarse como un "1" y cualquier tensión inferior a 1,0 V podría interpretarse como un "0".

Por supuesto, si transmitiendo entonces debe haber una manera de saber cuándo un bit de datos válido está presente en la línea de señal. Este es un tema aparte de cómo se almacenan los datos en forma de voltajes, y @Transistor hizo un buen trabajo al tratar estos temas.

1voto

Claudia Puntos 6

Como has averiguado, obviamente, tu ordenador hace tienen que ser capaces de almacenar 0s. Se puede utilizar un símbolo diferente para el 0, o se puede aprovechar la falta de un 1 para almacenar un 0 - pero en ese caso, el ordenador tiene que saber dónde están los 1's podría ser para que pueda distinguir entre un 0 y algo que no forma parte de los datos.

En las señales electrónicas, podemos utilizar un voltaje para 1 y ningún voltaje para 0. La clave de esto es que el ordenador sólo busca voltaje en los cables de señal . No hay voltaje entre los cables, o en la carcasa de plástico, pero no es un problema porque el ordenador no está buscando allí.

En la celda de memoria SRAM más sencilla, por ejemplo, hay dos puertas: una activada y otra desactivada. Se elige un lado y se dice "este es el lado que almacena el bit". Si ese lado está encendido es un 1, si ese lado está apagado es un 0. No hay otra posibilidad (ambas puertas no pueden estar apagadas, a menos que el ordenador esté desenchufado) y no hay posibilidad de buscar en el lugar equivocado (el ordenador no va a desconectarse e intentar leer de donde no hay una célula de memoria). Así que básicamente no hay posibilidad de una metedura de pata de este tipo.

En los soportes de cinta y disco, y en las señales serie en general, el ordenador tiene que tener cuidado de mirar dónde hay datos. Hay un montón de enfoques diferentes para esto.

Quizá lo más sencillo sea tener dos líneas de agujeros en tu cinta de papel, y di que un agujero en el lado izquierdo es un 1 y un agujero en el lado derecho es un 0.

Los métodos de codificación más complicados permiten al ordenador "fijar" el espaciado de los agujeros. Si tienes un agujero cada medio centímetro y pasas medio centímetro sin ver un agujero, eso es un 0. ¿Pero qué pasa si tu ordenador lo mide como 0,499 cm en lugar de 0,500? ¿O si la persona que escribió la cinta la midió como 0,499 cm? Entonces podría desincronizarse y verías un 0 de más de vez en cuando, o te perderías un 0. Por lo tanto, tiene que haber al menos un agujero de vez en cuando, para que el ordenador pueda restablecer su medición y no se desincronice demasiado. La ventaja de este tipo de métodos, en comparación con el método de dos pistas, es que se puede obtener casi el doble de datos en el mismo espacio. (También se puede ir por tiempo, en lugar de distancia)

En el protocolo UART, tienes un bit que siempre es 1, delante de cada byte, y los 8 bits del byte están temporizados. El bit 1 (que sería un agujero en tu caso) hace que el lector esté sincronizado para los siguientes 8 bits (al menos) y el lector sabe que no debe enviar el bit extra al ordenador.

Otro enfoque podría ser utilizar una especie de modulación de frecuencia, en la que (digamos) un agujero situado a menos de 0,5 cm del último agujero es un 1, y un agujero situado a más de 0,5 cm del último agujero es un 0.

-1voto

Rhys Puntos 2173

Existen múltiples tipos de memoria de ordenador, y todos ellos varían en los detalles, pero los principios básicos son los mismos: se utilizan tensiones diferentes para representar ceros y unos, y se emplea un circuito de comparación de tensiones para detectar estas diferencias.

Para una explicación concreta, me ceñiré sólo a un tipo de memoria y a un tipo de detector de tensión, en este caso el tipo de memoria que se llama "RAM dinámica" o "DRAM" y el tipo de circuito que se llama "CMOS de baja tensión" o "LVCMOS".

Existen múltiples tipos de DRAM, pero el principio básico que las sustenta es el mismo, por lo que podemos ignorar aquí esas diferencias, lo que significa que la DRAM es el tipo de memoria más común. Es casi seguro que la memoria principal de tu ordenador utiliza algún tipo de DRAM.

La DRAM almacena el voltaje utilizado en cada bit de memoria en un condensador (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 se utiliza para accionar la lógica que utiliza el bit.

También hay varios tipos de sistemas LVCMOS, dependiendo de la tensión a la que funcionen. Muchos ordenadores tienen procesadores que funcionan a 1,8 V o 1,5 V, por ejemplo. Este voltaje se denomina "VDD". En un sistema lógico LVCMOS, normalmente un bit se considera un 1 si la tensión es superior a 0,7 * VDD, y un 0 si es inferior a 0,2 * VDD. Si la tensión se encuentra entre estas dos bandas, puede que no se reconozca correctamente.

En cuanto a su reconocimiento, 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 sus conexiones de fuente y drenaje que es conductor o no conductor (es decir, son interruptores controlados por tensión). Si se conecta una entrada a la puerta de un FET de canal N, el canal de ese FET conducirá cuando la tensión de entrada sea alta; en el caso de un FET de canal P, conducirá cuando la tensión de entrada sea baja. Esto se utiliza para variar si la salida del circuito está conectada a VDD o a 0V en diferentes condiciones.

Estoy omitiendo en esta descripción algunos casos de impar, pero vale la pena señalar que ésta no es necesariamente la única manera de hacer las cosas, y que existen distintos sistemas que funcionan de forma diferente. He aquí algunos ejemplos:

  • No es necesario utilizar sólo 2 niveles de tensión para almacenar 1 bit de datos en una única célula de almacenamiento; hay otras opciones. Por ejemplo, muchos dispositivos de memoria flash baratos utilizan un tipo de flash llamado "MLC" o "Multiple Level Cell" (célula de nivel múltiple), que tiene más de dos niveles de tensión y los utiliza para almacenar más de un bit. Por ejemplo, una célula de almacenamiento MLC puede tener 0,2 V para representar 00, 0,8 V para representar 01, 1,4 V para representar 10 y 2,0 V para representar 11.
  • Podrías utilizar dos señales de voltaje separadas para representar un único bit: en ese caso, puedes hacer que el bit llegue a tu circuito en dos hilos separados, y entonces tienes un 1 si el hilo A tiene un voltaje más alto que el hilo B, o un 0 si el hilo B es más alto que el hilo A. Esto proporciona una forma interesante de saber si hay datos presentes o no: si los voltajes son iguales no tienes datos válidos. Esto se utiliza sobre todo para la comunicación entre dispositivos separados (por ejemplo, USB, HDMI y muchas otras interfaces modernas utilizan este tipo de señal), pero también es cada vez más común dentro de los sistemas informáticos.
  • Usted habla de querer construir un ordenador homebrew, así que voy a señalar que una gran cantidad de ordenadores homebrew específicamente no utilizan DRAM, pero con frecuencia utilizan RAM estática, simplemente porque es más fácil interactuar con ella, aunque sea más cara y sólo esté disponible en cantidades más pequeñas. La RAM estática almacena sus bits de memoria con dos transistores cuyas compuertas están conectadas a los canales de cada uno, de forma que en cualquier momento uno de los transistores tiene su canal encendido y el otro apagado; entonces un 1 o un 0 viene determinado por cuál de ellos está encendido en ese momento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X