一种at指令处理方法、装置及系统的制作方法

文档序号:7805422阅读:288来源:国知局
一种at指令处理方法、装置及系统的制作方法
【专利摘要】本发明公开了一种AT指令处理方法、装置及系统,用以实现AT指令的并行处理,降低AT指令阻塞时长,提高AT指令的处理效率。该方法为:应用处理器将预期处理时长超过设定阈值的AT指令加入至少两个指令队列中的第一指令队列,将预期处理时长未超过设定阈值的AT指令加入至少两个指令队列中总预期处理时长最小的指令队列中,根据指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取AT指令通过其所属的指令队列对应的虚拟端口发送给基带处理器并行处理;应用处理器从相应的虚拟端口获取基带处理器返回的AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
【专利说明】—种AT指令处理方法、装置及系统

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种AT指令处理方法、装置及系统。

【背景技术】
[0002]AT (Attent1n)指令集是从终端设备(Terminal Equipment, TE)向终端适配器(Terminal Adapter, TA)发送的。根据3GPP协议中的规定,每条AT指令根据不同的参数配置实现不同的功能。
[0003]采用AT指令可以实现应用处理器(Applicat1n Processor, AP)和基带处理器(Baseband Processor,BP)之间的通信。用户通过AT指令可以实现打电话、发短信、拨号上网等功能。
[0004]如图1所示为现有的AT指令处理过程,AP将新的AT指令放入队列尾部,从队列头部中取出待处理的AT指令,并发送给BP的端口,BP负责处理该AT指令,并将结果通过该端口返回给AP,AP在收到处理结果后,将该AT指令从队列中清除出队列,再次从队列头部取出下一条待处理AT指令,依次循环。大部分AT指令是应答形式的,即AP发送AT指令给BP后,等待BP返回处理结果,在收到BP返回的处理结果后再发送下一条AT指令给BP。
[0005]现有的AT指令为串行处理方式,BP在处理AT指令的过程中,AP在等待BP返回处理结果的过程中不能发送下一条AT指令,这就会导致后续待处理的AT指令被阻塞。


【发明内容】

[0006]本发明提供一种AT指令处理方法、装置及系统,用以实现AT指令的并行处理,降低AT指令阻塞时长,提高AT指令的处理效率。
[0007]本发明实施例提供的具体技术方案如下:
[0008]一种AT指令处理方法,包括:
[0009]应用处理器根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;
[0010]所述应用处理器确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器;
[0011]所述应用处理器从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
[0012]一种AT指令处理装置,包括:
[0013]第一处理单元,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;
[0014]第二处理单元,用于确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回;
[0015]第三处理单元,用于从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
[0016]一种AT指令处理系统,包括:
[0017]应用处理器,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器;从所述虚拟端口获取所述基带处理器返回的所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令;
[0018]基带处理器,用于并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器。
[0019]基于上述技术方案,本发明实施例中,应用处理器创建至少两个指令队列,基带处理器并行处理各指令队列中的AT指令,提高了 AT指令的处理效率,应用处理器在创建各指令队列时,通过将预期处理时长超过设定阈值的AT指令归入第一指令队列,避免了处理时间较长的AT指令对处理时间较短的AT指令造成阻塞,降低了处理时间较短的AT指令的阻塞时长,进一步提高了 AT指令的处理效率,通过将预期处理时长未超过设定阈值的AT指令加入至少两个指令队列中总预期处理时长最小的指令队列中,以动态调整各队列中等待执行的AT指令个数,进一步提高指令响应速度。

【专利附图】

【附图说明】
[0020]图1为现有的AT指令处理过程示意图;
[0021]图2为本发明实施例中AT指令处理的方法流程图;
[0022]图3为本发明实施例中AT指令处理的过程示意图;
[0023]图4为本发明实施例中AT指令处理装置结构示意图。

