《用于测量多线程处理器的性能的方法和装置.pdf》由会员分享,可在线阅读,更多相关《用于测量多线程处理器的性能的方法和装置.pdf(20页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102792279 A (43)申请公布日 2012.11.21 C N 1 0 2 7 9 2 2 7 9 A *CN102792279A* (21)申请号 201080053168.9 (22)申请日 2010.11.17 61/262,704 2009.11.19 US 12/780,588 2010.05.14 US G06F 11/34(2006.01) (71)申请人高通股份有限公司 地址美国加利福尼亚州 (72)发明人 L许 VK卡达嘎啦 (74)专利代理机构上海专利商标事务所有限公 司 31100 代理人亓云 (54) 发明名称 用于测量多线程处理器的。
2、性能的方法和装置 (57) 摘要 公开了用于测量多线程处理器的性能的方法 和装置。该方法和装置通过在预定时段期间在多 线程处理器的个体线程中执行空闲任务来确定该 多线程处理器的负载。该空闲任务被配置成在没 有其他任务正在这些线程上运行时循环并运行。 对空闲任务在这些预定时段中的每个预定时段上 在每个线程上的循环执行进行计数。随后,可以从 这些计数来确定该多线程处理器的这些线程中的 每个线程的负载。该负载可被用来逐渐形成随后 可被实时显示的处理器概况。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.05.18 (86)PCT申请的申请数据 PCT/US2010/057089 2。
3、010.11.17 (87)PCT申请的公布数据 WO2011/063031 EN 2011.05.26 (51)Int.Cl. 权利要求书4页 说明书9页 附图6页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 4 页 说明书 9 页 附图 6 页 1/4页 2 1.一种用于确定多线程处理器的负载的方法,该方法包括: 在至少一个预定时段期间在所述多线程处理器的至少一个线程中执行至少一个空闲 任务,所述空闲任务被配置成在没有其他任务正在所述至少一个线程上运行时循环并运 行; 确定对所述至少一个空闲任务在所述至少一个预定时段上的循环执行的至少一个计 数;以及 基于对所述。
4、循环执行次数的所述至少一个计数来确定所述多线程处理器的至少所述 至少一个线程的负载。 2.如权利要求1所述的方法,其特征在于,进一步包括: 基于所测得的负载来确定所述多线程处理器的性能概况。 3.如权利要求2所述的方法,其特征在于,进一步包括: 针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性能概况。 4.如权利要求1所述的方法,其特征在于,确定对所述至少一个空闲任务在所述至少 一个预定时段上的循环执行的所述至少一个计数进一步包括: 形成空闲任务计数阵列,所述空闲任务计数阵列包括关于在多个预定时段上的每个预 定时段期间在一个或更多个线程中所执行的每个空闲任务的每个计数的条目。 5.。
5、如权利要求1所述的方法,其特征在于,进一步包括: 强制所述多线程处理器进入在其中没有任务在所述一个或更多个线程中被执行的空 闲操作中; 在至少一个线程中执行所述至少一个空闲任务;以及 确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任务在至少一个预定 时段上在所述至少一个线程中的执行的最大计数值。 6.如权利要求5所述的方法,其特征在于,进一步包括: 通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环执行的所述至 少一个计数与所述最大计数值的比值来确定所述多线程处理器的性能概况。 7.如权利要求1所述的方法,其特征在于,进一步包括: 确定在预定采样时段上所述处理器的所有线程均空。
6、闲的多线程处理器周期数目; 确定在所述预定采样时段期间发生的多线程处理器周期总数;以及 基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目与所确定的多 线程处理器周期总数的比值来推导所述多线程处理器的性能概况。 8.如权利要求7所述的方法,其特征在于,进一步包括: 针对所述多线程处理器的一个或更多个线程全体显示所述性能概况。 9.一种用于确定多线程处理器的负载的装置,包括: 至少一个处理器,配置成: 在至少一个预定时段期间在所述多线程处理器的至少一个线程中执行至少一个空闲 任务,所述空闲任务被配置成在没有其他任务正在所述至少一个线程上运行时循环并运 行; 确定对所述至少一个空闲任务在。
7、所述至少一个预定时段上的循环执行的至少一个计 数;以及 权 利 要 求 书CN 102792279 A 2/4页 3 基于对所述循环执行次数的所述至少一个计数来确定所述多线程处理器的至少所述 至少一个线程的负载。 10.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进一步配置成: 基于所测得的负载来确定所述多线程处理器的性能概况。 11.如权利要求10所述的装置,其特征在于,所述至少一个处理器被进一步配置成: 针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性能概况。 12.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进一步配置成进一 步通过形成空闲任务计数阵列。
8、来确定对所述至少一个空闲任务在所述至少一个预定时段 上的循环执行的所述至少一个计数,所述空闲任务计数阵列包括关于在多个预定时段上的 每个预定时段期间在一个或更多个线程中所执行的每个空闲任务的每个计数的条目。 13.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进一步配置成: 强制所述多线程处理器进入在其中没有任务在所述一个或更多个线程中被执行的空 闲操作中; 在至少一个线程中执行所述至少一个空闲任务;以及 确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任务在至少一个预定 时段上在所述至少一个线程中的执行的最大计数值。 14.如权利要求13所述的装置,其特征在于,所述至少一个处。
9、理器被进一步配置成: 通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环执行的所述至 少一个计数与所述最大计数值的比值来确定所述多线程处理器的性能概况。 15.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进一步配置成: 确定在预定采样时段上所述处理器的所有线程均空闲的多线程处理器周期数目; 确定在所述预定采样时段期间发生的多线程处理器周期总数;以及 基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目与所确定的多 线程处理器周期总数的比值来推导所述多线程处理器的性能概况。 16.如权利要求15所述的装置,其特征在于,所述至少一个处理器被进一步配置成: 针对所述多线。
10、程处理器的一个或更多个线程全体显示所述性能概况。 17.一种用于确定多线程处理器的负载的设备,包括: 用于在至少一个预定时段期间在所述多线程处理器的至少一个线程中执行至少一个 空闲任务的装置,所述空闲任务被配置成在没有其他任务正在所述至少一个线程上运行时 循环并运行; 用于确定对所述至少一个空闲任务在所述至少一个预定时段上的循环执行的至少一 个计数的装置;以及 用于基于对所述循环执行次数的所述至少一个计数来确定所述多线程处理器的至少 所述至少一个线程的负载的装置。 18.如权利要求17所述的设备,其特征在于,进一步包括: 用于基于所测得的负载来确定所述多线程处理器的性能概况的装置。 19.如权。
11、利要求18所述的设备,其特征在于,进一步包括: 用于针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性能概况的 装置。 权 利 要 求 书CN 102792279 A 3/4页 4 20.如权利要求17所述的设备,其特征在于,所述用于确定对所述至少一个空闲任务 在所述至少一个预定时段上的循环执行的所述至少一个计数的装置进一步包括: 用于形成空闲任务计数阵列的装置,所述空闲任务计数阵列包括关于在多个预定时段 上的每个预定时段期间在一个或更多个线程中所执行的每个空闲任务的每个计数的条目。 21.如权利要求17所述的设备,其特征在于,进一步包括: 用于强制所述多线程处理器进入在其中没有任务。
12、在所述一个或更多个线程中被执行 的空闲操作中的装置; 用于在至少一个线程中执行所述至少一个空闲任务的装置;以及 用于确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任务在至少一个 预定时段上在所述至少一个线程中的执行的最大计数值的装置。 22.如权利要求21所述的设备,其特征在于,进一步包括: 用于通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环执行的所 述至少一个计数与所述最大计数值的比值来确定所述多线程处理器的性能概况的装置。 23.如权利要求17所述的设备,其特征在于,进一步包括: 用于确定在预定采样时段上所述处理器的所有线程均空闲的多线程处理器周期数目 的装置; 用于。
13、确定在所述预定采样时段期间发生的多线程处理器周期总数的装置;以及 用于基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目与所确定 的多线程处理器周期总数的比值来推导所述多线程处理器的性能概况的装置。 24.如权利要求23所述的设备,其特征在于,进一步包括: 用于针对所述多线程处理器的一个或更多个线程全体显示所述性能概况的装置。 25.一种计算机程序产品,包括: 计算机可读介质,包括: 用于使计算机生成多线程处理器的性能概况的代码,包括: 用于使计算机在至少一个预定时段期间在所述多线程处理器的至少一个线程中执行 至少一个空闲任务的代码,所述空闲任务被配置成在没有其他任务正在所述至少一个。
14、线程 上运行时循环并运行; 用于使计算机确定对所述至少一个空闲任务在所述至少一个预定时段上的循环执行 的至少一个计数的代码;以及 用于使计算机基于对所述循环执行次数的所述至少一个计数来确定所述多线程处理 器的至少所述至少一个线程的负载的代码。 26.如权利要求25所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机基于所测得的负载来确定所述多线程处理器的性能概况的代码。 27.如权利要求26所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性 能概况的代码。 28.如权利要求25所述的计算机程序产品,其特征在于,所述用。
15、于使计算机确定对所 述至少一个空闲任务在所述至少一个预定时段上的循环执行的所述至少一个计数的代码 进一步包括: 权 利 要 求 书CN 102792279 A 4/4页 5 用于使计算机形成空闲任务计数阵列的代码,所述空闲任务计数阵列包括关于在多个 预定时段上的每个预定时段期间在一个或更多个线程中所执行的每个空闲任务的每个计 数的条目。 29.如权利要求25所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机强制所述多线程处理器进入在其中没有任务在所述一个或更多个线程 中被执行的空闲操作中的代码; 用于使计算机在至少一个线程中执行所述至少一个空闲任务的代码;以及 用于使计算机确定在所述。
16、多线程处理器被强制进入了空闲操作中时所述空闲任务在 至少一个预定时段上在所述至少一个线程中的执行的最大计数值的代码。 30.如权利要求29所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环 执行的所述至少一个计数与所述最大计数值的比值来确定所述多线程处理器的性能概况 的代码。 31.如权利要求25所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机确定在预定采样时段上所述处理器的所有线程均空闲的多线程处理器 周期数目的代码; 用于使计算机确定在所述预定采样时段期间发生的多线程处理器周期总数的代码;以 及 用于使计算机。
17、基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目 与所确定的多线程处理器周期总数的比值来推导所述多线程处理器的性能概况的代码。 32.如权利要求31所述的计算机程序产品,其特征在于,进一步包括: 用于使计算机针对所述多线程处理器的一个或更多个线程全体显示所述性能概况的 代码。 权 利 要 求 书CN 102792279 A 1/9页 6 用于测量多线程处理器的性能的方法和装置 0001 优先权要求 0002 本专利申请要求于2009年11月19日提交的题为“METHODS AND APPARATUS FOR PERFORMANCE PROFILING OF A MULTI-THRE。
18、AD PROCESSOR(用于多线程处理器的性能概况剖 析的方法和装置)”的临时申请No.61/262,704的优先权,其已转让给本申请受让人并通过 援引明确纳入于此。 0003 背景 0004 领域 0005 本公开一般涉及用于测量多线程处理器的性能的方法和装置,并且尤其涉及用于 在每线程的基础上并针对各种使用和数据率来对诸如无线设备之类的设备中的多线程处 理器进行负载测量和性能概况剖析的方法和装置。 0006 背景 0007 在诸如无线设备之类的设备中,对无线通信藉以运行的处理器的性能概况剖析是 重要的。对处理器性能的概况剖析和测量能够提供对设计最优化的洞察以及为设计调试提 供便利的工具。。
19、此类概况剖析的结果可被用于在利用该处理器的设备(诸如在一个示例中 为无线设备)中进行资源管理。如果概况剖析是以实时方式执行的,那么此类资源管理可 以是动态的且灵活的。一个示例是基于处理器负载的通信流量控制,该处理器负载则是基 于性能概况剖析来测量的。 0008 随着无线技术的演进,需要在无线设备或手持式设备中实现许多尖端的移动特征 和高数据率。无线设备的处理器技术因此也在演进。例如,对于诸如GSM/GPRS之类的2G 蜂窝技术,典型的处理器是基于单线程架构的,而对于诸如HSPA+/LTE/EV-DO之类的3G/4G 蜂窝技术,处理器已演进成是基于多线程的。 0009 然而,现有技术中没有在各种。
20、使用情形和数据率下测量多线程处理器CPU负载的 方案和装置可用。另外,没有用来在分组数据会话正在诸如无线设备之类的设备中进行时 按每线程来探测多线程处理器CPU使用的已知工具或仪器可用。不仅如此,没有用来在分 组数据会话正在无线设备中进行时探测多线程处理器“全在等待”(即,所有处理器线程都 空闲)状态的已知工具或仪器可用。相应地,需要确定多线程处理器的负载并使用所确定 的负载来对处理器性能进行概况剖析。 0010 概述 0011 在一方面,公开了一种用于确定多线程处理器的负载的方法。该方法包括在至少 一个预定时段期间在多线程处理器的至少一个线程中执行至少一个空闲任务。该空闲任务 被配置成在没有。
21、其他任务正在该至少一个线程上运行时循环并运行。确定对该至少一个空 闲任务在该至少一个预定时段上的循环执行的至少一个计数。最后,该方法包括基于对循 环执行次数的该至少一个计数来确定多线程处理器的至少该至少一个线程的负载。 0012 在另一方面,公开了一种用于确定多线程处理器的负载的装置。该装置包括至少 一个处理器,其被配置成在至少一个预定时段期间在多线程处理器的至少一个线程中执行 至少一个空闲任务,其中该空闲任务被配置成在没有其他任务正在该至少一个线程上运行 说 明 书CN 102792279 A 2/9页 7 时循环并运行。该处理器还被配置成确定对该至少一个空闲任务在该至少一个预定时段上 的循。
22、环执行的至少一个计数。最后,该处理器被配置成基于对循环执行次数的该至少一个 计数来确定多线程处理器的至少该至少一个线程的负载。 0013 根据又一方面,公开了一种用于确定多线程处理器的负载的设备。该设备包括 用于在至少一个预定时段期间在多线程处理器的至少一个线程中执行至少一个空闲任务 的装置,其中该空闲任务被配置成在没有其他任务正在该至少一个线程上运行时循环并运 行。进一步包括用于确定对该至少一个空闲任务在该至少一个预定时段上的循环执行的至 少一个计数的装置。而且,该设备包括用于基于对循环执行次数的该至少一个计数来确定 多线程处理器的至少该至少一个线程的负载的装置。 0014 根据再一个方面,。
23、公开了一种包括计算机可读介质的计算机程序产品。该介质包 括用于使计算机生成多线程处理器的性能概况的代码,其中该代码包括用于使计算机在至 少一个预定时段期间在多线程处理器的至少一个线程中执行至少一个空闲任务的代码。该 空闲任务被配置成在没有其他任务正在该至少一个线程上运行时循环并运行。进一步包括 用于使计算机确定对该至少一个空闲任务在该至少一个预定时段上的循环执行的至少一 个计数的代码,以及用于使计算机基于对循环执行次数的该至少一个计数来确定多线程处 理器的至少该至少一个线程的负载的代码。 0015 附图简述 0016 图1解说了多址无线通信系统的示例。 0017 图2是可采用或利用本文公开的方。
24、法和装置的示例性通信系统的框图。 0018 图3解说了多线程处理器概况剖析布局的框图。 0019 图4是解说用于确定多线程处理器的负载的装置操作的框图。 0020 图5解说了用于对在多线程处理器的多个线程上运行的空闲任务进行累积计数 的休眠向量阵列。 0021 图6是根据本公开的一方面的用于实现多线程处理器概况剖析的方法。 0022 图7是根据本公开的一方面的用于实现另一种多线程处理器概况剖析的另一种 方法。 0023 图8解说了用于确定多线程处理器的概况的另一示例性装置的框图。 0024 详细描述 0025 本公开的特色在于提供对多线程处理器CPU的性能进行测量和/或概况剖析的 方法和装置,。
25、该多线程处理器CPU诸如是在用于3G/4G技术的设备中的那些多线程处理 器CPU,3G/4G技术诸如是高速分组接入(HSPA)、演进型HSPA(HSPA+)、长期演进(LTE)、和 EV-DO技术之类。另外,本文公开的方法和装置提供可被实时显示的实时概况剖析和/或测 量以供在设计或优化多线程CPU使用或操作中使用。 0026 本文中所描述的装置和方法适用于利用多线程处理器的各种设备。在特定方面, 本文中的装置和方法可被应用于利用多线程处理器的无线设备以帮助优化该无线设备中 的处理器操作。注意到,此类设备可实现的示例性无线通信技术包括码分多址(CDMA)、时 分多址(TDMA)网络、频分多址(F。
26、DMA)、正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)、高速分 组接入(HSPA和HSPA+)技术、长期演进(LTE)、EV-DO技术、等等。CDMA网络可实现诸如通 用地面无线电接入(UTRA)、cdma2000等无线电技术。UTRA包括宽带CDMA(W-CDMA)和低码 说 明 书CN 102792279 A 3/9页 8 片率(LCR)。cdma2000涵盖IS-2000、IS-95和IS-856标准。TDMA网络可实现诸如全球移 动通信系统(GSM)之类的无线电技术。OFDMA网络可实现诸如超移动宽带(UMB)、演进型 UTRA(E-UTRA)、IEEE 802.11、。
27、IEEE 802.16(WiMax)、IEEE 802.20、Flash-OFDM等无线电技 术。UTRA、E-UTRA和GSM是通用移动电信系统(UMTS)的部分。长期演进(LTE)是即将发 布的使用E-UTRA的UMTS版本。UTRA、E-UTRA、GSM、UMTS和LTE在来自名为“第3代伙伴 项目”(3GPP)的组织的文献中描述。cdma2000在来自名为“第3代伙伴项目2”(3GPP2)的 组织的文档中描述。这些各色无线电技术和标准是本领域公知的。 0027 而且,如本文中所使用的术语“处理器”可包括但不限于CPU、ASIC、数字信号处理 器(DSP)、或能够执行指令的任何其他类型的。
28、处理器。另外,尽管本公开主要涉及多线程处 理器,但是对本领域技术人员显然的是,本文中的装置和方法适用于并行地、并发地等运行 进程的任何处理器或甚至潜在地适用于多任务作业。另外,尽管本公开是在无线设备中使 用的处理器的上下文中来讨论的,但是本领域技术人员将可领会,无论应用或使用如何,本 文中的方法和装置可以宽泛地应用于任何多线程处理器。 0028 参照图1,示出了其中可采用本发明方法和装置的多址无线通信系统的示例。接入 点100(AP)(或演进型B节点或基站)包括多个天线群,一个天线群包括104和106,另一 个天线群包括108和110,且再一个天线群包括112和114。在图1中,每个天线群仅示。
29、出 了两个天线,然而,每个天线群可利用更多或更少的天线。接入终端116(AT)(或移动设备 或用户装备(UE)与天线112和114正处于通信,其中天线112和114在下行链路(DL)或 即前向链路120上向接入终端116传送信息,并在上行链路(UL)或即反向链路118上接收 来自接入终端116的信息。接入终端122与天线106和108正处于通信,其中天线106和 108在前向链路126上向接入终端122传送信息,并在反向链路124上接收来自接入终端 122的信息。在FDD系统中,通信链路118、120、124和126可使用不同频率进行通信。例 如,DL 120所使用的频率可以与UL 118所使。
30、用的频率不同。在TDD系统中,单个频率被用 于UL 118和DL 120两者,其中UL和DL信号是时间复用的。 0029 每个天线群和/或它们被设计成在其中通信的区域常常被称作接入点的扇区。一 方面,天线群各自被设计成与落在接入点100所覆盖的区域的一扇区中的诸接入终端通 信。 0030 接入点可以是用于与诸终端通信的固定站,并且也可以被称为接入点、B节点、或 其他某个术语。接入终端也可被称为接入终端、用户装备(UE)、无线通信设备、终端、接入终 端、或其他某个术语。 0031 图2是提供空间分集复用的MIMO系统200中发射机系统210(也称为接入点)和 接收机系统250(也称为接入终端)的。
31、示例的框图。在发射机系统210处,从数据源212向 发射(TX)数据处理器214提供数个数据流的话务数据。 0032 一方面,每一数据流在各自相应的发射天线上被发射。TX数据处理器214基于为 每个数据流选择的特定编码方案来格式化、编码、和交织该数据流的话务数据以提供经编 码数据。 0033 可使用OFDM技术将每个数据流的经编码数据与导频数据进行复用。导频数据典 型情况下是以已知方式处理的已知数据码型,并且可在接收机系统处被用来估计信道响 应。每一数据流的经复用的导频和经编码数据随后基于为该数据流选择的特定调制方案 说 明 书CN 102792279 A 4/9页 9 (例如,BPSK、QP。
32、SK、M-PSK或M-QAM)被调制(即,码元映射)以提供调制码元。每个数据 流的数据率、编码、和调制可由处理器230执行的指令来决定。 0034 所有数据流的调制码元随后被提供给TX MIMO处理器220,后者可进一步处理这 些调制码元(例如,针对OFDM)。TX MIMO处理器220随后向NT个发射机(TMTR)222a到 222t提供NT个调制码元流。在某些方面,TX MIMO处理器220向这些数据流的码元并向藉 以发射该码元的天线施加波束成形权重。 0035 每个发射机222接收并处理各自相应的码元流以提供一个或更多个模拟信号,并 进一步调理(例如,放大、滤波、和上变频)这些模拟信号以。
33、提供适于在MIMO信道上传输的 经调制信号。来自发射机222a到222t的NT个经调制信号随后分别从NT个天线224a到 224t被发射。 0036 在接收机系统250处,所发射的经调制信号被NR个天线252a到252r所接收,并 且从每个天线252接收到的信号被提供给相应各个接收机(RCVR)254a到254r。每个接收 机254调理(例如,滤波、放大、以及下变频)各自相应的收到信号,将经调理的信号数字化 以提供采样,并进一步处理这些采样以提供相应的“收到”码元流。 0037 RX数据处理器260随后从NR个接收机254接收这NR个收到码元流并基于特定接 收机处理技术对其进行处理以提供NT个。
34、“检出”码元流。RX数据处理器260然后解调、解 交织、以及解码每个检出码元流以恢复该数据流的话务数据。RX数据处理器260所作的处 理与发射机系统210处由TX MIMO处理器220和TX数据处理器214所执行的处理互补。 0038 反向链路或即UL消息可包括涉及通信链路和/或收到数据流的各种类型的信息。 该反向链路消息随后由还从数据源236接收数个数据流的话务数据的TX数据处理器238 处理,由调制器280调制,由发射机254a到254r调理,并被传回给发射机系统210。 0039 在发射机系统210处,来自接收机系统250的经调制信号被天线224所接收,由接 收机222调理,由解调器24。
35、0解调,并由RX数据处理器242处理以提取接收机系统250所 发射的反向链路或即UL消息。处理器230随后决定要使用哪个预编码矩阵来确定波束成 形权重,然后处理所提取的消息。 0040 注意到,本公开提供了用于对诸如无线设备210和250中的处理器230或270之 类的处理器进行概况剖析的装置和方法,但是这些装置和方法还可被应用于任何数目的各 种装置(无论是否是无线设备)中的任何多线程处理器。 0041 作为实现的一个示例,图3解说了多线程处理器概况剖析布局的框图。如所解说 的,可被配置为集成的或芯片组(例如,移动站调制解调器 TM (MSM TM )的或者更宽泛地视为 是整个设备的设备300。
36、可包括实为多线程处理器的处理器302。连同处理器302一起的是 可被整合到处理器302的封装或者与其分开(或者甚至与设备300分开)的存储器304。 另外,其他逻辑306可被包括在设备300内(或在其外部)以提供附加概况或性能数据,诸 如确定在其中处理器302的所有线程均空闲的CPU周期之类,这将在以下进一步讨论。替 换地,由逻辑306执行的功能可由处理器302执行。另外,可包括显示器接口308以显示实 时概况剖析数据。 0042 图4是解说用于确定多线程处理器的负载的装置操作的框图。仅作为一个示例, 此解说示出了代表可在诸如无线设备之类的设备中工作的多线程处理系统的系统400。系 统400基。
37、于某个底层操作系统(OS)402来执行包括多线程的操作。该操作系统和伴随的软 说 明 书CN 102792279 A 5/9页 10 件可被配置成在多线程处理系统中的一个或更多个线程上执行空闲任务。空闲任务被配置 成在没有其他任务正在线程中被执行时执行并且可以是无限循环或其他某种重复操作。在 一方面,空闲任务不过是除了其重复被计数以外不执行其他操作的循环。 0043 在一方面,系统400可包括被用来存储对在这些线程中的相应的一个或更多个线 程中运行的空闲任务的循环的计数的寄存器404或等效设备(或在软件或固件情形中为功 能)。寄存器404为每个线程包括分开的计数存储,如由指出寄存器404中的这。
38、些计数存储 之一的参考标号406所解说的那样。寄存器404存储对在预定时段(例如,数目T个毫秒 (ms)上在数目N个线程(T1到TN)中的每个线程中运行的每个空闲任务的计数。在一方 面,寄存器404包括对数目N个独立线程中的每个线程的已执行空闲任务的循环计数。随 后为每个预定时段(T ms)形成由向量408象征性地示出的具有N个元素的向量,这些元素 各自具有对空闲任务执行的循环计数。经由通信耦合410向诸如计算机和存储器412之类 的处理设备输出该向量,以便核对整理并处理计数数据以供向用户显示。 0044 每T ms输出针对N个线程向量中的每个线程向量的数目N个空闲任务计数的向 量T1,T2,。
39、T3,.TN408,从而可以形成具有数个T ms采样时段的向量阵列。相应地,每 T ms预定时段,向量数就增加1。休眠向量的最大数目是预定数目M。在M*T ms之后,所有 空闲任务计数向量形成大小为M*N的阵列。在M*T ms之后更新该阵列。 0045 图5解说了用于对在多线程处理器的多个线程上运行的空闲任务进行累积计数 的空闲任务计数向量的示例性阵列500。例如,如果线程数N6,并且预定的采样时段T 10ms,并且采样时段总数M1024,那么休眠阵列看上去像如所示的1024*6(即,M*N)阵列 500。注意到,图5的示例仅是解说性的,并且M、N和T的值可被设置成任何合意数字。 0046 图。
40、6解说了用于多线程处理器概况剖析的方法600,该方法可被用来对多线程处 理器(例如,处理器302)的性能进行概况剖析。如框602中所示,方法600包括首先在至 少一个预定时段期间在多线程处理器的至少一个线程中执行至少一个空闲任务,其中该空 闲任务被配置成在没有其他任务正在该至少一个线程上运行时循环并运行。在特定方面, 框602的处理可包括在多线程处理器(例如,302)的每个独立线程中,每当相应线程空闲 (即,在该线程上没有其他功能或任务正被执行)时实现循环空闲任务。 0047 如由框604指示的,方法600进一步包括确定对该至少一个空闲任务在该至少一 个预定时段上的循环执行的至少一个计数。如先。
41、前所讨论的,计数可以由寄存器404或类 似的单元或功能来实现。在进一步的方面,为数目M个预定时段执行框602中的用于执行 空闲任务并计数的过程以形成如先前所讨论的M*N向量阵列。因此,框602和604可包括 在M个预定时段上为数目N个线程执行空闲任务并对循环执行进行多个N元向量的计数以 获得M*N阵列。 0048 本领域技术人员还将领会,图6中在时间上顺序地解说框602和604的过程,这些 过程可以同时地或重复地执行,其中寄存器在每个空闲任务循环执行之后使这些计数增加 直至该预定时段结束。在该时段到期之后,寄存器被复位到0以对下一预定时段中的空闲 任务的循环进行计数,并且依此类推直至推导出M个。
42、时段的计数阵列。 0049 在框604的过程完成之后,诸如在至少一个预定时段之后,可以使用循环计数如 由框606所解说的那样基于该计数来确定多线程处理器的一个或更多个独立线程的负载。 在一示例中,对空闲任务循环的计数提供了特定线程空闲的频繁程度的时基,因为该空闲 说 明 书CN 102792279 A 10 6/9页 11 任务被配置成仅在没有其他任务正在该线程中被执行时才运行。相应地,如果给定线程在 给定的预定时段上的最大休眠计数是已知的,那么可以基于正常的处理器操作期间的空闲 任务循环计数与基线最大休眠计数的比值来确定该时段的负载。此在多个预定时段(例 如,如先前所讨论的M个时段)上的负载。
43、可被用来推导性能概况的至少一个方面以便知道 多线程处理器中的一个或更多个线程的负载程度如何。 0050 在框606中如何确定负载的一个特定示例中(尽管在图6中未显式地解说),多线 程处理器的这一个或更多个线程可被强制处于空闲操作中。随后,可以在多线程处理器的 每个线程中运行空闲任务达至少该预定时段,并且空闲任务的循环执行次数被计数。在另 一特定示例中,可以运行空闲任务达总共M个预定时段以获得足以填充先前所讨论的M*N 阵列的计数。该处理器(或与该多线程处理器分开的另一处理器)可以随后找到在其中仅 运行了空闲任务的这M个时段期间记入此M*N阵列的最大空闲任务计数(本文中称为最大 休眠标量值或“M。
44、AX_SLEEP_SCALER”)。在实效上,该值代表100CPU空闲状况或任何给定 线程的休眠。 0051 随后可将每个N元向量中对每个线程的计数值除以MAX_SLEEP_SCALAR值以推导 空闲任务或休眠概况,其为空闲任务相对于最大空闲任务状况的百分比,该百分比即代表 特定线程的负载。替换地,当M*N阵列被确定时,特定线程在这M个时段上的总计数可被加 总并除以MAX_SLEEP_SCALAR与M的乘积以获得该特定线程的负载。在任何情形中,所确定 的负载可以随后以百分比或者任何其他合适的数字为单位来显示(例如,简单地显示为空 闲任务或休眠计数除以MAX_SLEEP_SCALAR的分数),如。
45、由框608中的过程所指示的那样。 在多线程处理器中,可以按每线程地来显示每个空闲任务或休眠概况。 0052 注意到,在执行了方法600中的所有过程之后,方法600将不断重复以随着时间推 移继续生成概况剖析数据。在一个示例中,预定时段可以为10ms,其中M个时段的总数等于 25。因此,对用于确定休眠概况的数据的累积每250ms被执行(即,框602到606)、被显示 (框608)并且每随后250ms时段被重复和显示。 0053 图7解说了用于确定多线程处理器的另一性能概况的另一示例性方法700。如图 所示,方法700包括确定在预定采样时段(例如,Y ms)上该处理器的所有线程均空闲的多 线程处理器。
46、周期数目,如框702中所示的那样。注意,术语处理器周期表示处理单元的CPU 周期。另外,关于哪些周期里所有线程均空闲的确定可以由诸如图3中所示的逻辑306之 类的逻辑来实现,其中在所有线程均空闲时输出指示。在一方面,注意到,此确定可以依赖 于多线程处理器中在线程并非正在执行任务时线程时钟空闲这一特性。因此,该逻辑可被 配置成使得在所有线程时钟均空闲时,该逻辑输出指示所有线程均空闲的逻辑状态。在一 个示例中,框702的处理包括获得“所有线程均在等待(空闲)”的多线程处理器周期数目, 在本文中称为“All_Wait_Cycle”。 0054 进而,方法700包括确定在此预定采样时段(例如,Y ms。
47、)期间发生的多线程处理 器周期的总数,如框704中所示的那样。在一方面,此在采样时段中发生的周期的总数可被 称为“Total_Cycle”。 0055 而且,方法700包括基于所确定的该处理器的所有线程均空闲的多线程处理器周 期数目与所确定的多线程处理器周期总数的比值来推导该多线程处理器的性能概况,如在 框706中所示的那样。此在本文中称为“全在等待比值”或“全在等待百分比”的比值因此 说 明 书CN 102792279 A 11 7/9页 12 是用All_Wait_Cycle/Total_Cycle的商来推导的。 0056 类似于方法600,方法700还包括导致显示此全在等待百分比信息的进。
48、一步过程。 注意到,在一方面,方法600和700合起来能用于通过确定每个线程被利用程度的负载概况 以及确定关于所有线程均空闲或等待的频繁程度的概况来获得多线程处理器的更全面的 性能概况剖析记录数据集。另外,所公开的装置和方法可以每Y ms生成概况剖析记录数据 集并将其提交给显示功能(例如,由处理器(302)实现的功能)以经由显示器接口(例如, 308)来显示概况信息。概况剖析记录数据集可包括(诸如图4中所示的)空闲计数阵列和 以上所讨论的MAX_SLEEP_SCALER。概况剖析记录数据集还可包括采样时段Yms期间的全在 等待百分比。注意到,在一方面,此预定的采样时段Y ms可以等于计数阵列中。
49、的总共M个 预定时段。作为可被生成的概况剖析记录数据集的示例,下表1给出至少3个项的特定示 例,其中Y250ms,N6(6个线程),每个预定时段等于10ms,并且M25(即,25x 10ms 250ms的总阵列时间)。 0057 0058 表1:概况剖析记录数据集 0059 如所示出的,所包括的这三个项为M25个预定时段的总计205ms采样上的MAX_ SLEEP_SCALER,M(25)乘10ms长度的预定时段(即,250ms总时段)上的M*N阵列的原始 计数数据,以及250ms的相同长度时段期间的全在等待百分比。在此示例中,以上所讨论的 显示功能可以推导以百分比()为单位的空闲计数(即,将每个个体休眠计数除以MAX_ SLEEP_SCALER),并按每线程来显示休眠概况剖析。然而,在替换方案中,此百分比演算可以 由正接受考察的多线程处理器执行并作为数据集中的另一字段来发送。 0060 图8解说了用于确定多线程处理器的概况的另一示例性设备800的框图。设备 800包括用于实现诸如以上结合用于推导多线程处理器。