Czym właściwie jest rejestr cieni?


Odpowiedzi:


11

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.


3
Innym zastosowaniem terminu „cień” stosowanego w szczególności do rejestrów jest mapowanie nazw rejestrów architektonicznych na różne rejestry fizyczne, aby umożliwić szybkie przełączanie kontekstu pełnego lub częściowego. („Rejestr bankowy” jest czasem używany jako synonim.) Zwykle ma to na celu przyspieszenie przerwań.
Paul A. Clayton

1

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.


2
Byłoby miłym dodatkiem, gdyby wyjaśnić, jaki jest cel tych rejestrów cienia.
Rev1.0,

0

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ć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.