Casa / Diverso / ¿Qué es la RAM ECC? RAM con búfer: ¿qué es? Unidades funcionales secuenciales. Registros y memoria de registros Memoria de registros

¿Qué es la RAM ECC? RAM con búfer: ¿qué es? Unidades funcionales secuenciales. Registros y memoria de registros Memoria de registros

Todo el mundo sabe que los dispositivos informáticos modernos tienen RAM, donde la información se almacena solo durante la operación. La RAM está hecha en forma de módulos con microcircuitos (chips) que tienen un conjunto de celdas para almacenar información de bits. Cada celda de memoria está diseñada para almacenar cero o uno. 8 de estas celdas almacenan 8 bits (esto ya es 1 byte). Dichos chips están hechos sobre la base de semiconductores. Pero la implementación de módulos y PC tiene una serie de diferencias serias, que consideraremos en este artículo.

Memoria de paridad.

En una etapa temprana del desarrollo de la tecnología informática, la tecnología para la producción de elementos semiconductores aún no estaba muy desarrollada. Por lo tanto, existía la posibilidad de pérdida de información al escribir en cualquier celda de memoria: escribieron un uno en él, pero no se registró (quedó cero). Para controlar de alguna manera el proceso de escritura en la memoria, se inventó una tecnología simple de verificación de datos.

Antes de escribir un byte (8 bits), se calculó la suma de todos los bits de este byte. Pero no se recordaba toda la suma de comprobación (para ahorrar memoria), sino solo su último bit, cuyo valor (cero o uno) se recordaba en un lugar especialmente designado para ello. El valor de este bit (0 o 1) dependía de si la suma de los bits era par o impar cuando se sumaban. Por lo tanto, este bit se conoció como el bit de paridad.

Después de escribir el byte original en las celdas de memoria, se calculó la suma de los bits de dicho byte almacenado y se comparó la paridad de esta suma con la anterior (cuyo valor se almacenó en el bit de paridad). Si las paridades de las sumas de comprobación coincidían, se consideraba que la escritura en la memoria se había realizado correctamente. Y si no coincidían, se generaba un mensaje de error. Esta tecnología se llama control de paridad.

Memoria sin paridad.

Con el tiempo, comenzaron a aparecer microcircuitos más confiables. La probabilidad de errores en ellos se hizo menor. Al mismo tiempo, hubo una reducción en el costo de los componentes electrónicos. La producción y venta de computadoras se ha vuelto masiva. Para algunos usuarios, los errores en el funcionamiento de las computadoras no eran críticos. Por lo tanto, comenzaron a producirse en el mercado modelos que usaban memoria sin paridad. Deshacerse del noveno bit "extra" (por cada byte) y los costos "excesivos" de calcular las sumas de verificación ha hecho posible reducir un poco el costo de las computadoras y hacerlas accesibles a las masas de consumidores. Tales computadoras se han vuelto muy populares entre los sistemas de escritorio (escritorio).

Sin embargo, en ciertas industrias, sistemas de importancia militar-defensiva y el sector bancario, la inadmisibilidad de errores en los sistemas informáticos sigue siendo una de las tareas más importantes.

Memoria con control y corrección de errores.

La tecnología de control de paridad no es perfecta. Es incapaz de detectar, por ejemplo, la "desaparición" de 2 bits al mismo tiempo (la paridad en este caso no cambia). Por lo tanto, se decidió que cada bit de datos escrito en la memoria debería incluirse no en una suma de verificación, sino en varias. Con dicho sistema de control, fue posible detectar simultáneamente varios errores, sus direcciones y, además, corregir estos errores. A esta tecnología se le denominó Código de Corrección de Errores (ECC), ya que se calculaba un código que permitía la corrección de errores.

Por supuesto, se requieren registros adicionales para almacenar sumas de verificación, lo que hace que dichos módulos de memoria sean más costosos, pero en general, los sistemas basados ​​en memoria ECC son más tolerantes a fallas. Dichos módulos de memoria son los más utilizados en sistemas de servidor.

La memoria con paridad y tecnología ECC se puede utilizar tanto en sistemas de servidor como de escritorio. En el primer caso, esto se justifica por la importancia de las tareas a resolver (donde el coste del más mínimo error es muy alto), y en el segundo caso no siempre es aconsejable (desde un punto de vista económico: al fin y al cabo, para usar módulos con control de errores, debe tener una placa base más costosa que admita esta tecnología; de lo contrario, el control de errores simplemente no funcionará).

memoria amortiguada.

En los sistemas informáticos, el control de escritura/lectura hacia y desde la memoria se lleva a cabo mediante un controlador de memoria especial. Este controlador debe tener acceso a todas las celdas de memoria y garantizar la transferencia de información del bus a la memoria y viceversa. Los sistemas de escritorio suelen utilizar procesadores con un controlador de memoria integrado. Algunas desventajas de esta implementación son las siguientes:

Solo hay un controlador, pero es necesario controlar muchas celdas de memoria: hay un límite en la cantidad de bancos de memoria servidos simultáneamente mientras se mantiene un alto rendimiento;

En un bus de datos del procesador u otros componentes de la computadora, es necesario transferir tanto los comandos de control como los datos a todos los módulos de memoria utilizados (aumenta la carga en el bus).

Para mejorar la situación, se decidió implementar parte de las funciones del controlador en cada módulo de memoria. Para hacer esto, se integra un chip especial en el módulo de memoria, que actúa como un búfer, que recibe comandos del procesador central para controlar y establecer direcciones (en este caso, el flujo de datos a la memoria va a lo largo del bus paralelo al flujo de comandos). Así es como nació la memoria intermedia.

Más tarde, las funciones de corrección de errores (ECC) comenzaron a implementarse en este búfer y también fue posible aumentar la memoria sin carga adicional en el bus de datos. Los chips adicionales para implementar el búfer se conocieron como registros, y la memoria en sí se conoció como memoria registrada.

Con el tiempo, también aparecieron módulos de memoria con búfer completo (FB - con búfer completo), en el búfer (registro) de los cuales no solo las señales de control, sino también los datos comenzaron a transferirse secuencialmente en una secuencia. Cuando se usa un búfer intermedio, hay cierta ralentización en la operación de la memoria, porque se requiere un ciclo intermedio para escribir en el búfer.

Dicha memoria cuesta mucho más que la memoria no registrada debido a la presencia de un chip de registro adicional y al uso de tecnologías complejas. Pero, por su ergonomía, la posibilidad de aumentar el volumen, así como por el control de errores, es muy utilizado en sistemas de servidores, donde es muy importante el trabajo estable y sin errores con grandes cantidades de datos.

Problemas de compatibilidad.

Los módulos de memoria con búfer en las primeras etapas de su desarrollo se usaban tanto en sistemas de escritorio como de servidor, pero la llegada de la memoria registrada eliminó la posibilidad de usarla en una PC.

En los sistemas de escritorio, el uso de memoria registrada es poco práctico (coste excesivo) y, a menudo, imposible, ya que la mayoría de las placas base utilizadas en los escritorios no admiten memoria registrada. Las placas base utilizadas en los sistemas de servidores modernos, por el contrario, están diseñadas para funcionar solo con memoria registrada, ya que aumentar la capacidad (sin cambiar la plataforma) y la capacidad de controlar errores son factores más importantes para los servidores que el costo.

Muy a menudo, al elegir componentes, nos encontramos con varios términos y conceptos incomprensibles. Al elegir RAM, puede ser DDR, DDR2, DDR3, DDR4, RDRAM, RIMM, etc. Si todo está más o menos claro con los tipos principales de RAM, y el soporte para cada tipo se indica en la descripción de la placa base, entonces un parámetro como ECC plantea algunas preguntas para muchos. ¿Qué es la memoria ECC? ¿Es posible usar RAM ECC en una computadora doméstica? ¿Cuál es la principal diferencia entre la RAM ECC y la RAM no ECC?

¿Qué es la memoria ECC?

Este es un tipo especial de RAM con hardware de corrección de errores incorporado. Dichos módulos de memoria se desarrollaron específicamente para servidores, donde los requisitos para la exactitud de los datos y la confiabilidad de su procesamiento son mucho más altos que en las computadoras personales.

ECC-Ram reconoce automáticamente los cambios de datos espontáneos en los bloques de almacenamiento, es decir, los errores que se han producido. Regular: la memoria de escritorio sin soporte para mecanismos de corrección se denomina no ECC.

¿De qué es capaz la memoria ECC y cómo funciona?

La memoria de corrección de errores puede detectar y corregir 1 bit de datos modificados en cada palabra de máquina. ¿Qué significa? Si los datos entre la escritura y la lectura se cambiaron por alguna razón (es decir, se produjo un error), entonces la RAM ECC corregirá el valor al correcto. Dicha funcionalidad requiere el apoyo del controlador de RAM. Este soporte puede ser organizado por el conjunto de chips de la placa base, el controlador de RAM incorporado en los procesadores modernos.

El algoritmo de corrección de errores se basa en el código de Hamming, pero se utilizan otros algoritmos para corregir más de un error. En la práctica se utilizan módulos de memoria, donde por cada 8 chips de memoria se agrega un chip más que almacena códigos ECC (8 bits por cada 64 bits de la memoria principal).

¿Por qué se distorsiona el valor de las celdas de memoria RAM?

Una de las principales causas de la distorsión de datos son los rayos cósmicos. Aunque estamos en la Tierra bajo la protección de la atmósfera, los rayos cósmicos llevan consigo algunas partículas elementales que pueden afectar la electrónica, incluida la memoria de la computadora. Bajo la acción de la energía de estas partículas, es posible un cambio en el estado de la celda de memoria, lo que conduce a errores y distorsión de datos. Curiosamente, la exposición a los rayos cósmicos aumenta con la altitud, por lo que los sistemas informáticos de gran altitud requieren una mejor protección.

Cómo funciona la memoria ECC

Uno de los mecanismos de control de errores en la RAM es usar la tecnología de paridad, que le permite corregir el hecho de un error en los datos, pero no le permite corregir los datos.

El código Hamming se utiliza para la corrección de ECC. ECC protege los sistemas informáticos de un funcionamiento incorrecto debido a la corrupción de la memoria y reduce la probabilidad de una falla crítica del sistema. La memoria compatible con ECC es entre un 2 % y un 3 % más lenta que la memoria sin ECC, según la aplicación.

Razones para usar la memoria ECC

No existe una razón objetiva para usar RAM habilitada para ECC en computadoras de escritorio. Dado que la probabilidad de que ocurran errores de datos es extremadamente pequeña, en escenarios de uso normal de PC, es muy poco probable que un error cause problemas o fallas en la PC. El peor escenario es la apariencia. pantalla azul Muerte de BSOD. Además, el uso de RAM ECC se ve obstaculizado por el hecho de que los procesadores de escritorio y placas base la mayoría no es compatible con este tipo de RAM.

El uso de RAM con corrección de errores ECC es relevante para el segmento de servidores y empresas, donde los requisitos de tolerancia a fallas y confiabilidad son muy altos, y la exactitud de los datos puede afectar los resultados de los cálculos y el funcionamiento del sistema en su conjunto. .

¿Cómo estás? -

Puede ser distinguido Tres Principales tipos de memoria utilizados en los microcontroladores:

● memoria programas, que es una memoria de solo lectura diseñada para almacenar código de programa y constantes. Esta memoria no cambia su contenido durante la ejecución del programa;

● memoria datos, diseñado para almacenar variables (resultados) durante la ejecución del programa;

Registrarse memoria que consta de registros internos del microcontrolador. Considere las características de cada uno de estos tipos de memoria.

Memoria de programa.

La necesidad de dicha memoria se debe al hecho de que el microcontrolador no contiene dispositivos de memoria como un disco duro en la computadora desde la cual se carga el programa ejecutable. Por lo tanto, el código del programa debe almacenarse permanentemente en el microcontrolador.

Todos los tipos de memoria de programa son a no volátil memoria, o memoria de solo lectura (ROM), cuyo contenido se retiene después de que se apaga el microcontrolador.

Durante la ejecución, el programa se lee de esta memoria y la unidad de control (decodificador de comandos) proporciona su decodificación y realiza las operaciones necesarias. El contenido de la memoria del programa no se puede cambiar (reprogramar) durante la ejecución del programa. Por lo tanto, la funcionalidad del microcontrolador no puede cambiar hasta que el contenido de su memoria de programa se borre (si es posible) y se reprograme (llene con nuevas instrucciones).

Cabe señalar que el bitness del microcontrolador (8, 16 o 32 bits) se indica de acuerdo con el bitness de su bus de datos.

Cuando se dice que un dispositivo es de 8 bits, significa la cantidad de bits de datos que el microcontrolador es capaz de procesar.

En la arquitectura de Harvard, las instrucciones pueden ser más grandes que los datos para permitir que se lea una instrucción completa en un ciclo de reloj. Por ejemplo, los microcontroladores PIC, según el modelo, utilizan comandos con un ancho de bits de 12, 14 o 16 bits. EN microcontroladores AVR El comando siempre tiene 16 bits de ancho. Sin embargo, todos estos microcontroladores tienen un bus de datos de 8 bits.

En los dispositivos de arquitectura de Princeton, el ancho de datos generalmente determina el ancho de bit (número de líneas) del bus que se utiliza. En los microcontroladores Motorola 68HC05, una instrucción de 24 bits se encuentra en tres celdas de memoria de programa de 8 bits. Para obtener completamente dicha instrucción, es necesario realizar tres ciclos de lectura de esta memoria.

Echemos un vistazo a cinco tipos memoria residente no volátil, o memoria de sólo lectura (ROM), utilizada para almacenar programas.

Máscara de memoria.

Las ROM de máscara (Mask-ROM o simplemente ROM) se fabrican en la etapa de producción del microcontrolador para un programa completamente depurado. En una fotomáscara de vidrio, cuando se usa el programa, se crea un patrón de máscara. La fotomáscara resultante con una máscara se utiliza para formar conexiones entre los elementos que componen la memoria del programa.

Las primeras ROM de máscara aparecieron a principios de la década de 1960 y todavía se usan hoy en día gracias a tales virtudes como bajo costo en la producción en masa de productos y alta confiabilidad en el almacenamiento de programas.

desventajas máscara ROM: cualquier cambio en el programa de aplicación está asociado con costos y tiempo significativos para crear un nuevo conjunto de fotomáscaras y su introducción en producción.

Memoria programable de una sola vez.

Esta memoria (ROM programable de una sola vez - OTPROM) es programable por el usuario e inicialmente contiene celdas con bits individuales. Solo aquellas celdas de memoria están sujetas a programación, cuyo contenido debe tomar el valor 0. Para hacer esto, se aplica una secuencia de pulsos de voltaje aumentado a la celda de memoria.

El nivel de voltaje, el número de pulsos y sus parámetros de tiempo deben cumplir estrictamente con las especificaciones. Después de escribir cero, es imposible restaurar un solo valor. Por esta razón, la memoria se llama programable una vez ROM. Sin embargo, cabe señalar la posibilidad programación adicional celdas (sin tocar) con bits individuales.

Los microcontroladores con ROM programable de una sola vez se utilizan en productos producidos en lotes pequeños.

Memoria reprogramable con borrado ultravioleta.

La celda de memoria ROM programable borrable (EPROM) es un transistor LIPSMOS (inyección de avalancha de puerta flotante). En el estado inicial (antes de escribir), al acceder a una celda, se lee una unidad lógica. La programación de memoria se reduce a escribir ceros lógicos en las celdas correspondientes. Las EP ROM son capaces de programación múltiple, cuya tecnología es similar a la tecnología de ROM programable de una sola vez.

Antes de cada sesión de programación, operación de borrado para restaurar el estado original de las celdas de memoria. Para esto, se proporciona una ventana especial en la caja del microcontrolador, que se irradia con rayos ultravioleta. El número de sesiones de programación/borrado de ROM es de 25 a 100 veces, sujeto a la tecnología de programación (valores establecidos de voltajes de suministro, número y duración de los pulsos) y la tecnología de borrado (rango de longitud de onda de la fuente de radiación ultravioleta).

Los microcontroladores con memoria EPROM se utilizan en prototipos de aplicaciones desarrolladas debido a su alto costo.

Para reducir el costo, los chips EPROM están encerrados en una caja sin ventana (versión EPROM con programación única). Debido a la reducción de costos, las versiones EPROM se utilizan a menudo en lugar de ROM programables por máscara.

Memoria reprogramable con borrado eléctrico.

Como elemento de memoria con borrado eléctrico (ROM programable borrable eléctricamente - EEPROM o E2 PROM), se utiliza un transistor con estructura MNOS (metal, nitruro de silicio, óxido de silicio, semiconductor), por lo que la ROM tiene un costo relativamente bajo. (respecto a la EPROM) y permite un número máximo de ciclos de borrado/programación 10 4 -10 6 . Además, la tecnología de programación de memoria EEPROM le permite implementar borrado de bytes Y programación de bytes, sin quitar el controlador de la placa, lo que le permite actualizarlo periódicamente software.

A pesar de estas ventajas, este tipo de memoria no se utiliza mucho para almacenar programas por dos razones:

● Las EEPROM tienen una capacidad limitada;

● Han aparecido las ROMs tipo FLASH, que tienen características de usuario similares, pero a un menor costo.

Memoria flash.

La memoria FLASH eléctricamente programable y borrable eléctricamente (FLASH ROM) se creó como una alternativa entre las ROM programables de una sola vez y de alta capacidad baratas y las costosas ROM EEPROM. pequeña capacidad. La memoria FLASH (como la EEPROM) retuvo la capacidad de borrar y programar repetidamente.

El transistor de direccionamiento de cada celda se eliminó del circuito ROM, lo que, por un lado, hizo imposible programar cada bit de memoria por separado, por otro lado, permitió aumentar la cantidad de memoria. Por lo tanto, la memoria FLASH se borra y se programa páginas o bloques.

Por lo tanto, funcionalmente la memoria FLASH difiere poco de la EEPROM. La principal diferencia está en el método de borrar la información registrada: si en la memoria EEPROM el borrado se realiza por separado para cada celda, entonces en la memoria FLASH, en bloques completos. En microcontroladores con memoria EEPROM, es necesario cambiar secciones individuales del programa sin necesidad de reprogramar todo el dispositivo.

En la actualidad, las MCU con FLASH están comenzando a suplantar a las MCU con ROM programable (e incluso enmascarada) una sola vez.

Programación de roms.

Tenga en cuenta que la memoria ROM de máscara se programa solo en fábrica durante la fabricación del MK. Los tipos de memoria OTPROM y EPROM brindan al desarrollador capacidades de programación utilizando un programador y una fuente de voltaje de refuerzo que están conectadas a las salidas apropiadas de la MCU.

Las memorias EEPROM y FLASH se refieren a memorias reprogramables o reprogramable memoria. La mayor potencia necesaria para borrar/programar se crea en los módulos de memoria EEPROM y FLASH de los controladores modernos que utilizan circuitos de amplificación de voltaje incorporados llamados generadores de bombas Gracias a la implementación control de programa Encendiendo y apagando el generador de bombeo, en principio fue posible programar o borrar celdas de memoria FLASH y EEPROM como parte del sistema que se está desarrollando. Esta técnica de programación se llama programación en el sistema(En Programación del Sistema - ISP).

No requiere equipos especiales (programadores), lo que reduce los costos de programación. Los microcontroladores con memoria ISP se pueden programar después de instalarlos en la placa del producto final.

Consideremos cómo se implementa (y utiliza) la posibilidad de programar la memoria EEPROM bajo el control de un programa de aplicación. Si el programa con el algoritmo de programación se almacena en un módulo de memoria separado con un voltaje de suministro nominal, y la memoria EEPROM se proporciona con generadores de bomba, entonces se puede realizar la programación ISP de la memoria EEPROM. Esta circunstancia hace que la memoria EEPROM sea un dispositivo de almacenamiento no volátil ideal para almacenar configuraciones de usuario que se cambian durante la operación del producto. Un ejemplo es un televisor moderno, cuya configuración de canal se guarda cuando se apaga la alimentación.

Por lo tanto, una de las tendencias para mejorar la memoria residente de los MK de 8 bits fue la integración de dos módulos de memoria no volátil en el chip MK: FLASH (u OTP) - para almacenar programas y EEPROM - para almacenar constantes reprogramables.

Considere la tecnología (re) Programación FLASH–memoria con un generador de bomba incorporado controlado por un programa de aplicación. En primer lugar, señalamos dos hechos:

● si la memoria EEPROM está integrada en el MK para almacenar constantes reprogramables, entonces no tiene sentido programar varios bits de memoria FLASH durante la operación del producto terminado. Si es necesario, es mejor usar inmediatamente el modo de reprogramación;

● No debe almacenar el programa de programación de la memoria FLASH en la propia memoria FLASH, ya que cambiar al modo de programación hará que sea imposible leerlo más. El programa de programación debe estar ubicado en otro módulo de memoria.

Para implementar la tecnología de programación en el sistema, se selecciona uno de los puertos serie MC, que es atendido por un especial programa de monitor de comunicación, ubicado en la máscara residente ROM MK. A través del puerto serie Computadora personal carga el programa en la RAM programación Y aplicado programa, que luego se almacena en la memoria FLASH. Dado que la memoria RAM residente del MK tiene una pequeña cantidad, el programa de aplicación se carga en bloques (porciones) separados. Si se instala un módulo de memoria de máscara con un programa de programación en la MCU, solo el programa de aplicación se carga en la RAM.

Los microcontroladores que implementan tecnología de programación en el sistema a menudo incluyen cuatro tipo de memoria:

FLASH - memoria de programa, Mask ROM - memoria de monitor de comunicación, EEPROM - memoria para almacenar constantes variables y RAM de datos intermedios.

La tecnología de programación en el sistema ahora se usa cada vez más para ingresar programas de aplicación en microcontroladores ubicados en la placa del producto final. Su dignidad- falta de un programador y alta confiabilidad de programación, debido a la estabilidad de los modos internos especificados de la MC.

A modo de ejemplo, presentamos los indicadores de la memoria FLASH residente de la familia MC HC08 de Motorola:

● número garantizado de ciclos de borrado/programación - 10 5 ;

● Tiempo garantizado de almacenamiento de la información registrada - 10 años, que es prácticamente el ciclo de vida del producto; Los módulos de memoria FLASH funcionan y se programan con la tensión de alimentación MK de 1,8 a 2,7 V;

● El tiempo de programación equivalente para 1 byte de memoria es de 60 µs.

Memoria de datos.

Utilizado como memoria de datos residente estático Memoria de acceso aleatorio (RAM), que le permite reducir la frecuencia del reloj a valores arbitrariamente pequeños. El contenido de las celdas RAM (a diferencia de la memoria dinámica) se almacena hasta una frecuencia cero. Otra característica de la RAM estática es la capacidad de reducir el voltaje de suministro a un cierto nivel mínimo permitido, en el que no se ejecuta el programa de control del microcontrolador, pero se guardan los contenidos en la RAM.

El nivel de almacenamiento tiene un valor del orden de un voltio, lo que permite, si es necesario, transferir el MK a la alimentación desde una fuente autónoma (batería o acumulador) para guardar datos. Algunos MK (por ejemplo, DS5000 de Dallas Semiconductor) tienen una fuente de alimentación autónoma en el caso, lo que garantiza la conservación de datos en RAM durante 10 años.

Un rasgo característico de los microcontroladores es la cantidad relativamente pequeña (cientos de bytes) de memoria de acceso aleatorio (RAM) utilizada para almacenar variables. Esto se puede explicar por varios factores:

● esforzarse por simplificar el hardware de MC;

● usar ciertas reglas al escribir programas destinados a reducir la cantidad de memoria RAM (por ejemplo, las constantes no se almacenan como variables);

● distribución de recursos de memoria de tal manera que en lugar de colocar datos en RAM, el uso máximo de hardware (temporizadores, registros de índice, etc.);

● orientación de los programas de aplicación para trabajar sin el uso de grandes conjuntos de datos.

Características de la pila.

En los microcontroladores, una parte de la memoria RAM, llamada apilar. Durante estas operaciones, el contenido del contador del programa y los registros principales (acumulador, registro de estado, índice y otros registros) se guardan y restauran al regresar al programa principal. Recuerde que la pila funciona según el principio: último en entrar primero en salir(Último en entrar, primero en salir-LIFO).

En la arquitectura de Princeton, la RAM se usa para implementar muchas funciones de hardware, incluidas las funciones de pila. Se asignan áreas separadas en el espacio de direcciones de memoria para comandos, registros de propósito general, registros de funciones especiales, etc. Esto reduce el rendimiento del controlador, ya que los accesos a diferentes áreas de memoria no se pueden realizar simultáneamente.

Los microprocesadores de Harvard pueden abordar la memoria del programa, la memoria de datos (incluido el espacio de E/S) y la pila en paralelo (simultáneamente).

Por ejemplo, cuando se activa una instrucción de subrutina CALL, se realizan varias acciones simultáneamente.

En la arquitectura de Princeton, cuando se ejecuta una instrucción CALL, la siguiente instrucción se recupera solo después de que el contenido del contador del programa se haya colocado en la pila.

Debido a la poca capacidad de memoria RAM en los microcontroladores de ambas arquitecturas, pueden surgir problemas a la hora de ejecutar el programa:

● si se asigna una pila separada, luego de que se llene, el contenido del puntero de la pila se cambia cíclicamente, como resultado de lo cual el puntero de la pila comienza a referirse a la celda de la pila previamente llena. Por lo tanto, después de demasiadas instrucciones CALL, la dirección de retorno incorrecta estará en la pila, que se escribió en lugar de la dirección correcta;

● Si el microprocesador usa un área de memoria común para acomodar los datos y la pila, entonces el desbordamiento de la pila sobrescribirá los datos. Consideremos las características de guardar el contenido de los registros en la pila, debido a la falta de instrucciones para cargar en la pila (PUSH) y extraer de la pila (POP). En tales microcontroladores, en lugar de las instrucciones PUSH y POP, se utilizan dos instrucciones y un registro de índice, que apunta explícitamente al área de la pila. La secuencia de instrucciones debe ser tal que una interrupción entre la primera y la segunda instrucción no provoque la pérdida de datos. La siguiente es una simulación de los comandos PUSH y POP, teniendo en cuenta el requisito especificado.

EMPUJAR ; Cargue datos en el índice de disminución de pila; Mover a la siguiente ubicación de la pila mover [índice], as; Almacene el contenido del acumulador en la pila POP; Pop datos de stack move as, ; Introduzca el valor de la pila en el índice de incremento del acumulador; Mover a la celda de pila anterior

Si el programa se interrumpe después de la primera instrucción, el contenido de la pila no se perderá después de que se maneje la interrupción.

registra la memoria.

Los microcontroladores (como los sistemas informáticos) tienen muchos registros que se utilizan para la gestión varios nodos internos y dispositivos externos. Éstos incluyen:

● registros núcleo del procesador(batería, registros de estado, registros de índice);

● registros administración(registros de control de interrupción, registros de control de temporizador);

● registros de entrada/salida de datos (registros de datos y registros de control de entrada/salida paralelos, seriales o analógicos).

Según la forma en que se colocan los registros en el espacio de direcciones, podemos distinguir:

● microcontroladores, en los que todos los registros y la memoria de datos se encuentran en una espacio de direcciones, es decir, los registros están alineados con la memoria de datos. En este caso, los dispositivos de E/S se asignan a la memoria;

● microcontroladores, en los que los dispositivos de entrada/salida apartado del espacio total de direcciones de la memoria. La principal ventaja del método de colocar registros de E / S en un espacio de direcciones separado es que simplifica el esquema para conectar la memoria del programa y los datos a un bus común. Un espacio de E/S separado brinda un beneficio adicional a los procesadores de arquitectura Harvard al permitir que se lea la instrucción mientras se accede al registro de E/S.

La forma en que se accede a los registros tiene un impacto significativo en su rendimiento. En los procesadores con arquitectura RISC, todos los registros (a menudo el acumulador) están ubicados en direcciones explícitas, lo que proporciona una mayor flexibilidad en la organización del trabajo del procesador.

Sobre la memoria externa.

En los casos en que no hay suficiente memoria de programa residente y memoria de datos para las aplicaciones desarrolladas, se conecta una memoria externa adicional al microcontrolador. conocido dos formas principales:

● conexión memoria externa utilizando una interfaz de bus (como en los sistemas de microprocesador). Muchos microcontroladores tienen hardware especial para esta conexión;

● conexión de la memoria a dispositivos de entrada-salida Al mismo tiempo, se accede a la memoria a través de estos dispositivos herramientas de software. Este método permite el uso de dispositivos de E/S simples sin implementar interfaces de bus complejas. La elección del método depende de la aplicación particular.

Anotación: Se considera el principio de funcionamiento de los registros como elementos de la memoria electrónica.

El registro es un IC con un grado medio de integración, diseñado para memorizar y almacenar una palabra de varios bits.

pestillo de registro

protozoos Registrarse es una conexión paralela de varios disparadores (Fig. 8.1, a). El pestillo de registro UGO se muestra en la fig. 8.1, b. Si Registrarse construido en flip-flops, se llama Registrarse-"pestillo". Como regla general, los amplificadores de búfer y los controles son parte del registro IC, por ejemplo, como se muestra en la Fig. 8.2, a. Aquí hay un diagrama funcional de un 8 bits D- registro latch KR580IR82 con tres estados de salida. Su UGO se muestra en la Fig. 8.2, b.


Arroz. 8.1. Registro de "latch" de cuatro bits con salidas directas: a - diagrama funcional; b - UGO

tercer estado(los dos primeros son 0 lógico y 1 lógico) es el estado de las salidas del IC, en el que están desconectadas tanto de la fuente de alimentación como del punto común. Otros nombres para este estado son alta resistencia, estado de alta impedancia, estado Z[ , desde. 61 - 63; , desde. 68 - 70].

Esto se consigue tercer estado solución de circuito especial [ , p. 117 - 118] en la parte de salida de los elementos lógicos, cuando los transistores de salida de los elementos lógicos están bloqueados y no suministran tensión de alimentación ni potencial de tierra (ni 0 ni 1) a la salida.

Registrarse KR580IR82 consta de 8 bloques funcionales (Fig. 8.2, a). Cada uno de ellos incluye D-trigger-latch con grabación en el borde de fuga y una potente puerta de salida de 3 estados. STB- entrada estroboscópica, - habilitación de transmisión - una señal que controla el tercer estado: si , entonces la información se transfiere de las entradas a las salidas correspondientes, si , todas las salidas se transfieren al tercer estado. Cuando e IS opera en el modo modelador de bus, la información de las entradas se transmite a las salidas sin cambios.

Al solicitar borde de fuga hay un "chasquido" de la información transmitida en disparadores, es decir, recuerda lo que había en el momento del envío . Adiós, búfer Registrarse almacenará esta información, independientemente de la información en D-entradas. Al aplicar un borde de ataque cuando se guarda, el estado de las salidas cambiará de acuerdo con el cambio en las entradas correspondientes. Si , entonces todos los amplificadores de salida se transfieren al tercer estado. En este caso, independientemente del estado de las entradas, todas las salidas Registrarse trasladado al tercer estado.

Todas las salidas de registro pueden tener un nivel cero activo, que se muestra en el UGO en forma de señales inversas y designaciones de salida.

hay muchas variedades registros, por ejemplo, los registros de desplazamiento [ , capítulo 8], en los que los disparadores están interconectados de tal manera que transfieren información secuencialmente de un disparador a otro [ , pp. 109 - 122], pero aquí nos centraremos en el registro latch y su aplicacion

Registrar memoria

La memoria registrada (archivo de registro) es una memoria de acceso extremadamente aleatorio (SRAM), un circuito de varios registros diseñado para almacenar varias palabras de varios bits.

