CN101228504A - 具有simd并行性自动选择的微处理器 - Google Patents
具有simd并行性自动选择的微处理器 Download PDFInfo
- Publication number
- CN101228504A CN101228504A CNA2006800264696A CN200680026469A CN101228504A CN 101228504 A CN101228504 A CN 101228504A CN A2006800264696 A CNA2006800264696 A CN A2006800264696A CN 200680026469 A CN200680026469 A CN 200680026469A CN 101228504 A CN101228504 A CN 101228504A
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- instruction
- instructions
- width
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 131
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims description 37
- 230000009849 deactivation Effects 0.000 claims description 30
- 230000004913 activation Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000000116 mitigating effect Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 5
- 238000010438 heat treatment Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000007613 environmental effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
- Electrophonic Musical Instruments (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
Abstract
在高度并行可编程数据处理器中,对一个或多个处理元件的自动选择功率及能量控制使并行程度匹配于所监视的条件。举例来说,所述并行处理器的逻辑检测何时程序操作(例如,用于特定任务或由于所检测的温度)需要少于全宽度的数据路径。作为响应,所述控制逻辑自动地设置需要一子组并行处理能力的操作模式。可关闭至少一个不需要的并行处理元件以节省能量及/或减少发热(即,功率消耗)。在稍后的时间,当所添加能力的操作为适当时,所述逻辑检测处理条件的改变且自动地将操作模式设定为较宽数据路径(通常为全宽度)的操作模式。所述模式改变重新激活先前所关闭的处理元件。
Description
技术领域
本标的物涉及用以自动地控制并行数据处理元件(例如,单指令多数据(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的功能性方块图图解可用于解释自动并行元件功率及能量控制的SIMD装置的组件。所属技术领域的技术人员应认识到,实际SIMD处理器中将包括其他元件。在所述实例中,所述并行处理装置实施为SIMD协处理器11(例如)以在相关联的主核心处理器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指示当前操作模式。所述位值可保持于触发器中或作为更大寄存器(例如,条件寄存器中的)中的位。处理器11的典型实例将包括32位控制寄存器(未独立地显示),且模式旗标19可以是所述寄存器中的指定位置处的一个位。如稍后更多地论述,旗标19被响应于所述处理器的所检测的条件(例如,特定处理任务的所需并行性水平或所述装置的所检测温度)自动地设定。扩展级17响应于模式旗标19的状态。
所述SIMD协处理器还包括用于在处理之前保持操作数数据的寄存器堆21及执行级。在这一简单实例中,执行级由两个SIMD型算术逻辑单元(ALU)23、25组成。在128模式中,ALU 23及25两者均是活动的,然而在64位模式中,仅第一ALU 23是活动的。
在64位模式中,协处理器11仍可处理128位SIMD指令。为此目的,级17通过将所述128位指令分解为两个各自经构造以处理64位数据的指令而“扩展”所述128位指令。在64位模式中,级17将所有指令调度到ALU 23,所述指令包括原来调用64位宽数据处理的指令以及从扩展来自IQ级15的SIMD指令流中的任何128位指令所得到的成对64位指令。在128位模式中,级17将指令调度到第一及第二ALU23、25两者,以便单元23及25并行操作以提供128位宽SIMD数据处理路径。
尽管处理器11执行单个指令流,但这些指令的所述SIMD执行同时地并行处理多数据片。举例来说,每一ALU23或25可同时操作2个32位数据字或4个16位数据字。当单元23及25两者正在并行操作时,则组合的数据处理能力可处理4个32位数据字或8个16位数据字。并行处理的其他组合也是可能的。
在简单实例中,寄存器堆21可包含两个128位宽的数据寄存器,然而可提供额外寄存器。所属技术领域的技术人员应理解,所述寄存器堆可包含额外寄存器,例如,16个寄存器,每一个均128位宽。寄存器堆21的控制分割每一128位数据且将适当量发送到ALU 23及25中的每一者。堆21的D端口是写入端口。经由端口D,可将128位宽的数据(例如)从源(未显示)或从由所述ALU输出的结果写入到堆21中的寄存器。堆21的S端口是读取端口。经由端口S,可将128位宽的数据从堆21中的寄存器读取到诸如存储器等汇点(未显示)。寄存器堆29的A及B端口是读取端口,以用于将所分割的数据(每一者为64位)供应到ALU 23及25。
对于128位数据处理指令来说,寄存器堆21将所述128位数据的低(最低有效)半部分供应到第二ALU 25,且将所述数据的高(最高有效)半部分发送到第一ALU 23。对于64位指令来说,所述处理器可选择所述寄存器堆中所述128位数据的所述下位半部分或所述高位半部分以供应到第一ALU 23。在128位模式中,任何64位指令转到第一(#1)SIMDALU 23,且128位指令转到SIMDALU 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门,但其应理解为用于选择性地将信号耦合到ALU 25的元件的电路一般表示。这种电路27或29可以是任何类型的逻辑门、开关、其组合或经配置以响应于来自模式控制31的选择信号将适当类型的信号供应到ALU 25的功能性元件的任何其他电路。
以此方式,模式控制31控制图1的实例中的第二ALU(#2)25的活动状态。所述模式旗标自身可提供门27、29及(因而)ALU 25的选择激活及去激活的直接控制。然而,在这种情况中所述ALU将在如模式旗标19的状态改变所指示的操作模式的每一变换时立刻通电及断电。在多数实施方案中,ALU 23及25将包含多级流水线单元,且当旗标19改变时ALU 25中可能存在多个进行中的指令。所述功率及能量控制逻辑可响应于模式旗标19,但其可提供跟随状态改变的时滞以允许平缓处理变换。举例来说,控制31的逻辑可监视ALU25的操作,以便在检测到变换到1位时(从128位模式移位到64位模式)时,控制31将延迟去激活ALU 25,直至任何剩余的进行中的128位指令已被处理且传出所述ALU。尽管未显示,但模式控制31的逻辑还可提供信号到所述处理器的其他元件以在变换到128位模式之后控制128位指令的初始应用(例如)以允许通电ALU 25所需的时间。
模式控制31可经实施以通过经由适当门或开关电路27或29的操作选择性地启用及禁用所述单元的操作所需的任何信号而以各种已知方式中的任一者控制第二ALU(#2)25的状态。举例来说,可通过到单元25的用于控制单元25内的电路开关功能的时钟信号(CLK)的受控门控来选择性地启用及禁用ALU 25。在这种实施方案中,通过切断通过门27到ALU25的时钟信号(CLK)流而禁用ALU 25以便单元25的电路系统完全不响应于时钟信号而开关。此降低动态功率消耗。为降低在这种实施方案中的泄露,ALU 25的晶体管可设计有相对高的门阈值电压。然而,仅基于所述时钟信号的门控的控制可允许相对迅速地重启所述ALU。
作为另一选择或另外(如图所示),可通过选择性应用或收回到电源端子的连接而控制所述ALU状态。尽管所实现的连接可以是接地连接或到负电源电压的连接,为所述实例的目的,门29控制电压V到第二(#2)SIMDALU 25的供应。模式控制31根据协处理器11的当前操作模式操作门29以给ALU 25通电及断电。在这种实施方案中,在所述模式旗标移位到1(64位操作)时,模式控制31在已处理任何剩余128位指令之后禁用ALU 25。在此时,控制31触发门29以切断到用于供应电压V(对ALU 25的电路系统而言)的电源端子的连接。这种类型的切断消除了经由所述单元的电路系统的动态功率消耗及泄露。
第一(#1)SIMD ALU 23在两种模式中均为活动的。因此,图中显示这一ALU直接地连接到所述时钟信号(CLK)及供应电压(V),而无门控控制。然而,到处理元件23的功率及/或时钟信号也可受控(例如)以允许在不需要协处理器11时将处理元件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位指令调度到第一ALU 23。
由模式控制31所设定的协处理器11的模式状态控制至少一个并行处理元件(在所述实例中为第二ALU 25)的选择性激活及去激活。在128位模式中ALU 25是活动的(通电的),反之在64位模式中不需要其且在所述模式中将其断电(去激活)。
在所图解说明的实施方案中,模式控制31响应于与处理任务相关的条件(所述处理器处理特定类型指令的频繁程度)。在这种实施方案中,模式控制31还响应于环境条件(温度)。举例来说,用作模式控制31的状态机或可编程装置的逻辑识别在队列级15中的指令内的128位指令的数量。如果128位指令的比例或频率处于或高于某一预定义水平,则模式控制31将模式旗标19设定为0(128位模式)且激活第二ALU25。相反,如果128位指令的比例或频率处于或低于预定义水平,则模式控制31将模式旗标19设定为1(64位模式)且起始程序以去激活第二ALU 25。所属技术领域的技术人员应认识到,这种任务敏感控制功能可使用其他监视参数,例如近期历史记录中(根据某一数量的正在及刚刚通过装置11所处理的指令)64位指令的频率或比例或任一类型指令的频率。
对于环境监视来说,实例性处理器11包括温度感测器33。感测器33提供信号到模式控制31。控制31根据来自所述温度感测器的信号的水平(实质上根据所述温度与一个或多个阈值的关系)激活及去激活ALU 25及设定模式旗标19。如果在操作于128位模式中时所感测温度变得过高,则控制31可去激活ALU 25以允许装置11冷却下来。在一稍后的时间(例如,当存在较低温度读数时),且所述任务调用128位宽数据处理时,控制31可重启ALU 25且将旗标19设定回128位模式。所属技术领域的技术人员应认识到,可代替温度或除温度外感测其他环境条件。
同样,指令的执行可实质上越权模式控制31的自动操作以允许程序员将所述模式设定为所需并行性水平。所述模式控制从所述ALU中的一者(25)或从主处理器核心13接收越权命令。作为响应,模式控制31将设定模式旗标19以指示级17是否将操作于64位模式,且将提供ALU 25的操作状态(关闭或开启)的相应设置。
如果使用越权,则在所述处理流程的适当点写入程序以设定所述操作模式。所述模式设置指令可由程序员写入,或编译器可在将所述程序编译成机器语言代码时插入所述模式设置指令。协处理器11可经设计以响应于由ALU 23、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处于或高于下阈值f1,则处理从S3流回S1,以使协处理器11继续处于128位操作模式中。假设8个指令最大队列长度,则下频率阈值f1可设定为1/8,以只要每8个指令中有1个是128位指令即将所述协处理器保持于正在进行中的128位模式中。用以停留在128位模式的阈值通常是较低的。甚至1/16可以是用以停留在128位模式的有效标准。当然,所述阈值也可以是时间相依的,例如,在某一数量的处理循环中每8个指令中需要2个或更多个128位指令。在所图解说明的流程中,由步骤S1到S3所表示的处理将继续,也就是说,只要温度保持于或低于所述阈值Th且128位指令的频率保持高于所述阈值f1则所述协处理器以128位宽数据处理模式操作。
如果形成模式控制31的逻辑检测到温度T超过阈值Th,则处理从步骤S2流到步骤S4。同样地,如果形成模式控制31的逻辑检测到128位指令的频率f下降到或低于阈值f1,则处理从步骤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中比较所测量的温度,且在步骤S10中将所检测的128位指令的频率与阈值相比较。在S8中可使用与S2中所使用阈值相同的阈值,及/或可在S10中使用与S3中所使用阈值相同的阈值。然而,相同阈值的使用可导致响应于所监视参数中的一者或两者的每一微小改变而打开及关闭ALU 25,这将导致过度切换(通常具有短持续时间)。
从关闭状态唤醒或通电ALU 25是费时的且消耗能量。在某些情况中,与仅是保持元件25开启某一短时间段相比将其通电可能消耗更多的能量。同样,再次将组件通电是费时的。重启所述ALU中所导致的延迟或等待时间可导致处理器失速,此降级性能。因此,可需要保证,所述受控并行处理元件(在我们的实例中为ALU 25)不被重复地关闭以随后仅唤醒一短时间段。重复地断电及通电可称为“系统失效”。所图解说明的实例在不同的操作模式中使用不同的用于所述比较的阈值,以提供切换操作的某一滞后来减少切换事件及系统失效的潜在可能。如稍后所论述,模式控制31的逻辑可实施其他或额外抗系统失效策略。
回到所述特定实例,在步骤S9中,模式控制31将当前温度度量T与阈值T1(其稍低于阈值Th)相比较。如果所测量的温度T仍高于较低冷却阈值T1,则处理继续处于64位模式中(S8)。通常,在此模式中所述温度将继续下降。当所述协处理器已充分冷却时,模式控制31确定所测量温度T处于或低于(不再大于)较低阈值T1,且处理从S9流到S10。
由于所述处理器现在充分地冷却以赋能回到128位操作,所述模式控制其后确定(在S10)所述处理任务是否需要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位宽数据处理模式操作。
当所述温度处于或低于阈值T1,128位指令的频率超过阈值fh时,处理通过S9及S10流到步骤S11。在步骤S11中,控制逻辑31激活第二算术逻辑单元(ALU #2)25。此时(S12),128位指令将传到所述ALU,而无需修改(不再需要进一步再编码为两个64位指令)。在此情况中,处理回到步骤S1,于此进一步利用128位指令模式操作。
如前文所提及,模式控制31的逻辑可改为实施其他抗系统失效策略或与由阈值差异所提供的滞后组合。举例来说,可响应于可指示系统失效的测量(例如,在响应于128位指令的低出现率而关闭所述ALU期间的时间间隔)调整所述阈值。
本技术具有广泛的应用。举例来说,所述功率及能量控制可实施于其他并行处理器中及具有不同数据路径宽度的处理器中。同样,上文所论述的并行处理器的实例提供了与主处理器核心相关联的协处理器。然而,所属技术领域的技术人员应了解,本文所论述的并行性控制技术不限于协处理器实施方案。
尽管可将以上所阐述者认作为最佳模式及/或其他实例,但应理解,可在本文中作出各种修改且本文所揭示的标的物可以各种形式及实例予以实施,且所述教示可应用于众多应用中,而本文所揭示仅系其中的某些应用。以下申请专利范围意欲主张任何归属于本发明教示真实范围内之应用、修改及变化。
Claims (30)
1.一种控制并行数据处理器的操作并行性的方法,其包含:
监视一个或多个与通过所述并行数据处理器实施的处理相关的条件;
当所述所监视的一个或多个条件对应于第一状态时,在所述数据处理器的两个并行处理元件中并行执行一个或多个指令,从而提供第一宽度的数据路径;及
当所述所监视的一个或多个条件对应于第二状态时,在所述两个并行处理元件中的第二者不活动时在所述两个并行处理元件中的第一者中执行一个或多个指令,以处理小于所述第一宽度的第二宽度的数据。
2.如权利要求1所述的方法,其中所述在所述第二并行处理元件不活动时在所述第一并行处理元件中执行一个或多个指令的步骤包含:
将调用所述第一宽度的数据的并行数据处理的指令扩展为多个指令,其包含调用所述第二宽度的数据的并行数据处理的两个指令;及
在所述第一并行处理元件中依次地执行所述两个指令。
3.如权利要求2所述的方法,其中:
通过所述第一并行处理元件对处理指令的所述执行基于所执行的指令提供64位宽数据处理;及
通过所述第一及第二并行处理元件对处理指令的所述执行基于所执行的指令提供128位宽数据处理。
4.如权利要求1所述的方法,其中所述第一及第二处理元件中的每一者包含算术逻辑单元。
5.如权利要求4所述的方法,其中在所述第一及第二并行处理元件中执行的所述指令是单指令多数据(SIMD)型指令。
6.如权利要求5所述的方法,其中所述第一及第二并行处理元件是SIMD协处理器的元件。
7.如权利要求1所述的方法,其中所述指令在所述并行处理元件中的所述执行包含多媒体数据处理。
8.如权利要求1所述的方法,其中当所述第二并行处理元件不活动时,切断到所述第二并行处理元件的功率。
9.如权利要求1所述的方法,其中当所述第二并行处理元件不活动时,切断所述第二并行处理元件的时钟信号。
10.如权利要求1所述的方法,其中对所述条件的所述监视包含监视所述处理器的温度,所述第一状态涉及所监视温度处于或低于阈值,且所述第二状态涉及温度处于或高于阈值。
11.如权利要求1所述的方法,其中对所述条件的所述监视包含监视由执行所述指令所实施的任务,且所述第一状态是当所述任务频繁地调用所述第一宽度的数据的数据处理时。
12.如权利要求11所述的方法,其中对任务的所述监视包含确定指令调用所述第一宽度的数据的处理的频繁程度。
13.如权利要求1所述的方法,其进一步包含:
根据对所述条件的所述监视,检测从所述第一状态到所述第二状态的转换;
响应于所述检测到的从所述第一状态到所述第二状态的转换,去激活所述第二并行处理元件;
根据对所述条件的所述监视,检测从所述第二状态到所述第一状态的转换;及
响应于所述检测到的从所述第二状态到所述第一状态的转换,激活所述第二并行处理元件。
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所述的处理器,其中所述逻辑适于控制所述第二处理元件的所述激活及去激活以减轻系统失效的潜在可能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/150,729 | 2005-06-09 | ||
US11/150,729 US7836284B2 (en) | 2005-06-09 | 2005-06-09 | Microprocessor with automatic selection of processing parallelism mode based on width data of instructions |
PCT/US2006/020614 WO2006135554A2 (en) | 2005-06-09 | 2006-05-25 | Microprocessor with automatic selection of simd parallelism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101228504A true CN101228504A (zh) | 2008-07-23 |
CN100595730C CN100595730C (zh) | 2010-03-24 |
Family
ID=37525522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680026469A Expired - Fee Related CN100595730C (zh) | 2005-06-09 | 2006-05-25 | 并行数据处理器及其控制方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7836284B2 (zh) |
EP (2) | EP1894091B1 (zh) |
JP (1) | JP5074389B2 (zh) |
KR (1) | KR101006030B1 (zh) |
CN (1) | CN100595730C (zh) |
AT (1) | ATE504038T1 (zh) |
DE (1) | DE602006021019D1 (zh) |
ES (2) | ES2360816T3 (zh) |
IL (1) | IL187805A0 (zh) |
MX (1) | MX2007015555A (zh) |
WO (1) | WO2006135554A2 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694114B2 (en) | 2005-06-09 | 2010-04-06 | Qualcomm Incorporated | Software selectable adjustment of SIMD parallelism |
CN101359284B (zh) * | 2006-02-06 | 2011-05-11 | 威盛电子股份有限公司 | 处理数个不同数据格式的乘法累加单元及其方法 |
US8049760B2 (en) * | 2006-02-06 | 2011-11-01 | Via Technologies, Inc. | System and method for vector computations in arithmetic logic units (ALUs) |
US7836316B2 (en) * | 2006-03-28 | 2010-11-16 | Intel Corporation | Conserving power in processing systems |
US8345053B2 (en) * | 2006-09-21 | 2013-01-01 | Qualcomm Incorporated | Graphics processors with parallel scheduling and execution of threads |
US9135017B2 (en) * | 2007-01-16 | 2015-09-15 | Ati Technologies Ulc | Configurable shader ALU units |
US8108845B2 (en) * | 2007-02-14 | 2012-01-31 | The Mathworks, Inc. | Parallel programming computing system to dynamically allocate program portions |
US7868479B2 (en) * | 2007-06-27 | 2011-01-11 | Qualcomm Incorporated | Power gating for multimedia processing power management |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8335501B1 (en) | 2007-11-21 | 2012-12-18 | At&T Mobility Ii Llc | Controlling functions of mobile communications devices |
JP4996654B2 (ja) * | 2009-08-18 | 2012-08-08 | 株式会社東芝 | プロセッサ |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US8504855B2 (en) | 2010-01-11 | 2013-08-06 | Qualcomm Incorporated | Domain specific language, compiler and JIT for dynamic power management |
US9235251B2 (en) * | 2010-01-11 | 2016-01-12 | Qualcomm Incorporated | Dynamic low power mode implementation for computing devices |
EP2593860B1 (en) * | 2010-07-13 | 2020-08-19 | Advanced Micro Devices, Inc. | Dynamic enabling and disabling of simd units in a graphics processor |
CN101969402B (zh) * | 2010-10-18 | 2012-05-23 | 浪潮集团山东通用软件有限公司 | 基于并行处理的数据交换方法 |
US20120216011A1 (en) * | 2011-02-18 | 2012-08-23 | Darryl Gove | Apparatus and method of single-instruction, multiple-data vector operation masking |
GB2529075A (en) * | 2011-06-16 | 2016-02-10 | Imagination Tech Ltd | Graphics processor with non-blocking concurrent architecture |
US9009451B2 (en) | 2011-10-31 | 2015-04-14 | Apple Inc. | Instruction type issue throttling upon reaching threshold by adjusting counter increment amount for issued cycle and decrement amount for not issued cycle |
US9691360B2 (en) | 2012-02-21 | 2017-06-27 | Apple Inc. | Alpha channel power savings in graphics unit |
CN103513958B (zh) * | 2012-06-27 | 2017-01-25 | 上海芯豪微电子有限公司 | 高性能指令缓存系统和方法 |
US10175981B2 (en) | 2013-07-09 | 2019-01-08 | Texas Instruments Incorporated | Method to control the number of active vector lanes for power efficiency |
US10732689B2 (en) * | 2013-07-09 | 2020-08-04 | Texas Instruments Incorporated | Controlling the number of powered vector lanes via a register field |
GB2539038B (en) | 2015-06-05 | 2020-12-23 | Advanced Risc Mach Ltd | Processing pipeline with first and second processing modes having different performance or energy consumption characteristics |
US9841997B2 (en) * | 2015-06-25 | 2017-12-12 | Intel Corporation | Method and apparatus for execution mode selection |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
EP3637327B1 (en) * | 2017-06-13 | 2023-09-13 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11493967B2 (en) * | 2018-06-01 | 2022-11-08 | Interdigital Madison Patent Holdings, Sas | Thermal shutdown with hysteresis |
US11307860B1 (en) | 2019-11-22 | 2022-04-19 | Blaize, Inc. | Iterating group sum of multiple accumulate operations |
US10996960B1 (en) * | 2019-11-22 | 2021-05-04 | Blaize, Inc. | Iterating single instruction, multiple-data (SIMD) instructions |
US11029958B1 (en) * | 2019-12-28 | 2021-06-08 | Intel Corporation | Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581516A (en) * | 1995-07-07 | 1996-12-03 | The United States Of America As Represented By The Secretary Of The Navy | Low power transmitter providing selectable waveform generation |
JPH10171635A (ja) | 1996-10-09 | 1998-06-26 | N T T Data Tsushin Kk | 分散環境におけるソフトウエア資源を管理するシステムと方法 |
US5991531A (en) * | 1997-02-24 | 1999-11-23 | Samsung Electronics Co., Ltd. | Scalable width vector processor architecture for efficient emulation |
JP2000047872A (ja) * | 1998-08-03 | 2000-02-18 | Hitachi Ltd | 低消費電力動作機能を備えたマイクロプロセッサ |
JP2000259579A (ja) * | 1999-03-11 | 2000-09-22 | Hitachi Ltd | 半導体集積回路 |
JP2000322259A (ja) * | 1999-05-11 | 2000-11-24 | Hitachi Ltd | データ処理装置 |
WO2000079405A1 (fr) * | 1999-06-21 | 2000-12-28 | Hitachi, Ltd. | Processeur de donnees |
US20040254965A1 (en) * | 2001-03-02 | 2004-12-16 | Eric Giernalczyk | Apparatus for variable word length computing in an array processor |
JP2002366351A (ja) * | 2001-06-06 | 2002-12-20 | Nec Corp | スーパースカラ・プロセッサ |
US6839828B2 (en) * | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US20030088799A1 (en) | 2001-11-05 | 2003-05-08 | Bodas Devadatta V. | Method and apparatus for regulation of electrical component temperature and power consumption rate through bus width reconfiguration |
US7328261B2 (en) * | 2001-11-21 | 2008-02-05 | Clearcube Technology, Inc. | Distributed resource manager |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7694164B2 (en) | 2002-09-20 | 2010-04-06 | Intel Corporation | Operating system-independent method and system of determining CPU utilization |
US6879928B2 (en) * | 2003-01-16 | 2005-04-12 | International Business Machines Corporation | Method and apparatus to dynamically recalibrate VLSI chip thermal sensors through software control |
US7120784B2 (en) | 2003-04-28 | 2006-10-10 | International Business Machines Corporation | Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
US20050149701A1 (en) | 2003-12-24 | 2005-07-07 | Inching Chen | Method, apparatus and system for pair-wise minimum and minimum mask instructions |
US20050240699A1 (en) * | 2004-03-31 | 2005-10-27 | Yoder Michael E | Safe process deactivation |
US20050283593A1 (en) * | 2004-06-18 | 2005-12-22 | Vladimir Vasekin | Loop end prediction |
US20060123422A1 (en) * | 2004-12-02 | 2006-06-08 | International Business Machines Corporation | Processor packing in an SMP server to conserve energy |
-
2005
- 2005-06-09 US US11/150,729 patent/US7836284B2/en active Active
-
2006
- 2006-05-25 EP EP06771403A patent/EP1894091B1/en active Active
- 2006-05-25 ES ES06771403T patent/ES2360816T3/es active Active
- 2006-05-25 WO PCT/US2006/020614 patent/WO2006135554A2/en active Application Filing
- 2006-05-25 CN CN200680026469A patent/CN100595730C/zh not_active Expired - Fee Related
- 2006-05-25 DE DE602006021019T patent/DE602006021019D1/de active Active
- 2006-05-25 KR KR1020087000668A patent/KR101006030B1/ko active IP Right Grant
- 2006-05-25 MX MX2007015555A patent/MX2007015555A/es active IP Right Grant
- 2006-05-25 ES ES10192125T patent/ES2389946T3/es active Active
- 2006-05-25 JP JP2008515749A patent/JP5074389B2/ja not_active Expired - Fee Related
- 2006-05-25 EP EP10192125A patent/EP2290527B1/en active Active
- 2006-05-25 AT AT06771403T patent/ATE504038T1/de not_active IP Right Cessation
-
2007
- 2007-12-02 IL IL187805A patent/IL187805A0/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP2290527A2 (en) | 2011-03-02 |
IL187805A0 (en) | 2008-08-07 |
EP1894091B1 (en) | 2011-03-30 |
EP1894091A2 (en) | 2008-03-05 |
WO2006135554A2 (en) | 2006-12-21 |
EP2290527A3 (en) | 2011-03-16 |
US20060282826A1 (en) | 2006-12-14 |
JP5074389B2 (ja) | 2012-11-14 |
WO2006135554A3 (en) | 2007-12-13 |
EP2290527B1 (en) | 2012-07-18 |
KR101006030B1 (ko) | 2011-01-06 |
KR20080021773A (ko) | 2008-03-07 |
DE602006021019D1 (de) | 2011-05-12 |
ES2389946T3 (es) | 2012-11-05 |
EP1894091A4 (en) | 2008-08-13 |
ES2360816T3 (es) | 2011-06-09 |
MX2007015555A (es) | 2008-02-21 |
US7836284B2 (en) | 2010-11-16 |
JP2008544350A (ja) | 2008-12-04 |
ATE504038T1 (de) | 2011-04-15 |
CN100595730C (zh) | 2010-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100595730C (zh) | 并行数据处理器及其控制方法 | |
JP4008989B2 (ja) | マイクロプロセッサ及びその最適化方法 | |
US8799627B2 (en) | Software selectable adjustment of SIMD parallelism | |
US5996084A (en) | Method and apparatus for real-time CPU thermal management and power conservation by adjusting CPU clock frequency in accordance with CPU activity | |
EP2073097B1 (en) | Transitioning a processor package to a low power state | |
US7587618B2 (en) | Computer system and unit, and power supply control method therefor | |
US20070277020A1 (en) | Optimization of subsystem interconnections in an electronic device | |
US7457970B2 (en) | VLIW processor with power saving | |
TW200305074A (en) | Multiple mode power throttle mechanism | |
KR20050095794A (ko) | 주변장치 및 그 제어방법, 그 본체장치 및 그 제어방법 및그 프로그램 | |
CN100388165C (zh) | 计算机系统中用于管理电源的装置和方法以及计算机系统 | |
CN101366007B (zh) | 用于控制中断例程的执行的方法、计算机程序产品和计算机系统 | |
US20050229018A1 (en) | Configurable processor | |
KR101754203B1 (ko) | 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 | |
JPH01155459A (ja) | プロセツサおよび並列計算機 | |
KR101684493B1 (ko) | 무선 감지기 및 그 제어 방법 | |
JPH10333789A (ja) | コンピュータ | |
CN112579513B (zh) | 芯片自适应控制电路、方法和系统级芯片 | |
JPH01234911A (ja) | シーケンサの冷却装置の制御装置 | |
TWI425419B (zh) | 低功率程式編譯方法、裝置以及儲存其之電腦可讀取紀錄媒體 | |
KR100225985B1 (ko) | 컴퓨터의 전력 소모 방지 장치 및 그 제어 방법 | |
EP1416355B1 (en) | Improvements in or relating to central processing units | |
KR20050023261A (ko) | 데이터 처리 유닛들의 제어된 셧다운을 위한 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100324 Termination date: 20210525 |