对多套Turbo译码器进行调度的方法和装置的制作方法

文档序号:7599129阅读:167来源:国知局
专利名称:对多套Turbo译码器进行调度的方法和装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及针对单路数据输入和单路数据输出的应用场景,对多套Turbo译码器进行调度的方法和装置。
背景技术
译码器是通信系统中具有译码功能的逻辑电路,其作用是将地址代码转换为有效信号。一个译码器的处理能力是有限的,对于时钟频率提升的贡献也是非常有限的,当系统中的符号流量较高时,需要采用多套译码器并行处理才能满足系统要求,这就需要采用ー定的调度算法来调度多套译码器的输入输出。尤其是Turbo译码器,通常采用循环迭代反馈的方法对译码器进行调度,即需要 对多套译码器轮询,记录其空闲或忙状态,再根据轮询结果选择译码器,这种译码器调度方法处理时间长,呑吐量有限,在系统要求大吞吐量的情形下,对数据处理时间有严格限制,现有的循环迭代反馈方法不能满足系统较大呑吐量的要求。

发明内容
有鉴于此,本发明的主要目的在于提供ー种对多套Turbo译码器进行调度的方法和装置,采用译码器调度装置对多套译码器的调度进行并行处理,能够节省数据处理时间,响应吞吐量较大的系统需求。为达到上述目的,本发明的技术方案是这样实现的ー种对多套Turbo译码器进行调度的方法,包括预先设置并管理空闲译码器队列和空闲ID队列,检测输入缓冲区状态,在输入缓冲区有待译码数据时,启动ー个空闲译码器,将该译码器的ID号从空闲ID队列中删除;完成译码的数据缓存到输出缓冲区并被读取。进ー步地,预先设置用于指示空闲译码器个数的指针A ;所述管理空闲译码器队列包括当指针A位于所述空闲译码器队列末端时,表示所有译码器空闲;当启动ー个译码器时,指针A在所述空闲译码器队列中向前移动一位,所述空闲译码器个数减一;当所述译码数据被读取时,指针A在所述空闲译码器队列中向后移动一位,所述空闲译码器个数加一。进ー步地,所述管理空闲译码器队列还包括检测所述空闲ID队列中是否有ID被读取;当检测到ー个ID被读取,表示启动该ID对应的译码器,所述指针A在所述空闲译码器队列中向前移动一位,所述空闲译码器个数减一。进ー步地,所述管理空闲译码器队列的方法还包括检测是否有所述完成译码的数据缓存到输出缓冲区;
当检测到有完成译码的数据缓存到输出缓冲区,所述指针A在空闲译码器队列中向后移动一位,所述空闲译码器个数加一。进ー步地,所述管理空闲译码器队列的方法还包括当检测到所述空闲ID队列中有ID被读取,同时检测到有所述完成译码的数据缓存到输出缓冲区,则空闲译码器个数不变。进ー步地,所述管理空闲队列的方法还包括
当所述指针A位于空闲译码器队列首端时,所述空闲译码器个数为零,表示所述译码器全忙,不允许写入数据。本方法还包括预先设置用于表示有效空闲ID的个数的指针C,以及用于表示空闲ID队列首端位置的指针B ;所述管理空闲ID队列包括指针C位于有效空闲ID队列末端,表示可有效使用的空闲ID的个数;指针B始終位于空闲ID队列的首端,当译码器需要分配ID吋,从指针B指示的位置取用空闲ID。进ー步地,所述管理空闲ID队列的方法还包括检测是否有所述空闲ID被读取;在检测到有所述空闲ID被读取时,选择所述指针B位置的空闲ID,记录该ID,所述指针C向前移动一位,在所述指针C原来的位置添加无效ID标志;当未检测到有所述空闲ID被读取,则所述空闲ID队列不变。进ー步地,所述管理空闲ID队列的方法还包括检测是否有所述完成译码的数据被读取;在检测到有所述完成译码的数据被读取时,所述指针C向后移动一位,表示指针C原位置指示的ID空闲;当未检测到有所述完成译码的数据被读取,则所述空闲ID队列不变。进ー步地,所述管理空闲ID队列的方法还包括当所述指针B处添加有无效ID标志时,所有ID被占用。一种对多套译码器进行调度的装置,包括输入调度単元、输入缓冲区、译码器资源并行处理单元和输出调度単元;其中,输入调度単元,用于设置并管理空闲译码器和空闲ID队列,为译码器分配ID,并检测输入缓冲区是否被占用;输入缓冲区,用于缓存待译码数据,输入缓冲区一次只缓存ー个传输块TB数据,待缓存数据被读取后缓存下一个待译码数据;译码器资源并行处理单元,用于当多套译码器均占用ID时,实现多套译码器的并行译码处理;输出缓冲区,用于缓存完成译码的数据,输出缓冲区一次只缓存ー个TB数据,待缓存数据被读取后缓存下一个译码完成数据;输出调度単元,用于读取完成译码的数据,通知输入调度单元调整空闲译码器和空闲ID队列。进ー步地,所述输入调度单元包括空闲译码器个数寄存器和空闲ID队列寄存器;其中,
空闲译码器个数寄存器,用于对空闲译码器个数进行管理,每启动或释放ー个译码器,用于指示空闲译码器个数的指针A位置向前或向后移动一位,空闲译码器寄存器的计数减一或加一;当空闲译码器寄存器计数为零时,多套译码器均处于工作状态。空闲ID队列寄存器,用于对空闲ID队列中的空闲ID进行管理,指针B始終位于空闲ID队列的首端,当译码器需要分配ID的时,取用指针B位置的ID ;指针C指示的位置表示有效空闲ID的个数,每有ー个有效ID被读取,指针C依次向前移动一位,原来的位置添加无效ID标志,当指针B处添加无效ID标志,则表示所有ID被占用。从本发明提供的方案可见,在采用多套Turbo译码器的通信系统中,输入调度单元利用空闲身份标识(ID)队列,及时将数据分配给空闲的译码器,输出调度単元通过轮询机制及时将译码结束的数据读取,实现多套译码器的并行处理,提高了处理效率,而且在输入缓存区和输出缓存区只缓存ー个传输块(TB)数据,占用很小的存储空间,进ー步提高了系统的处理效率,多套译码器根据是否分配得到ID确定是否进入输入缓存区,输入调度单元不需要轮询各译码器的空闲/忙状态,控制简单,对译码器数量没有限制,可移植性强;而且,通过指针位置管理空闲译码器和空闲ID队列,当译码数据被输出调度单元读取后释放ID,译码器无优先级,提高了数据处理效率。


