¿Qué tan grande es una sola celda de RAM?

2

Estoy estudiando por mi cuenta cómo funciona la PC y no puedo entender una cosa. Un procesador de 32 o 64 bits se diferencia por su capacidad para asignar 2 ^ 32 o 2 ^ 64 direcciones para las celdas de la RAM. Lo que no entiendo es qué tan grande es una celda. ¿Una sola celda contiene solo 0 o 1 o es más grande (como 1 byte)? Y también, ¿está la "dimensión" de la palabra relacionada con la arquitectura de la CPU?

    
pregunta Tommy4

5 respuestas

6
  

Un procesador de 32 o 64 bits difiere por su capacidad para asignar 2 ^ 32 o 2 ^ 64 direcciones para las celdas de la RAM.

La suposición básica es incorrecta allí. Una CPU de 32 bits funciona de forma nativa en 32 bits de datos a la vez. Es decir, los registros internos y las rutas de datos están en bloques de 32, por lo que cada registro tiene 32 bits, y los datos se mueven en trozos de 32 bits. Con una CPU de 64 bits, es de 64 bits por registro y los datos se mueven en trozos de 64 bits.

Es frecuente que el bus de direcciones tenga el mismo tamaño que la arquitectura nativa interna simplemente porque es conveniente. Sin embargo, no siempre es el caso. Tome la CPU Z80. Es una CPU de 8 bits, pero tiene un bus de direcciones de 16 bits.

Una "celda" de memoria contiene un 1 o un 0. Es un bit. Se agrupan en palabras, cualquiera que sea la interfaz de memoria, y usted accede a la memoria como palabras completas o, en el caso de una cantidad de chips, como partes de palabras (muchos chips tienen la capacidad de "enmascarar" los datos para que funcionen con solo un byte superior o inferior, digamos).

Visto desde la perspectiva de la CPU, una palabra es el ancho de su arquitectura interna, por lo que una CPU de 32 bits funciona con palabras de 32 bits. Desde la perspectiva del chip RAM, una palabra es el tamaño de su interfaz de datos, por lo que un chip RAM de 16 bits tiene palabras de 16 bits.

Para obtener la mejor eficiencia, debe coincidir con el tamaño de la arquitectura de la CPU y el ancho del bus de RAM. Esto se puede hacer con una CPU de 32 bits y una RAM de 32 bits, o más comúnmente, agregando múltiples chips de RAM en paralelo, por ejemplo, una CPU de 64 bits y cuatro chips de RAM de 16 bits, cada uno de los chips de RAM maneja un cuarto de las líneas de datos.

    
respondido por el Majenko
3

Se entiende que una sola celda de RAM contiene un solo bit, independientemente de la tecnología que utilice (DRAM, SRAM, FRAM, etc.). Esto es diferente del flash, por lo que una celda puede contener múltiples bits gracias a los avances tecnológicos como MLC .

En las CPU modernas, una dirección se refiere a un byte, es decir, 8 bits. (Las cosas han sido diferentes en la historia, pero esto está más o menos resuelto ahora).

Nuevamente, en las CPU modernas de 32 y 64 bits, la dirección y los buses de datos son del mismo tamaño, por lo que una CPU de 32 bits puede direccionar "nativamente" 2 ^ 32 bytes, y una CPU de 64 bits puede direccionar 2 ^ 64 bytes. (Una CPU siempre puede usar paquetes de hardware como banca o segmentación para tratar más memoria, pero usar un esquema de este tipo es más torpe que usar solo el tamaño de la dirección "nativa".)

    
respondido por el Ignacio Vazquez-Abrams
2

La pregunta combina / combina varios conceptos diferentes.

El espacio de direcciones de una unidad central de procesamiento (CPU) de 32 bits y 64 bits es generalmente \ $ 2 ^ {32} \ text {y} 2 ^ {64} \ $ bytes. Aunque algunas máquinas han utilizado cada dirección para acceder a palabras , que no son bytes, es mucho menos común en las CPU modernas. Un significado inicial de 'byte' era 'la unidad de memoria más pequeña y accesible', aunque hoy en día todo el mundo significa 8 bits.

Una característica clave es que la dirección de memoria en sí misma será de 32 bits o 64 bits, y por lo tanto podría acceder a hasta \ $ 2 ^ {32} \ text {y} 2 ^ {64} \ $ unidades de memoria, bytes.

Una vista simple es un procesador de 32 bits que normalmente funciona con 32 bits de datos, y una CPU de 64 bits actúa sobre datos de 64 bits. Eso no es exactamente cierto en las CPU modernas. Por ejemplo, todas las CPU de 32 bits de gama alta pueden operar con números de punto flotante de 64 bits, y algunas tienen soporte para 64 bits o más en una sola operación. Además, la mayoría de las CPU pueden actuar sobre unidades más pequeñas, como 8 o 16 bits. Así que es algo más sutil, pero el modelo simple es conveniente.

Otra aproximación es que una CPU de 32 bits recupera 32 bits de datos a la vez, y una CPU de 64 bits recupera 64 bits de datos a la vez, de la memoria. Eso es un poco demasiado simple por varias razones. Lo más simple es que los sistemas de memoria se desacoplan de la CPU mediante un controlador de memoria, que puede recuperar la memoria en unidades más grandes. Por lo tanto, el controlador de memoria de la CPU puede recuperar 128 bits en una lectura de la memoria. Incluso los MCU's como ARM's 32x Cortex-M (casi tan simples como el diseño ARM) pueden implementarse con lecturas amplias, digamos 64 o 128 bits, desde la memoria del programa.

Finalmente, una CPU de 64 bits puede ser capaz de manejar direcciones de 64 bits, sin embargo, pueden no implementar un bus de direcciones de 64 bits. \ $ 2 ^ {64} \ $ is \ $ 1.8 \ cdot10 ^ {19} \ $ unidades de memoria direccionable (bytes) que es poco probable que sea práctico, por lo que el bus de direcciones físicas puede ser mucho más pequeño, es decir, solo 40+ bits.

Entonces, como una "simplificación", una CPU de 32 bits maneja datos y direcciones de 32 bits, y una CPU de 64 bits maneja datos y direcciones de 64 bits, sin embargo, la realidad es más sutil y sofisticada.

BTW: una 'celda' generalmente se interpreta como una unidad de almacenamiento, y es un bit en la mayoría de las tecnologías de almacenamiento. Estos están organizados en unidades más grandes, por ejemplo, bytes, porque es más conveniente abordar y recuperar unidades de datos más grandes.

    
respondido por el gbulmer
1

En 2018, una sola celda de memoria (1/0) está alrededor de 40nm ^ 2, pero este tamaño varía según el fabricante y la tecnología utilizada.

    
respondido por el Hugh
0

El tamaño de la celda depende de la tecnología; existen dos tipos principales que se utilizan en los procesadores modernos:

Tamaños y tipos

El primero es SRAM, requiere más transistores (y solo está hecho de transistores), por lo tanto, requiere más tamaño y más potencia. También apaga más calor. La ventaja es que mantiene su estado siempre que tenga energía y no sea necesario actualizarlo. También es mucho más rápido que otros tipos de ram. Por esta razón, se utiliza principalmente en procesadores y buffers.

El segundo es DRAM; está hecho de un capacitor y un transistor, menos tamaño, menos energía. El problema con esto es que el condensador sangra una cantidad muy pequeña de corriente y pierde su estado después de un período de tiempo determinado.

Fuente: Descripción general de las tecnologías emergentes de memoria no volátiles

Esto muestra los tamaños relativos de las RAM, una única celda de bits de SRAM a partir de 2014 y un proceso de 10 nm puede ser 0.014um ^ 2 una celda DRAM para el mismo proceso sería aproximadamente 6 veces más pequeña.


Fuente: enlace

Direccionamiento y control

El hardware para DRAM y SRAM son similares en naturaleza, ambos necesitan direccionamiento de fila y columna para seleccionar los bits, luego cada bit se lee en un búfer. Luego se puede leer todo el búfer donde sea necesario. La diferencia es que el control DRAM detiene las operaciones y actualiza una celda completa leyendo el contenido y luego volviéndolos a escribir para evitar la pérdida de información por la fuga en los condensadores.


Fuente: enlace

Fuente: Diseño de memoria 8T-SRAM de baja potencia y alta lectura basada en la entrada de difusión de puerta modificada (m-GDI) en tecnología CNTFET de 32 nm

Tipos de memoria futuros

También hay otros tipos de memoria que no son convencionales que tienen ventajas de tamaño y velocidad sobre las tecnologías actuales y algunas compensaciones. Fuente: Diapositiva 20

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas