CN111274010B - 数据控制方法、装置、电子设备及存储介质 - Google Patents

数据控制方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111274010B
CN111274010B CN202010038086.2A CN202010038086A CN111274010B CN 111274010 B CN111274010 B CN 111274010B CN 202010038086 A CN202010038086 A CN 202010038086A CN 111274010 B CN111274010 B CN 111274010B
Authority
CN
China
Prior art keywords
data
hardware queue
type
type data
preset
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.)
Active
Application number
CN202010038086.2A
Other languages
English (en)
Other versions
CN111274010A (zh
Inventor
彭冬炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010038086.2A priority Critical patent/CN111274010B/zh
Publication of CN111274010A publication Critical patent/CN111274010A/zh
Application granted granted Critical
Publication of CN111274010B publication Critical patent/CN111274010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本申请公开了一种数据控制方法、装置、电子设备及存储介质,涉及电子设备技术领域。其中,该方法包括应用于电子设备,所述电子设备设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据,所述方法包括:统计所述硬件队列中第一类型数据的数量;当所述硬件队列中第一类型数据的数量超过预设数量,获取所述第一类型数据在所述硬件队列中的数量变化趋势;若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据,以使重要的第二类型数据能及时进入硬件队列,及时处理。

Description

数据控制方法、装置、电子设备及存储介质
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种数据控制方法、装置、电子设备及存储介质。
背景技术
电子设备的硬件队列中存放不同类型的待处理数据,并对队列中的待处理数据进行处理。由于硬件队列的存放空间有限,可能会导致某些重要数据处理的不及时。
发明内容
鉴于上述问题,本申请提出了一种数据控制方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种数据控制方法,应用于电子设备,所述电子设备设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据,所述方法包括:统计所述硬件队列中第一类型数据的数量;当所述硬件队列中第一类型数据的数量超过预设数量,获取所述第一类型数据在所述硬件队列中的数量变化趋势;若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据。
第二方面,本申请实施例提供了一种数据控制装置,应用于电子设备,所述电子设备设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据,所述装置包括:统计模块,用于统计所述硬件队列中第一类型数据的数量;趋势获取模块,用于当所述硬件队列中第一类型数据的数量超过预设数量,获取所述第一类型数据在所述硬件队列中的数量变化趋势;数据控制模块,用于若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器,所述存储器中包括硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序被所述处理器执行用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
本申请实施例提供的数据控制方法、装置、电子设备及存储介质,硬件队列用于存放待处理的第一类型数据以及第二类型数据,当硬件队列中第一类型数据的数量超过预设数量且其数量变化趋势满足预设增长条件,则对进入硬件队列的第一类型数据的数量进行限制,为第二类型数据预留位置,以使重要的第二类型数据能及时进入硬件队列,及时处理。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的数据出入硬件队列的示意图。
图2示出了本申请一实施例提供的数据控制方法的流程图。
图3示出了本申请另一实施例提供的数据控制方法的流程图。
图4示出了本申请实施例提供的数据控制装置的功能模块图。
图5示出了本申请实施例提供的电子设备的结构框图。
图6是本申请实施例的用于保存或者携带实现根据本申请实施例的数据控制方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
电子设备中的硬件队列(HW queue)可以用于存放待处理的数据,其中,硬件队列中可以包括多个不同的存放位置,每个存放位置为一个存储空间,分别用于存放不同的数据元素。相关的处理单元对硬件队列中的数据依次进行处理。例如,对于如图1所示的磁盘的硬件队列101,队列深度为32,表示存在32个存放位置,可以用于存储32个数据。待处理的数据从硬件队列的队尾入队,存放在最靠近队头的存放位置,并从队头出队,用于对数据进行处理的处理单元102进行处理。
可以理解的,当队列中有空的存放位置,可以向队列中存放数据。但是,若队列处于队满状态,则无法向其中存放数据用于等待处理。若电子设备中产生了重要的需要及时处理的数据,但是队列被占满,该数据无法及时入队,无法及时处理,则可能给用户以不好的体验。
因此,在本申请实施例中,提出了一种数据控制方法,根据数据的类型,对进入硬件队列的数据的数量进行控制,为某些类型的数据预留位置,以保证需要及时处理的数据能及时入队及时处理。
下面将通过具体实施例对本申请实施例提供的数据控制方法、装置、电子设备及存储介质进行详细说明。
请参阅图2,示出了本申请实施例提供的数据控制方法,该方法应用于电子设备。其中,电子设备中设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据。具体的,该方法包括:
步骤S110:统计所述硬件队列中第一类型数据的数量。
步骤S120:当所述硬件队列中第一类型数据的数量超过预设数量,获取所述第一类型数据在所述硬件队列中的数量变化趋势。
步骤S130:若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据。
在该实施例中,对硬件队列中第一类型数据的数量进行统计,并且当第一类型数据的数量超过设置的预设数量的情况下,获取该第一类型数据在硬件队列中的数量变化趋势。当该数量变化趋势满足预设增长条件,说明硬件队列中第一类型数据可能会持续增长占满队列,影响第二类型数据的处理,则对进入硬件队列中的第一类型数据的数量进行限制,为第二类型数据预留存储位置,保证第二类型数据产生并需要处理时,能及时进入硬件队列等待处理。
本申请提供的另一实施例中,具体描述了对第一类型数据的数量变化趋势的计算。请参见图3,该实施例提供的方法包括:
步骤S210:统计所述硬件队列中第一类型数据的数量。
第一类型数据和第二类型数据产生后,需要进行处理。在处理之前,需要将产生的第一类型数据以及第二类型数据放入硬件队列,等待处理单元依次对硬件队列中的数据进行处理,将处理后的数据从硬件队列的队头移出。
统计在硬件队列中第一类型数据的数量,即统计进入到硬件队列中并且还未处理的第一类型数据。电子设备可以对硬件队列中第一类型数据的数量持续进行统计,具体统计频率并不限定,可以根据需求进行设置,如根据经验设置一个合适的统计频率。
可选的,在本申请实施例中,统计频率可以是动态的,例如硬件队列剩余存储位置与第一类型数据的产生速度确定统计频率,如第一类型数据最快产生速度情况下,剩余的存放位置还有多长时间可能会被填满,则以该时间长度后的时间作为下一次统计时间点;又如,如第一类型数据最快产生速度情况下,剩余的存放位置减去预留的指定数量的存放位置的得到的存放位置数量,还有多长时间可能会被填满,则以该时间长度后的时间作为下一次统计时间点。
在本申请实施例中,第一类型数据可以是对处理的即时性要求不高的数据,例如,在短时间内不处理,电子设备也可以正常运行,并且不会向用户反馈的数据。第二类型数据可以是对处理的即时性要求较高的数据,若在短时间内不及时进行处理,电子设备可能无法正常信息,或者是会向用户产生反馈,给用户以不佳的使用体验。该短时间具体多长可以根据需要设置。
可选的,在本申请实施例中,硬件队列存放的数据可以是输入输出(IO)请求,例如磁盘的硬件队列存的可以是对磁盘的输入输出请求。第一类型数据可以是与用户交互体验无关的数据,如与用户交互体验无关的IO请求(NO-Interactive IO),例如系统产生用于加载配置文件、lib库等的No-Interactive IO;第二类型数据可以是与用户交互体验相关的数据,如与用户交互体验相关的IO请求(Interactive IO),例如因为用户的触发产生的数据,或者是执行后需要向用户反馈的数据,从该第二类型数据产生到该第二类型数据被处理之间的时间,若超过一定时长,如15ms,则用户可能会感觉到卡顿。
步骤S220:当所述硬件队列中第一类型数据的数量超过预设数量,获取预设时间段内所第一类型数据在所述硬件队列中的数量变化趋势。
统计到第一类型数据的数量时,计算统计到的第一类型数据的数量与预设数量之间的大小。当硬件队列中第一类型数据的数量超过预设数量,则若第一类型数据持续增长,可能会导致硬件队列被第一类型数据占满,新产生的第二类型数据无法及时进入硬件队列,需要至少等待硬件队列中所有第一类型数据执行完所花费的时间才能处理,并且很可能等待的时间更长,导致第二类型数据从产生到处理之间时间相差过大。
因此,当硬件队列中第一类型数据的数量超过预设数量,可以获取所述第一类型数据在所述硬件队列中的数量变化趋势,以预测是否可能出现硬件队列被第一类型数据占满的场景,例如预测在未来指定时间内第一类型数据会占满硬件队列。
其中,预设数量的具体值在本申请实施例中并不限定,可以是,小于硬件队列的深度减去指定数量的值。例如,硬件队列的深度为32,指定数量为4,预设数量可以设置为24,小于32与4的差。
可选的,硬件队列的深度减去指定数量的值与预设数量之间的差值,可以是在确定第一类型数据的数量超过预设数量时至确定数量变化趋势满足预设条件之间的时间可能产生第一类型数据的数量。
可选的,预设数量可以是硬件队列深度的一定比例,如根据经验设置为四分之三,若硬件队列的深度为32,预设数量可以设置为24。
在本申请实施例中,可以获取预设时间段内第一类型数据在硬件队列中的数量变化趋势。
在本申请实施例中,该预设时间段可以是包括当前时间在内的任意一段时间,且时间长度为预设时间长度。
可选的,为了及时确定第一类型数据的数量是否可能会占满硬件队列,该预设时间段可以是从当前时间到当前时间之前预设时间之间的时间段。例如,当前时间为1:00,当前时间之前预设时间为当前时间之前4秒,则预设时间段从当前时间到前4秒之间的时间段,为00:59:56至1:00。
在一种实施方式中,可以将预设时间段内统计的所有数量用于计算预设时间段内第一类型数据在硬件队列中的数量变化趋势。
在一种实施方式中,为了简化计算,提高计算速度,可以选取预设时间段内的多个时间点,以该多个时间点统计到的第一类型数据的数量计算预设时间段内第一类型数据在硬件队列中的数量变化趋势。可选的,在该实施方式中,选取的多个时间点中,每相邻两个时间点之间的时间差相等,以使获得的数量能更有效地表示第一类型数据在硬件队列中的数量变化趋势。例如,每相邻两个时间点之间的时间差为1秒,则获取的多个时间点为当前时间、当前时间前1秒时、当前时间前两秒时等等。
可选的,在本申请实施例中,硬件队列中第一类型数据的数量进行统计的统计频率可以根据每相邻两个时间点之间的时间差确定,即统计周期可以等于每相邻两个时间点之间的时间差。例如,每相邻两个时间点之间的时间差为1秒,则每隔1秒统计一次硬件队列中第一类型数据的数量,将当前时间到前预设时间之间统计到的所有数量用于计算第一类型数据在硬件队列中的数量变化趋势。
具体的,在该实施方式中,可以是,确定从当前时间到前预设时间之间的多个时间点,并获取分别在该多个时间点时所述硬件队列中第一类型数据的数量,根据获得的各个数量预测第一类型数据的变化趋势。
其中,根据获得的各个数量预测第一类型数据的变化趋势,可以是随着时间的推移,第一类型数据的各个数量的大小关系,表示第一类型数据的变化趋势。
例如,可以获取各个数量中,在时间上后一时间点的数量相对前一时间点的数量的大小关系。若后一时间点的数量相对前一时间点的数量增大,表示在该两个时间点之间第一类型数据的变化趋势是增大。若后一时间点的数量相对前一时间点的数量变小,表示在该两个时间点之间第一类型数据的变化趋势是减小。
若所有的大小关系中都满足,每两个相邻时间点之间第一类型数据的变化趋势都是增大,则可以认为在预设时间段内,第一类型数据在硬件队列中的数量变化趋势是持续增大;若所有的大小关系中都满足,每两个相邻时间点之间第一类型数据的变化趋势都是减小,则可以认为在预设时间段内,第一类型数据在硬件队列中的数量变化趋势是持续减小。若既非持续增大又非持续减小,可以认为是波动状态。
例如,以Mn表示在当前时间之前,且距当前时间第n秒时硬件队列中第一类型数据的数量,则M0表示当前时间硬件队列中第一类型数据的数量,M1表示当前时间前一秒时硬件队列中第一类型数据的数量,以此类推。若预设时间段为当前时间至当前时间前4秒,获得的各个时间点的数量分别为M4、M3、M2、M1以及M0。若满足M4<M3<M2<M1<M0,则第一类型数据在硬件队列中的数量变化趋势是持续增大,若满足M4>M3>M2>M1>M0,则第一类型数据在硬件队列中的数量变化趋势是持续减小。
另外,在该实施方式中,根据获得的各个数量预测第一类型数据的变化趋势,还可以通过第一类型数据的数量占硬件队列深度的比例变化确定,根据比例变大或变小确定变化趋势。例如通过如下公式计算:其中,Cn表示在当前时间之前,且距当前时间第n秒时硬件队列中第一类型数据的数量,Ct表示硬件队列的深度,或者说硬件队列中可以存放的数据总量;m表示预设数量的值,load n表示在当前时间之前,且距当前时间第n秒时硬件队列对第一类型数据的负载。若C0小于或等于m,表示当前时间在硬件队列中第一类型数据的数量未超过预设数量,可以将硬件队列的负载load n赋值为0;若C0大于m,表示当前时间在硬件队列中第一类型数据的数量超过预设数量,计算硬件队列的负载load n值为n时刻第一类型数据的数量与硬件队列深度的比值,n时刻表示距当前时间n秒且在当前时间之前的时刻。
当C0大于m,若满足load 4<load 3<load 2<load 1<load 0,则表示第一类型数据的数量在硬件队列中的占比持续增大,表示第一类型数据在硬件队列中的数量变化趋势是持续增大;若满足load 4>load 3>load 2>load 1>load 0,则表示第一类型数据的数量在硬件队列中的占比持续减小,第一类型数据在硬件队列中的数量变化趋势是持续减小。若既非持续增大又非持续减小,可以认为数量变化趋势是波动状态。
步骤S230:若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据。
根据第一类型数据在所述硬件队列中的数量变化趋势,可以确定该数量变化趋势是否满足预设增长条件。若满足,表示第一类型的数据即可能会短时间内占满硬件队列,需要对进入硬件队列的第一类型数据进行限制。
其中,预设增长条件的设置并不限定,可以根据实际经验设置,即可以根据在实际的电子设备中,何种数量变化趋势下,第一类型数据会迅速占满硬件队列。其中,本申请实施例以持续增大作为预设增长条件进行说明。即,若第一类型数据的数量变化趋势持续增大,则确定数量变化趋势满足预设增长条件。
在第一类型数据的数量变化趋势满足预设条件的情况下,限制第一类型数据的入队,以在所述硬件队列中预留至少指令数量的存放位置用于接收第二类型数据,避免硬件队列被第一类型数据占满的情形。
其中,指定数量的具体值并不限定,可以是硬件队列深度的一个比例值,如设置为较为合适的四分之一;可以是根据经验设置的数值,如硬件队列深度为32时,指定数量设置为4。
可选的,指定数量的具体值可以根据硬件队列深度设置,使硬件队列中即时指定数量以外的存储位置全部被占满,其处理时间也可以是第二类型数据可以等待的一个时间,直到第二类型数据被执行,都不会给用户不好的体验。例如,第二类型数据为Interactive IO,硬件队列中即时指定数量以外的存储位置全部被占满,第二类型数据进入硬件队列等待到被执行,也不会给用户以卡顿的感受。
在一种实施方式中,限制进入所述硬件队列中的第一类型数据的数量,可以是,以剩余的存放位置等于指定数量时开始限制,当所述硬件队列中剩余的存放位置小于或等于指定数量,仅允许将待进入所述硬件队列的第二类型数据存放到所述硬件队列。也就是说,若电子设备产生了第一类型数据,需要放入存放位置时,若硬件队列中剩余的存放位置等于指定数量,或者硬件队列中剩余存放位置小于指定数量,则不将该第一类型数据放入该硬件队列。而在硬件队列中剩余的存放位置小于或等于指定数量,且硬件队列中还有剩余的存放位置时,若产生了第二类型数据,将该第二类型数据放入硬件队列。
在另一种实施方式中,可以在硬件队列中剩余的存放位置大于指定数量时即开始限制,在硬件队列中剩余的存放位置大于指定数量的情况下,可以允许部分指定的第一类型数据进入硬件队列,即在确定产生的第一类型数据为该部分指定的第一类型数据,可以允许该部分第一类型数据进入硬件队列,以保证某些较为重要的第一类型数据也可以及时执行。例如,第一类型数据为No-Interactive IO,虽然No-Interactive IO因为是与用户交互体验无关的请求,很多No-Interactive IO可以延后执行,但是也有部分No-InteractiveIO若延迟过多执行会对系统产生影响,如极大提高系统功耗、极大降低系统运行速度等,需要较为及时地执行。
其中,在该实施方式中,可以根据对电子设备的运行的影响大小,将第一类型数据分为不同级别,级别越高,对电子设备的运行的影响越大。
在确定硬件队列中第一类型数据的数量超过预设数量,且第一类型数据在硬件队列中的数量变化趋势满足预设增长条件时,当所述硬件队列中剩余的存放位置大于指定数量,若产生第一类型数据需要进入硬件队列,对于该待进入硬件队列的第一类型数据,判断该第一类型数据是否属于最高的一个或多个级别。其中该最高的一个或多个级别,表示按照级别由高到低的一个或多个级别。第一类型数据属于最高的一个级别,表示该第一类型数据时最高一个级别的数据;第一类型数据属于最高的多个级别,表示从级别从最高、次高等由高到低以此类推的多个级别中,包括该第一类型数据。
若判断结果为否,表示该第一类型数据对电子设备的运行影响不大,可以拒绝该第一类型数据进入硬件队列,即不将该第一类型数据放入硬件队列。
若判断结果为是,表示该第一类型数据对电子设备的运行具有较大影响,将该第一类型数据存放到所述硬件队列,以便及时处理。
在本实施方式中,第一类型数据具体是最高的一个级别才允许进入硬件队列,还是最高的多个级别允许进入硬件队列,并不做具体限定。
另外,在该实施方式中,在硬件队列中剩余的存放位置小于或等于指定数量的情况下,可以仅允许第二类型数据进入。
可选的,在该实施方式中,也可以是,当所述硬件队列中剩余的存放位置大于指定数量,可以允许最高的y1个级别的第一类型数据进入硬件队列;当硬件队列中剩余的存放位置小于或等于指定数量,可以允许最高的y2个级别的第一类型数据进入硬件队列,y1大于y2。也就是说,在硬件队列中剩余的存放位置大于指定数量时,可以允许比等于或小于指定数量时更多级别的第一类型数据进入硬件队列。可选的,y2可以等于1,即当硬件队列中剩余的存放位置小于或等于指定数量,仅允许第二类型数据与最高一个级别的第一类型数据进入硬件队列。
在本申请实施例中,在开始限制进入所述硬件队列中的第一类型数据的数量后,仍然保持对硬件队列中第一类型数据的数量,用于确定是否停止该限制。其中,停止对第一类型数据的限制可以包括,在新产生有第一类型数据的情况下,将该新产生的第一类型数据放入硬件队列。或者是,停止对第一类型数据的限制还可以包括,在限制第一类型数据数量期间内,被拒绝进入硬件队列的第一类型数据可以存储在预设的存储空间内,当停止对第一类型数据的限制,将该预设的存储空间内的第一类型数据放入硬件队列,用于等待从硬件队列中取出处理。可选的,将该预设的存储空间内的第一类型数据放入硬件队列时,可以按照产生顺序由前到后依次放入。
在本申请实施例中,可以是,不满足限制条件时,停止对第一类型数据的限制。
在一种实施方式中,可以是,若统计到硬件队列中第一类型数据的数量小于或等于预设数量,则停止对进入硬件队列中第一类型数据的数量的限制。
在一种实施方式中,可以是,若统计到硬件队列中第一类型数据的数量小于或等于预设数量,且第一类型数据在硬件队列中的数量变化趋势不满足指定增长条件,则停止对进入硬件队列中第一类型数据的数量的限制。
在该实施方式中,开始限制进入硬件队列中的第一类型数据的数量后,根据统计的硬件队列中第一类型数据的数量获取的数量变化趋势可以是从当前时间到前预设时间之间的多个时间点的第一类型数据的数量变化趋势,即统计从当前时间之前到当前时间之间的数量变化趋势,如前所述;也可以是从当前时间起到当前时间之后的多个时间点的第一类型数据的数量变化趋势,即统计从当前时间到当前时间之后的数量变化趋势,如统计当前时间,当前时间后1秒时,当前时间后2秒时,当前时间后3秒时,当前时间后4秒时,从前到后,第一类型数据的数量变化趋势。其中,当前时间可以是确定硬件队列中第一类型数据的数量小于或等于预设数量时的时间。
可选的,在该实施方式中,指定增长条件可以是前述的预设增长条件,如指定增长条件可以是持续增大。
可选的,在该实施方式中,指定增长条件可以是持续减小以外的条件,即若统计到硬件队列中第一类型数据的数量小于或等于预设数量,且第一类型数据在硬件队列中的数量变化趋势持续减小,表示硬件队列中第一类型数据对第二类型数据的处理延时影响减小,则可以停止对进入硬件队列中第一类型数据的数量的限制。
在一种实施方式中,可以是,当第一类型数据在硬件队列中的数量变化趋势不满足指定增长条件,则停止对进入硬件队列中第一类型数据的数量的限制。
其中,参照前一实施方式,该实施方式中,可以是统计从当前时间之前到当前时间之间的数量变化趋势,如前所述;也可以是统计从当前时间到当前时间之后的数量变化趋势。其中,该实施方式中,可以是每次统计到第一类型数据时开始获取数量变化趋势,或者是按周期,如1秒,获取数量变化趋势,该当前时间可以是开始获取数量变化趋势的时间。
选的,在该实施方式中,指定增长条件可以是前述的预设增长条件,如指定增长条件可以是持续增大。
可选的,在该实施方式中,指定增长条件可以是持续减小以外的条件。
在本申请实施例中,在确定第一类型数据的数量超过预设数量的情况下,若判定预设时间段内第一类型数据在所述硬件队列中的数量变化趋势满足预设增长条件,预测若不对第一类型数据进行控制,可能会占满硬件队列,则限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据,以使重要的第二类型数据能及时进入硬件队列,及时处理。
例如,第一类型数据为与用户交互体验无关No-Interactive IO,第二类型数据为与用户交互体验相关的Interactive IO,硬件队列为HW queue,基于本申请实施例的技术方案,可以预测出HW queue被No-Interactive IO占满导致nteractive IO无法及时执行的场景。预测出该场景后,通过限制No-Interactive IO在HW queue中的占比,预留指定数量个空位置用于处理Interactive IO,保证了交互式IO执行的及时性。
本申请实施例还提供了一种数据控制装置300,该装置应用于电子设备,所述电子设备设置有硬件队列。该硬件队列用于存放待处理的第一类型数据以及第二类型数据。如图4所示,该装置300包括:统计模块310,用于统计所述硬件队列中第一类型数据的数量;趋势获取模块320,用于当所述硬件队列中第一类型数据的数量超过预设数量,获取所述第一类型数据在所述硬件队列中的数量变化趋势;数据控制模块330,用于若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指令数量的存放位置用于接收所述第二类型数据。
可选的,趋势获取模块320可以用于获取预设时间段内所述第一类型数据在所述硬件队列中的数量变化趋势。
可选的,趋势获取模块320可以包括时间确定单元,用于确定从当前时间到前预设时间之间的多个时间点;数量获取单元,用于获取分别在所述多个时间点时所述硬件队列中第一类型数据的数量;关系获取单元,用于获取后一时间点的数量相对前一时间点的数量的大小关系。
可选的,该装置300还可以包括趋势判断模块,用于若后一时间点的数量大于前一时间点的数量,判定所述数量变化趋势满足预设增长条件。
可选的,数据控制模块330可以用于当所述硬件队列中剩余的存放位置小于或等于指定数量,仅允许将待进入所述硬件队列的第二类型数据存放到所述硬件队列。
可选的,根据对所述电子设备的运行的影响大小,将所述第一类型数据分为不同级别,级别越高,对所述电子设备的运行的影响越大。数据控制模块330可以包括判断单元,用于当所述硬件队列中剩余的存放位置大于指定数量,对于待进入所述硬件队列的第一类型数据,判断该第一类型数据是否属于最高的一个或多个级别;第一控制模块,用于若判断结果为否,拒绝该第一类型数据进入所述硬件队列;第二控制模块,用于若判断结果为是,将该第一类型数据存放到所述硬件队列。
可选的,所述第一类型数据可以为与用户交互体验无关的数据,所述第二类型数据可以为与用户交互体验相关的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述的各个方法实施例之间可以相互参照;上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。各个模块可以配置在不同的电子设备中,也可以配置在相同的电子设备中,本申请实施例并不限定。
请参考图5,其示出了本申请实施例提供的一种电子设备500的结构框图。该电子设备500可以是智能手机、平板电脑、穿戴式设备、电子阅读器、计算机等智能设备。该电子设备可以包括一个或多个处理器510(图中仅示出一个),存储器520以及一个或多个程序。其中,存储器中可以包括硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据。所述一个或多个程序被存储在所述存储器520中,并被配置为由所述一个或多个处理器510执行。所述一个或多个程序被处理器执行用于执行前述实施例所描述的方法。
处理器510可以包括一个或者多个处理核。处理器510利用各种接口和线路连接整个电子设备500内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行电子设备500的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器510可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。
存储器520可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区还可以电子设备在使用中所创建的数据等。
请参考图6,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质600中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质600可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质600包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质600具有执行上述方法中的任何方法步骤的程序代码610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码610可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (9)

1.一种数据控制方法,其特征在于,应用于电子设备,所述电子设备设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据,所述方法包括:
统计所述硬件队列中第一类型数据的数量;
当所述硬件队列中第一类型数据的数量超过预设数量,获取预设时间段内所述第一类型数据在所述硬件队列中的数量变化趋势,所述预设时间段为从当前时间到当前时间之前预设时间之间的时间段;
所述获取预设时间段内所述第一类型数据在所述硬件队列中的数量变化趋势,包括:
选取所述预设时间段内的多个时间点;
获取分别在所述多个时间点时所述硬件队列中第一类型数据的数量;
基于所述多个时间点各自的所述第一类型数据的数量占所述硬件队列深度的比例,确定所述数量变化趋势;
若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指定数量的存放位置用于接收所述第二类型数据。
2.根据权利要求1所述的方法,其特征在于,所述获取预设时间段内所第一类型数据在所述硬件队列中的数量变化趋势,包括:
确定从当前时间到前预设时间之间的多个时间点;
获取分别在所述多个时间点时所述硬件队列中第一类型数据的数量;
获取后一时间点的数量相对前一时间点的数量的大小关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若后一时间点的数量大于前一时间点的数量,判定所述数量变化趋势满足预设增长条件。
4.根据权利要求1所述的方法,其特征在于,所述限制进入所述硬件队列中的第一类型数据的数量,包括:
当所述硬件队列中剩余的存放位置小于或等于指定数量,仅允许将待进入所述硬件队列的第二类型数据存放到所述硬件队列。
5.根据权利要求1或4所述的方法,其特征在于,根据对所述电子设备的运行的影响大小,将所述第一类型数据分为不同级别,级别越高,对所述电子设备的运行的影响越大,所述限制进入所述硬件队列中的第一类型数据的数量,包括:
当所述硬件队列中剩余的存放位置大于指定数量,对于待进入所述硬件队列的第一类型数据,判断该第一类型数据是否属于最高的一个或多个级别;
若否,拒绝该第一类型数据进入所述硬件队列;
若是,将该第一类型数据存放到所述硬件队列。
6.根据权利要求1所述的方法,其特征在于,所述第一类型数据为与用户交互体验无关的数据,所述第二类型数据为与用户交互体验相关的数据。
7.一种数据控制装置,其特征在于,应用于电子设备,所述电子设备设置有硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据,所述装置包括:
统计模块,用于统计所述硬件队列中第一类型数据的数量;
趋势获取模块,用于当所述硬件队列中第一类型数据的数量超过预设数量,获取预设时间段内所述第一类型数据在所述硬件队列中的数量变化趋势,所述预设时间段为从当前时间到当前时间之前预设时间之间的时间段;所述获取预设时间段内所述第一类型数据在所述硬件队列中的数量变化趋势,包括:选取所述预设时间段内的多个时间点;
获取分别在所述多个时间点时所述硬件队列中第一类型数据的数量;
基于所述多个时间点各自的所述第一类型数据的数量占所述硬件队列深度的比例,确定所述数量变化趋势;
数据控制模块,用于若所述数量变化趋势满足预设增长条件,限制进入所述硬件队列中的第一类型数据的数量,以在所述硬件队列中预留至少指定数量的存放位置用于接收所述第二类型数据。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,所述存储器中包括硬件队列,所述硬件队列用于存放待处理的第一类型数据以及第二类型数据;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序被所述处理器执行用于执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-6任一项所述的方法。
CN202010038086.2A 2020-01-14 2020-01-14 数据控制方法、装置、电子设备及存储介质 Active CN111274010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010038086.2A CN111274010B (zh) 2020-01-14 2020-01-14 数据控制方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010038086.2A CN111274010B (zh) 2020-01-14 2020-01-14 数据控制方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111274010A CN111274010A (zh) 2020-06-12
CN111274010B true CN111274010B (zh) 2024-01-16

Family

ID=71000319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010038086.2A Active CN111274010B (zh) 2020-01-14 2020-01-14 数据控制方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111274010B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015581A (zh) * 2020-08-28 2020-12-01 沃尔士环控系统工程(深圳)有限公司 一种清灰控制器备用点的冗余替换方法、系统及相关组件
CN113381943B (zh) * 2021-05-24 2022-02-22 恒隆通信技术有限公司 一种智能组网通信处理方法及系统
CN115707342A (zh) * 2021-06-15 2023-02-17 华为技术有限公司 存储控制方法及装置、存储方法及装置、电子设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139103A (zh) * 2011-12-02 2013-06-05 京信通信系统(中国)有限公司 一种网络拥塞的控制方法及装置
CN104794172A (zh) * 2015-03-31 2015-07-22 北京奇艺世纪科技有限公司 一种数据处理方法和装置
CN106021284A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 数据查询方法、数据监测方法及装置
CN107943562A (zh) * 2017-11-14 2018-04-20 广东欧珀移动通信有限公司 信息存储方法、装置、存储介质及电子设备
CN109032964A (zh) * 2018-07-02 2018-12-18 京东方科技集团股份有限公司 缓存替换方法及其装置、异构多核系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139103A (zh) * 2011-12-02 2013-06-05 京信通信系统(中国)有限公司 一种网络拥塞的控制方法及装置
CN104794172A (zh) * 2015-03-31 2015-07-22 北京奇艺世纪科技有限公司 一种数据处理方法和装置
CN106021284A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 数据查询方法、数据监测方法及装置
CN107943562A (zh) * 2017-11-14 2018-04-20 广东欧珀移动通信有限公司 信息存储方法、装置、存储介质及电子设备
CN109032964A (zh) * 2018-07-02 2018-12-18 京东方科技集团股份有限公司 缓存替换方法及其装置、异构多核系统

Also Published As

Publication number Publication date
CN111274010A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111274010B (zh) 数据控制方法、装置、电子设备及存储介质
EP3391212B1 (en) Controlling operation of a gpu
EP3391211B1 (en) Controlling scheduling of a gpu
CN110427256A (zh) 基于优先级的作业调度优化方法、设备、存储介质及装置
CN110968415B (zh) 多核处理器的调度方法、装置及终端
CN109783232A (zh) 视频数据处理方法、装置及存储介质
CN107766160B (zh) 队列消息处理方法及终端设备
CN115220921B (zh) 资源调度方法及相关装置、图形处理器、摄像器件和介质
CN109710330B (zh) 应用程序的运行参数确定方法、装置、终端及存储介质
CN116680060B (zh) 面向异构计算系统的任务分配方法、装置、设备和介质
CN111694669A (zh) 一种任务处理方法及装置
CN115562838A (zh) 资源调度方法、装置、计算机设备及存储介质
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN112286637A (zh) 计算资源的调整方法及装置
CN114153614A (zh) 内存管理方法、装置、电子设备和自动驾驶车辆
CN113434303A (zh) 批处理的遥感影像智能处理模型预测性能优化系统及方法
CN116204293A (zh) 一种资源调度方法、装置、计算机设备以及存储介质
CN115499513A (zh) 数据请求的处理方法、装置、计算机设备和存储介质
CN114816766A (zh) 一种计算资源分配方法及其相关组件
CN111736986A (zh) 一种深度学习模型的fpga加速执行方法及相关装置
CN114490002A (zh) 数据处理系统、任务调度方法、装置、芯片、及电子设备
CN114327806A (zh) 数据处理方法、装置、设备及存储介质
CN110955644A (zh) 一种存储系统的io控制方法、装置、设备及存储介质
CN113163236A (zh) 基于频率控制的数据传输方法、装置、设备和存储介质
CN116521234B (zh) 一种处理器管线指令轮询调度的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant