用于控制推测向量运算效能的数据处理设备及方法

文档序号:9848250阅读:370来源:国知局
用于控制推测向量运算效能的数据处理设备及方法
【技术领域】
[0001]本发明关于用于控制推测向量运算效能的数据处理设备及方法。
【背景技术】
[0002]用于提高数据处理设备效能的一项已知技术是提供电路系统以支持向量运算的执行。对至少一个向量操作数执行向量运算,其中每一向量操作数包括多个向量元素。因此,向量运算的执行涉及对一个或多个向量操作数内的多个向量元素重复应用运算。
[0003]在支持向量运算的执行的典型数据处理系统中,将提供向量寄存器库以用于储存向量操作数。因此,举例而言,向量寄存器库内的每一向量寄存器可储存包括多个向量元素的向量操作数。
[0004]在高效能实施中,亦已知提供向量处理电路系统(常被称作单指令多数据(SingleInstruct1n Multiple Data; SIMD)处理电路系统),该电路系统可对向量操作数内的多个向量元素并行执行所需运算。在一替代性实施例中,标量处理电路系统仍可用以实施向量运算,但在此情况下,向量运算藉由迭代执行经由标量处理电路系统的运算而得以实施,每一迭代对向量操作数的不同向量元素进行运算。
[0005]经由使用向量运算,与等效的标量运算系列的效能相比可实现显著的效能益处。
[0006]当设法获得向量处理的效能益处时,已知设法以向量化一系列标量运算,以便将这些标量运算替换为等效的向量运算系列。例如,对于包含一系列标量指令的回路而言,可能藉由将该标量指令系列替换为等效的向量指令系列来将回路向量化,其中向量操作数包含与原始标量回路的不同迭代相关的元素以作为向量元素。
[0007]尽管如此,尽管该种方法在经由原始标量回路的所需迭代数目为预定的情况下可有效,但在迭代数目未经预定的情况下向量化该种回路更困难。特定而言,由于迭代数目未经预定,因此不能预定每一向量操作数中将需要多少向量元素。
[0008]在上述类型的一些情况下,有可能执行推测向量处理,其中推测向量元素的所需数目,及当决定所需向量元素的精确数目时稍后采取矫正措施。
[0009]K Asanovic所著标题为「向量微处理器(Vector Microprocessors)」的博士论文(伯克利学院,1998年,第116-121页)论述了对向量操作数的整体宽度执行推测,及额外追踪在推测期间发生的架构事件(例如页错误)。该种架构事件将触发异常,从而使操作系统执行异常例行例程以便解决该异常。所建议的方法记录在侦测到该种架构事件的向量宽度内的每一向量元素位置。随后,当到达所需向量元素的位置集为已知的提交(commi t)点时,每一所需向量元素位置与架构事件的此记录相比较。由于与所需向量元素位置关联的任何架构事件将防碍向量处理电路系统正确地执行向量运算,因此在提交点触发任何该种延迟异常。如若所需向量元素位置集中无一位置与架构事件关联,则更新向量长度及屏蔽,及清除架构事件的记录。
[0010]上述过程容许执行推测向量处理,同时藉由屏蔽提交点处的架构事件来确保正确运算。[0011 ]尽管如此,尽管上述方法可在执行推测向量处理运算的同时确保正确运算,但存在可能影响执行推测向量处理的益处的其他因素。如前所说,当执行推测之时,所需的迭代数目未知,及因此存在执行某些可能对设备的效能特性(例如产量或能量消耗)产生不利影响的运算的可能性,只能在稍后察出原本不需要那些运算。因此,将需要提供一机制以用于执行推测向量运算,同时管理该种推测向量处理对设备的效能特性的影响。

【发明内容】

