流水线式有限状态的制造方法

文档序号:6629212阅读:425来源:国知局
流水线式有限状态的制造方法
【专利摘要】本发明涉及流水线式有限状态机。一种用于控制流水线操作的系统和方法。在一个实施例中,流水线式数据通路包括多个处理级以及流水线控制器。每个处理级被配置为推进前一处理级提供的处理。流水线控制器被配置为控制处理级的操作。流水线控制器包括流水线式有限状态机。流水线式有限状态机包括多个控制级。每个控制级被配置为控制单个处理级的操作并且从前一控制级接收定义用于控制该单个处理级的控制级的状态的状态值。
【专利说明】流水线式有限状态机

【背景技术】
[0001]流水线是用于提高诸如微处理器的处理系统的性能的一种技术。流水线将指令(或操作)的执行划分为多个级(Stage),其中每个级对应于指令执行中的一个步骤。当每个级完成了给定指令的处理并且该给定指令的处理传到后续级时,该级变为可用于开始下一指令的处理。因此,通过将执行划分成多个步骤,这些步骤允许新的指令在前一指令的执行完成之前开始执行,由此,流水线提高了指令能够被执行的整体速率。
[0002]在流水线式数据通路中执行的操作在流水线层次和级层次会改变。因此,控制由流水线以及流水线的各个级所执行的操作的逻辑会是复杂的。


【发明内容】

[0003]本文公开了用于控制流水线的操作的系统和方法。在一个实施例中,处理器包括执行流水线和流水线控制逻辑。执行流水线被配置为执行指令。执行流水线包括多个顺序布置的执行级。流水线控制逻辑被配置为控制执行流水线的操作。流水线控制逻辑包括流水线式状态机。流水线式状态机包括多个顺序布置的控制级。每个控制级被配置为控制执行流水线的给定级的操作,并且生成定义后续控制级的状态的状态值。
[0004]在另一个实施例中,流水线式数据通路包括多个处理级以及流水线控制器。每个处理级被配置为推进前一处理级提供的处理。流水线控制器被配置为控制处理级的操作。流水线控制器包括流水线式有限状态机。流水线式有限状态机包括多个控制级。每个控制级被配置为控制单个处理级的操作,并且从前一控制级接收定义用于控制该单个处理级的控制级的状态的状态值。
[0005]在又一实施例中,一种方法包括在包括多个顺序的处理级的流水线式数据通路中处理数据。由处理级提供的处理包括在后续处理级中处理第一处理级的结果。该方法进一步包括由流水线式状态机控制处理级的操作。流水线式状态机包括多个顺序的控制级。每个控制级仅控制一个处理级,并且提供控制级状态值给单个后续控制级。

【专利附图】

【附图说明】
[0006]为了详细描述本发明的示例性实施例,现在将参考附图,其中:
[0007]图1示出根据各种实施例采用流水线的系统的方框图;
[0008]图2示出根据各种实施例的流水线式有限状态机的方框图;
[0009]图3示出与根据各种实施例的流水线式有限状态机一起使用的资源仲裁逻辑的方框图;
[0010]图4示出用于根据各种实施例的流水线式处理的方法的流程图;以及
[0011]图5示出用于操作根据各种实施例的流水线式状态机的方法的流程图。
[0012]符号和术语
[0013]在以下描述和权利要求中使用某些术语来指代特定的系统部件。如本领域技术人员将理解的,公司可以用不同的名称指代部件。本文件并不打算区分名称不同但功能相同的部件。在下面的讨论和权利要求中,术语“包括”和“包含”以开放式的方式使用,并且因此应解释为是指“包括,但不限于...”。同样,术语“耦合”或“耦合到”旨在表示间接的电气连接或直接的电气连接。因此,如果第一器件耦合到第二器件,则该连接可以是通过直接的电气连接,或者通过经由其他器件和连接的间接的电气连接。表述“基于”旨在表示“至少部分地基于”。因此,如果X基于Y,则X可以基于Y以及任意数量的额外因素。

【具体实施方式】
[0014]下面的讨论涉及本发明的各种实施例。尽管这些实施例中的一个或多个可能是优选的,但是所公开的实施例不应该被解释为或以其他方式用作限制本公开(包括权利要求)的范围。此外,本领域技术人员将理解,以下描述具有广泛的应用,并且任何实施例的讨论仅意味着该实施例是示例性的,并且不旨在暗示本公开(包括权利要求)的范围被限制为该实施例。
[0015]管理流水线式数据通路(例如,微处理器的执行流水线)的操作的控制逻辑会是复杂的。复杂逻辑通常被实现为有限状态机,并且在常规系统中,控制流水线式数据通路的复杂逻辑通常是由非常复杂的有限状态机来实现。替换地,在常规的实施方式中,多个相互依赖的状态机可以被应用于控制处理流水线。虽然这两种方法提供了有效的流水线控制,但是状态机的复杂性需要相对大的电路面积以及时常漫长的设计周期。该复杂性也使得状态机的修改和验证变得困难。
[0016]本公开的实施例包括通过流水线式有限状态机控制的流水线式数据通路。本文公开的流水线式有限状态机提供了经由包括多个流水线式控制级的单个状态机对执行流水线的级进行控制。每个控制级提供了对执行流水线的对应的执行级的控制。流水线式有限状态机是高度结构化的,因而比实现控制流水线式数据通路的常规状态机更易于设计和维护。与提供等同功能的常规状态机相比,流水线式有限状态机还可以需要较少的电路面积。
[0017]图1示出根据各种实施例采用流水线的处理系统100的方框图。该处理系统100可以是处理器,例如通用微处理器、微控制器、数字信号处理器或包括流水线式数据通路的其他系统。该系统100包括执行流水线106和流水线控制器102。执行流水线106包括多个连续耦合的处理级108-114。执行流水线106的各种实施例可以包括比在图1中示出的更多或更少的级。
[0018]每个执行级108-114提供处理功能,并且每个执行级110-114提供推进(further)前一级所提供的处理的处理功能。例如,在执行流水线106中,执行级0108对输入操作数执行第一操作,执行级1110可以进一步处理由执行级0108处理的结果,依此类推。由执行级108-114中的一个或多个执行的操作通过流水线控制器102控制并且基于由该流水线控制器102提供的控制信号116而变化。
[0019]流水线控制器102包括管理执行流水线106的每个执行级108-114的操作的流水线式有限状态机104。流水线式有限状态机104是一种新颖的状态机结构,其在不降低功能性的前提下减小电路面积和状态机的复杂性。
[0020]图2示出根据各种实施例的流水线式有限状态机104的方框图。流水线式状态机104包括多个顺序耦合的控制级202-208。每个控制级202-208控制流水线式数据通路中的一个级的操作。例如,控制级O 202控制处理级O 108的操作,控制级I 204控制处理级I I1的操作,控制级2 206控制处理级2112的操作,依此类推。包括在流水线式有限状态机104的实施例中的控制级的数目可以变化。例如,流水线式有限状态机104的控制级的数目可以根据由流水线式有限状态机104控制的流水线式数据通路的处理级的数目而变化。
[0021]每个控制级202-208包括状态寄存器210和执行控制逻辑214。每个控制级202-206进一步包括状态生成逻辑212。在常规的状态机中,状态寄存器保存定义该状态机的当前状态的当前状态值。当前状态值被反馈到下一个状态生成逻辑,下一个状态生成逻辑(基于该当前状态值)确定定义状态机的下一个状态的下一个状态值,并且将下一个状态值加载到状态寄存器中。因此,在常规的状态机中,状态寄存器的当前值至少部分地确定状态寄存器的下一个值。
[0022]与常规状态机相比,流水线式有限状态机104包括多个状态寄存器210,每个控制级一个状态寄存器210。每个控制级204-208的状态寄存器210耦合到前一个控制级202-206。对于每个控制级204-208,存储在状态寄存器210中的值在前一个控制级202-206中并且由前一个控制级202-206确定。因此,存储在每个状态寄存器210中的下一个状态值并非基于当前存储在状态寄存器210中的状态值,而是由前一控制级确定,与当前状态值无关。
[0023]每个控制级202-206的状态生成逻辑212确定用于相继控制级204-208的下一个状态值。也就是说,控制级202的状态生成逻辑212确定用于控制级204的下一个状态值,控制级204的状态生成逻辑212确定用于控制级206的下一个状态值,并且控制级206的状态产生逻辑212确定用于控制级208的下一个状态值。控制级的状态生成逻辑212耦合到用于该控制级的状态寄存器210,并且基于该控制级的状态寄存器210的状态值确定用于相继控制级的下一个状态值。由控制级的状态生成逻辑212生成的状态值在下一个时钟周期、下一个流水线周期等可以被传送到相继控制级的状态寄存器210。状态生成逻辑212还可以接收提供给控制级的输入信号,并且基于接收到的输入信号确定用于相继级的下一个状态值。例如,在执行流水线106是微处理器流水线的实施例中,输入信号可以从指令寄存器216提供。因此,输入信号可以指定由控制级控制的执行级中正在处理哪条指令,并且相应的,指定在下一个流水线周期期间在相继级中将处理哪条指令。到状态生成逻辑212的输入信号还可以包括由各种数据通路资源或流水线式数据通路外部的资源提供的信号。例如,由资源生成的数据总线就绪信号或其他信号可以由状态产生逻辑212接收作为输入信号并且影响流水线式数据通路中的指令执行。
[0024]每个控制级202-208的执行控制逻辑214还耦合到控制级的状态寄存器210。执行控制逻辑214生成控制信号116,控制信号116控制由耦合到该控制级的处理级执行的操作。执行控制逻辑214基于存储在状态寄存器210中的状态值确定该处理级将执行哪些操作。
[0025]在流水线式系统中,当流水线的不同级试图同时访问同一资源时,会发生冲突或危险。本文所公开的处理系统的实施例可以包括仲裁逻辑,该仲裁逻辑与流水线式状态机104结合操作以解决资源冲突。图3示出与根据各种实施例的流水线式有限状态机104 —起使用的资源仲裁逻辑的方框图。在图3中,多个资源仲裁器302耦合到流水线式有限状态机104的每个控制级202-208。每个资源仲裁器302可以管理对单个资源或者多个资源的访问。资源仲裁器302所管理的进行访问的资源可以是,例如寄存器、计算单元(例如,ALU)、数据通路多路复用器、存储器、外围设备等。
[0026]每个控制级202-208使请求信号304有效,以请求对资源的访问。请求信号304由管理对该资源的访问的资源仲裁器302接收。资源仲裁器302确定请求的控制级是否能够被授权(grant)对资源进行访问,并且如果访问能够被授权给请求的控制级,则资源仲裁器302使授权信号有效,该授权信号通知该请求的控制级这个授权的访问请求。如果访问请求没有被授权,则流水线式有限状态机104可以将流水线式数据通路中的一个或多个级的操作挂起,直到对资源的访问得到授权。
[0027]资源仲裁器302可以基于各种因素将用于资源访问的冲突请求区分优先级。例如,优先级可以基于将控制级202-208连接到每个资源仲裁器302的资源请求线的输入连接的顺序设定。替换地,用于每个控制级202和/或每个资源请求的优先级值可以被永久地或可编程地记录在资源仲裁器302中,或者由该请求的控制级结合资源请求来提供。资源仲裁器302可以将对资源的访问授权给最高优先级的请求的控制级202-208。
[0028]图4示出用于根据各种实施例的流水线式处理的方法400的流程图。虽然为方便起见按顺序描绘,但是至少一些所示的动作可以以不同的顺序来执行和/或并行地执行。此外,一些实施例可以只执行某些所示的动作。
[0029]在方框402中,执行流水线106正在运行。执行流水线的多个处理级正在同时处理数据,并且每个相继处理级正在朝着完成推进前一级所提供的处理。
[0030]在方框404中,执行流水线106以及执行流水线106中的多个处理级正在由流水线式有限状态机104控制。流水线式有限状态机104包括多个控制级。控制级中的一个对应于该执行流水线106的每个处理级并且控制它。控制每个控制级的操作的状态值由前一个控制级的状态生成逻辑设定。
[0031]图5示出用于操作根据各种实施例的流水线式状态机104的方法的流程图。虽然为方便起见按顺序描绘,但是至少一些所示的动作可以以不同的顺序来执行和/或并行地执行。此外,一些实施例可以只执行某些所示的动作。方法500的操作可以作为方法400的方框404的操作的一部分执行。
[0032]在方框502中,流水线式有限状态机104的每个控制级(其耦合到相继控制级)确定用于该相继控制级的下一个状态值。下一个状态值可以根据生成该下一个状态值的控制级的当前状态值来生成。下一个状态值也可以基于由生成该下一个状态值的控制级所接收的输入信号值和/或输入值(例如,指令标识符)。
[0033]在方框504中,流水线式有限状态机104的生成用于相继控制级的下一个状态值的每个控制级将该下一个状态值传送到相继控制。所传送的下一个状态值被存储在接收控制级的状态寄存器210中,并且用作引导接收控制级的操作的状态值。
[0034]在方框506中,流水线式有限状态机104的每个控制级基于存储在该控制级的状态寄存器210中的状态值确定在由该控制级管理的处理级中将执行哪个(些)操作。该操作确定也可以基于由该控制级接收到的输入信号。
[0035]在方框508中,响应于在方框506中要执行的(多个)操作的确定,每个控制级将控制信号驱动到对应的处理级,并且该处理级按控制信号所指示地执行在方框506中确定的(多个)操作。
[0036]在方框510中,每个控制级确定执行流水线之外的资源是否要被访问,作为对应的流水线级执行的(多个)操作的一部分。资源可以是共享的寄存器、共享的计算单元(例如,ALU)、共享的数据通路多路复用器、共享的存储器、共享外设等。如果资源要被访问,则该控制级将资源请求发给控制对该资源的访问的资源仲裁器302。资源仲裁器302确定对资源的访问是否将被授权给请求的控制级,并且如果访问将被授权,则资源仲裁器使到请求的控制级的资源授权信号有效。响应于资源请求而没有接收到资源确认信号在下一个状态确定中可以是因素。
[0037]以上讨论意在说明本发明的原理和各种实施例。一旦上述公开被完全理解,许多变化和修改对本领域技术人员将变得显而易见。意图在于随附的权利要求被解释为包含所有这样的变化和修改。
【权利要求】
1.一种处理器,其包括: 执行流水线,其被配置为执行指令,所述执行流水线包括多个顺序布置的执行级;以及 流水线控制逻辑,其被配置为控制所述执行流水线的操作,所述流水线控制逻辑包括: 流水线式状态机,其包括多个顺序布置的控制级,每个控制级被配置为: 控制所述执行流水线的给定级的操作;以及 生成定义后续控制级的状态的状态值。
2.根据权利要求1所述的处理器,其进一步包括耦合到所述控制级的资源仲裁逻辑,所述资源仲裁逻辑被配置为通过解决由所述流水线控制逻辑的控制级发出的冲突的资源访问请求,确定哪一个控制级被授权访问资源。
3.根据权利要求1所述的处理器,其中每个控制级包括: 状态寄存器;以及 级控制逻辑,其被配置为基于由所述状态寄存器提供的状态值生成用于所述后续控制级的状态值。
4.根据权利要求3所述的处理器,其中所述级控制逻辑被配置为基于由所述状态寄存器提供的状态值: 确定将由所述执行流水线的所述给定级执行的操作;以及 生成使所述执行流水线的所述给定级执行该操作的信号。
5.根据权利要求3所述的处理器,其进一步包括耦合到所述控制级的资源仲裁逻辑,所述资源仲裁逻辑被配置为解决由所述执行流水线的不同级发出的冲突的资源分配请求;其中每个控制级的级控制逻辑耦合到所述仲裁逻辑;其中所述级控制逻辑被配置为将资源请求信号提供给所述资源仲裁逻辑,并且其中所述资源仲裁逻辑被配置为将资源访问授权信号提供给所述级控制逻辑。
6.根据权利要求3所述的处理器,其中对于每个控制级,提供给所述状态寄存器的下一状态值总是与由所述状态寄存器提供的当前状态值无关。
7.根据权利要求3所述的处理器,其中给定控制级的级控制逻辑被配置为除了由所述给定控制级的状态寄存器提供的状态值之外,还基于由所述给定控制级接收到的输入信号的值来生成用于所述后续控制级的状态值。
8.根据权利要求7所述的处理器,其中所述输入信号是由耦合到所述给定控制级的指令寄存器提供的指令。
9.一种流水线式数据通路,其包括: 多个处理级,每个处理级被配置为推进前一个处理级提供的处理;以及 流水线控制器,其被配置为控制所述处理级的操作,所述流水线控制器包括: 流水线式有限状态机,其包括多个控制级,其中每个控制级被配置为: 控制所述处理级中的单个处理级的操作;以及 从前一控制级接收状态值,所述状态值定义用于控制所述处理级中的该单个处理级的控制级的状态。
10.根据权利要求9所述的流水线式数据通路,其中每个控制级包括: 状态寄存器;以及 级控制逻辑; 其中所述状态寄存器耦合到所述前一控制级的级控制逻辑,并且所述前一控制级的级控制逻辑被配置为生成状态值以便存储在所述状态寄存器中。
11.根据权利要求10所述的流水线式数据通路,其中所述前一控制级的级控制逻辑被配置为基于所述前一控制级的状态寄存器的状态值输出生成所述状态值。
12.根据权利要求11所述的流水线式数据通路,其中所述前一控制级的级控制逻辑进一步被配置为基于由所述前一控制级接收到的输入信号的值生成所述状态值。
13.根据权利要求9所述的流水线式数据通路,其进一步包括耦合到所述控制级的资源仲裁逻辑,所述资源仲裁逻辑被配置为解决由所述流水线控制器的不同控制级发出的冲突的资源分配请求。
14.根据权利要求13所述的流水线式数据通路,其中每个控制级被配置为通过使到所述资源仲裁逻辑的资源请求信号有效来请求对资源的访问,并且其中所述资源仲裁逻辑被配置为将资源请求信号区分优先级,并且基于该优先级,通过使到选定的控制级的资源分配确认信号有效来将对该资源的访问授权给所述选定的控制级。
15.根据权利要求9所述的流水线式数据通路,其中给定控制级的下一个状态值不是基于存储在所述给定控制级中的当前状态值来确定的。
16.—种方法,其包括: 处理流水线式数据通路中的数据,所述流水线式数据通路包括多个顺序的处理级,其中由所述处理级提供的处理包括在后续处理级中处理前一处理级的结果;以及 由流水线式状态机控制所述处理级的操作,其中所述流水线式状态机包括多个顺序的控制级,每个控制级仅控制所述处理级中的一个,并且提供状态值给单个后续控制级。
17.根据权利要求16所述的方法,其进一步包括 通过每个控制级确定用于所述流水线式状态机的下一个顺序级的状态值; 将所述状态值传送到仅控制所述流水线式状态机的所述下一个顺序级的状态寄存器; 通过所述流水线式状态机的下一个顺序级,基于传送到所述状态寄存器中的状态值来确定将由所述下一个顺序级控制的处理级执行的操作; 通过所述处理级执行所确定的操作。
18.根据权利要求17所述的方法,其中确定用于下一个顺序级的状态值包括基于存储在生成所述状态值的所述控制级的状态寄存器中的当前状态值来生成所述状态值。
19.根据权利要求17所述的方法,其中确定用于下一个顺序级的状态值包括基于由生成所述状态值的所述控制级接收到的输入信号来生成所述状态值。
20.根据权利要求16所述的方法,其进一步包括: 基于请求对资源的访问的多个控制级来确定所述流水线式数据通路中的哪一个控制级被授权访问该资源; 基于该确定将对该资源的访问授权给所述控制级之一。
【文档编号】G06F9/38GK104516718SQ201410521142
【公开日】2015年4月15日 申请日期:2014年9月30日 优先权日:2013年10月7日
【发明者】C·温克, M·克鲁格尔, M·科斯勒 申请人:德克萨斯仪器德国股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1