CN111290875B - Harq数据存储管理方法、装置和harq数据缓存器 - Google Patents

Harq数据存储管理方法、装置和harq数据缓存器 Download PDF

Info

Publication number
CN111290875B
CN111290875B CN201811504209.6A CN201811504209A CN111290875B CN 111290875 B CN111290875 B CN 111290875B CN 201811504209 A CN201811504209 A CN 201811504209A CN 111290875 B CN111290875 B CN 111290875B
Authority
CN
China
Prior art keywords
data
harq
write
cache line
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811504209.6A
Other languages
English (en)
Other versions
CN111290875A (zh
Inventor
刘星
姜燕
曾献君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201811504209.6A priority Critical patent/CN111290875B/zh
Priority to EP19895451.3A priority patent/EP3896881B1/en
Priority to PCT/CN2019/112553 priority patent/WO2020119252A1/zh
Publication of CN111290875A publication Critical patent/CN111290875A/zh
Application granted granted Critical
Publication of CN111290875B publication Critical patent/CN111290875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种HARQ数据存储管理方法、装置和HARQ数据缓存器,所述方法包括:在基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;在基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。

Description

HARQ数据存储管理方法、装置和HARQ数据缓存器
技术领域
本发明实施例涉及但不限于混合自动重传请求(Hybrid Automatic RepeatRequest,HARQ)数据存储技术,尤其涉及一种HARQ数据存储管理方法、装置和HARQ数据缓存器。
背景技术
在基于HARQ技术进行数据重传时,需要大量存储HARQ数据;当需要存储的HARQ数据的数据量较大时,相关技术中,可以采用HARQ数据缓存器对HARQ数据进行缓存;然而,在上述采用HARQ数据缓存器对HARQ数据进行缓存的方案中,循环冗余校验(CyclicRedundancy Check,CRC)正确的数据也被输出到HARQ数据缓存器中,这样,会降低HARQ数据缓存器的利用率,并增加HARQ数据缓存器的功耗。
发明内容
本发明实施例提供了一种HARQ数据存储管理方法、装置和HARQ数据缓存器,能够提升HARQ数据缓存器的利用率,并降低HARQ数据缓存器的功耗。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种HARQ数据存储管理方法,应用于HARQ数据缓存器中,所述方法包括:
在基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;
在基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。
本发明实施例还提供了一种HARQ数据存储管理装置,所述装置位于HARQ数据缓存器中,所述装置包括接收单元和处理单元,其中,
接收单元,用于在确定基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;
处理单元,用于在确定基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。
本发明实施例还提供了一种HARQ数据缓存器,包括上述任意一种HARQ数据存储管理装置。
本发明实施例提供的一种HARQ数据存储管理方法、装置和HARQ数据缓存器中,在基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;在基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。如此,HARQ数据缓存器每次接收的数据均为译码错误的HARQ数据,并不包括译码正确的HARQ数据,进而,在HARQ数据缓存器只针对译码错误的HARQ数据进行存储时,可以降低HARQ数据缓存器的功耗,并提升HARQ数据缓存器的利用率。
附图说明
图1为相关技术中HARQ的进程示意图;
图2A为相关技术中HARQ数据的一种存储管理方案的示意图;
图2B为相关技术中HARQ数据的另一种存储管理方案的示意图;
图3为实现本发明实施例的HARQ存储管理方案的一个系统架构的示意图;
图4为本发明实施例的HARQ数据存储管理方法的流程图;
图5为本发明实施例的第一种HARQ数据缓存器中单个写通道的内部结构示意图;
图6为本发明实施例的第一种HARQ数据缓存器中单个读通道的内部结构示意图;
图7为本发明实施例的第二种HARQ数据缓存器中单个写通道的内部结构示意图;
图8为本发明实施例的第二种HARQ数据缓存器中单个读通道的内部结构示意图;
图9为本发明实施例的HARQ数据存储管理装置的组成结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相关技术中,HARQ的基本原理包括:1、在接收端使用前向纠错(Forward ErrorCorrection,FEC)技术纠正所有错误中能够纠正的那一部分;2、通过错误检测判断不能纠正错误的数据包;3、丢弃不能纠错的数据包,向发射端请求重新发送相同的数据包。
在3G、4G和5G无线通信系统中均可以使用HARQ技术,HARQ重传的具体时间,可以由同步HARQ协议或异步HARQ协议决定;图1为相关技术中HARQ的进程示意图,图1中,数字0至3分别表示不同的进程号;参照图1,对于同步HARQ协议,重传在预先定义好的时间进行,接收端不需要被告知重传的进程;对于异步HARQ协议,重传在上一次传输之后的任何可用时间上进行,接收端需要被告知具体的进程号。
HARQ的关键词是存储、请求重传和合并解调;对于HARQ技术,接收方在解码失败的情况下,需要保存HARQ数据,并要求发送方重传数据,接收方将重传的数据和之前保存的HARQ数据进行合并后再解码,这样就产生了一定的合并增益,可以减少重传次数,进而减少了时延;而传统的自动重传请求(Automatic Repeat-reQuest,ARQ)技术简单地抛弃错误的数据,不做存储,也就不存在合并的过程,因而没有分集增益,往往需要过多地重传、过长时间地等待。也就是说,HARQ技术可以高效地补偿由于采用链路适配所带来的误码,提高了数据传输速率,减小了数据传输时延。
但是,HARQ技术需要大量存储HARQ数据,并且管理HARQ重传;以长期演进(LongTerm Evolution,LTE)为例,假设HARQ数据位宽为8bit,整个通信系统要支持大量用户设备(User Equipment,UE),每个UE有8个进程,每个UE每个进程每次读入以及输出的HARQ数量是均是译码结果的24倍(Turbo译码码率1/3)。
图2A为相关技术中HARQ数据的一种存储管理方案的示意图,如图2A所示,HARQ运算单元将HARQ数据直接存入HARQ存储器,然后在每一次重传时直接从HARQ存储器读取上一次输出的HARQ数据;图2A所示的存储管理方案设计地比较简单,对于流量小的场景下是有效的,例如在3G或4G系统,HARQ存储器容量需求很小,流量也很小,可以使用片上静态随机存取存储器(Static Random-Access Memory,SRAM)实现,即,在流量小的场景下,图2A所示的存储管理方案,从性能、功耗上面都是一个比较合适的方案。
但是随着通信协议的演进和通信系统容量的增加,如在Pre5G/5G系统中,通信系统容量大幅增加,需要缓存的HARQ数据量也大幅增加,那么HARQ存储器的容量也要急剧增加,如果还采用图2A所示的存储管理方案,那么需要付出很大的SRAM的面积代价。因此,只能使用片外存储器方案进行HARQ数据存储,例如,可以使用双倍速率同步动态随机存储器(DDR SDRAM)存储HARQ数据;但此时HARQ数据会占据相当大的DDR带宽,而且一般通信系统中,DDR都是采用共享存储方式,导致其他程序访问DDR的带宽受限。另外,这样也会导致通信系统功耗急剧增加,导致此方案经济性非常差。
针对图2A所示的存储管理方案的问题,提出了分层存储方案;下面通过附图对该分层存储方案进行说明;图2B为相关技术中HARQ数据的另一种存储管理方案的示意图,如图2B所示,HARQ运算单元接收到编码块的新数据时,将该新数据写入HARQ数据缓存器(Cache)和信道解码器;HARQ数据缓存器将新数据写入HARQ数据缓存器的数据存储器或者写入外部的HARQ数据存储器中;HARQ运算单元接收到编码块的重传数据时,通过HARQ数据缓存器从HARQ数据缓存器的数据存储器或者外部的HARQ数据存储器中,获取该重传数据对应的先前数据,将重传数据和先前数据进行合并,将合并后的数据写入HARQ数据缓存器和信道解码器;HARQ数据缓存器将合并后的数据写入HARQ数据缓存器的数据存储器或者外部的HARQ数据存储器中。
在实现图2B所示的存储管理方案时,借鉴了计算机系统架构里面的缓存方案,下面从写操作和读操作两方面说明图2B所示的存储管理方案的具体实现方式。
写操作:
在首传或重传时,HARQ运算单元将HARQ数据按照前一次重传的输出地址写入HARQ数据缓存器中。
如果写命中,则直接写入HARQ数据缓存器中对应的缓存行(Cache Line),并根据CRC结果对Cache Line进行标注(该码块译码CRC结果正确标注为正确;错误则标记为错误);这里,并不是直接记录CRC结果,而是先记录CRC指针,然后等译码结果输出后再将CRC结果写入指针地址。
如果写缺失,则按照一定规则重新给HARQ数据分配一个Cache Line。
如果新分配Cache Line没有存储数据,则将HARQ数据写入该Cache Line并标注CRC结果。
如果新分配Cache Line存储有数据,但是Cache Line中的数据的CRC结果正确,则将HARQ数据写入该Cache Line并标注CRC结果。
如果新分配Cache Line存储有数据,但是Cache Line中的数据的CRC结果错误,则按照参数配置,选择是否执行替换操作。
在确定执行替换操作时,将将原有数据写出至HARQ数据存储器如DDR中,然后将本次写数据写入该Cache Line。在确定不执行替换操作时,直接将需要写的数据写出至HARQ数据存储器如DDR中。
读操作:
重传时,HARQ运算单元按照前一次重传的输出地址从HARQ数据缓存器中读取HARQ数据。
如果读命中,则直接读出HARQ数据缓存器中对应的Cache Line的数据。
如果读缺失,则按照一定规则重新给HARQ数据分配一个Cache Line。
如果新分配Cache Line没有存储数据,则将从HARQ数据存储器如DDR中读取的HARQ数据写入该Cache Line,然后再读取Cache Line中的数据并送给HARQ运算单元。
如果新分配Cache Line存储有数据,但是Cache Line中的数据的CRC结果正确,则将从HARQ数据存储器如DDR中读取的HARQ数据写入该Cache Line,然后再读取Cache Line中的数据并送给HARQ运算单元。
如果新分配Cache Line存储有数据,但是Cache Line中的数据的CRC结果错误,则按照参数配置,选择是否执行替换操作。
在确定执行替换操作时,将Cache Line中的原有数据写出至HARQ数据存储器如DDR中,然后将需要读取的数据写入该Cache Line,然后再读取Cache Line中的数据并送给HARQ运算单元。在确定不执行替换操作时,直接将需要读取的数据从HARQ数据存储器如DDR中读取出来,并送给HARQ运算单元。
可以看出,图2B所示的存储管理方案还存在以下问题:
1、此方案中CRC结果正确的数据也会被输出到HARQ数据缓存器中,虽然在读写时会覆盖CRC结果正确的数据,但是也会增加很多不必要的功耗。
2、在读缺失或写缺失之后,会重新分配Cache Line,可以基于业界常用的“随机”和最近最少使用替换算法(Least Recently Used,LRU)来重新分配,但是无论如何分配,该方案分配之前都没有考虑当前Cache Line中数据的状态。因此这样可能会随机分配到CRC结果错误的数据的Cache Line,而CRC结果错误的数据在不久的未来是一定要读取的数据;无论是否执行替换操作,总会有数据替换到外部HARQ数据存储器,而此时,存在Cache Line里面没有数据或者Cache Line中有CRC结果正确的数据的请求,这样就增加了不必要的功耗并且占用外部HARQ数据存储器的带宽。
3、写替换操作不合理。因为CRC结果错误的数据是肯定需要读取的,而且越早输出的数据,越有可能被读取,因此将后面写出到HARQ数据缓存器的数据替换已经输出到HARQ数据缓存器的数据时,实现较为复杂,会造成额外的对外部HARQ数据存储器的访问。
4、读缺失产生后,要将数据写入HARQ数据缓存器,然后再读取,浪费了不必要的功耗,并且占用HARQ数据缓存器的Cache Line,降低Cache Line的利用率。
5、无数据失效操作。一个UE会一直占据分配的Cache Line;如果某个UE最后一次重传译码也没有正确,那么该UE输出的HARQ空间就会一直被占据,直到被替换出去或者重新分配给其他UE使用,这样也会导致Cache Line利用率降低,增加不必要的功耗。
另外,根据分析,HARQ数据有以下特点:
1、译码正确码块的HARQ数据不会被读取。
2、译码错误码块的HARQ数据都必须要读取,并且只会读取一次。
3、HARQ数据写出至存储器后,不会马上被读取,要间隔很长一段时间才会再读取,例如在LTE系统中,需要间隔8个TTI即8ms才被读取;而且,最先写出至存储器的HARQ数据,最先被读取,即,不具有数据局部性原理,而数据局部性原理是计算机系统缓存数据的特点。
4、如果一个HARQ数据输出后,超过一定时间没有被读取,则可以认为通信系统出现异常或者出现UE丢失,该数据永远不可能被读取。
针对上述存储管理方案存在的问题,并根据上述HARQ数据的特点,本发明实施例提出了一种HARQ数据存储方案;图3为实现本发明实施例的HARQ存储管理方案的一个系统架构的示意图,本发明通过读写仲裁机制,可以同时支持多个HARQ运算单元;图3中,HARQ运算单元1、HARQ运算单元2和HARQ运算单元3表示3个不同的HARQ运算单元;HARQ运算单元1、HARQ运算单元2和HARQ运算单元3可以共享同一个HARQ数据缓存器,扩展了适用场景;HARQ数据缓存器可以连接HARQ数据存储器。
需要说明的是,图3仅仅是示例性地说明了HARQ运算单元的个数,本发明实施例不限定HARQ运算单元的个数。
基于上述记载的内容,提出以下各实施例。
第一实施例
本发明第一实施例提出了一种HARQ数据存储管理方法,可以应用于HARQ数据缓存器中。
作为一种实现方式,HARQ数据缓存器可以包括多个用于存储HARQ数据的缓存行(Cache Line),可以借鉴计算机系统中缓存(Cache)的寻址方式,但是本发明实施例并不限定缓存器中Cache Line的大小以及路(way)的数量;way越多,每个地址能写入的CacheLine就越多,Cache缓存效率越高,实现难度越大;Cache Line越小,空间利用率越高,存储气泡越少,但是实现难度越大,对外部存储器交互的总线利用率越低。
每个way中包含若干个Cache Line,在Cache Line,读写地址最低的若干bit为补偿(offset),表示Cache Line内部地址偏移;例如,Cache Line大小为16byte,则读写地址最低的4bit是offset;读写地址除掉offset后的最低的若干bit是索引(index),缓存器可以通过index对每个way的Cache Line进行寻址,因此每一个读写地址在每一个way中通过index都可以对应到固定的一个Cache Line。
本发明实施例中,每个Cache Line除了数据存储外,还设有若干标志位,下面分别进行说明:
1)Valid,此标志表示该Cache Line中数据是否有效,在一个示例中,当Valid置1时,说明数据有效,当Valid置0时,说明数据失效。
2)Clean,如果数据有效,此标志表示该Cache Line中数据在外部存储器(如上述HARQ数据存储器)中是否有备份,此标志是标准Cache都有的标志。但是本发明实施例中次标志的使用方法与标准Cache不同;在一个示例中,当Clean置1时,说明数据有在外部存储器有备份,当Clean置0时,说明数据有在外部存储器无备份。
3)Tag,如果数据有效,此标志为Cache Line内数据的地址高位(除去index和offset外的剩余位)。
4)Time,此标志表示数据写入时刻,此标志是本发明实施例设置的特有标志。
图4为本发明实施例的HARQ数据存储管理方法的流程图,如图4所示,该流程可以包括:
步骤401:在基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据。
结合图3,在实际实施时,HARQ运算单元在处理每个进程任务时,可以根据配置的HARQ读取地址从HARQ数据缓存器或HARQ数据存储器中读取HARQ数据(对应读操作),也可以根据配置的HARQ输出地址,向HARQ数据缓存器或HARQ数据存储器输出数据(对应写操作)。
作为一种实现方式,在基于HARQ进行首传或重传时,HARQ运算单元可以向HARQ数据缓存器发送操作控制信息;其中,在基于HARQ进行首传时,HARQ运算单元向HARQ数据缓存器发送的操作控制信息仅包括写命令和写数据,不包括读命令;也就是说,在基于HARQ进行首传时,HARQ运算单元只输出HARQ数据,不读取HARQ数据。
基于HARQ进行的重传可以包括非最后一次重传和最后一次重传,在基于HARQ进行非最后一次重传时,HARQ运算单元向HARQ数据缓存器发送的操作控制信息可以包括写命令和写数据,还可以包括读命令;也就是说,在基于HARQ进行非最后一次重传时,HARQ运算单元既读取HARQ数据,也输出HARQ数据。
作为一种实现方式,在基于HARQ进行最后一次重传时,HARQ运算单元向HARQ数据缓存器发送的操作控制信息仅包括读命令,不包括写命令和写数据;也就是说,在基于HARQ进行最后一次重传时,HARQ运算单元只读取HARQ数据,不输出HARQ数据。
本发明实施例中,在基于HARQ进行首传或非最后一次重传时,HARQ运算单元可以判断码块的译码结果,仅仅将译码错误的HARQ数据作为写数据,发送至HARQ数据缓存器,并不将译码正确的HARQ数据发送至HARQ数据缓存器;这样,与相关技术中HARQ数据的存储管理方案相比,可以降低HARQ数据缓存器的功耗,并提升HARQ数据缓存器的利用率。
步骤402:在基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。
下面示例性地说明本发明实施例的HARQ数据的写策略。
HARQ运算单元需要输出HARQ数据时,向HARQ数据缓存器发送写命令和写数据;在实际实现时,在基于HARQ进行首传或非最后一次重传时,HARQ运算单元向HARQ数据缓存器发送写命令和写数据,这里,每个写命令对应一个Cache Line的数据量。
进一步地,如果写命令配置为写直通(即表示需要将写数据存储至外部存储器)时,可以在将写数据写入HARQ数据缓存器的同时,将写数据写入至外部存储器;这样,可以提前将写数据备份至外部存储器,可以充分外部存储器的空闲带宽,避免瞬时大流量访问。本发明实施例中,外部存储器可以是上述HARQ数据存储器,例如,外部存储器可以是DDRSDRAM。
实际应用中,可以按比例配置写命令为写直通,这样,可以利用闲时带宽,在HARQ缓存器存储不满的情况下,缓慢将HARQ数据备份到外部存储器,避免HARQ缓存器存储满后瞬时大流量访问外部存储器。
对于根据所述写命令存储所述写数据的实现方式,示例性地,可以在确定满足第一设定条件时,将所述写数据输出至外部存储器;所述第一设定条件为:根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效时,且所述HARQ数据缓存器的各个Cache Line的存储数据在所述外部存储器均无备份。
在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个Cache Line中。
进一步地,在确定不满足第一设定条件时,且所述写命令表示需要将所述写数据存储至所述外部存储器时,将所述写数据输出至所述外部存储器。
作为一种实现方式,在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个Cache Line中的实现方式可以包括:
根据所述写命令确定写命中时,将所述写数据写入所述写命令对应的Cache Line中;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的至少一个Cache Line的存储数据标记为失效时,将所述写数据写入存储标记为失效的数据的任意一个Cache Line中,并将所述写数据标记为有效;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效,且所述HARQ数据缓存器的至少一个Cache Line的存储数据在所述外部存储器有备份时,在存储数据在所述外部存储器有备份的各个Cache Line,选取一个CacheLine;将所述写数据写入所选取的Cache Line中,并将所述写数据标记为有效。
在具体实施时,可以根据写命令确定写地址,根据写地址中的index将每个way中对应Cache Line的标志全部读出来,如果其中某个Cache Line的Tag与本次写地址的高位相等,并且Valid标志表示数据有效,则表示写命中,此时,需要将写数据写入对应的CacheLine,并将写入时刻写入Cache Line的Time标志;如果写命令配置为写直通,还需要将写数据写出到外部存储器,同时将Cache Line的Clean标志置为1,表示该数据在外部HARQ数据存储器有备份,否则,写命令未配置为写直通时,将Cache Line的Clean标志置为0。每次写操作最多只会命中1个Cache Line。
如果没有写命中,则为写缺失。在写缺失时,先判断每个way中对应index的CacheLine是否有标记为失效的数据(可以通过Valid标志判断),如果有,则从存储标记为失效的数据的Cache Line中,选取一个Cache Line;将写数据写入选取的Cache Line中,将写入时刻写入Cache Line的Time标志,将地址高位写入Tag标志,并且将Valid标志置为1;如果写命令配置为写直通,还需要将写数据写出到外部存储器,同时将Cache Line的Clean标志置为1,表示该数据在外部HARQ数据存储器有备份,否则,写命令未配置为写直通时,将CacheLine的Clean标志置为0。
如果每个way中对应index的Cache Line的存储数据均标记为有效,则判断各个Cache Line中的存储数据在所述外部存储器有备份(可以通过Clean标志判断),如果有,在存储数据在外部存储器有备份的各个Cache Line,选取一个Cache Line;将写数据写入所选取的Cache Line中,将写入时刻写入Cache Line的Time标志,将地址高位写入Tag标志,并且将Valid标志置为1;如果写命令配置为写直通,还需要将写数据写出到外部存储器,同时将Cache Line的Clean标志置为1,表示该数据在外部HARQ数据存储器有备份,否则,写命令未配置为写直通时,将Cache Line的Clean标志置为0。
如果每个way中对应index的Cache Line的存储数据均标记为有效,且各个CacheLine中的存储数据在所述外部存储器均没有备份,则直接将写数据写出到外部存储器,不进行任何写替换操作。因为Cache中的数据是之前写入的HARQ数据,比这次写的数据更先被读到,因此需要优先保证之前写入的数据留在Cache中,这是本发明实施例的HARQ数据缓存器与计算机Cache的一个根本差别,计算机系统Cache为最近写入的数据最有可能被读到,但是本发明实施例中,HARQ数据缓存器中,最先存入的HARQ数据最有可能被读到,因此仅借鉴计算机系统Cache的寻址过程,而不借鉴相关技术中HARQ数据的替换策略以及其他操作。
进一步地,本发明实施例中,还可以针对HARQ数据缓存器存储的数据进行老化操作,当数据在HARQ缓存中存储时间过长时,就将其无效掉,以释放CacheLine;也就是说,确定所述HARQ数据缓存器中存在需要老化的Cache Line时,将所述需要老化的Cache Line中的存储数据标记为失效,这里,标记为失效的数据是需要释放的数据;所述需要老化的Cache Line为满足以下条件的Cache Line:数据存储时长超过老化门限。实际应用中,老化门限可以根据实际应用场景进行设置。
在实际实施时,可以在针对HARQ数据缓存器每次读写操作时,都判断每个way对应Cache Line的Time与当前时刻的时间差,如果时间差超过配置的老化门限,并且对应的Cache Line的存储数据的Valid标志为1,则表示Cache Line的存储数据已经长时间没有读取,则认为Cache Line的存储数据永远不会再读取,此时,可以将Cache Line的存储数据的Valid标志置为0,释放Cache Line的空间,以避免空间浪费。
下面示例性地说明本发明实施例的HARQ数据的读策略。
在基于HARQ进行重传时,可以根据所述读命令读取HARQ数据。
作为一种实现方式,在基于HARQ进行非最后一次重传时,HARQ运算单元需要先读取HARQ数据,再输出HARQ数据;也就是说,对于HARQ数据缓存器,需要在根据所述读命令读取HARQ数据之后,根据所述写命令存储所述写数据。
对于根据根据所述读命令读取HARQ数据的实现方式,示例性地,可以在根据读命令确定读命中时,从所述读命令对应的Cache Line中,读取出HARQ数据;将所述读命令对应的Cache Line中的存储数据标记为失效,或释放所述读命令对应的Cache Line中的存储数据。也就是说,本发明实施例可以根据HARQ数据只会被读取一次的特点,进行读失效操作,即在读命中后,就将CacheLine释放。
在具体实施时,可以根据读命令确定读地址,根据读地址中index,将每个way中对应index的Cache Line的标志都读出来,如果其中某个Cache Line的Tag与本次写地址的高位相等,并且Valid标志表示数据有效,则表示读命中,将对应的Cache Line的存储数据读走,并将对应的Cache Line的存储数据的Valid标志置为0,表示这个数据已经失效,也可以释放对应的Cache Line。读失效操作也是本发明实施例的HARQ数据缓存器与计算机Cache的一个本质区别,HARQ数据只需要被读取一次,而计算机系统数据是最近被读取的数据最有可能会被再次读取,所以本发明实施例中,采用读失效策略以尽快释放空间,可以避免无效数据占用存储空间,造成空间浪费。
作为一种实现方式,可以在根据所述读命令确定读缺失时,根据所述读命令从外部存储器中读取出HARQ数据;示例性地,可以在根据所述读命令从外部存储器中读取出HARQ数据后,直接将所述HARQ数据输出,不需要在HARQ数据缓存器进行读取的HARQ数据进行数据替换。
在具体实施时,如果没有读命中,则为读缺失,在读缺失时,直接从外部存储器读取相应的HARQ数据,将读取的数据输出给HARQ运算单元,而不再将读取的数据替换缓存器中存储的数据,这是因为HARQ数据只会被读取一次,替换缓存器内部存储数据会造成空间浪费。
本发明实施例可以应用于高速高带宽大容量HARQ数据缓存器,本发明实施例充分考虑HARQ数据的特点,同时结合计算机系统Cache的优点,最大程度使HARQ数据在Cache缓存器中循环,减少对外部存储器的读写,降低对外部存储区带宽的占用,降低功耗;并且,本发明实施例达到了进一步减小HARQ数据读写带宽的效果,提升了HARQ数据缓存的利用率,节省了对外部存储器的读写带宽,节省了功耗和面积,提高了经济效益。
第二实施例
为了能够更加体现本发明的目的,在本发明第一实施例的基础上,进行进一步的举例说明。
本发明第二实施例中,可以通过图5和图6示例性地说明一种HARQ数据缓存器的结构;图5为本发明实施例的第一种HARQ数据缓存器中单个写通道的内部结构示意图,图6为本发明实施例的第一种HARQ数据缓存器中单个读通道的内部结构示意图;图5和图6中,用不同字母标记的方框表示不同的功能模块,下面分别对各个字母标记的功能模块进行说明。
A模块:用于接收并解析HARQ运算单元发送的读命令,每个HARQ运算单元对应一个A模块。
C模块:用于对读取外部HARQ数据存储器和内部HARQ数据缓存器的命令进行保序处理,每个HARQ运算单元对应一个C模块。
F模块:根据C模块的输出,选择输出外部HARQ数据存储器读出的数据还是内部HARQ数据缓存器读出的数据,每个HARQ运算单元对应一个F模块。
G模块:用于接收并解析HARQ运算单元发送过来的写命令和写数据,每个HARQ运算单元对应一个G模块。
K模块:用于接收并缓存返回给HARQ运算单元的写返回命令,每个HARQ运算单元对应一个K模块。
M模块:用于仲裁多个A模块或多个G模块模块发出来的读写命令,采用的仲裁方法包括但不限定于优先级仲裁或者Round-Bobin仲裁等公平仲裁方式,M模块还用于将仲裁后的读写命令根据本发明实施例的读写策略执行相应的操作。
Q模块:根据M模块输出的读命令和写命令,按顺序完成内部HARQ数据缓存器数据的读写。
U模块:接收仲裁和TAG判断后的读命令,如果没有读命中,可以通过外部存储器读接口,读取外部的HARQ数据存储器,并将返回的数据依次返回给对应的模块F;另外,接收仲裁和TAG判断后的写命令,如果没有写命中或者在配置为写直通时,可以将数据写到外部的HARQ数据存储器。
其中,M、Q和U模块为读写共享模块,HARQ数据缓存器中各自有一个M、Q和U模块;其余模块为单通道独立模块,每个读通道或写通道都有一个对应的模块(A、C、F、G和K)。
参照图5,HARQ数据缓存器的写流程可以包括如下步骤:
步骤51:HARQ运算单元根据配置的HARQ写地址向其对应的G模块发送写命令和写数据。
步骤52:G模块接收到写命令后,在K模块未存储满并且U模块就绪的情况下将写命令和写数据发送给M模块进行仲裁和相应的操作。
步骤53:M模块根据一定仲裁机制(不限于Round-Robin、优先级仲裁等仲裁机制)将多个模块G的仲裁请求进行仲裁;如果仲裁G模块的请求得到通过,则将写返回命令发送给对应的K模块,K模块接收写返回命令并发送给对应的HARQ运算单元。同时M模块根据写地址的index将每个way中对应index的Cache Line的标志读出来,进行TAG判断;M模块的TAG判断可以串行处理也可以并行处理,具体如步骤54至步骤58。
步骤54:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志是1,并且其Time标志与当前时刻(当前时刻可以通过计数简单得到)相差超过配置的老化门限,则认为该Cache Line的数据已经老化,需要将其对应的Valid置为0,释放该Cache Line存储空间。
步骤55:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1并且Tag标志与本次写地址的高位相等,则表示写命中,将写命令写数据发送给Q模块,同时将写入时刻更新到该Cache Line的Time标志。如果写命令配置为写直通,则还需要将写命令和写数据发送给U模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。如果没有写命中,则为写缺失,写缺失操作可以参见步骤56至步骤58。
步骤56:在写缺失时,依次串行判断每个Cache Line的Valid标志,如果一个CacheLine的Valid标志为0,则将写命令和写数据发送给Q模块,同时将写入时刻更新到该CacheLine的Time标志,将写地址高位写入Tag标志,最后对应Valid标志更新为1。如果写命令配置为写直通,则还需要将写命令和写数据发送给U模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。
步骤57:如果所有Cache Line的Valid标志都为1,则依次串行判断每一个CacheLine的Clean标志,如果一个Cache Line的Clean标志为1,则将写命令和写数据发送给Q模块,同时将写入时刻更新到该Cache Line的Time标志,将写地址高位写入Tag标志。如果写命令配置为写直通,则还需要将写命令和写数据发送给U模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。
步骤58:如果所有Cache Line的Valid标志都为1,并且所有Cache Line的Clean标志都为0,则直接将写命令和写数据发送给对应U模块。
步骤59:U模块接收M模块的写命令和写数据,将写数据发送给外部存储器。
步骤510:Q模块根据M模块发送的写命令和写数据,按照写命令写入HARQ数据缓存中,完成此步骤后M模块才可以接受下一个命令请求。
参照图6,HARQ数据缓存器的读流程可以包括如下步骤:
步骤61:HARQ运算单元根据配置的HARQ读取地址向其对应的A模块发送读命令。
步骤62:A模块接收到读命令后,在C模块未存储满且U模块就绪的情况下将命令发送给M模块申请仲裁。
步骤63:M模块根据一定仲裁机制(不限于Round-Robin、优先级仲裁等仲裁机制)将多个A模块的仲裁请求进行仲裁。如果仲裁A模块的请求得到通过,则根据该地址的index将每个way中对应index的Cache Line的标志读出来进行TAG判断。读操作TAG判断可以串行处理也可以并行处理,具体如步骤64至步骤66。
步骤64:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1,并且其Time标志与当前时刻(当前时刻可以通过计数简单得到)相差超过配置的老化门限,则认为该Cache Line的数据已经老化。需要将其对应的Valid标志置为0,释放该CacheLine存储空间。
步骤65:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1并且Tag标志与本次写地址的高位相等,则表示读命中,将该Cache Line标志中的Valid置为0,释放该Cache Line。同时发送读命令给Q模块,表示从内部HARQ数据缓存器读取HARQ数据;同时将对应读排序标志发送给对应的C模块。如果没有读命中,则为读缺失,读缺失操作参见步骤66。
步骤66:在读缺失时,直接给U模块发送读命令,表示从外部存储器读取HARQ数据,同时将对应读排序标志发送给对应的C模块。
步骤67:U模块接收模块M发送的读命令,将数据从外部存储器读回来,按照发送顺序发送给对应的F模块。
步骤68:Q模块根据M模块发送过来的读命令,将数据从内部HARQ数据缓存中读取出来发送给对应的F模块。
步骤69:C模块中如果有读排序标志,则将标志依次读出来,发送给对应的F模块。
步骤610:F模块根据C模块发送过来的标志,选择从Q模块还是U模块接收数据发送出去给对应的HARQ运算单元。
第三实施例
为了能够更加体现本发明的目的,在本发明前述实施例的基础上,进行进一步的举例说明。
可以看出,对于图5和图6所示的HARQ数据缓存器的结构,需要将多个HARQ运算单元的TAG判断和Cache数据读写串行处理,必须前一个命令完全完成Cache数据读写后,后一个命令才能进行仲裁;这样设计简单,但是流水周期过长,数据带宽难以进一步提高。
针对上述问题,本发明第三实施例中,可以在图5和图6的基础上,提出一种HARQ数据缓存器的扩展结构,可以通过增加各种保序队列模块和缓存模块,将TAG判断和Cache数据的读写操作流水处理,前一个命令在进行Cache数据读写的同时,后一个命令可以进行仲裁和TAG判断。这样缩短流水周期,增大处理带宽,同时也更利于时序收敛,以支持更大的存储器容量。
另外,当多个HARQ运算单元同时进行读写操作时,读写命令交叉处理,并且读写命中和读写缺失随机出现。该架构能够尽可能的避免不同HARQ运算单元命令间的相互阻塞,保证处理带宽。
下面通过图7和图8示例性地说明数据缓存器的扩展结构,图7为本发明实施例的第二种HARQ数据缓存器中单个写通道的内部结构示意图,图8为本发明实施例的第二种HARQ数据缓存器中单个读通道的内部结构示意图;图7和图8中,用不同字母标记的方框表示不同的功能模块,下面分别对各个字母标记的功能模块进行说明。
A模块:用于接收解析HARQ运算单元发送过来的读命令,每个HARQ运算单元对应一个A模块。
B模块:用于接收缓存读外部存储器的读命令,每个HARQ运算单元对应一个B模块。
C模块:用于对读外部存储器和读内部HARQ数据缓存器的命令进行保序处理,每个HARQ运算单元对应一个C模块。
D模块:用于接收缓存读内部HARQ数据缓存器的读命令,每个HARQ运算单元对应一个D模块。
E模块:用于缓存从内部HARQ数据缓存器读出来的数据,每个HARQ运算单元对应一个E模块。
F模块:根据C模块的输出来选择输出从外部存储器读出的数据还是读内部HARQ数据缓存器读出的数据,每个HARQ运算单元对应一个F模块。
G模块:用于接收解析HARQ运算单元发送过来的写命令和写数据,每个HARQ运算单元对应一个G模块。
H模块:用于接收缓存写外部存储器的写命令和写数据,每个HARQ运算单元对应一个H模块。
L模块:用于接收缓存写内部HARQ数据缓存器的写命令和写数据,每个HARQ运算单元对应一个L模块。
K模块:用于接收缓存返回给HARQ运算单元的写返回命令,每个HARQ运算单元对应一个K模块。
M模块:用于仲裁多个A模块和G模块发出来的读写命令,采用并不限定于优先级仲裁或者Round-Bobin仲裁等公平仲裁方式对读写命令进行仲裁。然后将仲裁后的读写命令根据本发明实施例的读写策略进行相应的操作。
N模块:对经过M模块处理的多个源的读写操作进行保序处理,此模块是将TAG判断操作(根据本发明实施例的读写策略进行相应的操作)和数据读写操作分离的关键模块。
Q模块:根据N模块的输出,按顺序从各个D模块、L模块接收读写命令,完成内部HARQ数据缓存器数据的读写。
U模块:将各个B模块发送的读命令发送给外部存储器,并将返回的数据按照命令接收的顺序,依次返回给对应的F模块,将各个H模块发送的写命令和写数据发送给外部存储器。
其中,M、Q、N和U模块为读写共享模块,HARQ数据缓存器中各自有一个M、Q、N和U模块;其余模块为单通道独立模块,每个读通道或写通道都有一个对应的模块。
参照图7,HARQ数据缓存器的写流程可以包括如下步骤:
步骤71:HARQ运算单元根据配置的HARQ写地址向其对应的G模块发送写命令和写数据。
步骤72:G模块接收到读命令后,在H模块、L模块、K模块都未存储满的情况下将写命令和写数据发送给M模块进行仲裁和相应操作。
步骤73:M模块根据一定仲裁机制(不限于Round-Robin、优先级仲裁等仲裁机制)将多个G模块的仲裁请求进行仲裁。如果仲裁G模块的请求得到通过,则将写返回命令发送给对应的K模块,K模块接收写返回命令并发送给对应的HARQ运算单元,同时M模块根据该地址的index将每个way中对应index的Cache Line的标志读出来进行TAG判断,写操作TAG判断可以串行处理也可以并行处理,具体如步骤74至步骤78。
步骤74:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志是1,并且其Time标志与当前时刻(当前时刻可以通过计数简单得到)相差超过配置的老化门限,则认为该Cache Line的数据已经老化,需要将其对应的Valid置为0,释放该Cache Line存储空间。
步骤75:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1并且Tag标志与本次写地址的高位相等,则表示写命中,将写命令写数据发送给对应的L模块,同时将写入时刻更新到该Cache Line的Time标志。如果写命令配置为写直通,则还需要将写命令和写数据发送给的H模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。同时,还需要将读写排序标志发送给N模块。如果没有写命中,则为写缺失,写缺失操作可以参见步骤76至步骤78。
步骤76:在写缺失时,依次串行判断每个Cache Line的Valid标志,如果一个CacheLine的Valid标志为0,则将写命令和写数据发送给L模块,同时将写入时刻更新到该CacheLine的Time标志,将写地址高位写入Tag标志,最后对应Valid标志更新为1。如果写命令配置为写直通,则还需要将写命令和写数据发送给H模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。同时,还需要将读写排序标志发送给N模块。
步骤77:如果所有Cache Line的Valid标志都为1,则依次串行判断每一个CacheLine的Clean标志,如果一个Cache Line的Clean标志为1,则将写命令和写数据发送给L模块,同时将写入时刻更新到该Cache Line的Time标志,将写地址高位写入Tag标志。如果写命令配置为写直通,则还需要将写命令和写数据发送给H模块,同时将该Cache Line的Clean标志更新为1,表示该数据在外部存储器有备份,否则将该Cache Line的Clean标志置为0。同时,还需要将读写排序标志发送给N模块。
步骤78:如果所有Cache Line的Valid标志都为1,并且所有Cache Line的Clean标志都为0,则直接将写命令和写数据发送给对应H模块。
步骤79:U模块接收H模块发送的写命令和写数据,与其他H模块的写命令写数据进行仲裁,发送给外部存储器。
步骤710:N模块中如果有读写排序标志,则将标志依次读出来,发送给Q模块。
步骤711:Q模块根据N模块发送过来的标志,选择从哪个D模块、L模块读取读写命令。如果是从L模块读取写命令写时刻,则将该数据按照写命令写入HARQ数据缓存中。
参照图8,HARQ数据缓存器的读流程可以包括如下步骤:
步骤81:HARQ运算单元根据配置的HARQ读取地址向其对应的A模块发送读命令。
步骤82:A接收到读命令后,在B模块和D模块都为存储满的情况下将命令发送给M模块申请仲裁。
步骤83:M模块根据一定仲裁机制(不限于Round-Robin、优先级仲裁等仲裁机制)将多个A模块的仲裁请求进行仲裁。如果仲裁A模块的请求得到通过,则根据该地址的index将每个way中对应index的Cache Line的标志读出来进行TAG判断。读操作TAG判断可以串行处理也可以并行处理,具体如步骤步骤84至步骤86。
步骤84:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1,并且其Time标志与当前时刻(当前时刻可以通过计数简单得到)相差超过配置的老化门限,则认为该Cache Line的数据已经老化。需要将其对应的Valid标志置为0,释放该CacheLine存储空间。
步骤85:并行或者串行判断所有Cache Line,如果某个Cache Line的Valid标志为1并且Tag标志与本次写地址的高位相等,则表示读命中,将该Cache Line标志中的Valid置为0,释放该Cache Line。同时发送读命令给D模块,表示从内部HARQ数据缓存器读取HARQ数据;同时将对应读排序标志发送给对应的C模块。同时将对应读写排序标志发送给N模块。如果没有读命中,则为读缺失,读缺失操作参见步骤86。
步骤86:读缺失时,直接给对应B模块发送读命令,表示从外部存储器读取HARQ数据,同时将对应读排序标志发送给对应C模块。
步骤87:U模块接收B模块的读命令,与其他B模块的读请求进行仲裁,发送读命令给外部存储器,然后将数据按照发送顺序发送给对应的F模块。
步骤88:N模块中如果有读写排序标志,则将标志依次读出来,发送给Q模块。
步骤89:Q模块根据N模块发送过来的标志,选择从哪个D模块、L模块读取读写命令。如果是从D模块读取读命令,则在对应E模块未存储满的情况下根据该读命令完成数据读取,将数据发送给对应的E模块。
步骤810:C模块中如果有读排序标志,则将标志依次读出来,发送给对应的F模块。
步骤811:F模块根据C模块发送过来的标志,选择从E模块还是U模块接收数据发送出去给对应的HARQ运算单元。
第四实施例
在本发明前述实施例提出的HARQ数据存储管理方法的基础上,本发明第四实施例提出了一种HARQ数据存储管理装置,该装置位于HARQ数据缓存器中。
图9为本发明实施例的HARQ数据存储管理装置的组成结构示意图,如图9所示,所述装置包括接收单元901和处理单元902,其中,
接收单元901,用于在确定基于HARQ进行首传或重传时,接收读写操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的读写操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;
处理单元902,用于在确定基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据。
在一实施方式中,所述HARQ数据缓存器包括多个用于存储HARQ数据的CacheLine;
相应地,所述处理单元902,具体用于在确定满足第一设定条件时,将所述写数据输出至外部存储器;在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个Cache Line中;所述第一设定条件为:根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效时,且所述HARQ数据缓存器的各个Cache Line的存储数据在所述外部存储器均无备份。
在一实施方式中,所述处理单元902,还用于在确定不满足第一设定条件时,且所述写命令表示需要将所述写数据存储至所述外部存储器时,将所述写数据输出至所述外部存储器。
在一实施方式中,所述处理单元902,具体用于:
根据所述写命令确定写命中时,将所述写数据写入所述写命令对应的Cache Line中;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的至少一个Cache Line的存储数据标记为失效时,将所述写数据写入存储标记为失效的数据的任意一个Cache Line中,并将所述写数据标记为有效;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效,且所述HARQ数据缓存器的至少一个Cache Line的存储数据在所述外部存储器有备份时,在存储数据在所述外部存储器有备份的各个Cache Line,选取一个CacheLine;将所述写数据写入所选取的Cache Line中,并将所述写数据标记为有效。
在一实施方式中,所述处理单元902,还用于在确定所述HARQ数据缓存器中存在需要老化的Cache Line时,将所述需要老化的Cache Line中的存储数据标记为失效;所述需要老化的Cache Line为满足以下条件的Cache Line:数据存储时长超过老化门限。
在一实施方式中,在基于HARQ进行非最后一次重传时,接收的读写操作控制信息还包括读命令;在基于HARQ进行最后一次重传时,接收的读写操作控制信息为读命令;
相应地,所述处理单元902,还用于在确定基于HARQ进行重传时,根据所述读命令读取HARQ数据。
在一实施方式中,所述HARQ数据缓存器包括多个用于存储HARQ数据的CacheLine;
相应地,所述处理单元902,具体用于:
根据所述读命令确定读命中时,从所述读命令对应的Cache Line中,读取出HARQ数据;将所述读命令对应的Cache Line中的存储数据标记为失效,或释放所述读命令对应的Cache Line中的存储数据;
根据所述读命令确定读缺失时,根据所述读命令从外部存储器中读取出HARQ数据。
在一实施方式中,所述处理单元902,还用于在根据所述读命令从外部存储器中读取出HARQ数据后,直接将所述HARQ数据输出。
在一实施方式中,所述处理单元902,具体用于在确定基于HARQ进行非最后一次重传时,在根据所述读命令读取HARQ数据之后,根据所述写命令存储所述写数据。
实际应用中,上述接收单元901可以利用HARQ数据缓存器的数据通信装置实现,上述处理单元902可以利用HARQ数据缓存器中的仲裁器结合缓存等实现。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
第五实施例
本发明第五实施例提出了一种HARQ数据缓存器,包括前述实施例记载的任意一种HARQ数据存储管理装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种混合自动重传请求HARQ数据存储管理方法,其特征在于,应用于HARQ数据缓存器中,所述方法包括:
在基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;
在基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据;
所述HARQ数据缓存器包括多个用于存储HARQ数据的缓存行Cache Line;
相应地,所述根据所述写命令存储所述写数据,包括:
在确定满足第一设定条件时,将所述写数据输出至外部存储器;所述第一设定条件为:根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效时,且所述HARQ数据缓存器的各个Cache Line的存储数据在所述外部存储器均无备份;
在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个CacheLine中;
其中,在基于HARQ进行非最后一次重传时,接收的操作控制信息还包括读命令;在基于HARQ进行最后一次重传时,接收的操作控制信息为读命令;
相应地,所述方法还包括:
在基于HARQ进行重传时,根据所述读命令读取HARQ数据;
所述根据所述写命令存储所述写数据,包括:
在基于HARQ进行非最后一次重传时,在根据所述读命令读取HARQ数据之后,根据所述写命令存储所述写数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定不满足第一设定条件时,且所述写命令表示需要将所述写数据存储至所述外部存储器时,将所述写数据输出至所述外部存储器。
3.根据权利要求1所述的方法,其特征在于,所述在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个Cache Line中,包括:
根据所述写命令确定写命中时,将所述写数据写入所述写命令对应的Cache Line中;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的至少一个Cache Line的存储数据标记为失效时,将所述写数据写入存储标记为失效的数据的任意一个Cache Line中,并将所述写数据标记为有效;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效,且所述HARQ数据缓存器的至少一个Cache Line的存储数据在所述外部存储器有备份时,在存储数据在所述外部存储器有备份的各个Cache Line,选取一个Cache Line;将所述写数据写入所选取的Cache Line中,并将所述写数据标记为有效。
4.根据权利要求1所述的方法,其特征在于,所述根据所述读命令读取HARQ数据,包括:
根据所述读命令确定读命中时,从所述读命令对应的Cache Line中,读取出HARQ数据;将所述读命令对应的Cache Line中的存储数据标记为失效,或释放所述读命令对应的Cache Line中的存储数据;
根据所述读命令确定读缺失时,根据所述读命令从外部存储器中读取出HARQ数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在根据所述读命令从外部存储器中读取出HARQ数据后,直接将所述HARQ数据输出。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述HARQ数据缓存器中存在需要老化的Cache Line时,将所述需要老化的Cache Line中的存储数据标记为失效;所述需要老化的Cache Line为满足以下条件的Cache Line:数据存储时长超过老化门限。
7.一种混合自动重传请求HARQ数据存储管理装置,其特征在于,所述装置位于HARQ数据缓存器中,所述装置包括接收单元和处理单元,其中,
接收单元,用于在确定基于HARQ进行首传或重传时,接收操作控制信息,其中,在基于HARQ进行首传或非最后一次重传时,接收的操作控制信息包括写命令和写数据,每次接收的写数据为译码错误的HARQ数据;
处理单元,用于在确定基于HARQ进行首传或非最后一次重传时,根据所述写命令存储所述写数据;
所述HARQ数据缓存器包括多个用于存储HARQ数据的缓存行Cache Line;
相应地,所述处理单元,具体用于在确定满足第一设定条件时,将所述写数据输出至外部存储器;在确定不满足第一设定条件时,将所述写数据写入所述HARQ数据缓存器的一个Cache Line中;所述第一设定条件为:根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效时,且所述HARQ数据缓存器的各个Cache Line的存储数据在所述外部存储器均无备份;
所述处理单元,还用于在确定不满足第一设定条件时,且所述写命令表示需要将所述写数据存储至所述外部存储器时,将所述写数据输出至所述外部存储器;
其中,在基于HARQ进行非最后一次重传时,接收的操作控制信息还包括读命令;在基于HARQ进行最后一次重传时,接收的操作控制信息为读命令;
相应地,所述处理单元,还用于在确定基于HARQ进行重传时,根据所述读命令读取HARQ数据;
所述处理单元,具体用于在确定基于HARQ进行非最后一次重传时,在根据所述读命令读取HARQ数据之后,根据所述写命令存储所述写数据。
8.根据权利要求7所述的装置,其特征在于,所述处理单元,具体用于:
根据所述写命令确定写命中时,将所述写数据写入所述写命令对应的Cache Line中;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的至少一个Cache Line的存储数据标记为失效时,将所述写数据写入存储标记为失效的数据的任意一个Cache Line中,并将所述写数据标记为有效;
根据所述写命令确定写缺失,且所述HARQ数据缓存器的各个Cache Line的存储数据均标记为有效,且所述HARQ数据缓存器的至少一个Cache Line的存储数据在所述外部存储器有备份时,在存储数据在所述外部存储器有备份的各个Cache Line,选取一个Cache Line;将所述写数据写入所选取的Cache Line中,并将所述写数据标记为有效。
9.根据权利要求7所述的装置,其特征在于,
所述处理单元,具体用于:
根据所述读命令确定读命中时,从所述读命令对应的Cache Line中,读取出HARQ数据;将所述读命令对应的Cache Line中的存储数据标记为失效,或释放所述读命令对应的Cache Line中的存储数据;
根据所述读命令确定读缺失时,根据所述读命令从外部存储器中读取出HARQ数据。
10.根据权利要求9所述的装置,其特征在于,所述处理单元,还用于在根据所述读命令从外部存储器中读取出HARQ数据后,直接将所述HARQ数据输出。
11.根据权利要求7所述的装置,其特征在于,所述处理单元,还用于确定所述HARQ数据缓存器中存在需要老化的Cache Line时,将所述需要老化的Cache Line中的存储数据标记为失效;所述需要老化的Cache Line为满足以下条件的Cache Line:数据存储时长超过老化门限。
12.一种混合自动重传请求HARQ数据缓存器,其特征在于,包括权利要求7至11任一项所述的装置。
CN201811504209.6A 2018-12-10 2018-12-10 Harq数据存储管理方法、装置和harq数据缓存器 Active CN111290875B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811504209.6A CN111290875B (zh) 2018-12-10 2018-12-10 Harq数据存储管理方法、装置和harq数据缓存器
EP19895451.3A EP3896881B1 (en) 2018-12-10 2019-10-22 Harq data storage management method and device and harq data buffer
PCT/CN2019/112553 WO2020119252A1 (zh) 2018-12-10 2019-10-22 Harq数据存储管理方法、装置和harq数据缓存器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811504209.6A CN111290875B (zh) 2018-12-10 2018-12-10 Harq数据存储管理方法、装置和harq数据缓存器

Publications (2)

Publication Number Publication Date
CN111290875A CN111290875A (zh) 2020-06-16
CN111290875B true CN111290875B (zh) 2023-06-09

Family

ID=71025085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811504209.6A Active CN111290875B (zh) 2018-12-10 2018-12-10 Harq数据存储管理方法、装置和harq数据缓存器

Country Status (3)

Country Link
EP (1) EP3896881B1 (zh)
CN (1) CN111290875B (zh)
WO (1) WO2020119252A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11469860B2 (en) * 2020-06-30 2022-10-11 Hon Lin Technology Co., Ltd. Method and apparatus for reducing amount of memory required by hybrid automatic repeat request (HARQ) operations
CN113890673B (zh) * 2021-09-01 2023-03-14 哲库科技(北京)有限公司 译码方法、译码装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494530A (zh) * 2008-01-21 2009-07-29 中兴通讯股份有限公司 一种混合自动重传请求数据突发缓冲区的分配和使用方法
CN101933281A (zh) * 2008-02-01 2010-12-29 Lg电子株式会社 时间对准定时器过期时上行harq操作的方法
CN102208966A (zh) * 2010-03-30 2011-10-05 中兴通讯股份有限公司 一种harq合并器和harq数据存储方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161342B2 (en) * 2007-12-13 2012-04-17 Qualcomm Incorporated Forward and reverse shifting selective HARQ combining scheme for OFDMA systems
CN102238624A (zh) * 2010-04-30 2011-11-09 北京三星通信技术研究有限公司 一种获取上行数据接收状况的方法
CN102271033B (zh) * 2010-06-04 2015-05-13 中兴通讯股份有限公司 实现混合自动重传请求内存动态调度的方法及装置
CN103503356A (zh) * 2011-01-07 2014-01-08 联发科技股份有限公司 装置和优化混合自动请求重传缓冲的方法
CN102158330B (zh) * 2011-04-22 2015-06-10 中兴通讯股份有限公司 Harq合并存储空间的处理方法及装置
CN103684709A (zh) * 2012-09-05 2014-03-26 京信通信系统(中国)有限公司 一种重传数据的合并方法及装置
US10862630B2 (en) * 2015-02-13 2020-12-08 Samsung Electronics Co., Ltd Method and system for contiguous HARQ memory management with memory splitting
KR20180073229A (ko) * 2016-12-22 2018-07-02 삼성전자주식회사 Harq 처리를 수행하는 모뎀 칩, 이를 포함하는 어플리케이션 프로세서 및 모뎀 칩의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494530A (zh) * 2008-01-21 2009-07-29 中兴通讯股份有限公司 一种混合自动重传请求数据突发缓冲区的分配和使用方法
CN101933281A (zh) * 2008-02-01 2010-12-29 Lg电子株式会社 时间对准定时器过期时上行harq操作的方法
CN102208966A (zh) * 2010-03-30 2011-10-05 中兴通讯股份有限公司 一种harq合并器和harq数据存储方法
WO2011120295A1 (zh) * 2010-03-30 2011-10-06 中兴通讯股份有限公司 一种harq合并器和harq数据存储方法

Also Published As

Publication number Publication date
CN111290875A (zh) 2020-06-16
WO2020119252A1 (zh) 2020-06-18
EP3896881A1 (en) 2021-10-20
EP3896881A4 (en) 2022-02-23
EP3896881B1 (en) 2023-08-30

Similar Documents

Publication Publication Date Title
US8694731B2 (en) Hybrid automatic repeat request combiner and method for storing hybrid automatic repeat request data
KR101796413B1 (ko) 스케일러블 메모리 시스템 프로토콜 내에서 패킷 송신들을 재배열하기 위한 시스템들 및 방법
US10924591B2 (en) Low-latency link compression schemes
US8601346B1 (en) System and method for generating parity data in a nonvolatile memory controller by using a distributed processing technique
EP4020864A1 (en) Scalable protocol-agnostic reliable transport
CN109564545B (zh) 用于压缩地址的方法和设备
US8458282B2 (en) Extended write combining using a write continuation hint flag
CN104866454B (zh) 面向板级高速总线的写报文前瞻处理方法及装置
US8943507B2 (en) Packet assembly module for multi-core, multi-thread network processors
US20060117119A1 (en) Enhanced power reduction capabilities for streaming direct memory access engine
WO2011120298A1 (zh) 一种harq存储器的分层管理方法和系统
CN111290875B (zh) Harq数据存储管理方法、装置和harq数据缓存器
US20030016689A1 (en) Switch fabric with dual port memory emulation scheme
US20140181409A1 (en) Method and system for queue descriptor cache management for a host channel adapter
US7817572B2 (en) Communications apparatus and communication method
US9804959B2 (en) In-flight packet processing
CN103684709A (zh) 一种重传数据的合并方法及装置
CN114153756B (zh) 面向多核处理器目录协议的可配置微操作机制
CN111162794B (zh) 译码数据缓存方法和译码器
US10983723B2 (en) Memory access control method and apparatus
US20240243945A1 (en) Controller area network extra-long (can-xl) low latency hardware and software partitioned architecture for message handler
JP3727928B2 (ja) 情報処理装置及び再送制御方法
JP2011029904A (ja) パケットキューイング装置およびパケットキューイング方法
JP2014022956A (ja) 受信装置及び受信方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant