用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf

上传人:a2 文档编号:1566191 上传时间:2018-06-25 格式:PDF 页数:18 大小:4.33MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180045959.1

申请日:

2011.09.23

公开号:

CN103119537A

公开日:

2013.05.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 1/32申请日:20110923|||公开

IPC分类号:

G06F1/32; G06F9/30; G06F9/06

主分类号:

G06F1/32

申请人:

英特尔公司

发明人:

V·R·马杜里

地址:

美国加利福尼亚州

优先权:

2010.09.24 US 12/890,561

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

张东梅

PDF下载: PDF下载
内容摘要

描述了用于通过使指令拾取单元掉电来降低处理器中的功耗的装置和方法。例如,方法的一个实施例包括:检测分支,该分支具有与之相关联的寻址信息;将寻址信息与指令预拾取缓冲器中的条目进行比较以确定预拾取缓冲器中是否存在可执行指令循环;其中如果作为比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及从预拾取缓冲器直接流送指令直至检测到清除条件。

权利要求书

权利要求书一种用于在具有指令拾取单元和预拾取缓冲器的处理器上降低功耗的方法,包括:
检测分支,所述分支具有与之相关联的寻址信息;
将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;
其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及
从所述预拾取缓冲器直接流送指令直至检测到清除条件。
如权利要求1所述的方法,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量、和/或分支目标地址。
如权利要求1所述的方法,其特征在于,所述清除条件包括错误预测分支。
如权利要求1所述的方法,其特征在于,所述指令循环包括嵌套指令循环。
如权利要求1所述的方法,其特征在于,使所述指令拾取单元掉电包括使指令高速缓存和/或指令解码高速缓存掉电。
如权利要求5所述的方法,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。
如权利要求1所述的方法,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码级。
一种用于降低处理器上的功耗的装置,包括:
指令拾取单元,其预测分支,所述分支具有与之相关联的寻址信息;
循环流检测器单元,其将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;
其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及
从所述预拾取缓冲器直接流送指令直至检测到清除条件。
如权利要求8所述的装置,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。
如权利要求8所述的装置,其特征在于,所述清除条件包括错误预测分支。
如权利要求8所述的装置,其特征在于,所述指令循环包括嵌套指令循环。
如权利要求8所述的装置,其特征在于,使所述指令拾取单元掉电包括使指令高速缓存和/或指令解码高速缓存掉电。
如权利要求12所述的装置,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。
如权利要求8所述的装置,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码级。
一种计算系统,包括:
显示设备;
处理器,其用于存储指令;
处理器,其用于处理所述指令,包括:
指令拾取单元,其预测分支,所述分支具有与之相关联的寻址信息;
循环流检测器单元,其将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;
其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及
从所述预拾取缓冲器直接流送指令直至检测到清除条件。
如权利要求15所述的系统,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。
如权利要求15所述的系统,其特征在于,所述清除条件包括错误预测分支。
如权利要求15所述的系统,其特征在于,所述指令循环包括嵌套指令循环。
如权利要求15所述的系统,其特征在于,使所述指令拾取单元掉电包括使指令高速缓存和/或指令解码高速缓存掉电。
如权利要求19所述的系统,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。
如权利要求15所述的系统,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码级。

说明书

说明书用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置
背景
发明领域
本发明一般涉及计算机处理器领域。本发明尤其涉及用于检测缓冲器内的指令循环和其他指令编组以及响应性地使拾取单元掉电的装置和方法。
相关技术描述
许多现代微处理器具有便于高速操作的大指令流水线。“被拾取的”程序指令进入流水线,在流水线的中间级中进行诸如解码和执行之类的操作,并在流水线的末端被“退隐(retire)”。当流水线在每个时钟周期接收有效指令时,流水线保持充满并且性能是良好的。当在每个周期未接收到有效指令时,流水线不保持完整,并且性能会受损。例如,性能问题可源自程序代码中的分支指令。如果在程序中遇到分支指令且处理分支至目标地址,则指令流水线的一部分可能必须被冲刷(flush),从而导致性能惩罚。
已设计分支目标缓冲器(BTB)来减轻分支指令对流水线效率的影响。可在David A.Patterson和John L.Hennessy的Computer Architecture A Quantitative Approach(计算机架构定量办法)271‑275(1990年第二版)中找到关于BTB的讨论。典型BTB应用也在图1中示出,图1例示了耦合至指令指针(IP)118和处理器流水线120的BTB110。图1中还包括高速缓存130和拾取缓冲器132。将被拾取的下一指令的位置由IP118来指定。随着程序中执行顺序地行进,IP118在每个周期递增。IP118的输出驱动高速缓存130的端口134,并指定将从其拾取下一指令的地址。高速缓存130将指令提供给拾取缓冲器132,该拾取缓冲器132进而将指令提供给处理器流水线120。
当由流水线120接收到指令时,它们在若干个级中行进,这若干个级被示为拾取级122、解码级124、中间级126(例如,指令执行级)、以及退隐级128。关于分支指令是否导致所选取分支的信息有时在诸如退隐级128之类的后一流水线级之前不可用。当BTB110不存在且选取了分支时,拾取缓冲器132以及指令流水线120中跟随在分支指令之后的那部分使指令与错误执行路径分隔开。处理器流水线120和拾取缓冲器132中的无效指令被冲刷,且用分支目标地址来写入IP118。部分因为在用始于分支目标地址的指令来填充拾取缓冲器132和指令流水线120的同时处理器进行等待的原因,导致性能惩罚。
分支目标缓冲器(BTB)减轻所选取分支的性能影响。BTB110包括记录111,各个记录具有分支地址(BA)字段112和目标地址(TA)字段114。TA字段114保持位于由相应的BA字段112指定的地址处的分支指令的分支目标地址。当处理器流水线120遇到分支指令时,对记录111的BA字段112进行搜索以得到与分支指令的地址相匹配的记录。如果找到,则IP118被改成与所找到的BA字段112相对应的TA字段114的值。结果,接下来拾取始于分支目标地址处的指令。
节省处理器流水线中的功率是重要的,尤其对于依靠电池功率运行的膝上型计算机和其他移动设备而言。由此,在重复指令组(例如,嵌套循环)位于拾取缓冲器内时使处理器流水线中的诸如指令拾取电路和指令高速缓存之类的特定部分掉电将是有益的。相应地,用于检测可使拾取电路或其部分掉电的情形的新技术将是有益的。

附图简述
可结合附图从以下详细描述中获得对本发明的更好理解,其中:
图1例示了采用分支目标缓冲器来执行分支目标预拾取的现有技术处理器流水线。
图2例示了包括用于从预拾取缓冲器流送指令并响应性地使处理器流水线的部分掉电的循环流检测器的处理器架构的一个实施例。
图3例示了用于检测重复指令组并响应性地使处理器流水线的部分掉电的方法的一个实施例。
图4例示了循环流检测器开始操作的一个实施例的流水线示图;
图5例示了在预拾取缓冲器的一个实施例中采用的用于使循环流检测器进行操作的字段。
图6例示了在预拾取缓冲器的另一实施例中采用的用于使循环流检测器进行操作的字段。
图7例示了包括嵌套指令序列的示例性程序代码。
具体实施方式
在下面的描述中,出于说明目的,阐述了众多具体细节以便提供对以下描述的本发明的实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的一些也可实施本发明的诸实施例。在其他实例中,众所周知的结构和设备以框图形式示出,以避免淡化本发明的实施例的底层原理。
本发明的一个实施例在执行诸如嵌套循环和/或嵌套分支之类的重复指令组时降低CPU核的动态功率。例如,当在预拾取缓冲器中检测到由分支预测器预测的指令组时,本发明的一个实施例使拾取单元和相关联的指令拾取电路(或其部分)掉电以节省功率。随后从预拾取缓冲器直接流送指令,直至需要附加指令,此时将指令拾取单元上电。本发明的实施例可在单线程或多线程环境两者中操作。在一个实施例,在单线程环境中,所有预拾取缓冲器条目被分配给单个线程,而在多线程环境中,预拾取缓冲器条目在多个线程之间被均等地划分。
一个特定实施例包括循环流检测器(LSD),其具有用于检测重复指令组的预拾取缓冲器。循环流检测器预拾取缓冲器在多线程模式中可以是6条目深的(3个用于线程0,且3个用于线程1),而在单线程模式中可以是3条目深的。替换地,所有6个条目可被用于单线程模式中的单线程。在一个实施例中,在单线程模式中,在预拾取缓冲器中,条目的数目可被配置成3或6。
在一个实施例中,循环流检测器预拾取缓冲器存储分支信息,诸如关于被写入预拾取缓冲器中的每个分支目标缓冲器(BTB)预测分支的预拾取缓冲器的当前线性指令指针(CLIP)、偏移量、以及分支目标地址读取指针。当BTB预测分支时,可对照预拾取缓冲器中的条目来比较分支的CLIP和偏移量,以确定此分支是否已驻留在预拾取缓冲器中。如果存在匹配,则拾取单元或其部分(诸如指令高速缓存)被关闭,从预拾取缓冲器流送指令,直至遇到清除条件(例如错误预测分支)。如果预拾取缓冲器中的指令循环内存在BTB预测分支,则这些也是从预拾取缓冲器流送的。在一个实施例中,针对直接且条件分支激活——但是针对插入流不激活——循环流检测器,并且返回/调用指令。
在图2中例示了用于在预拾取缓冲器内检测到嵌套循环、分支、以及其他重复指令编组时使拾取单元(和/或其他电路)掉电的处理器架构的一个实施例。如图所示,此实施例包括用于执行本文中描述的各种功能的循环流检测器单元200。具体地,循环流检测器200包括比较电路202,其用于将由分支目标缓冲器(BTB)预测的分支与预拾取缓冲器201中的条目进行比较。如先前所提及的,在本发明的一个实施例中,如果在预拾取缓冲器中检测到匹配,则循环流检测器200响应性地使指令拾取单元210(或其部分)掉电(如图2中的ON/OFF(开/关)线所指示的)。
可响应于来自循环流检测器(该循环流检测器包括分支预测单元211、下一指令指针212、指令转换后备缓冲器(ITLB)、指令高速缓存214和/或预解码高速缓存215)的信号来使指令拾取单元210的各种众所周知的组件掉电,由此如果在预拾取缓冲器内检测到重复指令组,则节省相当大量的功率。随后将指令从预拾取缓冲器直接流送到指令流水线的其他级,作为示例而非限制,包括解码级220和执行级230。
图3例示了用于响应于在指令缓冲器内检测到指令组(诸如嵌套循环)使拾取单元(或其部分)掉电的方法的一个实施例。该方法可通过使用图2中所示的处理器架构来实现,或者在不同的处理器架构上实现。
在301,预测分支指令,并且确定分支指令的当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。在302,对照预拾取缓冲器中的条目来比较CLIP、分支偏移量和/或分支目标地址。在一个实施例中,比较的目的是确定嵌套循环是否被存储在预拾取缓冲器内。如果在303确定找到匹配,则在304处,使指令拾取单元(和/或其各个组件)掉电,并且在305处,从预拾取缓冲器直接流送指令。继续从预拾取缓冲器流送指令,直至在306处发生清除条件(例如,错误预测分支)。
图4例示了根据本发明的一个实施例的循环流检测器如何开始进行操作。具体地,在图4中,分支由指令流水线内的IF2_L级(BT清除)中的预测器来预测,而下一指令指针(IP)mux(多路复用器)级是通过气泡(bubble)而被重定向至预测分支目标地址的。在级ID1,CLIP、分支偏移量和目标读取指针(标识分支目标的指针)被记录在预拾取缓冲器内。响应于检测到CLIP、分支偏移量和/或目标读取指针的匹配,循环流检测器进行操作,并且在一个实施例中,拾取单元被禁用。这在图4的底部例示出,图4示出了比较CLIP和分支偏移量,以及循环流检测器锁闭被设置(由此使拾取单元和/或其部分掉电)。
图5例示了具有用于使循环流检测器进行操作的不同字段的循环流检测器预拾取缓冲器的一个实施例的结构,而图7例示了用于图5的循环流检测器示例的示例性指令序列。处于方便起见,以下还提供了示例性指令序列。LSD预拾取缓冲器内使用的字段包括预拾取缓冲器条目号501(在此特定示例中,有6个PFB条目,编号为0‑5)、当前线性指令指针(CLIP)502、分支偏移量字段503、目标读取指针字段504、以及条目有效字段505。
如图所示,当具有当前线性指令指针(CLIP)0xl20h处的分支的循环被拾取单元展开并被写入到预拾取缓冲器中时,对照PFB条目中的每一个的有效CLIP和分支偏移量字段来比较传入CLIP和分支偏移量。响应于比较,在PFB条目3处置位有效比特,如图所示。另外,PFB条目3记录重定向PFB读取指针,以实现从PFB流送指令。在一个实施例中,执行以下操作:
(1)预测分支。
(2)将CLIP和偏移量与PFB中的现有条目进行比较。
(3)如果对照PFB的LSD结构中的条目中的一个(在所例示示例中,为条目0)存在匹配,则条目0的PFB目标读取指针字段被拷贝到LSD结构的条目3,并且在写入PFB条目时,条目有效比特被置位。在一个实施例中,PFB条目包括16字节高速缓存数据线,并且每字节一个指示宏指令的末端的预解码比特。
(4)当PFB读取指针抵达条目3时,其被用来从条目3读取所有信息,包括PFB条目读取指针和有效比特。
(5)基于有效比特,并非是读取下一顺序的PFB条目4,而是使用目标读取指针将其重定向至条目1。
(6)现在从条目1、条目2、条目3顺序地读取PFB条目。
(7)在条目3,读取PFB有效比特,并且PFB使用目标读取指针来读取下一PFB条目。
(8)重复步骤6和7。

在一个实施例中,每个PFB条目包括完整16字节高速缓存线,其包含将从PFB被流送的指令。连同高速缓存线原始数据一起,预解码比特以及指示分支指令的最后字节的BTB标志符也被存储在PFB中。预解码比特被存储在预解码高速缓存215中。在预解码高速缓存中,高速缓存线的每个字节有一个比特。此比特指示宏指令的末端。BTB标志器也是每字节一个指示分支指令的最后字节的比特。被写入PFB条目中的16字节高速缓存线中可以有多达16个指令。对于BTB预测分支指令,具有分支目标的指令的高速缓存线总是被写入PFB中的下一顺序条目中。在一个实施例中,有4:1MUX,其输出被用来读取PFB条目。MUX的输入是:(1)PFB读取指针,其通常从PFB条目流送指令,并且在已从条目流送所有指令时前进;(2)当从PFB条目流送分支指令时的分支目标PFB读取指针;(3)在像错误预测分支之类的清除条件之后的PFB读取指针,并且这总是指向第一PFB条目;以及(4)归因于LSD的操作的PFB目标读取指针。
在图6中示出了PFB LSD的另一实施例,其中LSD字段的条目的数目小于PFB条目的数目,以降低功率/面积。具体地,在此示例中,对于LSD字段而言,有四个条目(具有LSD条目号03),而对于PFB字段而言,有6个条目(编号为0‑5)。每个PFB条目中的头指针值被用来指向与拾取单元中的预测器所预测的分支指令相关联的LSD条目。例如,头指针0001指向LSD条目号0;头指针0010指向LSD条目号1;头指针0100指向LSD条目号2;而头指针1000指向LSD条目号3。头指针值0000指示PFB条目不具有指向LSD条目的BTB预测分支。因而,如果(1)检测到匹配的CLIP和分支偏移量,并且(2)匹配的LSD条目具有从PFB条目中的任一个指向其的相对应的有效头指针。在一个实施例中,来自PFB条目的头指针的比特[0]是进行了或(OR)操作的,并且因匹配而是合格的。(3)在一个实施例中,如果对照PFB的LSD结构中的条目中的一个存在匹配,则匹配的条目的PFB目标读取指针字段被拷贝至PFB中具有BTB预测的相对应的高速缓存线正被写入到其中的条目。另外,对于当前正被写入的具有BTB预测分支指令的PFB条目,LSD有效比特被置位。(4)当PFB读取指针抵达LSD有效比特已被置位的条目时,其被用来从条目读取所有信息,包括PFB条目读取指针和LSD有效比特。(5)基于LSD有效比特,并非是读取下一顺序的PFB条目,而是使用目标读取指针将其重定向至条目。(6)随后顺序地读取PFB条目,直至读取具有PFB有效比特的条目,并且PFB使用目标读取指针来读取下一PFB条目。(7)随后重复以上操作5和6。
在本发明的一个实施例中,其中实现本发明的实施例的处理器包括低功率处理器,诸如由IntelTM公司设计的AtomTM处理器。然而,本发明的底层原理不限于任何具体的处理器架构。例如,可在包括由Intel设计的核i3、i5、和/或i7处理器的各种不同处理器架构上或者在智能电话和/或其他便携式计算设备中所使用的各个低功率片上系统(SoC)架构上实现本发明的底层原理。
图8例示了其上可实现本发明的实施例的示例性计算机系统800。计算机系统800包括用于传送信息的系统总线820,以及耦合至总线820的用于处理信息的处理器810。计算机系统800还包括耦合至总线820的随机存取存储器(RAM)或其它动态存储装置825(在本文中被称为主存储器),用于存储要由处理器810执行的信息和指令。主存储器825还可用于存储处理器810执行指令期间的临时变量或其它中间信息。计算机系统800还可包括耦合至总线820的只读存储器(ROM)和/或其它静态存储装置826,用于存储由处理器810使用的静态信息和指令。
诸如磁盘或光盘等数据存储装置827及其相应的驱动器也可耦合至计算机系统800以存储信息和指令。计算机系统800还可经由I/O接口830耦合至第二I/O总线850。多个I/O设备可耦合至I/O总线850,包括显示设备843、输入设备(例如,字母数字输入设备842和/或光标控制装置841)。
通信设备240用于经由网络访问其他计算机(服务器或客户机),以及上传/下载各种类型的数据。通信装置240可包括调制解调器、网络接口卡或其它公知的接口设备,诸如用于耦合至以太网、令牌环或其它类型网络的设备。
图9是示出可用在本发明的一些实施例中的另一示例性数据处理系统的框图。例如,数据处理器系统900可以是手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、平板计算机、或可包括移动电话、媒体播放器和/或游戏系统的手持式计算设备。作为另一示例,数据处理系统900可以是网络计算机或另一设备内的嵌入式处理设备。
根据本发明的一个实施例,数据处理系统900的示例性架构可用于以上所描述的移动设备。数据处理系统900包括处理系统920,该处理系统920可包括一个或多个微处理器和/或集成电路上的系统。处理系统920与处理器910、电源925(其包括一个或多个电池)、音频输入/输出940、显示控制器和显示设备960、任选输入/输出950、输入设备970、和无线收发机930耦合。应当理解,在本发明的某些实施例中,未在图9中示出的附加组件也可以是数据处理系统900的一部分,而在本发明的某些实施例中,可使用比图9中所示的更少的组件。另外,应当理解,未在图9中所示的一条或多条总线可用于互连各个组件,如本领域中众所周知的。
存储器910可存储供数据处理系统900来执行的数据和/或程序。音频输入/输出940可包括麦克风和/或扬声器,以便例如通过扬声器和麦克风播放和/或提供电话功能。显示控制器和显示设备960可包括图形用户界面(GUI)。无线(例如,RF)收发机930(例如,WiFi收发机、红外收发机、蓝牙收发机、无线蜂窝电话收发机等)可用于与其他数据处理系统通信。一个或多个输入设备970允许用户向系统提供输入。这些输入设备可以是键区、键盘、触摸面板、多触摸面板等。任选其他输入/输出950可以是坞站的连接器。
本发明的其他实施例可在蜂窝电话和寻呼机(例如,其中软件被嵌入到微芯片中)、手持式计算设备(例如,个人数字助理、智能电话)和/或按键式电话上实现。然而,应当理解,本发明的底层原理不限于任何特定类型的通信设备或通信介质。
本发明的实施例可以包括以上描述的各个步骤。这些步骤可在用于导致通用或专用处理器执行步骤的机器可执行指令中实现。另选地,这些步骤可由包含用于执行这些步骤的硬连线逻辑的专用硬件组件来执行,或由编程的计算机组件和自定义的硬件组件的任何组合来执行。
本发明的各元素也可以作为计算机程序产品来提供,该计算机程序产品可包括其上存储有指令的计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行过程。该机器可读介质可以包括,但不限于,软盘、光盘、CD‑ROM、以及磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适于存储电子指令的其它类型的介质/机器可读介质。例如,本发明可以作为计算机程序产品来下载,其中该程序可用具体化在载波或其它传播介质中的数据信号的方式经由通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户机)。
贯穿此详细描述,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节也可实践本发明。在某些实例中,并不详细描述众所周知的结构和功能以免淡化本发明的主题。因此,本发明的范围和精神应根据所附权利要求书来判断。

用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf_第1页
第1页 / 共18页
用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf_第2页
第2页 / 共18页
用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf》由会员分享,可在线阅读,更多相关《用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103119537 A(43)申请公布日 2013.05.22CN103119537A*CN103119537A*(21)申请号 201180045959.1(22)申请日 2011.09.2312/890,561 2010.09.24 USG06F 1/32(2006.01)G06F 9/30(2006.01)G06F 9/06(2006.01)(71)申请人英特尔公司地址美国加利福尼亚州(72)发明人 VR马杜里(74)专利代理机构上海专利商标事务所有限公司 31100代理人张东梅(54) 发明名称用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置(57)。

2、 摘要描述了用于通过使指令拾取单元掉电来降低处理器中的功耗的装置和方法。例如,方法的一个实施例包括:检测分支,该分支具有与之相关联的寻址信息;将寻址信息与指令预拾取缓冲器中的条目进行比较以确定预拾取缓冲器中是否存在可执行指令循环;其中如果作为比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及从预拾取缓冲器直接流送指令直至检测到清除条件。(30)优先权数据(85)PCT申请进入国家阶段日2013.03.22(86)PCT申请的申请数据PCT/US2011/053152 2011.09.23(87)PCT申请的公布数据WO2012/040664 EN 2012.03.29(51)I。

3、nt.Cl.权利要求书2页 说明书6页 附图9页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书6页 附图9页(10)申请公布号 CN 103119537 ACN 103119537 A1/2页21.一种用于在具有指令拾取单元和预拾取缓冲器的处理器上降低功耗的方法,包括:检测分支,所述分支具有与之相关联的寻址信息;将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及从所述预拾取缓冲器直接流送指令直至检测到清除条件。2.如权利要求1所述的方法。

4、,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量、和/或分支目标地址。3.如权利要求1所述的方法,其特征在于,所述清除条件包括错误预测分支。4.如权利要求1所述的方法,其特征在于,所述指令循环包括嵌套指令循环。5.如权利要求1所述的方法,其特征在于,使所述指令拾取单元掉电包括使指令高速缓存和/或指令解码高速缓存掉电。6.如权利要求5所述的方法,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。7.如权利要求1所述的方法,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码。

5、级。8.一种用于降低处理器上的功耗的装置,包括:指令拾取单元,其预测分支,所述分支具有与之相关联的寻址信息;循环流检测器单元,其将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及从所述预拾取缓冲器直接流送指令直至检测到清除条件。9.如权利要求8所述的装置,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。10.如权利要求8所述的装置,其特征在于,所述清除条件包括错误预测分支。11.如权利要求8所述的装置,其特征在于,所述指令循环包。

6、括嵌套指令循环。12.如权利要求8所述的装置,其特征在于,使所述指令拾取单元掉电包括使指令高速缓存和/或指令解码高速缓存掉电。13.如权利要求12所述的装置,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。14.如权利要求8所述的装置,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码级。15.一种计算系统,包括:显示设备;处理器,其用于存储指令;处理器,其用于处理所述指令,包括:指令拾取单元,其预测分支,所述分支具有与之相关联的寻址信息;权 利 要 求 书CN 103119537 A2/。

7、2页3循环流检测器单元,其将所述寻址信息与指令预拾取缓冲器中的条目进行比较以确定所述预拾取缓冲器中是否存在可执行指令循环;其中如果作为所述比较的结果,检测到指令循环,则使指令拾取单元和/或其组件掉电;以及从所述预拾取缓冲器直接流送指令直至检测到清除条件。16.如权利要求15所述的系统,其特征在于,所述寻址信息包括当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。17.如权利要求15所述的系统,其特征在于,所述清除条件包括错误预测分支。18.如权利要求15所述的系统,其特征在于,所述指令循环包括嵌套指令循环。19.如权利要求15所述的系统,其特征在于,使所述指令拾取单元掉电包括使指令高。

8、速缓存和/或指令解码高速缓存掉电。20.如权利要求19所述的系统,其特征在于,使所述指令拾取单元掉电包括使分支预测单元、下一指令指针和/或指令转换后备缓冲器(ITLB)掉电。21.如权利要求15所述的系统,其特征在于,流送指令包括从所述指令预拾取缓冲器读取所述指令以及将所述指令提供给处理器流水线的解码级。权 利 要 求 书CN 103119537 A1/6页4用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置0001 背景发明领域0002 本发明一般涉及计算机处理器领域。本发明尤其涉及用于检测缓冲器内的指令循环和其他指令编组以及响应性地使拾取单元掉电的装置和方法。0003 相关技术描述。

9、0004 许多现代微处理器具有便于高速操作的大指令流水线。“被拾取的”程序指令进入流水线,在流水线的中间级中进行诸如解码和执行之类的操作,并在流水线的末端被“退隐(retire)”。当流水线在每个时钟周期接收有效指令时,流水线保持充满并且性能是良好的。当在每个周期未接收到有效指令时,流水线不保持完整,并且性能会受损。例如,性能问题可源自程序代码中的分支指令。如果在程序中遇到分支指令且处理分支至目标地址,则指令流水线的一部分可能必须被冲刷(flush),从而导致性能惩罚。0005 已设计分支目标缓冲器(BTB)来减轻分支指令对流水线效率的影响。可在David A.Patterson和John L。

10、.Hennessy的Computer Architecture A Quantitative Approach(计算机架构定量办法)271-275(1990年第二版)中找到关于BTB的讨论。典型BTB应用也在图1中示出,图1例示了耦合至指令指针(IP)118和处理器流水线120的BTB110。图1中还包括高速缓存130和拾取缓冲器132。将被拾取的下一指令的位置由IP118来指定。随着程序中执行顺序地行进,IP118在每个周期递增。IP118的输出驱动高速缓存130的端口134,并指定将从其拾取下一指令的地址。高速缓存130将指令提供给拾取缓冲器132,该拾取缓冲器132进而将指令提供给处理器。

11、流水线120。0006 当由流水线120接收到指令时,它们在若干个级中行进,这若干个级被示为拾取级122、解码级124、中间级126(例如,指令执行级)、以及退隐级128。关于分支指令是否导致所选取分支的信息有时在诸如退隐级128之类的后一流水线级之前不可用。当BTB110不存在且选取了分支时,拾取缓冲器132以及指令流水线120中跟随在分支指令之后的那部分使指令与错误执行路径分隔开。处理器流水线120和拾取缓冲器132中的无效指令被冲刷,且用分支目标地址来写入IP118。部分因为在用始于分支目标地址的指令来填充拾取缓冲器132和指令流水线120的同时处理器进行等待的原因,导致性能惩罚。000。

