ฟังก์ชัน ของ เรจิสเตอร์

สัญญาณเรียกใช้ข้อมูลจากเครื่องคำนวณหลักจะถูกส่งไปที่อุปกรณ์ควบคุมของรึจิสเตอร์เพื่อให้เรจิสเตอร์ส่งข้อมูลไปให้หรือรับข้อมูลจากอีกเรจิสเตอร์หนึ่ง

บางครั้งเครื่องคำนวณหลักเปลี่ยนเส้นทางข้อมูลจากเรจิสเตอร์หนึ่งไปยังอุปกรณ์ที่ทำหน้าที่บางอย่างเช่นหน่วยบวกเลข จากนั้นจึงส่งผลลัพธ์ไปเก็บไว้ที่อีกเรจิสเตอร์หนึ่ง

การใช้งานโดยทั่วไปของเรจิสเตอร์ประกอบด้วย:

  • ทำการตั้งค่า configuration และการเริ่มต้นทำงานของคุณสมบัติบางอย่าง โดยเฉพาะอย่างยิ่ง ในระหว่างการ initialization
  • ทำเป็นหน่วยความจำบัฟเฟอร์ชั่วคราว เช่น หน่วยความจำวิดีโอสำหรับกราฟิกการ์ด
  • เป็นอินพุต/เอาต์พุต (I/O) ในงานที่แตกต่างกัน
  • รายงานสถานะ เช่นเหตุการณ์บางอย่างได้เกิดขึ้นในหน่วยฮาร์ดแวร์หรือไม่ (ตัวอย่างเช่นเรจิสเตอร์ที่แสดงสถานะของโมเด็ม (อังกฤษ: modem status register หรือ MSR) หรือ เรจิสเตอร์ที่แสดงสถานะของสาย (อังกฤษ: line status register หรือ LSR )[3]

การอ่านเรจิสเตอร์ใน "peripheral units" (ฮาร์ดแวร์คอมพิวเตอร์นอก CPU) เกี่ยวข้องกับการ เข้าถึง I/O address ที่หน่วยความจำหรือพอร์ตกำหนดไว้(อังกฤษ: memory-mapped I/O address หรือ port-mapped I/O address) ที่มีคำสั่ง "โหลด" หรือ "เก็บ"ที่ออกโดยหน่วยประมวลผล เรจิสเตอร์จะถูกเรียกด้วยคำสั่ง แต่บางครั้ง ใช้เพียงไม่กี่บิตของคำสั่ง เช่น อ่านใน หรือ เขียนไป ที่เรจิสเตอร์ใดๆ

เครื่องมือการออกแบบเชิงพาณิชย์ถูกทำให้ง่ายและโดยอัตโนมัติของการใช้ข้อกำหนดและการสร้างระหัสของเรจิสเตอร์ที่กำหนดโดยหน่วยความจำ(อังกฤษ: memory-mapped register) สำหรับฮาร์ดแวร์, เฟิร์มแวร์, การตรวจสอบ ฮาร์ดแวร์, การทดสอบ และเอกสารต่างๆ

เพราะเรจิสเตอร์แบบ write-only แก้จุดบกพร่องเกือบไม่ได้[4] นำไปสู่​​ปัญหา read-modify-write และยังทำให้เป็นเรื่องยากโดยไม่จำเป็นสำหรับ Advanced Configuration and Power Interface (ACPI) เพื่อตรวจสอบสถานะของอุปกรณ์เมื่อเข้าสู่สลีปโหมด เพื่อเรียกคืนสถานะเมื่อออกจากสลีปโหมด[5] โปรแกรมเมอร์จำนวนมากบอกนักออกแบบฮาร์ดแวร์เพื่อให้แน่ใจว่าเรจิสเตอร์ทั้งหมดที่สามารถเขียนได้จะสามารถอ่านได้ด้วย อย่างไรก็ตาม มีบางกรณี เมื่อการอ่านบางประเภทของเรจิสเตอร์ จะไร้ประโยชน์ ตัวอย่างเช่น บิตของรีจิตเตอร์แบบ strobe ที่สร้างวงจรพัลส์หนึ่งรอบเข้ากับฮาร์ดแวร์พิเศษจะอ่านเป็นลอจิก 0 เสมอ