确定中央处理器利用率的方法和相关装置
文献发布时间:2024-04-18 20:00:50
技术领域
本公开涉及嵌入式软件开发领域,具体涉及一种确定中央处理器利用率的方法和相关装置。
背景技术
嵌入式实时操作系统(Real Time Operating System,简称RTOS)会有多个任务并行执行,尤其在开发调试阶段,如果能实时高效地获取到系统中央处理器(CentralProcessing Unit,简称CPU)利用率,甚至每个任务的中央处理器利用率,对问题定位以及代码优化都是非常有益的。通常的方法是利用嵌入式实时操作系统提供的接口以及额外的高精度硬件计数器来实现,毫无疑问这是可行的,但该方法的通用性会引起高使用率从而导致低效率,而且额外的计数器也会造成硬件成本的增加。
发明内容
为了解决上述技术问题,本公开提供了一种确定中央处理器利用率的方法和相关装置。
根据本公开第一方面,提供了一种确定中央处理器利用率的方法,该方法应用于数传芯片,所述数传芯片采用通信协议进行通信,所述数传芯片包括计数器,所述计数器用于实现所述通信协议要求的时域结构
根据所述计数器确定目标任务的进入时刻和退出时刻;
将所述进入时刻和所述退出时刻发送到上位机,其中,所述数传芯片作为下位机、与所述上位机连接,所述进入时刻和所述退出时刻用于所述上位机确定所述数传芯片的中央处理器利用率。
可选地,根据所述计数器确定目标任务的进入时刻和退出时刻,包括:
在所述目标任务启动时,确定所述计数器对应的第一时域位置,所述第一时域位置为所述进入时刻;
在所述目标任务退出时,确定所述计数器对应的第二时域位置,所述第二时域位置为所述退出时刻。
可选地,所述方法还包括:为所述数传芯片中系统的任务配置标识,并根据所述标识确定所述目标任务的启动和所述目标任务的退出。
可选地,所述中央处理器利用率包括所述目标任务的利用率和所述数传芯片整个系统的利用率中的一种或多种。
可选地,所述目标任务为空闲任务,所述空闲任务为所述数传芯片中系统的所有用户任务都不在运行态时所述中央处理器所运行的任务;
所述数传芯片整个系统的利用率=1-所述空闲任务的利用率。
可选地,若任务的利用率设为该任务在所述通信协议中单个子帧的时域长度内的占用率,则所述目标任务的利用率为所述目标任务的执行时长与所述单个子帧的时域长度的商,所述执行时长由所述第一时域位置和所述第二时域位置确定。
可选地,若所述第一时域位置和所述第二时域位置为同一子帧内的时域位置,则所述执行时长为所述第二时域位置与所述第一时域位置的间距。
根据本公开第二方面,提供了一种数传芯片,包括:计数器、中央处理器、存储器及存储在所述存储器上并可在所述中央处理器上运行的程序,所述程序被所述中央处理器执行时实现第一方面所述的基于所述计数器的任一种确定中央处理器利用率的方法。
根据本公开第三方面,提供了一种确定中央处理器利用率的装置,包括:
第二方面所述的数传芯片;
以及与所述数传芯片连接的上位机;
其中,所述上位机在根据所述数传芯片发送的目标任务的进入时刻和退出时刻计算出所述数传芯片的中央处理器利用率后,向用户通知计算得到的所述中央处理器利用率。
根据本公开第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被中央处理器执行时实现第一方面所述的任一种确定中央处理器利用率的方法。
本公开的有益效果:
本公开提供的确定中央处理器利用率的方法应用于数传芯片,数传芯片采用通信协议进行通信且包括用于实现通信协议要求的时域结构的计数器,该方法先根据该计数器确定目标任务的进入时刻和退出时刻,之后将进入时刻和退出时刻发送到与数传芯片连接的上位机,从而上位机能够基于进入时刻和退出时刻确定数传芯片的中央处理器利用率,这整个过程用到的是数据芯片的计数器,并不是额外增设的计数器,因而并没有造成硬件成本的增加;此外,由于数传芯片的计数器只供确定数传芯片自身的中央处理器利用率,因而使用率并不会很高,因而中央处理器利用率的确定效率得以提高。
本公开能够应当说明的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示出根据本公开一个实施例的确定中央处理器利用率的方法流程图;
图2示出根据本公开一个实施例的一种示例性通信协议中的帧结构;
图3示出根据本公开一个实施例的一种示例性的目标任务的利用率的确定示意图;
图4示出根据本公开一个实施例的另一种示例性的目标任务的利用率的确定示意图;
图5示出根据本公开一个实施例的一种示例性的数传芯片的结构示意图;
图6示出根据本公开一个实施例的一种示例性的确定中央处理器利用率的装置的结构示意图。
具体实施方式
为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的较佳实施例。但是,本公开可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本公开的公开内容的理解更加透彻全面。
为了提高中央处理器利用率的确定效率并使得成本得以降低,本公开一个实施例提供了一种确定中央处理器利用率的方法,该方法应用于数传芯片,其中,数传芯片采用通信协议进行通信,包括用于实现通信协议要求的时域结构的计数器,因而天然就具备了一个高精度的硬件计数器,从而无需为了中央处理器利用率的确定而额外增设计数器,这样不仅节省了硬件成本,而且由于该计数器只用于数传芯片自身中央处理器利用率的确定,因而还使得效率得以提高。
需要说明的是,上述数传芯片只要包括用于实现通信协议要求的时域结构的计数器即可,所述通信协议包括但不限于4G(the 4th generation mobile communicationtechnology,第四代移动通信技术)通信中的LTE(Long Term Evolution,长期演进)和5G(the 4th generation mobile communication technology,第五代移动通信技术)通信中的NR(New Radio,新无线)。
图1所示为根据本公开一个实施例的确定中央处理器利用率的方法的流程图。参照图1,该方法包括:
步骤S110,根据数传芯片的计数器确定目标任务的进入时刻和退出时刻。
步骤S120,将进入时刻和退出时刻发送到作为下位机而与数传芯片连接的上位机,其中,进入时刻和退出时刻用于上位机确定数传芯片的中央处理器利用率。
下面对本公开实施例提供的确定中央处理器利用率的方法进行详细描述。
图2所示为根据本公开一个实施例的一种示例性通信协议中的帧结构,该种示例性通信协议为4G通信中的LTE。在LTE里,时间的基本单位是采样周期T
图2所示的帧结构为LTE中的FDD帧结构。参照图2,在FDD帧结构中,每个无线帧(radio frame)的长度T
需要说明的是,对于4G通信中的LTE这一通信协议来说,还可以实现TDD帧结构。在TDD帧结构中,每个无线帧的长度仍为T
可见,在采用LTE进行通信的数传芯片中,因为要实现通信协议所要求的无线帧结构,所以天然就具备了一个高精度的以采样周期T
应当理解的是,以上内容用来说明采用通信协议进行通信的数传芯片包括用于实现所述通信协议要求的时域结构的计数器,并不表示本公开实施例的方法限定于应用于采用LTE进行通信的数传芯片。
一个可选的实施例中,步骤S110,根据计数器确定目标任务的进入时刻和退出时刻,包括:在目标任务启动时,确定计数器对应的第一时域位置T1,第一时域位置T1为进入时刻;以及,在目标任务退出时,确定计数器对应的第二时域位置T2,第二时域位置T2为退出时刻。该实施例实现利用数传芯片的计数器统计目标任务的进入时刻和退出时刻,进而计算出数传芯片中中央处理器利用率。
具体地,可以在数传芯片中系统初始化时,给数传芯片中系统的每个任务配置一个标识。之后,当系统切换任务而启动一个任务时,通过判断所启动任务的标识是否为目标任务的标识来确定是否启动目标任务,如果是则读取此刻计数器的时域位置而作为上述第一时域位置T1。同理,当系统切换任务而结束一个任务时,通过判断所结束任务的标识是否为目标任务的标识来确定是否结束目标任务,如果是则读取此刻计数器的时域位置而作为上述第二时域位置T2。上述所启动任务的标识或所结束任务的标识若不是目标任务的标识,则不进行任何操作,这样对其他任务的影响微乎其微。
进一步,中央处理器利用率可以包括目标任务的利用率和数传芯片整个系统的利用率中的一种或多种。中央处理器利用率包括目标任务的利用率的情况下,确定出的目标任务的利用率能够用于检查目标任务是否存在问题或对目标任务的相关代码进行优化;中央处理器利用率包括数传芯片整个芯片的利用率的情况下,确定出的数传芯片整个系统的利用率能够用于确定数传芯片中系统的性能。
对于目标任务的利用率,若预先设定任务的利用率为该任务在通信协议中单个子帧的时域长度内的占用率,则目标任务的利用率为目标任务的执行时长与单个子帧的时域长度的商,执行时长由第一时域位置T1和第二时域位置T2确定。
一些示例中,第一时域位置T1和第二时域位置T2为同一子帧内的时域位置,则执行时长为第二时域位置T2与第一时域位置T1的间距。
图3所示为根据本公开实施例的一种示例性的目标任务的利用率的确定示意图。参照图3,第一时域位置T1和第二时域位置T2皆在第二子帧内,其中,第一时域位置T1为第二个子帧中前一个时隙内计数器的计数值:4385,第二时域位置T2为第二个子帧中后一个时隙内计数器的计数值:7680,因而目标任务的执行时长为第二时域位置T2与第一时域位置T1的间距:[(T
若一个例子中,第一时域位置T1和第二时域位置T2为同一时隙内的时域位置,则执行时长直接为第二时域位置T2与第一时域位置T1的差,进而目标任务的利用率CPU
CPU
另一些示例中,第一时域位置T1和第二时域位置T2分布在相邻两子帧内,则可以将第一时域位置T1和第二时域位置T2中距离这相邻两子帧的分界处较近的一个近似到该分界处,然后将另一个与该分界处的间距作为执行时长。
图4所示为根据本公开实施例的另一种示例性的目标任务的利用率的确定示意图。参照图4,第一时域位置T1在第二个子帧内,第二时域位置T2在第三子帧内,其中,第一时域位置T1为第二个子帧中后一个时隙内计数器的计数值:10971,第二时域位置T2为第三个子帧中后一个时隙内计数器的计数值:7000,因而要先将第一时域位置T1近似为时域位置T1'(即第二个子帧和第三个子帧的分界处,也就是第三个子帧中前一个时隙内计数器的计数值:0),然后计算出第二时域位置T2与时域位置T1'的间距为:[(T
需要说明的是,以上预先设定任务的利用率为该任务在通信协议中单个子帧的时域长度内的占用率,是因为数传芯片内绝大部分任务的执行时长小于单个子帧的时域长度,只有偶然情况下极少数任务的执行时长会大于单个子帧的时域长度。若数传芯片内有相当可观的一部分任务的执行时长大于单个子帧的时域长度,则可以预先设定任务的利用率为该任务在预设时段内的占用率,这样目标任务的利用率为目标任务的执行时长和预设时段时长的商。其中,预设时段为通信协议中多个子帧的时域长度,多个子帧的数量是根据数传芯片内任务的执行时长确定。
实践中,若执行时长在n个子帧的时域长度到(n+1)个子帧的时域长度的范围内的任务的比例大于比例阈值,则将这部分任务确定为待考虑部分的任务,其中,n为不小于0的整数。至少一个待考虑部分的任务中,可以基于执行时长最大的待考虑部分的任务来确定上述多个子帧的数量,记执行时长最大的待考虑部分的任务的执行时长在N个子帧的时域长度到(N+1)个子帧的时域长度的范围内,则多个子帧的数量为(N+1)。
例如,数传芯片内有1/3的任务的执行时长大于单个子帧的时域长度且小于两个子帧的时域长度,其他2/3的任务的执行时长皆小于单个子帧的时域长度,比例阈值为1/5,则可以设置多个子帧的数量为2,即预设时段为通信协议中两个子帧的时域长度之和。
上述目标任务可以是数传芯片中系统的某个任务,这样目标任务的利用率即某个任务的利用率;上述目标任务也可以是数传芯片中系统的某几个任务,这样目标任务的利用率即某几个任务各自的利用率。也就是说,可以针对性地确定数传芯片中系统的一个任务的中央处理器利用率或多个任务各自的中央处理器利用率,并不一定需要确定数传芯片中系统的全部任务的中央处理器利用率。具体获取哪个或哪几个任务的中央处理器利用率,根据实际需求确定。
一个可选的实施例中,目标任务为空闲任务,空闲任务为数传芯片中系统的所有用户任务都不在运行状态时中央处理器所运行的任务,可以通过数传芯片所运行程序的合理编写而设置该任务。这种情况下,数传芯片整个系统的利用率如公式(2)所示,其中,CPU
CPU
上述实施例提供的确定中央处理器利用率的方法,由于其低成本和高效率的特性而利于广泛推广,并且数传芯片内计数器的高精度也使得确定的中央处理器的利用率较为可靠。
相应于以上实施例提供的确定中央处理器利用率的方法,本公开另一实施例还提供了一种数传芯片。图5所示为该数传芯片的结构示意图。参照图5,该数传芯片800包括:中央处理器810、存储单元820、计数器830。数传芯片800还可以包括至少一个存储单元820以及连接不同系统组件(包括中央处理器810、存储单元820和计数器830)的总线840。存储单元820可以包括易失性存储单元形式的可读介质,例如用来存储引导加载程序的随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括用来存储启动程序的只读存储单元(ROM)8203。存储单元820还可以包括存储一组程序模块8205的动态随机存储器/紧耦合存储器8204,程序模块8205包括但不限于:一个或者多个应用程序以及程序数据,这些应用程序以及程序数据使得数传芯片800能够实现系统功能,本公开实施例中将该系统称为数传芯片800中系统。
需要说明的是,程序模块8205包括的部分程序被中央处理器810执行时实现上述确定中央处理器利用率的方法中各实施例的各个过程,且能达到相同的技术效果。
总线840可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
数传芯片800也可以与一个或者多个使得用户能与该数传芯片800交互的终端设备(例如上位机)通信,和/或与使得该数传芯片800能与一个或多个其它计算设备进行通信的任何传输设备(例如通用异步收发传输器)通信。这种通信可以通过输入/输出(I/O)接口850进行,输入/输出接口850与总线840连接。此外,数传芯片800还可以通过连接总线840的网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信,该通信基于通信协议进行,计数器830即用于实现该通信协议要求的时域结构。
相应于以上实施例提供的数传芯片,本公开又一实施例还提供了一种确定中央处理器利用率的装置。图6所示为该确定中央处理器利用率的装置的结构示意图。参照图6,该确定中央处理器利用率的装置1000包括:下位机10和与下位机10连接的上位机20。下位机10和上位机20之间可以通过USB(Universal Serial Bus,通用串行总线)接口连接,但不限于这一种连接方式。下位机10为上述实施例提供的数传芯片,上位机20在根据数传芯片发送的目标任务的进入时刻和退出时刻计算出数传芯片的中央处理器利用率后,向用户通知计算得到的中央处理器利用率。图6中示意空闲任务作为目标任务,其进入时刻和退出时刻被发送到上位机20,但这只是示意一种可选的实施例,其他可选的实施例中下位机10可以将空闲任务之外的任务的进入时刻和退出时刻发送到上位机。进一步,下位机10可以每隔预设时长而向上位机20发送一次目标任务的进入时刻和退出时刻,这样上位机会相继计算出数传芯片的多个中央处理器利用率;上位机20在计算出数传芯片的中央处理器利用率后还可以实时绘制中央处理器利用率的变化曲线图,然后通过显示器向用户展示该变化曲线图来通知用户计算得到的中央处理器利用率。
该实施例中,数传芯片中系统可以为嵌入式系统。中央处理器这一资源对嵌入式系统来说是非常重要的,需要实时确定并记录。然而嵌入式系统本身并不能输出这些信息,也不会浪费资源保存这些数据或做得到这些数据的相关计算,这里数传芯片只需要将计数器的数据通过串口传给上位机20,上位机20中用于处理这些数据的工具(包括计算工具,一些情况下还包括绘图工具)对这些数据处理后则可以及时得到数传芯片的中央处理器的利用率。之后实时显示或打印计算得到的数传芯片的中央处理器的利用率,也可以保存计算得到的数传芯片的中央处理器的利用率而用于用户的后续分析。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读的可读存储介质中,并由中央处理器进行加载和执行。为此,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被中央处理器执行时可实现上述确定中央处理器利用率的方法中各实施例的各个过程。其中,计算机可读存储介质,如U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
由于该可读存储介质所存储的程序,可以执行本公开实施例所提供的任一种确定中央处理器利用率的方法中的步骤,因此,可以实现本公开实施例所提供的任一种确定中央处理器利用率的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
需要说明的是,本说明书中在对各个实施例进行描述时,均重点说明的是与其他实施例的不同之处,而对于各个实施例之间相同或相似的部分可互相参考进行理解。对于各装置实施例而言,由于其与方法实施例基本相似,因此相关之处可参考对方法实施例部分的说明。由于各装置实施例具有上述方法实施例所能实现的有益效果,详见前面的实施例,在此不再赘述。
此外,需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
最后应说明的是:术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。并且,以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
- 一种刚柔结合的仿人五指机械手爪
- 一种刚柔结合的仿人五指机械手爪