用于在存储器阵列内执行视频处理矩阵运算的方法和设备转让专利
申请号 : CN202011251972.X
文献号 : CN112825257A
文献日 : 2021-05-21
发明人 : 罗法隆
申请人 : 美光科技公司
摘要 :
权利要求 :
1.一种非暂时性计算机可读设备,其包括:存储器单元阵列,其中所述存储器单元阵列的每个存储器单元经配置以将数字值作为模拟值存储在模拟媒体中;
存储器感测组件,其中所述存储器感测组件经配置以读取第一存储器单元的所述模拟值作为第一数字值;
逻辑,其经配置以:
接收离散余弦变换DCT矩阵变换操作码;
基于所述DCT矩阵变换操作码使所述存储器单元阵列作为矩阵乘法单元MMU操作;
其中,所述MMU的每个存储器单元根据所述DCT矩阵变换操作码和矩阵变换操作数修改所述模拟媒体中的所述模拟值;
配置所述存储器感测组件以根据所述DCT矩阵变换操作码和所述矩阵变换操作数将所述第一存储器单元的所述模拟值转换为第二数字值;并且响应于将所述矩阵变换操作数读取到所述MMU中,基于所述第二数字值写入矩阵变换结果。
2.根据权利要求1所述的非暂时性计算机可读设备,其中所述DCT矩阵变换操作码指示所述MMU的大小。
3.根据权利要求2所述的非暂时性计算机可读设备,其中所述DCT矩阵变换操作码对应于频域变换操作。
4.根据权利要求3所述的非暂时性计算机可读设备,其中所述频域变换操作跨越至少一个其它MMU。
5.根据权利要求1所述的非暂时性计算机可读设备,其中所述DCT矩阵变换操作码识别对应于一或多个存储器单元的一或多个模拟值。
6.根据权利要求5所述的非暂时性计算机可读设备,其中对应于所述一或多个存储器单元的所述一或多个模拟值存储在查找表LUT数据结构内。
7.根据权利要求1所述的非暂时性计算机可读设备,其中所述MMU的每个存储器单元包括电阻式随机存取存储器ReRAM单元;并且其中所述MMU的所述每个存储器单元根据所述DCT矩阵变换操作码和所述矩阵变换操作数使所述模拟媒体中的所述模拟值相乘。
8.根据权利要求7所述的非暂时性计算机可读设备,其中所述MMU的每个存储器单元进一步将所述模拟媒体中的所述模拟值与先前的模拟值进行累加。
9.根据权利要求1所述的非暂时性计算机可读设备,其中所述第一数字值由二(2)的第一基数表征;并且
其中所述第二数字值由大于二(2)的第二基数表征。
10.一种装置,其包括:
与非暂时性计算机可读设备进行数据通信的处理器;
其中所述非暂时性计算机可读设备包括一或多个指令,所述指令经配置以在由所述处理器执行时致使所述装置:
将离散余弦变换DCT矩阵变换操作码和矩阵变换操作数写入所述非暂时性计算机可读设备;
其中所述DCT矩阵变换操作码致使所述非暂时性计算机可读媒体将存储器单元阵列作为矩阵结构操作;
其中所述矩阵变换操作数修改所述矩阵结构的一或多个模拟值;并且从所述矩阵结构读取矩阵变换结果。
11.根据权利要求10所述的装置,其中所述非暂时性计算机可读设备进一步包括一或多个指令,所述一或多个指令在由所述处理器执行时致使所述装置:接收包括一或多个图像块的视频数据;
其中所述矩阵变换操作数包括所述一或多个图像块,并且所述矩阵变换结果包括一或多个DCT频域图像系数;并且其中所述矩阵结构的所述一或多个模拟值随时间累加来自视频数据的所述一或多个DCT频域图像系数。
12.根据权利要求10所述的装置,其中所述DCT矩阵变换操作码致使所述非暂时性计算机可读媒体将另一存储器单元阵列作为另一矩阵结构操作;并且其中在逻辑上将与所述矩阵结构相关联的所述矩阵变换结果和与所述另一矩阵结构相关联的另一矩阵变换结果进行组合。
13.根据权利要求10所述的装置,其中所述矩阵结构的所述一或多个模拟值被存储在查找表LUT数据结构内。
14.一种执行用于视频处理的矩阵变换运算的方法,其包括:接收矩阵变换操作码,所述矩阵变换操作码包含执行离散余弦变换DCT运算的指令;
基于所述矩阵变换操作码将存储器的存储器单元阵列配置成矩阵结构;
基于所述矩阵变换操作码配置存储器感测组件;并且响应于将矩阵变换操作数读取到所述矩阵结构中,写入来自所述存储器感测组件的矩阵变换结果。
15.根据权利要求14所述的方法,其中所述配置所述存储器单元阵列包括连接对应于与所述矩阵结构相关联的行维度和列维度的多个字线和多个位线。
16.根据权利要求15所述的方法,其进一步包括从所述矩阵变换操作码确定所述行维度和所述列维度。
17.根据权利要求14所述的方法,其中所述配置所述存储器单元阵列包括基于查找表LUT数据结构设置所述矩阵结构的一或多个模拟值。
18.根据权利要求17所述的方法,其进一步包括基于所述矩阵变换操作码识别来自所述LUT数据结构的条目。
19.根据权利要求14所述的方法,其中所述配置所述存储器感测组件使得矩阵变换结果具有大于二(2)的基数。
20.根据权利要求14所述的方法,其中将所述存储器单元阵列配置成所述矩阵结构包括基于DCT变换矩阵的值来配置个别存储器单元的阻抗值。
说明书 :
用于在存储器阵列内执行视频处理矩阵运算的方法和设备
OPERATIONS WITHIN A MEMORY ARRAY)”的第16/689,981号美国专利申请案的优先权,所述
申请案的全部内容以引用的方式并入本文中。
CELLS)”的共同拥有和共同未决的第16/002,644号美国专利申请案;于2018年12月5日申请
的题为“用于激励参与雾网络的方法和设备(METHODS AND APPARATUS FOR INCENTIVIZING
PARTICIPATION IN FOG NETWORKS)”的第16/211,029号美国专利申请案;于2019年1月8日
申请的题为“用于基于惯例的雾联网的方法和设备(METHODS AND APPARATUS FOR ROUTINE
BASED FOG NETWORKING)”的第16/242,960号申请案;于2019年2月14日申请的题为“用于特
征化存储器装置的方法和设备(METHODS AND APPARATUS FOR CHARACTERIZING MEMORY
DEVICES)”的第16/276,461号申请案;于2019年2月14日申请的题为“用于检查特征化存储
器搜索的结果的方法和设备(METHODS AND APPARATUS FOR CHECKING THE RESULTS OF
CHARACTERIZED MEMORY SEARCHES)”的第16/276,471号申请案;于2019年2月14日申请的题
为“用于保持特征化存储器装置的方法和设备(Methods and Apparatus for Maintaining
Characterized Memory Devices)”的第16/276,489号申请案,前述申请案中的每一个的全
部内容以引用的方式并入本文中。
技术领域
频处理矩阵运算。
背景技术
有两个状态,通常由逻辑“1”或逻辑“0”表示。为存取所存储的信息,存储器装置可以读取
(或感测)存储器装置中的所存储的状态。为存储信息,存储器装置可以将所述状态写入(或
编程)到存储器装置中。所谓的易失性存储器装置可能需要电力来维持此存储的信息,而非
易失性存储器装置甚至在存储器装置本身例如已进行电力循环之后仍可持久地存储信息。
不同的存储器制造方法和构造实现不同的能力。例如,动态随机存取存储器(DRAM)廉价地
提供高密度易失性存储。初期的研究是针对电阻式随机存取存储器(ReRAM),其具有类似于
DRAM的非易失性性能。
基本算术、逻辑、控制、输入/输出(I/O)操作等。如计算领域中众所周知的,相对基本的计算
机可读指令在按顺序组合时可执行各种复杂行为。处理器倾向于强调不同于存储器装置的
电路构造和制造技术。例如,处理性能一般与时钟速率有关,因此大多数处理器制造方法和
构造强调非常高速率的晶体管开关结构等。
所述,大多数处理器和存储器是用不同的制造材料和技术制造的。因此,即使处理器和存储
器继续改进,处理器与存储器之间的物理接口是整个系统性能的“瓶颈”。更直接地,无论处
理器或存储器能够独立运行多快,处理器和存储器的组合系统的性能都受限于接口所允许
的传输速率。这种现象具有几个常见的名称,例如“处理器-存储器壁”、“冯诺依曼瓶颈效
应”等。
显需要改进的设备和方法以减少这些限制的影响,包含在这种视频处理应用中。
发明内容
一存储器单元经配置以将数字值作为模拟值存储在模拟媒体中;存储器感测组件,其中所
述存储器感测组件经配置以读取第一存储器单元的模拟值作为第一数字值;以及逻辑。在
一个实施例中,存储器单元阵列包含至少两个存储器单元子阵列的堆叠。在一个变体中,至
少一些存储单元子阵列经配置以彼此并行运行。
器单元根据矩阵变换操作码和矩阵变换操作数修改模拟媒体中的模拟值;配置所述存储器
感测组件以根据所述矩阵变换操作码和所述矩阵变换操作数将所述第一存储器单元的模
拟值转换为第二数字值;并且响应于将矩阵变换操作数读取到MMU中,基于第二数字值写入
矩阵变换结果。
算,并且MMU的大小的至少一些方面对应于DCT运算的大小(例如,MMU的大小可以对应于DC
运算的大小,或其倍数或分数)。在一个示范性变体中,频域变换运算跨越至少一个其它
MMU。
一个示范性配置中,像素图像块是NxN图像块(例如,8x8像素、16x16像素等)。
(LUT)数据结构中。在一个实施方案中,一或多个模拟值包含DCT变换矩阵值。
相乘。
所述指令在由所述处理器执行时致使所述处理器:将矩阵变换操作码和矩阵变换操作数写
入到所述非暂时性计算机可读媒体;其中所述矩阵变换操作码致使所述非暂时性计算机可
读媒体将存储器单元阵列作为矩阵结构操作;其中矩阵变换操作数修改矩阵结构的一或多
个模拟值;并且从所述矩阵结构中读取矩阵变换结果。
且其中矩阵变换操作数包括一或多个捕获的颜色值,并且矩阵变换结果包括一或多个移位
的颜色值。
阵变换操作数包括一或多个图像块,并且矩阵变换结果包括一或多个频域图像系数;并且
其中所述矩阵结构的一或多个模拟值随时间累加来自视频数据的一或多个频域图像系数。
在一个实施方案中,一或多个频域图像系数包括DCT图像系数。
另一矩阵结构相关联的另一矩阵变换结果进行组合。
中。
配置成矩阵结构;基于所述矩阵变换操作码配置存储器感测组件;以及响应于将矩阵变换
操作数读取到矩阵结构中,写入来自存储器感测组件的矩阵变换结果。在一个变体中,配置
矩阵结构包含用DCT变换矩阵的值配置存储器单元阵列,并且矩阵变换结果包含DCT图像系
数矩阵。在一个实施方案中,矩阵结构配置有两个矩阵的值:正DCT变换矩阵值的矩阵和负
DCT变换矩阵值的矩阵。在一个变体中,多个存储器单元阵列配置有DCT变换矩阵的值。
其经配置以分配一或多个存储器部分以用作矩阵结构。
机接口进行数据通信的数字处理器设备;以及存储器,其与所述数字处理器设备进行数据
通信并且包含至少一个计算机程序。
相机接口进行数据通信的数字处理器设备;以及存储器,其与所述数字处理器设备进行数
据通信并且包含至少一个计算机程序。
置以传输和接收频谱部分中的RF波形;与所述无线接口进行数据通信的数字处理器设备;
以及存储器,其与所述数字处理器设备进行数据通信并且包含至少一个计算机程序。
器结合。在一个实施例中,所述设备包含在计算机控制器装置上的程序存储器或HDD或SDD。
在另一个实施例中,所述设备包含在计算机存取节点上的程序存储器、HDD或SSD。
附图说明
具体实施方式
易、经纪交易、家庭娱乐、计算器等)上有很大不同,并且一个应用可以具有多于一个的主
题。可执行的软件单元通常在预定环境中运行;例如,所述单元可以包含在操作系统环境中
运行的可下载应用程序。
C/C++、Fortran、COBOL、PASCAL、汇编语言、标记语言(例如,HTML、SGML、XML、VoXML)等,以及
面向对象的环境,例如公共对象请求代理体系结构(CORBA)、JavaTM(包含J2ME、Java Bean
等)、寄存器传送语言(RTL)、VHSIC(特高速集成电路)硬件描述语言(VHDL)、Verilog等。
如,中央)网络实体进行通信。例如,分散式网络使得能够在组成网络的多个UE(例如,无线
用户装置)之间进行直接对等数据通信。
gNB-DU可以支持一或多个小区;给定小区仅由一个gNB-DU支持。
实体(例如对装置而言不是本地的存储器或存储装置,通常经由网络连接在任何时间可存
取的存储装置等)、服务节点、存取点、控制器装置、客户端装置等。驻留在回程(backhaul)、
前传(fronthaul)、交叉回程(crosshaul)中的5G服务核心网络和网络组件(例如,DU、CU、
gNB、小型小区或毫微微小区、具有5G能力的外部节点),或其邻近住宅、企业和其它占用的
区域的“边缘”可以包含在“因特网”中。
(DRAM)、包含双倍数据速率(DDR)类存储器和图形DDR(GDDR)及其变体的同步动态RAM
(SDRAM)、铁电RAM(FeRAM)、磁RAM(MRAM)、电阻式RAM(ReRAM)、只读存储器(ROM)、可编程ROM
(PROM)、电可擦除PROM(EEPROM或E2PROM)、DDR/2SDRAM、EDO/FPMS、减少等待时间的DRAM
(RLDRAM)、静态RAM(SRAM)、“快闪”存储器(例如,NAND/NOR)、相变存储器(PCM)、3维交叉点
存储器(3D Xpoint)、例如HBM/HBM2的堆叠存储器,以及例如自旋扭矩转移RAM(STT RAM)的
磁阻RAM(MRAM)。
令集计算机(RISC)、通用处理器(GPP)、微处理器、门阵列(例如FPGA)、PLD、可重新配置的计
算机结构(RCF)、阵列处理器、安全微处理器和专用集成电路(ASIC)。这样的数字处理器可
以包含在单个整体IC管芯上,或者分布在多个部件上。
式。
如,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、Mini-DIMM、VLP Mini-DIMM、LRDIMM、
NVDIMM等)、受管理NAND、NAND快闪存储器(例如,SLC NAND、MLC NAND、TLS NAND、串行NAND、
3D NAND等)、NOR快闪存储器(例如,并行NOR、串行NOR等)、多芯片封装、混合存储器立方体、
存储器卡、固态存储器(SSS),以及任意数量的其它存储器装置。
2016的相关标准,以及Wi-Fi Direct(尤其包含“Wi-Fi对等(P2P)规范”,通过引用的方式将
其全部内容并入本文中)。
CDMA(例如,IS-95A、WCDMA等)、FHSS、DSSS、GSM、PAN/802.15、WiMAX(802.16)、802.20、
Z波、窄带/FDMA、OFDM、PCS/DCS、LTE/LTE-A/LTE-U/LTE-LAA、模拟蜂窝、CDPD、卫
星系统、毫米波或微波系统、声学和红外(即,IrDA)。
素单独地反复传送、操作和存储。例如,4x4(十六(16)个元素)的矩阵乘法需要2x2(四(4)个
元素)的矩阵乘法的四(4)倍。换句话说,矩阵运算根据矩阵大小指数地缩放。
色彩校正、色彩转换等。许多通信技术采用快速傅立叶变换(FFT)和矩阵乘法来进行波束成
形和/或大规模多输入多输出(MIMO)信道处理。
图像/音频标准以及HDR(高动态范围)应用中使用基于DCT的压缩。基于DCT的图像/视频压
缩涉及几个矩阵乘法运算。本公开的各种实施例针对将存储器阵列转换成用于矩阵变换的
矩阵结构以及在其中执行视频处理矩阵运算。
元件存储表示相应矩阵系数值的阻抗水平。纵横连接可以用将输入向量表示为模拟电压的
电信号来驱动。所得到的信号可以由MMU从模拟电压转换成数字值,以产生向量-矩阵乘积。
在某些情况下,MMU还可以在数字域内执行各种其它逻辑运算。
矩阵乘积的至少一部分。基于矩阵结构的计算的“原子性”相对于迭代替换方案产生显著的
处理改进。特别地,当迭代技术随矩阵大小增长时,原子矩阵结构计算与矩阵维度无关。换
句话说,NxN向量-矩阵乘积可以在单个原子指令中完成。
“结构上定义的系数”执行。结构定义是指为特定矩阵结构(例如,矩阵的秩和/或大小)定义
的矩阵计算的那些方面;换句话说,矩阵系数可以从矩阵结构中推断出来,而不需要通过处
理器-存储器接口明确地提供。例如,如下文更详细描述的,DCT变换矩阵值(即,DCT“旋转因
子”)是矩阵大小的函数。用于快速傅立叶变换(FFT)的“旋转因子”也是矩阵大小的函数,而
ISP滤波和/或大规模MIMO信道编码技术可以使用例如预定义的矩阵和/或具有已知结构和
加权的矩阵的码本。
储器感测组件可以被扩展以辨别更高的精度级别(例如,四(4)个状态、八(8)个状态等),但
是增加存储器感测组件的精度对于支持通常在例如视频压缩、数学变换等中使用的大变换
所需的精度可能是不切实际的。
构和/或MMU可用于计算正向量-矩阵乘积,而第二矩阵结构和/或MMU可用于计算负向量-矩
阵乘积。可以对正负向量-矩阵乘积求和以确定净向量-矩阵乘积。
乘法(即,NxN矩阵乘以N个大小的向量)。处理矩阵结构中的DCT运算的各个部分还可以根据
许多设计考虑而被排序或并行化。在给定本公开的内容的情况下,可以用等效成功(例如,
分解、公共矩阵乘法等)来替换逻辑矩阵运算的其它实例。
理器和/或存储器来将数据从操作易失性存储器传送到非易失性存储存储器,使得数据在
断电时不丢失。还需要唤醒过程来从非易失性存储器中检索存储的信息。在存储器之间来
回传送数据是处理器-存储器带宽的低效使用。因此,本文中所公开的各种实施例利用了矩
阵结构的“非易失性”特性。在这样的实施例中,即使当存储器没有电源时,矩阵结构也可以
保持其矩阵系数值。更直接地,矩阵结构的非易失性特性使得处理器和存储器能够转换到
体眠/低功率模式或执行其它任务而不将数据从易失性存储器混编到非易失性存储器,反
之亦然。
以扩展到其它类型的处理器和/或存储器技术,因此以下本质上仅是示范性的。
器装置、物联网(IoT)装置,和/或用于个人、公司或甚至政府用途,例如在如美国国防部等
的被禁止的“现任”用户之外的所述用途。其它应用也是可能的。
矩阵M相乘以计算向量-矩阵乘积b。在数学上,输入向量a被视为具有等于矩阵M中的行数的
多个元素的单列矩阵。
量-矩阵乘积b0的当前值,并且读取对应的矩阵系数值M0,0。在乘法累加运算中使用三(3)个
读取值来产生“中间”向量-矩阵乘积b0。具体地,乘法累加运算计算:(a0·M0,0)+b0并且将结
果值写回到b0。值得注意的是,b0是“中间值”。在第一次迭代之后但在第二次迭代之前,中间
值b0可能不对应于向量-矩阵乘积b0的最终值。
的第一元素。第二次迭代完成b0的计算。
向量-矩阵计算。例如,对于矩阵的三(3)行中的每一行,3x3向量-矩阵乘积计算在三(3)个
元素的输入向量上迭代;因此,需要九(9)次迭代。1024x1024的矩阵运算(这对于许多应用
来说并不罕见)将需要超过一百万次迭代。更直接地,上述迭代过程根据矩阵维度指数地缩
放。
量的第一单列矩阵的第一向量-矩阵乘积,计算对应于输入向量的第二单列矩阵的第二向
量-矩阵乘积,等等。因此,2x2矩阵-矩阵乘积将需要两个(2)向量-矩阵计算(即总共2x4=
8),3x3矩阵-矩阵乘积将需要三个(3)向量-矩阵计算(即总共3x9=27)。
部总线,处理器-存储器系统也只能在接口106能够支持电信令(基于在接口106中使用的材
料(典型地为铜)的介电特性和传输距离(~1-2厘米))的速度下通信。此外,接口106还可以
包含各种附加的信号调节、放大、噪声校正、纠错、奇偶校验计算和/或进一步减少事务时间
的其它基于接口的逻辑。
具有高得多的每位制造成本。结果,处理器的本地高速缓存大小通常比其存储器(其可以是
数千兆字节)小得多(例如,几兆字节)。从实际角度看,较小的本地高速缓存是对可在处理
器内本地执行的矩阵运算的最大量的硬限制。作为另一个缺点,大矩阵运算导致较差的高
速缓存利用率,因为一次只存取一行和一列(例如,对于1024x1024向量-矩阵乘积,在单个
迭代期间只有1/1024的高速缓存处于有效使用中)。因此,虽然处理器高速缓存实施方案对
于小矩阵是可接受的,但是随着矩阵运算复杂性的增加,这种技术变得越来越不理想。
包含PIM 162和存储器阵列164;PIM 162通过内部接口166与存储器阵列164紧密耦合。
读取、乘法-累加和写入。内部接口166比外部接口156短得多;另外,内部接口166可以在没
有例如信号调节、放大、噪声校正、纠错、奇偶校验计算等的情况下本地操作。
储器装置之间大体上不同,因为每一硅工艺针对不同设计标准进行优化。例如,处理器硅工
艺可以使用比存储器硅工艺更薄的晶体管结构;较薄的晶体管结构提供更快的切换(其提
高性能),但遭受更大的泄漏(其对于存储器保持来说是不合需要的)。结果,在同一晶片中
制造PIM 162和存储器阵列164导致在次优硅工艺中实现其中至少一个。可替代地,PIM 162
和存储器阵列164可以在单独的管芯内实现并连接在一起;管芯到管芯通信通常会增加制
造成本和复杂性,并且可能遭受各种其它损害(例如,由工艺不连续性等引入)。
154,所述存储器就不能被改变以例如存储更多数据和/或增加/降低PIM性能/功耗。此类存
储器装置通常专门针对其应用而定制;这对于设计和修改都是昂贵的,在许多情况下所述
存储器是“专有的”和/或客户/制造商特定的。此外,由于技术变化非常迅速,这些装置很快
被废弃。
的矩阵运算。此外,这种解决方案应该灵活地适应各种不同的矩阵运算和/或矩阵大小。
置制造时分割每一所分割的存储器单元阵列220。在其它实施方案中,可动态地(即,在装置
制造之后)分割存储器单元阵列220。存储器单元阵列220可分别包含多个库,其中每一库包
含多个字线、多个位线和多个存储器单元,所述多个存储器单元布置在例如所述多个字线
和所述多个位线的交点处。字线的选择可由行解码器216执行,而位线的选择可由列解码器
218执行。
提供给地址端子260的地址信号和库地址信号经由地址输入电路202传送到地址解码器
204。地址解码器204接收例如地址信号,并将解码的行地址信号提供给行解码器216,并将
解码的列地址信号提供给列解码器218。地址解码器204还可接收库地址信号并将所述库地
址信号提供给行解码器216和列解码器218。
206将输入到命令端子262的命令信号提供给命令解码器208。命令解码器208可解码所述命
令信号262以生成各种控制信号。例如,RAS可被断言为指定数据将被读/写的行,而CAS可被
断言为指定数据将被读/写的列。在一些变体中,R/W命令信号确定数据端子240的内容是否
被写入存储器单元220或从中读取。
时,可以向数据端子240提供写入数据命令。可通过输入/输出电路224和读取/写入放大器
222将写入数据命令提供到给定存储器单元阵列220且写入到由行地址和列地址指定的存
储器单元中。根据一些实施方案,输入/输出电路224可以包含输入缓冲器。
钟输入电路210。时钟输入电路210接收外部时钟信号并调节时钟信号以确保所得内部时钟
信号具有足够的幅度和/或频率以用于随后的锁定环路操作。经调节的内部时钟信号被提
供给为内部存储器逻辑提供稳定时钟的反馈机构(内部时钟生成器212)。内部时钟产生逻
辑212的常见实例包含但不限于:数字或模拟锁相环路(PLL)、延迟锁定环路(DLL)和/或频
率锁定环路(FLL)操作。
这个外部时钟可用于时钟输入写入数据,并且时钟输出数据读取。在这种变体中,IO电路
224向每个相应的逻辑块(例如,地址输入电路202、地址解码器204、命令输入电路206、命令
解码器208等)提供时钟信号。
由IO电路224产生的电源噪声不会传播到其它电路块。这些电源电势通过内部电源电路230
调节。例如,内部电源电路230可以产生各种内部电势,例如去除噪声和/或寄生活动,以及
从电源电势提供的升压或降压电势。内部电势可用于例如地址电路(202,204)、命令电路
(206,208)、行和列解码器(216,218)、RW放大器222和/或任何各种其它电路块。
装置200的温度可能影响一些存储器操作。
结构和/或矩阵乘法单元(MMU),这里将更详细地描述。换句话说,配置寄存器可使存储器阵
列内的存储器单元架构能够动态地改变例如其结构、操作和功能性。在给定本公开的内容
的情况下,这些和其它变化对于本领域普通技术人员是显而易见的。
组成,其耦合到字线304和位线306。在第一配置300中,存储器阵列电路经配置以作为行解
码器316、列解码器318和存储器单元阵列320操作。在第二配置350中,矩阵结构电路经配置
以作为行驱动器317、矩阵乘法单元(MMU)319和模拟纵横结构(矩阵结构)321操作。在一个
示范性实施例中,查找表(LUT)和相关联的逻辑315可用于存储和配置不同的矩阵乘法单元
系数值。
所述电介质固态材料有时被称为“忆阻器”。当前的ReRAM技术可以在二维(2D)层或三维
(3D)层堆叠内实现;然而,在未来的迭代中可以使用更高阶的维度。纵横ReRAM技术的互补
金属氧化物半导体(CMOS)兼容性可以使得逻辑(数据处理)和存储器(存储)能够集成在单
个芯片内。在其它可能的配置中,纵横ReRAM阵列可以以一个晶体管/一个电阻器(1T1R)配
置和/或一个晶体管驱动n个电阻式存储器单元(1TNR)的配置形成。
NiO、TiO2等);钙钛矿(例如Sr(ZR)TrO3、PCMO等);固态电解质(例如,GeS、GeSe、SiOx、Cu2S
等);有机电荷转移络合物(例如,Cu四氰基对醌二甲烷(TCNQ)等);有机电荷受体体系(例
如,Al氨基-二氰基咪唑(AIDCN)等);和/或2D(分层)绝缘材料(例如,六边形BN等);以及用
于电阻转变的其它可能的系统。
可以响应于向第一端子(连接到字线304)和第二端子(连接到位线306)施加不同极性的电
流而形成或破坏导电细丝。在两个端子之间存在或不存在导电细丝改变了端子之间的电
导。虽然本操作是在电阻元件的上下文中给出的,但是相关领域的普通技术人员将容易理
解,这里描述的原理可以在以可变阻抗(例如,电阻和/或电抗)为特征的任何电路中实现。
可变阻抗可以由各种线性和/或非线性元件(例如,电阻器、电容器、电感器、二极管、晶体
管、晶闸管等)实现。
器“写入”。行解码器316可以选择性地驱动各个行端子,以便选择存储器阵列电路320的特
定行。列解码器318可以选择性地感测/驱动各个列端子,以便“读取”和/或“写入”到由所选
择的行和列唯一标识的对应存储器单元(如图3中通过较粗的线宽和涂黑的单元元件强调
的)。如上所述,电流的施加导致在电介质固态材料内形成(或破坏)导电细丝。在这样一种
情况下,低电阻状态(接通状态)用于表示逻辑“1”,而高电阻状态(断开状态)用于表示逻辑
“0”。为了切换ReRAM单元,将具有特定极性、幅值和持续时间的第一电流施加到电介质固态
材料。随后,可通过向电阻元件施加第二电流并基于相应阻抗感测电阻元件是处于接通状
态还是断开状态来实现存储器“读取”。存储器读取可能是或可能不是破坏性的(例如,第二
电流可能足以或可能不足以形成或破坏导电细丝)。
元作为模拟纵横结构(矩阵结构)321来执行矩阵乘法运算。虽然图3的示范性实施方案对应
于2x4矩阵乘法单元(MMU),但是可以用等效的成功来替换其它变体。例如,可以实现任意大
尺寸(例如,3x3、4x4、8x8等)的矩阵(取决于由数模转换(DAC)308和模数(ADC)310组件实现
的精度)。
和)同时感测列端子中的每一者。值得注意的是,在第二配置350中,与矩阵乘法相关联的所
有行和列端子都是活动的(如图3中通过较粗的线宽和涂黑的单元元件所强调的)。换句话
说,ReRAM纵横结构(矩阵结构)321使用矩阵结构来执行“模拟计算”,所述“模拟计算”计算
向量-矩阵乘积(或标量-矩阵乘积、矩阵-矩阵乘积等)。
的影响。此外,向量-矩阵乘积计算同时对矩阵运算的所有行和所有列进行计算;换句话说,
向量-矩阵乘积计算在复杂度上不根据矩阵维数进行缩放。虽然制造约束(例如ADC/DAC粒
度、制造公差等)可限制单个矩阵结构可产生的精度和复杂性的量,但可将多个矩阵运算数
学地组合在一起以提供高得多的精度和复杂性。
说,算术逻辑单元312能够对矩阵结构321的输出进行复杂的数字操作。在模拟域由于实际
实施方案限制(例如制造成本等)而不能实现所需计算的情况下,可以使用这种能力。
法。在以下矩阵(M)和向量(a)的乘法中描述FFT蝶形运算(EQN.1):
将容易理解ALU启用的繁多的种类和/或能力。例如,ALU可提供算术运算(例如,加法、减法、
进位加法、借位减法、取反、递增、递减、传递等)、逐位运算(例如,AND、OR、XOR、补码)、移位
运算(例如,算术移位、逻辑移位、循环、进位循环等)以实现例如多精度算术、复数运算和/
或任何将MMU能力扩展到任何精度、大小和/或复杂性程度。
计算的上下文中的术语“模拟”是指使用物理信令现象的连续可变方面来执行计算的处理
逻辑,所述物理信令现象例如电、化学和/或机械量。本公开的各种实施例可将模拟输入和/
或输出信号表示为连续电信号。例如,电压电势可以具有不同的可能值(例如,最小电压
(0V)与最大电压(1.8V)之间的任何值等)。可以用数模转换器(DAC)、模数转换器(ADC)、算
术逻辑单元(ALU)和/或可变增益放大/衰减来执行将模拟计算与数字分量组合。
有被选择来设置特定电导的极性、幅值和持续时间的电流量将不同程度的阻抗(表示系数
值)写入每个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”)。
矩阵系数值。相关领域的普通技术人员将容易理解,某些存储器技术也可实现一次写入多
次使用操作。例如,即使形成(或破坏)ReRAM单元的导电细丝可能需要电流的特定持续时
间、幅值、极性和/或方向;存储器单元的后续使用可以重复多次(只要导电细丝在使用期限
内基本上不形成也不被破坏)。换句话说,相同矩阵结构321构造的后续使用可用于支付初
始构造时间。
用矩阵结构的非易失性来进一步改善功耗。具体地,不同于可以从非易失性存储器重新加
载矩阵系数值以用于后续处理的现有技术,即使在存储器装置断电时,示范性矩阵结构仍
可以存储矩阵系数值。在随后的唤醒中,可以直接使用矩阵结构。
作为两个这样的实例,快速傅立叶变换(EQN.5)以及离散余弦变换(DCT)(EQN.6)在下文再
现:
阵的大小已知,就可以先验地设置矩阵的值(使用例如EQN.6)。
7日申请的题为“形成于存储器单元阵列中的图像处理器(AN IMAGE PROCESSOR FORMED IN
AN ARRAY OF MEMORY CELLS)”的共同拥有和共同未决的第16/002,644号美国专利申请案
中所描述的,先前在上文并入,可以定义各种不同的矩阵系数值,以便实现例如缺陷校正、
色彩插值、白平衡、色彩调整、伽马亮度、对比度调整、色彩转换、下采样和/或其它图像信号
处理操作。
多径效应。本公开的各种实施例确定多径效应并用矩阵乘法对其进行校正。在一些情况下,
无线装置可基于已知信令的降级来计算独立的不同信道效应中的每一者。预期的参考信道
信号与实际的参考信道信号之间的差异可以用于确定其经历的噪声影响(例如,在特定频
率范围上的衰减、反射、散射和/或其它噪声影响)。在其它实施例中,可以指示无线装置使
用波束成形配置的预定“码本”。波束成形系数的码本可能不太精确,但由于其它原因(例
如,速度、简单性等)可能是优选的。
以不受处理器字大小的限制;因此,任何维度的矩阵系数值可以是同时可配置的(例如,
4x4、8x8、16x16等)。虽然本公开是在内部控制逻辑315的上下文中呈现的,但是外部实施方
案可以用等效的成功来替换。例如,在其它实施例中,逻辑包含内部存储器内嵌处理器
(PIM),其可以基于一系列读取和写入中的LUT值来设置矩阵系数值。在其它实例中,例如,
外部处理器可执行LUT和/或逻辑功能。
值(例如,Y、Cb或Cr值)表示为不同余弦函数的和。例如,图像可以被分解成8x8像素块,其中
块中的64个像素中的每一个用亮度(Y)和色度(Cb,Cr)的值来表示。可以对每个8x8块应用
DCT以获得该像素块的DCT频率系数的矩阵D。然后使用这个DCT频率系数矩阵来执行图像块
的实际压缩。注意,DCT可以类似地应用于其它大小的像素块(例如16x16像素块)。
矩阵,并且D表示像素块的DCT频率系数的矩阵。这个操作可以被分解为两个单独的矩阵-矩
阵乘法阶段/操作:第一操作(EQN.7)和第二次操作(EQN.8)。
技术人员在给出本公开时将理解的。并且如前所述,可以使用(一或多个)矩阵结构和(一或
多个)MMU来执行矩阵-向量乘法运算。
阵结构521被示为2x4单元阵列。然而,矩阵结构521表示大小为Nx2N的阵列,其中第一NxN矩
阵结构部分521A可以配置有矩阵T的正值,而第二NxN矩阵结构部分521B可以配置有矩阵T
的负值。
表示8x8像素块的像素值的8x8矩阵M执行DCT运算。
开的矩阵乘法运算,因为它们不面临传统方法的时间指数缩放问题。因此,根据本公开的各
方面,可以在合理的时间量内对非常大的像素块(例如,64x64像素)执行基于矩阵结构的
DCT运算。
需要使用EQN.6来计算,或预先存储在查找表(LUT)中。在一个实施例中,将通常使用的矩阵
大小(例如,8x8和16x16)的T值存储在LUT中。矩阵M的值表示像素块的个别像素的值(例如,
亮度值),并且可以存储在存储器阵列522中。
的DAC 508转换成模拟输入信号。然后这些转换的模拟输入信号用于同时驱动矩阵结构521
的所有行端子。矩阵结构结果被输出到MMU 519,所述MMU 519通过其ADC 510将结果转换为
数字值。然后数字值由MMU的算术逻辑单元(ALU)512使用以获得个别bcn向量的值(从
EQN.7A),所述向量表示B矩阵的列。如果需要,每个bcn向量的值可以临时存储在存储器阵列
522中,直到获得整个B矩阵。
行驱动器517,由DAC 508转换,并用于同时驱动矩阵结构521的所有行输入。然后,MMU 519
(包含ADC 510和ALU 512)用于获得drn向量,所述drn向量被存储在存储器阵列522中,直到
计算了D矩阵的所有值。因此,图5A的系统500可用于使用配置有DCT变换矩阵T的值的单个
Nx2N矩阵结构521来计算NxN矩阵M的DCT频率矩阵系数,通过首先经由矩阵结构521和MMU
519中运行一系列矩阵-向量运算以获得第一矩阵-矩阵乘积B,然后通过矩阵结构521和MMU
519运行一系列矩阵-向量运算以获得第二矩阵-矩阵积D。
多个矩阵结构521,所述矩阵结构521连接到其自己的行驱动器517和MMU 519。在一个变体
中,多个矩阵结构521包含例如纵横矩阵阵列的垂直堆叠,每个纵横矩阵阵列被配置为矩阵
结构521。在另一变体中,多个矩阵结构可以实现为设置在单个级上的矩阵阵列,或者甚至
是公共半导体管芯。
个矩阵结构521的输出。此外,可以使用公共行驱动器装置517(尽管使用离散组成的行驱动
器电路来独立地驱动每个矩阵结构521)。
可以同时执行。在所述设备的这个实施例中,控制逻辑515经配置以获取n个单独的向量mcn
并同时将所述向量馈送到n个个别行驱动器。每个个别行驱动器使用其mcn向量来同时驱动
其各自矩阵结构521的行端子。矩阵结构521和其各自的MMU 519将其个别向量bcn的值输出
到存储器阵列522。因此,矩阵B的个别列全部并行计算并同时存储在存储器阵列522中。类
似地,在DCT运算的第二阶段,矩阵D的所有行可以通过使用图5B的多矩阵结构系统550并行
执行EQN.8A的矩阵-向量乘法来获得。
解构,如给出本公开的普通技术人员所认识到的。
间,EQN.7B的矩阵-向量乘法可以使用图6A所示的电路600的第一部分(左)来实现。第一矩
阵结构621由控制逻辑615配置成保持M'矩阵的值(分成正M'矩阵621A和负M'矩阵621B)。M'
矩阵的值对应于特定图像块的像素值,是未知的或预先计算的,并且不存储在查找表(LUT)
中。相反,M'矩阵的值可以存储在装置的存储器阵列622中。控制逻辑615可以存取存储器阵
列622并使用存储在存储器阵列622中的M'值来配置第一矩阵结构621。
同时驱动第一矩阵结构621的行端子。向量值trn取决于矩阵T的大小并且可以提前存储在查
找表(LUT)中。第一矩阵结构621和第一MMU 619用于顺序地获得所有的brn向量(表示矩阵B
的行)。
器637中。DCT运算的第二阶段(EQN.8)可以使用存储器系统600的第二(右)部分来实现,包
含第二行驱动器637、第二矩阵结构641和第二MMU 639。
(EQN.7B)的个别向量输出被用作第二运算(EQN.8A)的个别向量输入。换句话说,不同于图
5A和5B中的实施例,在进行第二运算之前不需要在存储器阵列622中累加整个B矩阵的值。
第二矩阵结构641和第二MMU 639使用brn向量来获得drn向量并将所述drn向量存储在存储器
阵列622中,直到计算了D矩阵的所有值。因此,图6A的系统600可以用于使用两个连续的
Nx2N矩阵结构621和641来计算NxN矩阵M的DCT,而不必在DCT的第一和第二运算之间累加中
间乘积B。
行。矩阵B的所有行可以使用多个(例如,堆叠或公共级/管芯)第一行驱动器/第一矩阵结
构/第一MMU电路并行计算,如图6B所示。然后将brn向量输入到相应的第二行驱动器/第二矩
阵结构/第二MMU电路,使得使用EQN.8A并行计算D矩阵的所有行。D矩阵的所有个别行从第
二MMU 639获得并同时存储到存储器阵列622。因此,整个两级DCT运算可以大约两次通过矩
阵结构/MMU电路所花费的时间内执行。
制逻辑708、矩阵结构和相应的矩阵乘法单元(MMU)710以及存储器阵列712。
弦变换(DCT)系数(例如,“旋转因子”)。
有64个系数值,其包含在32点FFT中使用的所有32个系数,以及在16点FFT中使用的所有16
个系数,等等。
或其它图像信号处理操作。在LUT 706的又一个实施例中,LUT 706可以包含各种信道矩阵
码本,所述码本可以是预定义的和/或基于无线电信道测量根据经验确定的。
和/或矩阵值系数,在矩阵结构的每个存储器单元内形成/破坏具有不同电导率的导电细
丝。另外,控制逻辑708可以配置相应的MMU来执行矩阵结构的任何附加的算术和/或逻辑操
作。此外,控制逻辑708可以选择一或多个数字向量来驱动矩阵结构,并且选择一或多个数
字向量来存储MMU的逻辑输出。
行以生成一或多个结果(输出)的运算。操作数和结果都可以体现为数据结构。数据结构的
常见实例包含但不限于:标量、向量、数组、列表、记录、并集、对象、图、树和/或任何数量的
其它形式的数据。一些数据结构可以全部或部分地包含参考数据(“指向”其它数据的数
据)。参考数据结构的常见实例包含例如指针、索引和/或描述符。
多个数字向量的编码标识符。
的大小和特性,$input标识输入数字矩阵基地址,而$output标识输出数字矩阵基地址。在
另一个这样的实例中,DCT处理可以被分成几个不同的原子操作,例如(i)DCT8X8($
address),其将$address处的存储器阵列转换为8x8(64点)矩阵结构,(ii)ROWS8($input,$
output),其将$input处的8x8数字矩阵分解为8个单独的数字向量($output),以及(iii)
MULT($address,$input,$output),其将$input处的向量-矩阵乘积和$address处的矩阵结
构存储到$output。
醒以计算下一帧(例如,B帧)来对连续视频帧执行DCT视频处理。由于每个DCT矩阵运算是在
存储器内执行的,并且视频帧数据总是驻留在存储器中,所以存储器带宽负载被大大降低。
在其它实施例中,指令接口可以与I/O存储器接口多路复用(例如,共享相同的控制信令,以
及地址和/或数据总线,但处于不同的通信模式)。在其它实施例中,指令接口可以通过I/O
存储器接口虚拟可存取(例如,作为位于可通过I/O接口寻址的地址空间内的寄存器)。在给
定本公开的内容的情况下,可由本领域的普通技术人员替换其它变体。
用数据传送硬件(例如,直接存储器存取(DMA))。在一个示范性变体中,数据的数字向量可
以是任何维度,并且不受处理器字大小的限制。例如,操作数可以指定N位的操作数(例如,
2、4、8、16…等)。在其它实施例中,DMA逻辑708可以使用现有的存储器行/列总线接口对矩
阵结构710进行读/写。在其它实施例中,DMA逻辑708可以使用内部存储器接口内的现有地
址/数据和读/写控制信令来对矩阵结构710进行读/写。
征)和操作数(例如,数字向量a、b)的指令写入存储器704。
值加权。可能需要调整与矩阵结构相关联的数模(DAC)行驱动器和模数(ADC)感测放大器以
用于动态范围和/或放大。另外,一或多个MMU ALU组件可耦合到一或多个矩阵结构。
换,用于MMU ALU的后续逻辑操作。输出被写入输出操作数b。
换为矩阵结构。在指令行为中提供进一步的原子性程度可以实现各种相关的益处,包含例
如流水线设计和/或降低的指令集复杂性。
理器(AN IMAGE PROCESSOR FORMED IN AN ARRAY OF MEMORY CELLS)”的共同拥有和共同
未决的第16/002,644号美国专利申请案中所描述的,先前在上文并入,可以配置多个矩阵
结构和MMU处理元件,以便流水线化例如缺陷校正、色彩插值、白平衡、色彩调整、伽马亮度、
对比度调整、色彩转换、下采样和/或其它图像信号处理操作。每一个流水线级可以被配置
一次,并且重复地用于图像的每一个像素(或像素组)。例如,白平衡流水线级可以使用具有
针对白平衡设置的矩阵系数值的相同矩阵结构对数据的每个像素进行操作;色彩调整流水
线级可以使用具有针对色彩调节等设置的矩阵系数值的相同矩阵结构对数据的每个像素
进行操作。在另一个这样的实例中,8x8矩阵的DCT可以例如在两个阶段中被处理,每个阶段
包含例如使用相同的DCT变换矩阵T(如上所述)的八个原子MMU计算。
中使用的所有32个系数。因此,被配置用于64点操作的矩阵结构可以被重新用于32点操作,
其中在64点FFT矩阵结构的适当行上适当地应用32点输入操作数a。类似地,FFT旋转因子是
离散余弦变换(DCT)旋转因子的超集;因此,也可以使用FFT矩阵结构(适当地应用输入操作
数a)来计算DCT结果。
处理器(AP)。在其它这样的变体中,处理器是无线装置中常用的基带处理器(BB)。
持处理功能,例如任务调度、应用执行、输入和输出管理、存储器管理、安全性和外围设备存
取。
通常包含但不限于:物理层协议、数据链路层协议、媒体存取控制协议、网络和/或传输协议
等。
专用协处理器和共享存储器资源(诸如图形引擎或数字信号处理器(DSP))配对。这种处理
器的常见实例包含但不限于:图形处理单元(GPU)、视频处理单元(VPU)、张量处理单元
(TPU)、神经网络处理单元(NPU)、数字信号处理器(DSP)、图像信号处理器(ISP)。在其它实
施例中,存储器装置从专用集成电路(ASIC)或其它形式的处理逻辑(例如现场可编程门阵
列(FPGA)、可编程逻辑装置(PLD)、相机传感器、音频/视频处理器和/或媒体编解码器(例如
图像、视频、音频和/或其任何组合))接收指令。
构,但是给出本公开的内容的相关领域的普通技术人员将容易理解,在此描述的原理可以
广泛地扩展到其它技术和/或结构。例如,某些可编程逻辑结构(例如,通常用于现场可编程
门阵列(FPGA)和可编程逻辑装置(PLD))在能力和拓扑方面可以具有与存储器类似的特征。
类似地,某些处理器和/或其它存储器技术可以改变电阻、电容和/或电感;在这种情况下,
可以使用变化的阻抗特性来执行模拟计算。另外,虽然基于“纵横”的构造提供了很好地适
应于二维(2D)矩阵结构的物理结构,但是其它拓扑结构也可以很好地适应于更高阶的数学
运算(例如,经由三维(3D)存储器堆叠的矩阵-矩阵乘积等)。
例中,指令音节包含至少一个操作码和一或多个操作数。例如,可将指令解析成操作码、第
一源操作数和目的地操作数。指令分量的其它常见实例可包含但不限于第二源操作数(用
于二进制运算)、移位量、绝对/相对地址、寄存器(或对数据结构的其它参考)、立即数据结
构(即,在指令本身内提供的数据结构)、从属函数和/或分支/链接值(例如,取决于指令是
完成还是失败而被执行)。
内完成或不完成的指令。即使非原子指令可能在单个周期中完成,但所述指令必须被视为
非原子的以防止数据竞争条件。在由处理器指令(读或写)存取的数据可以在第一处理器指
令有机会完成之前由另一处理器指令存取的情况下,发生竞争条件;竞争条件可能不可预
测地导致数据读/写错误。换句话说,原子指令保证在不完整的状态下不能观察到数据。
如存储器阵列内的位置(例如,通过偏移、行、列)、大小(行数目、列数目和/或其它维度参
数)、粒度(例如,精度和/或灵敏度)来识别存储器阵列的所述部分。值得注意的是,原子指
令可以提供对存储器装置操作的非常精细的控制;在存储器装置操作可鉴于各种专用考虑
而优化的情况下,此可能是合乎需要的。
资源以便适应要求和/或约束。在一些情况下,存储器控制器可另外基于当前存储器使用、
存储器资源、控制器带宽和/或其它考虑来对指令进行优先级排序和/或取消优先级排序。
在存储器装置管理是不必要的,否则将使处理器负担的情况下,此类实施方案可能尤其有
用。
下,相关领域的普通技术人员还可以替换其它变体。这样的变体可以包含例如标量-矩阵乘
积、高阶矩阵乘积和/或包含例如线性移位、旋转、反射和平移的其它变换。
元素)、“满射”(第二域的每个元素在第一域中具有唯一元素)或“双射”(元素从第一域到第
二域的唯一一对一映射)。
范性实施例中,可以提前计算用于数学上定义的变换的矩阵系数值,并将其存储在查找表
(LUT)或其它数据结构中。例如,可以计算用于快速傅立叶变换(FFT)和/或DCT的旋转因子
并将其存储在LUT内。在其它实施例中,用于数学定义的变换的矩阵系数值可以由存储器控
制器在矩阵结构转换过程(或准备)期间计算。
或其它基于图论的应用。例如,无线网络可以使用预定天线加权矩阵的码本,以便用信号通
知最常用的波束成形配置。在其它实例中,某些类型的加密可以在不同的加密矩阵之间达
成一致和/或协商。在这样的实施例中,码本或矩阵系数值可以提前约定、以带外方式交换、
带内交换,或者甚至任意确定或协商。
它数学建模的环境影响。例如,多径无线电环境可以通过测量信道对例如参考信号的影响
来表征。所得的信道矩阵可用于对信号接收进行相长干涉(例如,提高信号强度),同时对干
扰进行相消干涉(例如,降低噪声)。类似地,可以评估具有偏斜色调的图像的整体色彩平
衡,并进行数学校正。在一些情况下,可以基于例如用户输入有意地使图像歪斜,以便赋予
图像美学“温暖”。
别采用一个、两个或N个输入数据结构的运算。在一些实施例中,二元和/或N元运算可以被
细分为一或多个一元矩阵原地运算符。如本文中所使用的,“原地”运算符是指将其结果存
储或转变为其自身状态(例如,其自身的矩阵系数值)的矩阵操作。例如,二元运算可以分解
为两(2)个一元运算;执行第一原地一元操作(结果被存储为“原地”)。此后,可以对矩阵结
构执行第二一元运算以产生二元结果(例如,乘法累加运算)。
成于存储器单元阵列中的图像处理器(AN IMAGE PROCESSOR FORMED IN AN ARRAY OF
MEMORY CELLS)”的共同拥有和共同未决的第16/002,644号美国专利申请案中所描述的,先
前在上文并入,配置多个矩阵结构和MMU处理元件,以便流水线化例如缺陷校正、色彩插值、
白平衡、色彩调整、伽马亮度、对比度调整、色彩转换、下采样等。流水线处理通常可以用最
少的矩阵结构资源产生非常高的吞吐量数据。相反,可以用单独的资源“并行”执行不相关
的运算。例如,对8x8矩阵执行的DCT运算的第一阶段可以用八个单独的矩阵结构来处理,如
关于图5B和6B所描述的。高度并行化的操作可以大大减少等待时间;然而,整体存储器结构
资源利用率可能非常高。
不需要仲裁,并且可以以非常高的速度(在某些情况下,以本地处理器速度)操作。在其它实
施例中,经由共享接口接收指令。
出、存储器配置、存储器内嵌处理器(PIM)通信、直接存储器存取和/或任何其它形式的阻塞
存储器存取。在一些变体中,共享接口可以包含一或多个排队和/或流水线机制。例如,一些
存储器技术可以实现流水线接口以便最大化存储器吞吐量。
些实施方案中,相机协处理器能够将其处理任务卸载到存储器装置的矩阵结构。例如,ISP
可以加速/卸载/并行化例如色彩插值、白平衡、色彩校正、色彩转换等。在其它实例中,基带
协处理器(BB)能够直接与存储器装置通信以例如通过网络接口读取/写入用于事务的数
据。BB处理器能够将例如FFT/IFFT、信道估计、波束成形计算和/或任何数量的其它联网任
务卸载到存储器装置的矩阵结构。类似地,视频和/或音频编解码器通常利用DCT/IDCT变
换,并且将受益于矩阵结构运算。在给定本公开的内容的情况下,相关领域的普通技术人员
将容易地认识到前述内容的变体。
如本公开中其它地方所述,可以使用多个矩阵-向量乘法来有效地执行DCT所需的矩阵-矩
阵乘法运算。类似地,如前所述,较高阶变换(例如,FFT1024)可以通过将较低阶组成变换
(例如,FFT512等)的多次迭代排队来实现。在又一实例中,对图像的ISP处理可以包含迭代
空间上的多次迭代(每次迭代可以预先排队)。在给定本公开的内容的情况下,相关领域的
普通技术人员可容易地用同样的成功替换其它排队方案。
代、256x256 FFT的十六(16)次迭代等)。在其它实例中,可以通过级联其它大小的DFT来实
现任意大小的N点DFT(例如,不是2的幂)。级联和/或链接的矩阵变换的其它实例可以用等
效的成功来替换,上述纯粹是说明性的。
些情况下,当处理器不活动时,处理器可对存储器供电(例如,当处理器处于低功率时保持
存储器活动)。即使在处理器休眠时,存储器的独立功率管理尤其可用于例如在存储器中执
行矩阵运算。例如,存储器可以接收要执行的多个指令;处理器可以转换到睡眠模式,直到
完成多个指令。其它实施方案可以使用ReRAM的非易失性特性来在存储器断电时保持存储
器内容;例如,某些视频和/或图像处理计算可以在不活动期间保持在ReRAM内。
单元在用输入向量驱动时产生输出向量和/或矩阵。在一个实施例中,矩阵结构可以与存储
器映射的一部分相关联。在一些这样的变体中,所述部分在其大小和/或位置方面是可配置
的。例如,可配置的存储器寄存器可以确定库是被配置为存储器还是矩阵结构。在其它变体
中,矩阵结构可以重复使用和/或甚至阻塞存储器接口操作。举例来说,存储器装置可允许
存储器接口可基于GPIO(例如,在一种配置中,存储器接口的引脚可在正常操作期间选择性
地作为ADDR/DATA操作,或在矩阵运算期间例如作为FFT16等操作)。
构是8x8矩阵结构,其已经用DCT的结构上定义的系数预先填充。在一些变体中,矩阵结构可
用特定符号(正、负)或特定基数(最高有效位、最低有效位或中间位)的系数预先填充。
和列指定来标识结构上定义的矩阵运算(例如,8x8、16x16、32x32、64x64、128x128、256x256
等)。尽管前述论述呈现在满秩矩阵运算的上下文中,亏矩阵运算符可用等效成功替换。例
如,矩阵运算可具有非对称列和/或行(例如,8x16、16x8等)。事实上,多个基于向量的运算
可被视为具有单个列的行或具有单个行的列(例如,8x1、1x8)。
估以确定是应在软件内还是专用矩阵结构内处理。例如,如果现有存储器和/或矩阵结构的
使用消耗了所有存储器装置资源,那么可能需要在软件内处理矩阵运算,而非通过矩阵结
构处理。在这种情况下,所述指令可能变回不完整(导致通过处理器指令进行传统矩阵运
算)。在另一个这种实例中,将暂时矩阵结构配置为处理简单的矩阵运算可能回报较少,使
得矩阵运算应该在软件内处理。
列的各部分。静态分配对于减少存储器管理开销和/或简化操作开销(损耗均衡等)是优选
的。在其它实施方案中,可动态地分配存储器阵列的各部分。例如,可能需要损耗均衡来确
保存储器的性能均匀地降级(而不是损耗高可用性区域)。其它变体可以静态地和/或动态
地分配不同的部分;例如,可以动态地和/或静态地分配存储器和/或矩阵结构部分的子集。
对矩阵结构部分进行损耗均衡可能需要整个矩阵结构整体移动(纵横结构不能分段移动)。
可替换地,可通过首先将矩阵结构分解为组成矩阵计算并将组成矩阵计算分散到其它位置
来执行矩阵结构部分的损耗平衡。更直接地,矩阵结构磨损均衡可间接受益于在其它矩阵
运算(例如,分解,级联,并行化等)中使用的“逻辑”矩阵操作。特别地,将矩阵结构分解为其
组成矩阵结构可以实现更好的损耗均衡管理,仅使用略微复杂的操作(例如,通过MMU的逻
辑组合的附加步骤)。
在一个变体中,数模转换包含根据矩阵系数值改变与存储器单元相关联的电导。另外,转换
可以包含重新配置列解码器以执行模拟解码。在一个变体中,列解码器经重新配置以感测
对应于一列变化电导单元的模拟信号,所述变化电导单元由变化信令的对应行驱动。列解
码器将模拟信号转换成数字值。虽然前述构造是以一种特定的行-列配置呈现的,但是其它
实施方案也可以用同样的成功替换。例如,列驱动器可以将数字值转换成模拟信号,而行解
码器可将模拟信号转换成数字值。在另一个这样的实例中,三维(3D)行-列-深度存储器可
以以任何置换(例如行驱动器/列解码器、行驱动器/深度解码器、列驱动器/深度解码器等)
和/或3D矩阵置换(例如行驱动器/列解码器驱动器/深度解码器)来实现2D矩阵。
DCT矩阵的值被计算为N的函数。实际上,各种不同的变换在这方面是类似的。例如,离散傅
立叶变换(DFT)和快速傅立叶变换(FFT)都使用结构上定义的系数。
(B)、亮度(Y)、色度红(Cr)、色度蓝(Cb)等的不同值)。在另一个这样的实例中,信道矩阵估
计和/或波束成形码本通常根据多输入多输出(MIMO)路径的数量来定义。例如,2x2 MIMO信
道具有相应的2x2信道矩阵和相应的2x2波束成形加权。在给定本公开的内容的情况下,相
关领域的普通技术人员可以替换对于矩阵运算有用的各种其它结构上定义的值和/或维
度。
运算和/或更高级的基数计算可能需要极其昂贵的制造公差级别。带符号的矩阵运算可以
被分成正的和负的矩阵运算(其稍后由本文中其它各处描述的矩阵乘法单元(MMU)求和)。
类似地,高基数矩阵运算可被分成例如最高有效位(MSB)部分、最低有效位(LSB)部分和/或
任何中间位(其可由前述MMU进行位移位和求和)。在给定本公开的内容的情况下,本领域的
普通技术人员将容易地认识到其它变体。
样的实例,8x8 DCT矩阵T具有结构上确定的维度(8x8)和结构上确定的值(例如,用EQN.6计
算)。DCT8X8指令可以导致8x8矩阵结构的配置,所述矩阵结构预先填充有相应的DCT8X8结
构上确定的值。作为另一个这样的实例,天线波束成形系数通常在码本内提前定义;无线网
络可以识别码本内的相应索引以配置天线波束成形。例如,MIMO码本可以标识4x4 MIMO系
统的可能配置;在操作期间,可以基于其索引从码本中检索所选择的配置。
的粒度。类似地,如前所述,各种处理的考虑可能有利于(或反对)在矩阵结构内进行矩阵运
算。另外,矩阵运算可影响其它存储器的考虑,包含但不限于:损耗均衡、存储器带宽、存储
器内过程带宽、功率消耗、行和列和/或深度解码复杂度等。在给出本公开的内容的情况下,
相关领域的普通技术人员可以替换各种其它考虑,上述内容仅仅是说明性的。
可以级联在一起以实现更复杂的矩阵运算。在一个示范性实施例中,第一矩阵用于计算矩
阵运算的正积,而第二矩阵用于计算矩阵运算的负积。可以在MMU内编译所得的正积和负
积,以提供带符号的矩阵乘法。在一个示范性实施例中,第一矩阵用于计算矩阵运算的第一
基数部分,而第二矩阵用于计算矩阵运算的第二基数部分。所得的基数部分可以在MMU内被
位移位和/或求和,以提供更大的基数乘积。
阵分解等)来操纵数字值;不能以这种方式操纵模拟电压或电流。
可以以行和/或列扩展,以创建较大维度(但相同秩)的有缺陷矩阵。这种逻辑可用于实现许
多高阶矩阵运算。例如,如本公开中其它各处所解释的,将两个矩阵相乘在一起可以被分解
为多个向量-矩阵乘法。这些向量-矩阵乘法可进一步实施为矩阵乘法单元(MMU)内的乘法
累加逻辑。换句话说,甚至非一元运算也可以作为一系列分段一元矩阵运算来处理。更一般
地,相关领域的普通技术人员将容易理解,可以整体或部分地表示为一元运算的任何矩阵
操作可以大大受益于本文中所描述的各种原理。
以同时使用;因此,根据当前的处理和/或存储器使用,矩阵结构可以选择性地连接到MMU。
例如,单个MMU可以动态地连接到不同的矩阵结构。
评估以确定是否可以使MMU负载很高。值得注意的是,MMU主要用于逻辑操作,因此具有等效
逻辑功能的任何处理实体可以帮助MMU的任务。例如,存储器内嵌处理器(PIM)可以卸载MMU
操作。类似地,矩阵结构结果可以直接提供给主处理器(其可以在软件中执行逻辑操作)。
另一个时隙期间分配给第二矩阵结构。换句话说,不同于矩阵结构的物理结构(其被静态地
分配达矩阵运算的持续时间),MMU执行可以以任何数量的方式被调度、细分、分配、保留和/
或划分的逻辑运算。更一般地,矩阵结构的各种实施例基于存储器和非易失性。结果,矩阵
结构可以预先配置,并在需要时读取;非易失性特性确保即使例如存储器设备断电,矩阵结
构仍保持内容而不需要处理开销。
算逻辑结果。在一个实施例中,通过矩阵结构将一或多个操作数转换成用于模拟计算的电
信号。模拟计算的结果是驱动电信号通过矩阵结构元件;例如,电压降是矩阵结构的系数的
函数。感测模拟计算结果并将其转换回数字域信号。此后,用一或多个矩阵乘法单元(MMU)
处理一或多个数字域值,以创建逻辑结果。
850,尽管这仅仅是示范性的。
的值的矩阵结构(被分成正T和负T矩阵值),如图5A所述。可通过存储器装置内的控制逻辑
从查找表(LUT)检索矩阵T的值。
架构。
骤在某些情况下可能是不必要的或可选的。另外,可以将某些步骤或功能添加到所公开的
实施例中,或者排列两个或两个以上步骤的执行顺序。此外,可以组合来自两种或两种以上
方法的特征。所有这些变化都被认为包含在本文公开和要求保护的公开内容内。
不是“优选的”或“优于其它实例”。详细描述包含提供对所描述技术的理解的特定细节。然
而,可在没有这些特定细节的情况下实践这些技术。在一些例子中,以框图形式示出了众所
周知的结构和装置以避免使所描述实例的概念模糊。
以贯穿上文描述所引用的数据、指令、命令、信息、信号、比特、符号和芯片。
形式和细节进行各种省略、替换和改变。此描述决不意味着是限制性的,而是应该被认为是
对本公开的一般原理的说明。本公开的范围应当参考权利要求书来确定。
包含但不限于商业可行性、实用性、甚至可用性(即,人不能以任何可行的方式简单地执行
某些步骤/过程),需要计算机化的设备和方法来完全实现这些方面。
算机可读媒体上或通过所述计算机可读设备(例如,存储媒体)传送。计算机可读媒体包含
非暂时性计算机存储媒体和通信媒体,通信媒体包含促进计算机程序从一个地方传送到另
一个地方的任何媒体。非暂时存储媒体可以是能够由通用或专用计算机存取的任何可用媒
体。此外,任何连接被适当地称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双
绞线、数字用户线(DSL)或诸如红外、无线电和微波的无线技术从网站、服务器或其它远程
源传送软件,则同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或诸如红外、无线电和微波
的无线技术被包含在媒体的定义中。如本文中所使用的盘和光盘包含CD、激光盘、光盘、数
字通用盘(DVD)、软盘和蓝光盘,其中盘通常磁性地再现数据,而光盘通过激光光学地再现
数据。上述内容的组合也被包含在计算机可读媒体的范围内。