通讯装置的多任务器系统及其运行方法

文档序号:6650495阅读:168来源:国知局
专利名称:通讯装置的多任务器系统及其运行方法
技术领域
本发明是为一种有关于移动通讯装置的多任务器的数据处理系统,特别是利用数个线程处理用户程序对应的数据封包,并利用多任务排程法安排数据封包的处理顺序。
背景技术
移动电话、无线通讯装置及智能于持式通讯装置等,其主要硬件架构通常是由一个主处理器与一个通讯模块(例如,GSM模块,CDMA模块,WiFi模块等)所构成,主处理器与通讯模块之间往往由一组标准的RS232 DTE-DCE接口连接。但是,在硬件资源有限的条件下,要使一组实体的RS232接口让多个使用者程序使用,必须导入多任务器协议(multiplexer protocol)的观念(例如,GSM07.10多任务器协议),即利用所谓的会议(session)的观念来实现。
请参考图1,图1是多任务器协议系统架构图,如图1所示,在多任务器协议系统10中,主要包含主处理器15与通讯模块16两个部分。在主处理器15的部分包含有数个用户程序14(例如,无线电接口层(Radio Interface Layer,RIL)的语音通讯程序、点对点协议(Point to Point Protocol,PPP)的数据传输程序及短消息服务(Short Message Service,SMS)程序等),用户程序14经由通讯端口界面13耦合多任务器12。主处理器15端的多任务器12与通讯模块16端的多任务器17通过多任务器协议沟通,以进行数据封包的传送与接收。此外,主处理器15端包含有一个串行驱动程序11(serial driver),串行驱动程序11具有一个缓冲区(buffer),用以储存通过多任务器协议沟通的数据封包。因此,主处理器15端可传送数据封包至通讯模块16端,或接收通讯模块16端所传送的数据封包,其运行方法说明如下当主处理器端15端要接收通讯模块16端所传送的数据封包到达时,通过多任务器12的多任务器协议,串行驱动程序11可获得通讯模块16的数据封包,将所获得的数据封包译码为数据流,经由对应的通讯端口界面13,将数据流传送给对应的用户程序14。同样地,当主处理器15端要传送数据封包到通讯模块16端时,将用户程序14要传送的数据流编码成为数据封包,经由对应的通讯端口界面13,将数据封包传送给串行驱动程序11,通过多任务器12的多任务器协议,数据封包即可传送到通讯模块16。
因此,单工处理上述的两个动作时,这两个动作是循序完成而无法同时进行(即单工处理)。也就是说,当有一个用户程序正在传送(接收)数据封包时,另一个用户程序必须等候正在执行的用户程序传送(接收)完毕后才能开始传送(接收)数据封包。单工处理在只有一个重度的用户程序时,确实能发挥强大的功效,但是,其它用户程序有传送(接收)的要求时,却会导致轻度的用户程序无法得到传送(接收)的权限,造成整体的传输效能变差。
举例来说,当移动通讯装置经由GPRS系统连接上网际网络(Internet)时,其下载(downlink)的数据封包非常庞大(以GPRS class 8来说,理论值最快可达40 Kbps),单工处理的方法会导致多任务器忙于处理点对点协议的用户程序的数据封包,导致其它用户程序的数据封包的接收(传送)要求无法顺利进行。另一方面,如果用户程序正在传送数据封包时,此时点对点协议涌入大量的数据封包,容易造成串行驱动程序的缓冲区发生溢出(buffer overflow)的问题,此问题虽然可以由RS232本身的溢出控制机制解决,避免数据封包遭受破坏,但却严重影响到数据传输的效率。

