เรจิสเตอร์

เรจิสเตอร์ หรือ รีจิสเตอร์ (register) ในอิเล็กทรอนิกส์ดิจิทัล โดยเฉพาะอย่างยิ่งในการคำนวณ เรจิสเตอร์จะเก็บข้อมูลเป็นบิทจำนวนมากเพื่อให้ระบบต่างๆสามารถเขียนเข้าไปใหม่หรืออ่านบิททั้งหมดนั้นได้พร้อมกัน เรจิสเตอร์เป็นหน่วยความจำขนาดเล็ก ที่ทำงานได้เร็วมาก ในระบบคอมพิวเตอร์ หน่วยความจำเหล่านี้ ใช้เก็บข้อมูลที่จำเป็นในการคำนวณ หรือสถานะการทำงานของหน่วยประมวลผลกลาง และมักถูกอ้างถึงบ่อย ในระหว่างการคำนวณของหน่วยประมวลผล เพื่อให้โปรแกรมที่ทำงานอยู่ สามารถเข้าถึงข้อมูลที่จำเป็นเหล่านี้ ได้อย่างรวดเร็ว
==ฟังก์ชัน==
สัญญาณเรียกใช้ข้อมูลจากเครื่องคำนวณหลักจะถูกส่งไปที่อุปกรณ์ควบคุมของรึจิสเตอร์เพื่อให้เรจิสเตอร์ส่งข้อมูลไปให้หรือรับข้อมูลจากอีกเรจิสเตอร์หนึ่ง
บางครั้งเครื่องคำนวณหลักเปลี่ยนเส้นทางข้อมูลจากเรจิสเตอร์หนึ่งไปยังอุปกรณ์ที่ทำหน้าที่บางอย่างเช่นหน่วยบวกเลข จากนั้นจึงส่งผลลัพธ์ไปเก็บไว้ที่อีกเรจิสเตอร์หนึ่ง
การใช้งานโดยทั่วไปของเรจิสเตอร์ประกอบด้วย:
ทำการตั้งค่า configuration และการเริ่มต้นทำงานของคุณสมบัติบางอย่าง โดยเฉพาะอย่างยิ่ง ในระหว่างการ initialization
ทำเป็นหน่วยความจำบัฟเฟอร์ชั่วคราว เช่น หน่วยความจำวิดีโอสำหรับกราฟิกการ์ด
เป็นอินพุต/เอาต์พุต (I/O) ในงานที่แตกต่างกัน
รายงานสถานะ เช่นเหตุการณ์บางอย่างได้เกิดขึ้นในหน่วยฮาร์ดแวร์หรือไม่ (ตัวอย่างเช่นเรจิสเตอร์ที่แสดงสถานะของโมเด็ม (modem status register หรือ MSR) หรือ เรจิสเตอร์ที่แสดงสถานะของสาย (line status register หรือ LSR )
การอ่านเรจิสเตอร์ใน "peripheral units" (ฮาร์ดแวร์คอมพิวเตอร์นอก CPU) เกี่ยวข้องกับการ เข้าถึง I/O address ที่หน่วยความจำหรือพอร์ตกำหนดไว้(memory-mapped I/O address หรือ port-mapped I/O address) ที่มีคำสั่ง "โหลด" หรือ "เก็บ"ที่ออกโดยหน่วยประมวลผล เรจิสเตอร์จะถูกเรียกด้วยคำสั่ง แต่บางครั้ง ใช้เพียงไม่กี่บิตของคำสั่ง เช่น อ่านใน หรือ เขียนไป ที่เรจิสเตอร์ใดๆ
เครื่องมือการออกแบบเชิงพาณิชย์ถูกทำให้ง่ายและโดยอัตโนมัติของการใช้ข้อกำหนดและการสร้างระหัสของเรจิสเตอร์ที่กำหนดโดยหน่วยความจำ(memory-mapped register) สำหรับฮาร์ดแวร์, เฟิร์มแวร์, การตรวจสอบ ฮาร์ดแวร์, การทดสอบ และเอกสารต่างๆ
เพราะเรจิสเตอร์แบบ write-only แก้จุดบกพร่องเกือบไม่ได้ นำไปสู่ปัญหา read-modify-write และยังทำให้เป็นเรื่องยากโดยไม่จำเป็นสำหรับ Advanced Configuration and Power Interface (ACPI) เพื่อตรวจสอบสถานะของอุปกรณ์เมื่อเข้าสู่สลีปโหมด เพื่อเรียกคืนสถานะเมื่อออกจากสลีปโหมด โปรแกรมเมอร์จำนวนมากบอกนักออกแบบฮาร์ดแวร์เพื่อให้แน่ใจว่าเรจิสเตอร์ทั้งหมดที่สามารถเขียนได้จะสามารถอ่านได้ด้วย อย่างไรก็ตาม มีบางกรณี เมื่อการอ่านบางประเภทของเรจิสเตอร์ จะไร้ประโยชน์ ตัวอย่างเช่น บิตของรีจิตเตอร์แบบ strobe ที่สร้างวงจรพัลส์หนึ่งรอบเข้ากับฮาร์ดแวร์พิเศษจะอ่านเป็นลอจิก 0 เสมอ
==ความหลากหลายของเรจิสเตอร์==
เรจิสเตอร์ภายในหน่วยประมวลผลกลาง (CPU) จะเรียกว่ารึจิสเตอร์หน่วยประมวลผล
เรจิสเตอร์แบบ Strobe มีอินเตอร์เฟสเดียวกันเรจิสเตอร์ปกติ แต่แทนที่จะจัดเก็บข้อมูล พวกมันจะ กระตุกให้กระทำอะไรบางอย่างทุกครั้งที่พวกมันถูกเขียน (หรือในกรณีที่หายาก ถูกอ่านจาก) พวกมันเป็นเครื่องมือส่งสัญญาณ
เรจิสเตอร์ปกติจะถูกวัดโดยจำนวนบิตที่พวกมันสามารถเก็บไว้ ตัวอย่างเช่น "8 บิตเรจิสเตอร์" หรือ" 32 บิตเรจิสเตอร์"
นักออกแบบสามารถใช้งานเรจิสเตอร์ในหลากหลายวิธี รวมทั้ง:
ไฟล์เรจิสเตอร์
SRAM มาตรฐาน
flip-flop เฉพาะตัว
หน่วยความจำหลักความเร็วสูง
นอกจากนั้น เรจิสเตอร์ที่"โปรแกรมเมอร์มองเห็น" ที่สามารถถูกอ่านและเขียนด้วยซอฟแวร์ ชิปจำนวนมากมีเรจิสเตอร์แบบ "microarchitectural ภายใน"ที่ถูกนำมาใช้สำหรับเครื่องคำนวณหลักและเครื่องอื่นที่อยู่ระหว่างการพัฒนา; ตัวอย่างเช่น registered memory
ในสถาปัตยกรรมคอมพิวเตอร์ส่วนใหญ่ จะแบ่งประเภทของเรจิสเตอร์ ไว้เป็นหมวดหมู่ เช่น
เรจิสเตอร์สำหรับงานทั่วไป (general purpose register)
เรจิสเตอร์สำหรับเลขทศนิยม (floating point register)
เรจิสเตอร์สำหรับหน้าที่พิเศษ (special purpose register)
* เรจิสเตอร์ที่เก็บตำแหน่งของชุดคำสั่งที่กำลังประมวลผลอยู่ (program counter)
* เรจิสเตอร์ที่เก็บตำแหน่งของสแตก
==มาตรฐาน==
SPIRIT IP- XACT และ DITA SIDSC XML เป็นตัวกำหนดรูปแบบ XML มาตรฐานสำหรับ  memory-mapped registers
==อ้างอิง==
== ดูเพิ่ม ==
หน่วยประมวลผลกลาง
อุปกรณ์คอมพิวเตอร์
Register-transfer level (RTL)
Input/output base address
วงจรดิจิทัล