CN112929300A - 一种数据处理装置、方法、基站和存储介质 - Google Patents

一种数据处理装置、方法、基站和存储介质 Download PDF

Info

Publication number
CN112929300A
CN112929300A CN201911235623.6A CN201911235623A CN112929300A CN 112929300 A CN112929300 A CN 112929300A CN 201911235623 A CN201911235623 A CN 201911235623A CN 112929300 A CN112929300 A CN 112929300A
Authority
CN
China
Prior art keywords
data
antenna data
determining
parallelism
user
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.)
Granted
Application number
CN201911235623.6A
Other languages
English (en)
Other versions
CN112929300B (zh
Inventor
张钉铭
刘星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201911235623.6A priority Critical patent/CN112929300B/zh
Priority to JP2022532880A priority patent/JP2023505453A/ja
Priority to KR1020227022876A priority patent/KR20220107287A/ko
Priority to EP20896872.7A priority patent/EP4072087A4/en
Priority to US17/781,779 priority patent/US20230024048A1/en
Priority to PCT/CN2020/114334 priority patent/WO2021109665A1/zh
Publication of CN112929300A publication Critical patent/CN112929300A/zh
Application granted granted Critical
Publication of CN112929300B publication Critical patent/CN112929300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0224Channel estimation using sounding signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/024Channel estimation channel estimation algorithms
    • H04L25/0242Channel estimation channel estimation algorithms using matrix methods
    • 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
    • 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
    • H04B7/0452Multi-user MIMO systems
    • 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
    • H04B7/0456Selection of precoding matrices or codebooks, e.g. using matrices antenna weighting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0204Channel estimation of multiple channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0224Channel estimation using sounding signals
    • H04L25/0228Channel estimation using sounding signals with direct estimation from sounding signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0048Allocation of pilot signals, i.e. of signals known to the receiver
    • H04L5/0051Allocation of pilot signals, i.e. of signals known to the receiver of dedicated pilots, i.e. pilots destined for a single user or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/10Scheduling measurement reports ; Arrangements for measurement reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Radio Transmission System (AREA)
  • Complex Calculations (AREA)

Abstract

本申请实施例提出一种数据处理装置、方法、基站和存储介质。该装置包括:处理器,用于根据天线数量和导频信息确定运算并行度;获取每个用户的天线数据和信道估计矩阵,并将所述天线数据和信道估计矩阵分组存储于存储器;根据所述运算并行度确定运算器在单次运算中并行处理的目标天线数据,其中,目标天线数据是所述用户的部分天线数据。存储器,用于分组存储所述天线数据和信道估计矩阵,输出所述目标天线数据和信道估计矩阵至运算器。运算器,用于基于所述目标天线数据和所述信道估计矩阵计算用户数据。

Description

一种数据处理装置、方法、基站和存储介质
技术领域
本申请涉及无线通信网络,具体涉及一种数据处理装置、方法、基站和存储介质。
背景技术
Massive MIMO(大规模天线技术,亦称为Large Scale MIMO)是第五代移动通信(5G)中提高系统容量和频谱利用率的关键技术。由于Massive MIMO技术的应用,导致5G场景下的通信带宽呈现指数倍增长。例如,就单个5G设备(基站或终端)而言,其频谱带宽相对于单个LTE设备增长了几倍到几十倍,而天线数据也增长了几倍到几十倍,从而,实现通信带宽增长了几十甚至上百倍。因此,导致Massive MIMO技术中涉及的矩阵运算的运算规模也异常庞大,相关技术中的运算方式无法满足上述运算要求。
发明内容
本申请实施例提供一种数据处理装置、方法、基站和存储介质。
本申请实施例提供一种数据处理装置,包括:
处理器,用于根据天线数量和导频信息确定运算并行度;
获取每个用户的天线数据和信道估计矩阵,并将所述天线数据和所述信道估计矩阵分组存储于存储器;
根据所述运算并行度确定运算器在单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;
存储器,用于分组存储所述天线数据和信道估计矩阵,输出所述目标天线数据和信道估计矩阵至运算器;
运算器,用于基于所述目标天线数据和所述信道估计矩阵计算用户数据。
本申请实施例提供一种数据处理方法,包括:
根据天线数量和导频信息确定运算并行度;
获取每个用户的天线数据和信道估计矩阵,并分组存储所述天线数据和所述信道估计矩阵;
根据所述运算并行度确定单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;
基于所述目标天线数据和所述信道估计矩阵计算用户数据。
本申请实施例提供一种基站,所述基站包括本申请实施例中任意一种的数据处理装置。
本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中的任意一种方法。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为一种上行Massive MIMO工作示意图;
图2为本申请实施例提供的一种数据处理方法的流程图;
图3为本发明实施例提供的一种用户数据在存储器中的数据格式示意图;
图4为本申请实施例提供的一种采用BLOCK方式进行数据处理的处理流水示意图;
图5为本申请实施例提供的一种天线数据在外部存储器中的数据格式示意图;
图6为本申请实施例提供的一种信道估计矩阵中权值数据在外部存储器中的数据格式示意图;
图7为本申请实施例提供的一种天线数据与权值数据分组示意图;
图8为本申请实施例提供的一种用户数据运算示意图;
图9为本申请实施例提供的一种数据处理装置的结构框图;
图10为本申请实施例提供的另一种数据处理装置的结构框图;
图11为本申请实施例提供的一种运算流水示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为一种上行Massive MIMO工作示意图。如图1所示,基站获取UE(用户终端)的上行链路导频信息,根据该上行链路导频信息进行信道估计,得到天线与用户终端之间的空间信道信息,用信道估计矩阵W表示。上行Massive MIMO处理包括采用该信道估计矩阵与天线数据矩阵进行矩阵运算,得到原始发送的用户数据。随后,再对用户数据进行数字解调、解交织以及解码等处理。
其中,上行Massive MIMO处理的矩阵运算表达式如下:
Figure BDA0002304810130000031
其中,din代表天线数据矩阵,m代表带宽内子载波个数,k表示天线数量;l代表用户数量;在LTE和5G系统中,是按照RB(Resource Block,资源块)为单位进行资源分配的,每个RB是12个RE(Resource Element,资源单元),每个RE对应一个子载波,不同RB的数据需要乘以不同的W矩阵,以产生不同的波束指向。假设有N个RB,其中RBn的天线数据为Sn,信道估计矩阵为Wn,则包含用户数据的用户矩阵An可以表示为An=Sn×Wn,其中,0≤n≤N-1。
以一个RB为例,上述矩阵运算可以变形为:
Figure BDA0002304810130000032
其中,k代表天线数量、l代表用户数量。乘数是一个12*k的天线数据矩阵S,代表行数是12(即一个RB),列数是k的天线数据矩阵。被乘数是一个k*l的信道估计矩阵W,代表行数是k,列数是l的权值数据的矩阵。矩阵运算结果是一个12*l的用户矩阵A,代表行数是12(即一个RB),列数是l的用户数据的矩阵。每个RB对应的信道估计矩阵是不同的。例如,计算天线数据矩阵的第一行与信道估计矩阵的第一列的矩阵运算结果,得到用户0的RE0,即din0,0×W0,0+din0,1×W1,0+...+din0,k-1×Wk-1,0=dout0,0。计算天线数据矩阵的第一行与信道估计矩阵的第二列的矩阵运算结果,得到用户1的RE0,即din0,0×W0,1+din0,1×W1,1+...+din0,k-1×Wk-1,1=dout0,1。依次类推,迭代得到所有用户的RE0。继续计算用户0的RE1,即计算天线数据矩阵的第二行与信道估计矩阵的第一列的矩阵运算结果。计算天线数据矩阵的第二行与信道估计矩阵的第二列的矩阵运算结果,得到用户1的RE1。依次类推,迭代得到所有用户的RE1。采用相同的方式迭代计算所有用户的RE2至RE11,本申请实施例不再一一列举。
5G场景中,上述矩阵运算的运算规模远大于LTE场景。例如,以LTE典型系统的4用户8天线场景与5G典型系统的32用户64天线场景为例,对上行Massive MIMO频域数据处理的运算量进行对比。5G系统计算每个子载波的运算量是LTE系统每个子载波运算量的(32×64)/(4×8)=64倍。另外,5G典型系统带宽是100M,LTE典型带宽是20M,5G典型系统带宽是LTE典型带宽的5倍。因此,在上行Massive MIMO频域数据处理中,5G典型系统的运算密度为LTE典型系统运算密度的64×5=320倍。
一个5G典型系统所要求的性能为:一个符号时间内处理完32用户64天线100M带宽的所有数据,则一个符号的运算量为273*64*32*12=6394752复数乘法(假设100M带宽的最大RB数量是273,1RB=12RE),又因为一个符号时间为35.4微秒。因此,运算并行度为6394752/35.4复乘运算量/微秒=180复乘运算量/纳秒,即每纳秒完成180×4=720个标量乘法。而LTE典型系统需要完成720/320=3个乘法/纳秒。
综上可知,LTE典型系统频域数据处理的并行度低,实现复杂度低,不会占用大量的运算资源。然而,5G典型系统的频域数据处理中,运算要求的并行能力和运算密度都远超LTE典型系统,因此,提供一种处理并行度高的数据处理方案成为亟待解决的问题。
图2为本申请实施例提供的一种数据处理方法的流程图,该方法可以由一种数据处理装置执行,该装置可以通过软件和/或硬件实现,并通常被设置于基站中。如图2所示,该方法包括:
步骤110、根据天线数量和导频信息确定运算并行度。
步骤120、获取每个用户的天线数据和信道估计矩阵,并分组存储所述天线数据和信道估计矩阵。
步骤130、根据所述运算并行度确定单次运算中并行处理的目标天线数据,其中,所述目标天线是所述天线数据中的部分数据。
步骤140、基于所述目标天线数据和所述信道估计矩阵计算用户数据。
需要说明的是,步骤110和步骤120之间没有先后顺序,可以是先执行步骤110,随后执行步骤120,也可以先执行步骤120,再执行步骤110,或者两者并行执行或穿插执行,本申请实施例并不作具体限定。
本申请实施例中,天线数量是天线的一种配置信息。在基站设置好之后,天线的配置信息是固定的,例如,可以通过读取基站的相关配置文件的方式获取天线数量。
导频信息用于确定天线与用户终端之间的空间信道信息。用户终端发送导频信息给基站,基站解析该导频信息得到天线与该用户终端之间的空间信道信息,即信道估计矩阵。因此,每个用户终端对应的信道估计矩阵不同。需要说明的是,对于不同导频信息,天线数据与信道估计矩阵的矩阵运算的计算粒度或复杂度也不同。
本申请实施例中,根据导频信息可以确定信道估计矩阵的估计精度。其中,估计精度可以通过每个用户每个RB对应的权值数据的数量表征,即信道估计矩阵中的数据是每个RB中每个RE对应的权值数据。例如,可以设置每个RB包含的12个RE的权值数据均相同,则每个RB对应的1组权值数据。或者,为每个RE配置一组权值数据,则每个RB对应12组权值数据。或者,为每2个RE配置一组权值数据,则每个RB对应6组权值数据。或者,为每3个RE配置一组权值数据,则每个RB对应4组权值数据。或者,为每4个RE配置一组权值,则每个RB对应3组权值数据。或者,为每6个RE配置一组权值数据,则每个RB对应2组权值数据。需要说明的是,每个RB对应的权值数据的数量越多,信道估计的效果越好,但是运算量就越大。
本申请实施例中,运算并行度可以理解为在每次迭代操作中,并行处理每个用户每个RB中RE的数量,据此,可以基于运算并行度确定单次运算并行处理的目标天线数据。以5G典型系统的32用户64天线100M带宽为例,每符号每个用户每RE的运算量为64个复乘运算。因此,如果要满足180运算量/纳秒的要求,则每纳秒需要计算180÷64≈3个RE。如果时钟周期为1GHz,则每个时钟周期要完成3个RE的运算,即每个复乘运算的运算并行度是3。
示例性的,一种实现方式是并行计算3个用户的同一个RE,即由天线数据矩阵获取同一行,由信道估计矩阵获取3列,进行矩阵运算,得到用户矩阵中同一行的3列数据。
另一种实现方式是并行计算同一用户的3个RE,即由天线矩阵获取3行,由信道估计矩阵获取1列,进行矩阵运算,得到用户矩阵中同一列的3行数据。
图3为本发明实施例提供的一种用户数据在存储器中的数据格式示意图。如图3所示,假设要求每个用户在整个带宽内的所有RB数据连续存储。需要说明的是,图3中的数据格式仅是用户数据的一种存储方式的示例,而并非限定。
如果采用第一种实现方案,同时输出的3个RE存储在不同的地址上,要发出3个写命令才可以完成一次并行输出,每次写命令输出的数据非常小,导致接口带宽利用率很低。要避免该问题,就必须要缓存所有用户的数据到一定的数据量后,倒序输出第一个用户的数据,接着输出第二个用户的数据,以此顺序输出,然而,为了满足缓存所有用户的数据的需求,必然要准备足够大的存储空间,进而增加实现成本。
如果采用第二种实现方案,同时输出的3个RE是属于同一用户的,其本身就是连续存储的,发出一个写命令就可以完成一次并行输出。因此,可以保证接口带宽利用率。一种情况下,由于矩阵是以RB为单位进行计算,若每个用户每个RB的12个RE的权值都是相同的,则可以连续四个时钟周期完成该天线1个RB的运算,发出一个写命令就可以将此RB的数据全部输出,进一步提高接口利用率。
以第二种实现方式为例进行说明,在一个时钟周期内,并行处理第一个用户的第一个RB中的RE0~RE2,矩阵运算表达式如下:
Figure BDA0002304810130000061
在相邻的下一个时钟周期内,并行处理第一个用户的第一个RB中的RE3~RE5,矩阵运算表达式如下:
Figure BDA0002304810130000071
在相邻的下一个时钟周期内,并行处理第一个用户的第一个RB中的RE6~RE8,矩阵运算表达式如下:
Figure BDA0002304810130000072
在相邻的下一个时钟周期内,并行处理第一个用户的第一个RB中的RE9~RE11,矩阵运算表达式如下:
Figure BDA0002304810130000073
在处理完第一个用户的第一个RB之后,采用相同的方式处理第二个用户的第一个RB,依次类推,迭代得到所有用户的第一个RB。采用相同的方式计算所有用户的第二个RB数据;依次类推,迭代得到所有用户的全部RB数据。
或者,在一个时钟周期内,并行处理所有用户的第一个RB中的RE0~RE2;在相邻的下一个时钟周期内,并行处理所有用户的第一个RB中的RE3~RE5;在相邻的下一个时钟周期内,并行处理所有用户的第一个RB中的RE6~RE8;在相邻的下一个时钟周期内,并行处理所有用户的第一个RB中的RE9~RE11。采用相同的方式计算所有用户的第二个RB数据;依次类推,迭代得到所有用户的全部RB数据。
在一种示例中,根据天线数量和导频信息确定运算并行度可以包括如下方式:
根据天线数量确定运算并行度。例如,天线数减少时,为了提高本方法可支持的带宽,可以一次计算更多的RE,同时为了减少物理实现的复杂度,可以只考虑3RE/6RE的并行度。即在33~64天线时,以3RE为步长并行计算用户数据;在1~32天线时,以6RE为步长并行计算用户数据。需要说明的是,由于天线数不同而导致的上行Massive MIMO矩阵运算的运算并行度不同,不影响本申请的创新性和保护范围。
或者,还可以根据导频信息确定信道估计矩阵的估计精度,并根据估计精度确定运算并行度。例如,当每个RB对应12组权值数据的情况下,运算并行度为1RE。或者,当每个RB对应6组权值数据的情况下,运算并行度为2RE。或者,当每个RB对应4组权值数据的情况下,运算并行度为3RE。或者,当每个RB对应3组权值数据的情况下,运算并行度为4RE。或者,当每个RB对应2组权值数据的情况下,运算并行度为6RE。需要说明的是,由于导频信息不同而导致的上行Massive MIMO矩阵运算的运算并行度不同,亦不影响本申请的创新性和保护范围。
或者,根据天线数量确定第一参考运算并行度;根据导频信息确定第二参考运算并行度;将所述第一参考运算并行度和第二参考运算并行度中较小的一个作为运算并行度。可以理解的是,确定运算并行度的方式有很多种,上述仅为示例,并非限定。
在一个示例中,每读入一个RB的天线数据,均将其缓存于存储器。相应地,读入该RB对应的信道估计矩阵中的权值数据,并将其缓存于存储器后,再进行矩阵运算。在完成第一个用户的第一个RB的计算后,计算第二个用户的第一个RB,依次类推,可以迭代得到所有用户的所有RB,无需重复读取天线数据矩阵,可以避免浪费带宽和功耗。
在一个示例中,将数个RB定义为一个BLOCK,先读入并完成一个用户一个BLOCK的运算,然后,依次完成其它用户该BLOCK的运算。BLOCK越大,存储资源消耗越多,但是接口利用率越高。本申请实施例中可以设置的BLOCK大小包含1RB、2RB、4RB、8RB和16RB等。具体地,BLOCK大小是预先配置的,一个BLOCK包含的最大RB数量是由天线数量确定的。需要说明的是,根据整个带宽内每个用户的RB数量以及BLOCK大小,可以确定整个带宽内的BLOCK数量。BLOCK数量与处理延迟时间的乘积需要小于一个符号时间。其中,处理延迟时间是天线数据的读入操作开始时刻与用户数据的写出操作开始时刻之间的时间差。可以根据用户数量、带宽、天线数量和预设资源块数量确定处理延迟时间。需要说明的是,处理延迟时间也可以由人为配置,本申请实施例并不作具体限定。
图4为本申请实施例提供的一种采用BLOCK方式进行数据处理的处理流水示意图。如图4所示,一个BLOCK的读入操作的开始时间与写出操作的开始时间的时间差即为处理延迟时间。其中,读入的是天线数据和权值数据,写成的是用户数据。这样就将处理延迟由符号级降低到了BLOCK级,实现在分段时间内读入分段后的数据量,有利于接口带宽的均匀化。
在一个示例中,获取每个用户的天线数据和信道估计矩阵,并将所述天线数据和信道估计矩阵存储于存储器可以包括:按照预设资源块数量分段读取天线数据和信道估计矩阵中的权值数据,并对天线数据和权值数据进行缓存。例如,每段数据对应一个BLOCK数据,一个BLOCK包括数个RB(即资源块)。
图5为本申请实施例提供的一种天线数据在外部存储器中的数据格式示意图。根据图5示出的天线数据的数据格式,读取天线0的一个BLOCK数据(例如RE0~RE2),读取天线1的一个BLOCK数据(例如RE0~RE2),依次类推,迭代读取所有天线的一个BLOCK数据。继续读取天线0的一个BLOCK数据(例如RE3~RE5),读取天线1的一个BLOCK数据(例如RE3~RE5),依次类推,直至读取所有天线的所有BLOCK数据。需要说明的是,图5中的数据格式仅是天线数据的一种存储方式的示例,而并非限定。
图6为本申请实施例提供的一种信道估计矩阵中权值数据在外部存储器中的数据格式示意图。根据图6示出的权值数据的数据格式,读取RB0的所有用户全部天线的权值数据,读取RB1的所有用户全部天线的权值数据,依次类推,迭代得到一个BLOCK内所有RB的权值数据。需要说明的是,图6中的数据格式仅是权值数据的一种存储方式的示例,而并非限定。
在一个示例中,将天线数据和权值数据存储于存储器中可以包括:基于预设分组存储规则,对天线数据和权值数据进行分组,并基于分组结果关联存储所述天线数据和权值数据,避免数据直接运算而存在线路交叉点,加大电路设计时的布线难度的问题。其中,从天线数量与电路设计的布局布线等方面考虑制定预设分组存储规则。
示例性的,在32用户64天线的5G场景下,为实现100M带宽,本申请实施例中采用了64×3=192组复数乘法器,一组复数乘法器对应4组实数乘法器,因此,本申请实施例中采用了192×4=768组实数乘法器。假设天线数据与权值数据的实部虚部都是16bit,每组乘法器的输入为16x16,如此大规模的矩阵运算,必然会引入较多的连线以及交叉,进而增加了电路设计的布局布线难度。从矩阵运算公式也可以看出,每个用户输出数据都跟每个天线输入数据有直接关联,所以交叉连线必然很多。本申请实施例中,根据5G频域数据存储和Massive MIMO运算的特点,采用分组的方式来对192组复乘运算进行流水处理。将每16天线3RE作为一组,一共4组,其分组规则为如下公式:
grpi,j,其中i={ant0-15,ant16-31,ant32-47,ant48-63},j={RE0-2,RE3-5或RE6-8,RE9-11};
按组进行矩阵运算,得到用户数据。示例性的,对于64天线,运算并行度为3的应用场景,可以每16个天线为一组,每组内包含3个RE。以第一组为例,天线ant0-15与每个天线的RE0~RE2组成一组,命名为天线数据组0,或者简称为天线组0。对于RE0,16个天线具有16个权值数据,可以分为2个权值组,即以一个天线组和两个权值组为一组的形式,对天线数据和权值数据进行分组关联存储。
图7为本申请实施例提供的一种天线数据与权值数据分组示意图。如图7所示,将ant0-15标记为天线组0,采用两个权值组存储天线组0对应的取值数据,即将天线组0和权值组0、权值组4作为一组进行存储。相似地,将ant16-31标记为天线组1,将天线组1和权值组1、权值组5作为一组进行存储。相似地,将ant32-47标记为天线组2,将天线组2和权值组2、权值组6作为一组进行存储。Ant48-63标记为天线组3,将天线组3和权值组3、权值组7作为一组进行存储。
需要说明的是,上述分组示例并非限定,随着天线数量的变化会出现新的分组方式。
在一种示例中,根据所述运算并行度确定单次运算中并行处理的目标天线数据包括:根据所述运算并行度确定单次运算后得到单个用户的资源单元数量;根据所述资源单元数量确定单次运算中并行处理的目标天线数据。可选的,基于所述目标天线数据生成读数据指令,发送所述读数据指令给存储器,其中,所述读数据指令用于指示所述存储器输出目标天线数据和与所述目标天线数据对应的权值数据至运算器。例如,以运算并行度是2为例,对于用户0的RE0~RE2,目标天线数据是天线组0对应的RE0~RE2天线数据,权值数据与天线数据相对应,进而,处理器生成读数据指令,发送读数据指令给存储器,以使存储器读取天线组0和权值组0、权值组4对应的数据至运算器。
图8为本申请实施例提供的一种用户数据运算示意图。如图8所示,GRP0~GRP4对应上述4个天线组,分别包括9个乘法器组、3个16输入加法器组和3个4输入加法器。以GRP0为例,每个乘法器组用于处理一个RE的乘法运算,输出运算结果至16输入加法器组,通过16输入加法器组进行加法运算,输出加法运算结果至3个4输入加法器,4输入加法器的运算结果为天线组0的RE0~RE2的用户数据。通过GRP0~GRP4,实现组内天线数据与权值数据的乘法运算,继而,计算组内所有乘法运算结果的和,然后,将所有分组内的和相加得到所有天线的RE0~RE2的用户数据。
通过对天线数据和权值数据进行分组,减少了连线交叉,组与组之间数据避免直接运算,从而避免了组与组之间大规模的连线交叉。先将组内数据汇聚计算后,得到小位宽数据,每组得到3个RE后,再与其它组计算,组与组之间只有3个RE的交叉运算,大大减少了连线的拥塞度,降低了后端实现的风险。为了减少运算单元与输入缓存之间的数据交叉,输入数据缓存也必须进行分组。
本申请实施例通过天线数量和导频信息确定运算并行度,根据运算并行度确定单次运算并行处理的目标天线数据,针对目标天线数据和信道估计矩阵进行矩阵运算,实现并行处理天线数据,能够提高基站中数据处理的并行度,具有并行度高、延时低等特点,满足矩阵运算的运算要求。
在一些示例中,通过BLOCK方式进行数据读入、计算和写出操作,能够将处理延迟由符号级降低至BLOCK级,实现在分段时间内读入分段后的数据量,有利于接口带宽的均匀化。
在一些示例中,通过将天线数据与权值数据进行分组的方式,对计算中的复乘运算进行流出处理,减少了电路设计中连线的交叉,组与组之间数据避免直接运算,从而避免了组与组之间大规模的连线交叉,减少了连线的拥塞度。
图9为本申请实施例提供的一种数据处理装置的结构框图。该装置通过执行本申请实施例提供的数据处理方法提高基站中数据处理的并行度。如图9所示,该装置包括:
处理器910,用于根据天线数量和导频信息确定运算并行度,获取每个用户的天线数据和信道估计矩阵,并将所述天线数据和所述信道估计矩阵分组存储于存储器,根据所述运算并行度确定运算器在单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;
存储器920,用于分组存储所述天线数据和信道估计矩阵,输出所述目标天线数据和信道估计矩阵至运算器;
运算器930,用于基于所述目标天线数据和所述信道估计矩阵计算用户数据。
本申请实施例提供一种数据处理装置,处理器通过天线数量和导频信息确定运算并行度,根据运算并行度确定运算器单次运算并行处理的目标天线数据,并在运算器中并行处理天线数据,能够提高基站中数据处理的并行度,减少对处理器的运算资源的占用,具有并行度高、延时低等特点,满足矩阵运算的运算要求。
在一种实施方式中,处理器910由外部存储器940中分段读取天线数据和信道估计矩阵的权值数据,并缓存于存储器920中。处理器910根据运算并行度确定运算器930单次运算后得到单个用户的资源单元数量,根据该资源单元数量确定目标天线数据,基于目标天线数据生成读数据指令,发送读数据指令给存储器920,以使存储器920输出目标天线数据和该目标天线数据对应的取值数据至运算器930,运算器930由存储器920读取目标天线数据和对应的权值数据,通过运算用户数据,将用户数据写入外部存储器940进行缓存,处理器910可以由外部存储器940中获取用户数据。
在一种实施方式中,所述处理器包括:
第一确定模块,用于根据天线数量确定第一参考运算并行度;
第二确定模块,用于根据导频信息确定第二参考运算并行度;
第三确定模块,用于将所述第一参考运算并行度和第二参考运算并行度中较小的一个作为运算并行度。
在一种实施方式中,所述第二确定模块具体用于:
根据所述导频信息确定信道估计矩阵的估计精度,根据所述估计精度确定第二参考运算并行度。
在一种实施方式中,估计精度包括每个用户的每个资源块对应的权值数据的数量。
在一种实施方式中,所述处理器具体用于:
按照预设资源块数量分段读取每个用户的天线数据和信道估计矩阵中的权值数据;
基于预设分组存储规则,对所述天线数据和权值数据进行分组,并基于分组结果将所述天线数据和权值数据关联存储于存储器。
在一种实施方式中,到单个用户的资源单元数量;
根据所述资源单元数量确定目标天线数据,基于所述目标天线数据生成读数据指令,发送所述读数据指令给存储器,其中,所述读数据指令用于指示所述存储器输出目标天线数据和与所述目标天线数据对应的权值数据至运算器。
在一种实施方式中,图10为本申请实施例提供的另一种数据处理装置的结构框图。如图10所示,本申请实施例的数据处理装置包括天线数据输入模块1001、权值数据输入模块1002、天线数据存储模块1003、权值数据存储模块1004、复乘单元1005和加法树1006。其中,复乘单元是192输入的复数乘法组。加法树是4×48输入的加法器组。天线数据输入模块1001按照图5所示的数据格式,由外部存储器中读取天线0的分段后的天线数据(以BLOCK为执行单元),然后读取天线1的分段后的天线数据,迭代进行,直至读入所有天线的分段后的天线数据。权值数据输入模块1002读取RB0的所有用户的全部天线的权值数据,其次,读取RB1的所有用户的全部天线的权值数据,迭代进行,直至读入当前BLOCK内所有RB的权值数据。将下一个BLOCK作为当前BLOCK,执行上述操作。图11为本申请实施例提供的一种运算流水示意图。如图11所示,横轴为时间,纵轴为操作类型,按照时间顺序依次对天线0、天线1…等天线的各个BLOCK的天线数据进行读入。对于每个BLOCK,按照RB0到RBx的顺序进行读入。
根据天线数量,将读取的天线数据和权值数据进行分组存储。按照运算并行度(例如,1天线~32天线,每次并行计算单用户6RE;33天线~64天线,每次并行计算单用户3RE)分别由存储器中读出天线数据与权值数据,送入复乘单元1005和加法树1006进行矩阵运算。例如,首先计算得到用户0的BLOCK内的RB数据,之后计算得到用户1的BLOCK内的RB数据,迭代进行,计算得到全部用户的BLOCK内的RB数据,加法树1006输出每个用户的BLOCK内的所有RB数据。
本申请实施例提供了一种基站,包括如本申请实施例所述的数据处理装置。上述提供的基站可设置为执行上述任意实施例提供的数据处理方法,具备相应的功能和有益效果。
本申请实施例还提供了一种可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时设置为执行一种数据处理方法,该方法包括:根据天线数量和导频信息确定运算并行度,获取每个用户的天线数据和信道估计矩阵,并分组存储所述天线数据和所述信道估计矩阵,根据所述运算并行度确定单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;基于所述目标天线数据和所述信道估计矩阵计算用户数据。
以上,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和系统(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。

Claims (14)

1.一种数据处理装置,其特征在于,包括:
处理器,用于根据天线数量和导频信息确定运算并行度,获取每个用户的天线数据和信道估计矩阵,并将所述天线数据和所述信道估计矩阵分组存储于存储器,根据所述运算并行度确定运算器在单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;
存储器,用于分组存储所述天线数据和信道估计矩阵,输出所述目标天线数据和信道估计矩阵至运算器;
运算器,用于基于所述目标天线数据和所述信道估计矩阵计算用户数据。
2.根据权利要求1所述的装置,其特征在于,所述处理器包括:
第一确定模块,用于根据天线数量确定第一参考运算并行度;
第二确定模块,用于根据导频信息确定第二参考运算并行度;
第三确定模块,用于将所述第一参考运算并行度和第二参考运算并行度中较小的一个作为运算并行度。
3.根据权利要求2所述的装置,其特征在于,所述第二确定模块具体用于:
根据所述导频信息确定信道估计矩阵的估计精度,根据所述估计精度确定第二参考运算并行度。
4.根据权利要求3所述的装置,其特征在于,包括:所述估计精度包括每个用户的每个资源块对应的权值数据的数量。
5.根据权利要求1所述的装置,其特征在于,所述处理器具体用于:
按照预设资源块数量分段读取每个用户的天线数据和信道估计矩阵中的权值数据;
基于预设分组存储规则,对所述天线数据和权值数据进行分组,并基于分组结果将所述天线数据和权值数据关联存储于存储器。
6.根据权利要求1所述的装置,其特征在于,所述处理器具体用于:
根据所述运算并行度确定运算器单次运算后得到单个用户的资源单元数量;
根据所述资源单元数量确定目标天线数据,基于所述目标天线数据生成读数据指令,发送所述读数据指令给存储器,其中,所述读数据指令用于指示所述存储器输出目标天线数据和与所述目标天线数据对应的权值数据至运算器。
7.一种数据处理方法,其特征在于,包括:
根据天线数量和导频信息确定运算并行度;
获取每个用户的天线数据和信道估计矩阵,并分组存储所述天线数据和所述信道估计矩阵;
根据所述运算并行度确定单次运算中并行处理的目标天线数据,其中,所述目标天线数据是所述用户的部分天线数据;
基于所述目标天线数据和所述信道估计矩阵计算用户数据。
8.根据权利要求7所述的方法,其特征在于,根据天线数量和导频信息确定运算并行度,包括:
根据天线数量确定第一参考运算并行度;
根据导频信息确定第二参考运算并行度;
将所述第一参考运算并行度和第二参考运算并行度中较小的一个作为运算并行度。
9.根据权利要求8所述的方法,其特征在于,根据导频信息确定第二参考运算并行度,包括:
根据所述导频信息确定信道估计矩阵的估计精度,根据所述估计精度确定第二参考运算并行度。
10.根据权利要求9所述的方法,其特征在于,包括:所述估计精度包括每个用户的每个资源块对应的权值数据的数量。
11.根据权利要求7所述的方法,其特征在于,获取每个用户的天线数据和信道估计矩阵,并分组存储所述天线数据和所述信道估计矩阵,包括:
按照预设资源块数量分段读取每个用户的天线数据和信道估计矩阵中的权值数据;
基于预设分组存储规则,对所述天线数据和权值数据进行分组,并基于分组结果关联存储所述天线数据和权值数据。
12.根据权利要求7所述的方法,其特征在于,根据所述运算并行度确定单次运算中并行处理的目标天线数据,包括:
根据所述运算并行度确定单次运算后得到单个用户的资源单元数量;
根据所述资源单元数量确定单次运算中并行处理的目标天线数据。
13.一种基站,其特征在于,所述基站包括如权利要求1~6中任一项所述的数据处理装置。
14.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求7-12中任一项所述的方法。
CN201911235623.6A 2019-12-05 2019-12-05 一种数据处理装置、方法、基站和存储介质 Active CN112929300B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201911235623.6A CN112929300B (zh) 2019-12-05 2019-12-05 一种数据处理装置、方法、基站和存储介质
JP2022532880A JP2023505453A (ja) 2019-12-05 2020-09-10 データ処理装置、方法、基地局及び記憶媒体
KR1020227022876A KR20220107287A (ko) 2019-12-05 2020-09-10 데이터 처리 장치, 방법, 기지국 및 저장 매체
EP20896872.7A EP4072087A4 (en) 2019-12-05 2020-09-10 DATA PROCESSING DEVICE AND METHOD, BASE STATION AND STORAGE MEDIA
US17/781,779 US20230024048A1 (en) 2019-12-05 2020-09-10 Data Processing Apparatus and Method, Base Station, and Storage Medium
PCT/CN2020/114334 WO2021109665A1 (zh) 2019-12-05 2020-09-10 一种数据处理装置、方法、基站和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911235623.6A CN112929300B (zh) 2019-12-05 2019-12-05 一种数据处理装置、方法、基站和存储介质

Publications (2)

Publication Number Publication Date
CN112929300A true CN112929300A (zh) 2021-06-08
CN112929300B CN112929300B (zh) 2024-05-03

Family

ID=76161780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911235623.6A Active CN112929300B (zh) 2019-12-05 2019-12-05 一种数据处理装置、方法、基站和存储介质

Country Status (6)

Country Link
US (1) US20230024048A1 (zh)
EP (1) EP4072087A4 (zh)
JP (1) JP2023505453A (zh)
KR (1) KR20220107287A (zh)
CN (1) CN112929300B (zh)
WO (1) WO2021109665A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642724A (zh) * 2021-08-11 2021-11-12 西安微电子技术研究所 一种高带宽存储的cnn加速器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257476B (zh) * 2020-09-23 2024-01-02 华为技术有限公司 一种通信方法和通信装置
CN116470927A (zh) * 2023-04-17 2023-07-21 上海毫微太科技有限公司 一种数据处理方法、装置、设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838558A (zh) * 2005-03-25 2006-09-27 松下电器产业株式会社 多天线多用户通信系统中的发送天线选择方法和设备
US20080240277A1 (en) * 2007-03-26 2008-10-02 Micha Anholt Reducing computational complexity in maximum likelihood MIMO OFDM decoder
CN101399589A (zh) * 2007-09-30 2009-04-01 中兴通讯股份有限公司 一种多天线导频映射方法
US20110058632A1 (en) * 2009-09-04 2011-03-10 Politecnico Di Milano Method and device for soft-output detection in multiple antenna communication systems
CN103929381A (zh) * 2013-01-10 2014-07-16 中国移动通信集团公司 一种基于mimo的信号检测方法及检测平台
US20140321582A1 (en) * 2013-04-28 2014-10-30 International Business Machines Corporation Parallel data processing
KR20170084943A (ko) * 2016-01-13 2017-07-21 한국과학기술원 대규모 mimo-ofdm 시스템에서의 채널 추정 방법 및 장치
CN108141259A (zh) * 2015-09-30 2018-06-08 美国国家仪器有限公司 可缩放的大规模mimo接收机
CN108880774A (zh) * 2018-07-11 2018-11-23 郑州航空工业管理学院 频分双工多用户大规模多天线系统及其下行导频信号长度设计方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935536B (zh) * 2015-04-22 2018-03-06 华为技术有限公司 一种数据处理设备及方法
CN106470054B (zh) * 2015-08-18 2020-03-31 华为技术有限公司 一种数据处理方法及相关装置与系统
EP3607664A4 (en) * 2017-04-07 2020-10-21 INTEL Corporation METHODS AND DEVICES FOR PROCESSING A DATA SIGNAL FOR TRANSMISSION TO MULTI-CURRENT DEVICES
CN109271138A (zh) * 2018-08-10 2019-01-25 合肥工业大学 一种适用于大维度矩阵乘的链式乘法结构
CN111356151B (zh) * 2018-12-24 2022-07-08 深圳市中兴微电子技术有限公司 一种数据处理方法及装置、计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838558A (zh) * 2005-03-25 2006-09-27 松下电器产业株式会社 多天线多用户通信系统中的发送天线选择方法和设备
US20080240277A1 (en) * 2007-03-26 2008-10-02 Micha Anholt Reducing computational complexity in maximum likelihood MIMO OFDM decoder
CN101399589A (zh) * 2007-09-30 2009-04-01 中兴通讯股份有限公司 一种多天线导频映射方法
US20110058632A1 (en) * 2009-09-04 2011-03-10 Politecnico Di Milano Method and device for soft-output detection in multiple antenna communication systems
CN103929381A (zh) * 2013-01-10 2014-07-16 中国移动通信集团公司 一种基于mimo的信号检测方法及检测平台
US20140321582A1 (en) * 2013-04-28 2014-10-30 International Business Machines Corporation Parallel data processing
CN108141259A (zh) * 2015-09-30 2018-06-08 美国国家仪器有限公司 可缩放的大规模mimo接收机
KR20170084943A (ko) * 2016-01-13 2017-07-21 한국과학기술원 대규모 mimo-ofdm 시스템에서의 채널 추정 방법 및 장치
CN108880774A (zh) * 2018-07-11 2018-11-23 郑州航空工业管理学院 频分双工多用户大规模多天线系统及其下行导频信号长度设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周乔;许魁;徐友云;谢天怡;: "联合波束域分解和SVD的多用户大规模MIMO系统信道估计", 信号处理, no. 04, 25 April 2018 (2018-04-25) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642724A (zh) * 2021-08-11 2021-11-12 西安微电子技术研究所 一种高带宽存储的cnn加速器
CN113642724B (zh) * 2021-08-11 2023-08-01 西安微电子技术研究所 一种高带宽存储的cnn加速器

Also Published As

Publication number Publication date
JP2023505453A (ja) 2023-02-09
US20230024048A1 (en) 2023-01-26
CN112929300B (zh) 2024-05-03
EP4072087A4 (en) 2023-01-11
EP4072087A1 (en) 2022-10-12
KR20220107287A (ko) 2022-08-02
WO2021109665A1 (zh) 2021-06-10

Similar Documents

Publication Publication Date Title
Roy et al. FPGA-based high-performance parallel architecture for homomorphic computing on encrypted data
CN108133270B (zh) 卷积神经网络加速方法及装置
CN112929300B (zh) 一种数据处理装置、方法、基站和存储介质
CN107797962B (zh) 基于神经网络的计算阵列
US11327690B2 (en) Enhanced input of machine-learning accelerator activations
US11860970B2 (en) Method, circuit, and SOC for performing matrix multiplication operation
CN107957975B (zh) 一种计算方法及相关产品
US11494326B1 (en) Programmable computations in direct memory access engine
CN111356151B (zh) 一种数据处理方法及装置、计算机可读存储介质
CN108108189B (zh) 一种计算方法及相关产品
CN109902821B (zh) 一种数据处理方法、装置及相关组件
US20180210860A1 (en) System, method and computer program product for dense/sparse linear system solver accelerator
CN109669666B (zh) 乘累加处理器
WO2023124371A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
CN117785759B (zh) 数据存储方法、数据读取方法、电子设备和存储介质
CN111047037B (zh) 数据处理方法、装置、设备及存储介质
US11657324B2 (en) Method, electronic device, and computer program product for processing data
WO2021036313A1 (zh) 一种基于乔列斯基分解的矩阵求逆装置
US11347517B2 (en) Reduced precision based programmable and SIMD dataflow architecture
US20220357921A1 (en) Dadda architecture that scales with increasing operand size
CN115730204A (zh) 一种大气湍流畸变光斑的模式分解方法、设备以及介质
CN115759180A (zh) 用于脑仿真的数据生成方法、设备和计算机可读存储介质
CN117077734A (zh) 卷积输入变换方法、硬件加速器和加速器结构确定方法
CN116955906A (zh) 一种哈密顿矩阵正交归一化方法及装置
CN111047037A (zh) 数据处理方法、装置、设备及存储介质

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