CN101160562A - 用于异质多管线处理器中的功率减小的方法和设备 - Google Patents

用于异质多管线处理器中的功率减小的方法和设备 Download PDF

Info

Publication number
CN101160562A
CN101160562A CNA2006800129232A CN200680012923A CN101160562A CN 101160562 A CN101160562 A CN 101160562A CN A2006800129232 A CNA2006800129232 A CN A2006800129232A CN 200680012923 A CN200680012923 A CN 200680012923A CN 101160562 A CN101160562 A CN 101160562A
Authority
CN
China
Prior art keywords
instruction
pipeline
processing pipeline
processing
performance
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.)
Pending
Application number
CNA2006800129232A
Other languages
English (en)
Inventor
托马斯·K·科洛皮
托马斯·安德鲁·萨托里乌斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101160562A publication Critical patent/CN101160562A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

一种处理器包含例如取出级和解码级等共用指令解码前端和一组异质处理管线。较低性能管线具有较少级,且可利用较低速度/功率电路。较高性能管线具有较多级,且利用较快电路。所述管线共享其它处理器资源,例如指令高速缓冲存储器、寄存器文件堆栈、数据高速缓冲存储器、存储器接口和***内的其它构造的寄存器。在所揭示的实例中,控制所述处理器使得需要较高性能的处理在所述较高性能管线中运行,而在至少一些情况下,那些需要较低性能的处理利用所述较低性能管线,且同时所述较高性能管线有效地不活动或甚至关闭以使电力消耗最小化。所述处理器在任何给定时间的配置,也就是说当前正操作的管线,可经由若干不同技术来控制。

Description