[0012]自第一方面可见,本发明提供一种数据处理设备,该设备包括:处理电路系统,该电路系统经配置以对向量操作数执行推测向量运算序列,每一向量操作数包括多个向量元素;推测控制电路系统,该电路系统经配置以维护推测宽度指示,该推测宽度指示指示每一向量操作数中将经受这些推测向量运算的向量元素的数目,该推测宽度指示在该推测向量运算序列的执行之前被初始化至初始值;该处理电路系统经配置以在该推测向量运算序列的执行期间产生进展指示;推测控制电路系统,经进一步配置以藉由参考进展指示及推测缩减标准来侦测推测缩减条件的存在,推测缩减条件是一条件,该条件指示:相对于在推测宽度指示无缩减情况下的连续运算,推测宽度指示的缩减预期将改良数据处理设备的至少一个效能特性;推测控制电路系统进一步响应于对该推测缩减条件的侦测而缩减推测宽度指示。
[0013]藉由配置处理电路系统以在推测向量运算的序列的执行期间产生进展指示,此举容许推测控制电路系统相对于推测缩减标准(这些标准可为固定标准,或可为被储存以便由推测控制电路系统存取及可被重配置的标准)评估那些进展指示,以便决定当前推测宽度似乎对数据处理设备的所选效能特性(例如产量或能量消耗)具有显著的不利效应的情况。在侦测到该种情况时,推测控制电路系统随后经配置以缩减推测宽度指示,从而减少每一向量操作数中将经受推测向量运算的向量元素的数目。
[0014]通常情况下,进展指示将经排列以便容许推测控制电路系统辨识推测向量运算的执行对效能特性产生不利影响的任何向量元素位置。例如,每一进展指示可特定地辨识进展指示所相关的向量元素位置。
[0015]仅仅举例而言,如若进展指示辨识出在推测向量加载运算执行期间将自位于元素位置X的内存加载的特定向量元素已在系统的高速缓存阶层内的某个快取等级导致快取未中,则推测缩减标准可辨识将与该种快取未中事件相关联的预期潜时,或可直接辨识该种事件的发生指示推测缩减条件。尽管推测向量处理仍可在当前规定的推测宽度正确地继续执行,但此举可能由于因快取未中而引入的潜时而显著影响效能,及藉由在此处缩减推测宽度以排除元素位置X及更高位置可避免此潜时。随后,如若需要则可重复向量运算序列以设法针对所省略的向量元素执行向量运算,及可能在重复该向量运算序列的时间之前不会产生相同的潜时问题(例如,在该时间之前,所需数据元素可存在于高速缓存中,因而可不产生快取未中)。
[0016]由此,经由使用本发明,数据处理设备的至少一个效能特性可在执行推测向量运算的同时,藉由设法避免以特定推测宽度执行推测向量运算将对该所选的效能特性具有不利影响的情况而得以改良。
[0017]进展指示可采用多种形式。在一个实施例中,进展指示指示在推测向量运算的执行期间在处理电路系统内发生的产量影响事件。或者或此外,进展指示可指示在推测向量运算的执行期间在处理电路系统内发生的能量消耗影响事件。尽管在一个实施例中,由进展指示所指示的影响事件是对效能特性具有负面影响的事件,但在一个实施例中,影响事件亦可辨识对效能特性具有正面影响的事件,例如比预期更快地执行或消耗更少能量的特定运算。
[0018]触发进展指示的产生的事件可采用多种形式。在一个实施例中,响应于在推测向量运算的执行期间在处理电路系统内发生的微架构事件而发出进展指示中的至少一些。
[0019]如若处理器的特征、组件,或行为仅影响实施的质量(例如使处理器使用更多或更少时间或能量来执行程序)而不是实施的正确性(亦即是否正确地实施指令集架构),则处理器的特征、组件,或行为可被视作「微架构」。例如,现代处理器使用分支预测器以加快分支,使用高速缓存以加快内存读取,使用写入缓冲器以加快内存写入,使用变换旁看缓冲器以加快页表查找,及使用管线以加快指令序列的执行。这些特征全部可被视作微架构特征,因为这些特征加快执行但却不影响程序的最终输出结果。
[0020]此情况应与影响实施正确性的处理器特征、组件,或行为相反,这些特征、组件,或行为被视为「架构」。例如,现代处理器使用页表及页错误异常以实施虚拟内存,使用中断以支持上下文切换,使用算术异常以处置诸如「除以零」的算术错误条件。架构特征、组件,或行为例如藉由使额外指令被执行而产生通常会影响程序执行的架构事件。相反,微架构特征、组件,或行为产生影响微架构的行为的微架构事件,但对架构等级则不具有任何影响。这些微架构特征、组件,或行为可能例如使程序比原本情况运行稍慢,但不影响程序执行。
[0021]推测宽度指示可采用多种形式。例如,推测宽度指示可由屏蔽规定或由辨识诸如开始元素位置和/或结束元素位置的特定元素位置的一个或多个寄存器的内容规定。在一个实施例中,推测宽度指示不仅指示每一向量操作数中将经受推测向量运算的向量元素的数目,还进一步辨识每一向量操作数中将经受该推测向量运算的第一向量元素。
[0022]尽管将经受推测向量运算的向量元素的数目无需占据一系列邻接的向量元素位置,但在一个实施例中,推测宽度指示确实将每一向量操作数中将经受该推测向量运算的向量元素的数目辨识为自该第一向量元素开始的顺序向量元素的规定数目。
[0023]在一个实施例中,处理电路系统经配置以执行指令向量回路,向量回路包括定义该向量运算序列的指令及在该向量运算序列的执行之后在向量回路内的提交点处执行的至少一个评估指令,该至少一评估指令的执行使得决定所需的向量宽度。进一步而言,推测控制电路系统响应于所需向量宽度的决定以藉由参考推测宽度指示的当前值而决定该向量运算序列的执行是导致推测过度还是推测不足,并且倘若发生推测不足,则设定重复旗标以使该指令向量回路的进一步迭代得以执行。由此,推测宽度可在推测向量运算的执行期间按需要而变化,后续的推测向量运算序列的迭代按照需要而被执行以确保最终对全部所需向量元素都执行了向量运算。
[0024]在一个实施例中,在指令向量回路的进一步迭代之后,推测控制电路系统经配置以在虑及在指令向量回路的先前迭代期间经处理的向量元素数目的情况下将推测宽度指示初始化至经修正的初始值。
[0025]在一个实施例中,向量回路包括一个或多个在提交点之后待执行的非推测指令,推测控制电路系统进一步经配置以设置屏蔽值以辨识每一向量操作数中将经受由该一个或多个非推测指令定义的非推测运算的向量元素的数目。在一个实施例中,倘若发生推测不足,则此屏蔽将被设定以辨识在该提交点处存在的推测宽度的值,而倘若发生推测过度,则屏蔽将被设定以辨识该提交点所决定的所需向量宽度。
[0026]在一个实施例中,数据处理设备包括向量寄存器库,该库经配置以储存向量操作数以用于由处理电路系统存取,并且处理电路系统包括数据存取电路系统,该电路系统经配置以执行向量存取操作以便在向量寄存器库与包括至少快取储存器的一个等级的内存系统之间移动向量操作数。在该实施例中,数据存取电路系统可经配置以发出
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1