书签 分享 收藏 举报 版权申诉 / 19

环路控制系统及方法.pdf

  • 上传人:a2
  • 文档编号:1032934
  • 上传时间:2018-03-27
  • 格式:PDF
  • 页数:19
  • 大小:618.42KB
  • 摘要
    申请专利号:

    CN200980123763.2

    申请日:

    2009.06.24

    公开号:

    CN102067087A

    公开日:

    2011.05.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20090624|||公开

    IPC分类号:

    G06F9/445

    主分类号:

    G06F9/445

    申请人:

    高通股份有限公司

    发明人:

    卢奇安·科德雷斯库; 埃里克·普隆德克; 王林; 苏雷什·K·文库马汉蒂

    地址:

    美国加利福尼亚州

    优先权:

    2008.06.27 US 12/147,893

    专利代理机构:

    北京律盟知识产权代理有限责任公司 11287

    代理人:

    宋献涛

    PDF完整版下载: PDF下载
    内容摘要

    本发明揭示环路控制系统及方法。在特定实施例中,硬件环路控制逻辑电路包括用于检测程序环路的环路结束指示符的检测单元。所述硬件环路控制逻辑电路还包括用于使环路计数递减且使谓词触发计数器递减的递减单元。所述硬件环路控制逻辑电路进一步包括用于比较所述谓词触发计数器与参考以确定何时设定谓词值的比较单元。

    权利要求书

    1: 一种处理环路中的指令集合的方法, 所述方法包含 : 在执行特定类型的环路指令之后即刻自动地初始化谓词触发计数器以指示在设定谓 词值之前的所述环路的反复数目 ; 在环路反复期间执行所述指令集合 ; 以及 在检测到所述环路的环路结束指示符之后, 即刻自动地触发环路控制硬件以修改所述 谓词触发计数器且比较所述谓词触发计数器与参考以确定何时设定所述谓词值, 且其中基 于所述谓词值而有条件地执行所述指令集合中的所述指令中的至少一者。
    2: 根据权利要求 1 所述的方法, 其中所述参考为零值且其中所述环路控制硬件响应于 所述环路结束指示符而使所述谓词触发计数器递减。
    3: 根据权利要求 1 所述的方法, 其中有条件地执行的所述指令集合中的所述指令中的 所述至少一者将数据写入到输出寄存器。
    4: 根据权利要求 3 所述的方法, 其中将所述指令集合作为软件管线式环路来执行, 且 其中所述谓词触发计数器是基于所述软件管线式环路的管线级的数目。
    5: 一种处理环路指令的方法, 所述方法包含 : 在包括谓词触发计数的特殊寄存器中初始化环路参数 ; 执行所述环路指令 ; 执行具有环路结束指示符的指令 ; 修改所述谓词触发计数且修改环路计数 ; 以及 当所述谓词触发计数等于参考值时, 改变影响所述环路指令中的至少一者的执行的谓 词的值。
    6: 根据权利要求 5 所述的方法, 其中所述环路指令包括核心代码但所述环路指令不包 括序言指令。
    7: 根据权利要求 6 所述的方法, 其中所述核心代码包含软件管线式环路的指令集合。
    8: 根据权利要求 5 所述的方法, 其中所述参考值等于零, 且其中响应于执行具有所述 环路结束指示符的所述指令而使所述谓词触发计数及所述环路计数递减。
    9: 根据权利要求 5 所述的方法, 其中所述环路指令包括基于所述谓词而有条件地执行 的至少一个指令。
    10: 根据权利要求 9 所述的方法, 其中所述环路指令包括核心代码但所述环路指令不 包括序言指令。
    11: 一种设备, 其包含 : 谓词计数寄存器, 其用于存储谓词触发计数 ; 初始化逻辑电路, 其用于初始化程序环路的环路参数 ; 处理器, 其用于执行所述程序环路的环路指令且执行包括环路结束指示符的包 ; 逻辑电路, 其用于修改所述谓词触发计数且修改所述程序环路的环路计数 ; 比较逻辑电路, 其用于比较所述谓词触发计数与参考值 ; 以及 逻辑电路, 其用于基于所述比较的结果而改变影响所述程序环路中的至少一个指令的 谓词的值。
    12: 根据权利要求 11 所述的设备, 其中所述初始化逻辑电路在所述环路指令的执行之 前清除所述谓词。 2
    13: 一种硬件环路控制逻辑电路, 其包含 : 检测单元, 其用于检测程序环路的环路结束指示符 ; 递减单元, 其用于使环路计数递减且使谓词触发计数器递减 ; 以及 比较单元, 其用于比较所述谓词触发计数器与参考以确定何时设定谓词值。
    14: 根据权利要求 13 所述的硬件环路控制逻辑电路, 其中所述程序环路包括基于所述 谓词值而有条件地执行的至少一个指令。
    15: 一种系统, 其包含 : 硬件环路控制逻辑电路, 其包含 : 检测单元, 其用于检测程序环路的环路结束指示符 ; 递减单元, 其用于使环路计数递减且使谓词触发计数器递减 ; 以及 比较单元, 其用于比较所述谓词触发计数器与参考以确定何时设定谓词值 ; 以及 处理器, 其执行触发所述硬件环路控制逻辑电路的执行的特殊指令。
    16: 根据权利要求 15 所述的系统, 其中所述特殊指令包含 spNloop 类型指令, 其中 N 为 小于四的正整数且其中 N 指示待在改变所述谓词值之前执行的所述程序环路的环路数目。
    17: 根据权利要求 16 所述的系统, 其中在执行所述 spNloop 类型指令之后, 即刻在设定 所述谓词值之前计算值且不存储所述所计算的值。
    18: 根据权利要求 16 所述的系统, 其中所述 spNloop 类型指令包括包括程序环路设置 信息的数据字段。
    19: 根据权利要求 18 所述的系统, 其中所述检测单元经配置以剖析极长指令字 (VLIW) 包以检测所述环路结束指示符, 其中所述递减单元包括用于在检测到所述环路结束指示符 时自动地使所述谓词触发计数器递减的计数器, 且其中所述比较单元包括用于自动地识别 所述谓词触发计数器的从一值到零值的转变的比较器。
    20: 根据权利要求 16 所述的系统, 其中所述 spNloop 类型指令是结合软件管线环路应 用程序来使用。
    21: 根据权利要求 17 所述的系统, 其中所述处理器为极长指令字 (VLIW) 类型处理器, 所述处理器包括所述硬件环路控制逻辑电路, 且其中所述程序环路中的多个指令由所述处 理器并行地执行。
    22: 根据权利要求 18 所述的系统, 其中 N 识别序言计数。
    23: 根据权利要求 16 所述的系统, 其中所述程序环路的至少一个指令基于所述谓词值 而有条件地存储数据。

    说明书


    环路控制系统及方法

        【技术领域】
         本发明大体来说涉及环路控制系统及方法。背景技术 技术的进步已产生更小且更强大的计算装置。举例来说, 当前存在多种便携式个 人计算装置, 包括无线计算装置, 例如便携式无线电话、 个人数字助理 (PDA) 及寻呼装置, 其小型、 轻质且易于由用户携带。更具体来说, 便携式计算装置 ( 例如, 蜂窝式电话及 IP 电 话 ) 可经由无线网络传送语音及数据包。另外, 许多所述便携式无线装置还并入有其它类 型的装置。举例来说, 无线电话也可包括数字静态相机、 数字摄像机、 数字记录器及音频文 件播放器。又, 所述无线电话可处理可执行指令, 包括软件应用程序, 例如可用于接入因特 网的网页浏览器应用程序。因而, 这些无线电话可包括显著计算能力。
         在软件应用程序内重复的可执行指令可作为软件管线式环路而由处理器执行。 软 件管线化为用于将来自程序环路的不同逻辑反复的非相依指令调度为同时执行的方法。 来
         自环路的不同逻辑反复的重叠指令增加了用于有效处理的并行性的量。举例来说, 可在计 算装置 ( 例如, 无线移动装置 ) 中的处理器的单独的执行单元处并行地执行第一环路指令 及第二环路指令, 第一指令对应于第一环路反复而第二指令对应于第二环路反复。尽管所 述软件管线式环路可比非管线式环路更有效地执行, 但用于防止填充管线时归因于指令之 间的数据相依性的数据冒险 (data hazard) 的额外指令 ( 例如, 序言指令 ) 及用于防止排 空管线时的存储器存取冒险的额外指令 ( 例如, 收尾指令 ) 可增加执行应用程序所需的存 储器的量。所述额外存储器可能不易于在无线计算装置处可用。 发明内容
         在特定实施例中, 揭示一种包括硬件环路控制逻辑电路的系统。所述硬件环路控 制逻辑电路包括用于检测程序环路的环路结束指示符的检测单元、 用于使环路计数递减且 使谓词触发计数器递减的递减单元, 及用于比较谓词触发计数器与参考以确定何时设定谓 词值的比较单元。 所述系统还包括执行触发硬件环路控制逻辑电路的执行的特殊指令的处 理器。 具有硬件环路控制逻辑电路的系统的使用使得能够在无序言指令的情况下执行软件 管线环路, 借此使用减少的存储器。
         在另一特定实施例中, 揭示一种包括用于存储谓词触发计数的谓词计数寄存器的 设备。所述设备还包括用于初始化程序环路的环路参数的初始化逻辑电路。所述设备包括 用于执行程序环路的环路指令且执行包括环路结束指示符的包的处理器。 所述设备还包括 用于修改谓词触发计数且修改程序环路的环路计数的逻辑电路。 所述设备还包括用于比较 谓词触发计数与参考值的比较逻辑电路。 所述设备进一步包括用于基于所述比较的结果而 改变影响程序环路中的至少一个指令的谓词的值的逻辑电路。
         在另一特定实施例中, 揭示一种处理环路指令的方法。所述方法包括在特殊寄存 器中初始化环路参数, 其中所述特殊寄存器包括谓词触发计数。所述方法还包括执行环路指令且执行具有环路结束指示符的包。 所述方法进一步包括修改谓词触发计数且修改环路 计数。在谓词触发计数等于参考值时, 所述方法包括改变影响环路指令中的至少一者的谓 词的值。
         在另一特定实施例中, 揭示一种处理环路中的指令集合的方法。所述方法包括在 执行特定类型的环路指令之后即刻自动地初始化谓词触发计数器以指示在设定谓词值之 前待执行的环路的反复的数目。所述方法还包括在环路反复期间执行所述指令集合, 且在 检测到环路的环路结束指示符之后即刻自动地触发环路控制硬件以修改谓词触发计数器 且比较谓词触发计数器与参考以确定何时设定谓词值。 基于所述谓词值而有条件地执行所 述指令集合中的所述指令中的至少一者。
         由所揭示的实施例中的至少一者提供的一个特定优点是作为管线式软件环路执 行的指令的减小的代码大小、 较低功率操作及较高速处理。 本发明的其它方面、 优点及特征 将在审阅包括以下章节的整个申请案之后变得显而易见 : 附图说明、 具体实施方式及权利 要求书。 附图说明 图 1 为环路控制系统的第一说明性实施例的框图 ;
         图 2 为环路控制系统的第二说明性实施例的框图 ;
         图 3 为说明软件管线式环路的处理的总图 ;
         图 4 为可由图 1 或图 2 的环路控制系统执行的环路控制方法的第一说明性实施例 的流程图 ;
         图 5 为可由图 1 或图 2 的环路控制系统执行的环路控制方法的第二说明性实施例 的流程图 ; 以及
         图 6 为包括具有谓词计数器的软件管线式环路硬件控制逻辑电路的无线处理装 置的特定说明性实施例的框图。
         具体实施方式
         参看图 1, 描绘环路控制系统的第一说明性实施例且大体将其指定为 100。系统 100 可为计算机、 便携式无线装置、 无线电话或执行软件指令的任何其它装置的一部分。系 统 100 包括具有硬件环路控制逻辑电路 104 的处理器 102。
         处理器 102 经配置以执行环路指令 120。 环路指令 120 包括使用谓词逻辑电路 110 的至少一个有条件地执行的环路指令 122。举例来说, 当谓词逻辑电路 110 存储评估为真 的谓词值时, 可由处理器 102 执行有条件地执行的环路指令 122, 且当谓词逻辑电路 110 存 储评估为假的谓词值时, 不可执行有条件地执行的环路指令 122。举例来说, 执行环路指令 120 使得处理器 102 能够有效地执行重复操作, 例如针对多媒体软件应用程序或数字信号 处理操作。
         环路控制值 106 可由硬件环路控制逻辑电路 104 及谓词设定逻辑电路 108 存取。 谓词设定逻辑电路 108 耦合到谓词逻辑电路 110。在特定实施例中, 谓词逻辑电路 110 可 包括适于存储具有假值 ( 例如, 逻辑 “0” 值 ) 或真值 ( 例如, 逻辑 “1” 值 ) 的数据位的锁存 器或其它存储装置。通过使用硬件环路控制逻辑电路 104 及谓词设定逻辑电路 108, 可以紧凑形式对软件管线式环路进行编码, 其中用于初始化软件管线的管线式环路级可用结合 系统 100 的硬件环路控制逻辑电路 104 工作的一个或一个以上有条件地执行的环路指令替 代, 如下文将描述。
         在特定实施例中, 硬件环路控制逻辑电路 104 包括适于辨识对应于环路指令 120 的软件环路的开始的电路。硬件环路控制逻辑电路 104 可适于最初设定且修改环路控制值 106 以初始化并控制由处理器 102 进行的环路指令 120 的执行。 特定来说, 硬件环路控制逻 辑电路 104 适于初始化环路控制值 106 的谓词计数器 124。除谓词计数器 124 外, 环路控制 值 106 可包括用于控制环路的操作的其它值, 例如环路开始地址及环路反复的数目, 此作 为说明性实例。
         可由硬件环路控制逻辑电路 104 将谓词计数器 124 初始化为对应于处理循环的数 目的值, 所述处理循环用以在处理器 102 处填充包括环路指令 120 的软件管线式环路。大 体来说, 处理器 102 可以管线式方式将每一环路反复作为可在多个执行单元 ( 未展示 ) 处 同时执行的多个连续管线级来执行。举例来说, 当处理器 102 执行具有三个管线级的深度 的软件管线式环路中的环路指令 120 时, 可将谓词计数器 124 初始化到为三的值。具有三 个管线级的深度的软件管线式环路的实例描绘于图 3 中。 硬件环路控制逻辑电路 104 可进一步适于检测处理器 102 处的环路反复条件且针 对环路的每一反复修改谓词计数器 124。举例来说, 谓词计数器 124 可保持有响应于硬件 环路控制逻辑电路 104 而连续递减直到谓词计数器 124 的值达到参考值为止的初始化值。 当软件管线式环路被完全管线化时, 参考值可对应于谓词计数器 124 的值, 其中软件环路 的所有指令处理并未因管线相依性而无效的数据。举例来说, 在稍后操作使用由环路反复 内的较早操作产生的数据且环路被管线化以使得较早操作是在第一管线级处执行且稍后 操作是在与第一管线级同时执行的稍后管线级处执行的情况下, 稍后管线级对第一管线级 处所产生的数据的相依性将使得稍后管线级处理无效数据, 直到在稍后管线级处接收到第 一管线级处所产生的数据为止。为了说明, 处理器可在单独执行单元处执行环路指令 “A = A+1” 及 “将 A 存储到存储器” , 但 “将 A 存储到存储器” 指令将存储无效结果直到接收到来 自第一 “A = A+1” 指令的数据为止。
         谓词设定逻辑电路 108 可适于响应于检测到谓词计数器 124 的值而设定谓词逻辑 电路 110 处所存储的谓词值。在特定实施例中, 谓词设定逻辑电路 108 包括用于执行谓词 计数器 124 处的值与参考值之间的比较的比较逻辑电路 ( 未展示 )。当检测到谓词计数器 124 处的值具有等于参考值的值时, 谓词设定逻辑电路 108 可经配置以自动地设定谓词逻 辑电路 110 处所存储的谓词值。举例来说, 谓词逻辑电路 110 可经初始化成存储假条件, 谓 词计数器 124 可经初始化为软件管线式环路的管线级的数目, 且参考值可为零。当将谓词 计数器 124 递减到零时, 谓词设定逻辑电路 108 可自动地将谓词逻辑电路 110 处的谓词值 改变成真条件。可将谓词逻辑电路 110 处所存储的谓词值的真条件提供到有条件地执行的 环路指令 122 以影响处理器 102 处的环路指令 120 的处理。作为另一实例, 可将谓词计数 器 124 设定到零且可将参考值设定到软件管线式环路的管线级的数目, 且可响应于每一环 路反复而使谓词计数器 124 递增。
         因此, 处理器 102 处的环路初始化及环路控制可由包括硬件环路控制逻辑电路 104、 用于存储环路控制值 106 的锁存器或其它装置的硬件元件来执行, 以实施谓词设定逻
         辑电路 108。通过使用硬件来实施用于软件管线式环路的环路控制逻辑, 可以紧凑形式对 软件环路进行编码, 其中用于初始化软件管线的管线式环路级 ( 称作序言 ) 可用结合系统 100 的硬件而工作的一个或一个以上有条件地执行的环路指令 122 替代。
         参看图 2, 描绘环路控制系统的第二说明性实施例且大体将其指定为 200。系统 200 包括处理器 202、 硬件环路控制逻辑电路 204, 及环路参数控制寄存器 206。硬件环路控 制逻辑电路 204 可对应于图 1 中所描绘的硬件环路控制逻辑电路 104。环路参数控制寄存 器 206 处所存储的数据可对应于图 1 中所描绘的环路控制值 106, 且处理器 202 可对应于图 1 中所描绘的处理器 102。
         在特定实施例中, 环路参数控制寄存器 206 包括存储表示待于处理器 202 处执行 的软件管线式环路的开始地址的数据的开始地址寄存器 212。环路参数控制寄存器 206 还 包括存储对应于软件管线式环路的环路计数值的环路计数寄存器 214。环路参数控制寄存 器 206 进一步包括存储与待于处理器 202 处执行的软件管线式环路相关联的谓词触发计数 值的谓词触发计数寄存器 216。 大体来说, 环路参数控制寄存器 206 响应于从硬件控制逻辑 电路 204 所接收的控制输入。
         在特定实施例中, 硬件环路控制逻辑电路 204 包括初始化单元 220、 递减单元 222、 比较单元 230、 检测单元 228, 及谓词改变单元 234。初始化单元 220 可响应于在处理器 202 处执行的特殊指令 240。初始化单元 220 可适于确定开始地址且设定开始地址寄存器 212 处的值。初始化单元 220 可进一步适于设定递减单元 222 的环路计数器 224 的初始值。初 始化单元 220 也可适于设定递减单元 222 的谓词触发计数器 226 的初始值。 在特定实施例中, 递减单元 222 响应于检测单元 228, 以响应于来自检测单元 228 的指示处理器 202 处的环路反复的完成的控制输入而使环路计数器 224 及谓词触发计数器 226 的值递减。特定来说, 可将环路计数器 224 初始化为待于处理器 202 处执行的环路指 令 250 的反复的总数目, 且可响应于在检测单元 228 处所检测的每一环路反复而使环路计 数器 224 递减。另外, 可将谓词触发计数器 226 初始化为对应于完全填充软件管线式环路 的管线以便使用来自先前级的有效数据执行顺序管线级所需的执行循环的数目的值。 可响 应于由检测单元 228 检测到的环路反复而使谓词触发计数器 226 递减。环路计数器 224 及 谓词触发计数器 226 可分别将值写入到环路计数寄存器 214 及谓词触发计数寄存器 216, 且 可响应于递减单元 222 的操作而更新相应值。
         在特定实施例中, 检测单元 228 经配置以检测处理器 202 处的环路结束条件。举 例来说, 检测单元 228 可包括用于在处理器 202 处剖析具有环路结束指示符的极长指令字 (VLIW) 包 254 的剖析逻辑电路。在特定实施例中, 环路结束指示符包括 VLIW 包 254 内具有 指定值的预定位字段。当检测到环路结束指示符时, 检测单元 228 将控制输入提供到递减 单元 222 以使计数器 224 及 226 中的一者或两者递减。
         在特定实施例中, 比较单元 230 响应于谓词触发计数寄存器 216 处所存储的值。 比 较单元 230 可包括适于比较谓词触发计数寄存器 216 的值与参考值且将所述比较的输出提 供到谓词改变单元 234 的比较器 232。 举例来说, 在特定实施例中, 参考值可为零, 且比较单 元 230 可经配置以将零值输出提供到谓词改变单元 234 直到谓词触发计数寄存器 216 具有 零值或负值为止。在特定实施例中, 比较器 232 适于自动地识别谓词触发计数器 226 从一 值到零值的转变 ( 例如, 经由谓词触发计数寄存器 216)。
         在特定实施例中, 谓词改变单元 234 响应于从比较单元 230 所接收的控制信号, 以 设定或重设谓词逻辑电路 210 处所存储的谓词值。举例来说, 谓词改变单元 234 可经配置 以将谓词逻辑电路 210 处所存储的谓词值初始化为假条件。当谓词改变单元 234 接收到来 自比较单元 230 的指示谓词触发计数寄存器 216 的值等于参考值的控制输入时, 谓词改变 单元 234 可将谓词逻辑电路 210 处的谓词值设定为真值。谓词改变单元 234 也可响应于初 始化单元 220, 以在执行环路指令之前清除谓词逻辑电路 210 处所存储的谓词值。
         在特定实施例中, 谓词逻辑电路 210 可包括经配置以存储逻辑真值或逻辑假值的 一个或一个以上硬件组件。谓词逻辑电路 210 可由处理器 202 存取以结合执行环路指令 250 而使用。
         在特定实施例中, 处理器 202 经配置以接收并执行与软件管线式环路相关联的指 令。特定来说, 处理器 202 经配置以执行可指定与后续软件管线式环路相关联的初始化值 及控制值的特殊指令 240。特殊指令 240 的初始化值及控制值可由硬件环路控制逻辑电路 204 来检测或提供到硬件环路控制逻辑电路 204。
         另外, 处理器 202 经配置以接收环路指令 250 并将其作为软件管线式环路来执行。 举例来说, 处理器 202 可适于并行地 ( 例如, 在处理器 202 的多个并行执行单元处 ) 执行环 路指令 250 中的一者或一者以上。另外, 处理器 202 可将环路指令 250 作为软件管线式指 令来执行, 以便可在处理器 202 处的各种顺序管线级中执行环路指令 250 的单次反复。 在特定实施例中, 环路指令 250 包括至少一个有条件地执行的环路指令 252。所 述至少一个有条件地执行的环路指令 252 响应于谓词逻辑电路 210 处所存储的谓词值以确 定执行的条件。在特定实施例中, 有条件地执行的环路指令 252 基于谓词逻辑电路 210 处 的谓词值而有条件地存储数据, 以便不存储在将谓词值设定为 “真” 之前所计算的值。举例 来说, 有条件地执行的环路指令 252 可包括用于基于在环路指令 250 的当前反复中较早执 行的计算而将数据写入到存储器 ( 例如, 写入到输出寄存器 ( 未展示 )) 的写入命令。当在 接收到由较早计算产生的数据之前执行写入时, 在环路被完全管线化之前执行有条件地执 行的环路指令 252 将会将无效数据写入到存储器。因此, 有条件地执行的环路指令 252 的 执行可以谓词逻辑电路 210 处所存储的谓词值为条件, 其中谓词逻辑电路 210 处所存储的 谓词值指示软件管线式环路的对应于环路指令 250 的条件。为了说明, 处理器 202 可执行 环路指令 “A = A+1” 及 “将 A 存储到存储器” , 但 “将 A 存储到存储器” 指令将存储无效结果 直到接收到来自第一 “A = A+1” 指令的数据为止。因此, 可基于最初经设定为 “假” 且在已 完成第一 “A = A+1” 指令时改变成 “真” 的谓词值而有条件地执行 “将 A 存储到存储器” 指 令。
         参看图 3, 描绘处理软件管线式环路的特定说明性实施例且大体将其指定为 300。 代表性指令管线级 302、 304、 306 及 308 表示软件管线式环路的管线级。谓词值 310 指示经 指定为 “P3” 且可通过在指令管线级 302 到 308 处执行的所述指令中的一者或一者以上存 取的谓词处的值。硬件谓词环路计数器 312 指示对应于软件管线式环路的递减计数值。针 对连续时钟循环描绘与指令管线级 302 到 308 中的每一者、 谓词值 310 及硬件谓词环路计 数器 312 相关联的值, 连续时钟循环在环路开始时间周期以时钟循环 1 开始, 且在稍后时间 周期进行到时钟循环 23。在特定实施例中, 每一时钟循环对应于管线式处理器处的执行循 环。
         在说明性实施例中, 系统 300 表示图 1 中所描绘的处理器 102 处的环路指令 120 的执行, 其中谓词值 310 反映谓词逻辑电路 110 处所存储的谓词值, 且硬件谓词环路计数器 312 对应于谓词计数器 124。在另一说明性实施例中, 系统 300 表示图 2 中所描绘的处理器 202 处的环路指令 250 的执行, 其中谓词值 310 对应于谓词逻辑电路 210 处所存储的谓词 值, 且硬件谓词环路计数器 312 对应于谓词触发计数寄存器 216 处所存储的谓词触发计数 器 226 的输出。
         在特定实施例中, 经由分解图中作为环路初始化指令 330 说明的特殊指令来起始 软件管线式环路。环路初始化指令 330 包括具有形式 spNLoop 的指令名称 334, 其中 “N” 具 有为三的值。环路初始化指令 330 包括包括程序环路设置信息的数据字段。举例来说, 环 路初始化指令 330 包括对应于软件环路的开始地址的第一数据字段 336。环路初始化指令 330 还具有对应于指示待执行的环路的反复的数目的环路计数的第二数据字段 338。当由 处理器执行环路初始化指令 330 时, 环路初始化指令 330 可返回对应于谓词的初始化的初 始值 ( 例如, 谓词 P3332 的值 ), 其对应于谓词值 310。
         因此, 环路初始化指令 330 可指示环路的指令的开始地址、 环路的反复的数目, 且 可进一步通过名称 334 中的 “N” 的值指示硬件谓词环路计数器 312 的初始值。在所说明的 实施例中, 名称 sp3loop 指示硬件谓词环路计数器 312 处为三的初始值。 “N” 的其它值可用 于指示硬件谓词环路计数器 312 的其它初始值。作为说明性实例, “sp1Loop” 可指示为一 的初始值, 且 “sp2Loop” 可指示为二的初始值。可设定硬件谓词环路计数器 312 的初始值 以防止执行有条件操作直到对环路进行足够管线化为止。在特定实施例中, “N” 可为小于 四的正整数且可指示序言计数或待在改变谓词值 310 之前执行的程序环路的环路数目。
         在处理软件管线式环路初始化指令 330 之后, 软件管线式环路开始, 将其说明为 包括具有经标记为 A、 B、 C 及 D 的指令的 VLIW 包。指令 A、 B、 C 及 D 可各自在处理器处 ( 例 如, 在单一处理器的多个执行单元处 ) 并行执行。此外, 指令 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。软件管线环路的执行的其中管线是满的部分被指定为核 心 322。软件管线环路的其中第一指令的最终执行已完成但其它管线指令尚未执行的部分 大体被称作收尾 324。
         如所说明, 在时钟循环一, 将初始值 “三” 存储于硬件谓词环路计数器 312 处。类 似地, 将谓词值 P3310 初始化为假值。软件环路从针对环路的第一反复执行指令 A 而开始。 指令 B、 C 及 D 也可与 A 并行执行, 如将在核心部分 322 中执行 ; 然而, 因为指令 B、 C及D可 视从先前指令输出的数据而定, 所以在时钟循环一中指令 B、 C 及 D 的结果可能无效。另外, 当指令 D 包括用于将数据存储于存储器处的写入指令时, 在待写入的数据为指示第一循环 的指令 A、 B 及 C 的输出的有效数据之前不应执行指令 D。因此, 可基于谓词值 310 而有条 件地执行指令 D, 将其说明为指示特定时钟循环中的不执行指令的管线级的阴影化。 因为谓词值 310 为假, 所以不执行第四指令管线级 308 中的有条件写入指令 D。
         继续到时钟循环二, 指令 B 接收来自指令 A 的输出且针对环路的第一反复而执行, 其经指示为 B(1)。类似地, 使用与环路的第二反复相关联的数据执行指令 A, 其经指示为 A(2)。可执行指令 C 及 D ; 然而, 可能归因于对先前指令的数据相依性而未界定输入值及因 此指令 C 及 D 中的每一者的输出。如所说明, 在时钟循环 2 中, 将硬件谓词环路计数器从为 “三” 的值递减到为 “二” 的值, 且谓词值 310 保持为假。因为谓词值 310 为假, 所以不执行 第四指令管线级 308 中的有条件写入指令 D。
         继续到时钟循环三, 对应于环路的第一反复而执行第三指令管线级 306 处的指令 C。对应于环路的第二反复而在第二指令管线级 304 处执行指令 B, 且对应于环路的第三反 复而在第一指令管线级 302 处执行指令 A。将硬件谓词环路计数器 312 从为 “二” 的值递减 到为 “一” 的值, 且谓词值 310 保持为假。因为谓词值 310 为假, 所以不执行有条件写入指 令 D。
         在时钟循环四, 软件环路的序言部分 320 已结束且核心部分 322 已开始。大体来 说, 在核心部分 322 中, 软件管线已经填充且指令管线级 302 到 308 中的每一者对有效数据 进行操作。将硬件谓词环路计数器 312 递减到值 “零” , 其指示管线是满的且序言级 302 结 束。响应于等于 “零” 的硬件谓词环路计数器 312, 将谓词值 310 设定为真条件。在特定实 施例中, 由经配置以比较谓词环路计数器 312 的值与参考值的硬件逻辑电路 ( 例如, 图2中 所描绘的比较器 232) 来设定谓词值 310。 从时钟循环四到时钟循环二十, 环路保持在执行的核心部分 322 中, 其中管线保 持为满的且所有管线级 302 到 308 以顺序次序执行指令以适应所述指令之间的数据相依 性。因为谓词值 310 评估为真, 所以在时钟循环四且继续到时钟循环二十期间执行包括指 令 D 的所有指令。在时钟循环二十一, 收尾部分 324 开始, 其中第一管线级 302 已完成针对 所有二十个环路反复执行指令 A, 但剩余管线级 304、 306 及 308 继续处理与软件环路的先前 反复相关联的指令。举例来说, 在时钟循环二十一, 指令 B 的执行对应于反复 20, 指令 C 的 执行对应于反复 19, 且指令 D 的执行对应于反复 18。 因此, 在时钟循环二十一, 执行指令 B、 C 及 D 但不执行指令 A。在时钟循环二十二, 执行指令 C 及 D, 但不执行指令 A 及 B。在时钟 循环二十三, 执行指令 D 以完成环路的最后反复。
         如所说明, 可使用包括指令 A、 B、 C 及 D 的单一 VLIW 包执行序言部分 320 及核心部 分 322, 其中指令 D 的执行基于谓词值 P3310 而为有条件的, 且包括环路结束指示符 ( 其经 表示为 “{A, B, C, if(P3)D} : endloop” )。因此, 在序言部分 320 与核心部分 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 可替代地执行核心指令。
         针对序言部分 320 及核心部分 322 使用单一 VLIW 包使得能够使用比执行特殊序 言指令以填充管线的情况下少的存储器来执行软件环路。 通过初始化硬件谓词环路计数器 并使其递减以对应于序言部分 320 期间的非零值及核心部分 322 处的零值 ( 当环路被完全
         管线化时 ), 可设定谓词值 310 以将有条件地执行的数据相依指令 ( 例如, 指令 D) 的执行 限制到核心 ( 当管线满时 )。可结合图 1 的处理器 102 使用谓词逻辑电路 110 及谓词计数 器 124 来执行所述软件管线式环路处理, 或通过结合图 2 中所描绘的处理器 202 使用谓词 逻辑电路 210、 谓词触发计数器 226 及谓词触发计数寄存器 216 来执行所述软件管线式环路 处理。
         参看图 4, 其描绘环路控制方法的第一说明性实施例的流程图且大体将其指定为 400。在特定实施例中, 可使用图 1 及图 2 中所描绘的系统中的一者或一者以上来执行处理 循环中的指令集合的方法 400。 在 402 处, 在执行特定类型的环路指令之后即刻自动地初始 化谓词触发计数器以指示在设定谓词值之前的环路的反复数目。 可将所述指令集合作为软 件管线式环路来执行, 且谓词触发计数器可基于软件管线式环路的管线级的数目。在说明 性实施例中, 特定类型的环路指令为图 3 中所描绘的环路初始化指令 330。
         移到 404, 在环路反复期间执行所述指令集合。 基于所述谓词值而有条件地执行所 述指令集合中的所述指令中的至少一者。举例来说, 有条件地执行的所述指令集合中的所 述指令中的至少一者可基于谓词值而将数据有条件地写入到输出寄存器。
         继续到 406, 在检测到环路的环路结束指示符之后, 即刻自动地触发修改谓词触发 计数器的环路控制硬件。举例来说, 环路控制硬件可响应于检测到环路结束指示符而使谓 词触发计数器递减。前进到 408, 在检测到环路的环路结束指示符之后, 即刻将谓词触发计 数器与参考相比较以确定何时设定谓词值。在特定实施例中, 所述参考为零值。 在决策 410 处, 针对谓词触发计数器是否等于所述参考作出确定。在谓词触发计 数器不等于所述参考的情况下, 处理在 404 处继续, 在 404 处, 在下一个环路反复期间执行 所述指令集合。在谓词触发计数器等于所述参考的情况下, 在 412 处设定谓词值, 且处理返 回到 404, 在 404 处, 在下一个环路反复期间执行所述指令集合。
         因此, 可通过初始化谓词触发计数器且响应于谓词触发计数器与所述参考的比较 而设定谓词来控制有条件地执行的指令的执行。 因此实现不具有单独序言指令及核心指令 的软件管线式环路的执行 ( 例如, 图 3 中所描绘 ) 且可使用图 1 及图 2 中所描绘的系统来 执行所述软件管线式环路。
         参看图 5, 描绘环路控制方法的第二说明性实施例的流程图且大体将其指定为 500。在特定实施例中, 可使用图 1 及图 2 中所描绘的系统中的一者或一者以上来执行处理 环路指令的方法 500。在 502 处, 在包括谓词触发计数的特殊寄存器中初始化环路参数。在 特定实施例中, 将谓词值初始化为假条件, 且谓词触发计数对应于软件管线式环路的管线 深度。
         进行到 504, 执行环路指令。在特定实施例中, 环路指令包括核心代码但不包括序 言指令。 核心代码可包括软件管线式环路的指令集合。 前进到 506, 执行具有环路结束指示 符的指令。移到 508, 修改谓词触发计数且修改环路计数。继续到 510, 当谓词触发计数等 于参考值时, 改变影响环路指令中的至少一者的谓词的值。
         举例来说, 环路指令可包括基于谓词而有条件地执行的至少一个指令。当将谓词 触发计数器初始化为软件管线深度时, 将谓词触发计数递减到等于参考值 “零” 可指示软件 管线式环路的序言部分的结束及环路的核心部分的开始 ( 当管线填满时 )。可因此在管线 填满之前不执行基于谓词而执行的有条件地执行的指令。因此, 当使用谓词来防止在管线
         经足够填充之前可产生有害结果的指令的执行时, 也可在序言中执行核心指令。
         图 1 及图 2 中所描绘的系统提供可在其上执行方法 500 的系统的实例。 举例来说, 可在图 2 的环路参数控制寄存器 206 中初始化环路参数, 可由递减单元 222 来使环路计数 及谓词触发计数递减, 且可由图 2 的谓词改变单元 234 来改变谓词 210 的值。
         参看图 6, 描绘包括具有谓词计数器的软件管线式环路硬件控制逻辑电路 664 的 无线处理装置的特定说明性实施例的框图且大体将其指定为 600。装置 600 包括耦合到存 储器 632 的处理器, 例如数字信号处理器 (DSP)610。具有谓词计数器的软件管线式环路硬 件控制逻辑电路 664 可包括图 1 及图 2 中所描绘的系统中的一者或一者以上且可根据图 3 到图 5 中的一者或一者以上或其任何组合而操作。在说明性实施例中, 系统 600 为无线电 话。
         图 6 还展示耦合到数字信号处理器 610 及显示器 628 的显示器控制器 626。编码 器 / 解码器 (CODEC)634 也可耦合到数字信号处理器 610。扬声器 636 及麦克风 638 可耦 合到 CODEC 634。调制解调器 640 可耦合到数字信号处理器 610 且进一步耦合到无线天线 642。
         在特定实施例中, DSP 610、 显示器控制器 626、 存储器 632、 CODEC 634 及调制解调 器 640 包括于系统级封装或芯片上系统装置 622 中。在特定实施例中, 输入装置 630 及电 源 644 耦合到芯片上系统 622。此外, 在特定实施例中, 如图 6 中所说明, 显示器 628、 输入 装置 630、 扬声器 636、 麦克风 638、 无线天线 642 及电源 644 在芯片上系统装置 622 的外部。 然而, 每一者可耦合到芯片上系统装置 622 的组件 ( 例如, 接口或控制器 )。 在操作期间, 具有谓词计数器的软件管线式环路硬件控制逻辑 664 可用于实现数 字信号处理器 610 处的有效软件管线式环路处理。举例来说, 具有谓词计数器的软件管线 式环路硬件控制逻辑电路 664 可包括用于在数字信号处理器 610 处检测环路初始化指令、 环路结束指令或环路初始化指令与环路结束指令两者的电路或装置, 且可操作以通过控制 一个或一个以上环路计数器 ( 例如, 序言计数器 )、 一个或一个以上谓词或其任何组合的值 来控制数字信号处理器 610 处的环路操作。尽管经描绘为包括于数字信号处理器 610 中, 但具有谓词计数器的软件管线式环路硬件控制逻辑电路 664 可与一个或一个以上处理器 分离 ( 例如, 在芯片上系统装置 622 的控制部分处 )。大体来说, 可在具有一个或一个以上 并行管线的任一处理器中实施软件管线式环路, 所述一个或一个以上并行管线使得同一软 件环路中的指令能够跨越所述一个或一个以上并行管线而执行。另外, 应理解, 装置 600 可 为任何无线处理装置, 例如, 个人数字助理 (PDA)、 音频播放器、 因特网协议 (IP) 电话、 蜂窝 式电话、 移动电话、 膝上型计算机、 笔记型计算机、 模板计算机、 可处理软件管线式环路的任 何其它系统, 或其任何组合。
         所属领域的技术人员应进一步了解, 结合本文中所揭示的实施例所描述的各种说 明性逻辑块、 配置、 模块、 电路及算法步骤可经实施为电子硬件、 计算机软件或两者的组合。 为了清楚地说明硬件与软件的此可互换性, 上文已大体在功能性方面描述了各种说明性组 件、 块、 配置、 模块、 电路及步骤。 将所述功能性实施为硬件还是软件视特定应用及强加于整 个系统的设计约束而定。 所属领域的技术人员可针对每一特定应用以变化的方式实施所描 述的功能性, 但所述实施决策不应被解释为会引起偏离本发明的范围。
         结合本文中所揭示的实施例所描述的方法或算法的步骤可直接体现于硬件中、 由
         处理器执行的软件模块中, 或两者的组合中。软件模块可驻留于随机存取存储器 (RAM)、 快闪存储器、 只读存储器 (ROM)、 可编程只读存储器 (PROM)、 可擦除可编程只读存储器 (EPROM)、 电可擦除可编程只读存储器 (EEPROM)、 寄存器、 硬盘、 可装卸式磁盘、 紧密光盘只 读存储器 (CD-ROM) 或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦 合到处理器, 以使得所述处理器可从所述存储媒体读取信息, 并可将信息写入到所述存储 媒体。在替代例中, 存储媒体可与处理器成一体式。处理器及存储媒体可驻留于专用集成 电路 (ASIC) 中。ASIC 可驻留于计算装置或用户终端中。在替代例中, 处理器及存储媒体可 作为离散组件驻留于计算装置或用户终端中。
         提供所揭示的实施例的先前描述以使得任何所属领域的技术人员能够制造或使 用所揭示的实施例。所属领域的技术人员将显而易见对这些实施例的各种修改, 且可在不 偏离本发明的范围的情况下将本文中所界定的原理应用于其它实施例。因此, 本发明既定 不限于本文中所展示的实施例, 而是应符合与如通过所附权利要求书界定的原理及新颖特 征一致的最宽可能范围。

    关 键  词:
    环路 控制系统 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:环路控制系统及方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1032934.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1