Что на самом деле является теневым регистром?

15

Я заметил этот термин Shadow Registerпри просмотре таблицы DSP TMS320F28335 . Что это на самом деле означает? Есть ли у него физическое расположение в ЦП, как у регистров общего назначения?

noufal
источник
Какой микроконтроллер?
Леон Хеллер
@LeonHellers извините за ошибку .. это дсп ... TMS320F28335
ноуфал

Ответы:

11

Я предполагаю, что вы столкнулись с этим с точки зрения программирования PIC. Изначально PIC-порты обрабатывали порты ввода-вывода очень прямым образом - вы могли прочитать, какие значения они имели снаружи, или записать, какие значения вы выводите, оба по одному и тому же адресу. Недостатком этого было то, что значение, которое вы пытались вывести, может не соответствовать состоянию на выводе - что-то еще могло бы привести его в движение сильнее, или оно могло бы просто еще не закончить изменение. Это означало, что отдельная переменная была необходима для отслеживания того, какое состояние вы хотели, а не получили, если хотите обновить только части порта. Насколько я помню, отдельная переменная - это то, что обычно называют теневым регистром, поскольку вы всегда использовали его для хранения копии (невидимого) выходного регистра. Более свежие PIC избегают этого, добавляя адреса "защелки", где выходной регистр можно прочитать. Это распространено и в других микроконтроллерах, таких как порт и адреса контактов на AVR.

Есть аналогичный термин в архитектуре ПК для теневой памяти; в этом случае это обычно означает раздел оперативной памяти, используемый для хранения копии более медленного ПЗУ и сопоставленный с тем же адресом. Опять же, он хранит копию какого-то другого хранилища, которое скрыто, потому что копия заменяет его в адресном пространстве.

Изменить: видя, что это TMS320, теневой регистр обеспечивает двойной буфер; Этот метод используется для обеспечения своевременного обновления. Сравните использование кадровых буферных перестановок в графике. Руководство по данным показывает теневую и активную версии нескольких регистров. Рассмотрим, например, регистр, указывающий конец импульса; если бы вы изменили его на более короткий импульс, выполнение этого, когда импульс еще не закончился, может привести к тому, что один импульс вообще никогда не завершится (поскольку он никогда не был равен конечному значению в этом цикле). Но если вы записываете в теневой регистр, аппаратное обеспечение может скопировать его в активный регистр в точке, которая, как известно, безопасна - например, именно тогда, когда таймер завершает работу. Это не описано в Руководстве по данным, которое охватывает конкретные параметры для данного чипа; зная TI, вероятно, естьотдельное руководство, описывающее функции каждого блока; в этом разделе упоминается Shadow Mode в разделе 2.2.

Ян Вернье
источник
3
Другое использование термина «тень», применяемого, в частности, к регистрам, - это сопоставление архитектурных имен регистров с различными физическими регистрами, чтобы обеспечить быстрое полное или частичное переключение контекста. («Банковский регистр» иногда используется как синоним.) Обычно он предназначен для ускорения прерываний.
Пол А. Клейтон
1

Регистры shadow и mirror относятся к регистрам, доступ к которым возможен с нескольких адресов. Например, в оборудовании у данного регистра есть один экземпляр, расположенный в F00h. Однако, если он имеет псевдоним 1F00h, чтение или запись в F00h аналогичны чтению или записи в 1F00h и наоборот.

user3747592
источник
2
Было бы хорошим дополнением, если бы вы объяснили, какова цель этих теневых регистров.
Rev 1.0
0

Проще говоря, теневой регистр - это регистр, разработанный внутри микроконтроллера с целью хранения определенных данных для последующего использования. Название «Тень» подразумевает дублирование некоторого значения и его повторное использование, чтобы оно не потерялось.

Майк КАНАДА
источник