具有simd并行性自动选择的微处理器的制作方法

文档序号:6568211阅读:130来源:国知局
专利名称:具有simd并行性自动选择的微处理器的制作方法
具有SIMD并行性自动选择的微处理器技术领域本标的物涉及用以自动地控制并行数据处理元件(例如,单指令多数据(SIMD) 处理器或类似物)的活动状态(活动及不活动)以使操作并行性程度匹配与所述处理 器的处理操作相关的条件。
背景技术
许多装置利用具有复杂布置的逻辑的集成处理器(例如,微处理器及数字信号处 理器)实施根据程序指令的数据处理功能。需要数字处理多媒体数据(例如,视频、 音频或图形)的应用程序正在消费者中变得日益流行。然而,这种信息的处理是密集 的且已导致尤其适于处理这种数据的处理器体系结构。多媒体数据通常包括相当可观量的"并行"数据。在单个数据单元彼此独立的情 况中数据是"并行的"。因此, 一个数据单元的处理独立于处理另一个单元的处理,也 就是说其不需要等待完成任一其他单元的处理。作为结果,同时并行实施多个这种独立数据处理操作是可能的。某些类型的数据(尤其是通用格式的多媒体数据)的这种 特征已导致形成并行处理器,所述并行处理器可同时并行操纵若干数据单元。举例来 说,多媒体数据的并行处理常常有助于相当大地增加总处理速度。已开发许多不同体系结构及指令类型以供并行数据处理(尤其是多媒体应用)。 举例来说,单指令多数据(SIMD)处理器即并行处理数据。使用SIMD指令的多媒体 处理通过在多个并行数据元件上操作而降低执行特定程序任务所需的指令的总数量且 加速性能。尽管所述处理器可执行单个指令流,但所述指令的SIMD执行同时地处理 多个并行数据流。处理器(包括诸如SIMD处理器的高度并行数据处理类型的装置)的许多应用对 所述处理器电路系统可消耗的功率及能量存在严格的约束条件。举例来说,诸如蜂窝 式电话、PDA (便携式数字助理)及手持式电视游戏的便携式装置利用电池电源。然 而,这类装置包括精密的微处理器且在某些情况中使用协处理器以进行与多媒体相关 的处理。用于这类应用的处理器设计通常保证精细控制功率及能量消耗以延长电池电 源中电荷的使用寿命以及所包含芯片的使用寿命。处理器的体系结构建立通过所述处理器的数据通路的"宽度",也就是说可处理 的数据的最大大小。并行处理设计(例如,SIMD处理器体系结构)通常经縮放以提 供对应于在既定循环期间所述装置可处理的最大量的并行数据的数据通路宽度。当前可购得的SIMD处理器可同时处理上至128位的数据,这意味着数据通路的总宽度是 128位。然而,在任何既定时间,所述处理器的并行部分可正在处理更小单元的数据。 虽然其他大小是已知的,但现今常见并行处理器提供64位数据通路或128位宽 数据通路。所述数据通路是由并行处理元件构成,然而,所述通路可经配置以处理不 同宽度的数据。举例来说,128位数据通路可分解为较小大小,也就是说,如针对特 定应用所编写的SIMD指令所规定所述处理器可处理128位数据的段节,即8位长、 16位长、32位长或64位长。举例来说,使用8位指令,具有128位宽度数据通路的 处理器可处理16个并行8位数据单元。相反地,对于64位数据通路来说,如果指令 需要128位,则这一数据可分割为两个64位段节,且依次对这两个64位段节执行所 述指令。当然,每一64位段节的处理可需要(例如)8个8位数据单元的并行处理。 通过分割对128位指令的处理,64位宽数据通路可处理128位指令,然而所分割的处 理的时间为更长。这些操作允许优化利用所述处理器的并行资源。然而,会出现特定处理应用不需 要全部处理资源的时候或可能需要全部操作的时候。举例来说,所述处理器的许多功 能或应用完全不需要所述处理器装置的的全部处理能力,或仅在非常有限的时间内需 要所述全部处理能力。在128位数据通路处理器的实例中,应用或其一部分可仅在某 一实质时间段内需要64位数据处理,举例来说,这是因为存在有限量的数据并行性, 将要处理的数据量为低或不存在对速度的迫切需要。然而,如果提供128位宽数据路 径的元件全部被连续完全地供电,则未使用的并行元件正在不必要地消耗能量。作为另一个实例,全部并行处理操作包括所有所述并行元件的密集活动。因此, 所有所述并行元件均正在产生热。某些处理器设计(例如,囊封于低成本应用的塑料 包装中)可能不能经受住高于某一温度的热。在长期内全部阵列的并行元件的连续高 速操作可产生过多的热。为更有效于不需要较高并行性程度的应用,并行处理器可设计有比某些应用所需 并行性程度低的并行性程度。尽管这一折衷可降低功率消耗及(因而)热产生,但在 需要更多并行性其导致浪费能量及低劣性能。因此,需要一种用以根据处理任务及/或环境条件自动地调整这种处理器的并行性 的技术。发明内容本文的教示实现根据所检测的处理条件自动激活/去激活并行可编程数据处理器 的一个或多个元件。本质上,所述控制使并行性的操作程度匹配将由所述并行数据处 理器实施的任务的需要及/或所述处理器的环境条件。举例来说,在不需要时可关闭并 行处理元件以节省能量,或在所述处理器的温度过高时关闭并行处理元件以允许所述 处理器冷却。这种技术的各个方面包含各种操作方法以及并行处理装置。举例来说, 一种控制并行数据处理器的操作并行性的方法包括监视与通过所述并 行数据处理器所实施的处理相关的一个或多个条件。当所述所监视的条件对应于第一 处理状态时,在所述数据处理器的两个并行处理元件内并行执行一个或多个指令,从 而提供第一宽度的数据通路。当所述所监视的条件对应于第二处理状态时,在所述两 个并行处理元件中的第一并行处理元件中执行一个或多个指令。在这种环境下,通过 所述第一元件处理第二更小宽度的数据,同时所述两个并行处理元件中的第二并行处 理元件是不活动的。在典型实施方案中,去激活所述第二元件节省了能量及/或降低了 所述处理器的热产生(也就是,功率消耗)。本发明揭示根据所检测的处理需要或历史记录自动地控制并行性(激活及去激活 至少一个并行处理元件)。这种方法可使所述并行性程度匹配任务需要,所述任务需要 可由需要处理新传入组的指令中或最近所处理的指令中较高宽度的数据的频率所指 示。其他实例根据所感测的环境条件(例如,所述装置的温度)自动地控制并行性。在128位单指令多数据(SIMD)型并行协处理器实例中,并行处理元件可以是 两个64位SIMD算术逻辑单元(ALU)。当这两个单元均在操作时,所述ALU提供 128位宽数据路径且所述协处理器以128位数据处理模式操作。控制逻辑监视处理条 件且检测其保证切换到64位操作的状态。作为响应,所述ALU中的一者被自动地关 闭,且另一个ALU随后执行用于64位宽数据处理的指令。然而,即使在64位模式中, 所述处理器仍可处理用于处理128位数据的指令。举例来说,所述方法可进一步包括 接收调用128位数据的处理的SIMD指令且将所述SIMD指令扩展为两个调用64位数 据宽度的数据的处理的指令。所述方法然后包含通过所述一个在操作的64位ALU依 次执行由所述扩展所得的两个指令。因此,另一种控制并行数据处理器的操作并行性的方法包括在所述数据处理器 的两个并行处理元件中并行执行一个或多个指令以处理第一宽度的数据;感测与通过 所述并行数据处理器的处理相关的条件;及在检测到所感测条件的状态时去激活所述 第二并行处理元件。在这种方法中,在去激活所述第二并行处理元件时,将调用较大 宽度数据的并行数据处理的指令扩展为多个指令。举例来说,两个这种指令调用第二 较小宽度数据的并行数据处理。所述第一并行处理元件依次执行所述两个指令,同时 所述第二并行处理元件被去激活。如所提及,本发明教示还包含适于响应于一个或多个所监视条件控制并行性程度 的并行数据处理器。这种装置的一个实例包含响应于程序指令的第一处理元件,所述 第一处理元件用于处理第一宽度(例如,在一个实施方案中为64位)的数据。所述数 据处理器还包括响应于程序指令的第二处理元件,所述第二处理元件经连接以与所述 第一处理单元并行操作。所述两个处理元件的并行操作提供第二较宽宽度(例如,128位)数据的并行处理。所述处理器还包括用于监视与所述数据处理器的处理操作相关 的条件的控制逻辑。如上文所提及,所监视条件的实例包括诸如所述处理器的温度等 环境条件以及诸如涉及所述第二宽度(例如,128位数据)的处理的频繁程度等与任务相关的条件。所述逻辑根据所监视条件与阈值的关系选择性地激活及去激活所述第 二处理元件。所述逻辑可适于控制所述第二处理元件的激活及去激活以减轻系统失效的潜在可能。给出其中使用不同阈值(关于温度及/或关于128位指令的频率)激活及去激活 所述第二 ALU以提供滞后的实例。作为另一个实例,可(例如)响应于可能指示潜在 系统失效问题的时序测量动态地调整一个或多个所使用的阈值。举例来说,如果与任 务相关的条件阈值过于灵敏,且所述第二ALU在最近的关闭之后马上被再启动,则所 述逻辑可增加相关阈值。额外目标、优点及新颖特征将在以下说明中部分地加以阐述,且在所属技术领域 的技术人员审查以下说明及随附图示后将部分地变得明了或可通过所述实例的产生或 操作而学习。本发明教示的目标及优点可通过实践或使用随附权利要求书中特别指出 的方法、手段及组合来实现及达到。


