掌桥专利:专业的专利平台
掌桥专利
首页

用于在存储器阵列内执行分集矩阵运算的方法及设备

文献发布时间:2023-06-19 11:19:16


用于在存储器阵列内执行分集矩阵运算的方法及设备

本申请案的主题涉及在2018年6月7日提交且名称为“形成于存储器单元阵列中的图像处理器(AN IMAGE PROCESSOR FORMED IN AN ARRAY OF MEMORY CELLS)”的共同拥有且共同未决的美国专利申请案第16/002,644号,在2018年12月5 日提交且名称为“用于激励参与雾网的方法及设备(METHODS AND APPARATUS FOR INCENTIVIZINGPARTICIPATION IN FOG NETWORKS)”的美国专利申请案第 16/211,029号,在2019年1月8日提交且名称为“用于基于例程的雾联网的方法及设备 (METHODS AND APPARATUS FORROUTINE BASED FOG NETWORKING)”的美国专 利申请案第16/242,960号,在2019年2月14日提交且名称为“用于表征存储器装置的 方法及设备(METHODS AND APPARATUS FORCHARACTERIZING MEMORY DEVICES)”的美国专利申请案第16/276,461号,在2019年2月14日提交且名称为“用 于检查经表征存储器搜索的结果的方法及设备(METHODS ANDAPPARATUS FOR CHECKING THE RESULTS OF CHARACTERIZED MEMORY SEARCHES)”的美国专利 申请案第16/276,471号,在2019年2月14日提交且名称为“用于维持经表征存储器装 置的方法及设备(METHODS AND APPARATUS FOR MAINTAINING CHARACTERIZED MEMORYDEVICES)”的美国专利申请案第16/276,489号,在2019年5月3日提交且 名称为“用于在存储器阵列内执行矩阵变换的方法及设备(METHODS AND APPARATUS FOR PERFORMINGMATRIX TRANSFORMATIONS WITHIN A MEMORY ARRAY)”的 美国专利申请案第16/403,245号,及在2019年11月20日提交且名称为“用于在存储 器阵列内执行视频处理矩阵运算的方法及设备(METHODS AND APPARATUS FOR PERFORMING VIDEO PROCESSING MATRIXOPERATIONS WITHIN A MEMORY ARRAY)”的美国专利申请案第16/689,981号,前述申请案中的每一个以全文引用的方 式并入本文中。

此专利文献的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人 对此专利文献或专利公开内容进行传真复制,因为它出现在专利和商标局的专利文件或 记录中,但无论如何在其它方面保留所有版权。

技术领域

以下内容大体上涉及数据处理和装置架构的领域。具体地说,公开一种将存储器阵 列转换成用于矩阵变换的矩阵组构并执行空间分集矩阵计算的处理器-存储器架构及方 法,所述空间分集矩阵计算例如用于多输入/多输出(MIMO)及大规模MIMO应用的那些矩阵计算。

背景技术

存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过编程存储器装置的不同状态来存储信息。举例来说,二进制装 置具有常常由逻辑“1”或逻辑“0”表示的两种状态。为了存取所存储的信息,存储器 装置可读取(或感测)存储器装置中的所存储状态。为了存储信息,存储器装置可写入(或 编程)存储器装置中的状态。所谓的易失性存储器装置可需要电力来维持此所存储的信 息,而非易失性存储器装置即使在存储器装置自身例如已进行电力循环之后也可持续地 存储信息。不同存储器制造方法及构造实现不同能力。举例而言,动态随机存取存储器 (DRAM)以低成本提供高密度易失性存储装置。初步研究涉及电阻性随机存取存储器 (ReRAM),其保证与DRAM类似的非易失性性能。

处理器装置通常与存储器装置结合使用以执行大量不同任务及功能性。在操作期间,处理器执行来自存储器之计算机可读指令(通常被称为“软件”)。计算机可读指令 限定基本算术、逻辑、控制、输入/输出(I/O)操作等。如计算领域中众所周知的,相对基 本的计算机可读指令在依序组合时可执行多种复杂行为。处理器趋向于强调与存储器装 置不同的电路构造及制造技术。举例来说,处理性能大体上涉及时钟速率,因此大部分 处理器制造方法及构造强调极高速率晶体管开关结构等。

随时间推移,处理器及存储器两者的速度及功耗都有所增加。通常,这些改进是由于电信令物理上受发射媒体的介电质及距离限制而收缩装置大小的结果。如先前所提 及,大部分处理器及存储器是运用不同制造材料及技术来制造的。因此,尽管处理器及 存储器持续改进,但处理器与存储器之间的物理接口为整个系统性能的“瓶颈”。更直 接地,不管处理器或存储器可单独工作的速度有多快,处理器及存储器的组合系统的性 能受限于接口所允许的传送速率。这一现象具有数个常用姓名,例如,“处理器-存储器 墙”、“冯诺依曼瓶颈效应(von Neumann Bottleneck Effect)”等。

空间分集为常用于指代具有多个空间上隔开或单独的元件的系统(例如无线天线系 统)的术语。这类系统与一体式天线方案相比提供尤其在分集、功率及波束成形增益方面 的改进。空间分集系统的常用实例为多输入多输出(MIMO)系统、单输入多输出(SIMO)系统及多输入单输出(MISO)系统。空间分集技术用于例如3GPP技术(例如LTE/LTE-A 及5G新无线电),以及其它应用。

以MIMO(通常被称作SU-MIMO)或单用户MIMO)作为实例,MIMO技术要求在例 如用于支持例如从基站到移动装置的发射的预译码计算中执行多个矩阵计算。

类似地,MU-MIMO(多用户)MIMO——其中多个用户共享连接带宽,例如在IEEEStd.802.11ac及802.11ax技术中——依赖于信道矩阵计算的广泛使用。

此外,5G NR技术中所利用类型的所谓的“大规模MIMO”或“mMIMO”系统类 似地需要矩阵运算来支持例如波束成形及波束导向;然而,这些系统与相关联于传统 MIMO应用的系统相比具有大得多的比例,且必须足够快速且有效地执行以便尤其支持 与5G NR标准相关联的超低等待时间保证。

相应地,明显需要实现对矩阵的快速、有效的计算或操纵的改进的方法及设备,所述矩阵例如用于MIMO、MU-MIMO或大规模MIMO应用的那些矩阵。

发明内容

本公开尤其提供用于将存储器阵列转换成用于矩阵变换的矩阵组构并在其中执行 矩阵运算的方法及设备。

在本公开的一个方面中,公开一种非暂时性计算机可读媒体。在一个示范性实施例 中,非暂时性计算机可读媒体包含:至少一个存储器单元阵列,其中至少一个存储器单元阵列中的每一存储器单元经配置以将数字值作为模拟值存储在模拟媒体中;至少一个存储器感测组件,其中至少一个存储器感测组件经配置以读取第一存储器单元的模拟值作为第一数字值;及逻辑。在一个变体中,存储器单元经配置以存储模拟值作为存储器 单元中的电导的阻抗。

在一个示范性实施例中,至少一个存储器单元阵列中的每一个包含多个子阵列,且 非暂时性计算机可读装置经配置以按模拟方式执行矩阵及向量计算,其中矩阵及/或向量 值包含实数、虚数及/或复数,且其中所述多个子阵列由复杂矩阵运算实施。

在一个变体中,所述多个子阵列包含至少四个子阵列的堆叠。

在另一变体中,个别子阵列对应于矩阵系数的正实数、负实数、正虚数及负虚数部分。

在另一变体中,存储器单元子阵列中的至少一些经配置以彼此并行运行。在一个这 类实施方案中,存储器单元子阵列中的至少一些连接到单个存储器感测组件。在另一这类实施方案中,个别存储器单元子阵列连接到个别存储器感测组件。

在计算机可读媒体的另一实施例中,至少一个存储器单元阵列包含经配置以彼此并 行运行的两个存储器单元阵列。在一个这类变体中,两个存储器单元阵列连接到单个存储器感测组件。在其一个实施方案中,单个存储器感测组件包含经配置以组合两个存储 器单元阵列的结果的一个算术逻辑单元(arithmetic logic unit,ALU)。

在另一个实施方案中,单个存储器感测组件包含至少两个算术逻辑单元,所述逻辑 单元分别经配置以接受与两个阵列相关联的值且执行单独计算。

在另一实施方案中,单个存储器感测组件包含三个或更多个ALU。

在另一这类变体中,两个存储器单元阵列连接到其自身相应的存储器感测组件。

在计算机可读媒体的另一示范性实施例中,逻辑进一步经配置以:接收满射操作码; 基于矩阵变换操作码将存储器单元阵列操作为矩阵乘法单元(MMU);其中MMU的每一存储器单元根据矩阵变换操作码及矩阵变换操作数修改模拟媒体中的模拟值;根据矩阵变换操作码及矩阵变换操作数来配置存储器感测组件以将第一存储器单元的模拟值转 换成第二数字值;及响应于将矩阵变换操作数读取倒MMU中,基于第二数字值写入矩 阵变换结果。

在一个变体中,矩阵变换操作码指示MMU的大小。在一个这类实施方案中,矩阵 变换操作码对应于无线通信处理操作(例如,在例如5G NR gNB或UE的MIMO或大规 模MIMO系统中)。在一个这类配置中,操作对应于预译码/波束成形操作,且MMU的 大小的至少某一方面对应于预译码/波束成形矩阵的大小(其对应于信道信息矩阵的尺 寸)。

在另一配置中,操作对应于解码或数据估计或恢复操作。

在另一变体中,矩阵变换操作数包含从将在无线通信系统内使用两个或更多个天线 传达的数据导出的向量。

在又一变体中,矩阵变换操作数包含从由无线通信系统内的两个或更多个天线接收 的信号导出的向量。

在另一变体中,矩阵变换操作码识别对应于一或多个存储器单元的一或多个模拟值。在一个这类变体中,对应于一或多个存储器单元的一或多个模拟值存储在查找表(LUT)数据结构内。在一个实施中,LUT包含预定预译码矩阵的码本,且一或多个模拟 值包含预译码矩阵的值/系数。在其一个变体中,通过非暂时性计算机可读媒体从处理器 设备接收对应于一或多个存储器单元的一或多个模拟值。

在一个变体中,MMU的每一存储器单元包含电阻性随机存取存储器(ReRAM)单元;且MMU的每一存储器单元根据矩阵变换操作码及矩阵变换操作数成倍增加模拟媒体中 的模拟值。

在一个变体中,MMU的每一存储器单元进一步累加模拟媒体中的模拟值以及先前模拟值。

在一个变体中,第一数字值通过第一基数二(2)表征;且第二数字值通过大于二(2) 的第二基数表征。

在本公开的一个方面中,公开一种装置。在一个实施例中,所述装置包含耦合到非暂时性计算机可读媒体的处理器;其中非暂时性计算机可读媒体包含一或多个指令,所 述一或多个指令在由所述处理器执行时使得所述处理器进行以下操作:将矩阵变换操作 码及矩阵变换操作数写入非暂时性计算机可读媒体;其中矩阵变换操作码使得所述非暂 时性计算机可读媒体将存储器单元阵列操作为矩阵结构;其中矩阵变换操作数修改矩阵 结构的一或多个模拟值;及读取来自矩阵结构的矩阵变换结果。

在一个变体中,非暂时性计算机可读媒体进一步包含一或多个指令,所述一或多个 指令在由所述处理器执行时使得所述处理器进行以下操作:获得预译码矩阵或获得查找 表(LUT)内的预译码矩阵索引或地址;及获得将由发射器传达的数据;其中矩阵变换操作数包含预译码矩阵或预译码矩阵索引;且其中矩阵变换结果包含将数据变换成发射向量的预译码操作。

在另一变体中,非暂时性计算机可读媒体包括一或多个指令,所述一或多个指令在 由所述处理器执行时使得所述处理器进行以下操作:获得查找表(LUT)内的数据恢复矩阵或数据恢复矩阵索引/地址;及获得对应于由接收器接收的信号的向量;其中矩阵变换操作数包含数据恢复矩阵或数据恢复矩阵索引。在一个实施方案中,矩阵变换结果包含 对通过发射器传达到接收器的原始数据的估计。

在一个变体中,矩阵变换操作码使得非暂时性计算机可读媒体将另一存储器单元阵 列操作为另一矩阵结构;且与矩阵结构相关联的矩阵变换结果及与另一矩阵结构相关联 的另一矩阵变换结果逻辑上组合。

在一个变体中,将矩阵结构的一或多个模拟值存储在查找表(LUT)数据结构内。在其一个实施方案中,将矩阵结构的值中的至少一些存储在未经配置为矩阵结构的存储器单元的一部分中。在另一个实施方案中,将矩阵结构的一或多个模拟值从处理器提供到 非暂时性计算机可读媒体。

在本公开的一个方面中,公开一种执行变换矩阵运算的方法。在一个实施例中,所述方法包含:接收矩阵变换操作码;基于矩阵变换操作码,将存储器的至少一个存储器 单元阵列配置成矩阵结构;基于矩阵变换操作码配置存储器感测组件;及响应于将矩阵 变换操作数读取到矩阵结构中,写入来自存储器感测组件的矩阵变换结果。

在一个变体中,矩阵变换操作数对应于从将通过发射器使用两个或更多个天线传达 的数据导出的向量,且配置矩阵结构包含用预译码矩阵的值配置至少一个存储器单元阵 列。矩阵变换结果包含对应于供通过对应于预译码矩阵的无线通信信道(例如在MIMO系统内)发射的预译码信号的向量。

在所述方法的另一变体中,矩阵变换操作数对应于从通过接收器使用两个或更多个 天线接收的信号导出的向量,且配置矩阵结构包含用数据恢复矩阵(对应于预译码矩阵) 的值配置至少一个存储器单元阵列,且矩阵结果包含对应于正传达到接收器的所恢复/ 估计数据的向量。

在一个实施方案中,用四个矩阵的值配置矩阵结构:矩阵的正实值的第一矩阵,矩阵的负实值的第二矩阵,矩阵的正虚值的第三矩阵,及矩阵的负虚值的第四矩阵。在其 一个特定配置中,至少一个存储器单元阵列包含两个阵列,其各自配置有四个矩阵的值。