12、7 分支目标缓冲器(BTB)减轻所选取分支的性能影响。BTB110包括记录111,各个记录具有分支地址(BA)字段112和目标地址(TA)字段114。TA字段114保持位于由相应的BA字段112指定的地址处的分支指令的分支目标地址。当处理器流水线120遇到分支指令时,对记录111的BA字段112进行搜索以得到与分支指令的地址相匹配的记录。如果找到,则IP118被改成与所找到的BA字段112相对应的TA字段114的值。结果,接下来拾取始于分支目标地址处的指令。0008 节省处理器流水线中的功率是重要的,尤其对于依靠电池功率运行的膝上型计算机和其他移动设备而言。由此,在重复指令组(例如,嵌套循环)。

13、位于拾取缓冲器内时使处说 明 书CN 103119537 A2/6页5理器流水线中的诸如指令拾取电路和指令高速缓存之类的特定部分掉电将是有益的。相应地,用于检测可使拾取电路或其部分掉电的情形的新技术将是有益的。0009 附图简述0010 可结合附图从以下详细描述中获得对本发明的更好理解,其中:0011 图1例示了采用分支目标缓冲器来执行分支目标预拾取的现有技术处理器流水线。0012 图2例示了包括用于从预拾取缓冲器流送指令并响应性地使处理器流水线的部分掉电的循环流检测器的处理器架构的一个实施例。0013 图3例示了用于检测重复指令组并响应性地使处理器流水线的部分掉电的方法的一个实施例。0014。

14、 图4例示了循环流检测器开始操作的一个实施例的流水线示图;0015 图5例示了在预拾取缓冲器的一个实施例中采用的用于使循环流检测器进行操作的字段。0016 图6例示了在预拾取缓冲器的另一实施例中采用的用于使循环流检测器进行操作的字段。0017 图7例示了包括嵌套指令序列的示例性程序代码。具体实施方式0018 在下面的描述中,出于说明目的,阐述了众多具体细节以便提供对以下描述的本发明的实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的一些也可实施本发明的诸实施例。在其他实例中,众所周知的结构和设备以框图形式示出,以避免淡化本发明的实施例的底层原理。0019 本发明的一个。

15、实施例在执行诸如嵌套循环和/或嵌套分支之类的重复指令组时降低CPU核的动态功率。例如,当在预拾取缓冲器中检测到由分支预测器预测的指令组时,本发明的一个实施例使拾取单元和相关联的指令拾取电路(或其部分)掉电以节省功率。随后从预拾取缓冲器直接流送指令,直至需要附加指令,此时将指令拾取单元上电。本发明的实施例可在单线程或多线程环境两者中操作。在一个实施例,在单线程环境中,所有预拾取缓冲器条目被分配给单个线程,而在多线程环境中,预拾取缓冲器条目在多个线程之间被均等地划分。0020 一个特定实施例包括循环流检测器(LSD),其具有用于检测重复指令组的预拾取缓冲器。循环流检测器预拾取缓冲器在多线程模式中可。

16、以是6条目深的(3个用于线程0,且3个用于线程1),而在单线程模式中可以是3条目深的。替换地,所有6个条目可被用于单线程模式中的单线程。在一个实施例中,在单线程模式中,在预拾取缓冲器中,条目的数目可被配置成3或6。0021 在一个实施例中,循环流检测器预拾取缓冲器存储分支信息,诸如关于被写入预拾取缓冲器中的每个分支目标缓冲器(BTB)预测分支的预拾取缓冲器的当前线性指令指针(CLIP)、偏移量、以及分支目标地址读取指针。当BTB预测分支时,可对照预拾取缓冲器中的条目来比较分支的CLIP和偏移量,以确定此分支是否已驻留在预拾取缓冲器中。如果存在匹配,则拾取单元或其部分(诸如指令高速缓存)被关闭,。

17、从预拾取缓冲器流送指令,直至说 明 书CN 103119537 A3/6页6遇到清除条件(例如错误预测分支)。如果预拾取缓冲器中的指令循环内存在BTB预测分支,则这些也是从预拾取缓冲器流送的。在一个实施例中,针对直接且条件分支激活但是针对插入流不激活循环流检测器,并且返回/调用指令。0022 在图2中例示了用于在预拾取缓冲器内检测到嵌套循环、分支、以及其他重复指令编组时使拾取单元(和/或其他电路)掉电的处理器架构的一个实施例。如图所示,此实施例包括用于执行本文中描述的各种功能的循环流检测器单元200。具体地,循环流检测器200包括比较电路202,其用于将由分支目标缓冲器(BTB)预测的分支与预。

18、拾取缓冲器201中的条目进行比较。如先前所提及的,在本发明的一个实施例中,如果在预拾取缓冲器中检测到匹配,则循环流检测器200响应性地使指令拾取单元210(或其部分)掉电(如图2中的ON/OFF(开/关)线所指示的)。0023 可响应于来自循环流检测器(该循环流检测器包括分支预测单元211、下一指令指针212、指令转换后备缓冲器(ITLB)、指令高速缓存214和/或预解码高速缓存215)的信号来使指令拾取单元210的各种众所周知的组件掉电,由此如果在预拾取缓冲器内检测到重复指令组,则节省相当大量的功率。随后将指令从预拾取缓冲器直接流送到指令流水线的其他级,作为示例而非限制,包括解码级220和执。

