书签 分享 收藏 举报 版权申诉 / 20

用于测量多线程处理器的性能的方法和装置.pdf

  • 上传人:zhu****_FC
  • 文档编号:4258753
  • 上传时间:2018-09-12
  • 格式:PDF
  • 页数:20
  • 大小:681.91KB
  • 摘要
    申请专利号:

    CN201080053168.9

    申请日:

    2010.11.17

    公开号:

    CN102792279A

    公开日:

    2012.11.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 11/34申请日:20101117|||公开

    IPC分类号:

    G06F11/34

    主分类号:

    G06F11/34

    申请人:

    高通股份有限公司

    发明人:

    L·许; V·K·卡达嘎啦

    地址:

    美国加利福尼亚州

    优先权:

    2009.11.19 US 61/262,704; 2010.05.14 US 12/780,588

    专利代理机构:

    上海专利商标事务所有限公司 31100

    代理人:

    亓云

    PDF完整版下载: PDF下载
    内容摘要

    公开了用于测量多线程处理器的性能的方法和装置。该方法和装置通过在预定时段期间在多线程处理器的个体线程中执行空闲任务来确定该多线程处理器的负载。该空闲任务被配置成在没有其他任务正在这些线程上运行时循环并运行。对空闲任务在这些预定时段中的每个预定时段上在每个线程上的循环执行进行计数。随后,可以从这些计数来确定该多线程处理器的这些线程中的每个线程的负载。该负载可被用来逐渐形成随后可被实时显示的处理器概况。

    权利要求书

    1.一种用于确定多线程处理器的负载的方法,该方法包括:
    在至少一个预定时段期间在所述多线程处理器的至少一个线程中执行
    至少一个空闲任务,所述空闲任务被配置成在没有其他任务正在所述至少一个
    线程上运行时循环并运行;
    确定对所述至少一个空闲任务在所述至少一个预定时段上的循环执行
    的至少一个计数;以及
    基于对所述循环执行次数的所述至少一个计数来确定所述多线程处理
    器的至少所述至少一个线程的负载。
    2.如权利要求1所述的方法,其特征在于,进一步包括:
    基于所测得的负载来确定所述多线程处理器的性能概况。
    3.如权利要求2所述的方法,其特征在于,进一步包括:
    针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性
    能概况。
    4.如权利要求1所述的方法,其特征在于,确定对所述至少一个空闲任务
    在所述至少一个预定时段上的循环执行的所述至少一个计数进一步包括:
    形成空闲任务计数阵列,所述空闲任务计数阵列包括关于在多个预定时
    段上的每个预定时段期间在一个或更多个线程中所执行的每个空闲任务的每
    个计数的条目。
    5.如权利要求1所述的方法,其特征在于,进一步包括:
    强制所述多线程处理器进入在其中没有任务在所述一个或更多个线程
    中被执行的空闲操作中;
    在至少一个线程中执行所述至少一个空闲任务;以及
    确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任务在
    至少一个预定时段上在所述至少一个线程中的执行的最大计数值。
    6.如权利要求5所述的方法,其特征在于,进一步包括:
    通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环
    执行的所述至少一个计数与所述最大计数值的比值来确定所述多线程处理器
    的性能概况。
    7.如权利要求1所述的方法,其特征在于,进一步包括:
    确定在预定采样时段上所述处理器的所有线程均空闲的多线程处理器
    周期数目;
    确定在所述预定采样时段期间发生的多线程处理器周期总数;以及
    基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目
    与所确定的多线程处理器周期总数的比值来推导所述多线程处理器的性能概
    况。
    8.如权利要求7所述的方法,其特征在于,进一步包括:
    针对所述多线程处理器的一个或更多个线程全体显示所述性能概况。
    9.一种用于确定多线程处理器的负载的装置,包括:
    至少一个处理器,配置成:
    在至少一个预定时段期间在所述多线程处理器的至少一个线程中
    执行至少一个空闲任务,所述空闲任务被配置成在没有其他任务正在所述至少
    一个线程上运行时循环并运行;
    确定对所述至少一个空闲任务在所述至少一个预定时段上的循环
    执行的至少一个计数;以及
    基于对所述循环执行次数的所述至少一个计数来确定所述多线程
    处理器的至少所述至少一个线程的负载。
    10.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进
    一步配置成:
    基于所测得的负载来确定所述多线程处理器的性能概况。
    11.如权利要求10所述的装置,其特征在于,所述至少一个处理器被
    进一步配置成:
    针对所述多线程处理器的一个或更多个线程中的每个线程显示所述性
    能概况。
    12.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进
    一步配置成进一步通过形成空闲任务计数阵列来确定对所述至少一个空闲任
    务在所述至少一个预定时段上的循环执行的所述至少一个计数,所述空闲任务
    计数阵列包括关于在多个预定时段上的每个预定时段期间在一个或更多个线
    程中所执行的每个空闲任务的每个计数的条目。
    13.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进
    一步配置成:
    强制所述多线程处理器进入在其中没有任务在所述一个或更多个线程
    中被执行的空闲操作中;
    在至少一个线程中执行所述至少一个空闲任务;以及
    确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任务在
    至少一个预定时段上在所述至少一个线程中的执行的最大计数值。
    14.如权利要求13所述的装置,其特征在于,所述至少一个处理器被
    进一步配置成:
    通过演算对所述至少一个空闲任务在所述至少一个预定时段上的循环
    执行的所述至少一个计数与所述最大计数值的比值来确定所述多线程处理器
    的性能概况。
    15.如权利要求9所述的装置,其特征在于,所述至少一个处理器被进
    一步配置成:
    确定在预定采样时段上所述处理器的所有线程均空闲的多线程处理器
    周期数目;
    确定在所述预定采样时段期间发生的多线程处理器周期总数;以及
    基于所确定的所述处理器的所有线程均空闲的多线程处理器周期数目
    与所确定的多线程处理器周期总数的比值来推导所述多线程处理器的性能概
    况。
    16.如权利要求15所述的装置,其特征在于,所述至少一个处理器被
    进一步配置成:
    针对所述多线程处理器的一个或更多个线程全体显示所述性能概况。
    17.一种用于确定多线程处理器的负载的设备,包括:
    用于在至少一个预定时段期间在所述多线程处理器的至少一个线程中
    执行至少一个空闲任务的装置,所述空闲任务被配置成在没有其他任务正在所
    述至少一个线程上运行时循环并运行;
    用于确定对所述至少一个空闲任务在所述至少一个预定时段上的循环
    执行的至少一个计数的装置;以及
    用于基于对所述循环执行次数的所述至少一个计数来确定所述多线程
    处理器的至少所述至少一个线程的负载的装置。
    18.如权利要求17所述的设备,其特征在于,进一步包括:
    用于基于所测得的负载来确定所述多线程处理器的性能概况的装置。
    19.如权利要求18所述的设备,其特征在于,进一步包括:
    用于针对所述多线程处理器的一个或更多个线程中的每个线程显示所
    述性能概况的装置。
    20.如权利要求17所述的设备,其特征在于,所述用于确定对所述至
    少一个空闲任务在所述至少一个预定时段上的循环执行的所述至少一个计数
    的装置进一步包括:
    用于形成空闲任务计数阵列的装置,所述空闲任务计数阵列包括关于在
    多个预定时段上的每个预定时段期间在一个或更多个线程中所执行的每个空
    闲任务的每个计数的条目。
    21.如权利要求17所述的设备,其特征在于,进一步包括:
    用于强制所述多线程处理器进入在其中没有任务在所述一个或更多个
    线程中被执行的空闲操作中的装置;
    用于在至少一个线程中执行所述至少一个空闲任务的装置;以及
    用于确定在所述多线程处理器被强制进入了空闲操作中时所述空闲任
    务在至少一个预定时段上在所述至少一个线程中的执行的最大计数值的装置。
    22.如权利要求21所述的设备,其特征在于,进一步包括:
    用于通过演算对所述至少一个空闲任务在所述至少一个预定时段上的
    循环执行的所述至少一个计数与所述最大计数值的比值来确定所述多线程处
    理器的性能概况的装置。
    23.如权利要求17所述的设备,其特征在于,进一步包括:
    用于确定在预定采样时段上所述处理器的所有线程均空闲的多线程处
    理器周期数目的装置;
    用于确定在所述预定采样时段期间发生的多线程处理器周期总数的装
    置;以及
    用于基于所确定的所述处理器的所有线程均空闲的多线程处理器周期
    数目与所确定的多线程处理器周期总数的比值来推导所述多线程处理器的性
    能概况的装置。
    24.如权利要求23所述的设备,其特征在于,进一步包括:
    用于针对所述多线程处理器的一个或更多个线程全体显示所述性能概
    况的装置。
    25.一种计算机程序产品,包括:
    计算机可读介质,包括:
    用于使计算机生成多线程处理器的性能概况的代码,包括:
    用于使计算机在至少一个预定时段期间在所述多线程处理
    器的至少一个线程中执行至少一个空闲任务的代码,所述空闲任务被配置成在
    没有其他任务正在所述至少一个线程上运行时循环并运行;
    用于使计算机确定对所述至少一个空闲任务在所述至少一
    个预定时段上的循环执行的至少一个计数的代码;以及
    用于使计算机基于对所述循环执行次数的所述至少一个计
    数来确定所述多线程处理器的至少所述至少一个线程的负载的代码。
    26.如权利要求25所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机基于所测得的负载来确定所述多线程处理器的性能概况
    的代码。
    27.如权利要求26所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机针对所述多线程处理器的一个或更多个线程中的每个线
    程显示所述性能概况的代码。
    28.如权利要求25所述的计算机程序产品,其特征在于,所述用于使
    计算机确定对所述至少一个空闲任务在所述至少一个预定时段上的循环执行
    的所述至少一个计数的代码进一步包括:
    用于使计算机形成空闲任务计数阵列的代码,所述空闲任务计数阵列包
    括关于在多个预定时段上的每个预定时段期间在一个或更多个线程中所执行
    的每个空闲任务的每个计数的条目。
    29.如权利要求25所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机强制所述多线程处理器进入在其中没有任务在所述一个
    或更多个线程中被执行的空闲操作中的代码;
    用于使计算机在至少一个线程中执行所述至少一个空闲任务的代码;以

    用于使计算机确定在所述多线程处理器被强制进入了空闲操作中时所
    述空闲任务在至少一个预定时段上在所述至少一个线程中的执行的最大计数
    值的代码。
    30.如权利要求29所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机通过演算对所述至少一个空闲任务在所述至少一个预定
    时段上的循环执行的所述至少一个计数与所述最大计数值的比值来确定所述
    多线程处理器的性能概况的代码。
    31.如权利要求25所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机确定在预定采样时段上所述处理器的所有线程均空闲的
    多线程处理器周期数目的代码;
    用于使计算机确定在所述预定采样时段期间发生的多线程处理器周期
    总数的代码;以及
    用于使计算机基于所确定的所述处理器的所有线程均空闲的多线程处
    理器周期数目与所确定的多线程处理器周期总数的比值来推导所述多线程处
    理器的性能概况的代码。
    32.如权利要求31所述的计算机程序产品,其特征在于,进一步包括:
    用于使计算机针对所述多线程处理器的一个或更多个线程全体显示所
    述性能概况的代码。

    说明书

    用于测量多线程处理器的性能的方法和装置

    优先权要求

    本专利申请要求于2009年11月19日提交的题为“METHODS AND 
    APPARATUS FOR PERFORMANCE PROFILING OF A MULTI-THREAD 
    PROCESSOR(用于多线程处理器的性能概况剖析的方法和装置)”的临时申
    请No.61/262,704的优先权,其已转让给本申请受让人并通过援引明确纳入于
    此。

    背景

    领域

    本公开一般涉及用于测量多线程处理器的性能的方法和装置,并且尤其涉
    及用于在每线程的基础上并针对各种使用和数据率来对诸如无线设备之类的
    设备中的多线程处理器进行负载测量和性能概况剖析的方法和装置。

    背景

    在诸如无线设备之类的设备中,对无线通信藉以运行的处理器的性能概况
    剖析是重要的。对处理器性能的概况剖析和测量能够提供对设计最优化的洞察
    以及为设计调试提供便利的工具。此类概况剖析的结果可被用于在利用该处理
    器的设备(诸如在一个示例中为无线设备)中进行资源管理。如果概况剖析是
    以实时方式执行的,那么此类资源管理可以是动态的且灵活的。一个示例是基
    于处理器负载的通信流量控制,该处理器负载则是基于性能概况剖析来测量
    的。

    随着无线技术的演进,需要在无线设备或手持式设备中实现许多尖端的移
    动特征和高数据率。无线设备的处理器技术因此也在演进。例如,对于诸如
    GSM/GPRS之类的2G蜂窝技术,典型的处理器是基于单线程架构的,而对于
    诸如HSPA+/LTE/EV-DO之类的3G/4G蜂窝技术,处理器已演进成是基于多
    线程的。

    然而,现有技术中没有在各种使用情形和数据率下测量多线程处理器CPU
    负载的方案和装置可用。另外,没有用来在分组数据会话正在诸如无线设备之
    类的设备中进行时按每线程来探测多线程处理器CPU使用的已知工具或仪器
    可用。不仅如此,没有用来在分组数据会话正在无线设备中进行时探测多线程
    处理器“全在等待”(即,所有处理器线程都空闲)状态的已知工具或仪器可
    用。相应地,需要确定多线程处理器的负载并使用所确定的负载来对处理器性
    能进行概况剖析。

    概述

    在一方面,公开了一种用于确定多线程处理器的负载的方法。该方法包括
    在至少一个预定时段期间在多线程处理器的至少一个线程中执行至少一个空
    闲任务。该空闲任务被配置成在没有其他任务正在该至少一个线程上运行时循
    环并运行。确定对该至少一个空闲任务在该至少一个预定时段上的循环执行的
    至少一个计数。最后,该方法包括基于对循环执行次数的该至少一个计数来确
    定多线程处理器的至少该至少一个线程的负载。

    在另一方面,公开了一种用于确定多线程处理器的负载的装置。该装置包
    括至少一个处理器,其被配置成在至少一个预定时段期间在多线程处理器的至
    少一个线程中执行至少一个空闲任务,其中该空闲任务被配置成在没有其他任
    务正在该至少一个线程上运行时循环并运行。该处理器还被配置成确定对该至
    少一个空闲任务在该至少一个预定时段上的循环执行的至少一个计数。最后,
    该处理器被配置成基于对循环执行次数的该至少一个计数来确定多线程处理
    器的至少该至少一个线程的负载。

    根据又一方面,公开了一种用于确定多线程处理器的负载的设备。该设备
    包括用于在至少一个预定时段期间在多线程处理器的至少一个线程中执行至
    少一个空闲任务的装置,其中该空闲任务被配置成在没有其他任务正在该至少
    一个线程上运行时循环并运行。进一步包括用于确定对该至少一个空闲任务在
    该至少一个预定时段上的循环执行的至少一个计数的装置。而且,该设备包括
    用于基于对循环执行次数的该至少一个计数来确定多线程处理器的至少该至
    少一个线程的负载的装置。

    根据再一个方面,公开了一种包括计算机可读介质的计算机程序产品。该
    介质包括用于使计算机生成多线程处理器的性能概况的代码,其中该代码包括
    用于使计算机在至少一个预定时段期间在多线程处理器的至少一个线程中执
    行至少一个空闲任务的代码。该空闲任务被配置成在没有其他任务正在该至少
    一个线程上运行时循环并运行。进一步包括用于使计算机确定对该至少一个空
    闲任务在该至少一个预定时段上的循环执行的至少一个计数的代码,以及用于
    使计算机基于对循环执行次数的该至少一个计数来确定多线程处理器的至少
    该至少一个线程的负载的代码。

    附图简述

    图1解说了多址无线通信系统的示例。

    图2是可采用或利用本文公开的方法和装置的示例性通信系统的框图。

    图3解说了多线程处理器概况剖析布局的框图。

    图4是解说用于确定多线程处理器的负载的装置操作的框图。

    图5解说了用于对在多线程处理器的多个线程上运行的空闲任务进行累
    积计数的休眠向量阵列。

    图6是根据本公开的一方面的用于实现多线程处理器概况剖析的方法。

    图7是根据本公开的一方面的用于实现另一种多线程处理器概况剖析的
    另一种方法。

    图8解说了用于确定多线程处理器的概况的另一示例性装置的框图。

    详细描述

    本公开的特色在于提供对多线程处理器CPU的性能进行测量和/或概况剖
    析的方法和装置,该多线程处理器CPU诸如是在用于3G/4G技术的设备中的
    那些多线程处理器CPU,3G/4G技术诸如是高速分组接入(HSPA)、演进型
    HSPA(HSPA+)、长期演进(LTE)、和EV-DO技术之类。另外,本文公开
    的方法和装置提供可被实时显示的实时概况剖析和/或测量以供在设计或优化
    多线程CPU使用或操作中使用。

    本文中所描述的装置和方法适用于利用多线程处理器的各种设备。在特定
    方面,本文中的装置和方法可被应用于利用多线程处理器的无线设备以帮助优
    化该无线设备中的处理器操作。注意到,此类设备可实现的示例性无线通信技
    术包括码分多址(CDMA)、时分多址(TDMA)网络、频分多址(FDMA)、
    正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)、高速分组接入(HSPA
    和HSPA+)技术、长期演进(LTE)、EV-DO技术、等等。CDMA网络可实
    现诸如通用地面无线电接入(UTRA)、cdma2000等无线电技术。UTRA包括
    宽带CDMA(W-CDMA)和低码片率(LCR)。cdma2000涵盖IS-2000、IS-95
    和IS-856标准。TDMA网络可实现诸如全球移动通信系统(GSM)之类的无
    线电技术。OFDMA网络可实现诸如超移动宽带(UMB)、演进型UTRA
    (E-UTRA)、IEEE 802.11、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)的
    组织的文档中描述。这些各色无线电技术和标准是本领域公知的。

    而且,如本文中所使用的术语“处理器”可包括但不限于CPU、ASIC、
    数字信号处理器(DSP)、或能够执行指令的任何其他类型的处理器。另外,
    尽管本公开主要涉及多线程处理器,但是对本领域技术人员显然的是,本文中
    的装置和方法适用于并行地、并发地等运行进程的任何处理器或甚至潜在地适
    用于多任务作业。另外,尽管本公开是在无线设备中使用的处理器的上下文中
    来讨论的,但是本领域技术人员将可领会,无论应用或使用如何,本文中的方
    法和装置可以宽泛地应用于任何多线程处理器。

    参照图1,示出了其中可采用本发明方法和装置的多址无线通信系统的示
    例。接入点100(AP)(或演进型B节点或基站)包括多个天线群,一个天线
    群包括104和106,另一个天线群包括108和110,且再一个天线群包括112
    和114。在图1中,每个天线群仅示出了两个天线,然而,每个天线群可利用
    更多或更少的天线。接入终端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所使用的频率不同。在TDD系统中,单个频率被用于UL 118
    和DL 120两者,其中UL和DL信号是时间复用的。

    每个天线群和/或它们被设计成在其中通信的区域常常被称作接入点的扇
    区。一方面,天线群各自被设计成与落在接入点100所覆盖的区域的一扇区中
    的诸接入终端通信。

    接入点可以是用于与诸终端通信的固定站,并且也可以被称为接入点、B
    节点、或其他某个术语。接入终端也可被称为接入终端、用户装备(UE)、
    无线通信设备、终端、接入终端、或其他某个术语。

    图2是提供空间分集复用的MIMO系统200中发射机系统210(也称为接
    入点)和接收机系统250(也称为接入终端)的示例的框图。在发射机系统210
    处,从数据源212向发射(TX)数据处理器214提供数个数据流的话务数据。

    一方面,每一数据流在各自相应的发射天线上被发射。TX数据处理器214
    基于为每个数据流选择的特定编码方案来格式化、编码、和交织该数据流的话
    务数据以提供经编码数据。

    可使用OFDM技术将每个数据流的经编码数据与导频数据进行复用。导
    频数据典型情况下是以已知方式处理的已知数据码型,并且可在接收机系统处
    被用来估计信道响应。每一数据流的经复用的导频和经编码数据随后基于为该
    数据流选择的特定调制方案(例如,BPSK、QPSK、M-PSK或M-QAM)被调
    制(即,码元映射)以提供调制码元。每个数据流的数据率、编码、和调制可
    由处理器230执行的指令来决定。

    所有数据流的调制码元随后被提供给TX MIMO处理器220,后者可进一
    步处理这些调制码元(例如,针对OFDM)。TX MIMO处理器220随后向NT
    个发射机(TMTR)222a到222t提供NT个调制码元流。在某些方面,TX MIMO
    处理器220向这些数据流的码元并向藉以发射该码元的天线施加波束成形权
    重。

    每个发射机222接收并处理各自相应的码元流以提供一个或更多个模拟
    信号,并进一步调理(例如,放大、滤波、和上变频)这些模拟信号以提供适
    于在MIMO信道上传输的经调制信号。来自发射机222a到222t的NT个经调
    制信号随后分别从NT个天线224a到224t被发射。

    在接收机系统250处,所发射的经调制信号被NR个天线252a到252r所
    接收,并且从每个天线252接收到的信号被提供给相应各个接收机(RCVR)
    254a到254r。每个接收机254调理(例如,滤波、放大、以及下变频)各自相
    应的收到信号,将经调理的信号数字化以提供采样,并进一步处理这些采样以
    提供相应的“收到”码元流。

    RX数据处理器260随后从NR个接收机254接收这NR个收到码元流并
    基于特定接收机处理技术对其进行处理以提供NT个“检出”码元流。RX数
    据处理器260然后解调、解交织、以及解码每个检出码元流以恢复该数据流的
    话务数据。RX数据处理器260所作的处理与发射机系统210处由TX MIMO
    处理器220和TX数据处理器214所执行的处理互补。

    反向链路或即UL消息可包括涉及通信链路和/或收到数据流的各种类型
    的信息。该反向链路消息随后由还从数据源236接收数个数据流的话务数据的
    TX数据处理器238处理,由调制器280调制,由发射机254a到254r调理,
    并被传回给发射机系统210。

    在发射机系统210处,来自接收机系统250的经调制信号被天线224所接
    收,由接收机222调理,由解调器240解调,并由RX数据处理器242处理以
    提取接收机系统250所发射的反向链路或即UL消息。处理器230随后决定要
    使用哪个预编码矩阵来确定波束成形权重,然后处理所提取的消息。

    注意到,本公开提供了用于对诸如无线设备210和250中的处理器230
    或270之类的处理器进行概况剖析的装置和方法,但是这些装置和方法还可被
    应用于任何数目的各种装置(无论是否是无线设备)中的任何多线程处理器。

    作为实现的一个示例,图3解说了多线程处理器概况剖析布局的框图。如
    所解说的,可被配置为集成的或芯片组(例如,移动站调制解调器TM
    (MSMTM))的或者更宽泛地视为是整个设备的设备300可包括实为多线程
    处理器的处理器302。连同处理器302一起的是可被整合到处理器302的封装
    或者与其分开(或者甚至与设备300分开)的存储器304。另外,其他逻辑306
    可被包括在设备300内(或在其外部)以提供附加概况或性能数据,诸如确定
    在其中处理器302的所有线程均空闲的CPU周期之类,这将在以下进一步讨
    论。替换地,由逻辑306执行的功能可由处理器302执行。另外,可包括显示
    器接口308以显示实时概况剖析数据。

    图4是解说用于确定多线程处理器的负载的装置操作的框图。仅作为一个
    示例,此解说示出了代表可在诸如无线设备之类的设备中工作的多线程处理系
    统的系统400。系统400基于某个底层操作系统(OS)402来执行包括多线程
    的操作。该操作系统和伴随的软件可被配置成在多线程处理系统中的一个或更
    多个线程上执行空闲任务。空闲任务被配置成在没有其他任务正在线程中被执
    行时执行并且可以是无限循环或其他某种重复操作。在一方面,空闲任务不过
    是除了其重复被计数以外不执行其他操作的循环。

    在一方面,系统400可包括被用来存储对在这些线程中的相应的一个或更
    多个线程中运行的空闲任务的循环的计数的寄存器404或等效设备(或在软件
    或固件情形中为功能)。寄存器404为每个线程包括分开的计数存储,如由指
    出寄存器404中的这些计数存储之一的参考标号406所解说的那样。寄存器404
    存储对在预定时段(例如,数目T个毫秒(ms))上在数目N个线程(T1到
    TN)中的每个线程中运行的每个空闲任务的计数。在一方面,寄存器404包
    括对数目N个独立线程中的每个线程的已执行空闲任务的循环计数。随后为每
    个预定时段(T ms)形成由向量408象征性地示出的具有N个元素的向量,这
    些元素各自具有对空闲任务执行的循环计数。经由通信耦合410向诸如计算机
    和存储器412之类的处理设备输出该向量,以便核对整理并处理计数数据以供
    向用户显示。

    每T ms输出针对N个线程向量中的每个线程向量的数目N个空闲任务计
    数的向量[T1,T2,T3,...TN]408,从而可以形成具有数个T ms采样时段的向量
    阵列。相应地,每T ms预定时段,向量数就增加1。休眠向量的最大数目是预
    定数目M。在M*T ms之后,所有空闲任务计数向量形成大小为M*N的阵列。
    在M*T ms之后更新该阵列。

    图5解说了用于对在多线程处理器的多个线程上运行的空闲任务进行累
    积计数的空闲任务计数向量的示例性阵列500。例如,如果线程数N=6,并且
    预定的采样时段T=10ms,并且采样时段总数M=1024,那么休眠阵列看上去
    像如所示的1024*6(即,M*N)阵列500。注意到,图5的示例仅是解说性
    的,并且M、N和T的值可被设置成任何合意数字。

    图6解说了用于多线程处理器概况剖析的方法600,该方法可被用来对多
    线程处理器(例如,处理器302)的性能进行概况剖析。如框602中所示,方
    法600包括首先在至少一个预定时段期间在多线程处理器的至少一个线程中执
    行至少一个空闲任务,其中该空闲任务被配置成在没有其他任务正在该至少一
    个线程上运行时循环并运行。在特定方面,框602的处理可包括在多线程处理
    器(例如,302)的每个独立线程中,每当相应线程空闲(即,在该线程上没
    有其他功能或任务正被执行)时实现循环空闲任务。

    如由框604指示的,方法600进一步包括确定对该至少一个空闲任务在该
    至少一个预定时段上的循环执行的至少一个计数。如先前所讨论的,计数可以
    由寄存器404或类似的单元或功能来实现。在进一步的方面,为数目M个预
    定时段执行框602中的用于执行空闲任务并计数的过程以形成如先前所讨论的
    M*N向量阵列。因此,框602和604可包括在M个预定时段上为数目N个线
    程执行空闲任务并对循环执行进行多个N元向量的计数以获得M*N阵列。

    本领域技术人员还将领会,图6中在时间上顺序地解说框602和604的过
    程,这些过程可以同时地或重复地执行,其中寄存器在每个空闲任务循环执行
    之后使这些计数增加直至该预定时段结束。在该时段到期之后,寄存器被复位
    到0以对下一预定时段中的空闲任务的循环进行计数,并且依此类推直至推导
    出M个时段的计数阵列。

    在框604的过程完成之后,诸如在至少一个预定时段之后,可以使用循环
    计数如由框606所解说的那样基于该计数来确定多线程处理器的一个或更多个
    独立线程的负载。在一示例中,对空闲任务循环的计数提供了特定线程空闲的
    频繁程度的时基,因为该空闲任务被配置成仅在没有其他任务正在该线程中被
    执行时才运行。相应地,如果给定线程在给定的预定时段上的最大休眠计数是
    已知的,那么可以基于正常的处理器操作期间的空闲任务循环计数与基线最大
    休眠计数的比值来确定该时段的负载。此在多个预定时段(例如,如先前所讨
    论的M个时段)上的负载可被用来推导性能概况的至少一个方面以便知道多
    线程处理器中的一个或更多个线程的负载程度如何。

    在框606中如何确定负载的一个特定示例中(尽管在图6中未显式地解
    说),多线程处理器的这一个或更多个线程可被强制处于空闲操作中。随后,
    可以在多线程处理器的每个线程中运行空闲任务达至少该预定时段,并且空闲
    任务的循环执行次数被计数。在另一特定示例中,可以运行空闲任务达总共M
    个预定时段以获得足以填充先前所讨论的M*N阵列的计数。该处理器(或与
    该多线程处理器分开的另一处理器)可以随后找到在其中仅运行了空闲任务的
    这M个时段期间记入此M*N阵列的最大空闲任务计数(本文中称为最大休眠
    标量值或“MAX_SLEEP_SCALER”)。在实效上,该值代表100%CPU空
    闲状况或任何给定线程的休眠。

    随后可将每个N元向量中对每个线程的计数值除以
    MAX_SLEEP_SCALAR值以推导空闲任务或休眠概况,其为空闲任务相对于
    最大空闲任务状况的百分比,该百分比即代表特定线程的负载。替换地,当
    M*N阵列被确定时,特定线程在这M个时段上的总计数可被加总并除以
    MAX_SLEEP_SCALAR与M的乘积以获得该特定线程的负载。在任何情形中,
    所确定的负载可以随后以百分比或者任何其他合适的数字为单位来显示(例
    如,简单地显示为空闲任务或休眠计数除以MAX_SLEEP_SCALAR的分数),
    如由框608中的过程所指示的那样。在多线程处理器中,可以按每线程地来显
    示每个空闲任务或休眠概况。

    注意到,在执行了方法600中的所有过程之后,方法600将不断重复以随
    着时间推移继续生成概况剖析数据。在一个示例中,预定时段可以为10ms,
    其中M个时段的总数等于25。因此,对用于确定休眠概况的数据的累积每250
    ms被执行(即,框602到606)、被显示(框608)并且每随后250ms时段
    被重复和显示。

    图7解说了用于确定多线程处理器的另一性能概况的另一示例性方法
    700。如图所示,方法700包括确定在预定采样时段(例如,Y ms)上该处理
    器的所有线程均空闲的多线程处理器周期数目,如框702中所示的那样。注意,
    术语处理器周期表示处理单元的CPU周期。另外,关于哪些周期里所有线程
    均空闲的确定可以由诸如图3中所示的逻辑306之类的逻辑来实现,其中在所
    有线程均空闲时输出指示。在一方面,注意到,此确定可以依赖于多线程处理
    器中在线程并非正在执行任务时线程时钟空闲这一特性。因此,该逻辑可被配
    置成使得在所有线程时钟均空闲时,该逻辑输出指示所有线程均空闲的逻辑状
    态。在一个示例中,框702的处理包括获得“所有线程均在等待(空闲)”的
    多线程处理器周期数目,在本文中称为“All_Wait_Cycle”。

    进而,方法700包括确定在此预定采样时段(例如,Y ms)期间发生的
    多线程处理器周期的总数,如框704中所示的那样。在一方面,此在采样时段
    中发生的周期的总数可被称为“Total_Cycle”。

    而且,方法700包括基于所确定的该处理器的所有线程均空闲的多线程处
    理器周期数目与所确定的多线程处理器周期总数的比值来推导该多线程处理
    器的性能概况,如在框706中所示的那样。此在本文中称为“全在等待比值”
    或“全在等待百分比”的比值因此是用All_Wait_Cycle/Total_Cycle的商来推导
    的。

    类似于方法600,方法700还包括导致显示此全在等待百分比信息的进一
    步过程。注意到,在一方面,方法600和700合起来能用于通过确定每个线程
    被利用程度的负载概况以及确定关于所有线程均空闲或等待的频繁程度的概
    况来获得多线程处理器的更全面的性能概况剖析记录数据集。另外,所公开的
    装置和方法可以每Y ms生成概况剖析记录数据集并将其提交给显示功能(例
    如,由处理器(302)实现的功能)以经由显示器接口(例如,308)来显示概
    况信息。概况剖析记录数据集可包括(诸如图4中所示的)空闲计数阵列和以
    上所讨论的MAX_SLEEP_SCALER。概况剖析记录数据集还可包括采样时段Y
    ms期间的全在等待百分比。注意到,在一方面,此预定的采样时段Y ms可以
    等于计数阵列中的总共M个预定时段。作为可被生成的概况剖析记录数据集
    的示例,下表1给出至少3个项的特定示例,其中Y=250ms,N=6(6个线程),
    每个预定时段等于10ms,并且M=25(即,25x 10ms=250ms的总阵列时间)。


    表1:概况剖析记录数据集

    如所示出的,所包括的这三个项为M=25个预定时段的总计205ms采样
    上的MAX_SLEEP_SCALER,M(=25)乘10ms长度的预定时段(即,250ms
    总时段)上的M*N阵列的原始计数数据,以及250ms的相同长度时段期间的
    全在等待百分比。在此示例中,以上所讨论的显示功能可以推导以百分比(%)
    为单位的空闲计数(即,将每个个体休眠计数除以MAX_SLEEP_SCALER),
    并按每线程来显示休眠概况剖析。然而,在替换方案中,此百分比演算可以由
    正接受考察的多线程处理器执行并作为数据集中的另一字段来发送。

    图8解说了用于确定多线程处理器的概况的另一示例性设备800的框图。
    设备800包括用于实现诸如以上结合用于推导多线程处理器的性能概况的方法
    600和700所描述的那些功能之类的各种功能的各种模块或装置。设备800的
    装置或模块可用硬件、软件、固件、或其任何组合来实现。另外,正接受考察
    的多线程处理器、其他处理器、个人计算机、专用设备、或其任何组合可以实
    现设备800的各种模块或装置。另外,在一个方面,设备800可以至少部分地
    在无线通信设备内实现。

    设备800包括用于在至少一个预定时段期间在多线程处理器(例如,处理
    器302)的至少一个线程中执行至少一个空闲任务的装置802,其中该空闲任
    务被配置成在没有其他任务正在该至少一个线程上运行时循环并运行。在一个
    示例中,装置802可以由处理器302实现并且尤其由在该处理器上运行的OS
    (例如,OS 402)来实现。设备800进一步包括通信装置或通信耦合,该通信
    耦合在图8中被表示为耦合804以仅指示诸装置之间的通信或者各种功能间的
    信息传递。

    设备进一步包括用于确定对该至少一个空闲任务在该至少一个预定时段
    上的循环执行的至少一个计数的装置806。在一个示例中,装置806还可以由
    该多线程处理器(例如,302)协同诸如寄存器(例如,先前所讨论的寄存器
    404)之类的用于递增并存储对空闲任务循环的计数的装置来实现。由装置806
    积累的计数信息可以随后被传达给用于基于对循环执行次数的该至少一个计
    数来确定多线程处理器的至少该至少一个线程的负载的装置808。注意到,装
    置808可以用多线程处理器、其他处理器、个人计算机、或在包含该多线程处
    理器的设备外部的其他计算机来实现。例如,来自装置806的原始计数数据可
    以构成诸如表1中的数据集之类的数据集的一部分,该数据集进而被发送给外
    部设备以确定负载。

    另外,设备800可包括用于显示性能概况的装置810。替换地,装置810
    可被配置为用于向设备800外部的显示器(未示出)发送性能概况数据集的装
    置。另外,设备800可替换地包括处理器812和存储器814,该存储器814尤
    其可存储可由处理器(例如,多线程处理器或处理器812)执行的代码并还存
    储性能概况数据等。最后,设备800可包括配置成确定诸如该多线程处理器空
    闲或等待的CPU周期数目(即先前讨论的All_Wait_Cycle)之类的数据的附加
    硬件或逻辑816。

    本领域技术人员将领会,以上公开的装置和方法提供了动态且实时方式的
    处理器性能概况剖析,而无需附加的装备或软件。另外,本文公开的概况剖析
    不导致性能降格,因为概况剖析部分地是用“空闲”任务来执行的。本文中的
    装置和方法可以作为调试以及系统优化(包括功率优化)的工具。不仅如此,
    这些方法和装置可被用于设计和开发使用CPU作为测试工具的系统,或者还
    可与诸如无线设备中之类的使用中的CPU一起实现以执行概况剖析,这样的
    概况剖析使得能够对CPU和/或伴随系统实现进行中的“运行时”优化。

    在特定方面,本文中公开的方法和装置提供动态且实时的方式来测量和概
    况剖析无线设备的处理器性能,尽管它们并不仅限于此类设备。所公开的方法
    和装置可包括“空闲”任务的设计和实现、“全在等待百分比”功能的设计、
    推导最大休眠或空闲计数标量、搜集并提交概况剖析记录数据集、以及以实时
    方式显示任何或全部概况剖析信息。归纳起来,本文中公开的装置和方法提供
    创新方式来测量各种使用情形和数据率下的多线程处理器CPU负载,按每线
    程来探测多线程处理器CPU使用、以及探测当正在执行特定任务(诸如无线
    设备中正在进行的分组数据会话之类)时的多线程处理器“全在等待”(即,
    所有处理器线程均空闲)状态。注意到,所有这些提供的特征均不要求无线标
    准化或任何附加工具。

    注意到,本文中使用措辞“示例性的”来表示“起到示例、实例、或解说的
    作用”。本文中描述为“示例性”的任何实施例不必被解释为优于或胜过其他实
    施例。

    应理解,所公开的过程中各步骤的具体次序或位阶仅仅是示例性办法的例
    子。基于设计偏好,应理解这些过程中步骤的具体次序或位阶可被重新安排而
    仍在本公开的范围之内。所附方法权利要求以样本次序呈现各种步骤的要素,
    且并不意味着被限定于所呈现的具体次序或位阶。

    本领域技术人员将可理解,信息和信号可使用各种不同技术和技艺中的任
    何技术和技艺来表示。例如,贯穿上面说明始终可能被述及的数据、指令、命
    令、信息、信号、比特、码元、和码片可由电压、电流、电磁波、磁场或磁粒
    子、光场或光粒子、或其任何组合来表示。

    本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种
    解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、
    或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、
    框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功
    能性是被实现为硬件还是软件取决于具体应用和强加于整体系统的设计约束。
    技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的
    实现决策不应被解读成导致脱离了本发明的范围。

    结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用
    通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程
    门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬
    件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理
    器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控
    制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如
    DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或更多个微
    处理器、或任何其他此类配置。

    结合本文所公开的实施例描述的方法或算法的步骤可直接在硬件中、在由
    处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在RAM
    存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、
    硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。
    示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在
    替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC
    中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分
    立组件驻留在用户终端中。

    提供了以上对所公开的实施例的描述是为了使得本领域任何技术人员皆
    能够制作或使用本发明。对这些实施例的各种改动对于本领域技术人员将是显
    而易见的,并且本文中定义的普适原理可被应用于其他实施例而不会脱离本发
    明的精神或范围。由此,本发明并非旨在被限定于本文中示出的实施例,而是
    应被授予与本文中公开的原理和新颖性特征一致的最广义的范围。

    关 键  词:
    用于 测量 多线程 处理器 性能 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:用于测量多线程处理器的性能的方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4258753.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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