อ่าน 2 นาที
Machine state register
A machine state register ( MSR ) is one of three process control registers present in the PowerPC processor architecture.
Machine state register
A machine state register (MSR) is one of three process control registers present in the PowerPC processor architecture.
Processors
The implementation details of the machine state register will vary from model to model. Below are two representative implementations, the 32-bit Freescalee200z3 PowerPC core and the 64-bit IBM PowerPC.
e200z3 PowerPC core
Uses of the machine state register
This 32-bit register either controls and/or reports several important processor states.
| Mnemonic | Description |
|---|---|
| UCLE | Enables/disables userspace execution of cache locking instructions |
| SPE | Enables/disables vector instructions |
| WE | Enables/disables power management |
| CE | Enables/disables critical interrupts |
| EE | Enables/disables external interrupts |
| PR | Identifies if the processor is in supervisor or user mode |
| FP | Identifies availability of hardware floating point unit |
| ME | Enables/disables machine checkinterrupts |
| FE0 | Sets floating point exception mode |
| DE | Enable/disable debug interrupts |
| FE1 | Sets floating point exception mode |
| IS | Sets instruction address space |
| DS | Sets data address space |
Reading and writing the machine state register
The contents of the register may be read using the move from machine state register (mfmsr) instruction and may be modified by executing the return from interrupt (rfi, rfci, rfdi), system call (sc) and move to machine state register (mtmsr) instructions.
PowerPC
Uses of the machine state register
This 64-bit register either controls and/or reports several important processor states.
| Mnemonic | Description |
|---|---|
| SF | Selects 32-bit/64-bit mode |
| HV | Selects hypervisor state |
| EE | Enable/disable external interrupts |
| PR | Selects privileged or problem state |
| FP | Reports floating-point availability |
| ME | Enables/disables machine check interrupts |
| FE0 | Select floating-point mode exception mode |
| SE | Enables/disables single-step tracing |
| BE | Enables/disables branch tracing |
| FE1 | Select floating-point exception mode |
| IR | Enable/disable instruction address translation |
| DR | Enable/disable data address translation |
| PMM | Performance monitor mark |
| RI | Lists whether interrupt is (non-) recoverable |
| LE | Selects Little-Endian or Big-Endian mode (not G5) |
Reading and writing the machine state register
The machine state register can be read using the mfmsr instruction and modified using the mtmsr[d], rfid and hrfid instructions.
Confusion with model-specific register
แม้ว่ารีจิสเตอร์สถานะเครื่อง (Machine State Register) ที่พบในสถาปัตยกรรม PowerPC และรีจิสเตอร์เฉพาะรุ่น (Model-Specific Register)ที่พบใน สถาปัตยกรรม IA-32และx86-64จะทำหน้าที่คล้ายคลึงกัน และคำย่อ "MSR" สามารถหมายถึงทั้งสองอย่างได้ แต่ก็มีความแตกต่างที่สำคัญที่ทำให้แยกแยะออกจากกันได้ รีจิสเตอร์สถานะเครื่อง ซึ่งเป็นรีจิสเตอร์ตัวเดียว ให้การควบคุมแบบหยาบๆ เหนือฟังก์ชันเครื่องจำนวนเล็กน้อย ในทางตรงกันข้าม รีจิสเตอร์เฉพาะรุ่นมีอยู่หลายสิบถึงหลายร้อยตัวในสถาปัตยกรรม IA-32 และ x86_64 รุ่นใหม่ๆ และให้ความละเอียดในการรายงานและการควบคุมสถานะเครื่องที่ละเอียดกว่ามาก คำว่า "machine state register" ไม่ปรากฏใน เอกสารของ IntelและAMDในทำนองเดียวกัน "model-specific register" ก็ไม่ปรากฏในเอกสารของ IBMและFreescale
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ Machine state register
A machine state register ( MSR ) is one of three process control registers present in the PowerPC processor architecture.
Processors
The implementation details of the machine state register will vary from model to model. Below are two representative implementations, the 32-bit Freescale e200z3 PowerPC core and the 64-bit IBM PowerPC .
e200z3 PowerPC core
This 32-bit register either controls and/or reports several important processor states.
PowerPC
This 64-bit register either controls and/or reports several important processor states.