发明内容
鉴于上述问题,本发明所提出的具体方法为利用数个线程控制多任务器系统,同时处理数个用户程序的数据封包传输工作。而本发明所提到的线程可利用信号沟通了解彼此的状态,或指示其它线程开始执行。包含有排程线程与处理线程,其中处理线程可分为接收线程与传送线程,分别对应一个用户程序,以负责用户程序的数据封包的接收或传送工作。排程线程利用多任务排程法,例如轮作法(Round Robin),分别安排各处理线程轮流执行一段时间,或分别安排各处理线程轮流处理指定数据量,使每个用户程序的数据封包能公平地获得接收与传送的机会,进而改善整体传输效率。
所以为达上述目的,本发明所提到的移动通讯装置的多任务器系统中,数据封包的传输工作可分成两个部分,第一部份,接收通讯模块的数据封包,并传送给相对应的用户程序(接收线程);第二部份,将用户程序的数据封包传送至通讯模块(传送线程)。利用若干个线程控制多任务器的运作,让不同用户程序的数据封包的传输工作能同时进行。
本发明所提到的若干个线程包含有排程线程、接收线程及传送线程,其中排程线程,用以利用多任务排程法,安排接收线程与传送线程的处理顺序,并指示接收线程与传送线程轮流执行一段时间,或轮流处理指定数据量;接收线程,用以接收通讯模块的数据封包,译码所接收的数据封包成为数据流,然后将数据流传送给对应的用户程序;传送线程,用以接收用户程序的数据流,编码所接收的数据流成为数据封包,然后将数据封包传送至通讯模块。
本发明所提到的移动通讯装置的多任务器系统的运行方法,是利用若干个线程控制多任务器,以处理通讯模块与用户程序间的数据封包,各线程间可利用信号沟通彼此状态,或指示其它线程开始执行,其运行方法包含有下列步骤
执行排程线程,指示各处理线程轮流执行一段时间;当处理线程为接收线程时,开始接收通讯模块的数据封包,译码数据封包成为数据流,将数据流传送给对应的用户程序;当处理线程为接收线程时,开始接收用户程序的数据流,编码数据流成为数据封包,将数据封包传送至通讯模块;及执行一段时间后,执行另一个处理线程。
另外,本发明所提到的移动通讯装置的多任务器系统的运行方法,其运行方法包含有下列步骤执行排程线程,安排各处理线程顺序,使各处理线程轮流处理指定数据量;当处理线程为接收线程时,开始接收通讯模块的数据封包,译码数据封包成为数据流,将数据流传送给对应的用户程序;当处理线程为接收线程时,开始接收用户程序的数据流,编码数据流成为数据封包,将数据封包传送至通讯模块;及处理指定数据量后,执行另一个处理线程。
有关本发明的特征与实施,配合


如下。

