Я помітив цей термін Shadow Register
, переглядаючи таблицю DSP TMS320F28335 . Що це насправді означає? Чи є в центральному процесорі фізичне розташування, як це мають регістри загального призначення?
Я помітив цей термін Shadow Register
, переглядаючи таблицю DSP TMS320F28335 . Що це насправді означає? Чи є в центральному процесорі фізичне розташування, як це мають регістри загального призначення?
Відповіді:
Я здогадуюсь, що ви стикалися з цим в плані програмування PIC. ПІК спочатку мали порти вводу / виводу обробляються дуже прямо - ви могли прочитати, які значення вони мали зовні, або записати, які значення виводити, як на одну і ту ж адресу. Недоліком цього було те, що значення, яке ви намагалися вивести, може не відповідати стану на штифті - щось інше могло б керувати цим сильніше, а може просто ще не закінчило зміни. Це означало, що потрібна окрема змінна для відстеження стану, який ви планували, а не отримав, якщо ви хочете оновити лише частини порту. Як я пам'ятаю, окрема змінна - це те, що зазвичай називають тіньовим регістром, оскільки ви завжди використовували його для зберігання копії (невидимого) регістра виводу. Більш свіжі PIC уникають цього, додаючи адреси "засувки", де може бути прочитаний вихідний реєстр. Це часто зустрічається і в інших мікроконтролерах, таких як адреси порту проти штифтів на AVR.
Існує подібний термін в архітектурі ПК для тіньової пам'яті; в такому випадку це зазвичай означає ділянку оперативної пам’яті, що використовується для зберігання копії більш повільного ПЗУ і відображається на одній адресі. Знову він зберігає копію якогось іншого сховища, яке приховано, оскільки копія замінює його в адресному просторі.
Редагувати: побачивши, що це TMS320, тіньовий регістр забезпечує подвійний буфер; ця методика використовується для забезпечення оновлень, які відбуваються в належний час. Порівняйте використання змін буфера кадру в графіці. У посібнику з даних показані тіньові та активні версії декількох регістрів. Розглянемо, наприклад, регістр із зазначенням кінця імпульсу; якби ви змінили його на коротший імпульс, це робити, коли імпульс ще не закінчився, це може призвести до того, що один імпульс ніколи не закінчиться (оскільки він ніколи не був рівним кінцевому значенню в цьому циклі). Але якщо ви запишете в тіньовий регістр, апаратне забезпечення може скопіювати його в активний регістр у точці, яка, як відомо, є безпечною - наприклад, саме тоді, коли таймер завернеться. Це не описано в Посібнику з даних, який охоплює окремі параметри для даної мікросхеми; знаючи TI, ймовірно, єокремий посібник, що описує функцію кожного блоку; у цьому розділі 2.2 згадується режим тіней.
тіньові та дзеркальні регістри - всі регістри, до яких можна отримати доступ з декількох адрес. Наприклад, у апаратному забезпеченні даний регістр має один екземпляр, розташований у F00h. Однак якщо у нього є псевдонім на 1F00h, читання або запис до F00h - це те саме, що читання або запис до 1F00h, і навпаки.
Простіше кажучи, тіньовий регістр - це регістр, розроблений в мікроконтролері з метою зберігання певних даних, які будуть використані пізніше. Назва "Тінь" означає дублювати якесь значення і використовувати його знову - так воно не буде загубленим.