CN101373444A - 向执行环境揭示系统拓扑 - Google Patents
向执行环境揭示系统拓扑 Download PDFInfo
- Publication number
- CN101373444A CN101373444A CNA2008101003853A CN200810100385A CN101373444A CN 101373444 A CN101373444 A CN 101373444A CN A2008101003853 A CNA2008101003853 A CN A2008101003853A CN 200810100385 A CN200810100385 A CN 200810100385A CN 101373444 A CN101373444 A CN 101373444A
- Authority
- CN
- China
- Prior art keywords
- nuclear
- execution
- resource
- information
- data structure
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Abstract
公开用于向执行环境揭示系统拓扑的装置、方法和系统的实施例。在一个实施例中,装置包括位于单个集成电路上的执行核和资源、以及拓扑逻辑。该拓扑逻辑用于以关于执行核与资源之间的关系的信息填充数据结构。
Description
技术领域
本公开涉及信息处理领域,特别是涉及优化多处理器系统的性能的领域。
背景技术
多处理器系统中可以使用一个或多个多核处理器,在这个系统上操作系统(“OS”)、虚拟机监视器(“VMM”)或其它调度软件调度进程来执行。通常,多核处理器是包括多于一个执行核的单一集成电路。执行核包括用于执行指令的逻辑。除了执行核之外,多核处理器可以包括专用或共享资源的任意组合。专用资源可以是专门用于单一核的资源,如专用一级高速缓存,或者可以是专门用于任意核子集的资源。共享资源可以是由所有核共享的资源,如共享二级高速缓存或支持多核处理器与其它元件之间的接口的共享外部总线单元,又或者可以是由任意核子集共享的资源。
发明内容
本发明涉及一种装置,包括:
位于单个集成电路上的多个执行核;
位于所述单个集成电路上的多个资源;以及
拓扑逻辑,用于以关于所述多个执行核中的至少一个执行核与所述资源中的至少一个资源之间的至少一种关系的信息填充数据结构。
本发明涉及一种方法,包括:
存储关于位于单个集成电路上的多个执行核与多个资源之间的关系的信息;以及
利用所述信息来调度在所述多个执行核上运行的进程。
本发明涉及一种系统,包括:
多核处理器,所述多核处理器包括;
多个执行核;
多个资源;以及
拓扑逻辑,用于以关于所述多个执行核中的至少一个执行核与所述资源中的至少一个资源之间的至少一种关系的信息填充数据结构;以及
用于存储所述数据结构的存储器。
存储器还用来存储用于调度将由系统执行的进程的调度程序。调度程序用于从数据结构中读取信息以用于调度将由系统执行的进程。
附图说明
附图中举例而非限制性地示出本发明。
图1示出本发明的多处理器系统的实施例。
图2示出本发明的多核处理器的实施例。
图3示出本发明的用于调度在多处理器系统上运行的进程的方法的实施例。
具体实施方式
下面描述了用于向执行环境揭示(expose)系统拓扑的装置、方法和系统的实施例。在本描述中,阐述了大量的诸如元件和系统配置的特定细节,以便能够更加充分地理解本发明。然而,本领域的技术人员将意识到,在没有这些具体细节的情况下,也可以实践本发明。此外,为了避免对本发明造成不必要的模糊,没有详细示出一些熟知的结构、电路等。
多处理器系统的性能可能取决于系统拓扑与执行环境之间的交互作用。例如,调度共享数据的进程以便在共享高速缓存的执行核上运行的程度可能会影响性能。系统拓扑的其它方面(例如,不同核访问不同高速缓存的相对等待时间)也可能会导致性能基于调度或其它执行环境级决策而发生变化。本发明的实施例可用来向执行环境揭示整个系统拓扑,其中执行环境可包括操作系统、虚拟机监视器或其它用于调度在系统上运行的进程的程序。然后,执行环境可以利用拓扑信息来提高性能。
图1示出本发明的多处理器系统100的一个实施例。系统100可以是能够执行任何OS或VMM的任何信息处理装置。例如,系统100可以是个人计算机、大型计算机、便携式计算机、手持设备、机顶盒、服务器或任意其它计算系统。系统100包括多核处理器110、基本输入/输出系统(“BIOS”)120和系统存储器130。
多核处理器110可以是具有一个或多个执行核的任意元件,其中每个执行核可以基于多种不同类型的处理器中的任意一种处理器,包括通用微处理器,例如 处理器系列、处理器系列或来自公司的其它处理器系列中的处理器,或者是另一个公司的另一种处理器,或者是数字信号处理器或微控制器,又或者可以是可重新配置的核(例如,现场可编程门阵列)。尽管图1中只示出一个多核处理器,但系统100可以包括任意数量的处理器,包括任意数量的单核处理器、任意数量的多核处理器(每个处理器具有任意数量的执行核)、以及任意数量的多线程处理器或核(每个处理器或核具有任意数量的硬件线程)。
BIOS 120可以是存储用于初始化系统100的指令的任意元件。例如,BIOS 120可以是存储在基于半导体的只读或闪速存储器中的固件。系统存储器130可以是静态或动态随机存取存储器、基于半导体的只读存储器或闪速存储器、磁盘或光盘存储器、处理器110可读的任意其它类型的介质或者这些介质的任意组合。
处理器110、BIOS 120和系统存储器130可以根据已知的方式相互耦合或彼此通信,例如直接或通过一个或多个总线、点对点或其它有线或无线连接间接耦合或通信。系统100还可以包括任意数量的附加设备或连接。
图1还示出存储在系统存储器130中的OS 132和拓扑数据结构134。OS 132代表任意OS、VMM或用于调度在系统100上运行的进程的其它软件或固件。拓扑数据结构134代表任意表、矩阵或用于存储系统拓扑信息的其它数据结构或数据结构的组合。
图2示出根据本发明的一个实施例的多核处理器110。多核处理器110包括:核211、212、213、214、215、216、217和218,一级高速缓存221、222、223、224、225、226、227和228,中级高速缓存231、233、235和237,以及末级高速缓存241。此外,多核处理器110包括拓扑逻辑250。每个核可以支持一个或多个硬件线程的执行。
在该实施例中,一级高速缓存221、222、223、224、225、226、227和228是分别专用于核211、222、223、224、225、226、227和228的专用高速缓存。中级高速缓存231、233、235和237是共享的,其中核211和212共享高速缓存231,核213和214共享高速缓存233,核215和216共享高速缓存235,且核217和218共享高速缓存237。末级高速缓存241被所有8个核共享。在其它实施例中,多核处理器110可以包括任意数量的核、任意数量的高速缓存和/或任意数量的其它专用或共享资源,其中核和资源可以按照任何可能的系统拓扑、例如环状或网状拓扑排列。
拓扑逻辑250可以是利用关于处理器110的拓扑的信息来填充(populate)拓扑数据结构134的任意电路、结构或逻辑。该信息可以包括关于一个或多个核或线程与一个或多个资源之间的任意关系的任意信息。在一个实施例中,该信息可以包括每个核或线程访问每个高速缓存的相对或绝对等待时间,它表示成例如无负载系统中的时钟周期。可以使用任意的已知方法,例如基于核与高速缓存的邻近度,来发现、估算或预测该信息。在另一个实施例中,该信息可以包括哪些核共享哪些高速缓存的列表。
图3示出本发明的方法300的实施例,该方法是指用于调度在多处理器系统上运行的进程的方法。虽然方法实施例在这方面不受限制,但是可以参考图1中对系统100的描述来描述图3中的方法实施例。
在图3的图框310中,启动或重设系统100。在图框312中,BIOS120开始将系统100初始化。
在图框320,BIOS 120开始创建拓扑数据结构134。在图框322,BIOS 120向处理器110查询拓扑信息以填充拓扑数据结构134。例如,图框322可以包括为处理器110中的核增加等待时间以使其访问处理器110中的高速缓存。
在图框324,BIOS生成或收集关于处理器110与系统100中的其它处理器或元件之间的关系的信息。例如,在一个实施例中,4个处理器可以通过点对点互连结构进行连接,以使得一个处理器中的核可以使用另一个处理器中的高速缓存。在该实施例中,图框324可以包括为处理器110中的核增加等待时间以使其能够访问处理器110之外的高速缓存。
图框320、322和324可以结合系统资源关联表(affinity table)表或根据2006年10月10日公布的高级配置和电源接口规范(修订版3.0b)或任何其它类似协议的任何其它表或数据结构的创建来执行。方法300还可以包括向其它处理器或元件查询拓扑信息以填充拓扑数据结构134或任何其它类似数据结构。
在图框330,系统100开始执行OS 132。在图框332,OS 132开始调度在系统100上运行的进程。在图框334,OS 132从拓扑数据结构134中读取系统拓扑信息。在图框336,OS 132使用系统拓扑信息来调度在系统100上运行的进程。
OS 132可以使用系统拓扑信息来调度进程运行以便提供可能相比不使用系统拓扑信息更好的系统性能。例如,OS 132可以使用两个核共享中级高速缓存来调度两个进程的信息,这两个进程已知或被预测为在这两个核上而不是在使用两个不同中级高速缓存的两个核上具有高级数据共享。因此,整个系统的性能可以由于更高的高速缓存命中率和更低的高速缓存监听通信量而得以提高。
在本发明的范围内,方法300可以按不同的顺序执行,其中可以省去所示图框,增加额外图框,或者是重新排序、省去或额外添加图框的组合。
处理器110或根据本发明的实施例设计的任何其它元件或元件的一部分可以在从创建到模拟到制作的不同阶段进行设计。代表设计的数据可以用多种方式表示这个设计。首先,可以使用硬件描述语言或另一种功能描述语言来表示硬件,这在模拟中有用。作为补充或替代,可以在设计过程中的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,在某个阶段,大部分设计达到能够用代表各种设备的物理替换的数据对其进行建模的程度。在使用常规半导体制造技术的情况下,代表设备替换模型的数据可以是指定在用来制造集成电路的掩模的不同掩模层上各种特征存在与否的数据。
在设计的任意表示中,数据可以存储在任意形式的机器可读介质中。经调制或以其它方式生成用来传送该信息的光波或电波、存储器或诸如磁盘或光盘的磁或光存储介质都可以作为机器可读介质。任意这些介质都可以“携带”或“指示”该设计、或本发明的实施例中所用的其它信息。当指示或携带信息的电载波得以传送时,在执行电信号的复制、缓冲或重新传送的程度,进行了新的复制。因此,通信提供者或网络提供者的动作可以构成物品(例如,载波)的复制,从而实施本发明的技术。
因此,上文公开了用于向执行环境揭示系统拓扑的装置、方法和系统。虽然已经描述并在附图中示出了特定的实施例,但是要理解,这些实施例只是说明而不是限制宽广的本发明,并且本发明并不局限于所示出和描述的具体结构和配置,本领域的技术人员在研究本公开后可以联想到各种其它修改。在发展迅速并且难以预见到进一步改进的诸如此类的技术领域中,在不背离本公开的原则或随附权利要求的范围的前提下,通过促进技术进步可以容易地对所公开的实施例进行配置和细节方面的修改。
Claims (20)
1.一种装置,包括:
位于单个集成电路上的多个执行核;
位于所述单个集成电路上的多个资源;以及
拓扑逻辑,用于以关于所述多个执行核中的至少一个执行核与所述资源中的至少一个资源之间的至少一种关系的信息填充数据结构。
2.根据权利要求1所述的装置,其特征在于,所述多个资源包括高速缓存存储器。
3.根据权利要求1所述的装置,其特征在于,所述资源中的至少一个资源被所述多个执行核中的至少两个执行核所共享。
4.根据权利要求1所述的装置,其特征在于,所述多个执行核中的至少一个执行核包括至少两个硬件线程。
5.根据权利要求1所述的装置,其特征在于,所述拓扑逻辑用于以关于与访问每个资源的每个执行核关联的等待时间的信息填充所述数据结构。
6.根据权利要求4所述的装置,其特征在于,所述拓扑逻辑用于以关于与访问每个资源的每个硬件线程关联的等待时间的信息填充所述数据结构。
7.根据权利要求3所述的装置,其特征在于,所述拓扑逻辑用于以关于资源共享的信息填充所述数据结构。
8.根据权利要求1所述的装置,其特征在于,所述执行核中的至少一个执行核用于执行调度软件以调度在所述多个执行核上运行的进程。
9.根据权利要求8所述的装置,其特征在于,所述调度软件基于存储在所述数据结构中的信息调度所述进程。
10.一种方法,包括:
存储关于位于单个集成电路上的多个执行核与多个资源之间的关系的信息;以及
利用所述信息来调度在所述多个执行核上运行的进程。
11.根据权利要求10所述的方法,其特征在于,所述多个资源包括高速缓存存储器。
12.根据权利要求10所述的方法,其特征在于,存储信息包括存储关于与访问每个资源的每个执行核关联的等待时间的信息。
13.根据权利要求10所述的方法,其特征在于,存储信息包括存储关于所述执行核共享所述资源的信息。
14.一种系统,包括:
多核处理器,所述多核处理器包括;
多个执行核;
多个资源;以及
拓扑逻辑,用于以关于所述多个执行核中的至少一个执行核与所述资源中的至少一个资源之间的至少一种关系的信息填充数据结构;以及
用于存储所述数据结构的存储器。
15.根据权利要求14所述的系统,还包括由所述多个执行核中的一个执行核执行以创建所述数据结构的固件。
16.根据权利要求14所述的系统,其特征在于,所述存储器还用来存储用于调度将由所述系统执行的进程的调度程序。
17.根据权利要求14所述的系统,其特征在于,所述调度程序用于从所述数据结构中读取信息以用于调度将由所述系统执行的处理。
18.根据权利要求14所述的系统,其特征在于,所述多个资源包括高速缓存存储器。
19.根据权利要求14所述的系统,其特征在于,所述拓扑逻辑用于存储关于与访问每个资源的每个执行核关联的等待时间的信息。
20.根据权利要求14所述的系统,其特征在于,所述拓扑逻辑用于存储关于所述执行核共享所述资源的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/694,322 US20080244221A1 (en) | 2007-03-30 | 2007-03-30 | Exposing system topology to the execution environment |
US11/694322 | 2007-03-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101373444A true CN101373444A (zh) | 2009-02-25 |
Family
ID=39768131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101003853A Pending CN101373444A (zh) | 2007-03-30 | 2008-03-28 | 向执行环境揭示系统拓扑 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080244221A1 (zh) |
CN (1) | CN101373444A (zh) |
DE (1) | DE102008016180A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289390A (zh) * | 2010-06-01 | 2011-12-21 | 微软公司 | 系统管理程序调度器 |
CN102346684A (zh) * | 2010-06-01 | 2012-02-08 | 微软公司 | 将虚拟高速缓存拓扑结构展示给客操作系统 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN102346684B (zh) * | 2010-06-01 | 2016-12-14 | 微软技术许可有限责任公司 | 将虚拟高速缓存拓扑结构展示给客操作系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090132792A1 (en) * | 2007-11-15 | 2009-05-21 | Dennis Arthur Ruffer | Method of generating internode timing diagrams for a multiprocessor array |
US8122230B2 (en) * | 2007-12-28 | 2012-02-21 | Intel Corporation | Using a processor identification instruction to provide multi-level processor topology information |
CN103207808B (zh) * | 2012-01-13 | 2016-08-31 | 百度在线网络技术(北京)有限公司 | 多核系统中的处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7403952B2 (en) * | 2000-12-28 | 2008-07-22 | International Business Machines Corporation | Numa system resource descriptors including performance characteristics |
US7287193B2 (en) * | 2003-05-15 | 2007-10-23 | International Business Machines Corporation | Methods, systems, and media to correlate errors associated with a cluster |
-
2007
- 2007-03-30 US US11/694,322 patent/US20080244221A1/en not_active Abandoned
-
2008
- 2008-03-28 CN CNA2008101003853A patent/CN101373444A/zh active Pending
- 2008-03-28 DE DE102008016180A patent/DE102008016180A1/de not_active Ceased
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289390A (zh) * | 2010-06-01 | 2011-12-21 | 微软公司 | 系统管理程序调度器 |
CN102346684A (zh) * | 2010-06-01 | 2012-02-08 | 微软公司 | 将虚拟高速缓存拓扑结构展示给客操作系统 |
CN102289390B (zh) * | 2010-06-01 | 2016-11-02 | 微软技术许可有限责任公司 | 系统管理程序调度器 |
CN102346684B (zh) * | 2010-06-01 | 2016-12-14 | 微软技术许可有限责任公司 | 将虚拟高速缓存拓扑结构展示给客操作系统 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103440173B (zh) * | 2013-08-23 | 2016-09-21 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102008016180A1 (de) | 2008-10-23 |
US20080244221A1 (en) | 2008-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140040532A1 (en) | Stacked memory device with helper processor | |
CN100573456C (zh) | 一种并行多处理器虚拟机系统 | |
US20190361708A1 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
CN102812439B (zh) | 用于在多处理器计算机系统中分派任务的方法和系统 | |
JP5911997B2 (ja) | 装置、システム及びメモリ管理の方法 | |
TWI465908B (zh) | 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 | |
CN103562870A (zh) | 异构核心的自动加载平衡 | |
DE112017006568T5 (de) | Auslegung einer Basistaktfrequenz eines Prozessors auf der Basis von Nutzungsparametern | |
CN101373444A (zh) | 向执行环境揭示系统拓扑 | |
Cuesta et al. | Adaptive task migration policies for thermal control in mpsocs | |
US20140122160A1 (en) | Optimized License Procurement | |
CN101894039A (zh) | 一种嵌入式设备驱动程序辅助生成方法及系统 | |
CN104025027A (zh) | 结构访问处理器、方法、系统和指令 | |
US20160239278A1 (en) | Generating a schedule of instructions based on a processor memory tree | |
CN104461970A (zh) | Dma控制器、移动终端以及数据搬运方法 | |
CN113849296A (zh) | 用于闭环动态资源分配控制框架的装置和方法 | |
Kline Jr et al. | GreenChip: A tool for evaluating holistic sustainability of modern computing systems | |
US8862786B2 (en) | Program execution with improved power efficiency | |
US20070005865A1 (en) | Enforcing global ordering using an inter-queue ordering mechanism | |
US9043628B2 (en) | Power management of multiple compute units sharing a cache | |
US20130080141A1 (en) | Power aware simulation system with embedded multi-core dsp | |
CN101303687A (zh) | 一种嵌入式异构多核体系片上通信的实现方法 | |
US20220100512A1 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
US20230205452A1 (en) | Circular buffer architecture using local memories with limited resources | |
CN102012881A (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 |
Open date: 20090225 |