具有组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量方法和系统技术方案

技术编号:11374286 阅读:82 留言:0更新日期:2015-04-30 11:34
在处理器中,一种用于使用具有在组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量的方法。该方法包括:实现能够由多个核心访问的存储器资源;实现访问掩码,该访问掩码通过跟踪高速缓存的哪些字具有待决加载来运行,其中高速缓存线包括存储器资源,其中乱序加载在访问高速缓存线的字时设置访问掩码内的掩码位,并且在该乱序加载退出时清除掩码位。该方法还包括:在执行从多个核心到高速缓存线的后续存储时检查访问掩码;以及当到高速缓存线的部分的后续存储在访问掩码中见到来自加载的在先标记时引发缺失预测,其中后续存储将通过使用跟踪符寄存器来用信号发送对应于该加载的加载队列条目。

【技术实现步骤摘要】
【国外来华专利技术】具有组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量方法和系统本申请要求2012年6月15日由MohammadA.Abdallah提交的题为“ASEMAPHOREMETHODANDSYSTEMWITHOUTOFORDERLOADSINAMEMORYCONSISTENCYMODELTHATCONSTITUTESLOADSREADINGFROMMEMORYINORDER”的共同待决共同转让的美国临时专利申请序号61/660,592的权益,并且该申请被整体地并入到本文中。
本专利技术总体涉及数字计算机系统,更具体地涉及用于选择指令(包括指令序列)的系统和方法。
技术介绍
要求处理器来处理相关或完全独立的多个任务。此类处理器的内部状态通常由在程序执行的每个特定时刻可能保持不同的值的寄存器组成。在程序执行的每个时刻,将内部状态图像称为处理器的架构状态。当架构代码执行切换成运行另一功能(例如,另一线程、进程或程序)时,然后必须保存机器/处理器的状态,使得新功能可以利用内部寄存器以构建其新状态。一旦新功能已终止,则可以丢弃其状态,并且先前情境的状态将被恢复且该执行又继续。此类切换过程称为情境切换,并且通常包括10个或数百个循环,尤其是在采用大量寄存器(例如,64、128、256)和/或乱序执行的现代架构的情况下。在线程感知硬件架构中,硬件支持用于有限数目的硬件支持线程的多个情境状态是正常的。在这种情况下,硬件复制用于每个所支持线程的所有架构状态元素。这消除了在执行新线程时的情境切换的需要。然而,这仍具有多个缺点,即复制用于用硬件中所支持的每个附加线程的所有架构状态元素(即,寄存器)的面积、功率和复杂性。另外,如果软件线程的数目超过明确支持的硬件线程的数目,则仍必须执行情境切换。这变得常见,因为在要求大量线程的细粒度基础上需要并行性。具有复制情境状态硬件存储的硬件线程感知架构无助于非线程软件代码,并且仅仅减少了用于被线程化的软件的情境切换的次数。然而,那些线程通常是针对粗粒并行性而构造的,并且导致用于发起和同步、离开细粒并行性的沉重软件开销,诸如函数调用和回路并行执行,而没有高效的线程化发起/自动生成。此类所述开销伴随着针对非明确/容易并行化/线程化软件代码而使用现有技术编译程序或用户并行化技术进行此类代码的自动并行化的困难。
技术实现思路
在一个实施例中,将本专利技术实现为一种用于使用具有在组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量的方法。该方法包括:实现能够由多个核心访问的存储器资源;实现访问掩码,该访问掩码通过跟踪高速缓存的哪些字具有待决加载来运行,其中高速缓存线包括存储器资源,其中乱序加载在访问高速缓存线的字时设置访问掩码内的掩码位,并且在该乱序加载退出时清除掩码位。该方法还包括:在执行从多个核心到高速缓存线的后续存储时检查访问掩码;以及当到高速缓存线的部分的后续存储在访问掩码中见到来自加载的在先标记时引发缺失预测,其中后续存储将通过使用跟踪符寄存器来用信号发送对应于该加载的加载队列条目。前述是概要且因此必要地包含细节的简化、一般化以及省略;因此,本领域的技术人员将认识到的是该概要仅仅是说明性的且并不意图以任何方式是限制性的。单独地由权利要求定义的本专利技术的其他方面、专利技术特征以及优点在下面阐述的非限制性详细描述中将变得显而易见。附图说明在附图中以示例的方式而不是以限制的方式举例说明本专利技术,并且在附图中相同的附图标记指示类似元件。图1示出了根据本专利技术的一个实施例的加载队列和存储队列。图2示出了根据本专利技术的一个实施例的加载和存储指令分离的第一图。图3示出了根据本专利技术的一个实施例的加载和存储指令分离的第二图。图4示出了根据本专利技术的一个实施例的过程的步骤的流程图,其中图示出用于实现从由加载存储重新排序和优化所引发的推测性转发缺失预测/错误中恢复的规则。图5示出了图示出根据本专利技术的一个实施例的用处理器的加载队列和存储队列资源来实现过程300的规则的方式的图。图6示出了图示出根据本专利技术的一个实施例的用处理器的加载队列和存储队列资源来实现过程300的规则的方式的另一图。图7示出了图示出根据本专利技术的一个实施例的用处理器的加载队列和存储队列资源来实现过程300的规则的方式的另一图。图8示出了根据本专利技术的一个实施例的其中在加载之后分派存储的分派功能的概述的过程的流程图。图9示出了根据本专利技术的一个实施例的其中在存储之后分派存储的分派功能的概述的过程的流程图。图10示出了根据本专利技术的一个实施例的统一加载队列的图。图11示出了示出根据本专利技术的一个实施例的滑动加载分派窗口的统一加载队列。图12示出了根据本专利技术的一个实施例的分布式加载队列。图13示出了根据本专利技术的一个实施例的具有按序连续性的分布式加载队列。图14示出了根据本专利技术的一个实施例的用于多核处理器的分段存储器子系统的图。图15示出了如何通过本专利技术的实施例来处理加载和存储的图。图16示出了根据本专利技术的一个实施例的存储过滤算法的图。图17示出了根据本专利技术的一个实施例的在组成按序从存储器进行读取的加载的存储器一致性模型中具有乱序加载的信号量实现方式。图18示出了根据本专利技术的一个实施例的到通过使用基于锁的模型和基于事务的模型两者而组成按序的用于存储器的加载读取的存储器一致性模型中的乱序加载。图19示出了根据本专利技术的一个实施例的多核分段存储器子系统的多个核心。图20示出了根据本专利技术的一个实施例的访问统一存储队列的异步核心的图,其中存储可以基于存储资历而从任一线程获得。图21示出了描绘根据本专利技术的一个实施例的其中存储相比于其他线程中的对应存储而言具有资历的功能的图。图22示出了根据本专利技术的一个实施例的非消歧乱序加载存储队列退出实现方式。图23示出了根据本专利技术的一个实施例的非消歧乱序加载存储队列重新排序实现方式的重新排序实现方式。图24示出了根据本专利技术的一个实施例的指令序列(例如,踪迹)重新排序的推测性执行实现方式。图25示出了根据本专利技术的一个实施例的示例性微处理器管线的图。具体实施方式虽然已结合一个实施例描述了本专利技术,但本专利技术并不意图局限于本文中所阐述的特定形式。相反地,其意图涵盖可以适当地包括在由所附权利要求定义的本专利技术的范围内的此类替换、修改以及等同物。在以下详细描述中,已阐述了许多特定细节,诸如特定方法顺序、结构、元件以及连接。然而应理解的是不需要利用这些及其他特定细节来实施本专利技术的实施例。在其他情况下,已省略众所周知的结构、元件或连接或未特别详细地描述以避免不必要地使本描述含糊。在本说明书内对“一个实施例”或“实施例”的引用意图指示在本专利技术的至少一个实施例中包括结合该实施例所述的特定特征、结构或特性。短语“在一个实施例中”在本说明书内的各种位置上的出现并不一定全部参考同一实施例,也不是其他实施例的互斥的单独或替换实施例。此外,描述了某些实施例可展示出而其他的没有的各种特征。同样地,描述了对于某些实施例而言可能是要求但其他实施例并非如此的各种要求。随后的详细描述的某些部分是在对计算机存储器内的数据位的操作的程序、步骤、逻辑块、处理及其他符号表示方面提出的。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他人传达其工作的实质本文档来自技高网
...

【技术保护点】
在处理器中,一种用于使用具有在组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量的方法,包括:实现能够由多个核心访问的存储器资源;实现访问掩码,所述访问掩码通过跟踪高速缓存的哪些字具有待决加载来运行,其中所述高速缓存线包括所述存储器资源,其中乱序加载在访问所述高速缓存线的字时设置所述访问掩码内的掩码位,并且在该乱序加载退出时清除所述掩码位;在执行从所述多个核心到所述高速缓存线的后续存储时检查所述访问掩码;以及当到所述高速缓存线的部分的后续存储在所述访问掩码中见到来自加载的在先标记时引发缺失预测,其中所述后续存储将通过使用跟踪符寄存器来用信号发送对应于该加载的加载队列条目。

【技术特征摘要】
【国外来华专利技术】2012.06.15 US 61/660,5921.一种处理器中的用于使用具有在组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量的方法,包括:实现能够由多个核心访问的存储器资源;实现访问掩码,所述访问掩码通过跟踪高速缓存线的哪些字具有待决加载来运行,其中所述访问掩码包括一组位且所述一组位中的每个位对应于所述高速缓存线中的一单独字,其中所述高速缓存线包括所述存储器资源且所述高速缓存线包括多个字,其中乱序加载在访问所述高速缓存线的字时设置所述访问掩码内的掩码位,并且在该乱序加载退出时清除所述掩码位,其中所述掩码位在所述一组位中并且对应于所述乱序加载所访问的字;在执行从所述多个核心到所述高速缓存线的后续存储时检查所述访问掩码;以及当到所述高速缓存线的部分的后续存储在所述访问掩码中见到来自加载的在先标记时引发缺失预测,其中所述后续存储将通过使用跟踪符寄存器来用信号发送对应于该加载的加载队列条目。2.根据权利要求1所述的方法,其中所述存储器资源能够由多个线程访问。3.根据权利要求1所述的方法,其中一旦加载正在从高速缓存线的一部分进行读取,则加载设置对应于该部分的相应访问掩码位。4.根据权利要求3所述的方法,其中当该加载退出时,所述相应访问掩码位被清除。5.根据权利要求1所述的方法,其中实现加载队列条目引用寄存器以跟踪加载队列条目引用,从而当存储将数据保存至所述高速缓存线的与所述加载队列条目引用寄存器中的匹配相对应的一部分时,引发对应的加载队列条目进行缺失预测。6.根据权利要求1所述的方法,其中所述后续存储将通过使用跟踪符寄存器用信号发送对应于该加载的加载队列条目,并且引发该加载连同加载从属指令一起进行缺失预测。7.根据权利要求1所述的方法,其中共享存储器资源包括标志资源和数据资源。8.一种微处理器,包括:多个核心和加载存储缓冲器,其中所述加载存储缓冲器通过以下方式实现用于使用具有在组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量的方法:实现能够由多个核心访问的存储器资源;实现访问掩码,所述访问掩码通过跟踪高速缓存的哪些字具有待决加载来运行,其中所述访问掩码包括一组位且所述一组位中的每个位对应于所述高速缓存线中的一单独字,其中所述高速缓存线包括所述存储器资源且所述高速缓存线包括多个字,其中乱序加载在访问所述高速缓存线的字时设置所述访问掩码内的掩码位,并且在该乱序加载退出时清除所述掩码位,其中所述掩码位在所述一组位中并且对应于所述乱序加载所访问的字;在执行从所述多个核心到所述高速缓存线的后续存储时检查所述访问掩码;以及当到所述高速缓存线的部分的后续存储在所述访问掩码中见到来自加载的在先标记时引发缺失预测,其中所述...

【专利技术属性】
技术研发人员:M·阿布达拉
申请(专利权)人:索夫特机械公司
类型:发明
国别省市:美国;US

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

1