CN101663829B - 联合检测硬件加速器的架构 - Google Patents
联合检测硬件加速器的架构 Download PDFInfo
- Publication number
- CN101663829B CN101663829B CN2007800362532A CN200780036253A CN101663829B CN 101663829 B CN101663829 B CN 101663829B CN 2007800362532 A CN2007800362532 A CN 2007800362532A CN 200780036253 A CN200780036253 A CN 200780036253A CN 101663829 B CN101663829 B CN 101663829B
- Authority
- CN
- China
- Prior art keywords
- joint
- detection
- data path
- data
- matrix
- 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
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Advance Control (AREA)
Abstract
一种联合检测系统,其被配置为对所接收的信号执行联合检测,并包括联合检测加速器和主处理器。该联合检测加速器可以包括:存储器单元,用于存储输入数据值、中间结果和输出数据值;一个或更多个计算单元,用于处理所述输入数据值和所述中间结果并将输出数据值提供给所述存储器单元;控制器,用于控制所述存储器和所述一个或更多个计算单元以执行联合检测处理;以及外部接口,用于从主处理器接收所述输入数据值并向所述主处理器提供输出数据值。所述计算单元可以包括复数乘法累加单元、简化的复数乘法累加单元和归一化浮点除法器。所述存储器单元可以包括输入存储器、矩阵存储器、主存储器和输出存储器。
Description
技术领域
本发明涉及联合检测方法和无线通信电路。
背景技术
TD-SCDMA(Time Division Synchronized Code Division Multiple Access,时分同步码分多址接入)是结合了TDD/TDMA(Time Division Duplexing/TimeDivision Multiple Access,时分双工/时分多址接入)操作与同步CDMA(码分多址接入)的无线通信标准。TD-SCDMA可以为用户分配不同的时隙(timeslot)和扩频码,由此各时隙可以包含与由不同的扩频码区分的不同用户相关联的数据。图1例示了TD-SCDMA方案100,其中频带110可以用于通过为多个用户分配不同的时隙121、122、123、124等以及不同的扩频码1、2、3等(例如,一个TD-SCDMA时隙可以使用最多16个扩频码)而与多个用户相关联的通信。目前的TD-SCDMA每时隙最多使用16个扩频码,以致于在一个给定的时隙中可以向最多16个用户同时分配不同的扩频码。在一些情况下,可以为一个用户分配多个扩频码。
TD-SCDMA支持非对称流量和业务,由此可以利用灵活的帧结构来修改上行链路和下行链路流量分配,这种灵活的帧结构使得可以在通话期间动态地修改上行链路和下行链路分配。TD-SCDMA还使得能够利用联合检测和智能天线系统来减少多址干扰(MAI,multiple access interference)。在联合检测方案中,并行地对来自可能与一个时隙相关联的多个用户的数据进行估计,并且从所接收的信号中提取出特定用户的数据。通过这种方式,解决了由于与其它用户相关联的信号而导致的干扰并且提供给用户的数据可以展现出更少的干扰。
发明内容
一种被构造成对所接收的信号执行联合检测的联合检测系统。该联合检测系统包括对输入数据值执行联合检测的联合检测加速器和连接到所述联合检测加速器的可编程DSP或其他主处理器。
根据本发明的第一方面,提供了一种对所接收信号执行联合检测的联合检测加速器。所述联合检测加速器包括:存储器单元,用于存储输入数据值、中间结果和输出数据值;地址生成单元,生成用于访问所述存储器单元的地址;一个或更多个计算单元,用于处理所述输入数据值和所述中间结果并将输出数据值提供给所述存储器单元,各计算单元包括数据通路;数据选择器,用于向所述一个或更多个计算单元提供所述输入数据值和所述中间结果;控制器,用于控制所述存储器、所述地址生成单元、所述一个或更多个计算单元和所述数据选择器以执行联合检测处理;以及外部接口,用于从主处理器接收所述输入数据值并向所述主处理器提供输出数据值。
根据本发明的第二方面,提供了一种对所接收信号执行联合检测的联合检测加速器。所述联合检测加速器包括:输入存储器,用于存储数据值;至少一个中间存储器,用于存储在联合检测处理期间计算出的中间结果;输出存储器,用于存储在联合检测处理期间计算出的输出数据值;计算块,用于使用来自所述输入存储器的所述输入数据值和来自所述至少一个中间存储器的所述中间结果来执行联合检测处理并将所述输出数据值提供给所述输出存储器;外部接口,用于将来自主处理器的所述输入数据值提供给所述输入存储器并将来自所述输出存储器的输出数据值提供给所述主处理器;以及控制器,用于控制所述输入存储器、所述至少一个中间存储器、所述输出存储器和所述计算块以执行联合检测处理。
根据本发明的第三方面,提供了一种对所接收信号执行联合检测的联合检测加速器。所述联合检测加速器包括:外部接口,用于从主处理器接收输入数据值并向所述主处理器提供输出数据值;存储器单元,用于存储所述输入数据值和所述输出数据值;主数据通路,其包括复数乘法累加单元;第二数据通路,其包括简化的复数乘法累加单元;除法器数据通路,其包括归一化浮点除法器;以及控制器,用于控制所述存储器单元、所述主数据通路、所述第二数据通路和所述除法器数据通路以执行联合检测处理。
根据本发明的第四方面,提供了一种对所接收信号执行联合检测的联合检测加速器。所述联合检测加速器包括:外部接口,用于从主处理器接收输入数据值并向所述主处理器提供输出数据值;存储器单元,用于存储所述输入数据值和所述输出数据值;地址生成单元,生成用于访问所述存储器单元的地址;计算块,用于使用来自所述存储器单元的输入数据值执行联合检测处理并将所述输出数据值提供给所述存储器单元;控制器,用于控制所述存储器单元、所述地址生成单元和所述计算块以执行联合检测处理,其中,所述控制器被构造成在初始延迟之后在迭代计算的各时钟周期执行存储器访问操作。
当结合附图考虑本发明的以下详细说明时,本发明的其它方面、实施方式及特征将变得明显。附图是示意性的并且不是按比例绘制的。中附图中,以单一标号或符号来表示各种图中各相同或大致相似的部件。
出于清楚的目的,在各图中没有对每个部件都进行标注。并且没有示出本发明的各实施方式中的每个部件,对于使本领域技术人员能够理解本发明而言,这种情况下的例示不是必要的。以整体引用的方式将此处所包含的所有专利申请及专利合并于此。当有冲突时,以本说明书(包括定义)为准。
附图说明
在附图中,相同附图标号表示相同元件:
图1是TD-SCDMA时隙以及扩频码的示意图;
图2是TD-SCDMA下行链路信道模型的示意图;
图3是在联合检测处理中所涉及的各种矩阵的示意图;
图4是实现联合检测器系统的接收机系统的框图;
图5是内接收机链的框图;
图6是联合检测处理的框图;
图7是所接收到的信号的时隙格式的示意图;
图8是在移位处理前及移位处理后累加器的内容的示意图;
图9是对累加器的内容进行移位并且将累加器比特的子集存储到存储器中的处理的流程图;
图10是能够实现移位处理的硬件架构的框图;
图11是传播信道估计的预缩放过程的流程图;
图12是信道估计预缩放的示意性表示;
图13是联合检测加速器架构的简化框图;
图14是可以由联合检测加速器执行的处理的流程图;
图15是图13的联合检测加速器的存储器单元和相关部件的简化框图;
图16是图13的联合检测加速器的主数据通路的框图;
图17是图13的联合检测加速器的第二数据通路的框图;
图18是图13的联合检测加速器的除法器数据通路的框图;以及
图19A和19B是分别例示非优化和优化的流水线(pipeline)运算的流水线图。
具体实施方式
例如,可以利用数字信号处理器(DSP)将联合检测系统实现为软件解决方案,或者通过硬件解决方案以称为联合检测加速器(JDA,joint detectionaccelerator)的电路形式来实现联合检测系统。与以软件实现的联合检测系统相比,JDA能够降低功耗和芯片面积,并提高性能。
申请人已经认识到,联合检测系统可以包括从可编程软件实现的灵活性中受益的一些处理操作和从JDA的速度及降低的功耗中受益的其它处理操作。JDA中所实现的操作可以包括那些不太可能改变的并且不易由不同的手机(handset)制造商进行定制的成熟算法。相反,可编程DSP中实现的操作可以包括可能会发生改变并且易于由不同的手机生产商进行定制的算法。
申请人还认识到,在符合性能规范(诸如块错误率性能)的同时,JDA可以受益于能够减少芯片面积及功耗的定点实现。减小定点实现的数据比特宽度进而能够减小芯片面积并减少功耗。此外,更小的比特宽度意味着能够在更短的时间内执行处理,因此可以有更长的芯片休眠或空闲模式时间段。申请人已经认识到,具有更小数据比特宽度的JDA通过在具有大量的比特的累加器中执行运算并且仅将更少量的比特保存在存储器中,在乘法累加运算过程中仍然能够保持高精度。申请人进一步认识到,一个或更多个移位值可以由JDA内部地确定和/或由外部源(诸如可编程DSP)进行配置。
申请人进一步认识到,联合检测系统中的现有初始信道估计可能要求大的比特宽度来适应各信道的幅度差异。这种情形可能作为执行信道估计的方式的结果而出现。例如,在TD-SCDMA系统中,在各突发中设置了一个或更多个中间导码(midamble),并且接收机利用中间导码来估计发射机与接收机之间的传播信道。然而,接收机执行初始信道估计,在初始信道估计中可能没有解决中间导码的功率水平与中间导码的数量之间的差异。虽然使用由有效码(active code)检测算法生成的缩放因子最终解决了这种偏差(discrepancy),但是在JDA的定点实现中,与一开始就解决了上述影响所需要的比特宽度相比,初始信道估计所生成的信道估计可能要求更大的比特宽度。申请人已经认识到,联合检测系统可以受益于在将一个或更多个传播信道发送到JDA之前对这些传播信道进行预缩放(pre-scaling),由此能够减小JDA的定点实现中的比特宽度。
应当理解的是,由于这里所说明的技术并不限于任何特定实现,而可以通过任意方式来实现。稍后对这些实现的示例进行讨论,但是应当理解的是,这些实现仅是作为示例性示例而介绍的,并且可以通过其它方式来实现这些实施方式。描述下面给出的示例以用于与TD-SCDMA方案一起使用的联合检测系统中。然而,应当理解的是,这里所描述的这些技术可以与其它合适的通信方案一起使用,和/或可以与通过各种方式实现的其它联合检测系统一起使用,而并不限于任何特定类型的联合检测系统。
如下所述,这里所描述的技术的一个应用是用于TD-SCDMA接收机中的联合检测系统。然而,由于这里所描述的技术能够用于其中可以对所接收信号执行联合检测的任意合适类型的系统,所以这个示例仅是示例性的。
如图2所示,TD-SCDMA下行链路信道模型200可包括信道化码及扰码c1、c2、…、cKa,信道冲激响应h1、h2、…、hKa,添加到各信道的随机噪声z,以及联合检测数据接收机210。数据d1、d2、…、dKa在基站中分别与信道化码及扰码c1、c2、…、cKa相乘,并被发送到信道中。可以将各码道建模为其后带有噪声z的冲激响应h1、h2、…、hKa。由于使用智能天线,所以各码道的信道冲激响应可以是彼此独立的。由接收机210的模拟部分对所接收的数据r进行采样,并将其输入到接收机210的联合检测系统。联合检测系统的输出x包括可以由下行链路比特率处理器进一步解码的用户数据。
信道化码/扰码与信道冲激响应的累加结果是信道化码/扰码cx与信道冲激响应hx的卷积。可以由矩阵V来表示全部信道对于单个数据符号的累加结果,其中矩阵V的列是针对该码道的信道化码/扰码与信道冲激响应的卷积。矩阵V的列数是有效码道的数量Ka。整个数据字段上的组合响应矩阵T可以通过沿矩阵T的对角线来布置V矩阵而构造。
图3是信道冲激响应矩阵H、信道化码/扰码矩阵C、矩阵V和矩阵T的示意图。如图所示,矩阵H具有Ka列和W行,而矩阵C具有Ka列和Q行,其中W是信道冲激响应的长度,Q是扩频因子,而Ka是有效信道的数量。矩阵V具有Ka列和W+Q-1行,而矩阵T具有N*Ka列和N*Q+W-1行,其中N是每个块的数据符号的数量。矩阵V的行数取决于数据字段的长度(对于TD-SCDMA,其为N*Q个码片)加上信道冲激响应的长度W(其在1到17个码片周期之间)然后减去一(N*Q+W-1)。
使用上述矩阵定义,所接收的数据r可以用所发送的数据d和通过矩阵T表示的信道化码/扰码与信道冲激响应的累加结果,然后加上噪声z来表达:
r=Td+z。
联合检测算法可以用于从所接收的数据r来恢复所发送的数据d。能够用于求解所发送的数据d的第一算法使用最小二乘(LS,least squares)准则:
其中TH是矩阵T的转置共轭矩阵。最小二乘算法对于低接收信号噪声比(SNR)表现可能不是很好,因此可以使用基于最小均方误差(MMSE,minimum mean squared error)准则的另一算法:
其中σ2是由z2给出的噪声功率。可以将LS算法和MMSE算法简化为同一方程:
Ad=y,
其中y=THr,并称为匹配滤波器输出,并且对于LS算法A=(THT),或者对于MMSE算法A=(THT+σ2I)。
通常,求解该方程将涉及对矩阵A求逆。由于矩阵A的属性,利用方程A=LHDL,可以使用Cholesky分解法根据上三角阵L和对角阵D来表示矩阵A,其中LH是矩阵L的转置共轭矩阵,其进而可以用于迭代地求解方程Ad=y。出于例示目的,图3还包括了矩阵A和矩阵L的示意性表示。矩阵L由沿该矩阵的对角线布置的N个块构成,并且如将进一步讨论的,通过仅计算有限数量的块(例如,块B1和B2)并且将其余的块设置为等于最后计算的块的值(例如,将块B3、B4、…、BN设置为成B2的值),能够逼近矩阵L。
求解方程Ad=y的求解过程可以包括前向替换(forward substitution)、点除(dot division)以及后向替换(backward substitution),以得到所发送数据的值:
(1)前向替换:LHf=y
(2)点除:g=f./D
(3)后向替换:Ld=g,
其中f是在前向替换方程中求出的中间向量,而g是在点除方程中求出的中间向量。联合检测算法的输出可包括给定用户设备(UE)的数据。可以去除给定UE以外的UE数据,使得最后的输出仅包括给定UE的数据。
在一个实施方式中,实现联合检测算法的联合检测器系统可以包括JDA和可编程DSP,其中可编程DSP执行联合检测算法所涉及的一个或更多个处理操作。可编程DSP使得能够通过软件对DSP可以执行的一个或更多个联合检测处理操作进行定制。可编程DSP可以在JDA接收数据之前执行处理操作、可以在JDA已经执行了一些处理后执行中间处理操作、和/或可以在JDA已经完成了对数据的处理后执行后处理。在DSP执行中间处理操作的一些实施方式中,JDA可以包括在由DSP执行的中间处理之前执行的JDA前端处理以及在由DSP执行的中间处理之后执行的JDA后端处理。如稍后所讨论的,在一个实施方式中,由DSP执行的中间处理操作是有效码检测处理。在将数据发送到JDA之前DSP对该数据执行处理的一些实施方式中,DSP可以执行生成矩阵H和矩阵C的信道估计过程。JDA可以用于求解线性方程Ad=y,而DSP可以向JDA提供所接收的数据r、矩阵H和矩阵C以及噪声功率σ2。
图4是根据一个实施方式的实现了包括JDA415和可编程DSP 425的联合检测系统的示例性接收机系统400的框图。可编程DSP 425能够执行联合检测算法所涉及的一个或更多个处理操作。系统400能够包括无线和模拟基带(组合单元450),其中无线部件能够接收可以由基站发送的信号,而模拟基带部件能够处理由无线部件提供的接收信号。数字域部件440进而能够处理由模拟基带部件提供的信号。
数字域部件440可以包括能够便于进行数字域处理的数字基带部件和协处理器。数字基带部件可以包括能够对所接收信号执行数字处理的可编程DSP 425。数字基带部件可以与协处理器通信,该协处理器能够在数字域中对所接收的信号进行处理。
协处理器可以包括JDA 415和比特率处理器(bit rate processor,BRP)416。在一个实施方式中,JDA 415可以执行联合检测算法的一个或更多个处理操作,而DSP 425也可以执行联合检测算法的一个或更多个处理操作。JDA415与DSP 425可以彼此通信,由此使得DSP 425能够执行一个或更多个联合检测处理操作,这些处理操作的结果被发送到JDA 415以用于进一步处理。另外地,或者另选地,JDA 415也可以执行联合检测算法的一个或更多个处理操作,这些操作的结果被发送到DSP 425。通过这种方式,DSP 425可以执行联合检测算法中任意数量的操作,并且JDA 415可以执行联合检测算法中任意数量的操作。JDA 415能够生成软判决输出,然后可以由比特率处理器416将该软判决输出转换为最可能的硬判决。比特率处理器416可以对传输信道执行信道解码和错误检测,执行去交织以提高信道编码性能,执行去速率匹配以调节数据速率,执行传输信道的去复用,并且在物理信道上执行对编码复合传输信道的解映射。
图5是根据一个实施方式的TD-SCDMA内接收机链500的框图。内接收机链500可以包括接收端升根余弦滤波器520,可以在模拟基带(例如,系统400的部件450)中实现升根余弦滤波器520。升根余弦滤波器520可以向一个或更多个预处理部件(诸如DC去除部件530和I/Q补偿部件540)提供所接收的信号。在一个实施方式中,由可编程DSP(诸如系统400的DSP 425)来实现DC去除部件530和I/Q补偿部件540。在将所接收数据发送到联合检测系统550之前,可以由能够执行DC偏移校正的DC去除部件530和能够执行I/Q相位不均衡校正I/Q补偿部件540对从一个时隙采集的I/Q样点进行预处理。在一些实施方式中,联合检测系统550包括JDA和可编程DSP,该可编程DSP使得能够通过软件对一个或更多个联合检测处理操作进行定制。在一个实施方式中,DSP可以在将数据发送到JDA之前执行预处理操作。如稍后讨论的,由DSP执行的预处理可以包括信道估计和/或中间导码干扰消除。
图6是根据一个实施方式的联合检测处理的框图600。框图600例示的联合检测处理可以由诸如图5的内接收机链的联合检测系统550之类的联合检测系统来执行。联合检测处理的操作可以由JDA与可编程DSP相结合地执行。
联合检测处理可以通过接收已经经过DC偏移校正、I/Q相位不均衡补偿和/或任何其它预处理的信号而开始。所接收信号可以包括由中间导码分隔开的两个数据字段。图7例示了接收信号的时隙格式700,该接收信号包括第一数据字段710,之后是中间导码字段720,之后是第二数据字段730,并且之后是保护时段(guard period)740。由于空中传播信道扩展,数据字段710的尾部中的数据与中间导码720彼此干扰,并且中间导码的尾部中的数据与第二数据字段730彼此干扰,这导致数据字段712(r1)和数据字段722(r2)。
图6中例示的联合检测处理的数据划分操作610能够处理所接收信号,以将该信号划分为数据字段(r1或r2)和中间导码这两个独立的信号。联合检测处理能够按照任何期望的顺序来依次地处理数据字段r1和r2,其中对一个数据字段(例如,r2)的处理可以重用从对其它数据字段(例如,r1)的处理所得到的一些处理结果,如稍后所述。这样,稍后的描述可以称为对数据字段r1和/或r2的处理。在一些实施方式中,对数据字段r2的处理是在对数据字段r1的处理之前进行。当第二数据字段包括命令指令(诸如同步及功率控制指令,同步及功率控制指令可以在首先对数据字段r2的数据流进行处理、然后对数据字段r1的数据流进行处理的过程中处理)时,这种实施方式是优选的。
信道估计操作615能够处理由数据划分操作610提供的中间导码,并且生成信道估计矩阵H和码矩阵C,如图3中所示的矩阵H和矩阵C。已知的是,信道估计处理能够使用已知信号模式(例如中间导码信号)来估计从基站到接收机的空中传播信道。如果使用智能天线,则可以将TD-SCDMA方案的各码道与不同的传播信道关联起来。可以使用信道估计的结果进行关于有效码数量的粗略(crude)估计,但应当慎重对待有效信道数量的过估计,以避免将有效码指定为无效。最终,联合检测的有效信道检测处理能够更好地确定有效码。信道估计操作615的输出可以包括矩阵H和矩阵C。
通过执行去除中间导码干扰对数据字段的影响的中间导码干扰消除操作,中间导码干扰消除操作620能够处理由操作610输出的数据字段。中间导码干扰消除操作涉及使用来自信道估计操作615的信道估计。操作620的输出可以是经过中间导码干扰消除的数据字段。在一个实施方式中,可以由DSP来执行数据划分、中间导码干扰消除和/或信道估计。这使得能够定制这些操作中的一个或更多个而无需改变接收机芯片组。
在一个实施方式中,随后将DSP执行的预处理的结果发送到JDA,以进行前端处理。JDA能够接收由DSP发送的矩阵H和矩阵C(例如,经由外部协处理器接口,如图4的系统所示),并且在操作625中构建矩阵V。构建矩阵V涉及使用信道估计矩阵H和编码矩阵C。矩阵V的第i列是矩阵H的第i列与矩阵C的第i列的卷积。如稍后所述,在一些实施方式中,JDA能够在将结果保存到存储器中之前实现对结果的移位。
此外,JDA的操作630能够执行匹配滤波器计算,并由此构建匹配滤波器输出y=THr,其中r是r1和/或r2。匹配滤波器操作能够使用矩阵V和向量r来构建y,并且由于矩阵TH的很多项是零,如图3所示,所以不必构建整个矩阵TH。匹配滤波器操作630能够接收由操作625构建的矩阵V。另外,匹配滤波器操作630还能够从中间导码干扰消除操作620接收r1和r2数据字段。如稍后所述,在一些实施方式中,JDA能够在将结果保存到存储器中之前实现对结果的移位。
JDA还能够在操作635中计算y和矩阵V各列的幂(power),这能够进而便于进行有效码检测。对矩阵V各列的幂的计算可能涉及针对给定列对矩阵V各项的平方幅值进行求和的运算。由于对于有效码检测这一目的而言向量y1已经足够,所以可以针对y1来执行对y的幂的计算而不必针对y2执行该计算。在一些实施方式中,JDA能够在将结果保存到存储器中之前实现对所得到的幂值的移位。
在一个实施方式中,由DSP来执行有效码检测。在操作640中,DSP能够从JDA接收y和矩阵V(可选)幂计算结果,并且使用该幂值来确定各信道化码的有效码和缩放因子。当在DSP中执行有效码检测处理时,可以进行有效码检测算法的定制。能够随着有效码检测处理的演进而修改DSP软件,并且同一芯片组能够用于执行经过修改的有效码检测处理。
能够使用任何适当的算法来执行有效码检测。例如,有效码检测过程可以涉及确定其匹配滤波器输出(y)的幂大于阈值水平的码。应当理解的是,这仅是简单的有效码检测过程的一个示例,并且可以使用任意的有效码检测处理。有效码检测处理还可以确定会被应用于各信道化码的缩放因子。各信道化码的缩放因子可以通过尾数值和指数值来表示。应当理解的是,不一定要执行有效码检测,在特定情况下可以省略这种操作,例如,这些情况包括当使用大小为一的扩频因子时,或者当用户设备已经具有指明了在给定时隙中哪些码是有效的指示时。
有效码检测操作的结果可以由SIR估计操作655来使用,而操作655也可以由DSP来执行。SIR估计操作655可以使用信道估计操作615及有效码检测操作640二者的结果。SIR估计操作可以输出噪声功率σ2。应当理解的是,在一些实施方式中,可以在不使用有效码检测的结果的情况下进行SIR估计。在这种情况下,可以由DSP在信道估计之后执行SIR估计,并且能够在JDA执行前端处理之前将SIR估计发送到JDA。另选的是,在JDA执行前端处理的同时,由DSP至少部分地执行SIR估计。
在一些实施方式中,将DSP执行的有效码检测处理所确定的有效码及缩放因子二者的指示和/或由DSP计算出的噪声发送到JDA以用于后端处理。JDA后端处理可以包括y重新缩放(rescaling)及重新排序(reordering)操作645和V重新缩放及重新排序操作650。这些操作可以基于有效码检测操作640发送的结果,对矩阵V的列以及y进行重新排序及重新缩放,其中,重新排序消去了与非有效码相对应的任意列。作为这种重新排序的结果,JDA后端处理可以使用同一矩阵索引,而与哪些码是有效的无关。
由JDA执行的后端处理还可以包括矩阵A计算操作660,矩阵A计算操作660接收由操作650生成的经过重新缩放及重新排序的矩阵V和由操作655生成的噪声,以通过对矩阵运算THT+σ2I进行求值来构建矩阵A。由于可以直接使用矩阵V来计算矩阵A的元素,并且由于矩阵T的很多元素都是零,因此,构建矩阵A并不一定涉及构建矩阵T。因此,可以仅执行对矩阵A的非零元素的计算,而且可以存储矩阵A的这些非零元素(例如,不需要存储已知的零元素)。在一些实施方式中,JDA能够在将这些结果保存在存储器中之前对所得到的矩阵A的值执行移位。
JDA后端处理还可以包括Cholesky分解操作655,Cholesky分解操作655能够将矩阵A分解为矩阵L与矩阵D。可以在不计算矩阵L全部元素的情况下进行Cholesky分解。可以将矩阵L划分为在数值上收敛的多个块,并且计算出的块的数量取决于所期望的准确度。在一个实现方式中,计算出的矩阵L的块的数量是2。使用矩阵L的数量减少的块导致在点除计算中除法次数的减少,由此有利于联合检测算法的实现。因此,可以仅计算矩阵L的非零元素的子集,并且可以存储矩阵L的这些非零元素(例如,不需要存储已知的零元素)。
JDA后端处理还可以包括求解线性方程Ax=y(例如,使用前向替换、点除和后向替换,如前所述)的线性方程求解器操作670。线性方程求解器操作670能够从y重新缩放及重新排序操作645接收数据字段并且从Cholesky分解操作665接收矩阵L及矩阵D。线性方程求解器操作670能够生成数据字段(x1和x2)。在一些实施方式中,JDA能够在将前向替换、点除和/或后向替换处理的结果保存到存储器中之前对这些结果进行移位。
能够由用户提取操作675来处理数据字段x1和x2,用户提取操作675能够使用特定UE正在使用的(多个)码来提取该UE的数据。线性方程求解器操作670能够依次生成这两个数据字段x1和x2,而用户提取操作675还能够将这两个数据字段合并,从而创建一个统一的数据字段x,该数据字段x随后可以由数据提取操作675输出以由其它部件进行处理。例如,DSP可以执行后(post)联合检测处理。如果还需要UE码之外的码(例如,用于功率测量的码),则可以在输出中包括其它码。
在一些实施方式中,可以按照定点实现方式来实现JDA,其中,在将位于累加器固定比特位置处的数量减少的比特保存在存储器中之前,对(例如,累加器中的)运算结果进行移位。这种操作等价于对在不必对累加器的内容进行移位的情况下选择将累加器的哪些比特保存在存储器中。可以选择移位值以及要将累加器的哪些固定比特位置保存在存储器中,从而确保累加器中的值在存储器中得到充分表示(例如,未经任何有效比特截断的精确值)。
在一个实施方式中,JDA包括其中将变量存储为有符号的N比特小数的存储器部件。这样,所存储的变量的数值在-1与+1之间,包括-1但不包括+1。另选的是,由于这里所述的技术并不限于仅使用小数,所以JDA的存储器中的变量可以是有符号的N比特整数。当针对JDA中的两个或更多个所存储的变量进行运算时,(例如,存储在累加器中的)运算结果可能不满足用于在JDA存储器中进行存储的上述变量范围。这里所述的移位技术使得可以使用所期望的比特宽度对值进行存储。
应当理解的是,JDA中的很多运算是乘法运算和/或加法运算,诸如运算cj=Σiaibi。JDA可以执行这种运算,从而通过使用累加器(该累加器的比特宽度明显大于将保存乘法累加(multiply and accumulate,MAC)的最终结果的存储器的数据比特宽度)在相乘并累加(MAC)运算过程中保持高精度。在运算(诸如MAC)完成后,可以将累加器比特的子集保存到存储器中。选择将哪些累加器比特保存到存储器中可能涉及将累加器的内容移位一个移位值并将来自累加器的固定比特位置的比特值保存到存储器。
图8是根据一个实施方式的累加器以及在移位操作之后被保存到存储器的累加器的比特的子集的图。在图中示出的比特值800仅用于说明的目的,提出的技术在这一方面并不受限制。累加器810包括的比特数量比在运算(例如,MAC)完成后将被存储到数据存储器存储位置820的比特数量大。累加器810可以包括任意数量的比特(例如,28比特),这些比特可以包括符号位,并且要存储到存储器的结果的比特数N可以是比累加器的比特数小的任意数量(例如,11位),这些比特也可以包括符号位。应当理解的是,上述累加器及数据比特宽度值仅是示例,这里所述的技术在这一方面并不受限制。另外,可以基于正在运算的数据的大小而将累加器大小选为足够大,从而确保精度不会有严重损失。
可以基于所期望的存储器数据比特宽度N来选择应当保存到存储器中的累加器810的比特数。另外,由于可以基于所选择的固定比特位置而相应地对在将结果保存到存储器之前被应用于累加器内容的移位进行调节,所以可以任意地选择应当保存到存储器的累加器810中的固定比特的具体位置。在图8中,要保存到存储器的累加器数据比特值是矩形840中的比特值。
所运算的数据及所执行的运算可以是使得累加器小数点830位于累加器810的两个特定比特位置831与832之间,例如当所运算的数据是有符号小数时的情况。已经选择将要保存到存储器的累加器810数据比特(即矩形840中的比特),使得比特位置831包含要被保存到存储器的最左边的比特。
在运算(例如,MAC)完成并且运算结果位于累加器810中后,基于对累加器810的比特内容的移位来选择应当保存到存储器的比特值。图8示出了对累加器810的内容进行移位以对累加器的比特值进行移位的情况,如在所得到的累加器810’中所示。在将累加器810中的比特值向右移位了移位值S之后,累加器810’与累加器810相同。如稍后所述,该移位值是有符号的整数,并且可以按照任意合适的方式来确定或设定该移位值。正移位值S(其中S是正整数)可以与累加器比特向左的移位相关联。负移位值-S(其中S是正整数)可以与累加器内容向右的移位相关联。应当理解的是,该移位值的符号是任意的并取决于习惯用法,而且这里所述的技术在这一方面并不受限制。
在图8的说明中,移位值是使得移位操作将比特位置833处的第一符号位值移动到累加器比特位置831。在完成累加器内容的移位后,如矩形840所示的位于累加器的固定比特位置处的比特值被保存到存储器。在图8的示例性示例中,移位值选择为使得累加器中的二进制数的重复的符号位不存储在存储器中,在这里将其称为归一化(normalization)。应当理解的是,由于图8中的示例仅是用于说明的目的,因而可以将这些值移位任意的量。在一些实施方式中,存储在存储器中的值是有符号的N比特小数,并且对累加器内容的移位值使得移位到累加器小数点左侧的内容仅包括重复的符号位(例如,位于累加器810中的比特位置833左侧的比特)。
图9是处理900的流程图,存储在累加器中的运算结果通过处理900可以被存储到存储器中。可以通过JDA中的硬件来执行处理900,在MAC运算的情况下,该硬件可以包括相乘累加单元和一个或更多个移位器。在动作902中,执行运算(例如,MAC)并将结果存储在累加器中。在运算完成后,在动作904中将累加器内容移位一个移位值。移位操作等价于将累加器的内容乘以或除以2SHIFT,其中SHIFT是移位值。可以由输出移位器来执行移位操作,并且所使用的移位值可以由JDA内部地确定,或者可以由JDA外部的系统(例如,可编程DSP,并且可以由用户指定)来提供。
在动作908中,期待将位的子集存储到存储器中而对累加器的内容进行取整(round)。可以通过对要存储到存储器的累加器比特的子集的最后比特进行向上取整(rounding-up)(或向下取整(rounding-down))来进行取整。然而,应当理解的是,由于这里所述的技术在这一方面并不受限制,可以按照其它任何合适的方式进行取整。如本领域技术人员所公知的,在动作910中,可以进行溢出验证来确定取整是否导致溢出。如果确定出现了溢出,则使要保存到存储器的累加器的内容饱和(saturate)(动作912)。饱和涉及将存储到存储器的值设为最大的正数或最小的负数。
如果(在动作910中)确定没有出现溢出,或者出现了溢出并随后相应地使值饱和,则该处理继续动作914,在动作914中将位于累加器中指定的固定位置处的N个连续比特保存到存储器,其中N小于累加器比特的总数。可以由硬件设计师在设计JDA时规定保存到存储器的比特数N以及应当保存到存储器的累加器比特的固定位置。随后,处理900可以终止。
在一些实施方式中,不同的变量可以具有不同的关联移位值。在一些实施方式中,为存储在存储器中的向量的或矩阵的各元素分配同一移位值。在其它实施方式中,为矩阵的不同列或不同行分配不同的移位值。允许针对矩阵的不同列或不同行使用不同移位值使得能够通过基于对矩阵的各列或各行中的值的移位进行修整(tailor)来选择各列或各行的移位值,以提高准确度。
应当理解的是,由JDA进行的加法运算可以涉及已经利用不同移位而可能被存储的两个或更多个存储变量。应当理解的是,与不同移位值相关联的所存储的变量可被视为具有不同指数的尾数值的存储。在这种运算中,JDA可以确保在执行加法前对于正相加的所有变量而言移位都是相同的。例如,当执行诸如cj=dj+Σiaibi的运算时,JDA可以确定一个或更多个向量元素在被存储到存储器中前是否已经被移位。如果这些向量中的一个或更多个已经被移位,则JDA可以确保在执行加法前所有向量都具有同一移位值。例如,如果向量a在被保存到存储器中之前已经被移位了移位值A_SHIFT,向量b在被保存到存储器中之前已经被移位了移位值B_SHIFT,而向量d在被保存到存储器中之前已经被移位了移位值D_SHIFT,则JDA可以在将d向量元素相加到相加结果Σiaibi之前将从存储器获得的向量d移位一个移位值A_SHIFT+B_SHIFT-D_SHIFT。这种运算在数学上可以表示为(dj<<A_SHIFT+B_SHIFT-D_SHIFT)+Σiaibi,其中,运算符“<<”表示为对dj执行的移位运算。运算的结果在被存储到存储器位置之前还可以被移位。
图10是示出JDA中的硬件架构1000的框图,如上所述,硬件架构1000能够实现对涉及将变量d与求和结果Σiaibi相加的运算的移位处理。在一个实施方式中,虽然可以使用其它数据比特宽度,但是用于存储变量a、b以及d的比特数N是11,而累加器的比特数是28,并且在这里所述的技术在这一方面并不受限制。硬件1000能够包括用于在将d值载入累加器1006之前对d值进行移位的输入移位器1008。如果向量a在被保存到存储器中之前已经移位了移位值A_SHIFT、向量b在被保存到存储器中之前已经移位了移位值B_SHIFT、向量d在被保存到存储器中之前已经移位了移位值D_SHIFT,则输入移位器1008所使用的移位值可以是A_SHIFT+B_SHIFT-D_SHIFT。
硬件1000还可以包括用于将输入值ai与bi相乘的乘法器1002、以及用于将累加器1006的内容与由乘法器1002提供的ai和bi相乘的结果相加的加法器1004。累加器1006可以包括多个比特A,A可以大于输入数据的比特数N。在完成了乘法累加运算后,可以由输出移位器1010将累加器1006中的值移位一个移位值C_SHIFT,并且可将累加器比特的子集保存到存储器。如前所述,累加器比特的子集可包括位于累加器中固定位置处的N个比特。可以将移位值C_SHIFT选择为使得将累加器中所得到的值的高比特位保存在存储器中。通过减少对在联合检测处理中计算出的中间值进行存储所用的比特数,JDA可以具有所期望的速度、存储器区域和/或功耗。
在一些实施方式中,由JDA外部的系统(例如,通过可编程DSP)来设定在JDA中使用的一个或更多个移位值。外部系统可以包括可编程DSP,该可编程DSP使得设计师可以对用于确定由JDA存储的一个或更多个变量的移位值的软件进行编程。另选地,或者附加地,设计师(例如,通过可编程DSP)设置随后被提供给JDA的固定的移位值。DSP对移位值的确定可以涉及对来自JDA的前端处理中所执行的处理的结果的使用。例如,基于可由DSP执行的有效码检测过程的结果,DSP可以确定用于由JDA存储的一个或更多个变量的移位值。由于对JDA的后端处理的移位值的选择可能取决于在求和运算中的加法次数(该加法次数进而与有效码的数量有关),所以该过程是所期望的。因此,可以至少部分地基于有效码检测过程的结果由DSP来确定移位值,并且随后将移位值发送到JDA。
在一些实施方式中,由JDA内部地确定JDA所使用的一个或更多个移位值。JDA对JDA所使用的一个或更多个移位值的内部确定可以涉及对要存储在存储器中的数据结果的分析。在矩阵A的情况下,由于矩阵V存储在JDA的内部,所以可能难以通过软件来计算最大可能输出移位,因此,可能期望由JDA来确定矩阵A的移位值。在一些实施方式中,可以由JDA内部地计算矩阵A的最大可能输出移位。如果由JDA内部地计算矩阵A的输出移位,则可以基于矩阵A中的最大元素来确定最大可能输出移位。由于矩阵A中的对角线上的元素表示各码道(加上噪声)与信道化码的自相关并且各码道的自相关比与其它任何码道的互相关大,所以矩阵A中的最大元素位于对角线上。为了确定矩阵A的最大可能输出移位,可以分别计算矩阵A的对角线的各元素并且可以将最大元素的最大可能移位值用作所有A矩阵元素的最大可能输出移位。应当理解的是,与用于执行整个联合检测处理的周期的总数相比,可以仅使用少量周期来执行移位值的自动内部确定。
JDA中的其它变量的存储也受益于由JDA执行的移位值的内部确定。例如,点除处理的结果也受益于对移位值的内部确定,其中将结果存储在存储器中之前应当将移位值应用于这些结果。如前所述,在点除(诸如线性方程求解器操作的f./D运算)的情况下,该运算包括将小数与对角矩阵D的逆相乘。由于D的元素是正小数,所以点除的结果有可能不是小数。针对矩阵D的对角元素的逆(即,l/dii)的内部导出的移位可以用于确保点除的结果也是小数。在一些实施方式中,对该矩阵的所有元素使用单个移位值,这可以使计算复杂度及存储器面积最小化。在这些实施方式中,可以通过确定该矩阵的最大元素的最大可能移位值并且随后将该最大可能移位值用于该矩阵的所有元素,来确定该单个移位值。
可以在多个部分中对矩阵D的各元素执行矩阵D的除法。首先,如在本领域中已知的,可以通过对各元素移位一个移位值的移位处理来对矩阵D的各对角元素进行归一化,由此消除重复的符号位。由于这里所述的技术在这一方面并不受限制,因此应用于所有元素的移位值可以是相同的以减少计算复杂度,或者可以是不同的。矩阵D的元素dii的归一化值(称为normalized(dii))小于1且大于或等于0.5。因此,各值0.5/normalized(dii)是大于0.5且小于或等于1的小数。可以在具有更大比特数(例如,21个比特)的中间除法器中计算值0.5/normalized(dii),并且随后可以按照尾数(例如,作为11比特值)及指数(例如,5比特值)的形式将这些比特中更少数量的比特保存在存储器中。另外,在存储点除运算g=f/.D的结果之前可以确定值0.5/normalized(dii)的最大指数并将其用作移位值,其中应当理解的是,可以将最大指数用作向量g的所有元素的移位值。
在一些实施方式中,设计师可以选择对于给定变量而言JDA是否使用移位值,以使得由JDA内部地确定移位或者由JDA外部的系统(例如,通过可编程DSP)来设定移位。设计师能够例如通过与JDA通信的可编程DSP来设定比特变量,其中,该比特变量表示对于给定变量而言JDA应当使用由JDA内部确定的(例如,如上所述对于矩阵A和矩阵1./D)移位值还是应当使用由JDA外部的系统(例如,由设计师编程到DSP中)设定的移位值。这使得设计师能够选择哪些变量应当使用内部确定的移位来存储以及哪些变量应当使用由外部源(例如,可编程DSP)确定或设定的移位来存储。这种方法通过使得设计师可以通过一些变量(例如,由设计师编程的移位值)的外部确定的移位值来选择哪些比特是有效比特(significant bit)同时使得JDA能够使用中间处理的结果来内部地确定其它变量的移位值,从而提供了灵活性。由JDA外部的系统所设定的移位值可能涉及使用提供给外部系统的中间结果来计算移位值,或者由JDA外部的系统所设定的移位值可以是由设计师提供的固定的移位值。
应当理解的是,用于使用、确定和/或设定JDA的定点实现的移位的一个或更多个技术可以单独地使用,或与这里所述的其它技术一起使用。可以在与可编程DSP通信的JDA中使用移位,以执行诸如一个或更多个中间处理操作的一个或更多个处理操作,但是在JDA中对变量进行移位的技术也可以由不具有这里所述的所有特征的JDA(例如,不一定使用DSP来进行中间处理操作的JDA)来使用。
在一些实施方式中,联合检测算法可以包括在向JDA发送信道估计之前对一个或更多个传播信道估计(例如,图3的矩阵H的一个或更多个列)进行预缩放操作。可以将预缩放操作包括在信道估计操作内,并且一旦完成初始信道估计并且在输出该信道估计之前执行预缩放操作。也可以在执行初始信道估计处理的可编程DSP中执行这种预缩放操作。在向JDA发送信道估计之前对一个或更多个传播信道估计进行预缩放可以提高JDA的定点实现中的准确度。
图11例示了传播信道估计的预缩放过程的流程图1100。该处理可以从动作1102开始,在动作1102中确定了一个或更多个预缩放因子。这些预缩放因子将被应用于已经由初始信道估计过程所确定的传播信道估计。各传播信道的预缩放因子可以是不同的,但是应当理解的是,该技术在这一方面并不受限制。可以按照任何合适的方式来执行一个或更多个预缩放因子的确定。
可以是至少部分地基于传播信道估计的最大元素和/或传播信道估计的幂来选择传播信道估计的预缩放因子。可以选择预缩放因子以实现各种目的,包括但不限于:(1)对传播信道估计进行预缩放,使得在预缩放之后,这些传播信道估计的最大绝对值元素具有相同的指数;(2)对传播信道估计进行预缩放,使得在预缩放之后,这些传播信道估计具有大致相同的最大绝对值元素(例如,它们的最大绝对值元素的相同指数和尾数绝对值);或者(3)对传播信道估计进行预缩放,使得在预缩放之后,这些传播信道估计具有大致相同的幂。
在一个实施方式中,可以选择预缩放因子以确保在预缩放之后,各信道估计的最大绝对值元素的指数都相同。当信道估计包括复数项时,可以将最大绝对值元素选择为包括这些项的实分量的绝对值以及虚分量的绝对值在内的集合的最大值。在这个情况下,复数项是由两个实数元素构成的,即该复数的实分量和虚分量。如果初始传播信道估计是由下式给出
h1=[h1(0),h1(1),…,h1(w-1)]
h2=[h2(0),h2(1),…,h2(w-1)]
hka=[hka(0),hha(1),…,hka(w-1)]
其中h1、h2、…、hka是初始传播信道估计(矩阵H的各列)并且各初始传播信道估计是具有w-1个复数项的向量。由实数元素real(hi(j))和虚数元素imag(hi(j))形成各复数项hi(j)。因此,如在这里所表示,可以将给定传播信道估计hi的最大绝对值元素(也被称为形成初始传播信道估计的该多个值的最大绝对值)表示为由{abs(real(hi(j))),abs(imag(hi(j))),j=0,…,w-1}给出的集合的最大值。
在另一实施方式中,确定了给定传播信道估计(例如,矩阵H的给定列)的最大绝对值元素,并且可以将该给定信道的预缩放因子设定为最大绝对值元素的逆,由此确保在预缩放之后,给定传播信道的元素小于或等于1(例如,小数)。可以使用单独的尾数及指数来表示各传播信道估计的预缩放因子。
在另一实施方式中,确定了各传播信道估计的幂(例如,矩阵H的各列的模平方),并且可以利用预缩放因子来对各信道进行缩放,以使得各信道在缩放后具有大致相同的幂。因此,可以将各传播信道估计的预缩放因子选择为各传播信道估计的幂的倒数。
在动作1104中,使用在动作1102中所确定的预缩放因子来对各传播信道估计进行预缩放。随后可以向JDA提供经过预缩放的传播信道估计及相应的预缩放因子。
图12示出了根据一个实施方式的使用各传播信道的预缩放因子来对初始传播信道估计进行预缩放的示例性实施方式。如其中针对一个信道包括一个列的矩阵H 1210中所示,可以由矩阵H中的列来表示初始信道估计,并且其中矩阵H的各列的长度是W。因此,矩阵H的各列包括W个项(例如,复数)。图12例示了利用预缩放因子Pi对各初始传播信道估计(矩阵H的各列)进行的预缩放,以构建经过预缩放的矩阵H 1250。可以按照任何合适的方式来确定各预缩放因子,例如,如使用诸如图11的流程图中所示方法的动作1102所述的处理之类的处理所述。
应当理解的是,预缩放技术可以单独地使用或与这里所述的其它技术一起使用。可以在与可编程DSP通信的JDA中使用预缩放,以执行诸如一个或更多个中间处理操作的一个或更多个处理操作,但是也可以在其它类型的JDA中使用预缩放技术。
一旦提取出了用户数据,则在联合检测处理期间或者在联合检测处理完成时可以解释预缩放因子的效果。在一些实施方式中,用于对在联合检测处理期间生成的中间结果进行缩放或移位的所有因子在联合检测处理结束时都可以得到解释。这些因子可以包括预缩放因子、如在有效码检测中规定的缩放因子和用于JDA存储器存储的移位值。例如,如果已经对矩阵T进行缩放,则可以从最终输出中去除这些缩放因子的影响(例如,来自有效码检测和/或预缩放)。另外地或者另选地,通过以净(net)移位值的负值对最终输出进行移位可以去除对联合检测处理期间生成的中间结果的移位。
由于这里所述的一个或更多个技术在这一方面并不受限制,所以可以使用任何合适的硬件架构来实现这些技术。图13是根据本发明的实施方式的JDA架构的框图1300。图13的JDA架构1300包括外部总线接口1320,该外部总线接口1320使得JDA能够经由通信总线1321与外部部件(例如,可编程DSP或者其他主计算机)通信。JDA可以包括控制多个硬件块以执行联合检测算法(诸如图6的框图中所示的JDA算法)的控制器1350。JDA硬件块可以包括数据地址生成器1303、寄存器文件1302、JDA存储器单元1304和计算块1305。计算块1305可以包括一个或更多个计算单元或者计算数据通路,以执行联合检测处理。在图13的实施方式中,计算块1305包括主数据通路1306(例如,复数乘法累加单元)、第二数据通路1307(例如,复数乘法累加单元)和除法器数据通路1308。寄存器文件1302可以存储配置和状态信息,而JDA存储器单元1304能够存储与联合检测处理算法相关的输入数据值、中间结果和输出数据值。在该架构中可以包括输入复用器(或者数据选择器)1314并将其配置为将输入数据引导到主数据通路1306、第二数据通路1307和除法器通路1308。输出复用器1316可以被配置为将所执行的运算的结果引导回JDA存储器单元1304。缓存器1330可以用于临时保持数据值,如下所述。
如图13所示,JDA可以包括能够执行不同类型运算的计算数据通路。图13的框图中所示JDA架构包括主数据通路1306、第二数据通路1307和除法器数据通路1308。如下所述,主数据通路1306包括复数乘法累加单元,并且第二数据通路1307包括复数乘法累加单元。
包括复数乘法累加单元的主数据通路1306可以执行诸如Σiaibi+dj的运算。所示的主数据通路包括移位输入寄存器1310和量化单元1312,该量化单元1312能够将值乘以或者除以二的幂(即,乘以2SHIFT)。移位输入寄存器1310可以用于向累加器提供移位输入,而量化单元1312可以用于在将累加器中得到的值的比特的子集(例如,在累加器中的固定比特位置处)存储在联合检测存储器1304中之前对这些比特进行移位。在一些实施方式中,可以将主数据通路用于执行除计算矩阵V以外的乘法累加运算。图16中更详细地示出了主数据通路1306。包括经过简化的复数乘法累加元1307的第二数据通路可以执行诸如Σiaibi的运算,其中,bi是+1、-1、+j或-j。可以在涉及矩阵H与矩阵C的各列的卷积的矩阵V计算处理期间执行这种运算。由于可以将编码矩阵C限制为包括属于集合{+1,-1,+j,-j}的元素,所以可以使用第二数据通路来计算矩阵V的元素。第二数据通路1307可以被构造成通过使用一个或更多个复用器来更优化地执行aibi的乘法,其中该一个或更多个复用器可以基于bi是+1、-1、+j还是-j来选择输入值ai的实分量或虚分量。由第二数据通路执行的累加运算不一定包括将dj值与对aibi的求和相加的加法,也不一定伴随着对dj的输入移位。应当理解的是,可以在第二数据通路中包括对累加器的结果进行运算的输出移位器,从而对输出进行移位。在一些实施方式中,第二数据通路1307可以用于执行矩阵V的计算。
除法器数据通路1308可以用于在点除处理期间计算l/dii运算。如在本领域中已知的,除法器数据通路可以用于执行归一化除法处理,在归一化除法处理中可以通过将矩阵D的各对角元素移位一个移位值的移位处理来对矩阵D的各对角元素进行归一化,由此去除重复的符号位。由于这里所述的技术在这一方面并不受限制,所以应用于所有元素的移位值可以是相同的以减少计算复杂度,或者可以是不同的。可以在具有更多比特数(例如,20比特)的中间除法器中计算值0.5/normalized(dii),并且随后可以按照尾数(例如,作为11比特值)及指数(例如,5比特值)的形式将这些比特中更少量的比特保存在JDA存储器1304中。应当理解的是,由于可以存储尾数来代替复数的实部并且可以存储指数以代替复数的虚部,所以对矩阵D的逆元素的尾数和指数的存储不一定需要特定的存储器。
控制器1350控制硬件块的操作,这些硬件块被配置成包括地址生成级1360、数据取出级1370、执行级1380和数据写入级1390的流水线(pipeline)形式的多个级。联合检测运算被分成几个子运算,并在JDA的连续时钟周期上在相应的流水线级执行这些子运算。地址生成级1360可以包括数据地址生成器1303。数据取出级1370可以包括JDA存储器单元1304和输入复用器1314。执行级1380可以包括主数据通路1306和第二数据通路1307。除法器数据通路1308需要几个时钟周期以完成运算,因此不视为执行级1380的一部分。数据写入级1390可以与将来自执行级1380的结果写入到JDA存储器单元1304相关联。控制器1350生成用于执行这里所述的联合检测处理的控制信号和定时信号。在一个实施方式中,除了开始各联合检测运算时的初始延迟时间以外,在各时钟周期都出现存储器访问(不管是读访问还是写访问)。
可以由图13的架构在控制器1350的控制下执行例如图6的框图中所示的JDA处理操作。在一些实施方式中,控制器1350实现为用于控制联合检测加速器的硬件块的有限状态机。有限状态机对一系列状态按顺序遍历(sequence through)以执行联合检测处理。在另一些实施方式中,控制器1350被实现为可编程控制器,其中该可编程控制器包括用于保存执行联合检测处理的指令的诸如RAM或ROM之类的程序定序器和指令存储器。在这些实施方式中,控制器执行指令存储器中的指令。这些指令对联合检测加速器的硬件块进行控制以执行联合检测处理。
图14是可以由有控制器1350实现来控制JDA架构的硬件块并且执行联合检测处理的一个或更多个任务的处理的流程图1400。在联合检测处理的各运算中,控制器1350对联合检测加速器的块进行控制以执行所指示的运算。
控制器1350可以通过计算V矩阵元素开始构建V矩阵(动作1402)。第二数据通路1307可以用于构建矩阵V。控制器可以继续计算第一匹配滤波器输出y1(动作1404)。主数据通路1306可以用于计算第一匹配滤波器输出。控制器可以继续计算矩阵V的幂和/或之前计算出的匹配滤波器输出的幂,其中,在一些实施方式中仅需要计算一个匹配滤波器输出的幂(动作1406)。主数据通路1306可以用于计算第一匹配滤波器输出的幂和矩阵V的幂。
控制器1350然后可以继续计算第二匹配滤波器输出y2(动作1408)。主数据通路1306可以用于计算第二匹配滤波器输出。控制器还可以继续控制与有效码检测相关的动作的执行,与有效码检测相关的动作可以与其它动作(诸如构建匹配滤波器输出y2)同时执行。
在一些实施方式中,与有效检测相关的动作可以包括确定是否希望进行有效码检测。可以由设计师来提供是否希望进行有效码检测的指示。该指示可以包括设置用于规定是执行还是跳过有效码检测的参数。由于这些实施方式在这一方面并不受限制,所以可以通过任何合适的方式来向JDA提供参数设置。可以从DSP向JDA提供指示了是否要跳过有效码检测的参数设置。控制器1350可以基于前述参数的值来确定是否跳过有效码检测(动作1409)。如果确定要跳过有效码检测,则控制器可以跳过有效码检测并且继续进行处理中的其余动作。如果确定不跳过有效码检测并因此应当执行该检测,则控制器可以引导发起有效码检测,该有效码检测可以由连接到JDA的可编程DSP来执行。通过这种方式,当DSP正在执行有效码检测时,JDA可以同时执行不使用有效码检测结果的其它操作(诸如构建匹配滤波器输出y2)(动作1408)。
控制器1350然后可以等待有效码检测的完成(动作1410),其中,如上所述,在一些实施方式中,可以由除JDA以外的其它部件(例如可编程DSP)来执行该有效码检测。当有效码检测完成(动作1410)和构建匹配滤波器输出y2完成(动作1408)时,控制器可以控制对匹配滤波器输出y1、y2和矩阵V的重新缩放及重新排序(动作1412)。主数据通路1306可以用于对匹配滤波器输出和矩阵V进行重新缩放及重新排序。控制器然后可以控制矩阵A的计算(动作1413)。主数据通路1306可以用于计算矩阵A。控制器然后可以执行Cholesky分解(动作1414)。主数据通路1306和除法器通路1308可以用于执行Cholesky分解。控制器然后可以继续进行计算以求解线性方程A*x1=y1从而得到x1的值(动作1416)。控制器可以继续从解x1中提取用户数据(动作1418)。控制器然后可以继续进行计算以求解线性方程A*x2=y2从而得到x2的值(动作1420)。控制器可以继续从解x2中提取用户数据(动作1422)。如上所述,求解线性方程以得到x1和x2的值涉及前向替换、点除和后向替换。主数据通路1306和除法器数据通路1308可以用于在动作1416和1420中求解线性方程。主数据通路1306可以用于在动作1418和1422中提取用户数据。控制器然后可以等待下一时隙(动作1424),并且在接收到下一时隙时再次从动作1402开始重复进行该处理。
应当理解的是,在一些实施方式中,可以在当前时隙的处理结束之前加载针对下一时隙的数据及控制参数(这里有时被统称为数据)。在一些实施方式中,可以在JDA完成对当前时隙的控制参数及数据的加载后,立即执行对下一时隙的数据及控制参数的加载。控制参数可以包括移位值、指示是否应当跳过有效码检测的参数、信道的长度(W)和/或码数。
图15的框图中示出了联合检测加速器的存储器相关部件的实施方式。JDA存储器单元1304可以包括多个可独立访问的存储器,以提高性能。在图15的实施方式中,JDA存储器单元1304包括输入存储器1510、第一中间存储器(或者矩阵存储器)1512、第二中间存储器(或者主存储器)1514和输出存储器1516。各存储器可以是双端口存储器以进一步提高性能。存储器1510、1512、1514和1516可以被数据地址生成器1303(图13)和/或控制器1350寻址。在控制器1350的控制下,来自主处理器的输入数据值被写入输入寄存器1520,然后被写入输入存储器1510。在控制器1350的控制下,输出数据值从输出存储器1516被读出并被置于输出寄存器1522中。输出值被主处理器从输出寄存器1522中读出。
输入寄存器1520和输出寄存器1522允许与主处理器交换数据值。通过利用输入寄存器1520和输出寄存器1522,主处理器将输入数据值写到单个位置并从单个位置读出输出数据值,而不访问JDA存储器单元1304。如图6所示,输入数据值可以包括在对所接收的信号进行初始处理之后从DSP接收的前端处理输入以及在中间处理(例如有效码检测)之后从DSP接收的后端处理输入。输出数据值可以包括在前端处理之后提供给DSP的前端处理输出和在后端处理之后提供给DSP的后端处理输出。
联合检测加速器还可以包括缓存器1330,以提高性能,如下所述。缓存器1330可以用于保持输入值和中间结果,以减少在某些情况下对存储器单元1304的访问。例如,缓存器1330可以用于临时保持在空闲时钟周期期间从存储器读出并在随后的时钟周期期间进行处理的数据值。此外,缓存器1330可以用于临时保持中间结果或者输出值,直到它们被写入适当的存储器中为止。而且,缓存器1330可以用于临时保持在随后的计算中由计算块1305使用的中间结果,由此不需要将中间结果写入其中一个存储器。此外,缓存器1330中的数据可以适当时在两个或者更多个计算中重用,由此减少了存储器访问并节省了电力。
如图15所示,缓存器1330可以从计算块1305接收写回数据值,并且能够通过复用器1532从输入存储器1510、矩阵存储器1512和主存储器1514接收数据值。缓存器1330可以通过复用器1314向计算块输出数据值、通过复用器1534向矩阵存储器1512输出数据值、通过复用器1536向主存储器1514输出数据值并通过复用器1538向输出存储器1516输出数据值。
在一个实施方式中,输入存储器1510为用于存储一个时隙的输入数据值的1264x22双端口存储器。输入存储器1510接收来自主处理器的输入数据值,并将该数据值通过复用器1314提供给计算块1305。在从输入存储器1510读出数据值以用于计算块的联合检测处理的同时主处理器可以将数据值写入输入存储器1510。
矩阵存储器1512可以是用于存储组合的信道估计和扩频/扰频矩阵以及重新排序后的信道估计矩阵的512x22双端口存储器。独立的矩阵存储器使得能够与其他的联合检测操作并行地执行矩阵生成。
主存储器1514可以是用于存储根据匹配滤波器操作、重新排序后的匹配滤波器、矩阵A、矩阵L、前向替换、点除和后向替换生成的中间变量的2064x22双端口存储器。对这些值可以重用存储器空间。主存储器被实现为独立的存储器块,使得外部存储器的读写不会导致联合检测处理发生停顿(stall)。
输出存储器1516可以是存储从联合检测计算得到的输出数据值的双端口740x16FIFO(先入先出(first-in,first-out))缓存器。输出存储器1516被实现为独立的存储器块,使得外部存储器的读出不会导致联合检测操作发生停顿。
如图15所示,存储器1512和1514从计算块1305和从缓存器1330接收写回数据值。存储器1512和1514通过复用器1314向计算块提供中间数据值以进行进一步的处理。输出存储器1516从计算块1305和从缓存器1330接收写回数据值。输出存储器1516通过输出寄存器1522和外部总线接口1320向主处理器提供输出数据值。
图16中示出了主数据通路1306的一个实施方式。主数据通路1306可以包括带有如下所述的附加功能的双复数乘法累加(MAC)电路。如图所示,各复数MAC包括乘法器1610和1612(各乘法器接收两个11比特输入)、对乘法器1610和1612的输出进行接收的加法器1614、加法器1616、累加寄存器1618和复用器1620。加法器1616对加法器1614和复用器1620的输出进行接收,而累加寄存器1618对加法器1616的输出进行接收。累加寄存器1618将输出提供给量化单元1312并提供给复用器1620的输入。复用器1620接收来自移位输入寄存器1310的第二输入。来自移位输入寄存器1310的移位数据值可以载入到累加器寄存器1618中。移位输入寄存器1310可以执行图10中所示的移位输入1008的功能(如上所述),量化单元1312可以执行图10中所示的输出移位器1010的功能(如上所述)。
图17中示出了第二数据通路1307的实施方式。第二数据通路1307可以包括不需要利用乘法器的简化的复数MAC。该配置能够进行复数值的乘法运算,其中复数值之一是+1、-1、+j或-j。如图所示,第二数据通路1307包括第一4输入端复用器1710和第二4输入端复用器1712。复用器1710在输入端0-3处分别接收以下输入:A的实部、A的实部的逆、A的虚部的逆和A的虚部。复用器1712在输入端0-3处分别接收以下输入:A的虚部、A的虚部的逆、A的实部和A的实部的逆。各复用器1710和1712受复数B的虚部控制。各复用器1710、1712的输出被提供给包括加法器1720和累加器寄存器1722在内的累加器。累加器寄存器输出结果的实分量和虚分量。
图18中示出了除法器数据通路1308的实施方式。除法器数据通路1308包括归一化浮点除法器。除法器数据通路执行Cholesky分解所需要的1/D计算和联合检测处理中的点除。除法器数据通路1308包括整数除法器1810、移位逻辑1812、移位生成器1814、XOR(异或(exclusive OR))逻辑1820、复用器1822和1826、加法器1824、以及锁存器1830和1832。
除法器1810执行返回整数商和余数的整数除法。当分子是十进制的1而分母大于十进制的1时,整数除法器1810返回商0和余数1。为了得到11比特的2的补商(complement quotient),对分子和分母进行归一化。
对来自除法器的各商都进行后处理以生成浮点数并将其存储在JDA存储器单元1304中。浮点数1/D由尾数和指数表示。尾数为11比特的2的补数,而指数为5比特的2的补数。在取整中可能用到余数。
将分母归一化到固定范围以使得输出具有固定范围。在该实施方式中,分母被归一化到范围(-1,-0.5)至(0.5,1)。分子(十进制的1)被归一化成使得输出具有11个有效数字。在最坏情况下,整数除法器输出的LSB等于2n-1,其中,n为2的补输入(complement input)的比特宽度。因此,为得到具有11比特的2的补分母(complement denominator)的11比特的2的补商,归一化的分子为220比特数字。
分母归一化由移位生成器1814和移位逻辑1812完成。11比特分母输入被左移位,使得得到的数字在范围(-1,-0.5)至(0.5,1)内。通过将分母向左移位直到2的补数的第一非符号位(non-sign bit)处于第9比特的位置来执行该移位。移位的值存储为结果的指数。
在Q(1.20)格式下分子总是等于0.5(其等于整数格式下的219)。分子为0.5以保持结果在范围(-1,-0.5)到(0.5,1)中。为了说明分子为0.5而不是1这一事实,将1加到移位生成器输出以得到指数。
输出值的整个范围除值+1外都在尾数的Q(1.10)格式内。因此,值+1需要特别处理。如果除法器1810返回值+1,则分母为0.5,这只在分母为2的幂(具体地说,为2-n,其中n为[1,9])时发生。在这种情况下,将结果向右移位1,并将2加到移位生成的结果上以得到指数。
指数生成逻辑包括移位生成器1814、XOR逻辑1820、复用器1822和加法器1824。移位生成器1814产生初始移位。输入的下10个LSB为对MSB求异或以得到移位值。XOR逻辑1820确定从除法器1810输出的值是否是+1。如果12比特商输出的2个MSB为01,则XOR逻辑1820返回“1”。在所有其他情况下,XOR逻辑1820返回“0”。
如果XOR逻辑1820返回“0”,则由复用器1826将商输出的下11比特返回为尾数,并通过加法器1824将1加到移位生成器1814输出上并将其返回作为指数。如果XOR逻辑1820返回“1”,则由复用器1826将商输出的比特[11:1]返回作为尾数,并通过加法器1824将2加到移位生成器1814上并输出且返回作为指数。锁存器1830和1832分别保持尾数和指数。
这里所述的联合检测加速器的实施方式利用了包括地址生成级、数据取出级、执行级和数据写入级在内的流水线架构。图19A例示了非优化的流水线运算,而19B例示了优化的流水线运算。图19A和19B中,ADD行对应于地址生成级,RD行对应于数据取出级,EX行对应于执行级,而WR行对应于数据写入级。
在图19B的优化的流水线中,在初始延迟之后,在每个周期与执行EX或者写回WB一起执行数据读出R。初始延迟之后的存储器访问不会导致停顿周期。
在图19B的示例中,计算了数据元素的流。各元素需要经过三次乘法EX来完成其计算。在各周期,都进行存储器读出/执行或者存储器写回(例如见周期7到10)。除第一个和最后一个元素以外,仅需要4个周期(包括存储器写入周期)来计算各元素。每4个周期进行一次写回WB。处理期间的存储器访问不会导致停顿周期。仅需要14个周期来计算前三个数据元素。
在图19A的非优化流水线中,在存储器访问中会导致停顿周期。结果,需要18个周期来完成前三个数据元素的处理。在图19A中,可以看到每6个周期进行一次写回WB。
可以通过控制器1350(图13)的适当配置来实现图19B中所示的优化运算。例如,对有限状态机(不是导致停顿周期)进行编程以对处理中稍后会用到的数据元素执行数据访问。数据元素存储在缓存器1330中直到需要时为止。缓存器1330与JDA控制器1350一起使用有效地去除了停顿周期。
通过从联合检测处理中去除停顿周期,提高了联合检测加速器的性能。具体地说,以更低的时钟频率下实现了给定水平的性能,由此节省电力。
在一些实施方式中,联合检测加速器可以实现为ASIC(专用集成电路)。在其他实施方式中,联合检测加速器可以实现为FPGA(现场可编程门阵列)。在各种情况下,联合检测加速器用作DSP的协处理器或者其他主处理器的协处理器。
可以单独地、组合地或者在前述实施方式中未具体讨论的多种设置中使用本发明的各种方面,并且在将这里所述的本发明的这些方面应用于前面的说明书所阐述的或在附图中所例示的部件的细节和设置方面并不受限制。本发明的这些方面可以用于其它实施方式,并且可以按照各种方式实施或执行。可以与任何类型的网络、组(cluster)或结构相结合来实现本发明的各种方面。对网络实现没有设置任何限制。
因此,前面的说明书和附图仅是示例。
另外,这里所使用的措辞和术语是出于说明的目的,而不应当将其视为限制性的。这里所使用的“包括”(“including”、“comprising”)、或者“具有”、“包含”、“涉及”及它们的变型意在包含其后所列出的项目及其等同物和附加的项目。
Claims (29)
1.一种对所接收的信号执行联合检测的联合检测加速器,该联合检测加速器包括:
存储器单元,用于存储输入数据值、中间结果和输出数据值;
地址生成单元,生成用于访问所述存储器单元的地址;
多个计算单元,用于处理所述输入数据值和所述中间结果并将输出数据值提供给所述存储器单元,所述多个计算单元包括主数据通路、除法器数据通路和第二数据通路;
数据选择器,用于向所述多个计算单元提供所述输入数据值和所述中间结果;
控制器,用于控制所述存储器、所述地址生成单元、所述多个计算单元和所述数据选择器以执行联合检测处理;以及
外部接口,用于从主处理器接收所述输入数据值并向所述主处理器提供输出数据值,
其中,所述控制器控制所述第二数据通路以执行联合检测的矩阵生成,控制所述除法器数据通路以执行联合检测的点除,并控制所述主数据通路以执行联合检测的其他运算。
2.根据权利要求1所述的联合检测加速器,其中,所述主数据通路包括复数乘法累加单元。
3.根据权利要求2所述的联合检测加速器,其中,所述除法器数据通路包括归一化浮点除法器。
4.根据权利要求3所述的联合检测加速器,其中,所述第二数据通路包括简化的复数乘法累加单元。
5.根据权利要求1所述的联合检测加速器,其中,第一流水线级包括所述地址生成单元,第二流水线级包括所述存储器单元和所述数据选择器,第三流水线级包括所述多个计算单元。
6.根据权利要求5所述的联合检测加速器,该联合检测加速器进一步包括第四流水线级,该第四流水线级包括用于写回由所述多个计算单元产生的结果的写回单元。
7.根据权利要求1所述的联合检测加速器,其中,所述存储器单元包括多个可独立访问的存储器。
8.根据权利要求7所述的联合检测加速器,其中,所述多个存储器包括用于针对时隙而存储输入数据值的输入存储器、用于存储信道估计矩阵和经过重新排序的该信道估计矩阵的矩阵存储器、用于存储在联合检测期间计算出的中间结果的主存储器、以及用于存储联合检测的输出数据值的输出存储器。
9.根据权利要求5所述的联合检测加速器,其中,所述控制器被构造为在初始延迟之后在迭代计算的各时钟周期执行存储器访问操作。
10.根据权利要求1所述的联合检测加速器,所述联合检测加速器进一步包括用于保持从所述存储单元读出的数据由此减少联合检测期间的存储器访问次数的缓存器。
11.根据权利要求1所述的联合检测加速器,所述联合检测加速器进一步包括用于保持中间结果由此减少联合检测期间的存储器访问次数的缓存器。
12.根据权利要求1所述的联合检测加速器,所述联合检测加速器进一步包括用于保持中间结果以及来自所述存储器单元的数据值的缓存器。
13.根据权利要求1所述的联合检测加速器,所述联合检测加速器进一步包括用于保持由所述控制器使用的联合检测参数以执行联合检测的寄存器文件。
14.根据权利要求1所述的联合检测加速器,其中,所述控制器包括有限状态机。
15.根据权利要求1所述的联合检测加速器,其中,所述控制器包括程序定序器和指令存储器,该程序定序器和该指令存储器保持用于执行联合检测处理的指令。
16.根据权利要求2所述的联合检测加速器,其中,所述复数乘法累加器包括四个乘法器、两个加法器和两个累加器,其中移位输入可直接预加载到所述累加器中的每一个。
17.根据权利要求3所述的联合检测加速器,其中,所述归一化浮点除法器输出尾数和指数。
18.根据权利要求4所述的联合检测加速器,其中,所述简化的复数乘法累加单元包括两个数据选择器和两个累加器。
19.根据权利要求1所述的联合检测加速器,其中,所述多个计算单元包括与所述数据选择器的不同输出端并联的至少两个计算单元。
20.一种对所接收的信号执行联合检测的联合检测加速器,该联合检测加速器包括:
输入存储器,用于存储数据值;
至少一个中间存储器,用于存储在联合检测处理期间计算出的中间结果;
输出存储器,用于存储在联合检测处理期间计算出的输出数据值;
计算块,用于使用来自所述输入存储器的所述输入数据值和来自所述至少一个中间存储器的所述中间结果来执行联合检测处理并将所述输出数据值提供给所述输出存储器,所述计算块包括主数据通路、除法器数据通路和第二数据通路;
外部接口,用于将来自主处理器的所述输入数据值提供给所述输入存储器并将来自所述输出存储器的输出数据值提供给所述主处理器;以及
控制器,用于控制所述输入存储器、所述至少一个中间存储器、所述输出存储器和所述计算块以执行联合检测处理,
其中,所述控制器控制所述第二数据通路以执行联合检测的矩阵生成,控制所述除法器数据通路以执行联合检测的点除,并控制所述主数据通路以执行联合检测的其他运算。
21.根据权利要求20所述的联合检测加速器,其中,所述至少一个中间存储器包括用于存储信道估计矩阵的矩阵存储器和用于存储中间值的主存储器。
22.根据权利要求21所述的联合检测加速器,其中,所述输入存储器、所述矩阵存储器、所述主存储器和所述输出存储器都包括双端口存储器。
23.根据权利要求20所述的联合检测加速器,所述联合检测加速器进一步包括用于保持来自所述输入存储器和所述至少一个中间存储器的数据值以及来自所述计算块的中间结果的缓存器。
24.一种对所接收的信号执行联合检测的联合检测加速器,该联合检测加速器包括:
外部接口,用于从主处理器接收输入数据值并向所述主处理器提供输出数据值;
存储器单元,用于存储所述输入数据值和所述输出数据值;
主数据通路,其包括复数乘法累加单元;
第二数据通路,其包括简化的复数乘法累加单元;
除法器数据通路,其包括归一化浮点除法器;以及
控制器,用于控制所述存储器单元、所述主数据通路、所述第二数据通路和所述除法器数据通路以执行联合检测处理,
其中,所述控制器控制所述第二数据通路以执行联合检测的矩阵生成,控制所述除法器数据通路以执行联合检测的点除,并控制所述主数据通路以执行联合检测的其他运算。
25.根据权利要求24所述的联合检测加速器,该联合检测加速器进一步包括用于向所述主数据通路、所述第二数据通路和所述除法器数据通路提供数据值的数据选择器。
26.一种对所接收的信号执行联合检测的联合检测加速器,该联合检测加速器包括:
外部接口,用于从主处理器接收输入数据值并向所述主处理器提供输出数据值;
存储器单元,用于存储所述输入数据值和所述输出数据值;
地址生成单元,生成用于访问所述存储器单元的地址;
计算块,用于使用来自所述存储器单元的输入数据值执行联合检测处理并将所述输出数据值提供给所述存储器单元,所述计算块包括主数据通路、除法器数据通路和第二数据通路;
控制器,用于控制所述存储器单元、所述地址生成单元和所述计算块以执行联合检测处理,其中,所述控制器被构造成在初始延迟之后在迭代计算的各时钟周期执行存储器访问操作,所述控制器控制所述第二数据通路以执行联合检测的矩阵生成,控制所述除法器数据通路以执行联合检测的点除,并控制所述主数据通路以执行联合检测的其他运算。
27.根据权利要求26所述的联合检测加速器,该联合检测加速器进一步包括用于保持来自所述存储器单元的数据值和来自所述计算块的中间结果的缓存器。
28.根据权利要求26所述的联合检测加速器,其中,所述控制器包括有限状态机。
29.根据权利要求26所述的联合检测加速器,其中,所述控制器包括程序定序器和指令存储器,该程序定序器和该指令存储器保持用于执行联合检测处理的指令。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84815706P | 2006-09-29 | 2006-09-29 | |
US60/848,157 | 2006-09-29 | ||
US87990007P | 2007-01-10 | 2007-01-10 | |
US60/879,900 | 2007-01-10 | ||
US11/818,055 | 2007-06-12 | ||
US11/818,055 US7953958B2 (en) | 2006-09-29 | 2007-06-12 | Architecture for joint detection hardware accelerator |
PCT/US2007/020832 WO2008042210A2 (en) | 2006-09-29 | 2007-09-27 | Architecture for joint detection hardware accelerator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101663829A CN101663829A (zh) | 2010-03-03 |
CN101663829B true CN101663829B (zh) | 2013-02-27 |
Family
ID=41105166
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780036561.5A Active CN101536333B (zh) | 2006-09-29 | 2007-09-27 | 联合检测方法及其系统 |
CN2007800362532A Active CN101663829B (zh) | 2006-09-29 | 2007-09-27 | 联合检测硬件加速器的架构 |
CNA2007800299454A Pending CN101553994A (zh) | 2006-09-29 | 2007-09-27 | 联合检测方法及设备 |
CN2007800360293A Expired - Fee Related CN101553995B (zh) | 2006-09-29 | 2007-09-27 | 联合检测器的定点实现 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780036561.5A Active CN101536333B (zh) | 2006-09-29 | 2007-09-27 | 联合检测方法及其系统 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800299454A Pending CN101553994A (zh) | 2006-09-29 | 2007-09-27 | 联合检测方法及设备 |
CN2007800360293A Expired - Fee Related CN101553995B (zh) | 2006-09-29 | 2007-09-27 | 联合检测器的定点实现 |
Country Status (1)
Country | Link |
---|---|
CN (4) | CN101536333B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814933B (zh) * | 2010-03-25 | 2012-12-26 | 京信通信系统(中国)有限公司 | 基于td-scdma接收机的预缩放方法和装置 |
CN102281219B (zh) * | 2010-06-09 | 2015-07-22 | 中兴通讯股份有限公司 | 调整信号动态范围的方法及装置 |
CN102185630B (zh) * | 2011-04-13 | 2014-11-05 | 中兴通讯股份有限公司 | 一种扩频通信系统中窄带干扰抑制方法、装置和接收机 |
CN102263574B (zh) * | 2011-06-13 | 2017-03-22 | 中兴通讯股份有限公司 | 一种通信系统中窄带干扰检测抑制方法、装置和接收机 |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
US11436483B2 (en) * | 2018-01-17 | 2022-09-06 | Mediatek Inc. | Neural network engine with tile-based execution |
US10977001B2 (en) * | 2018-02-05 | 2021-04-13 | Mediatek Inc. | Asymmetric quantization of multiple-and-accumulate operations in deep learning processing |
CN110929854B (zh) * | 2018-09-20 | 2024-04-16 | 华为技术有限公司 | 一种数据处理方法、装置及硬件加速器 |
CN112434483A (zh) * | 2020-12-18 | 2021-03-02 | 国微集团(深圳)有限公司 | 数据传输系统的生成方法和数据传输系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777076A (zh) * | 2004-11-16 | 2006-05-24 | 深圳安凯微电子技术有限公司 | 一种时分-同步码分多址接入的基带芯片 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0992916A1 (en) * | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Digital signal processor |
US7110440B2 (en) * | 2001-03-14 | 2006-09-19 | Mercury Computer Systems, Inc. | Wireless communications systems and methods for multiple processor based multiple user detection |
GB2375464B (en) * | 2001-05-11 | 2003-05-28 | Motorola Inc | Method and device for multi-user detection in CDMA channels |
WO2003017558A2 (en) * | 2001-08-21 | 2003-02-27 | Morphics Technology, Inc. | Method and apparatus for enhancing data rates in spread spectrum communication systems |
US6771693B2 (en) * | 2001-12-27 | 2004-08-03 | Interdigital Technology Corporation | Enhanced rake structure |
WO2005078949A1 (ja) * | 2004-02-12 | 2005-08-25 | Nec Corporation | 移動通信システム及びそれに用いる無線装置 |
-
2007
- 2007-09-27 CN CN200780036561.5A patent/CN101536333B/zh active Active
- 2007-09-27 CN CN2007800362532A patent/CN101663829B/zh active Active
- 2007-09-27 CN CNA2007800299454A patent/CN101553994A/zh active Pending
- 2007-09-27 CN CN2007800360293A patent/CN101553995B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777076A (zh) * | 2004-11-16 | 2006-05-24 | 深圳安凯微电子技术有限公司 | 一种时分-同步码分多址接入的基带芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN101536333B (zh) | 2014-11-05 |
CN101553995A (zh) | 2009-10-07 |
CN101553995B (zh) | 2012-07-25 |
CN101553994A (zh) | 2009-10-07 |
CN101663829A (zh) | 2010-03-03 |
CN101536333A (zh) | 2009-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101663829B (zh) | 联合检测硬件加速器的架构 | |
US7953958B2 (en) | Architecture for joint detection hardware accelerator | |
US7773704B2 (en) | Method and apparatus for parallel midamble cancellation | |
US7949925B2 (en) | Fixed-point implementation of a joint detector | |
CN101651641A (zh) | 一种终端设备基带处理系统中的匹配滤波电路装置及方法 | |
CN101384992A (zh) | 用来执行乘加运算的方法和装置 | |
CN107483090B (zh) | 基于ldlt分解的大规模mimo系统预编码实现方法 | |
CN101527919B (zh) | 一种联合检测中匹配滤波的方法及装置 | |
US7924948B2 (en) | Pre-scaling of initial channel estimates in joint detection | |
US7916841B2 (en) | Method and apparatus for joint detection | |
US9244727B2 (en) | Method and apparatus for implementing task-process-table based hardware control | |
CN113312024B (zh) | 一种期权定价计算硬件加速器、加速卡及计算机设备 | |
WO2004079585A1 (ja) | 行列演算装置 | |
CN102611648A (zh) | 一种串行干扰抵消系统及方法 | |
JP2003122736A (ja) | 行列演算装置 | |
Quan et al. | FPGA implementation of DCD based CDMA multiuser detector | |
CN102404758B (zh) | 一种符号级处理装置 | |
CN101072043A (zh) | 一种联合检测的硬件实现装置和方法 | |
Mehlhose et al. | Efficient fixed-point implementation of linear equalization for cooperative mimo systems | |
CN101521525A (zh) | 并列中导码消除的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |