¿Qué es realmente un registro sombra?

15

Noté el término Shadow Registermientras revisaba una hoja de datos de un DSP TMS320F28335 . ¿Qué significa en realidad? ¿Tiene una ubicación física en la CPU como tienen los registros de propósito general?

Noufal
fuente
¿Qué microcontrolador?
Leon Heller
@LeonHellersorry por el error ... es un dsp ... TMS320F28335
noufal

Respuestas:

11

Supongo que has encontrado esto en términos de programación PIC. Originalmente, los PIC tenían puertos de E / S manejados de una manera muy directa: podía leer qué valores tenían externamente o escribir qué valores emitía, ambos en la misma dirección. La desventaja de esto es que el valor que estaba tratando de generar podría no coincidir con el estado en el pin, algo más podría estar impulsándolo con más fuerza, o podría no haber terminado el cambio todavía. Esto significaba que se necesitaba una variable separada para rastrear qué estado deseaba, en lugar de obtener, si deseaba actualizar solo partes de un puerto. Como recuerdo, esa variable separada es lo que generalmente se conoce como un registro de sombra, ya que siempre lo usó para almacenar una copia del registro de salida (invisible). Los PIC más recientes evitan esto agregando las direcciones de "retención", donde se puede leer el registro de salida. Esto también es común en otros microcontroladores, como las direcciones de puerto vs pin en AVR.

Hay un término similar en la arquitectura de PC para la memoria de sombra; en ese caso, generalmente significa una sección de RAM utilizada para almacenar una copia de una ROM más lenta y asignada a la misma dirección. Nuevamente, almacena una copia de algún otro almacenamiento, que está oculto porque la copia la reemplaza en el espacio de direcciones.

Editar: Al ver que es un TMS320, el registro de sombra proporciona un doble buffer; Esta técnica se utiliza para garantizar que las actualizaciones se realicen en el momento adecuado. Compare el uso de intercambios de búfer de trama en gráficos. El Manual de datos muestra las sombras y las versiones activas de varios registros. Considere, por ejemplo, un registro que indica el final de un pulso; si fuera a alterarlo a un pulso más corto, hacerlo cuando el pulso aún no haya terminado podría hacer que un pulso nunca termine (ya que nunca fue igual al valor final en ese ciclo). Pero si escribe en el registro sombra, el hardware puede copiarlo en el registro activo en un punto que se sabe que es seguro, por ejemplo, exactamente cuando el temporizador se ajusta. Esto no se describe en el Manual de datos, que cubre parámetros particulares para un chip dado; sabiendo TI, es probable que haya unmanual separado que describe la función de cada bloque; Este tiene una mención del Modo Sombra en la sección 2.2.

Yann Vernier
fuente
3
Otro uso del término "sombra" aplicado particularmente a los registros es la asignación de nombres de registros arquitectónicos a diferentes registros físicos para permitir un cambio rápido de contexto completo o parcial. ("Registro bancario" a veces se usa como sinónimo.) Por lo general, está destinado a acelerar las interrupciones.
Paul A. Clayton
1

los registros de sombra y espejo se refieren a registros a los que se puede acceder desde múltiples direcciones. Por ejemplo, en el hardware, un registro dado tiene una instancia ubicada en F00h. Sin embargo, si tiene un alias a 1F00h, leer o escribir en F00h es lo mismo que leer o escribir en 1F00h y viceversa.

usuario3747592
fuente
2
Sería una buena adición explicar si el propósito de esos registros sombra es.
Rev1.0
0

En pocas palabras, el registro sombra es un registro ideado dentro del microcontrolador con el fin de mantener ciertos datos para su uso posterior. El nombre "Sombra" implica duplicar algún valor y usarlo nuevamente, para que no se pierda.

Mike CANADÁ
fuente