【具体实施方式】
[0024]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0025]为了实现AT指令的并行处理,降低AT指令阻塞时长,提高AT指令的处理效率,本发明实施例提供了一种AT指令处理方法。
[0026]如图2所示,本发明实施例中进行AT指令处理的详细方法流程如下:
[0027]步骤201:应用处理器根据AT指令的预期处理时长创建至少两个指令队列,该至少两个指令队列中包括第一指令队列,将预期处理时长超过设定阈值的AT指令加入第一指令队列,将预期处理时长未超过设定阈值的AT指令加入该至少两个指令队列中总预期处理时长最小的指令队列中。
[0028]具体实施中,应用处理器根据预先保存的AT指令与预期处理时长的对应关系,获取AT指令的预期处理时长。
[0029]优选地,将预期处理时长未超过设定阈值的AT指令加入该至少两个指令队列中总预期处理时长最小的指令队列之前,计算各指令队列的总预期处理时长。
[0030]具体地,AP计算第一指令队列中未处理的AT指令的预期处理时长以及正在处理的AT指令的预期剩余处理时长的和,得到第一指令队列的总预期处理时长,正在处理的AT指令的预期剩余处理时长为该正在处理的AT指令的预期处理时长与该正在处理的AT指令已经处理的时长的差;
[0031]对于除第一指令队列之外的其它任一指令队列,计算该指令队列中未处理的AT指令的预期处理时长的和,得到该指令队列的总预期处理时长。
[0032]例如,在创建两个指令队列时,该两个指令队列分别为第一指令队列和第二指令队列,在待处理的AT指令的预期处理时长大于或等于3秒时,将该AT指令确定为长指令,将其加入第一指令队列;
[0033]在待处理的AT指令的预期处理时长小于3秒时,将该AT指令确定为短指令,比较第一指令队列的总预期处理时长和第二指令队列的总预期处理时长,若确定第一指令队列的总预期处理时长小于第二指令队列的总预期处理时长,将该AT指令加入第一指令队列;若确定第一指令队列的总预期处理时长不小于第二指令队列的总预期处理时长,将该AT指令加入第二指令队列。
[0034]该优选的实施方式中,通过比较各指令队列的总预期处理时长,将预期处理时长小于设定阈值的AT指令加入总预期处理时长最小的指令队列,以动态调整各队列中等待执行的AT指令个数,进一步提高指令响应速度,使得命令能够得到最快速的处理。
[0035]步骤202:应用处理器确定指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取AT指令,根据该对应关系,将获取的AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给基带处理器,由基带处理器并行处理通过各虚拟端口获取的AT指令,将AT指令的处理结果通过相对应的虚拟端口返回给应用处理器。
[0036]具体实施中,BP采用端口多路复用协议建立至少两个虚拟端口,将各虚拟端口的标识通知给AP。AP获得各虚拟端口的标识后,建立各指令队列与虚拟端口的标识的对应关系O
[0037]优选地,应用处理器创建的指令队列的个数与虚拟端口的个数一致。
[0038]优选地,基带处理器并行运行各虚拟端口对应的线程,通过虚拟端口对应的线程从该虚拟端口获取AT指令并处理,并通过线程将AT指令的处理结果经对应的虚拟端口返回给应用处理器。
[0039]具体实施中,BP对应每个虚拟端口创建一个线程,该线程负责从对应的虚拟端口读取AP发送的AT指令,进行指令处理并得到处理结果后,将处理结果通过该虚拟端口返回给AP,重复相同的过程执行下一条AT指令。
[0040]BP由于无需涉及与用户界面(UI)操作相关的内容,通常被设计成一种微内核的架构(具备操作系统最基础、最核心的功能:如进程、线程的管理和调度、输入输出(I/o)操作、文件系统、存储管理等),能够持多任务并发处理。
[0041]步骤203:应用处理器从虚拟端口获取AT指令的处理结果,并从与虚拟端口相应的指令队列中删除获取处理结果的AT指令。
[0042]优选地,应用处理器从与虚拟端口相应的指令队列中删除获取处理结果的AT指令后,更新删除AT指令后的指令队列的总预期处理时长。
[0043]具体实施中,可以在指令队列发生变化时(加入新的AT指令、删除AT指令),更新该指令队列的总预期处理时长。
[0044]其中,在指令队列中增加AT指令时,将新加入的AT指令置于队列尾部,AP从指令队列中获取AT指令时,从指令队列头部获取。
[0045]例如,如图3所示,AP确定两个指令队列,一个为长指令队列Q1,另一个为短指令队列Q2,AP在获得一个新的AT指令后,通过将该AT指令与设定阈值进行比较,确定该AT指令属于长指令时,将该AT指令加入长指令队列,否则,比较长指令队列Ql和短指令队列Q2的总预期处理时长,将该AT指令加入总预期处理时长较短的指令队列。长指令队列对应虚拟纟而口 I,短指令队列对应虚拟纟而口 2,AP并彳了发送长指令队列和短指令队列中的AT指令,从长指令队列中获取的AT指令映射至虚拟端口 I,从短指令队列中获取的AT指令映射至虚拟端口 2 ;BP并行处理来自两个虚拟端口的AT指令,在处理完毕后,将处理结果通过对应的虚拟端口返回给AP。对指令队列Ql的具体处理过程为:将该新的AT指令加入Ql尾部,从Ql头部中取出待处理的AT指令,并发送给BP的虚拟端口 I,BP负责处理该AT指令,并将处理结果通过虚拟端口 I返回给AP,AP在收到处理结果后,将该AT指令从Ql中清除,从Ql头部取出下一条待处理的AT指令,依次循环。同理,对指令队列Q2的具体处理过程为:将该新的AT指令加入Q2尾部,从Q2头部中取出待处理的AT指令,并发送给BP的虚拟端口 2,BP负责处理该AT指令,并将处理结果通过虚拟端口 2返回给AP,AP在收到处理结果后,将该AT指令从Q2中清除,从Q2头部取出下一条待处理的AT指令,依次循环。
[0046]接上例,在优选的实施方式中,每获取一条AT指令,首先判断该AT指令是否为长指令,在判定该AT指令为长指令时将该AT指令加入长指令队列Ql中,以避免在短指令队列Q2的总预期处理时长小于长指令队列Ql的总预期处理时长时,将长指令加入短指令队列Q2。假设Ql中已经有一条AT指令commandl,新的AT指令command2为长指令,若不判定Command2是否为长指令,而在判定Q2的总预期处理时长小于Ql的总预期处理时长时将command2加入Q2中,则在后续的AT指令command3属于短指令时,该command3由于被长指令阻塞而不能被及时处理。若首先判断command2是否为长指令,在确定command2为长指令后,将command2加入Ql中,对于后续的command3在判定该command3不是长指令、且Q2的总预期处理时长小于Ql的总预期处理时长,则将command3加入Q2中,该command3的执行将不会受到长指令的阻塞,对于长指令而言,多等待一段时长是可以接受的,应尽量避免短指令被阻塞。
[0047]基于同一发明构思,本发明实施例还提供了一种AT指令处理装置,该装置的具体实施可参见上述方法部分中AP的描述,重复之处不再赘述,如图4所示,该装置主要包括:
[0048]第一处理单元401,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;
[0049]第二处理单元402,用于确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回;
[0050]第三处理单元403,用于从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
[0051]优选地,第一处理单元401还用于:
[0052]将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列之前,计算所述第一指令队列中未处理的AT指令的预期处理时长以及正在处理的AT指令的预期剩余处理时长的和,得到所述第一指令队列的总预期处理时长,所述正在处理的AT指令的预期剩余处理时长为所述正在处理的AT指令的预期处理时长与所述正在处理的AT指令已经处理的时长的差;
[0053]对于除所述第一指令队列之外的其它任一指令队列,计算该指令队列中未处理的AT指令的预期处理时长的和,得到该指令队列的总预期处理时长。
[0054]优选地,第一处理单元401还用于:
[0055]在所述第三处理单元403从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令后,更新删除所述AT指令后的所述指令队列的总预期处理时长。
[0056]优选地,第一处理单元401还用于:
[0057]根据AT指令的预期处理时长创建至少两个指令队列之前,根据保存的AT指令与预期处理时长的对应关系,获取所述AT指令的预期处理时长。
[0058]基于同一发明构思,本发明实施例还提供了一种AT指令处理系统,该系统的具体实施可参见上述方法部分的描述,重复之处不再赘述,该系统主要包括:
[0059]应用处理器,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器;从所述虚拟端口获取所述基带处理器返回的所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令;
[0060]基带处理器,用于并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器。
[0061 ] 基于上述技术方案,本发明实施例中,应用处理器创建至少两个指令队列,基带处理器并行处理各指令队列中的AT指令,提高了 AT指令的处理效率,应用处理器在创建各指令队列时,通过将预期处理时长超过设定阈值的AT指令归入第一指令队列,避免了处理时间较长的AT指令对处理时间较短的AT指令造成阻塞,降低了处理时间较短的AT指令的阻塞时长,进一步提高了 AT指令的处理效率,通过将预期处理时长未超过设定阈值的AT指令加入至少两个指令队列中总预期处理时长最小的指令队列中,以动态调整各队列中等待执行的AT指令个数,进一步提高指令响应速度。
[0062]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种AT指令处理方法,其特征在于,包括: 应用处理器根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中; 所述应用处理器确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器; 所述应用处理器从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
2.如权利要求1所述的方法,其特征在于,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列之前,还包括: 所述应用处理器计算所述第一指令队列中未处理的AT指令的预期处理时长以及正在处理的AT指令的预期剩余处理时长的和,得到所述第一指令队列的总预期处理时长,所述正在处理的AT指令的预期剩余处理时长为所述正在处理的AT指令的预期处理时长与所述正在处理的AT指令已经处理的时长的差; 对于除所述第一指令队列之外的其它任一指令队列,计算该指令队列中未处理的AT指令的预期处理时长的和 ,得到该指令队列的总预期处理时长。
3.如权利要求2所述的方法,其特征在于,所述应用处理器从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令后,还包括: 所述应用处理器更新删除所述AT指令后的所述指令队列的总预期处理时长。
4.如权利要求1、2或3所述的方法,其特征在于,应用处理器根据AT指令的预期处理时长创建至少两个指令队列之前,还包括: 所述应用处理器根据保存的AT指令与预期处理时长的对应关系,获取所述AT指令的预期处理时长。
5.如权利要求4所述的方法,其特征在于,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器,包括: 所述基带处理器并行运行各虚拟端口对应的线程,通过所述虚拟端口对应的线程从该虚拟端口获取所述AT指令并处理,并通过所述线程将所述AT指令的处理结果经对应的所述虚拟端口返回给所述应用处理器。
6.一种AT指令处理装置,其特征在于,包括: 第一处理单元,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;第二处理单元,用于确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器,由所述基带处理器并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回; 第三处理单元,用于从所述虚拟端口获取所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令。
7.如权利要求6所述的装置,其特征在于,所述第一处理单元还用于: 将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列之前,计算所述第一指令队列中未处理的AT指令的预期处理时长以及正在处理的AT指令的预期剩余处理时长的和,得到所述第一指令队列的总预期处理时长,所述正在处理的AT指令的预期剩余处理时长为所述正在处理的AT指令的预期处理时长与所述正在处理的AT指令已经处理的时长的差; 对于除所述第一指令队列之外的其它任一指令队列,计算该指令队列中未处理的AT指令的预期处理时长的和,得到该指令队列的总预期处理时长。
8.如权利要求7所述的装置,其特征在于,所述第一处理单元还用于: 在所述第三处理单元从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令后,更新 删除所述AT指令后的所述指令队列的总预期处理时长。
9.如权利要求6、7或8所述的装置,其特征在于,所述第一处理单元还用于: 根据AT指令的预期处理时长创建至少两个指令队列之前,根据保存的AT指令与预期处理时长的对应关系,获取所述AT指令的预期处理时长。
10.一种AT指令处理系统,其特征在于,包括: 应用处理器,用于根据AT指令的预期处理时长创建至少两个指令队列,所述至少两个指令队列中包括第一指令队列,将所述预期处理时长超过设定阈值的所述AT指令加入所述第一指令队列,将所述预期处理时长未超过设定阈值的所述AT指令加入所述至少两个指令队列中总预期处理时长最小的指令队列中;确定所述指令队列与基带处理器的虚拟端口的对应关系,分别从各指令队列中获取所述AT指令,根据所述对应关系,将获取的所述AT指令通过该AT指令所属的指令队列对应的虚拟端口发送给所述基带处理器;从所述虚拟端口获取所述基带处理器返回的所述AT指令的处理结果,并从与所述虚拟端口相应的所述指令队列中删除获取处理结果的所述AT指令; 基带处理器,用于并行处理通过各所述虚拟端口获取的所述AT指令,将所述AT指令的处理结果通过相对应的所述虚拟端口返回给所述应用处理器。
【文档编号】H04W80/00GK104053252SQ201410245260
【公开日】2014年9月17日 申请日期:2014年6月4日 优先权日:2014年6月4日
【发明者】陈泽元 申请人:青岛海信移动通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1