En la fig. 8.3 muestra un ejemplo de implementación SOZU, que consta de cuatro de 8 bits registros(La conexión de RG2 y RG3 no se muestra, se realiza de la misma manera). Dado SOZU tiene un volumen de información de 4x8 bits - 4 palabras de 8 bits, o 4 bytes. Aquí DI - entrada de datos- bus de datos de entrada, Salida de datos DO- bus de datos de salida, WR- escribir señal en SRAM, RD- señal para leer información de SRAM, VSD - bus de datos interno.

Cada Registrarse tiene una dirección de dos dígitos, que se alimenta a las entradas del decodificador. Por ejemplo, el extremo izquierdo de la Fig. 8.3 Registrarse RG1 tiene la dirección , el siguiente - (no se muestra en la figura), el siguiente - (no se muestra) y el extremo derecho Registrarse RG4 tiene la dirección.

Si hay una señal de escritura activa, el decodificador, de acuerdo con el código de dirección, emite a uno de registros señal activa en la que la información del bus de datos de entrada DI se escribe al seleccionado Registrarse. En el borde posterior, la información en este Registrarse"chasquidos".

Si, por ejemplo, en DI información enviada y dirección Registrarse es igual a , entonces la señal activa en la salida "3" del decodificador se aplicará como al registro RG4. En este momento, los registros restantes tendrán un nivel de señal inactivo, por lo tanto, la información del bus de datos de entrada se escribirá en RG4 y la información registrada anteriormente se almacenará en los registros restantes.

Con una señal de lectura activa, los 8 multiplexores están activados (el primero, el segundo y el octavo se muestran en el diagrama, el resto están conectados de manera similar), ya que se aplica una señal activa a sus entradas de habilitación. De acuerdo con el decodificador de direcciones, los multiplexores cambian la información del registro seleccionado al bus de datos de salida. Por ejemplo, la dirección de registro es . Luego, en todos los multiplexores, todos comenzarán a seleccionar información de acuerdo con la dirección. Por lo tanto, en el bus de salida HACER bits del bus interno con los números 25 - del primer multiplexor, 26 - del segundo, 27 - del tercero, 28 - del cuarto, 29 - del quinto, 30 - del sexto, 31 - del séptimo y 32 - a partir del octavo multiplexor se dará. Así, la información que es una copia del contenido Registrarse RG 4 con la dirección se transfiere al bus de datos de salida DO: estado sin cambios de la salida del multiplexor.

Hay dos tipos principales de memoria de acceso aleatorio (RAM); son memoria almacenada en búfer, o memoria registrada, y memoria no almacenada en búfer. La memoria sin búfer es más rápida y, a menudo, mucho más económica que la memoria con búfer. Así, es un tipo de módulo que se puede encontrar en casi todos los ordenadores de sobremesa y portátiles domésticos. La memoria con búfer es más costosa que el tipo sin búfer y también es más lenta debido a la forma en que maneja el almacenamiento y la recuperación de datos.
Sin embargo, la memoria con búfer es mucho más estable que las formas sin búfer, por lo que se usa principalmente en servidores y computadoras centrales.

La memoria sin búfer es, con mucho, la forma más común de módulo de memoria de computadora que se encuentra en el uso diario. Estos módulos de memoria son baratos de fabricar en comparación con los módulos de memoria con búfer, en parte debido a su uso común en computadoras domésticas y comerciales, y también porque usan menos hardware. Un módulo de memoria sin búfer no tiene hardware incorporado para actuar como un registro de instrucciones entre el chip de RAM y el controlador de memoria de la computadora. Esto da como resultado un rendimiento más rápido, pero aumenta el riesgo de pérdida de memoria como resultado de la naturaleza aleatoria de la ubicación y recuperación de la información, especialmente durante los períodos de actividad intensa.

Más comúnmente conocida como memoria registrada es memoria almacenada en búfer. La memoria sin búfer, por extraño que parezca, mantuvo su nombre y no se cambió a memoria no registrada. La memoria con búfer se diferencia del tipo sin búfer en que tiene un registro de hardware que almacena información en el caché durante un ciclo del chip de memoria. Si bien esta operación puede resultar en un chip de memoria más lento, brinda estabilidad adicional y reduce el riesgo de errores de memoria.

En el uso general del consumidor, la diferencia de velocidad entre los dos tipos de módulos de memoria parece insignificante. Durante los períodos de intenso intercambio de información, aparece la latencia, que se observa utilizando el registro. La memoria con búfer se usa comúnmente en servidores y sistemas mainframe para brindar estabilidad y protección contra daños que pueden ocurrir en módulos sin búfer cuando están sujetos a un uso intensivo constante. Si bien los módulos almacenados en búfer son más costosos y generalmente más lentos de ejecutar, la estabilidad de la memoria y la seguridad de los datos lo compensan con creces en un entorno de producción.