图1为多任务器协议系统的架构2为移动通讯装置的架构3-a至图3-c为本发明所提到的移动通讯装置的多任务器系统及其运行方法的线程示意4是本发明所提到的移动通讯装置的多任务器系统及其运行方法第一实施例的流程5是本发明所提到的移动通讯装置的多任务器系统及其运行方法第二实施例的流程图具体实施方式
请参考图2,图2是本发明所提到的移动通讯装置的多任务器系统的硬件架构图,如图2所示,移动通讯装置20包含一个总线24(Bus),用以传送数据封包与线程的沟通信号,总线24耦合主处理器21、通讯模块22及内存23。主处理器21可执行不同的用户程序,通讯模块22是无线通讯模块(例如,GSM、CDMA及WiFi等模块),用以从移动通讯装置20外部接收语音或数据的数据封包,通过多任务器协议,将所接收的数据封包传送至内存23(串行驱动程序的缓冲区)。或将要传送至移动通讯装置20外部的数据封包,从内存23传送至通讯模块。
图3-a至图3-c是本发明所提到的移动通讯装置的多任务器系统及其运行方法的线程示意图。利用若干个线程处理用户程序与通讯模块间的通讯,如图3-a所示,包含有排程线程(S)32与处理线程33(接收线程(Ri)34及传送线程(Ti)36),各处理线程33对应一个用户程序的数据封包的传输工作,以对应数据封包的接收或传送。排程线程(S)32利用多任务排程法安排各处理线程33轮流执行一段时间,或安排各处理线程33轮流处理指定数据量,使每个用户程序的数据封包能获得较平衡的处理。
排程线程(S)32具有一个工作队列31,如图3-b所示,工作队列31,用以记录处理线程33的多任务处理顺序,包含接收线程34(R1,R2,...,Rn)与传送线程36(T1,T2,...,Tn),采用多任务排程法,例如轮作法(Round Robin),轮流执行各处理线程33一个时间片段(time slice),或各处理线程33轮流传送指定数据量。利用多任务排程法轮流执行各处理线程33,及处理各处理线程33的间控制权转移的问题,让处理线程33对应的用户程序的数据封包获得较平衡的处理,由排程线程32的多任务排程控制,使多任务器系统能同时接收与传送数据封包。
本发明所提到的移动通讯装置的多任务器系统的运行方法,请参考图3-c说明如下排程线程32具有一个工作队列31,工作队列31记录各处理线程33(接收线程34或传送线程36)的执行顺序,根据工作队列31中记录的执行顺序,排程线程32利用多任务排程法指示各处理线程33轮流执行一段时间,或各处理线程33轮流处理指定数据量。其中,当接收线程34执行时,接收通讯模块16的数据封包,译码数据封包成为数据流,并将数据流传送给对应的用户程序14。当传送线程36执行时,接收用户程序14的数据流,编码数据流成为数据封包,并将数据封包传送至通讯模块16。
图4是本发明所提到的移动通讯装置的多任务器系统及其运行方法的流程图,也是本发明的第一较佳实施例。本发明的各处理线程(接收线程与传送线程)分别对应一个用户程序,以对应用户程序的数据封包的传送或接收。排程线程具有一个工作队列,工作队列上记录各处理线程的处理顺序,利用多任务排程法,例如轮作法(Round Robin),轮流执行各处理线程一个时间片段(timeslice)。
本发明的第一较佳实施例请参考图4,并说明如下执行排程线程,排程线程具有一个工作队列中,工作队列记录各处理线程的处理顺序,根据工作队列的处理顺序,利用多任务排程法,排程线程传送一个初始信号给工作队列中记录的第一个处理线程(以传送线程为例),命令第一个处理线程开始执行,且指示第一个处理线程执行一段时间(步骤400);第一个处理线程开始接收用户程序的数据流上述的一段时间,将数据流编码成为数据封包,并将数据封包传送至通讯模块(步骤410);执行第一个处理线程一段时间后,判断第一个处理线程对应的用户程序的数据封包尚未处理完毕,记录第一个处理线程数据封包的传输状态,并将控制权转移给排程线程,排程线程将第一个处理线程移至工作队列的最后一个位置,根据多任务排程法,传送一个初始信号给下一个处理线程,以执行下一个处理线程(步骤420),否则,第一个处理线程传送一个完成信号给排程线程,排程线程从工作队列中移除第一个处理线程,根据多任务排程法,执行下一个处理线程。上述的第一个处理线程再获得执行权限时,根据所记录的传输状态,接续处理第一个处理线程对应的用户程序的数据封包。
本发明的第二较佳实施例请参考图5并说明如下执行排程线程,根据工作队列的处理顺序,利用多任务排程法,排程线程传送一个初始信号给工作队列中记录的第一个处理线程(以接收线程为例),命令第一个处理线程开始执行,且指示第一个处理线程处理指定数据量(步骤500);第一个处理线程开始接收通讯模块的指定数据量,将数据封包译码成为数据流,并将数据流传送给对应的用户程序(步骤510);当处理指定数据量后,判断第一个处理线程对应的用户程序的数据封包尚未全部处理完毕时,记录第一个处理线程的数据封包的传输状态,并将控制权转移给排程线程,排程线程将第一个处理线程移至工作队列的最后一个位置,根据多任务排程法,传送一个初始信号给下一个处理线程,以执行下一个处理线程(步骤520),否则,第一个处理线程传送一个完成信号给排程线程,排程线程从工作队列中移除第一个处理线程,根据多任务排程法,执行下一个处理线程。
上述所提到的方法,虽然一个时间只执行一个处理线程,以对应用户程序的数据封包的传输工作,但由于工作队列中的各处理线程是利用轮作法的多任务排程法轮流执行一段时间,或轮流处理指定数据量。所以,每个处理线程能获得较平衡的处理,即使是轻度的用户程序也有机会获得执行权限,让不同的用户程序的数据封包的传输工作获得公平的对待。此外,利用多任务排程法还可达到同时传送与接收数据封包的目的,大幅提升整体传输效率。
以上所述者,仅为本发明中的较佳实施例而已,并非用来限定本发明的实施范围;即凡依本发明申请专利范围所作的均等变化与修饰,皆为本发明专利范围所涵盖。
权利要求
1.一种移动通讯装置的多任务器系统,利用多任务器协议,处理一通讯模块与一用户程序间的通讯,该多任务器系统包含一接收模块,用以接收该通讯模块的一数据封包,译码该数据封包成为一数据流,并将该数据流传送给该用户程序;一传送模块,用以接收该用户程序的该数据流,编码该数据流成为该数据封包,并将该数据封包传送给该通讯模块;及一排程模块,用以产生对应该接收模块与该传送模块的复数个线程,并安排该线程轮流执行一段时间。
2.根据权利要求1所述的移动通讯装置的多任务器系统,其中该排程模块更包含一工作队列,用以记录该接收模块与该传送模块的多任务处理顺序。
3.根据权利要求1所述的移动通讯装置的多任务器系统,其中该多任务排程法是轮作法(Round Robin)。
4.根据权利要求1所述的移动通讯装置的多任务器系统,其中该通讯模块为选自一GSM模块、一CDMA模块及一WiFi模块群组组合之一。
5.一种移动通讯装置的多任务器系统,利用多任务器协议,处理一通讯模块与一用户程序间的通讯,该系统包含一接收模块,用以接收该通讯模块的一数据封包,译码该数据封包成为一数据流,并将数据流传送给该用户程序;一传送模块,用以接收该用户程序的该数据流,编码该数据流成为该数据封包,并将该数据封包传送给该通讯模块;及一排程模块,用以产生对应该接收模块与该传送模块的复数个线程,并安排该线程轮流处理一指定数据量。
6.根据权利要求5所述的移动通讯装置的多任务器系统,其中该排程模块更包含一工作队列,用以记录该接收模块与该传送模块的多任务处理顺序。
7.根据权利要求5所述的移动通讯装置的多任务器系统,其中该多任务排程法是轮作法(Round Robin)。
8.根据权利要求5所述的移动通讯装置的多任务器系统,其中该通讯模块为选自一GSM模块、一CDMA模块及一WiFi模块群组组合之一。
9.一种移动通讯装置的多任务器系统的运行方法,利用复数个线程处理多任务器协议的一通讯模块与一用户程序间的通讯,该方法包含下列步骤执行一排程线程,利用一多任务排程法,指示一处理线程执行一段时间;当该处理线程为一接收线程时,译码该通讯模块的一数据封包成为一数据流,并将该数据流传送给该用户程序;当该处理线程为一传送线程时,编码该用户程序的该数据流成为该数据封包,并将该数据封包传送至该通讯模块;及执行该处理线程该段时间后,执行下一个该处理线程。
10.根据权利要求9所述的移动通讯装置的多任务器系统的运行方法,其中该多任务排程法是轮作法(Round Robin)。
11.根据权利要求9所述的移动通讯装置的多任务器系统的运行方法,其中该通讯模块为选自一GSM模块、一CDMA模块及一WiFi模块群组组合之一。
12.根据权利要求9所述的移动通讯装置的多任务器系统的运行方法,其中该排程线程具有一工作队列,该工作队列记录该接收线程与该传送线程的多任务处理顺序。
13.一种移动通讯装置的多任务器系统的运行方法,利用复数个线程处理多任务器协议的一通讯模块与一用户程序间的通讯,该方法包含下列步骤执行一排程线程,利用一多任务排程法,指示一处理线程处理一指定数据量;当该处理线程为一接收线程时,译码该通讯模块的一数据封包成为一数据流,并将该数据流传送给该用户程序;当该处理线程为一传送线程时,编码该用户程序的该数据流成为该数据封包,并将该数据封包传送至该通讯模块;及执行该处理线程处理该指定数据量后,执行下一个该处理线程。
14.根据权利要求13所述的移动通讯装置的多任务器系统的运行方法,其中该多任务排程法是轮作法(Round Robin)。
15.根据权利要求13所述的移动通讯装置的多任务器系统的运行方法,其中该通讯模块为选自一GSM模块、一CDMA模块及一WiFi模块群组组合之一。
16.根据权利要求13所述的移动通讯装置的多任务器系统的运行方法,其中该排程线程具有一工作队列,该工作队列为记录该接收线程与该传送线程的多任务处理顺序。
全文摘要
一种通讯装置的多任务器系统及其运行方法,一般无线通讯装置与智能手持式通讯装置(Smart phone,PDA),其主要结构包含有一个主处理器与一个通讯模块,之间利用一组实体的RS232接口连接,因为硬件资源的限制,数据封包的接收与传送是循序完成,无法同时进行,因此,利用数个线程来控制通讯模块与用户程序间的数据封包的传输顺序,利用多任务排程法使每个用户程序对应的数据封包能获得接收或传送的机会。
文档编号G06F9/46GK1988494SQ20051012095
公开日2007年6月27日 申请日期2005年12月22日 优先权日2005年12月22日
发明者黄裕修 申请人:佛山市顺德区顺达电脑厂有限公司, 神达电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1