对比文件名称:2010-07-14_CN101776989A_发明公开_CN101776989A 乱序执行微处理器及提升效能的方法、执行方法
目标专利名称:优化用于上下文相关指令的性能CN105190540B
模型名称:gpt-4o
### 特征比对表格
| 技术特征描述及公开性判断结果 | 对比文件原文引用 | 公开性论述 |
| **技术特征A**:处理具有寄存器字段的配置值的行为的指令,《直接公开》 | 说明书第[0035]段:“存取存储器的指令可取决于区段暂存器138的值。也就是说,为了能够适当地执行存储器存取指令,微处理器100必须存取区段暂存器138的值,以决定相关存储器区段的属性。”; 说明书第[0030]段:“表二的程序中包括一个x86 LES指令...第(4)行中的MOV指令是相依于第(3)行中的LES指令,因为MOV指令使用由LES指令所写入的ES暂存器描述符值。” | 对比文件公开了“存储器存取指令”的行为(即如何存取存储器)取决于“区段暂存器138”的值(即描述符)。该区段寄存器的值决定了存储器区段的属性(如基地址、大小等),从而决定了存储器存取指令的执行行为。这与目标专利中“向量指令”的行为由“FPSCR 124”中的字段(如步幅、长度)配置来决定是相同的技术构思,即指令的执行行为(如何操作)由一个寄存器字段的配置值所决定。因此,本领域技术人员能够毫无疑义地得出对比文件公开了“处理具有寄存器字段的配置值的行为的指令”。 |
| **技术特征B**:所述指令相依于在编程次序上先于所述指令的写入指令,《直接公开》 | 说明书第[0030]段:“第(4)行中的MOV指令是相依于第(3)行中的LES指令,因为MOV指令使用由LES指令所写入的ES暂存器描述符值。”; 说明书第[0048]段:“发送逻辑单元124判断该指令为一存储器参考指令...并且区段暂存器138为一较旧的未引退指令的目的暂存器。” | 对比文件明确公开了存储器存取指令(MOV ES:[mem],EAX)在程序顺序上依赖于(使用)先于它的、向区段寄存器(ES)写入新值的指令(LES)。这是一种明确的数据依赖关系,即后续指令的操作数(存储器地址的计算基础)依赖于前序指令的写入结果。这与目标专利中向量指令依赖于先于它的、向FPSCR字段写入配置值的指令是完全相同的依赖关系。因此被直接公开。 |
| **技术特征C**:所述写入指令将所述配置值写入到所述寄存器字段,《直接公开》 | 说明书第[0028]段:“x86指令集包括可允许一程序载入区段暂存器(例如,LDS,LES,LFS,LGS,LSS,POP segment_register以及MOV segment_register)的指令。这些指令定义一个运算元,其为欲载入至区段暂存器138的选择器的16位选择器值。除了根据前述指令中的其中一指令将新的选择器值载入至区段暂存器138之外,微处理器也由新的选择器值所索引的GDT或LDT项目中读取描述符,并将描述符载入至区段暂存器138。” | 对比文件公开了“LES”等指令就是将新的值(选择器值及对应的描述符)写入到“区段暂存器138”中。这与目标专利中“VMSR”指令将配置值写入“FPSCR 124”中的“字段125”在作用和目的上完全相同,都是通过一条指令更新一个寄存器(或寄存器字段)的值,以改变后续指令的执行上下文。因此被直接公开。 |
| **技术特征D**:在所述写入指令执行之前处理的所述指令在基于处理所述指令时的所述寄存器字段的当前值的上下文内执行,《直接公开》 | 说明书第[0048]段:“发送逻辑单元124忽略存储器存取指令关于DS/ES暂存器132的相依性。也就是说,只要所有用以使相依指令准备被发送的其他条件满足...发送逻辑单元124发送指令至执行单元114并且DS/ES暂存器132将其目前值提供至执行单元114,借此执行存储器存取指令。”; 说明书第[0030]段:“有效地,发送逻辑单元124预测DS/ES暂存器132的目前值与将通过DS/ES载入指令写入至DS/ES暂存器132的新值相等,并且预测地执行相依的存储器存取指令。” | 对比文件明确公开了在写入指令(如LES)尚未执行(即未将新值写入ES寄存器)之前,发送逻辑单元124就忽略依赖关系,将依赖于该写入指令的存储器存取指令(MOV)发送执行,而执行时所使用的区段寄存器值是发送/处理该指令时的“目前值”(即当前值)。这完全对应于目标专利中在写入指令(VMSR)执行/提交前,就基于FPSCR字段的“当前值”开始处理向量指令。两者都是“预测性”或“推测性”地使用当前上下文值提前执行依赖指令。因此被直接公开。 |
| **技术特征E**:在队列中的条目中存储所述指令,《未公开》 | 说明书第[0040]段:“相依性检查单元106在ROB 118中对每一个指令配置一对应的项目。ROB 118的项目是依照程序顺序设置...相依性检查单元106也产生每一指令的相依信息并且将指令的相依信息提供给ROB118,以储存至与指令相关的ROB 118项目中。” | 对比文件公开了所有指令(包括依赖指令)都会进入重排序缓冲器(ROB),ROB中存有指令项目。然而,目标专利的“队列”(SIIQ 122)是一个专门用于存储**推测性执行的上下文相关指令**(如向量指令或分支指令)及其上下文信息的专用队列/缓冲器,其目的和结构(如存储上下文值、状态信息)与通用的指令重排序缓冲器(ROB)不同。对比文件并未公开这样一个为推测性上下文相关指令设立的专用存储队列。依赖指令(MOV)只是像所有其他指令一样存在于ROB中,并未被特别挑选并存入一个类似SIIQ的专用队列。因此,对比文件没有公开此特征。 |
| **技术特征F**:在所述条目中存储所述寄存器字段的所述当前值,《未公开》 | 无对应内容。 | 对比文件在执行依赖指令时,直接从DS/ES寄存器中读取“目前值”提供给执行单元使用(见特征D的引用),但并未在任何地方提及将这个“目前值”作为上下文信息,与依赖指令关联起来,并存储在一个专门的队列条目中。目标专利的核心步骤之一就是在SIIQ条目中存储处理指令时的“上下文字段133”。对比文件缺少这一特定的数据存储动作。因此,对比文件没有公开此特征。 |
| **技术特征G**:在所述写入指令执行之后,搜索所述队列以查找所述条目,《未公开》 | 无对应内容。 | 对比文件在写入指令(载入DS/ES的微码程序)执行时,会进行“比较”操作(见图4步骤404,表三第(2)行),但这个过程是微码程序流程的一部分,并非一个独立的“搜索队列以查找条目”的步骤。目标专利中,在写入指令(VMSR)执行后,需要主动去“搜索”推测性指令信息队列(SIIQ)以找到那些依赖于该写入指令的条目。对比文件没有描述这样一个针对专用队列的搜索过程。因此,对比文件没有公开此特征。 |
| **技术特征H**:及在所述写入指令执行之后,将存储在所述条目中的所述当前值与所述配置值进行比较,《未公开》 | 说明书第[0053]段:“于步骤404,载入DS/ES暂存器微码程序112比较图1的DS/ES暂存器132中的目前值与在步骤402时载入至暂时暂存器128中的值,如表三的第(2)行所示。” | 对比文件确实在写入指令(载入DS/ES的微码程序)执行过程中,将“DS/ES暂存器132中的目前值”与将要写入的“新值”(载入至暂时暂存器128中的值)进行比较。然而,目标专利的比较对象是“存储在所述条目中的所述当前值”与“配置值”(即写入指令要写入的新值)。对比文件比较的“目前值”是直接从寄存器中读取的实时值,而非从一个专门存储的队列条目中检索出来的值。虽然比较的逻辑目的相似(检查预测是否正确),但比较的数据来源和实现机制不同。因此,对比文件没有公开“将存储在条目中的当前值与配置值进行比较”这一特定技术手段。 |
| **技术特征I**:其进一步包括:假如存储在所述条目中的所述当前值并不与所述配置值匹配,那么清洗所有飞行中指令的管线,且将程序计数器设定到以编程次序在所述写入指令之后的下一指令的地址。《隐含公开》 | 说明书第[0056]段:“于步骤412,为了更正图3的步骤308的错误预测结果,载入DS/ES暂存器微码程序112清除管线中所有较新于表三的第(6)行的指令,包括相依存储器存取指令...载入DS/ES暂存器微码程序112接着在如步骤202所述遇到载入DS/ES暂存器132的宏指令142(例如表二的第(3)行的LES指令)之后,重新开始撷取次一连续的宏指令。” | 对比文件公开了当比较发现预测错误(新值不等于当前值)时,会“清除管线中所有较新于...的指令”。在乱序执行处理器中,“较新”于某条指令的指令,在程序次序上位于该指令之后。清除所有较新的指令,实质上等同于清除该写入指令之后的所有“飞行中指令”。同时,对比文件明确“重新开始撷取次一连续的宏指令”,即从写入指令(LES)之后的下一条指令开始重新执行,这对应于将程序计数器设定到写入指令之后的下一指令地址。虽然对比文件未使用“条目中存储的值”这一前提,但其恢复动作的逻辑和效果与目标专利特征I是相同的。因此,本领域技术人员可以从对比文件公开的“清除较新指令并重新开始执行下一条指令”这一整体方案中,合理推断出当预测失败(即值不匹配)时,需要执行清洗管线和重设PC的动作。该特征被隐含公开。 |
| **技术特征J**:处理所述指令进一步包括:如果所述当前值为第一值,那么将所述指令处理为定义的,《未公开》 | 无对应内容。 | 目标专利说明书(第[0028]段)明确描述了根据FPSCR字段的值,向量指令可能被处理为“定义的”或“未定义的”两种不同状态。对比文件中,依赖指令(存储器存取指令)的处理始终是“执行”,其行为是访问存储器,其成功与否取决于地址有效性等,而不是由区段寄存器的值将其整体标记为“定义的”或“未定义的”两种抽象的执行状态。对比文件仅涉及使用区段值进行计算,不涉及根据该值将指令分类为“定义的”或“未定义的”这种特定的上下文判断逻辑。因此,对比文件没有公开此特征。 |
| **技术特征K**:及如果所述当前值不是所述第一值,那么将所述指令处理为未定义的。《未公开》 | 无对应内容。 | 同特征J,对比文件没有公开根据寄存器字段值将指令处理为“未定义的”这一概念。 |
| **技术特征L**:其进一步包括:假如存储在所述条目中的所述当前值并不与所述配置值匹配,那么清洗所述指令及以编程次序跟随所述指令的所有飞行中指令的管线,且将程序计数器设定到所述指令的地址。《隐含公开》 | 说明书第[0056]段:“载入DS/ES暂存器微码程序112清除管线中所有较新于表三的第(6)行的指令,包括相依存储器存取指令...重新开始撷取次一连续的宏指令。” | 对比文件公开了当预测错误时,清除所有“较新于”写入指令(即第(6)行指令,对应写入微操作)的指令,这必然包括了出错的依赖指令(存储器存取指令)本身以及所有程序次序上跟随它的飞行中指令。同时,它“重新开始撷取次一连续的宏指令”,即从写入指令(LES)之后的下一条指令开始执行。这与目标专利特征L中“将程序计数器设定到所述指令的地址”(即出错的依赖指令地址)有所不同。目标专利是重新执行出错的指令本身,而对比文件是重新执行写入指令之后的指令流。虽然恢复点不同,但两者都是预测失败后的恢复机制。考虑到对比文件清除的是包括依赖指令在内的所有较新指令,然后重新从写入指令之后开始执行,本领域技术人员可以合理推断,在另一种设计选择下,完全可以将恢复点设定为出错的依赖指令本身,以实现重新执行该指令的目的。因此,该特征可以被认为被对比文件隐含公开。 |
| **技术特征M**:其进一步包括:在所述条目中存储处理器的状态信息,所述状态信息是当处理所述指令时的状态信息,《未公开》 | 无对应内容。 | 对比文件完全没有提及在预测执行依赖指令时,需要存储处理器的“状态信息”(如程序计数器、寄存器状态等)以备恢复之用。其恢复机制(清除管线并从下一条指令开始)是一种相对简单的“重做”方式,不依赖于之前保存的精确状态。目标专利则明确要求存储状态信息(如指令地址127、状态信息132b)以实现精确状态恢复。因此,对比文件没有公开此特征。 |
| **技术特征N**:及假如存储在所述条目中的所述当前值并不与所述配置值匹配,那么从所述条目检索所述状态信息,且将所述处理器恢复到所述状态信息所指示的状态。《未公开》 | 无对应内容。 | 由于对比文件没有公开特征M(存储状态信息),因此也不可能公开从条目中检索状态信息并恢复处理器状态的特征N。 |
| **技术特征O**:其中所述指令为向量指令。《未公开》 | 说明书第[0035]段:“存取存储器的指令可取决于区段暂存器138的值。”; 说明书第[0030]段:“第(4)行中的MOV指令是相依于第(3)行中的LES指令”。 | 对比文件明确且仅公开了依赖指令是“存储器存取指令”(如MOV指令),其行为是利用区段寄存器的值来计算存储器地址。目标专利明确限定依赖指令是“向量指令”(或SIMD指令),其行为是由FPSCR字段配置其向量操作(如长度、步幅)。虽然两者都是“上下文相关指令”,但指令类型(存储器访问 vs. 向量计算)和所依赖的上下文(地址计算 vs. 操作定义)有本质区别。对比文件没有提及任何关于向量指令的内容。因此,对比文件没有公开此特征。 |
| **技术特征P**:其中所述寄存器字段包括一个或多个字段。《直接公开》 | 说明书第[0028]段:“区段暂存器138被程序用来定义(specify)不同的存储器区段以及其属性,例如基地址(base address)、大小、特权级(privilegelevel)、预设操作大小、可供系统软件所使用、读/写/执行能力、是否存在存储器中等。” | 对比文件中的“区段暂存器138”存储了“区段描述符”,该描述符本身包含了定义存储器区段属性的多个信息(如基地址、大小、特权级等)。这些信息可以理解为构成了描述符的多个“字段”。因此,“寄存器字段包括一个或多个字段”这一宽泛的特征,已经被对比文件中区段寄存器包含多个属性信息(即多个字段)所公开。 |
| **技术特征Q**:处理所述指令进一步包括:如果所述当前值为第一值,那么将所述指令处理为定义的,《未公开》 | 同技术特征J。 | 同技术特征J,对比文件未公开。 |
| **技术特征R**:及如果所述当前值不是所述第一值,那么将所述指令处理为未定义的。《未公开》 | 同技术特征K。 | 同技术特征K,对比文件未公开。 |
| **技术特征S**:其进一步包括:当所述指令提交时,从所述队列移除所述条目。《未公开》 | 无对应内容。 | 对比文件没有公开类似于目标专利SIIQ的专用队列,因此自然也没有公开当指令提交时从该专用队列中移除条目的管理机制。ROB的管理(指令引退后移除)是通用乱序处理器的常规操作,但并非针对“存储推测性上下文相关指令及其上下文”的专用队列的移除操作。因此,对比文件没有公开此特征。 |
<<<A>>><<<B>>><<<C>>><<<D>>><<<P>>><<<i>>><<<l>>>