对比文件名称:2008-07-08_US7398358B_发明授权_US07398358B2 Method and apparatus for high performance branching in pipelined microsystems
目标专利名称:消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体CN105009074B
本次调用的模型名称:DeepSeek
### 特征比对表格
| 技术特征描述及公开性判断结果 | 对比文件原文引用 | 公开性论述 |
| 技术特征A:其包括:检测第一指令,所述第一指令指示关于计算机架构需要后续同步屏障且所述计算机架构允许由计算机硬件自动地执行同步操作的操作<br>**未被公开** | 对比文件涉及检测特定类型的分支指令。例如,说明书第[0043]段:“The early branch detect circuit 306 provides a first output signal 307 which signals the presence of a non-delayed branch.” 第[0045]段:“According to an aspect of the present invention, the early branch detect circuit 306 detects the selected branch instructions early and deals with them separately from the well used branch instructions.” 图3及图4的早期分支检测电路用于检测指令操作码字段中的特定类型分支指令。 | 目标专利中的“第一指令”(如MCR指令)是“指示关于计算机架构需要后续同步屏障且所述计算机架构允许由计算机硬件自动地执行同步操作的操作”的指令。其核心在于:1) 软件必须明确后续同步屏障;2) 硬件也被允许自动执行同步操作。对比文件公开的是检测“非延迟分支”等特定类型的分支指令,这些分支指令用于改变程序控制流(跳转到目标地址),其目的是解决分支预测和流水线停顿问题,而非指示需要软件同步屏障。对比文件的分支指令不涉及“同步屏障”概念,更不涉及“硬件自动执行同步操作”以确保指令或数据顺序性的场景。二者在指令类型、作用和目的上存在根本区别。因此,对比文件未公开技术特征A。 |
| 技术特征B:响应于所述第一指令,由所述计算机硬件自动地执行所述同步操作<br>**未被公开** | 对比文件描述了响应于分支指令,硬件执行相关操作。例如,说明书第[0056]段:“The branch target address is fetched from the branch cache before the branch is resolved, so that the branch target address is available by the time it is needed. Also, a target stream fetch address 802 ... is supplied to the program address generation unit 202 so that the program address generation unit 202 immediately begins fetching from the appropriate location in the target instruction stream.” 这表明硬件响应分支指令,开始从目标地址取指。 | 目标专利中,响应于第一指令(如MCR指令)由硬件“自动地执行同步操作”,该操作是确保在后续指令执行前完成特定操作(如页表更新)的同步事件,例如刷新流水线以确保指令顺序。对比文件公开的是,响应于分支指令,硬件执行的是计算目标地址、从分支缓存读取目标指令、开始从目标地址取指等操作,这些操作旨在改变指令执行流并填充流水线,避免因控制流改变导致的停顿。该操作不属于目标专利所定义的“同步操作”(即确保顺序性的屏障操作)。二者作用不同。因此,对比文件未公开技术特征B。 |
| 技术特征C:检测由所述计算机硬件响应于所述第一指令自动执行所述同步操作而导致的第一同步事件<br>**未被公开** | 对比文件描述了检测分支指令执行导致的事件或状态。例如,说明书第[0056]段提及在分支解析前从分支缓存获取目标地址,以及第[0040]段提及分支指令可能导致流水线停顿(stall)或刷新(flush)。 | 目标专利中“第一同步事件”特指由硬件自动执行的“同步操作”所导致的事件,例如指令同步事件或数据同步事件,其作用是作为屏障确保顺序性。对比文件中,分支指令执行可能导致的事件是“控制停顿(control stall)”或流水线刷新,这是由于控制流改变、预取错误指令而导致的流水线清空,其目的是准备执行新的指令流,而非作为确保内存或指令一致性的同步屏障。虽然流水线刷新在现象上与“指令同步”有相似之处,但二者的触发原因、在架构中的作用和目的不同。对比文件未明确公开“同步事件”这一概念及其在目标专利中的特定作用。因此,对比文件未公开技术特征C。 |
| 技术特征D:检测指令流中的下一个指令<br>**直接公开** | 处理器持续从指令流中取指和解码是基本操作。说明书第[0005]段描述了流水线持续处理指令:“When operating at peak capacity, during each clock cycle the pipeline is able to start the first stage of a new instruction while completing the final stage of the oldest instruction in the pipeline.” 第[0021]段图7中的Dispatch Stage 210持续接收并处理指令流中的指令。 | “检测指令流中的下一个指令”是任何流水线处理器的基本和必然操作。对比文件描述的处理器架构(如图7)持续地从程序存储器或缓存中获取指令(Prefetch),并在Dispatch Stage等阶段对指令进行解码和分发。本领域技术人员可以毫无疑义地得出,该处理器在执行过程中必然持续地检测指令流中的下一个指令。这与该特征在目标专利中的作用(为后续判断是否为同步屏障提供对象)相同。因此,技术特征D被对比文件直接公开。 |
| 技术特征E:确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障<br>**未被公开** | 对比文件涉及确定指令类型,例如通过早期分支检测电路确定指令是否为特定类型的分支指令(第[0043]段)。但未涉及“同步屏障”指令。 | 目标专利的核心是判断“下一个指令”是否为“同步屏障”指令(如ISB指令),并且其类型(指令同步或数据同步)需要与之前发生的“第一同步事件”类型对应。对比文件公开的是判断指令是否为“分支指令”(如非延迟分支),目的是为了进行分支预测、缓存处理以避免控制停顿。对比文件全文未提及“同步屏障(synchronization barrier)”这类指令,也未涉及将当前指令与先前发生的“同步事件”类型进行匹配判断的逻辑。因此,对比文件未公开技术特征E。 |
| 技术特征F:以及响应于确定所述下一个指令包括类型对应于所述第一同步事件的同步屏障,从所述指令流消除所述下一个指令。<br>**未被公开** | 对比文件描述了在某些情况下从指令流中移除或替换指令。例如,第[0042]段:“NOPs (‘no operation’ instructions) are often inserted after the branch”。更相关的是,在分支缓存命中时,会从缓存提供目标指令流,这实质上替换了原本按顺序执行的下一条指令(第[0056]段,图7,图9)。 | 目标专利中“消除”冗余同步屏障指令,是为了避免不必要的同步操作,提高性能。对比文件中,在分支处理时,可能会用NOP填充延迟槽,或者在分支缓存命中时,用缓存中的目标指令替换原有的后续指令流。然而,这种“消除”或“替换”的目的是处理**分支跳转**,优化的是控制流改变导致的性能损失,而非消除冗余的**同步操作**。两者的技术问题、判断条件和最终目的均不相同。因此,对比文件未公开技术特征F。 |
| 技术特征G:其中检测所述第一同步事件包括检测指令同步事件<br>**未被公开** | 对比文件提到了由于分支导致的流水线刷新,这可能涉及指令流的同步。例如,第[0040]段:“when the first execute stage 214 forces a branch to a branch target address, then the data in the stages ... become invalid and must be flushed”。 | 目标专利中“指令同步事件”特指为确保后续指令能看到之前指令对系统状态(如控制寄存器、页表)的更改而必须完成的同步操作,例如ARM架构中的ISB操作。对比文件中提到的流水线“刷新(flush)”是由于分支跳转导致预取的下游指令无效,必须清空流水线并从新地址开始取指。虽然这客观上使指令流同步到新的起点,但其根本原因是控制流改变,而非为了确保系统状态更新的可见性。二者在触发条件和架构语义上存在本质区别。因此,对比文件未公开技术特征G。 |
| 技术特征H:并且其中确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障包括检测所述下一个指令是否是指令同步屏障。<br>**未被公开** | 无相关描述。对比文件未提及“指令同步屏障”这类指令。 | 如对特征E和G的论述,对比文件未涉及“同步屏障”指令,也未涉及“指令同步屏障”的概念。其指令检测逻辑是针对分支指令,而非同步屏障指令。因此,对比文件未公开技术特征H。 |
| 技术特征I:其中检测所述第一同步事件包括检测数据同步事件<br>**未被公开** | 无相关描述。对比文件主要关注控制流(分支)导致的流水线问题,未涉及为确保内存数据一致性而进行的数据同步操作或事件。 | 目标专利中的“数据同步事件”涉及确保内存读写顺序性的操作。对比文件全文未提及数据同步、内存屏障(memory barrier)或数据一致性相关的同步事件。因此,对比文件未公开技术特征I。 |
| 技术特征J:并且其中确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障包括检测所述下一个指令是否是数据同步屏障。<br>**未被公开** | 无相关描述。 | 如特征I所述,对比文件未涉及数据同步。因此,自然也未有检测“数据同步屏障”指令的相关内容。因此,对比文件未公开技术特征J。 |
| 技术特征K:其中检测所述第一同步事件包括设定同步旗标。<br>**隐含公开** | 对比文件使用了状态机、标志位来跟踪和控制分支缓存相关操作。例如,图6和图9的状态机600和900,以及第[0062]段描述的状态902、912、916等,这些状态实质上记录了分支检测、命中、条件评估等事件的发生。第[0059]段也提到了“stall override bits”等控制字段。 | 目标专利中“设定同步旗标”用于记录特定类型同步事件的发生,以便后续判断。对比文件中,为了实现分支缓存功能,其控制逻辑(如状态机)必然需要记录和跟踪特定事件的发生,例如“分支指令被检测到(EARLY IND)”、“缓存命中(HIT)”、“分支条件被满足”等。这些状态或标志位在作用上与“同步旗标”类似,都是记录一个事件的发生以指导后续操作。本领域技术人员可以从对比文件使用状态机/标志位进行事件跟踪这一常规技术手段中,合理推断出使用类似标志位来记录“同步事件发生”是可能的。因此,技术特征K被对比文件隐含公开。 |
| 技术特征L:其进一步包括响应于确定所述下一个指令不包括类型对应于所述第一同步事件的同步屏障而清除所述同步旗标。<br>**隐含公开** | 对比文件的状态机会在条件不满足或操作完成后清除或转换状态。例如,图6的状态机600中,在状态612,如果分支条件评估为fall through(不跳转),则通过过渡630返回空闲状态602(第[0049]段)。这相当于清除了之前为可能跳转设置的状态(类似于旗标)。 | 目标专利中,当判断下一个指令不是冗余同步屏障时,需要清除同步旗标,以重置检测状态。对比文件的状态机逻辑中,当检测到某个条件不成立(如分支不跳转)或一个处理序列完成时,控制逻辑会退出特定状态,返回空闲或初始状态。这实质上就是清除为之前事件设置的状态标志。本领域技术人员可以合理推断,如果采用类似标志位机制来跟踪同步事件,那么在确定后续指令不需要被消除(即非冗余屏障)时,同样会清除该标志位以准备检测下一个事件。因此,技术特征L被对比文件隐含公开。 |
| 技术特征M:其中确定所述下一个指令是否包括类型对应于所述第一同步事件的同步屏障包括确定是否设定所述同步旗标。<br>**隐含公开** | 对比文件中,控制逻辑根据当前状态(即设定的标志)来决定后续操作。例如,在图9的状态机900中,是否处于状态902、912等决定了多路复用器718的选择、是否提供目标指令等操作(第[0062]段)。 | 目标专利中,通过检查“同步旗标”是否被设定,来判断之前是否发生了对应类型的同步事件,从而决定当前指令(可能是同步屏障)是否冗余。对比文件中,控制逻辑(状态机)的核心就是根据当前所处的状态(可视为一系列标志位的组合)来决定下一步行动,例如在缓存命中且条件满足时(状态912),选择从影子分发单元输出指令。本领域技术人员可以合理推断,如果使用一个旗标来记录同步事件,那么在判断下一个指令时,检查该旗标是否被设定是确定是否需要消除该指令的直接逻辑步骤。因此,技术特征M被对比文件隐含公开。 |
| 技术特征N:其中从所述指令流消除所述下一个指令包括用指示无操作的指令代替所述指令流中的所述下一个指令。<br>**直接公开** | 说明书第[0042]段明确记载:“NOPs (‘no operation’ instructions) are often inserted after the branch”。此外,在分支延迟槽等场景中,用NOP填充是一种常见技术手段。 | 目标专利中消除冗余同步屏障的一种具体方式是用NOP指令代替它。对比文件直接公开了在处理器流水线中,可以使用NOP(无操作)指令来填充指令流中的位置,例如填充在分支指令之后。用NOP代替原有指令,是“消除”指令效果的一种等效且常见的硬件实现方式。本领域技术人员可以毫无疑义地从对比文件中得出该技术手段。因此,技术特征N被对比文件直接公开。 |
| 技术特征O:其中从所述指令流消除所述下一个指令包括从所述指令流移除所述下一个指令。<br>**隐含公开** | 对比文件在分支缓存命中处理时,其效果是“跳过”了原本按顺序执行的下一条或多条指令,直接从分支目标地址的指令开始执行。例如,第[0056]段描述,通过多路复用器718选择影子分发单元712的输出,从而使得原指令流中分支后的指令不被执行,相当于从执行流中移除了它们。图9的状态机912控制多路复用器选择目标指令流。 | 目标专利中消除冗余同步屏障的另一种方式是从指令流中直接移除该指令。对比文件在分支缓存命中时,通过控制多路复用器,使得流水线的解码级不再接收原顺序的下一条指令,转而接收来自分支缓存的目标指令。从执行效果上看,原顺序的下一条指令被“绕过”或“移除”了执行机会。虽然对比文件没有显式描述从指令队列中物理删除指令,但这种通过硬件选择逻辑使得特定指令不被执行的技术手段,在功能上等同于从有效的执行流中移除该指令。本领域技术人员可以合理推断出这种实现方式。因此,技术特征O被对比文件隐含公开。 |
<<<D>>><<<N>>>