流水线安排的处理器方法和电路技术

技术编号:2855989 阅读:169 留言:0更新日期:2012-04-11 18:40
一种在具有深度p的流水线执行单元中执行指令流的方法,包括:    加载指令流;    探测在已加载的指令流中指令的迭代;    交叉在流水线中的指令的实例的p流,以致流水线为实例的p流提供存储介质;    探测迭代的结束;和    在所有的程序化的迭代结束后组合从p流获得的结果。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的
技术介绍
本申请是关于流水线数据处理器,包括数值信号处理器(DSPs)和通用处理器。本申请尤其与执行单元采用流水线技术的处理器相关。流水线技术是一种处理器架构技术,通过使处理器能够平行的实施多个动作来全面增强总处理能力。流水线技术将流中的各个指令的执行分为不同阶段和步骤。各阶段的输出结果就是下一阶段的输入数据,因为在流中临近指令不同阶段被平行的处理,增加了操作的频率和总处理能力。处理器中所有的功能单元能够被流水线安排在不同的深度中为了达到总处理能力的最大提高,更进一步参考“流水线”在本文中指的是流水线仅出现在用于计算的执行单元中。深度流水线操作,是将各个指令分成很多阶段,因此开始按顺序执行这些指令,增加并行性和因此增加总处理能力。然而深度流水线操作也有成本。举例说明深度流水线操作的一种成本为当指令顺序需要改变控制时发生的。改变控制需要所有的指令进入到流水线中,这些指令可能从流水线被部分的运行转储清除。导致失去了由使用流水线得到的效率。例如,使用十段深度流水线,十个指令在任何时间点上驻留于流水线上。因此,当控制中的变化产生时,所需的控制的改变之前的这十个指令所完成的工作丢失。如果第二指令依靠第一指令的操作数,接下来这种依存关系使得停止执行流水线,如下所述;第一指令必须在第二指令被载入流水线前完成。当第一指令完成了,第二指令有权使用所需的操作数并且被载入到流水线中。根据流水线的深度不同其停止的影响程度也不同。特别是,并且在数字信号处理中常见的是,例子是当交互操作被实施时深度流水线操作的前述的成本会升高。交互操作是那些需要指令的操作数定位也是指令结果的目的文件。迭代是交互操作的执行操作。数值信号处理常常包括交互操作,例如求总数的和。重复执行的指令指定的交互操作形成了一个类似于上面所述的第一和第二指令的模式。在这个模式里,被重复的指令的第一实例作为第一指令,如上,并且被重复的指令的第二实例作为第二指令。这样,交互操作的结果导致大量的,可能的长的,流水线的停止。这个问题已经为本领域技术人员所知,已经实施了大量的解决方法,但是每个方法都有它自身的缺点。一个被提议的解决方法是软件时序安排,描述如下。使用软件时序安排,软件被设计为独立启动交互操作的第一实例,同一交互操作的第二实例跟随其后,但是带有独立的数据。然后,两个实例独立进行,每个都使用并不存在于流水线中的操作数据。交互操作最后的实例接下来承担独立的计算流的重新组合的成本。为了优化具有特定深度的特定流水线的最佳使用,独立启动的实例数量要与特定的深度相同。软件时序安排有缺陷,因为所有独立实例需要的操作数都需要被存放在寄存器文件中,或其他的可达到需要时即可使用的地方,这样就比不带有软件时序安排的交互需要更多的系统资源。不带有软件时序安排的只需两个寄存器,存储器和包含新的操作数的寄存器。采用软件时序时,每个交互操作的实例都需要数值存储寄存器。软件时序安排另一个问题是为特定最初处理器使用这种方法设计的软件与的将来快速变型的处理器不兼容,或者与初始处理器使用的指令集的兼容超集不兼容,以及或者可以与初始软件兼容,但是与不同深度的流水线不兼容。使用加深流水线的深度来开发和制造更快的现有的处理器版本在处理器销售商中是很普遍的。传统执行单元发布阶段的操作在图5的流程图中显示。发布阶段是将控制指令配给到流水线中的阶段。发布阶段在互锁的流水线处理器中执行一系列开始于决定是否流水线被停止501的步骤,由于独立指令,如下面描述的。如果执行单元没有被停止,接下来下一个指令被提取502。否则,如果执行单元在501被停止,当前指令将保持503。在另外情况下,指令的依存关系将被发布并接下来被评估504。如果一个或更多的操作数在指令中依靠前一个指令的结果,接下来数据依存关系被称为存在。如果当前指令被发现不是依存的505,接下来当前指令被发布506。发布阶段循环接下来结束。如果但是指令在505被发现是依存的,接下来执行单元被停止507并且发布阶段循环结束。被停止或不停止的执行单元的状态将会被一种合适的方法存储起来,例如在标志寄存器中设置特征位。在处理器应用在非互锁的流水线中时,发布阶段不会实施任何上面详细描述的依存关系的检查。仅仅按顺序发布各个指令,进入执行单元的流水线。这种处理器的软件通常这样编辑,任意一对相互依存的指令被大量的不相关的指令分隔,例如NOP(无操作)指令,如对于任意给定的指令的操作数被保证在指令需要时准备好。通常,编译器程序为这样的处理器产生指令。传统的执行单元,如图6中显示的,由具有多个阶段的执行流水线的一个阶段反馈,传统执行单元仅包括一个操作单元,例如加法器601,寄存器文件602和控制器603。控制器603依据上面讨论的图5中的流程图中的原则指挥执行单元。本专利技术的概述根据本专利技术实施例的各个方面,在深度p的流水线中的执行单元执行指令流的方法,包括加载指令流;探测在已加载指令流中的指令迭代;在流水线中交叉指令的实例的p流,以致流水线为实例的p流提供存储介质;探测迭代的结束;并且在所有程序的迭代结束后组合从p流获得的结果。流水线执行单元的深度可能是任意的。该方法可能进一步包括为探测到的指令的迭代使互锁失效。在该方法的变化中,探测可以进一步包括在带有相同的操作数和目标的迭代指令的基础上识别指令的迭代。例如,指令的迭代可能完成算术累加,或者可能完成算术乘积。根据本专利技术实施例的另外一方面,计算电路包括可以保存体现操作数和交互操作的结果的数值的寄存器;多路(复用)器带有被连接的用于接收来自存储器的操作数的第一输入、为了交互操作被连接到单位元数值源的第二输入,和输出;以及操作电路带有连接的接收来自多路器输出的数值输入,和被连接的将结果返回存储器的输出。该电路可能进一步包括被构造和排列为用来探测迭代操作的控制电路。例如,操作电路可能包括加法器或多路器。控制电路进一步包括程序装置,程序装置被构造和排列为用来在流水线中交叉指令的实例的p流并且在所有程序化的迭代结束后组合从p流获得的结果。电路可能被构造以至于探测进一步包括在带有相同操作数和目标的迭代的指令的基础上识别指令迭代。例如,电路可能够进一步被构造以达到指令的迭代完成算术累加或完成算术乘积。仍根据本专利技术的实施例的另一方面,在流水线安排的执行单元中运行指令流的方法,包括为执行单元提供指令流,作为不带有软件时序排列的自然顺序排列的指令序列;在指令序列中探测指令的迭代;将一个以上的迭代指令的实例引进流水线安排的执行单元的流水线中,每个迭代指令的实例都带有不同的数据;以及在流水线中保存一个以上的实例中的每一个的结果。探测可以进一步包括在带有操作数和目标相同的迭代的指令的基础上识别指令的迭代。方法进一步包括使被探测的指令迭代的互锁失效。例如,指令迭代可能完成算术累加或可能完成算术乘积。还是根据本专利技术的另一个实施例,一种在流水线安排的执行单元中运行指令流的方法,包括在指令流中探测指令的迭代;独立的运行一个以上的迭代指令的流,而不在流水线安排的执行单元之外储存中间结果;重新组合独立的被执行的一个以上的流来提供单独的结果;其中独立执行和重新组合仅使用一个目标寄存器和一个临时寄存器。本方法进一步包括引入操作数其数值对于在开始阶段的本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在具有深度p的流水线执行单元中执行指令流的方法,包括加载指令流;探测在已加载的指令流中指令的迭代;交叉在流水线中的指令的实例的p流,以致流水线为实例的p流提供存储介质;探测迭代的结束;和在所有的程序化的迭代结束后组合从p流获得的结果。2.根据权利要求1中所描述的方法,其中p至少为2。3.根据权利要求1中所描述的方法,进一步包括使指令中被探测的迭代的互锁功能失效。4.根据权利要求1中所描述的方法,进一步包括在被迭代的带有相同的操作数和目标的指令基础上识别指令的迭代。5.根据权利要求4中所描述的方法,其中指令的迭代完成算术的累加。6.根据权利要求4中所描述的方法,其中指令的迭代完成算术的乘积。7.计算电路包括寄存器,寄存器能够保存表现为操作数和交互操作的结果的数值;多路器,多路器带有被连接的、用于接收来自寄存器的操作数的第一输入,和被连接到用于交互操作的等同数值的源上的第二输入,和输出;和操作电路,操作电路带有被连接的、用来接收多路器的输出的输入,和被连接的、用来将结果返回寄存器的输出。8.根据权利要求7中所描述的电路,进一步包括控制电路被构造和排列为用来探测交互操作。9.根据权利要求7中所描述的电路,操作电路进一步包括加法器。10.根据权利要求8中所描述的电路,操作电路进一步包括乘法器。11.根据权利要求8中所描述的电路,控制电路进一步包括程序装置,程序装置被构造和排列为用来在流水线中交叉指令的实例的p流并且在所有程序化的迭代结束后组合从p流获得的结果。12.根据权利要求11中所描述的电路,其中探测进一步包括在带有相同的操作数和目标的迭代指令的基础上识别指令的迭代。13.根据权利要求12中所描述的电路,其中指令的迭代完成算术的累加。14.根据权利要求12中所描述的电路,其中指令的迭代完成算术的乘积。15.一种在流水线执行单元中执行指令流的方法,包括为执行单元提供指令流,作为不带有软件时序排列的自然顺序排列的指令序列;在指令序列中探测指令的迭代;将一个以上的迭代指令的实例引进流水线安排的执行单元的流水线中,每个迭代指令的实例都带有不同的数据;以及在流水线中保存一个以上的实例中的每一个的结果。16.根据权利要求15中所描述的方法,其中探测进一步包括在带有相同的操作数和目标的迭代指令的基础上识别指令的迭代。17.根据权利要求16中所描述的方法,进一步包括使指令中被探测的迭代的互锁功能失效。18.根据权利要求16中所描述的方法,其中指令的迭代完成算术的累加。19.根据权利要求16中所描述的电路,其中...

【专利技术属性】
技术研发人员:艾比希吉特·吉丽
申请(专利权)人:模拟装置公司
类型:发明
国别省市:

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

1