热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

存储单元也是Intel处理器上的负载单元吗?

如何解决《存储单元也是Intel处理器上的负载单元吗?》经验,为你挑选了1个好方法。

大多数英特尔处理器都有2个负载单元和1个存储单元.商店单位也是一个负载单位吗?指令/微操作是修改现有的存储器数据,例如inc [memory]只使用1个存储单元,其余2个负载单元可用于可在相同周期内执行的其他微操作/指令,或者指令如inc1个负载单元(加载现有值)加1个存储单元(存储新值)所以我们只剩下一个加载单元?因此,保持2个负荷单位供选择,我们就可以完全存储指令一样mov,push等?



1> Peter Cordes..:

内存读取 - 修改 - 写入指令在Intel P6系列或Sandybridge系列上至少有4个非融合域uop.(如果需要超过1个ALU uop,可能会更多)

没有要求它们中的任何一个在同一个循环中执行,你的问题的措辞似乎是假定的.允许乱序执行在负载使用延迟期间执行其他工作是将x86指令解码为内部RISC类uop的主要好处之一.

您可以在Agner Fog的说明表中查看更多详细信息.请参阅他的微体系结构pdf,以了解更多有关这意味着什么的信息.对于我在这个答案中没有解释的任何内容,你可以在那里找到详细信息.

对于inc dword [rdi]Intel Haswell,这些是uops(以及它们可以运行的端口):

加载dword [rdi](p2/p3),取决于rdi

ALU inc(p0/p1/p5/p6),取决于来自负载的数据

store-address [rdi] (p2/p3/p7),取决于rdi(但不是加载的数据,我认为)

store-data(p4)将ALU结果复制到存储缓冲区,取决于ALU和存储地址uops,我认为.

请注意,只有简单的寻址模式([reg][reg + constant])可以在端口7上使用AGU,但它们仍然可以发送到p2或p3并窃取负载吞吐量.其他存储寻址模式只能使用p2/3.加载uops转到p2或p3,并使用AGU以及执行单元的加载数据部分.

这种不完美的调度可以而且确实会影响持续的L1D带宽:英特尔的优化手册表明,尽管Skylake-S中的峰值 L1D带宽是64B读取,32B是单周期写入,但持续带宽最多为每周期81B.(表2-4.Skylake微体系结构的缓存参数第36页)

inc [mem]肯定要运行负载uop.请参阅'num num'可以将num ++设为原子?有关read-modify-write操作如何工作的更多详细信息(带/不带lock前缀).CPU不能只向DRAM或缓存发送"增量"命令,并使操作"在内存中"发生.


计算uops与端口对循环中的吞吐量或长序列代码更有意义.您无法知道哪些uop将在相同的周期内执行,除非他们都在等待相同的输入准备就绪.然后,如果uops没有足够的执行端口并行运行,则可以预测最早的uop将首先出现(这称为资源冲突).因此,最好先将指令放在关键路径上,以减少资源冲突造成的延迟.

特定端口上的执行端口瓶颈只是三种常见uop吞吐量中的一种.另外两个是:

延迟/依赖链限制可用的ILP

每个时钟4个融合域uop的前端限制,而不是任何特定端口上的未融合域压力.(或Ryzen上5,运行多uop指令时6).

因此,除了缓存未命中和分支错误预测之外,一系列指令对周围独立工作的影响可以粗略地表征其延迟,融合域uop计数和每个端口的uop.


为了节省前端解码和发布带宽,其中一些微操作可以微融合在一起.(或者AMD CPU从未将它们分开,直到它们到达执行单元).有关微融合的更多信息,请参见微融合和寻址模式.(我对该答案有一个未完成的更新,它添加了一个独立的微融合描述,将所有内容放在一个地方,因为Agner Fog的指南省略了无分层,英特尔的优化手册没有提到HSW,后来也没有在SnB的情况下,总是没有层压.)

inc dword [rsi]只能将商店地址+商店数据uop融合在Sandybridge系列上,因此它解码为3个融合域 uop.

add dword [rsi], 1可以将负载与ALU adduop融合,因此在IDQ读取并添加到ROB时,问题阶段只有2个融合域uop.它仍然扩展到4个未融合的域uop,分配给端口并添加到调度程序(也称为Reservation Station).(是的,在Intel CPU中发布时将uops分配给端口).

请注意,add设置标志不同inc,因此它们无法解码为完全相同的内部uop.据推测,英特尔决定让adduops融合负载是值得的,因为这样的指令add eax, [rsi]很常见.但inc+负载融合只能作为一部分发生inc [mem].


推荐阅读
  • Idontunderstandwhythecommentedanduncommentedlinedontyieldthesameresult(LinuxGCC,wi ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 本文介绍了一道经典的状态压缩题目——关灯问题2,并提供了解决该问题的算法思路。通过使用二进制表示灯的状态,并枚举所有可能的状态,可以求解出最少按按钮的次数,从而将所有灯关掉。本文还对状压和位运算进行了解释,并指出了该方法的适用性和局限性。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 代码如下:#coding:utf-8importstring,os,sysimportnumpyasnpimportmatplotlib.py ... [详细]
  • 如何解决《在英特尔SGX中禁用系统调用意味着什么》经验,为你挑选了1个好方法。 ... [详细]
author-avatar
窝巢哥_809
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有