用于异质多管线处理器中的功率减小的方法和设备
技术领域
本主题涉及用于当处理功能需要较低处理能力时有效地提供具有减小的电力消耗的管线处理的技术和处理器结构。
背景技术
集成处理器(例如微处理器和数字信号处理器)通常利用管线处理结构。处理管线基本上由一系列处理级组成,每一处理级执行特定功能并将结果传递到管线的下一级。管线的简单实例可能包含用于取出指令的取出级、用于解码由取出级获得的指令的解码级、用于读取或获得操作数数据的读出级和用于执行经解码指令的执行级。典型的执行级可能包含算术逻辑单元(ALU)。写回级将执行结果放置在寄存器或存储器中以供稍后使用。指令连续地移动通过管线。
在给定的处理周期期间,每一级基于所述系列指令中的一者来执行其各个功能,使得管线同时处理对应于级数目的许多指令。随着期望的操作速度增加,制造商增加管线的各个级的数目,使得在每一周期期间处理更多指令。本质上,上文概述的五个主要功能被分解为较小任务并分布在更多级上。并且,可使用较快的晶体管或级结构。然而,增加级的数目会增加电力消耗。较快的晶体管或级结构经常进一步增加电力消耗。
尤其在便携式或低功率装置中,处理器的许多功能或应用不需要管线的完全处理能力,或仅在非常有限的时间内需要完全处理能力。换句话说,经设计用于较高性能应用的处理器必须比经设计用于较低性能应用的处理器使用更快的电路和更深的管线,然而,即使是较高性能处理器也经常执行仅需要较低性能处理能力的应用或其部分。较高性能处理器管线即使在执行较低性能要求时也会消耗较多电力。
已经认识到需要一种技术,其(例如)在运行较低性能应用时,使较高性能处理***在较低性能模式下操作,且同时耗散比完全高性能操作所需的电力少的电力。优选地,低性能操作将利用比得上低性能处理器的电力的电力。
希望解决这种需要的一些结构已利用两个单独的中央处理单元,一个用于高性能且一个用于低性能,其中基于特定应用或处理的要求进行选择。在多处理方案中,其它所提议的结构已使用具有相等性能(但各个性能小于完全高性能)的并行中央处理单元,并在较高性能变得必需时聚合其使用/操作。任何使用两个或两个以上完整的中央处理单元的情况均会显著使编程任务变得复杂,因为程序员必须针对每一中央处理单元写入单独的程序且将指令包含在每一单独程序中以用于当不同应用必须交互时所述中央处理单元之间进行必要的通信和协调。使用两个或两个以***处理单元还增加了***复杂性和成本。举例来说,两个中央处理单元经常包含至少一些复制电路,例如指令取出与解码电路、寄存器文件、高速缓冲存储器等。并且,单独单元的互连可使芯片电路布局变复杂。
因此,需要一种较有效的技术,其允许信号处理器以不同的性能水平运行程序且同时消耗不同量的电力,例如使得在较低性能模式下电力耗散较低且甚至可能比得上较低性能处理器的电力耗散。
发明内容
本文的教示允许管线处理器通过经由两个或两个以上异质管线选择性地处理指令而以减小的功率电平在低性能模式下操作。处理管线是异质的或不均衡的,因为每一管线中的深度或级数目大致上是不同的。
一种针对中央处理单元的指令管线处理的方法包含依次解码指令流中的每一指令,且将经解码指令选择性地供应到两个处理管线,以用于多级处理。将第一指令供应到具有第一数目的一个或一个以上级的第一处理管线;且将第二指令供应到具有第二数目的级的第二处理管线。第二管线较长,因为其比第一管线包含更高数目的级,且因此第二处理管线的性能高于第一处理管线的性能。
在下文详细论述的实例中,第二经解码指令(也就是说,那些选择性地施加到第二处理管线的指令)比第一经解码指令具有更高的性能要求。在通过第一处理管线的级基于第一经解码指令执行至少一些功能期间,第二处理管线并不同时基于第二经解码指令执行任何功能。因此,此时,具有较高性能的第二处理管线不消耗同样多的电力,且在一些实例中可能被完全切断电力。由于第一处理管线的级较少且因为其通常以较慢速率运行且可利用较低功率电路,所以与第二处理管线相比,第一处理管线消耗较少电力。除了性能和电力消耗的差异外,两个管线提供类似的总体处理。经由共用前端,能够馈给一个统一程序流并基于性能要求在内部分离指令。因此,应用程序草拟者无需特别针对两个单独处理器的不同能力来裁剪软件。
本发明揭示用于将指令选择性地供应到处理管线的许多算法。举例来说,所述选择可基于第一和第二经解码指令的性能要求,例如以逐个指令为基础或基于应用层级性能要求。在另一实例中,所述选择基于第一和第二范围内的指令地址。
举例来说,一种用于实施如上文概述的处理方法的处理器包含用于存储处理指令的共用指令存储器和一组异质的至少两个处理管线。提供用于基于性能要求来分离从共用指令存储器获得的处理指令流的装置。此元件将需要较低性能的处理指令供应到处理管线中的较低性能处理管线,且将需要较高性能的处理指令供应到处理管线中的较高性能处理管线。
在所揭示的实例中,所述组管线包含具有第一数目的一个或一个以上级的第一处理管线和具有比第一数目的级多的第二数目的级的第二处理管线。与第一处理管线相比,第二处理管线提供较高性能。通常,与第一处理管线相比,第二处理管线以较高时钟速率操作,每时钟周期执行较少功能,但具有较多级并使用较多处理周期(其每一者较短),且因此汲取较多电力。共用前端从共用指令存储器获得处理指令,并将处理指令选择性地供应到所述两个处理管线。在所述实例中,共用前端包含取出级和解码级。取出级耦合到共用指令存储器,且所述级的逻辑从存储器中取出处理指令。解码级解码取出的处理指令并将经解码的处理指令供应到适当的处理管线。
额外的目的、优点和新颖特征将部分地在随后描述内容中陈述,且部分将由所属领域的技术人员通过检查以下内容和附图而容易了解或者可通过产生或操作实例来学习。可通过实践或使用所附权利要求书中明确指出的方法、工具和组合来实现和达成本教示的目的和优点。
附图说明
所绘图式仅以举例方式而非限制方式描绘根据本教示的一个或一个以上实施方案。在图式中,相似参考标号指代相同或类似元件。
图1是实施共用前端和一组异质处理管线的中央处理单元的功能方框图。
图2是可用于阐释用于分离指令以便分布在如图1的***中的管线之间的第一技术的逻辑/流程图。
图3是可用于阐释用于分离指令以便分布在如图1的***中的管线之间的第二技术的逻辑/流程图。
图4是可用于阐释用于分离指令以便分布在如图1的***中的管线之间的第三技术的逻辑/流程图。
具体实施方式
在以下详细描述中,以举例方式陈述大量特定细节以便提供对相关教示的彻底理解。然而,所属领域的技术人员应了解,可在没有这些细节的情况下实践本教示。在其它情况下,相对概括而非详细地描述众所周知的方法、程序、组件和电路,以便避免不必要地混淆本教示的各方面。
用作中央处理单元或数字信号处理器的示范性处理器包含共用指令解码前端,例如取出级和解码级。然而,所述处理器包含至少两个单独执行管线。较低性能管线耗散相对较少电力。较低性能管线具有较少级且可利用汲取较少电力的较低速度电路。较高性能管线具有较多级且可利用较快电路。较低性能管线可以比高性能管线低的频率进行计时。尽管较高性能管线汲取较多电力,但其操作可限于当至少一些应用或处理功能需要较高性能的时期。
控制所述处理器使得需要较高性能的处理在较高性能管线中运行,而在至少一些情况下,那些需要较低性能的处理利用较低性能管线,同时所述较高性能管线有效地关闭以使电力消耗最小化。处理器在任何给定时间处的配置(也就是说,当前正操作的管线)可经由若干不同技术来控制。此类控制的实例包含软件控制,其中软件本身指示相对性能要求且因此规定哪个(些)管线应处理特定软件。也可由从中获得特定指令存储器位置来规定所述选择,例如使得来自一些位置的指令行进到较低性能管线且来自其它位置的指令行进到较高性能管线。其它方法可能利用硬件机制来适应性地或动态地检测处理要求并将指令、应用或功能导向适当管线。
在所述实例中,处理器利用至少两个并行执行管线,其中所述管线是异质的。管线共享其它处理器资源,例如以下各项中的任何一者或一者以上:前端的取出级和解码级、指令高速缓冲存储器、寄存器文件堆栈、数据高速缓冲存储器、存储器接口和***内的其它构造的寄存器。
现详细参照附图中说明的以及下文论述的实例。图1说明充当中央处理单元(CPU)11的处理器结构的简化实例。处理器/CPU 11使用异质的并行管线处理,其中一个管线提供较低性能以用于低性能/低功率操作。一个或一个以上其它管线提供较高性能。
“管线”可包含少至一个级,但其通常包含多个级。在简单形式中,处理器管线通常包含用于五个主要功能的管线级。管线的第一级是指令取出级,其获得指令以供随后级进行处理。取出级将每一指令供应到解码级。指令解码级的逻辑解码所接收的指令字节并将结果供应到管线的下一级。下一级的功能是数据存取或读出。读出级的逻辑存取存储器或其它资源以获得操作数数据用于根据指令进行处理。指令和操作数数据被传递到执行级,执行级对检索到的数据执行特定指令并产生结果。典型的执行级可实施算术逻辑单元(ALU)。第五级将执行结果写回到存储器。
在高级管线结构中,这五级功能中的每一者被再分并在多个级中实施。超标量设计利用同时并行操作的具有大致相同深度的两个或两个以上管线。此超标量处理器的实例可能使用两个并行管线,每一管线包括十四个级。
示范性CPU 11包含共用前端13和许多共用资源15。共用资源15包含指令存储器17,例如指令高速缓冲存储器,其为处理器11的管线提供统一指令流。如下文进一步论述,统一指令流流到共用前端13,以便将指令分布在管线之间。共用资源15包含可供所有管线使用的许多资源19-23。此类资源的实例包含用于存取外部存储器的存储器管理单元(MMU)19和通用寄存器21的堆栈或文件,但可能存在多种其它共用资源23。所属领域的技术人员将认识到,以上仅以举例方式将资源列举为共用资源。这些资源中的任何一者均不是必须为共用的。举例来说,本教示同样地适用于具有共用寄存器文件的处理器以及不使用共用寄存器文件的处理器。
继续所说明的实例,共用前端1包含“取出”级25,以用于依次从指令存储器17取出指令。循序地,取出级25将每一新近获得的指令馈入到解码级27。作为其解码功能的一部分,解码级27将每一经解码指令路由或切换到管线中的一者。
尽管未单独展示,但取出级25通常包括实施取出逻辑的状态机或类似物,以及用于将取出的指令传递到解码级27的相关联寄存器。取出级逻辑最初试图从最低层级指令存储器(在此情况下为指令高速缓冲存储器17)取出下一寻址的指令。如果指令尚不在高速缓冲存储器17中,那么取出级25的逻辑将从经由存储器管理单元19存取的其它资源(例如第二层级(L2)高速缓冲存储器或主存储器)将指令取出到高速缓冲存储器17中。一旦加载在高速缓冲存储器17中,取出级25的逻辑就从高速缓冲存储器17取出指令并将指令供应到解码级27。接着,当随后需要时,指令将在高速缓冲存储器17中可用。尽管未单独展示,但指令高速缓冲存储器17通常将提供分支目标地址高速缓冲存储器(BTAC)或使其与分支目标地址高速缓冲存储器(BTAC)相关联,以用于以与指令高速缓冲存储器17的操作类似的方式高速缓冲存储在管线处理器11处理分支型指令期间所采取的分支的目标地址。所属领域的技术人员将认识到,取出级25和/或解码级27可分解为多个子级,以增加管线处理。
CPU 11包含低性能管线处理区31和高性能管线处理区33。两个区31和33是异质的或不均衡的,因为每一管线中的深度或级数目大致上是不同的。高性能区33通常包含的级比在形成低性能区31的管线中的级多,且在实例中,高性能区31包含两个(或两个以上)并行管线,每一管线具有相同数目的级且大致上深于低性能区31的管线。由于取出级和解码级在共用前端13中实施,所以低性能管线可仅由单个级组成。通常,较低性能管线包含两个或两个以上级。低性能管线区31可包含并行的多个管线,但为了使电力消耗和复杂性最小化,示范性结构在低性能区31中利用单个三级管线。
对于从取出级25接收的每一指令,解码级27解码指令字节并将结果供应到管线的下一级。尽管未单独展示,但解码级27通常包括实施解码逻辑的状态机或类似物,以及用于将经解码指令传递到下一级的逻辑的相关联寄存器。由于处理器11包含多个管线,所以解码级逻辑还确定应接收每一指令并相应地路由每一经解码指令的管线。举例来说,解码级27可包含两个或两个以上寄存器,每一管线一个寄存器,且所述逻辑将基于其对哪一管线将处理特定指令的判定而把每一经解码指令加载到适当寄存器中。当然,指令分派单元或另一路由或切换机制可在解码级27中或在所述级与CPU 11的后续管线处理级31、33之间实施。
每一管线级包含用于执行与特定级相关联的各个功能的逻辑,以及用于俘获级处理的结果以传送到管线的下一连续级的寄存器。首先考虑较低性能管线31。注意到,共用前端13实施典型管线的最初两个级,即取出和解码。在管线31的最简单形式中,管线31可实施少至一个级,但在实例中其实施用于基本管线的剩余主要功能的三个级,也就是说读出、执行和写回。管线31可由稍许更多的处理级组成,以允许将功能稍许细分以获得稍许改进的性能。
来自解码级27的经解码指令首先施加到逻辑311,也就是说读出逻辑311,其存取共用存储器或其它共用资源(19-23)以获得操作数数据以用于根据指令进行处理。读出逻辑311将指令和操作数数据放置在相关联的寄存器312中以便传递到下一级的逻辑。在实例中,下一级是算术逻辑单元(ALU),其充当执行级的执行逻辑313。ALU执行逻辑313对所检索的数据执行特定指令,产生结果并将结果加载在寄存器314中。最后级的逻辑315和相关联寄存器316起作用以将执行结果写回到存储器。
在每一处理周期期间,每一逻辑对从先前级的寄存器供应的信息执行其处理。随着指令从一个级移动到下一级,先前级获得并处理新的指令。在通过管线31处理的任何给定时间,五个级25、27、311、313和315同时相对于五个连续指令执行其所分派到的任务。
管线31的性能相对较低,因为其具有相对较小数目的级,在我们的实例中只有三个。管线31的时钟速度相对较低,例如100MHz。并且,管线31的每一级可例如鉴于低时钟速度要求而使用相对较低功率电路。相比之下,较高性能处理管线区33利用较多级,处理管线33以较高速率(例如,1GHz)进行计时,且所述管线33的每一级使用通常需要较多电力的较快电路。所属领域的技术人员将了解,不同的时钟速率只是实例而已。举例来说,本教示适用于在相同频率下对两个管线进行计时的实施方案。
继续所说明的实例,前端25将经设计以补偿其关于预期用于不同管线31和33的指令的操作中的时钟速率差异。可使用若干不同的技术,且通常选择一种技术来最佳地支持由前端25实施以在管线31与33之间进行选择的特定算法。举例来说,如果前端25在较长时间间隔内选择性地仅馈给所述管线中的一者或另一者,那么可将前端时钟速率选择性地设定为所述两个管线速率中的每一者,以始终与管线31和33中的当前活动管线的速率匹配。
在实例中,处理管线区33使用超标量结构,其包含具有大体相等深度的多个并行管线,其由两个单独并行管线35和37表示。管线35在此实例中是十二级管线,但管线可依据针对特定区33确立的性能要求而具有更少或更多级。与管线35相似,管线37是十二级管线,但管线可依据性能要求而具有更少或更多级。这两个管线同时并行操作,因为两组指令大致上同时移动通过两个管线的级且由两个管线的级处理。这两个管线中的每一者经由MMU 19存取主存储器中的数据,且根据需要可使用例如寄存器21等其它共用资源。
首先考虑管线35。来自解码级27的经解码指令首先被施加到级1逻辑351。逻辑351根据其逻辑设计处理指令。所述处理可能需要经由共用资源15中的一者或一者以上或与此读出功能有关的某一任务来存取其它数据。当完成时,处理结果出现在寄存器352中并传递到下一级。在下一处理周期中,第二级的逻辑353对来自第一级寄存器352的结果执行其处理,并将其结果加载到寄存器354中以便传递到第三级,且这一过程继续直到由第十二级逻辑357处理为止,且在由所述逻辑处理之后,最后结果出现在寄存器358中以供输出,通常供写回到或经过共用资源15中的一者。所述级中的若干者共同执行类似于读出的功能。类似地,若干级本质上共同执行每一指令;且管线底部附近的一个或一个以上级将结果写回到寄存器和/或存储器。
当然,在较高性能处理管线33的操作期间的每一连续处理周期期间,解码级27将新的经解码指令供应到第一级逻辑351以进行处理。因此,在任何给定的处理周期期间,管线35的每一级在管线35的其它级进行处理的同时执行其所分派到的处理任务。
同样,在较高性能管线区33的每一操作周期期间,解码级27将经解码指令供应到并行管线37的级1逻辑371。逻辑371根据其逻辑设计处理指令。所述处理可能需要经由共用资源15中的一者或一者以上或与此读出功能有关的某一任务来存取其它数据。当完成时,处理结果出现在寄存器372中并传递到下一级。在下一处理周期中,第二级的逻辑373对来自第一级寄存器372的结果执行其处理,并将其结果加载到寄存器374中以便传递到第三级,且这一过程继续直到由第十二级逻辑377处理为止,且在由所述逻辑处理之后,最后结果出现在寄存器378中以供输出,通常供写回到或经过共用资源15中的一者。所述级中的若干者共同执行类似于读出的功能。类似地,若干级共同本质上执行每一指令;且管线底部附近的一个或一个以上级将结果写回到寄存器和/或存储器。
当然,在较高性能处理管线33的操作期间的每一连续处理周期期间,解码级27将新的经解码指令供应到第一级逻辑371以进行处理。因此,在任何给定的处理周期期间,管线37的每一级在管线37的其它级进行处理的同时执行其所分派到的处理任务。
以此方式,两个管线35和37在较高性能管线区33的处理操作期间同时并行操作。这些操作可能需要在两个管线的级之间交换某些信息。
总体上,由处理管线区31执行的处理功能可能与由处理管线区33执行的处理功能大致上类似或相同。换句话说,前端13与低性能区31的组合本质上提供完整的单标量管线处理器,以用于实施CPU 11的低性能处理功能或应用。类似地,前端13与高性能处理管线33的组合本质上提供完整的超标量管线处理器,以用于实施CPU 13的高性能处理功能或应用。由于级的较高数目和用于构造级的较快电路的缘故,管线区33可以高得多的速率执行指令或执行操作。
因为每一区31、33可与前端13一起充当完整的管线处理器,所以能够以统一方式写入编程,而不用预先知道或确定哪一管线区31或33必须执行特定指令或子例行程序。不需要特意为不同中央处理单元中的不同资源写入不同程序。相反,单个指令流可基于性能与电力消耗要求而***在处理管线之间。如果应用需要较高性能和/或值得较高电力消耗,那么针对所述应用的指令传递通过高性能管线区33。如果不是,那么通过较低性能管线31处理应当是足够的。
处理器11在用作通常以有限电源(通常是电池型电源)操作的手持式或便携式装置的CPU时具有特定优点。此类应用的实例包含蜂窝式电话、手持式计算机、个人数字助理(PDA)和如BlackBerryTM的手持式终端装置。当CPU 11用于此类装置中时,低性能管线31运行具有较低性能要求的应用或指令,例如后台监视状态和通信、电话通信、电子邮件等。例如视频游戏等需要较高性能的装置应用(例如,对于相关的高分辨率图形渲染)将在较高性能管线区33上运行。
当不需要高性能功能时,例如当并入有CPU 11的装置仅运行低性能/低功率应用时,不使用高性能区33,且减少电力消耗。前端25可以低时钟速率运行。在高性能区33操作期间,所述区可运行所有当前正在执行的应用,在此情况下,低性能区31可被关闭以节省电力。前端25将以较高时钟速率运行。
还能够在高性能管线33操作期间继续运行低性能管线31,例如以在后台执行选定的低性能功能。举例来说,在处理器11的蜂窝式电话型应用中,电话应用可能在低性能区31上运行。例如游戏等需要视频处理的应用利用高性能区33。在高性能区33中运行的游戏期间,例如当站有效地接听传入电话时,电话应用可继续在低性能区31中运行。前端25将跟踪每一取出的指令的既定管线目的地,并使其分派功能适合于既定用于处理每一特定指令的管线31或33的时钟速率。
存在若干方式来实施例如图1所示的***中的电力节省。举例来说,当仅运行较低性能处理管线33时,较高性能处理管线31不起作用;且因此,区33的级不会动态地汲取操作电力。这减少了动态电力消耗。为了减少泄漏,区31的级的晶体管可经设计而具有相对较高的栅极阈值电压。或者,CPU 11可包含用于较高性能处理管线区31的电力控制38。当解码级27有指令要在区33的管线中处理时,控制38向区33接通电力。当所有处理均将在较低性能处理管线31中执行时,控制38切断到达相对于区33的级的电力端子(电源或接地)中的一者的连接。所述切断消除了通过处理区33的电路的泄漏。
在具有电力控制38的所说明的实例中,到达较低性能处理管线31的电力始终开启,例如使得即使较高性能处理管线33起作用时管线31也可执行某一指令执行。以此方式,管线31保持可用于运行后台应用和/或运行一些指令以支持主要通过较高性能处理管线33运行的应用。在当较高性能处理管线33起作用时所有处理均转移到所述管线的实施方案中,可能存在额外的电力控制(未图示)以当较低性能处理管线31不在使用时切断到达较低性能处理管线31的电力。
存在前端13可动态适应两个管线31与33的操作速率的差异的许多方式,即使两个管线在至少一些条件下可同时操作。在一种方法中,对于前端25所传递的每一指令,前端25考虑由指令将被传递到的特定管线31或33传递的“就绪”信号。如果特定管线31或33正以比前端25慢的频率运行(前端与管线时钟比率为N∶1),那么此“就绪”信号将每N个周期至多仅活动一次。前端响应于针对所述管线31或33的就绪信号而将下一经解码指令分派到特定管线。在另一方法中,前端25自身负责跟踪其何时已将指令发送到管的每一者,并根据其对两个管线31与33的相对频率的了解而“记录”一个指令与下一指令传递之间需要的周期。
如上文所指示,前端25与每一管线31、33之间的“异步”接口可根据在两个不同频域中操作的接口逻辑领域的技术人员将了解的大多数“频率同步方法”的任一者进行操作。所述接口可完全异步(两个频率之间没有关系)或同步(两个频率之间存在某一积分关系,例如3∶2)。不管方法如何,在前端25能够执行多线程的情况下,前端25可同时在较低性能管线31与较高性能管线33两者之间介接。每一接口均根据频率关系,且去往给定管线31或33的指令根据所述管线的频率同步机制来计时。
上文概述的解决方案类似超标量管线处理器设计,因为其包含在单个处理器或CPU11内并行实施的多个管线。然而,差异在于,与在超标量中单个总体处理并行利用所有执行管线不同,示范性处理器11限制使用针对传递处于特定类别(例如,低或高)中的处理所必需的性能而设计的特定管线。并且,典型的超标量处理器结构利用深度方面相对均衡的管线集合。相比之下,所述实例中的管线31和33由于需要单独满足高性能与低功率的冲突要求而“不均衡”(异质)。
可使用多种不同技术来确定将哪些指令导向每一处理管线或区31、33。可能有帮助的是考虑一些逻辑流程,如图2-4以举例方式所示。
第一示范性指令分派方法利用指令的地址来确定将哪些指令发送到每一管线。在图2的实例中,向低性能处理管线31分配地址范围,且向较高性能处理管线33分配地址范围。当应用指令被写入并存储在存储器中时,其基于适当的指令地址范围而被存储在存储器区域中。
出于论述目的,假定地址范围0001到0999与低性能指令有关。存储在主存储器中对应于那些地址的位置中的指令是具有较低性能要求的应用的指令。当较低性能应用的指令加载到指令高速缓冲存储器17中时,也加载地址。当前端13从高速缓冲存储器17取出并解码指令时,解码级27将由在0001到0999范围内的任何地址识别的指令分派到较低性能管线31。当此类指令被取出、解码并通过较低性能管线31处理时,较高性能处理管线33可能不活动或甚至与电力断开连接,以减少CPU11的动态和/或泄漏电力消耗。
然而,当前端13取出并解码指令时,解码级27将由在1000到9999范围内的任何地址识别的指令分派到较高性能管线33。当那些指令被取出、解码并通过较高性能管线33处理时,至少处理管线33活动并汲取全部电力,但管线31也可能起作用。
在图2的流程所表示的类型的实例中,解码级27的逻辑基于指令地址来确定将经解码指令导向哪里。当然,此分派逻辑可在单独级中实施。所属领域的技术人员将认识到,所给出的地址范围只是实例而已。实际处理器中将使用其它寻址方案,且可使用多种不同范围方案来有效地将存储器区域分配到异质处理管线31和33。举例来说,为每一管线分配的范围或存储器位置可以是或不是连续或邻接的。
图3中说明的流程表示逻辑39基于与每一指令相关联的旗标作出决策的技术。所述决策可在解码级27的逻辑中实施或在级27与管线31、33之间的分派级中实施。在此实例中,在存储器中与CPU 11的每一指令相关联设定一位旗标。所述旗标针对具有高性能处理要求的任何指令具有0状态。所述旗标针对具有低性能处理要求(或不具有高性能处理要求)的任何指令具有1状态。当然,这些旗标状态只是实例而已。
当从存储器17取出的流中的每一指令到达逻辑39时,所述逻辑检查旗标。如果旗标具有0状态,那么逻辑将指令分派到较高性能处理管线33。如果旗标具有1状态,那么逻辑将指令分派到较低性能处理管线31。在所述实例中,最初两个指令(0001和0002)是低性能指令(每一者的旗标为1状态),且决策逻辑39将那些指令路由到较低性能处理管线31。接下来的两个指令(0003和0004)是高性能指令(每一者的旗标为0状态),且决策逻辑39将那些指令路由到较高性能处理管线33。
指令的这种交替路由或分派在来自存储器17的流中的指令的取出和解码的整个过程中继续。在所述实例中,序列中的最后第二个指令(9998)是低性能指令(旗标为1状态),且决策逻辑39将所述指令路由到较低性能处理管线31。序列中的最后指令(9999)是高性能指令(旗标为0状态),且决策逻辑39将所述指令路由到较高性能处理管线33。进一步的处理绕回到0001第一指令并再次继续通过所述序列。尽管未图示,但指令处理将有可能偶尔出现分支,然而决策逻辑39将基于性能要求旗标的状态继续将每一指令分派到适当管线。再次,从0001到9999编号的地址仅是代表性的,且所述方案可以且将容易地适合特定实际处理器所利用的寻址方案。
图3所表示的类型的分派技术基于相关联的旗标来分派每一各个指令。举例来说,在两个管线有时在一些时段内同时运行的情况下,此技术可能是有用的。当较高性能处理管线33运行时,较低性能处理管线31可能正运行某些支持或后台应用程序。当然,有时在仅执行低性能指令时,较高性能处理管线33将不活动且CPU11将汲取较少电力,如先前相对于图1论述。
图4中说明的流程例证另一种利用旗标的技术。此技术类似于图3的技术,但在41处实施稍许不同的决策逻辑。再次,地址编号仅用于简化实例和论述目的。当没有高性能应用在运行时,逻辑41接收到的所有指令均在旗标中设定低性能值(例如,1)。作为响应,逻辑41将那些指令(所述简单实例中为0001和0002)的经解码版本分派到较低性能处理管线31。管线33闲置。
决策逻辑41基于接收在旗标中设定有高性能值(例如,0)的开始指令(例如,在0003处)来确定高性能应用的处理是否已开始。只要所述应用(例如)从指令0003到指令0901保持运行,逻辑49就将所有经解码指令分派到较高性能处理管线33。在此期间,较低性能处理管线31可能关闭和/或到达所述管线的电力被切断。在此期间,管线33处理低性能和高性能指令两者。当高性能应用结束(所述实例中在0901指令处)且取出新的指令(例如,0902)时,决策逻辑41重新开始向较低性能处理管线31分派,且管线33变闲置。
在图2-4的实例中,相对于处理管线31、33的指令分派和相关联的处理状态基于同维持在指令存储器中或与指令存储器相关联的指令相关联的信息,例如地址值和/或旗标。其它技术可使用此类信息的组合或利用完全不同的参数来控制管线选择和状态。举例来说,设想逻辑可监视CPU 11的性能并当某一度量达到适当阈值时动态地上下调节性能,例如以在用于响应特定类型的指令的时间太长时开启较高性能处理管线33,且当延迟落回阈值以下时关闭管线33。如果需要的话,可提供单独硬件来执行监视和动态控制。所属领域的技术人员将了解,其它控制和/或指令分派算法可能是有用的。
尽管上文已描述认为是最佳模式的内容和/或其它实例,但应了解,可在其中作出各种修改且可以各种形式和实例来实施本文揭示的主题,且所述教示可适用于许多应用中,本文仅描述了其中一些应用。所附权利要求书希望主张属于本教示的真正范围内的任何和所有应用、修改及变化。

