ฉันสังเกตเห็นคำศัพท์Shadow Register
ขณะที่อ่านแผ่นข้อมูลของTMS320F28335 DSP จริงๆแล้วมันหมายความว่าอะไร? มีตำแหน่งทางกายภาพใน CPU ตามที่วัตถุประสงค์ทั่วไปมีหรือไม่
ฉันสังเกตเห็นคำศัพท์Shadow Register
ขณะที่อ่านแผ่นข้อมูลของTMS320F28335 DSP จริงๆแล้วมันหมายความว่าอะไร? มีตำแหน่งทางกายภาพใน CPU ตามที่วัตถุประสงค์ทั่วไปมีหรือไม่
คำตอบ:
ฉันคาดเดาว่าคุณจะพบสิ่งนี้ในแง่ของการเขียนโปรแกรม PIC เดิม PIC มีพอร์ต I / O ที่จัดการอย่างตรงไปตรงมา - คุณสามารถอ่านค่าที่พวกเขามีจากภายนอกหรือเขียนค่าที่คุณส่งออกทั้งที่อยู่เดียวกัน ข้อเสียของสิ่งนี้คือค่าที่คุณพยายามส่งออกอาจไม่ตรงกับสถานะของหมุด - มีอย่างอื่นที่สามารถขับได้อย่างแรงกว่าหรืออาจเพิ่งเสร็จสิ้นการเปลี่ยนแปลง นี่หมายความว่าจำเป็นต้องมีตัวแปรแยกต่างหากเพื่อติดตามสถานะที่คุณต้องการแทนที่จะได้รับหากคุณต้องการอัปเดตเฉพาะบางส่วนของพอร์ต อย่างที่ฉันจำได้ว่าตัวแปรแยกต่างหากคือสิ่งที่มักจะเรียกว่า shadow register เนื่องจากคุณใช้มันเพื่อเก็บสำเนาของเอาต์พุตลงทะเบียน (ที่มองไม่เห็น) PIC ล่าสุดหลีกเลี่ยงสิ่งนี้โดยการเพิ่มที่อยู่ "latch" ตำแหน่งที่เอาต์พุตรีจิสเตอร์สามารถอ่านได้ นี่เป็นเรื่องปกติในไมโครคอนโทรลเลอร์อื่น ๆ เช่นกันเช่นพอร์ตเทียบกับที่อยู่พินบน AVR
มีคำที่คล้ายกันในสถาปัตยกรรมพีซีสำหรับหน่วยความจำเงา ในกรณีนั้นมันมักจะหมายถึงส่วนของ RAM ที่ใช้ในการเก็บสำเนาของ ROM ที่ช้ากว่าและแมปไปยังที่อยู่เดียวกัน อีกครั้งจะเก็บสำเนาของที่เก็บข้อมูลอื่นซึ่งถูกซ่อนไว้เนื่องจากสำเนาจะแทนที่ในพื้นที่ที่อยู่
แก้ไข: เนื่องจากเป็น TMS320, shadow register จะมี double buffer; เทคนิคนี้ใช้เพื่อให้การอัพเดทเกิดขึ้นในเวลาที่เหมาะสม เปรียบเทียบการใช้เฟรมบัฟเฟอร์เฟรมในกราฟิก ข้อมูลด้วยตนเองการแสดงเงาและการใช้งานรุ่นหลายลงทะเบียน พิจารณาตัวอย่างของการลงทะเบียนที่ระบุจุดสิ้นสุดของพัลส์; หากคุณเปลี่ยนเป็นพัลส์ที่สั้นลงการทำเช่นนั้นเมื่อพัลส์ยังไม่เสร็จอาจทำให้พัลส์หนึ่งไม่เสร็จเลย (เนื่องจากมันไม่เท่ากับค่าสิ้นสุดในรอบนั้น) แต่ถ้าคุณเขียนลงใน shadow register ฮาร์ดแวร์สามารถคัดลอกลงใน active register ณ จุดที่ทราบว่าปลอดภัย - ตัวอย่างเช่นเมื่อตัวจับเวลาล้อมรอบ สิ่งนี้ไม่ได้อธิบายไว้ในคู่มือข้อมูลซึ่งครอบคลุมพารามิเตอร์เฉพาะสำหรับชิปที่ระบุ รู้ TI มีโอกาสคู่มือแยกอธิบายการทำงานของแต่ละบล็อก; อันนี้มีการกล่าวถึงโหมดเงาในส่วนที่ 2.2
การลงทะเบียน shadow และ mirror ทั้งหมดอ้างถึงการลงทะเบียนที่สามารถเข้าถึงได้จากหลายที่อยู่ ตัวอย่างเช่นในฮาร์ดแวร์รีจิสเตอร์ที่กำหนดมีหนึ่งอินสแตนซ์ที่ F00h อย่างไรก็ตามหากมีนามแฝงที่ 1F00h การอ่านหรือเขียนไปที่ F00h จะเหมือนกับการอ่านหรือเขียนไปที่ 1F00h และในทางกลับกัน
พูดง่ายๆคือ Shadow register เป็นรีจิสเตอร์ภายในไมโครคอนโทรลเลอร์เพื่อเก็บข้อมูลบางอย่างไว้ใช้ในภายหลัง ชื่อ "เงา" หมายถึงการทำซ้ำบางค่าและใช้อีกครั้ง - ดังนั้นมันจะไม่หลงทาง