用于设备实现逻辑CPU划分的使用热度图表示的方法和装置转让专利

申请号 : CN201210416294.7

文献号 : CN102945162B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : C.L.罗德斯P.S.波诺马雷夫M.P.杜伊南P.D.多纳特

申请人 : 微软技术许可有限责任公司

摘要 :

为具有多个逻辑CPU划分的设备显示逻辑中央处理单元(CPU)划分管理视图。该管理视图被显示为包括多个单元格的热度图表示,每个单元格对应于多个逻辑CPU划分中的一个。作为该热度图表示的一部分,多个单元格中的每一个基于相对应的逻辑CPU划分的使用而以多种不同方式之一进行显示,并且标识多个逻辑处理器中相对应的一个的使用的使用数值也可以被显示在单元格中。

权利要求 :

1.一种用于设备实现逻辑CPU划分的使用热度图表示的方法,包括:

确定该设备是否具有小于阈值数量的逻辑CPU划分的多个逻辑CPU划分;

如果该设备具有多个逻辑CPU划分以及小于阈值数量的逻辑CPU划分,则将该设备的逻辑CPU划分管理视图显示(704)为图形表示,该图形表示包括一个或多个图形,该一个或多个图形中的每一个标识出多个逻辑CPU划分中相对应的一个的使用;

如果该设备具有至少阈值数量的逻辑CPU划分,则将逻辑CPU划分管理视图显示(706)为热度图表示,该热度图表示包括每一个均对应于该设备的多个逻辑CPU划分之一的多个单元格;并且该多个单元格中的每一个基于相对应逻辑CPU划分的使用而以多种不同方式之一被显示。

2.根据权利要求1的方法,每个逻辑CPU划分包括逻辑处理器。

3.根据权利要求1的方法,多种不同方式中的每一种包括对应于逻辑CPU划分的使用数值的范围的颜色强度。

4.根据权利要求3的方法,多种不同方式中的每一种包括用于多个单元格中的一个或多个的背景的颜色强度。

5.根据权利要求1的方法,进一步包括针对多个单元格中的一个或多个在单元格中显示标识出多个逻辑CPU划分中相对应的一个的使用的使用数值。

6.根据权利要求5的方法,进一步包括针对多个单元格中的一个或多个在单元格中显示标识出多个逻辑CPU划分中相对应的一个的内核使用的内核使用数值。

7.根据权利要求1的方法,进一步包括为多个单元格之一显示提示框,该提示框包括与对应于多个单元格之一的逻辑CPU划分相关的附加信息。

8.一种计算设备,包括:

一个或多个处理器(802);

一个或多个具有存储于其上的多个指令的计算机可读媒体(804),当被一个或多个处理器所执行时,该指令使得一个或多个处理器:如果该计算设备具有多个逻辑CPU划分以及小于阈值数量的逻辑CPU划分,则将该设备的逻辑CPU划分管理视图显示(704)为图形表示,该图形表示包括一个或多个图形,该一个或多个图形中的每一个标识出多个逻辑CPU划分中相对应的一个的使用;并且如果该计算设备具有至少阈值数量的逻辑CPU划分,则将该设备的逻辑CPU划分管理视图显示(706)为热度图表示,该热度图表示包括每一个均对应于多个逻辑CPU划分之一的多个单元格,该多个单元格中的每一个基于相对应的逻辑CPU划分的使用而以多种不同方式之一进行显示。

9.根据权利要求8的计算设备,每个逻辑CPU划分包括非均匀存储器访问(NUMA)节点。

10.根据权利要求8的计算设备,该多个指令进一步使得一个或多个处理器在多个逻辑CPU划分中相对应的一个被暂停的情况下在相对应的单元格中显示多个逻辑CPU划分中的该相对应的一个被暂停的指示。

11.一种用于设备实现逻辑CPU划分的使用热度图表示的器具,包括:

用于确定该设备是否具有小于阈值数量的逻辑CPU划分的多个逻辑CPU划分的装置;

用于如果该设备具有多个逻辑CPU划分以及小于阈值数量的逻辑CPU划分,则将该设备的逻辑CPU划分管理视图显示(704)为图形表示的装置,该图形表示包括一个或多个图形,该一个或多个图形中的每一个标识出多个逻辑CPU划分中相对应的一个的使用;

用于如果该设备具有至少阈值数量的逻辑CPU划分,则将逻辑CPU划分管理视图显示(706)为热度图表示的装置,该热度图表示包括每一个均对应于该设备的多个逻辑CPU划分之一的多个单元格;并且该多个单元格中的每一个基于相对应逻辑CPU划分的使用而以多种不同方式之一被显示。

说明书 :

用于设备实现逻辑CPU划分的使用热度图表示的方法和装置

[0001] 相关申请
[0002] 本申请要求Christina L. Rhodes等人于2011年10月26日提交的题为“Logical Processors Heat Map Representation”的美国临时申请序列号61/551886的优先权,其公开全文通过引用结合于此。

背景技术

[0003] 随着技术的进步,各种计算设备中使用的中央处理单元(CPU)已经从具有串行执行指令的单个指令执行核心演化为具有并行执行指令的多个指令执行核心和逻辑划分。这些计算设备也从具有单个CPU演化为具有并行执行指令的多个CPU。虽然这些进步已经提高了计算设备的处理能力,但是它们并非不存在问题。这样的问题之一在于假定计算设备中可以包括大量的逻辑CPU划分,用户会难以对跨该计算设备的所有逻辑CPU划分的活动进行监视。

发明内容

