动态调整串行传输的缓冲区长度的方法技术

技术编号:2853280 阅读:272 留言:0更新日期:2012-04-11 18:40
一种动态调整串行传输的缓冲区长度的方法,于串行端口驱动程序(serialdriver)执行数据传输处理时,依数据传输量动态调整缓冲区(FIFO  buffer)长度。该方法包含有下列步骤:首先取得起始传输时间、数据传输总量、及终止传输时间;透过运算求得数据传输量;判断是否符合标准区间?当该数据传输量落于标准区间内,且相对数值落于接近该标准区间上限时,增长缓冲区长度;当该数据传输量落于标准区间内,且相对数值落于接近该标准区间下限时,缩短缓冲区长度;最后,依据缓冲区数据状态产生中断请求,开始进行传输数据处理。如此将可避免数据传输量大时,因缓冲区长度不足且中断请求间隔过长而造成数据溢位;同时也可减少数据传输量小时,因缓冲区长度过长且中断请求间隔过长而造成整体效果不明显。

【技术实现步骤摘要】

本专利技术为一种有关于数据处理方法,特别指一种应用于串行端口驱动程序(serial driver)中,可根据数据传输量进行缓冲区(FIFO buffer)长度动态调整来控制中断请求间隔的方法。
技术介绍
在既有串行数据传输处理的结构里(如图1中所示),串行端口驱动程序(serial driver)30往往被用来作为负责微处理器10和外围装置50之间数据传输的主要沟通桥梁。当外围装置50有任务要执行,需要进行数据传输处理的时候,便会由对应负责的串行端口驱动程序30负责向微处理器10发出中断(interrupt)请求,而在微处理器10接收到来自串行端口驱动程序30的中断请求之后,便会立刻分配一定的资源并允许对应的外围装置50开始执行所请求的数据传输处理。特别是在数据传输处理的过程中,串行端口驱动程序30主要用来负责微处理器10与外围装置50之间数据的输入/输出传输。而输入/输出传输通常会分别透过串行端口驱动程序30中的输入缓冲区31及输出缓冲区32来进行,所谓的缓冲区(FIFO buffer)即是可用来暂时保留等待传输处理数据的内存,主要用来作为微处理器10与外围装置50之间数据传输处理的缓冲之用。关于缓冲区的用途已为现有技术范畴,在此不多作赘述。但是由于过去对于缓冲区的使用上,都是采取固定长度(fixed length)的模式在进行(如图1中输入缓冲区31及输出缓冲区32),也就是缓冲区的长度大小及可容纳的数据量为固定的,因此往往在需要传输处理的数据量相当大的时候,这种固定长度的缓冲区就经常会因为数据处理速率的不一致,而导致暂存在缓冲区中的数据超出缓冲区可容纳的最大范围而发生溢位的错误情形;反之,当需要传输处理的数据量非常小的时候,这种固定长度的缓冲区却也经常会因为缓冲区中的暂存数据量不足,而无法产生中断请求加以传输处理,影响到整体的运作效果。因此,在实际数据传输处理过程中,串行端口驱动程序30中的缓冲区确实有必要随时依据数据传输量来进行缓冲区长度的动态调整,以使得串行端口驱动程序30能够在最适当的时机向微处理器10发出中断请求进行数据传输处理,如此才能够使微处理器10与外围装置50之间的数据传输处理能够维持在最佳化的状态,同时使整体的效果也能够达到最佳化的状况。如何设计一种可以依据实际数据传输量来动态调整串行端口驱动程序30中缓冲区长度的方法,是本专利技术的重点所在。
技术实现思路
根据现有的串行数据传输处理所存在的问题点,本专利技术的目的在于提供一种。为实现上述目的,本专利技术所提供的可依据数据传输量来进行动态调整的模式,也即具有动态长度(dynamic length)的缓冲区模式,该方法包含有下列步骤首先取得起始传输时间、数据传输总量、及终止传输时间;透过运算求得数据传输量;判断是否符合标准区间?当该数据传输量落于标准区间内,且相对数值落于接近该标准区间上限时,增长缓冲区长度;当该数据传输量落于标准区间内,且相对数值落于接近该标准区间下限时,缩短缓冲区长度;最后,依据缓冲区数据状态产生中断请求,开始进行传输数据处理。相较于现有技术,本专利技术可避免数据传输量大时,增长缓冲区的长度以减少数据溢位的情况发生;同时也可减少数据传输量小时,缩短缓冲区的长度以提升整体的运作效果。附图说明图1是现有的串行数据传输处理的结构框图。图2是本专利技术所提的的结构框图。图3是本专利技术所提的的运作流程图。具体实施方式本专利技术提出一种。由图1的现有结构及图2的本专利技术结构中可清楚发现,本专利技术的主要技术特征在于能够将既有串行端口驱动程序30(serial driver)中的缓冲区(FIFO buffer)(包括输入缓冲区31及输出缓冲区32)从以往的固定长度(fixed length)的模式更改为可依据实际数据传输量来进行动态调整的模式,也即具有动态长度(dynamiclength)的缓冲区模式。本专利技术方法主要应用于计算机可执行平台之上,特别是用来提升计算机可执行平台中微处理器10与外围装置50之间的数据传输处理的效果(如图2中所示),因此只要具有微处理器10的计算机可执行平台均可以应用本专利技术方法,例如手持式移动通信装置(handheld device)中的智能型手机(Smartphone)。本专利技术方法的运作流程,将配合图3的部分加以说明(请搭配参考图2的部分)。当外围装置50对串行端口驱动程序30发出数据传输处理的请求时,此时串行端口驱动程序30会在向微处理器10发出中断(interrupt)之前,执行本专利技术方法进行关于缓冲区长度的动态调整,完成之后才向微处理器10发出中断并开始数据传输处理的作业。至于本专利技术方法的详细说明如下首先,当串行端口驱动程序30接收到来自外围装置50所发出的数据传输处理请求时,便开始启动本专利技术方法并取得启动时的起始传输时间(步骤100);启动之后,串行端口驱动程序30便向外围装置50请求读取所需传输处理数据的总数据量(步骤110);并同时预估并取得外围装置50将所有传输处理数据传送至串行端口驱动程序30上的终止传输时间(步骤120);然后根据预设的表达式来计算出数据传输量(步骤130),表达式可以下列公式来加以表示M=D/(T2-T1);其中,M为数据传输量,其单位为字节/滴答(byte/tick);D为数据传输总量,其单位为字节(byte);T1及T2分别为起始传输时间及终止传输时间,其单位为滴答(tick),为一般计算机可执行平台中所产生的内部时序单位。计算出数据传输量之后,便进一步判断此数据传输量是否符合所预设的标准区间?(步骤140)此一标准区间,为可提供使用者依照计算机可执行平台状态而自行调整定义的默认值,包含有数据传输上限及下限的范围区间,依照数据传输量落于此区间的数值来决定应该对缓冲区进行增长长度或是缩短长度。当计算出的数据传输量落于标准区间内(即符合标准区间),则判断该数据传输量是否接近标准区间上限?(步骤150)当数据传输量相对数值落于接近标准区间上限时,便执行将缓冲区增长的程序(步骤151),理论上所增长的缓冲区长度最大为1/2缓冲区的长度,此增长限制仅为本专利技术方法中的较佳实施例而已,实际上此限制也可提供使用者自行加以定义。当计算出的数据传输量落于标准区间内(即符合标准区间),且数据传输量相对数值未落于接近标准区间上限时,则判断该数据传输量是否接近标准区间下限?(步骤152)当数据传输量相对数值落于接近标准区间下限时,便执行将缓冲区缩短的程序(步骤153),理论上所缩短的缓冲区长度最小为1字节的长度,同样地此缩短限制仅为本专利技术方法中的较佳实施例而已,实际上此限制也可提供使用者自行加以定义。当计算出的数据传输量落于标准区间内(即符合标准区间),且数据传输量相对数值未落于接近标准区间下限时,此时串行端口驱动程序30便会依据缓冲区数据状态实时产生中断请求,并将中断请求发送至微处理器10中并开始进行传输数据处理(步骤160)。完成上述步骤100至步骤151、步骤153之后,即已经完成整个动态调整缓冲区的流程,此时串行端口驱动程序30便会依据缓冲区数据状态实时产生中断请求,并将中断请求发送至微处理器10中并开始进行传输数据处理(步骤160)。由于此时缓冲区长度已经过最佳化的动态调整,所以任何来自外围装置本文档来自技高网
...

【技术保护点】
一种动态调整串行传输的缓冲区长度的方法,作用于一计算机可执行平台之上,在外围装置透过串行端口驱动程序(serialdriver)请求执行数据传输处理时,可对串行端口驱动程序中的缓冲区(FIFObuffer)进行动态调整以提升数据传输 处理效果,其特征在于:该方法包含下列步骤:取得一起始传输时间(T1)、读取一数据传输总量(D)及一终止传输时间(T2);进行运算求得一数据传输量(M);判断该数据传输量是否落于一标准区间内;当该数据传输量落于 标准区间内,且相对数值落于接近该标准区间上限时,增长缓冲区长度;当该数据传输量落于标准区间内,且相对数值落于接近该标准区间下限时,缩短缓冲区长度;及依据缓冲区数据状态产生中断请求,开始进行传输数据处理。

【技术特征摘要】
1.一种动态调整串行传输的缓冲区长度的方法,作用于一计算机可执行平台之上,在外围装置透过串行端口驱动程序(serial driver)请求执行数据传输处理时,可对串行端口驱动程序中的缓冲区(FIFO buffer)进行动态调整以提升数据传输处理效果,其特征在于该方法包含下列步骤取得一起始传输时间(T1)、读取一数据传输总量(D)及一终止传输时间(T2);进行运算求得一数据传输量(M);判断该数据传输量是否落于一标准区间内;当该数据传输量落于标准区间内,且相对数值落于接近该标准区间上限时,增长缓冲区长度;当该数据传输量落于标准区间内,且相对数值落于接近该标准区间下限时,缩短缓冲区长度;及依据缓冲区数据状态产生中断请求,开始进行传输数据处理。2.根据权利要求1所述的动态调整串行传输的缓冲区长度的方法,其特征在于该计算机可执行平台是指具微处理器的手持式移动通信装置(handhelddevice)。3.根据权利要求2所述的动态调整串行传输的缓冲区长度的方法,其特征在于该计算机可执行平台是指智能型手机(Smartph...

【专利技术属性】
技术研发人员:叶承溱
申请(专利权)人:佛山市顺德区顺达电脑厂有限公司神达电脑股份有限公司
类型:发明
国别省市:44[中国|广东]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1