MSR-Model Specific Registers (特殊模块寄存器)
来源:互联网 发布:opentsdb java开发 编辑:程序博客网 时间:2024/05/29 12:20
转载自http://blog.csdn.net/edonlii/article/details/8685713
Linux下有个工具msr_tool可以用来读写MSR里面的值,这里面的值不要乱写,容易蓝屏!
一 概念
Model Specific Register (MSR) as the name implies is model specific and may change from processor model number (n) to processor model number (n+1).
二 读写方法
MSR 是CPU 的一组64 位寄存器,可以分别通过RDMSR 和WRMSR 两条指令进行读和写的操作,前提要在ECX 中写入MSR 的地址。对于RDMSR 指令,将会返回相应的MSR 中64bit 信息到(EDX:EAX)寄存器中;对于WRMSR 指令,把要写入的信息存入(EDX:EAX)中,执行写指令后,即可将相应的信息存入ECX 指定的MSR 中。MSR 的指令必须执行在level 0 或实模式下。
RDMSR 0F 32 不影响标志位 把ECX指定的模型专用寄存器内容送EDX:EAX RDMSR
WRMSR 0F 30 不影响标志位 把EDX:EAX的内容写入ECX指定的模型专用寄存器 WRMSR
三 作用
MSR 总体来是为了设置CPU 的工作环境和标示CPU 的工作状态,包括温度控制,性能监控等,具体来说,分为以下几项:
1. Thermal
2. Frequency
3. C State
4. Microcode
5. EIST
6. TM
7. Key Features Of CPU
8. Voltage
9. Cache Control
10. MTRR
11. DCA(Direct Cache Access)
12. Machine Check
13. 硬件联机控制
14.other
Model Specific Register (MSR)
MSR指令
MSR指令的格式为:
MSR{条件} 程序状态寄存器(CPSR或SPSR)_<域>,操作数
MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。<域>用于设置程序状态寄存器中需要操作的位,32位的程序状态寄存器可分为4个域:
位[31:24]为条件标志位域,用f表示;
位[23:16]为状态位域,用s表示;
位[15:8]为扩展位域,用x表示;
位[7:0]为控制位域,用c表示;
该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR指令中指明将要操作的域。
指令示例:
MSR CPSR,R0 ;传送R0的内容到CPSR
MSR SPSR,R0 ;传送R0的内容到SPSR
MSR CPSR_c,R0 ;传送R0的内容到CPSR,但仅仅修改CPSR中的控制位域
0 0
- MSR-Model Specific Registers (特殊模块寄存器)
- MSR-Model Specific Registers (特殊模块寄存器)
- MSR-Model Specific Registers (特殊模块寄存器)
- MSR-Model Specific Registers (特殊模块寄存器)
- DB2 特殊寄存器(Special Registers)
- DB2 特殊寄存器(Special Registers)
- Smali语法:Registers(寄存器)
- Smali语法:Registers(寄存器)
- ZwSystemDebugControl函数读取MSR寄存器值
- x86/x86_64 CPU控制寄存器(Control Registers)
- 调试寄存器(debug registers, DRx)理论及实践
- Shader Model 3 寄存器
- 汇编指令状态寄存器访问指令(MRS,MSR)
- 特殊功能寄存器
- 特殊功能寄存器
- S3C2440特殊寄存器
- 特殊功能寄存器
- 特殊功能寄存器SFR
- jsp弹出框之快速导航
- IOS开发之瀑布流的实现(UICollectionView与UIScrollView)
- 如何删除myeclipse自导的冲突jar包——antrl-2.7.2
- Linux设备模型(6)_Bus
- 办公业务流程信息展现及功能设计案例
- MSR-Model Specific Registers (特殊模块寄存器)
- 用博文中的方法-r -d "\t"试了下conlleval测试crf++的输出
- C++使用虚函数的时候,子类也要使用virtual关键字吗
- intel桥片集成mac有关问题
- C#AutoResetEvent和ManualResetEvent的区别
- Qt读取中文路径文件
- 物料主数据相关表
- Python学习笔记
- 泛型小结