超线程机器原理与虚拟内存技术解析
1. 超线程机器原理
在超线程机器中,JEU(推测执行单元)主要完成两项关键任务。其一,它会将分支目标缓冲器(BTB)设置为直通地址,这样取指单元就能从这个新的指令地址重新启动流水线。其二,它会把预测分支地址之后的那些微操作(μops)状态设置为无效,以便后续这些μops能被退休单元丢弃。
1.1 退休单元(RU)
退休单元是一个按顺序执行的单元,它能精确知晓何时以及如何将临时的、推测性的结果提交(即退休)到永久的架构机器状态中。该单元会查找那些已经执行完毕且可以从操作池中移除的微操作。具体操作流程如下:
1. 读取指令池,找出可能退休的候选微操作。
2. 检查指令池中微操作的状态,确定哪些微操作已完成。
3. 对这些完成的微操作施加原始的程序顺序。
4. 同时,它还需要在面对中断、陷阱和预测错误的情况下完成上述工作。这就是为什么微操作需要包含正在执行指令的完整物理地址。退休单元在一个时钟周期内最多能够退休三个微操作。
为了编程方便,奔腾CPU支持一些向量指令,例如压入/弹出所有寄存器、移动一块内存、搜索一块内存等。
1.2 压入所有与弹出所有指令
在奔腾处理器中, pusha (压入所有)指令和 pushad (压入所有双字)指令共享同一个单字节操作码。根据操作系统在硬件寄存器中指定的操作数大小,每个指令可以压入八个16位或32位的寄存器。同样, popa (弹出所有)和 popad (弹出所有双字)指令也共享同一个操作
超级会员免费看
订阅专栏 解锁全文
485

被折叠的 条评论
为什么被折叠?