Claims (26)

1.一种针对中央处理单元的指令管线处理的方法,其包括:
依次解码指令流中的每一指令;
选择性地将第一经解码指令供应到具有第一数目的一个或一个以上级的第一处理管线;
通过所述第一处理管线的所述级基于所述第一经解码指令执行一系列功能;
选择性地将第二经解码指令供应到具有第二数目的级的第二处理管线,其中所述第二级数目高于所述第一级数目,且所述第二处理管线的性能高于所述第一处理管线的性能;以及
通过所述第二处理管线的所述级基于所述第二经解码指令执行一系列功能。
2.根据权利要求1所述的方法,其中在所述通过所述第一处理管线的所述级基于所述第一经解码指令执行所述功能中的至少一些的期间,所述第二处理管线并不同时基于所述第二经解码指令执行所述功能中的任一者。
3.根据权利要求2所述的方法,其中与所述第一经解码指令相比,所述第二经解码指令具有较高性能要求。
4.根据权利要求3所述的方法,其中与所述第二处理管线相比,所述第一处理管线消耗较少电力。
5.根据权利要求4所述的方法,其进一步包括在通过所述第一处理管线的所述级执行所述功能中的所述至少一些期间切断到达所述第二处理管线的电力。
6.根据权利要求4所述的方法,其中所述选择基于所述第一和第二经解码指令的性能要求。
7.根据权利要求4所述的方法,其中所述选择基于分别在第一和第二范围内的所述第一和第二指令的地址。
8.一种处理器,其包括:
共用指令存储器,其用于存储处理指令;
第一处理管线,其包括第一数目的一个或一个以上级;
第二处理管线,其包括比所述第一数目的级多的第二数目的级,所述第二处理管线提供比所述第一处理管线高的性能;以及
共用前端,其用于从所述共用指令存储器获得所述处理指令,并选择性地将所述处理指令中的第一处理指令供应到所述第一处理管线及将所述处理指令中的第二处理指令供应到所述第二处理管线。
9.根据权利要求8所述的处理器,其中:
所述第二处理管线以比所述第一处理管线高的时钟速率操作;以及
所述第一处理管线汲取比所述第二处理管线少的电力。
10.根据权利要求8所述的处理器,其中所述共用前端包括:
取出级,其用于从所述共用指令存储器获得所述处理指令;以及
解码级,其用于解码所述获得的处理指令中的每一者并选择性地将所述经解码的处理指令中的每一者供应到所述第一处理管线或所述第二处理管线。
11.根据权利要求8所述的处理器,其中所述共用前端基于所述第一和第二处理指令的相对性能要求来选择用于供应到所述第一处理管线的第一处理指令和用于供应到所述第二处理管线的第二处理指令。
12.根据权利要求8所述的处理器,其中所述第一处理管线由包括多个级的单标量管线组成。
13.根据权利要求8所述的处理器,其中所述第二处理管线包括具有相似深度的两个或两个以上并行多级管线,从而形成超标量管线。
14.根据权利要求8所述的处理器,其中:
所述第一处理管线的多个级经排列以形成单标量管线;且
所述第二处理管线的所述级经排列以形成包括具有相似深度的两个或两个以上并行多级管线的超标量管线。
15.根据权利要求14所述的处理器,其中所述两个并行管线中的每一者包括十二个级。
16.根据权利要求14所述的处理器,其中所述共用前端包括:
取出级,其耦合到所述共用指令存储器以用于取出所述处理指令;以及
解码级,其用于解码所述被取出的处理指令并将经解码的第一处理指令供应到所述第一处理管线,及将经解码的第二处理指令供应到所述两个并行管线。
17.根据权利要求8所述的处理器,其进一步包括:
存储器管理单元,其可共同用于所述第一处理管线的至少一个级和所述第二处理管线的至少一个级;以及
多个寄存器,其可共同用于所述第一处理管线的至少一个级和所述第二处理管线的至少一个级。
18.一种处理器,其包括:
共用指令存储器,其用于存储处理指令;
一组异质的至少两个处理管线;以及
用于分离和供应的装置,其基于性能要求分离从所述共用指令存储器获得的所述处理指令流,并将需要较低性能的处理指令供应到所述处理管线中的较低性能处理管线,且将需要较高性能的处理指令供应到所述处理管线中的较高性能处理管线。
19.根据权利要求18所述的处理器,其进一步包括可共同用于所有所述异质处理管线的至少一个资源。
20.根据权利要求19所述的处理器,其中所述至少一个资源包括:
存储器管理单元,其提供对存储器的存取;以及
多个寄存器。
21.根据权利要求18所述的处理器,其中所述用于分离的装置包括耦合在所述共用指令存储器与所述组异质处理管线之间的共用前端。
22.根据权利要求21所述的处理器,其中所述共用前端包括:
取出级,其耦合到所述共用指令存储器以用于取出所述处理指令;以及
解码级,其用于解码所述被取出的处理指令并将需要较低性能的经解码处理指令供应到所述较低性能处理管线,且将需要较高性能的经解码处理指令供应到所述较高性能处理管线。
23.根据权利要求18所述的处理器,其中所述较低性能处理管线汲取比所述较高性能处理管线少的电力。
24.一种处理器,其包括:
指令存储器,其用于存储处理指令;
一组异质处理管线,其包括:
(a)第一处理管线,其具有第一多个级以提供第一水平的处理性能,以及
(b)第二处理管线,其具有在数目上大于所述第一多个级的第二多个级,以提供高于所述第一水平的处理性能的第二水平的处理性能,其中通过所述第二处理管线进行处理消耗比通过所述第一处理管线进行处理消耗更多的电力;
至少一个共用处理资源,其可用于所述处理管线两者;以及
共用前端,其耦合在所述指令存储器与所述组异质处理管线之间,所述共用前端包括:
(1)取出级,其用于从所述指令存储器取出指令,以及
(2)解码级,其用于解码所述取出的指令,并选择性地将第一经解码指令供应到所述第一处理管线,且将第二经解码指令供应到所述第二处理管线。
25.根据权利要求24所述的处理器,其中:
所述第一处理管线的所述级经排列以形成单标量管线;且
所述第二处理管线的所述级经排列以形成包括具有相似深度的两个或两个以上并行多级管线的超标量管线。
26.根据权利要求25所述的处理器,其中:
所述第二经解码指令包括需要较高性能处理的指令,且
所述第一经解码指令由需要较低性能处理的指令组成。
CNA2006800129232A 2005-03-03 2006-03-03 用于异质多管线处理器中的功率减小的方法和设备 Pending CN101160562A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/072,667 2005-03-03
US11/072,667 US20060200651A1 (en) 2005-03-03 2005-03-03 Method and apparatus for power reduction utilizing heterogeneously-multi-pipelined processor

