실제로 섀도우 레지스터 란 무엇입니까?


답변:


11

PIC 프로그래밍 측면 에서이 문제가 발생했다고 생각합니다. PIC는 원래 I / O 포트를 매우 직접적인 방식으로 처리했습니다. 외부에서 어떤 값을 읽었는지 또는 동일한 주소에서 출력 한 값을 쓸 수 있습니다. 이것의 단점은 출력하려는 ​​값이 핀의 상태와 일치하지 않을 수 있다는 것입니다. 다른 것이 더 강력하게 구동되거나 아직 변경을 완료하지 않았을 수 있습니다. 따라서 포트의 일부만 업데이트하려는 경우 의도 한 상태를 추적하기 위해 별도의 변수가 필요했습니다. 필자는 개별 변수가 일반적으로 섀도우 레지스터라고 부르는 것을 기억합니다. 항상 보이지 않는 출력 레지스터의 사본을 저장하는 데 사용했기 때문입니다. 최신 PIC는 "래치"주소를 추가하여이 문제를 방지합니다. 출력 레지스터를 읽을 수있는 곳. 이는 AVR의 포트 대 핀 주소와 같은 다른 마이크로 컨트롤러에서도 일반적입니다.

섀도 메모리에 대한 PC 아키텍처에서도 비슷한 용어가 있습니다. 이 경우 일반적으로 느린 ROM의 복사본을 저장하고 동일한 주소에 매핑하는 데 사용되는 RAM 섹션을 의미합니다. 다시 다른 스토리지의 사본을 저장합니다.이 사본은 주소 공간에서이를 대체하므로 숨겨집니다.

편집 : TMS320 인 경우 섀도우 레지스터는 이중 버퍼를 제공합니다. 이 기술은 적절한 시간에 업데이트가 수행되도록하는 데 사용됩니다. 그래픽에서 프레임 버퍼 스왑 사용을 비교하십시오. 데이터 설명서 쇼 그림자 여러 레지스터의 활성 버전. 예를 들어 펄스의 끝을 나타내는 레지스터를 고려하십시오. 더 짧은 펄스로 변경하는 경우, 펄스가 아직 완료되지 않은 상태에서 펄스를 변경하면 하나의 펄스가 전혀 완료되지 않을 수 있습니다 (해당 사이클의 최종 값과 같지 않기 때문에). 그러나 섀도우 레지스터에 쓰면 하드웨어가 안전한 것으로 알려진 시점 (예를 들어, 타이머가 랩핑 될 때)에 활성 레지스터에이를 복사 할 수 있습니다. 이것은 특정 칩에 대한 특정 매개 변수를 다루는 데이터 매뉴얼에 설명되어 있지 않습니다. TI를 알고 있다면각 블록의 기능을 설명하는 별도의 매뉴얼 ; 이것에 대해서는 2.2 절의 그림자 모드에 대한 언급이 있습니다.


3
특히 레지스터에 적용되는 "그림자"라는 용어의 또 다른 사용은 아키텍처 레지스터 이름을 다른 물리적 레지스터에 매핑하여 빠른 전체 또는 부분 컨텍스트 전환을 허용하는 것입니다. "뱅킹 레지스터"는 동의어로 사용되기도합니다. 일반적으로 인터럽트를 가속화하기위한 것입니다.
Paul A. Clayton

1

섀도 및 미러 레지스터는 모두 여러 주소에서 액세스 할 수있는 레지스터를 나타냅니다. 예를 들어, 하드웨어에서 지정된 레지스터에는 F00h에 하나의 인스턴스가 있습니다. 그러나 1F00h에 별명이있는 경우 F00h에 쓰거나 쓰는 것은 1F00h에 쓰거나 쓰는 것과 같으며 그 반대도 마찬가지입니다.


2
섀도우 레지스터의 목적이 무엇인지 설명하면 멋진 추가 기능이 될 것입니다.
Rev1.0

0

간단히 말해서, 섀도우 레지스터는 나중에 사용할 특정 데이터를 보유하기 위해 마이크로 컨트롤러 내에 고안된 레지스터입니다. "Shadow"라는 이름은 일부 값을 복제하여 다시 사용한다는 것을 의미하므로 손실되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.