[0004] 提供该发明内容而以简化形式引入以下在具体实施方式中进一步描述的概念的选择。该发明内容并非意在标识出所请求保护主题的关键特征或必要特征,也并非意在被用来对所请求保护主题的范围进行限制。
[0005] 依据一个或多个方面,逻辑中央处理单元(CPU)划分管理视图在设备被显示为热度图(heat map)表示。该热度图表示包括多个单元格,其中每个单元格对应于该设备的多个逻辑CPU划分之一。作为该热度图表示方式的一部分,多个单元格中的每一个基于相对应逻辑CPU划分的使用而以多种不同方式之一进行显示。
[0006] 依据一个或多个方面,如果具有多个逻辑中央处理单元(CPU)划分的设备具有小于阈值数目的逻辑CPU划分,则用于该设备的逻辑CPU划分管理视图被显示为图形表示。该图形表示包括一个或多个图形,其中每个图形标识出多个逻辑CPU划分中相对应的一个的使用。然而,如果该设备具有至少阈值数量的逻辑CPU划分,则用于该设备的逻辑CPU划分管理视图被显示为热度图表示。该热度图表示包括每一个均对应于一个逻辑CPU划分的多个单元格,并且多个单元格中的每一个基于相对应的逻辑CPU划分的使用而以多种不同方式之一进行显示。

附图说明

[0007] 相同附图标记贯穿附图指代同样的特征。
[0008] 图1是图示依据一个或多个实施例的实现逻辑CPU划分的使用热度图表示的示例设备的框图。
[0009] 图2图示了依据一个或多个实施例的逻辑CPU划分的管理视图的示例图形表示。
[0010] 图3图示了依据一个或多个实施例的逻辑CPU划分的管理视图的示例热度图表示。
[0011] 图4图示了依据一个或多个实施例的示例提示框。
[0012] 图5图示了依据一个或多个实施例的逻辑CPU划分的管理视图的示例热度图表示。
[0013] 图6图示了依据一个或多个实施例的逻辑CPU划分的管理视图的示例热度图表示。
[0014] 图7是图示依据一个或多个实施例的用于设备实现逻辑CPU划分的使用热度图表示的示例处理的流程图。
[0015] 图8图示了依据一个或多个实施例的能够被配置为实现逻辑CPU划分的使用热度图表示的示例计算设备。

具体实施方式

