利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法_2

文档序号:9493655阅读:来源:国知局
践本发明的实施例。在其他情况下,为了避免不必要地使本说明难以理解,公知的结构、元素或连接方式被省略或没有特别详细描述。
[0053]说明书中涉及到的“一个实施例”或“实施例”意图表示连同实施例描述的特定的特征、结构或特点包括在本发明的至少一个实施例中。短语“在一个实施例中”在说明书中不同位置的表现并不一定全部涉及相同的实施例,也并不是与其他实施例互斥的单独的或可替代的实施例。而且,描述了在一些实施例中展示并且在其他实施例中未展示的多个特征。类似地,描述了一些实施例要求但其他实施例不要求的多个要求。
[0054]详细说明的一些部分,其在下面跟随,以程序、步骤、逻辑块、过程以及对计算机内存中的数据位操作的其他符号表现形式展示。这些说明以及表现是数据处理领域技术人员用于将他们的工作内容更加有效地传递给本领域其他技术人员的手段。程序、计算机执行的步骤、逻辑块、过程等,在此处,并且一般被设想为步骤的有条理的顺序或者导向想要的结果的指令。步骤就是要求物理量的物理操作的那些。通常,尽管不是必须的,这些物理量采取计算机可读存储介质的电或磁信号的形式并且能够被存储、转移、组合、比较,并且否则在计算机系统中被操控。主要由于通用性,已经证实有时作为位、值、元件、符号、特点、术语、号码等等提及这些信号。
[0055]然而,应该在思维中具有所有这些以及类似的术语都与合适的物理量相关联,并且仅仅是用于这些物理量的便签。除非特别说明,否则如下面的讨论很显然,应领会,遍及本发明,利用术语例如“处理”或“访问”或“写入”或“存储”或“复制”等的讨论涉及计算机系统或类似的电子计算设备的动作或过程,类似的电子计算设备将计算机系统的寄存器以及内存以及其他计算机可读介质中表现为物理(电子)量的数据操纵并转换成类似地表现为计算机系统内存或寄存器或其他这样的信息存储、传输或显示设备中的物理量的其他数据。
[0056]图1示出了利用寄存器模板将指令分组成块并且跟踪指令间的依赖关系的过程的总体示意图。
[0057]图1示出了具有块头和块正文的指令块。该指令块由一组指令创造。该指令块包括封装该组指令的实体。在微处理器的本实施例中,抽象度被提升到指令块而不是单个指令。处理指令块用于分派而不是单个指令。每个指令块用块号作标记。机器的乱序管理工作因此被大大简化。一个关键特征是找到管理要处理的大量指令的方法,而不大量增加机器的管理开销。
[0058]本发明的实施例通过执行指令块、寄存器模板和继承向量实现了这个目标。在图1示出的指令块中,指令块的标题列出并概述了指令块的指令的所有源和目标以及那些源来自何处(例如,来自哪个指令块)。该标题包括更新寄存器模板的目标。包括在标题中的源将由存储在寄存器模板中的块号联系在一起。
[0059]乱序处理的指令数目决定了乱序机器的管理复杂程度。更多的乱序指令导致更大的复杂程度。源需要在处理器的乱序调度窗口中与先前指令的目标进行对比。
[0060]如图1所示,寄存器模板具有针对每个寄存器的从RO到R63的字段。各指令块将它们各自的块号写入与指令块目标对应的寄存器模板字段。每个指令块从寄存器模板中读取表示它的寄存器源的寄存器字段。当指令块退隐(retire)并将它的目标寄存器内容写入寄存器文件时,它的块号从寄存器模板中擦除。这意味着那些寄存器可以作为来自寄存器文件本身的源读取。
[0061]在本实施例中,无论何时分配指令块,寄存器模板都在机器的每个循环进行更新。因为产生了新的模板更新,寄存器模板的先前的快照被存储在阵列(例如,图2中示出的寄存器视图)中,每个指令块一个阵列。该信息被保留,直到对应的块退隐。这允许机器从误预测中恢复并且非常快速地刷新(例如,通过获得最后已知的依赖状态)。
[0062]在一个实施例中,在寄存器视图中存储的寄存器模板可以通过仅存储连续快照间的增量(快照间增加的变化)而进行压缩(因此节约存储空间)。用这种方法,机器得到缩小的寄存器视图。进一步的压缩可以通过仅存储具有分支指令的指令块的模板而得到。
[0063]如果需要恢复点而不是分支误预测,则可以首先在分支恢复点得到恢复,随后可以脱离分配指令(但不执行它们)而重建状态,直到该机器在恢复点之后完成寻找。
[0064]应注意到,在一个实施例中,此处使用的术语“寄存器模板”与在早期提交的共同转让的、由Mohammad Abdallah于2012年3月23日提交的专利申请“EXECUTINGINSTRUCT1N SEQUENCE ⑶DE BLOCKS BY USING VIRTUAL ⑶RES INSTANTIATED BYPARTIT1NABLE ENGINES”中描述的术语“继承向量”是同义词,其全部并入此处。
[0065]图2示出了根据本发明的一个实施例的,寄存器视图、源视图以及指令视图的总体示意图。此图示出了调度器体系架构(例如,具有源视图、指令视图、寄存器视图等)的一个实施例。通过组合或分离一个或多个上述引用的结构实现相同功能的调度器体系架构的其他实现方式是可能的。
[0066]图2图解了支持寄存器模板操作和机器状态保持的功能实体。图2的左侧示出了寄存器模板TO到T4,箭头表示从一个寄存器模板/继承向量到另一个寄存器模板/继承的信息的继承。寄存器视图、源视图以及指令视图的每个都包括用于存储关于指令块信息的数据结构。图2也示出了具有块头的示范性的指令块以及指令块如何包括机器的寄存器的源和目标。关于由指令块引用的寄存器的信息被存储在寄存器视图数据结构中。关于由指令块引用的源的信息被存储在源视图数据结构中。关于由指令块引用的指令自身的信息被存储在指令视图数据结构中。寄存器模板/继承向量自身包括存储了由指令块引用的依赖和继承信息的数据结构。
[0067]图3示出了根据本发明的一个实施例的、说明了示范性的寄存器模板以及通过寄存器模板中的信息如何对源视图进行填充的示意图。
[0068]在本实施例中,应注意到,源视图的目标是确定何时可以分派特定的指令块。当指令块被分派时,它向所有其余指令块广播它的块号。其他指令块(例如,比较)的源的任何匹配使得设置就绪位(例如,或者一些其他类型的指示器)。当设置了所有就绪位(例如,“与”门),准备分派指令块。基于它们依赖的其他指令块的准备就绪分派指令块。
[0069]当多个指令块准备好被分派,先于较新的指令块选择最旧的指令块进行分派。例如,在一个实施例中,找到第一电路可以用于基于与提交指针的接近度找到最旧的指令块并且基于与提交指针的相对接近度找到下一个指令块(例如,根据每个指令块的就绪位工作)。
[0070]仍然参考图3,在这个例子中,在到达指令块20的检查时创造寄存器模板快照。如上所述,寄存器模板具有每个寄存器从RO到R63的字段。指令块将它们各自的块号写入对应于指令块目标的寄存器模板字段中。每个指令块从寄存器模板中读取表示它的寄存器源的寄存器字段。第一个数字是写入寄存器的指令块并且第二个数字是该指令块的目标数字。
[0071]例如,当到达指令块20,它读取寄存器模板的快照并且在寄存器模板中查找它自己的寄存器源,以确定写入它的每个源的最新的指令块,并且根据其目标对之前的寄存器模板快照进行的更新来填充源视图,下一个指令块将用它们自己的目标更新寄存器模板。这在图3的底部左侧示出,在此指令块20填充它的源:源1、源2、源3,一直到源8。
[0072]图4示出了说明了源视图内依赖广播的第一实施例的示意图。在此实施例中,每栏包括指令块。当指令块被分派时,它在它的源对块有依赖关系的所有那些块的栏中(例如,通过写O)进行掩膜。当任何其他指令块被分派时,它的块号跨与该指令块有关的确切的栏被广播。应注意到,写入I是默认值,表示那个指令块上没有依赖关系。
[0073]当指令块中的所有就绪位准备就绪,该块被分派并且它的块号向所有其余的指令块广播。该块号与存储在其他指令块的源中的所有号码进行比较。如果存在匹配,则设置该源的就绪位。例如,如果在源I上广播的块号等于11,则设置指令块20的源I的就绪位。
[0074]图5示出了说明了源视图内依赖广播的第二实施例的示意图。相对于由指令块组织,该实施例由源组织。这由贯穿源视图数据结构的源SI直到S8示出。以类似于上面图4描述的方式,在图5的实施例中,当指令块中的所有就绪位准备就绪,该指令块被分派并且它的块号向所有其余的指令块广播。该块号与存储在其他指令块的源中的所有号码进行比较。如果存在匹配,则设置该源的就绪位。例如,如果在源I上广播的块号等于11,则设置指令块20的源I的就绪位。
[0075]图5的实施例还示出了该比较如何仅在提交指针和分配指针间的指令块上进行。所有其他指令块都无效。
[0076]图6示出了根据本发明的一个实施例的、说明了选择准备就绪的指令块用于从提交指针开始的分派以及广播对应的端口分配的示意图。源视图数据结构在图6的左侧示出。指令视图数据结构在图6的右侧示出。选择器阵列在源视图和指令视图之间示出。在这个实施例中,选择器阵列通过四个分派端口 Pl到P4在每个循环中分派四个指令块。
[0077]如上所述,用于从提交指针卷绕到分配指针选择指令块用于分派(例如,尝试首先分派较旧的指令块)。选择器阵列用于找到从提交指针开始的最早准备好的四个指令块。可取的是分派最早准备好的指令块。在一个实施例中,选择器阵列可以通过利用加法树结构实现。这将在下面的图7中说明。
[0078]图6还示出了选择器阵列如何耦合至穿过指令视图中的条目的四个端口的每一个。在这个实施例中,随着端口使能的端口耦合,使得四个端口中的一个被激活,并且针对该指令视图条目,向下穿过到达分派端口以及到达执行单元上。此外,如上所述,被分派的指令块通过源视图往回广播。用于分派的选择的指令块的块号往回广播(达到4个)。这在图6的更右侧示出。
[0079]图7示出了根据本发明的一个实施例的、用于实现图6中描述的选择器阵列的加法器树结构。描述的加法器树实现了选择器阵列功能。加
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1