Stack Pointer Tracker

Intel 64和IA32架构上有几个用于参数传递以及过程进入与退出的常用指令:PUSH,POP,CALL,LEAVE和RET。这些指令隐式得更新栈指针寄存器(ESP或RSP),无需软件介入,即可在程序栈中维护传递的参数和过程执行控制流(进入与退出)。在前几代微架构中,这些指令通常都译码为多条微指令。

栈指针跟踪器将这些指令中对栈指针的更新操作移到了译码器中专门的硬件逻辑中。这个体系提供如下的优势:

  • 提升译码带宽,在Intel Core微架构上,PUSH/POP/RET均译码为单微指令。
  • 节省执行带宽,栈指针更新不再需要竞争执行资源。
  • 增强乱序执行引擎的并行性,因为微指令间隐式地串行化依赖被消除了。
  • 提高能耗效率,因为栈指针的更新由小的专用硬件完成。

Micro-fusion

微熔合将来自于同一条x86指令的多条微指令合并成单条复杂微指令。换句话说,某条x86指令译码后生成了多条微指令,微熔合机制可以将这些微指令合并在一起生成单条复杂微指令,等价于一条x86指令在微熔合机制下译码后只生成一条微指令。微熔合具有如下的性能优势:

  • 提升从译码指到退役的指令带宽
  • 降低能耗,因为复杂微指令以较小的格式(从比特密度的角度来看)表示了较多的操作,当机器需要完成某个固定工作量的操作时,减少了机器总体需要的“比特反转”,即减少电力消耗,也实际上增加了乱序执行引擎可以存储的指令数量

许多指令有寄存器操作格式和存储器操作格式。相比起寄存器操作格式,操作存储器的指令格式通常会译码为较长的几条微指令序列。微熔合机制使得软件可以使用存储器到寄存器的指令操作格式,而无需再担心损失译码带宽。

(Todo:这个例子恰当?)例如,在Pentium II和Pentium III处理器上,对于ADD指令,ADD r8, r8(寄存器操作)对应一条微指令,但是ADD r8, m8(存储器操作)则会译码为两条微指令。但是在Intel Core及其以后的微架构上,ADD r8, m8(存储器到寄存器)则可以通过微熔合机制译码为单条复杂微指令。

Intel Core Enhanced Core架构/微架构/流水线 (7) - 栈指针跟踪器/微熔合相关推荐

  1. Intel Core Enhanced Core架构/微架构/流水线 (1) - 特性概述

    Intel Core微架构引入了下列特性,可以为单线程和多线程程序提供两种性能选择:高性能模式或者能效性能模式. Intel® 宽动态执行(指带宽)使得每个处理器核可以以高带宽读取,分发,执行指令,最 ...

  2. Intel Core Enhanced Core架构/微架构/流水线 (4) - 流水线前端概述

    Front End 前端的主要功能是为6发射宽度的乱序引擎提供并保持微指令流.下表列出了微架构中前端的构成部件,以及他们的功能和在性能方面面临的挑战. 部件 功能 性能挑战 分支预测单元(BPU) 预 ...

  3. Intel Core Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存

    Intel® Advanced Smart Cache 为了支持单基模上的双处理器核,Intel Core微架构提供了许多优化特性.两个核共享一个二级缓存和总线接口单元,下图中绿色部分标出.本节讲述I ...

  4. Intel Core Enhanced Core架构/微架构/流水线 (13) - 存储转发/访存消歧

    Store forwarding 如果一个读存操作紧跟着写存操作且这两条指令操作同一个内存地址,Intel Core微架构可以直接将写存操作的数据转发给读存操作指令.这个过程被称为存储到读取转发机制, ...

  5. Intel Core Enhanced Core架构/微架构/流水线 (12) - 数据预取

    Data Prefetch to L1 Caches Intel Core微架构提供了2个硬件预取器,可以将数据预取到一级缓存中,由此加速程序访问数据的速度: 数据缓存单元预取器(DCU prefet ...

  6. Intel Core Enhanced Core架构/微架构/流水线 (10) - 先进存储器访问

    Intel® Advanced Memory Access Intel Core微架构中的每个处理器核都包含一个指令缓存和一个一级数据缓存.两个处理器核共享一个2M或4M字节大小的二级混合式缓存(既存 ...

  7. Intel Core Enhanced Core架构/微架构/流水线 (9) - 执行单元发射口旁路时延

    Issue Ports and Execution Units 通过发射口,调度器可以每周期分发6条微指令.Intel Core微架构和Enhanced Intel Core微架构的发射口以及支持的操 ...

  8. Intel Core Enhanced Core架构/微架构/流水线 (8) - 执行核

    Execution Core Intel Core微架构的执行核是超标量的,且可以乱序处理指令.注意:这里没有使用乱序执行指令,用的是乱序处理指令."处理"在这里包括对指令的寄存器 ...

  9. Intel Core Enhanced Core架构/微架构/流水线 (6) - 指令预译码/指令队列/指令译码

    Instruction PreDecode 指令预译码器从指令Cache或者指令预取缓存区中接收16字节的指令流,执行如下的预译码操作: 确定每条指令的长度(注:x86指令是变长指令) 译码每条指令的 ...

最新文章

  1. linux系统源码安装教程,linux之源码包安装步骤
  2. 信号建模与参数估计作业重新计算
  3. webbench网站压力测试工具的使用方法
  4. matlab 康托尔集,测测你的数学直觉 - Dagis的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 描写火车站场景_描写火车站热闹场面的作文300字
  6. php dao类设计,DAO数据访问对象设计 - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架...
  7. JAVA进阶教学之(StrngBuffer进行字符串拼接)
  8. 怎么让电脑速度变快_小科普 | 免费的路由器!用你的电脑开5G热点!
  9. 华为云一站式AI开发平台ModelArts获2019全球智博会金奖
  10. java 同步 实例_Java 1.4同步:仅允许方法的一个实例运行(非...
  11. 没有一个产品,竟捞金200亿!2021年最大胆设想,已沦为圈钱工具
  12. 解决苹果手机返回不刷新问题
  13. repo/git下载android源码断后重新下载
  14. 亚马逊的冷血文化:虽然备受争议,但颇具力量
  15. 软考高项你想知道的都在这
  16. 原生Js汉语拼音首字母匹配城市名/自动提示列表
  17. Java代理模式详解
  18. STM32F1系列与STM32F4系列的GPIO
  19. Python 爬取手机 豆果美食app存Mongodb
  20. doctrine安装和配置

热门文章

  1. 代数学笔记11: 分圆域,分圆多项式,求解17次方程
  2. Win10下安装LabelImg以及使用(绝对是全网最简单的教程)
  3. 微信小程序Wepy框架的三个事件交互($broadcast,$emit,$invoke)
  4. mjorm java_MongoDB 的 ORM框架 MJORM
  5. php mencache扩展,【memcache缓存专题(3)】PHP-memcache扩展的安装以及使用
  6. python ipaddr库_用Python脚本查询纯真IP库QQWry.dat(Demon修改版)
  7. 20_python基础—面向对象-私有属性和私有方法
  8. 400集python入门到精通_2020年最强Python学习路线+教程,400集带你从入门到精通
  9. java面向服务架构_面向服务的体系架构 SOA(一) --- 基于TCP、HTTP协议的RPC
  10. hive表ddl导出_Flink 1.11 与 Hive 批流一体数仓实践