19、行级230。0024 图3例示了用于响应于在指令缓冲器内检测到指令组(诸如嵌套循环)使拾取单元(或其部分)掉电的方法的一个实施例。该方法可通过使用图2中所示的处理器架构来实现,或者在不同的处理器架构上实现。0025 在301,预测分支指令,并且确定分支指令的当前线性指令指针(CLIP)、分支偏移量和/或分支目标地址。在302,对照预拾取缓冲器中的条目来比较CLIP、分支偏移量和/或分支目标地址。在一个实施例中,比较的目的是确定嵌套循环是否被存储在预拾取缓冲器内。如果在303确定找到匹配,则在304处,使指令拾取单元(和/或其各个组件)掉电,并且在305处,从预拾取缓冲器直接流送指令。继续从预拾。

20、取缓冲器流送指令,直至在306处发生清除条件(例如,错误预测分支)。0026 图4例示了根据本发明的一个实施例的循环流检测器如何开始进行操作。具体地,在图4中,分支由指令流水线内的IF2_L级(BT清除)中的预测器来预测,而下一指令指针(IP)mux(多路复用器)级是通过气泡(bubble)而被重定向至预测分支目标地址的。在级ID1,CLIP、分支偏移量和目标读取指针(标识分支目标的指针)被记录在预拾取缓冲器内。响应于检测到CLIP、分支偏移量和/或目标读取指针的匹配,循环流检测器进行操作,并且在一个实施例中,拾取单元被禁用。这在图4的底部例示出,图4示出了比较CLIP和分支偏移量,以及循环流。

21、检测器锁闭被设置(由此使拾取单元和/或其部分掉电)。0027 图5例示了具有用于使循环流检测器进行操作的不同字段的循环流检测器预拾取缓冲器的一个实施例的结构,而图7例示了用于图5的循环流检测器示例的示例性指令序列。处于方便起见,以下还提供了示例性指令序列。LSD预拾取缓冲器内使用的字段包括预拾取缓冲器条目号501(在此特定示例中,有6个PFB条目,编号为0-5)、当前线性指令指针(CLIP)502、分支偏移量字段503、目标读取指针字段504、以及条目有效字段505。0028 如图所示,当具有当前线性指令指针(CLIP)0xl20h处的分支的循环被拾取单元展开并被写入到预拾取缓冲器中时,对照P。

22、FB条目中的每一个的有效CLIP和分支偏移量字段来比较传入CLIP和分支偏移量。响应于比较,在PFB条目3处置位有效比特,如图所示。说 明 书CN 103119537 A4/6页7另外,PFB条目3记录重定向PFB读取指针,以实现从PFB流送指令。在一个实施例中,执行以下操作:0029 (1)预测分支。0030 (2)将CLIP和偏移量与PFB中的现有条目进行比较。0031 (3)如果对照PFB的LSD结构中的条目中的一个(在所例示示例中,为条目0)存在匹配,则条目0的PFB目标读取指针字段被拷贝到LSD结构的条目3,并且在写入PFB条目时,条目有效比特被置位。在一个实施例中,PFB条目包括1。

23、6字节高速缓存数据线,并且每字节一个指示宏指令的末端的预解码比特。0032 (4)当PFB读取指针抵达条目3时,其被用来从条目3读取所有信息,包括PFB条目读取指针和有效比特。0033 (5)基于有效比特,并非是读取下一顺序的PFB条目4,而是使用目标读取指针将其重定向至条目1。0034 (6)现在从条目1、条目2、条目3顺序地读取PFB条目。0035 (7)在条目3,读取PFB有效比特,并且PFB使用目标读取指针来读取下一PFB条目。0036 (8)重复步骤6和7。0037 0038 在一个实施例中,每个PFB条目包括完整16字节高速缓存线,其包含将从PFB被流送的指令。连同高速缓存线原始数。

24、据一起,预解码比特以及指示分支指令的最后字节的BTB标志符也被存储在PFB中。预解码比特被存储在预解码高速缓存215中。在预解码高速缓存中,高速缓存线的每个字节有一个比特。此比特指示宏指令的末端。BTB标志器也是每字节一个指示分支指令的最后字节的比特。被写入PFB条目中的16字节高速缓存线中可以有多达16个指令。对于BTB预测分支指令,具有分支目标的指令的高速缓存线总是被写入PFB中的下一顺序条目中。在一个实施例中,有4:1MUX,其输出被用来读取PFB条目。MUX的输入是:(1)PFB读取指针,其通常从PFB条目流送指令,并且在已从条目流送所有指令时前进;(2)当从PFB条目流送分支指令时的。

25、分支目标PFB读取指针;(3)在像错误预测分支之类的清除条件之后的PFB读取指针,并且这总是指向第一PFB条目;以及(4)归因于LSD的操作的PFB目标读取指针。0039 在图6中示出了PFB LSD的另一实施例,其中LSD字段的条目的数目小于PFB条目的数目,以降低功率/面积。具体地,在此示例中,对于LSD字段而言,有四个条目(具有LSD条目号03),而对于PFB字段而言,有6个条目(编号为0-5)。每个PFB条目中的头指针说 明 书CN 103119537 A5/6页8值被用来指向与拾取单元中的预测器所预测的分支指令相关联的LSD条目。例如,头指针0001指向LSD条目号0;头指针0010。

26、指向LSD条目号1;头指针0100指向LSD条目号2;而头指针1000指向LSD条目号3。头指针值0000指示PFB条目不具有指向LSD条目的BTB预测分支。因而,如果(1)检测到匹配的CLIP和分支偏移量,并且(2)匹配的LSD条目具有从PFB条目中的任一个指向其的相对应的有效头指针。在一个实施例中,来自PFB条目的头指针的比特0是进行了或(OR)操作的,并且因匹配而是合格的。(3)在一个实施例中,如果对照PFB的LSD结构中的条目中的一个存在匹配,则匹配的条目的PFB目标读取指针字段被拷贝至PFB中具有BTB预测的相对应的高速缓存线正被写入到其中的条目。另外,对于当前正被写入的具有BTB预。

27、测分支指令的PFB条目,LSD有效比特被置位。(4)当PFB读取指针抵达LSD有效比特已被置位的条目时,其被用来从条目读取所有信息,包括PFB条目读取指针和LSD有效比特。(5)基于LSD有效比特,并非是读取下一顺序的PFB条目,而是使用目标读取指针将其重定向至条目。(6)随后顺序地读取PFB条目,直至读取具有PFB有效比特的条目,并且PFB使用目标读取指针来读取下一PFB条目。(7)随后重复以上操作5和6。0040 在本发明的一个实施例中,其中实现本发明的实施例的处理器包括低功率处理器,诸如由IntelTM公司设计的AtomTM处理器。然而,本发明的底层原理不限于任何具体的处理器架构。例如,。

28、可在包括由Intel设计的核i3、i5、和/或i7处理器的各种不同处理器架构上或者在智能电话和/或其他便携式计算设备中所使用的各个低功率片上系统(SoC)架构上实现本发明的底层原理。0041 图8例示了其上可实现本发明的实施例的示例性计算机系统800。计算机系统800包括用于传送信息的系统总线820,以及耦合至总线820的用于处理信息的处理器810。计算机系统800还包括耦合至总线820的随机存取存储器(RAM)或其它动态存储装置825(在本文中被称为主存储器),用于存储要由处理器810执行的信息和指令。主存储器825还可用于存储处理器810执行指令期间的临时变量或其它中间信息。计算机系统80。

29、0还可包括耦合至总线820的只读存储器(ROM)和/或其它静态存储装置826,用于存储由处理器810使用的静态信息和指令。0042 诸如磁盘或光盘等数据存储装置827及其相应的驱动器也可耦合至计算机系统800以存储信息和指令。计算机系统800还可经由I/O接口830耦合至第二I/O总线850。多个I/O设备可耦合至I/O总线850,包括显示设备843、输入设备(例如,字母数字输入设备842和/或光标控制装置841)。0043 通信设备240用于经由网络访问其他计算机(服务器或客户机),以及上传/下载各种类型的数据。通信装置240可包括调制解调器、网络接口卡或其它公知的接口设备,诸如用于耦合至以。

30、太网、令牌环或其它类型网络的设备。0044 图9是示出可用在本发明的一些实施例中的另一示例性数据处理系统的框图。例如,数据处理器系统900可以是手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器、平板计算机、或可包括移动电话、媒体播放器和/或游戏系统的手持式计算设备。作为另一示例,数据处理系统900可以是网络计算机或另一设备内的嵌入式处理设备。0045 根据本发明的一个实施例,数据处理系统900的示例性架构可用于以上所描述的说 明 书CN 103119537 A6/6页9移动设备。数据处理系统900包括处理系统920,该处理系统920可包括一个或多个微处理器和/或。

31、集成电路上的系统。处理系统920与处理器910、电源925(其包括一个或多个电池)、音频输入/输出940、显示控制器和显示设备960、任选输入/输出950、输入设备970、和无线收发机930耦合。应当理解,在本发明的某些实施例中,未在图9中示出的附加组件也可以是数据处理系统900的一部分,而在本发明的某些实施例中,可使用比图9中所示的更少的组件。另外,应当理解,未在图9中所示的一条或多条总线可用于互连各个组件,如本领域中众所周知的。0046 存储器910可存储供数据处理系统900来执行的数据和/或程序。音频输入/输出940可包括麦克风和/或扬声器,以便例如通过扬声器和麦克风播放和/或提供电话功。

32、能。显示控制器和显示设备960可包括图形用户界面(GUI)。无线(例如,RF)收发机930(例如,WiFi收发机、红外收发机、蓝牙收发机、无线蜂窝电话收发机等)可用于与其他数据处理系统通信。一个或多个输入设备970允许用户向系统提供输入。这些输入设备可以是键区、键盘、触摸面板、多触摸面板等。任选其他输入/输出950可以是坞站的连接器。0047 本发明的其他实施例可在蜂窝电话和寻呼机(例如,其中软件被嵌入到微芯片中)、手持式计算设备(例如,个人数字助理、智能电话)和/或按键式电话上实现。然而,应当理解,本发明的底层原理不限于任何特定类型的通信设备或通信介质。0048 本发明的实施例可以包括以上描。

33、述的各个步骤。这些步骤可在用于导致通用或专用处理器执行步骤的机器可执行指令中实现。另选地,这些步骤可由包含用于执行这些步骤的硬连线逻辑的专用硬件组件来执行,或由编程的计算机组件和自定义的硬件组件的任何组合来执行。0049 本发明的各元素也可以作为计算机程序产品来提供,该计算机程序产品可包括其上存储有指令的计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行过程。该机器可读介质可以包括,但不限于,软盘、光盘、CD-ROM、以及磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适于存储电子指令的其它类型的介质/机器可读介质。例如,本发明可以作为计算机程序产品来下载,其中该程序可用具体化在载波或其它传播介质中的数据信号的方式经由通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户机)。0050 贯穿此详细描述,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节也可实践本发明。在某些实例中,并不详细描述众所周知的结构和功能以免淡化本发明的主题。因此,本发明的范围和精神应根据所附权利要求书来判断。说 明 书CN 103119537 A1/9页10图1现有技术说 明 书 附 图CN 103119537 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1