รีจิสเตอร์

จากวิกิพีเดีย สารานุกรมเสรี
(เปลี่ยนทางจาก เรจิสเตอร์)

รีจิสเตอร์ (อังกฤษ: register) ในอิเล็กทรอนิกส์ดิจิทัล โดยเฉพาะอย่างยิ่งในการคำนวณ รีจิสเตอร์จะเก็บข้อมูลเป็นบิทจำนวนมากเพื่อให้ระบบต่างๆสามารถเขียนเข้าไปใหม่หรืออ่านบิททั้งหมดนั้นได้พร้อมกัน รีจิสเตอร์เป็นหน่วยความจำขนาดเล็ก ที่ทำงานได้เร็วมาก ในระบบคอมพิวเตอร์ หน่วยความจำเหล่านี้ ใช้เก็บข้อมูลที่จำเป็นในการคำนวณ หรือสถานะการทำงานของหน่วยประมวลผลกลาง และมักถูกอ้างถึงบ่อย ในระหว่างการคำนวณของหน่วยประมวลผล เพื่อให้โปรแกรมที่ทำงานอยู่ สามารถเข้าถึงข้อมูลที่จำเป็นเหล่านี้ ได้อย่างรวดเร็ว

ฟังก์ชัน[แก้]

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

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

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

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

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

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

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

อ้างอิง[แก้]

  1. 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."
  2. Microsoft MVP: If every hardware engineer just understood that... …write-only registers make debugging almost impossible
  3. Microsoft "Guidelines for Bus and Device Specifications"
  4. blog entry on IP-XACT format
  5. IP-XACT Schema... see component XSD
  6. DITA Semiconductor register spec

ดูเพิ่ม[แก้]