**เรจิสเตอร์** หรือ **รีจิสเตอร์** (อังกฤษ: 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

อ้างอิง
-------

1. ↑  ศัพท์บัญญัติราชบัณฑิตยสถาน และการอ่านภาษาอังกฤษ
2. ↑  ศัพท์บัญญัติ สวทช.
3. ↑  Bose, Sanjay K. (2007). Hardware And Software Of Personal Computers. New Age International. p. 54. ISBN 9788122403039. Retrieved 2012-09-10. "Once the INS 8250 has been properly initialized, we should make proper use of the Modem Status register (MSR), Line Status register (LSR) and the Interrupt Identification register (IIR) for controlling the device during actual operation."
4. ↑  Microsoft MVP: If every hardware engineer just understood that... …write-only registers make debugging almost impossible
5. ↑  Microsoft "Guidelines for Bus and Device Specifications"
6. ↑  "blog entry on IP-XACT format". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2009-03-09. สืบค้นเมื่อ 2014-04-02.
7. ↑  
IP-XACT Schema... see component XSD
8. ↑  "DITA Semiconductor register spec". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-02-13. สืบค้นเมื่อ 2014-04-02.

ดูเพิ่ม
-------

* หน่วยประมวลผลกลาง
* อุปกรณ์คอมพิวเตอร์
* Register-transfer level (RTL)
* Input/output base address