IA-32架构基本环境

高级功能:高速缓存、流水线、寄存器重命名、浮点处理部件、多处理器(核)管理、多媒体扩展、乱序执行、分支目标预测、虚拟化

1.流水线

        一条指令的完成需要经历取指、译码、执行等多个操作,每个操作需要用到不同的部件,例如有ABC指令序列,当B正在执行时,可以对C进行译码,能加快程序的执行速度。如下图,能节省4个时钟周期。一文读懂流水线

 2.高速缓存

        作用:加快访存速度

        内存使用DRAM,寄存器和高速缓存使用SRAM,访问速度更快

        高速缓存得以运用的原理来自局部性原理

3.乱序执行

        乱序的前提:后面的指令先执行对前面指令的执行结果不造成影响

        乱序效果:提高效率,用空间换时间

4.寄存器重名

        为流水线和乱序执行的可行性提供条件,参考文章

5.分支预测

        流水线的运行并没有考虑到循环、跳转和分支,当这三者出现时,需要清空(Flush)流水线。但是由于指令的局部性原理,当某个转移出现时,下次又执行它时,大概率执行顺序与前一次相同。利用分支目标缓存器记录当前转移指令的地址、分支目标的地址和预测结果,下次进行转移时,对比BTB(Branch Target Buffer)内的条目,如果找到相同分支,就把该分支放入流水线。如果失败,就清空流水线并刷新BTB中的记录。

6.寻址方式

        基址+变址x比例因子(1、2、4、8)+8位或32位偏移量

        所有通用寄存器都可以充当基址寄存器和变址寄存器,除ESP不能充当变址寄存器。

        16位模式下使用32位寄存器的指令,编译结果有0x66作为指令前缀,类似16位取反的意思。

        32位模式下使用16位寄存器编译结果也有0x66,默认使用32位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值