专利名称:动态自行衰变装置架构的制作方法
技术领域:
本发明为关于处理器与计算机系统的领域,且尤为关于处理器及 其它装置中的电源管理。
背景技术:
尽管计算及其它装置的处理效能已获得许多关注,然而电源消耗 的议题已日益重要。 一般来说,大众已预期其计算装置会更小及更有 移动性。不论该装置是否为可携式计算机、行动电话、个人数位助理
(personal digital assistant, PDA)或其它装置,例如电池的可携式电源已 变得平凡无奇。若自然界给予有限的此种电源供应,则以有效率的方 式使用可用的电源是极为重要的。因此,在此种装置中的电源管理技 术变得更为广泛。此外,当在处理器中及其它计算装置中栅极的尺寸 变得越来越小时,应推断静态电源消耗可能会很快地等于动态电源消 耗。因此,静态电源消耗在处理器及装置架构中逐渐成为重要的设计 考量。
有鉴于在这些装置中管理电源的重要性,有效的电源管理方法及 机制为亟需的。
发明内容
用于在计算装置中管理电源的方法及机制为被考量的。 考量一种方法与机制,其中仅装置的有关的逻辑区块为作用中 (active)。不需要的区块可以被关闭电源,及可停止对该不需要的区块 产生计时(clocking)。该方法和机制动态地决定各种逻辑单元如何及何 时被允许进行操作或被关闭。
考量包含一个或多个电源可管理群组的装置。设定结合该装置的 电源管理单元以侦测安排执行的指令、识别可能需要用于执行指令的 特定电源群组、以及响应侦测到该指令而传达避免该特定电源群组进
入关闭电源状态的指令。若该电源管理单元于预定时间期间没有侦测 到需要特定电源群组以用于执行的进入或等待的指令,则该电源管理 单元可以传达使或允许该对应的电源群组进入关闭电源状态的指令。 除了将用于给定的电源群组的电源禁止外,也可将计时禁止。
也考量一种装置,其中电源可管理群组可被分隔成可关闭电源的 部分以及可不关闭电源的部分。在此种实施例中,当判定给定的电源 群组可被关闭电源时,只有该可关闭电源的电源群组的部分为被关闭 电源。其余部分于是可维持被供给电源。在替代的实施例中,可不关
闭电源的电源群组的部分可进入减小电源状态(reduced power state),该
减小电源状态允许该部分维持该部分的状态。
亦考量一种电源管理单元,该电源管理单元被设定为维持每个电 源可管理群组的计数。对接收到的计时的每个周期,可减少该计数。 万一计数到零,则可传达指令该对应的电源群组可置放在关闭电源状 态的信号。若侦测到可能需要特定电源群组以用于执行的指令,则该 电源群组的计数可重设成非零的值。在一个实施例中,计数于缺少重 设信号时可自然地"衰变(decay)"。于是,电源群组可自动地衰变成关 闭电源或减小电源的状态。在不同的实施例中,可设定电源群组以传 达防止该第一电源群组进入关闭电源状态的状态指令。
在一个实施例中,指令结合电源代码,该电源代码指示哪些电源 群组可能需要用于执行。可编码指令操作码(opcode)以识别可能需要用 于执行的一个或多个电源群组。替代地,可通过对映机制(mapping mechanism)对映指令至电源代码。
以上详细说明请参考附图,兹将所述附图简要说明。 图1为处理器的一实施例的方块图2为显示于图1中的该处理器的部分的一实施例的方块图; 图3为描述电源管理机制的部分; 图4为描述电源管理机制的部分;
图5为描述动态电源控制机制与电源群组的一实施例; 图6为例示装置指令与电源代码编码的一实施例;以及
图7为包含显示于图1中的处理器的计算机系统的第二实施例的 方块图。
虽然本发明可作各种修改及替代的形式,但通过图式中的例子显 示出其特定的实施例,且该特定的实施例将在本文中详细说明。然而 应了解,此处的图式及详细说明并非要局限本发明为所揭露的特定形 式,但相反地,本发明欲涵盖所有落于本发明的精神与范畴内的修改、 相等物及替代物,其如由附加的权利要求书所定义者。
具体实施方式
处理器概观
兹请参阅图l,为显示处理器10的一实施例的方块图。其它实施 例为有可能及被思考的。如图1所示,处理器10包含预取(prefetch)/ 预先解码(predecode)单元12、分支预测单元14、指令缓存16、指令对 准单元18、多个解码单元20A至20C、多个保留站22A至22C、多个 功能单元24A至24C、载入/储存单元26、数据缓存28、寄存器档案 30、重新安排缓冲器(reorder buffer)32、罩式只读存储器(MROM)单元 34、以及总线接口单元37。本文中接在特定元件符号后的文字所参照 的元件将以该单一元件符号共同参照。举例来说,解码单元20A至20C 将共同地参照为解码单元20。
预取/预先解码单元12被耦接以接收来自于总线接口单元37的指 令,并且更进一步耦接到指令缓存16及分支预测单元14。同样地,将 分支预测单元14耦接到指令缓存16。更进一步,将分支预测单元14 耦接到解码单元20及功能单元24。指令缓存16更进一步耦接到 MROM单元34以及指令对准单元18。指令对准单元18依次耦接到解 码单元20。每个解码单元20A至20C耦接到载入/储存单元26并且耦 接到个别的保留站22A至22C。保留站22A至22C更进一步耦接到个 别的功能单元24A至24C。此外,解码单元20及保留站22均耦接到 寄存器档案30及重新安排缓冲器32。功能单元24耦接到载入/储存单 元26、寄存器档案30、以及重新安排缓冲器32。数据缓存28耦接到 载入/储存单元26以及耦接到总线接口单元37。总线接口单元37更进 一步耦接到L2缓存的L2接口及总线。最后,MROM单元34耦接到
解码单元20。
指令缓存16为被提供储存指令的高速缓存存储器。指令从指令缓
存16撷取(fetch)并且分派到解码单元20。在一个实施例中,指令缓存
16以具有64字节线路(一字节包括8个二进位的位元)的两路集合相联
结构(2 way set associative stmcture)设定为储存达到64千字节的指令。
替代地,可使用任何其它需要的组态及大小。举例来说,应注意指令
缓存16可以施行为全相联(fully associative)、集合相联或直接对应的组 太
指令通过预取/预先解码单元12储存到指令缓存16。指令可根据 预取方案在其从指令缓存16要求前预取。每个种预取方案可以通过预 取/预先解码单元12来使用。当预取/预先解码单元12传送指令到指令 缓存16时,预取/预先解码单元12可产生对应于该指令的预先解码数 据。例如,在一个实施例中,预取/预先解码单元12对每个字节的指令 产生三个预先解码位元起始位元、终止位元、以及功能位元。该预 先解码位元形成指示每个指令的边界的标示符(tag)。所述预先解码标 示符也可传达附加信息,例如给定的指令是否可由解码单元20直接解 码或指令是否通过呼叫由MROM单元34所控制的微码程序来执行。 更进一歩而言,可设定预取/预先解码单元12以侦测分支指令以及储存 对应于所述分支指令的分支预测信息进入分支预测单元14。其它实施 例可依需求使用任何适当的预先解码方案或无预先解码。
接着将会说明该使用可变字节长度指令组的处理器10的实施例的 预先解码标示符的一加密。可变字节长度指令组为不同的指令可占有 不同数量的字节的指令组。由处理器10的一个实施例所使用的例示的 可变字节长度指令组为x86指令组。
于该例示的加密中,若给定的字节为指令的第一字节,则设定该 字节的起始位元。若该字节为指令的最后字节,则设定该字节的终止 位元。可直接由解码单元20解码的指令称为"捷径(fastpath)"指令。 根据一个实施例,其余的x86指令称为MROM指令。对捷径指令而言, 该功能位元对包含在该指令的每个前置(prefDC)字节设定,并且清除 (clear)其它字节。替代地,对MROM指令而言,则清除每个前置字节 的功能位元,并且设定其它字节。该指令的类型可通过检视对应于该
终止字节的功能位元来决定。若该功能位元被清除,则该指令为捷径 指令。相反地,若该功能位元被设定,则该指令为MROM指令。该指
令的操作码(opcode)因而可置于可由解码单元20直接解码的指令内, 如同结合于指令中的第一清除功能位元的字节。例如,包含两个前置 字节、MODR/M字节、以及立即字节(immediatebyte)的捷径指令会有 起始、终止、以及功能位元,如以下所列
起始位元10000
终止位元00001
功能位元11000
MROM指令由解码单元20判定为对于解码太复杂的指令。MROM 指令通过呼叫MROM单元34来执行。详而言之,当遇到MROM指令 时,MROM单元34解析并且发出该指令至已定义的捷径指令的子集 (subset)以实行该需要的运算。MROM单元34分派该捷径指令的子集 至解码单元20。
处理器10使用分支预测以在条件分支指令后推测撷取指令。分支 预测单元14被包括以执行分支预测运算。在一个实施例中,分支预测 单元14使用攫取达到两个分支目标位址以及于指令缓存16中每16个 字节部分的缓存线路的对应的成功(takeny失败(not taken)预测的分支 目标缓冲器(branch target buffer)。该分支目标缓冲器可例如包括2048 个条目(entry)或任何其它适合的条目数。预取/预先解码单元12于预先 解码特定线路时决定最初分支目标。由于该缓存线路的指令的执行, 随后的对应于缓存线路的分支目标的更新可能发生。指令缓存16提供 指令位址被撷取的指令(indication),以使该分支预测单元14可决定那 个分支目标位址以选择用以形成分支预测。解码单元20及功能单元24 提供更新信息给分支预测单元14。解码单元20侦测不为分支预测单元 14所预测的分支指令。功能单元24执行所述分支指令且判定是否该被 预测的分支方向为不正确的。该分支方向可以是"成功(taken)",其中 接下来的指令从该分支指令的目标位址撷取。相反地,该分支方向可 能是"不成功(not taken)",其中接下来的指令从连续该分支指令的存储 器位置撷取。当侦测到预测错误的分支指令时,在该预测错误分支后 的指令会被该处理器10的各种单元丢弃。在替代的组态中,分支预测
单元14可被耦接到重新安排缓冲器32而非解码单元20及功能单元 24,并且可以接收来自于重新安排缓冲器32的分支预测错误信息。多 种适当的分支预测演算法可由分支预测单元14所使用。
从指令缓存16所撷取的指令被传达到指令对准单元18。当从指令 缓存16撷取指令时,扫描该对应的预先解码数据以就所撷取的指令提 供信息给指令对准单元18(以及给MROM单元34)。指令对准单元18 利用该扫瞄的数据以对准指令给每个解码单元20。在一个实施例中, 指令对准单元18从八个指令字节的三组对准指令给解码单元20。解码 单元20A接收在指令由解码单元20B及20C(以程序顺序)同时接收前 的指令。同样的,解码单元20B以程序顺序接收在该指令由解码单元 20C同时接收前的指令。在某些实施例中,(例如使用固定长度指令组 的实施例),可去除该指令对准单元18。设定解码单元20以解码自指 令对准单元18所接收到的指令。侦测寄存器操作数信息并且绕送(route) 至寄存器档案30及重新安排缓冲器32。此外,若所述指令需要执行一 个或多个存储器运算,解码单元20分派所述存储器运算至载入/储存单 元26。将每个指令解码成功能单元24的一组控制值,并且将这些控制 值与操作数位址信息及可能包含指令的置换或立即的数据一起分派至 保留站22。在一特定的实施例中,将每个指令解码成到可由功能单元 24A至24C分别执行的两个运算。
处理器10支援乱序执行(out of order execution),并且因而使用重 新安排缓冲器32以保持用于寄存档读取及写入操作的原始程序顺序的 追踪、执行寄存档重新命名、允许推测的指令执行以及分支预测错误 复原、以及加速精确的例外事件(exception)。位于重新安排缓冲器32 内的暂时储存位置为根据指令的解码而保留,该指令牵涉寄存器的更 新从而储存推测的寄存器状态。若分支预测是不正确的,沿着该预测 错误路径的所推测执行的指令的结果可能在该结果写入寄存器档案30 前于缓冲器中失效。同样的,若特定的指令造成例外事件,可丢弃接 在该特定指令后的指令。以这种方式,例外事件为"精准的"(例如, 引起该例外事件的特定指令后的指令并非完成于该例外事件之前)。应 注意,若特定指令于指令之前执行,而该指令于程序顺序中先于该特 定指令时,则特定指令为被推测执行的。先前的指令可以是分支指令 或例外事件引起的指令,以上的例子中,所述推测结果可由重新安排 缓冲器32丢弃。
在所述解码单元20的输出端所提供的解码指令直接绕送至个别的 保留站22。在一个实施例中,每个保留站22能保留指令信息(例如, 解码指令与操作数值、操作数标示符及/或立即的数据)达到六个等待的 指令(pending instruction),所述指令等候发送到该对应的功能单元。应 注意图l的实施例中,每个保留站22结合专用的功能单元24。因此, 三个专用的"发送位置"由所述保留站22及功能单元24形成。换句 话说,发送位置0由保留站22A及功能单元24A形成。所对准的指令 且分派至保留站22A由功能单元24A来执行。同样的,发送位置l由 保留站22B及功能单元24B形成;且发送位置2由保留站22C及功能 单元24C形成。
根据特定指令的解码,若所需的操作数为寄存器位置,则同时绕 送寄存器位址信息至重新安排缓冲器32及寄存器档案30。该寄存器档 案30包括每个该架构的寄存器的储存位置,且该寄存器包含在由该处 理器10所执行的指令组中。可包含额外的储存位置于寄存器档案30 内而由MROM单元34所使用。重新安排缓冲器32含有改变这些寄存 器的内容的结果的暂时储存位置从而允许乱序执行。重新安排缓冲器 32的暂时储存位置会保留给每个指令,该指令根据解码以决定修改所 述真正的寄存器的其中一者的内容。因此,于执行特定程序期间的各 种点上,重新安排缓冲器32可能具有一个或多个含有给定寄存器的所 推测被执行的内容的位置。若给定指令的接下来的解码判定重新安排 缓冲器32具有先前的位置或指派给在该给定的指令中用作为操作数的 寄存器的位置,则该重新安排缓冲器32转送(forward)给该对应的保留 站的任一者l)最近指派过位置的值,或2)最近指派过位置的标示符, 若该值还没被该功能单元产生直到该值终将执行该先前指令。若重新 安排缓冲器32具有保留给给定寄存器的位置,则该操作数值(或重新安 排缓冲器标示符)是从该重新安排缓冲器32而非从寄存器档案30提供。 若在重新安排缓冲器32中没有位置保留给需要的寄存器时,该值直接 从寄存器档案30撷取。若该操作数对应于存储器位置,则该操作数值 通过载入/储存单元26提供给该保留站。
在一特定的实施例中,将重新安排缓冲器32设定成同步储存及操
作被解码指令为单元。这种组态在此称为"线型导向(line-oriented)"。 通过一起操作几个指令,可能简化重新安排缓冲器32内所使用的硬件。 例如,每当由解码单元20分派一个或多个指令时,包含在本实施例的 线型导向的重新安排缓冲器配置足够用于附属于三个指令(每一个来自 于每个解码单元20)的指令信息的储存空间。相较之下,可变的储存量 配置于传统的重新安排缓冲器中,此乃取决于实际分派的指令数量。 较大数量的逻辑栅可能需要配置该可变的储存量。当已执行每个该同 步被解码的指令时,所述指令结果同时储存至寄存器档案30。然后, 该储存空间空出来用以配置另一组同歩被解码的指令。此外,因为经 由几个同步被解码指令分摊了控制逻辑,所以减少了每一指令所使用 的控制逻辑电路量。验证特定指令的重新安排缓冲器标示符可被划分 成两个域线段标示符(line tag)及位移标示符(offset tag)。该线段标示 符识别包含该特定指令的同步被解码的指令的组,而该位移标示符识 别哪一个该组内的指令对应于该特定的指令。应注意,储存指令结果 至寄存器档案30及空出该对应的储存空间被称为"下线(retiring)"指 令。应再注意,任何重新安排缓冲器的组态可以使用于处理器10的各 种实施例中。
如之前注意到的,保留站22储存指令直到所述指令由该对应的功 能单元24所执行。若(i)已提供指令的操作数,以及(ii)所述操作数还 没提供给在相同保留站22A至22C内的指令以及在程序顺序中该指令 之前的指令,则选择执行的指令。应注意,当指令由该功能单元24的 其中一者所执行时,该指令的结果会直接传送给任何等待该结果的保 留站22,同时传送该结果以更新重新安排缓冲器32(这种技术一般称为 "结果转送(result forwarding)"。可选择执行的指令,并在该转送关联 结果的计时周期期间传送给功能单元24A至24C。在这个例子中,保 留站22绕送该转送结果至该功能单元24。在可将指令解码成多个运算 而由功能单元24所执行的实施例中,可彼此分别安排所述运算。
在一个实施例中,设定每个所述功能单元24以执行加与减的整数 算数运算,及移位(shift)、旋转(rotate)、逻辑运算、以及分支运算。响 应由解码单元20为特定指令解码的控制值而执行所述运算。应注意,
亦可使用浮点单元(图中未示出)以纳入浮点运算。可操作该浮点单元作
为协同处理器,且自MROM单元34或重新安排缓冲器32接收指令, 接着与重新安排缓冲器32沟通以完成所述指令。此外,可设定功能单 元24以执行用于载入与储存存储器运算的位址产生,且所述运算由载 入/储存单元26来执行。于一特定实施例中,每个功能单元24可包含 用于产生位址的位址产生单元及用于执行其余功能的执行单元。所述 二单元可根据计时周期期间的不同的指令或运算而独立运算。
每个所述功能单元24亦提供关于执行条件分支指令的信息至该分 支预测单元14。若分支预测为不正确的,分支预测单元14在已进入该 指令处理管线的预测错误的分支后清空(flush)指令,并且使撷取自指令 缓存16或主存储器的所需要的指令。应注意,在此种情况中,于拋弃 该预测错误分支指令后发生的原始程序顺序中的指令的结果,包含推 测执行及暂时储存于载入/储存单元26及重新安排缓冲器32的结果。 更应注意,分支执行结果可由功能单元24提供给重新安排缓冲器32, 此乃可指示分支预测错误至功能单元24。
若寄存器值被更新,由功能单元24所产生的结果送至重新安排缓 冲器32,而若改变存储器位置的内容,则结果送至载入/储存单元26。 若储存该结果于寄存器中,当该指令被解码时,重新安排缓冲器32储 存该结果于保留给该寄存器的值的位置中。所包含的多个结果总线38 为用于转送来自于功能单元24及载入/储存单元26的结果。结果总线 38传送所产生的结果,以及该重新安排缓冲器标示符识别被执行的指
载入/储存单元26提供功能单元24与数据缓存28间的接口 。在一 实施例中,设定载入/储存单元26是用具有用于数据的储存位置及用于 等待尚未访问数据缓存28的载入或储存的位址信息的第一载入/储存 缓冲器,以及具有用于数据的储存位置及用于已访问数据缓存28的载 入与储存的位址信息的第二载入/储存缓冲器。例如,该第一缓冲器可 包括12个位置而该第二缓冲器可包括32个位置。解码单元20仲裁访 问至该载入/储存单元26。当该第一缓冲器满时,解码单元必须等待直 到载入/储存单元26具有该等待的载入或储存请求信息的空间。载入/ 储存单元26亦执行检查载入存储器运算对等待的储存存储器运算的相
依性以确保维持数据的连惯性。存储器运算为处理器IO与该主存储器 次系统(虽然该传送可在该数据缓存28中完成)间的数据传送。存储器 运算可以是利用储存于存储器中的操作数的指令的结果,或可使该数 据传送而没有其它运算的载入/储存指令的结果。
数据缓存28为提供给载入/储存单元26与该主存储器次系统间所 传送的暂时性储存数据的高速缓存存储器。在一个实施例中,数据缓 存28于两路集合相联结构(2 way set associative structure)中具有储存达 到64千字节的数据的容量。应了解的是数据缓存28可以多种特定的 存储器组态来实行,包含集合相联的组态、全相联的组态、直接对应 的组态、以及任何适当大小的任何其它组态。
总线接口单元37是通过总线设定于计算机系统中以在处理器10 与其它元件间作沟通。例如,该总线可与由迪吉多公司(Digital Equipment Corpomtion)开发的EV-6总线相容。替代地,可使用包含基 于封包、单向或双向连结等的适当的互连结构。也可使用用于介接第 二阶缓存的选择性第二阶缓存(L2 cache)接口 。
应注意,尽管该图1的实施例为超纯量(superscalar)的实施方式, 但其它实施例可使用纯量的实施方式。此外,功能单元的数量可随实 施例的不同而改变。可使用任何用于执行捷径与微码(如MROM)指令 的执行电路。其它实施例可使用集中式保留站而非于图1中所显示的 个体保留站。此外,其它实施例可使用中心排程器而非图1中所显示 的保留站与重新安排缓冲器。
请参阅图2,为显示可利用于如以上所描述的处理器的装置中的电 源管理机制的一实施例。以下将使用以微指令为基础的方法及机制作 为讨论的目的。然而,所描述的方法及机制也可用于非微指令为基础 的系统。
在该显示的例子中,显示出微码单元200及微指令控制单元202。 应注意,该微码单元200及微指令控制单元202可一般对应于以上描 述的MROM单元34。然而,于其它实施例中,所述单元(200, 202)可 包括自MROM单元34分离出来的电路。微码单元200包含包括多个 条目的存储器210,可设定每个条目以储存微指令。存储器210可包括 例如只读存储器(ROM)或任何其它适当的储存装置。所显示的控制单
元202包含重新安排缓冲器220与动态电源控制单元240。除了该微码 单元200外,还显示控制单元202、电源群组260A至260N。在一个 实施例中,电源群组可一般对应于逻辑单元或电路的电源可管理区块 的汇集。电源可管理意指电源电压(VdcO供应及/或计时可动态关闭(turn oft)或开启(turn on)。例如,电源群组260A可对应于位址产生单元及/ 或载入储存单元,电源群组260B可对应于算数逻辑单元,电源群组 260C可对应于移位器,电源群组260N可对应于部分的浮点单元等等。
于一个实施例中,可将微指令编码以使其指示哪一个或多个电源 群组260需要执行。若侦测到需要特定电源群组的微指令为于该管线 中或其它方面需要使用特定的电源群组,则控制单元202可能使该对 应的电源群组维持原状或成为作用中的(active)。若没有侦测到此种微 指令,则可允许给定的电源群组进入低电源状态。如本文中所使用的, 低电源状态可一般包含关闭或无电源状态,除非另外指示。
在一个实施例中,特定的电源群组260在缺乏某种指令下可自动 地进入低电源状态,该指令防止特定的电源群组260进入低电源状态。 在此种实施例中,电源群组可随着时间对电源消耗而据以自动"衰变 (decay)"。若判定或据信可能需要给定的电源群组,则可传达指令至电 源群组,而实际上"复新(refresh)"电源群组为较小的衰变状态。例 如,若电源群组260不在使用中以及于特定的时间内没有接收到复新 信号,则可设定电源群组260以自动地进入低电源状态。若侦测到该 复新信号,则可"重新启动(restarO"该预定的时间。
在所示的实施例中,存储器210—般包括具有多个行(row),具有 储存对应于一个(可能多个)微指令的数据的给定行的表格。如本文中所 使用的,该名称"微指令"与"指令"可替换使用。 一般而言,对应 于给定指令的数据可包括一个或多个域,所述域识别特定的运算、寄 存器、存储器位置或其它位置。除此之外,对于给定指令的数据可更 进一步包含电源代码域212,该电源代码域212可用于指示能够要求执 行该对应的指令的一个或多个电源群组。在替代的实施例中,电源代 码域212内的数据可在指令解码期间或处理机制内的其它地方产生。 在该存储器200及/或控制单元202为MkOM单元34的部分的实施例 中,响应来自于指令缓存16的指令而可设定存储器单元200以传达从
存储器200至控制单元202的一个或多个指令。如上所述,处理器中 的某些指令(例如,MROM指令)可视为太复杂而无法由解码单元20解 码。像这种情形,MROM通过呼叫MROM单元34来执行,然后该 MROM单元34发送两个或更多个其它指令用以实行该需要的运算。
于一个实施例中,重新安排缓冲器220包含多个条目,设定每个 条目以将数据储存至从存储器200所接收到的指令。于所示的例子中, 指令及其它数据通过总线230可传达至重新安排缓冲器220,然而对应 的电源代码则通过总线232传达至重新安排缓冲器220及动态电源控 制单元240。动态电源控制单元240包含设定为储存用于一个或多个电 源群组260的每个群组的指令的单元280。将该单元280中的每个指令 设定为指示是否对应的电源群组可进入低电源状态。举例来说,单元 280可包括条目0至N,每个条目对应于电源群组260。除此之外,每 个电源群组260还可接收对应的指令DPC[O]至DPC-[N],该指令指示 该电源群组的电源状态。同时包含在动态电源控制单元240内的是电 路(290, 292,以及270),该电路用来更新单元280的内容。在一个实施 例中,电路290可通过对应于"进入的(incoming)"指令的总线232接 收指令,同时可用总线250传达指令至对应于"等待的(pending)"指 令的电路292。除此之外,电源群组260通过总线252进一步耦接以传 达状态的指令至动态电源控制单元240。如本文中所使用的,当侦测到 为进入的及/或等待的的任一指令时,可据以安排执行的指令。
一般来说,通过总线232或250所接收到的指令可识别可能需要 执行对应指令的一个或多个电源群组260。若接收到对应于特定电源群 组260A至260N的指令,则可更新单元280以指示该对应的电源群组 260维持电源开启及/或计时产生(或替代地,不允许进入低电源状态)。 例如,在一个实施例中,单元280可包括全域计数器(global counter), 其中单元280的每个条目可对应于电源群组260的至少一者及可包括 减少每个计时周期的计数值。响应侦测到对应于电源群组的进入的232 及/或等待的250指令,控制单元270可使用于该对应的电源群组的计 数被重设为非零的值。除此之外,当对应于给定的电源群组的指令在 等待时(例如,在重新安排缓冲器220中),控制单元270还可防止该计 数减少。电源群组260的计数达到零时可进入(或允许进入)低电源状
态。达到零的单元280内的计数一般指示经过预定期间没有侦测到对
应于进入或等待的指令的电源代码。例如,假使单元280中每个计数
包括两个位元,并且进入或等待的指令电源代码的侦测使两个位元被
设为二进位值(binary value) "1"(例如,该计数值是3),则减少该计数 值三次将使该计数等于零,而可用来造成(或否则允许)该对应的电源群 组进入低电源状态。当然,该方法与机制可执行增加而不是减少,并 且可指示造成或允许的低电源状态响应以侦测对应的计数等于零或大 于预定的最大值。在此种例子中,控制单元270可重设计数为零。
图3例示电源群组320的一实施例及对应的电源状态指令310。电 源群组320可一般对应于绘制于图2中的电源群组260的其中一者, 并且电源状态指令310可一般对应于图2所显示的从该动态电源控制 单元240所传达的指令。在一个实施例中,电源群组可逻辑分隔成两 个或更多个群组,该每个群组具有不同的电源管理的需求。在所示的 例子中,电源群组320被分隔成电源管理的第一群组330,以及不是电 源管理的第二群组332。在一个实施例中,该第一群组330可包括寄存 器、组合逻辑、及/或可以被电源管理的顺序逻辑(sequential logic),然 而另一群组332包括寄存器及/或可不为电源管理的逻辑。可不关闭电 源的逻辑一般可包括需要保留某些类型的状态的逻辑。
如图3的例子所显示,电压供应302为可用的,及接地供应306 为可用的。除此之外,还提供clk来源(gclk)304。例如,计时来源gclk 304可包括同步全域计时。在一个实施例中,电压供应通过第一栅极 312耦接到该第一群组,并且亦耦接到该第二群组332。同样地,gclk 304 通过栅极314耦接到第一群组,并且耦接到该第二群组332。接地供应 306也显示被耦接到两个群组(330, 332)。电源状态指令(DPC[i])310耦 接到每个栅极312及314。栅极312及314可包括三态(tri-state)栅极, 或其它电路,此可用来控制不论电压供应器302及/或gclk 304是否提 供给该第一群组330。例如,电源状态指令310可包括允许(enable)信 号,该信号是用来允许或禁止(disable)自每个栅极312的输出。允许该 栅极312的输出会使该第一群组330有电源,而允许栅极314的输出 会使该第一群组330产生计时。于一实施例中,电源状态信号310可 仅包括如图2中上述的对应的电源群组的计数。若该计数的任何位元
不是零,则允许该对应的栅极(312, 314)。否则可将该对应的栅极(312, 314)输出禁止。当然,至于信号310如何控制电路312及314的众多变 化为可能的且被思考的。
除了以上所述,电源群组320也示出传达指令340的状态。状态 指令一般可传达至图2的该动态电源控制单元240。状态指令可用来指 示何时可将电源群组320关闭电源。例如,当电源群组320执行运算 时,状态信号340可指示其需要电源及/或产生计时。
如上所述,某些部分的电源群组可以为电源管理的,而其它部分 不是。在图3的例子中,电源群组340内的第二群组332 —直被设成 给予电源及/或产生计时。此种状况为需要的,因为需要群组332保持 一种状态。在替代的实施例中,不使其电源及/或计时被移除的部分的 电源群族可能使其电源状态降低。在此种方式中,可设定电路以减少 其电源使用及/或漏电,而仍能保持其状态。
图4绘制类似于图3的电路的实施例。图4中类似的项目具有与 图3的类似项目相同的编号。在该图4的实施例中,将附加的电路400 耦接于供应电压302, gclk304与电源群组320的群组332之间。 一般 而言,可设定电路400以供应两个或更多个功率位准(powerlevel)至群 组332,然而维持需要维持在群组332内电路状态的最小功率位准。在 一实施例中,可耦接电路400以接收超过一个的电源供应。例如,可 耦接电路400以接收及传达代表高供应电压(例如1伏特(V))的电源供 应Vdd 302与代表低供应电压(例如250毫伏(mV))的电源供应Vdd2 410。以此方式,电路400可从两个或更多个电源供应选择电源供应并 传达该选定的电源供应至群组332。替代地,可使用已知的技术从单一 电源供应传达超过一电源位准。在此种实施例中,可耦接电路400以 仅接收单一电源供应(例如,Vdd 302)并且传达两个或更多个电源供应 至群组332。
请参阅图5,为绘制电源管理机制的一实施例。在该显示的实施例 中,显示被耦接的多个电源群组560A至560N以接收电源供应(Vdd) 及计时信号(gclk)。该绘制的电源供应Vdd与计时信号gclk可(或不可) 代表共同的电源供应Vdd及/或计时信号gclk。可一般对应于动态电源 控制单元(例如图2的单元240)的电路则显示于方块500内。然而,在
其它的实施例中,可将绘制于图5的各种部分的逻辑与电路置放于装 置或系统内的多种位置内。在该显示的例子中,显示设定储存用于每
个电源群组560的电源状态指令的储存装置(例如,寄存器)522。例如, 条目520A至520N可分别对应于每个电源群组560A至560N。储存装 置522 (即使非必要)可一般对应于图2的储存装置280。于储存装置522 包括多个计数器的实施例中,可产生更新信号521,该信号被设定为减 少如上所述的计数。同时,所显示的每个所述电源群组560A至560N 为栅控逻辑(gating logic) 532A至532N与指令530A至530N。
于该显示的实施例中,将单元500耦接以接收对应于至少一电源 群组560A的进入的指令502A及等待的指令504A。进入的指令502A 可由如图2的微码单元200的装置传达,而等待的指令504A可自例如 图2的重新安排缓冲器220的装置传达。替代地,于基于非微码的装 置中,可从任何适当的指令排程机制或其它机制接收此种指令(502A, 504A)。 一般也可设定单元500接收用于电源群组560B至560N的进 入的及/或等待的指令。设定每个栅控电路532A至532N以控制对应的 电源群组560A至560N是否为给予电源及/或产生计时,例如图4所描 述的三态栅极(312及314)。在此种实施例中,每个电路532然后可接 收控制该栅控功能的允许/禁止信号。例如,信号524A可代表电源群 组560A的允许/禁止信号。在一个实施例中,信号524A可对应于图4 的信号310。
一般而言,当侦测到需要用于运算的电源群组560A的指令(例如, 于早期管线中如解码期间)时,可断定(assert)进入的指令502A。等待的 指令504A可断定,而需要电源群组560A的指令为等待中(例如,于图 2的重新安排缓冲器内)。响应所述信号502A与504A,电路506传达 指令510A,该指令510A指示电源群组560A是否可进入减小的电源 状态。例如,在一个实施例中,电路506根据所接收到的信号502A及 504A的值,可执行逻辑OR功能。若断定信号502A或504A的任一者, 则也断定可指示电源群组560A可能无法进入减小的电源状态的信号 510A。可对每个电源群组520B至520N分别产生类似的指令510B至 5薩。
在一个实施例中,信号510A可直接指示是否对应的电源群组560A
可进入降低的电源状态。在此种实施例中,若信号510A不被断定(例
如,侦测不到对应于电源群组560A的进入的信号及等待的信号),则 可取消断定(de-assert)信号524A,而将该Vdd的输出及/或来自于栅控 逻辑532A的gclk禁止。实际上,条目520A然后可对该对应的电源群 组560A储存允许/禁止的状态。于替代的实施例中,电源状态可如上 所述的在时间期间衰变。于一实施例中,每个条目520A至520N可对 对应的电源群组560A至560N储存计数。响应更新信号521,或任何 其它适当的信号而每个计数520可被减少计时信号的每个周期(例如, gclk,或任何其它适当的计时信号)。万一对应的计数达到例如零的预 定值时,则该对应的电源群组可进入低电源状态。例如,若在条目520A 中的计数等于零,则允许/禁止信号524A可指示该对应的电源群组 560A可进入低电源状态。
在一个实施例中,可对每个所述电源群组560维持个别的状态指 令。例如,如图5所显示的,可对每个电源群组同时维持计数520及 状态指令530(如区块523所示)。在此种实施例中,对应的状态530为 设定相依于对应的计数520值。因此,若计数520A不是零,则状态 530A可指示电源群组560A为给予fe源的。另一方面,若计数520A 达到零,则可设定状态530A以指示电源群组可进入低电源状态。为响 应接收指示进入或等待的指令,可对对应的电源群组的计数重设。
同样绘制于图5的是通过每个电源群组560A至560N而传达的状 态指令570A至570N。状态指令570可指示对应的电源状态560不能 进入减小的电源状态及/或使其产生计时禁止。例如,若状态指令570A 指示电源群组560A不能进入减小的电源状态,则可避免信号524A指 示低电源状态,而与条目520A及域530A的值无关。替代地,指令 570A可能直接提供给栅控逻辑532A或其它。众多的此种替代实施例 为可能的且被思考的。
如上所述,指令可包含有关于可能需要执行的一个或多个电源群 组的指令。可直接编码此种指令作为该指令编码的部分,该电源代码 指令可通过对映至指令操作码或其它操作码来判定。多种结合具有指 令或运算的电源代码指令的技术为可能且被思考的。图6例示电源代 码的一实施例及其与各种指令的关联性。第一表格600显示包含电源
群组列(column) 602及对应的电源代码ID 604。每个表格600的行则包 含逻辑/电路的一个或多个电源可管理的群组及对应的电源代码ID。在 该所显示的例子中,电源代码ID包括八个位元。然而,在此技术领域 熟知这些技艺者会了解其它编码为可能的。所有此种替代物为被思考 的。第一条目指令位址产生单元(AGU)及载入/储存单元的电源代码ID 为"00000001"。第二条目指令算数逻辑单元(ALU)的电源代码ID为 "00000010"。类似的条目包含移位器、整数乘法器、浮点(FP)排程器、 FP加法器、FP乘法器以及FP除法/平方根单元。应注意,在给定装置 内的特定的电源群组将取决于该装置的类型与本质、设计决定等。因 此,不同的电源群组可存在于特定的一般目的的微处理器及特殊应用 装置(application specific device)。
图6的第二表格601绘制具有包括电源代码614及其它位元616 的对应样本编码的样本指令612。该第一条目绘制可设定的和(and) addop指令,例如,将两个操作数相加。在该所示的例子中,addop具 有寄存器及存储器操作数。该指令的电源代码为"00000011"。根据由 表格600所例示的关联性,该电源代码"000000011"指示可能同时需 要该AGU、载入/储存电源群组及该ALU电源群组。第二条目绘制可 设定将数据从一位置移动至另一位置的moveop指令。在该所示的例子 中,该moveop指令包含两个寄存器操作数。该moveop指令的电源代 码为"00000010",其对应于该ALU电源群组。最后,fpaddop指令绘 制于表格601中。此种指令在浮点运算单元中可对应于加法运算。于 该所示的例子中,该fpaddop指令包含浮点寄存器操作数(^pregister)及 存储器操作数。该fpaddop指令的电源代码为"00110001",其对应于 该移位器,及整数乘法电源群组。对应于每个所例示的指令的其它位 元616可提供该指令的任何其它适当的编码位元。
如电源群组的识别的例子,该电源群组可能需要等待的指令,假 定用于讨论的目的,该表格601代表储存于图2的重新安排缓冲器220 内的一部分的数据。因此,于表格601的指令一般代表等待的指令。 请看所绘制的三个指令(一般有可能超过三个指令),可执行逻辑OR运 算于所述等待的指令的电源代码上。因此,以下的运算为执行如区块 603中所例示的结果。00000011 00000010 00110001
00110011
因此,"00] 10011"的电源代码为指示该等待的指令。同样地,此 电源代码对应于该AGU、载入/储存、ALU、移位器及整数乘法器电源 群组。因此,可能需要这些电源群组的每个群组且可不必关机/关闭电 源。
请参阅图7,为显示包含通过总线桥接器(bus bridge) 702耦接到多 种系统元件的处理器10的计算机系统700的一实施例的方块图。其它 实施例为有可能及被思考的。在所绘制的系统中,主存储器704通过 存储器总线706耦接到总线桥接器702,并且图形控制器708通过AGP 总线710耦接到总线桥接器702。最后,多个PCI装置712A至712B 通过PCI总线714耦接到总线桥接器702。第二总线桥接器716可进一 歩提供通过EISA/ISA总线720容纳一个或多个EISA或ISA装置718 的电子接口 。处理器10通过CPU总线724耦接到总线桥接器702且 耦接到选择性的L2缓存728。合起来,CPU总线724及至L2缓存728 的接口可包括外部接口单元18可耦接的外部接口。
总线桥接器702提供处理器10、主存储器704、图形控制器708、 以及依附于PCI总线714的装置间的接口。当运算接收自与总线桥接 器702所连接的其中一个装置时,总线桥接器702识别该运算的目标(例 如,特定的装置,或PCI总线714的例子,该目标在PCI总线上714)。 总线桥接器702绕送该运算至该目标装置。总线桥接器702 —般转译 由该来源装置或总线所使用的通信协定至由该目标装置或总线所使用 的通信协定的运算。
除了对PCI总线714提供接口给ISA/EISA总线之外,第二总线桥 接器716可依需要更进一步整合附加的功能性。输入/输出控制器(图中 未显示),亦可依需要包含接取自第二总线桥接器716或与第二总线桥 接器716整合的外部控制器于计算机系统内700,.以提供键盘及滑鼠 722及各种序列或平行端口的操作支援。于其它的实施例中,可进一步
将外部缓存单元(图中未显示)耦接到CPU总线724于处理器10与总线
桥接器702之间。替代地,可将该外部缓存耦接到总线桥接器702且 可将该外部缓存的缓存控制逻辑整合至总线桥接器702。 L2缓存728 进一步显示于处理器10的后方的组态中。应注意,L2缓存728可自处 理器10分隔开来、与处理器10整合至卡夹(例如插槽l(slot l)或插槽 A(slot A))或甚至与处理器10整合至半导体衬底。L2缓存728可由错 误更正码(Error Correction Coding, ECC)数据保护,且在该L2缓存728 中的ECC错误可依需要使用微码常式(microcode routine)(如以上所述) 或于硬件中更正。
主存储器704为储存应用程序及处理器10主要执行应用程序的存 储器。适当的主存储器704包括动态随机访问存储器(Dynamic Random Access Memory, DRAM)。例如多个同步动态随机访问存储器 (Synchronous DRAM, SDRAM)或Rambus动态随机访问存储器(Rambus DRAM, RDRAM)的存储槽(bank)可为适当的。
PCI装置712A至712B例示多种接口装置。所述周边装置可包含 与另一计算机系统的装置可耦接(例如网络接口卡、数据机等)沟通的装 置。此外,周边装置还可包含其它装置,例如,举例,视讯加速卡、 音效卡、硬碟或软式磁碟机或驱动控制器、小型计算机系统接口(Small Computer Systems Interface, SCSI)配接卡及电话卡。同样地,ISA装置 718例示各种类型的周边装置,例如数据机、音效卡、以及多种数据收 集接口卡,例如一般用途界面总线(General Purpose Interface Bus, GPIB) 或现场总线接口卡(field bus interface cards)。
图形控制器708是提供来控制在显示器726上所产生的文字与影 像。图形控制器可嵌入在此领域已泛知的典型图形加速器以产生三维 的数据架构,该架构可有效移进与移出主存储器704。图形控制器708 因此可以是AGP总线710的主总线,其中,图形控制器708可于总线 桥接器702内要求及接收访问至目标接口,从而获得主存储器704的 访问权。专用的图形总线收纳从主存储器704快速撷取的数据。对某 些运算而言,可进一步设定图形控制器708以在AGP总线710上产生 PCI通信协定交易。该总线桥接器702的AGP接口可因而包含支援AGP 通信协定交易以及PCI通信协定目标与起始者(initiator)交易的功能性。
显示器726是根据可呈现的影像或文字的任何电子显示器。适当的显
示装置726包含阴极射线管("CRT")、液晶显示器("LCD")等。
应注意,尽管该AGP、 PCI、以及ISA或EISA总线已用作为上述 的例子,然可依需要取代任何总线架构。应更进一步注意,计算机系 统700可以是包含附加处理器(例如,所显示的处理器10a作为计算机 系统700的选择性元件)的多处理计算机系统。处理器10a可以是类似 于处理器10。详而言之,处理器10a可以是处理器10的相同的复制品。 处理器10a可通过独立总线(如图7所示)连接至总线桥接器702或可与 处理器10分享CPU总线724。此外,处理器10a可耦接至选择性的 L2缓存728a,其类似于L2缓存728。
各种实施例可根据关于计算机可读取媒介的前面叙述进一步包含 接收、送出或储存指令及/或安装的数据。计算机可读取媒介可包含储 存媒介或存储器媒介,例如磁性或光学媒介,例如,磁碟、DVD、 CD-ROM、如RAM(例如SDRAM、 RDRAM、 SRAM等)、ROM等的 易失性或非易失性媒介。除此之外,应注意,以上各种实施例可依需 要自其它实施例分离出来或可用于与一个或多个其它实施例的组合。 此外,可思考组合以上所有实施例的操作的实施例。
一旦以上揭露完全了解,许多变化及修改对于本领域的熟知技艺 者会变得显而易见。虽然以上说明一般描述一般目的的微处理器的上 下文内的方法及机制,然该方法与机制可应用至任何装置,其中可能 需要电源管理,例如路由器、交换器、图形装置、桥接芯片、可携式 装置等。以下的权利要求书将会被诠释以包含所有此种的变化及修改。
权利要求
1、一种设备,包括一个或多个电源可管理群组(260A至260N);以及电源管理单元(202),设定以侦测安排执行的指令;识别可能需要用于执行该指令的该一个或多个电源可管理群组中的至少一个电源群组;以及响应侦测到该指令,传达避免该至少一个电源群组进入关闭电源状态的指令(570A至570N))。
2、 如权利要求1所述的设备,其中,侦测安排执行的指令包括侦测 进入及/或等待的指令。
3、 如权利要求1所述的设备,其中,该电源管理单元进一歩设定以 传达使该至少一个电源群组进入关闭电源状态的指令。
4、 如权利要求3所述的设备,其中,该指令进一步设定以使该至少 一个电源群组的计时禁止。
5、 如权利要求3所述的设备,其中,该至少一个电源群组包括可关 闭电源的第一部分的电路,以及可不关闭电源的第二部分的电路。
6、 如权利要求5所述的设备,其中,响应接收该至少一个电源群组 可被关闭电源的指令,该第一部分可进入关闭电源状态,且该第二部 分可进入不是关闭电源状态的减小电源状态。
7、 如权利要求3所述的设备,其中,响应判定对应于该至少一个电 源群组的指令于预定时间期间尚未安排执行,该电源管理单元设定以 传达允许该至少一个电源群组进入关闭电源状态的指令。
8、 如权利要求7所述的设备,其中,该电源管理单元设定为维持多个计数(520A至520N),每个该多个计数对应于该电源可管理群组中的一者;对接收到的计时信号的各周期减少各该多个计数;以及 响应侦测到安排执行的对应于电源群组的指令,重设该多个计数的第一计数至最大值,该第一计数对应于该电源群组。
9、 如权利要求3所述的设备,其中,该至少一个电源群组被设定以 传达状态指令至该电源管理单元,其中,当断定该状态指令时,避免 该第一电源群组进入关闭电源状态。
10、 如权利要求l所述的设备,其中,该至少一个电源群组设定以在 缺乏该指令下自动地进入关闭电源状态。
11、 一种用于在电子装置中管理电源的方法,该方法包括 侦测安排执行的指令;识别可能需要用于执行该指令的一个或多个电源可管理群组 (260A至260N)中的至少一电源群组;以及响应侦测到该指令,传达避免该至少一个电源群组进入关闭电源 状态的指令。
12、 如权利要求11所述的方法,进一步包括传达使该至少一个电源 群组进入关闭电源状态的指令。
13、 如权利要求12所述的方法,其中,该至少一个电源群组包括可 关闭电源的第一部分的电路,以及可不关闭电源的第二部分的电路, 以及其中,响应接收到该至少一个电源群组可被关闭电源的指令,该 方法进一步包括使该第一部分进入关闭电源状态以及使该第二部分进 入不是关闭电源状态的减小电源状态。
14、 如权利要求12所述的方法,其中,传达允许该至少一个电源群 组进入关闭电源状态的指令,以响应判定对应于该至少一个电源群组的指令于预定时间期间尚未安排执行<
全文摘要
一种用于动态判定电子装置的多个区块中的哪个可被开启或关闭电源的电源管理方法与机制。装置包含一个或多个电源可管理群组(260A至260N)。设定结合的电源管理单元(202)以侦测安排(schedule)执行的指令、识别可能需要用于执行该指令的特定电源群组、以及响应侦测到该指令而传达避免该特定电源群组进入关闭电源状态的指令。若该电源管理单元没有侦测到需要特定电源群组以用于执行的进入或等待的指令,则该电源管理单元可传达使或允许该对应的电源群组进入关闭电源状态的指令(570A至570N)。电源群组可自动地衰变或减小成关闭电源状态。可将指令编码以识别所需的电源群组。
文档编号G06F1/32GK101356487SQ200680050449
公开日2009年1月28日 申请日期2006年12月14日 优先权日2006年1月6日
发明者P·拉古范什 申请人:先进微装置公司