《环路控制系统及方法.pdf》由会员分享,可在线阅读,更多相关《环路控制系统及方法.pdf(19页完整版)》请在专利查询网上搜索。
1、10申请公布号CN102067087A43申请公布日20110518CN102067087ACN102067087A21申请号200980123763222申请日2009062412/147,89320080627USG06F9/44520060171申请人高通股份有限公司地址美国加利福尼亚州72发明人卢奇安科德雷斯库埃里克普隆德克王林苏雷什K文库马汉蒂74专利代理机构北京律盟知识产权代理有限责任公司11287代理人宋献涛54发明名称环路控制系统及方法57摘要本发明揭示环路控制系统及方法。在特定实施例中,硬件环路控制逻辑电路包括用于检测程序环路的环路结束指示符的检测单元。所述硬件环路控制逻辑电。
2、路还包括用于使环路计数递减且使谓词触发计数器递减的递减单元。所述硬件环路控制逻辑电路进一步包括用于比较所述谓词触发计数器与参考以确定何时设定谓词值的比较单元。30优先权数据85PCT申请进入国家阶段日2010122286PCT申请的申请数据PCT/US2009/0483702009062487PCT申请的公布数据WO2009/158370EN2009123051INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书10页附图6页CN102067097A1/2页21一种处理环路中的指令集合的方法,所述方法包含在执行特定类型的环路指令之后即刻自动地初始化谓词触发计数器以指示。
3、在设定谓词值之前的所述环路的反复数目;在环路反复期间执行所述指令集合;以及在检测到所述环路的环路结束指示符之后,即刻自动地触发环路控制硬件以修改所述谓词触发计数器且比较所述谓词触发计数器与参考以确定何时设定所述谓词值,且其中基于所述谓词值而有条件地执行所述指令集合中的所述指令中的至少一者。2根据权利要求1所述的方法,其中所述参考为零值且其中所述环路控制硬件响应于所述环路结束指示符而使所述谓词触发计数器递减。3根据权利要求1所述的方法,其中有条件地执行的所述指令集合中的所述指令中的所述至少一者将数据写入到输出寄存器。4根据权利要求3所述的方法,其中将所述指令集合作为软件管线式环路来执行,且其中所。
4、述谓词触发计数器是基于所述软件管线式环路的管线级的数目。5一种处理环路指令的方法,所述方法包含在包括谓词触发计数的特殊寄存器中初始化环路参数;执行所述环路指令;执行具有环路结束指示符的指令;修改所述谓词触发计数且修改环路计数;以及当所述谓词触发计数等于参考值时,改变影响所述环路指令中的至少一者的执行的谓词的值。6根据权利要求5所述的方法,其中所述环路指令包括核心代码但所述环路指令不包括序言指令。7根据权利要求6所述的方法,其中所述核心代码包含软件管线式环路的指令集合。8根据权利要求5所述的方法,其中所述参考值等于零,且其中响应于执行具有所述环路结束指示符的所述指令而使所述谓词触发计数及所述环路。
5、计数递减。9根据权利要求5所述的方法,其中所述环路指令包括基于所述谓词而有条件地执行的至少一个指令。10根据权利要求9所述的方法,其中所述环路指令包括核心代码但所述环路指令不包括序言指令。11一种设备,其包含谓词计数寄存器,其用于存储谓词触发计数;初始化逻辑电路,其用于初始化程序环路的环路参数;处理器,其用于执行所述程序环路的环路指令且执行包括环路结束指示符的包;逻辑电路,其用于修改所述谓词触发计数且修改所述程序环路的环路计数;比较逻辑电路,其用于比较所述谓词触发计数与参考值;以及逻辑电路,其用于基于所述比较的结果而改变影响所述程序环路中的至少一个指令的谓词的值。12根据权利要求11所述的设备。
6、,其中所述初始化逻辑电路在所述环路指令的执行之前清除所述谓词。权利要求书CN102067087ACN102067097A2/2页313一种硬件环路控制逻辑电路,其包含检测单元,其用于检测程序环路的环路结束指示符;递减单元,其用于使环路计数递减且使谓词触发计数器递减;以及比较单元,其用于比较所述谓词触发计数器与参考以确定何时设定谓词值。14根据权利要求13所述的硬件环路控制逻辑电路,其中所述程序环路包括基于所述谓词值而有条件地执行的至少一个指令。15一种系统,其包含硬件环路控制逻辑电路,其包含检测单元,其用于检测程序环路的环路结束指示符;递减单元,其用于使环路计数递减且使谓词触发计数器递减;以及。
7、比较单元,其用于比较所述谓词触发计数器与参考以确定何时设定谓词值;以及处理器,其执行触发所述硬件环路控制逻辑电路的执行的特殊指令。16根据权利要求15所述的系统,其中所述特殊指令包含SPNLOOP类型指令,其中N为小于四的正整数且其中N指示待在改变所述谓词值之前执行的所述程序环路的环路数目。17根据权利要求16所述的系统,其中在执行所述SPNLOOP类型指令之后,即刻在设定所述谓词值之前计算值且不存储所述所计算的值。18根据权利要求16所述的系统,其中所述SPNLOOP类型指令包括包括程序环路设置信息的数据字段。19根据权利要求18所述的系统,其中所述检测单元经配置以剖析极长指令字VLIW包以。
8、检测所述环路结束指示符,其中所述递减单元包括用于在检测到所述环路结束指示符时自动地使所述谓词触发计数器递减的计数器,且其中所述比较单元包括用于自动地识别所述谓词触发计数器的从一值到零值的转变的比较器。20根据权利要求16所述的系统,其中所述SPNLOOP类型指令是结合软件管线环路应用程序来使用。21根据权利要求17所述的系统,其中所述处理器为极长指令字VLIW类型处理器,所述处理器包括所述硬件环路控制逻辑电路,且其中所述程序环路中的多个指令由所述处理器并行地执行。22根据权利要求18所述的系统,其中N识别序言计数。23根据权利要求16所述的系统,其中所述程序环路的至少一个指令基于所述谓词值而有。
9、条件地存储数据。权利要求书CN102067087ACN102067097A1/10页4环路控制系统及方法技术领域0001本发明大体来说涉及环路控制系统及方法。背景技术0002技术的进步已产生更小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包括无线计算装置,例如便携式无线电话、个人数字助理PDA及寻呼装置,其小型、轻质且易于由用户携带。更具体来说,便携式计算装置例如,蜂窝式电话及IP电话可经由无线网络传送语音及数据包。另外,许多所述便携式无线装置还并入有其它类型的装置。举例来说,无线电话也可包括数字静态相机、数字摄像机、数字记录器及音频文件播放器。又,所述无线电话可处理可执行指。
10、令,包括软件应用程序,例如可用于接入因特网的网页浏览器应用程序。因而,这些无线电话可包括显著计算能力。0003在软件应用程序内重复的可执行指令可作为软件管线式环路而由处理器执行。软件管线化为用于将来自程序环路的不同逻辑反复的非相依指令调度为同时执行的方法。来自环路的不同逻辑反复的重叠指令增加了用于有效处理的并行性的量。举例来说,可在计算装置例如,无线移动装置中的处理器的单独的执行单元处并行地执行第一环路指令及第二环路指令,第一指令对应于第一环路反复而第二指令对应于第二环路反复。尽管所述软件管线式环路可比非管线式环路更有效地执行,但用于防止填充管线时归因于指令之间的数据相依性的数据冒险DATAH。
11、AZARD的额外指令例如,序言指令及用于防止排空管线时的存储器存取冒险的额外指令例如,收尾指令可增加执行应用程序所需的存储器的量。所述额外存储器可能不易于在无线计算装置处可用。发明内容0004在特定实施例中,揭示一种包括硬件环路控制逻辑电路的系统。所述硬件环路控制逻辑电路包括用于检测程序环路的环路结束指示符的检测单元、用于使环路计数递减且使谓词触发计数器递减的递减单元,及用于比较谓词触发计数器与参考以确定何时设定谓词值的比较单元。所述系统还包括执行触发硬件环路控制逻辑电路的执行的特殊指令的处理器。具有硬件环路控制逻辑电路的系统的使用使得能够在无序言指令的情况下执行软件管线环路,借此使用减少的存。
12、储器。0005在另一特定实施例中,揭示一种包括用于存储谓词触发计数的谓词计数寄存器的设备。所述设备还包括用于初始化程序环路的环路参数的初始化逻辑电路。所述设备包括用于执行程序环路的环路指令且执行包括环路结束指示符的包的处理器。所述设备还包括用于修改谓词触发计数且修改程序环路的环路计数的逻辑电路。所述设备还包括用于比较谓词触发计数与参考值的比较逻辑电路。所述设备进一步包括用于基于所述比较的结果而改变影响程序环路中的至少一个指令的谓词的值的逻辑电路。0006在另一特定实施例中,揭示一种处理环路指令的方法。所述方法包括在特殊寄存器中初始化环路参数,其中所述特殊寄存器包括谓词触发计数。所述方法还包括执。
13、行环路说明书CN102067087ACN102067097A2/10页5指令且执行具有环路结束指示符的包。所述方法进一步包括修改谓词触发计数且修改环路计数。在谓词触发计数等于参考值时,所述方法包括改变影响环路指令中的至少一者的谓词的值。0007在另一特定实施例中,揭示一种处理环路中的指令集合的方法。所述方法包括在执行特定类型的环路指令之后即刻自动地初始化谓词触发计数器以指示在设定谓词值之前待执行的环路的反复的数目。所述方法还包括在环路反复期间执行所述指令集合,且在检测到环路的环路结束指示符之后即刻自动地触发环路控制硬件以修改谓词触发计数器且比较谓词触发计数器与参考以确定何时设定谓词值。基于所述。
14、谓词值而有条件地执行所述指令集合中的所述指令中的至少一者。0008由所揭示的实施例中的至少一者提供的一个特定优点是作为管线式软件环路执行的指令的减小的代码大小、较低功率操作及较高速处理。本发明的其它方面、优点及特征将在审阅包括以下章节的整个申请案之后变得显而易见附图说明、具体实施方式及权利要求书。附图说明0009图1为环路控制系统的第一说明性实施例的框图;0010图2为环路控制系统的第二说明性实施例的框图;0011图3为说明软件管线式环路的处理的总图;0012图4为可由图1或图2的环路控制系统执行的环路控制方法的第一说明性实施例的流程图;0013图5为可由图1或图2的环路控制系统执行的环路控制。
15、方法的第二说明性实施例的流程图;以及0014图6为包括具有谓词计数器的软件管线式环路硬件控制逻辑电路的无线处理装置的特定说明性实施例的框图。具体实施方式0015参看图1,描绘环路控制系统的第一说明性实施例且大体将其指定为100。系统100可为计算机、便携式无线装置、无线电话或执行软件指令的任何其它装置的一部分。系统100包括具有硬件环路控制逻辑电路104的处理器102。0016处理器102经配置以执行环路指令120。环路指令120包括使用谓词逻辑电路110的至少一个有条件地执行的环路指令122。举例来说,当谓词逻辑电路110存储评估为真的谓词值时,可由处理器102执行有条件地执行的环路指令12。
16、2,且当谓词逻辑电路110存储评估为假的谓词值时,不可执行有条件地执行的环路指令122。举例来说,执行环路指令120使得处理器102能够有效地执行重复操作,例如针对多媒体软件应用程序或数字信号处理操作。0017环路控制值106可由硬件环路控制逻辑电路104及谓词设定逻辑电路108存取。谓词设定逻辑电路108耦合到谓词逻辑电路110。在特定实施例中,谓词逻辑电路110可包括适于存储具有假值例如,逻辑“0”值或真值例如,逻辑“1”值的数据位的锁存器或其它存储装置。通过使用硬件环路控制逻辑电路104及谓词设定逻辑电路108,可以说明书CN102067087ACN102067097A3/10页6紧凑形。
17、式对软件管线式环路进行编码,其中用于初始化软件管线的管线式环路级可用结合系统100的硬件环路控制逻辑电路104工作的一个或一个以上有条件地执行的环路指令替代,如下文将描述。0018在特定实施例中,硬件环路控制逻辑电路104包括适于辨识对应于环路指令120的软件环路的开始的电路。硬件环路控制逻辑电路104可适于最初设定且修改环路控制值106以初始化并控制由处理器102进行的环路指令120的执行。特定来说,硬件环路控制逻辑电路104适于初始化环路控制值106的谓词计数器124。除谓词计数器124外,环路控制值106可包括用于控制环路的操作的其它值,例如环路开始地址及环路反复的数目,此作为说明性实例。
18、。0019可由硬件环路控制逻辑电路104将谓词计数器124初始化为对应于处理循环的数目的值,所述处理循环用以在处理器102处填充包括环路指令120的软件管线式环路。大体来说,处理器102可以管线式方式将每一环路反复作为可在多个执行单元未展示处同时执行的多个连续管线级来执行。举例来说,当处理器102执行具有三个管线级的深度的软件管线式环路中的环路指令120时,可将谓词计数器124初始化到为三的值。具有三个管线级的深度的软件管线式环路的实例描绘于图3中。0020硬件环路控制逻辑电路104可进一步适于检测处理器102处的环路反复条件且针对环路的每一反复修改谓词计数器124。举例来说,谓词计数器124。
19、可保持有响应于硬件环路控制逻辑电路104而连续递减直到谓词计数器124的值达到参考值为止的初始化值。当软件管线式环路被完全管线化时,参考值可对应于谓词计数器124的值,其中软件环路的所有指令处理并未因管线相依性而无效的数据。举例来说,在稍后操作使用由环路反复内的较早操作产生的数据且环路被管线化以使得较早操作是在第一管线级处执行且稍后操作是在与第一管线级同时执行的稍后管线级处执行的情况下,稍后管线级对第一管线级处所产生的数据的相依性将使得稍后管线级处理无效数据,直到在稍后管线级处接收到第一管线级处所产生的数据为止。为了说明,处理器可在单独执行单元处执行环路指令“AA1”及“将A存储到存储器”,但。
20、“将A存储到存储器”指令将存储无效结果直到接收到来自第一“AA1”指令的数据为止。0021谓词设定逻辑电路108可适于响应于检测到谓词计数器124的值而设定谓词逻辑电路110处所存储的谓词值。在特定实施例中,谓词设定逻辑电路108包括用于执行谓词计数器124处的值与参考值之间的比较的比较逻辑电路未展示。当检测到谓词计数器124处的值具有等于参考值的值时,谓词设定逻辑电路108可经配置以自动地设定谓词逻辑电路110处所存储的谓词值。举例来说,谓词逻辑电路110可经初始化成存储假条件,谓词计数器124可经初始化为软件管线式环路的管线级的数目,且参考值可为零。当将谓词计数器124递减到零时,谓词设定。
21、逻辑电路108可自动地将谓词逻辑电路110处的谓词值改变成真条件。可将谓词逻辑电路110处所存储的谓词值的真条件提供到有条件地执行的环路指令122以影响处理器102处的环路指令120的处理。作为另一实例,可将谓词计数器124设定到零且可将参考值设定到软件管线式环路的管线级的数目,且可响应于每一环路反复而使谓词计数器124递增。0022因此,处理器102处的环路初始化及环路控制可由包括硬件环路控制逻辑电路104、用于存储环路控制值106的锁存器或其它装置的硬件元件来执行,以实施谓词设定逻说明书CN102067087ACN102067097A4/10页7辑电路108。通过使用硬件来实施用于软件管线。
22、式环路的环路控制逻辑,可以紧凑形式对软件环路进行编码,其中用于初始化软件管线的管线式环路级称作序言可用结合系统100的硬件而工作的一个或一个以上有条件地执行的环路指令122替代。0023参看图2,描绘环路控制系统的第二说明性实施例且大体将其指定为200。系统200包括处理器202、硬件环路控制逻辑电路204,及环路参数控制寄存器206。硬件环路控制逻辑电路204可对应于图1中所描绘的硬件环路控制逻辑电路104。环路参数控制寄存器206处所存储的数据可对应于图1中所描绘的环路控制值106,且处理器202可对应于图1中所描绘的处理器102。0024在特定实施例中,环路参数控制寄存器206包括存储表。
23、示待于处理器202处执行的软件管线式环路的开始地址的数据的开始地址寄存器212。环路参数控制寄存器206还包括存储对应于软件管线式环路的环路计数值的环路计数寄存器214。环路参数控制寄存器206进一步包括存储与待于处理器202处执行的软件管线式环路相关联的谓词触发计数值的谓词触发计数寄存器216。大体来说,环路参数控制寄存器206响应于从硬件控制逻辑电路204所接收的控制输入。0025在特定实施例中,硬件环路控制逻辑电路204包括初始化单元220、递减单元222、比较单元230、检测单元228,及谓词改变单元234。初始化单元220可响应于在处理器202处执行的特殊指令240。初始化单元220。
24、可适于确定开始地址且设定开始地址寄存器212处的值。初始化单元220可进一步适于设定递减单元222的环路计数器224的初始值。初始化单元220也可适于设定递减单元222的谓词触发计数器226的初始值。0026在特定实施例中,递减单元222响应于检测单元228,以响应于来自检测单元228的指示处理器202处的环路反复的完成的控制输入而使环路计数器224及谓词触发计数器226的值递减。特定来说,可将环路计数器224初始化为待于处理器202处执行的环路指令250的反复的总数目,且可响应于在检测单元228处所检测的每一环路反复而使环路计数器224递减。另外,可将谓词触发计数器226初始化为对应于完全填。
25、充软件管线式环路的管线以便使用来自先前级的有效数据执行顺序管线级所需的执行循环的数目的值。可响应于由检测单元228检测到的环路反复而使谓词触发计数器226递减。环路计数器224及谓词触发计数器226可分别将值写入到环路计数寄存器214及谓词触发计数寄存器216,且可响应于递减单元222的操作而更新相应值。0027在特定实施例中,检测单元228经配置以检测处理器202处的环路结束条件。举例来说,检测单元228可包括用于在处理器202处剖析具有环路结束指示符的极长指令字VLIW包254的剖析逻辑电路。在特定实施例中,环路结束指示符包括VLIW包254内具有指定值的预定位字段。当检测到环路结束指示符。
26、时,检测单元228将控制输入提供到递减单元222以使计数器224及226中的一者或两者递减。0028在特定实施例中,比较单元230响应于谓词触发计数寄存器216处所存储的值。比较单元230可包括适于比较谓词触发计数寄存器216的值与参考值且将所述比较的输出提供到谓词改变单元234的比较器232。举例来说,在特定实施例中,参考值可为零,且比较单元230可经配置以将零值输出提供到谓词改变单元234直到谓词触发计数寄存器216具有零值或负值为止。在特定实施例中,比较器232适于自动地识别谓词触发计数器226从一值到零值的转变例如,经由谓词触发计数寄存器216。说明书CN102067087ACN102。
27、067097A5/10页80029在特定实施例中,谓词改变单元234响应于从比较单元230所接收的控制信号,以设定或重设谓词逻辑电路210处所存储的谓词值。举例来说,谓词改变单元234可经配置以将谓词逻辑电路210处所存储的谓词值初始化为假条件。当谓词改变单元234接收到来自比较单元230的指示谓词触发计数寄存器216的值等于参考值的控制输入时,谓词改变单元234可将谓词逻辑电路210处的谓词值设定为真值。谓词改变单元234也可响应于初始化单元220,以在执行环路指令之前清除谓词逻辑电路210处所存储的谓词值。0030在特定实施例中,谓词逻辑电路210可包括经配置以存储逻辑真值或逻辑假值的一个。
28、或一个以上硬件组件。谓词逻辑电路210可由处理器202存取以结合执行环路指令250而使用。0031在特定实施例中,处理器202经配置以接收并执行与软件管线式环路相关联的指令。特定来说,处理器202经配置以执行可指定与后续软件管线式环路相关联的初始化值及控制值的特殊指令240。特殊指令240的初始化值及控制值可由硬件环路控制逻辑电路204来检测或提供到硬件环路控制逻辑电路204。0032另外,处理器202经配置以接收环路指令250并将其作为软件管线式环路来执行。举例来说,处理器202可适于并行地例如,在处理器202的多个并行执行单元处执行环路指令250中的一者或一者以上。另外,处理器202可将环。
29、路指令250作为软件管线式指令来执行,以便可在处理器202处的各种顺序管线级中执行环路指令250的单次反复。0033在特定实施例中,环路指令250包括至少一个有条件地执行的环路指令252。所述至少一个有条件地执行的环路指令252响应于谓词逻辑电路210处所存储的谓词值以确定执行的条件。在特定实施例中,有条件地执行的环路指令252基于谓词逻辑电路210处的谓词值而有条件地存储数据,以便不存储在将谓词值设定为“真”之前所计算的值。举例来说,有条件地执行的环路指令252可包括用于基于在环路指令250的当前反复中较早执行的计算而将数据写入到存储器例如,写入到输出寄存器未展示的写入命令。当在接收到由较早。
30、计算产生的数据之前执行写入时,在环路被完全管线化之前执行有条件地执行的环路指令252将会将无效数据写入到存储器。因此,有条件地执行的环路指令252的执行可以谓词逻辑电路210处所存储的谓词值为条件,其中谓词逻辑电路210处所存储的谓词值指示软件管线式环路的对应于环路指令250的条件。为了说明,处理器202可执行环路指令“AA1”及“将A存储到存储器”,但“将A存储到存储器”指令将存储无效结果直到接收到来自第一“AA1”指令的数据为止。因此,可基于最初经设定为“假”且在已完成第一“AA1”指令时改变成“真”的谓词值而有条件地执行“将A存储到存储器”指令。0034参看图3,描绘处理软件管线式环路的。
31、特定说明性实施例且大体将其指定为300。代表性指令管线级302、304、306及308表示软件管线式环路的管线级。谓词值310指示经指定为“P3”且可通过在指令管线级302到308处执行的所述指令中的一者或一者以上存取的谓词处的值。硬件谓词环路计数器312指示对应于软件管线式环路的递减计数值。针对连续时钟循环描绘与指令管线级302到308中的每一者、谓词值310及硬件谓词环路计数器312相关联的值,连续时钟循环在环路开始时间周期以时钟循环1开始,且在稍后时间周期进行到时钟循环23。在特定实施例中,每一时钟循环对应于管线式处理器处的执行循环。说明书CN102067087ACN102067097A。
32、6/10页90035在说明性实施例中,系统300表示图1中所描绘的处理器102处的环路指令120的执行,其中谓词值310反映谓词逻辑电路110处所存储的谓词值,且硬件谓词环路计数器312对应于谓词计数器124。在另一说明性实施例中,系统300表示图2中所描绘的处理器202处的环路指令250的执行,其中谓词值310对应于谓词逻辑电路210处所存储的谓词值,且硬件谓词环路计数器312对应于谓词触发计数寄存器216处所存储的谓词触发计数器226的输出。0036在特定实施例中,经由分解图中作为环路初始化指令330说明的特殊指令来起始软件管线式环路。环路初始化指令330包括具有形式SPNLOOP的指令名。
33、称334,其中“N”具有为三的值。环路初始化指令330包括包括程序环路设置信息的数据字段。举例来说,环路初始化指令330包括对应于软件环路的开始地址的第一数据字段336。环路初始化指令330还具有对应于指示待执行的环路的反复的数目的环路计数的第二数据字段338。当由处理器执行环路初始化指令330时,环路初始化指令330可返回对应于谓词的初始化的初始值例如,谓词P3332的值,其对应于谓词值310。0037因此,环路初始化指令330可指示环路的指令的开始地址、环路的反复的数目,且可进一步通过名称334中的“N”的值指示硬件谓词环路计数器312的初始值。在所说明的实施例中,名称SP3LOOP指示硬。
34、件谓词环路计数器312处为三的初始值。“N”的其它值可用于指示硬件谓词环路计数器312的其它初始值。作为说明性实例,“SP1LOOP”可指示为一的初始值,且“SP2LOOP”可指示为二的初始值。可设定硬件谓词环路计数器312的初始值以防止执行有条件操作直到对环路进行足够管线化为止。在特定实施例中,“N”可为小于四的正整数且可指示序言计数或待在改变谓词值310之前执行的程序环路的环路数目。0038在处理软件管线式环路初始化指令330之后,软件管线式环路开始,将其说明为包括具有经标记为A、B、C及D的指令的VLIW包。指令A、B、C及D可各自在处理器处例如,在单一处理器的多个执行单元处并行执行。此。
35、外,指令A、B、C及D可为顺序的,因为指令B可使用由指令A产生的数据。类似地,指令C可使用由指令A、指令B或其任何组合产生的数据。此外,指令D可使用由指令A、B、C中的任一者或其任何组合产生的数据。指令D可将指示每一特定环路反复的输出的数据写入到存储器。举例来说,指令D可使用来自操作A、B及C中的每一者的结果执行计算,且可将所得值存储到输出寄存器。因此,在软件管线式环路被完全管线化之前不应执行指令D,以便在指令D之前顺序地执行指令A、B及C中的每一者以确保到指令D的输入由有效值组成。可在完全填充软件管线之前顺序地执行的指令大体被指定为序言320。软件管线环路的执行的其中管线是满的部分被指定为核。
36、心322。软件管线环路的其中第一指令的最终执行已完成但其它管线指令尚未执行的部分大体被称作收尾324。0039如所说明,在时钟循环一,将初始值“三”存储于硬件谓词环路计数器312处。类似地,将谓词值P3310初始化为假值。软件环路从针对环路的第一反复执行指令A而开始。指令B、C及D也可与A并行执行,如将在核心部分322中执行;然而,因为指令B、C及D可视从先前指令输出的数据而定,所以在时钟循环一中指令B、C及D的结果可能无效。另外,当指令D包括用于将数据存储于存储器处的写入指令时,在待写入的数据为指示第一循环的指令A、B及C的输出的有效数据之前不应执行指令D。因此,可基于谓词值310而有条件地。
37、执行指令D,将其说明为指示特定时钟循环中的不执行指令的管线级的阴影化。因为谓说明书CN102067087ACN102067097A7/10页10词值310为假,所以不执行第四指令管线级308中的有条件写入指令D。0040继续到时钟循环二,指令B接收来自指令A的输出且针对环路的第一反复而执行,其经指示为B1。类似地,使用与环路的第二反复相关联的数据执行指令A,其经指示为A2。可执行指令C及D;然而,可能归因于对先前指令的数据相依性而未界定输入值及因此指令C及D中的每一者的输出。如所说明,在时钟循环2中,将硬件谓词环路计数器从为“三”的值递减到为“二”的值,且谓词值310保持为假。因为谓词值310。
38、为假,所以不执行第四指令管线级308中的有条件写入指令D。0041继续到时钟循环三,对应于环路的第一反复而执行第三指令管线级306处的指令C。对应于环路的第二反复而在第二指令管线级304处执行指令B,且对应于环路的第三反复而在第一指令管线级302处执行指令A。将硬件谓词环路计数器312从为“二”的值递减到为“一”的值,且谓词值310保持为假。因为谓词值310为假,所以不执行有条件写入指令D。0042在时钟循环四,软件环路的序言部分320已结束且核心部分322已开始。大体来说,在核心部分322中,软件管线已经填充且指令管线级302到308中的每一者对有效数据进行操作。将硬件谓词环路计数器312递。
39、减到值“零”,其指示管线是满的且序言级302结束。响应于等于“零”的硬件谓词环路计数器312,将谓词值310设定为真条件。在特定实施例中,由经配置以比较谓词环路计数器312的值与参考值的硬件逻辑电路例如,图2中所描绘的比较器232来设定谓词值310。0043从时钟循环四到时钟循环二十,环路保持在执行的核心部分322中,其中管线保持为满的且所有管线级302到308以顺序次序执行指令以适应所述指令之间的数据相依性。因为谓词值310评估为真,所以在时钟循环四且继续到时钟循环二十期间执行包括指令D的所有指令。在时钟循环二十一,收尾部分324开始,其中第一管线级302已完成针对所有二十个环路反复执行指令。
40、A,但剩余管线级304、306及308继续处理与软件环路的先前反复相关联的指令。举例来说,在时钟循环二十一,指令B的执行对应于反复20,指令C的执行对应于反复19,且指令D的执行对应于反复18。因此,在时钟循环二十一,执行指令B、C及D但不执行指令A。在时钟循环二十二,执行指令C及D,但不执行指令A及B。在时钟循环二十三,执行指令D以完成环路的最后反复。0044如所说明,可使用包括指令A、B、C及D的单一VLIW包执行序言部分320及核心部分322,其中指令D的执行基于谓词值P3310而为有条件的,且包括环路结束指示符其经表示为“A,B,C,IFP3DENDLOOP”。因此,在序言部分320与。
41、核心部分322两者中执行核心代码即,包括指令A、B、C及D的VLIW包。当在收尾部分324期间排空管线时,可使用收尾VLIW包,例如NOP,B,C,D、NOP,NOP,C,D及NOP,NOP,NOP,D,其中NOP指示特定执行单元处无操作。所述收尾指令确保当超出最后环路反复而执行时较早管线指令不会存取存储器的未经授权的部分。然而,在另一实施例中,当可在环路边界外部安全地存取一个或一个以上输入数据源时例如,可在时钟循环21、22及23通过指令A安全地执行的额外存储器读取操作,收尾部分322可替代地执行核心指令。0045针对序言部分320及核心部分322使用单一VLIW包使得能够使用比执行特殊序言。
42、指令以填充管线的情况下少的存储器来执行软件环路。通过初始化硬件谓词环路计数器并使其递减以对应于序言部分320期间的非零值及核心部分322处的零值当环路被完全说明书CN102067087ACN102067097A8/10页11管线化时,可设定谓词值310以将有条件地执行的数据相依指令例如,指令D的执行限制到核心当管线满时。可结合图1的处理器102使用谓词逻辑电路110及谓词计数器124来执行所述软件管线式环路处理,或通过结合图2中所描绘的处理器202使用谓词逻辑电路210、谓词触发计数器226及谓词触发计数寄存器216来执行所述软件管线式环路处理。0046参看图4,其描绘环路控制方法的第一说明性。
43、实施例的流程图且大体将其指定为400。在特定实施例中,可使用图1及图2中所描绘的系统中的一者或一者以上来执行处理循环中的指令集合的方法400。在402处,在执行特定类型的环路指令之后即刻自动地初始化谓词触发计数器以指示在设定谓词值之前的环路的反复数目。可将所述指令集合作为软件管线式环路来执行,且谓词触发计数器可基于软件管线式环路的管线级的数目。在说明性实施例中,特定类型的环路指令为图3中所描绘的环路初始化指令330。0047移到404,在环路反复期间执行所述指令集合。基于所述谓词值而有条件地执行所述指令集合中的所述指令中的至少一者。举例来说,有条件地执行的所述指令集合中的所述指令中的至少一者可。
44、基于谓词值而将数据有条件地写入到输出寄存器。0048继续到406,在检测到环路的环路结束指示符之后,即刻自动地触发修改谓词触发计数器的环路控制硬件。举例来说,环路控制硬件可响应于检测到环路结束指示符而使谓词触发计数器递减。前进到408,在检测到环路的环路结束指示符之后,即刻将谓词触发计数器与参考相比较以确定何时设定谓词值。在特定实施例中,所述参考为零值。0049在决策410处,针对谓词触发计数器是否等于所述参考作出确定。在谓词触发计数器不等于所述参考的情况下,处理在404处继续,在404处,在下一个环路反复期间执行所述指令集合。在谓词触发计数器等于所述参考的情况下,在412处设定谓词值,且处理。
45、返回到404,在404处,在下一个环路反复期间执行所述指令集合。0050因此,可通过初始化谓词触发计数器且响应于谓词触发计数器与所述参考的比较而设定谓词来控制有条件地执行的指令的执行。因此实现不具有单独序言指令及核心指令的软件管线式环路的执行例如,图3中所描绘且可使用图1及图2中所描绘的系统来执行所述软件管线式环路。0051参看图5,描绘环路控制方法的第二说明性实施例的流程图且大体将其指定为500。在特定实施例中,可使用图1及图2中所描绘的系统中的一者或一者以上来执行处理环路指令的方法500。在502处,在包括谓词触发计数的特殊寄存器中初始化环路参数。在特定实施例中,将谓词值初始化为假条件,且。
46、谓词触发计数对应于软件管线式环路的管线深度。0052进行到504,执行环路指令。在特定实施例中,环路指令包括核心代码但不包括序言指令。核心代码可包括软件管线式环路的指令集合。前进到506,执行具有环路结束指示符的指令。移到508,修改谓词触发计数且修改环路计数。继续到510,当谓词触发计数等于参考值时,改变影响环路指令中的至少一者的谓词的值。0053举例来说,环路指令可包括基于谓词而有条件地执行的至少一个指令。当将谓词触发计数器初始化为软件管线深度时,将谓词触发计数递减到等于参考值“零”可指示软件管线式环路的序言部分的结束及环路的核心部分的开始当管线填满时。可因此在管线填满之前不执行基于谓词而。
47、执行的有条件地执行的指令。因此,当使用谓词来防止在管线说明书CN102067087ACN102067097A9/10页12经足够填充之前可产生有害结果的指令的执行时,也可在序言中执行核心指令。0054图1及图2中所描绘的系统提供可在其上执行方法500的系统的实例。举例来说,可在图2的环路参数控制寄存器206中初始化环路参数,可由递减单元222来使环路计数及谓词触发计数递减,且可由图2的谓词改变单元234来改变谓词210的值。0055参看图6,描绘包括具有谓词计数器的软件管线式环路硬件控制逻辑电路664的无线处理装置的特定说明性实施例的框图且大体将其指定为600。装置600包括耦合到存储器632。
48、的处理器,例如数字信号处理器DSP610。具有谓词计数器的软件管线式环路硬件控制逻辑电路664可包括图1及图2中所描绘的系统中的一者或一者以上且可根据图3到图5中的一者或一者以上或其任何组合而操作。在说明性实施例中,系统600为无线电话。0056图6还展示耦合到数字信号处理器610及显示器628的显示器控制器626。编码器/解码器CODEC634也可耦合到数字信号处理器610。扬声器636及麦克风638可耦合到CODEC634。调制解调器640可耦合到数字信号处理器610且进一步耦合到无线天线642。0057在特定实施例中,DSP610、显示器控制器626、存储器632、CODEC634及调制。
49、解调器640包括于系统级封装或芯片上系统装置622中。在特定实施例中,输入装置630及电源644耦合到芯片上系统622。此外,在特定实施例中,如图6中所说明,显示器628、输入装置630、扬声器636、麦克风638、无线天线642及电源644在芯片上系统装置622的外部。然而,每一者可耦合到芯片上系统装置622的组件例如,接口或控制器。0058在操作期间,具有谓词计数器的软件管线式环路硬件控制逻辑664可用于实现数字信号处理器610处的有效软件管线式环路处理。举例来说,具有谓词计数器的软件管线式环路硬件控制逻辑电路664可包括用于在数字信号处理器610处检测环路初始化指令、环路结束指令或环路初始化指令与环路结束指令两者的电路或装置,且可操作以通过控制一个或一个以上环路计数器例如,序言计数器、一个或一个以上谓词或其任何组合的值来控制数字信号处理器610处的环路操作。尽管经描绘为包括于数字信号处理器610中,但具有谓词计数器的软件管线式环路硬件控制逻辑电路664可与一个或一个以上处理器分离例如,在芯片上系统装置622的控制部分处。大体来说,可在具有一个或一个以上并行管线的任一处理器中实施软件管线式环路,所述一个或一个以上并行管线使得同一软件环路中的指令能够跨越所述一个或一个以上并行管线而执行。另外,应理解,装置600可为任何无线处理装置,例如,个人数字助理PD。