Publications (1)

Publication Number Publication Date
CN101160562A true CN101160562A (zh) 2008-04-09

Family

ID=36695767

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800129232A Pending CN101160562A (zh) 2005-03-03 2006-03-03 用于异质多管线处理器中的功率减小的方法和设备

Country Status (7)

Country Link
US (1) US20060200651A1 (zh)
EP (1) EP1853996A2 (zh)
KR (1) KR20070108932A (zh)
CN (1) CN101160562A (zh)
BR (1) BRPI0609196A2 (zh)
IL (1) IL185592A0 (zh)
WO (1) WO2006094196A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589679A (zh) * 2011-12-30 2016-05-18 世意法(北京)半导体研发有限责任公司 用于共享处理器过程上下文的寄存器堆组织
CN105814538A (zh) * 2013-10-23 2016-07-27 芬兰国家技术研究中心股份公司 用于仿真共享内存架构的支持浮点的流水线
CN107015943A (zh) * 2015-09-23 2017-08-04 联发科技股份有限公司 具有混合核结构的处理器及有关方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8886917B1 (en) * 2007-04-25 2014-11-11 Hewlett-Packard Development Company, L.P. Switching to core executing OS like codes upon system call reading greater than predetermined amount of data
US20090089166A1 (en) * 2007-10-01 2009-04-02 Happonen Aki P Providing dynamic content to users
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
GB2458487B (en) * 2008-03-19 2011-01-19 Imagination Tech Ltd Pipeline processors
US8806181B1 (en) * 2008-05-05 2014-08-12 Marvell International Ltd. Dynamic pipeline reconfiguration including changing a number of stages
US9141392B2 (en) * 2010-04-20 2015-09-22 Texas Instruments Incorporated Different clock frequencies and stalls for unbalanced pipeline execution logics
JP5574816B2 (ja) * 2010-05-14 2014-08-20 キヤノン株式会社 データ処理装置及びデータ処理方法
JP5618670B2 (ja) 2010-07-21 2014-11-05 キヤノン株式会社 データ処理装置及びその制御方法
US9465619B1 (en) * 2012-11-29 2016-10-11 Marvell Israel (M.I.S.L) Ltd. Systems and methods for shared pipeline architectures having minimalized delay
US9239712B2 (en) * 2013-03-29 2016-01-19 Intel Corporation Software pipelining at runtime
GB2539037B (en) 2015-06-05 2020-11-04 Advanced Risc Mach Ltd Apparatus having processing pipeline with first and second execution circuitry, and method
CN111008042B (zh) * 2019-11-22 2022-07-05 中国科学院计算技术研究所 基于异构流水线的高效通用处理器执行方法及***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220671A (en) * 1990-08-13 1993-06-15 Matsushita Electric Industrial Co., Ltd. Low-power consuming information processing apparatus
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5740417A (en) * 1995-12-05 1998-04-14 Motorola, Inc. Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US6047367A (en) * 1998-01-20 2000-04-04 International Business Machines Corporation Microprocessor with improved out of order support
US6304954B1 (en) * 1998-04-20 2001-10-16 Rise Technology Company Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
US6442672B1 (en) * 1998-09-30 2002-08-27 Conexant Systems, Inc. Method for dynamic allocation and efficient sharing of functional unit datapaths
US6289465B1 (en) * 1999-01-11 2001-09-11 International Business Machines Corporation System and method for power optimization in parallel units
WO2002057893A2 (en) * 2000-10-27 2002-07-25 Arc International (Uk) Limited Method and apparatus for reducing power consuption in a digital processor
US6986066B2 (en) * 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589679A (zh) * 2011-12-30 2016-05-18 世意法(北京)半导体研发有限责任公司 用于共享处理器过程上下文的寄存器堆组织
CN105589679B (zh) * 2011-12-30 2018-07-20 世意法(北京)半导体研发有限责任公司 用于共享处理器过程上下文的寄存器堆组织
CN105814538A (zh) * 2013-10-23 2016-07-27 芬兰国家技术研究中心股份公司 用于仿真共享内存架构的支持浮点的流水线
CN105814538B (zh) * 2013-10-23 2020-04-14 芬兰国家技术研究中心股份公司 用于仿真共享内存架构的支持浮点的流水线
CN107015943A (zh) * 2015-09-23 2017-08-04 联发科技股份有限公司 具有混合核结构的处理器及有关方法

