¿Cómo funciona el acceso aleatorio a la memoria RAM?

8

HDD funciona de manera parcialmente secuencial. Sin embargo, la RAM es conocida por el acceso aleatorio a la memoria, lo que permite la misma velocidad de acceso a la memoria para cada ubicación en todo momento. Entonces, ¿qué hace que la memoria RAM sea tan especial? ¿Cómo funciona el acceso aleatorio a la memoria? (Sé que la DRAM no es exactamente un acceso aleatorio y funciona en ráfaga. No estoy seguro de qué significa esto también).

    
pregunta Dotcomio

3 respuestas

7

Las celdas de memoria están dispuestas en una matriz

Esta es una memoria de 16 bits, 1 bit de ancho, por lo que necesita 4 líneas de dirección para abordar cada bit individual. Esas son las líneas a3 .. a0 a la izquierda. a0 y a1 entran en el demultiplexor verde de 2 a 4. Un demultiplexor de entrada N puede tener 2 \ $ ^ N \ $ líneas de salida, y la entrada binaria indica cuál de ellas estará activa. Esa es la selección de fila.

La selección de columna hace algo similar, pero usa un multiplexor para seleccionar 1 de 2 \ $ ^ N \ $ líneas como la señal de salida. Por lo tanto, la combinación de selección de fila y selección de columna puede abordar una celda de memoria individual.

Esta es una memoria de acceso aleatorio porque cualquier bit es directamente accesible, sin importar cuál sea la dirección. Y va por DRAM, así como SRAM. SRAM necesita más hardware para almacenar un bit (4 o 6 FET) que la DRAM que se muestra, que solo necesita 1 FET por bit. Los datos se almacenan en los condensadores. Los condensadores tienen fugas, y después de un tiempo (muy corto), los datos desaparecerán. Es por eso que DRAM necesita una actualización frecuente: los datos se leen y se vuelven a escribir continuamente entre accesos. Esto agrega un poco de hardware adicional al dispositivo, pero un troquel DRAM sigue siendo mucho más pequeño que un troquel SRAM con la misma capacidad.

    
respondido por el stevenvh
3

Una RAM simple se puede expresar como (De alguna nota): -

  

LasRAMseorganizancomomatricescuadradasdebitsindividuales.Haydos  decodificadores,unafilayundecodificadordecolumna,ycadaceldadememoriadeunbites  Sólosehabilitacuandotantosufilacomolaslíneasdecolumnasonuna.Enel  casodeunaRAMde256bitscadadecodificadortransformaunnúmerobinariodecuatrobits  enunnúmerounariodedieciséisbits.Así,enlamatrizcuadradadeunbit.  celdasdememoria,solohabráunaceldaparalacualtantolafila  ylaslineasdecolumnasonuna.Cadaceldaestáconectadaalamisma.  Líneadelectura/escrituraylíneadedatos.Lalíneadedatosestáconectadaala  fueraatravésdeunbúfertriestadodedosvías,talqueamenosqueelchip  estáhabilitado,ningúndatopuedepasardentroofuera.

UnamemoriaRAMestáticaensucorazóntieneuncircuitoderetenciónbiestable(generalmentecuatrooseistransistores)paraalmacenarunsolobit,mientrasquelaRAMdinámicautilizaunmétododealmacenamientocapacitivoparaunsolobit(solountransistoryuncapacitor).DRAMescapazdemantenerlamemoriadeunaformamásdensaqueunaSRAM.DadoquelamemoriacapacitivaespropensaalapérdidadeDRAM,serequierenmayorestasasdeactualizaciónparamantenerlainformacióndebitsdentrodelasceldasdememoria.

    
respondido por el perilbrain
3