在另一配置中,两个阵列经配置以彼此并行运行。在一个变体中,所述两个阵列连接到单个存储器感测组件。单个存储器感测组件将对应两个阵列的结果的数字值(运用模数转换ADC获得)输入到两个单独的算术逻辑单元(ALU)中且随后在第三ALU中组合两 个ALU的结果。

在替代性配置中,单个存储器感测组件将对应于两个阵列的结果的数字值输入到一 个ALU中,所述一个ALU具有逻辑以适当地组合所述结果。两个阵列可例如分别连接 到两个单独的存储器感测组件(各自具有其自身的ADC及ALU),且两个存储器感测组 件的结果可在另一ALU中进一步组合。

在另一实施例中,所述方法包含连续地将多个矩阵变换操作数读取到矩阵结构中/ 通过所述矩阵结构运行多个矩阵变换操作数,且在所述运行中的至少一些之间重新配置 存储器感测组件。在一个变体中,多个矩阵变换操作数包含具有向量的实系数的第一操作数及具有向量的虚系数的第二操作数,且所述方法包含运用第一配置来配置存储器感测组件;通过矩阵结构运行第一操作数;重新配置存储器感测组件以考虑第二操作数的 虚系数;及通过矩阵结构运行第二操作数。

在前述实施例的一个实施方案中,配置及重新配置存储器感测组件包含配置及重新 配置存储器感测组件内的一或多个算术逻辑单元(ALU)。

在另一变体中,配置存储器单元阵列包含连接对应于与矩阵结构相关联的行尺寸及 列尺寸的多个字线及多个位线。

在另一变体中,所述方法还包含从矩阵变换操作码判定行尺寸及列尺寸。

在另一变体中,配置存储器单元阵列包含基于查找表(LUT)数据结构设置矩阵结构 的一或多个模拟值。

在又一变体中,所述方法包含基于矩阵变换操作码从LUT数据结构识别项目。

在另一变体中,配置存储器感测组件使矩阵变换结果具有大于二(2)的基数。

在本公开的另一方面中,描述一种经配置以将存储器装置配置成矩阵组构的设备。 在一个实施例中,设备包含:存储器;处理器,其经配置以存取存储器;预处理器逻辑,其经配置以分配一或多个存储器部分以用作矩阵组构。

在本公开的又一方面中,公开一种经配置以将存储器动态地配置成矩阵组构的计算 机化图像处理装置设备。在一个实施例中,计算机化图像处理装置包含:相机接口;数字处理器设备,其与相机接口数据通信;及存储器,其与数字处理器设备数据通信且包 含至少一个计算机程序。

在本公开的另一方面中,公开一种经配置以将存储器动态地配置成矩阵组构的计算 机化视频处理装置设备。在一个实施例中,计算机化视频处理装置包含:相机接口;数字处理器设备,其与相机接口数据通信;及存储器,其与数字处理器设备数据通信且包 含至少一个计算机程序。

在本公开的再一方面中,公开一种经配置以将存储器动态地配置成矩阵组构的计算 机化无线接入节点设备。在一个实施例中,计算机化无线接入节点包含:无线接口,其经配置以发射及接收频谱部分中的RF波形;数字处理器设备,其与无线接口数据通信; 及存储器,其与数字处理器设备数据通信且包含至少一个计算机程序。

在一个变体中,计算机化无线接入节点设备经配置成3GPP eNB或gNB。

在另一变体中,计算机化无线接入节点设备经配置成能够进行分集处理以支持无线 信道的IEEE标准802.11无线接入点(AP)。

在本公开的另一方面中,公开一种计算机化装置。在一个实施例中,计算机化装置包含具有分集处理矩阵逻辑的3GPP LTE或5G NR顺应性UE(用户设备),所述分集处 理矩阵逻辑已根据前述方法或设备中的一或多者配置。在一个变体中,UE包含具有大 规模MIMO能力的5G NR毫米波系统。

在另一实施例中,计算机化装置经配置成能够进行分集处理以支持一或多个无线信 道的IEEE标准802.11顺应性STA(站)。

在本公开的额外方面中,描述一种计算机可读设备。在一个实施例中,设备包含经配置以将一或多个计算机程序存储在特征化存储器内或与经表征存储器结合的存储媒体。在一个实施例中,设备包含在计算机化控制器装置上的程序存储器或HDD或SDD。 在另一实施例中,设备包含在计算机化接入节点上的程序存储器、HDD或SSD。

当根据本文所提供的公开内容考虑时,这些和其它方面应变得显而易见。

附图说明

图1A为处理器-存储器架构的图式及相关联矩阵运算的图形描绘。

图1B为处理器-PIM架构的图式及相关联矩阵运算的图形描绘。

图2为根据本公开的各种原理的存储器装置的一个示范性实施方案的逻辑框图。

图3为第一存储器装置配置及第二存储器装置配置的示范性并排图解说明。

图4A为根据本公开的原理执行的涉及正值及负值的矩阵运算的图形描绘。

图4B为根据本公开的原理执行的涉及复(实及虚)值的矩阵运算的一个实施例的图 形描绘。

图4C为根据本公开的原理执行的涉及复值的矩阵运算的另一实施例的图形描绘。

图5A为可利用本公开的方法及设备的示范性2×2MIMO系统的图形描绘。

图5B为根据本公开的方面的经配置以针对图5A的系统执行矩阵运算的存储器装置 的框图。

图5C为根据本公开的方面的图5B的存储器装置的第一实施方案的框图。

图5D为根据本公开的方面的图5B的存储器装置的第二示范性实施方案的框图。

图6A为MIMO系统的图形描绘,其中信道(预译码)信息经传达到发射器,且接收 器利用信道译码。

图6B为根据本公开的方面的经配置以针对图6A的系统执行发射器矩阵预译码操作 的存储器装置的框图。

图6C为根据本公开的方面的经配置以针对图6A的系统执行接收器矩阵运算的存储 器装置的框图。

图6D为可利用本公开的方法及设备的示范性5G NR MIMO系统的图形描绘。

图7A为使用预定义矩阵的码本的MIMO系统的图形描绘。

图7B为根据本公开的方面的经配置以针对图6A的系统执行发射器矩阵预译码操作 的存储器装置的框图。

图8A为处理器-存储器架构的一个示范性实施方案的逻辑框图。

图8B为说明根据本公开的原理的一组矩阵运算的性能的一个示范性实施例的梯形 图。

图8C为说明根据本公开的原理的一组矩阵运算的性能的另一示范性实施例的梯形 图。

图9为将存储器阵列转换成矩阵组构并在其中执行矩阵运算的一种示范性方法的逻 辑流程图。

图10为将存储器阵列转换成矩阵组构并在其中执行预译码矩阵运算的一般化方法 的一个示范性实施例的逻辑流程图。

图10A为根据图10的方法使用矩阵存储器组构执行预译码矩阵运算的一种示范性方法的逻辑流程图。

图10B为根据图10的方法使用矩阵存储器组构执行预译码矩阵运算的另一示范性方法的逻辑流程图。

所有图

具体实施方式

现参考诸图式,其中相同数字贯穿各图指代相同部分。

如本文中所使用,术语“应用程序(application或app)”通常是指但不限于实施特定 功能性或主题的可执行软件单元。应用程序的主题在任何数目的学科和功能上都有广泛 的差异(例如按需内容管理、电子商务交易、经纪事务、家庭娱乐、计算器等),且一个 应用程序可具有多于一个主题。可执行软件单元通常在预定环境中运行;例如所述单元 可包含在操作系统环境内运行的可下载应用程序。

如本文中所使用,术语“信道译码”及“译码”可通常是指但不限于信道预译码及信道译码操作两者或计算,例如在与无线信道相关联的分集确定中所使用的那些。

如本文中所使用,术语“计算机程序”或“软件”意味着包含任何序列或执行功能的人类或机器可识别步骤。这样的程序可以用任何编程语言或环境来虚拟地呈现,所述 编程语言包含例如C/C++、Fortran、COBOL、PASCAL、汇编语言、标记语言(例如, HTML、SGML、XML、VoXML)等,以及面向对象的环境,例如公共对象请求代理体系 结构(CORBA)、Java

如本文中所使用,术语“分散式”或“分佈式”是指但不限于涉及多个计算机化装置的配置或网络架构,所述计算机化装置能够彼此执行数据通信,而不要求给定装置通 过指定(例如,中心)网络实体(例如服务器装置)通信。举例来说,分散式网络实现构成网 络的多个UE(例如,无线用户装置)之间的直接对等数据通信。

如本文中所使用,术语“分布式单元”(DU)是指但不限于无线网络基础设施内的分布式逻辑节点。举例来说,DU可实施为由上文所描述的gNB CU控制的下一代节点B (gNB)DU(gNB-DU)。一个gNB-DU可支持一个或多个小区;给定小区由一个gNB-DU 支持。

如本文中所使用,术语“分集”非限制性地包含空间分集,(例如MIMO、SIMO、 MISO、MU-MIMO、SU-MIMO及大规模MIMO);多路复用(例如经由空间上多样化的 天线单元的两个或更多个信息信道的空间多路复用);波束成形(例如2D及3D空间波束 成形)等。

如本文中所使用,术语“因特网(Internet/internet)”可互换地使用以指代互联网络 (inter-networks),包含但不限于因特网。其它常用实例包含但不限于:外部服务器的网 络、“云”实体(例如不在装置本地的存储器或存储装置,通常可经由网络连接在任何时 间存取的存储装置等)、服务节点、接入点、控制器装置、客户端装置等。驻留在回程、 去程、交叉程(crosshaul)或接近于住宅、公司及其它经占用区域的其“边缘”中的5G服 务核心网络及网络组件(例如,DU、CU、gNB小型小区或毫微微小区、具有5G功能的 外部节点)可包含在“因特网”中。

如本文中所使用,术语“LTE”是指但在适用时不限于长期演进无线通信标准的任一个变体或版本,包含未经许可频谱中的长期演进(LTE-U)、经许可辅助接入的长期演 进(LTE-LAA)、高级LTE(LTE-A)及4G/4.5G LTE。

如本文中所使用,术语“5G”和“新无线电(NR)”是指但不限于与3GPP版本15 以及其针对于新无线电技术的任何修改、后续版本或修正案或补充(不管经许可还是未经 许可)兼容的设备、方法或系统。

