Notei o termo Shadow Register
enquanto examinava uma folha de dados de um DSP TMS320F28335 . O que isso realmente significa? Ele possui um local físico na CPU, como os registros de uso geral?
Notei o termo Shadow Register
enquanto examinava uma folha de dados de um DSP TMS320F28335 . O que isso realmente significa? Ele possui um local físico na CPU, como os registros de uso geral?
Respostas:
Suponho que você tenha encontrado isso em termos de programação PIC. Os PICs originalmente tinham portas de E / S tratadas de maneira muito direta - você podia ler quais valores eles tinham externamente ou escrever quais valores você produzia, ambos no mesmo endereço. A desvantagem disso foi que o valor que você estava tentando gerar pode não corresponder ao estado no pino - outra coisa pode estar impulsionando-o com mais força ou talvez ainda não tenha concluído a alteração ainda. Isso significava que era necessária uma variável separada para rastrear o estado que você pretendia, em vez de obter, se quisesse atualizar apenas partes de uma porta. Pelo que me lembro, essa variável separada é o que geralmente é chamado de registro de sombra, já que você sempre a usa para armazenar uma cópia do registro de saída (invisível). PICs mais recentes evitam isso adicionando os endereços "trava", onde o registro de saída pode ser lido. Isso também é comum em outros microcontroladores, como os endereços de porta versus pino no AVR.
Existe um termo semelhante na arquitetura de PC para memória de sombra; nesse caso, geralmente significa uma seção da RAM usada para armazenar uma cópia de uma ROM mais lenta e mapeada para o mesmo endereço. Novamente, ele armazena uma cópia de outro armazenamento, oculto porque a cópia o substitui no espaço de endereço.
Edit: Vendo que é um TMS320, o registrador shadow fornece um buffer duplo; Essa técnica é usada para garantir que as atualizações ocorram no momento adequado. Compare o uso de trocas de buffer de quadros nos gráficos. O Manual de Dados mostra as versões sombra e ativa de vários registradores. Considere, por exemplo, um registro indicando o fim de um pulso; se você o alterar para um pulso mais curto, fazê-lo quando o pulso ainda não tiver terminado poderá fazer com que um pulso nunca termine (já que nunca foi igual ao valor final nesse ciclo). Mas se você gravar no registrador sombra, o hardware poderá copiá-lo para o registrador ativo em um ponto conhecido por ser seguro - por exemplo, exatamente quando o cronômetro for acionado. Isso não está descrito no Manual de Dados, que cobre parâmetros específicos para um determinado chip; conhecendo a TI, é provável que exista umamanual separado descrevendo a função de cada bloco; este tem uma menção ao Modo Sombra na seção 2.2.
todos os registradores shadow e mirror se referem a registradores que podem ser acessados de vários endereços. Por exemplo, no hardware, um determinado registro possui uma instância localizada em F00h. No entanto, se houver um alias em 1F00h, ler ou escrever para F00h é o mesmo que ler ou escrever para 1F00h e vice-versa.
Simplificando, o registrador sombra é um registrador criado dentro do microcontrolador com o objetivo de armazenar determinados dados para serem usados posteriormente. O nome "Sombra" implica duplicar algum valor e usá-lo novamente - para que não se perca.