[0016] 这里对逻辑CPU划分的使用热度图表示进行讨论。计算设备包括多个逻辑CPU划分,诸如多个逻辑处理器。这些多个逻辑CPU划分的使用可以以各种方式进行显示。如果计算设备包括少于阈值数量的逻辑CPU划分,则使用图形表示,其中显示多个图形并且每个图形是相对应的逻辑CPU划分在特定时间量内的使用的图形。然而,如果计算设备包括至少阈值数量的逻辑CPU划分,则使用热度图表示,其中显示具有多个单元格的表格并且每个单元格显示相对应的逻辑CPU划分的使用。每个单元格基于相对应逻辑CPU划分的使用而以多种不同方式(诸如使用不同颜色强度)之一而进行显示。
[0017] 图1是图示依据一个或多个实施例的实现逻辑CPU划分的使用热度图表示的示例设备100的框图。设备100可以是各种不同类型的设备,诸如物理设备或虚拟设备。例如,设备100可以是诸如台式计算机、服务器计算机、膝上或笔记本计算机、平板或记事本计算机、移动站点、娱乐装置、通信耦接至显示设备、电视机或其它显示设备的机顶盒、蜂窝或其它无线电话、游戏操控台、车载计算机等的物理设备。设备100也可以是虚拟设备,诸如在物理设备上运行的虚拟机。虚拟机可以在任意各种不同类型的物理设备(例如,以上所列出的各种类型中的任意类型)上运行。
[0018] 设备100包括一个或多个中央处理单元(CPU)102和存储器104。CPU 102的每一个均可以包括多个(x)逻辑CPU划分106。每个逻辑CPU划分106是逻辑(而不是物理)划分,其允许单个CPU 102被视为多个CPU。不同CPU 102可以具有相同数量的逻辑CPU划分106和/或不同CPU 102可以具有不同数量的逻辑CPU划分106。每个CPU 102可以具有一个或多个核心,并且CPU 102的每个核心可以具有一个或多个逻辑CPU划分106。不同核心可以具有相同数量的逻辑CPU划分106和/或不同核心可以具有不同数量的逻辑CPU划分。
[0019] 在一个或多个实施例中,每个逻辑CPU划分是逻辑处理器。每个逻辑处理器作为单独的CPU由计算设备100上运行的操作系统(或者可替换地单独的CPU核心)进行寻址和对待,尽管多个这样的逻辑处理器可以(并且通常)由相同的CPU 102(或相同CPU 102的相同核心)所实现或者在其上实现。可替换地,每个逻辑CPU划分可以是不同的逻辑划分,诸如非统一存储器访问(NUMA)节点。每个NUMA节点包括存储器区域,并且还可以包括逻辑处理器、CPU和/或CPU核心。虽然这里的许多讨论涉及逻辑处理器,但是应当注意的是,这样的讨论也可以应用于诸如NUMA节点的其它逻辑CPU划分。
[0020] 存储器104包括易失性存储器(例如,随机访问存储器(RAM))和/或非易失性存储器(例如,闪存、只读存储器(ROM))。存储器104存储由一个或多个CPU 102所执行的指令。存储器104包括操作系统112以及一个或多个处理114。各个不同的程序可以作为处理114在设备100上运行,诸如娱乐程序、游戏程序、资源程序、工具程序、生产程序等。操作系统112对处理114的运行进行管理,包括响应于用户运行程序的请求启动处理114,以及响应于用户终止处理的请求停止处理器114的执行。
[0021] 操作系统112包括逻辑CPU划分管理模块116,其获取与逻辑CPU划分106相关的信息。管理模块116还生成一个或多个逻辑CPU划分管理视图,如以下更为详细讨论的,其中包括图形表示(也被称作图形视图)和热度图表示(也被称作热度图视图)。管理模块116在那些逻辑CPU划分管理视图中显示逻辑CPU划分的使用。
[0022] 这些逻辑CPU划分管理视图由管理模块116经由用户接口(UI)所显示或以其他方式进行呈现。各种用户输入也可以使用各种不同输入机制经由UI来提供,诸如通过按压设备100的小键盘或键盘的一个或多个按键,按压设备100的控制器的一个或多个按键,按压设备100的触摸板或触摸屏的特定部分,在设备100的触摸板或触摸屏上做出特定手势,在设备100的控制器上做出特定手势,对麦克风提供可听输入,做出图像捕捉组件所观察到的手部或其它身体部位的特定运动,等等。通过这些各种用户输入,用户能够选择特定按钮、显示部分、菜单项等。虽然图1中图示了单个管理模块116,但是应当注意的是,模块116的功能能够可替换地分布到多个模块之中。
[0023] 在图1所图示的示例中,设备100包括CPU 102和逻辑CPU划分管理模块116二者,并且逻辑CPU划分的管理视图在包括CPU 102的相同设备上被生成并显示。可替换地,逻辑CPU划分管理视图可以在与包括CPU 102的相同设备上生成,并且信号被提供至在其上显示逻辑CPU划分管理视图的另一个设备。可替换地,逻辑CPU划分管理模块116可以包括在与CPU 102不同的设备上,并且因此逻辑CPU划分管理视图可以在不同于包括CPU 102的设备的设备上生成(并显示)。
[0024] 典型地,管理模块116响应于请求显示逻辑CPU划分管理视图的用户输入而生成并显示逻辑CPU划分管理视图。可替换地,管理模块116可以响应于多种不同事件生成并显示逻辑CPU划分管理视图,事件诸如来自设备100的另一个组件或模块的请求、来自另一个设备的请求,等等。
[0025] 在一个或多个实施例中,模块116在设备100包括少于(或者可替换地少于或等于)阈值数量(例如,64)的逻辑CPU划分106的情况下将逻辑CPU划分管理视图显示为图形表示,并且在设备100包括至少(或者可替换地多于)阈值数量的逻辑CPU划分106的情况下将逻辑CPU划分管理视图显示为热度图表示。该阈值数量可以有所变化,并且可以任选地由设备100的用户或管理者进行设置。可替换地,显示图形表示还是热度图表示(和/或阈值数量)可以是设备100的用户或管理员所能够设定的配置设置。也可以存在针对任意数量的逻辑CPU划分开启或关闭这种令不同表示得以显示的特征的选项。该选项例如可以由设备100的用户或管理者进行选择。
[0026] 逻辑CPU划分的使用是指该逻辑CPU划分有多少处理能力正被用于执行处理(例如,逻辑CPU划分为繁忙而不是空闲的时间百分比)。这些处理可以包括处理114以及实现至少部分操作系统112的的处理。逻辑CPU划分的这种使用也被称作逻辑CPU划分的活动。
[0027] 逻辑CPU划分的使用可以以各种不同方式来确定。在一个或多个实施例中,操作系统(例如,图1的操作系统112)包括一个或多个针对CPU 102的每个逻辑CPU划分追踪逻辑CPU划分使用量的模块。在这样的实施例中,逻辑CPU划分管理模块116从这些一个或多个模块获取针对每个逻辑CPU划分的逻辑CPU划分数量。管理模块116还针对每个逻辑CPU划分而从这些一个或多个模块获取每个处理逻辑CPU划分使用数量。可替换地,每个逻辑CPU划分的使用可以以其它方式来确定。例如,逻辑CPU划分管理器(例如,处理器调度器)可以对每个逻辑CPU划分的使用量进行追踪,并且管理模块116可以从该管理器获取逻辑CPU划分使用的数量。管理模块116还可以针对每个逻辑CPU划分而从该管理器获取每个处理逻辑CPU划分使用数量。
[0028] 图2图示了依据一个或多个实施例的逻辑CPU划分管理视图的示例图形表示200。参考作为逻辑处理器的逻辑CPU划分对图形表示200进行讨论,但是其它逻辑CPU划分可以类似地在图形表示200中显示。
[0029] 图形表示200包括图形部分202和数据部分204。图形部分202包括对应于多个逻辑处理器中每一个的一个图形。在所图示的示例中,设备包括四个逻辑处理器,并且因此图形部分202包括四个图形。图形部分202中的每个图形图示了特定逻辑处理器在特定时间量内的逻辑处理器使用。例如,该特定时间量可以为60秒,但是可替换地能够使用其它时间量。
[0030] 逻辑处理器使用可以使用各种数据单位来显示。例如,逻辑处理器使用可以被显示为特定逻辑处理器的百分比,诸如所使用逻辑处理器能力的百分比(例如,总体可用的逻辑处理器能力的百分比)。可替换地,可以使用其它数据单位。
[0031] 在一个或多个实施例中,每个视图缺省地将逻辑处理器使用显示为该逻辑处理器繁忙而非空闲的时间百分比,而无论该逻辑处理器是以内核还是其它(例如,用户)模式来执行代码。然而,用户能够任选地通过提供各种输入(例如,选择菜单项、选择按钮、输入特定手势等)而选择开启“显示内核使用”。内核使用是指以内核模式执行代码的逻辑处理器的利用,并且图形部分202中的每个图形可以包括图示以内核模式执行代码的每个逻辑处理器的使用的附加线条(未示出)。因此,当示出内核使用时,图形部分202中的每个图形包括两条线:一条线图示无论执行代码的模式如何的相对应逻辑处理器的使用,而另一条线则图示以内核模式执行代码的相对应逻辑处理器的使用。图形中的这两条线可以以不同方式进行显示,诸如对两条线显示不同图案(例如,实线和虚线)、对两条线显示不同颜色、不同的线条强度或宽度,等等。
[0032] 在图2所图示的示例中,每个图形具有标识出时间范围(例如,之前的60秒)的水平轴以及在该时间范围内的各个时间点(例如,每秒钟)标识出所使用逻辑处理器能力的百分比的垂直轴(例如,从0%到100%的范围)。该图形被图示为曲线图,虽然可替换地能够使用任意各种不同类型的图形和/或图表,诸如叠加曲线图、柱状图、叠加柱状图、Gantt图表等。
[0033] 在一个或多个实施例中,在提示框或者其它窗口或区域中显示与对应于图形部分202中的图形的逻辑处理器相关的附加信息。该附加信息例如可以当在图形上悬停时(例如,当光标或手指位于所显示图形之上或上方时),在图像被选择时(例如,通过用户触碰图形)等等进行显示。如以下更为详细讨论的,可以在这样的提示框或者其它窗口或区域中显示各种附加信息。
[0034] 在图2所图示的示例中,每个图形对应于单个逻辑处理器的使用并对其进行显示。可替换地,在一些情况下,图形可以对应于并显示多个逻辑处理器的使用(例如,平均在一起的多个逻辑处理器的使用)。
[0035] 数据部分204与逻辑处理器在其上实施或者由逻辑处理器所实施的CPU相关的各种数据。在所图示的示例中,关于CPU的使用或利用(例如,如所图示的9%)、CPU的速度(例如,如所图示的2.00 GHz)、在CPU上运行的处理的数量(例如,如所图示的51)、在CPU上运行的线程的数量(例如,如所图示的944)、CPU上由操作系统所管理的句柄的数量(例如,如所图示的153082)以及诸如自设备最后一次被重启或开机起的时间量的CPU累计时间(例如,如所图示的4:22:59:12,诸如4小时22分钟59又12/100秒)的数据被包括在数据部分204中。此外,在所图示的示例中,CPU的最大速度(例如,如所图示的2.83 GHz)、设备中的物理处理器或CPU的数量(例如,所图示示例中的1)、在设备中的CPU上或由其所实施的逻辑处理器的数量(例如,所图示示例中的4)、针对CPU的虚拟化被支持还是不支持(例如,所图示示例中的无效),CPU所使用的L1高速缓存的大小(例如,所图示示例中的256 KB(千字节))以及CPU所使用的L2高速缓存的大小(例如,所图示示例中的12288KB)也包括在数据部分204中。应当注意的是,数据部分204中所包括的数据是能够连同图形部分202中的图形一起进行显示的数据的示例。然而,并非数据部分204中所图示的所有数据都需要被显示,和/或附加数据能够被包括在数据部分204中。例如,数据部分204可以不包括数据(在这种情况下,图形表示包括图形部分202而不包括数据部分204),仅包括多个逻辑处理器的指示,在图形部分
202中标识出水平轴和/或垂直轴的刻度的数据,等等。
[0036] 图形部分202和/或数据部分204中所显示的数据以规律或不规律的间隔进行更新,诸如缺省为每秒钟一次。该间隔任选地可以由包括该逻辑处理器和/或实施逻辑CPU划分管理模块(例如,图1中的模块116)的设备的用户或管理者进行设置。
[0037] 在所图示的示例中,数据部分204显示跨所有逻辑处理器的数据。可替换地,数据部分204能够显示以不同方式进行组织的数据,诸如由具有单独子划分的CPU显示每个CPU的(与数据部分204中所图示相类似的)数据,由具有单独子划分的CPU核心显示每个CPU核心的(与数据部分204中所图示相类似的)数据,等等。
[0038] 图3图示了依据一个或多个实施例的逻辑CPU划分管理视图的示例热度图表示300。参考作为逻辑处理器的逻辑CPU划分对也被称作表格视图或表格表示的热度图表示
300进行讨论,但是其它逻辑CPU划分也能够类似地在热度图表示300中进行显示。
[0039] 热度图表示300包括热度图部分302和数据部分304。热度图部分302包括具有多个单元格(cell)的表格或网格,每个单元格对应于多个逻辑处理器之一。在示例的热度图表示300中,每个单元格包括指示逻辑处理器使用的数值。例如,热度图部分302中左上方的单元格指示相对应的逻辑处理器的使用为0%,热度图部分302中右上方的单元格指示相对应的逻辑处理器的使用为16%,等等。指示逻辑处理器使用的数值可以使用各种数据单位进行显示。例如,处理器使用可以被显示为特定逻辑处理器的百分比,诸如所使用的逻辑处理器能力的百分比(例如,总体可用逻辑处理器能力的百分比)。可替换地,可以使用其它数据单位(例如,相对应的逻辑处理器每秒钟所执行的指令数量)。
[0040] 此外,在热度图部分302中,每个单元格基于相对应逻辑处理器的使用而以多种不同方式之一进行显示。在一个或多个实施例中,这些多种不同方式包括使用各种颜色强度对单元格进行颜色编码以指示有多少逻辑处理器能力正被使用。在示例的热度图表示300中,单元格的背景使用不同颜色强度进行颜色编码。可替换地,不同于对单元格的背景进行颜色编码,可以以不同方式来使用颜色强度,诸如将其用来对指示逻辑处理器使用的数值进行颜色编码,将其用来对单元格周围的轮廓或边框进行颜色编码,等等。
[0041] 利用不同的颜色强度对单元格进行颜色编码是指其中变量所取的数值由强度进行表示的数据的图形表示,其是减小(或增加)的量度和增加(或减小)的饱和度的组合。这在视觉上可以通过不同颜色或阴影所表明。使用热度图允许对逻辑处理器使用进行快速的视觉标识,其中较强的颜色与较不强的颜色相比指示更高的使用。
[0042] 表I图示了能够用于不同的逻辑处理器使用数值的热度图的颜色强度的示例。在表I的示例中,逻辑处理器使用数值被确定为所使用的逻辑处理器能力的百分比,并且逻辑处理器使用数值的不同范围对应于不同的强度。数值较低的强度不如数值较高的强度强(例如,强度1不如强度4强)。不同强度数值之间的强度差可以是非线性或线性的。例如,强度1和强度2之间的强度差可以与强度4和强度5之间的强度差相同,或者所述差可以不同(例如,强度1和强度2之间的强度差可以小于强度4和强度5之间的强度差)。应当注意的是,表I是所能够使用的颜色强度的示例,但是能够使用任意数量的强度,并且能够使用任意的粒度等级,等等。
[0043] 表I所使用逻辑处理器的% 强度
0 强度 1
1-20 强度 2
21-40 强度 3
41-60 强度 4
61-80 强度 5
81-100 强度 6
[0044] 在一个或多个实施例中,逻辑处理器使用的指示以及基于逻辑处理器使用所确定的颜色强度是基于在特定时间点的逻辑处理器使用。该逻辑处理器使用可以以规律或不规律间隔进行更新,诸如缺省每秒钟一次。该间隔任选地能够由包括逻辑处理器和/或实施逻辑CPU划分管理模块(例如,图1的模块116)的设备的用户或管理员进行设置。可替换地,逻辑处理器使用的指示和基于逻辑处理器使用所确定的颜色强度是基于多个时间点的逻辑处理器使用(例如,诸如五秒的时间间隔内的逻辑处理器使用的平均值)。
[0045] 当逻辑处理器使用被更新时,热度图部分302中的单元格也被更新以反映新的逻辑处理器使用数值。如果经更新的逻辑处理器使用导致逻辑处理器使用数值处于不同范围之中,则逻辑单元格还能够被更新为以不同方式进行显示(例如,使用不同颜色强度)。例如,如果逻辑处理器使用数值为25%但是随后被更新为55%,则相对应的单元格将被更新为显示“55%”而不是“25%”,并且按照表I,强度将为强度4而不是强度3。因此,当用户查看热度图表示300时,热度图部分302被实时更新以在用户查看热度图表示300时显示逻辑处理器使用。
[0046] 在图3所图示的示例中,每个单元格对应于并显示单个逻辑处理器的使用。可替换地,在一些情况下,单元格可以对应于并且显示多个逻辑处理器的使用(例如,平均在一起的多个逻辑处理器的使用)。
[0047] 与以上参考图2所讨论的数据部分204中显示的数据相类似,数据部分304包括与逻辑处理器在其上实施或者通过其实施的CPU相关的各种数据。在所图示的示例中,与CPU的使用或利用(例如,如所图示的19%)、CPU的速度(例如,如所图示的2.33 GHz)、在CPU上运行的处理的数量(例如,如所图示的732)、在CPU上运行的线程的数量(例如,如所图示的8319)、CPU上由操作系统所管理的句柄的数量(例如,如所图示的4671234)以及诸如自设备最后一次被重启或开机起的时间量的CPU累计时间(例如,如所图示的16:02:27:39,诸如16小时2分钟27又39/100秒)有关的数据被包括在数据部分204中。此外,在所图示的示例中,CPU的最大速度(例如,如所图示的3.02GHz)、设备中的物理处理器或CPU的数量(例如,所图示示例中的64)、在设备中的CPU上或由其所实施的逻辑处理器的数量(例如,所图示示例中的128)、针对CPU的虚拟化被支持还是不支持(例如,所图示示例中的不支持),CPU所使用的L1高速缓存的大小(例如,所图示示例中的256 KB)以及CPU所使用的L2高速缓存的大小(例如,所图示示例中的2 MB(兆字节))也包括在数据部分304中。应当注意的是,数据部分304中所包括的数据是能够连同热度图部分302中的单元格一起进行显示的数据的示例。然而,并非数据部分304中所图示的所有数据都需要被显示,和/或附加数据能够被包括在数据部分304中。例如,数据部分304可以不包括数据(在这种情况下,热度图表示300包括热度图部分302而不包括数据部分304),仅包括逻辑处理器数量的指示,等等。
[0048] 在所图示的示例中,与以上参考图2所讨论的数据部分204相类似,数据部分304显示跨所有逻辑处理器的数据。可替换地,数据部分304能够显示以不同方式进行组织的数据,诸如由具有单独子划分的CPU显示每个CPU的(与数据部分304中所图示相类似的)数据,由具有单独子划分的CPU核心显示每个CPU核心的(与数据部分304中所图示相类似的)数据,等等。
[0049] 在一个或多个实施例中,逻辑处理器可以被暂停。暂停的逻辑处理器是指以限制逻辑处理器所能够执行的活动的特定状态进行操作的逻辑处理器。可以对暂停的逻辑处理器施加各种限制,诸如关于能够在暂停逻辑处理器上运行的线程类型的限制,关于能够在暂停逻辑处理器上运行的处理类型的限制,等等。逻辑处理器可以在该逻辑处理器实施于被暂停的CPU核心上的情况下被暂停。核心被暂停可以允许例如该核心被置于空闲或其它低功率状态以便节约功率。
[0050] 热度图部分302可以包括哪些单元格对应于被暂停的逻辑处理器的指示,这允许用户通过查看热度图部分302而轻易地看到哪些单元格对应于暂停的逻辑处理器。在一个或多个实施例中,轮廓或边框被置于单元格周围以指示该逻辑处理器被暂停。该轮廓或边框可以与以上所讨论的用于热度图颜色强度的颜色为相同颜色,但是具有与用于该单元格的颜色强度成比例的对比度(例如,以便对单元格的背景进行颜色编码,对指示逻辑处理器使用的数值进行颜色编码,等等)。对比度是成比例的,因此轮廓或边框的强度基于用于该单元的颜色强度而变化,导致没有轮廓或边框在视觉上比其它轮廓或边框更为突出。
[0051] 暂停的逻辑处理器的指示还可以采取不同的形式。例如,不同于使用与热度图的颜色强度所使用的颜色相同颜色的轮廓或边框,该轮廓或边框可以为不同于以上所讨论的热度图的颜色强度所用的颜色。作为另一个示例,用于逻辑处理器使用的特定值(例如,值“- -”或值“暂停”)可以被显示在与暂停逻辑处理器相对应的单元格中。
[0052] 此外,在一个或多个实施例中,显示与热度图部分302中的单元格相对应的提示框。该提示框例如可以当在单元格上方进行悬停时(例如,光标或手指位于所显示单元格之上或上方时),在单元格被选择时(例如,通过用户触碰单元格)进行显示,等等。提示框是指在其中显示与对应于该单元格的逻辑处理器相关的附加信息的附加窗口或其它区域。可替换地,不同于在提示框中显示与逻辑处理器相关的附加信息,可以使用单独(例如,固定)窗口或区域来显示与对应于在其上悬停、被选择等的单元格的逻辑处理器相关的附加信息。
[0053] 提示框显示与对应于该单元格相对应的逻辑处理器相关的各种信息,诸如该逻辑处理器的标识符、该逻辑处理器是否暂停的指示、实施该逻辑处理器的CPU和/或核心的标识符,等等。可替换地和/或除此之外,可以显示各种其它信息,诸如贡献于相对应逻辑处理器的使用的特定数量的(例如,三个)处理(例如,对相对应逻辑处理器的使用贡献最多的处理),相对应逻辑处理器的使用、在相对应逻辑处理器上运行的处理或线程的数量,相对应逻辑处理器以内核模式执行代码时的使用,等等。除此之外和/或可替换地,与相对应逻辑处理器、实施相对应逻辑处理器的CPU和/或实施相对应逻辑处理器的CPU的核心相关的各种其它信息可以被显示在提示框中。
[0054] 图4图示了依据一个或多个实施例的示例提示框400。图4图示了图3的热度图表示300,其具有提示框400。提示框400显示了对应于光标402在其上方悬停的单元格的逻辑处理器的标识符(3),以及对应于光标402在其上方悬停的单元格的逻辑处理器被暂停的指示。轮廓或边框也可以被置于光标402在其上方悬停的单元格周围以指示对应于光标402悬停于其上的单元格的逻辑处理器被暂停。该轮廓或边框可以以与以上所讨论的不同方式进行显示,诸如使用与热度图的颜色强度所使用的颜色相同的颜色进行显示但是具有与该单元格所使用的颜色强度成比例的对比度,使用与热度图的颜色强度所使用的颜色有所不同的颜色进行显示,等等。
[0055] 返回图3,热度图部分302中的单元格可以以各种不同的方式进行布局。在一个或多个实施例中,为了对热度图部分302中的单元格进行布局,用于包括逻辑处理器和/或实施逻辑CPU划分管理模块(例如,图1的模块116)的设备所使用语言的最大的框的大小得以被确定。首先在热度图部分302的可用区域中放置将在水平上放置的那么多的框,并且随后将各行适当垂直叠加起来以示出有同样多的逻辑处理器将放置于热度图部分302的区域中。如果部分302中所包括的单元格比单次所能够显示的更多,则可以在热度图部分302中包括滚动条306。
[0056] 在一个或多个实施例中,如果包括热度图部分302的窗口的大小被重新设置(例如,由用户),则各框再次如以上所描述的进行布局。重新设置包括热度图部分302的窗口的大小并不改变单元格的大小,但是能够改变单元格的布局顺序。可替换地,如果包括热度图部分302的窗口的大小被重新设置,则除了改变单元格的布局顺序之外(或者作为其替代),可以类似地重新设置单元格的大小。
[0057] 此外,是否在单元格中显示逻辑处理器使用数值可以根据包括热度图部分302的窗口的大小而变化。例如,如果窗口至少为阈值大小(例如,窗口中包括至少阈值数量的像素),则逻辑处理器使用数值被显示在热度图部分302的单元格中(例如,如图3所图示)。然而,如果窗口并非为至少阈值大小,则逻辑处理器使用数值不显示在热度图部分302的单元格中。相反,可以如以下更为详细讨论的那样只显示不同颜色强度(或者用于显示单元格的其它不同方式)。
[0058] 在一个或多个实施例中,热度图部分302中的单元格可以根据逻辑处理器标示符而顺序布局。例如,热度图部分302中左上方的单元格可以对应于逻辑处理器0,热度图部分302中右侧的下一个单元格可以对应于逻辑处理器1,等等。在热度图部分302中没有显示哪个CPU或核心实施与所显示单元格相对应的逻辑处理器的指示(虽然其可以如以上所讨论的那样显示在提示框中)。逻辑处理器标示符可以以不同方式来指定,诸如通过在CPU上运行的操作系统(例如,图1的操作系统112)。
[0059] 可替换地,热度图部分302可以以标识出哪个CPU或核心实施与热度图部分302中所显示单元格相对应的逻辑处理器的方式进行组织。例如,可以在逻辑处理器群组以及所显示的实施每个逻辑处理器群组的CPU和/或核心的所显示的标示符周围留下空白空间或者能够在其周围绘制边框。
[0060] 在一个或多个实施例中,每个单元格缺省地显示逻辑处理器使用数值。该逻辑处理器使用是该逻辑处理器繁忙而非空闲的时间百分比,而无论是否以如以上所讨论的内核或其它(例如,用户)模式执行代码。然而,用户能够任选地选择开启“示出内核使用”,响应于此,热度图部分302中的每个单元格指示内核使用,诸如通过使得第二数值处于第一数值之后的括号中以用于内核使用。
[0061] 图5图示了依据一个或多个实施例的逻辑CPU划分管理视图的示例热度图表示500。参考作为逻辑处理器的逻辑CPU划分对也被称作表格视图或表格表示的热度图表示
500进行讨论,然而能够在热度图表示500中类似地显示其它逻辑CPU划分。
[0062] 热度图表示500类似于图3的热度图表示300,但是在在热度图部分502中逻辑处理器使用数值之后的括号中显示了内核使用。热度图部分502中单元格的颜色编码基于逻辑处理器使用(第一数字)而不是括号中的内核使用数值,虽然可替换地,单元格的颜色编码可以基于内核使用。在数据部分504和/或提示框中可以显示与以上关于图3的讨论相类似的各种数据。
[0063] 在关于图3、4和5的讨论中,热度图表示被讨论为显示逻辑处理器使用数值。在其它实施例中,不同于显示指示每个逻辑处理器的逻辑处理器使用的数值以及使用不同颜色强度来指示逻辑处理器使用,可以不显示指示逻辑处理器使用的数值。可以只显示不同的颜色强度(例如,作为单元格中的颜色或单元格的背景颜色,作为单元格周围的边框,等等)来指示逻辑处理器使用。
[0064] 图6图示了依据一个或多个实施例的逻辑CPU划分管理视图的示例热度图表示600。参考作为逻辑处理器的逻辑CPU划分对也被称作表格视图或表格表示的热度图表示
600进行讨论,然而能够在热度图表示600中类似地显示其它逻辑CPU划分。
[0065] 热度图表示600类似于图3的热度图表示300,但是没有显示逻辑处理器使用数值。热度图部分602的单元格的颜色编码基于逻辑处理器使用,因此即使在不显示逻辑处理器使用数值的情况下也提供了对应于单元格的每个逻辑处理器的使用的指示。可以在数据部分604和/或提示框中显示与以上关于图3的讨论相类似的各种数据。
[0066] 在关于图3-6的讨论中,热度图部分中的单元格被讨论为利用不同颜色强度进行颜色编码。这些不同颜色强度是相同颜色的不同强度。可替换地(或除此之外),单元格可以利用不同颜色进行颜色编码。例如,一种颜色(例如,红色)可以被用来指示逻辑处理器使用数值的一个范围,另一种颜色(例如,蓝色)可以被用来指示逻辑处理器使用数值的另一个范围,另一种颜色(例如,绿色)可以被用来指示逻辑处理器使用数值的另一个范围,等等。
[0067] 应当注意的是,热度图部分302中的单元格可以以不同于使用颜色编码来指示有多少逻辑处理器能力被使用的方式进行显示。例如,可以使用不同字体和/或字体大小来指示逻辑处理器使用,诸如较大的字体大小与较小的字体大小相比被用来指示更大的逻辑处理器使用。作为另一个示例,单元格周围的不同图案和/或边框可以被用来指示逻辑处理器使用。例如,可以使用交叉阴影图案来指示逻辑处理器使用数值的一个范围,可以使用实心图案来指示逻辑处理器使用的另一个范围,等等。
[0068] 这里所讨论的逻辑CPU划分的使用的热度图表示技术支持各种使用情形。在包括大量逻辑CPU划分的设备或系统上,用户能够快速且轻易地同时查看那些逻辑CPU划分中的许多个。用户因此能够轻易地识别出特定的一个或多个逻辑CPU划分是否具有非常高的使用,而其它则不是,并且采取用户所期望的任意适当动作。此外,以图形表示显示图形通常比显示热度图的单元格使用更多的设备资源(例如,存储器)。因此,随着设备包括更多的逻辑CPU划分,显示热度图视图而不是图形表示减少了显示逻辑CPU划分管理视图时所使用的设备资源。
[0069] 图7是图示依据一个或多个实施例的用于实施逻辑CPU划分的使用的热度图表示的示例处理700的流程图。处理700由诸如图1的设备100的设备所执行,并且能够在软件、固件、硬件或者其组合来实施。处理700被示为动作集合并且并不局限于所示出的用于执行各个动作的操作的顺序。处理700是用于实施逻辑CPU划分使用的热度图表示的示例处理;参考不同附图的实施逻辑CPU划分使用的热度图表示的另外的讨论包括于此。
[0070] 在处理700中,确定设备是否包括少于阈值数量的逻辑CPU划分(动作702)。如以上所讨论的,这些逻辑CPU划分可以是逻辑处理器。
[0071] 如果设备包括少于阈值数量的逻辑CPU划分,则在图形表示中显示标识出相对应逻辑CPU划分的使用的一个或多个图形(动作704)。如以上所讨论的,与逻辑CPU划分、CPU和/或CPU核心相关的附加信息也可以进行显示。
[0072] 然而,如果设备包括至少阈值数量的逻辑CPU划分,则显示包括每一个均对应于逻辑CPU划分的一个或多个单元格的热度图表示(动作706)。如以上所讨论的,显示热度图表示可以包括基于相对应逻辑CPU划分的使用而以多种不同方式之一来显示一个或多个单元格中的每一个(动作708),和/或在一个或多个单元格中的每一个中显示标识出相对应逻辑CPU划分的使用的使用数值。
[0073] 图8图示了依据一个或多个实施例的能够被配置为实施逻辑CPU划分的使用的热度图表示的示例计算设备800。计算设备800例如可以是图1的设备100。
[0074] 计算设备800包括一个或多个CPU802,能够包括一个或多个存储器和/或存储组件806的一个或多个计算机可读媒体804,一个或多个输入/输出(I/O)设备808,以及允许各个组件和设备互相进行通信的总线810。计算机可读媒体804和/或一个或多个I/O设备808能够被包括作为计算设备800的一部分,或者可替换地可以与之相耦接。CPU 802、计算机可读媒体804、一个或多个设备808和/或总线810可以任选地被实施为单个组件或芯片(例如,片上系统)。总线810表示若干类型的总线结构的一种或多种,包括使用各种不同总线架构的存储器总线或存储器控制器、外部总线、加速图形端口、处理器或局部总线等。总线810可以包括有线和/或无线总线。
[0075] 存储器/存储组件806表示一个或多个计算机存储媒体。组件806可以包括易失性媒体(诸如随机访问存储器(RAM))和/或非易失性存储器(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。组件806可以包括固定媒体(例如,RAM、ROM、固定硬盘等)以及可移动媒体(例如,闪存驱动器、可移动硬盘、光盘等)。
[0076] 这里所描述的技术可以以软件来实现,所述软件具有由一个或多个CPU 802所执行的指令。所要意识到的是,不同指令可以被存储在计算设备800的不同组件中,诸如CPU 802中、CPU的各个高速缓存存储器中、设备800的其它高速缓存存储器中(未示出)、其它计算机可读媒体上,等等。另外,所要意识到的是,指令在计算设备800中存储的位置可以随时间而变化。
[0077] 一个或多个输入/输出设备808允许用户向计算设备800输入命令和信息,并且还允许信息被呈现给用户和/或其它组件或设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡等。
[0078] 各种技术在这里可以在软件或程序模块的一般背景下进行描述。通常,软件包括执行特定任务或实施特定抽象数据类型的例程、程序、应用、对象、组件、数据结构等。这些模块和技术的实施方式可以存储在某种形式的计算机可读媒体上或者跨其进行传送。计算机可读媒体可以是计算设备所能够访问的任意可用介质或媒体。作为示例而非限制,计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。
[0079] “计算机存储媒体”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任意方法或技术所实现的易失性和非易失性、可移动和非可移动媒体。计算机存储媒体包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁性盒带、磁带、磁盘存储或其它磁性存储设备,或者能够被用来存储所期望信息并且能够被计算机所访问的任意其它介质,但是并不局限于此。与仅信号传输、载波或信号自身相比,计算机存储媒体是指用于信息存储的媒体。因此,计算机存储媒体是指非信号承载媒体,并且不是通信媒体。
[0080] “通信媒体”通常以经调制的数据信号来实现计算机可读指令、数据结构、程序模块或其它数据,诸如载波或其它传输机制。通信媒体还包括任意信息传递媒体。术语“调制数据信号”意味着其一个或多个特征以对信号中的信息进行编码的方式进行设置或改变的信号。作为示例而非限制,通信媒体包括诸如有线网络或直接线路连接的有线媒体,以及诸如声音、RF、红外和其它无线媒体的无线媒体。以上的任意组合也可以包括在计算机可读媒体的范围之内。
[0081] 通常,这里所描述的任意功能或技术能够使用软件、固件、硬件(例如,固定逻辑电路)、人工处理或者这些实施方式的组合来实现。如这里所使用的术语“模块”和“组件”通常表示软件、固件、硬件或其组合。在软件实施方式的情况下,模块或组件表示在处理器(例如,一个或多个CPU)上执行时执行指定任务的程序代码。该程序代码可以存储在一个或多个计算机可读存储器设备中,其进一步描述可以参考图8所找到。在硬件实施方式的情况下,模块或组件表示执行指定任务的功能块或其它硬件。例如,在硬件实施方式中,模块或组件可以是应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等。这里所描述的逻辑处理器的热度图表示技术的特征是独立于平台的,这意味着该技术能够在具有各种处理器的各种商业计算平台上得以实施。
[0082] 虽然已经以特定于特征和/或方法操作的语言对基于主题进行了描述,但是所要理解的是,所附权利要求的主题并不必局限于以上所描述的具体特征或操作。相反,以上所描述的具体特征和操作作为实施权利要求的示例形式而被公开。