如本文中所使用,术语“存储器”包含任何类型的集成电路或适用于存储数字数据的其它存储装置,包含但不限于随机存取存储器(RAM)、假静态RAM(PSRAM)动态 RAM(DRAM)、包含双数据速率(DDR)类存储器及图形DDR(GDDR)及其变化形式的同 步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM (ReRAM)、只读存储器(ROM)、可编程ROM(PROM)、电可擦除PROM(EEPROM或 E

如本文中所使用,术语“微处理器”和“处理器”或“数字处理器”通常意指包含 所有类型的数字处理装置,包含但不限于数字信号处理器(DSP)、精简指令集计算机 (RISC)、通用处理器(GPP)、微处理器、门阵列(例如,FPGA)、PLD、可重新配置的计 算机组构(RCF)、阵列处理器、安全微处理器和专用集成电路(ASIC)。这类数字处理器 可含于单个一体式IC裸片上,或分布在多个组件上。

如本文中所使用,术语“服务器”是指任何形式的任何计算机化组件、系统或实体,其被调适成将数据、文件、应用程序、内容或其它服务在计算机网络上提供到一或多个 其它装置或实体。

如本文中所使用,术语“存储装置”是指但不限于计算机硬盘驱动器(例如,硬盘驱动器(HDD)、固态驱动器(SDD))、快闪驱动器、DVR装置、存储器、RAID装置或阵列、 光学媒体(例如,CD-ROM、激光光盘、蓝光等),或能够存储内容或其它信息的任何其 它装置或媒体,包含能够在不存在电源的情况下维持数据的半导体装置(例如,本文中描 述为存储器的那些半导体装置)。用于存储的存储器装置的常用实例包含但不限于: ReRAM、DRAM(例如,SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM、GDDR、RLDRAM、LPDRAM等)、DRAM模块(例如,RDIMM、VLP RDIMM、 UDIMM、VLP UDIMM、SODIMM、SORDIMM、迷你DIMM、VLP迷你DIMM、LRDIMM、 NVDIMM等)、受管理NAND、NAND闪存(例如,SLC NAND、MLC NAND、TLS NAND、 串行NAND、3D NAND等)、NOR闪存(例如,并行NOR、串行NOR等)、多芯片封装、 混合存储器立方体、存储器卡、固态存储装置(SSS),及任何数目个其它存储器装置。

如本文中所使用,术语“Wi-Fi”是指但在适用时不限于IEEE标准802.11或相关标准的任一变体,包含802.11a/b/g/n/s/v/ac/ad/av/ax/ba或802.11-2012/2013、802.11-2016, 以及直连Wi-Fi(尤其包含“对等(P2P)Wi-Fi规范”,所述标准以全文引用的方式并入本 文中)。

如本文中所使用,术语“无线”意指任何无线信号、数据、通信或其它接口,包含 但不限于Wi-Fi、蓝牙/BLE、3G/4G/4.5G/5G(3GPP/3GPP2)、HSDPA/HSUPA、TDMA、 CBRS、CDMA(例如,IS-95A、WCDMA等)、FHSS、DSSS、GSM、PAN/802.15、WiMAX (802.16)、802.20、

如本文中所使用,术语“xNB”是指任何3GPP顺应性节点,包含但不限于eNB(eUTRAN)及gNB(5G NR)。

概述

前述“处理器-存储器墙”性能限制可为异乎寻常的,其中处理器-存储器架构在较大数据集内重复类似操作。在这些情形下,处理器-存储器架构必须迭代地针对数据集的每一元素个别地传送、操纵及存储。举例来说,4×4(十六(16)个元素)的矩阵乘法花费的时间为2×2(四(4)个元素)的矩阵乘法的四(4)倍长。换句话说,矩阵运算随矩阵大小的变化而按指数律成比例缩放。

本公开的各种实施例涉及将存储器阵列转换成用于矩阵变换的矩阵组构并在其中 执行矩阵运算。

矩阵变换通常在多个不同应用中使用且可占用处理及/或存储器带宽的不成比例的 量。举例来说,例如用于无线系统的多种通信技术将矩阵乘法用于例如波束成形/预译码 及/或分集应用,例如大规模多输入多输出(MIMO)或MU-MIMO信道处理。

本文中所描述的示范性实施例在存储器装置内执行矩阵变换,所述存储器装置包含 矩阵组构及矩阵乘法单元(MMU)。在一个示范性实施例中,矩阵组构使用电阻元件的“纵横式”构造。每一电阻元件存储表示对应矩阵系数值的阻抗水平。可运用将输入向量表 示为模拟电压的电信号来驱动纵横式连接性。可通过MMU将所得信号从模拟电压转换 为数字值以得到向量矩阵积。在一些情况下,MMU可在数字域内另外执行各种其它逻 辑运算。

不同于迭代遍历矩阵的每一元素来计算元素值的现有方案,下文中描述的纵横式矩 阵组构“以原子方式”(即,在单个处理周期中)计算矩阵的多个元素。举例来说,可并 行计算向量矩阵积的至少一部分。基于矩阵组构的“原子性”的计算得到迭代替代例的 明显处理改进。具体地说,虽然迭代技术随矩阵大小变化而发展,但原子矩阵组构计算 独立于矩阵尺寸。换句话说,N×N向量矩阵积可在单个原子指令中完成。

MIMO及大规模MIMO信道译码技术可使用例如预定义矩阵及/或具有已知结构及加权的矩阵的码本。在大规模MIMO系统中,单个基站可使用数百或甚至数千个天线, 因此大规模MIMO矩阵运算可能包含尺寸极大的矩阵及向量。需要矩阵乘法运算以例如 变换信道信息矩阵,以执行预译码/波束成形,且执行数据恢复操作。

顺便说一句,对组件制造的实际限制限制了个别存储器装置内的每一元件的能力。 举例来说,大部分存储器阵列仅被设计成在两(2)个状态(逻辑“1”,逻辑“0”)之间进行辨别。虽然现有存储器感测组件可扩展到辨别更高的精度等级(例如,四(4)个状态,八(8)个状态等),但增加存储器感测组件的精度以支持通常用于例如视频压缩、数学变换等的较大变换所需的精度可为不切实际的。

为了达到这些目的,本公开的各种实施例逻辑上组合一或多个矩阵组构及/或MMU以提供比原本可能的情况更高程度的精度及/或处理复杂度。在一个此类实施例中,第一矩阵组构及/或MMU可用于计算正向量矩阵积,且第二矩阵组构及/或MMU可用于计 算负向量矩阵积。正及负向量矩阵积可经求和确定净向量矩阵积。类似地,在一些实施 例中,多个(例如,四个)矩阵组构可经组合以计算向量矩阵积,其中矩阵包含正复数及 负复数。此外,矩阵乘法运算可根据任何数目个设计考虑经定序或并行化。

考虑到本公开的内容,逻辑矩阵运算的其它实例可由等效成果(例如,分解、公共矩 阵乘法等)取代。

某些应用可通过在未使用时关闭系统组件来节省大量电力。然而,睡眠程序通常要 求处理器及/或存储器使数据从操作性易失性存储器穿梭到非易失性存储器,使得数据在 断电时并不丢失。唤醒程序也是从非易失性存储器检索所存储的信息所必需的。使数据在存储器之间来回穿梭是对处理器-存储器带宽的低效使用。因此,本文所公开的各种实施例充分利用矩阵组构的“非易失性”性质。在这类实施例中,矩阵组构即使在存储器 不具有电力时也可保留其矩阵系数值。更直接地,矩阵组构的非易失性性质使得处理器 及存储器能够过渡到睡眠/低电力模式中或在不搅乱从易失性存储器到非易失性存储器 的数据(且反之亦然)的情况下执行其它任务。

考虑到本公开的内容,普通技术人员将容易了解前述内容的各种其它组合及/或变 体。

示范性实施例的详细描述

现在详细描述本公开的设备及方法的示范性实施例。虽然在先前特定的处理器及/ 或存储器配置的上下文中描述了这些示范性实施例,但本公开的一般原理及优点可扩展 到其它类型的处理器及/或存储器技术,因此以下内容在本质上仅为示范性的。

还应了解,虽然通常在(蜂窝电话、无线LAN AP或STA,及/或网络基站(例如3GPPeNB或gNB或甚至超微型小区/HNB)内的)消费型装置的上下文中进行描述,但本公开 可易于适用于其它类型的装置,包含例如服务器装置、物联网(IoT)装置,及/或供个人、 公司或甚至政府使用,例如被禁“现任”用户(例如美国DoD等)以外的用户。其它应用 也是可能的。

所属领域的普通技术人员参考附图和下文给出的示范性实施例的详细描述将立即 认识到本公开的其它特征和优点。

处理器存储器架构-

图1A说明对于说明矩阵运算有用的一个公共处理器存储器架构100。如图1A中所展示,处理器102经由接口106连接到存储器104。在说明性实例中,处理器使输入向 量a的元素与矩阵M相乘以计算向量矩阵积b。数学上,输入向量a被视为元素的数目 等同于矩阵M中的行的数目的单列矩阵。

为了计算向量矩阵积b

在第二次迭代期间,读取输入向量a

虽然未明确地展示,但还执行上文所描述的迭代过程以产生向量矩阵积b

尽管前述论述在向量矩阵积的上下文中呈现,但普通技术人员将易于理解,矩阵矩 阵积可作为一系列向量矩阵积而执行。举例来说,计算对应于输入向量的第一单列矩阵的第一向量矩阵积,计算对应于输入向量的第二单列矩阵的第二向量矩阵积,等等。因 此,2×2矩阵矩阵积将需要两(2)个向量矩阵计算(即2×4=总计8),3×3矩阵矩阵积将需 要三(3)个向量矩阵计算(即3×9=总计27)。

相关技术的普通技术人员将易于理解,图1A中描述的过程的每一迭代由接口106的带宽限制阻碍(“处理器-存储器墙”)。尽管处理器及存储器可具有带宽极高的内部总线,但处理器-存储器系统可仅与接口106可支持电信令(基于在接口106中使用的材料 (通常铜)的介电特性及发射距离(约1到2厘米))一样快地通信。此外,接口106还可包 含多种额外信号调节、放大、噪声校正、纠错、校验计算,及/或进一步减少交易时间的 基于其它接口的逻辑。

一种改进矩阵运算的性能的常用方法是在本地处理器高速缓存内执行矩阵运算。不 幸的是,本地处理器高速缓存占用处理器裸片空间,且与例如类似的存储器装置相比具有高得多的每位制造成本。因此,处理器的本地高速缓存的大小通常比其存储器(其可为数千兆字节)小得多(例如,数兆字节)。根据实际方面,较小本地高速缓存是对可在处理 器内本地执行的矩阵运算的最大量的硬限制。作为另一缺点,较大矩阵运算导致不佳高 速缓存利用率,这是因为一次仅接入一行及一列(例如,对于1024×1024向量矩阵积, 在单次迭代期间仅1/1024的高速缓存处于使用中)。因此,虽然处理器高速缓存实施方 案对于小矩阵来说可为可接受的,但这一技术随着矩阵运算的复杂度变大而变得越来越 不合需要。

另一常用方法是所谓的存储器内嵌处理器(processor-in-memory,PIM)。图1B说明 一个这类处理器PIM架构150。如图中所示,处理器152经由接口156连接到存储器154。存储器154进一步包含PIM 162及存储器阵列164;PIM 162经由内部接口166紧密耦 合到存储器阵列164。

类似于上文图1A中所描述的过程,图1B的处理器-PIM架构150使输入向量a的 元素与矩阵M相乘以计算向量矩阵积b。然而,PIM 162经由内部接口166内部地读取、 乘法累加,且写入存储器164。内部接口166比外部接口156短得多;另外,内部接口 166可原生地操作而不需例如信号调节、放大、噪声校正、纠错、校验计算等。

虽然处理器-PIM架构150相比于例如处理器-存储器架构100得到性能的显著改进, 但处理器-PIM架构150可具有其它缺点。举例来说,制造技术(“硅工艺”)在处理器与存储器装置之间基本上不同,这是因为每一硅工艺针对不同设计准则而被优化。举例来说,处理器硅工艺可使用比存储器硅工艺更细的晶体管结构,较细晶体管结构提供更快 开关(其改进性能)但遭受更多泄漏(其对于存储器保持是不合需要的)。因此,在同一晶片 中制造PIM 162及存储器阵列164导致其中的至少一者以次优硅工艺实施。替代地,PIM 162及存储器阵列164可在独立裸片内实施且接合在一起;裸片到裸片通信通常会提高 制造成本及复杂度,且可遭受各种其它损害(例如,通过工艺裂缝等引入)。

此外,相关技术的普通技术人员将易于理解,PIM 162及存储器阵列164是“硬化”组件;PIM 162不能存储数据,存储器164也不能执行计算。实际情况是,一旦存储器 154被制造,则其无法改变以例如存储更多数据及/或提高/降低PIM性能/功耗。这类存 储器装置通常针对其应用程序专门定制;其设计成本及修改成本两者都高,在许多情况 下,其为“专用的”及/或顾客/制造商特定的。此外,由于技术以极快步调改变,这些 装置很快就显得过时。

出于多种原因,需要用于处理器及/或存储器内的矩阵运算的改进方案。理想地,这 类方案将在存储器装置内以最小化处理器-存储器墙的性能瓶颈的方式实现矩阵运算。此 外,这类方案应灵活地适应多种不同矩阵运算及/或矩阵大小。

示范性存储器装置-

图2是根据本公开的各种原理制造的存储器装置200的一个示范性实施方案的逻辑 框图。存储器装置200可包含多个分区存储器单元阵列220。在一些实施方案中,分区 存储器单元阵列220中的每一个可在装置制造时经分区。在其它实施方案中,分区存储 器单元阵列220可动态地分区(即,在装置制造时间之后)。存储器单元阵列220可各自 包含多个组,每一组包含多个字线、多个位线,及布置在例如所述多个字线及所述多个 位线的交叉点处的多个存储器单元。字线的选择可由行解码器216执行,且位线的选择 可由列解码器218执行。

包含在半导体装置200中的多个外部端子可包含地址端子260、命令端子262、时钟端子264、数据端子240及电源端子250。可向地址端子260供应地址信号和组地址 信号。供应到地址端子260的地址信号和组地址信号经由地址输入电路202传送到地址 解码器204。地址解码器204接收例如地址信号且将经解码行地址信号供应到行解码器 216,且将经解码列地址信号供应到列解码器218。地址解码器204还可接收组地址信号, 且将组地址信号供应到行解码器216和列解码器218。

命令端子262供应有命令信号到命令输入电路206。命令端子262可包含一或多个分离的信号,例如,行地址选通(RAS)、列地址选通(CAS)、读取/写入(R/W)。经由命令 输入电路206将输入到命令端子262的命令信号提供到命令解码器208。命令解码器208 可解码命令信号262以产生各种控制信号。举例来说,RAS可经断言以指定数据将被读 取/写入的行,且CAS可经断言以指定数据将被读取/写入的列。在一些变体中,R/W命 令信号确定数据端子240的内容是写入存储器单元220还是从其读取所述内容。

在读取操作期间,可经由读取/写入放大器222及输入/输出电路224从数据终端240 将读取数据输出到外部。类似地,当发出写入命令并及时向行地址和列地址供应所述写 入命令时,写入数据命令可供应到数据端子240。写入数据命令可经由输入/输出电路224 及读取/写入放大器222供应到给定存储器单元阵列220且写入由行地址及列地址指定的 存储器单元中。根据一些实施方案,输入/输出电路224可包含输入缓冲器。

时钟端子264可供应有外部时钟信号以用于同步操作。在一个变体中,时钟信号是单端信号;在其它变体中,外部时钟信号可彼此互补(差分信号)且供应到时钟输入电路210。时钟输入电路210接收外部时钟信号且调节时钟信号以确保所得内部时钟信号具 有足够幅度及/或频率以用于后续锁定环路操作。供应到反馈机构(内部时钟产生器212) 的经调节内部时钟信号为内部存储器逻辑提供稳定时钟。内部时钟产生逻辑212的常用 实例包含但不限于:数字或模拟锁相环路(PLL)、延迟锁定环路(DLL),及/或频率锁定环 路(FLL)操作。

在替代性变体(未展示)中,存储器200可依赖于外部时钟(即,其自身不具有内部时 钟)。举例来说,相位控制时钟信号可从外部供应到输入/输出(IO)电路224。这一外部时钟可用于对写入数据进行上班打卡,且对数据读取进行下班打卡。在这类变体中,IO电 路224将时钟信号提供到对应逻辑块(例如,地址输入电路202、地址解码器204、命令 输入电路206、命令解码器208等)中的每一个。

可向电源端子250供应电源电势。在一些变体(未展示)中,这些电源电势可经由输入/输出(I/O)电路224供应。在一些实施例中,电源电势可与I/O电路224隔离,以使得 通过IO电路224产生的电源噪声并不传播到其它电路块。这些电源电势经由内部电源 电路230调节。举例来说,内部电源电路230可产生各种内部电势,例如去除噪声及/ 或寄生活动,以及从电源电势提供的升压电势或降压电势。内部电势可以用于例如地址 电路(202,204)、命令电路(206,208)、行及列解码器(216,218)、RW放大器222,及/ 或任何各种其它电路块。

在内部电源电路230可充分地为通电序列供应内部电压时,通电复位电路(PON)228 提供通电信号。温度传感器226可感测半导体装置200的温度且提供温度信号;半导体装置200的温度可影响一些存储器操作。

在一个示范性实施例中,可经由一或多个配置寄存器控制存储器阵列220。换句话说,本文中更详细地描述这些配置寄存器选择性地将一或多个存储器阵列220配置成一 或多个矩阵组构及/或矩阵乘法单元(MMU)的用途。换句话说,配置寄存器可使得存储 器阵列内的存储器单元架构能够同时动态地改变例如其结构、操作及功能性。在本公开 的内容的情况下这些和其它变体对于普通技术人员将显而易见。

图3提供存储器阵列及矩阵组构电路配置的较详细并排说明。图3的存储器阵列及矩阵组构电路配置都使用相同存储器单元阵列,其中每一存储器单元由耦合到字线304 及位线306的电阻元件302构成。在第一配置300中,存储器阵列电路经配置以操作为 行解码器316、列解码器318及存储器单元阵列320。在第二配置350中,矩阵组构电 路经配置以操作为行驱动器317、矩阵乘法单元(MMU)319,及模拟纵横式组构(矩阵组 构)321。在一个示范性实施例中,查找表(LUT)及相关联逻辑315可用于存储及配置不 同矩阵乘法单元系数值。

在本公开的一个示范性实施例中,存储器阵列320由电阻式随机存取存储器(ReRAM)构成。ReRAM是非易失性存储器,其跨介电固态材料改变存储器单元的电阻, 有时被称作“忆阻器”。当前ReRAM技术可在二维(2D)层或层的三维(3D)堆叠内实施; 然而,较高阶尺寸可以用于未来迭代。纵横式ReRAM技术的互补式金属氧化物半导体 (CMOS)兼容性可使得逻辑(数据处理)及存储器(存储装置)两者能够集成于单芯片内。纵 横式ReRAM阵列可以一晶体管/一电阻器(1T1R)配置及/或以具有驱动n个电阻式存储 器单元(1TNR)的一个晶体管的配置以及其它可能配置形成。

多个无机及有机材料系统可实现热及/或离子电阻切换。在数个实施例中,这类系统 包含:相变硫族化物(例如,Ge

在所说明的实施例中,电阻元件302是非线性无源二端电组件,其可基于当前应用程序的历史(例如,滞后或存储器)改变其电阻。在至少一个示范性实施例中,电阻元件 302可响应于电流的不同极性到第一端子(连接到字线304)及第二端子(连接到位线306) 的应用来形成或破坏传导细丝。两个端子之间是否存在传导细丝改变端子之间的电导。 虽然本发明操作在电阻元件的上下文内呈现,但相关技术的普通技术人员将易于理解, 本文中所描述的原理可在由可变阻抗(例如,电阻及/或电抗)表征的任何电路内实施。可 通过各种线性及/或非线性元件(例如,电阻器、电容器、电感器、二极管、晶体管、闸 流晶体管等)实现可变阻抗。

出于说明性目的,简要地概述第一配置300中的存储器阵列320的操作。在第一配置中的操作期间,可通过将电流施加到对应于存储器阵列的行及列的存储器单元而实现存储器“写入”。行解码器316可选择性地驱动各种行端子以便选择存储器阵列电路320 的具体行。列解码器318可选择性地感测/驱动各种列端子以便“读取”及/或“写入” 对应存储器单元,所述对应存储器单元通过所选行及列唯一地标识(如图3中通过较粗线 宽及刷黑的单元格强调)。如上文所提到,电流的施加导致介电固态材料内的传导细丝的 形成(或损坏)。在一个这类情况中,低电阻状态(接通状态)用于表示逻辑“1”,且高电阻 状态(断开状态)用于表示逻辑“0”。为了切换ReRAM单元,将具有特定极性、量值及 持续时间的第一电流施加到介电固态材料。随后,可通过将第二电流施加到电阻元件及 基于对应阻抗感测电阻元件是处于接通状态还是断开状态而实现存储器“读取”。存储 器读取可为或可不为破坏性(例如,第二电流可或可不足以形成或破坏传导细丝)。

相关技术的普通技术人员将易于理解,第一配置300中的存储器阵列320的前述论述与根据例如ReRAM存储器技术的现有存储器操作一致。相反地,第二配置350使用 存储器单元作为模拟纵横式组构(矩阵组构)321以执行矩阵乘法运算。虽然图3的示范 性实施方案对应于2×4矩阵乘法单元(MMU),但其它变体可代入等效成果。举例来说, 任意较大大小(例如,3×3、4×4、8×8等)的矩阵可经实施(受到由数模转换(DAC)308及 模数转换(ADC)310组件实现的精度)。

在模拟纵横式组构(矩阵组构)321操作中,行端子中的每一个通过模拟输入信号同 时驱动,且列端子中的每一个针对模拟输出(其为跨每个行/列组合的对应电阻元件的电 压电势的模拟总和)经同时感测。值得注意的是,在第二配置350中,与矩阵乘法相关联的所有行及列端子为有源的(如图3中的通过较粗线宽及刷黑的单元格强调)。换句话说,ReRAM纵横式组构(矩阵组构)321使用矩阵组构以执行“模拟计算”,所述模拟计算计 算向量矩阵积(或纯量矩阵积、矩阵矩阵积等)。

值得注意的是,纵横式组构内的并行向量矩阵积计算为原子。具体地说,向量矩阵积的模拟计算可在单个接入周期中完成。如先前所提及,原子操作不受数据竞态条件影响。此外,向量矩阵积计算在矩阵运算的所有行及所有列上同时执行计算;换句话说, 向量矩阵积计算的复杂度并不随矩阵尺寸的变化而缩放。虽然制造约束(例如,ADC/DAC 粒度、制造公差等)可限制单个矩阵组构可产生的精度及复杂度的量,但多个矩阵运算可 数学上组合到一起以提供高得多的精度及复杂度。

举例来说,在本公开的一个示范性实施例中,输入通过DAC 308转换成模拟域以用于模拟计算,但还可通过ADC 310转换回数字域以用于后续数字及/或逻辑操纵。换句 话说,算术逻辑单元312可实现对矩阵组构321输出的复杂数值操纵。这类能力可以在 模拟域归因于实际实施方案限制(例如,制造成本等)无法实施所需计算的情况下使用。

考虑图4A的说明性实例,其中可经由2×4矩阵组构执行简单的“蝶形”计算400。虽然电导可提高或降低,但电导不能为“负”。因此,可能需要在数字域内执行减法。 在矩阵(M)及向量(a)的以下乘法中描述蝶形操作(方程1):

方程1:

方程1的这一简单FFT蝶形400可分解成表示正系数及负系数的两个不同矩阵(方程2及方程3):

方程2:

方程3:

方程2及方程3可运用矩阵组构电路实施为模拟计算。在计算后,所得模拟值即可经由前述ADC转换回数字域。现有ALU操作可用于在数字域中执行减法(方程4):

方程4:

换句话说,如图4A中所说明,2×2矩阵可进一步细分成2×2正矩阵及2×2负矩阵。ALU可将2×2正矩阵及2×2负矩阵的结果相加/相减以产生单个2×2矩阵。

类似于图4A中所描述的那些技术的技术可应用于包含虚数或复数的矩阵。举例来说,图4B说明计算410(在下文方程5中描述)的一个实施例,其中2×2矩阵M乘以2×1 向量a,且其中矩阵M可包含实数、虚数、复数、正数及负数。在此实例中,假设向量 a仅包含实数。

方程5:

矩阵乘法操作410可例如如图4B中所示通过将矩阵M分解成四个分离的矩阵使用2×8存储器组构阵列来实施,所述四个分离矩阵在存储器阵列412中表示为四个2×2存 储器子阵列:i)第一子阵列402被编程有M的实正值,ii)第二子阵列404被编程有M的 实负值,iii)第三子阵列406被编程有M的虚正值,及iv)第四子阵列408被编程有M的 虚负值。表示向量a的模拟值可用于驱动整个2×8存储器组构,且四个分离的矩阵向量 乘法运算的模拟结果是获自四个分离的相应子阵列402、404、406、408。下文描述示范 性四个矩阵向量乘法运算(方程6到9)。

