-
公开(公告)号:CN103927149B
公开(公告)日:2018-10-16
申请号:CN201410058279.9
申请日:2014-01-14
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
IPC分类号: G06F9/38
摘要: 用于预测程序中跳转表switch语句的目标位置的方法和分支预测器。所述方法包括在分支预测器处连续地监控指令,以便确定它们是否写入存储跳转表switch语句的输入变量的寄存器。将对于被监控的寄存器的任何更新存储在由所述分支预测器维持的寄存器表中。然后,当到了对于跳转表switch语句指令做出预测的时间时,所述分支预测器使用存储在所述表中的寄存器值来预测所述跳转表switch语句将分支到哪里。
-
公开(公告)号:CN109871341A
公开(公告)日:2019-06-11
申请号:CN201910109821.1
申请日:2015-01-16
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
摘要: 描述了用于堆栈指针值预测的方法和装置。在实施例中,当出现增大堆栈的指令时存储数据。所存储的信息包括尺寸参数,该尺寸参数表明了堆栈增大了多少以及以下中的一个或两个:当前保持有堆栈指针值的寄存器ID或当前堆栈指针值。当出现随后的用于缩小堆栈的指令时,在所存储的数据中搜索具有相对应尺寸参数的一个或多个条目。如果识别出这样的条目,则存储在该条目中的其它信息被用来预测堆栈指针值,而非使用指令来计算新的堆栈指针值。在使用了寄存器重命名的情况下,条目中的信息用于将堆栈指针重映射到不同的物理寄存器。
-
公开(公告)号:CN105808211B
公开(公告)日:2019-01-25
申请号:CN201610192717.X
申请日:2014-02-11
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
IPC分类号: G06F9/38 , G06F9/30 , G06F12/0842
摘要: 描述了用于将加载指令分发到数据高速缓存的方法及加载和存储缓冲器。所述方法包括确定存储缓冲器中是否存在比所述加载指令更旧的任何未解析的存储指令。如果所述存储缓冲器中存在比所述加载指令更旧的至少一个未解析的存储指令,则确定所述存储缓冲器中最旧的未解析的存储指令是否在所述加载指令的推测窗内。如果所述最旧的未解析的存储指令在所述加载指令的推测窗内,则所述加载指令被推测性地分发到所述数据高速缓存。否则,所述加载指令被停止,直到所述推测窗外侧的任何未解析的存储指令被解析为止。所述推测窗是定义紧接着在所述加载指令之前的指令或存储指令的数量的短窗。
-
公开(公告)号:CN106020778B
公开(公告)日:2018-12-11
申请号:CN201610299507.0
申请日:2013-01-05
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
IPC分类号: G06F9/38
CPC分类号: G06F9/30043 , G06F9/3836 , G06F9/384 , G06F9/3855 , G06F9/3857 , G06F9/3863
摘要: 描述了一种用于还原寄存器重命名映射的技术。在一个示例中,每当向重排序缓冲器传递流程风险指令时,具有多个存储位置的还原表保存寄存器重命名映射的拷贝。当所有存储位置已满时,仍向所述重排序缓冲器传递进一步的指令,但是不保存映射的拷贝。当执行与一个存储位置关联的流程风险指令时,该个存储位置随后变得可用。在所述多个存储位置已满时的用于传递到所述重排序缓冲器的未记录的流程风险指令的寄存器重命名映射的状态被产生并且被存储在所述可用的位置。所述寄存器重命名映射的状态是使用用于先前的流程风险指令的还原表条目和用于中间指令的重排序缓冲器值来产生的,所述中间指令在所述先前的流程风险指令和所述未记录的流程风险指令之间。如果在指令流程中发生意外改变,则能用所述还原表来还原所述映射。
-
公开(公告)号:CN108089883B
公开(公告)日:2021-10-01
申请号:CN201810036114.X
申请日:2014-01-21
申请人: 美普思技术有限责任公司
IPC分类号: G06F9/38
摘要: 本文描述了基于推测度量将资源分配给线程。基于与每个线程关联的指令为推测性的程度,用于将资源分配给多个线程的方法、保留站和处理器。所述方法包括在保留站接收每个线程的推测度量。每个推测度量代表与特定线程关联的指令为推测性的程度。指令推测性越大,该指令就越可能被分支预测器不正确地预测。保留站然后基于推测度量将功能单元资源(例如管线)分配给线程,并且基于该分配从一个或多个线程选择若干指令。然后将所选择的指令发出到功能单元资源。
-
公开(公告)号:CN104679663B
公开(公告)日:2019-10-11
申请号:CN201410705339.1
申请日:2014-11-27
申请人: 美普思技术有限责任公司
IPC分类号: G06F12/02 , G06F12/0893
摘要: 描述了对寄存器文件高速缓存的软分区。所述软分区通过基于在多线程乱序处理器中指令属于的线程而对与所述指令相关联的目的寄存器重命名来实现。寄存器重命名可以由寄存器重命名模块来执行,并且在实施例中,寄存器重命名模块接收用于寄存器重命名的指令,所述指令识别与所述指令相关联的线程和一个或多个架构寄存器。可用的物理寄存器然后基于所识别的线程向每一个所识别的架构寄存器分配。在一些示例中,将在多线程乱序处理器中的物理寄存器在逻辑上划分成组,并且基于线程到组映射来分配物理寄存器。在另外的示例中,线程到组映射不是固定的,但可以基于在多线程乱序处理器中的一个或多个线程的活动水平来更新。
-
公开(公告)号:CN104794067B
公开(公告)日:2019-07-12
申请号:CN201510023591.9
申请日:2015-01-16
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
IPC分类号: G06F12/123
CPC分类号: G06F9/30181 , G06F9/30043 , G06F9/30098 , G06F9/30134 , G06F9/30138 , G06F9/3832 , G06F9/384 , G06F9/4484
摘要: 描述了对堆栈中存储的变量的值进行预测的方法。当出现存储距所述堆栈指针偏移的地点中的堆栈中的变量的指令时,条目被添加到以下数据结构,该数据结构标识当前存储堆栈指针的物理寄存器、存储变量的值和偏移值的物理寄存器。随后,当出现从通过参照堆栈指针所标识的位置从堆栈中加载变量的指令时,搜索数据结构以看是否存在包括相同偏移和存储堆栈指针的相同物理寄存器的对应条目作为加载指令。如果找到对应条目,则加载指令中的虚拟寄存器被映射到存储来自条目的变量的值的物理寄存器。
-
公开(公告)号:CN109871341B
公开(公告)日:2023-10-27
申请号:CN201910109821.1
申请日:2015-01-16
申请人: 美普思技术有限责任公司
发明人: H·杰克逊
摘要: 描述了用于堆栈指针值预测的方法和装置。在实施例中,当出现增大堆栈的指令时存储数据。所存储的信息包括尺寸参数,该尺寸参数表明了堆栈增大了多少以及以下中的一个或两个:当前保持有堆栈指针值的寄存器ID或当前堆栈指针值。当出现随后的用于缩小堆栈的指令时,在所存储的数据中搜索具有相对应尺寸参数的一个或多个条目。如果识别出这样的条目,则存储在该条目中的其它信息被用来预测堆栈指针值,而非使用指令来计算新的堆栈指针值。在使用了寄存器重命名的情况下,条目中的信息用于将堆栈指针重映射到不同的物理寄存器。
-
公开(公告)号:CN108170471B
公开(公告)日:2022-03-29
申请号:CN201810036547.5
申请日:2014-07-31
申请人: 美普思技术有限责任公司
摘要: 本申请公开了一种基于类型优先化指令,具体是用于选择指令以发布给无序处理器的功能单元的方法和保留站。所述方法包括:基于指令类型将每个指令分类到多个类别中的一个。一旦被分类,指令存储在对应于其被分类的类别的指令队列中。然后,基于多种指令类型的相对优先级来从一个或多个指令队列中选择指令以发布给功能单元。这允许一些类型的指令(例如,控制转移指令、标记设定指令和/或地址生成指令)优先于其他类型的指令,即使它们更年轻。
-
公开(公告)号:CN105138397B
公开(公告)日:2019-08-30
申请号:CN201510541005.X
申请日:2013-08-29
申请人: 美普思技术有限责任公司
摘要: 描述了多线程处理器中的全局寄存器保护。在一个实施例中,通过以下方式来保护多线程处理器中的全局资源:在允许一个线程向全局资源进行写入之前,执行检查来确定该线程是否有权向特定的全局资源进行写入。该检查涉及访问多线程处理器内的一个或多个局部控制寄存器或全局控制字段,并且在一个例子中,对与多线程处理器中的每个其它线程相关联的局部寄存器进行访问并检查,以查看它是否包含特定的全局资源的标识符。只有当所被访问的局部资源中没有一个包含这样的标识符时,才发布指令,并允许线程向全局资源进行写入。否则,指令被阻止,并且可以产生异常以向发布指令的程序警告写失败。
-
-
-
-
-
-
-
-
-