同步多线程处理器电路以及计算机程序产品及运行方法.pdf

上传人:54 文档编号:636009 上传时间:2018-02-28 格式:PDF 页数:31 大小:1.61MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410043062.7

申请日:

2004.02.20

公开号:

CN1534463A

公开日:

2004.10.06

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F9/38

主分类号:

G06F9/38

申请人:

三星电子株式会社;

发明人:

朴基豪

地址:

韩国京畿道

优先权:

2003.02.20 KR 10759/2003; 2003.07.31 US 10/631,601

专利代理机构:

北京市柳沈律师事务所

代理人:

吕晓章;马莹

PDF下载: PDF下载
内容摘要

与SMT处理器中线程运行相关的处理电路,可用于基于所述SMT处理器当前所运行的线程的数量,而以不同的性能指标运行。例如,根据本发明的一些实施例,与SMT处理器中线程的运行相关的处理电路,例如浮点单元或数据高速缓存,可以基于所述SMT处理器当前所运行线程的数量,以高功率模式或低功率模式运行。此外,随着SMT处理器所运行线程数量的增加,能够降低处理电路的性能指标,从而在允许减少与线程相关的处理电路所消耗功率的总量时,提供该SMT处理器体系结构的优点。相关的计算机程序产品和方法也被公开。

权利要求书

1: 一种同步多线程(SMT)处理器,包括至少一个与SMT处理器中线程 运行相关的处理电路,且该处理电路用于基于所述SMT处理器当前所运行的 大量线程,以不同的性能指标运行。
2: 根据权利要求1所述的SMT处理器,其中当所述SMT处理电路当前 所运行线程的数量少于或等于阈值时,至少一个处理电路用于以第一性能指 标运行;并且 其中当所述SMT处理电路当前所运行线程的数量大于所述阈值时,其中 至少一个处理电路用于以第二性能指标运行。
3: 根据权利要求1所述的SMT处理器,进一步包括: 性能指标控制电路,用于基于所述SMT处理器当前所运行线程的数量, 为至少一个处理电路提供性能指标。
4: 根据权利要求3所述的SMT处理器,其中当所述SMT处理器当前所 运行线程的数量小于或等于阈值时,所述性能指标控制电路将提供给至少一 个处理电路的性能指标提高到第一性能指标;并且 其中当所述SMT处理器当前所运行线程的数量超过所述阈值时,所述性 能指标控制电路将提供给至少一个处理电路的性能指标降低到第二性能指 标,所述第二性能指标小于所述第一性能指标。
5: 根据权利要求4所述的SMT处理器,其中所述阈值包含第一阈值, 其中当所述SMT处理器当前所运行线程的数量超过大于所述第一阈值的第 二阈值时,该性能指标控制电路进一步将提供给至少一个处理电路的性能指 标降低到第三性能指标,所述第三性能指标小于所述第二性能指标。
6: 根据权利要求1所述的SMT处理器,其中至少一个处理电路包含高 速缓冲存储器电路,该高速缓冲存储器电路包括标记存储器和数据存储器, 并用于当所述高速缓冲存储器以第一性能指标运行时,与标记存储器的存取 同步,提供高速缓存的数据;并且 其中所述数据存储器用于当所述高速缓冲存储器电路以小于所述第一性 能指标的第二性能指标运行时,提供响应于标记存储器中的命中的高速缓存 的数据。
7: 根据权利要求6所述的SMT处理器,其中所述高速缓冲存储器包含 用于存储通过指令运行的数据的数据高速缓冲存储器和用于存储运行相关数 据的指令的指令高速缓冲存储器中的至少一个。
8: 根据权利要求6所述的SMT处理器,其中所述数据存储器进一步用 于当以第二性能指标运行时不提供响应于所述标记存储器中的漏失的高速缓 存的数据。
9: 根据权利要求1所述的SMT处理器,其中至少一个处理电路包括浮 点单元。
10: 根据权利要求9所述的SMT处理器,其中所述浮点单元包括第一浮 点单元,所述第一浮点单元用于当所述SMT处理器所运行线程的数量小于或 等于阈值时以第一性能指标运行,所述SMT处理器进一步包括: 第二浮点单元,用于当所述SMT处理器所运行线程的数量大于所述阈值 时,以第二性能指标运行,其中所述第二性能指标小于所述第一性能指标。
11: 根据权利要求1所述的SMT处理器,其中至少一个处理电路包括整 数寄存器。
12: 根据权利要求2所述的SMT处理器,其中所述性能指标控制电路用 于分别响应所述SMT处理器中线程的创建和完成,增加或减少所述SMT处 理器当前所运行线程的数量。
13: 根据权利要求1所述的SMT处理器,其中至少一个处理电路包含第 一处理电路,该第一处理电路用于响应于所述SMT处理器中当前所运行的线 程的数量被减少到小于或等于阈值,以第一性能指标运行,所述SMT处理器 进一步包括: 第二处理电路,用于响应于所述SMT处理器中当前所运行的线程的数量 被增加到超过所述阈值,以低于第一性能指标的第二性能指标运行。
14: 根据权利要求1所述的SMT处理器,其中所述性能指标控制电路用 于响应新线程的创建,而降低提供给至少一个处理电路的性能指标,从而使 所述SMT处理器当前所运行线程的数量从小于或等于阈值增加到大于该阈 值。
15: 根据权利要求2所述的SMT处理器,其中所述性能指标控制电路用 于随着SMT处理器当前所运行线程的数量超过多个上升阈值中的每一个时, 将至少一个处理电路的性能指标降低到多个下降性能指标中的一个。
16: 根据权利要求2所述的SMT处理器,其中所述性能指标控制电路用 于为第一处理电路保持第一性能指标,并响应于所述SMT处理器当前所运行 线程的数量从小于或等于阈值增加到大于该阈值,将小于第一性能指标的第 二性能指标提供给第二处理电路。
17: 一种同步多线程(SMT)处理器电路,包括: 性能指标控制电路,用于基于所述SMT处理器当前所运行的大量线程, 将性能指标提供给所述SMT处理器中的处理电路。
18: 根据权利要求17所述的SMT处理器,其中所述性能指标控制电路 进一步用于响应于新线程的创建,而增加所述SMT处理器当前所运行线程的 数量,从而提供新的运行线程的数量,并且用于基于所述SMT处理器所运行 线程的新数量,将性能指标提供给所述处理电路。
19: 根据权利要求17所述的SMT处理器,其中当所述SMT处理器当前 所运行线程的数量小于或等于阈值时,所述性能指标控制电路用于将提供给 处理电路的性能指标提高到第一性能指标;并且 当所述SMT处理器当前所运行线程的数量超过所述阈值时,所述性能指 标控制电路将提供给处理电路的性能指标降低到小于第一性能指标的第二性 能指标。
20: 根据权利要求19所述的SMT处理器,其中所述性能指标控制电路 进一步用于为第一处理电路保持第一性能指标,并响应于所述SMT处理器当 前所运行线程的数量从小于或等于阈值增加到大于该阈值,将小于第一性能 指标的第二性能指标提供给第二处理电路。
21: 根据权利要求17所述的SMT处理器,其中所述处理电路包括浮点 单元和数据高速缓冲存储器中的至少一个。
22: 根据权利要求17所述的SMT处理器,其中当所述SMT处理电路当 前所运行线程的数量少于或等于阈值时,所述处理电路用于以第一性能指标 运行;并且 当所述SMT处理电路当前所运行线程的数量大于所述阈值时,所述处理 电路用于以第二性能指标运行。
23: 一种同步多线程(SMT)处理器电路,包括: 线程管理电路,用于随着线程的创建,将与SMT处理器相关的处理电路 分配给SMT处理器中所运行的线程;和 性能指标控制电路,用于基于所述SMT处理器当前所运行的、与至少一 个阈值进行比较的线程数量,将多个性能指标中的一个提供给所述处理电路。
24: 根据权利要求23所述的SMT处理器,其中至少一个阈值包含所述 SMT处理器所运行线程的阈值数量。
25: 根据权利要求23所述的SMT处理器,其中当所述SMT处理器当前 所运行线程的数量小于或等于至少一个阈值时,所述性能指标控制电路用于 将提供给所述处理电路的性能指标提高到第一性能指标;并且 其中当所述SMT处理器当前所运行线程的数量超过至少一个阈值时,所 述性能指标控制电路用于将提供给所述处理电路的性能指标降低到小于第一 性能指标的第二性能指标。
26: 根据权利要求23所述的SMT处理器,其中所述性能指标控制电路 用于响应于新线程的创建,而降低提供给处理电路的性能指标,从而将SMT 处理器当前所运行线程的数量从小于或等于阈值增加到大于至少一个阈值。
27: 根据权利要求22所述的SMT处理器,其中所述性能指标控制电路 用于当所述SMT处理器当前所运行线程的数量超过多个上升阈值中的每一 个阈值时,将提供给处理电路的一个性能指标降低到多个下降性能指标中的 一个。
28: 根据权利要求23所述的SMT处理器,其中所述性能指标控制电路 用于为第一处理电路保持第一性能指标,并响应于所述SMT处理器当前所运 行线程的数量从小于或等于至少一个阈值增加到大于至少一个阈值,为第二 处理电路提供小于第一性能指标的第二性能指标。
29: 一种与同步多线程(SMT)处理器相关的高速缓冲存储器,所述高速 缓冲存储器包括标记存储器和数据存储器,两个存储器或者被同步存取,或 者所述数据存储器根据SMT处理器当前所运行线程的数量在该标记存储器 之后进行存取。
30: 根据权利要求29所述的高速缓冲存储器,其中所述标记存储器和所 述数据存储器响应于所述SMT处理器当前所运行线程的数量小于或等于阈 值而被同步存取。
31: 根据权利要求29所述的高速缓冲存储器,其中所述数据存储器响应 所述标记存储器中因SMT处理器当前所运行线程的数量大于阈值所导致的 命中而被存取。
32: 一种运行同步多线程(SMT)处理器的方法,包括: 基于所述SMT处理器当前所运行线程的数量,将性能指标提供给至少一 个处理电路。
33: 根据权利要求32所述的方法,其中提供步骤优先于: 将所述SMT处理器当前所运行线程的数量与阈值进行比较,从而给至少 一个处理电路提供性能指标。
34: 根据权利要求32所述的方法,其中比较步骤优先于: 响应于所述SMT处理器中开始的新线程,递增所述SMT处理器当前所 运行线程的数量;以及 响应于所述SMT处理器中结束的线程,递减所述SMT处理器当前所运 行线程的数量。
35: 根据权利要求34所述的方法,其中提供步骤包括: 如果所述SMT处理器当前所运行线程的数量小于或等于所述阈值,则将 第一性能指标提供给至少一个处理电路;以及 如果所述SMT处理器当前所运行线程的数量超过所述阈值,则将小于第 一性能指标的第二性能指标提供给至少一个处理电路。
36: 根据权利要求35所述的方法,进一步包括: 将进一步降低的性能指标提供给与新线程相关的处理电路,所述处理电 路将所述SMT处理器当前所运行线程的数量增加到超过上升的附加阈值。
37: 一种同步多线程(SMT)处理器,包括: 用于基于所述SMT处理器当前所运行线程的数量将性能指标提供给至 少一个处理电路的装置。
38: 根据权利要求37所述的SMT处理器,进一步包括: 用于将所述SMT处理器当前所运行线程的数量与一个阈值进行比较从 而将所述性能指标提供给至少一个处理电路的装置。
39: 根据权利要求37所述的SMT处理器,进一步包括: 用于响应于所述SMT处理器中开始的新线程而递增所述SMT处理器当 前所运行线程数量的装置;以及 用于响应于所述SMT处理器中结束的线程而递减SMT处理器当前所运 行线程数量的装置。
40: 根据权利要求39所述的SMT处理器,其中提供装置包括: 用于如果所述SMT处理器当前所运行线程的数量小于或等于阈值则将 第一性能指标提供给至少一个处理电路的装置;以及 用于如果所述SMT处理器当前所运行线程的数量超过阈值时则将小于 第一性能指标的第二性能指标提供给至少一个处理电路的装置。
41: 根据权利要求40所述的SMT,进一步包括: 用于将进一步降低的性能指标提供给与新线程相关的处理电路,所述处 理电路将所述SMT处理器当前所运行的线程数量增加到超过上升的附加阈 值。
42: 一种用于运行同步多线程(SMT)处理器的计算机程序产品,包括: 其中具有计算机可读程序代码的计算机可读介质,该计算机可读程序产 品包括: 计算机可读程序代码,用于基于所述SMT处理器当前所运行线程的数量 将性能指标提供给SMT处理器中的至少一个处理电路。
43: 根据权利要求42所述的计算机程序产品,进一步包括: 用于将所述SMT处理器当前所运行线程的数量与阈值进行比较从而将 性能指标提供给至少一个处理电路的计算机可读程序代码。
44: 根据权利要求42所述计算机程序产品,进一步包括: 用于响应于所述SMT处理器中开始的新线程而递增所述SMT处理器当 前所运行线程数量的计算机可读程序代码;以及 用于响应于所述SMT处理器中结束的线程而递减所述SMT处理器当前 所运行线程数量的计算机可读程序代码。
45: 根据权利要求42所述的计算机程序产品,其中所述计算机可读程序 代码用于提供包括: 用于如果所述SMT处理器当前所运行线程的数量小于或等于阈值则将 第一性能指标提供给至少一个处理电路的计算机可读程序代码,;以及 用于如果所述SMT处理器当前所运行线程的数量超过阈值则将小于第 一性能指标的第二性能指标提供给至少一个处理电路的计算机可读程序代 码。
46: 根据权利要求43所述计算机程序产品,进一步包括: 用于将进一步降低的性能指标提供给与新线程相关的处理电路的计算机 可读程序代码,所述处理电路将所述SMT处理器当前所运行的线程数量增加 到超过上升的附加阈值。

说明书


同步多线程处理器电路以及计算机程序产品及运行方法

    本申请要求于2003年2月20日提交的韩国专利申请号2003-107595的优先权,在此全文引用作为参考。

    【技术领域】

    本发明通常涉及计算机处理器体系结构,特别涉及同步多线程计算机处理器、相关的计算机程序产品及其运行方法。

    背景技术

    同步多线程(SMT)是一种利用硬件多线程来允许多个独立的线程在每一周期过程中发出指令的处理器体系结构。与其它硬件多线程体系结构在任何给定周期中仅激活一个单独的硬件内容(即线程)不同,SMT体系结构能够允许所有的线程内容同步地去竞争并共享处理器资源。

    SMT处理器能利用其他没有用的周期来执行指令,这样可以降低在SMT处理器中长时间等待操作的影响。此外,随着线程数量的增加,性能也可能提高,这也可能增加SMT处理器所消耗的能量。

    在图1中举例说明了传统SMT处理器的方框图。图1中传统SMT处理器的运行在Dean M.Tullsen;Susan J.Egger;Henry M.Levy;Jack L.Lo;RebeccaL.Stamm等1996年在The 23rd Annual International Symposium on ComputerArchitecture,pp.191-202上的题为Exploiting Choice:Instruction Fetch and Issueon an Implementable Simultaneous Multithreading Processor中进行了论述,在此引用其公开内容以供参考。传统SMT处理器的体系结构和运行在技术上众所周知,在这里将不对它们作进一步详细地描述。

    【发明内容】

    根据本发明的实施例可以提供处理电路、计算机程序产品、和/或以基于同步多线程(SMT)处理器所运行的大量线程以不同的性能指标来运行的方法。例如,在根据本发明的多个实施例中,与SMT处理器中线程的运行相关的处理电路,例如浮点单元或数据高速缓存,可以基于所述SMT处理器当前所运行线程的数量,以一种高功率模式或一种低功率模式之一运行。此外,随着SMT处理器所运行线程数量的增加,能够降低处理电路的性能指标,从而在允许减少与线程相关的处理电路所消耗功率的总量时,提供该SMT处理器体系结构的优点。换言之,该SMT处理器能够以相同的功率但更高的性能运行,或者可以消耗较多功率但以高于传统SMT处理器的性能指标运行。

    在根据本发明的多个实施例中,该处理电路可以用于当所述SMT处理器当前所运行线程的数量小于或等于阈值时,以第一性能指标运行,当所述SMT处理器当前所运行线程的数量大于该阈值时,以第二性能指标运行。

    在根据本发明的多个实施例中,性能指标控制电路可以用于基于所述SMT处理器当前所运行线程的数量为处理电路提供一个性能指标。根据本发明的多个实施例,当所述SMT处理器当前所运行线程的数量小于或等于阈值时,该性能指标控制电路能将提供给处理电路的性能指标提高为第一性能指标。当所述SMT处理器当前所运行线程的数量超过该阈值时,该性能指标控制电路能将提供给至少一个处理电路的性能指标降低至小于第一性能指标的第二性能指标。

    在根据本发明的多个实施例中,当所述SMT处理器当前所运行线程的数量超过大于第一阈值的第二阈值时,该性能指标控制电路进一步将处理电路的性能指标降低至小于第二性能指标的第三性能指标。

    根据本发明可提供的性能指标变量的多个实施例。例如,根据本发明的一些实施例,该处理电路可以是包括标记存储器和数据存储器的高速缓冲存储器电路,用于当高速缓冲存储器以第一性能指标运行时,将提供与该标记存储器的存取同步的高速缓存数据。该数据存储器可以用于当高速缓冲存储器电路以小于第一性能指标的第二性能指标运行时,提供响应于标记存储器中命中的高速缓存数据。

    在根据本发明的多个实施例中,该高速缓冲存储器可以是用于存储通过指令运行的数据的数据高速缓冲存储器和用于存储通过相关数据运行的指令的指令高速缓冲存储器中的至少一种。根据本发明的多个实施例,该数据高速缓冲存储器可进一步用于当以第二性能指标运行时不提供响应于标记存储器中漏失的高速缓存数据。

    在根据本发明的多个实施例中,该处理电路可以是浮点单元。根据本发明的多个实施例,该浮点单元可以是用于在SMT处理器所运行线程的数量小于或等于阈值时以第一性能指标运行的第一浮点单元,并且该SMT处理器可以进一步包括当所述SMT处理器所运行线程的数量大于该阈值时以小于第一性能指标的第二性能指标运行的第二浮点单元。

    在根据本发明的多个实施例在,该性能指标控制电路可用于响应于在SMT处理器中分别被创建和完成的线程,增加或减少SMT处理器当前所运行线程的数量。

    根据本发明的多个实施例,第二处理电路可用于响应于在SMT处理器中当前所运行的线程数量增加到大于该阈值,从而以小于第一性能指标的第二性能指标运行。

    根据本发明的多个实施例,该性能指标控制电路可以用于响应于新线程的创建而降低提供给至少一个处理电路的性能指标,从而将SMT处理器当前所运行线程的数量从小于或等于阈值增加到大于该阈值。根据本发明的多个实施例,该性能指标控制电路可用于随着SMT处理器当前所运行线程的数量超过上升的阈值中的每一个时,将处理电路的性能指标降低至多个下降的性能指标中的一个。

    根据本发明的多个实施例,该性能指标控制电路可用于为第一处理电路保持第一性能指标,并响应于SMT当前所运行线程的数量从小于或等于阈值增加至大于该阈值,为第二处理电路提供小于第一性能指标的第二性能指标。

    根据本发明的其他实施例,性能指标控制电路可用于基于所述SMT处理器当前所运行的大量线程,向SMT处理器中的处理电路提供性能指标。

    仍然根据本发明的其它实施例,线程管理电路可用于在创建线程后,将与SMT处理器相关的处理电路分配给SMT处理器中运行的线程。性能指标控制电路可用于基于所述SMT处理器当前所执行的,与至少一个阈值进行了比较的大量线程,向处理电路提供大量性能指标中的一个。

    仍然根据本发明的其它实施例,与SMT处理器相关的高速缓冲存储器可以包括标记存储器和数据存储器,基于所述SMT处理器当前所运行的大量线程,可以同步或在存取该标记存储器之后对该数据存储器进行存取。

    【附图说明】

    图1是举例说明传统同步多线程(SMT)处理器电路体系结构的方框图。

    图2是举例说明根据本发明的SMT处理器实施例的方框图。

    图3是举例说明根据本发明的线程管理电路实施例的方框图。

    图4是举例说明根据本发明的性能指标控制电路实施例的方框图。

    图5是举例说明根据本发明性能指标控制电路实施例的流程图。

    图6是举例说明根据本发明的高速缓冲存储器实施例的方框图。

    图7是举例说明根据本发明的SMT处理器实施例的方框图。

    图8是举例说明根据本发明的SMT处理器实施例的方框图。

    图9是举例说明根据本发明的SMT处理器实施例的方框图。

    图10是举例说明根据本发明的性能指标控制电路实施例的方框图。

    图11是举例说明根据本发明的性能指标控制电路实施例的流程图。

    【具体实施方式】

    以下将参照附图对本发明进行更加充分地描述,在附图中示出了本发明的说明性实施例。然而,本发明可以以许多不同的形式实现,而并不应该认为局限于所述实施例;更确切地说,提供这些实施例是为了使公开的内容更透彻和全面,并且将会充分地向本领域技术人员传达本发明的范围。全文中,相同的数字表示相同的元件。

    应当了解,尽管在这里用术语“第一”和“第二”来描述多个元件,但是这些元件不应被这些术语所限制。这些术语只是用来区别一个元件和其他元件。因而,在不脱离所公开内容的范围内,以下所论述的第一元件可以被称为第二元件,同样,第二元件也可以被称为第一元件。

    作为本领域技术人员之一,将能够理解本发明可以具体表现为电路、计算机程序产品,和/或计算机程序产品。因此,本发明可以采取纯硬件的实施例,纯软件的实施例或结合软件和硬件特征的实施例的形式。此外,本发明可以采用在具有计算机可用程序代码的计算机可用存储介质上的计算机程序产品的形式。任何适用的计算机可读介质都可以被利用,包括硬盘,CD-ROM,光存储装置,或磁存储装置。

    计算机程序代码或用来根据本发明,实现运行的“代码”可以用一种面向对象编程语言来编写,例如JAVA,Smalltalk或C++,JavaScript,VisualBasic,TSQL,Perl,或其它编程语言。本发明的软件实施例不依赖于一个特殊编程语言的实现。部分代码可以全部在一个中间服务器所利用的一个或更多的系统上执行。

    代码可以全部在一个或更多的计算机系统上执行,或者可以一部分在服务器上执行,且一部分在客户机装置内的客户机,或者在通信网络中中间站的代理服务器上执行。在后面的方案中,客户机装置可以通过局域网或广域网(例如内部网)与服务器相连接,或者通过互联网(例如,经由互联网服务供应商)来进行连接。本发明可以通过使用经由各种类型计算机网络的各种协议来体现。

    以下将根据本发明的实施例,结合方框图和对方法、系统和计算机程序产品进行说明的流程图,来对本发明进行描述。应当了解,方框图和流程图中的每一个模块,以及方框图和流程图中模块的组合都可以通过计算机程序指令执行。这些计算机程序指令可以提供给同步多线程(SMT)处理器电路、专用计算机、或其他可编程数据处理装置,以生成一种机器,以使通过计算机处理器或其他可编程数据处理装置执行的所述指令,生成用于执行方框图和/或流程图的块中指定功能的装置。

    这些计算机程序指令可以存储在计算机可读存储器中,以指示计算机或其他可编程数据处理装置以特定方式运行,以使存储在计算机可读存储器中的指令,生成包含执行在方框图和/或流程图或模块中所指定功能的指令装置的一件产品。

    该计算机程序指令可以载入SMT处理器电路或其他可编程数据处理装置,以在计算器或其他可编程装置中执行一系列的运行步骤,从而生成计算机实现的处理,以使在计算机或其他可编程装置上执行的指令,提供用来实现在方框图和/或流程图或模块中所指定功能的步骤。

    根据本发明的实施例,可以提供与SMT处理器中线程的运行相关的处理电路,其中该处理电路用于基于所述SMT处理器当前所运行的大量线程,以不同的性能指标来运行。应当了解,不同的性能指标可以包括不同的电路运行速度和/或不同的精度指标。根据本发明的多个实施例,根据本发明的处理电路可以在不同的时钟速度运行和/或用不同的电路类型(例如不同类型的CMOS装置),来提供不同的性能指标。例如,根据本发明的多个实施例,与SMT处理器中线程的运行相关的处理电路,例如浮点单元或数据高速缓存,可以基于所述SMT处理器当前所运行线程的数量,以一种高时钟速度下的高功率模式或一种低时钟速度下的低功率模式运行。此外,随着SMT处理器所运行线程数量的增加,能够降低处理电路的性能指标,从而在允许减少与线程相关的处理电路所消耗功率的总量时,提供该SMT处理器体系结构的优点。

    应当了解,根据本发明实施例,可以示出能够使用多个固有地相互平行运行的线程的线程级并行技术。如在此所使用的,“线程”可以是具有相关指令和数据的单独的处理过程线程可以表示为是具有多个处理过程的并行计算机程序的一部分的处理过程。线程还可以表示为独立于其他程序运行的单独的计算机程序。每一个线程可以有相关状态,例如,由分别适于相关的指令,数据,程序计数器,和/或寄存器的状态所定义。对于线程的相关状态,能包括对于由处理器执行的线程而言足够的信息。

    根据本发明的多个实施例,性能指标控制电路用于向分配给SMT处理器中所创建线程的处理电路提供各自的性能指标。例如,该性能指标控制电路能够提供第一性能指标,以使处理电路能以高功率模式运行,此外,可以向以低功率模式运行的处理电路提供第二性能指标。仍然根据本发明其他的实施例,该性能指标控制电路提供中间性能指标(就是在高功率与低功率之间的其他性能指标)。

    根据本发明的多个实施例,以不同的性能指标运行的处理电路可以是包括标记存储器和数据存储器的高速缓冲存储器。当高速缓冲存储器以第一性能指标运行时(即以高功率模式),能够同步存取该标记存储器和数据存储器,而不考虑对标记存储器的存取是否会产生命中。当标记存储器中的命中率较高时,对数据存储器所进行的同步存取能够提供较高的性能。换言之,该高速缓冲存储器还能够以第二性能指标运行(即如低功率模式),其中该数据存储器仅响应标记存储器中的一个命中而进行存取。因此,如果出现一个标记漏失,则能够避免与数据存储器的存取相关的某些功率消耗。此外,如果出现一个标记命中,则可以及时偏移对标记存储器和数据存储器的存取。

    仍然在其他实施例中,与SMT处理器的线程运行相关的处理电路,可以是指令高速缓存或其他类型的处理电路,就像浮点电路或整数载入/存储电路。此外,这些处理电路中的每一个都能以不同的性能指标运行。例如,根据本发明的多个实施例,高速缓冲存储器,指令高速缓存,和浮点电路以及整数载入/存储电路能够以不同的性能指标同步运行。

    仍然进一步根据本发明的实施例,同类的处理电路(例如浮点电路和整数载入/存储电路)能够划分成不同的性能类别,以使其中一些电路设置为以第一性能指标运行,然而其他操作电路设置为以第二性能指标运行。例如,根据本发明的多个实施例,其中用于分配给SMT处理器中的线程的一些浮点电路,可用于以一种高功率模式运行,然而其它可用于分配给SMT处理器中的线程的浮点电路,可用于以一种低功率模式运行。

    图2是举例说明根据本发明的SMT处理器实施例的方框图。根据图2,当在SMT处理器200中创建新线程时,线程管理电路205将一组处理电路分配给新创建的线程使用。所分配的处理电路可以包括程序计数器215、一组浮点寄存器245、和一组整数寄存器250。其他处理电路也可以分配给新创建的线程。应当了解,当线程完成时,可以释放分配为该线程使用的处理电路,以使这些处理电路可以重新分配给随后创建的线程。

    运行时,取指令电路210基于由所分配的程序计数器215提供的定位,从指令高速缓存220中取出指令,并将该指令提供给译码器225。译码器225将已译码的指令输出到寄存器重命名电路230。根据寄存器重命名电路230所提供指令的类型,寄存器重命名电路230将重命名的指令提供给浮点指令队列235或整数指令队列240。例如,如果寄存器重命名电路230提供的指令类型是浮点指令,则该指令将载入至浮点指令队列235,然而如果该寄存器重命名电路230所提供的指令是整数指令,则该指令将载入至整数指令队列240。

    将来自从浮点指令队列235或整数指令队列240的指令载入至一相关寄存器,该寄存器用于通过浮点电路255或整数载入/存储电路260运行。特别是,浮点指令从浮点指令队列235传递到一组浮点寄存器245。浮点寄存器245中的指令可以通过浮点电路255存取。例如当浮点电路255所执行的(来自浮点寄存器245的)指令涉及存储在数据高速缓存265中的数据时,浮点电路255还可以存取存储在数据高速缓存265中的浮点数据。

    整数指令将从整数指令队列240传递到整数寄存器250。整数载入/存储电路260可以存取存储在整数寄存器250中的整数指令,以便执行所述指令。例如,当存储在整数寄存器250中的整数指令涉及存储在数据高速缓存265中的整数数据时,整数载入/存储电路260还可以对数据高速缓存265进行存取。

    根据本发明的实施例,线程管理电路205向数据高速缓存265提供性能指标。特别是,该性能指标可以控制数据高速缓存265以第一性能指标或第二性能指标运行(即以高功率模式或低功率模式)。例如,线程管理电路205能够提供第一性能指标,其中数据高速缓存265以高功率模式运行,或者该线程管理电路可以提供第二性能指标,其中数据高速缓存265以低功率模式运行。应当了解,尽管已描述了以第一性能指标或者以第二性能指标运行的数据高速缓存265,但是根据本发明的实施例,可以使用更多的性能指标。

    图3是举例说明根据本发明的线程管理电路实施例的方框图。根据图3,线程管理电路305接收来自操作系统的信息,或换言之,来自与SMT处理器中线程的创建有关的线程产生电路。线程管理电路305包括线程分配电路330,根据本发明,该线程分配电路能够为SMT处理器所创建的线程分配处理电路。

    线程管理电路305还包括性能指标控制电路340,该性能指标控制电路将性能指标提供给与SMT处理器所创建线程相关的处理电路。性能指标控制电路340能够基于所述SMT处理器当前所运行线程的数量,将性能指标提供给处理电路。特别是,随着SMT处理器所运行线程数量的增加,该性能指标控制电路可以将已降低的性能指标提供给与SMT所执行线程相关的处理电路。性能指标控制电路340能够响应于SMT处理器所运行线程的创建和完成,通过递增和递减一个内部计数,来确定SMT处理器当前所运行线程的数量。

    应当了解,根据本发明提供给处理电路的性能指标可以拥有一个默认值,例如第一性能指标(或高功率模式)。因此,随着线程增加,可以降低提供给处理电路的性能指标,从而降低性能,并且因此降低该处理电路的功率耗损。应当了解,可以经由信号线向处理电路提供性能指标,该信号线能传导具有至少两种状态的一个信号,所述两种状态即:第一性能指标和第二性能指标。例如,SMT处理器初始化后,该SMT处理器所运行线程的数量可以为零,其中提供给处理电路的性能指标的默认值是默认的第一性能指标(高功率模式)。随着线程增加并最终超过了一个阈值,该性能指标可以被改变为第二性能指标,例如,改变指示所用性能指标的信号的状态。

    图4是举例说明根据本发明的性能指标控制电路实施例的方框图。根据图4,计数器电路405可以接收来自根据图3中所论述的操作系统或线程产生电路的信息,来确定SMT处理器当前所运行线程的数量。例如,如果在接收到关于一个新线程创建的信息时,计数器电路405示出了由SMT处理器启动的四个线程,则计数器电路405可以递增,从而反映SMT处理器当前运行了5个线程。

    计数器电路405可以将SMT处理器当前所运行线程的数量,提供给比较器电路410。与SMT处理器当前所运行线程的数量一起,还提供给比较器电路410阈值。该阈值可以示出了线程数量超过性能指标的改变的可编程值。因此,当所述SMT处理器当前所运行线程的数量小于或等于该阈值时,提供给处理电路的性能模式可以保持在第一性能指标,例如高功率模式。然而,当所述SMT处理器当前所运行线程的数量超过了该阈值时,可以降低该性能指标以减少SMT处理器的功率耗损。

    图5是举例说明根据本发明的性能指标控制电路实施例的流程图。根据图5,初始化SMT处理器时,该SMT处理器当前所运行线程的数量为零(模块500),随着在SMT处理器中线程的创建和完成,当前在SMT处理器中运行的线程数量N被递增或递减(模块505)。例如,在SMT处理器中运行四个线程的情况下,该N值将为4。当创建新线程时,该N值递增为5,然而如果随后有线程被完成时,该N值被递减回4。

    将SMT处理器当前所运行线程的数量与阈值做比较(模块510)。如果该SMT处理器当前所运行线程的数量小于或等于该阈值,该性能指标控制电路将第一性能指标提供给分配给线程的处理电路(模块515)。例如,如果分配给线程的处理电路是根据图2中所论述的高速缓冲存储器,该高速缓冲存储器能运行,使得该标记存储器和数据存储器被同步存取(即以高功率模式)。另一方面,如果SMT处理器所运行线程的数量大于该阈值(模块510),该性能指标控制电路将第二性能指标提供给与线程相关的处理电路(模块520)。例如,在上面根据图2所论述的实施例中,该高速缓冲存储器能以第二性能指标运行,使该数据高速缓存仅响应在标记存储器中的命中而被存取(即以低功率模式)。

    图6是举例说明图2中所示的根据本发明高速缓冲存储器实施例的方框图。根据图6,标记存储器610用于存储数据存储器620中所存储数据的地址。SMT处理器使用与可用数据相关的地址对标记存储器610进行存取。通过标记比较电路630,将标记存储器610中的项目与地址进行比较,来确定该SMT处理器所需要的数据是否存储在数据存储器620中。如果标记比较电路630确定标记存储器610示出的所需要的数据存储在数据存储器620中,则产生标记命中,否则产生标记漏失。如果产生标记命中,允许输出电路650允许从数据存储器620中输出数据。

    根据本发明的实施例,由性能指标控制电路所提供的性能指标,用于控制标记存储器610和数据存储器620如何运行。特别是,如果将第一性能指标提供给该高速缓冲存储器,不管是否产生了个标记命中,数据存储器允许电路640允许对数据存储器620与标记存储器610进行同步存取。相反,如果将第二性能指标提供给高速缓冲存储器,则除非产生标记命中,否则数据存储器允许电路640不允许对数据存储器620进行存取。

    因此,根据本发明的实施例,在高功率模式中,可以同步存取标记存储器610和数据存储器620,以提供经过提高的性能,然而在个低功率模式中,只有当标记存储器610示出产生了标记命中时,才可以存取数据存储器620,从而允许减少该高速缓冲存储器的功率耗损。

    图7是举例说明根据本发明在指令高速缓存中所使用的实施例的方框图。根据图7,线程管理电路700将指令高速缓存722分配给新线程。包含在线程管理电路300中的性能指标控制电路,可以将性能指标,提供给指令高速缓存722,以控制指令高速缓存722如何运行。

    特别是,指令高速缓存722能够响应于第一性能指标,以高功率模式运行,并且可以用于响应于第二性能指标,以低功率模式运行。根据上面所描述的,例如图5,可以基于所述SMT处理器当前所运行线程的数量,向指令高速缓存722提供第一和第二性能指标。此外,指令高速缓存722能够在与上面根据图6所描述的相类似的方式,以不同的性能指标运行,其中数据存储器620仅响应标记命中以低功率模式存取。例如,当确定对同一高速缓冲存储器线进行连续的存储器存取时,可以在该指令高速缓存中提供不同的性能指标,从而允许进行直接寻址。这种类型的限制可以使用直接寻址高速缓存来执行,该直接寻址高速缓存允许避免对标记随机存取存储器(RAM)进行读取,还允许消除标记比较。此外,在直接寻址高速缓存中,还可以避免从虚拟地址到物理地址的转换。

    图8是举例说明根据本发明,具有不同性能指标的单独的处理电路实施例的方框图。根据图8,第一浮点电路805可用于以第一性能指标运行,然而第二浮点电路815可用于以小于第一性能指标的第二性能指标运行。换言之,第一浮点电路805可用在高功率模式下,然而第二浮点电路815可用在低功率模式下。

    第一整数载入/存储电路810用于以第一性能指标运行,然而第二整数载入/存储电路820用于以第二性能指标运行。线程管理电路800用于提供两种单独的性能指标。特别是,将第一性能指标提供给第一浮点电路805和第一整数载入/存储电路810。将由线程管理电路800提供的第二性能指标,提供给第二浮点电路815和第二整数载入/存储电路820。因此,将第一浮点电路805和第一整数载入/存储电路810分配给以第一性能指标运行的线程,然而将第二浮点电路815和第二整数载入/存储电路820分配给以第二性能指标运行的线程。应当了解,线程管理电路800能够分别或同步提供第一和第二性能指标。还应当了解,可以提供多于两个的单独的浮点电路和整数载入/存储电路,作为附加的性能指标。

    根据本发明的实施例,SMT处理器中所运行线程的数量小于或等于第一阈值时,能够向第一浮点电路805和第一整数载入/存储电路810提供第一性能指标。当所述SMT处理器中当前所运行线程的数量超过该第一阈值时,能够向第二浮点电路815和第二整数载入/存储电路820提供第二性能指标。因此,当所述SMT处理器所运行线程的数量超过该阈值时,所有的线程(那些以前存在的和那些新创建的)可以用第二浮点电路815和第二整数载入/存储电路820来减少SMT处理器的功率损耗。

    应当了解,根据本发明该浮点电路和整数载入/存储电路能够以不同的时钟速度运行和/或使用不同的电路类型(如不同类型的CMOS装置),来提供不同的性能指标。例如,根据本发明的一些实施例,与SMT处理器中线程的运行相关的浮点电路,可以基于所述SMT处理器当前所运行线程的数量,以高时钟速度下的高功率模式或低时钟速度下的低功率模式运行。

    图9是举例说明包含多个处理电路的SMT处理器实施例的方框图,这些处理电路响应于由线程管理电路900提供的单独的性能指标。特别是,线程管理电路900提供三个单独的性能指标给一个指令高速缓存930,一个数据高速缓存965,第一和第二浮点电路905,915,以及第一和第二整数/载入-存储电路910,920。应当了解,提供给第一和第二浮点电路905,915以及提供给第一和第二整数载入/存储电路910,920的性能指标可以根据图8以上面所论述的方式运行。此外,数据高速缓存965和指令高速缓存930能够分别地根据图2和图7以上面所论述的方式运行。

    因此,可以向不同的处理电路提供单独的性能指标,使得该处理电路能够以不同的性能指标运行,从而能够在性能和功率耗损的权衡上提供更好的控制。例如,当数据高速缓存265和第一和第二浮点电路905,915,以及第一和第二整数载入/存储电路910,920以第二性能指标运行时,该指令高速缓存能以第一性能指标运行。其他的性能指标的组合也可以被使用。

    图10是举例说明图9中线程管理电路900包含的性能指标控制电路实施例的方框图。特别是,该性能指标控制电路包括计数器1000,该计数器响应SMT处理器中创建和完成的线程进行递增和递减的操作。第一到第三寄存器1015,1020,1025,每一个寄存器能存储该SMT处理器当前所运行的大量线程的单独的阈值。三个比较器电路1030,1035和1040,分别与对应的寄存器1015,1020,1025相连接。特别是,存储第一阈值的第一寄存器1015与第一比较器电路1030相连接。存储第二阈值的第二寄存器1020与第二比较器电路1035相连接。存储第三阈值的第三寄存器1025与第三比较器电路1040相连接。

    比较器电路1030,1035,1040中每一个,将SMT处理器当前所运行线程的数量与存储在各寄存器中的阈值进行比较。如果第一比较器电路1030确定当前SMT处理器所运行线程的数量大于第一寄存器1015中的第一阈值,则第一比较器电路1130产生一个性能指标1045,如图9所示,该性能指标连接到数据高速缓存965。因此,当该SMT处理器所运行线程的数量超过第一寄存器1015中的阈值时,数据高速缓存965的性能指标从第一性能指标改变为第二性能指标(即从高功率模式到低功率模式)。

    如果第二比较器电路1035确定SMT处理器当前所运行线程的数量超过存储在第二寄存器1020中的阈值,则第二比较器电路1035产生一个连接到指令高速缓存930的性能指标1050,从而将指令高速缓存930的性能指标从第一性能指标改变为第二性能指标(即从高功率模式到低功率模式)。

    如果第三比较器电路1040确定SMT处理器当前所运行线程的数量超过存储在第三寄存器1025中的阈值,则第三比较器电路1040产生一个连接到第一和第二浮点电路905,915和第一和第二整数/载入-存储电路910,920的性能指标1055。因此,也将这些处理电路的性能指标从第一性能指标改变为第二性能指标(即从高功率模式到低功率模式)。应当了解,连接到该浮点电路和该整数载入/存储电路的性能指标1055根据图8以上面所描述的方式运行。

    图11是举例说明图10中所例举的性能指标控制电路实施例的方法的流程图。根据图11,初始化SMT处理器时,该SMT处理器当前所运行线程的数量为零(模块1100)。随着该SMT处理器进行的线程的创建和完成,递增和递减该SMT处理器当前所运行线程的数量,以提供数值N,该数值表示SMT处理器当前所运行线程的数量(模块1105)。

    如果SMT处理器当前所运行线程的数量少于或等于第一阈值(模块1110),所有的处理电路继续以第一性能指标(或高性能指标)运行(模块1115)。另一方面,如果SMT处理器当前所运行线程的数量超过了第一阈值(模块1110),则连接到性能指标1045的处理电路开始以第二性能指标(或低性能指标)运行(模块1120)。

    如果SMT处理器当前所运行线程的数量少于或等于一个第二阈值(模块1125),则连接到性能指标1050(和连接到性能指标1055)的处理电路开始(或继续)以第一性能指标运行,与此同时,连接到性能指标1045(如上所述)的处理电路仍然以第二性能指标运行(模块1130)。

    如果SMT处理器当前所运行线程的数量超过了第二阈值(模块1125),连接到性能指标1050的处理电路,连同连接到性能指标1045的处理电路,开始(或继续)以第二性能指标运行(模块1135),然而连接到性能指标1055的处理电路继续以第一性能指标运行。

    如果SMT处理器当前所运行线程的数量少于或等于一个第三阈值(模块1140),连接到性能指标1055的处理电路继续以第一性能指标运行,然而连接到性能指标1045和性能指标1050的处理电路仍然以第二性能指标运行(模块1145)。如果SMT处理器当前所运行线程的数量超过了第三阈值(模块1140),则连接到性能指标1055的处理电路开始(或继续)以第二性能指标(即以低功率模式)运行(模块1150)。

    如上所述,根据本发明的实施例能够提供与SMT处理器中线程运行相关的处理电路,其中该处理电路基于所述SMT处理器当前所运行的大量线程,以不同的性能指标运行。例如,根据本发明的一些实施例,与SMT处理器中线程的运行相关的处理电路,例如浮点单元或数据高速缓存,能够基于所述SMT处理器当前所运行线程的数量以高功率模式或低功率模式运行。

    此外,随着SMT处理器所运行线程数量的增加,能够降低处理电路的性能指标,从而在允许减少与线程相关的处理电路所消耗功率的总量时,提供了该SMT处理器体系结构的优点。例如,根据本发明的一些实施例,根据本发明的处理电路能够以不同的时钟速度运行和/或使用不同的电路类型(如不同类型的CMOS装置)来提供不同的性能指标。例如,根据本发明的一些实施例,与SMT处理器中线程的运行相关的处理电路,例如浮点电路或数据高速缓存,能够基于所述SMT处理器当前所运行线程的数量,以高时钟速度下的高功率模式或低时钟速度下的低功率模式运行。

    本领域普通技术人员在给出的目前所公开的优势下,可以在不脱离本发明的精神和范围的情况下进行许多的变化和修改。因此,应当了解,前面所例举的实施例目的只是为了举例,而不应该用来将本发明限定成如下面权利要求所定义的那样。因此,下述权利要求所包含的内容不仅是前面照字面上所述的元件的组合,而且还包含了所有用于以实质上相同的方式执行实质上相同的功能,以获得实质上相同的结果的所有等效元件。因此,该权利要求应理解为包括了上面具体说明与描述的内容,概念上相等的内容,以及结合了本发明基本原理的内容。

同步多线程处理器电路以及计算机程序产品及运行方法.pdf_第1页
第1页 / 共31页
同步多线程处理器电路以及计算机程序产品及运行方法.pdf_第2页
第2页 / 共31页
同步多线程处理器电路以及计算机程序产品及运行方法.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《同步多线程处理器电路以及计算机程序产品及运行方法.pdf》由会员分享,可在线阅读,更多相关《同步多线程处理器电路以及计算机程序产品及运行方法.pdf(31页珍藏版)》请在专利查询网上搜索。

与SMT处理器中线程运行相关的处理电路,可用于基于所述SMT处理器当前所运行的线程的数量,而以不同的性能指标运行。例如,根据本发明的一些实施例,与SMT处理器中线程的运行相关的处理电路,例如浮点单元或数据高速缓存,可以基于所述SMT处理器当前所运行线程的数量,以高功率模式或低功率模式运行。此外,随着SMT处理器所运行线程数量的增加,能够降低处理电路的性能指标,从而在允许减少与线程相关的处理电路所消。

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

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


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