方程6:

方程7:

方程8:

方程9:

在方程6到9的模拟结果从四个子阵列获得且使用ADC(图4B中未展示)从模数域转换后,算术逻辑单元(ALU)可用于在数字域中适当地组合所述结果(即,分别使两个虚 系数子阵列406/408的结果乘以j及-j;及使实负系数子阵列404的结果乘以-1;及将所 有结果加到一起)以获得正确最终结果(参见方程10)。

方程10:

因此,类似于两个2×2存储器子阵列可用于表示具有实(正及负)值的2×2矩阵的方 式(如关于图4A所描述),四个2×2存储器子阵列可用于运用实值、虚值及复(正及负)值表示2×2矩阵。应注意,在设备的示范性配置中,上文的矩阵向量乘法操作有利地在 单个处理周期中发生。

在另一实施例中,如图4C中所展示,矩阵向量乘法操作420中的矩阵M及向量a 两者都可具有复值。相对于上文图4B描述的操作410可分别施加到向量a的实系数及 向量a的虚系数。向量a的实系数用于驱动存储器阵列412A,且存储器阵列412A的四 个结果通过ALU414A以数字方式组合(在例如相对于图4B描述的操作中)。

在单独操作中,向量a的虚系数用于驱动存储器矩阵组构阵列412B,且所述结果通过另一ALU 414B以数字方式组合。在涉及存储器阵列412B的第二操作中,ALU 414B 首先使四个子阵列(图4B中的402、404、406、408)的结果分别乘以j、-j、1及-1。第一 及第二ALU的结果接着可在另一ALU 416中相加到一起以获得最终矩阵向量积。

应注意,尽管图4C中未展示阵列412A及412B的内部细节,但在一个实施例中, 阵列412A、412B各自包含相对于图4B的存储器阵列412描述的四个子阵列。可有利 地使用第一存储器组构单元412A及第二存储器组构单元412B来并行执行第一及第二操 作。

替代地,在另一示范性实施例中,可使用同一存储器组构单元412(图4B)一个接一个地执行第一及第二操作。然而,在一个配置中组合所述结果的ALU将不同类型的计 算施加到两个操作的结果(例如,针对第一操作使四个结果乘以1、-1、j及-j,且针对第 二操作使四个结果乘以j、-j、1及-1)。

如上文所论述,与算术逻辑单元(ALU)组合的存储器组构阵列可用于计算各种复杂 度或大小的矩阵运算,包含支持大规模MIMO操作(其可比对应的传统或非大规模空间分集计算大一或多个数量级)。

此外,相关技术的普通技术人员将易于理解通过ALU实现的广泛的变体及/或能力。 举例来说,ALU可提供算术运算(例如,加法、减法、带进位加法、带借位减法、取否 定、递增、递减、传送等)、逐位操作(例如,AND,、OR、XOR、补数)、位移位操作(例 如,算术移位、逻辑移位、旋转、通过进位旋转等)以实现例如多精度算术、复数操作, 及/或任何扩展的MMU能力达任何程度的精度、大小及/或复杂度。如本文中所使用, 在计算的上下文内的术语“数字”及/或“逻辑”是指使用量化值(例如,“0”及“1”) 来表示符号值(例如,“接通状态”、“断开状态”)的处理逻辑。相反地,在计算的上下文 内的术语“模拟”是指使用例如电、化学及/或机械量的物理信令现象的连续可变方面来 执行计算的处理逻辑。本公开的各种实施例可将模拟输入及/或输出信号表示为连续电信 号。举例来说,电压电势可具有不同的可能值(例如,在最小电压(0V)与最大电压(1.8V) 之间的任何值等)。可运用数模转换器(DAC)、模数转换器(ADC)、算术逻辑单元(ALU) 及/或可变增益放大/衰减来执行运用数字组件计算的组合模拟。

返回参考图3,为了将存储器单元配置成第二配置350的纵横式组构(矩阵组构)321, 电阻元件中的每一个可写有对应矩阵系数值。不同于第一配置300,第二配置350可使用具有经选择以设置比电导的极性、量值及持续时间的电流量将不同程度的阻抗(表示系数值)写入每一ReRAM单元。换句话说,通过形成/破坏不同导电率的传导细丝,可建 立多个不同导电率状态。举例来说,施加第一量值可导致第一电导,施加第二量值可导 致第二电导,施加第一量值持续较长持续时间可导致第三电导等。前述写入参数的任何 排列可代入等效成果。更直接地,不同电导可使用多个状态(例如,三(3)个、四(4)个、 八(8)个等)来表示一或多个连续值范围(例如,[0,0.33,0.66,1]、[0,0.25,0.50,0.75,1]、 [0,0.125,0.250,…,1]等),而不是使用两(2)个电阻状态(接通状态,断开状态)来表示两(2) 个数字状态(逻辑“1”,逻辑“0”)。

在本公开的一个实施例中,矩阵系数值提前存储在查找表(LUT)内且通过相关联控 制逻辑315配置。在初始配置相位期间,矩阵组构321经由控制逻辑315写有来自LUT 的矩阵系数值。相关技术的普通技术人员将易于理解,某些存储器技术还可以实现一写 多用(write-once-use-many)操作。举例来说,尽管形成(或破坏)ReRAM单元的传导细丝 可能需要电流的特定持续时间、量值、极性及/或方向;存储器单元的后续使用可重复多 次(只要传导细丝在使用寿命内并不基本上形成或破坏)。换句话说,相同矩阵组构321 配置的后续使用可用于分担初始配置时间。

此外,某些存储器技术(例如ReRAM)是非易失性的。因此,在矩阵组构电路经编程后,其可进入低功率状态(或甚至断电)以在未使用时节省电力。在一些情况下,矩阵组 构的非易失性可用以进一步改进功耗。具体地说,不同于可从非易失性存储器重新加载 矩阵系数值以用于后续处理的现有技术,即使在存储器装置断电时示范性矩阵组构也可 存储矩阵系数值。对于后续唤醒,可直接使用矩阵组构。

在一个示范性实施例中,可根据矩阵运算的性质导出矩阵系数值。举例来说,用于某些矩阵运算的系数可基于“大小”(或其它结构限定参数)提前导出且存储在LUT内。 仅作为两个这类实例,下文再现快速傅里叶变换(方程11)及离散余弦变换(DCT)(方程12):

方程11:

方程12:

如可从前述方程在数学上确定,根据变换的大小来确定矩阵系数值(还被称作“旋转 因子”)。举例来说,用于8点FFT的系数为:

在另一示范性实施例中,可提前存储矩阵系数值。举例来说,用于某些矩阵乘法运算的系数可为已知的或以其它方式由例如应用程序或用户限定。举例来说,图像处理计算,例如在上文先前并入的2018年6月7日提交且名称为“形成于存储器单元阵列中 的图像处理器”的共同拥有且共同未决的美国专利申请案第16/002,644号中描述,可限 定各种不同矩阵系数值以便影响例如缺陷校正、色彩插值、白平衡、色彩调整、伽马亮 度、对比度调整、色彩转换、降采样,及/或其它图像信号处理操作。

