¿Cuál es el principio de la memoria?
La memoria indica el principio de funcionamiento y la función
Introducción
La memoria (Memoria) es un dispositivo de memoria que se utiliza para almacenar información en la tecnología de la información moderna. El concepto es muy amplio y tiene muchos niveles. En un sistema digital, cualquier cosa que pueda guardar datos binarios puede ser una memoria en un circuito integrado, un circuito con función de almacenamiento que no tiene forma física también se llama memoria; RAM, FIFO, etc.; en el sistema, los dispositivos de almacenamiento en forma física también se denominan memorias, como tarjetas de memoria, tarjetas TF, etc. Toda la información en la computadora, incluidos los datos sin procesar de entrada, los programas de computadora, los resultados de ejecución intermedios y los resultados de ejecución finales, se almacenan en la memoria. Almacena y recupera información según las ubicaciones especificadas por el controlador. Sólo con memoria la computadora puede tener función de memoria y garantizar un funcionamiento normal. La memoria de la computadora se puede dividir en memoria principal (memoria) y memoria auxiliar (memoria externa) según su finalidad. También existen métodos de clasificación en memoria externa y memoria interna. El almacenamiento externo suele ser medios magnéticos o discos ópticos, que pueden almacenar información durante mucho tiempo. La memoria se refiere al componente de almacenamiento en la placa base, que se usa para almacenar datos y programas que se están ejecutando actualmente. Sin embargo, solo se usa para almacenar temporalmente programas y datos si se apaga la alimentación o los datos. se perderá.
La función principal de la memoria es almacenar programas y datos diversos, y acceder a programas o datos de forma automática y a alta velocidad durante el funcionamiento del ordenador. La memoria es un dispositivo con función de "memoria" que utiliza dispositivos físicos con dos estados estables para almacenar información. Estos dispositivos también se denominan elementos de memoria. En las computadoras, los datos se representan mediante un sistema binario con sólo dos dígitos "0" y "1".
Los dos estados estables del elemento de memoria se representan como "0" y "1" respectivamente. Los números decimales que se utilizan todos los días deben convertirse en números binarios equivalentes antes de poder almacenarlos en la memoria. Varios caracteres procesados en la computadora, como letras inglesas, símbolos aritméticos, etc., también deben convertirse en códigos binarios antes de poder almacenarlos y operarlos.
Memoria: dispositivo que almacena programas y datos. Bit de almacenamiento: unidad de almacenamiento que almacena un dígito binario. Es la unidad de almacenamiento más pequeña de la memoria, o se llama unidad de memoria. número (n dígitos binarios) como Cuando se almacena o extrae el conjunto, se denomina unidad de almacenamiento: varias unidades de memoria que almacenan una palabra de almacenamiento forman una unidad de almacenamiento: una colección de una gran cantidad de. las unidades de almacenamiento forman un cuerpo de almacenamiento Dirección de la unidad de almacenamiento: El número de la unidad de almacenamiento Direccionamiento: La unidad de memoria se direcciona por palabra y por byte: La unidad de memoria se direcciona por byte. unidad de almacenamiento en la dirección correspondiente.
Con el cuerpo de la memoria (una matriz compuesta por una gran cantidad de celdas de memoria) como núcleo, más los circuitos de control de lectura y escritura de direcciones necesarios, es un circuito integrado de almacenamiento más el I necesario; Las interfaces /O y algunos circuitos adicionales, como la gestión de políticas de acceso, forman chips de memoria, como los chips de memoria comúnmente utilizados en teléfonos móviles. Gracias a los nuevos procesos de fabricación de circuitos integrados o empaquetado de chips, ahora es posible integrar celdas de memoria DRAM y FLASH en un solo chip. Luego, el chip de memoria se integra con el chip de control (responsable del control de acceso complejo, gestión de almacenamiento, cifrado, cooperación con otros dispositivos, etc.) y los componentes necesarios, como el reloj y la fuente de alimentación, en la placa de circuito para formar una máquina completa, que Es un producto de almacenamiento, como la placa U. Desde unidades de almacenamiento (conjuntos de transistores) hasta circuitos integrados de almacenamiento y dispositivos de almacenamiento, todos están diseñados para almacenar información. La diferencia radica en el nivel.
El medio de almacenamiento que constituye la memoria, el elemento de almacenamiento, puede almacenar un código binario. Una unidad de almacenamiento se compone de varias unidades de almacenamiento y una memoria se compone de muchas unidades de almacenamiento. Una memoria contiene muchas unidades de almacenamiento, cada una de las cuales puede almacenar un byte (direccionado por byte). La ubicación de cada unidad de almacenamiento tiene un número, es decir una dirección, generalmente expresada en hexadecimal. La suma de los datos que se pueden almacenar en todas las unidades de almacenamiento de una memoria se llama capacidad de almacenamiento. Suponiendo que el código de dirección de una memoria consta de 20 números binarios (es decir, 5 dígitos hexadecimales), puede representar 2 elevado a la vigésima potencia, que son 1 millón de direcciones de unidades de almacenamiento. Cada unidad de almacenamiento almacena un byte, por lo que la capacidad de almacenamiento de la memoria es de 1 MB.
Principio de funcionamiento
Aquí solo presentamos el principio de funcionamiento de la memoria dinámica (DRAM).
La memoria dinámica tiene sólo una línea de datos de entrada por chip, y sólo 8 pines de dirección. Para formar una dirección de 64 K, se debe diseñar especialmente un circuito de formación de direcciones entre el bus de direcciones del sistema y los cables de dirección del chip.
La señal del bus de direcciones del sistema se puede agregar a los ocho pines de dirección en forma de tiempo compartido, y las celdas de memoria en el chip se seleccionan con la ayuda de los pestillos de fila, los pestillos de columna y los circuitos de decodificación dentro del chip. depende de lo generado por un circuito de dirección externo. Cuando se van a leer datos del chip DRAM, la CPU primero agrega la dirección de fila a A0-A7 y luego envía la señal de bloqueo RAS. El flanco descendente de la señal bloquea la dirección dentro del chip. Luego agregue la dirección de la columna a A0-A7 del chip y luego envíe la señal de bloqueo CAS. La dirección de la columna también se bloquea dentro del chip en el flanco descendente de la señal. Luego mantenga WE = 1, los datos se generarán y mantendrán mientras CAS sea válido.
Cuando es necesario escribir datos en el chip, las direcciones de fila y columna bloquean RAS y CAS dentro del chip. Luego, WE es válido y los datos a escribir se agregan y se escriben. la unidad de almacenamiento seleccionada. Dado que el condensador no puede mantener la carga sin cambios durante mucho tiempo, cada celda de memoria del circuito de memoria dinámica debe volver a leerse periódicamente para mantener la carga estable. Este proceso se denomina actualización de la memoria dinámica. La actualización de DRAM en máquinas PC/XT se implementa mediante DMA. Primero, el contador 1 del temporizador programable 8253 se usa para generar una solicitud DMA cada 1 a 12 μs. Esta solicitud se agrega al canal 0 del controlador DMA. Cuando se responde a la solicitud del canal 0 del controlador DMA, el controlador DMA envía una señal de dirección de actualización para realizar una operación de lectura en la memoria dinámica, actualizando una fila cada vez que se lee.
Función principal
La memoria se utiliza principalmente para almacenar programas y datos. Al igual que un almacén donde se almacenan mercancías, cuando las personas almacenan mercancías en un almacén, para facilitar el almacenamiento y la recuperación, generalmente numeran las mercancías donde se colocan y dejan un camino para el almacenamiento y la recuperación.
La memoria está compuesta por bancos de memoria, decodificadores de direcciones, circuitos de control de lectura y escritura, buses de direcciones y buses de datos. La memoria que puede acceder directa y aleatoriamente a instrucciones y datos mediante el procesador central se denomina memoria principal, y las memorias de gran capacidad, como discos magnéticos, cintas y discos ópticos, se denominan memoria externa (o memoria auxiliar). La memoria es el dispositivo de memoria de una computadora y su función principal es almacenar programas y datos. Los programas son la base de las operaciones informáticas y los datos son los objetos de las operaciones informáticas. Ya sean programas o datos, se representan en forma binaria en la memoria y se denominan colectivamente información. En las computadoras, la unidad básica de capacidad de memoria es el byte (abreviado como B), y un byte se compone de 8 bits binarios (bits). Además de los bytes, la capacidad de almacenamiento se expresa en unidades de KB, MB, GB y TB (que pueden abreviarse como K, M, G y T respectivamente. Por ejemplo, 128 MB pueden abreviarse como 128 M). Entre ellos: 1 KB = 1024 B, 1 MB = 1024 KB, 1 GB = 1024 MB, 1 TB = 1024 GB. La memoria generalmente se divide en memoria principal (memoria) y memoria auxiliar (memoria externa). La composición de la memoria se muestra en la figura. Memoria de acceso aleatorio (RAM) Memoria principal (memoria) Memoria de solo lectura (ROM) Memoria Memoria auxiliar del disco duro (memoria externa) Disquete Otros Figura 1.1.2 Composición de la memoria La memoria principal está conectada directamente a la CPU y almacena la información actual. ejecutar programas y datos, la velocidad de acceso es rápida, pero el precio es relativamente caro y la capacidad no puede ser demasiado grande. La configuración de memoria actual de las microcomputadoras es generalmente de 128 MB o 256 MB, la memoria principal (memoria) se divide en aleatoria. la memoria de acceso (RAM) según el modo de trabajo y la memoria de solo lectura (ROM); los datos en la memoria de acceso aleatorio (RAM) se pueden leer o escribir aleatoriamente y también se utilizan para almacenar programas y datos relacionados transferidos desde la memoria externa. como datos enviados desde la CPU. Lo que la gente suele llamar memoria en realidad se refiere a RAM.
Clasificación por medio de almacenamiento
(1) Memoria semiconductora La memoria compuesta por dispositivos semiconductores se denomina memoria semiconductora por sus características: alta integración, gran capacidad, tamaño pequeño y velocidad de acceso rápida, baja; consumo de energía, precio económico, mantenimiento simple Dividido principalmente en dos categorías: memoria bipolar: tipo TTL y tipo ECL memoria semiconductora de óxido metálico (memoria MOS para abreviar): memoria MOS estática y memoria MOS dinámica.
(2) Memoria de superficie magnética Una memoria hecha de materiales magnéticos se denomina memoria de superficie magnética, o memoria magnética para abreviar. Incluye almacenamiento en disco, almacenamiento en cinta, etc. Características: gran tamaño, bajo grado de automatización de la producción, velocidad de acceso lenta, pero la capacidad de almacenamiento es mucho mayor que la de la memoria semiconductora y no es fácil de perder.
(3) La información de la memoria láser se almacena en el disco en forma de rayones. El rayo láser se irradia sobre el disco y la información se lee en función de la diferente reflectividad del disco. Los discos ópticos se pueden dividir en tres tipos: discos ópticos de sólo lectura (CD-ROM), discos ópticos de una sola escritura (WORM) y discos magnetoópticos (MOD).
2. Clasificación por método de acceso
(1) Memoria de acceso aleatorio (RAM): Si se puede acceder aleatoriamente al contenido de cualquier unidad de almacenamiento en la memoria y el tiempo de acceso es al igual que sin importar la ubicación física de la unidad de almacenamiento, este tipo de memoria se denomina memoria de acceso aleatorio (RAM). La RAM se utiliza principalmente para almacenar varios programas de entrada/salida, datos, resultados de operaciones intermedias, almacenar información intercambiada con el mundo exterior y servir como pila. La memoria de acceso aleatorio actúa principalmente como memoria caché y memoria principal.
(2) Memoria de acceso serie (SAS): si solo se puede acceder a la memoria en un orden determinado, es decir, el tiempo de acceso está relacionado con la ubicación física de la unidad de almacenamiento, entonces este tipo de Se llama a la memoria para el acceso en serie a la memoria. La memoria serie se puede dividir en memoria de acceso secuencial (SAM) y memoria de acceso directo (DAM). La memoria de acceso secuencial es una memoria de acceso en serie completa, como una cinta, y la información se escribe (o lee) de manera secuencial desde el comienzo del medio de almacenamiento. La memoria de acceso directo es una memoria de acceso en serie parcial, como una memoria de disco. Entre el acceso secuencial y el acceso aleatorio.
(3) Memoria de solo lectura (ROM): La memoria de solo lectura es una memoria cuyo contenido solo se puede leer pero no escribir, es decir, una memoria que se escribe una vez por adelantado. Generalmente se utiliza para almacenar información fija. Por ejemplo, se utiliza a menudo como memoria de control de microprogramas. Ya existen memorias regrabables de sólo lectura. Los más comunes incluyen ROM de máscara (MROM), ROM programable borrable (EPROM) y ROM programable borrable eléctricamente (EEPROM). El circuito de la ROM es más simple, más integrado y de bajo costo que la RAM, y es un tipo de no volátil. memoria, las computadoras a menudo colocan algunos programas de administración, monitoreo y programas de usuarios maduros en ROM.
3. Clasificación según la capacidad de almacenamiento de la información
Memoria no permanente: memoria en la que la información desaparece después de que se corta la alimentación, como la memoria RAM de lectura/escritura de semiconductores.
Memoria de memoria permanente: memoria que aún puede retener información después de un corte de energía, como la memoria hecha de materiales magnéticos y ROM semiconductores.
4. Según su función en el sistema informático
Según la función de la memoria en el sistema informático, se puede dividir en memoria principal, memoria auxiliar, memoria caché y controlar la espera de la memoria. Para resolver la contradicción entre los requisitos de gran capacidad de memoria, alta velocidad y bajo costo, generalmente se adopta una arquitectura de memoria multinivel, es decir, memoria caché, memoria principal y memoria externa.
Impacto en la capacidad
La conversión de un comando de escritura a un comando de lectura, el acceso a una dirección en un momento determinado y la actualización de datos requieren que el bus de datos permanezca inactivo durante un cierto período de tiempo. tiempo. Esto no utiliza completamente el canal de memoria. Además, tanto los buses paralelos anchos como la captación previa del núcleo DRAM a menudo conducen a accesos de datos innecesariamente grandes. La cantidad de datos útiles a los que puede acceder un controlador de memoria durante un período de tiempo específico se denomina velocidad de datos efectiva, y depende en gran medida de la aplicación específica del sistema. La velocidad de datos efectiva varía con el tiempo y suele ser inferior a la velocidad de datos máxima. En algunos sistemas, la velocidad de datos efectiva puede caer a menos del 10% de la velocidad máxima.
Normalmente, estos sistemas se benefician de cambios en la tecnología de memoria que producen velocidades de datos efectivas más altas. Un fenómeno similar existe cuando se trata de CPU, donde en los últimos años empresas como AMD y TRANSMETA han señalado que la frecuencia del reloj no es el único factor a la hora de medir el rendimiento de un sistema basado en CPU. La tecnología de la memoria ha madurado y es posible que las velocidades máximas y las velocidades de datos efectivas no coincidan mejor que antes. Aunque la velocidad máxima sigue siendo uno de los parámetros más importantes de la tecnología de memoria, otros parámetros arquitectónicos también pueden afectar significativamente el rendimiento de un sistema de memoria.
Parámetros que afectan la velocidad de datos efectiva
Hay varios tipos de parámetros que afectan la velocidad de datos efectiva. Uno es hacer que el bus de datos entre en un estado de parada durante varios ciclos. Entre dichos parámetros, las transiciones de bus, el tiempo de ciclo de línea, el retraso de CAS y el retraso de RAS a CAS (tRCD) causan la mayoría de los problemas de retraso en la arquitectura del sistema.
Las propias transiciones de bus crean tiempos de parada muy prolongados en la ruta de datos.
Tomemos como ejemplo el sistema GDDR3. Este sistema escribe datos continuamente en las páginas abiertas de la memoria. Durante este período, la velocidad de datos efectiva del sistema de memoria es comparable a su velocidad máxima. Sin embargo, supongamos que el controlador de memoria pasa de lectura a escritura en 100 ciclos de reloj. Dado que esta conversión requiere 6 ciclos de reloj, la velocidad de datos efectiva cae al 94% de la velocidad máxima. Durante estos 100 ciclos de reloj, se perderán más ciclos de reloj si el controlador de memoria cambia el bus de escritura a lectura. Esta tecnología de memoria requiere 15 ciclos de inactividad al pasar de escritura a lectura, lo que reduce aún más la velocidad de datos efectiva al 79 % de la velocidad máxima. La Tabla 1 muestra resultados de cálculo similares para varias tecnologías de memoria de alto rendimiento.
Evidentemente, no todas las tecnologías de memoria son iguales. Los diseñadores de sistemas que requieren mucha conmutación de bus pueden elegir tecnologías más eficientes como XDR, RDRAM o DDR2 para mejorar el rendimiento. Por otro lado, si el sistema puede agrupar transacciones en secuencias muy largas de lecturas y escrituras, las transiciones de bus tendrán un impacto mínimo en el ancho de banda efectivo. Sin embargo, otros fenómenos que aumentan la latencia, como los conflictos bancarios, pueden reducir el ancho de banda efectivo y afectar negativamente al rendimiento.
La tecnología DRAM requiere que se abran las páginas o filas de la biblioteca antes de acceder a ellas. Una vez abiertas, no se pueden abrir diferentes páginas de la misma biblioteca antes de que finalice un tiempo de ciclo mínimo, es decir, el tiempo de ciclo de fila (tRC). Los diferentes accesos a páginas del banco de memoria abierta se denominan páginas perdidas, lo que provoca retrasos asociados con cualquier parte no cumplida del intervalo tRC. Los errores de paginación se conocen como conflictos bancarios para un banco que no ha abierto suficientes ciclos para satisfacer la brecha de tRC. Si bien tRC determina la duración del tiempo de demora del conflicto bancario, la cantidad de bancos disponibles en una DRAM determinada afecta directamente la frecuencia de los conflictos bancarios.
La mayoría de tecnologías de memoria tienen 4 u 8 bancos con valores tRC en decenas de ciclos de reloj. En condiciones de carga aleatoria, los núcleos con 8 bibliotecas tuvieron menos conflictos de biblioteca que aquellos con 4 bibliotecas. Aunque la interacción entre tRC y el número de biblioteca es compleja, su impacto acumulativo se puede cuantificar de diversas formas.
Transacciones de lectura de memoria
Considere tres situaciones simples de transacciones de lectura de memoria. En el primer caso, el controlador de memoria emite cada transacción que crea un conflicto bancario con la transacción anterior. El controlador debe esperar un tiempo tRC entre abrir una página y abrir páginas posteriores, aumentando así el retraso máximo asociado con el ciclo de páginas. La velocidad de datos efectiva en este caso está determinada en gran medida por la E/S y está limitada principalmente por los circuitos centrales de la DRAM. La frecuencia máxima de conflictos bancarios reduce el ancho de banda efectivo entre un 20% y un 30% del pico de la tecnología de memoria de alta gama actual.
En el segundo caso, cada transacción tiene como objetivo una dirección generada aleatoriamente. En este punto, la posibilidad de que se produzca un conflicto bancario depende de muchos factores, incluida la interacción entre tRC y la cantidad de bancos en el núcleo de memoria. Cuanto menor sea el valor de tRC, más rápido será el ciclo de las páginas abiertas y menor será la pérdida causada por conflictos de biblioteca. Además, cuantos más bancos tenga una tecnología de memoria, menor será la posibilidad de que se produzcan conflictos entre bancos de acceso aleatorio a direcciones.
En el tercer caso, cada transacción es una visita a una página, que se dirige a diferentes direcciones de columna en la página abierta. El controlador no tiene que acceder a páginas cerradas, lo que permite la utilización completa del bus, lo que genera una situación ideal en la que la velocidad de datos efectiva es igual a la velocidad máxima.
El primer y tercer caso implican cálculos simples, y el caso aleatorio se ve afectado por otras características que no están incluidas en la DRAM o la interfaz de memoria. El arbitraje y las colas del controlador de memoria mejorarán en gran medida la frecuencia de los conflictos bancarios porque es más probable que se produzcan transacciones que no causan conflictos que aquellas que sí los causan.
Sin embargo, aumentar la profundidad de la cola de memoria no necesariamente aumenta las velocidades de datos efectivas relativas entre diferentes tecnologías de memoria. Por ejemplo, incluso con una mayor profundidad de la cola de control de memoria, la velocidad de datos efectiva de XDR es un 20% mayor que la de GDDR3. Este incremento existe principalmente porque XDR tiene un recuento de bibliotecas más alto y un valor de tRC más bajo. En general, intervalos tRC más cortos, más bancos y colas de controlador más grandes producen un mayor ancho de banda efectivo.
De hecho, muchas limitaciones de eficiencia están relacionadas con la granularidad del acceso a las filas. La restricción tRC esencialmente requiere que el controlador de memoria acceda a una cierta cantidad de datos de filas recién abiertas para garantizar que la canalización de datos permanezca llena.
De hecho, para mantener el bus de datos funcionando sin interrupción, sólo es necesario leer una cantidad muy pequeña de datos después de abrir una fila, incluso si no se necesitan datos adicionales.
Otra característica importante que reduce el ancho de banda efectivo de un sistema de memoria cae en la categoría de granularidad de acceso a columnas, que especifica la cantidad de datos que se deben transferir para cada operación de lectura o escritura. Por el contrario, la granularidad de acceso a filas especifica cuántas operaciones individuales de lectura y escritura se requieren para cada activación de fila (generalmente denominada operación CAS por RAS). La granularidad del acceso a las columnas tiene un gran impacto en la velocidad de datos efectiva que no es fácilmente cuantificable. Debido a que especifica la cantidad mínima de datos que deben transferirse durante una operación de lectura o escritura, la granularidad del acceso a las columnas crea problemas para los sistemas que requieren solo una pequeña cantidad de datos a la vez. Por ejemplo, un sistema con una granularidad de acceso de 16 bytes que requiere 8 bytes de cada una de las dos columnas debe leer un total de 32 bytes para acceder a ambas ubicaciones. Debido a que sólo se requieren 16 bytes de 32, la velocidad de datos efectiva del sistema se reduce al 50% de la velocidad máxima. Los dos parámetros estructurales de ancho de banda del bus y duración del pulso especifican la granularidad de acceso del sistema de memoria.
El ancho de banda del bus se refiere al número de líneas de datos que conectan el controlador de memoria al dispositivo de almacenamiento. Establece la granularidad de acceso mínima porque para una transacción de memoria determinada, cada línea de datos debe transferir al menos un bit de datos. La longitud del pulso especifica la cantidad de bits que se deben transferir en cada línea de datos para una transacción determinada. Una tecnología de almacenamiento que transmite solo un bit de datos por línea de datos por transacción y su duración de pulso es 1. La granularidad general del acceso a la columna es simple: granularidad del acceso a la columna = ancho del bus × longitud del tiempo del pulso.
Muchas arquitecturas de sistemas pueden aumentar el ancho de banda disponible del sistema de almacenamiento simplemente agregando dispositivos DRAM y ancho de banda del bus de almacenamiento. Después de todo, si 4 conexiones a una velocidad de datos de 400 MHz pueden alcanzar un ancho de banda máximo total de 1,6 GHz, entonces 8 conexiones darán como resultado 3,2 GHz. Agregar un dispositivo DRAM aumenta la cantidad de conexiones en la placa de circuito y la cantidad de pines en el ASIC, duplicando en consecuencia el ancho de banda máximo total.
En primer lugar, los arquitectos quieren utilizar al máximo el ancho de banda máximo, que es el máximo que pueden lograr diseñando físicamente el bus de memoria. Los controladores de gráficos con buses de memoria de 256 bits o incluso de 512 bits no son infrecuentes y requieren 1000 o más pines. Los diseñadores de paquetes, los planificadores de plantas de ASIC y los ingenieros de diseño de placas de circuitos no pueden encontrar un área de silicio donde puedan enrutar tantas señales de una manera económica y comercialmente viable. Simplemente aumentar el ancho del bus para lograr velocidades máximas de datos más altas da como resultado un ancho de banda efectivo reducido debido a las limitaciones de granularidad del acceso a la columna.
Suponiendo que la duración del pulso de una tecnología de almacenamiento particular es igual a 1, para un proceso de memoria, la granularidad de acceso de un sistema de 512 bits de ancho es de 512 bits (o 64 bytes). Si el controlador solo necesita una pequeña cantidad de datos, el resto de los datos se desperdicia, lo que reduce la velocidad de datos efectiva del sistema. Por ejemplo, un controlador que solo necesita almacenar 32 bytes de datos del sistema desperdiciará los 32 bytes restantes, lo que dará como resultado una velocidad de datos efectiva igual al 50 % de la velocidad máxima. Estos cálculos suponen que la duración del pulso es 1. Con la tendencia de aumentar las velocidades de datos de la interfaz de memoria, la duración mínima del pulso para la mayoría de las nuevas tecnologías es superior a 1.
Consejos para la selección
El tipo de memoria determinará el funcionamiento y el rendimiento de todo el sistema integrado, por lo que la selección de la memoria es una decisión muy importante. Ya sea que el sistema funcione con batería o con la red eléctrica, los requisitos de la aplicación determinarán el tipo de memoria (volátil o no volátil) y su propósito (almacenar código, datos o ambos). Además, el tamaño y el costo de la memoria también son factores importantes a considerar durante el proceso de selección. Para sistemas más pequeños, la memoria que viene con el microcontrolador puede ser suficiente, mientras que los sistemas más grandes pueden requerir la adición de memoria externa. Al seleccionar un tipo de memoria para un sistema integrado, se deben considerar varios parámetros de diseño, incluida la selección del microcontrolador, el rango de voltaje, la duración de la batería, las velocidades de lectura y escritura, el tamaño de la memoria, las características de la memoria, la resistencia al borrado/escritura y el rendimiento general del sistema. . costo.
Principios básicos que se deben seguir al seleccionar la memoria
1. Memoria interna y memoria externa
Generalmente, cuando la memoria requerida para almacenar código y datos del programa es determinado Después del espacio de almacenamiento, el ingeniero de diseño decidirá si utilizar la memoria interna o la memoria externa.
Normalmente, la memoria interna es la más rentable pero la menos flexible, por lo que el ingeniero de diseño debe determinar si la necesidad de memoria aumentará en el futuro y si hay alguna forma de actualizar a un microcontrolador con más espacio de código. Con base en consideraciones de costo, las personas generalmente eligen el microcontrolador con la capacidad de memoria más pequeña que cumpla con los requisitos de la aplicación, por lo que se debe tener especial cuidado al predecir el tamaño del código, porque un aumento en el tamaño del código puede requerir el reemplazo del microcontrolador. Actualmente existen en el mercado dispositivos de memoria externa de varios tamaños y podemos adaptarnos fácilmente al aumento del tamaño del código añadiendo memoria. A veces esto significa reemplazar la memoria existente con una del mismo tamaño de paquete pero con mayor capacidad, o agregar memoria en el bus. Incluso si un microcontrolador tiene memoria interna, las necesidades de memoria no volátil del sistema se pueden satisfacer agregando EEPROM serial externa o memoria flash.
2. Memoria de arranque
En sistemas de microcontroladores más grandes o sistemas basados en procesadores, los ingenieros de diseño pueden usar el código de arranque para la inicialización. La propia aplicación suele determinar si se requiere un código de inicio y si se requiere una memoria de inicio dedicada. Por ejemplo, si no hay un bus de direccionamiento externo o una interfaz de arranque en serie, normalmente se utiliza la memoria interna sin necesidad de un dispositivo de arranque dedicado. Pero en algunos sistemas sin memoria de programa interna, la inicialización es parte del código operativo, por lo que todo el código residirá en la misma memoria de programa externa. Algunos microcontroladores tienen memoria interna y un bus de direccionamiento externo, en cuyo caso el código de arranque residirá en la memoria interna mientras que el código operativo está en la memoria externa. Este es probablemente el método más seguro, ya que no hay posibilidad de modificar accidentalmente el código de inicio al cambiar el código operativo. En todos los casos, la memoria de arranque debe ser no volátil.
Se puede utilizar cualquier tipo de memoria para cumplir con los requisitos de un sistema integrado, pero los requisitos de la aplicación final y el costo total son a menudo los principales factores que influyen en nuestra decisión. A veces, combinar varios tipos de memoria puede satisfacer mejor los requisitos del sistema de aplicación. Por ejemplo, algunos diseños de PDA utilizan memoria volátil y no volátil para el almacenamiento de programas y datos. Los programas permanentes se almacenan en una ROM no volátil, mientras que los programas y los datos descargados por el usuario se almacenan en una DRAM volátil respaldada por una batería. Independientemente del tipo de memoria que se elija, el ingeniero de diseño debe considerar cuidadosamente las compensaciones entre varios factores de diseño antes de determinar qué memoria se utilizará en el sistema de aplicación final.