Intel命名Sandy Bridge 的微架构是基于Core 2 和Nehalem的第二代设计。在解码器后面加入了新的uop cache,并且浮点执行单元从128bit扩展到256bit。

Sandy Bridge 有2-8 个core,其中的一些版本可以在每个core上运行双线程。

支持新的AVX 指令。将16个128bit的XMM寄存器扩展到256bit的YMM寄存器用于支持浮点向量运算。大多数的XMM和YMM指令是AVX指令集中non-destructive three-operand 版本。

9.1 Pipeline

Sandy Bridge 和 Ivy Bridge 与Core2 和 Nehalem的流水线非常类似,但是在译码器后面增加了uop cache。

Sandy Bridge 的重排序缓冲区有168项,Ivy Bridge 的有192项。Sandy Bridge 的保留站有54项,Haswell有60项。Sandy Bridge 有160个整数寄存器和144个向量寄存器。Haswell各有168个。

9.2 取指和解码

预先解码和解码器可以每周期处理16byte或者是4条指令。在macro-op fusion的情况下可以处理5条指令。这看上去基本上和Core2 和Nehalem中的基本一致。

任意个数前缀的指令都可以单周期被译码掉。

在一些case中,变长前缀的惩罚已经被解决。还有一部分遗留:

  • 使用立即数的move指令没有惩罚
  • 使用立即数的算术和逻辑计算有2-3个周期的惩罚
  • 单16bit操作数的NEG,NOT,DIV,IDIV,MUL和IMUL指令没有惩罚
  • 地址大小前缀没有惩罚,即使已经改变了指令长度。

有4个译码器,可以在特定模式下处理一条或者多条uops。如下的指令在我个人的测试中,在单周期被成功地解码。

  • 1-1-1-1
  • 2-1-1
  • 3
  • 4

产生3-4条uops的指令被单独的译码。产生超过4条uop的指令由microcode处理,较为低效。

多byte的NOP指令和操作数0F,1F 只能在Sandy Bridge的第一个译码器中译码。然而一个简单的NOP,带有格外的前缀(opcode 66 66 90)可以被四个译码器中的任意一个译码。Ivy Bridge 对此没有限制。在Ivy Bridge 中,长NOPs可以按照每周期4条指令的速度译码。

9.3 uop cache

Sandy Bridge 和Ivy Bridge 在decoders之后有一个cache用于存放解码过的微指令。考虑到平均指令长度超过4byte,fetch和译码单元每周期传输16byte将会是一个很严重的瓶颈。因此这个uop cache将会十分有效。uop cache使吞吐率加倍达到每周期32byte。

uop cache为32sets * 8 ways * 6uops,总计最多可以存储1536条uops。它一次最多分配3line * 6uops 给对齐且连续的32-byte 指令。

来自uop cache的code,不会被fetch和解码单元所限制。它可以实现4uops的吞吐率,等效于每周期32byte的指令。

Uop cache很少能够用满1536条uops。无法发挥全部潜能的原因如下:

  • uop cache line是被分配到特定的32 byte 指令block。 新的uop cacheline将被分配到新的 32byte 边界。即使前一条uop cacheline只被部分使用
  • 产生多条uops的指令不能占用两个uops cache line。如果指令不能完全的被两条 cacheline所打断,那么剩余的cache line就不会被使用。它会另起一行,放入新的cache line
  • 产生超过4条uops的使用microcode ROM。这样的指令会使用完整的一条cacheline
  • 无条件跳转和调用函数指令通常结束 uop cacheline
  • 要求超过32bit的存储空间的指令可能占用uop cache 中的两项,加载时可能会多花费一个周期
  • 每周期不能加载超过一条cache line。这在多个指令使用两项时,可能会造成瓶颈
  • 一个32byte 的指令block 产生超过18条uops 或者要求uop cache中的18 项的指令不会被分配到uop cache中
  • pipeline频繁的在译码单元和uop cache之间切换,切换可能会花费一个周期。

翻译自【Microarchitecture of Intel and AMD CPU  An optimization guide for assembly programmers and compiler makers】

欢迎关注我的公众号《处理器与AI芯片》

【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.1~9.3】相关推荐

  1. 用Intel跟AMD CPU烤肉,哪个更香,你们猜猜结果?

    视频来源YouTube:たれみみChannel 微信公众号:芯片之家(ID:chiphome-dy) 之前发了个AMD CPU烤肉的视频,大家说是黑AMD的,今天作者带来了Intel CPU烤肉的视频 ...

  2. intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!

    http://www.365pcbuy.com/article-411.html 特别提示:此文已经于2016年10月12日更新!内容变动较大,请细细品鉴! 如何为客户推荐高性价比机型是我站的重要工作 ...

  3. Intel与AMD CPU型号对照

  4. Intel、AMD和Arm 告警:注意新的推断执行CPU漏洞!

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 安全研究员发现了绕过Intel.AMD和Arm公司现代计算机处理器中基于硬件的推断执行防御措施. 今天,这三家CPU厂商发布安全公告并发布缓解更 ...

  5. 【已解决】 ESXI6.7 中虚拟机 从AMD cpu 与 Intel CPU主机互迁

    问题 公司虚拟化环境中主机(安装的是ESXI 6.7)有 AMD 和INTEL 两类CPU主机:现在需要将 INTEL 主机中的虚拟机迁移到 AMD中,主机均开启了vmotion vSphere Cl ...

  6. 【问题】VS2019在windows10下编译cef报错,导致系统;疑是AMD CPU 超频设置导致

    [问题]VS2019在windows10下编译cef报错,导致系统崩溃:疑是AMD CPU 超频设置导致 编译环境 问题描述 解决? 编译环境 CPU:AMD R5 3600 主板:微星B450 操作 ...

  7. 30年前竟是一家?Intel/AMD CPU的那些事

    原文链接: http://diy.pconline.com.cn/cpu/study_cpu/1207/2862888_all.html#content_page_8 1"史前年代" ...

  8. intel和amd的cpu核心详细介绍

    核心(Die)又称为内核,是CPU最重要的组成部分.CPU中心那块隆起的芯片就是核心,是由单晶硅以一 定的生产工艺制造出来的,CPU所有的计算.接受/存储命令.处理数据都由核心执行.各种CPU核心都具 ...

  9. 电脑cpu排名_可能是最详细的小白【笔记本电脑】选购攻略(附热门机型推荐)...

    现在电脑跟手机一样,逐渐成为每一个人的标配,不管是大学生.职场人士.还是家居都离不开电脑.但是大部分人并不是计算机专业,也没有接触过这一行,对于电脑一无所知,面对众多电脑时,不知道如何选购~ 我一直在 ...

  10. 【实验报告】微处理器原理与应用 CPUHomework1.2 上篇【掌握DEBUG基本命令及其功能 查看CPU和内存 用机器指令和汇编指令编程】

    实验报告 课程名称:微处理器原理与应用 实验名称:CPUHomework1.2 掌握 DEBUG 基本命令及其功能 文章目录 实验报告 [实验目的] [实验要求] 上篇[查看CPU和内存,用机器指令和 ...

最新文章

  1. PostgreSQL_row_number() over()
  2. 【Kafka】Kafka数据可靠性深度解读
  3. 长文 | 从发展轨迹、社会变迁和人口数据变化来看工具类产品的发展出路有哪些(1)
  4. python入门——条件语句、for、while循环4
  5. Android 监听APP进入前台、后台
  6. 44 CO配置-控制-产品成本控制-成本对象控制-实际成本核算/物料分类帐-激活实际成本的在产品
  7. wemall微信商城云平台 快速创建您的微信商城
  8. RocketMQ(十三)——实战-普通消息的发送与消费
  9. 你见过“最没见过世面”的女孩子是什么样的?
  10. 洛谷 P3359 改造异或树
  11. spring加载属性(properties)文件
  12. serialVersionUID详解
  13. Spyder无法启动
  14. Spring-boot JPA笔记 Failed to create query for method public abstract 踩坑记录~
  15. 在个人隐私方面做得比Google好的搜索引擎——DuckDuckGo
  16. 不想做成年人?看到第一张就哭了,满满的回忆
  17. 投屏时 仅电脑屏幕、复制、扩展、仅第二屏幕的区别
  18. 了解品牌名称 TM (™) 和 R(®) 符号之间的区别至关重要
  19. SmallTalkEDI程序
  20. js 判断两个时间相差多少月_js对日期操作 获取两个日期的相差是否在几月之内...

热门文章

  1. 无线路由器信号互相干扰怎么办
  2. 华为路由器 环回互通实验(顺时针)
  3. java登录界面圆形头像_Bootstrap实现圆角、圆形头像和响应式图片
  4. inv在线计算机,INV3062A
  5. 论文笔记:DeepReID: Deep Filter Pairing Neural Network for Person Re-Identification
  6. 如何倒出2两酒(5)
  7. 机器学习在学生成绩预测模型上的应用
  8. deel t410安装_用DEEL-LIP构建Lipschitz约束网络
  9. 微信小程序:高德地图搜索周边poi接口实践
  10. python量化策略—— alpha 三因子策略(1)