CN100388210C - 通过硬件资源利用报告优化性能的方法和数据处理系统 - Google Patents
通过硬件资源利用报告优化性能的方法和数据处理系统 Download PDFInfo
- Publication number
- CN100388210C CN100388210C CNB2005100044195A CN200510004419A CN100388210C CN 100388210 C CN100388210 C CN 100388210C CN B2005100044195 A CNB2005100044195 A CN B2005100044195A CN 200510004419 A CN200510004419 A CN 200510004419A CN 100388210 C CN100388210 C CN 100388210C
- Authority
- CN
- China
- Prior art keywords
- software
- processing unit
- handling system
- data handling
- monitoring parameter
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
在本发明中,根据一种操作一个数据处理系统的方法,在该数据处理系统中的一个处理单元中建立一或多个监控参数集。在硬件方面,处理单元根据一或多个监控参数集中的一个监控参数集,监控处理单元中的多个可调度软件实体中的每一个的执行。然后,处理单元向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。软件可以存储和使用处理单元所报告的硬件使用信息,以调度处理单元所报告的可调度软件实体的执行。还可以利用硬件使用信息生成对至少一个正在执行的可调度软件实体的分类,可以把这一分类通知处理单元,以动态地更新硬件资源向可调度软件实体的分配。
Description
技术领域
总体上讲,本发明涉及数据处理,具体地讲,本发明涉及数据处理系统中的性能优化。更具体地讲,本发明涉及一种数据处理系统与方法,其中硬件与软件相互协调,以优化线程的处理。
背景技术
当前,众多倾向影响着服务器级和大型计算机系统的开发。特别是,根据摩尔定律,集成电路中晶体管的密度继续增大,在摩尔定律当前的公式中断定,集成电路上每单位面积晶体管的个数,大约每18个月增加一倍。另外,处理器频率也大约每两年增加一倍。而且,系统规模(即系统中央处理器的个数)仍在继续增加,已达数十、数百,在某些情况下,甚至已达数千个处理器。这些倾向的结果是,服务器类和大型计算机系统的峰值性能迅速攀升,其中,最近开发的大规模高性能计算(HPC)系统号称具有100 TFLOPS(每秒100万亿浮点操作)或100 TELOPS以上的峰值性能的数值。
令人感到遗憾的是,高性能计算系统的持续性能(sustained performance),未能以峰值性能的速度得以改进,事实上,持续性能与峰值性能之间的比率,尽管当前很低(例如1∶10),但仍在下降。由于具有如此未加以利用的可用计算容量,目前人们正在把相当大的注意力放在实现更大的持续性能方面。这一关注的一个目标是,把诸如CPU、存储器、I/O带宽、磁盘存储器等系统资源向各种要完成的工作载荷的分配。在传统的多处理器数据处理系统中,由两个不同的操作系统(OS)部件:调度程序与工作载荷管理器(WLM)来处理系统资源向工作载荷的分配。
调度程序是操作系统核心的一个部件,负责在数据处理系统中的各种CPU上,调度那些可调度软件实体的执行,通常将这些可调度软件实体称为“线程”。为了执行可调度功能,典型的调度程序将建立一个全程队列,根据这一全程队列,可以对线程加以调度;以及一系列分布运行队列,每一个均与一个相应的处理单元相关联。调度程序根据一种调度策略,把线程赋予运行队列,例如,其中的调度策略考虑到线程的优先级以及线程对执行线程所需系统资源(例如系统存储器、数据、I/O资源、超高速缓冲存储器、执行资源等)的亲合势。
通过在不同的OS分区和硬件结点之间重新分配工作载荷,WLM还有助于对系统资源的有效利用。例如,可从纽约Armonk的国际商用机器(IBM)公司获得的OS/390操作系统,包括一个WLM,该WLM根据用户规定的、面向企业的目标,例如针对关键批作业的事务处理反应时间和批运行时间,平衡各操作系统分区之间的工作载荷。这样的工作载荷平衡通常需要大量的软件性能监控以收集与每一OS分区中资源使用情况及性能有关的信息。由于利用了这些性能信息,所以WLM能够管理线程调遣的优先级、对存储器等资源的使用,以实现针对所有当前工作载荷的面向具体用户规定的目标。
发明内容
本发明认识到,通过传统的OS调度程序和WLM所获得的性能优化,尽管无疑会导致性能上的改进,但仅能优化至一定的粒度水平。即,由于调度程序和WLM为软件部件,所以通过这些部件所获得的优化倾向于涉及那些软件能够易于监控高级性能问题。照这样,性能优化的传统的唯软件技术也不能解决低级性能问题,例如多线程之间的共享资源的硬件分配。
例如,作为一系列“作业”,把工作频繁地提交于传统的多处理器计算机系统,其中每一作业由一系列(可能)互相依赖的进程组成。通常,对作业顺序地加以处理,这意味着在前一个作业中的所有进程已完成执行之前,不启动下一个进程。因此,由最后一个将完成的进程确定作业的执行时间。在这种类型的执行环境中,传统的OS调度程序和WLM可以优化各进程的总体执行,例如,可通过把进程分派给具有对数据和其它所需资源的空间亲合势的处理器,实现这一优化。然而,传统的OS和WLM不能根据线程的随时间变化的行为实现对进程线程的执行的细粒度优化。例如,OS调度程序和WLM通常不考虑处理器之间挂起、中断、调度、以及移动进程线程的过程中线程执行不同阶段期间对居主导地位的不同资源(例如I/O通道、系统互连、存储器控制器以及浮点单元)的需求。
鉴于以上的描述,本发明提供了一种用于优化数据处理系统的性能的改进的方法与数据处理系统,其中,软件,例如操作系统和处理硬件相互协作,以优化线程的性能。根据一个实施例,在数据处理系统中的一个处理单元中建立一或多个监控参数集。在硬件方面,处理单元根据一或多个监控参数集中的一个监控参数集,监控处理单元中的一系列可调度软件实体中每一可调度软件实体的执行。然后,处理单元向运行在数据处理系统中的软件报告可调度软件实体系列中每一可调度软件实体对硬件资源的使用情况。可以存储处理单元所报告的硬件资源使用情况信息,并且为软件加以利用,这些软件可把硬件资源使用情况信息用于处理单元所报告的可调度软件实体的可调度执行。也可以利用硬件资源使用情况信息产生对至少一个正在执行的可调度软件实体的一个分类,可以将这一分类通知处理单元,以动态地修改硬件资源向可调度软件实体的分配。
本发明提供一种用于操作一个数据处理系统的方法,所述方法包括:在该数据处理系统中的一个处理单元中建立一个或多个监控参数集;在硬件方面,处理单元根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的一系列可调度软件实体中每一个的执行;以及处理单元向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
本发明还提供一种数据处理系统,包括:数据存储器;一个或多个耦合于所述数据存储器的处理单元,其中,所述一或多个处理单元中的一个处理单元包括:一个或多个执行指令的执行单元;指令拾取和分配电路,把指令提供于所述一个或多个执行单元,以加以执行;一个硬件监控器,其响应于一或多个监控参数集,在硬件方面,根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的多个可调度软件实体中的每一个的执行;并且向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
本发明还提供一种用于一个数据处理系统的处理单元,所述处理单元包括:一个或多个执行指令的执行单元;指令拾取和分配电路,其把指令提供给所述一个或多个执行单元,以加以执行;一个硬件监控器,其响应于一个或多个监控参数集,在硬件方面,根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的多个可调度软件实体中的每一个的执行;并且向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
在以下的详细文字描述中,本发明的所有目的、特性以及优点,将变得十分明显。
附图说明
所附加权利要求中阐述了本发明的具有所期望特点的新型特性。然而,只有结合附图阅读、并参照以下对一个说明性实施例的详细描述,才会对本发明以及较佳使用方式最充分地加以理解。在这些附图中:
图1是根据本发明的一个示范性多处理器数据处理系统的高级方块图;
图2描述了图1中所说明的数据处理系统中的一个示范性处理单元的更详细的方块图;
图3A是根据本发明的图2的硬件监控器的一个示范性实施例的更详细的方块图;
图3B是根据本发明的图2的资源管理器的一个示范性实施例的更详细的方块图;
图4是说明根据本发明的图1的数据处理系统的一个示范性软件配置的软件层图;以及
图5是利用根据本发明的处理硬件与软件之间的通信,实现线程性能优化的一个示范性方法的高级逻辑流程图。
具体实施方式
现在,参照附图,特别参照图1说明了一个多处理器(MP)数据处理系统的高级方块图,该多处理器数据处理系统提供了根据本发明的一个实施例的改进的性能优化。如图中所描述的,数据处理系统8包括通过一个系统互连12所耦合的、用于通信的多个(例如8个、16个、64个或64个以上)处理单元10。每一个处理单元10为一个信号集成电路,该信号集成电路包括接口逻辑23以及一个或多个处理器内核14。
还如图1中所示,数据处理系统8的存储器层次结构包括一个或多个系统存储器26,它们形成了存储器层次结构中易失数据存储器的最低层;以及一或多级超高速缓冲存储器,例如片上二级(L2)高速缓冲存储器22,用于对从系统存储器26到处理器内核14的指令和操作元数据的筹备。如这一技术领域中的熟练技术人员将会意识到,与较高层相比,这一存储器层次结构的每一相继的较低层通常能够存储更大量的数据,但与处理器内核14相比,具有更高的存取延迟。
如图中所示,通过存储器控制器24与互连12接口的系统存储器26,可以存储操作元数据34、一或多个操作系统28的一些部分、以及一个或多个应用程序30。另外,系统存储器26还可以包括一个由一或多个操作系统28所分配的(例如在启动时)一个分类设施32。尽管把分类设施32说明为系统存储器中的一个设施,但这一技术领域中的熟悉技术人员将会意识到,作为一种选择,也可以在数据处理系统8的另一个部件中实现分类设施32。
分类设施32包括一系列(例如1024个)独立的分类字段36,可以把每一个分类字段36用于存储与执行的一个相应线程相关的分类信息。如以下进一步加以描述的,分类信息可用于动态地优化数据处理系统8的执行。
可以包括一条或多条总线、一条切换光纤或其它互连体系结构的系统互连12,用作耦合于系统互连12的设备(例如处理单元10、存储器控制器24等)之间的通信的一条管路。系统互连12上的一个典型的事务处理开始于一个请求,这一请求可以包括一个指示事务处理类型的事务处理字段、一个或多个指示事务处理的源与/或预定接收者的标签、以及一个地址与/或数据。最好是令连接于系统互连12的每一设备窥探系统互连12上的所有相关的事务处理,而且,如果合适的话,还响应对一个窥探响应的请求。响应逻辑40接收这样的窥探响应,并且对它们加以编译,响应逻辑40提供了一个指示每一个窥探器以响应这一请求将采取何种动作(如果存在的话)的聚合响应,。这些动作可以包括寻找系统互连12上的数据源、存储请求窥探器所提供的数据、废除超高速缓冲的数据等。尽管分别地进行了说明,但应该意识到,作为一种选择,也可以把响应逻辑40并入某一特定的设备(例如存储器控制器24)中或者可以将其分布于不同的设备(例如处理单元10)中,以致于不同的设备(例如每一事务处理的主人)可以对窥探响应进行编译,以产生对不同事务处理的组合响应。
这一技术领域中的熟练技术人员将会意识到,数据处理系统8可以包括很多附加的、未加以说明的部件,例如I/O适配器、互连电桥、非易失存储器、与网络相连或附接于设备的端口等。由于这样的附加部件对本发明的理解不是必要的,所示图1中未对它们加以说明,而且此处也不再对它们进一步地加以讨论。然而,还应该认识到,本发明所做的改进,可应用于任何体系结构的MP数据处理系统,决不局限于图1中所说明的一般化的MP体系结构。
现在,参照图2。其描述了根据本发明的处理器内核14的一个示范性实施例的更详细的方块图。如图中所示,每一个处理器内核14包括相关的一级(L1)指令与数据高速缓冲存储器16和18,它们分别临时缓冲存储指令与操作元数据,并且很可能由处理器内核14加以存取。L2超高速缓冲存储器22可以包含、不包含或部分包含一级高速缓冲存储器16和18的内容,这是这一技术领域中人们所熟悉的。
另外,处理器内核14还拥有一个指令排序单元(ISU)50,ISU 50利用通过指令存储器管理单元(IMMU)52所进行的有效至实际地址的翻译(ERAT)所获得的实际地址,从一级指令高速缓冲存储器16取指令。这一技术领域中的熟练技术人员将会意识到,ISU 50可能需要在执行的一个或多个活跃线程中取(即非投机性取)指令,或者投机性取可能或不可能最终加以执行的指令。在每种情况中,如果所请求的指令的超高速缓冲存储器线未驻留在一级指令高速缓冲存储器16中,则ISU 50经由指令超高速缓冲存储器重新加载总线54从L2超高速缓冲存储器22(与/或较低层存储器)请求指令的相关超高速缓冲存储器线。
把ISU 50所取的指令最初缓存在指令缓冲器82中。尽管把这些指令缓存在指令缓冲器82中,但也可以对这些指令进行预处理,例如,为了执行分支预测或为了利用微代码对这些指令进行翻译。指令缓冲器82中的指令可以有选择地由硬件(HW)监控器86进一步加以处理,如以下进一步加以描述的,以对指令所属的那一执行的线程进行分类。
如图3A中所示,在一个说明性的实施例中,硬件监控器86包含一系列字段90、92以及94,用于通过同步多线程处理(SMT)存储可由处理器内核14所并行执行的每一线程的监控参数。于是,字段90a、92a以及94a定义了针对一个第一线程的监控参数,字段90b、92b、以及94b定义了处理器内核14中的针对一个第二并行执行的线程的监控参数等。
在这一说明性的实施例中,指令类型字段90a、90b存储一个指示信息,这一指示信息指示一个相应的相关线程中将由ISU 50的硬件监控器86加以检测的一个特定的操作码或一组操作码。依据所希望的实现,可以对硬件监控器86进行配置,以使其能够检测满足指令类型字段90a,90b中的准则的指令,同时把这些指令缓存在指令缓冲器82中或通过分配器(dispatcher)84对这些指令进行分派,以供执行。指令计数字段92a、92b进一步规定了一系列满足相应指令类型字段90中的准则的指令,以在线程中的一个连续指令的窗口中被加以检测。这一连续指令的窗口的尺寸由窗口定义字段94a、94b中相关的一个窗口定义字段加以定义,可以把通过监控线程的执行所获得的一个线程分类存储在线程分类字段96a和96b中相应的一个线程分类字段之中。
图2的ISU 50还包括一个资源管理器88,资源管理器88至少对处理器内核14中的资源(例如执行单元、重新命名和结构寄存器、超高速缓冲存储器线等)的分配和可用性进行追踪和管理。如图3B中所说明的,资源管理器88包括一个资源表100,最好是令资源表100不仅针对单一的指令追踪资源的分配(为了向它们的执行所需的执行单元和寄存器分配指令),而且在其中支持SMT的实施例中,针对特定线程追踪资源的分配。资源管理器88还包括资源分配策略数据结构102,资源分配策略数据结构102存储那些定义了一个动态可变策略的规则,这些规则根据包含在线程分类字段96中的线程的分类,通过资源管理器88控制至少处理器内核14中的资源的分配。于是,例如,资源分配策略数据结构102可以存储这样的一些规则:规定在一个具体的执行单元中,资源管理器88应该根据相对执行单元资源对线程的分类把30%的执行时间分配给一个第一线程,并且把该执行单元中70%的执行时间分配给一个第二线程。在一个优选实施例中,一个人类系统管理员可以存取操作系统28或管理程序110的一个软件设施,以把一个所希望的规则集加载到策略数据结构102中,策略数据结构102优选某一特定类型的工作载荷(例如科学或商务)的执行。
当资源管理器88参照资源表100分配缓冲在指令缓冲器82中的某些特定指令所需的资源时,ISU 50中的分配器84根据指令类型,可能打乱程序顺序,把指令从指令缓冲器82调遣到执行单元60~68。于是,分别把条件寄存器修改指令和分支指令调遣到条件寄存器单元(CRU)60和分支执行单元(BEU)62,分别把定点和加载/存储指令调遣到一个或多个定点单元(FXU64)和一个或多个加载存储单元(LSU)66,并且把浮点指令调遣到浮点单元(FPU)68。在可能的排队和缓存之后,执行单元60~68抓机会执行所调遣的指令。
在执行单元60~68之一中执行期间,指令可以从耦合于执行单元的一个寄存器文件中的一个或多个结构与/或重新命名寄存器接收输入操作元(如果存在的话)。类似地,通过执行单元60~68,把指令执行的数据结果(即目的操作元)(如果存在的话)写至寄存器文件70~74。例如,FXU 64从通用寄存器文件(GPRF)72接收输入操作元,并且把目的操作元存储在通用寄存器文件(GPRF)72中,FPU 68从浮点寄存器文件(FPRF)74接收输入操作元,并且把目的操作元存储在GPRF 74中,LSU 66从GPRF 72接收输入操作元,并且使数据在LI数据超高速缓冲存储器18和GPRF 72与FPRF 74之间传递。相类似,当执行条件寄存器修改或依赖条件寄存器的指令时,CRU60和BEU 62存取控制寄存器文件(CRF)70,在一个优选实施例中,CRF 70包含一个条件寄存器、一个链路寄存器、一个计数寄存器以及一个重命名寄存器(rename register)。BEU 62存取条件、链路以及计数寄存器的值,以解算条件分支,从而获得一个路径地址,BEU 62把该路径地址提供于指令排序单元50,以沿所指示的路径启动指令取操作。在一个执行单元完成了对一条指令的执行之后,该执行单元通知ISU 50:按程序顺序调度指令的完成。资源管理器88还更新资源表100,以反映对分配给所完成的指令的资源的释放。
现在,参照图4说明了图1的数据处理系统8的一个示范性软件配置的软件层图。如图中所说明的,这一软件配置在其最低层具有一个操作系统监督程序(或管理程序)110,在并行执行于数据处理系统8中的一或多个操作系统28之间分配系统资源。把分配给操作系统28的每一实例的资源称为一个分区。于是,例如,管理程序110可以把两个处理单元10分配给操作系统28a的分区,把4个处理单元10分配给操作系统28b的分区,并且把实际与有效地址空间的某些范围分配给每一分区。
运行上述管理程序110的是操作系统28a、28b以及应用程序30。如这一技术领域中的熟练技术人员所熟悉的,每一个操作系统28把资源从管理程序110分配给它的资源池分配给不同的操作系统进程和应用程序30,独立地控制分配给它的分区的硬件的操作,并且提供了各种应用编程接口(API),通过这些API,其应用程序30可以存取操作系统服务。如以上所简要描述的,操作系统28包括一个调度程序120,向其分区中的处理器内核14调度线程;并且还可以包括一个工作载荷管理器(WLM)122,以优化分区中的工作和相关的数据的分布。
应用程序30包括一系列用户级进程112,可以对应用程序30进行编程,以执行各种计算、控制、通信、数据管理以及表达(presentation)功能。与操作系统进程一样,这些用户级进程112中的每一个均可包括一个或多个线程114,如此处所定义的,这些线程为由底层操作系统28加以调度的软件实体。
根据本发明,通过协调软件和硬件的优化努力,改进了数据处理系统8中的性能优化。具体地讲,硬件,例如,ISU 50的硬件监控器86,监控属于处理器内核14中所处理的一或多个线程的指令。把硬件所收集的信息报告给软件,例如一个操作系统28。然后,软件与/或硬件对执行的一个或多个线程进行分类,并且建立一个资源分配策略,该资源分配策略根据一个或多个线程的随时间变化的分类,对性能进行优化。
现在,参照图5说明根据本发明的一个实施例的一个示范性进程的高级逻辑流程图,数据处理系统8通过这一进程,动态地优化一个线程的性能。由数据处理系统8所并行执行的每一线程单独地执行所说明的这一进程。
如图中所说明的,该进程开始于框130处,它代表了操作系统28的一个调度程序,该调度程序对操作系统28的分区中的一个处理器内核14上的一个线程进行调度。该操作系统调度程序可以根据传统的调度策略调度该线程,例如这一传统调度策略基于相对其它可运行线程的相对优先级、所选择线程的亲合势、与/或其它因素。接下来,如框132处所描述的,处理器内核14中的硬件监控器86建立监控参数,这些监控参数控制一个或多个准则,将通过这些准则对线程加以监控,并且根据这些监控参数开始监控处理器内核14的线程的执行。可以建立针对当前线程的监控参数,例如,通过硬件默认;加载操作系统28并且线程在其上执行时,通过操作系统加载程序;通过简单地保留上一个所执行的线程的监控参数;或结合对线程的调度通过操作系统28,建立这些监控参数。在一个实施例中,操作系统28、操作系统加载程序或其它软件,可以把线程的监控参数写入字段90、92以及94中,可以作为存储器映像的存储位置,直接存取字段90、92以及94。
返回到图5,接下来,硬件监控器86在框134处判断当前线程是否满足在框132处所建立的监控参数。例如,硬件监控器86在框134处可以判断,相关指令计数字段92中所指示的那些具有相关指令类型字段90中所指出的指令的数目,是否在窗口定义字段94中所指出的尺寸的一个指令窗口中被检测出来。应该意识到,在框134处,硬件监控器86还可以判断包含在字段90、92以及94中3条准则是否被共同满足了一个所选择的次数。
如框136处所示,在框134处所说明的监控进程继续,直至线程终止执行或满足了字段90~94中所指出的监控参数。如果线程终止执行,则进程从框136转向框160,以下将对此加以描述。然而,如果硬件监控器86在框160处断定已满足了字段90~94中所规定的监控参数,则硬件监控器86在框140处向下层的(underlying)操作系统28发出一个中断。该中断主要是通知操作系统28:当前线程已满足监控参数,但中断也可能还要向操作系统28提供进一步的状态信息,例如线程ID、赋予线程的字段90~94的内容、资源利用信息(例如不同指令类型的指令计数、超高速缓冲存储器的利用情况、与/或窥探信息)等。
如框142处进一步说明的,响应在框134处对满足硬件监控参数的判断,硬件,例如硬件监控器86,可以有选择地修改存储在线程分类字段96中的线程的分类,与/或包含在资源分配策略字段102中的资源分配策略。例如,如果字段90~94定义了监控参数,而且根据这些监控参数硬件监控器80在一个给定指令窗口中统计了一个线程中的一定数量的浮点指令,则硬件监控器86可以更新相关线程分类字段96,以指出该线程为一个以浮点为主的线程。根据这一分类更新,资源管理器88将使用资源分配策略数据结构102中的资源分配策略自动修改把对线程的资源分配修改成新的线程分类(因此,也修改资源表100)。例如,响应这一新的线程分类,资源分配策略数据结构102中的资源分配策略,可以导致资源管理器88尝试把一或多个FPU 68中的额外的执行时间段分配给当前线程。
响应对硬件监控器86所产生的硬件中断的接收,在框144处,线程在其上运行的操作系统28判断该硬件中断是否指示:正并行运行在处理器内核14上的不同的线程之间是否存在一个已知的分类冲突。例如,在已知处理器内核14具有有限的资源集的情况下,如果具有相同或类似分类的线程的个数大于处理器内核14所能有效并行执行的线程的个数,则可能会存在分类冲突。如果操作系统28在框144处断定:对于当前线程来说,不存在分类冲突,则进程从框144前进到框146,以下将对框146加以描述。然而,如果操作系统28在框144处断定:对于当前线程来说,存在分类冲突,则操作系统28在框150处做进一步的判断,判断是否迁移线程。例如,这一判断可以考虑:是否存在一个不具有与当前线程发生分类冲突的处理器内核,并且已知其当前线程集和资源集。在框150处所示的判断还可以进一步考虑:可以取代当前线程加以运行并且将减少或消除分类冲突的具有足够的优先级与适当分类的不同的可运行线程的可用性。如果操作系统28在框1 50处断定不应迁移当前线程,则过程前进到框146,以下将对框146进行描述。然而,如果操作系统28断定应迁移当前线程以解决分类冲突,则过程前进到框152。
框152描述了操作系统28把当前线程迁移到一个不同的处理器内核14的过程,很可能是在重新调度该线程加以执行的之前,而在中断或挂起该线程的执行达一段时间之后。如框160处所示,操作系统28还可以有选择地把从硬件监控器86的相关线程分类字段96所获得的线程的当前与/或一个或多个历史分类存储在系统存储器26中的分类设施32的一个字段36中。在这一方式下,操作系统28可以适当地初始化线程分类字段96与/或针对线程的监控参数,以优化相继的执行。如果针对某一特定线程,把多个分类存储在分类设施32中,最好是把每一个这样的分类与一个标号,例如与一个指令指针相关地加以存储,这有助于针对线程的某一特定的部分标识相关线程的分类。在框160之后,图5中所示的进程于框162处结束。
返回到框146,响应操作系统28的判断:并行运行在同一处理器内核14的当前线程和另一个线程之间不存在分类冲突,或者不应迁移当前进程,操作系统28有选择地更新处理器内核14中的硬件,以促进对当前线程的处理过程的优化。例如,操作系统28可以更新包含在相关字段文件90~94中的监控参数,以收集进一步细化线程分类字段96中的分类所需的额外信息。另外,操作系统28还可以通过写相应的线程分类字段96,直接更新对当前线程的分类。操作系统28可以另外或附加地在规定当前处理器内核14中的线程分类的当前分布的情况下,修改资源分配策略数据结构102中的资源分配策略,以更好地优化线程的处理过程。在框146之后,图5中所说明的进程返回到框134,以上已对框134进行了描述。
与传统的优化技术相比,图5中所示出的示范性进程提供了一系列优点。首先,由于以硬件的形式实现线程监控,所以详细的、专门针对线程的、随时间变化的分类信息既可以为硬件资源管理器所使用,也可以为软件调度和工作载荷管理例程所使用,并且支持更精细的优化。其次,由于在线程处理过程期间对图5中所示的进程进行迭代,所以一个单一的线程在其执行期间在不同的位置可以被不同地加以分类,这取决于所选择的监控参数和该线程的随时间变化的行为。第三,操作系统能够不仅根据资源的亲合势,而且还根据硬件所提供的线程分类,更智能化地判断是否迁移其分区中的各个线程。
尽管参照优选实施例已对本发明进行了具体的描述,但这一技术领域中的熟练技术人员将会意识到,在不背离本发明的精神与范围的情况下,可以在形式与细节上对本发明进行各种各样的修改。例如尽管已针对一个运行控制本发明功能的软件的计算机系统,描述了本发明的各个方面,但应该认识到,也可以把本发明另外或附加地作为一种随数据处理系统一起使用的程序产品加以考虑。可以经由各种信号承载媒体把定义本发明功能的程序提交给一个数据处理系统,这些信号承载媒体包括,但不局限于非可重写存储媒体(例如CD-ROM)、可重写存储媒体(例如,软盘或硬盘驱动器)以及通信媒体,例如数字和模拟网络。因此,应该认识到,当对控制本发明功能的计算机可读的指令进行传送或加以编码时,这样的信号承载媒体代表了本发明的另外的实施例。
Claims (22)
1.一种用于操作一个数据处理系统的方法,所述方法包括:
在该数据处理系统中的一个处理单元中建立一个或多个监控参数集;
在硬件方面,处理单元根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的一系列可调度软件实体中每一个的执行;以及
处理单元向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
2.根据权利要求1所述的方法,其中,所述建立一个监控参数集包括处理单元从所述运行在数据处理系统中的软件接收所述监控参数集,并且把所述监控参数集存储在所述处理单元中。
3.根据权利要求1所述的方法,其中,所述报告包括所述处理单元中断所述运行在数据处理系统中的软件。
4.根据权利要求1所述的方法,其中,所述建立一个监控参数集包括从所述运行在数据处理系统中的软件接收标识将被检测的指令类型以及该指令类型的多个将被检测的指令的信息。
5.根据权利要求1所述的方法,其中:
所述运行在数据处理系统中的软件包括一个操作系统;
所述方法中,所述操作系统根据处理单元所报告的多个可调度软件实体中的每一个对硬件资源的使用情况,调度处理单元中一个或多个可调度软件实体以加以执行。
6.根据权利要求1所述的方法,还包括:
所述运行在数据处理系统中的软件生成对多个可调度软件实体中的每一个的相应分类;以及
所述运行在数据处理系统中的软件以与相应的可调度软件实体的标识符相关联的形式存储这些分类。
7.根据权利要求6所述的方法,其中:
所述运行在数据处理系统中的软件包括一个操作系统;以及
所述方法还包括所述操作系统参照所存储的分类,调度一个或多个可调度软件实体。
8.根据权利要求6所述的方法,还包括:
所述运行在数据处理系统中的软件把至少一个正在执行的可调度软件实体的一个分类通知给处理单元;以及
响应处理单元对这一分类的接收,处理单元动态地修改硬件资源向可调度软件实体的分配。
9.根据权利要求8所述的方法,其中:
可调度软件实体为一个第一可调度软件实体;
所述方法还包括处理单元并行地执行第一可调度软件实体和一个第二可调度软件实体中的指令;以及
修改资源的分配包括,增加向所述第二可调度软件实体分配一个由所述第一和所述第二可调度软件实体共享的硬件资源。
10.一种数据处理系统,包括:
数据存储器;
一个或多个耦合于所述数据存储器的处理单元,其中,所述一或多个处理单元中的一个处理单元包括:
一个或多个执行指令的执行单元;
指令拾取和分配电路,把指令提供于所述一个或多个执行单元,以加以执行;
一个硬件监控器,其响应于一或多个监控参数集,在硬件方面,根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的多个可调度软件实体中的每一个的执行;并且向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
11.根据权利要求10所述的数据处理系统,其中,所述硬件监控器包括用于一个或多个监控参数集的存储器,而且其中,硬件监控器响应于从所述运行在数据处理系统中的软件对所述监控参数集的接收,在用于一个或多个监控参数集的存储器中存储至少一个监控参数集。
12.根据权利要求10所述的数据处理系统,其中,所述硬件监控器通过中断所述运行在数据处理系统中的软件,报告硬件资源的所述使用情况。
13.根据权利要求10所述的数据处理系统,其中,所述一个或多个监控参数集中的至少一个监控参数集包括标识一个将被检测的指令类型以及该指令类型的多个将被检测的指令的信息。
14.根据权利要求10所述的数据处理系统,其中:
所述运行在数据处理系统中的软件包括一个操作系统;
所述操作系统根据处理单元所报告的多个可调度软件实体中的每一个对硬件资源的使用情况,调度处理单元中一个或多个可调度软件实体,以加以执行。
15.根据权利要求10所述的数据处理系统,还包括:
所述软件存储在数据存储器中,而且其中,所述软件生成多个可调度软件实体中的每一个的一个相应的分类;以及以与相应的可调度软件实体的标识符相关联的形式存储这些分类。
16.根据权利要求15所述的数据处理系统,其中:
所述软件包括一个操作系统;以及
所述操作系统参照所存储的分类,调度一个或多个可调度软件实体。
17.根据权利要求15所述的数据处理系统,其中:
所述运行在数据处理系统中的软件把至少一个正在执行的所述可调度软件实体的一个分类通知给处理单元;以及
处理单元包括一个资源管理器,该资源管理器响应于处理单元对这一分类的接收,动态地修改硬件资源向所述可调度软件实体的分配。
18.根据权利要求17所述的数据处理系统,其中:
可调度软件实体为一个第一可调度软件实体;
处理单元并行地执行第一可调度软件实体和一个第二可调度软件实体中的指令;以及
资源管理器通过向所述第二可调度软件实体增加一个由所述第一和所述第二可调度软件实体共享的硬件资源的分配,修改资源的分配。
19.一种用于一个数据处理系统的处理单元,所述处理单元包括:
一个或多个执行指令的执行单元;
指令拾取和分配电路,其把指令提供给所述一个或多个执行单元,以加以执行;
一个硬件监控器,其响应于一个或多个监控参数集,在硬件方面,根据一个或多个监控参数集中的一个监控参数集,监控处理单元中的多个可调度软件实体中的每一个的执行;并且向运行在数据处理系统中的软件报告多个可调度软件实体中的每一个对硬件资源的使用情况。
20.根据权利要求19所述的处理单元,其中,所述硬件监控器包括用于一个或多个监控参数集的存储器,而且其中,硬件监控器响应于从所述运行在数据处理系统中的软件对所述监控参数集的接收,在用于一个或多个监控参数集的存储器中存储至少一个监控参数集。
21.根据权利要求19所述的处理单元,其中,所述硬件监控器通过中断所述运行在数据处理系统中的软件,报告硬件资源的所述使用情况。
22.根据权利要求19所述的处理单元,其中,所述一个或多个监控参数集中的至少一个监控参数集包括标识一个将加以检测的指令类型和该指令类型的多个将被检测的指令的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/755,877 | 2004-01-13 | ||
US10/755,877 US7475399B2 (en) | 2004-01-13 | 2004-01-13 | Method and data processing system optimizing performance through reporting of thread-level hardware resource utilization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1641590A CN1641590A (zh) | 2005-07-20 |
CN100388210C true CN100388210C (zh) | 2008-05-14 |
Family
ID=34739685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100044195A Expired - Fee Related CN100388210C (zh) | 2004-01-13 | 2005-01-13 | 通过硬件资源利用报告优化性能的方法和数据处理系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7475399B2 (zh) |
CN (1) | CN100388210C (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533716B2 (en) * | 2004-03-31 | 2013-09-10 | Synopsys, Inc. | Resource management in a multicore architecture |
US7596788B1 (en) | 2004-05-11 | 2009-09-29 | Platform Computing Corporation | Support of non-trivial scheduling policies along with topological properties |
US7739532B2 (en) * | 2004-06-07 | 2010-06-15 | Intel Corporation | Method, apparatus and system for enhanced CPU frequency governers |
US9038070B2 (en) * | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US7707578B1 (en) | 2004-12-16 | 2010-04-27 | Vmware, Inc. | Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system |
US8245230B2 (en) | 2005-03-14 | 2012-08-14 | Qnx Software Systems Limited | Adaptive partitioning scheduler for multiprocessing system |
CA2538503C (en) * | 2005-03-14 | 2014-05-13 | Attilla Danko | Process scheduler employing adaptive partitioning of process threads |
US9361156B2 (en) | 2005-03-14 | 2016-06-07 | 2236008 Ontario Inc. | Adaptive partitioning for operating system |
US8387052B2 (en) * | 2005-03-14 | 2013-02-26 | Qnx Software Systems Limited | Adaptive partitioning for operating system |
US8195922B2 (en) * | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
US20060212853A1 (en) * | 2005-03-18 | 2006-09-21 | Marvell World Trade Ltd. | Real-time control apparatus having a multi-thread processor |
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
US7719983B2 (en) * | 2006-01-06 | 2010-05-18 | International Business Machines Corporation | Method for autonomic system management using adaptive allocation of resources |
US8495649B2 (en) * | 2006-07-19 | 2013-07-23 | International Business Machines Corporation | Scheduling threads having complementary functional unit usage on SMT processors |
US8069444B2 (en) * | 2006-08-29 | 2011-11-29 | Oracle America, Inc. | Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors |
US8799902B2 (en) * | 2007-04-09 | 2014-08-05 | Intel Corporation | Priority based throttling for power/performance quality of service |
US20080271030A1 (en) * | 2007-04-30 | 2008-10-30 | Dan Herington | Kernel-Based Workload Management |
US8782655B2 (en) * | 2008-07-01 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Controlling computing resource consumption |
US8843929B1 (en) * | 2008-07-15 | 2014-09-23 | Google Inc. | Scheduling in computer clusters |
CN101639799B (zh) * | 2008-07-31 | 2013-02-13 | 英赛特半导体有限公司 | 集成电路表征系统及方法 |
US8561073B2 (en) * | 2008-09-19 | 2013-10-15 | Microsoft Corporation | Managing thread affinity on multi-core processors |
US9430297B2 (en) * | 2008-12-15 | 2016-08-30 | International Business Machines Corporation | Load balancing of adapters on a multi-adapter node |
CA2680601C (en) * | 2009-10-16 | 2010-11-02 | Ibm Canada Limited - Ibm Canada Limitee | Managing multiple speculative assist threads at differing cache levels |
CN101996087B (zh) * | 2010-12-02 | 2013-12-04 | 北京星河亮点技术股份有限公司 | 多核处理器阵列程序的动态加载方法 |
CN102571694A (zh) * | 2010-12-16 | 2012-07-11 | 盛乐信息技术(上海)有限公司 | 一种计算机性能优化系统及方法 |
US8694832B2 (en) | 2011-03-03 | 2014-04-08 | International Business Machines Corporation | Assist thread analysis and debug mechanism |
WO2013165349A1 (en) * | 2012-04-30 | 2013-11-07 | Hewlett Packard Development Company, L.P. | Processor providing multiple system images |
US9367472B2 (en) | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
CN104346221B (zh) * | 2013-08-02 | 2018-05-08 | 北京百度网讯科技有限公司 | 服务器硬件设备等级划分、调度管理方法及装置、服务器 |
WO2015061962A1 (en) * | 2013-10-29 | 2015-05-07 | Hua Zhong University Of Science Technology | Hardware resource allocation for applications |
US10140157B2 (en) * | 2014-05-29 | 2018-11-27 | Apple Inc. | Multiple process scheduling of threads using process queues |
US10216543B2 (en) * | 2015-08-14 | 2019-02-26 | MityLytics Inc. | Real-time analytics based monitoring and classification of jobs for a data processing platform |
US10102103B2 (en) | 2015-11-11 | 2018-10-16 | International Business Machines Corporation | System resource component utilization |
US10649876B2 (en) | 2017-04-20 | 2020-05-12 | International Business Machines Corporation | Maintaining manageable utilization in a system to prevent excessive queuing of system requests |
GB2563384B (en) * | 2017-06-07 | 2019-12-25 | Advanced Risc Mach Ltd | Programmable instruction buffering |
US10997058B2 (en) * | 2018-07-30 | 2021-05-04 | EMC IP Holding Company LLC | Method for performance analysis in a continuous integration pipeline |
CN109408827A (zh) * | 2018-11-07 | 2019-03-01 | 南京理工大学 | 一种基于机器学习的软件实体识别方法 |
US11030015B2 (en) * | 2019-09-19 | 2021-06-08 | International Business Machines Corporation | Hardware and software resource optimization |
CN111475295B (zh) * | 2020-04-03 | 2024-02-20 | 上海依图网络科技有限公司 | 软硬件分层管理方法、装置及计算机可读存储介质 |
WO2022027169A1 (en) * | 2020-08-03 | 2022-02-10 | Nokia Shanghai Bell Co., Ltd. | Method and apparatus for fine-grained isolation in cn nss domain of e2e network slice |
CN111949482B (zh) * | 2020-08-13 | 2022-05-20 | 广东佳米科技有限公司 | 一种基于线程负载的软件性能瓶颈指征方法及系统 |
CN118193197A (zh) * | 2024-03-14 | 2024-06-14 | 海光信息技术股份有限公司 | 信息处理方法及装置、资源分配方法及装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1283819A (zh) * | 1999-07-27 | 2001-02-14 | 朗迅科技公司 | 监控演示评价软件运行时间使用的方法 |
US6192449B1 (en) * | 1996-04-12 | 2001-02-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
CN1365032A (zh) * | 2001-12-29 | 2002-08-21 | 天津大学 | 远程网络监控和二次开发功能的开放式结构数控系统 |
JP2002269023A (ja) * | 2001-01-08 | 2002-09-20 | Hewlett Packard Co <Hp> | 効率最適化方法およびパフォーマンス最適化システム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630128A (en) * | 1991-08-09 | 1997-05-13 | International Business Machines Corporation | Controlled scheduling of program threads in a multitasking operating system |
US6487578B2 (en) * | 1997-09-29 | 2002-11-26 | Intel Corporation | Dynamic feedback costing to enable adaptive control of resource utilization |
US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6026354A (en) * | 1998-08-10 | 2000-02-15 | Hewlett-Packard Company | Device monitoring system with dedicated bus and processor |
US6658654B1 (en) * | 2000-07-06 | 2003-12-02 | International Business Machines Corporation | Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment |
US6918116B2 (en) * | 2001-05-15 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reconfiguring thread scheduling using a thread scheduler function unit |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
US7072970B2 (en) * | 2001-10-05 | 2006-07-04 | International Business Machines Corporation | Programmable network protocol handler architecture |
-
2004
- 2004-01-13 US US10/755,877 patent/US7475399B2/en not_active Expired - Fee Related
-
2005
- 2005-01-13 CN CNB2005100044195A patent/CN100388210C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192449B1 (en) * | 1996-04-12 | 2001-02-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
CN1283819A (zh) * | 1999-07-27 | 2001-02-14 | 朗迅科技公司 | 监控演示评价软件运行时间使用的方法 |
JP2002269023A (ja) * | 2001-01-08 | 2002-09-20 | Hewlett Packard Co <Hp> | 効率最適化方法およびパフォーマンス最適化システム |
CN1365032A (zh) * | 2001-12-29 | 2002-08-21 | 天津大学 | 远程网络监控和二次开发功能的开放式结构数控系统 |
Also Published As
Publication number | Publication date |
---|---|
US7475399B2 (en) | 2009-01-06 |
CN1641590A (zh) | 2005-07-20 |
US20050154860A1 (en) | 2005-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100388210C (zh) | 通过硬件资源利用报告优化性能的方法和数据处理系统 | |
US7448037B2 (en) | Method and data processing system having dynamic profile-directed feedback at runtime | |
Witt et al. | Predictive performance modeling for distributed batch processing using black box monitoring and machine learning | |
US9542231B2 (en) | Efficient execution of parallel computer programs | |
Kaleem et al. | Adaptive heterogeneous scheduling for integrated GPUs | |
US10061588B2 (en) | Tracking operand liveness information in a computer system and performing function based on the liveness information | |
US6732138B1 (en) | Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process | |
Giorgi et al. | An introduction to DF-Threads and their execution model | |
CN1882913A (zh) | 使用活动信息的虚拟机管理 | |
CN103348323A (zh) | 动态二进制优化 | |
WO2012067688A1 (en) | Codeletset representation, manipulation, and execution-methods, system and apparatus | |
Jia et al. | Auto-tuning Spark big data workloads on POWER8: Prediction-based dynamic SMT threading | |
Yu et al. | Collaborative heterogeneity-aware os scheduler for asymmetric multicore processors | |
US8296552B2 (en) | Dynamically migrating channels | |
Yu et al. | Colab: a collaborative multi-factor scheduler for asymmetric multicore processors | |
Fang et al. | Practical iterative optimization for the data center | |
Horstmann et al. | A framework to design and implement real-time multicore schedulers using machine learning | |
US20050066305A1 (en) | Method and machine for efficient simulation of digital hardware within a software development environment | |
Stojkovic et al. | EcoFaaS: Rethinking the Design of Serverless Environments for Energy Efficiency | |
Liang et al. | Efficient kernel management on GPUs | |
US20240256333A1 (en) | Task-centric job scheduling method and system for heterogeneous clusters | |
Lv et al. | Dynamic I/O-aware scheduling for batch-mode applications on chip multiprocessor systems of cluster platforms | |
TWI435213B (zh) | 於虛擬資料處理環境中多個邏輯分割間平衡存取各實體系統資源及動態調諧一判定調度排程之排程器的方法、系統及電腦可讀媒體 | |
JP5243822B2 (ja) | 仮想化されたデータ処理環境におけるワークロード管理 | |
Beaumont et al. | Fine-grained management of thread blocks for irregular applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080514 Termination date: 20190113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |