CN111356151B - Data processing method and device and computer readable storage medium - Google Patents

Data processing method and device and computer readable storage medium Download PDF

Info

Publication number
CN111356151B
CN111356151B CN201811584351.6A CN201811584351A CN111356151B CN 111356151 B CN111356151 B CN 111356151B CN 201811584351 A CN201811584351 A CN 201811584351A CN 111356151 B CN111356151 B CN 111356151B
Authority
CN
China
Prior art keywords
resource block
data
antenna
user terminal
resource
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
CN201811584351.6A
Other languages
Chinese (zh)
Other versions
CN111356151A (en
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 CN201811584351.6A priority Critical patent/CN111356151B/en
Publication of CN111356151A publication Critical patent/CN111356151A/en
Application granted granted Critical
Publication of CN111356151B publication Critical patent/CN111356151B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/0413MIMO systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Radio Transmission System (AREA)

Abstract

The embodiment of the invention discloses a data processing method and a device and a computer readable storage medium, wherein the data processing method comprises the following steps: segmenting transmission bandwidth resources to obtain at least one resource block group; acquiring data transmission parameters of the at least one resource block group, wherein the data transmission parameters represent the mapping relation between the user terminal and the transmission bandwidth resources and the spatial channel information between the at least one antenna and the user terminal; and calculating antenna data of the base station according to a preset operation parallelism and the data transmission parameters of the at least one resource block group, wherein the operation parallelism is used for representing the capability of parallel processing data, and the antenna data is used for representing the mapping relation between the transmission bandwidth resources and the at least one antenna.

Description

Data processing method and device and computer readable storage medium
Technical Field
The present invention relates to the field of wireless communications, and in particular, to a data processing method and apparatus, and a computer-readable storage medium.
Background
The frequency domain data processing of the downlink large-scale antenna technology (Massive MIMO) is a signal preprocessing technology based on an antenna array, and generates a beam with directivity by adjusting the weighting coefficient of each array element in the antenna array, so that obvious array gain can be obtained, the wireless signal coverage quality is improved, and the frequency domain data processing method has great advantages in the aspects of expanding the coverage range, improving the edge throughput, suppressing the interference and the like.
The base station performs channel estimation using uplink pilot information of User Equipment (UE), to obtain spatial channel information between the antenna array and the User terminal, which is denoted as a W matrix. At present, downlink Massive MIMO frequency domain data processing uses the W matrix to multiply the original user terminal information to obtain the transmitted antenna array data.
With the continuous development of mobile communication technology, in a fifth-Generation mobile communication technology (5-Generation wireless telephone technology, 5G) scenario, a communication bandwidth is exponentially multiplied by a large-scale matrix antenna and a large-bandwidth data application, for a single 5G device such as a base station or a terminal, a spectrum bandwidth of the single 5G device is increased by several times to several tens of times relative to a single Long Term Evolution (LTE), an antenna number is also increased by several times to several tens of times, a total communication bandwidth is increased by several tens to hundreds of times, a size of antenna array data obtained by the matrix operation is also abnormally large, so that a data processing amount is large, and meanwhile, an existing symbol-level processing mode is adopted to read bandwidth data of all user terminals for calculation, and a problem of large calculation delay exists.
Disclosure of Invention
In order to solve the foregoing technical problems, embodiments of the present invention desirably provide a data processing method and apparatus, and a computer-readable storage medium, which can improve data processing parallelism and reduce latency.
The technical scheme of the invention is realized as follows:
in a first aspect, an embodiment of the present invention provides a data processing method, where the method includes:
segmenting transmission bandwidth resources to obtain at least one resource block group;
acquiring data transmission parameters of the at least one resource block group, wherein the data transmission parameters represent the mapping relation between the user terminal and the transmission bandwidth resources and the spatial channel information between the at least one antenna and the user terminal;
and calculating antenna data of the base station according to a preset operation parallelism and data transmission parameters of the at least one resource block group, wherein the operation parallelism is used for representing the capability of parallel processing data, and the antenna data is used for representing the mapping relation between the transmission bandwidth resources and the at least one antenna.
In a second aspect, an embodiment of the present invention provides a data processing apparatus, which includes an acquisition unit, a segmentation unit, a writing unit, and a calculation unit, wherein,
the acquiring unit is configured to segment the transmission bandwidth resource to obtain at least one resource block group;
the segmentation unit is configured to obtain a data transmission parameter of the at least one resource block group, where the data transmission parameter represents a mapping relationship between a user equipment and the transmission bandwidth transmission resource, and spatial channel information between at least one antenna and the user equipment;
the computing unit is configured to compute antenna data of the base station according to a preset operational parallelism and a data transmission parameter of the at least one resource block group, where the operational parallelism is used to characterize a capability of parallel processing data, and the antenna data is used to characterize a mapping relationship between the transmission bandwidth resource and the at least one antenna.
In a third aspect, an embodiment of the present invention provides a data processing apparatus, where the apparatus includes at least a processor, a memory storing instructions executable by the processor, a communication interface, and a bus for connecting the processor, the communication interface, and the memory, and when the instructions are executed, the processor implements the data processing method provided in the foregoing embodiment when executed.
In a fourth aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements the data processing method provided by the above-mentioned embodiment.
The embodiment of the invention provides a data processing method and device and a computer readable storage medium, wherein the method comprises the following steps: segmenting transmission bandwidth resources to obtain at least one resource block group; acquiring data transmission parameters of at least one resource block group, wherein the data transmission parameters represent the mapping relation between a user terminal and transmission bandwidth resources and the spatial channel information between at least one antenna and the user terminal; according to the preset operation parallelism and the data transmission parameters of at least one resource block group, the antenna data of the base station are calculated, the operation parallelism is used for representing the capability of parallel processing the data, and the antenna data is used for representing the mapping relation between the transmission bandwidth resources and at least one antenna, namely, the embodiment of the invention carries out sectional processing on the transmission bandwidth resources of the whole bandwidth, so that the existing data transmission parameters corresponding to the whole transmission bandwidth resources are required to be read for calculation, and the data transmission parameters corresponding to one resource block group are improved into the data transmission parameters which are required to be read for calculation, thereby reducing the data processing delay; meanwhile, the embodiment of the invention carries out parallel processing on the data to be transmitted by presetting the data processing parallelism, can realize the effect of high processing parallelism and improves the processing efficiency.
Drawings
Fig. 1 is a schematic diagram of a downlink Massive MIMO channel transmission matrix;
fig. 2 is a schematic diagram of downlink Massive MIMO processing;
fig. 3 is a first schematic flow chart illustrating an implementation of a data processing method according to an embodiment of the present invention;
FIG. 4 is a block arithmetic processing flow diagram according to an embodiment of the present invention;
FIG. 5 is a flow chart illustrating RB operation processing according to an embodiment of the present invention;
FIG. 6 is a block diagram illustrating a grouping operation according to an embodiment of the present invention;
fig. 7 is a diagram illustrating an exemplary user terminal information and channel data packet in accordance with an embodiment of the present invention;
fig. 8 is a schematic structural diagram of an exemplary antenna data processing apparatus according to an embodiment of the present invention;
fig. 9 is a schematic flow chart illustrating an implementation of a data processing method according to an embodiment of the present invention;
FIG. 10 is a diagram illustrating exemplary storage of a number of user terminals in a cache ranging from 17 to 32, in accordance with an embodiment of the present invention;
fig. 11 is a schematic diagram illustrating storage of channel data corresponding to an exemplary number of ues in the range of 17 to 32 in the cache according to an embodiment of the present invention;
FIG. 12 is a diagram illustrating exemplary storage of a number of user terminals in a cache ranging from 0 to 16 according to an embodiment of the present invention;
fig. 13 is a schematic diagram illustrating storage of channel data corresponding to an exemplary number of ues in the buffer range from 0 to 16 according to an embodiment of the present invention;
FIG. 14 is a first block diagram illustrating a data processing apparatus according to an embodiment of the present invention;
fig. 15 is a schematic diagram illustrating a second configuration of a data processing apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention clearer, the present invention will be further described in detail with reference to the accompanying drawings, the described embodiments should not be construed as limiting the present invention, and all other embodiments obtained by a person of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
The data processing method provided by the embodiment of the invention is applied to the downlink Massive MIMO frequency domain data processing of the base station. Fig. 1 is a schematic diagram of a downlink Massive MIMO channel transmission matrix, as shown in fig. 1, a UE sends uplink pilot information to a base station through antennas ant0 and antx to ant-1, and the base station performs channel estimation according to the pilot information to obtain a channel state matrix H between an antenna array and a user terminal. Where W0,0 represents the channel status of antenna 0 and UE0, and W0, x represents the channel status of antenna 0 and UE x. Fig. 2 is a schematic diagram of downlink Massive MIMO processing, and as shown in fig. 2, after multiplying user terminal information s (0), s (x), and s (K-1) by a channel state matrix W, that is, channel data, antenna data is obtained and sent to user equipment UE (0), UE (x), and UE (K-1) through an antenna ant0, an ant x to ant-1, and a channel state matrix H.
At present, downlink Massive MIMO frequency domain data processing is performed by adopting a matrix operation mode, wherein the matrix operation expression is as formula (1):
Figure BDA0001918707120000041
wherein din represents a matrix corresponding to the user terminal information and is marked as S; w represents a matrix corresponding to the channel data; dout represents a matrix corresponding to antenna data and is marked as A, wherein m represents the number of subcarriers in a bandwidth, and k represents the number of users; l represents the number of antennas; in LTE and 5G systems, Resource allocation is performed according to Resource Blocks (RBs) as a unit, where each RB is 12 Resource Elements (REs), each RE corresponds to one subcarrier, and data of different RBs needs to be multiplied by different W matrices to generate different beam directions. Assume N RBs, where RBnBy usingThe matrix corresponding to the user terminal information is SnThe matrix corresponding to the channel data is WnThen the matrix A corresponding to the antenna datanIs An=Sn*WnWherein N is more than or equal to 0 and less than or equal to N-1.
The following description will compare the computation workload by taking 4 user 8 antennas of a typical LTE system and 32 user 64 antennas downlink Massive MIMO frequency domain data processing of a typical 5G system as an example.
The 5G system calculates the operation amount of each subcarrier to be 32 x 64; the calculation amount per subcarrier of the LTE system is 4 × 8, and the calculation amount per subcarrier of the corresponding 5G system is (32 × 64)/(4 × 8) 64 times that of the LTE system. Since the typical 5G system bandwidth 100M is 5 times the LTE typical bandwidth 20M, the computation density of the 5G system is 64 × 5 to 320 times the LTE computation density in the downlink Massive MIMO frequency domain data processing.
If the performance required by a 5G system is to process all data with a bandwidth of 100M with a number of terminals of 32 and a number of antennas of 64 within one symbol time, since the bandwidth of 100M requires 273RB, and 1RB is 12RE, the computation amount of one symbol is 273 × 64 × 32 × 12 × 6394752 complex multiplication, and if the time of one symbol is 35.4 μ s, the computation parallelism is 6394752/35.4 complex multiplication amount/μ s — 180 complex multiplication amount/ns, that is, 180 × 4 × 720 scalar multiplication amounts are completed per ns, while the LTE system needs to complete 720/320 × 3 multiplication amounts/ns.
Therefore, the operation density and the required parallel capability of the 5G system are far better than those of the LTE system, and the power consumption and the delay of the 5G system are required to be further reduced, so that the embodiment of the invention provides the accelerator for parallel processing, and simultaneously performs segmented processing on transmission bandwidth resources, thereby reducing the calculation delay and supporting the downlink massive MIMO frequency domain data processing of the 5G wireless communication.
Example one
An embodiment of the present invention provides a data processing method applied to a base station, and fig. 3 is a schematic flow chart illustrating an implementation of the data processing method provided in the embodiment of the present invention, as shown in fig. 3, the method for implementing data processing by the base station at least includes the following steps:
step 101, segmenting transmission bandwidth resources to obtain at least one resource block group.
In the embodiment of the invention, the base station segments the transmission bandwidth resources required by the downlink massive MIMO frequency domain data processing to obtain at least one resource block group, wherein the resource block group can comprise at least one resource block.
It should be noted that, in the actual calculation process, if the calculation resource is read in a symbol-level manner, that is, all data transmission parameters corresponding to the transmission bandwidth resource in the bandwidth are read, the calculation can be performed, which not only results in a large calculation delay, but also results in a problem of uneven interface bandwidth allocation due to the fact that the former data is read quickly and the latter data is not read.
Therefore, the embodiment of the present invention proposes to segment the transmission bandwidth resource, that is, to segment the transmission bandwidth resource into resource block groups, which are denoted as blocks, perform data processing by using the blocks as units, and define at least one RB as one block. Fig. 4 is a block arithmetic processing flow diagram according to an embodiment of the present invention, and as shown in fig. 4, a transmission bandwidth resource is divided into a plurality of blocks, in the embodiment of the present invention, read-in, calculation, and write-out operations are performed in units of blocks, that is, after the read-in of block0 is completed, the calculation and write-out of block0 are performed, and at the same time, the read-in of block1 is performed, and after the calculation of block0 is completed, the calculation and write-out of block1 are performed, and at the same time, the read-in of block2 is performed. Therefore, the processing delay of the embodiment of the invention is in a block level, and compared with the existing symbol level processing mode, the data processing reading amount can be reduced, so that the data processing delay is reduced.
For example, if the bandwidth is 100M and corresponds to 273RB, when the number of the user terminals is 16, block 273/16 may be set to be 18 blocks, that is, the transmission bandwidth resource may be segmented into 18 blocks, so that the data transmission parameters corresponding to the 18 blocks may be obtained. The processing delay is one block, namely the processing delay of 16 RBs, and if the processing is carried out according to the symbols, the processing delay is 273 RBs.
Step 102, obtaining data transmission parameters of at least one resource block group.
In the embodiment of the present invention, after the base station segments the transmission bandwidth resource to obtain at least one resource block group, the base station may obtain a data transmission parameter of the at least one resource block group, where the data transmission parameter represents a mapping relationship between the user terminal and the transmission bandwidth resource, and spatial channel information between at least one antenna and the user terminal, and the at least one antenna is presented in the base station in the form of an antenna array.
It should be noted that the data transmission parameters include user terminal information and channel data, where the user terminal information is used for mapping relationship between a corresponding user terminal and transmission bandwidth resources; the channel data is used to obtain spatial channel information between the at least one antenna and the user terminal corresponding to uplink pilot information of the user terminal.
And 103, calculating the antenna data of the base station according to the preset operation parallelism and the data transmission parameters of at least one resource block group.
In the embodiment of the present invention, after the base station obtains the data transmission parameter of the at least one resource block group, the base station may further calculate antenna data of the base station according to a preset operation parallelism and the data transmission parameter of the at least one resource block group, where the operation parallelism is used to characterize the capability of processing data in parallel, and the antenna data is used to characterize a mapping relationship between transmission bandwidth resources and the at least one antenna.
It should be noted that, the conventional LTE system only needs to complete 720/320-3 multiplications/ns, has low implementation complexity, and does not need to process data in parallel, however, for the 5G system, 180 multiplications/ns are needed, and 180 × 4-720 scalar multiplications are needed per nanosecond, so that it can be seen that the 5G system has high operation density and needs to process data in high parallel to meet the requirements of the 5G system. In the embodiment of the present invention, the data transmission parameters include user terminal information and channel data, and the calculating the antenna data of the base station according to the preset operational parallelism and the data transmission parameters of at least one resource block group may include: and processing the user terminal information and the channel data corresponding to at least one resource block group by adopting a matrix multiplication operation mode through presetting operation parallelism to obtain the antenna data of the base station.
Further, before the base station calculates the antenna data of the base station according to the preset operational parallelism and the data transmission parameter of the at least one resource block group, that is, the base station may further perform data transmission, where:
acquiring a target operand of transmission bandwidth resources; and acquiring the parallelism of preset data processing according to the target operation amount and the number of the user terminals.
In the embodiment of the invention, the target computation amount of the transmission bandwidth resource can be set according to the actual requirement of the base station data processing.
Illustratively, taking 100M bandwidth with 32 antennas and 64 user terminals in a 5G typical system as an example, the operation amount per RE per antenna per symbol in the 5G typical system is 32 complex multiplication operations. If the base station needs to meet the requirement of 180 operand/nanosecond, 180/32 ≈ 6RE needs to be calculated every nanosecond, namely the parallel processing capacity of one-time operation of the base station is 6 RE; correspondingly, when the number of the user terminals is 16, 180/16 ≈ 12RE needs to be calculated every nanosecond, that is, it indicates that the parallel processing capability of the base station for one operation is 12RE, and of course, according to the actual parallel requirement, the embodiment of the present invention may also set the data processing parallelism of the base station to 1RE, 2RE, 3RE, 4RE, and the like.
In other embodiments, the embodiment of the present invention is data processing based on block, and the base station calculates the antenna data of the base station according to the preset operational parallelism and the data transmission parameter of the at least one resource block group, that is, step 103 may include step 104, step 105, and step 106, where,
and 104, acquiring first user terminal information and first channel data corresponding to each resource block group from the data transmission parameters of at least one resource block group.
In the embodiment of the present invention, the transmission bandwidth resource includes at least one resource block group, the data transmission parameter includes user terminal information and channel data, and when the base station obtains the antenna data of the base station according to the preset operation parallelism and the data transmission parameter of the at least one resource block group, it is necessary to first acquire first user terminal information and first channel data corresponding to each resource block group.
It should be noted that, if the symbol time required for completing reading the operation resource is twice the time required for reading by using block, the calculation can be performed by using the block mode only by reading half of the data amount, so that the processing delay can be reduced from the symbol level to the block level, and after the symbol time is segmented, only the segmented data amount needs to be read in the segmentation time, which is beneficial to uniformization of the interface bandwidth.
It will be appreciated that the larger the block set, the more storage resources consumed, but the higher the interface utilization.
Illustratively, the block size may be set to be 1RB, 2RB, 4RB, 8RB, or 16RB in the embodiment of the present invention.
And 105, sequentially performing operation processing on each resource block group by adopting the first user terminal information and the first channel data according to the preset operation parallelism to obtain resource block group antenna data corresponding to each resource block group.
In the embodiment of the invention, after the base station acquires the first user terminal information and the first channel data corresponding to each resource block group, the base station adopts the first user terminal information and the first channel data to sequentially perform operation processing on each resource block group according to the preset operation parallelism degree to obtain the resource block group antenna data corresponding to each resource block group.
The arithmetic processing includes: and multiplying the matrix corresponding to the first user terminal information and the matrix corresponding to the first channel data.
And 106, forming antenna data of the base station by the resource block group antenna data corresponding to each resource block group in the at least one resource block group.
In the embodiment of the present invention, after the base station acquires the resource block group antenna data corresponding to each resource block group, the base station forms the antenna data of the base station user terminal from the resource block group antenna data corresponding to each resource block group in at least one resource block group.
Since the arithmetic processing is performed in a matrix form, the antenna data of the base station can be configured by combining the resource block group antenna data of each resource block group obtained.
In other embodiments, based on RB data processing, fig. 5 is a schematic view of RB operation processing flow chart proposed in the embodiment of the present invention, as shown in fig. 5, antenna 0 corresponds to RBs 0 to RBx, antenna 1 corresponds to RBs 0 to RBx, RBs 0 to RBx of antenna 0 are sequentially output, and then RBs 0 to RBx of antenna 1 are output, so that all RBs in one resource block group are output.
Based on the RB operation processing pipeline, the base station sequentially performs operation processing on each resource block group according to a preset operation parallelism by using the first user terminal information and the first channel data to obtain resource block group antenna data corresponding to each resource block group, that is, step 105 may include step 107, step 108 and step 109, wherein,
and step 107, acquiring second user terminal information and second channel data corresponding to each resource block from the first user terminal information and the first channel data.
And 108, sequentially carrying out operation processing on each resource block by adopting second user terminal information and second channel data according to the preset operation parallelism to obtain resource block antenna data corresponding to each resource block.
And step 109, forming resource block group antenna data corresponding to each resource block group by the resource block antenna data in each resource block group.
In the embodiment of the present invention, each resource block group includes at least one resource block, when a base station performs an operation on first user terminal information and first channel data corresponding to the resource block group, it needs to first obtain second user terminal information and second channel data corresponding to each resource block from the first user terminal information and the first channel data corresponding to each resource block group, then obtain resource block antenna data corresponding to each resource block by processing the second user terminal information and the second channel data corresponding to each resource block, and finally form the resource block group antenna data according to the resource block antenna data corresponding to each resource block group.
The arithmetic processing includes: and multiplying the matrix corresponding to the second user terminal information and the matrix corresponding to the second channel data.
In other embodiments, the base station uses the second user terminal information and the second channel data according to a preset operation parallelism, and sequentially performs operation processing on each resource block to obtain resource block antenna data corresponding to each resource block, that is, step 108 may include 108A or 108B, wherein,
step 108A, according to a preset operation parallelism, performing operation processing on at least one antenna corresponding to each resource block by adopting second user terminal information and second channel data to sequentially obtain antenna data corresponding to each resource block of each antenna; and forming the resource block antenna data corresponding to each resource block by the antenna data corresponding to each resource block of each antenna.
Step 108B, according to a preset operation parallelism, performing operation processing on each resource block corresponding to at least one antenna by adopting second user terminal information and second channel data to sequentially obtain antenna data corresponding to each resource block of each antenna; and forming the resource block antenna data corresponding to each resource block by the antenna data corresponding to each resource block of each antenna.
In the embodiment of the present invention, the resource block group antenna data includes a mapping relationship between at least one antenna and at least one resource block, and when the base station processes the transmission parameter of one resource block group, the base station may obtain the resource block antenna data corresponding to each resource block group through two different processing modes.
TABLE 1
ANT0 RB0 RB1 RBk
ANT1 RB0 RB1 RBk
ANTx RB0 RB1 RBk
It should be noted that, the storage manner of the antenna data is shown in table 1, ANT represents an antenna, and RB0 to RBK represent resource blocks corresponding to the antenna ANT, and as can be seen from table 1, all resources output by each antenna are stored continuously, that is, all resource blocks corresponding to one antenna are stored first, and then all resource blocks corresponding to the next antenna are stored until all resource block data corresponding to all antennas are stored. Based on the storage manner of the antenna data in table 1, the processing manner corresponding to step 108A is to obtain an RB of one antenna first, obtain an RB of each antenna in sequence, iterate the next RB of each antenna, and obtain each RB of each antenna in sequence; the processing method corresponding to step 108B is to process to obtain an RB of one antenna first, obtain each RB of one antenna in sequence, iterate each RB of the next antenna, and obtain each RB of each antenna in sequence.
Regarding the processing manner of the step 108B, for example, there is at least one antenna, and when each RB processing of the antenna 0 is completed and then another antenna processing is performed, it is necessary to repeatedly read the user terminal information, that is, when the antenna 0 is calculated, all the user terminal information needs to be read, and when the antenna 1 is calculated, all the user terminal information needs to be read as well. Regarding the processing manner of the step 108A, it is only necessary to buffer the data transmission parameters when processing one RB, and then sequentially complete the RB processing for all antennas.
It should be noted that, in the embodiment of the present invention, the step 108A and the step 108B can both achieve obtaining resource block antenna data corresponding to each resource block, but compared to the operation processing manner in the step 108B, the operation processing manner in the step 108A does not need to repeatedly read the user terminal information each time different antennas are operated, and thus bandwidth and power consumption can be saved.
In other embodiments, based on the RE data processing, the base station sequentially performs operation processing on each resource block by using the second user terminal information and the second channel data according to a preset operation parallelism to obtain resource block antenna data corresponding to each resource block, that is, the method for implementing data processing in step 105 may include: step 110, step 111 and step 112, wherein,
and step 110, acquiring third user terminal information and third channel data of the resource unit corresponding to each resource block from the second user terminal information and the second channel data.
In the embodiment of the invention, each resource block comprises at least one resource unit, and when the base station calculates the second user terminal information and the second channel data corresponding to the resource block, the base station needs to acquire the third user terminal information and the third channel data corresponding to each resource unit from the second user terminal information and the second channel data corresponding to each resource block.
And step 111, sequentially performing operation processing on each resource unit by adopting third user terminal information and third channel data according to the preset operation parallelism to obtain resource unit antenna data corresponding to each resource unit.
In the embodiment of the present invention, after the base station acquires the third user terminal information and the third channel data, the base station may process the antenna data of the resource unit corresponding to the parallelism at one time according to the preset operation parallelism.
It should be noted that, if the computation parallelism is 6RE, the base station may process the antenna data of the resource unit corresponding to 6RE at a time by using the third user terminal information and the third channel data.
Illustratively, if the requirement of 180 operand/nanosecond is to be satisfied, when the number of the user terminals is 32, the operation parallelism is 6 REs, and each RB has 2 groups of channel data; when the number of the user terminals is 16, the operation parallelism is 12 REs, and each RB has 1 group of channel data. In the case of the number of other ues, the computation parallelism may be 1RE, that is, 1RE group of channel data, and there are 12 groups of channel data per RB; correspondingly, the operational parallelism is 2RE, namely 2RE group channel data, and each RB has 6 group channel data; correspondingly, the operation parallelism is 3RE, 3 is RE group channel data, and each RB has 4 groups of channel data; correspondingly, the operational parallelism is 4 REs, i.e. 4 REs for one set of channel data, with 3 sets of channel data per RB.
Further, since one operation is performed by taking one RB as a unit, the parallelism of 6RE and 12RE only needs to be considered, that is, when the number of the user terminals is in the range of 17 to 32, the antenna data is calculated in parallel by 6 RE; when the number of user terminals is in the range of 1 to 16, antenna data is calculated in parallel at 12 REs.
And step 112, forming resource block antenna data corresponding to each resource block by the resource unit antenna data corresponding to each resource unit in each resource block.
In other embodiments, the base station performs operation processing on each resource unit in sequence by using the third user terminal information and the third channel data according to the preset operation parallelism to obtain the resource unit antenna data corresponding to each resource unit, that is, the method for implementing data processing in step 111 may include step 111A or 111B, wherein,
and step 111A, sequentially performing operation processing on each resource unit by adopting third user terminal information and third channel data according to a preset first parallel rule to obtain resource unit antenna data corresponding to each resource unit.
And step 111B, sequentially performing operation processing on each resource unit by adopting third user terminal information and third channel data according to a preset second parallel rule to obtain resource unit antenna data corresponding to each resource unit.
In the embodiment of the invention, the first parallel rule is used for representing that the third channel data is processed in parallel through the preset operation parallelism; and the second parallel rule is used for representing the parallel processing of the third user terminal information through the preset operation parallelism.
In step 111A and step 111B, different parallel processing methods are used to obtain resource unit antenna data corresponding to each resource unit.
Illustratively, one RB consists of 12 REs, and in performing downlink Massive MIMO frequency domain data processing, the processing expression of one RB is as formula (2):
Figure BDA0001918707120000131
wherein din represents a matrix corresponding to the user terminal information, the matrix is a 12 x k matrix and is marked as S, the longitudinal item represents 12RE of an RB, and the row item represents that the number of the user terminals is k; w is a matrix corresponding to channel data, and is a matrix of k × l, the longitudinal item represents that the number of the user terminals is k, and the row item represents that the number of the antennas is l; dout represents a matrix corresponding to the antenna data, and is a matrix of 12 × l, marked as a, the vertical entry represents 12 REs of one RB, and the row entry represents the number of antennas as l.
It should be noted that, the matrix W corresponding to each RB is different; RE0 for antenna 0 is the first row of matrix S multiplied by the first column of matrix W, as shown in equation (3):
din0,0×w0,0+din0,1×w1,0+...din0,k-1×wk-1,0=dout0,0………(3)
RE0 for antenna 1 is the first row of matrix S multiplied by the second column of matrix W, and is given by equation (4):
din0,0×w0,1+din0,1×w1,1+...din0,k-1×wk-1,1=dout0,1………(4)
by analogy, RE1 for antenna 0 is the second row of matrix S multiplied by the first column of matrix W, and is given by equation (5):
din1,0×w0,0+din1,1×w1,0+...din1,k-1×wk-1,0=dout1,0…………(5)
RE1 for antenna 1 is the second row of matrix S multiplied by the second column of matrix W, and is given by equation (6):
din1,0×w0,1+din1,1×w1,1+...din1,k-1×wk-1,1=dout1,1…………(6)
as can be seen from the above calculation process of one RB, the parallel calculation may include two ways, namely step 111A and step 111B, and different parallel ways are exemplified with the number of the user terminals being 32 and the calculation parallelism being 6 RE.
The parallel manner of step 111A can be understood as: parallel computing the same RE of the 6 antennas, namely taking the same row of the matrix S and 6 columns of the matrix W, and obtaining 6 columns of data of the same row of the matrix A through one-time computing;
the parallel mode of step 111B can be understood as: and 6 REs of the same antenna are calculated in parallel, namely 6 rows are taken as the matrix S, one column is taken as the matrix W, and 6 rows of data in the same column of the matrix A are obtained through one-time calculation.
Because the storage mode of the antenna data is shown in table 1, all the resources output by each antenna are continuously stored, if the parallel mode of step 111A is adopted and 6 REs output at the same time are stored on different addresses, one-time parallel output can be completed only by sequentially sending 6 write commands, and meanwhile, the data output by each write command is very small, and the utilization rate of the interface bandwidth is very low. If the data of all the antennas are cached to a certain data amount, the data of the first antenna is output in a reverse order, then the data of the second antenna is output, and the data are output in a sequential order, so that the defects can be avoided, but the cache needs to be added, so that the hardware layout area is increased, and the hardware implementation cost is increased.
If the parallel mode of step 111B is adopted, since the output 6 REs belong to the same antenna, the REs are stored continuously, and one parallel output can be completed by sending a write command, thereby ensuring the output bandwidth of the interface. Meanwhile, the matrix is calculated by taking RB as a unit, and the channel data of 12 REs of each RB of each antenna are the same, so that the operation of 1RB of the antenna in two continuous periods can be completed by sending a write command, and the RB data is all output, thereby further improving the utilization rate of the interface.
Further, in the parallel manner of step 111B, 6 REs of the same antenna are calculated at a time, and the following formula (8) and formula (7) may be used to continuously calculate the matrix of the same RB data of one antenna.
In the first clock cycle, the first half RB of antenna x, i.e., the expression of 6 REs, is calculated as formula (7):
Figure BDA0001918707120000151
the invention adopts a scheme of calculating 6 REs of the same antenna once and continuously calculating the same RB data of one antenna, and the expression is as formula (8):
Figure BDA0001918707120000152
in other embodiments, the base station performs operation processing on each resource unit in sequence by using the third user terminal information and the third channel data according to the preset operation parallelism to obtain the resource unit antenna data corresponding to each resource unit, that is, the step 111 of implementing data processing may include steps 113 and 114, wherein,
and 113, grouping the third user terminal information and the third channel data according to a first preset grouping rule and a preset second parallel rule.
In the embodiment of the invention, one RB comprises at least one RE, and the base station groups the third user terminal information and the third channel data corresponding to the RE in the RB according to a first preset grouping rule and a preset second parallel rule, wherein the first preset grouping rule is used for representing that data processing is carried out by taking a group as a unit.
The following describes grouping calculation of one RB for all antennas according to the embodiment of the present invention, taking the number of ues as 32 and the computation parallelism as 6RE as an example.
According to the user terminal data and the operation parallelism, the embodiment of the invention needs 32 × 6-192 groups of complex multipliers, and one group of complex multipliers corresponds to 4 groups of real multipliers, so that 192 × 4-768 groups of real multipliers are needed correspondingly, if the real parts and the imaginary parts of the antenna data and the weight data are both 16 bits, the input of each group of multipliers is 16 × 16, so that the operation scale is large, more connecting lines and intersections are inevitably introduced, and the back-end layout and wiring are difficult. In addition, as can be seen from the above-mentioned matrix operation formula of one RB, the output antenna data is directly related to the input ue information, which also results in more crosswires. Based on this, the embodiment of the present invention proposes to perform pipelined processing on 192 sets of complex multiplication operations in a grouping manner.
Grouping 32 user terminals by calculating parallelism 6RE, taking every 8 users corresponding to 3RE as a group, and taking the total 8 groups, wherein the grouping rule is as follows:
grpi,jwherein i ═ { str ═ str0-7,str8-15,str16-23,str24-31};j={RE0-2,RE3-5Either j or RE6-8,RE9-11}
The grp represents a group, i represents a user terminal group, str0-7User terminal 0 to user 7 terminals; str of8-15From user terminal 8 to user terminal 15; str of16-23User terminal 16 to user terminal 23; str of24-31For the user terminals 24 to 31, RE0-2The first three REs, representing the first 6 REs for parallel processing0-2The last three REs, representing parallel processing of 6 REs6-8Represents the first three REs, of the last 6 REs of the 12 REs of an RB9-11The last three REs of the last 6 REs among the 12 REs of one RB are shown.
And step 114, sequentially performing operation processing on the grouped third user terminal information and the grouped third channel data to obtain resource block antenna data corresponding to each resource block.
In the embodiment of the present invention, after the base station groups the third user terminal information and the third channel data, the base station needs to sequentially perform operation processing on the grouped third user terminal information and the grouped third channel data to obtain the resource unit antenna data corresponding to each resource unit.
FIG. 6 is a schematic diagram of grouping operation according to an embodiment of the present invention, and as shown in FIG. 6, str is determined based on the grouping rule for 32 UEs and the operation parallelism 6RE in step 1130-7And RE0-2Corresponding to group grp0, 0; will str8-15And RE0-2Corresponding to group grp1, 0; will str16-23And RE0-2Corresponding to group grp2, 0; will str24-31And RE0-2Corresponding to the group grp3,0, the first three REs of one antenna are obtained by grouping and calculating the four groups0-2Data of (1), denoted as ANT × RE0-2. Specifically, the first three REs of the 6RE are processed0-2The operation processing procedure is as follows: firstly, multiplying the data of the user terminal in each group by the channel data; calculating the added value of the results of all multiplications in the grouping group; finally, the added values of all the groups are calculated, and the RE of one antenna can be obtained0~RE2The 6 REs are processed in parallel and correspondingly the RE of the antenna is calculated3~RE5In turn, the RE of the antenna can be calculated0~RE11I.e. one RB for one antenna.
192 groups of complex multiplication operations are subjected to pipeline processing through the grouping, small-bit-width data are obtained after data in the groups are gathered and calculated, after each group obtains 3 REs, the small-bit-width data are calculated with other groups, only 3 REs are subjected to cross operation between the groups, cross of connecting lines at the rear end can be reduced, direct operation of the data between the groups is avoided, and therefore large-scale connecting line cross between the groups is avoided.
In other embodiments, the obtaining, by the base station, the data transmission parameter of the at least one resource block group includes: acquiring user terminal information and channel data corresponding to at least one resource block group; the user terminal information and the channel data are used as data transmission parameters of at least one resource block group.
In the embodiment of the invention, the base station comprises a cache unit and a calculation unit, wherein the calculation unit is used for finishing calculation and outputting the antenna data of the base station, and the cache unit is used for caching the data transmission parameters. In order to reduce data interleaving between the arithmetic units and the buffer units, the buffer units also need to be grouped.
It should be noted that, the user terminal information and the channel data are correspondingly stored in the cache according to a preset second grouping rule, the user terminal information is used for representing a mapping relationship between the user terminal and the transmission bandwidth resource, the channel data is used for representing spatial channel information between the at least one antenna and the user terminal, and the second preset grouping rule is used for representing that the spatial channel information is stored in the cache by taking a group as a unit.
The following describes the grouping storage of the user terminal data and the channel data according to the embodiment of the present invention, taking the number of the user terminals as 32 and the computation parallelism as 6RE as an example.
Grouping the user terminal data into 4 groups, wherein the group 0 is from a user terminal 0 to a user terminal 7, the group 1 is from a user terminal 8 to a user terminal 15, the group 2 is from a user terminal 16 to a user terminal 23, and the group 3 is from a user terminal 24 to a user terminal 31;
in order to match the cache groups with the operations, each group needs to be divided into 4 small groups according to 3RE, and the small groups correspond to the RAMs in the cache units in sequence, that is, the group 0 is R4iGroup 1 ═ R4i+1Group 2 ═ R4i+2Group 3 ═ R4i+3Wherein (i is more than or equal to 0 and less than or equal to 7);
in order to match the channel data with the user terminal information packets, each RAM stores channel data for 4 user terminals of the same antenna, the channel data may also be divided into 4 groups, where group 0 is R0, R1, R8 and R9, the channel data for user terminal 0 to user terminal 7 are stored, group 1 is R2, R3, R10 and R11, the channel data for user terminal 8 to user terminal 15 are stored, group 2 is R4, R5, R12 and R13, the channel data for user terminals 16-23 are stored, group 3 is R6, R7, R14 and R15, and the channel data for user terminal 24 to user terminal 31 are stored.
Fig. 7 is a schematic diagram illustrating grouping of user terminal information and channel data according to an exemplary embodiment of the present invention, as shown in fig. 7, R0, R2, R4, R6, R8, R10, R12, and R14 corresponding to the memory RAM are used for storing user terminal information corresponding to user terminals 0 to 15, and channel data corresponding to REs 0 to RE2 or REs 6 to RE8 of user terminals 0 to 15 are stored in R0, R1, R2, and R3, which is denoted as grp0 for group 0; r1, R3, R5, R7, R9, R11, R13 and R15 corresponding to the memory RAM are used for storing user terminal information corresponding to user terminals 0 to 15, channel data corresponding to RE3 to RE5 or RE9 to RE11 of the user terminals 0 to 15 are stored in R8, R9, R10 and R11, and set 1 is marked as grp 1; the memory RAMs are R0, R2, R4, R6, R8, R10, R12 and R14 for storing user terminal information corresponding to the user terminals 16 to 31, and channel data corresponding to the RE0 to RE2 or RE6 to RE8 of the user terminals 16 to 31 are stored in R4, R5, R6 and R7 as group 2 and marked as grp 2; the memory RAMs are R1, R3, R5, R7, R9, R11, R13 and R15 for storing user terminal information corresponding to the user terminals 16 to 31, and channel data corresponding to the RE3 to RE5 or the RE9 to RE11 of the user terminals 16 to 31 are stored in R12, R13, R14 and R15, and are denoted as grp3 for group 3.
Correspondingly, when the number of the user terminals is 16, the RE 0-RE 2 or RE 6-RE 8 of the user terminals 0-7 are set to be group 0, and the channel data stored in R0, R2, R8 and R10 are stored correspondingly; RE3 to RE5 or RE9 to RE11 of the user terminals 0 to 7 are set to group 1, and channel data of R1, R3, R9 and R11 are stored in correspondence to the weights thereof; RE 0-RE 2 or RE 6-RE 8 of the user terminals 8-15 are set as group 2, and the channel data stored in R4, R6, R12 and R14 are stored in correspondence to the group 2; RE3 to RE5 or RE9 to RE11 of the user terminals 8 to 15 are set as group 3, and channel data stored in R5, R7, R13, and R15 are stored in correspondence with the group 3.
The embodiment of the invention carries out segmentation processing on the transmission bandwidth resources, and improves the existing method that the transmission parameters corresponding to the whole transmission bandwidth resources need to be read for calculation into the method that the data transmission parameters corresponding to one resource block group only need to be read for calculation, thereby reducing the data processing delay; meanwhile, the embodiment of the invention carries out parallel processing on the data to be transmitted by presetting the data processing parallelism, can realize the effect of high processing parallelism and improves the processing efficiency.
Example two
Based on the same inventive concept as the embodiment, fig. 8 is a schematic structural diagram of an exemplary antenna data processing apparatus according to the embodiment of the present invention, as shown in fig. 8, the number of user terminals is 32, the data processing parallelism is 6, a user terminal information and channel data input control module reads the user terminal information and the channel data from an external memory and stores the user terminal information and the channel data in a buffer unit, a computing unit reads the user terminal information and the channel data from the buffer module, the corresponding complex multiplication operation is 32 × 6 — 192 complex multiplication operations, 6 REs and 32 user data input addition trees, and outputs the computed antenna data through an output control module.
Based on the antenna data processing apparatus, an embodiment of the present invention provides a data processing method, fig. 9 is a schematic diagram of an implementation flow of the data processing method according to the embodiment of the present invention, and as shown in fig. 9, the method for implementing data processing by a base station at least includes the following steps:
step 201, storing user terminal information and channel data through an external memory.
In the embodiment of the present invention, the external memory of the base station may be used to store the user terminal information and the channel data.
The storage mode of the user terminal information of the embodiment of the invention is shown in table 2, and as can be seen from table 2, the user terminal information takes the user terminal as a unit, and all RBs of one user terminal are arranged in a row.
TABLE 2
S0 RB0 RB1 RBk
S1 RB0 RB1 RBk
Sx RB0 RB1 RBk
Table 3 shows that the channel data is stored in RB units, one RB channel data is in antenna units, and the channel data of all the ues in one antenna is arranged in order.
TABLE 3
Figure BDA0001918707120000191
Figure BDA0001918707120000201
Step 202, reading the segmented user terminal information and channel data from the external memory.
In the embodiment of the invention, after the base station stores the user terminal information and the channel data in the external memory, the user terminal information and the channel data input control module of the base station can read the segmented user terminal information and the channel data from the external memory.
It should be noted that, the reading method of the user terminal information after segmentation may be: reading the block data of one user terminal, reading the block data of the next user terminal, and performing iteration to read in the block data of all the user terminals;
the reading mode of the segmented channel data can be as follows: reading the channel data of all antenna user terminals of RB0, reading the channel data of all antenna user terminals of RB1, and reading the channel data of all RB in block.
And step 203, writing the segmented user terminal information and channel data into an internal cache unit according to the configuration of the number of the user terminals and the number of the antennas.
In the embodiment of the invention, after the base station reads in the user terminal information and the channel data, the base station can write the segmented user terminal information and the channel data into the internal cache according to the configuration of the number of the user terminals and the number of the antennas, so that the calculation module can directly read the corresponding user terminal information and the corresponding channel data from the cache for calculation.
Taking 100M bandwidth of 64 antennas of a 5G typical system 32 as an example, the computation amount per antenna per RE of the 5G typical system is 32 complex multiplication operations per symbol. If the requirement of 180 operand/nanosecond is to be met, 180/32 ≈ 6 REs need to be calculated every nanosecond, namely that the parallel processing capacity of one-time operation of the base station is 6 REs is indicated; correspondingly, when the number of users is 16, 180/16 ≈ 12 REs are calculated for each nanosecond, which means that the parallel processing capacity of one operation of the base station is 12 REs.
It should be noted that, in the embodiment of the present invention, the read user terminal information and channel data may be stored in the internal cache in a packet manner.
Exemplarily, when the number of the user terminals is equal to or less than 32 and equal to or greater than 17, the user terminal information may be divided into 4 groups, the user terminals 0 to 7 are group 0, the user terminals 8 to 15 are group 1, the user terminals 16 to 23 are group 2, the user terminals 24 to 31 are group 3, and the corresponding operational parallelism is 6RE, fig. 10 is a storage diagram of the exemplary number of the user terminals in the cache in the embodiment of the present invention in the range from 17 to 32, as shown in fig. 10, the storage manners of the first 16 user terminals are listed, specifically, block data written into user 0 from an external storage needs 32 RAMs, and in the embodiment of the present invention, the block data is sequentially written into all RAMs in the first row according to a block of 8 RB; continuously writing the block data of the user 1, circularly right shifting the data according to half RB (resource block), namely 6RE, and then writing the data into all the RAMs of the second row; sequentially iterating until the block data of the last user 15 is written into all the RAMs; the writing mode of the subsequent users 16 to 31 is consistent with the writing mode of the previous users 16 and 0, and the writing mode is stored in the RAM of the other group.
Wherein B0-0 and B0-1 respectively represent the first half 6RE and the second half 6RE of an RB 0.
In order to match the cache groups with the operation rule, each group needs to be divided into 4 subgroups according to 3RE, i.e. the groups can be identified as 0 ═ R4iGroup 1 ═ R4i+1Group 2 ═ R4i+2Group 3 ═ R4i+3And i is more than or equal to 0 and less than or equal to 7, and the grouped cache is used for storing the user terminal information.
Fig. 11 is a schematic diagram illustrating storage of channel data corresponding to the exemplary number of user terminals in the range from 17 to 32 in the cache according to the embodiment of the present invention, as shown in fig. 11, 15 RAMs are required, and are arranged according to the formats of the antennas and the user terminals, that is, the channel data a0-0 to a0-7 of all user terminals of RB0 antenna 0 is written first, then the channel data a1-0 to a1-7 of all user terminals of RB0 antenna 1 is iterated to the channel data of all user terminals of the last antenna of RB0, and then the channel data of all user terminals of all antennas of RB1 is written until the channel data of all user terminals of all antennas corresponding to the last RB is written into all RAMs.
It should be noted that each RAM stores channel data of 4 users of the same antenna, and in order to match with the grouping of user terminals, the channel data of the embodiment of the present invention may be divided into 4 groups, where group 0 is R0, R1, R8, and R9, which stores channel data of user terminals 0 to 7, group 1 is R2, R3, R10, and R11, which stores channel data of user terminals 8 to 15, group 2 is R4, R5, R12, and R13, which stores channel data of user terminals 16 to 23, group 3 is R6, R7, R14, and R15, which stores channel data of user terminals 24 to 31, where a0 denotes antenna 0, and so on, a63 denotes antenna 63, a0-0 denotes group 0 of antenna a0, a group consisting of 4 user terminals, during operation, A0-0 through A0-7 can be read in sequence for calculation as a Block channel data.
When the number of the user terminals is less than or equal to 16 and greater than or equal to 0, the user terminals may be divided into 4 groups, where the user terminals 0 to 3 are group 0, the user terminals 4 to 7 are group 1, the user terminals 8 to 11 are group 2, and the user terminals 12 to 15 are group 3, then the corresponding operational parallelism is 12RE, fig. 12 is a storage diagram of the exemplary number of the user terminals in the cache in the embodiment of the present invention, where the storage diagram lists the first 8 user terminals, as shown in fig. 12, a row of fig. 11 shows one block data of one user terminal, and one block is 8RB, and each RAM can store 3 REs, so that 32 RAMs are correspondingly needed to cache 32 pieces of user terminal information. Wherein, B0-0 and B0-1 indicate the first half 6RE and the second half 6RE of one RB0, and since the parallelism of the operation is 12RE, the ue information of the first column and the second column can be read sequentially during the operation for calculation.
Fig. 13 is a schematic diagram illustrating storage of channel data corresponding to the number of exemplary user terminals in the range from 0 to 16 in the buffer according to the embodiment of the present invention, as shown in fig. 13, each RAM stores channel data of 4 user terminals with the same antenna, in order to match with the grouping of user terminals, the channel data according to the embodiment of the present invention may be divided into 4 groups, where group 0 is R0, R1, R8 and R9, the channel data of user terminals 0 to 3 are stored, group 1 is R2, R3, R10 and R11, the channel data of user terminals 4 to 7 are stored, group 2 is R4, R5, R12 and R13, the channel data of user terminals 8 to 11 are stored, group 3 is R6, R7, R14 and R15, the channel data of user terminals 12 to 15 are stored, where a0 represents antenna 0, and so on, a63 represents antenna 63, a0-0 represents the first group of antenna 0, one group comprises 4 user terminals, and during the operation, A0-0 to A0-3 can be read in sequence to calculate for one Block channel data.
And step 204, reading the corresponding user terminal information and channel data from the cache, and inputting the user terminal information and the channel data into the calculation module.
In the embodiment of the invention, after the segmented user terminal information and channel data are written into the cache by the base station, the base station reads the corresponding user terminal information and channel data from the cache and inputs the user terminal information and channel data into the calculation module.
It should be noted that the parallelism of the base station execution is different according to the number of the user terminals, and therefore, the corresponding data reading mode is also different.
Illustratively, for the number of the user terminals being 32, the storage manner of the user terminal information corresponds to fig. 10, the storage manner of the channel data corresponds to fig. 11, when reading the user terminal information and the channel data in the cache, the parallelism is 6RE, for the user terminal information, according to RB as granularity, first reading data of all user terminals in the first half of RB0, then reading data of all user terminals in the second half of RB0, then reading data in the first half of RB1, and iterating until all RBs of all blocks are read completely, that is, reading the first column of the user terminal information in fig. 10 first, and reading the next column sequentially until the last column of data of one block is read completely; for the channel data, the channel data of all the user terminals of antenna 0, RB0 are read first, then the channel data of all the user terminals of antenna 0, RB1 are read, the channel data of all the user terminals of the last RB of antenna 0 is read out in an iterative manner, then the channel data of all the user terminals of all the RB of antenna 1 are read out continuously, and the channel data of all the user terminals of all the RB of the last antenna are iterated, namely, the channel data of a0-0, a0-1 to a0-7 in RB0 in fig. 11 are read out first, then the channel data of a0-0, a0-1 to a0-7 of RB1 are read out again, until the channel data of a0-0, a0-1 to a0-7 of RB7 are read out, and the next channel data of a1-0, a1-1 to a1-7 are read out again in turn, until the last user terminals of a63-0, a63-1 to a63-7 are read out.
For the user number of 16, the storage mode of the user terminal information corresponds to fig. 13, the storage mode corresponding to the channel data is fig. 12, when the user terminal information and the channel data in the cache are read, the parallelism is 12RE, for the user terminal information, the first column and the second column of the user terminal information in fig. 12 are read first, and the next third column and the fourth column are read sequentially until the last two columns of data of one block are read completely; for channel data, firstly, A0-0, A0-1 to A0-3 in channel data RB0 in FIG. 13 are read, then A0-0 and A0-1 to A0-3 of RB1 are read until A0-0 and A0-1 to A0-3 of RB7 are read, and next A1-0 and A1-1 to A1-7 are read continuously until the last A63-0 and A63-1 to A63-3 are read completely.
And step 205, calculating the user terminal information and the channel data through the calculation module to obtain antenna data, and outputting the antenna data through the antenna data output control module.
In the embodiment of the invention, after the base station obtains the corresponding user terminal information and channel data by the calculation module, the base station needs to calculate the user terminal information and the channel data to obtain the antenna data.
In the embodiment of the invention, RB data in the block of the antenna 0 is obtained through calculation, then RB data in the block of the antenna 1 is obtained through calculation, iteration is carried out, RB data of all antenna blocks are calculated, all RB data of each antenna block are output, and antenna data can be obtained.
The embodiment of the invention obtains the operation parallelism through the number of the user terminals, processes the information of the user terminals in parallel and can improve the parallelism of the data processing of the base station; by adopting a block mode to read, write and calculate, the processing delay can be reduced from a symbol level to a block level, and after the symbol time is segmented, only the segmented data volume needs to be read in the segmentation time, so that the homogenization of the interface bandwidth is facilitated; the complex multiplication operation in the calculation is subjected to pipeline processing by adopting a grouping mode, the connection intersection realized by the back end is reduced, and the direct operation of data between groups is avoided, so that the large-scale connection intersection between the groups is avoided.
EXAMPLE III
Based on the same inventive concept of the first embodiment to the second embodiment, the embodiment of the present invention provides a data processing apparatus, fig. 14 is a schematic diagram of a composition structure of the data processing apparatus provided by the embodiment of the present invention, as shown in fig. 14, the apparatus 300 includes a segmentation unit 301, an obtaining unit 302, and a calculating unit 303, wherein,
the segmenting unit 301 is configured to segment the transmission bandwidth resource to obtain at least one resource block group;
the obtaining unit 302 is configured to obtain a data transmission parameter of the at least one resource block group, where the data transmission parameter represents a mapping relationship between a user equipment and the transmission bandwidth resource, and spatial channel information between at least one antenna and the user equipment;
the calculating unit 303 is configured to calculate antenna data of the base station according to a preset operation parallelism and a data transmission parameter of the at least one resource block group, where the operation parallelism is used to characterize a capability of parallel processing data, and the antenna data is used to characterize a mapping relationship between the transmission bandwidth resource and the at least one antenna.
In other embodiments, the calculating unit 303 specifically includes:
a first obtaining unit 304, configured to obtain, from the data transmission parameter of the at least one resource block group, first user terminal information and first channel data corresponding to each resource block group;
a second obtaining unit 305, configured to sequentially perform operation processing on each resource block group by using the first user terminal information and the first channel data according to the preset operation parallelism, to obtain resource block group antenna data corresponding to each resource block group;
a first forming unit 306, configured to form antenna data of the base station from the resource block group antenna data corresponding to each resource block group in the at least one resource block group.
In other embodiments, the first processing unit 304 specifically includes:
a third obtaining unit 307, configured to obtain second user terminal information and second channel data corresponding to each resource block group from the first user terminal information and the first channel data corresponding to each resource block group;
a fourth obtaining unit 308, configured to sequentially perform operation processing on each resource block according to the preset operation parallelism by using the second user terminal information and the second channel data, so as to obtain resource block antenna data corresponding to each resource block;
a second forming unit 309, configured to form resource block group antenna data corresponding to each resource block group from the resource block group antenna data in each resource block group.
In other embodiments, the fourth obtaining unit 308 specifically includes:
a first processing unit 310, configured to perform operation processing on the at least one antenna corresponding to each resource block by using the second user terminal information and the second channel data according to the preset operation parallelism, and sequentially obtain antenna data corresponding to each resource block of each antenna;
a third configuring unit 311, configured to configure the resource block antenna data corresponding to each resource block from the antenna data corresponding to each resource block of each antenna.
In other embodiments, the fourth obtaining unit 308 specifically includes:
a second processing unit 312, configured to perform, according to the preset operation parallelism, operation processing on each resource block corresponding to the at least one antenna by using the second user terminal information and the second channel data, and sequentially obtain antenna data corresponding to each resource block of each root antenna;
a fourth configuring unit 313, configured to configure the resource block antenna data corresponding to each resource block from the antenna data corresponding to each resource block of each antenna.
In other embodiments, the fourth obtaining unit 308 specifically includes:
a fifth obtaining unit 314, configured to obtain third user terminal information and third channel data of a resource unit corresponding to each resource block from the second user terminal information and the second channel data corresponding to each resource block;
a sixth obtaining unit 315, configured to perform, according to the preset operation parallelism, operation processing on each resource unit in sequence by using the third user terminal information and the third channel data, so as to obtain resource unit antenna data corresponding to each resource unit;
a fifth configuring unit 316, configured to configure the resource block antenna data corresponding to each resource block from the resource unit antenna data corresponding to each resource unit in each resource block.
In other embodiments, the sixth obtaining unit 315 specifically includes:
a first obtaining unit 317, configured to perform operation processing on each resource unit in sequence by using the third user terminal information and third channel data according to a preset first parallel rule, so as to obtain resource unit antenna data corresponding to each resource unit, where the first parallel rule is used to represent that the third channel data is performed parallel processing according to the preset operation parallelism.
In other embodiments, the sixth obtaining unit 315 specifically includes:
a first obtaining unit 318, configured to perform, according to a preset second parallel rule, operation processing on each resource unit in sequence by using the third user terminal information and third channel data to obtain resource unit antenna data corresponding to each resource unit, where the second parallel rule is used to represent that the third user terminal information is performed parallel processing through the preset operation parallelism.
In other embodiments, the sixth obtaining unit 315 specifically includes:
a first grouping unit 319, configured to group the third user terminal information and the third channel data according to a first preset grouping rule and a preset second parallel rule, where the first preset grouping rule is used to represent that data processing is performed in units of groups;
a seventh obtaining unit 320, configured to perform operation processing on the grouped third user terminal information and the grouped third channel data in sequence, so as to obtain resource unit antenna data corresponding to each resource unit.
In other embodiments, the obtaining unit 302 further includes:
an eighth obtaining unit 321, configured to obtain user terminal information and channel data corresponding to the at least one resource block group, where the user terminal information and the channel data are correspondingly stored in a cache according to a preset second grouping rule, the user terminal information is used to represent a mapping relationship between the user terminal and the transmission bandwidth resource, the channel data is used to represent spatial channel information between the at least one antenna and the user terminal, and the second preset grouping rule is used to represent that the user terminal information and the channel data are stored in the cache in units of groups; and taking the user terminal information and the channel data as the data transmission parameters of the at least one resource block group.
In other embodiments, the apparatus 300 further comprises:
a ninth obtaining unit 322, configured to obtain a target operand of the transmission bandwidth resource; and acquiring the parallelism of the preset data processing according to the target operation amount and the number of the user terminals.
Example four
Based on the same inventive concept of the first embodiment to the second embodiment, fig. 15 is a schematic structural diagram of a data processing apparatus provided in the second embodiment of the present invention, and as shown in fig. 15, the data processing apparatus at least includes a processor 01, a communication bus 02, a memory 03 and a communication interface 04, where the communication bus 02 is used for implementing connection and communication among the processor 01, the communication interface 04 and the memory 03; the processor 01 is configured to execute the data processing program stored in the memory 03 to implement the steps in the data processing methods provided in the first and second embodiments.
In addition, each component in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware or a form of a software functional module.
Based on the understanding that the technical solution of the embodiments of the present invention essentially or a part of the technical solution contributing to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium, and include several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (processor) to execute all or part of the steps of the method of the embodiments of the present invention. And the aforementioned storage medium includes: examples of the medium that can store the program code include a magnetic random access Memory (FRAM), a Read Only Memory (ROM), a Programmable Read Only Memory (PROM), an Erasable Programmable Read Only Memory (EPROM), an Electrically Erasable Programmable Read Only Memory (EEPROM), a Flash Memory (Flash Memory), a magnetic surface Memory, an optical Disc, and a Compact Disc Read Only Memory (CD-ROM), and the embodiments of the present invention are not limited thereto.
Based on the foregoing embodiments, an embodiment of the present invention provides a computer-readable storage medium, on which a data processing program is stored, and the data processing program, when executed by the processor, implements the data processing method in the first to second embodiments.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of a hardware embodiment, a software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The above description is only a preferred embodiment of the present invention, and is not intended to limit the scope of the present invention.

Claims (14)

1. A method of data processing, the method comprising:
segmenting transmission bandwidth resources to obtain at least one resource block group;
acquiring data transmission parameters of the at least one resource block group, wherein the data transmission parameters represent the mapping relation between the user terminal and the transmission bandwidth resources and the spatial channel information between the at least one antenna and the user terminal;
and calculating antenna data of the base station according to a preset operation parallelism and the data transmission parameters of the at least one resource block group, wherein the operation parallelism is used for representing the capability of parallel processing data, and the antenna data is used for representing the mapping relation between the transmission bandwidth resources and the at least one antenna.
2. The method of claim 1, the data transmission parameters comprising: user terminal information and channel data; the calculating the antenna data of the base station according to the preset operational parallelism and the data transmission parameter of the at least one resource block group includes:
acquiring first user terminal information and first channel data corresponding to each resource block group from the data transmission parameters of the at least one resource block group;
according to the preset operation parallelism, adopting the first user terminal information and the first channel data to sequentially perform operation processing on each resource block group to obtain resource block group antenna data corresponding to each resource block group;
and the antenna data of the base station is formed by the resource block group antenna data corresponding to each resource block group in the at least one resource block group.
3. The method of claim 2, wherein each resource block group comprises at least one resource block; the sequentially performing operation processing on each resource block group by using the first user terminal information and the first channel data according to the preset operation parallelism to obtain resource block group antenna data corresponding to each resource block group, includes:
acquiring second user terminal information and second channel data corresponding to each resource block from the first user terminal information and the first channel data;
according to the preset operation parallelism, adopting the second user terminal information and the second channel data to sequentially perform operation processing on each resource block to obtain resource block antenna data corresponding to each resource block;
and forming resource block group antenna data corresponding to each resource block group by the resource block antenna data in each resource block group.
4. The method according to claim 3, wherein the resource block group antenna data includes a mapping relationship between the at least one antenna and the at least one resource block, and the obtaining resource block antenna data corresponding to each resource block by sequentially performing operation processing on each resource block by using the second user terminal information and the second channel data according to the preset operation parallelism comprises:
according to the preset operation parallelism, performing operation processing on the at least one antenna corresponding to each resource block by adopting the second user terminal information and the second channel data to sequentially obtain antenna data corresponding to each resource block of each antenna;
and the antenna data corresponding to each resource block of each antenna forms the resource block antenna data corresponding to each resource block.
5. The method according to claim 3, wherein the resource block group antenna data includes a mapping relationship between the at least one antenna and the at least one resource block, and the obtaining resource block antenna data corresponding to each resource block by sequentially performing operation processing on each resource block by using the second user terminal information and the second channel data according to the preset operation parallelism comprises:
according to the preset operation parallelism, performing operation processing on each resource block corresponding to at least one antenna by adopting the second user terminal information and the second channel data to sequentially obtain antenna data corresponding to each resource block of each antenna;
and the antenna data corresponding to each resource block of each antenna forms the resource block antenna data corresponding to each resource block.
6. The method according to any one of claims 3 to 5, wherein each resource block includes at least one resource unit, and the obtaining of the resource block antenna data corresponding to each resource block by sequentially performing operation processing on each resource block using the second user terminal information and the second channel data according to the preset operation parallelism comprises:
acquiring third user terminal information and third channel data corresponding to each resource unit from the second user terminal information and the second channel data;
according to the preset operation parallelism, adopting the third user terminal information and the third channel data to sequentially perform operation processing on each resource unit to obtain resource unit antenna data corresponding to each resource unit;
and forming resource block antenna data corresponding to each resource block by the resource unit antenna data corresponding to each resource unit.
7. The method according to claim 6, wherein said sequentially performing operation processing on each resource unit according to the preset operation parallelism by using the third user terminal information and the third channel data to obtain the resource unit antenna data corresponding to each resource unit comprises:
and sequentially performing operation processing on each resource unit by adopting the third user terminal information and the third channel data according to a preset first parallel rule to obtain resource unit antenna data corresponding to each resource unit, wherein the first parallel rule is used for representing that the third channel data are performed parallel processing through the preset operation parallelism.
8. The method according to claim 6, wherein said sequentially performing operation processing on each resource unit according to the preset operation parallelism by using the third user terminal information and the third channel data to obtain the resource unit antenna data corresponding to each resource unit comprises:
and sequentially performing operation processing on each resource unit by adopting the third user terminal information and the third channel data according to a preset second parallel rule to obtain resource unit antenna data corresponding to each resource unit, wherein the second parallel rule is used for representing that the third user terminal information is subjected to parallel processing through the preset operation parallelism.
9. The method according to claim 8, wherein said sequentially performing operation processing on each resource unit using the third user terminal information and third channel data according to the preset operation parallelism to obtain the resource unit antenna data corresponding to each resource unit comprises:
grouping the third user terminal information and the third channel data according to a first preset grouping rule and the preset second parallel rule, wherein the first preset grouping rule is used for representing that the data processing is carried out by taking a group as a unit;
and sequentially carrying out operation processing on the grouped third user terminal information and the grouped third channel data to obtain the resource unit antenna data corresponding to each resource unit.
10. The method according to claim 1, wherein the data transmission parameters include user terminal information and channel data, and the obtaining the data transmission parameters of the at least one resource block group comprises:
acquiring user terminal information and channel data corresponding to the at least one resource block group, wherein the user terminal information and the channel data are correspondingly stored in a cache according to a preset second grouping rule, the user terminal information is used for representing a mapping relation between the user terminal and the transmission bandwidth resource, the channel data is used for representing spatial channel information between the at least one antenna and the user terminal, and the preset second grouping rule is used for representing that the user terminal information and the channel data are stored in the cache by taking a group as a unit;
and taking the user terminal information and the channel data as the data transmission parameters of the at least one resource block group.
11. The method according to claim 1, wherein before said calculating the antenna data of the base station according to the preset parallelism of operations and the data transmission parameters of the at least one resource block group, the method further comprises:
acquiring a target operand of the transmission bandwidth resource;
and acquiring the parallelism of the preset data processing according to the target operation amount and the number of the user terminals.
12. A data processing apparatus comprising an acquisition unit, a segmentation unit, a writing unit, and a calculation unit, wherein,
the acquiring unit is configured to segment the transmission bandwidth resource to obtain at least one resource block group;
the segmentation unit is configured to obtain a data transmission parameter of the at least one resource block group, where the data transmission parameter represents a mapping relationship between a user equipment and the transmission bandwidth resource, and spatial channel information between at least one antenna and the user equipment;
the computing unit is configured to compute antenna data of the base station according to a preset operational parallelism and a data transmission parameter of the at least one resource block group, where the operational parallelism is used to characterize a capability of parallel processing data, and the antenna data is used to characterize a mapping relationship between the transmission bandwidth resource and the at least one antenna.
13. A data processing apparatus comprising at least a processor, a memory storing instructions executable by the processor, a communication interface, and a bus connecting the processor, the communication interface and the memory, the processor when executing the instructions implementing the method of any one of claims 1 to 11.
14. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the method according to any one of claims 1 to 11.
CN201811584351.6A 2018-12-24 2018-12-24 Data processing method and device and computer readable storage medium Active CN111356151B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811584351.6A CN111356151B (en) 2018-12-24 2018-12-24 Data processing method and device and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811584351.6A CN111356151B (en) 2018-12-24 2018-12-24 Data processing method and device and computer readable storage medium

Publications (2)

Publication Number Publication Date
CN111356151A CN111356151A (en) 2020-06-30
CN111356151B true CN111356151B (en) 2022-07-08

Family

ID=71196810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811584351.6A Active CN111356151B (en) 2018-12-24 2018-12-24 Data processing method and device and computer readable storage medium

Country Status (1)

Country Link
CN (1) CN111356151B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929300B (en) * 2019-12-05 2024-05-03 深圳市中兴微电子技术有限公司 Data processing device, method, base station and storage medium
CN114257476B (en) * 2020-09-23 2024-01-02 华为技术有限公司 Communication method and communication device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354537A (en) * 2007-06-14 2013-10-16 北京三星通信技术研究有限公司 Device and method for segmented transmission of transmission block
CN104255076A (en) * 2012-06-01 2014-12-31 英特尔公司 Resource element mapping for wireless transmissions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5222794B2 (en) * 2009-06-05 2013-06-26 株式会社日立製作所 Resource allocation method and communication apparatus for wireless communication system
US8699344B2 (en) * 2010-12-15 2014-04-15 At&T Intellectual Property I, L.P. Method and apparatus for managing a degree of parallelism of streams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354537A (en) * 2007-06-14 2013-10-16 北京三星通信技术研究有限公司 Device and method for segmented transmission of transmission block
CN104255076A (en) * 2012-06-01 2014-12-31 英特尔公司 Resource element mapping for wireless transmissions

Also Published As

Publication number Publication date
CN111356151A (en) 2020-06-30

Similar Documents

Publication Publication Date Title
CN106445471A (en) Processor and method for executing matrix multiplication on processor
EP4072087A1 (en) Data processing apparatus and method, base station, and storage medium
CN106846235B (en) Convolution optimization method and system accelerated by NVIDIA Kepler GPU assembly instruction
CN107656899A (en) A kind of mask convolution method and system based on FPGA
CN111356151B (en) Data processing method and device and computer readable storage medium
CN112668708B (en) Convolution operation device for improving data utilization rate
WO2018027706A1 (en) Fft processor and algorithm
US11397791B2 (en) Method, circuit, and SOC for performing matrix multiplication operation
CN111310115B (en) Data processing method and device, chip, electronic equipment and storage medium
CN103532888B (en) Data processing equipment and the method for eliminating interference
CN116633526B (en) Data processing method, device, equipment and medium
CN106339353A (en) Method supporting 4375-point and 3780-point FFT/IFFT and processor thereof
CN110377877B (en) Data processing method, device, equipment and storage medium
CN111047037A (en) Data processing method, device, equipment and storage medium
WO2020116202A1 (en) Inverse matrix calculation device and inverse matrix calculation processing method
Ma et al. Accelerating SVD computation on FPGAs for DSP systems
CN105045557B (en) A kind of cumulative summation method and apparatus based on twoport caching
JP7410283B2 (en) Physical random access channel data integration method, device and storage medium
CN114758209A (en) Convolution result obtaining method and device, computer equipment and storage medium
CN114662689A (en) Pruning method, device, equipment and medium for neural network
CN112765542A (en) Arithmetic device
CN116318464B (en) Self-adaptive threshold selection method and device for wireless link monitoring
CN102655424B (en) Matrix decomposition method and device of multi-antenna balance system
CN105630738B (en) FFT/IFFT converting means based on LTE system
CN113297631A (en) Calculation method, device and equipment for workload certification and storage medium

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