¿Qué es realmente un registro sombra?

12

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

    
pregunta noufal

3 respuestas

10

Supongo que has encontrado esto en términos de programación PIC. Los PIC originalmente tenían los puertos de E / S manejados de una manera muy directa: podía leer qué valores tenían externamente, o escribir qué valores de salida, ambos en la misma dirección. La desventaja de esto fue 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 tal vez simplemente no haya terminado el cambio todavía. Esto significaba que se necesitaba una variable separada para rastrear qué estado pretendía, en lugar de obtener, si quería actualizar solo partes de un puerto. Como recuerdo, la variable separada es lo que generalmente se conoce como un registro sombra, ya que siempre la usó para almacenar una copia del registro de salida (invisible). Los PIC más recientes evitan esto agregando las direcciones de "latch", donde se puede leer el registro de salida. Esto también es común en otros microcontroladores, como las direcciones de puerto frente a pin en AVR.

Hay un término similar en la arquitectura de PC para memoria virtual; 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 otro almacenamiento, que está oculto porque la copia lo reemplaza en el espacio de direcciones.

Editar: Al ver que es un TMS320, el registro de sombra proporciona un búfer doble; esta técnica se utiliza para garantizar que las actualizaciones se realicen en el momento adecuado. Comparar el uso de swaps de búfer de cuadros en gráficos. El Manual de datos muestra las versiones de sombra y activas de varios registros. Considere, por ejemplo, un registro que indica el final de un pulso; Si tuviera que cambiarlo a un pulso más corto, hacerlo cuando el pulso aún no ha terminado puede hacer que un pulso nunca termine nunca (ya que nunca fue igual al valor final en ese ciclo). Pero si escribe en el registro virtual, el hardware puede copiarlo en el registro activo en un punto que se sepa 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 determinado; conociendo TI, es probable que haya un manual separado que describa la función de cada bloque; Este tiene una mención del Modo Sombra en la sección 2.2.

    
respondido por el Yann Vernier
1

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

    
respondido por el user3747592
0

En pocas palabras, el registro de sombra es un registro creado dentro del microcontrolador con el propósito de mantener ciertos datos para usarlos más adelante. El nombre "Sombra" implica duplicar algún valor y usarlo de nuevo, para que no se pierda.

    
respondido por el Mike CANADA

Lea otras preguntas en las etiquetas