X86保护模式编程总结(9)完

 

高速缓存,流水线和缓冲
PentiumCPU利用指令高速缓存和数据高速缓存一个时钟周期内最多访问两个数据引用和32个字节的原始操作码.(数据和指令高速缓存每个有8K字节大.每个行组32字节)
软件通过使各个页表项中PCD位置位来禁止.硬件通过对位于该区域的地址的总线周期撤销KEN#信号来禁止.(仅对读不命中时高速缓存行组的填充动作才产生,不对写不命中产生)

PentiumCPU数据高速缓存的更新策略:
1,通写: 对高速缓存中某一行组的写请求, 高速缓存和主存均作更新.通写对诸如图形桢缓冲这样的应用是有用的.
2,回写: 对高速缓存中某一行组的写请求,回写策略通过去除许多存储器不必要的写来减少总线流量, 对高速缓存中某一行组的写不直接转送到主存,而积累在高速缓存中.在执行回写操作时,被更新的高速缓存行组在以后写到这存.当需要回收已分配的高速缓存行组,例如已满时分配新的行组.触发写回操作.也可用于维护高速缓存一致性的机制触发.
注: CPU允许存储器的任意区域遵循以上任一策略.采用何种策略可通过页表项的PWT位.

指令高速缓存仅实现MESI协议的SI部分,因为它不是可写的. 指令高速缓存监控数据高速缓存中的变化,以维护指令被修改时高速缓存间的一致性.

内部高速缓存的操作: 软件通过对CR0的CD=1,NW=1禁止高速缓存

禁止内部高速缓存的步骤:
1,CR0的CD=1,NW=1
2,清洗高速缓存


高速缓存管理指令:
INVD: 使所有内部(指令和数据) 高速缓存项无效.(它不写回已修改的高速缓存行组,所以它会使数据高速缓存和系统中其他存储器不一致.一般只在测试和故障恢复时用,否则用WBINVD)
WBINVD: 首先写回数据高速缓存中任何修改的行组,然后使所有内部(指令和数据) 高速缓存项无效,它保证了维护高速缓存和主存的一致性.

自修改的代码: 修改一条高速缓存的指令,将会使预取指令队列无效.


电源管理(SMM-系统管理方式)
SMM: 系统管理方式,这是在对系统管理中断进行服务时,CPU进入的操作环境
SMI: 系统管理中断.这是SMM接口的一个部分.
SMM处理程序: 系统管理方式处理程序,当CPU处于SMM中时,将执行这段程序,这段代码可能实现的一个应用实例是电源管理或系统控制功能.
RSM: 恢复指令,这条指令供SMM处理程序用来退出SMM,并返回被中断的操作系统或程序
SMRAM: 这是专门用于SMM的物理存储器.SMM处理程序代码和相关的数据驻留在这里,这个存储器也供CPU在执行SMM处理程序之前存储其上下文.OS和应用成不能访问它.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值