具有有效的存储器访问的处理器制造技术

技术编号:17310112 阅读:23 留言:0更新日期:2018-02-19 09:54
一种方法包括:在处理器(20)中处理包括存储器访问指令的程序代码,其中存储器访问指令中的至少一些包括符号表达式,其根据一个或更多个寄存器名称来指定外部存储器(41)中的存储器地址。基于在符号表达式中指定的存储器地址的相应格式来识别在由存储器访问指令中的两个或更多个访问的存储器地址之间的关系。基于所识别的关系来分配从处理器中的内部存储器(50)供应的存储器访问指令的至少一个的结果。

A processor with effective memory access

The method comprises the following steps: (20) processing in a processor includes a memory access instruction code, the memory access instructions at least some of the symbolic expressions including, according to one or more register name to specify an external memory address in the memory (41). Based on the corresponding format of the specified memory address in the symbolic expression, we identify the relationship between two or more access memory addresses in the memory access instruction. Based on the identified relationship, the results of at least one of the memory access instructions supplied from the internal memory (50) of the processor are allocated.

【技术实现步骤摘要】
【国外来华专利技术】具有有效的存储器访问的处理器专利
本专利技术大体上涉及微处理器设计,且特别是用于微处理器中的有效存储器访问的方法和系统。专利技术背景限制微处理器中的代码的并行化的主要瓶颈之一是在存储器访问指令之间的依赖性。已经提出了各种技术来改善包括存储器访问的代码的并行化性能。例如,Tyson和Austin在通过引用并入本文的“MemoryRenaming:Fast,EarlyandAccurateProcessingofMemoryCommunication”(InternationalJournalofParallelProgramming,第27卷,第5期,1999年)中提出了被称为“存储器重命名”的技术。存储器重命名是应用寄存器访问技术来加载和存储指令以加快存储器流量的处理的处理器流水线的修改。该方法通过在流水线中早期预测存储器通信并然后将通信重新映射到快速物理寄存器来工作。专利技术概述本文描述的本专利技术的实施方式提供了一种方法,其包括在处理器中处理包括存储器访问指令的程序代码,其中存储器访问指令中的至少一些包括根据一个或更多个寄存器名称来指定在外部存储器中的存储器地址的符号表达式。基于在符号表达式中指定的存储器地址的相应格式来识别在由两个或更多个存储器访问指令访问的存储器地址之间的关系。基于所识别的关系来分配从处理器中的内部存储器供应的存储器访问指令中的至少一个的结果。在一些实施方式中,识别在存储器地址之间的关系与存储器地址的实际数值无关。在实施方式中,识别在存储器地址之间的关系在存储器地址的实际数值未被定义的时间点处执行。在所公开的实施方式中,由处理器的流水线中的给定流水线级来执行识别关系,并且在位于流水线中的比给定流水线级更晚的另一流水线级中计算存储器地址的实际数值。在一些实施方式中,识别所述关系包括在程序代码中搜索使用相同符号表达式来指定存储器地址的存储器访问指令。在实施方式中,识别关系包括在程序代码中搜索使用涉及相同存储器地址的不同的符号表达式来指定存储器地址的存储器访问指令。在另一个实施方式中,分配存储器访问指令中的至少一个的结果由处理器的流水线中的解码单元或重命名单元执行。在一些实施方式中,分配从内部存储器供应的结果还包括在外部存储器中执行存储器访问指令,并且验证在外部存储器中执行的存储器访问指令的结果与从内部存储器分配给存储器访问指令的结果匹配。在实施方式中,验证结果包括将在外部存储器中执行的存储器访问指令的结果与从内部存储器分配给存储器访问指令的结果进行比较。在另一个实施方式中,验证结果包括验证没有介入(intervening)事件引起在外部存储器中的结果与从内部存储器分配的结果之间的不匹配。在又一个实施方式中,验证结果包括向程序代码添加验证结果的一个或更多个指令或微操作,或将一个或更多个现有指令或微操作修改为验证结果的指令或微操作。在另一个实施方式中,该方法还包括在发现在外部存储器中执行的结果与从内部存储器供应的结果不匹配时刷新后续代码。在一些实施方式中,该方法还包括禁止在外部存储器中执行存储器访问指令中的至少一个。在其他实施方式中,该方法还包括在多个硬件线程上的程序代码的并行执行,包括从内部存储器分配结果。在另一个实施方式中,处理程序代码包括在单个硬件线程中执行程序代码,包括从内部存储器分配结果。在所公开的实施方式中,识别关系包括识别在循环或函数中的存储器访问指令。在另一个实施方式中,在运行时间处执行识别关系。在实施方式中,至少部分地基于嵌入在程序代码中的指示来执行识别关系。根据本专利技术的实施方式,另外提供了包括内部存储器和处理电路的处理器。处理电路被配置成处理包括存储器访问指令的程序代码,其中存储器访问指令的至少一些包括根据一个或更多个寄存器名称来指定外部存储器中的存储器地址的符号表达式,以基于在符号表达式中指定的存储器地址的相应格式来识别在由两个或更多个存储器访问指令访问的存储器地址之间的关系,并基于所识别的关系来分配从内部存储器供应的存储器访问指令中的至少一个的结果。根据结合附图进行的本专利技术的实施方式的以下详细描述,本专利技术将得到更完全地理解,其中:附图简述图1是根据本专利技术的实施方式示意性示出处理器的框图;图2是根据本专利技术的实施方式示意性示出用于处理包含存储器访问指令的代码的方法的流程图;图3是根据本专利技术的实施方式示意性示出用于处理包含循环加载指令的代码的方法的流程图;图4是根据本专利技术的实施方式示意性示出用于处理包含加载-存储指令对的代码的方法的流程图;图5是根据本专利技术的实施方式示意性示出用于处理包含具有介入数据操纵的重复的加载-存储指令对的方法的流程图;以及图6是根据本专利技术的实施方式示意性示出用于从附近的存储器地址处理包含循环加载指令的代码的方法的流程图。实施方式的详细描述综述本文描述的本专利技术的实施方式提供了用于处理包括存储器访问指令的软件代码的改善的方法和系统。在所公开的技术中,处理器监控代码指令,并找出在存储器访问指令之间的关系。关系可以包括例如访问相同存储器地址的多个加载指令、访问相同存储器地址的加载和存储指令对或者访问存储器地址的可预测模式的多个加载指令。基于所识别的关系,处理器能够从内部存储器(例如内部寄存器、本地缓冲器)而不是从外部存储器向取决于结果的后续代码供应一些存储器访问指令的结果。在本上下文中,经由可能在处理器内部的高速缓存从外部存储器读取也被视为供应来自外部存储器的指令。在示例实施方式中,当从相同存储器地址读取多个加载指令时,处理器在第一加载指令时读取来自该存储器地址的值,并将该值保存到内部寄存器。当处理下一个加载指令时,处理器从内部寄存器向后续代码供应值,而不等待加载指令从存储器地址中取回值。作为结果,可以更快地执行取决于加载指令的结果的后续代码,可以放宽在指令之间的依赖性,并且可以改进并行化。通常,下一个加载指令仍在外部存储器中被执行,例如以便验证从内部存储器供应的值是否仍然有效,但执行过程不必等待它们来完成。这个特征提高了性能,因为后续代码对加载指令的依赖性被打破,并且指令并行化可以被改进。为了识别这些关系,原则上可能等待直到由存储器访问指令访问的存储器地址的数值被解码为止,且然后识别在所解码的存储器地址的数值之间的关系。然而,这种解决方案在时延方面是昂贵的,因为由存储器访问指令访问的实际数字地址只在流水线中的后期才被知道。相反,在本文描述的实施方式中,处理器基于指定在指令中的存储器地址的符号表达式的格式而不是基于地址的实际数值来识别在存储器访问指令之间的关系。指令一被解码,符号表达式在流水线中在早期就是可用的。作为结果,所公开的技术识别相互关联的存储器访问指令并且以小时延对相互关联的存储器访问指令起作用,从而实现快速操作和高度并行化。本文描述了在可以被识别和利用的存储器访问指令之间的关系的若干示例。还描述了用于处理额外的内部寄存器的若干方案,例如,将微操作添加到代码的方案和修改寄存器的常规重命名的方案。所公开的技术提供相当大的性能提高,并且适合于在多种处理器体系结构(包括多线程和单线程体系结构)中的实现。系统描述图1是根据本专利技术的实施方式示意性示出处理器20的框图。处理器20运行预编译的软件代码,同时并行化代码执行。处理器在运行时间处通过在程序指令本文档来自技高网...
具有有效的存储器访问的处理器

【技术保护点】
一种方法,包括:在处理器中处理包括存储器访问指令的程序代码,其中所述存储器访问指令中的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址;基于在所述符号表达式中指定的所述存储器地址的相应格式来识别在由所述存储器访问指令中的两个或更多个访问的所述存储器地址之间的关系;以及基于所识别的关系,分配从所述处理器中的内部存储器待供应的所述存储器访问指令的至少一个的结果。

【技术特征摘要】
【国外来华专利技术】2015.07.09 US 14/794,835;2015.07.09 US 14/794,837;1.一种方法,包括:在处理器中处理包括存储器访问指令的程序代码,其中所述存储器访问指令中的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址;基于在所述符号表达式中指定的所述存储器地址的相应格式来识别在由所述存储器访问指令中的两个或更多个访问的所述存储器地址之间的关系;以及基于所识别的关系,分配从所述处理器中的内部存储器待供应的所述存储器访问指令的至少一个的结果。2.根据权利要求1所述的方法,其中,识别在所述存储器地址之间的关系与所述存储器地址的实际数值无关。3.根据权利要求2所述的方法,其中,识别在所述存储器地址之间的关系在所述存储器地址的所述实际数值未被定义的时间点处执行。4.根据权利要求2所述的方法,其中,识别所述关系通过所述处理器的流水线中的给定流水线级来执行,并且其中在所述流水线中比所述给定流水线级更晚定位的另一流水线级中计算所述存储器地址的所述实际数值。5.根据权利要求1所述的方法,其中,识别所述关系包括在所述程序代码中搜索使用相同符号表达式来指定所述存储器地址的存储器访问指令。6.根据权利要求1所述的方法,其中,识别所述关系包括在所述程序代码中搜索使用涉及相同存储器地址的不同的符号表达式来指定所述存储器地址的存储器访问指令。7.根据权利要求1所述的方法,其中,分配所述存储器访问指令的至少一个的结果由所述处理器的流水线中的解码单元或重命名单元执行。8.根据权利要求1-7中的任一项所述的方法,其中,分配从所述内部存储器待供应的结果还包括:在所述外部存储器中执行存储器访问指令;以及验证在所述外部存储器中执行的所述存储器访问指令的结果与从所述内部存储器分配给所述存储器访问指令的结果匹配。9.根据权利要求8所述的方法,其中,验证所述结果包括将在所述外部存储器中执行的所述存储器访问指令的结果与从所述内部存储器分配给所述存储器访问指令的结果进行比较。10.根据权利要求8所述的方法,其中,验证所述结果包括验证没有介入事件引起在所述外部存储器中的结果与从所述内部存储器分配的结果之间的不匹配。11.根据权利要求8所述的方法,其中,验证所述结果包括向所述程序代码添加验证所述结果的一个或更多个指令或微操作,或将一个或更多个现有指令或微操作修改为验证所述结果的所述指令或微操作。12.根据权利要求8所述的方法,还包括在发现在所述外部存储器中执行的结果与从所述内部存储器供应的结果不匹配时刷新后续代码。13.根据权利要求1-7中的任一项所述的方法,还包括禁止在所述外部存储器中执行所述存储器访问指令的至少一个。14.根据权利要求1-7中的任一项所述的方法,还包括在多个硬件线程上并行化执行所述程序代码,包括从所述内部存储器分配所述结果。15.根据权利要求1-7中的任一项所述的方法,其中,处理所述程序代码包括在单个硬件线程中执行所述程序代码,包括从所述内部存储器分配所述结果。16.根据权利要求1-7中的任一项所述的方法,其中,识别所述关系包括识别在循环或函数中的所述存储器访问指令。17.根据权利要求1-7中的任一项所述的方法,其中,识别所述关系在运行时间处执行。18.根据权利要求1-7中的任一项所述的方法,其中,识别所述关系至少部分地基于嵌入在所述程序代码中的指示来执行。19.一种处理器,包括:内部存储器;以及处理电路,其被配置成处理包括存储器访问指令的程序代码,其中所述存储器访问指令的至少一些包括根据一个或更多个寄存器名称来指定外部存储器中的存储器地址的符号表达式,以基于在所述符号表达式中指定的所述存储器地址的相应格式来识别在由所述存储器访问指令的两个或更多个存储器访问指令访问的所述存储器地址之间的关系,并基于所识别的关系来分配从所述内部存储器待供应的所述存储器访问指令中的至少一个的结果。20.根据权利要求19所述的处理器,其中,所述处理电路被配置成独立于所述存储器地址的实际数值来识别所述存储器地址之间的关系。21.根据权利要求20所述的处理器,其中,所述处理电路被配置成在所述存储器地址的所述实际数值未被定义的时间点处识别在所述存储器地址之间的关系。22.根据权利要求20所述的处理器,其中,所述处理电路被配置成在所述处理器的流水线中的给定流水线级中识别所述关系,并且在所述流水线中比所述给定流水线级更晚定位的另一流水线级中计算所述存储器地址的所述实际数值。23.根据权利要求19所述的处理器,其中,所述处理电路被配置成通过在所述程序代码中搜索使用相同符号表达式来指定所述存储器地址的存储器访问指令来识别所述关系。24.根据权利要求19所述的处理器,其中,所述处理电路被配置成通过在所述程序代码中搜索使用涉及相同存储器地址的不同的符号表达式来指定所述存储器地址的存储器访问指令来识别所述关系。25.根据权利要求19所述的处理器,其中,所述处理电路被配置成由所述处理器的流水线中的解码单元或重命名单元分配所述存储器访问指令的至少一个的结果。26.根据权利要求19-25中的任一项所述的处理器,其中,所述处理器电路被配置成通过下列操作来分配从所述内部存储器待供应的结果:在所述外部存储器中执行存储器访问指令;以及验证在所述外部存储器中执行的所述存储器访问指令的结果与从所述内部存储器分配给所述存储器访问指令的结果匹配。27.根据权利要求26所述的处理器,其中,所述处理电路被配置成通过将在所述外部存储器中执行的所述存储器访问指令的结果与从所述内部存储器分配给所述存储器访问指令的结果进行比较来验证所述结果。28.根据权利要求26所述的处理器,其中,所述处理电路被配置成通过验证没有介入事件引起在所述外部存储器中的结果与从所述内部存储器分配的结果之间的不匹配来验证所述结果。29.根据权利要求26所述的处理器,其中,所述处理电路被配置成向所述程序代码添加验证所述结果的指令或微操作,或将现有指令或微操作修改为验证所述结果的所述指令或微操作。30.根据权利要求19-25中的任一项所述的处理器,其中,所述处理电路被配置成禁止在所述外部存储器中执行所述存储器访问指令的至少一个。31.一种方法,包括:在处理器中处理包括存储器访问指令的程序代码,其中所述存储器访问指令的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址;基于在所述符号表达式中指定的所述存储器地址的相应格式来识别访问在所述外部存储器中的存储器地址的可预测模式的加载指令的序列;从所述外部存储器中取回包括多个数据值的至少一个缓存行;基于所述可预测模式来将由所述序列中的相应加载指令所请求的数据值中的两个或更多个从所述缓存行保存到所述内部存储器;以及将从所述内部存储器待供应的所保存的数据值分配给取决于所述相应加载指令的一个或更多个指令。32.根据权利要求31所述的方法,其中,识别所述加载指令与所述存储器地址的实际数值无关。33.根据权利要求31或32所述的方法,其中,保存所述数据值包括基于在所述加载指令的序列中的所述存储器地址的模式来确定在所述缓存行中的所述数据值的位置,并且将所述数据值从所述缓存行中的所确定的位置复制到所述内部存储器。34.根据权利要求31或32所述的方法,还包括响应于识别出所述可预测图案延伸出所取回的缓存行之外而从所述外部存储器取出至少一个附加缓存行。35.根据权利要求34所述的方法,其中,取出所述附加缓存行包括将所述附加缓存行预取到高速缓存存储器。36.根据权利要求31或32所述的方法,其中,分配所述数据值包括向所述程序代码添加供应所述数据值的一个或更多个指令或微操作,或者将一个或更多个现有指令或微操作修改为供应所述数据值的所述一个或更多个指令或微操作。37.根据权利要求36所述的方法,其中,添加或修改的指令或微操作中的一个或更多个将所述两个或更多个数据值从所述缓存行保存到所述内部存储器。38.根据权利要求36所述的方法,其中,添加或修改所述指令或微操作由在所述处理器的流水线中的解码单元或重命名单元执行。39.根据权利要求31或32所述的方法,其中,分配所述数据值包括:将所述两个或更多个数据值保存在所述处理器的相应物理寄存器中;以及重命名取决于所述相应加载指令的指令以从所述物理寄存器接收所述数据值。40.根据权利要求31或32所述的方法,其中,所述序列中的所述加载指令由相同的硬件线程处理。41.根据权利要求31或32所述的方法,其中,所述序列中的所述加载指令由至少两个不同的硬件线程处理。42.根据权利要求31或32所述的方法,其中,分配从所述内部存储器待供应的结果包括禁止在所述外部存储器中执行所述加载指令中的一个或更多个。43.根据权利要求31或32所述的方法,其中,分配所述数据值包括将来自所述内部存储器的所述数据值只提供给与一个或更多个特定流控制轨迹相关联的指令。44.根据权利要求31或32所述的方法,其中,分配所述数据值包括将来自所述内部存储器的所述数据值提供给与任何流控制轨迹相关联的指令。45.根据权利要求31或32所述的方法,其中,分配所述数据值包括基于从由所述程序代码中的所述加载指令的程序计数器(PC)值、程序地址、指令索引和地址操作数组成的一组参数中选择的至少一个参数来标记所述程序代码中的位置以被修改用于分配所述数据值。46.根据权利要求31或32所述的方法,其中,分配所述数据值还包括:在所述外部存储器中执行所述加载指令;以及验证在所述外部存储器中执行的所述加载指令的结果与从所述内部存储器分配的所述数据值匹配。47.根据权利要求46所述的方法,其中,验证所述数据值包括将在所述外部存储器中执行的所述加载指令的结果与从所述内部存储器分配的所述数据值进行比较。48.根据权利要求46所述的方法,其中,验证所述数据值包括验证没有介入事件导致在所述外部存储器中的结果与从所述内部存储器分配的所述数据值之间的不匹配。49.根据权利要求46所述的方法,其中,验证所述数据值包括向所述程序代码添加验证所述数据值的一个或更多个指令或微操作,或者将一个或更多个现有指令或微操作修改为验证所述数据值的所述指令或微操作。50.根据权利要求46所述的方法,还包括在发现在所述外部存储器中执行的结果与从所述内部存储器供应的所述数据值不匹配时刷新后续代码。51.根据权利要求31或32所述的方法,还包括在多个硬件线程上并行化执行所述程序代码,包括从所述内部存储器分配所述数据值。52.根据权利要求31或32所述的方法,其中,处理所述程序代码包括在单个硬件线程中执行所述程序代码,包括从所述内部存储器分配所述数据值。53.根据权利要求31或32所述的方法,其中,识别所述序列至少部分地基于嵌入在所述程序代码中的指示来执行。54.一种处理器,包括:内部存储器;以及处理电路,其被配置为处理包括存储器访问指令的程序代码,其中所述存储器访问指令的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址,以基于在所述符号表达式中指定的所述存储器地址的相应格式来识别访问所述外部存储器中的存储器地址的可预测模式的加载指令的序列、从所述外部存储器取回包括多个数据值的至少一个缓存行、基于所述可预测模式将由所述序列中的相应加载指令请求的所述数据值中的两个或更多个从所述缓存行保存到所述内部存储器,并且将从所述内部存储器待供应的所保存的数据值分配给取决于所述相应加载指令的一个或更多个指令。55.根据权利要求54所述的处理器,其中,所述处理电路被配置成基于在所述加载指令的序列中的所述存储器地址的模式来确定在所述缓存行中的所述数据值的位置,并且将所述数据值从所述缓存行中的所确定的位置复制到所述内部存储器。56.根据权利要求54或55所述的处理器,其中,所述处理电路被配置成响应于识别出所述可预测模式延伸出所取回的缓存行之外而从所述外部存储器取出至少一个附加缓存行。57.根据权利要求54或55所述的处理器,其中,所述处理电路被配置成向所述程序代码添加供应所述数据值的一个或更多个指令或微操作,或者将一个或更多个现有指令或微操作修改为供应所述数据值的所述一个或更多个指令或微操作。58.根据权利要求54或55所述的处理器,其中,所述处理电路被配置成通过下列操作来分配所述数据值:将所述两个或更多个数据值保存在所述处理器的相应物理寄存器中;以及重命名取决于所述相应加载指令的指令以从所述物理寄存器接收所述数据值。59.根据权利要求54或55所述的处理器,其中,所述处理电路被配置成禁止在所述外部存储器中执行所述加载指令中的一个或更多个。60.根据权利要求54或55所述的处理器,其中,所述处理电路被配置成通过下列操作来分配所述数据值:在所述外部存储器中执行所述加载指令;以及验证在所述外部存储器中执行的所述加载指令的结果与从所述内部存储器分配的所述数据值匹配。61.一种方法,包括:在处理器中处理包括存储器访问指令的程序代码,其中所述存储器访问指令的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址;基于在所述加载指令的所述符号表达式中指定的所述存储器地址的相应格式来在所述程序代码中识别访问所述外部存储器中的相同存储器地址的至少第一加载指令和第二加载指令;以及分配从所述处理器中的内部存储器待供应的所述加载指令的至少一个的结果。62.根据权利要求61所述的方法,其中,识别所述第一加载指令和第二加载指令还包括识别出在所述第一加载指令和第二加载指令之间没有存储指令访问所述相同存储器地址。63.根据权利要求61所述的方法,其中,分配所述结果包括:响应于所述第一加载指令而从所述相同存储器地址读取值,将所述值保存在所述内部存储器中,以及响应于来自所述内部存储器的所述第二加载指令来分配所述值。64.根据权利要求61所述的方法,其中,识别所述第一加载指令和所述第二加载指令包括识别出在所述第一加载指令和所述第二加载指令中的所述符号表达式根据在所述第一加载指令与所述第二加载指令之间未被写入的一个或更多个寄存器来定义。65.根据权利要求61所述的方法,其中,分配所述结果包括仅当所述第二加载指令与所述第一加载指令和相同的流控制轨迹相关联时才提供来自所述内部存储器的结果。66.根据权利要求61所述的方法,其中,分配所述结果包括提供来自所述内部存储器的结果,而不管所述第二加载指令是否与所述第一加载指令和相同的流控制轨迹相关联。67.根据权利要求61所述的方法,其中,分配所述结果包括基于从由所述程序代码中的所述加载指令的程序计数器(PC)值、程序地址、目的寄存器、指令索引和地址操作数组成的一组参数中选择的至少一个参数来标记所述程序代码中的位置以被修改用于分配所述结果。68.根据权利要求61-67中的任一项所述的方法,其中,分配所述结果包括向所述程序代码添加供应所述结果的一个或更多个指令或微操作,或者将一个或更多个现有指令或微操作修改为供应所述结果的所述一个或更多个指令或微操作。69.根据权利要求68所述的方法,其中,添加或修改的指令或微操作之一将所述第一加载指令的结果保存到所述内部存储器。70.根据权利要求69所述的方法,其中,添加或修改的指令或微操作之一将来自所述内部存储器的结果复制到所述第二加载指令的目的寄存器。71.根据权利要求68所述的方法,其中,添加或修改所述指令或微操作由在所述处理器的流水线中的解码单元或重命名单元执行。72.根据权利要求61-67中任一项所述的方法,其中,分配从所述内部存储器待供应的所述结果还包括:在所述外部存储器中执行所述第二加载指令;以及验证在所述外部存储器中执行的所述第二加载指令的结果与从所述内部存储器分配给所述第二加载指令的结果匹配。73.根据权利要求72所述的方法,其中,验证所述结果包括将在所述外部存储器中执行的所述第二加载指令的结果与从所述内部存储器分配给所述第二加载指令的结果进行比较。74.根据权利要求72所述的方法,其中,验证所述结果包括验证没有介入事件导致在所述外部存储器中的结果与从所述内部存储器分配的结果之间的不匹配。75.根据权利要求72所述的方法,其中,验证所述结果包括向所述程序代码添加验证所述结果的一个或更多个指令或微操作,或者将一个或更多个现有指令或微操作修改为验证所述结果的所述指令或微操作。76.根据权利要求72所述的方法,还包括在发现在所述外部存储器中执行的结果与从所述内部存储器供应的结果不匹配时刷新后续代码。77.根据权利要求61-67中的任一项所述的方法,还包括禁止在所述外部存储器中执行所述加载指令中的至少一个。78.根据权利要求61-67中的任一项所述的方法,还包括在多个硬件线程上并行化执行所述程序代码,包括从所述内部存储器分配所述结果。79.根据权利要求61-67中的任一项所述的方法,其中,处理所述程序代码包括在单个硬件线程中执行所述程序代码,包括从所述内部存储器分配所述结果。80.根据权利要求61-67中任一项所述的方法,其中,分配所述结果包括:将所述第一加载指令的结果保存在所述处理器的物理寄存器中;以及重命名所述第一加载指令和所述第二加载指令以从所述物理寄存器接收所述结果。81.根据权利要求61-67中的任一项所述的方法,其中,识别所述加载指令至少部分地基于嵌入在所述程序代码中的指示来执行。82.一种处理器,包括:内部存储器;以及处理电路,其被配置为处理包括存储器访问指令的程序代码,其中所述存储器访问指令的至少一些包括符号表达式,所述符号表达式根据一个或更多个寄存器名称来指定外部存储器中的存储器地址,以基于在所述加载指令的所述符号表达式中指定的所述存储器地址的相应格式来在所述程序代码中识别访问所述外部存储器中的相同存储器地址的至少第一加载指令和第二加载指令,并分配从所述内部存储器待供应的所述加载指令的至少一个的结果。83.根据权利要求82所述的处理器,其中,所述处理电路还被配置成识别出在所述第一加载指令和第二加载指令之间没有存储指令访问所述相同存储器地址。84.根据权利要求82所述的处理器,其中,所述处理电路被配置成通过响应于所述第一加载指令而从所述相同存储器地址读取值、将所述值保存在所述内部存储器中并响应于来自所述内部存储器的所述第二加载指令而分配所述值来分配所述结果。85.根据权利要求82所述的处理器,其中,所述处理电路被配置成识别出在所述第一加载指令和第二加载指令中的所述符号表达式根据在所述第一加载指令与第二加载指令之间未被写入的一个或更多个寄存器来定义。86.根据权利要求82所述的处理器,其中,所述处理电路被配置成仅当所述第二加载指令与所述第一加载指令和相同的流控制轨迹相关联时才分配来自所述内部存储器的结果。87.根据权利要求82所述的处理器,其中,所述处理电路被配置成分配来自所述内部存储器的结果,而不管所述第二加载指令是否与第一加载指令和相同的流控制轨迹相关联。88.根据权利要求82所述的处理器,其中,所述处理电路被配置成基于从由所述程序代码中的所述加载指令的程序计数器(PC)值、程序地址、目的寄存器、指令索引和地址操作数组成的一组参数中选择的至少一个参数来标记所述程序代码中的位置以被修改用于分配所述结果。89.根据权利要求82-88中的任一项所述的处理器,其中,所述处理电路被配置成向所述程序代码添加供应所述结果的一个或更多个指令或微操作,或者将现有指令或微操作修改为供应所述结果的所述一个或更多个指令或微操作。90.根据权利要求89所述的处理器,其中,添加或修改的指令或微操作之一将所述第一加载指令的结果保存到所述内部存储器。91.根据权利要求90所述的处理器,其中,所述添加或修改的指令或微操作之一将来自所述内部存储器的结果复制到所述第二加载指令的目的寄存器。92.根据权利要求89所述的处理器,其中,所述处理电路被配置成由在所述处理器的流水线中的解码单元或重命名单元添加或修改所述指令或微操作。93.根据权利要求82-88中的任一项所述的处理器,其中,所述处理电路被配置成通过下列操作来分配从所述内部存储器待供应的结果:在所述外部存储器中执行所述第二加载指令;以及验证在所述外部存储器中执行的所述第二加载指令的结果与从所述内部存储器分配给所述第二加载指令的结果匹配。94.根据权利要求93所述的处理器,其中,所述处理电路被配置成通过将...

【专利技术属性】
技术研发人员:诺姆·米兹拉希乔纳森·弗里德曼
申请(专利权)人:森蒂彼得塞米有限公司
类型:发明
国别省市:以色列,IL

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1