拥有具有分布式结构的动态分派窗口的虚拟加载存储队列制造技术

技术编号:11364234 阅读:87 留言:0更新日期:2015-04-29 14:36
一种乱序处理器。该处理器包括分布式加载队列和分布式存储队列,其在允许对加载和存储的跨多个核心和存储器片段的乱序分派的同时保持单个程序连续语义;其中该处理器超过加载/存储队列的实际物理大小限制来分配除加载和存储之外的其他指令;并且其中即使居间的加载或存储在加载存储队列中不具有空间,也能够分派和执行其他指令。

【技术实现步骤摘要】
【国外来华专利技术】拥有具有分布式结构的动态分派窗口的虚拟加载存储队列本申请要求2012年6月15日由MohammadA.Abdallah提交的题为“AVIRTUALLOADSTOREQUEUEHAVINGADYNAMICDISPATCHWINDOWWITHADISTRIBUTEDSTRUCTURE”的共同待决共同转让的美国临时专利申请序号61/660,548的权益,并且该申请被整体地并入到本文中。
本专利技术总体涉及数字计算机系统,更具体地涉及用于选择指令(包括指令序列)的系统和方法。
技术介绍
要求处理器来处理相关或完全独立的多个任务。此类处理器的内部状态通常由在程序执行的每个特定时刻可能保持不同的值的寄存器组成。在程序执行的每个时刻,将内部状态图像称为处理器的架构状态。当架构代码执行切换成运行另一功能(例如,另一线程、进程或程序)时,然后必须保存机器/处理器的状态,使得新功能可以利用内部寄存器以构建其新状态。一旦新功能已终止,则可以丢弃其状态,并且先前情境的状态将被恢复且该执行又继续。此类切换过程称为情境切换,并且通常包括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,5481.一种乱序处理器,包括:分布式的加载队列和分布式的存储队列,分布式的所述加载队列和分布式的所述存储队列在允许对加载和存储的跨多个核心和存储器片段的乱序分派的同时保持单个程序连续语义;其中所述处理器超过所述加载队列和所述存储队列的实际物理大小限制来分配除加载和存储之外的其他指令;以及其中即使居间的加载或存储在所述加载队列和所述存储队列中不具有空间,也能够分派和执行所述其他指令。2.根据权利要求1所述的处理器,其中所述处理器内的所述多个核心中的每个核心包括加载队列和存储队列。3.根据权利要求1所述的处理器,其中所述处理器内的所述多个核心中的每个核心包括加载队列和存储队列及用于相应的加载队列和存储队列以用于避免死锁的扩展。4.根据权利要求3所述的处理器,其中所述扩展用来从导致死锁的加载或存储的点按程序顺序分配死锁的加载或存储直至所述加载队列或所述存储队列具有可用的自由条目。5.根据权利要求3所述的处理器,其中用于所述扩展的预留策略是为相应的分布式的队列的每个加载或存储预留条目。6.根据权利要求1所述的处理器,其中在检测到死锁时,实现在死锁的最早的加载或存储处的缺失预测和清刷。7.根据权利要求1所述的处理器,其中实现连续性窗口,其中在所述连续性窗口之外的未分派加载的和应小于或等于特定加载队列中的自由非预留空间的数目。8.根据权利要求7所述的处理器,其中实现动态加载分派窗口,其中确定动态加载分派窗口大小,使得在所述连续性窗口之外的所述未分派加载的和应小于或等于所述特定加载队列中的自由非预留空间的数目。9.一种计算机系统,包括:被耦合到存储器的乱序处理器,其中所述乱序处理器还包括:分布式的加载队列和分布式的存储队列,分布式的所述加载队列和分布式的所述存储队列在允许对加载和存储的跨多个核心和存储器片段的乱序分派的同时保持单个程序连续语义;其中所述处理器超过所述加载队列和所述存储队列的实际物理大小限制来分配除加载和存储之外的其他指令;以及其中即使居间的加载或存储在所述加载队列和所述存储队列中不具有空间,也能够分派和执行所述其他指令。10.根据权利要求9所述的计算机系统,其中所述处理器内的所述多个核心中的每个核心包括加载队列和存储队列...

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

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

1