Otras respuestas han medido cómo la RAM funciona internamente, pero aún no han mencionado cómo encaja en un sistema. El tipo de RAM más simple de entender es una RAM asíncrona estática. Dicho dispositivo tiene una cantidad de pines de dirección, una cantidad de pines de datos y algunos pines de control que en conjunto tienen tres estados de interés:

  1. Estado inactivo, en el que las señales en la dirección y los pines de datos se ignoran, y los pines de datos están 'flotando'.
  2. Estado de escritura, en el que el dispositivo transferirá continuamente las señales en los pines de datos (que estarán flotando) a la ubicación de la memoria identificada por los pines de dirección.
  3. Estado de lectura, en el que el dispositivo se esforzará continuamente para impulsar los pines de datos con el último valor escrito en la ubicación de la memoria identificada por los pines de dirección.

Un chip de memoria estática típico tendrá algunas restricciones de tiempo, que pueden modelarse de manera efectiva al decir que las distintas entradas pueden comportarse como si tuvieran varios retrasos (no necesariamente constantes). Una operación de lectura puede hacer que se generen brevemente valores arbitrarios (basura) en los pines de datos antes de que el chip comience a emitir los datos correctos. Para realizar una operación de escritura, uno debe enviar al chip una dirección válida algún tiempo antes de afirmar las señales para poner el chip en el modo de "escritura", y debe mantener los datos correctos en los pines de datos durante un tiempo después de que se retire el chip. del "modo de escritura. Sin embargo, cumplir con estas restricciones generalmente no es demasiado difícil. Muchos chips de memoria tienen un estado adicional que puede pensarse como" prepárate para leer ": el chip determina continuamente qué valor se emitirá en el bus de datos si se le pidió que enviara la ubicación de la memoria direccionada. Si se le pide al chip que envíe esa ubicación, podrá suministrarlo mucho más rápido que si tuviera que comenzar "desde cero".

Tenga en cuenta que mientras un chip de memoria estática típico se conectará internamente como una cuadrícula de filas / columnas (como lo indican otras respuestas), y tendrá aproximadamente la mitad de sus pines de dirección conectados para controlar la columna "fila" y la otra mitad para controlar " ", un chip de memoria dinámica típico utilizará un conjunto de pines de dirección para controlar tanto la fila como la columna. Para acceder a la memoria dinámica, uno debe seleccionar una dirección de fila y luego afirmar un pin llamado / RAS (Selección de dirección de fila). Esto bloqueará la dirección de una fila y hará que esa fila particular de ubicaciones de memoria se lea en un búfer temporal. Luego, uno puede usar los pines de dirección junto con algunos otros pines de control para acceder a ese búfer temporal de una manera similar a una RAM estática. Una vez que uno se hace con una fila, uno debe / RAS. Esto hará que los contenidos (posiblemente modificados) del búfer de la fila se vuelvan a copiar en la fila correspondiente de la matriz. Algún tiempo después de que se libere / RAS, el chip de memoria estará listo para recibir otra dirección de fila y tendrá / RAS confirmado nuevamente.

Tenga en cuenta que el hecho de leer una fila de la matriz de memoria en el búfer temporal borrará esa fila de la matriz de memoria. En consecuencia, incluso si uno no realizó ningún cambio en el búfer de fila, aún sería necesario escribirlo nuevamente en la matriz de memoria antes de poder acceder a otra fila. Tenga en cuenta también que el tiempo requerido para acceder a una fila, y el tiempo entre terminar con una fila y acceder a otra, son mucho más largos que el tiempo requerido para leer y escribir datos dentro del búfer. Aunque muchos microcomputadores antiguos siempre realizarían la secuencia completa "seleccionar fila; leer o escribir byte; deseleccionar fila" para todos y cada uno de los accesos a la memoria, las computadoras más rápidas intentarán hacer todo lo posible con cada operación de selección de fila (confesaré algo de curiosidad acerca de por qué las computadoras más antiguas no hicieron más esfuerzos en ese sentido al acceder a la memoria para cosas como actualizaciones de visualización de video, ya que en muchos casos la memoria de video podría haberse accedido fácilmente en grupos de dos, cuatro u ocho bytes). Además, los dispositivos de memoria modernos incluyen características para permitir que ciertas operaciones se superpongan en muchos casos (por ejemplo, poder escribir un búfer de fila en la matriz de memoria mientras se lee una fila diferente).

    
respondido por el supercat

Lea otras preguntas en las etiquetas