Apa yang sebenarnya dimaksud dengan register bayangan?


Jawaban:


11

Saya kira Anda pernah mengalami ini dalam hal pemrograman PIC. PIC awalnya memiliki port I / O yang ditangani secara langsung - Anda dapat membaca nilai apa yang mereka miliki secara eksternal, atau menulis nilai apa yang Anda hasilkan, keduanya pada alamat yang sama. Kelemahan dari ini adalah bahwa nilai yang Anda coba hasilkan mungkin tidak cocok dengan keadaan pada pin - sesuatu yang lain bisa mendorongnya lebih kuat, atau mungkin belum menyelesaikan perubahan. Ini berarti bahwa variabel yang terpisah diperlukan untuk melacak keadaan yang Anda maksudkan, bukannya didapat, jika Anda ingin memperbarui hanya bagian port. Seingat saya, variabel terpisah adalah apa yang biasanya disebut sebagai register bayangan, karena Anda selalu menggunakannya untuk menyimpan salinan register keluaran (tidak terlihat). PIC yang lebih baru menghindari ini dengan menambahkan alamat "latch", di mana register keluaran dapat dibaca. Ini umum di mikrokontroler lain juga, seperti port vs alamat pin pada AVR.

Ada istilah serupa dalam arsitektur PC untuk memori bayangan; dalam kasus itu, biasanya berarti bagian dari RAM yang digunakan untuk menyimpan salinan ROM yang lebih lambat, dan dipetakan ke alamat yang sama. Sekali lagi ini menyimpan salinan dari beberapa penyimpanan lain, yang disembunyikan karena salinannya menggantinya di ruang alamat.

Sunting: Melihat itu adalah TMS320, register bayangan menyediakan buffer ganda; teknik ini digunakan untuk memastikan pembaruan terjadi pada waktu yang tepat. Bandingkan penggunaan swap penyangga bingkai dalam grafik. The Pedoman data menunjukkan bayangan dan versi aktif dari beberapa register. Pertimbangkan misalnya register yang menunjukkan akhir pulsa; jika Anda mengubahnya menjadi pulsa yang lebih pendek, melakukannya ketika pulsa belum selesai dapat menyebabkan satu pulsa tidak pernah selesai sama sekali (karena itu tidak pernah sama dengan nilai akhir dalam siklus itu). Tetapi jika Anda menulis ke register bayangan, perangkat keras dapat menyalinnya ke register aktif pada suatu titik yang dikenal aman - misalnya, tepat ketika timer membungkus. Ini tidak dijelaskan dalam Manual Data, yang mencakup parameter tertentu untuk chip yang diberikan; mengetahui TI, ada kemungkinan amanual terpisah yang menggambarkan fungsi setiap blok; ini menyebutkan Mode Bayangan di bagian 2.2.


3
Penggunaan lain dari istilah "bayangan" yang diterapkan khususnya pada register adalah pemetaan nama register arsitektur ke register fisik yang berbeda untuk memungkinkan pergantian konteks cepat penuh atau sebagian. ("Banked register" kadang-kadang digunakan sebagai sinonim.) Seperti itu biasanya dimaksudkan untuk mempercepat interupsi.
Paul A. Clayton

1

register bayangan dan mirror semua merujuk ke register yang dapat diakses dari banyak alamat. Misalnya, dalam perangkat keras, register yang diberikan memiliki satu instance yang terletak di F00h. Namun, jika memiliki alias pada 1F00h, membaca atau menulis ke F00h sama dengan membaca atau menulis ke 1F00h dan sebaliknya.


2
Ini akan menjadi tambahan yang bagus jika menjelaskan apa tujuan dari register bayangan itu.
Rev1.0

0

Sederhananya, shadow register adalah register yang dibuat dalam mikrokontroler untuk tujuan menyimpan data tertentu untuk digunakan nanti. Nama "Shadow" menyiratkan untuk menduplikasi beberapa nilai dan menggunakannya lagi - jadi itu tidak akan hilang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.