Что такое теневой регистр?

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

12 голосов | спросил noufal 21 +04002013-10-21T13:10:18+04:00312013bEurope/MoscowMon, 21 Oct 2013 13:10:18 +0400 2013, 13:10:18

3 ответа


10

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

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

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

ответил Yann Vernier 21 +04002013-10-21T13:25:00+04:00312013bEurope/MoscowMon, 21 Oct 2013 13:25:00 +0400 2013, 13:25:00
1

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

ответил user3747592 20 PM00000020000003031 2014, 14:58:30
0

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

ответил Mike CANADA 3 Maypm16 2016, 22:00:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132