在另一实例中,用于某些矩阵乘法运算的系数可经确定或以其它方式由例如用户考 虑因素、环境考虑因素、其它装置及/或其它网络实体限定。举例来说,无线装置通常经历可干扰操作的不同多路径效应。本公开的各种实施例确定多路径效应并运用矩阵乘法对其进行校正。在一些情况下,无线装置可基于已知信令的劣化来计算独立的不同信道 效应中的每一个。期望参考信道信号与实际参考信道信号之间的差异可用于确定其经历 的噪声效应(例如,在特定频率范围内的衰减、反射、散射及/或其它噪声效应)。

在其它实施例中,无线装置可受指示以使用波束成形/预译码配置的预定“码本”。波束成形/预译码系数的码本可能较不精确但出于其它原因(例如,速度、简单性等)可为优选的。

如先前论述,分集技术(通常实施为多输入/多输出(MIMO)或MU-MIMO系统)使用例如多个发射及多个接收天线来传达与同一无线电信道相关联的数据(且在MU-MIMO 的情况下,对于多个用户)。多个天线系统可通过同时经由数个多样化信道流(信号分集) 发送相同信号/符号来改进信号的可靠性及增益,因此确保信号被恰当地传达。另外, MIMO系统可同时通过数个不同信道流(经由空间多路复用)发送信号的不同部分(例如, 一个数据流的连续符号)或不同信号,因此提高数据通信的速率。对高数据速率及良好信 道质量的需求已使MIMO对于当前宽带无线通信是必需的。

大规模或极大MIMO系统使用全部都需要协调的极大数目的天线(例如,数百或甚至数千个)以便获得最好的可能信道质量及吞吐量。

传统(MIMO及MU-MIMO)及大规模MIMO系统需要使用尺寸处于接收及发射天线 的数目的数量级的矩阵的各种矩阵乘法运算。这是因为大规模MIMO系统使用所述大量 天线(且因此由大矩阵表示),其尤其易受本文中先前描述的“处理器-存储器墙”性能限 制影响。

根据本公开,下文论述可在工作MIMO系统内执行的矩阵运算中的一些及可经实施以执行这些运算的存储器组构阵列的实例。然而,普通技术人员考虑到本公开将认识到,以下实例决不视为限制,这是因为本公开的原理、设备及方法可扩展到其它类型的运算(矩阵或其它)及应用。

顺便说一句,具有N个发射天线及M个接收天线的示范性MIMO系统中的信道可 表达为M×N信道矩阵H,其中M个行表示接收天线,N个列表示发射天线,且个别H 系数h

发射器可为用户装置(例如,蜂窝电话)、无线网络基站(例如,ENB或gNB或超微 型小区/HNB,或Wi-Fi AP)、无线节点,或利用多个发射天线来发射信号的任何其它装 置。接收器可类似地为用户装置、网络基站,或使用多个接收天线来接收信号的任何装 置。应了解,虽然根据多个收发天线元件的M×N信道矩阵进行描述,但本文中所描述 的示范性实施例可易于扩展到其它应用,例如其中多个发射天线元件(N)与用户装置或 UE上的单个接收天线一起使用(包含服务多个用户装置的情况),且多个个别发射器与具 有多(M)个接收天线元件的单个接收器结合使用。

在单个时间点处,MIMO系统可以表征为:b=Ha(不考虑噪声),其中所发射信号由向量a表示,所接收信号由向量b表示,且信道由矩阵H表示。为了在MIMO系统内 成功地传达数据,接收器需要能够使用所接收信号b以导出发射信号a(或由考虑中信 号传达的数据)。在某些受限制情况中,这可通过仅将信道矩阵H反相以获得H

图5A说明具有与接收器504通信的发射器502的系统550的一个实施例,所述发 射器502具有两个天线502-1、502-2,所述接收器504具有两个接收天线504-1、504-2。 发射器使用其两个天线发送呈发射向量a=(a1,a2)形式的数据,如图5A中所展示。来 自两个天线的信号穿过由矩阵H表示的信道,且作为符号b1及b2由两个接收器天线 504-1、504-2接收,从而表示尺寸-2接收向量b的值。信号采取的四个不同路径由矩阵 H的四个系数表示。下文(方程13)展示用于系统550的所接收向量方程(b=Ha.)。

方程13:

为了使接收器获得所传达的数据,所接收向量方程可经反相,且可使用矩阵向量乘 法运算(方程14)来计算发射向量a。这种矩阵运算可在接收器处使用例如上文所描述的存储器矩阵组构设备和技术执行。

方程14:a=H

图5B到5D说明矩阵组构及MMU电路500的示范性实施例,所述矩阵组构及MMU 电路500可用于对所接收向量b执行方程14的矩阵运算以便获得发射向量a。在下文图 5C及5D的描述中更详细地描述图5B的矩阵组构521。

在存储器系统500中,使用具有H

如图5B中所展示,通过使用向量b驱动系统500的存储器组构521来执行方程14 的矩阵运算。也就是说,向量b的个别值通过DAC 508转换成模拟电压/电流,其接着 输入到H

存储器组构521的结果接着作为模拟电压或电流输出到MMU 519中,所述MMU 519经由其ADC 510将结果转换成数字值。数字值接着由MMU的算术逻辑单元(ALU) 512使用以获得向量a的整个值。

图5C及5D说明图5B中所展示的存储器装置500的两个特定实施方案500A、500B 的细节。在一些配置中,具有复值的2×2H

图5C说明系统500A,其中矩阵组构521内的单个2×8存储器阵列由两个输入(表示向量b的两个值)驱动。为了适应向量b的可能复值,图5C中的矩阵组构521在一个 方法中(i)首先由向量b的实值且(ii)接着由向量b的虚值连续地驱动。第一结果暂时地存 储于存储器阵列522中且接着使用ALU 519与第二结果恰当地组合。取决于存储器组构 521是由向量b的实值还是虚值驱动(即,使来自子矩阵521A的结果乘以1或j),ALU 519 不同地处理存储器组构521的结果。这通过例如控制逻辑515在遍次或运行之间重新配 置MMU以便使ALU519具有适当逻辑而实现。

图5D说明系统500B的另一实施例,其中存储器组构521包含两个相同2×8存储 器组构阵列521-1及521-2。第一2×8存储器阵列521-1由向量b的实值驱动,而并行地, 第二2×8存储器阵列521-2由向量b的虚值驱动。在图5D的实施例中,两个并行存储 器组构部分521-1、521-2各自具有其自身行驱动器。控制逻辑515(i)将向量b的实值输 入到第一行驱动器中,及(ii)将向量b的虚值输入到第二行驱动器中。在存储器组构521 的两个部分已由向量b的值驱动之后,两个存储器阵列的结果可在单个MMU 519内适 当地组合。

图5D的实施例包含具有一个ADC 510及三个ALU 512-1、512-2、514的MMU 519, 但此配置仅为说明性而不是限制性的。

在从存储器阵列521-1及521-2接收到的模拟信号通过ADC 510转换成数字值之后, 对应于第一存储器阵列521-1的结果的四个数字值输入到第一ALU 512-1,且对应于第二存储器阵列521-2的结果的四个数字值输入到第二ALU 512-2。两个ALU分别组合其 输入值,且将其结果传送到第三ALU 514中,所述第三ALU 514执行简单加法运算。 应注意,如相对于图4C所解释,第一ALU 512-1及第二ALU 512-2可被编程有略微不 同的逻辑(例如,第一存储器阵列521-1的两个左方子阵列的结果由第一ALU 512-1指定 为实数,但第二存储器阵列521-2的两个左方子阵列的结果由第二ALU 512-2指定为虚 数)。

在另一示范性实施例中,MMU 519可具有获取两个存储器组构阵列521-1、521-2的所有八个结果且适当地组合所述结果的单个ALU。换句话说,上文所描述的三个ALU 的逻辑可在单个单元内组合。

在又一实施例中,MMU 519可用两个单独的MMU替换。也就是说,两个存储器 阵列521-1将结果输出到相应MMU中,相应MMU各自具有ADC及ALU。两个不同 MMU的结果可在任何MMU外部的第三ALU中组合。

图6A说明具有这种更高程度的复杂度的一个示范性系统600。如所展示,系统600包含具有N个天线(602-1到602-N)的发射器602,及具有M个天线(604-1到604-M)的 接收器,其中N不必等于M。接收器604使用训练信号来估计信道矩阵H。在大规模 MIMO(参见例如图6D)中,发射器及接收器天线的数目(N及M)可为数百或数千(包含在 多个离散装置606-1……606-n上的分布),且相应地,信道矩阵H可具有类似较大尺寸。

在矩阵H不可逆且较大的情况下,其可使用奇异值分解(SVD),使用所属领域中众所周知的方法而分解,且重写为:H=U∑V*,其中U及V*分别为H的左侧酉矩阵及右 侧酉矩阵,且∑是H的奇异值的对角矩阵。所接收信号向量b(不考虑噪声)可写成:b= Ha=U∑V*a。将发射的数据d(数据符号的矩阵)可使用方程15变换成所发射信号(这可 视为一种类型的预译码)。

方程15:a=Ud

在接收器处,可使用方程16从所接收信号b解码/恢复(估计)所述数据。在图6A的实施例中,在计算信道矩阵之后,接收器将信道信息发射到发射器。发射器602可使用 所接收信道信息来执行预译码操作606(方程15)以将数据d变换成发射向量a。使用个 别发射天线(602-1到602-N)同时发射每一向量a的个别值。接收器604获得所接收向量 b,且使用接收器运算608来估计原始数据(方程16)。

方程16:d=V*b

图6B说明可在发射器处使用以如关于图6A所描述执行方程15的预译码矩阵运算的存储器矩阵组构系统及MMU电路626的实施例。在其一个配置中,控制逻辑615获 得预译码矩阵U,且使用矩阵U的值来编程矩阵存储器组构621。在矩阵组构621内由 个别子阵列构成的存储器阵列(未展示)可被编程有矩阵U的正实系数、负实系数、正虚 系数及负虚系数(使用与图5C类似的技术)。在一个实施方案中,矩阵组构621可包含相 同地被编程有矩阵U的值的两个存储器阵列,其各自能够彼此并行地驱动(类似于图5D 的配置)。视需要例如从在发射器存储器系统626外部的数据源获得预译码矩阵U的值。

如图6B中所展示,表示将传达的数据的个别向量d(例如,同相和正交样本)通过控制逻辑615从行驱动器获得且馈入到所述行驱动器中。尽管向量d并非永久性地存储 在存储器系统626内部(由于数据始终在改变),但数据的缓冲器可存储在存储器阵列622 内部以避免频繁使用存储器-处理器接口(其就例如接入等待时间来说可具有明显损失)。

在一个实施例中,控制逻辑615将每一向量d的实值馈入行驱动器617中,接着是向量的虚值(类似于图5C的结构)。在另一实施例中,行驱动器617包含连接到存储器组 构621的相应存储器阵列的两个行驱动器,且控制逻辑将第一行驱动器中的每一向量d 的实值及向量的虚值馈入第二行驱动器中(类似于图5D的结构)。

行驱动器617(或驱动器)使用DAC 608来将向量d的个别数字值转换成模拟输入信号。这些经转换模拟输入信号接着用于同时驱动矩阵组构621的所有行端子,所述行端 子对应于被编程有矩阵U的值的存储器单元。矩阵组构结果输出到MMU 619,所述MMU 619经由其ADC 610将结果转换成数字值。数字值接着由MMU的算术逻辑单元(ALU) 612使用以获得输出向量a的个别值。

图6C说明可在接收器处使用以如关于图6A所描述执行方程16的接收矩阵运算(数据解码/估计)的存储器矩阵组构系统及MMU电路650的实施例。这一系统650中的控 制逻辑635获得接收矩阵V*,且将其值用于程序存储器组构641。控制逻辑635接着使 用行驱动器637(或两个行驱动器)来将接收数据向量b的实值及虚值转换成模拟信号, 且通过经编程矩阵组构641传播那些信号。矩阵组构将对应于数据向量d的部分的模拟 结果输出到MMU639中,所述MMU 639使用其ADC 630及ALU 632来转换并适当地 组合所述信号以便最终获得向量d的值。应注意,在接收器处计算的这一向量d是原始 数据的估计值,且并非精确拷贝。尽管如此,存储器系统650使用个别所接收信号(向量 b)的值来确定通过发射器在(处理周期的)受限次数中传达的数据。因此,在存储器组构 641已经编程后,经传达数据可从所接收信号的快速流极快速地解码或恢复。

图6B及6C中描述的存储器装置结构的实施细节可类似于上文关于图5C或5D所 描述的结构。

图6A到6C说明MIMO系统,其中传出信号可使用从已知信道矩阵H导出的预译 码矩阵U经预译码。然而,由于信道矩阵H在接收器处经计算,这要求完整H矩阵从 接收器传达到发射器。H矩阵的发射可导致极大开销。为了避免这一开销,现代无线通 信系统使用预定义的预译码矩阵W的码本,所述码本可经预先计算以用于多种不同天 线配置且可容易地由电信网络内的所有发射及接收单元存取(例如,存储在所述发射及接 收单元)。