图I为本发明中对多套译码器进行调度的方法流程图;图2为本发明中对多套译码器进行调度的装置示意图;图3为本发明具体实施方式
中输入调度单元对空闲译码器个数进行统计的方法流程图;图4为本发明具体实施方式
中输入调度単元管理空闲ID队列的方法流程图。
具体实施例方式下面结合附图,对本发明的具体实施方式
作进ー步的详细说明。图I为本发明中对多套译码器进行调度的方法流程图,如图I所示,包括步骤100 :预先设置并实时管理空闲译码器寄存器和空闲ID寄存器,检测输入缓冲区状态。步骤101 :为空闲译码器分配ID,启动空闲译码器。本步骤中,每个译码器对应ー个ID,当有空闲译码器需要分配ID进行工作吋,为该空闲译码器分配相应的ID。当输入缓冲区待译码数据准备好,并且空闲ID队列非空的情况下,启动在队列首位的译码器,并将已分配给译码器的ID从空闲ID队列里清除,空闲译码器个数减1,当空闲译码器个数为0时即多套译码器均处于工作状态。步骤102 :被分配到ID的译码器进行译码工作,新的待译码数据等待分配译码器进行译码。 本步骤中,多套译码器并行处理,译码器无优先级划分,被分配了 ID的译码器即可进行有效工作。步骤103 :轮询多套译码器是否完成译码。
本步骤中,对于完成译码的译码数据,进入步骤104 ;对于未完成译码的译码器继续等待轮询。步骤104 :将完成译码的译码数据存储在输出缓冲区,等待被读取。本步骤中,当输出缓冲区为空时,完成译码的译码数据存储到输出缓冲区;当输出缓冲区被占用吋,则完成译码的译码数据等待输出缓冲区的数据被读取后再存入输出缓冲区。步骤105 :完成译码的数据被读取,调整空闲译码器个数和ID队列。本步骤中,完成译码的译码器释放占用的ID,该ID被送到空闲ID队列排队等待下一次分配,空闲译码器寄存器的计数加I ;进行下一轮译码器调度处理。 图2为本发明中对多套译码器进行调度的装置示意图,如图2所示,包括输入调度単元,用于设置并管理空闲译码器和空闲ID队列,并检测输入缓冲区是否被占用。输入调度単元为译码器分配ID,分配到ID的译码器则进入工作状态;其中,输入调度単元至少包括空闲译码器个数寄存器和空闲ID队列寄存器空闲译码器个数寄存器,用于对空闲译码器个数进行管理,每启动或释放ー个译码器,用于指示空闲译码器个数的指针A从当前位置向前或向后移动一位,相应地,空闲译码器个数寄存器的计数减I或加I ;当空闲译码器寄存器计数为0时,表明多套译码器均处于工作状态。空闲ID队列寄存器,用于对空闲ID队列中的空闲ID进行管理,指针B始終位于空闲ID队列的首端,当译码器需要分配ID时,取用指针B位置的ID ;指针C指示的位置表示有效空闲ID的个数,当每有ー个有效ID被读取时,指针C依次向前移动一位,原来的位置添加无效ID标志,当指针B处添加了无效ID标志,则表示所有ID被占用。输入缓冲区,用于缓存将要进入译码器并行处理单元的待译码数据,输入缓冲区一次只缓存ー个传输块(TB)数据,待缓存数据被读取后缓存下一个待译码数据,占用存储空间小。译码器资源并行处理单元,用于当多套译码器均占用ID时,实现多套译码器的并行处理,译码器无优先级划分,同等对待,例如,译码器A得到长包数据在先,译码器B得到短包数据在后,因数据包长度不同,译码器B比译码器A先完成译码,此时译码器B在完成译码后,不需要等待译码器A完成译码,就可以马上又被授权得到新的待译码数据开始新ー轮的译码,提高了数据处理效率。当输入缓冲区待译码数据准备好,并且空闲ID队列非空的情况下,启动在队列首位的译码器,并将该译码器占用的ID从空闲ID队列里清除,空闲译码器个数减1,当空闲译码器个数为0时即多套译码器均处于工作状态。输出缓冲区,用于缓存完成译码的数据,待输出调度单元读取数据。输出缓冲区一次只缓存ー个TB数据,待缓存数据被读取后缓存下一个译码完成数据,占用存储空间小。输出调度単元,用于读取完成译码的数据,调整空闲译码器个数和ID队列,输出调度单元通过轮询机制检测译码器并行处理单元中各译码器的译码完成标志,并检测输出缓冲区状态,其中,译码完成标志用于标记完成译码的译码器,当译码器并行处理单元中有译码器完成译码时,产生译码完成标志。当检测到某译码器的译码完成标志并检测到输出缓冲区有完成译码的数据时,读取完成译码的数据,清空输出缓冲区。完成译码的译码器释放占用的ID,该ID被送到输入调度単元的空闲ID队列排队等待下一次分配,空闲译码器寄存器的计数加I。图3为本发明具体实施方式
中输入调度单元对空闲译码器个数进行统计的方法的流程图,本发明提供的方法通过检测两个脉冲信号来管理维护指针A的位置,一是空闲ID队列中是否有ID被读取;ニ是是否有完成译码的数据被读取,缓存到输出缓冲区,根据对这两个脉冲信号的检测结果维护指针A的位置以确定空闲译码器个数。如图3所示,包括步骤300 :用于指示空闲译码器个数的指针A复位,输入调度単元准备好对空闲译码器个数进行管理。
步骤301 :指针A位于空闲译码器队列末端,表示空闲译码器个数为M。本步骤中,设空闲译码器寄存器中有M个译码器,当指针A位于空闲译码器队列末端时,表示所有译码器空闲,即空闲译码器个数为M,此时允许写入数据。步骤302 :确定是否启动了ー个空闲译码器,以维护指针A的位置。本步骤中,先检测空闲ID队列中是否有ID被读取,如果有ID从ID队列中被读取,产生ー个脉冲信号,表示该ID被分配给了ー个空闲译码器,即启动了一个空闲译码器;如果没有ID从ID队列中被读取,则表示ID队列和空闲译码器个数均不变化。同时进行步骤303的判断。步骤302a :根据步骤302判断的结果,如果有ID从ID队列里被读取,则指针A向前移动一位,表示空闲译码器个数减I。之后,进入步骤304。步骤302b :根据步骤302判断的結果,如果没有ID从ID队列里被读取,则指针位置A不变,表示空闲译码器个数不变,结束本流程。步骤303 :确定是否有完成译码的数据被读取,以维护指针A的位置。本步骤中,检测是否有完成译码的数据被读取,如果检测到有完成译码的译码器缓存到了输出缓冲区,产生另一个脉冲信号,表示该译码器已完成译码工作,成为空闲译码器;如果未检测到有完成译码的数据被读取,则指针A位置不变,空闲译码器个数不变化。步骤303a :根据步骤303判断的結果,如果检测到有完成译码的数据被读取,则指针A向后移动一位,表示空闲译码器个数加I。之后,进入步骤304。步骤303b :根据步骤303判断的結果,如果没有检测到有译码数据被读取,则指针A位置不变,结束本流程。在本方法的一种实施例中,有可能同时检测到既存在空闲ID队列中有ID被读取,也存在完成译码的数据被读取的情况,此时表示空闲译码器个数不变。步骤304 :确定译码器是否全忙。本步骤中,当通过检测两个脉冲信号维护更新了指针A的位置后,根据指针C的位置判断译码器是否全忙;当指针A位于空闲译码器队列首端吋,即空闲译码器个数为0,则表示译码器全忙。步骤304a :根据步骤304的判断結果,当译码器全忙时,不接受数据写入,返回步骤 302。步骤304b :根据步骤304的判断結果,当译码器并非全忙时,表示有空闲译码器,可以接受数据写入,返回步骤302。
图4为本发明具体实施方式
中输入调度単元管理空闲ID队列的方法流程图,本发明提供的方法通过检测两个脉冲信号来管理维护指针C的位置,一是空闲ID队列中是否有ID被读取;ニ是是否有完成译码的数据被读取,缓存到输出缓冲区,根据对这两个脉冲信号的检测结果维护指针C的位置以空闲ID队列。如图4所示,包括步骤400 :指针复位,输入调度単元准备好对空闲ID队列进行管理。步骤401 :指针B始终位于空闲ID寄存器中空闲ID队列的首端,指针C位于有效空闲ID队列末端,表示可有效使用的空闲ID的个数; 本步骤中,设空闲ID寄存器中有M个译码器,当译码器需要分配ID吋,从空闲ID队列首端即指针B指示的位置取用空闲ID。步骤402 :检测是否有空闲ID被读取。步骤402a :根据步骤402判断的结果,如果检测到有空闲ID被读取,则选中指针B位置的空闲ID,记录该ID号,表示该ID已被占用。进入步骤404。步骤402b :根据步骤402判断的结果,如果未检测到有空闲ID被读取,则空闲ID寄存器中的空闲ID队列不变。结束本流程。步骤403 :检测是否有完成译码的数据被读取,以维护指针C的位置。步骤403a :根据步骤403的判断結果,如果检测到有完成译码的数据被读取,则指针C向后移动一位,表示指针C原位置指示的ID空闲。返回步骤402。步骤403b :根据步骤403的判断結果,如果未检测到有完成译码的数据被读取,则空闲ID寄存器中的空闲ID队列不变。结束本流程。步骤404 :寄存器中的序列依次向前移动一位,指针C向前移动一位,指针C原来的位置添加无效ID标志,当指针B处添加了无效ID标志,则表示所有ID被占用,当所有ID均被占用时,返回步骤402。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.ー种对多套Turbo译码器进行调度的方法,其特征在于,预先设置并管理空闲译码器队列和空闲ID队列;还包括 检测输入缓冲区状态,在输入缓冲区有待译码数据时,启动ー个空闲译码器,将该译码器的ID号从空闲ID队列中删除; 完成译码的数据缓存到输出缓冲区并被读取。
2.根据权利要求I所述的方法,其特征在干,预先设置用于指示空闲译码器个数的指针A ;所述管理空闲译码器队列包括 当指针A位于所述空闲译码器队列末端时,表示所有译码器空闲; 当启动ー个译码器时,指针A在所述空闲译码器队列中向前移动一位,所述空闲译码器个数减一; 当所述译码数据被读取吋,指针A在所述空闲译码器队列中向后移动一位,所述空闲译码器个数加一。
3.根据权利要求2所述的方法,其特征在于,所述管理空闲译码器队列还包括检测所述空闲ID队列中是否有ID被读取; 当检测到ー个ID被读取,表示启动该ID对应的译码器,所述指针A在所述空闲译码器队列中向前移动一位,所述空闲译码器个数减一。
4.根据权利要求2所述的方法,其特征在于,所述管理空闲译码器队列的方法还包括测是否有所述完成译码的数据缓存到输出缓冲区; 当检测到有完成译码的数据缓存到输出缓冲区,所述指针A在空闲译码器队列中向后移动一位,所述空闲译码器个数加一。
5.根据权利要求2 4任一项所述的方法,其特征在于,所述管理空闲译码器队列的方法还包括 当检测到所述空闲ID队列中有ID被读取,同时检测到有所述完成译码的数据缓存到输出缓冲区,则空闲译码器个数不变。
6.根据权利要求5所述的方法,其特征在于,所述管理空闲队列的方法还包括 当所述指针A位于空闲译码器队列首端时,所述空闲译码器个数为零,表示所述译码器全忙,不允许写入数据。
7.根据权利要求I所述的方法,其特征在干,预先设置用于表示有效空闲ID的个数的指针C,以及用于表示空闲ID队列首端位置的指针B ; 所述管理空闲ID队列包括 指针C位于有效空闲ID队列末端,表示可有效使用的空闲ID的个数;指针B始終位于空闲ID队列的首端,当译码器需要分配ID吋,从指针B指示的位置取用空闲ID。
8.根据权利要求7所述的方法,其特征在于,所述管理空闲ID队列的方法还包括 检测是否有所述空闲ID被读取; 在检测到有所述空闲ID被读取时,选择所述指针B位置的空闲ID,记录该ID,所述指针C向前移动一位,在所述指针C原来的位置添加无效ID标志; 当未检测到有所述空闲ID被读取,则所述空闲ID队列不变。
9.根据权利要求7所述的方法,其特征在于,所述管理空闲ID队列的方法还包括 检测是否有所述完成译码的数据被读取;在检测到有所述完成译码的数据被读取时,所述指针C向后移动一位,表示指针C原位置指不的ID空闲; 当未检测到有所述完成译码的数据被读取,则所述空闲ID队列不变。
10.根据权利要求8所述的方法,其特征在于,所述管理空闲ID队列的方法还包括 当所述指针B处添加有无效ID标志时,所有ID被占用。
11.一种对多套译码器进行调度的装置,其特征在于,包括输入调度単元、输入缓冲区、译码器资源并行处理单元和输出调度単元;其中, 输入调度単元,用于设置并管理空闲译码器和空闲ID队列,为译码器分配ID,并检测输入缓冲区是否被占用; 输入缓冲区,用于缓存待译码数据,输入缓冲区一次只缓存ー个传输块TB数据,待缓存数据被读取后缓存下一个待译码数据; 译码器资源并行处理单元,用于当多套译码器均占用ID时,实现多套译码器的并行译码处理; 输出缓冲区,用于缓存完成译码的数据,输出缓冲区一次只缓存ー个TB数据,待缓存数据被读取后缓存下一个译码完成数据; 输出调度単元,用于读取完成译码的数据,通知输入调度单元调整空闲译码器和空闲ID队列。
12.根据权利要求11所述的装置,其特征在于,所述输入调度单元包括空闲译码器个数寄存器和空闲ID队列寄存器;其中, 空闲译码器个数寄存器,用于对空闲译码器个数进行管理,每启动或释放ー个译码器,用于指示空闲译码器个数的指针A位置向前或向后移动一位,空闲译码器寄存器的计数减一或加一;当空闲译码器寄存器计数为零时,多套译码器均处于工作状态。
空闲ID队列寄存器,用于对空闲ID队列中的空闲ID进行管理,指针B始終位于空闲ID队列的首端,当译码器需要分配ID的时,取用指针B位置的ID ;指针C指示的位置表示有效空闲ID的个数,每有ー个有效ID被读取,指针C依次向前移动一位,原来的位置添加无效ID标志,当指针B处添加无效ID标志,则表示所有ID被占用。
全文摘要
本发明公开了一种对多套Turbo译码器进行调度的方法和装置,包括预先设置并管理空闲译码器队列和空闲ID队列,检测输入缓冲区状态,在输入缓冲区有待译码数据时,启动一个空闲译码器,将该译码器的ID号从空闲ID队列中删除,完成译码的数据缓存到输出缓冲区并被读取。本发明提供的方法在采用多套Turbo译码器的通信系统中,输入调度单元利用空闲身份标识(ID)队列,及时将数据分配给空闲的译码器,输出调度单元通过轮询机制及时将译码结束的数据读取,实现多套译码器的并行处理,提高了处理效率。
文档编号H04L1/00GK102655440SQ20111005137
公开日2012年9月5日 申请日期2011年3月3日 优先权日2011年3月3日
发明者刘伟达, 张薇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1