基于需求的处理资源分配的制作方法

文档序号:6616055阅读:226来源:国知局
专利名称:基于需求的处理资源分配的制作方法
技术领域
本发明涉及计算和计算网络领域,特别是涉及当需要处理资源时分配 处理资源的领域。
背景狄
《狄理器包括执行各种任务的大量电路、逻辑和功能单元。当更多的 功能性被引入微处理器时,对电能的消^^会相应增加。因此,例如当各 种微处理器的电路或逻辑单元在不使用的状况下,有时候有选择性地禁用 它们可能是有利的。但遗憾的是,启用或禁用孩狄理器中的^4t电路或逻 辑需要时间,而这可能影响处理器的性能。因此,在某些处理器中,选择 是否禁用某个电路或逻辑可能取决于该电路或逻辑在不影响处理器性能的 前提下为完成某项任务而重新启用的速度有多快。
例如,某些电路,如专门的功能单元(例如浮点功能单元)可能在一段 时间内不使用,但仍然保持启用状态,因而耗费了不必要的电能。例如, 图1图解说明了根据现有技林处理器中的一组逻辑,包括一些没有在图 中示出的^ft其它逻辑^^]的若干执^t斜戋。M地说,图1图解说明了
一个整数(MT)堆栈、 一个单指令多数据(SIMD)ilia和浮点(FP)堆栈,它们 中的每一个分别包括可能用于执行整数、SMD和浮点运算的功能单元。 所述i斜戋可包括或不包括为对应的功能单元l呆持lt据的寄存器文件。例如, 寄存器可由分配单元对指4i;或者次指4i:sub-instruction),例如一个微操作,
或'Vop")来分配并且由调度器调度用于执行,调度器可以读^ft数据并根 据才刺乍的类型在i斜戈之一上执行。当一条指令或被执行后,它可由引 出单元(retireunit)引出并提交^l理器状态上下文。
在整个上述的过程中,INT, SMD和FP i斜^l^者中的一个或多个 可能被启用,因而消耗电能,尽管不是所有的堆栈都实际用于完成特定指 令或^p的^/f亍。因而当指令或微指令^U亍时,由于未用于完成指令或^p 的才九行的堆栈处于启用状态,因此消耗了不必要的电能。然而,如果后续 指令或pop需^^M禁用的^^戋,那么禁用4封可一个ilM戋可能导致性能下 降,因为在后续指令或的执行不:R^迟的^f牛下,禁用的J斜戋不能被 足够快地重新启用以由后续指令或使用。

发明内容
根据本发明的第一方面,提供了一种装置,包括 i1^戋控制器,用于根据i斜戈是否将被已分配的指令使用来启用或禁用所述 糊。
根据本发明的第二方面,提供了一种系统,包括
賴器,^#第一指4^口第1旨令; 处理器,检测寄存器是否已经分配给第一或第二指令,以及确定是否响应 所述分配来启用对应的第一或第二执行;t斜戈,以及所述处理器响应第一或 第1旨令被引退,絲一步确^^否禁用所述第一或第j^丸^t斜戋。
根据本发明的笫三方面,提供了一种方法,包括
为笫一指令分配至少一个寄存器;
设置第一位来指示所述至少一个寄存器已经被分配;
在重排序緩冲区中^fJ者所紅少一个寄存器的分配的指示;
引W述第一指令;
设置第二位来指示所述第一指令是否为将被引退的重排序緩沖区条目 的第一代的^一个指令。
根据本发明的笫四方面,提供了一种处理器,包括 分商详元,分酉Wf应于多个微操作的多个寄存器; 调度器,调度所述多个微才辨来执行; 多个i斜戋,^f亍与多个微才^t相对应的操作;
引退单元,引i^斤述多个微:^t;
i斜戋控制器,响应为所述多个微操作中的至少一个分配所述多个寄存 器中的至少一个,来启用所述多个纟M中的至少一个。


在附图中,作为示例而非限制地图解说明了本发明。
图1图解说明根据现有技术在处理器中用于执行各种操作的一组逻
辑;
图2图解说明根据本发明的一个实施例,在处理器中用于扭行各种操 作的逻辑装置;
图3图解说明可与本发明的一个或多个实施例结^fM的重排序緩冲 区(re画order buffer)(ROB);
图4是《d呈图,图解说明了可用于才丸行本发明的一个实施例的至少一 些方面的纟,;
图5图解说明了共享总线的计算机系统,其中可^i ]本发明的至少一 个实施例;
图6图解说明了点对点总线计算机系统,其中可^^)本发明的至少一 个实施例。
本发明的实施例涉及处理器和计算机系统,更具体地说,本发明的至 少一个实施例涉及基于对各种处理资源的需求来有效地分配和回收 (deallocate)这些资源。
本发明的一些实施例允许基于是否需要处理器中的一个或多个资源来 完成某个才辨或者"在需求时(on demand)"将处理器中的一个或多个资源 启用或禁用,而不会显著降低处理器性能,所述操作是例如指令或pop(此 后统称为"指令")。本发明的至少一个实施例允许在指令的执行不^JI]一 个或多个执行结构时禁用由指^H吏用的一个或多个执行结构,例如4;M亍堆
栈(包括一个或多个^U亍逻辑或资源);以4后续指令的扭Z亍使用所述i斜戋 时重新启用所述一个或多个堆栈,而后续指令不需要^1迟很长一段时间才 被抛亍。
具体地说, 一个实施例基于正在批f亍的指令是否对应于SMD和/或FP 才辦来启用或禁用SMD和/或FP i斜戈。而且, 一个实施例执行在处理器 ^7K线的一个点上该指令是否对应于SIMD和/或FP ^喿作的枱r测,使得该 指令可被检测并JL^"应的:l斜劲^用而不需要Mi4^迟指令的执行。
图2图解说明了根据本发明的一个实施例的一组逻辑,其中分配单元201 分配寄存H^指4H錢,并且该指令由调度单元205调^于执行。jtM卜, 图2中的逻辑说明了三个才;M亍结构(例如i斜戋),用于根据与指令相关联的操 作码来执行指令。在一个实施例中,所述^Vff^构相对应于^::t斜戋210、 SMD堆栈211和FP:i械212;而在另一些实施例中,可負沐更少或更多 的堆栈,或者不同类型的堆栈。有利的是,在本发明的一个实施例中,并 不是图2中所有的执行结构者財支需要来执^^定的指令,因而执行结构可 被禁用。图2中的逻辑还说明了引退单元(retirement unit)225,用于将一条 或多条指令的执行产生的信息提交给处理器状态和/或使数据对于在计算机 系统中的其它设4^可用。
为了检测一条指令的扭行是否没有使用如图2所示的一个或多个i斜戋, i斜戈控制器220可以检测指令的类型并启用可能处于禁用状态的一个或多 个i斜戋。同样,该i斜戋控制器220可检测何时一条指令已经引退,使得可 在执行使用 一个或多个堆栈的指令^禁用所述一个或多个堆栈。为了通 过信号223和224及时启用一个或多个处于禁用状态的堆栈以使指令在不 絲延迟的条件下被执行,堆栈控制器220从分配单元201接收信号221 以通知堆栈控制器关于禁用的堆栈是否将由正^^配的指令使用。同样, 在一个实施例中,i斜戋控制器从引退单iU矣收信号202以确定何时与启用 的i斜劲目对应的指令已经引退,使得i1^戋控制器220可通过信号223和224 来禁用适当的ili4戋。因为i斜戋控制器220根据在为指令分配寄存器期间产 生的信息来检测指令是否将使用特定堆栈,所以对应的堆栈可在充足的时间内启用以允许继续进行指令的处理而没有显著的延迟。
在一个实施例中,信号221是指示正被分配的指令类型的信号。例如, 在一个实施例中,信号221可以指示正被分配的指令是否与SIMD操作或 FP才剁乍或两者相对应。在一个实施例中,指令是否与SMD #辨或FP操 作或两者相对应可根据指令的各个字段确定。在一些实施例中,其它信息 可能以信号的形M给:^戋控制器,包括正^皮分配的指令是否对应于整数 操作或某种其它的操作类型,根据这些信息,检测器能够确定是否启用对 应的处理资源,例如INT:^^戋。
在一个实施例中,基于将被处理的指令类型启用或禁用的各个堆栈或 者其它资源对应于两个位,它们的状态由堆栈控制器220控制。例如,在 图2所示的实施例中,堆栈控制器可以为SIMD i斜戋维持或以其它方式操 纵两个位(例如,SIMD.valid位和SIMD.wrap位)或为FP ^^戋维#^或#^人两 个位(FP.valid位和FP.wr邻位)。
在一个实施例中,SMD.valid位处于第一状态(例如,逻辑"1"),可 能指示正^^配的指令对应于SMD才,,在这种情况下i斜戋控制器可启 用SMD i斜戋。同样,FP.valid位处于第一状态(例如,逻辑"1"),可能 指示a^粉配的指令对应于FP才辨,在这种情况下i斜劲空制器可启用FP i斜戋。在一个实施例中,SMD.valid位和FP.vaM位处于第一状态(例如, 逻辑'T,)指示正被分配的指令对应于SIMD FP操作,在这种情况下堆栈 控制器可启用FP i斜戈和SMD i斜戋。
相反,SMD.valid和/或FP.valid位的相反逻辑状态(例如,"0")不会 使i斜戋控制器启用对应的堆栈。在一个实施例中,SIMD或FP i斜戈可以保 持妇目同状态(启用或禁用),如果它们的对应位表示正祐分配的指令与偵月 SMD或FP堆栈的一个或两者的#^乍不相对应,则SIMD和FP i械在指 令的分配之前分配。在另一些实施例中,如果堆栈处于启用状态,那么堆 栈控制器可根据SIMD.valid和FP.valid位的状态来禁用正被分配的指令所不使用的堆栈.
除了 SIMD.valid和FP.valid位"卜,堆栈控制器220可以维持两个或
更多位来指示两代(generation)中的一代,其中SMD或FP指令可被^4^在 重排序緩冲区(ROB)226中。在一个实施例中,ROB可以是顺序写A^吉构, 其中指令按照#^配的顺序来写入。当这些指令从ROB引退时,对应的条 目(entiy)可以按照它们祐分配的次序回收。
在一个实施例中,将被写入的ROB条目能够由写指针或"头指针"跟 踪,在每一个ROB写纟辨^r指针递增以指向将被写入的下一个条目。类 似地,待引退的ROB条目可由引退指针或"4i旨针"^P宗,在一个实施例 中,在每次引退^指针递增以指向待引退的下一个ROB条目。
在所有ROB条目^^皮引退并iW旨针已经重新返回到ROB的开始位 置时,术语"代"可表示由尾指针进行的完整ROB遍历。因此,当^i旨针 返回到ROB的开始位置,或者绕回(wrap)时,ROB代可^皮i^已经转^灸到 下一个代。类似地,代可以从头指针的视角上来定义,使得当所有ROB条 目被写入并且头指4f^返回到ROB的开始位置时所述代绕回。在一个实施 例中,因为在ROB条目写入之前它们可能没有引退,所以头指针##超前 于4i旨针并且由此头指针在4i旨针之前^v新的ROB代。
例如,在一个实施例中,ROB可包含与由图2中的分酉详元201分配 的每个SMD和/或FP指令相对应的条目。而且,当对应的SMD或FP指 令已经被引退单元225引退时,在朴ROB条目中可设置一个字段(例如, 位^fi者区域)。在一个实施例中,ROB可由指针变iit(index),包括头指针指 示最近分配的SIMD或FP指令,以A4i旨针指示絲分配的已经被引退的 SMD或FP指令。
在一个实施例中,ROB可在两代之间转换(toggle)。从而,由尾或头指 针指示的ROB的当前代能够使用与尾或头指针本身相关联的一个位来跟 踪。例如,tt对应的指针(絲头)分别从ROB代0移动到ROB代l,又 返回ROB代0, 一个代位可从0转换到1状态,再返回到0状态。
在一个实施例中,堆4划空制器220可维持至少两个位,例如SIMD.wrap 和FP.wrap,这两个位可用于冲&则SIMD或FP指4^f可时已,谈理器引退, 因jtb^r测处理器中不再留有^J ] SIMD或FP i械的指令。在一个实施例中,
该信息可用于关闭SIMD或EP:t斜戋,也#议,将SIMD.valid或FP.va]id位 设置为0。
例如,当SMD指令^^配并且分配器201发送信号221到ilM戋控制 器220, SIMD.m叩位被设置为头指针的wrap(绕回X立的当前值,该当前值 指示^i^一条SIMD指令写入的ROB条目的代。当4i旨针绕回到一^H斤 代,该^旨针的前一个^I过信号202发iiJ^械控制器220。前一个ROB 代与SMD.wrap比较,如斜目匹配,则表明包^樣后一个S1MD微操作的 ROB代被引退,因而处理器中不再有SMD微操作。因而可以通过将 SMD.vaJid设置为0来关闭SIMD i械。
在一个实施例中,相似的才辨可类比FP.wrap位来用于EP i械才辦。 itW卜,在一些实施例中,上述操作可以对处理器中的其它资源实施,包括 可能不总是对每条指4H吏用的务賭器堆栈或其它资源。
图3图解说明了根据本发明的一个实施例可^JD的ROB和对应的头尾 指针。ROB 301作为128个条目的循环队列来说明,在一个实施例中,所 述队列的条目从条目0到条目127被填满。同样,头指针305和^旨针310 从条目0i4^到条目127,并且当它们到达ROB中的^一^^目后,绕 回到条目0。在另一些实施例中,ROB可以从"底部,,到"顶部"被填满, 而不是从"顶部,,到"底部",并且头和^旨针可以相应iifei4^ ROB。
在一个实施例中,头和尾指针与SMD.valid、 FP.valid、 SIMD.wrap和 FP.wrap位一起^JI]来确定对应的堆栈是否要被启用或禁用。例如,如果 SMD指令^^配并JL^f应的条目315被^#在ROB中,头指针305可通 过将合适的緩冲区条目存储到指针的合适字段中以指向该条目。同样,尾 指针可以从顶部到底部辆ROB直到发现已被引退的最旧的条目条目320 为止。为了跟踪由头和尾指针所指向的每个条目的代, 一个位或多个位, 例如一个SMD.wrap位可结合其它信息来被图2中的堆栈控制器220使用。
例如,当SMD指令被引退,并且ROB的^旨针绕回时,4寺分配的最 后一条SMD指令的wrap位与引退引起的最近的SIMD.wrap状态进行比 较,如果它们相同,则可負汰明所分配的絲一条SIMD指令对应于ROB
遍历的在前的"代,,,该代已经被完全引退(即,因为wrap位状态已经发 生改变,所以在前的wrap位状态属于该在前遍历代的指令)。在前的 SMD.wrap位状态与当前的SMD.wrap位状态一致^^木着在ROB中的最 后一条SMD指令已经引退并JU殳有SIMD指令jE^^酉eiU^f亍。因此, SMD.valid位可以被:t斜戋控制器清除,并且禁用SMDi斜戋。对于FP指令, 可遵循相似的4支术, <錢相对应的FP.valid和FP.wrap位来控制FP i斜戋。 其它堆栈或者处理器资源,例如INT i斜戈控制,可以使用以上描述的技术 来控制。
图4是一个伊uf呈图,图解说明了可用于完成本发明的至少一个实施例 的某些方面的操作。虽然该^^f呈图说明了控制SIMD舉战的操作,但是参 照图4描述的操作可用来控制FP堆栈、INT:t斜戋或者其它处理器资源。在 操怍401中,SMD指令^^配,在才喿作405中,对应的SIMD.valid位被 设置(如果没有被设置)并JL^"应的SMD.wrap位基于由ROB头指针所指示 的代来改变状态。在一个实施例中,设置SMD.valid ^(如^L没有设置) 及时启用SIMD i斜戋,使得SIMD指令可在不遭it^著延迟的^f牛下访问 SMD舉民。如絲操怍410中ROB ^i旨针绕回,则若在操作415中ROB ^i旨针绕回到ROB的开始位置,那么由ROB 4^旨针所指示的代在操作420 中改变状态。在才辨425中,由ROB 4i旨针所指示的在前的代与SIMD.wr叩 状态进行比较,如果它们是相等的,那么在操作430中SIMD.valid位将被 清除以禁用SIMDi械。在一个实施例中,ROB尾指针的代可由与该^i旨 4讨目关联的一位或一组位来指示。如果它们不相等,那么在操怍435,当前 的SIMD.valid状态被维持。
在至少一个实施例中,siMD.wrap位可通过,ROB条目的指示来代 替,该ROB条目是将被记^f^m控制器中的:i^一条SIMD指令或微指 令的ROB条目(例如通过一个"SIMD.robid"位)。在一个实施例中,无论 何时SIMD指令或pp在ROB中净紛配,例如SIMD.robid,寻A^新而指 向它,类似于头指针。当指令或引退时,引退的ROB标识符(类似于 ^i旨针)可以与所务賭的SIMD.robid比较,如果它们相等,则为了禁用对应
的i斜戋,SMD.valid位可被清除。
图5图解说明了可^f錢本发明的一个实施例的前端总线(FSB)计算机系 统。处理器505访问一级(L1)高速緩沖务賭器510和主务賭器515中的数据。 在本发明的另一些实施例中,该高速緩冲,器可以是二M(L2)高速緩存或 者在计算机系统的务賭器分级结构(hierarchy)中其它的务賭器。此外,在一 些实施例中,图5所示的计算机系统可包含L1高速緩存和L2高速緩存这 两者。
在图5的处理器中说明了机器状态的务賭区域506。在一个实施例中, 务賭区域可能是一组寄存器,而在另一些实施例中,务賭区域可能是其它 的存储器结构。处理器可具有4封可数量的处理核心。但是,本发明的另一 些实施例可在系统内的其它设4^列如独立的总线代理中实现,或在硬件、 软件或其某种结合中分布于整个系统。
主存储器可以用各种存储器资源来实现,例如动态随机存取存储器 (DRAM)、石植驱动(HDD)520,或者通过网^Mr口 530远离计算机系统设 置的包括^t存々射殳备和技术的存储器资源。高速緩冲务賭器可设置在处 理器中或设置在靠近处理器的位置,例如在处理器的本地总线507上。
j
^卜,高速緩冲存储器可包含相对快速的賴单元,例如六晶体管(6T) 单元,或其它存耳^1相当或更快的,单元。图5所示的计算机系统可 以是泉对点(PtP)的总线代理例如微处理器的网络,总线代理通过专用于点
对点(PtP)网络上的Vh代理的总线信号^i行通信。图6中图解i兌明了4姿 点对点(PtP)配置安排的计算机系统。具体地说,图6示出了一个系统,在 该系统中,处理器、存储器以及输入输出设备由许多,#,f点4妻口互i^来。
图6的系统还可包括若干处理器,为了清晰器件,只示出这些处理器 中的两个,处理器670、 680。处理器670、 680均可包^^本:lM^t控制集线 H(MCH)672、 682来与^j诸器22、 24相连接。处理器670、 680可通过使 用PtP接口电路678、 688的点对点(PtP)接口 650来交换数梧。处理器670、 680均可通过4M点对点接口电路676、 694、 686、 698的独立的PtP接口 652、 654来与芯片组690交换数据。芯片组690也可以通过高性能图形接
口 639与高性能图形电路638交换数据。本发明的实施例可设置在具有任 何数量的处理核心的处理器中,或者iU在图6的PtP总线代理的^—个 中。
但是,本发明的另一些实施例,可存在于图6的系统中的其它电路、 逻辑单元或设备中。而且,在本发明的另一些实施例中,可遍布图6所示 的若干电路、逻辑单元或设备。
本发明提到的处理器,或根据本发明的一实施例所设计的其它组件, 可以在各种阶段中设计,从创建到仿真再到制作。表示设计的数据可通过 许多方式M示该设计。首先,硬件可以^^]硬件描述语言或另一功能描 述语言来表示,^仿真中是有用的。作为备选的或附加的方案,具有逻 辑和/或晶体管栅的电路^^莫型可在设计过程中的某些阶羊殳中产生。而且, 在某一阶段,大多数设计达到了某个级别,其中,它们可用表示各种设备 物理布置的数据来建模。在使用传统半导体制作技术的情况下,表示设备 布置模型的数据可以^^见定在4^f莫的不同的掩模层上的各种特征数据的存 在或不存在的、用于产成集成电路的数据。
在所述设计的^^T一个表示中,数据可存储在任何形式的机器可读介 质中。调制或以其它方式生成以传输这种信息的光或电波,务賭器,或者 磁或M储介质,例如光盘,可以是机器可读介质。这些^h质中的4^f可一 种可"携带(cany)"或"指示(indicate)"上述设计,或者在本发明的一实施 例中使用的其它信息,例如错误恢复例程中的指令。当指示或携带信息的 电载波被传输,iiiij执行电信号的复制、緩冲或者重传的程度时,生成新 的副本。因此,通信提供商或网络提供商的行为可能正在制作包含本发明 的4支术的物品的副本,例如,载波。
从而,公开了操纵存储器访问的技术,例如加载或##。当描述某些 实施例并在附图中示出时,需要理解的是,这些实施例只 ^释而不是限 制宽范围的本发明,并JL^发明不限于所示出和描述的M的结构和安排,
个^^迅速并且前景不好预测的技术领域比如本发明的领域中,在不背离
本发明的精神或所附权利要求的范围的前提下,在实现4支 步的推动下, 所公开的实施例可在安排和细节上容易地修改。
本发明的一个或多个实施例的各个方面可在^J ]本发明的一个或多个 实施例的处理器或计算机系统的广告中被描述、讨论或者以其它方式涉及。 所述广告可包括^^限于新闻印刷品、杂志、布告牌或者其它纸件或有形 媒体。特别是,本发明一个或多个实施例的各个方面可通过网站、"弹出 式"广告或者其它基于网页的媒体在互连网上作广告,而不论拥有(host)用 于产生网站或弹出式的程序的服务器是否位于美国或其领土内。
权利要求
1.一种装置,包括堆栈控制器,用于根据堆栈是否将被已分配的指令使用来启用或禁用所述堆栈。
2. 如权利要求1所述的装置,其特征在于,所述指令是单指令多数据 指令,以及所述i斜戋是执行与所述单指令多数据指令相关联的操作的单指 令多数据靴
3. 如权利要求1户斤述的装置,其特;[4于,所ii指4^^^浮点指令,以 ^J斤述i斜i^执行与浮点指令相关联的才辨的浮点i斜戈。
4. 如权利要求3所述的装置,其特;f雄于,还包括重排序緩冲区,用 于存储与已分配的指令相对应的信息,并且指示已分配的指令是否已经被 引退。
5. 如权利要求1所述的装置,其特征在于,当重排序緩冲区中务賭的 所有先于所述指令的指令已经被《1退时,所述i斜戋控制器禁用所述i斜戋。
6. 如权利要求5所述的装置,其特4球于,所述i^a控制H^^第一 位来指示指令是否已经^c^配,以及使用第二位来指示指令是否已经被引退。
7. 如权利要求6所述的装置,其特征在于,所述第一^J!十应于指出重 排序緩沖区中最近分配的指令的头指针,所述笫二位对应于指出重排序緩 冲区中已经被 1退的M分配的指令的^i旨针。
8. 如权利要求7所述的装置,其特征在于,还包括用于分配指令的分 酉己单元,用于调度指令的调度器和用于《1退指令的31退单元。
9. 一种系统,包括賴器,^f诸第一指4^口第^旨令;处理器,检测寄存器是否已经分配给第一或笫二指令,以及确定是否 响应所述分配来启用对应的第一或第二执行堆栈,以及所述处理器响应第 一或笫二指令被引退,絲一步确定是否禁用所述第一或第二执行斜戋。
10. 如权利要求9所述的系统,其特;^正在于,所述处理器包括分配单 元来分配寄存器给所述第一或第1旨令。
11. 如权利要求10所述的系统,其特;f球于,所舰理器还包括i斜戈 控制器来从所述分配单元接收关于所述寄存器是否已经分配给第一或第二 指令的指示,以4所述第一或第二执行舉战尚未启用时,响应所述分配 来启用所述第一或第二执4,斜戋。
12. 如权利要求11所述的系统,其特44于,所i^h理器还包括引退 单元,用于引退所述第一或第^旨令。
13. 如权利要求12所述的系统,其特44于,所述分酉傳^J斤述引 退单元接收关于所述第 一或第^旨令是否已经引退的指示。
14. 如权利要求13所述的系统,其特44于,所皿理器还包括重排 序緩冲区,所述緩冲区的条目与所述分配单元为所述第 一和第二指令分配 寄存器的顺序相对应。
15. 如权利要求14所述的系统,其特44于,如果所述第一或第1旨 令是重排序緩沖区中将要被引退的条目的代的絲一个指令,则所述堆栈 控制器禁用所述第一或第二ilM戋。
16. 如权利要求15所述的系统,其特征在于,所述第一和笫1旨令分 别对应于单指令多数据指令和浮点指令,以及所述第一和第二执行堆栈分 别对应于^旨令多数据i斜戈和浮点i斜戋。
17. —种方法,包4舌为第 一指令分配至少一个寄存器;设置第 一位来指示所述至少一个寄存器已经4^配;在重排序緩冲区中^f诸所述至少"H^存器的分配的指示;引退所述第一指令;设置第二位来指示所述第 一指令是否为将被S 1退的重排序緩冲区条目 的第一代的^一个指令。
18. 如权利要求17所述的方法,其特征在于,还包括如果所述i斜戋 在所述至少一个寄存器4^配之前禁用,则响应所述第一位被没置,启用 对应于所述笫一指令的i料戋。
19. 如权利要求17所述的方法,其特征在于,还包括响应所述第一 位没有^fe臾置,禁用所述i對戋。
20. 如权利要求17所述的方法,其特征在于,所述重排序緩冲区由头 指针变址来指向对应于被分配的至少一个寄存器的重排序緩冲区条目,以 及所述重排序緩冲区由尾指针变址来指向对应于被引退的指令的重排序緩 沖区条目。
21. 如权利要求20所述的方法,其特征在于,所述重排序緩冲区条目 的^it过所述第二位的当前状态对比所述第二位的前一状态来指示。
22. 如权利要求21所述的方法,其特征在于,如果所述第二位的所述 当前状态与由所狄指针指示的前一重排序緩沖区代相同,则禁用所述堆栈。
23. 如4又利要求22所述的方法,其特征在于,所述第一指令是单指令 多数据指令,并且所述i斜^^^旨令多数据:t斜戋。
24. 如斗又利要求22所述的方法,其特征在于,所述第一指令是浮点指 令,并且所述i^^浮点i斜戋。
25. 如权利要求22所述的方法,其特征在于,所述第一指令是整数指 令,并且所述樹议整数糊。
26. —种处理器,包括分配单元,分酉e^j"应于多个微操作的多个寄存器; 调度器,调度所述多个微才辨来执行; 多个i斜戋,才A^亍与多个微l^t相对应的操作; 引退单元,引it;斤述多个孩財^1乍;;i斜戋控制器,响应为所述多个微操作中的至少一个分配所述多个寄存 器中的至少一个,来启用所述多个ilM戋中的至少一个。
27. 如权利要求26所述的处理器,其特;f4于,响应所述引退单元引 退所述多个微操作中的至少一个,所述纟1^控制器禁用所述多个i斜戋中的 至少一个。
28. 如权利要求27所述的处理器,其特征在于,还包括有效(valid)位 ^i诸区域,^ft有效位来指示所述分配单元是否已分酉e^f应于所述多个微 操作中的至少一个的堆一戋。
29. 如权利要求27所述的处理器,其特征在于,还包括绕回^##区 域,存储绕回位来指示所述至少一个微操作是否对应于重排序緩沖区中的 条目的第一代。
30. 如权利要求29所述的处理器,其特;f正在于,所述i1^戈控制器包括 逻辑,确定所述绕回位的第一状态是否等于所述绕回位的前一状态,以及 如果所述有效位纟支设置,则所述堆栈控制器禁用与所述至少 一个孩纣喿作相 对应的樹戋。
全文摘要
基于需求来动态启用或禁用处理器中的一些堆栈的技术。至少一个实施例包括逻辑,检测是否需要堆栈并且响应需要堆栈来启用所述堆栈,以及当不再需要所述堆栈时禁用所述堆栈。
文档编号G06F15/78GK101196868SQ20071030667
公开日2008年6月11日 申请日期2007年9月18日 优先权日2006年9月18日
发明者A·索达尼, C·K·谭, J·豪金斯, S·米尔克斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1