Zauważyłem ten termin Shadow Register
, przeglądając arkusz danych DSP TMS320F28335 . Co to właściwie znaczy? Czy ma fizyczną lokalizację w CPU, tak jak w rejestrach ogólnego przeznaczenia?
15
Zauważyłem ten termin Shadow Register
, przeglądając arkusz danych DSP TMS320F28335 . Co to właściwie znaczy? Czy ma fizyczną lokalizację w CPU, tak jak w rejestrach ogólnego przeznaczenia?
Odpowiedzi:
Zgaduję, że napotkałeś to w zakresie programowania PIC. PIC pierwotnie miał porty I / O obsługiwane w bardzo bezpośredni sposób - można było odczytać, jakie wartości miały zewnętrznie, lub zapisać, jakie wartości wyprowadzasz, oba pod tym samym adresem. Minusem tego jest to, że wartość, którą próbujesz wyprowadzić, może nie zgadzać się ze stanem na pinie - coś innego może napędzać go mocniej lub po prostu jeszcze nie zakończyła zmiany. Oznaczało to, że potrzebna była osobna zmienna, aby śledzić zamierzony stan, a nie uzyskać, jeśli chcesz aktualizować tylko części portu. Jak pamiętam, oddzielna zmienna jest zwykle nazywana rejestrem cienia, ponieważ zawsze używałeś jej do przechowywania kopii (niewidocznego) rejestru wyjściowego. Nowsze PIC unikają tego, dodając adresy „zatrzaskowe”, gdzie można odczytać rejestr wyjściowy. Jest to powszechne również w innych mikrokontrolerach, takich jak adresy port vs. pin w AVR.
Istnieje podobny termin w architekturze PC dla pamięci cienia; w takim przypadku zwykle oznacza to część pamięci RAM używaną do przechowywania kopii wolniejszej pamięci ROM i odwzorowaną na ten sam adres. Ponownie przechowuje kopię innego magazynu, który jest ukryty, ponieważ kopia zastępuje go w przestrzeni adresowej.
Edycja: Widząc, że jest to TMS320, rejestr cienia zapewnia podwójny bufor; technika ta służy do zapewnienia, że aktualizacje będą miały miejsce we właściwym czasie. Porównaj użycie zamiany bufora ramki w grafice. W instrukcji użytkowania pokazuje cień i aktywne wersje kilka rejestrów. Rozważmy na przykład rejestr wskazujący koniec impulsu; jeśli miałbyś zmienić go na krótszy impuls, zrobienie tego, gdy puls jeszcze się nie skończył, może spowodować, że jeden impuls w ogóle się nie skończy (ponieważ nigdy nie był równy wartości końcowej w tym cyklu). Ale jeśli napiszesz do rejestru cienia, sprzęt może skopiować go do rejestru aktywnego w miejscu znanym jako bezpieczny - na przykład dokładnie wtedy, gdy zegar się zawija. Nie jest to opisane w Podręczniku danych, który obejmuje określone parametry dla danego układu; znając TI, prawdopodobnie istniejeoddzielna instrukcja opisująca funkcję każdego bloku; ten zawiera wzmiankę o trybie cienia w rozdziale 2.2.
źródło
Rejestry shadow i mirror odzwierciedlają rejestry, do których można uzyskać dostęp z wielu adresów. Na przykład, w sprzęcie, dany rejestr ma jedną instancję zlokalizowaną na F00h. Jeśli jednak ma alias o 1F00h, odczyt lub zapis do F00h jest taki sam, jak odczyt lub zapis do 1F00h i odwrotnie.
źródło
Mówiąc najprościej, rejestr cieni to rejestr opracowany w mikrokontrolerze w celu przechowywania określonych danych do późniejszego wykorzystania. Nazwa „Cień” oznacza zduplikowanie pewnej wartości i użycie jej ponownie - aby się nie zgubić.
źródło