Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75859
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-26 14:47
个人简介

此间少年,老于此间

文章分类

全部博文(9)

文章存档

2016年(1)

2015年(2)

2014年(4)

2013年(2)

我的朋友

分类: LINUX

2013-10-15 20:13:06

一 概念
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

使用举例:Linux快速系统调用使用如下寄存器:

MSR

地址

IA32_SYSENTER_CS

174H

IA32_SYSENTER_ESP

175H

IA32_SYSENTER_EIP

176H

若要操作这些寄存器则可用RDMSR/WRMSR进行,读取如下:

点击(此处)折叠或打开

  1. movl $0x174,%ecx
  2. rdmsr

       三 作用
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 

另外:MSR指令与MRS指令
在ARM架构中,这两条指令用于操作CPSR寄存器
阅读(5126) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~