¿cuántos bits contiene una celda de memoria de acceso aleatorio?

3

esta pregunta tiene algo que ver con la programación, pero como domina la capa de hardware, creé una nueva cuenta aquí para evitar estar fuera de alcance en el desbordamiento de pila.

Soy bastante novato en el campo del hardware, me gustaría saber cuántos bits contiene una celda de RAM.

Por ejemplo:

  

Defino un var (int)

     

Sabiendo que un número entero es de 32 bits, si el   la ubicación de var se deja decir 0x125:

  • es el sistema que recuerda a var como el valor contenido desde 0x125 hasta 0x158 (32 bits asignados)
  

or

  • es solo recordando a la ubicación 0x125 de la celda que contiene una Número particular de condensadores (en relación con la tecnología de tarjeta de memoria)?
  

en otras palabras:   es la dirección que apunta a un conjunto de bits o es la   dirección que apunta solo un bit (el número de bits para leer de ese   La posición estaría determinada por el sistema)?

Cualquier comentario sería muy apreciado.

    
pregunta vdegenne

2 respuestas

4

No hay casi ninguna posibilidad de que su memoria esté dirigida a bits. La situación más probable es que sus direcciones sean direcciones de bytes. Y cuando obtiene el valor de una variable de 32 bits, la pregunta es si esa dirección apunta al byte más significativo o al byte menos significativo de ese valor de 4 bytes, que depende de la arquitectura (por ejemplo, x86 es little-endian, mientras que MIPS es big endian).

Para darle un ejemplo en C, asumiendo que su variable var tiene el valor 0xDEADBEEF , podría almacenarse en la memoria de una de estas dos formas:

Big-Endian (porque la dirección 0x125 apunta al MSB)

-------------+--------+--------+--------+--------+
base address |              offset               | 
-------------+--------+--------+--------+--------+
             |    0   |    1   |    2   |    3   | 
-------------+--------+--------+--------+--------+
    0x125    |  0xDE  |  0xAD  |  0xBE  |  0xEF  |
-------------+--------+--------+--------+--------+

o Little-Endian (porque la dirección 0x125 apunta al LSB)

-------------+--------+--------+--------+--------+
base address |              offset               | 
-------------+--------+--------+--------+--------+
             |    0   |    1   |    2   |    3   | 
-------------+--------+--------+--------+--------+
    0x125    |  0xEF  |  0xBE  |  0xAD  |  0xDE  |
-------------+--------+--------+--------+--------+

Como la granularidad de acceso a la memoria en el nivel del conjunto de instrucciones probablemente no sea más pequeña que un byte, si desea modificar bits individuales, necesita leer desde la memoria a su granularidad mínima (probablemente un byte), modificar su contenido con operaciones de manipulación de bits (|, & amp ;, ~, etc.), y vuelve a escribir la memoria.

    
respondido por el vicatcu
0

En el diseño de circuito integrado, una "celda de memoria" es una disposición de transistores y cables utilizados para almacenar un solo bit. Un patrón que cubre un área en el chip, y más o menos el patrón idéntico se repite muchas veces, en mosaico y empaquetado junto sin espacios entre ellos. (Cuando cada celda contiene un transistor y un capacitor, es un chip DRAM). Cuando cada celda contiene un transistor y una puerta flotante, es un chip Flash. Cuando cada celda contiene 10 transistores, es un chip SRAM 10T. Cuando cada celda contiene 6 transistores, es un chip 6T SRAM . Etc.)

La gran mayoría de las celdas de memoria pueden almacenar exactamente 1 bit por celda. (La única excepción que conozco es algunos chips flash que tienen celda multinivel ).

La gran mayoría de la memoria de estado sólido almacena 8 bits de datos en cada dirección. Y por lo tanto, "leer una dirección" casi siempre implica leer el estado de 8 celdas de memoria distintas. Algún hardware está dispuesto de modo que esas 8 celdas estén cerca unas de otras; otro hardware está dispuesto de modo que las 8 celdas adjuntas a esa dirección estén en chips completamente separados. (Algunas de las raras excepciones incluyen la memoria de programa de 14 bits en algunos procesadores PIC, la memoria de 36 bits de la mayoría de las primeras computadoras con microprocesador, etc.)

Como ya ha adivinado, la dirección apunta a un conjunto (de 8) bits.

Como explicó Vicatcu, las cosas que requieren más de 8 bits, como los enteros de 32 bits, se almacenan en varios bytes consecutivos en varias direcciones consecutivas.

    
respondido por el davidcary

Lea otras preguntas en las etiquetas