Also Published As

Publication number Publication date
KR20070108932A (ko) 2007-11-13
IL185592A0 (en) 2008-01-06
WO2006094196A3 (en) 2007-02-01
BRPI0609196A2 (pt) 2010-03-02
EP1853996A2 (en) 2007-11-14
US20060200651A1 (en) 2006-09-07
WO2006094196A2 (en) 2006-09-08

Similar Documents

Publication Publication Date Title
CN101160562A (zh) 用于异质多管线处理器中的功率减小的方法和设备
CN102081556B (zh) 与不同种类的资源通信的基于指令***结构的内定序器
JP6197196B2 (ja) 電力効率の優れたプロセッサアーキテクチャ
CN101796484B (zh) 线程优化的多处理器架构
EP0952524B1 (en) Multi-way cache apparatus and method
EP0652509A1 (en) Instruction cache associative cross-bar switch
US6438557B1 (en) System and method for performing context switching and rescheduling of a processor
EP0927936A2 (en) A microprocessor with configurable on-chip memory
US20080307422A1 (en) Shared memory for multi-core processors
US10241802B2 (en) Parallel processor with single instruction multiple data (SIMD) controllers
CN102037443A (zh) 用于分支预测的多模式寄存器堆
KR20120019329A (ko) 프로세서, 메모리 관리 장치 및 방법
JP2006509291A (ja) マイクロプロセッサ電力消費のソフトウェアベースの制御
KR20070061086A (ko) 동적 전압 스케일링을 적용한 고효율 프로세서
EP1442378A1 (en) Switch/network adapter port for clustered computers employing a chain of multiadaptive processors in a dual in-line memory module format
CN107430425A (zh) 用于基于网络负荷来调整处理器功率使用率的设备和方法
CN101369224A (zh) 超线程微处理器中经线程优先级提供服务质量
JP2002169790A (ja) 半導体集積回路
WO2023216629A1 (zh) 异构计算中多进程管理方法及计算设备
CN101313290B (zh) 对仅m×n位***设备执行n位写入访问的***和方法
US20030079115A1 (en) Tagged address stack and microprocessor using same
CN101681274A (zh) 接口处理器
US6895497B2 (en) Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority
US7543127B2 (en) Computer system
CN100562837C (zh) 在一微处理器中减少电力消耗的电路与方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication