我正在阅读http://www.realworldtech.com/sandy-bridge/,我在理解一些问题时遇到了一些问题:
对于桑迪·布里奇(和P4),英特尔仍然使用罗布这个术语。但是,关键是要理解,在这种情况下,它只引用飞行中uops的状态数组
实际上是什么意思?请说清楚。
>
像Agner Fog的microarch doc解释的那样,堆栈引擎在流水线的发布阶段处理push/pop/call/ret的rsp+=8
/rsp-=8
部分(在将uops发布到核心的乱序(OoO)部分之前)。
因此,核心的OoO执行部分只需处理加载/存储部分,并使用堆栈引擎生成的地址。当8bit位移计数器溢出时,或者当OoO内核直接需要rsp
的值时(例如,调用
、ret
、push
或pop
之后的sub rsp、8
或pop
通常会导致在Intel CPU上插入额外的uop。AMD CPU显然不需要额外的同步uop)。
注意,Agner的指令表显示Pentium-M和以后的版本将pop reg
解码为一个只在加载端口上运行的uop。但是Pentium II/III将POP EAX
解码为2个UOPS;1个ALU和1个负载,因为没有堆栈引擎来处理故障核心之外的ESP调整。除了获取额外的UOP,一长串push/pop和call/ret还会创建对ESP的串行依赖关系,因此在MOV ebp,ESP
的值可用或MOV eax,[ESP+16]
的地址可用之前,无序的执行必须仔细检查ALU UOP。
P6 microarch家族(PPro到Nehalem)将uop的输入值直接存储在ROB中。在发出/重命名时,“冷”寄存器输入从体系结构寄存器文件读到ROB(由于读端口有限,这可能是一个瓶颈。请参见寄存器-读延迟)。在执行一个uop之后,结果被写入ROB以供其他uop读取。当uops退役时,体系结构寄存器文件将用ROB中的值更新。
SNB系列微体系结构(和P4)有一个物理寄存器文件,所以ROB存储寄存器号(即间接级)而不是直接存储数据。对于这部分CPU来说,重新排序缓冲区仍然是一个很好的名称。
注意,SnB引入了AVX,有256B向量。与只将它们保存在较小的FP寄存器文件中相比,使每个ROB条目足够大以存储双倍大小的向量可能是不可取的。
SnB简化了uop格式以节省电力。然而,这确实导致了uop微融合能力的牺牲:解码器和uop-cache仍然可以使用2寄存器(索引)寻址模式对内存操作数进行微融合,但它们在发出到OOO内核之前是“未分层的”。
问题内容: 最近,我一直在寻找Java虚拟机规范(JVMS),以试图更好地理解使我的程序正常工作的原因,但是我找到了一段我不太了解的部分… 第4.7.4节介绍了 StackMapTable 属性,在该节中,文档介绍了有关堆栈映射框架的详细信息。问题是它有点罗word,我以身作则,学得最好。不读书。 我知道第一个堆栈映射框架是从方法描述符派生的,但是我不知道如何(应该在这里进行解释。)而且,我也不完
本文向大家介绍微服务架构中的DRY是什么?相关面试题,主要包含被问及微服务架构中的DRY是什么?时的应答技巧和注意事项,需要的朋友参考一下 DRY 代表不要重复自己。它基本上促进了重用代码的概念。这导致开发并共享库,但是反过来导致紧耦合。
本文向大家介绍什么是微服务架构?相关面试题,主要包含被问及什么是微服务架构?时的应答技巧和注意事项,需要的朋友参考一下 在前面你理解什么是微服务,那么对于微服务架构基本上就已经理解了。 微服务架构 就是 对微服务进行管理整合应用的。微服务架构 依赖于 微服务,是在微服务基础之上的。 例如:上面已经列举了什么是微服务。在医院里,每一个科室都是一个独立的微服务,那么 这个医院 就是 一个大型的微服务架
我有一个堆栈的ArrayList,我在其中一个堆栈中添加了一个元素,并在列表中循环打印每个堆栈的索引 然后我从上一个堆栈中删除元素,将其添加到下一个堆栈中,打印每个堆栈的索引,并对ArrayList中的所有堆栈继续此操作 然而,当任何堆栈为空时,在获取ArrayList中每个堆栈的索引时会出现非常不寻常的行为。非空的堆栈将具有正确的索引值,而空的堆栈将具有错误的索引值 此外,如果包含元素的堆栈的索
9.21 一面, 半小时后挂 1. 自我介绍 2. 项目 3. c++ 多态,如何实现的,虚表、虚表指针存储位置 4. explicit 关键字 5. unique_ptr、shared_ptr、weak_ptr的原理,有没有线程安全问题,weak_ptr的解决了什么问题?可以用裸指针吗?会有什么问题 6. 介绍B树和B+树 7. 介绍unordered_map、map,区别,应用场景 8. c+
本文向大家介绍PACT 在微服务架构中的用途是什么?相关面试题,主要包含被问及PACT 在微服务架构中的用途是什么?时的应答技巧和注意事项,需要的朋友参考一下 PACT 是一个开源工具,允许测试服务提供者和消费者之间的交互,与契约隔离,从而提高微服务集成的可靠性。 在微服务中的用法: 用于在微服务中实现消费者驱动的契约。 测试微服务的消费者和生产者之间的消费者驱动的契约。