CN108021454A - 一种处理器负载均衡的方法、终端及计算机存储介质 - Google Patents
一种处理器负载均衡的方法、终端及计算机存储介质 Download PDFInfo
- Publication number
- CN108021454A CN108021454A CN201711460360.XA CN201711460360A CN108021454A CN 108021454 A CN108021454 A CN 108021454A CN 201711460360 A CN201711460360 A CN 201711460360A CN 108021454 A CN108021454 A CN 108021454A
- Authority
- CN
- China
- Prior art keywords
- coprocessor
- primary processor
- target
- data
- processor
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明实施例公开了一种处理器负载均衡的方法,应用于协处理器时,在接收到主处理器发送的目标程序与目标数据时,根据目标程序与目标数据生成结果数据;根据结果数据生成请求获取指令;将请求获取指令发送至主处理器。应用于主处理器时,包括:在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器;接收协处理器发送的请求获取指令;根据请求获取指令,获取协处理器生成的结果数据;其中,结果数据根据目标程序与目标数据得到的。本发明实施例同时提供了一种终端及计算机存储介质。本发明实施例提出了一种隔离式控制终端的方式,体现了终端控制方式的智能性。
Description
技术领域
本发明涉及处理器数据传输技术,尤其涉及一种处理器负载均衡的方法、终端及计算机存储介质。
背景技术
目前,随着电子技术的飞速发展,终端的功能实现技术也越来越多样化和智能化。而处理器作为终端的控制中枢系统,通过运行存储器内的软件及调用存储器内的数据库,以达到对终端的控制。
通常,终端中的处理器通常分为如下几类:AP应用处理器、BP基带处理器、CP多媒体加速器等。其中,多媒体加速器也被称为协处理器,或低功率岛,或DSP等(不停厂商名称略有不同,但功能相似),用于协助BP基带处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。需要说明的是,多媒体加速器只能在特定场景下被调用,如将手机计步器、陀螺仪等传感器收集回的数据进行再加工,或者音频和视频解码等。
但是,由于多媒体加速器只能在特定场景下被调用,造成多媒体加速器的智能性差,因此,一种如何提高多媒体加速器智能性的方法成为亟待解决的问题。
发明内容
为解决上述技术问题,本发明实施例期望提供一种控制方法、终端及存储介质,提出了一种隔离式控制终端的方式,体现了终端控制方式的智能性。
本发明的技术方案是这样实现的:
本发明实施例提供了一种处理器负载均衡的方法,应用于协处理器,包括:
在接收到主处理器发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据;
根据所述结果数据生成请求获取指令;
将所述请求获取指令发送至所述主处理器。
在上述方案中,所述在接收到所述主处理器发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据,包括:
在工作队列中,读取到所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据。
在上述方案中,所述根据所述结果数据生成请求获取指令,包括:
根据所述结果数据生成中断请求;
所述将所述请求获取指令发送至所述主处理器,包括:
将所述中断请求发送至所述主处理器。
本发明实施例提供了一种处理器负载均衡的方法,应用于主处理器,所述方法包括:
在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器;
接收所述协处理器发送的请求获取指令;
根据所述请求获取指令,获取所述协处理器生成的结果数据;其中,所述结果数据根据所述目标程序与目标数据得到的。
在上述方案中,所述在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器之前,所述方法还包括:
当所述主处理器的负载大于第一预设阈值时,和/或,当所述主处理器进行浮点运算时,生成所述负载均衡请求。
在上述方案中,所述在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器,包括:
在检测到负载均衡请求时,将目标程序与目标数据写入至所述协处理器的工作队列中。
本发明实施例提供了一种终端,包括:
协处理器,以及存储有所述协处理器可执行指令的第一存储介质,所述第一存储介质通过第一通信总线依赖所述协处理器执行操作,当所述协处理器可执行指令被所述协处理器执行时,执行如下步骤:用于在接收到所述主处理发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据;根据所述结果数据生成请求获取指令;将所述请求获取指令发送至所述主处理器;
所述主处理器,以及存储有所述主处理器可执行指令的第二存储介质,所述第二存储介质通过第二通信总线依赖所述主处理器执行操作,当所述主处理器可执行指令被所述主处理器执行时,执行如下步骤:用于在检测到负载均衡请求时,将目标程序与目标数据发送至所述协处理器;接收所述协处理器发送的请求获取指令;根据所述请求获取指令,获取所述协处理器生成的结果数据;其中,所述结果数据根据所述目标程序与目标数据得到的;
其中,所述主处理器与所述协处理器通过通信总线连接。
在上述方案中,所述协处理器,还用于在工作队列中,读取到所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据。
本发明实施例提供了一种计算机存储介质,应用于协处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现所述处理器负载均衡的方法。
本发明实施例提供了一种计算机存储介质,应用于主处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现所述处理器负载均衡的方法。
本发明实施例提供了一种处理器负载均衡的方法、终端及计算机存储介质,协处理器在接收到主处理发送的目标程序与目标数据时,根据目标程序与目标数据生成结果数据;根据结果数据生成请求获取指令;将请求获取指令发送至主处理器。主处理器在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器;接收协处理器发送的请求获取指令;根据请求获取指令,获取协处理器生成的结果数据;其中,结果数据根据目标程序与目标数据得到的。采用上述技术方案,当主处理器检测到负载均衡请求时,可将目标程序与目标数据发送至协处理器,由协处理器对目标数据进行处理。也就是说只要主处理检测到负载均衡请求时,协处理器便可分担主处理器的负载。相对于现有技术中,协处理只能在特定的场景下被调用,本发明提供的处理器负载均衡方法可以扩大协处理器的使用范围,从而提高了协处理的智能性。
附图说明
图1为本发明实施例提供的一种可选的移动终端的硬件结构示意图;
图2为本发明实施例提供的一种通信网络系统架构图;
图3为本发明实施例提供的一种处理器负载均衡的方法的流程图一;
图4为本发明实施例提供的一种示例性的负载设置界面设置示意图一;
图5为本发明实施例提供的一种示例性的负载设置界面设置示意图二;
图6为本发明实施例提供的一种处理器负载均衡的方法的流程图二;
图7为本发明实施例提供的一种处理器负载均衡的方法交互图;
图8为本发明实施例提供的一种示例性的主处理器与协处理之间的通信流程示意图;
图9为本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种可选的移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、Wi-Fi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
Wi-Fi属于短距离无线传输技术,移动终端通过Wi-Fi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了Wi-Fi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或Wi-Fi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。
请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的LTE系统,该LTE系统包括依次通讯连接的UE(User Equipment,用户设备)201,E-UTRAN(Evolved UMTS Terrestrial Radio Access Network,演进式UMTS陆地无线接入网)202,EPC(Evolved Packet Core,演进式分组核心网)203和运营商的IP业务204。
具体地,UE201可以是上述终端100,此处不再赘述。
E-UTRAN202包括eNodeB2021和其它eNodeB2022等。其中,eNodeB2021可以通过回程(backhaul)(例如X2接口)与其它eNodeB2022连接,eNodeB2021连接到EPC203,eNodeB2021可以提供UE201到EPC203的接入。
EPC203可以包括MME(Mobility Management Entity,移动性管理实体)2031,HSS(Home Subscriber Server,归属用户服务器)2032,其它MME2033,SGW(Serving Gate Way,服务网关)2034,PGW(PDN Gate Way,分组数据网络网关)2035和PCRF(Policy andCharging Rules Function,政策和资费功能实体)2036等。其中,MME2031是处理UE201和EPC203之间信令的控制节点,提供承载和连接管理。HSS2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过SGW2034进行发送,PGW2035可以提供UE 201的IP地址分配以及其它功能,PCRF2036是业务数据流和IP承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。
IP业务204可以包括因特网、内联网、IMS(IP Multimedia Subsystem,IP多媒体子系统)或其它IP业务等。
虽然上述以LTE系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于LTE系统,也可以适用于其他无线通信系统,例如GSM、CDMA2000、WCDMA、TD-SCDMA以及未来新的网络系统等,此处不做限定。
本发明实施例中的终端可以为移动终端,那么,示例性的,基于上述移动终端硬件结构以及通信网络系统,可以提出本发明方法各个实施例。下述的终端可以利用移动终端来代替。
实施例一
本发明提供了一种处理器负载均衡的方法,应用于协处理器中,如图3所示,该方法可以包括:
S101、在接收到主处理器发送的目标程序与目标数据时,根据目标程序与目标数据生成结果数据。
这里,在本发明实施例中,主处理器也被称之为基带处理器,相当于一个协议处理器,负责数据的处理与存储,主要组件为数字信号处理器、微控制器、内存等单元,主要功能为基带编码/译码、声音编码与语音编码等。协处理器具有一定的运算能力,用于辅助主处理器运算的处理器,也就是说,协处理器用于协助主处理器完成特定功能。并且,可以根据不同的功能,将协处理器划分为不同的类别的协处理器。例如,数字协处理器可以控制数字处理,图形协处理器可以处理视频绘制。
在本发明实施例中,目标数据指的是,主处理器正在处理或即将处理的数据。而目标程序指的是,目标数据需要执行的算法对应的计算机程序。结果数据指的是,协处理器将目标数据输入至目标程序中,最终得到的数据。
在具体应用中,通常主处理器与协处理器之间通过一个通信总线实现通信。具体的,主处理器通过该通信总线实现将目标数据与目标程序发送至协处理器中。在协处理器生成结果数据时,将结果数据通过该通信总线发送至主处理器中。
需要说明的是,主处理器通常向协处器发送完目标程序与目标数据后,会向协处理器发送一个通知指令,用于告知协处理器去处理目标数据。因此,在具体实现中,当处理器接受到该通知指令时,协处理器去处理目标数据。
需要说明的是,本发明实施例中实现负载均衡功能,可以通过设置好的负载均衡功能按钮来实现本发明实施例提供的处理器负载均衡的方法。以终端为手机为例进行说明,用户欲在手机上开启负载均衡功能时,可以启动在手机上设置好的负载均衡功能按钮,以进行后面的负载均衡功能,还能防止误操作的实现。
在一种实施例中,如图4所示,用户可以通过负载设置界面进行负载均衡功能的开启和关闭,当用户点击“开”按键时,就表征开启终端的负载均衡功能;当用户点击“关”按键时,就表征关闭终端的负载均衡功能。终端可以通过检测上述负载均衡功能按键的键值或者是状态,来确定负载均衡功能是否开启。
在另一种实施例中,如图5所示,用户可通过负载设置界面开启负载均衡功能后,再进行负载性能的选择。其中,负载性能包括均衡负载与非均衡负载。非均衡负载指的是在特定场景下调用协处理器,如将手机计步器、陀螺仪等传感器收集回的数据进行再加工,或者音频和视频解码等。或者是,关闭协处理器,也称之为将协处理器设置为睡眠模式。也就是说,非负载均衡对应的是现有技术中使用协处理器的方式。均衡负载指的是,在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器,由协处理器处理目标数据,从而实现负载均衡的方式。也就是说,均衡负载对应的是本发明提供的处理器负载均衡的方法。
在本发明实施例中,本发明提供了一个主处理器,与一个与主处理器配合使用的通用协处理器。在接收到主处理器发送的目标程序与目标数据时,协处理器将目标数据输入至目标程序中,生成结果数据。由于协处理器能够在接收到主处理器发送的目标程序与目标数据时,便可以均衡主处理器的负载。相比于现有技术中,协处理器只有在主处理器执行特定功能的数据处理时才可被调用。本发明提供的协处理器的使用范围扩大,提高协处理器的智能性。
可选的,通常,主处理器将目标数据与目标程序首先存至存储器中,再由协处理器从该存储器中读取目标数据与目标程序。需要说明的是,该存储器为协处理器的存储器,或者协处理器与主处理器之间的共享存储器等,本发明再此不作限定。而一种实现方式中,主处理器将目标数据与目标程序首先发送至协处理器的工作队列中,再由协处理器从其工作队列中读取目标数据与目标程序,从而进一步的生成结果数据。其中,上述的工作队列为协处理器的存储器中的队列。
基于上述内容可知,S101可被替换为如下步骤:
S1011、在工作队列中,读取到目标程序与目标数据时,根据目标程序与目标数据生成结果数据。
S102、根据结果数据生成请求获取指令。
当协处理器生成结果数据时,需要将结果数据反馈给主处理器。当协处理器将结果数据反馈至主处理器时,可以直接将结果数据存储在存储器中,并向主处理器发送一个请求获取指令。该请求获取指令用于告知主处理器,协处理器已经生成结果数据了,并请求主处理器获取结果数据。需要说明的是,上述的存储器为协处理器的存储器,或者协处理器与主处理器之间的共享存储器等,本发明再此不作限定。
可选的,在具体实现中,上述的请求获取指令通常以一个中断请求形式的指令来实现。具体的,当协处理器生成结果数据时,产生一个中断请求,用于告知协处理器已经生成结果数据。基于此,上述S102可以被替换为如下步骤:
S1021、根据结果数据生成中断请求。
S103、将请求获取指令发送至主处理器。
由于结果数据为主处理器所需要的数据,因此,在协处理器生成结果数据后,需要主处理器根据协处理器发送的请求获取指令,获取结果数据。
可选的,基于上述内容可知,协处理器在生成结果数据时,会根据结果数据生成一个请求获取指令,而该请求获取指令可以为一个中断请求形式的指令。因此,基于上述S1021,上述S103可被替换为如下步骤:
S1031、将所述请求获取指令发送至主处理器。
可以理解的是,采用上述技术方案,当主处理器检测到负载均衡请求时,可将目标程序与目标数据发送至协处理器,由协处理器对目标数据进行处理。也就是说只要主处理检测到负载均衡请求时,协处理器便可分担主处理器的负载。相对于现有技术中,协处理只能在特定的场景下被调用,本发明提供的处理器负载均衡方法可以扩大协处理器的使用范围,进一步的,提高了协处理的智能性。
本发明提供了一种处理器负载均衡方法,应用于主处理器中,如图6所示,该方法可以包括:
S201、在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器。
在本发明实施例中,负载均衡请求指的是,主处理器欲使协处理器均衡其负载时,所生成的一个请求指令。主处理器可以根据该负载均衡请求,将自身正在处理或者即将处理的数据发送协处理。S201中的目标数据与目标程序与上述S101中的目标数据与目标程序的说明相同,这里不再赘述。
需要说明的是,主处理器通常向协处器发送完目标程序与目标数据后,会向协处理器发送一个通知指令,用于告知协处理器去处理目标数据。
在本发明实施例中,为了扩大协处理器的使用范围,也就是说,提高协处理器的智能性,本发明提供了一个主处理器,与一个与主处理器配合使用的通用协处理器。在主处理器需要协处理器均衡其负载时,主处理器便可调用协处理器,而并不是在主处理器执行特定功能时,才可调用协处理器。
在一种示例中,为了进一步的扩大协处理器的使用范围,可以在不同的条件下生成上述S101中的负载均衡请求。具体的,若想要使得本发明提供的协处理器实现一个图形协处理器的功能时,可以在当主处理器处理与图形相关的数据时,生成一个负载均衡请求。基于此,可以在不同的预设条件下生成一个负载均衡请求。其中,预设条件可以自定义,本发明再此不作限定。
可选的,通常情况下,在如下的三种预设条件下生成一个负载均衡请求:
预设条件一:主处理器的负载大于第一预设阈值。
具体的,当主处理器的负载大于某个阈值时,会导致主处理器的数据处理速度就会降低,还会导致主处理器的温度过高,进一步导致主处理器受损等。因此,在主处理器的负载过高时,需要协处理器协助主处理器处理目标数据,从而提高协处理器的智能性。
基于上述内容可知,上述S201之前还包括如下步骤:
S2011、当主处理器的负载大于第一阈值时,生成负载均衡请求。
示例性的,可以通过先确定出主处理器的负载值,再判断负载值是否大于第一阈值来实现上述S2011。需要说明的是,可以在终端中查找主处理器的负载值,或者当在终端中无法查找出主处理器的负载值时,主处理器可以定周期或者不定周期的计算其自身的负载值。而如何计算主处理器的负载值为现有技术,本发明在此不再赘述。
预设条件二:主处理器处理进行浮点运算。
其中,上述的浮点运算包括向量运算、矩阵运算。
具体的,由于浮点运算属于实数运算,例如小数运算,而主处理器只能处理整数运算,当主处理器计算浮点运算时,处理速度会比处理整数运算速度慢。因此,为了提高主处理器的处理速度,在主处理器进行浮点运算时,生成负载均衡请求,以将主处理器需要进行的浮点运算的数据中一部分数据分配给协处理。
在一种示例中,当主处理器如果需要执行一个浮点运算指令时,表征主处理器需要进行一个浮点运算。或者,当主处理器需要处理的数据为实数时,表征主处理器会进行一个浮点运算。需要说明的是,对于判断主处理器是否进行浮点运算的方式,本发明在此不作限制。
基于上述内容可知,上述S201之前还包括如下步骤:
S2012、当主处理器进行浮点运算时,生成负载均衡请求。
预设条件三:主处理器的温度大于第二阈值。
具体的,当主处理器的温度大于某个阈值时,会导致主处理器受损,而当主处理器的负载过高时,会导致主处理器的温度升高,进一步的,使得主处理器受损。因此,当主处理器的温度大于第二阈值时,协处理器协助主处理器处理目标数据,进一步的,降低主处理器的负载。
需要说明的是,上述的第一阈值与第二阈值仅仅是一种示例,对以上数据的简单更改都在本发明的保护之内,本申请在此不再赘述。
基于上述内容可知,上述S201之前还包括如下步骤:
S2013、检测主处理器的温度,若温度大于第二预设阈值时,生成所述负载均衡请求,生成负载均衡请求。
当然,上述的预设条件中的至少两个条件也可以同时进行判断,当满足一定条件时,生成负载均衡请求。也就是说,上述S2101之前还可以包括如下的步骤:
S2014、当主处理器的负载大于第一预设阈值时,且当主处理器进行浮点运算时,生成负载均衡请求。
或者,S2015、当主处理器的负载大于第一预设阈值时,且检测到的主处理器的温度大于第二预设阈值时,生成负载均衡请求。
或者,S2016、当主处理器的负载大于第一预设阈值时,且当主处理器进行浮点运算时,生成负载均衡请求。
或者,S2017、当主处理器的负载大于第一预设阈值时,且主处理器进行浮点运算时,以及检测到的主处理器的温度大于第二预设阈值时,生成负载均衡请求。
优选的,通常主处理器将目标数据与目标程序发送至协处理器中时,是将目标程序与目标数据写入协处理器的工作队列中,因此,上述S201可被替换为如下步骤:
A、在检测到负载均衡请求时,将目标程序与目标数据写入至所述协处理器的工作队列中。
S202、接收协处理器发送的请求获取指令。
基于上述S103可知,当协处理器将目标数据输入至目标程序中,生成结果数据后,会根据结果数据生成请求获取指令,并将该请求获取指令发送至处理器中。因此,需要主处理器接收协处理器发送的请求获取指令。
S203、根据请求获取指令,获取协处理器生成的结果数据。
当主处理器接收到协处理器发送的请求获取指令后,根据请求获取指令,获取协处理器生成的结果数据;其中,结果数据根据目标程序与目标数据得到的。
在一种示例中,如图7所示,主处理器获取结果数据的流程为:
S301、主处理器在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器;
S302、协处理器在在接收到主处理器发送的目标程序与目标数据时,根据目标程序与目标数据生成结果数据,并根据结果数据生成请求获取指令;
S303、将请求获取指令发送至主处理器;
S304、根据请求获取指令,去协处理器中获取结果数据。
需要说明的是,主处理器通常向协处器发送完目标程序与目标数据后,会向协处理器发送一个通知指令,用于告知协处理器去处理目标数据。
实施例二
在一种示例中,如图8所示,主处理器20与协处理器10进行通信时,也就是说,当主处理器20与协处理器10执行本发明提供的处理器负载均衡的方法时,主处理器20首先将目标数据与目标程序写入一个共享存储器40中,通过一个双向通信总线30,向协处理器10发送一个通知指令。协处理器10根据该通知指令从共享存储器40中读取目标数据与目标程序后,得到结果数据。协处理器10通过双向通信总线30将结果数据发送至主处理器20。
如图9所示,本发明实施例提供了一种终端,该终端包括:协处理器10、主处理器20以及连接协处理器10与主处理器20的通信总线30。其中:
协处理器10,以及存储有所述协处理器10可执行指令的第一存储介质11,所述第一存储介质11通过第一通信总线12依赖所述协处理器10执行操作,当所述协处理器10可执行指令被所述协处理器10执行时,执行如下步骤:用于在接收到所述主处理器20发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据;根据所述结果数据生成请求获取指令;将所述请求获取指令发送至所述主处理器20。
所述主处理器20,以及存储有所述主处理器20可执行指令的第二存储介质21,所述第二存储介质21通过二通信总线22依赖所述主处理器20执行操作,当所述主处理器20可执行指令被所述主处理器执行时,执行如下步骤:用于在检测到负载均衡请求时,将目标程序与目标数据发送至所述协处理器;接收所述协处理器发送的请求获取指令;根据所述请求获取指令,获取所述协处理器生成的结果数据;其中,所述结果数据根据所述目标程序与目标数据得到的。
其中,所述主处理器20与所述协处理器10通过通信总线30连接。
可选的,所述协处理器10,还用于在工作队列中,读取到所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据。
其中,上述的工作队列位于所述第二存储介质中。
可选的,所述协处理器10,还用于根据所述结果数据生成中断请求。
可选的,所述协处理器10,还用于将所述中断请求发送至所述主处理器。
可选的,上述的协处理器20,还有用于当所述主处理器的负载大于第一预设阈值时,和/或,当所述主处理器进行浮点运算时,生成所述负载均衡请求。
可选的,上述的协处理器20,还有用于在检测到负载均衡请求时,将目标程序与目标数据写入至所述协处理器的工作队列中。
可以理解的是,采用本方案提供的终端时,当终端中的主处理器检测到负载均衡请求时,可将目标程序与目标数据发送至终端中的协处理器,由协处理器对目标数据进行处理。也就是说只要主处理检测到负载均衡请求时,协处理器便可分担主处理器的负载。相对于现有技术中,协处理只能在特定的场景下被调用,本发明提供的处理器负载均衡方法可以扩大协处理器的使用范围,进一步的,提高了协处理的智能性。
需要说明的是,在本发明实施例中,协处理器10与主处理器20可与图1中的处理器110一致,第二存储介质11与第一存储介质21可与图1中的存储器109一致。图1中的上述处理器110包括本发明实施例中提及到的主处理器与协处理器。
需要说明的是,第一存储介质11和第二存储介质12可以为图9中的存储介质40(即共享存储器),第一通信总线12和第二通信总线22可以为图9中的通信总线30。
实际应用时,协处理器10与主处理器20中的各个组件分别通过第一通信总线12与第二通信总线22耦合在一起。可理解,第一通信总线12与第二通信总线22分别用于实现这些组件之间的连接通信。第一通信总线12与第二通信总线22除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为通信总线30。
需要说明的是,本文中的“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
在实际应用中,上述的存储器可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器提供指令和数据。
上述处理器可以为特定用途集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable LogicDevice,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
本发明实施例提供了一种计算机存储介质,应用于协处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现如实施例一提供的处理器负载均衡的方法。
本发明实施例提供了一种计算机存储介质,应用于主处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现如实施例一提供的处理器负载均衡的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种处理器负载均衡的方法,其特征在于,应用于协处理器,包括:
在接收到主处理器发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据;
根据所述结果数据生成请求获取指令;
将所述请求获取指令发送至所述主处理器。
2.根据权利要求1所述的方法,其特征在于,所述在接收到所述主处理器发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据,包括:
在工作队列中,读取到所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述结果数据生成请求获取指令,包括:
根据所述结果数据生成中断请求;
所述将所述请求获取指令发送至所述主处理器,包括:
将所述中断请求发送至所述主处理器。
4.一种处理器负载均衡的方法,其特征在于,应用于主处理器,包括:
在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器;
接收所述协处理器发送的请求获取指令;
根据所述请求获取指令,获取所述协处理器生成的结果数据;其中,所述结果数据根据所述目标程序与目标数据得到的。
5.根据权利要求4所述的方法,其特征在于,所述在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器之前,所述方法还包括:
当所述主处理器的负载大于第一预设阈值时,和/或,当所述主处理器进行浮点运算时,生成所述负载均衡请求。
6.根据权利要求4所述的方法,其特征在于,所述在检测到负载均衡请求时,将目标程序与目标数据发送至协处理器,包括:
在检测到负载均衡请求时,将目标程序与目标数据写入至所述协处理器的工作队列中。
7.一种终端,其特征在于,包括:
协处理器,以及存储有所述协处理器可执行指令的第一存储介质,所述第一存储介质通过第一通信总线依赖所述协处理器执行操作,当所述协处理器可执行指令被所述协处理器执行时,执行如下步骤:用于在接收到所述主处理器理发送的所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据;根据所述结果数据生成请求获取指令;将所述请求获取指令发送至所述主处理器;
所述主处理器,以及存储有所述主处理器可执行指令的第二存储介质,所述第二存储介质通过第二通信总线依赖所述主处理器执行操作,当所述主处理器可执行指令被所述主处理器执行时,执行如下步骤:用于在检测到负载均衡请求时,将目标程序与目标数据发送至所述协处理器;接收所述协处理器发送的请求获取指令;根据所述请求获取指令,获取所述协处理器生成的结果数据;其中,所述结果数据根据所述目标程序与目标数据得到的;
其中,所述主处理器与所述协处理器通过通信总线连接。
8.根据权利要求7所述的终端,其特征在于,
所述协处理器,还用于在工作队列中,读取到所述目标程序与目标数据时,根据所述目标程序与目标数据生成所述结果数据。
9.一种计算机存储介质,其特征在于,应用于协处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现如权利要求1至3所述的方法。
10.一种计算机存储介质,其特征在于,应用于主处理器中,所述计算机可读存储介质存储有一个或者多个负载均衡相关程序,所述一个或者多个负载均衡相关程序可被一个或者多个处理器执行,以实现如权利要求4至6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711460360.XA CN108021454A (zh) | 2017-12-28 | 2017-12-28 | 一种处理器负载均衡的方法、终端及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711460360.XA CN108021454A (zh) | 2017-12-28 | 2017-12-28 | 一种处理器负载均衡的方法、终端及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108021454A true CN108021454A (zh) | 2018-05-11 |
Family
ID=62072146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711460360.XA Pending CN108021454A (zh) | 2017-12-28 | 2017-12-28 | 一种处理器负载均衡的方法、终端及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021454A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669527A (zh) * | 2018-12-18 | 2019-04-23 | Oppo广东移动通信有限公司 | 数据处理方法和电子设备 |
CN109710652A (zh) * | 2018-12-28 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种数据处理方法、主处理器、协处理器及系统 |
CN110543443A (zh) * | 2019-09-09 | 2019-12-06 | 西安全志科技有限公司 | 一种控制通信模组的方法、计算机装置及计算机可读存储介质 |
CN113641404A (zh) * | 2021-07-20 | 2021-11-12 | 北京百度网讯科技有限公司 | 程序运行方法、装置、处理器芯片、电子设备和存储介质 |
CN115955733A (zh) * | 2022-12-30 | 2023-04-11 | 中国科学院计算技术研究所 | 一种通信基带处理器 |
WO2023061215A1 (zh) * | 2021-10-15 | 2023-04-20 | 苏州浪潮智能科技有限公司 | Io处理方法、系统及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105711A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 用于在主处理器与副处理器间分配处理功能的系统和方法 |
CN103970709A (zh) * | 2014-04-29 | 2014-08-06 | 国家电网公司 | 一种fft协处理器与主处理器通信方法 |
US20160092238A1 (en) * | 2014-09-26 | 2016-03-31 | Qualcomm Incorporated | Coprocessor for out-of-order loads |
US20160292097A1 (en) * | 2013-11-08 | 2016-10-06 | Dirk Heisswolf | Processing system with stack management and method for stack management |
CN106325819A (zh) * | 2015-06-17 | 2017-01-11 | 华为技术有限公司 | 计算机指令处理方法、协处理器和系统 |
CN106980533A (zh) * | 2016-01-18 | 2017-07-25 | 杭州海康威视数字技术股份有限公司 | 基于异构处理器的任务调度方法、装置及电子设备 |
-
2017
- 2017-12-28 CN CN201711460360.XA patent/CN108021454A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105711A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 用于在主处理器与副处理器间分配处理功能的系统和方法 |
US20160292097A1 (en) * | 2013-11-08 | 2016-10-06 | Dirk Heisswolf | Processing system with stack management and method for stack management |
CN103970709A (zh) * | 2014-04-29 | 2014-08-06 | 国家电网公司 | 一种fft协处理器与主处理器通信方法 |
US20160092238A1 (en) * | 2014-09-26 | 2016-03-31 | Qualcomm Incorporated | Coprocessor for out-of-order loads |
CN106325819A (zh) * | 2015-06-17 | 2017-01-11 | 华为技术有限公司 | 计算机指令处理方法、协处理器和系统 |
CN106980533A (zh) * | 2016-01-18 | 2017-07-25 | 杭州海康威视数字技术股份有限公司 | 基于异构处理器的任务调度方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
辽宁省通信学会: "《通信网络与信息技术2016》", 31 August 2016 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669527A (zh) * | 2018-12-18 | 2019-04-23 | Oppo广东移动通信有限公司 | 数据处理方法和电子设备 |
CN109710652A (zh) * | 2018-12-28 | 2019-05-03 | 郑州云海信息技术有限公司 | 一种数据处理方法、主处理器、协处理器及系统 |
CN110543443A (zh) * | 2019-09-09 | 2019-12-06 | 西安全志科技有限公司 | 一种控制通信模组的方法、计算机装置及计算机可读存储介质 |
CN113641404A (zh) * | 2021-07-20 | 2021-11-12 | 北京百度网讯科技有限公司 | 程序运行方法、装置、处理器芯片、电子设备和存储介质 |
WO2023061215A1 (zh) * | 2021-10-15 | 2023-04-20 | 苏州浪潮智能科技有限公司 | Io处理方法、系统及介质 |
CN115955733A (zh) * | 2022-12-30 | 2023-04-11 | 中国科学院计算技术研究所 | 一种通信基带处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021454A (zh) | 一种处理器负载均衡的方法、终端及计算机存储介质 | |
CN107729133A (zh) | 一种运行应用程序的方法、终端和计算机可读存储介质 | |
CN109190369A (zh) | 一种摄像头控制方法、终端和计算机存储介质 | |
WO2020108457A1 (zh) | 目标对象的控制方法、装置、设备及存储介质 | |
CN107340833A (zh) | 终端温度控制方法、终端及计算机可读存储介质 | |
CN109224436A (zh) | 基于游戏界面的虚拟按键定义方法、终端及存储介质 | |
CN107635248A (zh) | 网络加速方法、移动终端及计算机可读存储介质 | |
CN110177177A (zh) | 消息回复方法、移动终端及计算机可读存储介质 | |
CN108536364A (zh) | 一种拍摄方法、终端及计算机可读存储介质 | |
CN108985047A (zh) | 一种解锁方法、终端、穿戴设备及计算机可读存储介质 | |
CN109697008A (zh) | 一种内容分享方法、终端及计算机可读存储介质 | |
CN108881635A (zh) | 屏幕亮度调节方法、移动终端及计算机可读存储介质 | |
CN108829444A (zh) | 一种自动关闭后台应用的方法、终端和计算机存储介质 | |
CN107506039A (zh) | 移动终端、数据传输方法及计算机存储介质 | |
CN108762926A (zh) | 一种系统优化方法、终端及计算机可读存储介质 | |
CN109683690A (zh) | 散热控制方法、移动终端及计算机可读存储介质 | |
CN109343681A (zh) | 终端散热方法、终端及计算机可读存储介质 | |
CN107656706A (zh) | 一种数据处理方法、终端及计算机存储介质 | |
CN107529230A (zh) | 一种数据接收方法、终端和计算机可读存储介质 | |
CN108021220A (zh) | 一种终端应用控制方法、终端及计算机可读存储介质 | |
CN107347195A (zh) | 热点分享方法及移动终端 | |
CN107707755A (zh) | 按键使用方法、终端及计算机可读存储介质 | |
CN107193379A (zh) | 应用程序启动方法、终端及计算机可读存储介质 | |
CN110278481A (zh) | 画中画实现方法、终端及计算机可读存储介质 | |
CN109587333A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180511 |
|
RJ01 | Rejection of invention patent application after publication |