所述图示仅以举例说明而非限制方式描绘根据本发明教示的一种或多种实施方 案。在所述图示中,相同的参考编号表示相同或相似的元件。图1是可用于理解(例如)SIMD协处理器中的并行处理元件的自动功率及能量 控制的功能性方块图。图2是可用于理解在所述协处理器中自动地在两个不同并行性水平之间进行切换 中所包含的控制操作的实例的简化流程图。
具体实施方式
在以下详细说明中,是以举例说明方式阐述众多具体细节以提供所述相关教示的 透彻理解。然而,所属技术领域的技术人员应了解,可在没有这些细节的情况下实践 本发明教示。在其他例示中,是以一相对高水平而非详细地阐述众所周知的方法、程 序、组件及电路,以免不必要地模糊本发明教示的各个方面。本文所揭示的各个技术涉及在高度并行可编程数据处理器中一个或多个并行处 理元件的自动选择功率及能量控制。如下文更详细论述,所述并行处理器的逻辑检测 何时程序操作(例如,用于特定任务或由于所检测的温度)需要小于所述数据通路的 全宽度。作为响应,所述控制逻辑自动地设定需要一子组所述并行处理能力的操作模 式。可将至少一个不需要的并行处理元件关闭以节省能量及/或降低功率消耗。在稍后 的时间,当所添加能力的操作为适当的时,所述逻辑检测处理条件的改变且自动地将 操作模式设定为较宽数据通路(通常为全宽度)的操作模式。所述模式改变重新激活 先前所关闭的处理元件。本发明教示可应用于具有并行数据处理元件的处理器体系结构。已论述关于SIMD型并行处理器体系结构的实例。现在详细参照随附图示中所图解且于下文论述 的实例。如所述提及,当前可在市场中购得的SIMD设计通常提供64位及128位宽数 据路径。然而,本发明教示可应用于具有更窄或更宽数据通路的并行处理器。图1的 功能性方块解可用于解释自动并行元件功率及能量控制的SMD装置的组件。所 属技术领域的技术人员应认识到,实际SIMD处理器中将包括其他元件。在所述实例 中,所述并行处理装置实施为SIMD协处理器ll (例如)以在相关联的主核心处理器 13的控制下实施多媒体数据处理操作。尽管未显示,当主处理器核心13中运行的应用程序没有正在使用整个协处理器 11时(例如,当不需要多媒体处理时)可提供控制以关闭整个协处理器11。于此论述 将是集中于其中调用至少一些通过所述SIMD装置11的处理,然而不同操作模式将利 用不同水平的装置11的并行处理能力。在操作中,主处理器核心13将运行一个或多个程序,所述程序将调用至少一些 数据的多媒体处理。所执行的指令组将包括SIMD扩展,换句话来说,许多所述指令 将是SIMD型处理指令。主处理器核心13将这些SIMD指令发布到协处理器11,于 此最初将其放置于发布队列(IQ) 15中。所述发布队列本质上是用于在执行之前依次 存储多个SIMD指令的先入先出缓冲装置。IQ级15将指令依次供应到指令扩展级17。 SIMD协处理器11可以许多不同的数 据宽度模式提供并行处理。尽管可存在更多模式或每一模式中所支持的数据宽度的变 化,所述实例显示支持64位操作及128位操作的协处理器11的配置。旗标位(M) 19指示当前操作模式。所述位值可保持于触发器中或作为更大寄存 器(例如,条件寄存器中的)中的位。处理器ll的典型实例将包括32位控制寄存器 (未独立地显示),且模式旗标19可以是所述寄存器中的指定位置处的一个位。如稍 后更多地论述,旗标19被响应于所述处理器的所检测的条件(例如,特定处理任务的 所需并行性水平或所述装置的所检测温度)自动地设定。扩展级17响应于模式旗标 19的状态。所述SIMD协处理器还包括用于在处理之前保持操作数数据的寄存器堆21及执 行级。在这一简单实例中,执行级由两个SIMD型算术逻辑单元(ALU) 23、 25组成。 在128模式中,ALU23及25两者均是活动的,然而在64位模式中,仅第一ALU23 是活动的。在64位模式中,协处理器11仍可处理128位SIMD指令。为此目的,级17通 过将所述128位指令分解为两个各自经构造以处理64位数据的指令而"扩展"所述 128位指令。在64位模式中,级17将所有指令调度到ALU23,所述指令包括原来调 用64位宽数据处理的指令以及从扩展来自IQ级15的SMD指令流中的任何128位指 令所得到的成对64位指令。在128位模式中,级17将指令调度到第一及第二 ALU23、 25两者,以便单元23及25并行操作以提供128位宽SIMD数据处理路径。尽管处理器11执行单个指令流,但这些指令的所述SMD执行同时地并行处理多数据片。举例来说,每一ALU23或25可同时操作2个32位数据字或4个16位数 据字。当单元23及25两者正在并行操作时,则组合的数据处理能力可处理4个32 位数据字或8个16位数据字。并行处理的其他组合也是可能的。在简单实例中,寄存器堆21可包含两个128位宽的数据寄存器,然而可提供额 外寄存器。所属技术领域的技术人员应理解,所述寄存器堆可包含额外寄存器,例如, 16个寄存器,每一个均128位宽。寄存器堆21的控制分割每一 128位数据且将适当 量发送到ALU23及25中的每一者。堆21的D端口是写入端口。经由端口 D,可将 128位宽的数据(例如)从源(未显示)或从由所述ALU输出的结果写入到堆21中 的寄存器。堆21的S端口是读取端口。经由端口S,可将128位宽的数据从堆21中 的寄存器读取到诸如存储器等汇点(未显示)。寄存器堆29的A及B端口是读取端口 , 以用于将所分割的数据(每一者为64位)供应到ALU23及25。对于128位数据处理指令来说,寄存器堆21将所述128位数据的低(最低有效) 半部分供应到第二 ALU 25,且将所述数据的高(最高有效)半部分发送到第一 ALU 23。 对于64位指令来说,所述处理器可选择所述寄存器堆中所述128位数据的所述下位半 部分或所述高位半部分以供应到第一ALU23。在128位模式中,任何64位指令转到 第一(#1) SIMD ALU 23,且128位指令转到SIMD ALU 23及25两者。在64位模式 中,所有64位指令均转到第一 SIMD ALU 23。任何128位指令均转换为两个64位指 令,所述两个64位指令被依次馈送到第一 SIMD ALU 23。本文所揭示的技术根据与通过并行数据处理器所实施的处理相关联的一个或多 个所感测条件自动地控制所述并行数据处理器的操作并行性。在所述实例中,所述自 动控制选择性地激活及去激活第二 (弁2) ALU 25。可经由一个或多个门或开关电路(一般由逻辑门27及29表示)控制所述受控并 行处理元件(也就是说图1实例中的第二 ALU (#2) 25)的操作状态这种门或开关 选择性地供应及收回所述特定元件所需的启用信号。在所述图示中门27及29表现为 AND门,但其应理解为用于选择性地将信号耦合到ALU25的元件的电路一般表示。 这种电路27或29可以是任何类型的逻辑门、开关、其组合或经配置以响应于来自模 式控制31的选择信号将适当类型的信号供应到ALU 25的功能性元件的任何其他电 路。以此方式,模式控制31控制图1的实例中的第二 ALU (#2) 25的活动状态。所 述模式旗标自身可提供门27、 29及(因而)ALU 25的选择激活及去激活的直接控制。 然而,在这种情况中所述ALU将在如模式旗标19的状态改变所指示的操作模式的每 一变换时立刻通电及断电。在多数实施方案中,ALU23及25将包含多级流水线单元, 且当旗标19改变时ALU 25中可能存在多个进行中的指令。所述功率及能量控制逻辑 可响应于模式旗标19,但其可提供跟随状态改变的时滞以允许平缓处理变换。举例来 说,控制31的逻辑可监视ALU25的操作,以便在检测到变换到l位时(从128位模 式移位到64位模式)时,控制31将延迟去激活ALU 25,直至任何剩余的进行中的128位指令已被处理且传出所述ALU。尽管未显示,但模式控制31的逻辑还可提供信 号到所述处理器的其他元件以在变换到128位模式之后控制128位指令的初始应用(例 如)以允许通电ALU25所需的时间。模式控制31可经实施以通过经由适当门或开关电路27或29的操作选择性地启 用及禁用所述单元的操作所需的任何信号而以各种已知方式中的任一者控制第二 ALU (#2) 25的状态。举例来说,可通过到单元25的用于控制单元25内的电路开关 功能的时钟信号(CLK)的受控门控来选择性地启用及禁用ALU 25。在这种实施方案 中,通过切断通过门27到ALU25的时钟信号(CLK)流而禁用ALU 25以便单元25 的电路系统完全不响应于时钟信号而开关。此降低动态功率消耗。为降低在这种实施 方案中的泄露,ALU25的晶体管可设计有相对高的门阈值电压。然而,仅基于所述时 钟信号的门控的控制可允许相对迅速地重启所述ALU。作为另一选择或另外(如图所示),可通过选择性应用或收回到电源端子的连接 而控制所述ALU状态。尽管所实现的连接可以是接地连接或到负电源电压的连接,为 所述实例的目的,门29控制电压V到第二 (#2) SIMDALU25的供应。模式控制31 根据协处理器11的当前操作模式操作门29以给ALU 25通电及断电。在这种实施方 案中,在所述模式旗标移位到l (64位操作)时,模式控制31在已处理任何剩余128 位指令之后禁用ALU 25。在此时,控制31触发门29以切断到用于供应电压V (对 ALU25的电路系统而言)的电源端子的连接。这种类型的切断消除了经由所述单元的 电路系统的动态功率消耗及泄露。第一 (#1) SIMD ALU 23在两种模式中均为活动的。因此,图中显示这一ALU 直接地连接到所述时钟信号(CLK)及供应电压(V),而无门控控制。然而,到处理 元件23的功率及/或时钟信号也可受控(例如)以允许在不需要协处理器ll时将处理 元件23关闭。图1的实例显示根据所述活动操作模式受控的单个并行处理元件ALU 25。所属 技术领域的技术人员应认识到,既定处理器可包括用于多个并行元件的数个相似控制, 所述并行元件可在处理器11操作较窄数据时在相当长的时间段内是不活动的。假设 128位最大宽度,对另一个实例来说,所述第一ALU可实施为两个32位ALU。在这 种情况中,类似于27、 29及31的额外控制系统可控制第二 32位ALU以提供一个32 位SIMD ALU的额外选择性去激活,从而仅留下一个单元活动以供仅32位的操作。模式控制31的操作响应于至少一个所感测条件的状态控制协处理器11的并行 性。当所监视的条件处于第一状态时,在所述数据处理器的两个并行处理元件23及 25中并行执行SIMD指令,从而提供128位宽数据路径。当所监视的条件处于第二状 态时,在第一 (#1)并行处理元件23中执行指令。在这种环境下,通过所述第一元件 处理64位宽数据,同时第二并行处理元件25是不活动的。所述模式控制31还设定模 式旗标19以控制指令扩展级17的操作。由旗标19所指示的模式状态控制级17的调度及扩展操作。举例来说,只要旗标19的位为1,则所述处理器可经配置以处理所有呈64位指令形式的指令。如果偶尔所 述SIMD指令流包括128位指令,指令扩展级17处理器将其分解为两个64位指令且 将其逐一地发送到ALU 23。当旗标19的位为0时,级17切换到128位模式,在此模 式中其将用于128位宽操作的指令引导到ALU 23及25两者而无需扩展。在此模式中, 如果在来自主处理器13的流中存在偶然而64位指令,则级17可将所述64位指令调 度到第一 ALU23。由模式控制31所设定的协处理器11的模式状态控制至少一个并行处理元件(在 所述实例中为第二 ALU 25)的选择性激活及去激活。在128位模式中ALU 25是活动 的(通电的),反之在64位模式中不需要其且在所述模式中将其断电(去激活)。在所图解说明的实施方案中,模式控制31响应于与处理任务相关的条件(所述 处理器处理特定类型指令的频繁程度)。在这种实施方案中,模式控制31还响应于环 境条件(温度)。举例来说,用作模式控制31的状态机或可编程装置的逻辑识别在队 列级15中的指令内的128位指令的数量。如果128位指令的比例或频率处于或高于某 一预定义水平,则模式控制31将模式旗标19设定为0 (128位模式)且激活第二 ALU 25。相反,如果128位指令的比例或频率处于或低于预定义水平,则模式控制31将模 式旗标19设定为1 (64位模式)且起始程序以去激活第二ALU25。所属技术领域的 技术人员应认识到,这种任务敏感控制功能可使用其他监视参数,例如近期历史记录 中(根据某一数量的正在及刚刚通过装置11所处理的指令)64位指令的频率或比例 或任一类型指令的频率。对于环境监视来说,实例性处理器11包括温度感测器33。感测器33提供信号到 模式控制31。控制31根据来自所述温度感测器的信号的水平(实质上根据所述温度 与一个或多个阈值的关系)激活及去激活ALU25及设定模式旗标19。如果在操作于 128位模式中时所感测温度变得过高,则控制31可去激活ALU 25以允许装置11冷却 下来。在一稍后的时间(例如,当存在较低温度读数时),且所述任务调用128位宽数 据处理时,控制31可重启ALU 25且将旗标19设定回128位模式。所属技术领域的 技术人员应认识到,可代替温度或除温度外感测其他环境条件。同样,指令的执行可实质上越权模式控制31的自动操作以允许程序员将所述模 式设定为所需并行性水平。所述模式控制从所述ALU中的一者(25)或从主处理器核 心13接收越权命令。作为响应,模式控制31将设定模式旗标19以指示级17是否将 操作于64位模式,且将提供ALU25的操作状态(关闭或开启)的相应设置。如果使用越权,则在所述处理流程的适当点写入程序以设定所述操作模式。所述 模式设置指令可由程序员写入,或编译器可在将所述程序编译成机器语言代码时插入 所述模式设置指令。协处理器ll可经设计以响应于由ALU23、 25中的一者或两者所 执行的模式指令将模式设定为越权,在这种情况中可以核心13发布所述指令到协处理 器11以供执行的形式写入所述指令。或者,协处理器11可耦合到主处理器核心13, 以便核心13响应于由主处理器核心13所执行的模式指令设定所述模式。还可能是处理器11或13可根据这种越权指令设定所述模式。对所述越权的其他变换也是可能的。举例来说,响应于特定指令来自主处理器核心13或ALU 23、 25的越权命令可越权根据所述与任务相关的条件的自动设置,但不 越权根据关键环境条件的控制,例如以便即使与由根据明确指令的越权所提供的设置 相反,模式控制31仍可响应于过高温度而降低并行性。从上文论述应明了 ,所述模式控制可自动地响应于各种所监视的与所述处理器或 其处理操作相关的条件的状态。同样,各种不同算法可经设计以实施所需并行控制功 能。为完全地了解本发明教示的优点,设想一个实例将会有助于此。图2是显示根据所述队列中指令的频率(或比例)及所感测的处理器温度在图1 的协处理器11的两种不同水平的并行性之间自动地进行切换中所包括的执行的可能 流程的流程图。出于论述的目的,假设最初(于S1处)所述处理器正在两个并行算术 逻辑单元23及25中并行执行指令。在此模式中,所处理的数据可以是高达128位宽, 也就是说同通过一起工作的单元23及25所提供的完全数据路径一样宽。在此状态下, 模式控制31将温度信号值T与高温阈值Th相比较(步骤S2)。如果所述温度足够低 (值T不大于所述高温阈值Th),则处理从S2流到S3。步骤S3表示确定与任务相关的处理条件,在这种情况下为128位指令在所述队 列中的数量。如果所述队列可保持上至(例如)8个指令,则当IQ级15为满时,所 述频率或比例f将是128位指令的数量除以8。当然,可使用其他与任务相关条件的 度量以确定何时任务主要地调用128位宽数据的处理。举例来说,如果所述队列长度 为恒定,则可使用128位指令在所述队列中的数量来代替所述频率。根据某一数量的 正在通过所述ALU进行处理的及/或已处理的指令的类似分析形成历史记录测量,或 可将这种历史记录测量与IQ级15中的指令的分析相组合。为本论述的目的,假设所述逻辑监视所述128位指令在IQ级15中的频繁程度(f)。 在步骤S3中,如果电流值f处于或高于下阈值f!,则处理从S3流回S1,以使协处理 器11继续处于128位操作模式中。假设8个指令最大队列长度,则下频率阈值ft可设 定为V8,以只要每8个指令中有1个是128位指令即将所述协处理器保持于正在进行 中的128位模式中。用以停留在128位模式的阈值通常是较低的。甚至1/16可以是用 以停留在128位模式的有效标准。当然,所述阈值也可以是时间相依的,例如,在某 一数量的处理循环中每8个指令中需要2个或更多个128位指令。在所图解说明的流 程中,由步骤S1到S3所表示的处理将继续,也就是说,只要温度保持于或低于所述 阈值Th且128位指令的频率保持高于所述阈值&则所述协处理器以128位宽数据处理 模式操作。如果形成模式控制31的逻辑检测到温度T超过阈值Th,则处理从步骤S2流到步 骤S4。同样地,如果形成模式控制31的逻辑检测到128位指令的频率f下降到或低 于阈值fi,则处理从步骤S3流到处理步骤S4。在任一情况中,在步骤S4,指令扩展 方块17开始将(如果存在)随后的128位指令转换为成对64位指令。在步骤S5,模式控制31检查第二算术逻辑单元(ALU #2)以确定是否仍存在任何需要处理且传出 算术逻辑单元25的剩佘进行中的128位指令。如果存在,则所述逻辑等待(S6)且再 次检査。这一监视(S5-S6)继续进行直至不存在任何将由第二算术逻辑单元(ALU #2) 25处理的剩余进行中的128位指令,于此时处理流到步骤S7。在步骤S7,模式控制31去激活或关闭第二 ALU型处理元件25以节省能量及/ 或降低热产生。此外,如上文所论述,处理以64位模式进行。举例来说,此时第二算 术逻辑单元25是不活动的,处理器11在第一算术逻辑单元23中执行一个或多个指令 以处理64位数据。在此模式中所接收的任何128位指令被扩展为两个64位指令且依 次地被处理(如开始于S4)。在所述协处理器以64位模式操作时,模式控制继续检査所述温度及正在接收的 IQ级15中的128位指令的频繁程度。在步骤S9中比较所测量的温度,且在步骤SIO 中将所检测的128位指令的频率与阈值相比较。在S8中可使用与S2中所使用阈值相 同的阈值,及/或可在S10中使用与S3中所使用阈值相同的阈值。然而,相同阈值的 使用可导致响应于所监视参数中的一者或两者的每一微小改变而打开及关闭ALU25, 这将导致过度切换(通常具有短持续时间)。从关闭状态唤醒或通电ALU25是费时的且消耗能量。在某些情况中,与仅是保 持元件25开启某一短时间段相比将其通电可能消耗更多的能量。同样,再次将组件通 电是费时的。重启所述ALU中所导致的延迟或等待时间可导致处理器失速,此降级性 能。因此,可需要保证,所述受控并行处理元件(在我们的实例中为ALU25)不被重 复地关闭以随后仅唤醒一短时间段。重复地断电及通电可称为"系统失效"。所图解说 明的实例在不同的操作模式中使用不同的用于所述比较的阈值,以提供切换操作的某 一滞后来减少切换事件及系统失效的潜在可能。如稍后所论述,模式控制31的逻辑可 实施其他或额外抗系统失效策略。回到所述特定实例,在步骤S9中,模式控制31将当前温度度量T与阔值T^ (其 稍低于阈值Th)相比较。如果所测量的温度T仍高于较低冷却阈值Tp则处理继续处 于64位模式中(S8)。通常,在此模式中所述温度将继续下降。当所述协处理器己充 分冷却时,模式控制31确定所测量温度T处于或低于(不再大于)较低阈值T"且 处理从S9流到S10。由于所述处理器现在充分地冷却以赋能回到128位操作,所述模式控制其后确定 (在SIO)所述处理任务是否需要128位操作。因此,在我们的实例的S10处,所述 模式控制将IQ级15中的128位类型的指令的频率或比例(f)与较高阈值fh相比较, 所述高频率阈值可设定为约3/8,以只要每8个指令中不多余3个128位指令则将所述 协处理器保持于正在进行中的64位模式中。当然,所述阈值也可以是时间相依的,例 如在某一数量的处理循环中每8个指令中需要4个或更多个128位指令来触发到128 位操作的转变。如果f小于或等于(也不大于)阈值fh,则即使所述处理器的温度是安全的仍不足以要求调整128位操作。因此,处理从S10流回到S8以便协处理器11继续处于64 位操作模式中。由步骤S8到S10所表示的处理将继续,也就是说只要所述阈值中的 任一者未被满足(也就是说直至温度为足够低且128位指令的频率足够高以需要转换 到128位操作模式)则所述协处理器仍以64位宽数据处理模式操作。当所述温度处于或低于阈值Tp 128位指令的频率超过阈值fh时,处理通过S9 及S10流到步骤S11。在步骤S11中,控制逻辑31激活第二算术逻辑单元(ALU#2) 25。此时(S12), 128位指令将传到所述ALU,而无需修改(不再需要进一步再编码 为两个64位指令)。在此情况中,处理回到步骤S1,于此进一步利用128位指令模式 操作。如前文所提及,模式控制31的逻辑可改为实施其他抗系统失效策略或与由阈值 差异所提供的滞后组合。举例来说,可响应于可指示系统失效的测量(例如,在响应 于128位指令的低出现率而关闭所述ALU期间的时间间隔)调整所述阈值。本技术具有广泛的应用。举例来说,所述功率及能量控制可实施于其他并行处理 器中及具有不同数据路径宽度的处理器中。同样,上文所论述的并行处理器的实例提 供了与主处理器核心相关联的协处理器。然而,所属技术领域的技术人员应了解,本 文所论述的并行性控制技术不限于协处理器实施方案。尽管可将以上所阐述者认作为最佳模式及/或其他实例,但应理解,可在本文中作 出各种修改且本文所揭示的标的物可以各种形式及实例予以实施,且所述教示可应用 于众多应用中,而本文所揭示仅系其中的某些应用。以下申请专利范围意欲主张任何 归属于本发明教示真实范围内之应用、修改及变化。
权利要求
1、一种控制并行数据处理器的操作并行性的方法,其包含监视一个或多个与通过所述并行数据处理器实施的处理相关的条件;当所述所监视的一个或多个条件对应于第一状态时,在所述数据处理器的两个并行处理元件中并行执行一个或多个指令,从而提供第一宽度的数据路径;及当所述所监视的一个或多个条件对应于第二状态时,在所述两个并行处理元件中的第二者不活动时在所述两个并行处理元件中的第一者中执行一个或多个指令,以处理小于所述第一宽度的第二宽度的数据。
2、 如权利要求1所述的方法,其中所述在所述第二并行处理元件不活动时在所述第一并行处理元件中执行一个或多个指令的步骤包含将调用所述第一宽度的数据的并行数据处理的指令扩展为多个指令,其包含调用所述第二宽度的数据的并行数据处理的两个指令;及在所述第一并行处理元件中依次地执行所述两个指令。
3、 如权利要求2所述的方法,其中通过所述第一并行处理元件对处理指令的所述执行基于所执行的指令提供64位 宽数据处理;及通过所述第一及第二并行处理元件对处理指令的所述执行基于所执行的指令提 供128位宽数据处理。
4、 如权利要求1所述的方法,其中所述第一及第二处理元件中的每一者包含算 术逻辑单元。
5、 如权利要求4所述的方法,其中在所述第一及第二并行处理元件中执行的所 述指令是单指令多数据(SIMD)型指令。
6、 如权利要求5所述的方法,其中所述第一及第二并行处理元件是SMD协处 理器的元件。
7、 如权利要求1所述的方法,其中所述指令在所述并行处理元件中的所述执行 包含多媒体数据处理。
8、 如权利要求1所述的方法,其中当所述第二并行处理元件不活动时,切断到 所述第二并行处理元件的功率。
9、 如权利要求1所述的方法,其中当所述第二并行处理元件不活动时,切断所 述第二并行处理元件的时钟信号。
10、 如权利要求1所述的方法,其中对所述条件的所述监视包含监视所述处理器 的温度,所述第一状态涉及所监视温度处于或低于阈值,且所述第二状态涉及温度处 于或高于阈值。
11、 如权利要求l所述的方法,其中对所述条件的所述监视包含监视由执行所述指令所实施的任务,且所述第一状态是当所述任务频繁地调用所述第一宽度的数据的 数据处理时。
12、 如权利要求11所述的方法,其中对任务的所述监视包含确定指令调用所述 第一宽度的数据的处理的频繁程度。
13、 如权利要求l所述的方法,其进一步包含根据对所述条件的所述监视,检测从所述第一状态到所述第二状态的转换; 响应于所述检测到的从所述第一状态到所述第二状态的转换,去激活所述第二并 行处理元件;根据对所述条件的所述监视,检测从所述第二状态到所述第一状态的转换;及 响应于所述检测到的从所述第二状态到所述第一状态的转换,激活所述第二并行 处理元件。
14、 如权利要求13所述的方法,其中所述去激活及激活步骤适于减轻系统失效 的潜在可能。
15、 一种控制并行数据处理器的操作并行性的方法,其包含 在所述数据处理器的第一及第二并行算术逻辑单元中并行执行一个或多个指令,以处理第一宽度的数据;感测与通过所述并行数据处理器的处理相关的条件; 响应于所述所感测条件的状态,去激活所述第二并行算术逻辑单元;及 在所述第二算术逻辑单元不活动时,在所述第一并行算术逻辑单元中执行一个或多个指令以处理小于所述第一宽度的第二宽度的数据。
16、 如权利要求15所述的方法,其中所述在所述第二算术逻辑单元不活动时在 所述第一算术逻辑单元中执行一个或多个指令的步骤包含-将调用所述第一宽度的数据的并行数据处理的指令扩展为多个指令,所述多个指 令包含调用所述第二宽度的数据的并行数据处理的两个指令;及 在所述第一算术逻辑单元中依次地执行所述两个指令。
17、 如权利要求15所述的方法,其中所述所感测条件包含所述处理器的温度达 到阈值。
18、 如权利要求15所述的方法,其中所述所感测条件涉及需要所述第一宽度的 数据的所述处理的处理频率下降到阈值水平之下。
19、 一种控制并行数据处理器的操作并行性的方法,其包含 在所述数据处理器的第一及第二并行处理元件中并行执行一个或多个指令以处理第一宽度的数据;感测与通过所述并行数据处理器的处理相关的条件; 响应于所述所感测条件的状态,去激活所述第二并行处理元件; 在所述第二并行处理元件被去激活时,将调用所述第一宽度的数据的并行数据处理的指令扩展为多个指令,所述多个指令包含调用小于所述第一宽度的第二宽度的数据的并行数据处理的两个指令;及在所述第二并行处理元件被去激活时在所述第一并行处理元件中依次地执行所 述两个指令。
20、 如权利要求19所述的方法,其中 所述指令是单指令多数据(SIMD)型指令;所述调用所述第一宽度的数据的并行数据处理的指令是128位SIMD指令;及 所述两个指令中的每一者是64位SIMD指令。
21、 如权利要求19所述的方法,其中所述所感测条件是所述数据处理器的温度 或需要所述第一宽度的数据的所述处理的处理频率。
22、 一种并行数据处理器,其包含响应于程序指令的第一处理元件,其用于处理一宽度的数据; 响应于程序指令的第二处理元件,其经连接以与所述第一处理单元并行操作,所述第一及第二处理元件的所述并行操作提供对大于所述第一宽度的第二宽度的数据的并行处理;及逻辑,其用于监视与所述数据处理器的处理操作相关的条件及基于所述所监视条 件与阈值的关系选择性地激活及去激活所述第二处理元件。
23、 如权利要求22所述的处理器,其进一步包含指令扩展级,所述指令扩展级 用于将调用所述第二宽度的数据的处理的指令转换为调用所述第一宽度的数据的处理 的多个指令且用于将所述多个指令依次地供应到所述第一处理元件以供执行。
24、 如权利要求22所述的并行数据处理器,其进一步包含 温度感测器,其用于检测所述数据处理器的温度;其中阈值是温度阈值,且如果所述数据处理器的所检测温度满足或超过所述温度 阈值,则所述逻辑去激活所述第二处理元件。
25、 如权利要求24所述的并行数据处理器,其中如果所述数据处理器的所述所 检测温度低于阈值温度,则所述逻辑依据指令调用所述第二宽度的数据的处理的频繁 程度激活及去激活所述处理元件。
26、 如权利要求22所述的并行数据处理器,其中 所述逻辑监视指令调用所述第二宽度数据的处理的频繁程度; 如果所述频率低于所述阈值,则所述逻辑去激活所述第二处理元件;及 如果所述频率高于阈值,则所述逻辑激活所述第二处理元件。
27、 如权利要求22所述的处理器,其中所述第一及第二处理元件经配置以响应 于单指令多数据(SIMD)型指令来处理数据。
28、 如权利要求27所述的处理器,其中所述第一及第二处理元件中的每一者包 含SIMD型算术逻辑单元。
29、 如权利要求27所述的处理器,其进一步包含指令扩展级,所述指令扩展级 用于将调用所述第二宽度的数据的处理的SIMD指令转换为调用所述第一宽度的数据的处理的多个SIMD指令,且用于当所述第二处理元件已被去激活时将所述经扩展的 多个SIMD指令依次地供应到所述第一处理元件以供执行。
30、如权利要求22所述的处理器,其中所述逻辑适于控制所述第二处理元件的 所述激活及去激活以减轻系统失效的潜在可能。
全文摘要
在高度并行可编程数据处理器中,对一个或多个处理元件的自动选择功率及能量控制使并行程度匹配于所监视的条件。举例来说,所述并行处理器的逻辑检测何时程序操作(例如,用于特定任务或由于所检测的温度)需要少于全宽度的数据路径。作为响应,所述控制逻辑自动地设置需要一子组并行处理能力的操作模式。可关闭至少一个不需要的并行处理元件以节省能量及/或减少发热(即,功率消耗)。在稍后的时间,当所添加能力的操作为适当时,所述逻辑检测处理条件的改变且自动地将操作模式设定为较宽数据路径(通常为全宽度)的操作模式。所述模式改变重新激活先前所关闭的处理元件。
文档编号G06F9/00GK101228504SQ200680026469
公开日2008年7月23日 申请日期2006年5月25日 优先权日2005年6月9日
发明者肯尼思·艾伦·多克塞尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1