Cómo una computadora representa un número electrónicamente

0

Entiendo que las computadoras representan números decimales usando binarios . Todavía tengo que absorber este video en cómo las computadoras agregan números , lo que parece útil.

Antes de entender eso, sin embargo, me gustaría comprender en un nivel profundo cómo una computadora almacena y representa un número (8 bits, 16 bits, 32, 64, 128, 256, no estoy seguro si pueden almacenar por encima de eso). Hay múltiples aspectos de esto:

  • Cómo se almacena en el disco.
  • Cómo se almacena en la memoria.
  • Cómo se almacena en la CPU / ALU / etc. para usar para manipular / realizar cálculos.

No necesito saber todos los detalles, solo algo que me indique la dirección correcta / una descripción general. Entiendo un poco sobre chanclas , que almacenan 1 bit en la memoria principal . Solo me interesa aquí cómo se almacenan los números en la memoria y en la CPU / ALU, no en el disco. Pero si el disco es lo suficientemente simple, sería bueno saberlo.

En términos de memoria principal, tal vez haya 8/16/32 / etc. Las conexiones de flip-flops, o tal vez no, la memoria principal son solo bits y usted señala las ubicaciones en estos bits. Estoy pensando en términos de x86 mov instrucción , por ejemplo, mov edx, [ebp + 8] , que puede mover bits entre la memoria o entre la memoria y los registros.

En términos de la CPU / ALU, parece que simplemente se reduce a registros, por lo que los números estarían en los registros. Pero aquí hacen la distinción entre 8/16/32 / etc. los enteros de bits, así que quizás haya alguna estructura electrónica que implemente esto.

Por lo tanto, esta pregunta es acerca de cómo funcionan las siguientes funciones, a un alto nivel / descripción general:

  • Cómo se almacenan / representan los enteros en la memoria principal de manera electrónica.
  • Cómo se almacenan / representan los enteros en la CPU / ALU de forma electrónica.
pregunta Lance Pollard

2 respuestas

1

Un entero de 8 bits solo se almacena en 8 flip flops. Uno de 16 bits uno en 16 chanclas, y así sucesivamente. La mayoría de las computadoras modernas son de 32 o 64 bits, así que use bancos de 32 o 64 chanclas para cada registro.

Para la velocidad, estos se conectan a otras partes del procesador a través de buses de datos paralelos. Así que todas las "palabras" de memoria se pueden transferir de una sola vez.

No hay problema almacenando menos bits. Si ejecuta un agregado de 16 bits en una computadora de 32 bits, solo usará 16 de los 32 bits que tiene en cada registro e ignorará el resto. En cierto sentido, son las instrucciones del código de máquina las que definen el significado de los datos. La única diferencia entre un entero de 8 bits y un carácter ASCII es la forma en que elige interpretar los 8 bits.

La mayoría de las computadoras usan DRAM para su memoria principal. Eso funciona de una manera diferente, ya que un flip flip requiere demasiados transistores. Una celda DRAM es esencialmente un pequeño condensador conectado a un MOSFET. El condensador almacena un bit (cargado de descarga) y el transistor se usa para leerlo o escribirlo. Con el tiempo, la carga en el capacitor se pierde, por lo que la memoria debe ser "refrescada" periódicamente, leyendo cada celda y luego escribiéndola nuevamente para recargar el capacitor.

Los discos duros almacenan datos en dominios magnéticos en el disco. Magnetiza un dominio de una manera y es un 0; magnetice el otro y es un 1. Los bits de datos se almacenarán secuencialmente alrededor del disco en pistas. Se leen o escriben a medida que el disco gira alrededor del cabezal de lectura / escritura.

    
respondido por el Simon B
0

Todos los bits se almacenan en la memoria independientemente unos de otros. Se pueden agrupar en palabras de varios tamaños, pero no tienen una representación física fija, incluso se pueden mezclar en varios chips, por ejemplo. en un módulo de memoria RAM. Tampoco tienen ningún significado o tipo de datos dado a ellos. Son solo miles de millones de bits individuales. La única razón por la que la computadora no pierde la pista de qué bit es porque la disposición de la palabra y el mecanismo de direccionamiento es la misma para escribir y leer.

El único lugar donde se realizan conexiones entre los bits individuales es la ALU. Allí, la pequeña cantidad de celdas de almacenamiento individuales (chanclas o condensadores) se conecta con sus vecinas a través de la lógica combinatoria que está controlada por la operación que debe realizar la ALU en ese momento. Y eso está controlado por el código de operación actual que se leyó previamente en la memoria del programa.

    
respondido por el Janka

Lea otras preguntas en las etiquetas