图6D说明另一系统670,本公开的方法及设备(包含图6A到6C的那些方法及设备)可与系统670一起使用,其中5G NR gNB(例如,DU部分)672利用多个发射天线元件 602-1到602-n,且将信号发射到多个接收器606-1到606-n(UE

图7A说明MIMO系统700(大体上类似于图6A的系统600)的另一实施例,其具 有发射器702及接收器,所述发射器702具有N个天线(702-1到702-N),接收器具有M 个天线(704-1到704-M),其中N不必等于M。然而,系统700中的接收器并不将所计 算的信道矩阵H发送到发射器702。实际上,基于所计算的信道矩阵H,接收器从码本 选择预译码矩阵W,且将对应于码本内的所述预译码矩阵的索引发送到发射器。发射器 使用预译码矩阵W来将数据符号d变换成对应于向量a的发射信号(下文方程17),而 不是使用预译码矩阵U。系统的操作的其余部分通常类似于图6A中所描述的系统600 的操作。

方程17:a=Wd

图7B说明可在发射器处使用以执行方程17的预译码矩阵运算的存储器组构系统及 MMU电路709的实施例。

在图7B的实施例中,控制逻辑715获得预译码矩阵W且使用矩阵W的值来编程 矩阵存储器组构721(包含两个相同存储器阵列721-1、721-2,各自具有四个存储器子阵 列721A、721B、721C、721D)。在一个实施例中,预译码矩阵W的值可视需要从外部 源输入到存储器系统709。在另一实施例中,不同预译码矩阵的码本位于存储器系统709 (例如,在存储器阵列722中)的查找表(LUT)内部。在后一种情况下,控制逻辑715可从 处理器接收特定预译码矩阵W的索引或地址,且从存储器阵列722提取预译码矩阵W 的值。

在存储器组构721已被编程有预译码矩阵W的值所述,控制逻辑715将向量d的 实系数及虚系数分别输入到第一行驱动器717-1及第二行驱动器717-2中。行驱动器利 用其DAC 708来将其给定值转换成模拟信号,且使用模拟信号来驱动其对应存储器组构 阵列721-1、721-2的输入端子。存储器组构721-1、721-2将呈模拟信号形式的结果输出 到MMU719。在另一变体中,存储器组构阵列721-1、721-2将结果输出到其自身相应 MMU中。

MMU 719经由ADC 710将模拟信号变换成数字域,且使用ALU 712-1、712-2、714 来组合数字值以获得向量a的值。

在另一变体中,MMU 719具有执行所述组合的单个ALU。应注意,存储器系统709 具有与相对于图5D描述的结构类似的结构。然而,图5D中所描述的存储器结构或其 变体可类似地使用预译码矩阵W而应用于数据信号的预译码。

图5A到7B仅说明可以在采用分集(例如,MIMO、MU-MIMO、mMIMO)技术的通 信系统内执行的矩阵相关运算中的一些。额外矩阵乘法运算对于执行额外/更复杂预译 码、波束成形或波束导向可为必需的,以便顾及噪声,选择预译码矩阵,执行SVD,优 化目标能量递送(例如在毫米波天线中,其可与其不足6GHz对应部分相比在空间上大小 较小)等。所有这种矩阵运算可潜在地使用本公开的存储器组构技术执行。

然而,还将认识到,无论所涉及的一或多个矩阵的大小如何使用仅一个或几个原子 操作执行矩阵运算的能力(例如,即使运算并不随矩阵大小按指数律成比例缩放)可尤其 适用于实施大规模MIMO的技术,大规模MIMO可潜在地包含极大数目的接收及/或发 射天线(且因此产生具有极大尺寸的矩阵,其中原子操作的益处因此有利地倍增)。如先 前所提及,在一些实施例中,矩阵系数值可提前存储在查找表(LUT)内且通过相关联控 制逻辑配置。在一个示范性实施例中,矩阵组构可经由专用硬件逻辑配置。虽然本公开 在内部控制逻辑的上下文中呈现,但外部实施方案可代入等效成果。举例来说,在其它 实施例中,逻辑包含内部存储器内嵌处理器(PIM),其可基于LUT值在一系列读取及写 入中设置矩阵系数值。在另外其它实例中,举例来说,外部处理器可执行LUT及/或逻 辑功能。

图8A是根据本文中所描述的各种原理的处理器-存储器架构800的一个示范性实施 方案的逻辑框图。如图8A中所展示,处理器802耦合到存储器804;存储器包含查找 表(LUT)806,控制逻辑808、矩阵组构及对应的矩阵乘法单元(MMU)810,及存储器阵 列812。

在一个实施例中,LUT 806存储与不同矩阵运算相关联的多个矩阵值系数、尺寸及/或其它参数。在一个示范性实施例中,对矩阵系数进行预译码。LUT 806可包含可经预 定义及/或基于无线电信道测量而凭经验确定的各种信道矩阵(或预译码矩阵)码本。

在一个实施例中,控制逻辑808基于从处理器802接收到的指令控制矩阵组构及MMU 810的操作。在一个示范性实施例中,控制逻辑808可根据由LUT 806提供的前 述矩阵尺寸及/或矩阵值系数在矩阵组构的存储器单元中的每一个内形成/破坏不同导电 率的传导细丝。另外,控制逻辑808可配置对应MMU以执行矩阵组构的任何额外算术 及/或逻辑操纵。此外,控制逻辑808可选择一或多个数字向量来驱动矩阵组构,且选择 一或多个数字向量来存储MMU的逻辑输出。

在处理领域中,“指令”通常包含不同类型的“指令音节”:例如,操作码、操作数,及/或其它相关联数据结构(例如,寄存器、标量、向量)。

如本文中所使用,术语“操作码”(操作代码)是指可由处理器逻辑、存储器逻辑或其它逻辑电路解释以实现操作的指令。更直接地,操作码识别将对一或多个操作数(输入)执行以产生一或多个结果(输出)的操作。操作数及结果两者都可实施为数据结构。数据 结构的常用实例包含但不限于:标量、向量、阵列、列表、记录、接头、对象、曲线图、 树状,及/或任何数目个其它形式的数据。一些数据结构可完全或部分地包含参考数据 (“指向”其它数据的数据)。参考数据结构的常用实例包含例如指针、索引及/或描述符。

在一个示范性实施例中,操作码可识别以下中的一或多者:矩阵运算、矩阵运算的尺寸,及/或存储器单元的行及/或列。在一个这类变体中,操作数是指定将被操作的一 或多个数字向量的经译码标识符。举例来说,使用特定预译码矩阵W对传入数据向量 执行预译码操作且将所述结果存储在输出数字向量中的指令可能包含操作码及操作数: PRECODE($input,$output,$pmi),其中:PRECODE识别自然运算,$input识别输 入数字向量基地址,$output识别输出数字向量基地址,且$PMI识别对应于在运算中使 用的预译码矩阵的基地址的预译码矩阵索引。在另一此类实例中,64点FFT可分成两 个不同原子操作:例如,PRECODE($address,$row,$col),其在$address处通过列 矩阵组构将存储器阵列转换成行,及MULT($address,$input,$output),其将$input 的向量矩阵积及矩阵组构存储在$address到$output处。

类似逻辑适用于例如用于支持无线信道分集处理或其它这种应用程序的DECODE运算。

虽然图8A说明功能上分离且与输入/输出(I/O)存储器接口不同的指令接口,但这决 不是必须的,且各种配置可以与本公开一致地使用。举例来说,在一个此类实施例中,指令接口可物理上不同(例如,具有不同插脚及/或连接性)。在其它实施例中,指令接口 可与I/O存储器接口复用(例如,以不同通信模式共享相同控制信令及地址及/或数据总 线)。在又其它实施例中,指令接口可经由I/O存储器接口虚拟地可访问(例如,作为位 于可经由I/O接口寻址的地址空间内的寄存器)。另外,存储器装置804或其逻辑的全部 或部分可例如经由SoC配置与处理器802集成。考虑到本公开的内容,另外其它变体可 由普通技术人员带入。

在一个实施例中,矩阵组构及MMU 810紧密耦合到存储器阵列812以读取及写入数字向量(操作数)。在一个示范性实施例中,识别操作数以用于专用数据传送硬件(例如,直接存储器存取(DMA))进出矩阵组构及MMU 810。在一个示范性变体中,数据的数字 向量可具有任何尺寸,且不受处理器字长限制。举例来说,操作数可指定N位(例如,2、 4、8、16……等)操作数。在其它实施例中,DMA逻辑808可能使用现有存储器行/列总 线接口读取/写入矩阵组构810。在又其它实施例中,DMA逻辑808可使用内部存储器 接口内的现有地址/数据及读取/写入控制信令来读取/写入矩阵组构810。

图8B说明在图8A中所描述的示范性实施例800的上下文内的一组示范性矩阵运算850。如其中所示,处理器802通过接口807将指令写入存储器804,所述指令指定操作 码(例如,由矩阵M

控制逻辑808确定矩阵组构及/或矩阵乘法单元(MMU)是否应被配置/重新配置。举例来说,存储器阵列的部分转换成一或多个矩阵组构且运用由矩阵M

在矩阵组构及/或矩阵乘法单元(MMU)经适当配置时,输入操作数a通过数模(DAC)读取且应用于矩阵组构M

图8C说明在图8A中所描述的示范性实施例800的上下文内的一组替代示范性矩阵运算860。与图8B的图式形成对比,图8C的系统使用显式指令来将存储器阵列转换成 矩阵组构。在指令行为中提供更高程度的原子性可实现各种相关益处,包含例如管线设 计及/或降低指令集复杂度。

更直接地,在矩阵组构含有适当的矩阵值系数M

在另一实例中,图像处理计算,例如在上文先前并入的2018年6月7日提交且名 称为“形成于存储器单元阵列中的图像处理器”的共同拥有且共同未决的美国专利申请 案第16/002,644号中描述,可配置多个矩阵组构及MMU处理元件以便流水线处理,例 如,缺陷校正、色彩插值、白平衡、色彩调整、伽马亮度、对比度调整、色彩转换、降 采样,及/或其它图像信号处理操作。流水线级中的每一个可配置一次,且反复地用于图 像的每一像素(或像素群组)。举例来说,白平衡流水线级可使用具有针对白平衡设置的 矩阵系数值的相同矩阵组构来对数据的每一像素进行操作;色彩调整流水线级可使用具 有针对色彩调整设置的矩阵系数值的相同矩阵组构来对数据的每一像素进行操作等。在 另一此类实例中,64点FFT的第一阶段可使用相同FFT“旋转因子”(上文描述)在三十 二(32)个原子MMU计算(三十二(32)个2点FFT)中经处置。

此外,相关技术的普通技术人员将进一步理解,一些矩阵组构可具有额外多样性及 /或超出其初始配置使用。举例来说,如前文所述,64点FFT具有64个系数值,其包含 在32点FFT中使用的所有32个系数。因此,经配置用于64点运算的矩阵组构可重复 用于32点运算,其中32点输入操作数a适当应用于64点FFT矩阵组构的适当行。类 似地,FFT旋转因子是离散余弦变换(DCT)旋转因子的超集,因此,FFT矩阵组构还可 用于(运用输入操作数a的适当应用)计算DCT结果。

考虑到本公开的内容,前述实例的另外其它排列及/或变体对于相关技术的普通技术 人员来说将为清楚的。

方法-

现参考图9,呈现一种将存储器阵列转换成用于矩阵变换的矩阵组构且在其中执行 矩阵运算的示范性方法900的逻辑流程图。

在方法900的步骤902处,存储器装置接收一或多个指令。在一个实施例中,存储器装置从处理器接收指令。在一个这类变体中,处理器是消费型电子装置中常用的应用 程序处理器(AP)。在其它这类变体中,处理器是无线装置中常用的基带处理器(BB)。

顺便说一句,所谓的“应用程序处理器”是经配置以执行操作系统(OS)及一或多个应用程序、固件及/或软件的处理器。术语“操作系统”是指控制及管理对硬件的访问的 软件。OS通常支持处理功能,例如,任务调度、应用程序执行、输入及输出管理、存 储器管理、安全性,及外围访问。

所谓的“基带处理器”是经配置以经由通信协议栈与无线网络通信的处理器。术语“通信协议栈”是指控制及管理对无线网络资源的访问的软件和硬件组件。通信协议栈 通常包含但不限于:物理层协议、数据链路层协议、媒体访问控制协议、网络及/或传输 协议等。

其它外围及/或协处理器配置可类似地代入等效成果。举例来说,服务器装置通常包 含共享公共存储器资源的多个处理器。类似地,多个常用装置架构将通用处理器与专用协处理器及共享存储器资源(例如图形引擎或数字信号处理器(DSP))配对。这类处理器的常用实例包含但不限于:图形处理单元(GPU)、视频处理单元(VPU)、张量处理单元(TPU)、神经网络处理单元(NPU)、数字信号处理器(DSP)、图像信号处理器(ISP)。在其它实施例中,存储器装置从专用集成电路(ASIC)或其它形式的处理逻辑接收指令,其它形式的处 理逻辑例如现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、相机传感器、无线基带 处理器、毫米波处理器或调制解调器,及/或媒体编解码器(例如,图像、视频、音频, 及/或其任何组合)。

在一个示范性实施例中,存储器装置是以“纵横式”行-列配置布置的电阻式随机存 取存储器(ReRAM)。虽然本文中所描述的各种实施例假设特定存储器技术及特定存储器结构,但相关技术的普通技术人员考虑到本公开的内容将易于理解,本文中所描述的原 理可广泛扩展到其它技术及/或结构。举例来说,某些可编程逻辑结构(例如,常用于现 场可编程门阵列(FPGA)及可编程逻辑装置(PLD)中)在能力及拓扑方面可具有与存储器 类似的特性。类似地,某些处理器及/或其它存储器技术可改变电阻、电容及/或电感; 在这类情况下,不同阻抗特性可用于执行模拟计算。另外,虽然基于“纵横式”的构造 提供非常适用于二维(2D)矩阵结构的物理结构,但其它拓扑可非常适用于较高阶数学运 算(例如,经由三维(3D)存储器堆叠的矩阵矩阵积等)。

在一个示范性实施例中,存储器装置进一步包含控制器。控制器接收一或多个指令 且将每一指令解析成一或多个指令成分(通常还被称为“指令音节”)。在一个示范性实施例中,指令音节包含至少一个操作码及一或多个操作数。举例来说,指令可经解析成 操作码、第一源操作数及目的地操作数。指令成分的其它常用实例可包含但不限于:第 二源操作数(用于二进制运算)、移位量、绝对/相对地址、寄存器(或对数据结构的其它参 考)、最接近的数据结构(即,提供于指令自身内的数据结构)、从属函数,及/或分支/链 路值(例如,取决于指令是完成还是失败而执行)。

在一个实施例中,每一所接收指令对应于原子存储器控制器操作。如本文中所使用, “原子”指令是在单个访问周期内完成的指令。相反地,“非原子”指令是可以或可以不在单个访问周期内完成的指令。尽管非原子指令可在单个周期中完成,但其必须被视为 非原子以防止数据竞态条件。竞态条件在正由处理器指令访问(读取或写入)的数据可在 第一处理器指令有机会完成之前由另一处理器指令访问的情况下出现;竞态条件可能不 可预测地导致数据读取/写入误差。换句话说,原子指令保证数据在未完成状态下不能被 观察到。

在一个示范性实施例中,原子指令可识别将被转换成矩阵组构的存储器阵列的一部 分。在一些情况下,原子指令可识别矩阵组构的特性。举例来说,原子指令可基于例如存储器阵列内的位置(例如,经由偏移、行、列)、大小(行的数目、列的数目,及/或其它 尺寸参数)、粒度(例如,精度及/或灵敏度)来识别存储器阵列的部分。值得注意的是,原 子指令可经由存储器装置操作提供极精细粒度控制;这在存储器装置操作可鉴于各种应 用特定的考虑因素而优化的情况下可以是合乎需要的。

在其它实施例中,非原子指令可指定将转换成矩阵组构的存储器阵列的部分。举例 来说,非原子指令可指定关于矩阵组构的各种要求及/或约束。存储器控制器可内部地分 配资源以便适应要求及/或约束。在一些情况下,存储器控制器可另外基于当前存储器使 用、存储器资源、控制器带宽及/或其它考虑因素提高及/或降低指令的优先级。此类实施方案在存储器装置管理为不必要的否则将对处理器造成负荷的情况下可能特别有用。

在一个实施例中,指令指定矩阵运算。在一个这类变体中,矩阵运算可以是向量矩阵积。在另一变体中,矩阵运算可以是矩阵矩阵积。考虑到本公开的内容,另外其它变 体可由相关技术中的普通技术人员代入。这类变体可包含例如纯量矩阵积、较高阶矩阵 积,及/或其它变换,所述变换包含例如线性移位、旋转、反射及平移。

如本文中所使用,术语“变换(变换/变换)”等指代将输入从第一域转换成第二域的 数学运算。变换可为“内射”(第一域的每一元素具有第二域中的唯一元素)、“满射”(第二域的每一元素具有第一域中的唯一元素)或“双射”(元素从第一域到第二域的唯一一 对一映射)。

经常用于计算领域的更复杂的在数学上限定的变换包含傅里叶变换(及其导数,例如 离散余弦变换(DCT))、希尔伯特(Hilbert)变换、拉普拉斯变换,及勒让德(Legendre)变换。 在本公开的一个示范性实施例中,用于在数学上限定的变换的矩阵系数值可经提前计算 且存储在查找表(LUT)或其它数据结构内。举例来说,用于快速傅里叶变换(FFT)及/或 DCT的旋转因子可经计算且存储在LUT内。在其它实施例中,用于在数学上限定的变 换的矩阵系数值可在矩阵组构转换处理期间(或在矩阵组构转换处理的准备中)由存储器 控制器计算。

其它变换可能并不基于本身的数学定义,而实际上可基于例如应用、另一装置及/或网络实体限定。这类变换可常用于分集计算、加密、解密、几何建模、数学建模、神 经网络、网络管理,及/或基于应用的其它图论。举例来说,无线网络可使用预定天线加 权矩阵的码本以便用信号发送最常使用的波束成形/预译码配置。在其它实例中,某些类 型的加密可在不同加密矩阵之间达成一致及/或协商。在这类实施例中,码本或矩阵系数 值可提前商定,以带外方式交换,带内交换,或甚至任意确定或协商。

考虑到本公开的内容,凭经验确定的变换也可代入等效成果。举例来说,经常用于计算领域的凭经验导出的变换包含无线电信道译码、图像信号处理,及/或其它数学建模的环境效应。举例来说,多路径无线环境可表征为测量例如参考信号的信道效应。所得 信道矩阵可用于建设性地干扰信号接收(例如,提高信号强度)同时破坏性地干扰干扰(例如,减少噪声)。类似地,具有偏斜色调的图像可关于总体色彩平衡经评估,且在数学上 校正。在一些情况下,图像可基于例如用户输入有意地偏斜,以便对图像施加审美“暖 感”。

本公开的各种实施例可在存储器装置内实施“一元”运算。其它实施例可实施“二元”或甚至更高阶“N元”矩阵运算。如本文中所使用,术语“一元、“二元”及“N 元”是指分别地采用一个、两个或N个输入数据结构的运算。在一些实施例中,二元及 /或N元运算可细分成一或多个一元矩阵原位算子。如本文中所使用,“原位”算子是指 存储或翻译其的矩阵运算产生其自身状态(例如,其自身矩阵系数值)。举例来说,二元 运算可分解成两(2)个一元运算;第一原位一元运算得以执行(结果经“原位”存储)。随 后,可对矩阵组构执行第二一元运算以得到二元结果(例如,乘法累加运算)。

另外其它实施例可基于各种考虑因素而串行化及/或并行化矩阵运算。举例来说,可 在“串行”流水线中执行依序相关运算。举例来说,图像处理计算,例如在上文先前并 入的2018年6月7日提交且名称为“形成于存储器单元阵列中的图像处理器”的共同 拥有且共同未决的美国专利申请案第16/002,644号中描述,可配置多个矩阵组构及MMU 处理元件以进行流水线处理,例如,缺陷校正、色彩插值、白平衡、色彩调整、伽马亮 度、对比度调整、色彩转换、降采样等。流水线处理可通常运用最小矩阵组构资源产生 极高吞吐量数据。相反地,可运用分离资源“并行”执行无关运算。举例来说,可运用 经配置为2点FFT的三十二(32)个分离的矩阵组构操作来处置64点FFT的第一阶段。 另外,在分离的矩阵组构存储器阵列中,一些运算可经解构以使得运算的两个或更多个 部分并行地执行,其中随后对结果进行组合。高度并行化运算可极大地减少延迟;然而, 总体存储器组构资源利用率可能极高。

在一个示范性实施例中,经由专用接口从处理器接收到指令。专用接口在矩阵计算 组构等效于协处理器或硬件加速器而经处理的情况下可能特别有用。值得注意的是,专用接口并不需要仲裁,并且可以极高速度(在一些情况下,以原生处理器速度)操作。在 其它实施例中,经由共享接口接收指令。

共享接口可在时间、资源(例如,通路、信道等),或具有其它同时有源存储器接口功能性的其它方式方面进行复用。其它存储器接口功能性的常用实例包含但不限于:数 据输入/输出、存储器配置、存储器内嵌处理器(PIM)通信、直接存储器存取,及/或阻止 存储器存取的任何其它形式。在一些变体中,共享接口可包含一或多个列队及/或流水线 化机构。举例来说,一些存储器技术可实施流水线接口以便最大化存储器吞吐量。

在一些实施例中,可从能够访问存储器接口的任何实体具有接收到所述指令。举例 来说,相机协处理器(图像信号处理器(ISP))可能够与存储器装置直接通信以例如写入经 捕获数据。在某些实施方案中,相机协处理器可能够将其处理任务卸载到存储器装置的矩阵组构。举例来说,ISP可加速/卸载/并行化例如色彩插值、白平衡、色彩校正、色彩 转换等。在其它实例中,基带协处理器(BB)可能够与存储器装置直接通信以例如读取/ 写入数据以用于经由网络接口进行交易。BB处理器可能够将例如FFT/IFFT、信道估计、 波束成形/预译码计算,及/或任何数目个其它联网任务卸载到存储器装置的矩阵组构。 类似地,视频及/或音频编解码器通常利用DCT/IDCT变换,且将受益于矩阵组构运算。 考虑到本公开的内容,相关技术中的普通技术人员将容易了解前述内容的另外其它变 体。

本公开的各种实施方案可支持多个指令的队列。在一个示范性实施例中,矩阵运算 可列队在一起。举例来说,多个向量矩阵乘法可列队在一起以便实现矩阵乘法。类似地,如前文所述,可通过将较低阶构成变换(例如,FFT512等)的多次迭代列队来实现较高阶 变换(例如,FFT1024)。在又一实例中,图像的ISP处理可包含迭代空间内的多次迭代(每 一迭代可预先列队)。考虑到本公开的内容,另外其它列队方案可易于由相关技术中的普 通技术人员代入同等成果。

在一些情况下,矩阵运算可级联在一起以实现更高等级的矩阵运算。举例来说,更高阶FFT(例如,1024×1024)可分解成较低等级FFT的多次迭代(例如,512×512FFT的 四(4)个迭代,256×256FFT的十六(16)次迭代等)。在其它实例中,任意大小的N点DFT(例 如,其并非2的幂)可通过其它大小的级联DFT实施。级联及/或链接矩阵变换的另外其 它实例可代入等效成果,前述内容仅为说明性的。

如先前所提及,ReRAM的非易失性即使在ReRAM不供电时也自然保留存储器内 容。因此,处理器-存储器架构的某些变体可使得一或多个处理器能够独立地对存储器供 电。在一些情况下,在处理器非作用中时,处理器可对存储器供电(例如,保持存储器处 于作用中而处理器处于低功率)。即使在处理器处于休眠时,存储器的独立电力管理对于 例如在存储器中执行矩阵运算也可能特别有用。举例来说,存储器可接收多个指令以供 执行;处理器可过渡到休眠模式直到多个指令已经完成为止。另外其它实施方案在存储 器断电时可使用ReRAM的非易失性性质来保持存储器内容;例如某些视频及/或图像处 理计算在非作用中期间可保持在ReRAM内。

在方法900的步骤904处,可基于指令将存储器阵列(或其部分)转换成矩阵组构。如本文中所使用,术语“矩阵组构”是指具有可配置阻抗的多个存储器单元,所述多个 存储器单元在由输入向量驱动时,得到输出向量及/或矩阵。在一个实施例中,矩阵组构 可与存储器映射的一部分相关联。在一些这类变体中,所述部分在其大小及/或位置方面 为可配置的。举例来说,可配置存储器寄存器可确定组是被配置成存储器还是被配置成 矩阵组构。在其它变体中,矩阵组构可重新使用及/或甚至阻止存储器接口运算。举例来 说,存储器装置可以允许存储器接口可能基于GPIO(例如,在一个配置中,存储器接口 的插脚在正常操作期间可选择性地操作为ADDR/DATA,或在矩阵运算期间操作为例如 FFT16)。

在一个实施例中,指令识别由结构上限定的系数表征的矩阵组构。在一个示范性实 施例中,矩阵组构含有用于结构上限定的矩阵运算的系数。举例来说,用于8×8FFT的矩阵组构是已经预先填入有用于FFT的结构上限定的系数的8×8矩阵组构。在一些变体中,矩阵组构可预先填入有特定符号(正,负)或特定基数(最高有效位、最低有效位或中 间位)的系数。

如本文中所使用,术语“结构上限定的系数”是指矩阵乘法的系数是由矩阵结构(例 如,矩阵的大小)而不是运算的性质(例如,乘以操作数)限定的事实。举例来说,结构上限定的矩阵运算可通过例如行及列指定识别(例如,8×8、16×16、32×32、64×64、128×128、 256×256等)。虽然前述论述在满秩矩阵运算的上下文中呈现,但亏损矩阵算子可代入等 效成果。举例来说,矩阵运算可具有不对称列及/或行(例如,8×16、16×8等)。实际上, 多个基于向量的运算可被视为具有单个列的行或具有单个行的列(例如,8×1,1×8)。

在一些混合硬件/软件实施例中,控制逻辑(例如,存储器控制器、处理器、PIM等)可确定资源是否存在以提供矩阵组构。在一个此类实施例中,矩阵运算可通过预处理器 评估以确定其应在软件内还是专用矩阵组构内处置。举例来说,如果现有存储器及/或矩 阵组构使用消耗所有存储器装置资源,那么矩阵运算可能需要在软件内而不是经由矩阵 组构处置。在这些情形下,指令可不完全返回(从而引起经由处理器指令的传统矩阵运 算)。在另一此类实例中,配置临时矩阵组构以处置简单矩阵运算可得到这类极少返回, 矩阵运算应在软件内处置。

各种考虑因素可以用于确定是否应使用矩阵组构。举例来说,存储器管理可针对存 储器及/或矩阵组构分配存储器阵列的各部分。在一些实施方案中,存储器阵列的部分可 静态地分配。静态分配可优选地减少存储器管理开销及/或简化操作开销(耗损均衡等)。 在其它实施方案中,存储器阵列的部分可动态地分配。举例来说,耗损均衡可为确保存 储器的性能均匀地降低(而不是损耗高使用率区域)所必需的。另外其它变体可静态地及/ 或动态地分配不同部分;例如存储器及/或矩阵组构部分的子集可动态地及/或静态地经 分配。

顺便说一句,耗损均衡存储器单元可在存储器的任何离散量(例如,存储器组、存储 器组块等)中执行。耗损均衡矩阵组构可使用类似技术;例如,在一个变体中,耗损均衡矩阵组构部分可能需要整个矩阵组构聚合移动(纵横式结构不能以碎片移动)。替代地, 耗损均衡矩阵组构部分可通过首先将矩阵组构分解成组成矩阵计算且将组成矩阵计算 发散到其它位置而执行。更直接地,矩阵组构耗损均衡可间接地受益于在其它矩阵运算 (例如,分解、级联、并行化等)中使用的“逻辑”矩阵操纵。具体地说,将矩阵组构分 解成其组成矩阵组构可运用仅稍微更复杂的运算(例如,经由MMU的逻辑组合的额外步 骤)实现更好的耗损均衡管理。

在一个示范性实施例中,转换包含重新配置行解码器以操作为可变地驱动存储器阵 列的多个行的矩阵组构驱动器。在一个变体中,行驱动器将数字值转换成模拟信号。在一个变体中,数模转换包含根据矩阵系数值改变与存储器单元相关联的电导。另外,转 换可包含重新配置列解码器以执行模拟解码。在一个变体中,列解码器经重新配置以感 测对应于不同电导单元的列的模拟信号,所述不同电导单元由不同信令的对应行驱动。 列解码器将模拟信号转换成数字值。

虽然前述构造以一个特定行-列配置呈现,但其它实施方案可代入同等成果。举例来 说,列驱动器可将数字值转换成模拟信号,且行解码器可将模拟信号转换成数字值。在另一此类实例中,三维(3D)行-列-深度存储器可以任意排列实施2D矩阵(例如,行驱动 器/列解码器、行驱动器/深度解码器、列驱动器/深度解码器等)及/或3D矩阵排列(例如, 行驱动器/列解码器-驱动器/深度解码器)。

在一个示范性实施例中,矩阵系数值对应于结构上确定的值。结构上确定的值可基 于运算的性质。举例来说,可运用(2×2)的FFT蝶形运算或某一更高阶蝶形(例如,4×4、8×8、16×16等)执行对长度对N(其中N为2的幂)的向量的快速傅里叶变换(FFT)。值得 注意的是,中间组成FFT蝶形运算加权经限定为单位圆的函数(例如,

在一个示范性实施例中,矩阵组构自身具有结构上确定的尺寸。结构上确定的尺寸 可基于运算的性质;例如ISP白平衡处理可使用3×3矩阵(对应于红色(R)、绿色(G)、蓝色(B)、亮度(Y)、红色色度(Cr)、蓝色色度(Cb)等的不同值)。在另一此类实例中,信道 矩阵估计及/或波束成形码本通常根据多输入多输出(MIMO)路径的数目经限定。举例来 说,2×2MIMO信道具有对应的2×2信道矩阵及对应的2×2波束成形/预译码加权 (100×200MIMO信道具有对应的100×200信道矩阵等)。考虑到本公开的内容,对于矩 阵运算有用的各种其它结构上限定的值及/或尺寸可由相关技术的普通技术人员代入。

某些变体可另外细分矩阵系数值以便处置可能无法以其它方式处置的操纵。在这些 情形下,矩阵组构可包含矩阵系数值的仅一部分(以执行矩阵运算的仅一部分)。举例来说,执行带符号运算及/或更高水平的基数计算可能要求极其昂贵的制造公差的水平。带符号矩阵运算可分成正矩阵运算及负矩阵运算(其稍后由本文中其它地方描述的矩阵乘法单元(MMU)求和)。带符号复合矩阵运算可分成正实数、负实数、正虚数及负虚数运 算(其由一或多个MMU适当地组合)。类似地,高基数矩阵运算可分成例如最高有效位 (MSB)部分、最低有效位(LSB)部分,及/或任意中间位(其可经位移位及由前述MMU求 和)。考虑到本公开的内容,普通技术人员取代将易于理解另外其它变体。

在一个示范性实施例中,矩阵系数值经提前确定且存储在查找表中以供稍后参考。 举例来说,两者结构上确定的尺寸及结构上确定的值的矩阵运算可经提前存储。仅作为 一个此类实例,八(8)个元素的FFT具有结构上确定的尺寸(8×8)及结构上确定的值(例如,

作为另一此类实例,天线波束成形/预译码系数通常提前限定在码本内;无线网络可 识别码本内的对应索引以配置天线波束成形/预译码。举例来说,MIMO码本可针对4×4MIMO系统识别可能的配置;在操作期间,可基于其中的索引从码本检索所选配置。

虽然前述实例在结构上限定的尺寸及/或值的上下文中呈现,但其它实施例可使用基 于一或多个其它系统参数限定的尺寸及/或值。举例来说,低功率操作可能需要较小粒度。 类似地,如先前所提及,各种处理考虑因素可以有利于(或免于)在矩阵组构内执行矩阵 运算的方式加权。另外,矩阵运算可影响其它存储器考虑因素,包含但不限于:耗损均衡、存储器带宽、存储器内嵌处理带宽功耗、行列及/或深度解码复杂度等。相关技术中 的普通技术人员考虑到本公开的内容可代入各种其它考虑因素,前述内容仅为说明性 的。

在方法900的步骤906处,可基于指令配置一或多个矩阵乘法单元。如先前所提及,某些矩阵组构可实施逻辑(数学恒等式)以处置单级矩阵运算运算然而,矩阵组构的多个级可级联在一起以实现更复杂的矩阵运算。在一个示范性实施例中,第一矩阵用于计算 矩阵运算的正积,且第二矩阵用于计算矩阵运算的负积。所得正及负积可编译在MMU 内以提供带符号矩阵乘法。

在另一示范性实施例中,假设矩阵具有复值且输入向量仅具有实值,第一矩阵用于 计算矩阵运算的正实积,第二矩阵用于计算负实积,第三矩阵用于计算正虚积,且第四矩阵用于计算矩阵运算的负虚积。四个结果可编译在MMU内以获得矩阵向量积。

在另一示范性实施例中,假设矩阵及向量两者可具有复值,可如下计算矩阵向量积: 通过将向量的实系数输入到先前实例的四个存储器矩阵中,将向量的虚系数输入到四个 等同(或相同)存储器矩阵中,且在一或多个MMU内组合八个结果来获得矩阵向量积。

在一个其它示范性实施例中,第一矩阵用于计算矩阵运算的第一基数部分,且第二 矩阵用于计算矩阵运算的第二基数部分。所得基数部分可经位移位及/或在MMU内求和以提供较大基数积。

顺便说一句,逻辑矩阵运算区别于模拟矩阵运算。示范性矩阵组构将模拟电压或电 流转换成由矩阵乘法单元(MMU)读取的数字值。逻辑运算可经由数学性质(例如,经由矩阵分解等)操纵数字值,模拟电压或电流不能以此方式来操纵。

更一般来说,可运用矩阵的群组执行不同逻辑操纵。举例来说,矩阵可经分解或因子分解成一或多个组成矩阵。类似地,多个组成矩阵可经聚合或组合为单个矩阵。另外, 矩阵可以行及/或列扩展以产生尺寸较大(但等级等同)的亏损矩阵。这类逻辑可用于实施 多个更高阶矩阵运算。举例来说,使两个矩阵相乘在一起可分解为多个向量矩阵乘法。 这些向量矩阵乘法在矩阵乘法单元(MMU)内可进一步实施为乘法累加逻辑。换句话说, 即使非一元运算也可处置为一系列分段的一元矩阵运算。更一般来说,相关技术中的普 通技术人员将易于理解,可完全或部分地表示为一元运算的任何矩阵运算可极大地受益 于本文中所描述的各种原理。

本公开的各种实施例使用矩阵乘法单元(MMU)作为多个组成矩阵组构之间的胶合逻辑。另外,MMU运算可针对连接性选择性地切换到不同行及/或列。无法同时使用所 有矩阵组构;因此,取决于当前处理及/或存储器使用,矩阵组构可选择性地连接到MMU。 举例来说,单个MMU可动态地连接到不同矩阵组构。

在一些实施例中,控制逻辑(例如,存储器控制器、处理器、PIM等)可确定资源是否存在以在例如列解码器内或其它地方提供MMU操纵。举例来说,当前MMU负载可 由预处理器评估以确定MMU是否可重载。值得注意的是,MMU主要用于逻辑操纵, 因此具有等效逻辑功能性的任何处理实体可有助于MMU的任务。举例来说,存储器内 嵌处理器(PIM)可卸载MMU操纵。类似地,矩阵组构结果可直接地提供到主机处理器(其 可在软件中执行逻辑操纵)。

更一般来说,本公开的各种实施例预期在多个不同矩阵组构之间共享MMU逻辑。共享可基于例如时间共享方案。举例来说,MMU在一个时隙期间可分配到第一矩阵组 构,且在另一时隙期间分配到第二矩阵组构。换句话说,不同于矩阵组构的物理结构(其 在矩阵运算的持续时间内静态地分配),MMU执行可以任何数目个方式经调度、细分、 分配、保留及/或分区的逻辑运算。更一般来说,矩阵组构的各种实施例是基于存储器及 非易失性。因此,矩阵组构可预先配置,且在需要时读取;非易失性性质确保即使例如 存储器装置断电矩阵组构也保留内容而不需要处理开销。

如果矩阵组构及对应矩阵乘法单元(MMU)都成功地转换及配置,那么在方法900的步骤908处,基于指令驱动矩阵组构,且在步骤910处,运用一或多个矩阵乘法单元计 算逻辑结果。在一个实施例中,一或多个操作数经转换成电信号以用于经由矩阵组构的 模拟计算。模拟计算由通过矩阵组构元素驱动电信号而产生;例如电压降是矩阵组构的 系数的函数。模拟计算结果经感测且转换回数字域信号。随后,运用一或多个矩阵乘法 单元(MMU)操纵一或多个数字域值以产生逻辑结果。

现参考图10,展示及描述适用于信道预译码的图9的方法的一个示范性实施例。在步骤1002处,存储器装置接收来从例如无线基带或天线处理器的一或多个预译码相关 指令,以及将由存储器装置变换的通信数据的阵列。在一些变体中,存储器装置的控制 逻辑经配置以将数据划分成数个较小阵列(向量),且将所述阵列暂时地存储在内部存储 器阵列(例如图8A到8C的阵列812)中。

在方法1000的步骤1004处,将存储器阵列的一部分转换成经配置以执行预译码矩阵运算的矩阵组构。如下文相对于图10A和10B更详细地论述,在一些实施例中,存储 器组构的两个分离部分(第一阵列及第二阵列),其各自的尺寸为预译码矩阵的大小的四 倍,相同地配置有预译码矩阵W(分成子阵列,其保持W的相应正实值、负实值、正虚 值及负虚值)。

在步骤1006处,一或多个矩阵乘法单元可经配置以例如编译来自(i)第一阵列的正 实数、负实数、正虚数、负虚数编程部分及(ii)第二阵列的正实数、负实数、正虚数、负虚数编程部分(相对于图7B描述)的矩阵向量积。

在方法1000的步骤1008处,基于预译码指令驱动矩阵组构,且在步骤1010处, 运用一或多个矩阵乘法单元来计算逻辑结果。在一个实施例中,一或多个操作数经转换 成电信号以用于经由矩阵组构的模拟计算。如上文所论述,模拟计算由通过矩阵组构元 素驱动电信号而产生,且其后,运用一或多个矩阵乘法单元(MMU)操纵一或多个数字域 值以产生逻辑结果。

现在参考图10A及10B,方法1020及1040用于对数据向量d执行预译码操作。

在图10A的步骤1022处,存储器装置接收指定预译码矩阵索引(或特定基地址)的指令。存储器装置的控制逻辑(参见例如,图8A的设备的控制逻辑808)使用矩阵索引来 在查找表(LUT)(例如位于存储器阵列812内部的查找表)中查找适当预译码矩阵的值。

在步骤1024处,确定预译码矩阵W,且按照步骤1026,用来自步骤1024的所确 定的预译码矩阵配置或编程存储器组构矩阵。

在方法1020的步骤1028中,依次从存储器阵列获得数据向量d,且其个别地用于驱动已配置有预译码矩阵W的值的矩阵组构。

在步骤1030中,先前配置的MMU获得矩阵组构的结果,且计算发射向量a(使用 上文关于图7B所描述的方法)。

最后,在方法1020的步骤1032中,所计算的向量a存储在例如暂时性存储器位置中以供稍后导出存储器装置。

图10B展示替代性方法。在图10B的步骤1042处,存储器装置接收包含预译码矩 阵W的值的指令,以及相关联数据向量d。

在步骤1044处,存储器组构矩阵经配置或编程有来自步骤1042的所接收预译码矩阵。

在方法1040的步骤1046中,将在步骤1042中获得的数据向量d个别地用于驱动 已配置有所接收预译码矩阵W的值的矩阵组构。

在步骤1048中,先前配置的MMU获得矩阵组构的结果,且计算发射向量a(使用 上文关于图7B所描述的方法)。

最后,在方法1040的步骤1050中,将所计算的向量a发射出存储器装置(例如,一旦其经计算)。

将认识到,在考虑到本公开时,前述方法可能易于由普通技术人员用于与图5B到5D、6B到6C及7B的组构架构一起使用。

将认识到,虽然按照方法的步骤的特定顺序描述本公开的某些方面,但这些描述仅 说明本公开中的较广泛方法,且可根据特定应用的需要加以修改。在某些情况下,某些步骤可能变得不必要或可选。此外,可将某些步骤或功能性添加至所公开的实施例,或 置换执行两个或更多个步骤的次序。此外,可组合来自所述方法中的两个或多于两个的 特征。所有这类变化都被认为涵盖在本文中公开和要求保护的公开内容内。

本文中结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利 要求书的范围内的所有实例。本文所用的术语“示范性”意指“充当实例、例子或说明”,且不比其它实例“优选”或“有利”。出于提供对所描述的技术的理解的目的,具体实 施方式包含特定细节。然而,可以在没有这些具体细节的情况下实践这些技术。在一些 情况下,以框图的形式展示众所周知的结构和装置以便避免混淆所描述实例的概念。

可使用各种不同技艺和技术中的任一个来表示本文中所描述的信息和信号。举例来 说,可用电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整 个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。

虽然以上详细描述已展示、描述并指出适用于各种实施例的本公开的新颖特征,但 应了解,所属领域的技术人员可在不背离本公开的情况下对所说明的装置或方法的形式 及细节作出各种省略、替换及改变。本说明书绝不意味着限制,而是应被视为对本公开的一般原理的说明。应参考权利要求书确定本公开的范围。

应进一步了解,虽然本文中所描述的各种方法和设备的某些步骤和方面可由人类执 行,但所公开的方面和个别方法和设备通常计算机化/由计算机实施。计算机化设备和方 法为出于包含但不限于商业可行性、实用性以及甚至可行性(即,某些步骤/程序无法仅由人类以任何可行方式执行)的任何数目个原因全部实施这些方面所必需。

本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或代码存储在计算机可读设备(例如,存储媒体)上或经由计算机可读设备发射。计算机可读媒体包含非暂时 性计算机存储媒体及包含促进将计算机程序从一处传送到另一处的任何媒体的通信媒 体这两者。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。并且, 任何连接可恰当地被称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞 线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它 远程源发射软件,则所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外 线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含 CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以 磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也包含在计算 机可读媒体的范围内。

相关技术
  • 用于在存储器阵列内执行分集矩阵运算的方法及设备
  • 用于在存储器阵列内执行矩阵变换的方法和设备
技术分类

06120112880648