ข้ามไปเนื้อหา

เรจิสเตอร์ตัวประมวลผล

จากวิกิพีเดีย สารานุกรมเสรี
คำอธิบายในระดับการถ่ายโอนข้อมูลระหว่างเรจิสเตอร์ของเรจิสเตอร์ขนาด 8 บิต พร้อมรายละเอียดการนำไปใช้งานจริง แสดงให้เห็นวิธีการเก็บข้อมูลทั้ง 8 บิตโดยใช้ฟลิปฟล็อป

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

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

เรจิสเตอร์ตัวประมวลผลโดยปกติจะอยู่บนสุดในลำดับชั้นของหน่วยความจำ และเป็นวิธีที่เร็วที่สุดในการเข้าถึงข้อมูล คำว่า เรจิสเตอร์ โดยทั่วไปหมายถึงเฉพาะกลุ่มของเรจิสเตอร์ที่ถูกเข้ารหัสโดยตรงเป็นส่วนหนึ่งของคำสั่ง ตามที่กำหนดโดยชุดคำสั่ง อย่างไรก็ตาม ซีพียูประสิทธิภาพสูงในปัจจุบันมักจะมีเรจิสเตอร์สถาปัตยกรรมเหล่านี้ที่ทำซ้ำขึ้นมา เพื่อปรับปรุงประสิทธิภาพผ่านเทคนิคการเปลี่ยนชื่อเรจิสเตอร์ ซึ่งทำให้เครื่องสามารถประมวลผลแบบขนานและแบบคาดการณ์ล่วงหน้าได้ การออกแบบสถาปัตยกรรมเอกซ์86 สมัยใหม่ได้เริ่มนำเทคนิคเหล่านี้มาใช้ประมาณปี ค.ศ. 1995 พร้อมกับการเปิดตัวตัวประมวลผลรุ่นสำคัญ เช่น เพนเทียมโปร ไซริกซ์ 6เอกซ์86 เอ็นเอกซ์586 และเอเอ็มดี เค5

เมื่อโปรแกรมคอมพิวเตอร์เข้าถึงข้อมูลเดียวกันซ้ำ ๆ กัน เราจะเรียกปรากฏการณ์นี้ว่า หลักความเฉพาะที่ของการอ้างอิง (locality of reference) การเก็บค่าที่ใช้บ่อยไว้ในเรจิสเตอร์มีความสำคัญต่อประสิทธิภาพของโปรแกรม การจัดสรรเรจิสเตอร์นั้นทำได้โดยคอมไพเลอร์ในขั้นตอนการสร้างโค้ด หรือโดยโปรแกรมเมอร์ด้วยการเขียนภาษาแอสเซมบลี

อ้างอิง

[แก้]
  1. "What is a processor register?". Educative: Interactive Courses for Software Developers (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-08-12.
  2. "A Survey of Techniques for Designing and Managing CPU Register File".