我正在研究H中的五个阶段MIPS管道(ID、IF、EXE、MEM、WB)
我还遇到了分支延迟槽的概念,这意味着您希望在分支后的第一条指令中填充有用且“无害”的内容,即无论是否执行分支,指令都会按预期执行,并且分支后的第一条指令不会被浪费。
我的问题是,首先,我的上述理解正确吗?如果它是正确的,那么问题来自分支预测的概念,它似乎试图用程序将要到达的预测位置的指令填充第一条指令。但是如果我们总是能找到一些指令来填充分支延迟槽,我们就不需要分支预测的功能了,对吗?
在具有零等待状态的mips内核中,随机访问ram sure。但是,根据抓取的实现方式及其背后的缓存,您可能仍然希望/需要分支预测的概念来更早地开始这些抓取。管道只是更大系统的一小部分。系统总线通常不是单周期的,这里是我的地址,我想在这个周期结束时得到我的数据,有地址总线和数据总线,还有跨越它们的标签,这样你就可以同时进行多个事务,就像一条管道试图优化数据总线的带宽,因为知道远端的外围设备和内存对于该总线来说太慢了。
预测“可以”用于帮助这些其他功能更快或更有效地将指令导入管道。
然而,从学术的角度来看,插槽的想法是给管道一个循环,让它沿着另一条执行路径切换齿轮。只有当管道的传入端可以在每个时钟周期中输入它想要的任何随机东西时,它才能真正拯救你。这不是现实世界。
另一个学术解决方案是对每条指令进行条件执行的arm,您可以构造执行序列以保持管道满,而不必刷新或暂停。。。再说一次,只要管道能维持下去。。。arm在新的64位指令集中放弃了条件指令的思想。一些/更新的mips可以禁用分支阴影/延迟插槽。
事实上,编译器可能并不总是找到一条指令来填补延迟槽。此外,指令是高度可预测的。
在IF阶段之前,你甚至不知道它是否是分支指令。(必须从指令内存中提取)
对于经典的MIPS(R2000)管道,分支延迟槽使分支预测变得毫无用处。(从技术上讲,一种设计可以将延迟时隙指令是否为nop的预测器/指示器与分支预测器相结合。这将允许跳过nop,适度提高正确分支预测的性能。)
然而,处理器管道通常足够长和宽(并且分支条件评估足够延迟),以至于单个延迟槽不足以填充需要分支后指令地址与已知分支方向和目标之间的延迟。
例如,后续处理器MIPS R4000显着延长了管道,因此无法足够早地确定后分支指令的位置。设计者选择使用简单的静态预测不采取策略。
如果不关心二进制兼容性,可以添加更多延迟槽。然而,随着插槽数量的增加,查找有用的指令来填充此类插槽会增加难度。对于某些循环丰富的代码,定期填充两个延迟槽可能是可行的,我认为至少有一个DSP有两个延迟槽。
分支预测还可用于将提取与执行分离,以便即使无法评估条件(例如,取决于高延迟操作(如数据缓存未命中或分割)的结果),也可以继续提取。这种解耦可用于早期生成指令缓存未命中(隐藏其部分延迟),并减少不同阶段可变吞吐量的影响(因此,当后一阶段暂停或吞吐量降低时,前一阶段可以继续以最大吞吐量运行,缓冲指令随后可以隐藏后一阶段暂停或吞吐量降低)。
我可以理解“预测未执行”是如何工作的。它只是继续获取PC 4指令。直到分支被解决,如果分支被占用,则刷新之前获取的所有指令。 但我不明白“预测”是如何起作用的。我认为分支指令需要在解码阶段(分支目标地址计算需要完成),然后处理器才能预测它将被执行,对吗? 那么“预测采取”如何在MIPS 5级流水线等机器上实现?(分支目标地址计算和分支是否采取是在ID(指令解码)阶段决定的) 如果分支可以在ID阶段
null 对于#1,没有人应该每次入住都登录,因为SPA1、SPA2和MVCApp1基本上都有不同的最终用户。我们不需要SSO。对于#2,不相关,因为我们永远不会允许这样。 这意味着我们有一个IdentityServer4项目,感觉有点矫枉过正,很难调试。比如用户将auth服务器而不是应用程序作为书签,重定向随机失败,等等。 我的问题是,我可以在API中切换到用户身份验证,然后杀死这个身份服务器吗
本文向大家介绍topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 可以增加 bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-co
本文向大家介绍topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 不可以减少,被删除的分区数据难以处理。
1、mybatis 是否支持延迟加载? 延迟加载其实就是讲数据加载时机推迟,比如推迟嵌套查询的时机。 延迟加载可以实现先查询主表,按需实时做关联查询,返回关联表结果集,一定程度上提高了效率。 mybatis仅支持关联对象association和关联集合对象collection的延迟加载,association是一对一,collection是一对多查询,在mybatis配置文件中可以配置lazylo