Este artículo analizará más de cerca los comandos utilizados para controlar e interactuar con DRAM.
Mi artículo anterior introdujo la memoria dinámica de acceso aleatorio, o DRAM. DRAM es un tipo de RAM que debe actualizarse dinámicamente de vez en cuando. Esto se debe a que DRAM utiliza una matriz de condensadores para almacenar información digital. Cuando hay una carga presente, se almacena un '1' binario, mientras que la ausencia de una carga indica un '0' binario. DRAM está organizado en varios bancos que se dividen en filas y columnas. Los condensadores se encuentran en la intersección de estas filas y columnas.
La Figura 1 muestra un banco DRAM x4 introducido en el artículo anterior.
Pero, ¿cómo se usa DRAM? ¿Cómo le dice un procesador o controlador de memoria a la DRAM que devuelva o almacene datos específicos en una ubicación específica? Comprender los comandos enviados a un chip DRAM es el primer paso para diseñar un sistema que use DRAM.
Si bien la DRAM puede diferir mucho de un fabricante a otro, hay un conjunto de comandos fundamentales que la mayoría de los chips DRAM utilizan para realizar acciones. Para ejecutar un comando, un controlador de memoria escribirá valores en un conjunto de entradas dentro de la DRAM. Estas entradas pertenecen al decodificador de comandos de la DRAM. Este decodificador tiene una entrada de 4 bits donde, dependiendo de la combinación de bits, se solicita un comando diferente.
Todas estas entradas activas bajas tienen nombres y se definen típicamente como CS, CAS, RAS y WE:
Estas cuatro entradas permiten incorporar hasta 16 comandos en la DRAM.
La Figura 3 muestra una vista simplificada de un chip DRAM. Se puede utilizar como referencia para comprender mejor los diferentes comandos enumerados.
El comando inhibir, o a veces llamado deselección de dispositivo, deshabilita la capacidad de ejecutar comandos en la DRAM. Para usar el comando, la entrada CS se eleva (y no se tienen en cuenta otras entradas, es decir, "no me importa"). Como se mencionó anteriormente, CS significa selección de chip y deshabilita el decodificador de comandos. Por lo tanto, tiene sentido que esto sea elevado para inhibir comandos.
Activar es esencialmente el comando de acceso a filas. Es decir, abre una fila y mueve la carga de los condensadores a los amplificadores de detección. El acceso a una fila siempre se realiza antes de una columna en DRAM. Este comando se combina con entradas a un registro de dirección de banco (que selecciona el banco actual) y un registro de dirección de fila (que selecciona la fila deseada). Una nota importante sobre el comando de activación es que cualquier fila que esté actualmente abierta permanece abierta hasta que se emita un comando de precarga (más sobre precarga más adelante). Para usar este comando, la mayoría de las DRAM requieren que CS y RAS se bajen, mientras que CAS y WE se bajan.
Precarga desactiva la fila actualmente abierta en un banco. Cuando se emite un comando de precarga, se le dice a la DRAM que restaure los valores leídos de la fila de condensadores. Esto se realiza mediante los amplificadores de detección y cuando se completa prepara al banco para acceder a otra fila. La precarga se realiza bajando CS, RAS y WE y dejando CAS alto.
El comando de lectura también puede considerarse como un comando de lectura de columna. Cuando se combina con una dirección de banco y una dirección de columna adecuadas, los datos recientemente transferidos a los amplificadores de detección desde un comando de activación (acceso a filas) ahora se envían al bus de datos. Las DRAM a menudo incluyen un comando de "Lectura y precarga automática" que realiza la lectura de la columna y luego cierra / precarga la fila. De esta manera, no es necesario emitir un comando de precarga por separado. Si se necesita acceder a la misma fila, pero a una columna diferente, no se emitirá una precarga y la fila se dejará abierta. Para usar el comando de lectura, CS y CAS se extraen, mientras que RAS y WE se suben.
Un comando de escritura es prácticamente lo mismo que una lectura, excepto por la dirección de los datos. Durante un comando de escritura, los datos se extraen del bus de datos y se colocan en el banco, fila y columna seleccionados. La precarga automática puede realizarse de forma muy similar a una lectura y cierra la fila activada actualmente cuando finaliza la escritura. Para realizar una escritura, CS, CAS y WE se bajan, mientras que RAS se mantiene alto.
La Figura 4 muestra un comando de activación (acceso a filas) en amarillo, con un comando de lectura / escritura posterior (acceso a columnas) en azul. Los datos en la intersección de la fila y la columna, que se muestran en verde, se mueven entre los amplificadores de detección y las memorias intermedias de datos.
Lo que diferencia a la DRAM de otros tipos de memoria de acceso aleatorio es el hecho de que los condensadores utilizados para el almacenamiento de memoria perderán carga con el tiempo. Por lo tanto, DRAM es dinámico porque debe actualizarse periódicamente. Aquí es donde entra el comando de actualización. En DRAM, el comando de actualización se emite de vez en cuando. Un aspecto importante de la actualización es que cualquier banco activo debe cargarse previamente antes de que se emita el comando. Para realizar una actualización, CS, RAS y CAS se bajan con WE alto.
Después de la actualización, la DRAM realiza un seguimiento de la última fila actualizada e incrementa un contador de actualización para que el siguiente comando de actualización opere en la siguiente fila. Tenga en cuenta que cuando se emite un comando de actualización, la fila actual en cada banco se actualiza. La mayoría de las DRAM realizarán 8192 ciclos de actualización cada 64 ms. Eso es cada 7.813 μs. Esto se ha mantenido constante a pesar de las crecientes densidades de dispositivos.
Otros comandos DRAM comunes incluyen NOP (Sin operación), Terminación de ráfaga y Registro de modo de carga. NOP se utiliza para obligar a la DRAM a no hacer nada. Esto es útil cuando la DRAM necesita esperar, por ejemplo, si se está actualizando actualmente. En realidad, las lecturas y escrituras en DRAM se realizan en ráfagas cortas. La terminación de ráfaga truncará el comando de lectura o escritura, es decir, lo detendrá antes de finalizar. DRAM se puede colocar en diferentes modos. Estos modos se cambian a través del comando Load Mode Register.
La Figura 5 muestra una tabla de verdad que enumera las combinaciones de entrada del decodificador para ejecutar diferentes comandos DRAM.
Este artículo discutió los diferentes comandos que una DRAM es capaz de ejecutar. Estos comandos son iniciados por un controlador de memoria o CPU que está interactuando con la DRAM.
Los comandos se ejecutan escribiendo en las entradas del decodificador de comandos DRAM. Cualquier sistema que necesite hacer un trabajo serio tendrá memoria incorporada. Si comprende estos comandos, implementar DRAM en su próximo proyecto será mucho más fácil.
ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'memory,digital-ics,computing,memory,computers-peripherals'}); ga('set',{'contentGroup1':'memory,digital-ics,computing,memory,computers-peripherals'});
ga('set',{'dimension3':"August 09, 2019"});
ga('set',{'dimension4':"Stephen St. Michael"});
ga('send', 'pageview');
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['memory','digital-ics','computing','memory','computers-peripherals'], content_type: 'category'});
_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },
}) }); }
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…