21、32位x86处理器编程架构


上一节:20、中断和动态时钟显示
下一节:22、进入保护模式

01、IA-32架构和保护模式

在这里插入图片描述
在这里插入图片描述

02、寄存器的扩展和扩充

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

03、32位处理器的内存访问概况

在实模式下,段寄存器和以前一样,用来保存逻辑段地址,左移4位加上偏移地址。
在这里插入图片描述
在实模式下,处理器可访问的最高内存地址为0xFFFF0 + 0xFFFF = 0x10FFEF。理论上可访问地址如上,但是8086只有20根地址线,最高可访问地址为0xFFFFF,高于的都被截断。多出的内存叫做高位内存去(HMA:High Memory Area)。

在保护模式下,程序所使用的段需要提前分配并登记在一个描述符表中,登记了每个段的起始地址、段长度等基本信息。段长度没有限制,可将整个内存空间画为一个段,对于80386来说,描述符内的段起始地址可以使任意的32位内存地址,段长度最大可以是4G字节。

在没保护模式下,段寄存器不再用于保存程序的逻辑段地址,而是用来保存描述符的选择子,用来从描述符表中选择一个描述符。一旦选择一个描述符,处理器取出描述符中的段基地址 加上 程序中给出的段内偏移地址,从而形成完整的物理地址。其中偏移地址也没有限制,对80386来说偏移地址可以是32位。

04、32位处理器的寻址访问概况

寄存器寻址:
在这里插入图片描述
内存寻址:
在这里插入图片描述
段地址默认是DS:偏移地址可有如下给出。
在这里插入图片描述
32位处理器不能使用16位的栈指针寄存器SP提供偏移地址,但可以使用ESP
在这里插入图片描述
32位下实模式案例程序:
在这里插入图片描述
在这里插入图片描述

05、流水线技术

8086内部主城框图:
在这里插入图片描述
流水线模式:
在这里插入图片描述

06、高速缓存技术

高速缓存利用程序的局部性原理:
1、程序一般访问相邻内存的程序
2、刚刚被访问过的程序一般还会被访问
3、等等

  • 程序先从硬盘送入高速缓存,处理器先检索高速缓存,有(命中:hit)则直接取出;
  • 没有(不中:miss)再将硬盘上的数据读入高速缓存(以块为单位),再从高速缓存取数据
    在这里插入图片描述

07、乱序执行技术

为了实现流水线技术,将指令拆分成更小的可独立执行部分,即微操作(Micro-operations:u ops)。
在这里插入图片描述
在这里插入图片描述
将指令拆分成微操作之后,处理器就可以乱序执行(Out Of Order Execution)。
在这里插入图片描述
上图中:从mem2读逻辑左移可以同时进行。
在这里插入图片描述
上图中,sp=sp-2加法操作可同时进行。

08、寄存器重命名技术

在这里插入图片描述
上图中,前3行和后3行无关,即处理器会将下面的一段程序中的eax优化成别的寄存区,再将两小段并行执行

寄存器的重命名和引退:
在这里插入图片描述

09、分支目标预测技术

处理器遇到转移指令时,需要清空(flush)流水线,那么遇到转移指令时就浪费了之后的流水线。

分支预测技术(Branch Predicion):核心就是转移发生还是不发生,比如下列程序,会预测si的值没到20。
在这里插入图片描述
分支目标缓存器(Branch Target Buffer:BTB):
在这里插入图片描述
当处理器执行了一条分支语句之后,会在BTB中记录当前语句的地址、分支目标的地址、以及本次分支预测的结果。下一次在那条指令执行前,处理器先查找BTB,查看有没有最近的转移记录,如果能够找到对应的条目,则推测执行和上一次一样的分支,将该分支的指令送入流水线。当该指令实际执行时,如果这个预测是失败的,那么清空流水线,同时刷新BTB中的记录。

上一节:20、中断和动态时钟显示
下一节:22、进入保护模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值