节省资源的硬件环路的制作方法

文档序号:6475855阅读:280来源:国知局
专利名称:节省资源的硬件环路的制作方法
背景在设计可编程处理器(诸如数字信号处理器(DSP)系统)时,两竞争设计目标是处理速度和功耗。常见处理器包括设计为提高软件指令的执行速度的各种硬件。然而,附加硬件通常增加处理器的功耗。
提高可编程处理器的速度的一种技术是“硬件环路”,硬件环路可以是设计成加速环路结构内软件指令的执行的专用硬件。硬件环路可通过把指令高速缓存在本地寄存器中来减少用来执行软件环路的时钟周期,从而降低多次从存储设备或指令高速缓存取同一指令的需要。
附图简述

图1是说明根据本发明的一实施例自适应的可编程处理器的例子的框图。
图2是说明根据本发明的一实施例的流水线的框图。
图3是说明根据本发明的一实施例装入早期寄存器的示例过程的流程图。
图4是说明根据本发明的一实施例的一或更多流水线的有效使用的框图。
图5是说明根据本发明的一实施例用环路建立指令来确定早期寄存器值的例子的流程图。
图6是说明硬件环路单元的一实施例的电路框图。
图7是说明根据本发明的一实施例的硬件的再使用的流程图。
发明详述图1是说明根据本发明实施例的设置成支持有效硬件环路的可编程处理器2的框图。处理器2可包括向流水线4发送控制信号的控制单元6。控制单元6可包括促进快速硬件环路8而不大大增加处理器2的功耗。
为支持硬件环路,处理器2可通过设定环路的进入和退出条件支持启动硬件(诸如硬件环路单元7)的环路建立指令。进入和退出条件可由环路条件(顶、底和计数)定义。顶条件可定义环路的第一指令(顶)。底条件可定义环路的最后指令(底)。而计数条件可定义环路的许多迭代。
硬件环路的进入可出现于第一“顶匹配”。当程序计数器(PC)指向环路的顶指令时,出现顶匹配。硬件环路的退出可出现于最后“底匹配”。当程序计数器(PC)指向环路的底指令时,出现底匹配。
通过在第一顶匹配启动计数并在每个底匹配减少计数,硬件可跟踪何时遭遇最后底匹配。这样,环路条件顶、底和计数可定义硬件环路的进入和退出条件。
处理器2可包括一或更多流水线4及一控制单元6。作为示例,流水线4可包括一或更多系统流水线、一或更多数据地址生成流水线、一或更多执行单元流水线及为特定实现所需的一或更多附加流水线。控制单元6可控制在时钟周期期间指令和/或数据经流水线4的流动。例如,在指令处理期间,控制单元6可指导流水线的各种组件对指令解码并正确执行相应的操作包括,例如,将结果写回存储器。
指令可装入一或更多流水线4的第一阶段并通过后续阶段处理。一阶段可与其他阶段并行处理。数据在系统的周期期间经过流水线4的阶段间。指令的结果快速承接地出现于流水线4的端点。
图2是说明根据本发明一实施例的一示例流水线的框图。流水线10有促进在单个时钟周期期间的多指令执行的多阶段。在流水线10中,指令在第一时钟周期期间进入取指令(IF)阶段12。指令在后续时钟周期期间沿流水线继续。通常,另一指令在后续时钟周期期间进入IF阶段12,然后在后续时钟周期期间沿流水线继续。类似地,附加指令分别在后续时钟周期期间进入IF阶段12。流水线中的阶段数可定义流水线同时服务的指令数。
流水线的不同阶段可如下工作。指令在IF阶段期间由取单元13取并在DEC阶段14期间从指令寄存器15解码。在AC阶段18期间,一或更多数据地址生成器19计算用来执行操作的存储器地址。数据地址生成器19含有一或更多算术逻辑单元(ALU)以促进计算。
在执行阶段(EX 1至EX n)22A至22N期间,执行单元23和29执行特定操作,诸如添加或倍增两数目。执行单元可含有特殊的硬件包括,例如,一或更多ALU浮点单元(FPU)和桶形移位器,来执行这些操作,尽管本发明的范围不限于该方面。多种数据应用于执行单元,诸如数据地址生成器生成的地址、从存储器检索的数据或从数据寄存器检索的数据。在写回阶段(WB)30期间,结果写入存储器位置或流水线外部的数据寄存器或诸如体系结构寄存器32之类的流水线中的数据寄存器。流水线10的阶段包括一或更多存储电路(诸如触发器)用来存储数据。
如上所述,处理器2支持环路建立指令。环路建立指令通过将硬件环路的边界(例如,顶和底)写入体系结构寄存器32启动硬件环路。环路建立指令也可启动体系结构寄存器32中的计数,显示将要完成的环路的次数。另外,环路建立指令定义偏置,显示在到达环路的顶之前而在环路建立指令之后的指令的数目。启动硬件环路后,硬件环路在流水线10中工作直到环路的退出条件得到满足(例如,计数为0的底匹配)。
一旦指令确认(例如,当环路建立指令退出WB阶段30时),通常装入体系结构寄存器32。因此,直到从环路建立指令进入流水线10时已有数个时钟周期经过才对体系结构寄存器32中存储的进入和退出条件加以更新。因为直到已有数个时钟周期经过才对进入和退出条件加以更新,存在建立硬件环路的延迟。例如,如果在环路建立指令确认之前环路中的第一指令进入流水线10,不建立体系结构寄存器来把指令标识为环路的一部分。而且,这随流水线深度的上升而上升。
在一实施例中,处理器2通过维持一组早期寄存器34在流水线中来处理这些问题。如图2所示,早期寄存器ETop 34A和EBot 34B驻留于解码阶段而Ecnt 34C驻留于AC阶段。
实现一组早期寄存器34通过降低或避免环路建立罚(panalty)提高处理器2的处理速度。如上所述,在环路建立指令进入流水线时及写体系结构寄存器时之间经过数个时钟周期。不过,早在环路建立指令写至体系结构寄存器之前装入早期寄存器。由此,实现早期寄存器降低建立硬件环路所花时间。
早期寄存器是用来预测或推测体系结构寄存器值的推测寄存器。与体系结构寄存器不同,推测寄存器不得到系统指令集的支持。因此,不用程序码接入推测寄存器。由此,程序员不能用对体系结构寄存器一样的方法将数据移入或移出推测寄存器。
有数种不同的方法装入早期寄存器。例如,早期寄存器只作为执行向体系结构寄存器的正常指令寄存器移动的结果而装入。换言之,系统指导体系结构寄存器装入一些其他寄存器的内容,并作为结果,更新早期寄存器。另一装入寄存器的方法是从存储器装入。换言之,系统从存储器取数据,用该数据装入体系结构寄存器,并更新早期寄存器。
然而,从存储器的正常寄存器移动或装入存在的问题在于,带来环路建立罚。出现罚是因为系统拖延流水线至有数据可写。为避免罚,在写体系结构寄存器之前用环路建立指令装入早期寄存器。
下例说明用来调用示例环路建立机器指令的语法LSETUP(PC Relative Top,PC Relative Bottom)Counter=XPC Relative Top规定当前指令至环路顶的距离(Start Offset)。PC RelativeBottom规定当前指令至环路底的距离(End Offset)。另外,计数器变量规定计数器寄存器和显示环路中迭代的数目的环路计数。
图3是说明根据本发明的一实施例装入早期寄存器的定时的流程图。如所述,环路建立指令含有计数值、顶值和底值形式的环路条件。这三值共同定义硬件环路的进入和退出条件。
计数值表示环路制造的迭代数目。一旦环路建立指令进入AC(38),计数值写入ECnt寄存器(39)。起初写至Ecnt寄存器经从数据寄存器的寄存器移动进行。在一工作模式中,用数据地址生成(DAG)流水线的指针寄存器(PREGS)中含有的数据写Ecnt寄存器。如有必要,用一流水线中的ALU从环路建立指令计算计数值。
顶和底值显示哪一指令是环路顶而哪一指令是环路底。不过,环路建立指令中的顶和底值是程序计数器(PC)相对。因此,用AC阶段中的计算(40)获得分别写入ETop 34A和EBot 34B寄存器的顶和底值。环路建立指令进入EX 1(41)后,顶和底值写入ETop 34A和EBot 34B寄存器(42)。
根据本发明的一实施例,系统资源得到有效实现。照此方式,无须附加系统硬件来处理硬件环路。如上所述,环路建立指令中含有硬件环路的环路条件。通过有效再使用处理器中含有的可用ALU,不需要专用硬件环路ALU便建立硬件环路。
图4是根据本发明的一实施例说明有效使用一或更多流水线的框图。环路建立指令由取单元在IF阶段期间取并在DEC阶段14期间从指令寄存器(未示出)解码。在此方面,环路建立指令传送给不同流水线中的可用ALU(50,51),这样,并行计算所有环路条件。
例如,在特定实施例中,使用第一流水线(例如,第一DAG流水线60)中的ALU52传送计数值并执行任一必要的转移或计算。另外,使用第二流水线(例如,第二DAG流水线62)中的ALU50从环路建立指令计算环路的底值。而且,使用第三流水线(例如,系统流水线64的支单元54中含有的)中的ALU51从环路建立指令计算环路的顶值。按此方式,并行计算环路条件。而且,不管系统是否配置成处理硬件环路,相应ALU全部是可用的资源。这样,通过再使用这些可用的资源,上述实现避免处理硬件环路的硬件的不必要的增加。
计算环路条件后,这些条件写至一组早期(或推测)寄存器34。装入ETop寄存器34A以指向环路的第一指令(或环路顶)。装入EBot寄存器34B以指向环路的最后指令(或环路底)。装入ECnt寄存器34C以规定环路将重复的次数。在一实施例中,ECnt34C向下计数,每遭遇底匹配便递减。
除向早期寄存器34写所计算的环路条件外,该数据也传送给在写回阶段中被写的一组体系结构寄存器32。根据本发明的另一实施例,该数据沿许多可用的流水线传送。按此方式,并行写两或更多体系结构寄存器32。而且,不需要附加存储硬件(诸如附加触发器)来将环路条件传输至WB。
在特定实施例中,使用第一流水线(例如,DAG流水线60)将计数变量传输到体系结构寄存器32A。另外,使用第二流水线(例如,DAG流水线62)将计数变量传输到体系结构寄存器32B。而且,使用第三流水线(例如,系统流水线64)将底变量传输到体系结构寄存器32C。不管系统是否设置成处理硬件环路,这些相应的流水线全部是可用的资源。这样,通过再使用这些可用的资源,上述实现避免处理硬件环路的硬件的不必要的增加。
再使用流水线实现数个优点。例如,假如只使用单个流水线计算环路条件,用单个ALU执行所有必要的计算要花费数个时钟周期。而且,假如只使用单个流水线传播环路条件,将数据传送给WB要花费另外的时钟周期。由此,再使用附加流水线通过避免这些附加环路建立罚来支持改进的系统性能。另外,如上所述,再使用现有流水线实现处理器内硬件的减少。而且,这促进向两个或更多寄存器并行地写环路条件。
图5是根据本发明的一实施例说明计算早期寄存器值的操作模式的流程图。根据一格式,环路建立指令规定数个建立变量包括Start Offset(S-Offset)和End Offset(E-Offset)。S-Offset规定指令流中从环路建立指令至环路中第一指令的距离。类似地,如果环路建立和第一指令间有两指令,则S-Offset是环路建立指令和两指令的宽度。
如图5所示,S-Offset和E-Offset通常由环路建立指令(74)规定。不过,环路建立指令规定相对程序计数器(PC)的偏置。因此,PC值也得到确定(75)。然后用PC值和S-Offset计算ETop寄存器数据(76)。而且,用PC值和E-Offset计算EBot寄存器数据(77)。一旦计算,早期寄存器数据写至早期寄存器(78)。再一次,通过再使用系统中的可用ALU,并行计算早期寄存器数据,而无须增加不需要的硬件。
比较图2和图5说明当写ETop和EBot寄存器时的示例定时。步骤(74)和(75)出现于DEC阶段14。计算步骤(76)和(77)出现于AC阶段18。因此,写步骤(78)出现于EX 1步骤22A。
一旦装入,用早期寄存器建立硬件环路。图6是说明连接流水线10的取指令(IF)单元13和解码器单元17的硬件环路单元7的一实施例的框图。在一实施例中,用早期寄存器检测指令流84中的环路。用一或更多环路指令装入环路硬件86。一旦装入,从环路硬件反复地发布环路指令。这样,如果检测到硬件环路,一或更多环路指令只由IF单元13取一次,并从硬件环路单元7重复发布。
图7是根据本发明的一实施例说明硬件的再使用的流程图。使用可用硬件,当接收环路建立指令时,并行计算第一环路条件和第二环路条件(102和104)。这些条件用,例如,第一和第二算术逻辑单元(ALU)来计算。而且,这些ALU驻留于不同的流水线中。或者,用驻留于其他可用流水线中的附加ALU计算附加环路条件。
一旦计算环路条件(102和104),它们写入推测寄存器(106)并用来建立硬件环路。另外,环路条件分别经第一流水线和第二流水线传播到一组体系结构寄存器(108和110)。如果需传播附加环路条件,使用附加流水线。一旦传播,环路条件写至一组体系结构寄存器(112)。
从环路建立指令计算环路条件需要使用一或更多ALU。而且,将计算的条件传播到一组体系结构寄存器对每个环路条件需要每个传送阶段的存储电路(例如,触发器)。通过有效实现可用系统资源,建立硬件环路不需要附加硬件环路ALU和触发器。
已描述本发明的各种实施例。例如,通常不用于硬件环路上下文中的硬件的再使用已针对在处理器内的实施进行了描述。所述处理器实现于多种系统包括通用计算系统、数字处理系统、膝上计算机、个人数字助理(PDA)和蜂窝电话。在本文中,上述硬件的再使用容易地得到使用以促进有效硬件环路。在这样的系统中,处理器耦合存储设备,诸如闪存设备或存储操作系统和其他软件应用的静态随机存取存储器(SRAM)。这些及其他实施例处于下列权利要求的范围内。
权利要求
1.一种方法,其特征在于,包括经流水线处理器的第一流水线传播硬件环路的第一环路条件;及经流水线处理器的第二流水线传播第二环路条件。
2.如权利要求1所述的方法,其特征在于,还包括在传播环路条件前将环路条件写至第一组寄存器,及在传播环路条件后将环路条件写至第二组寄存器。
3.如权利要求1所述的方法,其特征在于,并行传播第一和第二环路条件。
4.如权利要求1所述的方法,其特征在于,还包括经第三流水线传播第三环路条件。
5.如权利要求2所述的方法,其特征在于,还包括在将环路条件写至第一组寄存器前生成硬件环路的环路条件。
6.如权利要求5所述的方法,其特征在于,生成环路条件包括从环路建立指令中的程序计数器相对数据计算环路条件中的至少一个。
7.一种方法,其特征在于,包括用第一流水线中的第一算术逻辑单元从环路建立指令计算硬件环路的第一环路条件;及用第二流水线中的第二算术逻辑单元从环路建立指令计算硬件环路的第二环路条件。
8.如权利要求7所述的方法,其特征在于,还包括向第一组寄存器写第一和第二环路条件。
9.如权利要求7所述的方法,其特征在于,还包括用第三流水线中的第三算术逻辑单元从环路建立指令计算硬件环路的第三环路条件;及向第一组寄存器写第一、第二和第三环路条件。
10.如权利要求7所述的方法,其特征在于,计算第一环路条件和计算第二环路条件并行发生。
11.如权利要求8所述的方法,其特征在于,还包括经第一流水线将第一环路条件传播至第二组寄存器。
12.如权利要求11所述的方法,其特征在于,还包括经第二流水线将第二环路条件传播至第二组寄存器。
13.一种设备,其特征在于,包括包括第一算术逻辑单元的第一流水线及包括第二算术逻辑单元的第二流水线,及耦合至流水线的控制单元,所述控制单元自适应为用第一流水线中的第一算术逻辑单元从环路建立指令计算硬件环路的第一环路条件;及用第二流水线中的第二算术逻辑单元从环路建立指令计算硬件环路的第二环路条件。
14.如权利要求13所述的设备,其特征在于,所述设备还包括耦合控制单元的第一组寄存器,其中,控制单元进一步自适应为将硬件环路的第一和第二环路条件写至第一组寄存器。
15.如权利要求14所述的设备,其特征在于,所述设备还包括耦合控制单元的第三流水线,第三流水线包括第三算术逻辑单元,控制单元进一步自适应为用第三流水线中的第三算术逻辑单元从环路建立指令计算硬件环路的第三环路条件;及向第一组寄存器写硬件环路的第一、第二和第三环路条件。
16.如权利要求14所述的设备,其特征在于,所述设备还包括耦合控制单元的第二组寄存器,其中,控制单元进一步自适应为经第一流水线将环路条件中的至少一个传播至第二组寄存器。
17.如权利要求16所述的设备,其特征在于,控制单元进一步自适应为经第二流水线将环路条件中的至少一个传播至第二组寄存器。
18.如权利要求15所述的设备,其特征在于,所述设备还包括耦合控制单元的第二组寄存器,控制单元进一步自适应为经第一流水线将环路条件中的至少一个传播至第二组寄存器;经第二流水线将环路条件中的至少一个传播至第二组寄存器;经第三流水线将环路条件中的至少一个传播至第二组寄存器。
19.如权利要求14所述的设备,其特征在于,第一组寄存器是推测寄存器。
20.如权利要求13所述的设备,其特征在于,流水线中有至少一个是数据地址生成流水线。
21.如权利要求13所述的设备,其特征在于,流水线中有至少一个是系统流水线。
22.一种设备,包括一组寄存器、第一流水线和第二流水线;及耦合所述寄存器组、所述第一流水线和所述第二流水线的控制单元,所述控制单元自适应为经第一流水线将硬件环路的至少一环路条件传播至所述寄存器组;及经第二流水线将硬件环路的至少一环路条件传播至所述寄存器组。
23.如权利要求22所述的设备,其特征在于,所述寄存器组是第二组寄存器,所述设备还包括耦合控制单元的第一组寄存器,其中,控制单元进一步自适应为在将环路条件中的至少一个传播至第二组寄存器前将硬件环路的环路条件写至第一组寄存器。
24.如权利要求22所述的设备,其特征在于,流水线中有至少一个是数据地址生成流水线。
25.如权利要求22所述的设备,其特征在于,流水线中有至少一个是系统流水线。
26.一种系统,其特征在于,包括静态随机存取存储设备;耦合静态随机存取存储设备的处理器,其中,处理器包括第一组寄存器、第一流水线、第二流水线和控制单元,控制单元自适应为用第一流水线中的第一算术逻辑单元从环路建立指令计算硬件环路的第一环路条件,用第二流水线中的第二算术逻辑单元从环路建立指令计算硬件环路的第二环路条件;及向第一组寄存器写硬件环路的第一和第二环路条件。
27.如权利要求26所述的系统,其特征在于,处理器包括第三流水线,控制单元进一步自适应为用第三流水线中的第三算术逻辑单元从环路建立指令计算硬件环路的第三环路条件;及向第一组寄存器写硬件环路的第一、第二和第三环路条件。
28.一种系统,其特征在于,包括静态随机存取存储设备;耦合静态随机存取存储设备的处理器,其中,处理器包括第一组寄存器、第二组寄存器、第一流水线、第二流水线和控制单元,控制单元自适应为将硬件环路的环路条件写至第一组寄存器;经第一流水线将环路条件中的至少一个传播至第二组寄存器;及经第二流水线将环路条件中的至少一个传播至第二组寄存器。
29.如权利要求28所述的系统,其特征在于,所述处理器还包括第三流水线,所述控制单元进一步自适应为经第三流水线将环路条件中的至少一个传播至第二组寄存器。
30.如权利要求28所述的系统,其特征在于,所述控制单元进一步自适应为用第一流水线中的第一算术逻辑单元从环路建立指令计算硬件环路的第一环路条件;及用第二流水线中的第二算术逻辑单元从环路建立指令计算硬件环路的第二环路条件。
全文摘要
在一实施例中,可编程处理器自适应为支持硬件环路。处理器可包括诸如第一组寄存器、第二组寄存器、第一流水线和第二流水线之类的硬件。而且,处理器可包括实现硬件环路时自适应为有效实现硬件的控制单元。
文档编号G06F9/38GK1481527SQ01820774
公开日2004年3月10日 申请日期2001年12月20日 优先权日2000年12月20日
发明者R·伊努埃, R·P·辛格, C·P·罗斯, G·A·奥弗坎普, R 伊努埃, 奥弗坎普, 罗斯, 辛格 申请人:英特尔公司, 模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1