WO2011120295A1 - 一种harq合并器和harq数据存储方法 - Google Patents
一种harq合并器和harq数据存储方法 Download PDFInfo
- Publication number
- WO2011120295A1 WO2011120295A1 PCT/CN2010/077878 CN2010077878W WO2011120295A1 WO 2011120295 A1 WO2011120295 A1 WO 2011120295A1 CN 2010077878 W CN2010077878 W CN 2010077878W WO 2011120295 A1 WO2011120295 A1 WO 2011120295A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- cache
- cache line
- tag
- merged
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
- H04L1/0053—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1845—Combining techniques, e.g. code combining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1822—Automatic repetition systems, e.g. Van Duuren systems involving configuration of automatic repeat request [ARQ] with parallel processes
Definitions
- the present invention relates to modern communication technologies, such as 3G/High Speed Downlink Packet Access (HSDPA), Long Term Evolution (LTE), and Worldwide Interoperability for Microwave Access (WiMax).
- HSDPA 3G/High Speed Downlink Packet Access
- LTE Long Term Evolution
- WiMax Worldwide Interoperability for Microwave Access
- HARQ Hybrid Automatic Repeat Request
- Hybrid Automatic Repeat Request (HARQ) technology is used in wireless communication technologies such as HSDPA. Due to the interference and fading of the wireless channel, when the decoded received information is out of error (such as Cyclic Redundancy Check (CRC) for verification error), the receiving end may request the transmitting end to resend the information to the receiving end.
- the resent information can be the same or different from the original information.
- the receiving end can use the information received last time and the information currently retransmitted, and combine the two to analyze to obtain the correct information. Since the original information is to be retained for the next merge, the information needs to be saved using memory.
- the receiver needs to use memory to store all erroneous packets, placed in a so-called HARQ soft bit buffer or HARQ memory.
- this memory for storing HARQ information is relatively small and can be implemented by on-chip Static Random Access Memory (SRAM).
- SRAM Static Random Access Memory
- This memory is sometimes quite large when there is a high rate of data and multiple HARQ processes (Processes).
- the data rate is relatively large, such as Category 3, and its data rate is 50Mbps upstream and 100Mbps downstream, and the total number of soft bits in downlink is 1237248 (as shown in Table 1). If a soft bit is expressed in 8 bits, Category 3 requires 1.2 Mbyte of memory.
- SRAM Static Random Access Memory
- Downlink spatial multiplexing branch one transmission time interval, one downlink, one downlink
- Total soft channel bits (Maximum channel transport block number of bits maximum bit number
- HARQ memory can be implemented with off-chip DDR/double rate synchronous dynamic random access memory (SDRAM).
- SDRAM synchronous dynamic random access memory
- the implementation of off-chip SDRAM occupies a large amount of DDR/SDRAM bandwidth.
- a large amount of off-chip memory access will directly increase the power consumption of the chip. Therefore, the existing HARQ memory needs to be improved. Summary of the invention
- the technical problem to be solved by the present invention is to provide a HARQ combiner and a HARQ data storage method to reduce the area and power consumption of the baseband chip.
- the present invention provides a HARQ data storage method, including:
- the HARQ processor When receiving the new data of the coding block, the HARQ processor writes the new data to the Cache and the channel decoder; the Cache writes the new data into the data memory of the Cache or writes to the external memory;
- the HARQ processor When receiving the retransmitted data of the coded block, the HARQ processor obtains the previous data corresponding to the retransmitted data from the data memory of the Cache or the external memory through the Cache, and retransmits the data and the previous data.
- the data is merged, and the merged data is written into the Cache and the channel decoder; the Cache writes the merged data into the data memory of the cache or into the external memory.
- the data memory includes a plurality of Cache lines; and when the Cache writes new data of the coded block or the merged data into the data store of the Cache, the method includes: The data is written into the Cache line of the data storage, and the label of the Cache line is recorded to the label storage, where the label is the high-order address of the new data or the merged data stored in the Cache line;
- the step of obtaining the previous data corresponding to the retransmitted data when the HARQ processor receives the retransmitted data of the encoded block further includes: sending a control signal for reading the previous data to the Cache; the Cache receiving the read
- the tag is searched for the same tag as the upper address of the retransmitted data, and if yes, the previous data is saved in the Cache line corresponding to the tag, the Cache Reading the previous data from the Cache line to the HARQ processor; otherwise, the previous data is not in the Cache's data memory, the Cache reads the previous data in the external memory to the buffer in the Cache, and then reads To the HARQ processor.
- the above method may also have the following feature: if the previous data is not in the data memory of the cache, after reading the previous data from the external memory to the buffer, the method further comprises: writing the previous data to the Cache as follows:
- the Cache is searched to find whether there is a tag in the tag memory that has the same high address as the previous data:
- step (a) is performed: storing the data in an external memory, storing the previous data in the allocated Cache line, and updating the Cache line.
- Tag write the updated tag to the tag register; or step (b): retain the data in the allocated Cache line.
- the step of the Cache writing the new data or the merged data to the data memory or the external memory of the cache includes:
- the merged data For the merged data, if the merged previous data is in the Cache, the merged data is written to the Cache line where the previous data is located;
- the new data or the merged previous data is not the merged data obtained in the Cache, and the writing step includes:
- the new data or the merged data is written into the Cache line corresponding to the label; if not, the Cache line is allocated to the new data or the merged data, and the Cache line is performed according to a preset replacement principle. The replacement, the new data or the merged data is written to the allocated Cache line, or written to the external memory.
- the step of performing Cache line replacement according to a preset replacement principle includes:
- the new data or the merged data is directly written into the allocated Cache line, and the label of the Cache line is recorded to the tag memory;
- step (a) If there is data in the allocated Cache line, and the CRC of the data is incorrect, step (a) is performed: the data is stored in the external memory, and the new data or the merged data is stored in the allocated Cache line, and Update the label of the Cache line, write the updated label to the label register, or perform step (b): store the new data or the merged data in the external memory.
- the above method may further have the following feature, before the step of performing Cache line replacement, The method further includes: setting a cache line replacement identifier for indicating whether to replace;
- step (a) When performing Cache line replacement, if there is data in the allocated Cache line, and the CRC of the data is incorrect, when the Cache line replacement flag indicates replacement, the step (a) is performed, otherwise, the step (b) is performed. ).
- the above method may further have the following feature: when the HARQ processor writes the new data or the merged data of the coded block into the channel decoder, the method further includes:
- the foregoing method may further have the following feature, the HARQ processor further receiving, from the channel decoder, a CRC check result of the coded block and saving the result;
- the method further includes: when receiving the retransmission data of the coding block, checking the saved CRC check result of the coding block, when the CRC check of the coding block The result indicates that the CRC is correct, skipping the coding block; when the CRC check result of the coding block indicates a CRC error, the previous data of the coding block is acquired, and the combining process is performed.
- the present invention also provides a HARQ combiner, including a HARQ processor and a cache (Cache), wherein the Cache includes a data storage, wherein:
- the HARQ processor is configured to: when receiving new data of the coded block, write the new data
- the Cache when receiving the retransmitted data of the coded block, the Cache obtains the previous data corresponding to the retransmitted data from the data memory of the Cache or the external memory, and merges the retransmitted data with the previous data, and merges the merged data. Data is written to the Cache and the channel decoder;
- the Cache is set to: write the new data into the data memory of the cache or write to the external memory; also used to return the previous data to the HARQ processor, and write the merged data into the data memory of the cache or write to the external In memory.
- the merging device may further include the following features: the Cache further includes a Cache controller, a tag memory, and a tag comparator, where the data memory includes a plurality of Cache lines;
- the HARQ processor is further configured to: when receiving retransmission data of the coding block, send a control signal for reading the previous data to the Cache;
- the Cache controller is configured to: write the new data or the merged data into a Cache line of the data storage, record a label of the Cache line to a label storage, where the label is stored in the Cache line The high address of the new data or the merged data; and is further configured to: when receiving the control signal for reading the previous data, instruct the tag comparator to perform a search to obtain a search result, if the previous data of the retransmitted data is In the data memory of the Cache, the previous data is read from the cache line corresponding to the found tag to the HARQ processor; otherwise, the previous data in the external memory is read into the buffer in the cache, and then read out to the HARQ process.
- the device In the device;
- the tag memory is configured to: according to an indication of the Cache controller, find, in the tag memory, whether a tag having the same high address as the retransmission data exists, and if yes, the previous data is saved in the tag In the Cache line, otherwise, the previous data is not in the data memory of the Cache.
- the merging controller may also be configured to: when the previous data is not in the data memory of the Cache, after reading the previous data in the external memory to the buffer, the following manner is also The previous data is written to the Cache:
- the tag memory is configured to: according to an indication of the Cache controller, find a tag in the tag memory that has the same upper address as the previous data, and return a search result to the Cache controller.
- the merging controller may also be configured to: when the merged previous data is in the Cache, write the merged data into the Cache line where the previous data is located;
- the merged data obtained by the previous data not in the Cache is written as follows:
- the new data or the merged data is written into the Cache line corresponding to the label; if not, the Cache line is allocated to the new data or the merged data, and the Cache line is performed according to a preset replacement principle. Substitution, writing the new data or the merged data to the allocated Cache line, or writing to an external memory;
- the tag comparator is configured to: according to an indication of the Cache controller, find a tag in the tag memory that has the same high address as the new data or the merged data, and return the search result to the Cache controller.
- the merging device may also be configured as follows:
- the Cache controller is configured to: perform Cache line replacement according to a preset replacement principle as follows:
- the new data or the merged data is directly written into the allocated Cache line, and the label of the Cache line is recorded to the tag memory;
- the merging device may also have the following feature: a cache line replacement identifier is further set in the Cache to indicate whether to replace the Cache.
- the Cache controller is further configured to: if the Cache line is replaced, if there is data in the allocated Cache line, and the CRC of the data is incorrect, when the Cache line replacement identifier indicates replacement, the (a) is performed. Otherwise, perform (b).
- the HARQ processor is further configured to: when the new data or the merged data of the coded block is written into the channel decoder, the new data of the coded block or the merged The second tag information of the data is written into the channel decoder, and the new tag data of the same code block or the second tag information of the merged data is the same;
- the Cache controller is further configured to: receive, by the channel decoder, new data of the coded block or a CRC check result of the combined data and second tag information thereof, when performing Cache line replacement, according to the The second tag information of the saved data in the Cache line is searched for the corresponding CRC check result.
- the HARQ processor is further configured to: receive a CRC check result of the coded block from the channel decoder and save; when receiving the retransmitted data of the coded block, check the saved a CRC check result of the coding block, when the CRC check result of the coding block indicates that the CRC is correct, skipping the coding block; and acquiring the code when a CRC check result of the coding block indicates a CRC error The previous data of the block is merged.
- the invention provides a HARQ combiner with Cache and a HARQ data storage method.
- the present invention has a very good beneficial effect on reducing chip area and power consumption and improving competition. In the current and future of communication technologies with ever-increasing data rates, this approach will have significant strategic implications. BRIEF abstract
- Figure 1 shows the general architecture of a SOC baseband chip for a multicore processor
- Figure 2 shows an architecture diagram of a HARQ combiner with a Cache
- Figure 3 depicts the architecture diagram of HARQ Cache
- FIG. 4 is a further description of the retransmission data processing of the control logic of the present invention.
- FIG. 5 is a schematic diagram of dividing a physical address of a CB block of HARQ;
- FIG. 6 is a schematic diagram of a CB block of HARQ in a Cache RAM
- FIG. 7 is a schematic diagram of setting the TAG CRC status bit. Preferred embodiment of the invention
- the present invention introduces a cache (Cache) into a HARQ combiner to provide a multi-layer memory implementation with a Cache for HARQ processing of a wireless communication system. Replace the area and power consumption with Cache.
- Cache cache
- the present invention provides an implementation method of HARQ dynamic memory allocation with Cache.
- the Cache can be used to store partial coded blocks, one or more coded blocks, soft bit data of one or more HARQ processes, and can be dynamically updated.
- Cache can be either Direct Mapped or set-associative.
- the HARQ combiner provided by the present invention comprises a HARQ processor and a Cache, wherein: when receiving new data, the HARQ processor writes the new data to the Cache and also writes to the transport channel decoder (such as Turbo, CRC, etc., Can be external to the HARQ combiner; when receiving the retransmitted data, the HARQ processor combines the received new data with the previous data existing in the Cache, and writes the merged data to the Cache, and also writes the transfer.
- the transport channel decoder such as Turbo, CRC, etc.
- the HARQ processor also transmits the data packet to the channel decoder and also transmits the high-order address of the CB block of the HARQ process corresponding to the data packet, that is, the label (CRC-Tag, process number and CB block number, see FIG. 7). To the channel decoder.
- the transport channel decoder feeds back the CRC result of the CB block to the Cache controller, and also sends the CRC_tag corresponding to the CB block to the Cache controller.
- the Cache controller uses the CRC_Tag and CRC results to determine whether the Cache content is in the new Cache line. Replaced. Based on the Cache existing random replacement algorithm and the least recently used replacement algorithm (LRU) replacement algorithm, the present invention provides a new replacement method by using the CRC result and the transmitted CRC-Tag.
- LRU least recently used replacement algorithm
- the Cache "write buffer” can be directly executed when the Cache line is allocated, without having to read externally the incomplete data in the line, thereby reducing power consumption and area, and the data in one CB block is not When it fills its last Cache line, the drawback is that there will be some Cache lines in the Cache (each CB block can have at most one Cache line part of the data) not used, but no error. This is a design balance. If you need to make full use of the cache line space, you need to "write allocated Buffer" to flatten the data from the HARQ combiner and external memory.
- the present invention is based on a coded block (CB).
- CB coded block
- the processing of a transport block consisting of multiple coded blocks is performed after each code block is processed (for example, the CRC of the transport block). Check).
- the description of the present invention is based on a CB block, the use of the Cache Tag and the result of the CRC are directly reflected in the CRC_Tag, and the HARQ Cache is also suitable for the processing of arbitrary data not using the CB block as a unit.
- the present invention includes a coded block CRC status register (CB_CRC_Statu_Reg), each code block corresponding to a CRC status flag indicating the CRC status of the coded block.
- CB_CRC_Statu_Reg coded block CRC status register
- each code block corresponding to a CRC status flag indicating the CRC status of the coded block.
- the CRC status identifier corresponding to the coding block in the coding block CRC status register is set according to the CRC result of the coding block.
- the CRC status identifier can be set as follows: When the CRC status flag is 1, it indicates that the coded block has a CRC error. When it is 0, it indicates that the CRC of the coded block is correct. Of course, it can also be 0 to identify the coded block CRC error. It is indicated that the coded block CRC is correct, which is not limited by the present invention.
- the HARQ combiner can control data processing during retransmission according to the CRC status indicator.
- the CRC status indicator indicates that the CRC is correct (for example, the CRC status flag is 0)
- the processing of the corresponding coding block of the CRC status identifier may not be used, thereby saving power consumption; if the CRC status indicator indicates a CRC error (For example, the CRC status flag is 1), the processing of the corresponding code block of the CRC status flag will proceed normally.
- the present invention provides a HARQ combiner, including a HARQ processor and a cache (Cache), the cache including a cache controller, a data store, a tag memory, and a tag. a comparator, the data memory includes a plurality of cache lines, wherein:
- the HARQ processor is configured to: when receiving the new data of the coding block, write the new data into the Cache and the channel decoder; when receiving the retransmitted data of the coding block, obtain the data from the Cache data storage or the external memory through the Cache The previous data corresponding to the retransmitted data combines the retransmitted data with the previous data, and the merged data is written into the Cache and the channel decoder;
- the cache is used to write the new data into the data memory of the cache or into the external memory; and is also used to return the previous data to the HARQ processor, and write the merged data into the data memory of the cache or write to the external In memory.
- the HARQ processor when receiving the retransmitted data of the encoded block, sends a control signal for reading the previous data to the Cache;
- the Cache controller is configured to write the new data or the merged data into a Cache line of the data storage, and record the label of the Cache line to the label storage, where the label is stored in the Cache line.
- the high address of the new data or the merged data and is further configured to: when receiving the control signal for reading the previous data, instruct the tag comparator to perform a search to obtain a search result, if the previous data of the retransmitted data is In the data memory of the Cache, the previous data is read from the cache line corresponding to the found tag to the HARQ processor; otherwise, the previous data in the external memory is read into the buffer in the cache, and then read out to the HARQ process.
- the device In the device;
- the tag memory configured to: according to an indication of the Cache controller, find, in the tag memory, whether a tag with the same high address as the retransmission data exists, and if yes, the previous data is saved in the tag In the Cache line, otherwise, the previous data is not in the data memory of the Cache.
- the Cache controller is further configured to: when the previous data is not in the data memory of the cache, read the previous data in the external memory into the buffer, and write the previous data into the Cache, as follows: :
- the tag comparator Instructing the tag comparator to perform a search to obtain a search result. If there is a tag in the tag memory that is the same as the upper address of the previous data, the previous data is written into the allocated cache line; if not, the cache line is allocated to For this previous data, the Cache line replacement is performed as follows: If there is no data in the allocated Cache line, the previous data is directly written into the allocated Cache line, and the label of the Cache line is recorded to the tag memory;
- the tag memory is configured to search, according to an indication of the Cache controller, whether the tag in the tag memory has the same tag as the upper address of the previous data, and return the search result to the Cache controller.
- the Cache controller is configured to: when the merged previous data is in the Cache, write the merged data to the Cache line where the previous data is located; and the new data and the merged previous data are not obtained in the Cache.
- the merged data is written as follows:
- the new data or the merged data is written into the Cache line corresponding to the label; if not, the Cache line is allocated to the new data or the merged data, and the Cache line is performed according to a preset replacement principle. Substitution, writing the new data or the merged data to the allocated Cache line, or writing to an external memory;
- the tag comparator is configured to: according to an indication of the Cache controller, find, in the tag memory, whether a tag with the same high address as the new data or the merged data exists, and return a search result to the Cache controller.
- the Cache controller is configured to perform according to a preset replacement principle as follows
- the new data or the merged data is directly written into the allocated Cache line, and the label of the Cache line is recorded to the tag memory; If there is data in the allocated Cache line, and the CRC of the data is correct, the data in the Cache line is replaced with new data or merged data, and the label of the Cache line is updated, and the updated label is written into the label. register;
- the Cache is further configured with a Cache line replacement identifier for indicating whether to replace the Cache.
- the Cache controller is configured to: when the Cache line is replaced, if there is data in the allocated Cache line, and the CRC of the data In error, when the Cache line replacement flag indicates a replacement, the (a) is performed, otherwise, the (b) is performed.
- the HARQ processor is further configured to: when the new data or the merged data of the coding block is written into the channel decoder, write the new data of the coding block or the second label information of the combined data. Entering the channel decoder, the new data of the same coded block or the second tag information of the merged data is the same;
- the Cache controller is further configured to receive, by the channel decoder, new data of the encoded block or a CRC check result of the combined data and second label information thereof, when performing Cache line replacement, according to the The second tag information of the saved data in the Cache line is searched for the corresponding CRC check result.
- the HARQ processor is further configured to receive the coded block from the channel decoder.
- the CRC check result is saved and saved; when the retransmitted data of the coded block is received, the CRC check result of the saved code block is checked, and when the CRC check result of the code block indicates that the CRC is correct, the code block is skipped.
- the CRC check result of the coding block indicates a CRC error
- the previous data of the coding block is acquired, and a merge process is performed.
- the present invention also provides a HARQ data storage method, including:
- the HARQ processor When receiving the new data of the coding block, the HARQ processor writes the new data to the Cache and the channel decoder; the Cache writes the new data into the data memory of the Cache or writes to the external memory. In the reservoir;
- the HARQ processor When receiving the retransmitted data of the coded block, the HARQ processor obtains the previous data corresponding to the retransmitted data from the data memory of the Cache or the external memory through the Cache, combines the retransmitted data with the previous data, and writes the merged data. Cache and channel decoder; the Cache writes the merged data to a data memory of the cache or to an external memory.
- the data storage includes a plurality of Cache lines
- the method includes: writing the new data or the merged data to a cache line of the data memory, and recording the label of the cache line to the tag memory.
- the tag is a high-order address of the new data or the merged data stored in the Cache line;
- the HARQ processor And receiving, by the HARQ processor, a control signal for reading the previous data to the Cache; and when the Cache receives the control signal for reading the previous data, searching for the presence of the tag memory a label identical to the upper address of the retransmitted data, if present, the previous data is stored in a Cache line corresponding to the label, and the Cache reads the previous data from the Cache line to the HARQ processor Otherwise, the previous data is not in the data memory of the Cache, and the Cache reads the previous data in the external memory to the buffer in the Cache, and then reads out to the HARQ processor.
- the previous data is not in the data memory of the Cache, after reading the previous data from the external memory to the buffer, the previous data is also written to the Cache as follows:
- the Cache is searched to find whether there is a tag in the tag memory that has the same high address as the previous data:
- step (a) is performed: storing the data in an external memory, storing the previous data in the allocated Cache line, and updating the Cache line.
- Tag write the updated tag to the tag register; or step (b): retain the data in the allocated Cache line.
- the Cache writes the new data or the merged data into a data storage or an external storage of the cache as follows:
- the merged data For the merged data, if the merged previous data is in the Cache, the merged data is written to the Cache line where the previous data is located;
- the merged data obtained for the new data and the merged previous data not in the Cache is written as follows:
- the new data or the merged data is written into the Cache line corresponding to the label; if not, the Cache line is allocated to the new data or the merged data, and the Cache line is performed according to a preset replacement principle. The replacement, the new data or the merged data is written to the allocated Cache line, or written to the external memory.
- the Cache line replacement according to the preset replacement principle includes:
- the new data or the merged data is directly written into the allocated Cache line, and the label of the Cache line is recorded to the tag memory;
- step (a) If there is data in the allocated Cache line, and the CRC of the data is incorrect, step (a) is performed: the data is stored in the external memory, and the new data or the merged data is stored in the allocated Cache line, and Update the label of the Cache line, write the updated label to the label register, or perform step (b): store the new data or the merged data in the external memory.
- a Cache line replacement identifier is also set, which is used to indicate whether to replace; In the case of line replacement, if there is data in the allocated Cache line and the CRC of the data is incorrect, when the Cache line replacement flag indicates replacement, the step (a) is performed, otherwise, the step (b) is performed.
- the HARQ processor When the HARQ processor writes the new data or the merged data of the coded block into the channel decoder, the new data of the coded block or the second tag information of the merged data is written into the channel.
- a decoder the same data of the same coded block or the second tag information of the merged data is the same; the Cache receives the new data of the coded block or the CRC check result of the merged data from the channel decoder and The second tag information is used to search for the corresponding CRC check result according to the second tag information of the saved data in the Cache line when performing Cache line replacement.
- the HARQ processor further receives a CRC check result of the coded block from the channel decoder and saves; when the HARQ receives the retransmitted data of the coded block, checks the saved CRC of the coded block. As a result, when the CRC check result of the coding block indicates that the CRC is correct, the coding block is skipped; when the CRC check result of the coding block indicates a CRC error, the previous data of the coding block is acquired, and the merging is performed. deal with.
- FIG. 1 shows the general architecture of a SOC baseband chip for a multicore processor.
- DSP digital signal processor
- CPU such as an ARM processor
- DMA digital signal processor
- peripherals such as an ARM processor
- modem accelerator such as an ARM processor
- channel decoder Teurbo, CRC, etc.
- HARQ is part of the Modem accelerator and acts as a bus master.
- SRAM is an on-chip memory. The location of the HARQ combiner in the SOC allows it to utilize on-chip Cache, on-chip SRAM, and off-chip DDR/SDRAM.
- the line fill buffer of the Cache can read the data of the SRAM and DDR/SDRAM into the HARQ combiner.
- Figure 2 shows an architectural diagram of a HARQ combiner with Cache.
- the received data here refers to the I, Q data received from the RF, generated by the ADC (digital-to-analog conversion), filtering, and pre-processing such as channel estimation, MIMO, equalizer, etc.
- the soft bits of the number likelihood ratio are stored in a buffer (Buffer).
- the total controller of the HARQ combiner generates a control signal based on the start address, data block size and state (new data or retransition) of the current process and the CB block, and reads the soft bit data from the buffer.
- the HARQ combiner includes a HARQ processor and a Cache, where the HARQ processor includes a HARQ controller and a data merge processing unit.
- the data can be written to the input buffer of the channel decoder (such as Turbo) and also written into the Cache.
- Cache can be set to write the policy of assigning Cache lines.
- Cache Miss assign a Cache line to this data, and record the value of the high-order address (CB Tag).
- the data size of the operation can be a Cache line.
- the length of the Cache line can be the length of a DDR burst.
- the HARQ controller finds whether the previous data is in the Cache based on the address of the current process and the CB block. If the previous data is in the Cache, a Cache hit is generated, and the previous data (or the entire Cache line) is read out to the data merge processing unit and merged with the retransmitted data. If the previous data is not in the Cache (Cache miss), the Cache controller generates a line fill command that reads the contents of the external memory into the Cache and simultaneously sends it to the data merge processing unit for the merge of the retransmitted data with the previous data. The combined data is sent back to the input buffer of the Cache and channel decoder (such as Turbo).
- channel decoder such as Turbo
- the CB block data is all written to the input buffer of the channel decoder (such as Turbo), and the upper address (CRC_Tag) of the CB block is also written to the channel decoder.
- the channel decoder such as Turbo
- the channel decoder (such as Turbo)
- the channel decoder and the CRC checker are activated.
- the channel decoder feeds back the CRC result to the HARQ processor and also sends the corresponding CRC-tag back to the Cache controller.
- FIG. 3 depicts the architecture of HARQ Cache.
- HARQ Cache includes:
- Read and write interfaces that connect to the HARQ processor, such as control signals, address signals, and data signals. It also contains a bus interface for accessing external memory, a bus for connecting to the SOC, such as the Cross-Bar bus.
- the HARQ controller is used to control and coordinate the work of the Cache.
- HARQ Cache has at least three buffers (Writers), which are Write Buffers, Line Read Buffer and Line fill Buffer.
- the write buffer receives the write data of the HARQ processor and writes it to the Cache or external memory.
- the line read buffer is Cache hit, it reads a Cache line and sends it to the HARQ processor for merging.
- the line fill buffer reads the contents of the external memory and sends it to the HARQ processor and Cache line.
- the HARQ Cache contains two multiplexers to select different data streams. For example, read data can be selected from a line read buffer or a line fill buffer; write data can be selected from a line read buffer or a write buffer.
- HARQ Cache also has a Tag Comparator ( TAG Comparator ) for tag comparison of Cache to determine if the data is in the Cache.
- TAG Comparator Tag Comparator
- the HARQ Cache also includes a data memory (Data RAM) for storing data (Cache line), and a tag memory (Tag RAM) for storing Tag values.
- Data RAM data memory
- Tag RAM tag memory
- the HARQ Cache also includes a CRC interface.
- the channel decoder sends the CRC result (CRC_PASS) and the corresponding CRC_TAG value back to the Cache controller. These two sets of values will determine whether to replace a Cache line in the Cache Replacement algorithm.
- FIG. 4 is a further description of the retransmission data processing of the control logic of the present invention.
- each CB block is processed, and for retransmitted data, the original CB block with the correct CRC can be processed.
- the controller looks at the contents of the CRC status register (CB_CRC_Statu-Reg, which is the same value as CRC_PASS) (this content is transmitted by the channel decoder), if corresponding to CB
- the CRC status bit is 0, indicating that the last CRC is correct and no processing is required. If the CRC status bit corresponding to CB is 1, indicating the last CRC error, the CB block is processed.
- FIG. 5 is a division of the physical address of the CB block of HARQ, where the Tag portion will be stored in the Tag RAM.
- the data is stored in the Data RAM, and each line is shown as a line.
- the physical address of the CQ block of the HARQ process may be composed of a HARQ process ID, a CB block number, and a CB block length.
- the process ID, the CB block number, and the length of the partial CB block form the TAG (CB_TAG in the figure).
- the TAG comparator compares the value of this TAG with the TAG RAM to determine if it hits the Cache. If there is no hit, you can assign a Cache line to the data that has no hits. This TAG is also written to the TAG RAM for TAG comparison of the next data. When the data of the same address comes next time, a Cache hit can be generated.
- FIG. 6 is a schematic diagram of the HARQ CB block in the Cache RAM. Please note that although the physical addresses of the CB blocks are contiguous, they may be in different locations in the Cache, which is drawn continuously for convenience of explanation. As can be seen, a CB block may have a portion of the Cache line that is empty, ie not fully utilized. However, the division of this CB address allows a CB to propose the same upper TAG, which is available for the TAG CRC status bit.
- FIG. 7 is a schematic diagram of setting the TAG CRC status bit. Since the process number of each HARQ plus the CB block number is unique (herein referred to as CRC_TAG), this part of the information can be transmitted to the channel decoder, and the CRC result of the CB block after the channel decoder's CRC result comes out. It is sent back to the Cache controller along with the corresponding CRC_TAG value. Inside the Cache, there is a set of storage units that record the value of the CRC_TAG and the CRC status register (CRC_PASS) of whether the CRC of the corresponding CB block passes. These two sets of values are used to define the replacement method of the Cache line.
- CRC_TAG the process number of each HARQ plus the CB block number is unique
- the present invention Based on the replacement algorithms commonly used in the industry, such as "random" and least recently used replacement algorithm (LRU), the present invention further improves the results of CRC-PASS and the transmitted CRC-Tag.
- LRU least recently used replacement algorithm
- the CB block is also merged with the next data, and can be flexibly processed by using a Cache_Line_Relpace register bit:
- Cache_Line_Relpace is set to 1, the Cache line can be replaced, even though The content in the Cache line is to be used;
- the invention is suitable for HARQ combiners with programmable or non-programmable control components.
- the invention provides a HARQ combiner with Cache and a HARQ data storage method.
- the present invention has a very good beneficial effect on reducing chip area and power consumption and improving competition. In the current and future of communication technologies with ever-increasing data rates, this approach will have significant strategic implications.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种混合自动重传请求(HARQ)数据存储方法,包括:HARQ处理器接收到编码块的新数据时,将该新数据写入高速缓冲存储器(Cache)和信道解码器;所述Cache将所述新数据写入Cache的数据存储器或者写入外部存储器中;HARQ处理器接收到编码块的重传数据时,通过Cache从Cache的数据存储器或者外部存储器获取该重传数据对应的先前数据,将重传数据和先前数据进行合并,将合并后的数据写入Cache和信道解码器;所述Cache将所述合并后的数据写入Cache的数据存储器或者写入外部存储器中。本发明还提供一种HARQ合并器。本发明对降低芯片面积和功耗,提高竞争方面有非常好的有益效果。
Description
一种 HARO合并器和 HAR0数据存储方法
技术领域
本发明涉及在现代通信技术, 如 3G/高速下行分组接入(High Speed Downlink Packet Access, HSDPA ) , 长期演进( Long Term Evolution, LTE ) 和全球微波互联接入 ( Worldwide Interoperability for Microwave Access , WiMax ) 中, 所使用的混合自动重传请求(Hybrid Automatic Repeat Request, 简称 HARQ)的技术, 尤其涉及一种 HARQ合并器和 HARQ数据存储方法。 背景技术
无线通信技术如 HSDPA中就开始使用了混合式自动重送请求( HARQ ) 技术。 由于无线信道的干扰和衰落的存在, 在解码接收的信息出错误时(如 循环冗余校验(Cyclic Redundancy Check, CRC )进行校验出错), 接收端可 以要求发送端重新发送信息到接收端, 重发的信息可以同原来信息一样或不 一样。 接收端可以利用上次收到的信息和当前重发的信息, 把两者结合起来 进行解析, 以便得到正确的信息。 由于要将原来的信息保留下来, 以便同下 一次进行合并处理, 这些信息需要使用存储器来保存。
接收端需要使用存储器来存储所有有错误的信息包, 放在称为 HARQ软 比特緩冲器( soft bit Buffer )或 HARQ存储器内。 对于数据速率相对较低的 HSDPA, 这种用于存放 HARQ信息的存储器相对较小, 可以用片内静态随机 存储器( Static Random Access Memory, SRAM )来实现。 当出现数据的高速 率和多个 HARQ进程 ( Processes )时,这种存储器有时是相当大的。对于 LTE 技术, 数据速率较大, 如 Category 3 , 其数据速率为上行 50Mbps 和下行 100Mbps, 其下行总的软比特数为 1237248个(如表 1所示) 。 若以 8个比 特来表达一个软比特, 支持 Category 3需要 1.2Mbyte的存储器。 片上使用这 么大的存储器(SRAM )将使得芯片面积增加而缺乏竟争力。
表 1 由终端 catergory决定的下行物理层参数值( Downlink physical layer parameter values set by UE Category )
一个传输时间间
下行空间复用支 一个传输时间间隔 隔内一个下行共
持的最大层数 内最大下行共享信 享信道传输块的
总软信道比特 ( Maximum 道传输块比特数 最 大 比 特 数
数 ( Total number of
UE ( Maximum number Maximum number
number of supported of DL-SCH of bits of a
Category soft channel layers for transport block DL-SCH
bits ) spatial bits received transport
multiplexing within a TTI ) block received
in DL ) within a TTI
Category 1 10296 10296 250368 1
Category 2 51024 51024 1237248 2
Category 3 102048 75376 1237248 2
Category 4 150752 75376 1827072 2
Category 5 302752 151376 3667200 4
为了降低芯片面积, HARQ存储器可以用片外 DDR/双倍速率同步动态 随机存储器 SDRAM ( Double Data Rate SDRAM )来实现。 但片外 SDRAM 的实现占用了大量的 DDR/SDRAM的带宽, 不仅如此, 大量的片外存储器的 存取将直接增加芯片的功耗。 因此, 现有 HARQ存储器亟待改进。 发明内容
本发明要解决的技术问题是提供一种 HARQ合并器及 HARQ数据存储方 法, 降低基带芯片的面积和功耗。
为了解决上述问题, 本发明提供了一种 HARQ数据存储方法, 包括:
HARQ处理器接收到编码块的新数据时, 将该新数据写入 Cache和信道 解码器; 所述 Cache将所述新数据写入 Cache的数据存储器或者写入外部存 储器中; 以及
HARQ处理器接收到编码块的重传数据时, 通过 Cache从 Cache的数据 存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和先前
数据进行合并, 将合并后的数据写入 Cache和信道解码器; 所述 Cache将所 述合并后的数据写入 Cache的数据存储器或者写入外部存储器中。
上述方法还可具有以下特点, 所述数据存储器中包括若干个 Cache线; 所述 Cache将编码块的新数据或合并后的数据写入 Cache的数据存储器 时包括: 将所述新数据或合并后的数据写入数据存储器的 Cache线, 记录该 Cache线的标签至标签存储器, 所述标签为所述 Cache线中存储的所述新数 据或合并后的数据的高位地址;
所述 HARQ处理器接收到编码块的重传数据时, 获取该重传数据对应的 先前数据的步骤之前还包括: 向 Cache发出读取先前数据的控制信号; 所述 Cache接收到所述读取先前数据的控制信号时, 查找所述标签存储器中是否 存在与所述重传数据的高位地址相同的标签, 如果存在, 则所述先前数据保 存在所述标签对应的 Cache线中, 所述 Cache从所述 Cache线中将先前数据 读出至 HARQ处理器;否则,先前数据不在 Cache的数据存储器中,所述 Cache 将外部存储器中的先前数据读到 Cache中的緩冲器后, 再读出至 HARQ处理 器。
上述方法还可具有以下特点,如果先前数据不在 Cache的数据存储器中, 从外部存储器中读取先前数据到緩冲器后, 该方法还包括: 按如下方式将先 前数据写入 Cache:
对 Cache进行查找, 查找所述标签存储器中是否存在与所述先前数据的 高位地址相同的标签:
如果存在, 则将该先前数据写入所述标签对应的 Cache线;
如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写 入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将先前数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者步骤(b ) : 保留所 分配的 Cache线中的数据。
上述方法还可具有以下特点, 所述 Cache将所述新数据或者合并后的数 据写入 Cache的数据存储器或外部存储器的步骤包括:
对合并后的数据, 如果进行合并的先前数据在 Cache中时, 合并后的数 据写入该先前数据所在的 Cache线;
对新数据或者进行合并的先前数据不在 Cache中得到的合并后的数据, 所述写入步骤包括:
查找所述标签存储器中是否存在与所述新数据或合并后的数据的高位地 址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器。
上述方法还可具有以下特点, 所述根据预设的置换原则进行 Cache线置 换的步骤包括:
如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将新数据或合并后的数据存入所分配的 Cache线 中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器, 或者, 执 行步骤 (b): 将所述新数据或合并后的数据存入外部存储器。
上述方法还可具有以下特点, 所述进行 Cache线置换的步骤之前, 所述
方法还包括: 设置一 Cache线置换标识, 用于指示是否置换;
在进行 Cache线置换时, 如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 当 Cache线替换标识指示置换时, 则执行所述步骤 (a), 否则, 执 行所述步骤 (b)。
上述方法还可具有以下特点, 所述 HARQ处理器将所述编码块的新数据 或合并后的数据写入信道解码器时, 该方法还包括:
将所述编码块的新数据或合并后的数据的第二标签信息写入所述信道解 码器, 同一编码块的新数据或合并后的数据的第二标签信息相同;
所述 Cache从所述信道解码器接收所述编码块的新数据或合并后的数据 的 CRC校验结果及其第二标签信息,在进行 Cache线置换时,根据所述 Cache 线中已保存的数据的第二标签信息, 查找其对应的 CRC校验结果。
上述方法还可具有以下特点, 所述 HARQ处理器还从所述信道解码器接 收所述编码块的 CRC校验结果并保存;
所述 HARQ获取所述编码块的先前数据之前, 该方法还包括: 接收到编 码块的重传数据时,检查保存的所述编码块的 CRC校验结果, 当所述编码块 的 CRC校验结果指示 CRC正确, 跳过所述编码块; 当所述编码块的 CRC校 验结果指示 CRC错误, 才获取所述编码块的先前数据, 进行合并处理。
本发明还提供一种 HARQ合并器,包括 HARQ处理器和高速緩冲存储器 ( Cache ) , 所述 Cache包括数据存储器, 其中:
所述 HARQ处理器设置为: 接收到编码块的新数据时, 将该新数据写入
Cache和信道解码器; 接收到编码块的重传数据时, 通过 Cache从 Cache的 数据存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和 先前数据进行合并, 将合并后的数据写入 Cache和信道解码器;
所述 Cache设置为: 将所述新数据写入 Cache的数据存储器或者写入外 部存储器中; 还用于返回先前数据至 HARQ 处理器, 将合并后的数据写入 Cache的数据存储器或者写入外部存储器中。
上述合并器还可具有以下特点, 所述 Cache中还包括 Cache控制器、 标 签存储器、 标签比较器, 所述数据存储器中包括若干个 Cache线;
所述 HARQ处理器还设置为: 接收到编码块的重传数据时, 向 Cache发 出读取先前数据的控制信号;
所述 Cache控制器设置为: 将所述所述新数据或合并后的数据写入数据 存储器的 Cache线, 记录该 Cache线的标签至标签存储器, 所述标签为所述 Cache 线中存储的所述新数据或合并后的数据的高位地址; 还用于在接收到 所述读取先前数据的控制信号时, 指示标签比较器进行查找, 获取查找结果, 如果所述重传数据的先前数据在 Cache的数据存储器中, 从查找到的标签对 应的 Cache线中读取先前数据至 HARQ处理器; 否则, 将外部存储器中的先 前数据读到 Cache中的緩冲器后, 再读出至 HARQ处理器中;
所述标签存储器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述重传数据的高位地址相同的标签, 如果存在, 则所述先 前数据保存在所述标签对应的 Cache 线中, 否则, 所述先前数据不在所述 Cache的数据存储器中。
上述合并器还可具有以下特点, 所述 Cache控制器还设置为: 当所述先 前数据不在 Cache的数据存储器中时, 将外部存储器中的先前数据读到緩冲 器后, 还按如下方式将先前数据写入 Cache:
指示标签比较器进行查找, 获取查找结果, 如果标签存储器中存在与所 述先前数据的高位地址相同的标签,则将该先前数据写入已分配的 Cache线; 如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写 入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器, 将先前数据存入所分配的 Cache 线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者(b ) : 保留所分配
的 Cache线中的数据;
所述标签存储器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述先前数据的高位地址相同的标签,返回查找结果至 Cache 控制器。
上述合并器还可具有以下特点, 所述 Cache控制器还设置为: 当进行合 并的先前数据在 Cache中时, 将合并后的数据写入该先前数据所在的 Cache 线; 对新数据以及进行合并的先前数据不在 Cache中得到的合并后的数据, 按如下方式写入:
指示标签比较器进行查找, 获取查找结果, 所述标签存储器中是否存在 与所述新数据或合并后的数据的高位地址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器;
所述标签比较器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述新数据或合并后的数据的高位地址相同的标签, 返回查 找结果至 Cache控制器。
上述合并器还可具有以下特点, 所述 Cache控制器设置为: 按如下方式 根据预设的置换原则进行 Cache线置换:
如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器; ;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器,将新数据或合并后的数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者, 执行 (b): 将所述新数据或合并后的数据存入外部存储器。
上述合并器还可具有以下特点, 所述 Cache中还设置一 Cache线置换标 识, 以指示是否置换;
所述 Cache控制器还设置为:在进行 Cache线置换时,如果所分配的 Cache 线中有数据, 且该数据的 CRC错误, 当 Cache线替换标识指示置换时, 则执 行所述 (a), 否则, 执行所述 (b)。
上述合并器还可具有以下特点, 所述 HARQ处理器还设置为: 将所述编 码块的新数据或合并后的数据写入信道解码器时, 将所述编码块的新数据或 合并后的数据的第二标签信息写入所述信道解码器, 同一编码块的新数据或 合并后的数据的第二标签信息相同;
所述 Cache控制器还设置为: 从所述信道解码器接收所述编码块的新数 据或合并后的数据的 CRC校验结果及其第二标签信息,在进行 Cache线置换 时, 根据所述 Cache线中已保存的数据的第二标签信息, 查找其对应的 CRC 校验结果。
上述合并器还可具有以下特点, 所述 HARQ处理器还设置为: 从所述信 道解码器接收所述编码块的 CRC校验结果并保存;接收到编码块的重传数据 时, 检查保存的所述编码块的 CRC校验结果, 当所述编码块的 CRC校验结 果指示 CRC正确,跳过所述编码块;当所述编码块的 CRC校验结果指示 CRC 错误, 才获取所述编码块的先前数据, 进行合并处理。
本发明提供一种带 Cache的 HARQ合并器和 HARQ数据存储方法。本发 明对降低芯片面积和功耗, 提高竟争方面有非常好的有益效果。 在数据率不 断提高的通信技术的日益发展的当今和未来, 这种方法将具有重大的战略意 义。 附图概述
图 1表示的是一个多核处理器的 SOC基带芯片的通用架构;
图 2表述的是具有 Cache的 HARQ合并器的架构图;
图 3描述的是 HARQ Cache的架构图;
图 4是对本发明的控制逻辑的重发数据处理作进一步描述;
图 5是对 HARQ的 CB块的物理地址的划分示意图;
图 6是 HARQ的 CB块在 Cache RAM中的示意图;
图 7 是设置 TAG CRC状态位的示意图。 本发明的较佳实施方式
本发明将高速緩冲存储器(Cache ) 引入 HARQ合并器, 为无线通信系 统的 HARQ处理提供一种自带 Cache的多层存储器实现方式。 用 Cache取代 片面积和功耗。
为了利用片上 Cache的低成本和高效率以及片外 DDR/SDRAM的大容量 和低成本, 本发明给出了一种具有 Cache的 HARQ动态存储器分配的实现方 法。 根据片上 Cache的存储空间大小的选择, 该 Cache可以用于存储部分编 码块、 一个或多个编码块、 一个或多个 HARQ进程的软比特数据, 并可以动 态更新。 Cache 可以是直接映射 ( Direct Mapped ) , 也可以是组相联 ( set-associative ) 。
本发明提供的 HARQ合并器包括 HARQ处理器和 Cache, 其中: 接收到新数据时, HARQ处理器将该新数据写入 Cache的同时, 也写入 传输信道解码器(如 Turbo、 CRC等, 它可以在 HARQ合并器的外部) ; 接收到重传数据时, HARQ处理器将接收到的新数据和存在于 Cache的 先前数据进行合并, 并将合并的数据写入 Cache的同时, 也写入传输信道解 码器。
HARQ 处理器在给信道解码器送数据包的同时也将该数据包所对应的 HARQ进程的 CB块的高位地址, 即标签(CRC— Tag, 进程号和 CB块号, 参见图 7 )也传递到信道解码器。
传输信道解码器将 CB块的 CRC结果反馈给 Cache控制器的同时, 也将 CB块所对应的 CRC— Tag送到 Cache控制器。 Cache控制器利用 CRC— Tag 和 CRC结果, 来决定 Cache的内容是否在分配新的 Cache线( Cache line )中
被置换(Replace )掉。 在 Cache已有的随机替换算法和最近最少使用替换算 法 ( least recently used replacement algorithm, LRU )等置换算法的基础上 , 本 发明利用 CRC结果和传递的 CRC— Tag提供一种新的置换方法。 考虑到设计 的简化, Cache的 "写 buffer"在分配 Cache 线时, 可以直接进行, 而不必到 外部读取线内可能不完整的数据, 从而降低功耗和面积, 在一个 CB块的数 据不占满它的最后的一个 Cache line时,缺陷是在 Cache中将有部分 Cache line (每个 CB块可最多有一个 Cache line的部分数据 )没有利用上, 但不会出现 错误。 这是一个设计平衡, 如果需要充分利用 cache line的空间, 需要 "写分 配 buffer" ( write allocated Buffer )来拼合来自 HARQ合并器和外部存储器的 数据。
本发明是以编码块(coded block, CB )为处理基础, 由多个编码块所组 成的传输块的处理是在每个编码块处理后再对整个传输块进行总处理(如传 输块的 CRC校验 ) 。
尽管本发明描述中是以 CB块为基础, 由于 Cache Tag的使用, 和 CRC 的结果直接反映在 CRC— Tag中,这种 HARQ Cache同样适合于不以 CB块为 单元的任意数据的处理方式。
本发明包含一个编码块 CRC状态寄存器( CB—CRC— Statu— Reg ) , 每个 编码块对应一个 CRC状态标识, 用来指示编码块的 CRC状态。 其中, 根据 编码块的 CRC结果来设置编码块 CRC状态寄存器中该编码块对应的 CRC状 态标识。 CRC状态标识可以按如下方式取值: CRC状态标识为 1时表示该编 码块 CRC错误, 为 0时表示该编码块的 CRC正确, 当然也可以为 0时标识 该编码块 CRC错误, 为 1时表示该编码块 CRC正确, 本发明对此不作限定。 HARQ合并器可根据 CRC状态标识来控制重传时的数据处理。接收到重传数 据时,如果 CRC状态标识指示 CRC正确(比如 CRC状态标识为 0 ) ,该 CRC 状态标识对应的编码块的处理可以不#文, 从而节省功耗; 如果 CRC状态标识 指示 CRC错误 (比如 CRC状态标识为 1 ) , 该 CRC状态标识对应的编码块 的处理将正常进行。
本发明提供一种 HARQ合并器, 包括 HARQ处理器和高速緩冲存储器 ( Cache ) , 所述 Cache包括 Cache控制器、 数据存储器, 标签存储器和标签
比较器, 所述数据存储器中包括若干个 Cache线, 其中:
所述 HARQ 处理器, 用于接收到编码块的新数据时, 将该新数据写入 Cache和信道解码器; 接收到编码块的重传数据时, 通过 Cache从 Cache的 数据存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和 先前数据进行合并, 将合并后的数据写入 Cache和信道解码器;
所述 Cache, 用于将所述新数据写入 Cache的数据存储器或者写入外部 存储器中;还用于返回先前数据至 HARQ处理器,将合并后的数据写入 Cache 的数据存储器或者写入外部存储器中。
其中, 所述 HARQ处理器, 用于接收到编码块的重传数据时, 向 Cache 发出读取先前数据的控制信号;
所述 Cache控制器, 用于将所述所述新数据或合并后的数据写入数据存 储器的 Cache线,记录该 Cache线的标签至标签存储器,所述标签为所述 Cache 线中存储的所述新数据或合并后的数据的高位地址; 还用于在接收到所述读 取先前数据的控制信号时, 指示标签比较器进行查找, 获取查找结果, 如果 所述重传数据的先前数据在 Cache的数据存储器中, 从查找到的标签对应的 Cache线中读取先前数据至 HARQ处理器; 否则, 将外部存储器中的先前数 据读到 Cache中的緩冲器后, 再读出至 HARQ处理器中;
所述标签存储器, 用于根据 Cache控制器的指示, 查找所述标签存储器 中是否存在与所述重传数据的高位地址相同的标签, 如果存在, 则所述先前 数据保存在所述标签对应的 Cache线中,否则,所述先前数据不在所述 Cache 的数据存储器中。
其中, 所述 Cache控制器, 还用于当所述先前数据不在 Cache的数据存 储器中时, 将外部存储器中的先前数据读到緩冲器后, 还将先前数据写入 Cache, 按如下方式进行:
指示标签比较器进行查找, 获取查找结果, 如果标签存储器中存在与所 述先前数据的高位地址相同的标签,则将该先前数据写入已分配的 Cache线; 如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写 入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器, 将先前数据存入所分配的 Cache 线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者(b ) : 保留所分配 的 Cache线中的数据;
所述标签存储器, 用于根据 Cache控制器的指示, 查找所述标签存储器 中是否存在与所述先前数据的高位地址相同的标签, 返回查找结果至 Cache 控制器。
其中, 所述 Cache控制器, 用于当进行合并的先前数据在 Cache中时, 将合并后的数据写入该先前数据所在的 Cache线; 对新数据以及进行合并的 先前数据不在 Cache中得到的合并后的数据, 如下方式写入:
指示标签比较器进行查找, 获取查找结果, 所述标签存储器中是否存在 与所述新数据或合并后的数据的高位地址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器;
所述标签比较器, 用于根据 Cache控制器的指示, 查找所述标签存储器 中是否存在与所述新数据或合并后的数据的高位地址相同的标签, 返回查找 结果至 Cache控制器。
其中, 所述 Cache控制器, 用于按如下方式根据预设的置换原则进行
Cache线置换:
如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器; ;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器,将新数据或合并后的数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者, 执行 (b): 将所述新数据或合并后的数据存入外部存储器。
其中, 所述 Cache中还设置一 Cache线置换标识, 用于指示是否置换; 所述 Cache控制器, 用于在进行 Cache线置换时, 如果所分配的 Cache 线中有数据, 且该数据的 CRC错误, 当 Cache线替换标识指示置换时, 则执 行所述 (a), 否则, 执行所述 (b)。
其中, 所述 HARQ处理器, 还用于将所述编码块的新数据或合并后的数 据写入信道解码器时, 将所述编码块的新数据或合并后的数据的第二标签信 息写入所述信道解码器, 同一编码块的新数据或合并后的数据的第二标签信 息相同;
所述 Cache控制器, 还用于从所述信道解码器接收所述编码块的新数据 或合并后的数据的 CRC校验结果及其第二标签信息,在进行 Cache线置换时, 根据所述 Cache线中已保存的数据的第二标签信息,查找其对应的 CRC校验 结果。
其中, 所述 HARQ处理器, 还用于从所述信道解码器接收所述编码块的
CRC校验结果并保存; 接收到编码块的重传数据时, 检查保存的所述编码块 的 CRC校验结果, 当所述编码块的 CRC校验结果指示 CRC正确, 跳过所述 编码块; 当所述编码块的 CRC校验结果指示 CRC错误, 才获取所述编码块 的先前数据, 进行合并处理。
本发明还提供一种 HARQ数据存储方法, 包括:
HARQ处理器接收到编码块的新数据时, 将该新数据写入 Cache和信道 解码器; 所述 Cache将所述新数据写入 Cache的数据存储器或者写入外部存
储器中;
HARQ处理器接收到编码块的重传数据时, 通过 Cache从 Cache的数据 存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和先前 数据进行合并, 将合并后的数据写入 Cache和信道解码器; 所述 Cache将所 述合并后的数据写入 Cache的数据存储器或者写入外部存储器中。
所述数据存储器中包括若干个 Cache线;
所述 Cache将编码块的新数据或合并后的数据写入 Cache的数据存储器 时包括: 将所述新数据或合并后的数据写入数据存储器的 Cache线, 记录该 Cache线的标签至标签存储器, 所述标签为所述 Cache线中存储的所述新数 据或合并后的数据的高位地址;
所述 HARQ处理器接收到编码块的重传数据时, 向 Cache发出读取先前 数据的控制信号; 所述 Cache接收到所述读取先前数据的控制信号时, 查找 所述标签存储器中是否存在与所述重传数据的高位地址相同的标签, 如果存 在, 则所述先前数据保存在所述标签对应的 Cache线中, 所述 Cache从所述 Cache线中将先前数据读出至 HARQ处理器; 否则, 先前数据不在 Cache的 数据存储器中, 所述 Cache将外部存储器中的先前数据读到 Cache中的緩冲 器后, 再读出至 HARQ处理器。
其中, 如果先前数据不在 Cache的数据存储器中, 从外部存储器中读取 先前数据到緩冲器后, 还将先前数据写入 Cache, 按如下方式进行:
对 Cache进行查找, 查找所述标签存储器中是否存在与所述先前数据的 高位地址相同的标签:
如果存在, 则将该先前数据写入所述标签对应的 Cache线;
如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的
Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写
入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将先前数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者步骤(b ) : 保留所 分配的 Cache线中的数据。
其中,所述 Cache按如下方式将所述新数据或者合并后的数据写入 Cache 的数据存储器或外部存储器:
对合并后的数据, 如果进行合并的先前数据在 Cache中时, 合并后的数 据写入该先前数据所在的 Cache线;
对新数据以及进行合并的先前数据不在 Cache中得到的合并后的数据, 如下方式写入:
查找所述标签存储器中是否存在与所述新数据或合并后的数据的高位地 址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器。
其中, 所述根据预设的置换原则进行 Cache线置换包括:
如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将新数据或合并后的数据存入所分配的 Cache线 中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器, 或者, 执 行步骤 (b): 将所述新数据或合并后的数据存入外部存储器。
其中, 还设置一 Cache线置换标识, 用于指示是否置换; 在进行 Cache
线置换时,如果所分配的 Cache线中有数据,且该数据的 CRC错误,当 Cache 线替换标识指示置换时, 则执行所述步骤 (a), 否则, 执行所述步骤 (b)。
其中, 所述 HARQ处理器将所述编码块的新数据或合并后的数据写入信 道解码器时, 将所述编码块的新数据或合并后的数据的第二标签信息写入所 述信道解码器, 同一编码块的新数据或合并后的数据的第二标签信息相同; 所述 Cache从所述信道解码器接收所述编码块的新数据或合并后的数据 的 CRC校验结果及其第二标签信息,在进行 Cache线置换时,根据所述 Cache 线中已保存的数据的第二标签信息, 查找其对应的 CRC校验结果。
其中, 所述 HARQ处理器还从所述信道解码器接收所述编码块的 CRC 校验结果并保存; 所述 HARQ接收到编码块的重传数据时, 检查保存的所述 编码块的 CRC校验结果, 当所述编码块的 CRC校验结果指示 CRC正确, 跳 过所述编码块; 当所述编码块的 CRC校验结果指示 CRC错误, 才获取所述 编码块的先前数据, 进行合并处理。
图 1表示的是一个多核处理器的 SOC基带芯片的通用架构。在这个特定 的例子中,它含有数字信号处理器(DSP )和 CPU (如 ARM处理器)、 DMA、 外设( peripherals ) 、 Modem加速器、 信道解码器( Turbo、 CRC等)。 HARQ 是调制解调器 (Modem )加速器的一部分, 它可以作为总线的控者。 SRAM 是片上存储器。 HARQ合并器在 SOC的位置使得它可以利用片上 Cache、 片 上 SRAM和片外 DDR/SDRAM。当读 Cache中的数据时,如果数据不在 Cache 中,即 Cache Miss, Cache的线填充( linefill Buffer )可以将 SRAM、 DDR/SDRAM 的数据读到 HARQ合并器中。
图 2表述的是具有 Cache的 HARQ合并器的架构图。 从图中可以看出, 接收的数据, 这里是指从射频接收的 I, Q数据, 经过 ADC (数模转换) 、 滤波、 和前处理如信道估计、 MIMO、 均衡器等产生出 LLR (对数似然比)的软 比特, 并存储在緩冲器(Buffer )中。 HARQ合并器的总控制器根据对当前进 程和 CB块的起始地址、 数据块大小和状态 (新数据或重转)等来产生控制 信号, 从緩冲器读取软比特数据。
其中, HARQ合并器包括 HARQ处理器和 Cache, 其中, HARQ处理器 包括 HARQ控制器和数据合并处理单元。
如果是新数据, 该数据可以写入信道解码器(如 Turbo ) 的输入緩冲器 ( Input Buffer ) 的同时也写进 Cache中。 Cache可以设置成写分配 Cache 线 的政策, 当 Cache Miss的时候, 分配一条 Cache line给这个数据, 并记下高 位地址( CB Tag )的值。为了并行操作,操作的数据大小可以是一个 Cache line。 而 Cache line的长度可以是一个 DDR并发( burst ) 的长度。 当 Cache hit时, 该数据将写进 Cache, 其中, 由标签比较器比较标签寄存器中中的 CB— TAG 与新数据的 CB— TAG进行比较,如果标签寄存器中存在与新数据的 CB— TAG 相同的 CB— TAG, 则 Cache hit, 否则, Cache miss。
如果是重传数据, 该重传数据要同先前数据进行合并。 HARQ控制器根 据对当前进程和 CB块的地址, 查找先前数据是否 Cache中。 如果先前数据 在 Cache中, 产生 Cache hit, 并将先前数据 (或整个 Cache line )读出至数据 合并处理单元与重传数据进行合并。 如果先前数据不在 Cache 中 (Cache miss ) , Cache控制器产生一个线填充命令, 将外部存储器的内容读到 Cache 中并同时送到数据合并处理单元进行重传数据与先前数据的合并。 合并后的 数据再送回 Cache和信道解码器(如 Turbo ) 的输入緩冲器中。
CB块数据全部写到信道解码器 (如 Turbo )的输入緩冲器同时,也将 CB 块的高位地址(CRC_Tag )写入信道解码器。
在一个 CB块的数据全部写到信道解码器 (如 Turbo ) 的输入緩冲器后, 启动信道解码器和 CRC校验器。 信道解码器将 CRC结果反馈给 HARQ处理 器的同时, 也将相应的 CRC— Tag送回到 Cache控制器。
图 3描述的是 HARQ Cache的架构图。 从图中可以看出, HARQ Cache 包括:
连接 HARQ处理器的读写接口如控制信号、 地址信号和数据信号。 它还 含有存取外部存储器的总线接口, 用于连接 SOC的总线, 如 Cross-Bar总线。
HARQ控制器, 用于控制和协调 Cache的工作。
HARQ Cache有至少三个緩冲器( Buffer ),分别是写緩冲器( Write buffer )、
线读緩冲器(Line Read Buffer )和线填充緩冲器( Line fill Buffer ) 。
写緩冲器接收 HARQ处理器的写数据,并写入到 Cache或外部存储器中。 线读緩冲器在 Cache hit时, 读取一条 Cache 线并送到 HARQ处理器用 于合并。
线填充緩冲器读取外部存储器的内容送 HARQ处理器和 Cache line。
HARQ Cache含有两个多路选择器, 以选择不同的数据流。 例如读数据 可从线读緩冲器或线填充緩冲器中选取; 写数据可从线读緩冲器或写緩冲器 中选取。
HARQ Cache还有一个 Tag比较器( TAG Comparator ) , 用于 Cache的 Tag比较来确定数据是否在 Cache中。
HARQ Cache还包括数据存储器( Data RAM )用于存放数据( Cache line ), 标签存储器(Tag RAM )用于存放 Tag的值。
HARQ Cache还包括 CRC接口, 信道解码器将 CRC结果( CRC_PASS ) 和相应 CRC— TAG值送回到 Cache的控制器中, 这两组值将在 Cache替换算 法中决定是否置换一条 Cache line。
图 4是对本发明的控制逻辑的重传数据处理作进一步描述。 对新数据, 每个 CB块都要处理, 而对重传数据,原来 CRC正确的 CB块可以不用处理。 对重传数据, 控制器查看 CRC状态寄存器(CB— CRC— Statu— Reg, 这个寄存 器与 CRC— PASS的值是一样的)的内容(该内容是由信道解码器传送过来的 ), 如果对应 CB的 CRC状态比特为 0, 说明上次 CRC正确, 无需处理。 如果对 应 CB的 CRC状态比特为 1 , 说明上次 CRC错误, 该 CB块要进行处理。
图 5是对 HARQ的 CB块的物理地址的划分, 其中 Tag部分将存于 Tag RAM中。 数据存于 Data RAM中, 图中所示每行为一个线(line ) 。 HARQ 进程 CB块的物理地址可由 HARQ进程号 ( process ID ) 、 CB块号和 CB块 长度所组成。 进程号( process ID ) 、 CB块号和部分 CB块长度构成 TAG (图 中 CB— TAG ) 。 TAG比较器将这个 TAG的值与 TAG RAM相比较来决定是 否命中 Cache。 如果没有命中, 可以分配一条 Cache线给没有命中的数据,
这个 TAG同时也写到 TAG RAM中, 用于下次数据的 TAG比较。 同样地址 的数据下次来时, 就可以产生命中 (Cache hit ) 。
图 6是 HARQ的 CB块在 Cache RAM中的示意图,请注意尽管 CB块的 物理地址是连续的, 但在 Cache中可能会在不同的位置上, 这里为了解释方 便,画成连续的。图中可见,一个 CB块可能有一个 Cache line上有部分为空, 即没有充分使用。但这种 CB地址的划分可以使得一个 CB可以提出相同的高 位 TAG, 可供 TAG CRC状态位的设置。
图 7 是设置 TAG CRC状态位的示意图。 由于每个 HARQ的进程号加上 CB块号是唯一的(这里称为 CRC— TAG ) , 这部分信息可以传送到信道解码 器, 在信道解码器的 CRC 结果出来后, 该 CB 块的 CRC 结果和对应的 CRC— TAG值一起送回到 Cache控制器。 在 Cache内部有一组存储部件记录 CRC— TAG 的值和相应 CB 块的 CRC 是否通过的 CRC 状态寄存器 ( CRC— PASS ) , 利用这两组值来定义 Cache线的替换方法。
下面说明一下本发明提出的 HARQ Cache线的替换方法。 在业界常用的 "随机" 和最近最少使用替换算法(LRU )等置换算法的基础上, 本发明利 用 CRC— PASS的结果和传递的 CRC— Tag做进一步的改进。
当有 Cache不命中时( Cache Miss ) , 由选用的随机或 LRU替代算法所 找到被替换的 Cache线后, CRC— Tag的值同该 Cache线原来存在于 TAG RAM 中的 TAG所对应的值进行比较:
如果没有相同的值, 则该 Cache线可以被替换掉;
如果有与 CRC— TAG相同的值,则查看该 CRC— TAG所对应的 CRC— PASS 的值:
a、如果该 CRC— PASS的值是 0,说明这个 CB块 CRC正确,所以该 Cache 线可以替换掉;
b、 如果该 CRC— PASS的值是 1 , 说明这个 CB块 CRC错误, 该 CB块 还要同下次的数据进行合并, 可以用一个 Cache— Line— Relpace寄存器比特来 灵活处理:
如果设置 Cache— Line— Relpace为 1 , 则该 Cache线可以被替换, 尽管该
Cache线中的内容是要被使用的;
如果设置 CB— line— Relpace为 0, 则该 Cache线不能被替换, 因此当前的 数据是不能保留在 Cache里的, 又分两种情况:
1 )如果是读 cache时,从外部存储器的读取的数据直接送 HARQ合并器, Cache中将没有保留这部分数据;
2 )如果是写 Cache时, 从 HARQ处理器送来的数据, 将直接送到外部 存储器, 不在 Cache中保留。
该发明适合于的含有可编程或不可编程控制部件的 HARQ合并器。
工业实用性
本发明提供一种带 Cache的 HARQ合并器和 HARQ数据存储方法。本发 明对降低芯片面积和功耗, 提高竟争方面有非常好的有益效果。 在数据率不 断提高的通信技术的日益发展的当今和未来, 这种方法将具有重大的战略意 义。
Claims
1、 一种混合自动重传请求(HARQ )数据存储方法, 包括:
HARQ处理器接收到编码块的新数据时, 将该新数据写入高速緩冲存储 器( Cache )和信道解码器; 所述 Cache将所述新数据写入 Cache的数据存储 器或者写入外部存储器中; 以及
HARQ处理器接收到编码块的重传数据时, 通过 Cache从 Cache的数据 存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和先前 数据进行合并, 将合并后的数据写入 Cache和信道解码器; 所述 Cache将所 述合并后的数据写入 Cache的数据存储器或者写入外部存储器中。
2、 如权利要求 1所述的方法, 其中,
所述数据存储器中包括一个或多个 Cache线;
所述 Cache将编码块的新数据或合并后的数据写入 Cache的数据存储器 时包括: 将所述新数据或合并后的数据写入数据存储器的 Cache线, 记录该 Cache线的标签至标签存储器, 所述标签为所述 Cache线中存储的所述新数 据或合并后的数据的高位地址;
所述 HARQ处理器接收到编码块的重传数据时, 获取该重传数据对应的 先前数据的步骤之前还包括: 向 Cache发出读取先前数据的控制信号; 所述 Cache接收到所述读取先前数据的控制信号时, 查找所述标签存储器中是否 存在与所述重传数据的高位地址相同的标签, 如果存在, 则所述先前数据保 存在所述标签对应的 Cache线中, 所述 Cache从所述 Cache线中将先前数据 读出至 HARQ处理器;否则,先前数据不在 Cache的数据存储器中,所述 Cache 将外部存储器中的先前数据读到 Cache中的緩冲器后, 再读出至 HARQ处理 哭口
3、 如权利要求 2所述的方法, 其中, 如果先前数据不在 Cache的数据存 储器中, 从外部存储器中读取先前数据到緩冲器后, 该方法还包括: 按如下 方式将先前数据写入 Cache:
对 Cache进行查找, 查找所述标签存储器中是否存在与所述先前数据的 高位地址相同的标签: 如果存在, 则将该先前数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写 入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将先前数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者步骤(b ) : 保留所 分配的 Cache线中的数据。
4、 如权利要求 2所述的方法, 其中,
所述 Cache将所述新数据或者合并后的数据写入 Cache的数据存储器或 外部存储器的步骤包括:
对合并后的数据, 如果进行合并的先前数据在 Cache中时, 合并后的数 据写入该先前数据所在的 Cache线;
对新数据或者进行合并的先前数据不在 Cache中得到的合并后的数据, 所述写入步骤包括:
查找所述标签存储器中是否存在与所述新数据或合并后的数据的高位地 址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器。
5、 如权利要求 4所述的方法, 其中,
所述根据预设的置换原则进行 Cache线置换的步骤包括: 如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据,且该数据的 CRC错误,则执行步骤 (a): 将该数据存入外部存储器, 将新数据或合并后的数据存入所分配的 Cache线 中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器, 或者, 执 行步骤 (b): 将所述新数据或合并后的数据存入外部存储器。
6、 如权利要求 3或 5所述的方法, 所述进行 Cache线置换的步骤之前, 所述方法还包括:
设置一 Cache线置换标识, 用于指示是否置换;
在进行 Cache线置换时, 如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 当 Cache线替换标识指示置换时, 则执行所述步骤 (a), 否则, 执 行所述步骤 (b)。
7、 如权利要求 3或 5所述的方法, 其中,
所述 HARQ处理器将所述编码块的新数据或合并后的数据写入信道解码 器时, 该方法还包括:
将所述编码块的新数据或合并后的数据的第二标签信息写入所述信道解 码器, 同一编码块的新数据或合并后的数据的第二标签信息相同;
所述 Cache从所述信道解码器接收所述编码块的新数据或合并后的数据 的 CRC校验结果及其第二标签信息,在进行 Cache线置换时,根据所述 Cache 线中已保存的数据的第二标签信息, 查找其对应的 CRC校验结果。
8、 如权利要求 1所述的方法, 所述方法还包括:
所述 HARQ处理器还从所述信道解码器接收所述编码块的 CRC校验结 果并保存;
所述 HARQ获取所述编码块的先前数据之前, 该方法还包括: 接收到编 码块的重传数据时,检查保存的所述编码块的 CRC校验结果, 当所述编码块 的 CRC校验结果指示 CRC正确, 跳过所述编码块; 当所述编码块的 CRC校 验结果指示 CRC错误, 才获取所述编码块的先前数据, 进行合并处理。
9、 一种混合自动重传请求(HARQ )合并器, 包括 HARQ处理器和高速 緩冲存储器(Cache ) , 所述 Cache包括数据存储器, 其中:
所述 HARQ处理器设置为: 接收到编码块的新数据时, 将该新数据写入
Cache和信道解码器; 接收到编码块的重传数据时, 通过 Cache从 Cache的 数据存储器或者外部存储器获取该重传数据对应的先前数据, 将重传数据和 先前数据进行合并, 将合并后的数据写入 Cache和信道解码器;
所述 Cache设置为: 将所述新数据写入 Cache的数据存储器或者写入外 部存储器中; 返回先前数据至 HARQ处理器, 将合并后的数据写入 Cache的 数据存储器或者写入外部存储器中。
10、 如权利要求 9所述的合并器, 其中,
所述 Cache中还包括 Cache控制器、 标签存储器、 标签比较器, 所述数 据存储器中包括一个或多个 Cache线;
所述 HARQ处理器还设置为: 接收到编码块的重传数据时, 向 Cache发 出读取先前数据的控制信号;
所述 Cache控制器设置为: 将所述所述新数据或合并后的数据写入数据 存储器的 Cache线, 记录该 Cache线的标签至标签存储器, 所述标签为所述 Cache 线中存储的所述新数据或合并后的数据的高位地址; 在接收到所述读 取先前数据的控制信号时, 指示标签比较器进行查找, 获取查找结果, 如果 所述重传数据的先前数据在 Cache的数据存储器中, 从查找到的标签对应的 Cache线中读取先前数据至 HARQ处理器; 否则, 将外部存储器中的先前数 据读到 Cache中的緩冲器后, 再读出至 HARQ处理器中;
所述标签存储器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述重传数据的高位地址相同的标签, 如果存在, 则所述先 前数据保存在所述标签对应的 Cache 线中, 否则, 所述先前数据不在所述 Cache的数据存储器中。
11、 如权利要求 10所述的合并器, 其中, 所述 Cache控制器还设置为: 当所述先前数据不在 Cache的数据存储器 中时, 将外部存储器中的先前数据读到緩冲器后, 还按如下方式将先前数据 写入 Cache:
指示标签比较器进行查找, 获取查找结果, 如果标签存储器中存在与所 述先前数据的高位地址相同的标签,则将该先前数据写入已分配的 Cache线; 如果不存在, 则分配 Cache线给该先前数据, 按如下方式进行 Cache线 置换:
如果所分配的 Cache线中无数据, 则直接将所述先前数据写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用先前数 据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更新后的标签写 入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器, 将先前数据存入所分配的 Cache 线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者(b ) : 保留所分配 的 Cache线中的数据;
所述标签存储器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述先前数据的高位地址相同的标签,返回查找结果至 Cache 控制器。
12、 如权利要求 10所述的合并器, 其中,
所述 Cache控制器还设置为: 当进行合并的先前数据在 Cache中时, 将 合并后的数据写入该先前数据所在的 Cache线; 对新数据以及进行合并的先 前数据不在 Cache中得到的合并后的数据, 按如下方式写入:
指示标签比较器进行查找, 获取查找结果, 所述标签存储器中是否存在 与所述新数据或合并后的数据的高位地址相同的标签:
如果存在,则将该新数据或合并后的数据写入所述标签对应的 Cache线; 如果不存在, 则分配 Cache线给该新数据或合并后的数据, 根据预设的 置换原则进行 Cache 线置换, 将所述新数据或合并后的数据写入所分配的 Cache线, 或者, 写入外部存储器;
所述标签比较器设置为: 根据 Cache控制器的指示, 查找所述标签存储 器中是否存在与所述新数据或合并后的数据的高位地址相同的标签, 返回查 找结果至 Cache控制器。
13、 如权利要求 12所述的合并器, 其中,
所述 Cache控制器设置为: 按如下方式根据预设的置换原则进行 Cache 线置换:
如果所分配的 Cache线中无数据, 则直接将所述新数据或合并后的数据 写入所分配的 Cache线中, 记录所述 Cache线的标签至标签存储器; ;
如果所分配的 Cache线中有数据, 且该数据的 CRC正确, 则使用新数据 或合并后的数据替换该 Cache线中的数据, 并更新该 Cache线的标签, 将更 新后的标签写入标签寄存器;
如果所分配的 Cache线中有数据, 且该数据的 CRC错误, 则执行 (a): 将 该数据存入外部存储器,将新数据或合并后的数据存入所分配的 Cache线中, 并更新该 Cache线的标签, 将更新后的标签写入标签寄存器; 或者, 执行 (b): 将所述新数据或合并后的数据存入外部存储器。
14、 如权利要求 11或 13所述的合并器, 其中,
所述 Cache中还设置一 Cache线置换标识, 以指示是否置换;
所述 Cache控制器还设置为:在进行 Cache线置换时,如果所分配的 Cache 线中有数据, 且该数据的 CRC错误, 当 Cache线替换标识指示置换时, 则执 行所述 (a), 否则, 执行所述 (b)。
15、 如权利要求 11或 13所述的合并器, 其中,
所述 HARQ处理器还设置为: 将所述编码块的新数据或合并后的数据写 入信道解码器时, 将所述编码块的新数据或合并后的数据的第二标签信息写 入所述信道解码器, 同一编码块的新数据或合并后的数据的第二标签信息相 同;
所述 Cache控制器还设置为: 从所述信道解码器接收所述编码块的新数 据或合并后的数据的 CRC校验结果及其第二标签信息,在进行 Cache线置换 时, 根据所述 Cache线中已保存的数据的第二标签信息, 查找其对应的 CRC 校验结果。
16、 如权利要求 9所述的合并器, 其中,
所述 HARQ处理器还设置为:从所述信道解码器接收所述编码块的 CRC 校验结果并保存;接收到编码块的重传数据时,检查保存的所述编码块的 CRC 校验结果, 当所述编码块的 CRC校验结果指示 CRC正确, 跳过所述编码块; 当所述编码块的 CRC校验结果指示 CRC错误, 才获取所述编码块的先前数 据, 进行合并处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10848754.7A EP2432151B1 (en) | 2010-03-30 | 2010-10-19 | Harq combiner and method for storing harq data |
US13/379,683 US8694731B2 (en) | 2010-03-30 | 2010-10-19 | Hybrid automatic repeat request combiner and method for storing hybrid automatic repeat request data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010139790.3A CN102208966B (zh) | 2010-03-30 | 2010-03-30 | 一种harq合并器和harq数据存储方法 |
CN201010139790.3 | 2010-03-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011120295A1 true WO2011120295A1 (zh) | 2011-10-06 |
Family
ID=44697642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2010/077878 WO2011120295A1 (zh) | 2010-03-30 | 2010-10-19 | 一种harq合并器和harq数据存储方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8694731B2 (zh) |
EP (1) | EP2432151B1 (zh) |
CN (1) | CN102208966B (zh) |
WO (1) | WO2011120295A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290875A (zh) * | 2018-12-10 | 2020-06-16 | 深圳市中兴微电子技术有限公司 | Harq数据存储管理方法、装置和harq数据缓存器 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214144B (zh) * | 2010-04-02 | 2014-03-12 | 中兴通讯股份有限公司 | 一种harq存储器的分层管理方法和系统 |
CN103503356A (zh) * | 2011-01-07 | 2014-01-08 | 联发科技股份有限公司 | 装置和优化混合自动请求重传缓冲的方法 |
CN103166747B (zh) * | 2011-12-14 | 2017-12-29 | 中兴通讯股份有限公司 | 一种harq合并的方法及装置 |
US20130262952A1 (en) * | 2012-03-30 | 2013-10-03 | Broadcom Corporation | Memory architecture for turbo decoder |
CN103684709A (zh) * | 2012-09-05 | 2014-03-26 | 京信通信系统(中国)有限公司 | 一种重传数据的合并方法及装置 |
US9204437B2 (en) * | 2013-02-27 | 2015-12-01 | Qualcomm Incorporated | Methods and apparatus for conditional offload of one or more log-likelihood ratios (LLRs) or decoded bits |
CN103207844B (zh) * | 2013-04-18 | 2017-06-06 | 上海云间半导体科技有限公司 | 缓存系统及缓存访问方法 |
CN105515719B (zh) * | 2014-09-24 | 2019-04-26 | 中兴通讯股份有限公司 | 一种数据传输方法及装置 |
CN105991246B (zh) * | 2015-02-10 | 2019-04-02 | 中国移动通信集团公司 | 一种数据重传方法及装置 |
US10862630B2 (en) | 2015-02-13 | 2020-12-08 | Samsung Electronics Co., Ltd | Method and system for contiguous HARQ memory management with memory splitting |
DE102015110027B4 (de) * | 2015-06-23 | 2017-01-12 | Intel IP Corporation | Kommunikationsvorrichtung und verfahren zum speichern von daten |
US20170017394A1 (en) * | 2015-07-15 | 2017-01-19 | Futurewei Technologies, Inc. | SYSTEM AND METHOD FOR DATA WAREHOUSE AND FINE GRANULARITY SCHEDULING FOR SYSTEM ON CHIP (SoC) |
CN106411479B (zh) * | 2015-07-31 | 2019-06-18 | 联芯科技有限公司 | 基于harq技术的数据接收端及其数据传输方法 |
CN105843360B (zh) * | 2016-03-23 | 2018-06-12 | 中国电子科技集团公司第三十八研究所 | 一种降低指令高速缓冲存储器功耗的装置及方法 |
US9798672B1 (en) * | 2016-04-14 | 2017-10-24 | Macom Connectivity Solutions, Llc | Data managment for cache memory |
US10700820B2 (en) * | 2017-12-21 | 2020-06-30 | Samsung Electronics Co., Ltd. | Modem chips and receivers for performing hybrid automatic repeat request processing |
CN111694770B (zh) * | 2019-03-15 | 2022-12-02 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
US10911329B2 (en) * | 2019-05-13 | 2021-02-02 | Cisco Technology, Inc. | Path and cadence optimization for efficient data collection from devices |
CN110825263B (zh) | 2019-10-31 | 2021-07-09 | 厦门天马微电子有限公司 | 阵列基板及驱动方法、显示面板及触控显示装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567761A (zh) * | 2003-07-08 | 2005-01-19 | 上海贝尔阿尔卡特股份有限公司 | 正交频分复用系统中混合自动重传请求的合并方法 |
WO2009075899A1 (en) * | 2007-12-13 | 2009-06-18 | Qualcomm Incorporated | Coding block based harq combining for ofdma systems |
CN101510817A (zh) * | 2009-03-27 | 2009-08-19 | 深圳华为通信技术有限公司 | 混合自动重传请求的接收方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132260B (zh) * | 2006-08-22 | 2010-06-23 | 中兴通讯股份有限公司 | 增强上行链路异步混合自动重传请求的重传控制方法 |
CN100574169C (zh) * | 2007-04-30 | 2009-12-23 | 重庆重邮信科通信技术有限公司 | Harq技术数据缓存的设计方法及其电路 |
TW200908603A (en) * | 2007-05-04 | 2009-02-16 | Amicus Wireless Technology Co Ltd | System and method for performing a HARQ operation in an OFDM-based receiver |
EP2269338B1 (en) * | 2008-03-31 | 2015-09-16 | Marvell World Trade Ltd. | Method and apparatus for selective combining and decoding of the multiple code blocks of a transport block |
KR20100009185A (ko) * | 2008-07-18 | 2010-01-27 | 삼성전자주식회사 | 이동통신 단말기의 harq 버스트 처리 장치 및 방법 |
US8392781B2 (en) * | 2009-01-13 | 2013-03-05 | Texas Instruments Incorporated | Hybrid-ARQ (HARQ) with scrambler |
WO2010122374A1 (en) * | 2009-04-24 | 2010-10-28 | Nokia Corporation | Method and apparatus for delta data storage |
-
2010
- 2010-03-30 CN CN201010139790.3A patent/CN102208966B/zh active Active
- 2010-10-19 WO PCT/CN2010/077878 patent/WO2011120295A1/zh active Application Filing
- 2010-10-19 EP EP10848754.7A patent/EP2432151B1/en active Active
- 2010-10-19 US US13/379,683 patent/US8694731B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567761A (zh) * | 2003-07-08 | 2005-01-19 | 上海贝尔阿尔卡特股份有限公司 | 正交频分复用系统中混合自动重传请求的合并方法 |
WO2009075899A1 (en) * | 2007-12-13 | 2009-06-18 | Qualcomm Incorporated | Coding block based harq combining for ofdma systems |
CN101510817A (zh) * | 2009-03-27 | 2009-08-19 | 深圳华为通信技术有限公司 | 混合自动重传请求的接收方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290875A (zh) * | 2018-12-10 | 2020-06-16 | 深圳市中兴微电子技术有限公司 | Harq数据存储管理方法、装置和harq数据缓存器 |
CN111290875B (zh) * | 2018-12-10 | 2023-06-09 | 深圳市中兴微电子技术有限公司 | Harq数据存储管理方法、装置和harq数据缓存器 |
Also Published As
Publication number | Publication date |
---|---|
CN102208966A (zh) | 2011-10-05 |
EP2432151B1 (en) | 2019-06-19 |
EP2432151A4 (en) | 2018-01-10 |
US8694731B2 (en) | 2014-04-08 |
US20130042073A1 (en) | 2013-02-14 |
CN102208966B (zh) | 2014-04-09 |
EP2432151A1 (en) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011120295A1 (zh) | 一种harq合并器和harq数据存储方法 | |
US8583976B2 (en) | Hierarchy management method and system for HARQ memory | |
US11194480B2 (en) | Systems and methods for packing data in a scalable memory system protocol | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
US11379278B2 (en) | Methods and apparatus for correcting out-of-order data transactions between processors | |
CN104866454B (zh) | 面向板级高速总线的写报文前瞻处理方法及装置 | |
US10680762B2 (en) | Modem chip for performing hybrid automatic repeat request processing, application processor including the modem chip, and operating method of the modem chip | |
JP2010514264A (ja) | Crcのオーバーヘッドを軽減するためのコマンドパケットのパッキング | |
US10230501B2 (en) | Technique for storing softbits | |
WO2023221342A1 (zh) | Ddr双列直插式存储模块、存储系统及其操作方法 | |
CN106656425A (zh) | 光纤通道中固定帧长度的一种高效差错重传与存取机制 | |
EP3896881B1 (en) | Harq data storage management method and device and harq data buffer | |
CN103595513A (zh) | 一种harq数据存取方法及装置 | |
CN103684709A (zh) | 一种重传数据的合并方法及装置 | |
CN102594490B (zh) | 一种解速率匹配的方法及装置 | |
US20240364797A1 (en) | Physical layer and methods for managing packet header fields | |
CN111162794B (zh) | 译码数据缓存方法和译码器 | |
CN106411479A (zh) | 基于harq技术的数据接收端及其数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10848754 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010848754 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13379683 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |