多进程harq数据的缓存方法和设备的制作方法

文档序号:6337211阅读:389来源:国知局
专利名称:多进程harq数据的缓存方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种多进程HARQ数据的缓存方法和设备。
背景技术
多进程HARQ (Hybrid Automatic Repeat reQuest,混合自动重传请求)技术是 LTE (Long Time Evolved,长期演进)系统中数据传输时采用的技术,普遍用于非实时数据传输业务,它结合了前向纠错编码(forward Error Correction, FEC)和自动重传请求 (Adaptive Repeat Request, ARQ)两项技术。接收端对接收到的数据进行译码,并根据循环冗余校验(Cyclic Redundancy Check, CRC)结果,向发送端发送反馈信号,即ACK(Acknowledgement,肯定确认)/ NACK (Negative Acknowledgement,否定确认)反馈信息。常见的HARQ包括三种类型第一类、重传数据和首次传输数据相同,接收端译码不成功时直接丢弃数据,不保存,不需缓存空间,每次的解码能力都相同。第二类、HARQ重传时只传输冗余信息,接收端保存译码不成功的数据,逐渐增加冗余进行译码,此类HARQ较第一类HARQ的译码能力要强,接收端需缓存数据。第三类、重传信息具有自解码能力,即重传数据既有系统信息又有冗余信息,接收端保存重传数据,合并译码,此类HARQ具有更强的译码能力,所需缓存空间也较大。LTE系统的发端速率匹配采用循环Buffer (缓冲区)的方式取数据,同码块在重传时采用不同的RV(Redundancy Version,冗余版本),决定数据的起始传输位置,也即决定重传的数据。LTE系统重传时采用不同的RV版本就是为了实现HARQ功能,使不同传输对应不同的数据,逐渐增加接收端的信息冗余,进而提高译码能力。LTE系统中RV版本的选择与高层调度有关,可以按上述的第二类HARQ调度也可以按第三类HARQ调度。TDD (Time Division Duplexing,时分双工)-LTE中采用多进程的“停止-等待”HARQ实现方式,即对于某一个HARQ进程,在等待ACK/NACK反馈之前,此进程暂时中止, 待接收到ACK/NACK后,再根据是ACK还是NACK决定发送新的数据还是进行旧数据的重传。在一个HARQ进程中,一次传输发出后,需等待长度为RTT (RouncKTrip Time,往返时延)的时间才能决定下一次传输是传输新数据,还是进行旧数据的重传。在这段时间内, eNodeB (evolved NodeB,演进的B节点,即基站)/UE(User Equipment,用户设备)当然不能停止传输而白白等待反馈。因此,必须发起其他的并行HARQ进程,以充分利用时域资源,具体过程为UE端,UE根据进程号依次发送数据,基站接收并解码,并根据解码结果向UE反馈 NACK或ACK信号。CRC校验正确,发送ACK信号,否则,发送NACK。当UE接收到某一进程的 NACK信号时,就中断依据进程号依次发送的数据,根据NACK信号的进程号重新传输该进程的数据,直至解码成功或者达到最大重传次数。基站端,如果接收到的是新数据,译码并保存新数据;如果是重传数据,则需找到原接收数据存放的位置,再将原数据和重传数据合并、译码。根据CRC校验结果向UE反馈 NACK 或 ACK0通过上述过程可以看出,基站不仅需要对多个用户数据进行接收、合并、解码、保存,而且还要维护不同用户不同进程的缓存空间,若基站支持多个小区,还需考虑多小区的 HARQ缓存空间分配和管理。合理的缓存管理方法不仅能简化硬件实现,还能加快处理速度, 节省存储空间,提高系统吞吐量。在现有技术中,对于上述的过程,提出了技术方案1,具体说明如下(1)根据LTE上行最大进程数为7的特点,基站端以用户为单位分配缓存空间,即为小区内的每个用户固定分配7个独立的缓存块,缓存块大小不小于单个进程所需最大存储量,通过进程号选择每个进程存放数据的缓存块。(2)小区所支持的驻留用户数与芯片存储能力相关,一旦分配,不允许增加驻留用户数。(3)基站支持多个小区时,需为各小区分配独立的缓存空间,单独管理各小区的缓存空间。另一方面,现有技术对于上述的过程,还提出了技术方案2,具体说明如下(1)基站端以进程为单位分配缓存空间,缓存块大小不小于单个进程所需最大存储量。一旦该进程译码正确,则释放该进程所占用的空间。(2)小区所支持的驻留用户数灵活,可以在一定的芯片存储能力下,适当增加驻留用户数。(3)基站支持多个小区时,可以为各小区统一分配缓存空间,单独管理各小区的缓存空间。(4)静态维护多小区多用户的存储空间,每次有数据达到需要以进程为单位查找所有小区中所有用户中的所有进程的信息。在实现本发明实施例的过程中,申请人发现现有技术至少存在以下问题对于现有技术中的技术方案1,存在以下问题(1)现有HARQ缓存技术中,固定分配用户进程的缓存空间,需为所有驻留用户分配,因而,存储空间的大小直接决定小区所能支持的驻留用户数。(2)基站端以用户为单位来分配缓存空间,各用户的缓存资源都按进程数为7来分配。特别是在TDD情况下仅有1个上下行配置的最大进程数是7,其他配置的进程数小于 7。也就是说即使该用户只有1个进程还是要占用7个进程的缓存空间,其他用户的进程不能使用该缓存空间,造成缓存空间配置不够灵活以及较大的资源浪费。(3)各小区间的缓存空间相互独立,不能共享,不够灵活。如果小区用户数增多,基站存储空间不足将导致数据丢失,重传率上升,网络负荷加大,导致网络瘫痪。对于现有技术中的技术方案2,存在以下问题(1)为了克服现有技术方案1的缺点,技术方案2以进程为单位分配缓存空间的方法,可以灵活配置缓存空间,并且可以在现在存储能力下适当增加小区所能支持的驻留用户数。(2)但由于以进程为单位分配缓存空间,静态维护多小区多用户的存储空间,因此,造成查找匹配用户信息的平均时间会随着小区数和用户数的增加而线性增长,造成严重的时间浪费。

发明内容
本发明实施例提供一种多进程HARQ数据的缓存方法和设备,解决在现有技术中由于缓存空间配置方案的缺陷,导致缓存处理过程中存在资源利用不充分、数据损失或时间浪费的问题。为达到上述目的,本发明实施例一方面提供了一种多进程HARQ数据的缓存方法, 包括当基站接收到终端设备发送的数据时,所述基站判断接收到的数据是否为重传数据;如果所述基站判断接收到的数据是重传数据,所述基站在当前的占用缓存空间块链表中查询所述终端设备发送所述数据的进程所对应的缓存空间块;所述基站将接收到的数据与查询到的缓存空间块中已存储的数据合并存储。另一方面,本发明实施例还提供了一种基站,包括链表管理模块,用于管理占用缓存空间块链表和空闲缓存空间块链表;接收模块,用于接收终端设备发送的数据;判断模块,用于判断所述接收模块所接收到的数据是否为重传数据;查询模块,用于在所述判断模块判断所述数据是重传数据时,在所述链表管理模块所管理的当前的占用缓存空间块链表中查询所述终端设备发送所述数据的进程所对应的缓存空间块;存储模块,用于将所述接收模块所接收到的数据与所述查询模块所查询到的缓存空间块中已存储的数据合并存储。与现有技术相比,本发明实施例具有以下优点通过应用本发明实施例的技术方案,将基站的缓存空间资源划分为多个缓存空间块,并通过缓存空间块链表对相应的缓存空间块进行管理,根据接收到的数据的类型在相应的缓存空间块中进行存储,从而,动态调整各进程所占用的缓存空间块,提高缓存空间资源的利用率和选择效率,提高系统的处理效率和吞吐量。


图1为本发明实施例提出的一种多进程HARQ数据的缓存方法的流程示意图;图2为本发明实施例提出的一种具体应用场景下的多进程HARQ数据的缓存方法的流程示意图;图3为本发明实施例提出的空闲缓存空间块链表和占用缓存空间块链表初始化示意图;图4为本发明实施例提出的空闲缓存空间块链表和占用缓存空间块链表在有新数据存储场景下的变化示意图;图5为本发明实施例提出的空闲缓存空间块链表和占用缓存空间块链表在有数据删除场景下的变化示意图;图6为本发明实施例提出的一种基站的结构示意图。
具体实施例方式如背景技术所述,现有技术中的两种方案存在各自的缺陷,如何简单、高效地分配和管理各用户进程的缓存空间资源对于基站的设计非常重要。基于此,本发明实施例提出了一种高效动态地管理基站的缓存空间资源的方法, 既不增加缓存空间资源分配和查找的时延,又能提高缓存空间资源的重用率,以提高小区能支持的用户数,降低处理过程的复杂度。在基站支持多小区的应用场景下,可以统一管理各小区的HARQ缓存空间资源,使各小区以共享方式占用公共缓存空间资源。如图1所示,为本发明实施例提出的一种多进程HARQ数据的缓存方法的流程示意图,该方法具体包括以下步骤步骤S101、当基站接收到终端设备发送的数据时,基站判断接收到的数据是否为重传数据。如果基站判断接收到的数据是重传数据,执行步骤S102 ;如果基站判断接收到的数据不是重传数据,执行步骤S104。步骤S102、基站在当前的占用缓存空间块链表中查询终端设备发送数据的进程所对应的缓存空间块。步骤S103、基站将接收到的数据与查询到的缓存空间块中已存储的数据合并存储。步骤S104、基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储数据。与现有技术相比,本发明实施例具有以下优点通过应用本发明实施例的技术方案,将基站的缓存空间资源划分为多个缓存空间块,并通过缓存空间块链表对相应的缓存空间块进行管理,根据接收到的数据的类型在相应的缓存空间块中进行存储,从而,动态调整各进程所占用的缓存空间块,提高缓存空间资源的利用率和选择效率,提高系统的处理效率和吞吐量。下面,结合具体的应用场景,对本发明实施例所提出的技术方案进行说明。上述过程实现了对于基站所接收到的数据在缓存空间块中的存储操作,在实际的应用场景中,上述的技术方案可以具体为如图2所示的处理过程,具体包括以下步骤步骤S201、基站将自身的缓存空间资源划分为同样大小的多个缓存空间块。其中,每个缓存空间块的大小为基站当前所对应的一个进程所能占用的最大缓存空间值。在本发明实施例所提出的技术方案中,基站动态管理HARQ的缓存空间,以进程为单位进行分配和管理,无需为每个驻留用户固定分配存储空间,只在需要的时候进行分配, 可以避免出现在现有技术的技术方案1中存在的用户只使用较少进程数却为该用户分配7 个进程的缓存空间的缺陷,提高存储空间利用率。在实际应用中,基站将自身的可用缓存空间资源按单个进程所占的最大存储空间均勻划分成若干块,如N块,任何用户的单个进程都占用一个固定大小的存储空间。其中,1 < N <基站可支持的最大进程数,即如果基站的可用缓存空间资源总量大于或等于基站自身所支持的最大数量的进程所能占用的最大存储空间之和,则基站直接按照自身可支持的最大进程数量确定划分的缓存空间块,划分之后所剩余的缓存空间资源不再划分,而如果基站的可用缓存空间资源总量小于基站自身所支持的最大数量的进程所能占用的最大存储空间之和,那么,直接按照缓存空间资源总量所能划分的最大缓存空间块数量进行划分,在特殊情况下,如果基站在一个时刻所并发的进程数量超过了所划分的缓存空间块数量,那么,超出的进程中的数据将不能被正常缓存,但是考虑到这样的情况出现的可能性很小,并且,即使超出,所超出的进程数量也会十分有限,并且缓存空间资源的动态管理也保证了这样的情况持续时间不会很长,从而,使这样的数据损失所带来的误差完全在可以接受的范围之内,因此,本发明实施例对于此种情况不再做另行处理。步骤S202、基站建立空闲缓存空间块链表和占用缓存空间块链表,将划分的各缓存空间块的信息添加到空闲缓存空间块链表和占用缓存空间块链表中。通过本步骤,可以建立相应的缓存空间块链表,通过缓存空间块链表来维护管理各进程的缓存空间,并通过对缓存空间块链表中的信息进行操作来完成缓存空间资源的分配和释放,从而,节省缓存空间资源的维护和查找时间,提高系统的运行效率。在本步骤中,基站需要创建静态管理数组,在该静态数组中的节点个数和所划分的缓存空间块的个数相同,在实际应用中,各节点的下标对应各缓存空间块的下标,节点结构体包括本节点的直接前驱、直接后继和节点状态(即该节点所对应的缓存空间块当前是空闲或占用),基站的节点初始化过程如图3所示。相应的,基站用缓存空间块链表动态管理存储空间,在本发明实施例所提出的技术方案中,基站共建立了两种缓存空间块链表,包括空闲缓存空间块链表和占用缓存空间块链表,其中,空闲缓存空间块链表标识缓存空间块的未使用状态,而占用缓存空间块链表标识缓存空间块的使用状态,两种缓存空间链表中所包含的全部节点基站可以通过对相应的缓存空间块链表中添加和删除相应的缓存空间块信息来实现缓存空间资源的分配和释放。在具体的应用中,这两个缓存空间块链表中所包括的元素都在上述的静态开辟的管理数组中,另外,重新定义两个缓存空间块链表各自的表头,表头表明当前缓存空间块链表在管理数组中的位置(下标)和缓存空间块链表类型(空闲缓存空间块链表或占用缓存空间块链表)。步骤S203、当基站接收到终端设备发送的数据时,基站判断接收到的数据是否为重传数据。如果基站判断接收到的数据是重传数据,执行步骤S204 ;如果基站判断接收到的数据不是重传数据,执行步骤S210。步骤S204、基站在当前的占用缓存空间块链表中查询终端设备发送数据的进程所对应的缓存空间块。需要特别指出的是,在本步骤中,如果基站在当前的占用缓存空间块链表中没有查询到终端设备发送数据的进程所对应的缓存空间块,这有可能是由于将译码错误的数据对应的缓存空间清空所致,那么,基站直接执行步骤S210。在此过程中,基站直接查找发送终端设备发送该数据的进程所对应的缓存空间位置即可,占用缓存空间块链表和空闲缓存空间块链表均无需修改。步骤S205、基站将接收到的数据与查询到的缓存空间块中已存储的数据合并存储。步骤S206、基站判断对存储的数据进行译码是否成功。如果译码成功,执行步骤S207 ;如果译码失败,执行步骤S208。步骤S207、基站删除数据,释放缓存空间块。具体的,本步骤的具体处理过程如下首先,基站在当前的占用缓存空间块链表中删除缓存空间块所对应的信息。然后,基站将缓存空间块所对应的信息添加到当前的空闲缓存空间块链表中。通过上述处理,原属于占用缓存空间块链表的一个缓存空间块被转移到了空闲缓存空间块链表中,同时,该缓存空间块中存储的数据和相关信息也被清除,基站可以重新调用此缓存空间块进行数据存储。需要指出的是,如果一个终端设备的相应进程被删除,那么对于该进程所对应的缓存空间块同样执行本步骤进行处理。通过上述的处理,可以在某一进程的数据译码成功,或删除终端设备的进程,或该进程已达最大重传次数(参见步骤S208)后,释放相应的缓存空间块,即在占用缓存空间块链表中删除该缓存空间块,而在空闲缓存空间块链表中增加空闲的缓存空间块,从而,直接回收相应的缓存空间资源,从而,使新数据到达时,基站可以重新分配可用的缓存空间块, 以提高缓存空间资源的重用率。在具体的应用场景中,如果占用缓存空间块链表和空闲缓存空间块链表的表头中存储了各自链表的第一个节点或最后一个节点的位置信息,那么,本步骤所对应的过程具体如下如图4所示,基站采用一数组保存一个终端设备的各进程对应的缓存空间位置, 其下标与本地使用的终端设备的标识(UE_ID)对应,查找相应下标元素处所记录的缓存空间块的位置获得当前缓存空间块在静态管理数组中的索引,删除占用缓存空间块链表中索引所在位置的节点信息,并修改其前后缓存空间块的后继和前驱,其中,如果占用缓存空间块链表的表头中存储了该节点的位置信息,即该节点是缓存空间块链表中的第一个节点或最后一个节点,那么,删除该节点信息时,还需要进一步修改占用缓存空间块链表的表头中的信息。同时,将此缓存空间块所对应的节点信息加入空闲缓存空间块链表的头节点或尾节点,并修改空闲缓存空间块链表的表头中的内容,记录该节点的位置信息。步骤S208、基站判断当前是否达到缓存空间块所对应的进程的最大重传次数。如果达到最大重传次数,执行步骤S207 ;如果没有达到最大重传次数,执行步骤S209。步骤S209、基站继续在缓存空间块中保存数据。步骤S210、基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储数据。具体的,本步骤的具体处理过程如下首先,基站在空闲缓存空间块链表中删除被选择的缓存空间块所对应的信息;然后,基站将被选择的缓存空间块所对应的信息添加到当前的占用缓存空间块链表中,并为缓存空间块添加所存储数据所对应的终端设备信息和进程信息。
在实际应用中,空闲缓存空间链表的表头中会携带第一个或最后一个缓存空间块的信息,基站可以直接根据表头选择第一个或最后一个缓存空间块,并在将该缓存空间块的信息从空闲缓存空间块链表中删除后,修改相应的表头信息。通过上述处理,原属于空闲缓存空间块链表的一个缓存空间块被转移到了占用缓存空间块链表中,同时,该缓存空间块中存储了上述接收到的数据,并添加了相应的进程信肩、ο在实际应用中,为了简化具体的选择流程,可以规定基站在当前的空闲缓存空间块链表中直接选择第一个或最后一个缓存空间块存储该数据,这样的选择策略使基站无需进行复杂的选择过程,提高了缓存空间块的选择效率,具体过程为基站选取空闲缓存空间块链表的表头,该表头指示空闲缓存空间块链表的第一个或最后一个节点在管理数组中的位置,此位置即为缓存空间块位置,基站在此位置上进行数据存储,同时,基站修改空闲缓存空间块链表的表头中的位置信息、列表内容以及占用缓存空间块链表的表头中的位置信息、列表内容,如图5所示。另外,需要指出的是,如果基站判断接收到的数据不是重传数据,但基站通过当前的占用缓存空间块链表确定发送数据的终端设备所对应的进程已经在一个缓存空间块中存储数据,即旧数据还没有译码成功,又收到新数据,这有可能是由于还没有将译码正确的数据对应的链表进行更新所致,那么此时,基站直接通过接收到的数据覆盖该缓存空间块中存储的数据,即用新数据将原来的旧数据覆盖。步骤S211、基站判断对存储的数据进行译码是否成功。如果译码成功,执行步骤S207 ;如果译码失败,执行步骤S209。需要进一步指出的是,上述的在缓存空间块链表中添加和删除缓存空间块的信息所依据的位置策略也可以不同。例如,无论添加还是删除都在空闲缓存空间块链表的头节点处进行,从而,空闲缓存空间块链表的表头只需要记录头节点的位置信息即可,发生添加时,只需要修改表头中所记录的头节点的位置信息为新添加的节点的位置信息,并在添加完成后,修改头节点的后续信息,和第二节点的前续信息,而发生删除时,同样只需要修改表头中所记录的头节点的位置信息为原第二节点的位置信息,并在删除完成后,修改头节点的前续信息。同理,添加和删除都在空闲缓存空间块链表的尾节点处进行的过程也是采取类似处理。在另一种场景下,如果添加在空闲缓存空间块链表的头节点处进行,而删除在空闲缓存空间块链表的尾节点处进行,那么,空闲缓存空间块链表的表头可以记录尾节点的位置信息,发生添加时,不需要修改表头中所记录的位置信息,并在添加完成后,修改头节点的后续信息,和第二节点的前续信息,而发生删除时,则需要修改表头中所记录的尾节点的位置信息为原倒数第二节点的位置信息,并在删除完成后,修改新的尾节点的前续信息。 同理,添加在空闲缓存空间块链表的尾节点处进行,而删除在空闲缓存空间块链表的头节点处进行的过程也是采取类似处理。在实际的应用中,具体应用上述的哪种方式并不会影响本发明的保护范围。与现有技术相比,本发明实施例具有以下优点通过应用本发明实施例的技术方案,将基站的缓存空间资源划分为多个缓存空间块,并通过缓存空间块链表对相应的缓存空间块进行管理,根据接收到的数据的类型在相应的缓存空间块中进行存储,从而,动态调整各进程所占用的缓存空间块,提高缓存空间资源的利用率和选择效率,提高系统的处理效率和吞吐量。为了实现本发明实施例的技术方案,本发明实施例还提供了一种基站,其结构示意图如图6所示,具体包括链表管理模块61,用于管理占用缓存空间块链表和空闲缓存空间块链表;接收模块62,用于接收终端设备发送的数据;判断模块63,用于判断接收模块62所接收到的数据是否为重传数据;查询模块64,用于在判断模块63判断数据是重传数据时,在链表管理模块61所管理的当前的占用缓存空间块链表中查询终端设备发送数据的进程所对应的缓存空间块;存储模块65,用于将接收模块62所接收到的数据与查询模块64所查询到的缓存空间块中已存储的数据合并存储。进一步的,该基站还包括选择模块66,用于在判断模块63判断数据不是重传数据,或在判断模块63判断数据是重传数据,但查询模块64在链表管理模块61所管理的当前的占用缓存空间块链表中没有查询到终端设备发送数据的进程所对应的缓存空间块时, 具体用于在所述链表管理模块61所管理的当前的空闲缓存空间块链表中,根据空闲缓存空间块链表的表头中所携带的缓存空间块的位置信息,选择所述空闲缓存空间块链表中的一个缓存空间块存储所述数据,具体的选择过程参见前述说明,在此不再重复说明。存储模块65,还用于将接收模块62所接收到的数据存储到选择模块66所选择的缓存空间块中。在实际的应用场景中,选择模块66,具体用于在链表管理模块61所管理的当前的空闲缓存空间块链表中选择第一个缓存空间块存储数据。进一步的,链表管理模块61,还用于在存储模块65将数据存储到选择模块66所选择的缓存空间块中之后,在空闲缓存空间块链表中删除被选择模块66选择的缓存空间块所对应的信息,并将被选择模块66 选择的缓存空间块所对应的信息添加到当前的占用缓存空间块链表中,为缓存空间块添加所存储数据所对应的终端设备信息和进程信息。另一方面,存储模块65,还用于在判断模块63判断数据不是重传数据,但查询模块64通过链表管理模块61所管理的当前的占用缓存空间块链表确定发送数据的终端设备所对应的进程已经在一个缓存空间块中存储数据时,通过接收模块62接收到的数据覆盖缓存空间块中存储的数据。另一方面,该基站还包括译码模块67,用于对存储模块65存储在缓存空间块中的数据进行译码;当译码模块67所译码的数据,是存储模块65在当前的空闲缓存空间块链表中的一个缓存空间块所存储时,如果译码模块67对数据译码成功,存储模块65删除数据,释放缓存空间块,如果译码模块67对数据译码失败,存储模块65继续在缓存空间块中保存数据;当译码模块67所译码的数据,是存储模块65在当前的占用缓存空间块链表中的一个缓存空间块所存储时,如果译码模块67对数据译码成功,存储模块65删除数据,释放缓存空间块,如果译码模块67对数据译码失败,判断模块63还需要进一步判断当前是否达到缓存空间块所对应的进程的最大重传次数,如果没有达到,存储模块65继续在缓存空间块中保存数据,如果已经达到,存储模块65删除数据,释放缓存空间块。相应的,链表管理模块61,在存储模块65释放缓存空间块时,具体用于在当前的占用缓存空间块链表中删除缓存空间块所对应的信息;将缓存空间块所对应的信息添加到当前的空闲缓存空间块链表中。需要指出的是,在实际应用中,链表管理模块61,具体用于将基站的缓存空间资源划分为同样大小的多个缓存空间块,其中,每个缓存空间块的大小为基站当前所对应的一个进程所能占用的最大缓存空间值;建立空闲缓存空间块链表和占用缓存空间块链表,将划分的各缓存空间块的信息添加到空闲缓存空间块链表和占用缓存空间块链表中。与现有技术相比,本发明实施例具有以下优点通过应用本发明实施例的技术方案,将基站的缓存空间资源划分为多个缓存空间块,并通过缓存空间块链表对相应的缓存空间块进行管理,根据接收到的数据的类型在相应的缓存空间块中进行存储,从而,动态调整各进程所占用的缓存空间块,提高缓存空间资源的利用率和选择效率,提高系统的处理效率和吞吐量。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明实施例所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明实施例的业务限制范围。
权利要求
1.一种多进程HARQ数据的缓存方法,其特征在于,包括当基站接收到终端设备发送的数据时,所述基站判断接收到的数据是否为重传数据;如果所述基站判断接收到的数据是重传数据,所述基站在当前的占用缓存空间块链表中查询所述终端设备发送所述数据的进程所对应的缓存空间块;所述基站将接收到的数据与查询到的缓存空间块中已存储的数据合并存储。
2.如权利要求1所述的方法,其特征在于,如果所述基站判断接收到的数据不是重传数据,或如果所述基站判断接收到的数据是重传数据,但所述基站在当前的占用缓存空间块链表中没有查询到所述终端设备发送所述数据的进程所对应的缓存空间块,所述方法还包括所述基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储所述数据。
3.如权利要求2所述的方法,其特征在于,所述基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储所述数据,具体为所述基站在当前的空闲缓存空间块链表中选择第一个缓存空间块存储所述数据;或,所述基站在当前的空闲缓存空间块链表中选择最后一个缓存空间块存储所述数据。
4.如权利要求3所述的方法,其特征在于,所述空闲缓存空间块链表的表头中携带第一个或最后一个缓存空间块的位置信息,所述基站根据所述表头中的位置信息,选择第一个或最后一个缓存空间块存储所述数据。
5.如权利要求2所述的方法,其特征在于,所述基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储所述数据的过程中,还包括所述基站在所述空闲缓存空间块链表中删除被选择的缓存空间块所对应的信息;所述基站将所述被选择的缓存空间块所对应的信息添加到当前的占用缓存空间块链表中,并为所述缓存空间块添加所存储数据所对应的终端设备信息和进程信息。
6.如权利要求2所述的方法,其特征在于,所述基站在当前的空闲缓存空间块链表中选择一个缓存空间块存储所述数据之后,还包括当所述基站对所述数据译码成功时,所述基站删除所述数据,释放所述缓存空间块;当所述基站对所述数据译码失败时,所述基站继续在所述缓存空间块中保存所述数据。
7.如权利要求1所述的方法,其特征在于,所述基站将接收到的数据与查询到的缓存空间块中已存储的数据合并存储之后,还包括当所述基站对所述数据译码成功时,所述基站删除所述数据,释放所述缓存空间块;当所述基站对所述数据译码失败时,所述基站判断当前是否达到所述缓存空间块所对应的进程的最大重传次数,如果没有达到,所述基站继续在所述缓存空间块中保存所述数据,如果已经达到,所述基站删除所述数据,释放所述缓存空间块。
8.如权利要求1所述的方法,其特征在于,如果所述基站判断接收到的数据不是重传数据,但所述基站通过当前的占用缓存空间块链表确定发送所述数据的终端设备所对应的进程已经在一个缓存空间块中存储数据,所述方法还包括所述基站通过接收到的所述数据覆盖所述缓存空间块中存储的数据。
9.如权利要求7所述的方法,其特征在于,所述基站通过接收到的所述数据覆盖所述缓存空间块中存储的数据之后,还包括当所述基站对所述数据译码成功时,所述基站删除所述数据,释放所述缓存空间块;当所述基站对所述数据译码失败时,所述基站判断当前是否达到所述缓存空间块所对应的进程的最大重传次数,如果没有达到,所述基站继续在所述缓存空间块中保存所述数据,如果已经达到,所述基站删除所述数据,释放所述缓存空间块。
10.如权利要求6、7或9所述的方法,其特征在于,所述基站释放所述缓存空间块,具体包括所述基站在当前的占用缓存空间块链表中删除所述缓存空间块所对应的信息;所述基站将所述缓存空间块所对应的信息添加到当前的空闲缓存空间块链表中。
11.如权利要求10所述的方法,其特征在于,所述基站将所述缓存空间块所对应的信息添加到当前的空闲缓存空间块链表中之后,还包括所述基站修改所述空闲缓存空间块链表的表头中所携带的缓存空间块的信息为释放的所述缓存空间块的位置信息。
12.如权利要求1至9中任意一项所述的方法,其特征在于,所述基站接收到所述终端设备发送的数据之前,还包括所述基站将自身的缓存空间资源划分为同样大小的多个缓存空间块,其中,每个缓存空间块的大小为所述基站当前所对应的一个进程所能占用的最大缓存空间值;所述基站建立空闲缓存空间块链表和占用缓存空间块链表,将划分的各缓存空间块的信息添加到空闲缓存空间块链表和占用缓存空间块链表中。
13.—种基站,其特征在于,包括链表管理模块,用于管理占用缓存空间块链表和空闲缓存空间块链表;接收模块,用于接收终端设备发送的数据;判断模块,用于判断所述接收模块所接收到的数据是否为重传数据;查询模块,用于在所述判断模块判断所述数据是重传数据时,在所述链表管理模块所管理的当前的占用缓存空间块链表中查询所述终端设备发送所述数据的进程所对应的缓存空间块;存储模块,用于将所述接收模块所接收到的数据与所述查询模块所查询到的缓存空间块中已存储的数据合并存储。
14.如权利要求13所述的基站,其特征在于,还包括选择模块,用于在所述判断模块判断所述数据不是重传数据,或,在所述判断模块判断所述数据是重传数据,但所述查询模块在所述链表管理模块所管理的当前的占用缓存空间块链表中没有查询到所述终端设备发送所述数据的进程所对应的缓存空间块时,在所述链表管理模块所管理的当前的空闲缓存空间块链表中选择一个缓存空间块;所述存储模块,还用于将所述接收模块所接收到的数据存储到所述选择模块所选择的缓存空间块中。
15.如权利要求14所述的基站,其特征在于,所述选择模块,具体用于在所述链表管理模块所管理的当前的空闲缓存空间块链表中,根据所述空闲缓存空间块链表的表头中所携带的缓存空间块的位置信息,选择所述空闲缓存空间块链表中的一个缓存空间块存储所述数据。
16.如权利要求14所述的基站,其特征在于,所述链表管理模块,还用于在所述存储模块将所述数据存储到所述选择模块所选择的缓存空间块中之后,在所述空闲缓存空间块链表中删除被所述选择模块选择的缓存空间块所对应的信息,并将所述被所述选择模块选择的缓存空间块所对应的信息添加到当前的占用缓存空间块链表中,为所述缓存空间块添加所存储数据所对应的终端设备信息和进程信息。
17.如权利要求13所述的基站,其特征在于,所述存储模块,还用于在所述判断模块判断所述数据不是重传数据,但所述查询模块通过所述链表管理模块所管理的当前的占用缓存空间块链表确定发送所述数据的终端设备所对应的进程已经在一个缓存空间块中存储数据时,通过所述接收模块接收到的所述数据覆盖所述缓存空间块中存储的数据。
18.如权利要求13至17中任意一项所述的基站,其特征在于,还包括译码模块,用于对所述存储模块存储在缓存空间块中的数据进行译码;当所述译码模块所译码的数据,是所述存储模块在当前的空闲缓存空间块链表中的一个缓存空间块所存储时,如果所述译码模块对所述数据译码成功,所述存储模块删除所述数据,释放所述缓存空间块,如果所述译码模块对所述数据译码失败,所述存储模块继续在所述缓存空间块中保存所述数据;当所述译码模块所译码的数据,是所述存储模块在当前的占用缓存空间块链表中的一个缓存空间块所存储时,如果所述译码模块对所述数据译码成功,所述存储模块删除所述数据,释放所述缓存空间块,如果所述译码模块对所述数据译码失败,所述判断模块判断当前是否达到所述缓存空间块所对应的进程的最大重传次数,如果没有达到,所述存储模块继续在所述缓存空间块中保存所述数据,如果已经达到,所述存储模块删除所述数据,释放所述缓存空间块。
19.如权利要求18所述的基站,其特征在于,所述链表管理模块,在所述存储模块释放所述缓存空间块时,具体用于在当前的占用缓存空间块链表中删除所述缓存空间块所对应的信息;将所述缓存空间块所对应的信息添加到当前的空闲缓存空间块链表中。
20.如权利要求13所述的基站,其特征在于,所述链表管理模块,具体用于将所述基站的缓存空间资源划分为同样大小的多个缓存空间块,其中,每个缓存空间块的大小为所述基站当前所对应的一个进程所能占用的最大缓存空间值;建立空闲缓存空间块链表和占用缓存空间块链表,将划分的各缓存空间块的信息添加到空闲缓存空间块链表和占用缓存空间块链表中。
全文摘要
本发明实施例公开了一种多进程HARQ数据的缓存方法和设备,通过应用本发明实施例的技术方案,将基站的缓存空间资源划分为多个缓存空间块,并通过缓存空间块链表对相应的缓存空间块进行管理,根据接收到的数据的类型在相应的缓存空间块中进行存储,从而,动态调整各进程所占用的缓存空间块,提高缓存空间资源的利用率和选择效率,提高系统的处理效率和吞吐量。
文档编号G06F12/08GK102479159SQ201010567228
公开日2012年5月30日 申请日期2010年11月25日 优先权日2010年11月25日
发明者倪立华, 李燕 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1