存储器校准设备、系统和方法与流程

文档序号:26053961发布日期:2021-07-27 15:30阅读:113来源:国知局
存储器校准设备、系统和方法与流程

本公开大体上涉及一种存储器阵列,诸如在学习/推理机(例如人工神经网络(ann))中使用的存储器阵列。



背景技术:

处理核心以及包括处理核心的设备和系统(诸如处理器、移动电话、平板式计算机、膝上型计算机、台式计算机、嵌入式处理系统等)通常可以包括一个或多个存储器,诸如高速缓存存储器、主存储器、辅助存储器等。可以例如使用可以是易失性或非易失性的一个或多个随机存取存储器(ram)来实施存储器。可以将ram组织成对应于存储器中的数据地址的行和列。感测电路(诸如感测放大器)可以用于读取存储器阵列的单元、列或行。

一些应用可以采用大量存储器。例如,各种计算机视觉、语音识别和信号处理应用受益于学习/推理机的使用,该学习/推理机可以快速地执行数百个、数千个甚至数百万个并发操作,并且可以因此采用大量存储器。学习/推理机(如本公开中所讨论的)可以属于机器学习、人工智能、神经网络、概率推理引擎、加速器等的技术名称。常规学习/推理机可以传递数百个浮点计算(即,每秒一万亿(1012)次浮点计算)的计算能力。

此类学习/推理机可以包括或以其他方式利用深度卷积神经网络(dcnn)。dcnn是一种基于计算机的工具,其通过合并数据内的近端相关的特征来处理大量数据并且自适应地“学习”,对数据进行广泛预测,并且基于可靠结论和新合并对预测进行改进。dcnn布置成多个“层”,并且在每个层处进行不同类型的预测。

例如,如果提供了多个面部的二维图片作为dcnn的输入,那么dcnn将学习面部的各种特点,诸如边缘、曲线、角度、点、颜色对比、亮点、暗点等。在dcnn的一个或多个第一层处学习这些一个或多个特征。然后,在一个或多个第二层中,dcnn将学习面部的各种可识别特征,诸如眼睛、眉毛、前额、头发、鼻子、嘴巴、脸颊等;各种可识别特征中的每个可识别特征都可以与所有其他特征区分开。也就是说,dcnn学习识别并且区分眼睛与眉毛或任何其他面部特征。在一个或多个第三层以及接着的后续层中,dcnn学习整个面部和更高阶特点,诸如种族、性别、年龄、情绪状态等。在一些情况下,dcnn甚至被教导识别人员的特定身份。例如,可以将随机图像标识为面部,并且可以将面部识别为人员a(person_a)、人员b(person_b)或一些其他身份。

在其他示例中,可以为dcnn提供动物的多个图片,并且dcnn可以被教导标识狮子、老虎和熊;可以为dcnn提供汽车的多个图片,并且dcnn可以被教导标识和区分不同类型的车辆;以及,也可以形成许多其他dcnn。dcnn可以用于学习在语句中的字词模式、标识音乐、分析个人购物模式、玩视频游戏、创建交通路线,并且dcnn也可以用于许多其他基于学习的任务。



技术实现要素:

一种存储器校准系统可以被概括为包括:存储器阵列,包括多个存储器单元;第一感测电路,被耦合至存储器阵列;以及校准电路装置,在操作中将测试数据模式应用于存储器阵列,基于由第一感测电路响应于将测试数据模式应用于存储器阵列而提供的输出,来生成校准信息;以及以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内。在操作中并且在以分布式方式存储所生成的校准信息之后,第一感测电路可以被配置为将所生成的校准信息的至少一部分与被存储在多个存储器单元中的一个或多个数据值组合,以作为对一个或多个所存储的数据值进行的一个或多个操作的部分。多个存储器单元可以被布置成使得存储器单元的一个或多个子集在操作中形成针对在存储器内计算的一个或多个对应存储器内计算集群。

一种用于存储器阵列校准的方法可以被概括为:将测试数据模式应用于具有多个存储器单元的存储器阵列;基于应用测试数据模式来生成校准信息,使得生成校准信息可以包括:分析由被耦合至多个存储器单元的感测电路响应于应用测试数据模式而提供的输出;以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内;以及在以分布式方式存储所生成的校准信息之后,并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的部分,将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合。多个存储器单元可以被布置成使得多个存储器单元的一个或多个子集在操作中形成针对存储器内计算的一个或多个对应存储器内计算集群。

一种计算设备可以被概括为包括:用于将测试数据模式应用于存储器阵列的装置,使得存储器阵列可以包括多个存储器单元;用于基于响应于应用测试数据模式而提供的输出来生成校准信息的装置;用于以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内的装置;以及,用于在以分布式方式存储所生成的校准信息之后、并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的部分将所生成的校准信息的一部分与一个或多个所存储的数据值组合的装置。多个存储器单元可以被布置成使得多个存储器单元的一个或多个子集在操作中形成针对存储器内计算的一个或多个对应存储器内计算集群。

一种非暂时性计算机可读介质,可以被概括为:具有内容,该内容使存储器校准电路装置执行动作,动作包括:将测试数据模式应用于具有多个存储器单元的存储器阵列;基于应用测试数据模式来生成校准信息,使得生成校准信息可以包括:分析由被耦合至多个存储器单元的感测电路响应于应用测试数据模式而提供的输出;以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内;以及在以分布式方式存储所生成的校准信息之后、并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的一部分,将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合。多个存储器单元可以被布置成使得存储器单元的一个或多个子集在操作中形成针对存储器内计算的一个或多个对应存储器内计算集群。

一种系统可以被概括为包括:存储器阵列,具有被布置为与多列单元相交的多行单元的第一多个单元;多个第一计算电路,其中每个第一计算电路在操作中根据第一多个单元中的对应列单元中的单元值来计算计算值;第一列复用器,该第一列复用器在操作中循环通过多条数据线,多条数据线各自对应于多个第一计算电路中的第一计算电路;第一感测电路,该第一感测电路在操作中经由第一列复用器从多个第一计算电路获得计算值,并且通过所确定的复用器的数目,循环组合所获得的计算值;以及集群循环管理电路装置,该集群循环管理电路装置在操作中基于存储计算集群的数据的列数来确定所确定复用器循环的数目。所确定的复用器循环的数目可以少于第一列复用器的多条物理数据线。

计算值可以是对应列中的单元值的部分总和,并且第一感测电路在操作中在第一列复用器的第一循环集合期间经由多条数据线的第一集合从所获得的部分总和计算第一总和,以及第一感测电路在操作中在第一列复用器的第二循环集合期间经由多条数据线中的第二集合从所获得的部分总和计算第二总和,其中第一循环集合和第二循环集合具有所确定复用器循环的数目。第一列复用器在操作中可以循环通过第二多条数据线,该第二多条数据线各自对应于多个第二计算电路中的相应第二计算电路,其中每个第二计算电路根据第二多个单元中的对应列单元中的单元值计算部分和。用于第一列复用器的第二多条数据线可以由第二列复用器提供。

该系统可以包括:多个第二计算电路,其中每个第二计算电路在操作中根据存储器阵列的第二多个单元中的对应列单元中的单元值计算计算值;第二列复用器,该第二列复用器在操作中循环通过多条数据线,该多条数据线各自对应于多个第二计算电路中的第二计算电路;以及第二感测电路,在第二列复用器循环通过多条数据线并且通过所确定复用器的数目循环组合所获得的计算值时,该第二感测电路在操作中经由第二列复用器从多个第二计算电路获得计算值。

集群循环管理电路装置,在操作中可以响应于时钟信号而生成多个控制信号,并且可以将多个控制信号提供给第一感测电路和第一列复用器,以在针对第一感测电路的所确定的复用器循环数目,来循环通过多条数据线,以便从对应第一计算电路获得计算值。第一列复用器,在操作中可以修改第一列复用器的多条数据线中的每条数据线的地址,以将连续的多个数据写入第一多个单元。该系统可以包括数据线选择电路装置,该数据线选择电路装置在操作中通过第一列复用器的多条数据线选择不同循环顺序,以将连续的多个数据写入第一多个单元。

一种方法可以被概括为包括:将数据存储在多个存储器单元中,多个存储器单元被布置为与多列单元相交的多行单元;根据来自多列单元的单元值计算多个计算值,其中每个相应计算值是根据来自相应列单元的单元值计算的;确定存储数据计算集群的数据的多列单元中的列数;基于所确定的列数来选择多个复用器循环;通过采用列复用器针对所选择的复用器循环数目,循环通过多个计算值的第一子集、并且通过采用感测引擎组合来自计算值的第一子集的相应计算值,来生成数据计算集群的结果;以及输出数据计算集群的结果。

该方法可以包括:通过采用第二列复用器针对所选择的复用器循环数目,循环通过多个计算值的第二子集、并且通过采用第二感测引擎组合来自计算值的第二子集的相应计算值,来生成数据计算集群的第二结果;以及输出数据计算集群的第二结果。该方法可以包括:通过采用列复用器针对所选择的复用器循环数目,循环通过多个计算值的第二子集、并且通过采用感测引擎组合来自计算值的第二子集的相应计算值,来生成数据计算集群的第二结果;以及输出数据计算集群的第二结果。

该方法可以包括:基于针对数据计算集群的所选择的复用器循环数目,来修改由列复用器利用的数据线的数目。该方法可以包括:响应于非存储器时钟信号而发起列复用器,以针对所选择的复用器循环数目,循环通过计算值的第一子集;以及,响应于存储器时钟信号而针对所选择的复用器循环数目,针对列复用器的每条数据线发起每个循环,以获得计算值的第一子集。该方法可以包括:修改列复用器的多条数据线中的每条数据线的地址,以将连续的多个数据写入第一多个单元。该方法可以包括:针对列复用器选择不同循环顺序以循环通过多列单元,以便将连续的多个数据写入多个单元。

一种计算设备可以被概括为包括:用于将数据存储在被配置为与多列单元相交的多行单元的多个单元中的装置;用于根据来自多列单元中的每个相应列的单元值,计算相应计算值的装置;用于基于存储用于数据计算集群的数据的多列单元中的列数,来确定计算集群循环大小的装置;用于循环通过针对所确定的计算集群循环大小的相应计算值的装置;以及用于组合相应计算值以针对所确定的计算集群循环大小生成数据计算集群的结果的装置。

该计算设备可以包括:用于针对所确定的计算集群循环大小发起循环通过相应计算值的装置;以及用于针对所确定的计算集群循环大小的每个相应计算值发起每个循环的装置。计算设备可以包括:用于修改将数据存储在多列单元中的顺序,以便将连续的多个数据写入多个单元的装置。

一种具有内容的非暂时性计算机可读介质,该内容使集群循环管理电路装置执行动作,该动作可以被概括为包括:将数据存储在多个存储器单元中,多个存储器单元被布置为与多列单元相交的多行单元;确定存储用于计算操作的数据的多列单元中的列数;基于所确定的列数来选择多个复用器循环;通过采用列复用器针对所选择的复用器循环数目,循环通过多列单元的第一子集、并且通过采用感测引擎组合来自多列单元的第一子集的值,来生成数据计算操作的结果;以及输出计算操作的结果。

附图说明

参考以下图式描述了非限制性且非穷举性的实施例,其中除非另有说明,否则贯穿各种视图,相同标记表示相同部分。图式中的元件的大小和相对位置并不一定按比例绘制。例如,选择、放大和定位各种元件的形状以提供图式易读性。为了便于在图式中识别,已经选择了如所绘制的元件的特定形状。而且,为了便于说明,在图式中尚未图示本领域的技术人员已知的一些元件。在下文中参考附图描述了一个或多个实施例,在附图中:

图1是根据实施例的具有处理核心和存储器的电子设备或系统的实施例的功能框图;

图2a至图2d图示了具有可配置的复用器和感测电路的存储器阵列的用例背景示图;

图3a至图3d图示了使用自移位复用器将多个数据连续地写入存储器阵列的用例背景示图;

图4a至图4d图示了使用预解码移位将多个数据连续地写入存储器阵列的用例背景示图;

图5图示了大体上示出了用于使用如图2a至图2c中所图示的可配置的复用器和感测电路,从存储器阵列读取数据的过程的一个实施例的逻辑流程图;

图6图示了大体上示出了用于采用复用器的过程的一个实施例的逻辑流程图,该复用器修改数据线地址以便将多个数据连续地写入如图3a至图3d中所图示的存储器阵列;

图7图示了大体上示出了用于采用预解码移位以便将多个数据连续地写入如图4a至图4d中所图示的存储器阵列的过程的一个实施例的逻辑流程图;以及

图8图示了大体上示出了用于利用第一时钟来发起对存储器阵列的复用器读取和写入、并且利用第二时钟来发起复用器读取和写入的每个循环的过程的一个实施例的逻辑流程图。

图9图示了大体上示出了根据本文中所描述的技术的用于存储器阵列校准的过程的一个实施例的逻辑流程图。

具体实施方式

以下描述以及附图阐述了某些特定细节,以便提供对各种所公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,在没有这些特定细节中的一个或多个特定细节的情况下或在具有其他方法、组件、设备、材料等的情况下可以以各种组合来实践所公开的实施例。在其他情况下,为了避免不必要的混淆对实施例的描述,尚未示出或描述计算中的存储器环境中的与本公开的环境相关联的熟知结构或组件,包括但不限于接口、电源、物理组件布局等。附加地,各种实施例可以是方法、系统或设备。

在整个说明书、权利要求书和附图中,除非背景另外明确指出,否则以下术语采取本文中明确关联的含义。术语“本文中”是指与本申请相关联的说明书、权利要求书和图式。短语“在一个实施例中”、“在另一实施例中”、“在各种实施例中”、“在一些实施例中”、“在其他实施例中”及其其他变型是指本公开的一个或多个特征、结构、功能、限制或特点,且除非背景另外明确指出,否则不限于相同或不同的实施例。如本文中所使用,术语“或”是包含性“或”计算符,并且等效于短语“a或b或两者”或“a或b或c或其任何组合”,且具有附加元件的列表被类似地看待。术语“基于”不是排他性的,并且除非背景另有明确指出,否则允许基于未描述的附加特征、功能、方面或限制。此外,在整个说明书中,“一”、“一个”和“该”的含义包括单数参考和复数参考。

由dcnn或其他神经网络执行的计算通常包括对大量数据的重复计算。例如,许多学习/推理机将已知信息或内核与未知数据或特征向量进行比较,诸如将已知像素分组与图像的一部分进行比较。一种类型的常见比较是内核与特征向量之间的点积。然而,内核大小、特征大小和深度往往在神经网络的不同层之间变化。在一些情况下,可以使用专用计算单元通过变化的数据集来实现这些操作。然而,由于变化的数据集,存储器利用率可能无法完全优化。例如,可以通过选择连接至一条计算线的所有元素来启用小摆幅计算,而大计算集群可以利用多条计算线上的大量元素,这可以导致存储器的不良纵横比利用率。此外,此类变型可以导致由于有限电压余量而造成的准确度损失。

图1是可以应用将要被描述的实施例的类型的电子设备或系统100的实施例的功能框图。系统100包括一个或多个处理核心或电路102。处理核心102可以包括例如:一个或多个处理器、状态机、微处理器、可编程逻辑电路、离散电路装置、逻辑门、寄存器等,及其各种组合。处理核心可以控制系统100的整体操作、由系统100对应用程序的执行等。

系统100包括一个或多个存储器(诸如一个或多个易失性和/或非易失性存储器),该存储器可以存储例如与系统100的控制、由系统100执行的应用和操作等相关的所有或部分指令和数据。如所图示的,系统100包括一个或多个高速缓存存储器104、一个或多个主存储器106和一个或多个辅助存储器108。存储器104、106、108中的一个或多个存储器包括存储器阵列(参见例如图2a至图2c的存储器阵列202、图3a至图3d中的存储器阵列302或图4a至图4d中的存储器阵列402),该存储器阵列在操作中被由系统100执行的一个或多个过程共享。

系统100可以包括:一个或多个传感器120(例如图像传感器、音频传感器、加速度计、压力传感器、温度传感器等)、一个或多个接口130(例如无线通信接口、有线通信接口等)和其他电路150(其可以包括天线、电源、一个或多个内置自测试(bist)电路等)以及主总线系统170。主总线系统170可以包括耦合至系统100的各种组件的一个或多个数据、地址、功率和/或控制总线。系统100还可以包括附加总线系统,诸如总线系统162(其可以通信地耦合高速缓存存储器104和处理核心102)、总线系统164(其通信地耦合高速缓存存储器104和主存储器106)、总线系统166(其通信地耦合主存储器106和处理核心102)以及总线系统168(其通信地耦合主存储器106和辅助存储器108)。

系统100还包括:校准控制电路装置140,该校准控制电路装置在操作中控制感测放大器校准信息(诸如偏移信息)的生成和存储,可以通过由系统100使用该感测放大器校准信息来补偿感测放大器偏移。感测电路(诸如感测放大器)可以用于读取存储器阵列的单元或列。(参见例如图2a的感测电路210)。然而,此类感测电路可以具有输入偏移,该输入偏移可以基于操作条件、电路的老化和其他因素而改变。在小摆幅模拟计算(诸如由存储器内计算sram存储器单元采用的小摆幅模拟计算)中以及各种其他存储器操作中,感测放大器偏移可以影响从单独存储器单元或从在存储器阵列内的那些存储器单元的子集读取到的数据的准确度。因此,在某些实施例中,可以采用诸如校准电路装置140的电路装置和相关技术,以便补偿各种感测电路输入偏移。

在某些实施例中,校准控制电路装置140可以将测试数据模式应用于包括多个此类存储器单元的所提供的存储器阵列的所选择的一个或多个存储器单元。在某些实施例中,校准控制电路装置可以从存储装置(诸如高速缓存存储器104、主存储器106、辅助存储器108或其他外部存储器(未示出)中的一者)取回定义的测试数据模式。在其他实施例中,校准控制电路装置140可以在将测试数据模式应用于一个或多个存储器单元之前生成测试数据模式。

在将测试数据模式应用于所选择的存储器单元之后,耦合至存储器阵列的感测电路响应于从一个或多个存储器单元读取与测试数据模式相关联的值而提供输出。鉴于来自应用测试数据模式的期望的结果,校准控制电路装置140通过分析感测电路的所提供的放电输出,来生成校准信息。在至少一些实施例中,所生成的校准信息包括针对应用了测试数据模式的所选择的存储器单元的所估计的感测放大器偏移数据。

在一个实施例中,校准控制电路装置140然后以分布式方式将所生成的校准信息存储在包括所选择的存储器单元的存储器阵列内。例如,如果所选择的存储器单元包括一个或多个存储器内计算集群,那么校准控制电路装置可以将所生成的校准信息(例如偏移数据)存储在计算集群的存储器单元中,诸如用于在对数据值进行的未来操作期间使用,数据值存储和操作在那些一个或多个计算集群中。在不利用存储器内计算集群的一个或多个实施例中,可以以各种分布式方式存储这样的校准信息。例如,为此,可以诸如通过指定存储器阵列的一个或多个区域(例如一个或多个行或列)来将校准信息存储在存储器阵列的一个或多个区域中,存储器阵列的一个或多个区域对应于耦合到感测电路的存储器单元,该校准信息基于该感测电路的那些存储器单元。

在某些实施例中,在校准信息的分布式存储之后,相对于存储在所选择的存储器单元中的数据值可以发起一个或多个操作。例如,可以接收时钟输入信号,并且从而发起一个或多个电路以组合存储在形成单个存储器内计算集群的存储器阵列的一列或多列中的数据值。取决于存储配置信息的特定分布式方式,可以以如下方式执行用以组合所选择的数据值的操作:使得同样通过电路对配置信息的一个或多个部分(例如与存储所选择的数据值的存储器单元相关联和/或接近于该存储器单元的那些部分)进行操作(例如求和或以其他方式组合)。

在实施例中,可以在各种时间或响应于各种准则来执行所描述的存储器阵列校准。作为非限制性示例,可以在初始系统通电(诸如以补偿与老化相关的影响、改变的操作条件或其他可变情况)时;间歇地,诸如以一个或多个预定义间隔或其他间隔;响应于明确请求;在存储器重新配置时(诸如在将存储器阵列的一个或多个部分配置为一个或多个存储器内计算集群时或其他重新配置时);或在一些其他事件时执行存储器校准。

系统100还包括集群循环管理电路装置160,该集群循环管理电路装置在操作中采用一个或多个存储器管理例程来利用可配置的复用器和感测电路,以从存储器104、106或108读取数据(参见例如图2a至图2c)或将数据动态地写入共享存储器阵列的存储器中(参见例如图3a至图3d和图4a至图4d)。存储器管理电路装置160可以单独地或与其他处理电路装置(诸如处理核心102)组合地执行本文中所描述的例程和功能性,包括分别在图5至图8中的过程500至800。集群循环管理电路160可以在从存储器(诸如高速缓存存储器104、主存储器106和/或辅助存储器108)读取数据时采用所存储的感测放大器偏移信息。集群循环管理电路装置160可以包括(作为非限制性示例):一个或多个处理器、状态机、微处理器、可编程逻辑电路、离散电路装置、逻辑门、寄存器等及其各种组合。

一个或多个主存储器106通常是系统100的工作存储器(例如处理核心102在其上工作的一个或多个存储器),并且通常可以是有限大小的易失性存储器,该易失性存储器存储与由系统100执行的过程相关的代码和数据。为了方便起见,本文中对存储在存储器中的数据的引用也可以指存储在存储器中的代码。辅助存储器108通常可以是非易失性存储器,该非易失性存储器存储指令和数据,该指令和数据可以在由系统100需要时被获取并且存储在主存储器106中。与辅助存储器108相比,高速缓存存储器104可以是相对较快的存储器,并且通常具有有限大小,该大小可以大于主存储器106的大小。

高速缓存存储器104临时存储代码和数据以供系统100稍后使用。代替从辅助存储器108获取所需的代码或数据以便存储在主存储器106中,系统100可以首先检查高速缓存存储器104以查看是否已经将数据或代码存储在高速缓存存储器104中。高速缓存存储器104可以通过减少获取数据和代码以供系统100使用所需的时间和其他资源,来显著地提高系统(例如系统100)的性能。当(例如从辅助存储器108)获取代码和数据以供系统100使用时,或当数据或代码被写入(例如写入主存储器106或辅助存储器108)时,可以将数据或代码的副本存储在高速缓存存储器104中以供系统100稍后使用。可以采用各种高速缓存管理例程来控制存储在一个或多个高速缓存存储器104中的数据。

图2a至图2d图示了具有可配置的复用器和用于从存储器阵列读取数据的感测电路的存储器阵列的用例背景示图。在图2a中的系统200a包括存储器阵列202、多个计算电路、如所图示的部分总和电路206、一列或多列复用器208a至208b以及一个或多个感测电路210a至210b。

如所图示的,存储器202包括配置成列-行布置的多个单元230,列-行布置具有与多列单元相交的多行单元。每个单元可以经由特定列和特定行来寻址。存储器阵列202中所图示的单元230的数目仅出于说明性目的,并且采用本文中所描述的实施例的系统可以在更多或更少的列和更多或更少的行中包括更多或更少的单元。用于访问特定存储器单元的功能性和组件的细节对于本领域的技术人员而言是已知的,且为了简洁起见在本文中不再加以描述。

存储器阵列202的每一列204a至204h与对应部分总和电路206电通信。每个部分总和电路206包括被配置为在操作中计算或确定来自该对应列中的每个单元230的单元值的总和的电路装置。例如,部分总和ps1是列204a中的单元230之总和,部分总和ps2是列204b中单元230之总和,依此类推。在一个实施例中,部分总和电路206可以是采样保持电路。

因为本文中所描述的实施例可以用于神经网络计算,所以可以在计算集群中处理数据。计算集群是对一组数据执行的多个计算。例如,计算集群可以包括在内核数据与特征向量数据之间的比较,诸如在预先选择的数目的像素上。在所图示的实施例中,将数据添加至存储器202,使得用于单个计算集群的所有数据与相同感测电路210a至210b相关联。例如,被标记为k1[a1]、k1[a2]、…、k1[n1]、k1[n2]、…、k1[p1]、k1[p2]、…、k1[x1]以及k1[x2]的数据用于第一计算集群并且被存储在列204a至204d中的单元230中。相反,被标记为k2[a1]、k2[a2]、…、k2[n1]、k2[n2]、…、k2[p1]、k2[p2]、…、k2[x1]以及k2[x2]的数据用于第二单独计算集群并且被存储在列204e至204h中的单元230中。以这种方式,由感测电路210a获得的结果用于一个计算集群,而由感测电路210b获得的结果用于另一计算集群。

每个复用器208a至208b包括多条数据线216以及输出218a至218b。在所图示的实施例中,每个复用器208a至208b包括四条物理数据线216。因此,复用器208a至208b被视为具有四个物理复用器循环。参考c1、c2、c3以及c4图示了数据线216。这些参考不是对沿着数据线216传递的值的指示,而是指特定时钟循环,在该特定时钟循环内,复用器208a至208b选择特定数据线,以将值从对应部分总和206传递到相应输出218a至218b。在其他实施例和配置中,复用器可以具有两条物理数据线、八条物理数据线或其他数目的物理数据线。而且,复用器208a至208b被图示为只读复用器,并且被配置成从存储器202读取数据。然而,在一些实施例中,复用器208a至208b可以是读/写复用器,并且被配置成将数据写入存储器202和从存储器202读取数据。

复用器208a至208b被配置为基于在完整的计算集群循环中的所选择的数目的循环,来循环通过数据线216。计算集群循环对应于与特定计算集群相关联的列。复用器208a至208b针对给定计算集群循环循环通过的数据线216的数目是基于计算集群循环大小确定的,该大小是在存储器202中针对给定计算集群存储的数据的列204的数目。集群循环大小与可用于每个复用器的物理数据线循环的数目无关。如上文所描述的且如图2a中所图示的,将针对第一计算集群的数据存储在四列(列204a至204d)中,并且将针对第二计算集群的数据存储在四个单独列(列204e至204h)中。在该示例中,计算集群大小是四个循环。

在各种实施例中,每个复用器208a至208b接收控制信号,该控制信号指示何时发起循环通过数据线216或何时循环到每条单独数据线216,或其组合。在所图示的实施例中,由复用器208a至208b接收到的控制信号包括例如各种时钟信号。例如,每个复用器208a至208b包括第一时钟输入228。第一时钟输入228从第一时钟212接收一个或多个时钟信号,以在读取操作期间针对给定计算集群循环循环通过数据线216。第一时钟212可以在存储器的外部或内部。在一些实施例中,第一时钟212是系统时钟。

在一些实施例中,经由第一时钟输入228从第一时钟212接收到的信号将复用器208a至208b初始化,以循环通过数据线216,但每个单独数据线循环通过经由第二时钟输入226从第二时钟214接收到的信号触发。以这种方式,每个单独计算集群循环都通过来自第一时钟212的时钟信号触发。在所图示的该示例中,从第一时钟212接收到的时钟信号是发起复用器的循环的集群控制信号的示例,并且从第二时钟214接收到的时钟信号是发起复用器的每个单独循环的复用器循环控制信号的示例。

例如,当复用器208a从第一时钟212接收时钟信号clk时,复用器208a发起计算集群循环,该计算集群循环触发复用器208a以利用来自第二时钟214的下一个时钟信号,来循环到第一数据线216。因此,当从第二时钟214接收到时钟信号c1时,复用器208a循环到对应于部分总和ps1的数据线,使得其部分总和值由感测电路210a获得。当从第二时钟214接收到时钟信号c2时,复用器208a循环到对应于部分总和ps2的下一条数据线,使得其部分总和值由感测电路210a获得,并且与其先前保持的值组合。对于从第二时钟214接收到的时钟信号c3和c4,复用器208a继续以类似方式运行,以使感测电路210a获得来自ps3和ps4的值,并其将来自ps3和ps4的值与来自ps1和ps2的值组合。

同样,当复用器208b从第一时钟212接收时钟信号clk时,复用器208b发起计算集群循环,该计算集群循环触发复用器208b利用来自第二时钟214的下一个时钟信号循环到第一数据线216。当从第二时钟214接收到时钟信号c1时,复用器208b循环到对应于部分总和ps5的数据线,使得其部分总和值由感测电路210b获得。在该示例中,发起复用器208b的时钟信号clk与发起复用器208a的时钟信号相同。以这种方式,单个时钟信号发起两个复用器208a至208b,以开始循环通过对应数据线216。复用器208b响应于从第二时钟214接收到时钟信号c2、c3和c4而循环通过对应于部分总和ps6、ps7和ps8的数据线,使得类似于复用器208a和感测电路210b,通过感测电路210b获得并且组合部分总和值。

一旦在给定计算集群循环内达到了复用器循环的最大数目(例如在图2a中的所图示的示例中为四个),则感测电路210a至210b输出其所获得的值,并且复用器208a至208b等待来自第一时钟212的下一个第一时钟信号以发起复用器208a至208b,从而针对下一组计算集群循环再次循环通过数据线216。因此,系统200a针对两个计算集群获得两个结果,一个结果通过感测电路210a针对列204a至204d获得,并且第二个结果通过感测电路210b针对列204e至204h获得。并且因为复用器208a至208b利用相同的时钟信号(第一时钟信号或第一时钟信号与第二时钟信号的组合)来循环通过其相应数据线216,所以在单个计算集群循环期间获得了针对两个计算集群的两个结果。

如所图示的,复用器208a至208b利用来自第一时钟212的一个时钟信号和来自第二时钟214的四个时钟信号来访问其对应的四条数据线216。然而,实施例不限于此。相反,在其他实施例中,从第一时钟212接收到时钟信号可以指示复用器208a至208b在从第二时钟214接收到下一个时钟信号时循环到第一数据线216,然后循环到第二数据线216。以这种方式,利用第二时钟214在第一循环之后针对给定计算集群循环循环通过每条对应数据线,在该所图示的示例中,复用器208a至208b将利用来自第一时钟212的一个时钟信号和来自第二时钟214的三个时钟信号,来访问其对应的四条数据线216。

在至少一个实施例中,第二时钟214可以是用于刷新存储器阵列202中的数据的存储器时钟。在其他实施例中,第二时钟214可以是专用于复用器208a至208b的时钟或某一其他时钟。第二时钟214可以在存储器的外部或内部。一般而言,与第一时钟212相比,第二时钟214在物理上更接近复用器208a至208b,并且第二时钟214比第一时钟212利用更少的功率来循环通过复用器数据线。在各种实施例中,第二时钟信号可以被称为循环控制信号。

在其他实施例中,经由第一时钟输入228从第一时钟212(或某一其他时钟)接收到的每个信号触发单独数据线循环。例如,当复用器208a至208b从第一时钟212接收到第一时钟信号时,复用器208a循环到对应于部分总和ps1的数据线,使得其部分总和值由感测电路210a获得,并且复用器208b循环到对应于部分总和ps5的数据线,使得其部分总和值由感测电路210b获得。但是,当复用器208a至208b从第一时钟212接收到第二时钟信号时,复用器208a循环到对应于部分总和ps2的数据线,使得其部分总和值由感测电路210a获得,并且复用器208b循环到对应于部分总和ps6的数据线,使得其部分总和值由感测电路210b获得。针对从第一时钟212接收到的附加时钟信号,复用器208a至208b继续以类似方式运行。一旦针对计算集群循环达到了复用器循环的最大数目(例如在图1中的所图示的示例中为四个),则复用器208a在下一个时钟信号上循环回到第一数据线。在此实施例中,第二时钟214是可选的并且未被利用。

在一些实施例中,复用器208a至208b可以具有其他输入/输出接口(未图示),诸如以用于:在读取操作与写入操作之间进行选择、选择特定数据线216、选择计算集群循环大小等。

例如,如所图示的,复用器208a至208b直接利用时钟信号来循环通过数据线216。然而,在其他实施例中,每个复用器208a至208b还可以包括一条或多条数据选择线(未图示)。数据选择线被配置为从选择电路装置接收地址,以循环到特定数据线216。在至少一个这样的实施例中,如本文中所描述的,选择电路装置利用来自第一时钟212的第一时钟信号或来自第二时钟214的第二时钟信号或其某种组合循环通过不同数据线216。图4a至图4d图示了如何利用这样的选择电路装置的一个示例。尽管图4a至图4d中所图示的数据线选择电路装置用于指示复用器循环通过多条数据线以将数据写入存储器,但类似电路装置也可以用于指示复用器循环通过多条数据线以从存储器读取数据。

作为其他输入/输出接口的另一示例,复用器208a至208b可以包括一条或多条计算集群循环大小输入线(未图示)。可以利用计算集群循环大小输入线来标识复用器208a至208b和感测电路210a至210b将利用多少列204或数据线216,来针对单个计算集群从存储器202获得结果。例如,在图2a中所图示的示例中,复用器208a至208b利用四条数据线来从针对单个计算集群的四列的部分总和中获得结果。在该示例中,每个复用器208可以具有一条或多条计算集群循环大小输入线,该计算集群循环大小输入线指示复用器208a至208b作为计算集群循环(如作为四个复用器循环或四条数据线)而运行。

类似于复用器208a至208b,感测电路210a至210b还可以从第一时钟212和第二时钟214接收时钟信号。这些时钟信号用于在获得由复用器208a至208b选择的部分总和值时触发感测电路210a至210b,并且针对给定计算集群循环经由输出218a至218b进行输出。当计算集群循环完成时,响应于来自第二时钟214的最终时钟信号或响应于来自第一时钟的下一个时钟信号,感测电路210a至210b将其组合的所存储的值分别移动到输出缓冲器232a至232b中。在一些实施例中,感测电路210a至210b还可以包括一条或多条计算集群循环大小输入线(未图示),以指示将针对给定计算集群循环获得多少不同部分总和值(与给定计算集群相关联的列数),类似于本文中针对复用器208a至208b所描述的内容。

系统200a还包括集群循环管理电路装置160。在一些实施例中,集群循环管理电路装置160基于存储给定计算集群的数据的列数来确定要用于计算集群循环的复用器循环的数目(例如计算集群循环大小)。在至少一个实施例中,针对给定计算集群存储数据的列数可以基于与用于神经网络处理的内核数据的批量大小相比的一个或多个阈值。在一些实施例中,基于所利用的当前神经网络层,将内核集分区为按顺序处理的批量。

在各种实施例中,集群循环管理电路装置160将关于要利用的计算集群循环大小或时钟信号的信息或指令(例如第一时钟是否触发所有复用器循环或第一时钟是否发起复用器循环以对第二时钟信号作出响应)提供给复用器208a至208b和感测电路210a至210b。在一些实施例中,集群循环管理电路装置160管理或生成控制信号(例如第一时钟信号和第二时钟信号)并且将控制信号提供给复用器208a至208b和感测电路210a至210b。在一些实施例中,集群循环管理电路装置可以协调来自输出缓冲器232a至232b的数据输出以进行进一步处理,诸如在神经网络过程中对下一层的输入。

尽管图2a图示了复用器208a至208b循环通过所有四条物理数据线216,以使得每个感测电路210a至210b在单个计算集群循环期间组合四个部分总和的实施例,但一些实施方式可以期望感测电路210a至210b组合较少部分总和,诸如两个部分总和。例如,在一些情况下和实施方式中,由于不良纵横比,在使用四列时,小计算集群可能无法最佳地利用存储器。为了改善纵横比,将用于小计算集群的数据存储在两列中,而非如上文所描述的四列中,并且如图2b中所图示的,相应地重新配置了复用器208a至208b和感测电路。

图2b中的系统200b图示了可配置的复用器208a至208b和感测电路210a至210b利用存储器202中的两列而非四列的实施例。系统200b是图2a中所描述的系统200a的实施例。

如上文所描述的,存储器阵列202的每一列204a至204h与对应的部分总和电路206电通信,该部分总和电路206被配置为计算或确定来自该对应列中的每个单元的单元值的总和。然而,在该示例中,计算集群小于上文在图2a中所描述的计算集群。在所图示的实施例中,被标记为k1[a1]、k1[a2]、…、以及k1[n1]、k1[n2]、…的数据用于第一计算集群并且被存储在列204a至204b中的单元中;被标记为k2[p1]、k2[p2]、k2[p3]、k2[x1]以及k2[x2]的数据用于第二计算集群并且被存储在列204c至204d中的单元中;被标记为k3[a1]、k3[a2]、…、以及k3[n1]、k3[n2]、…的数据用于第三计算集群并且被存储在列204e至204f中的单元中;并且被标记为k4[p1]、k4[p2]、k4[p3]、k4[x1]以及k4[x2]的数据用于第四计算集群并且被存储在列204g至204h中的单元中。

每个复用器208a至208b包括四条物理数据线216。因为将每个计算集群存储在存储器202中的两列204中,所以每个复用器208a至208b被重新配置为针对给定计算集群循环循环通过两条数据线216。如上文所描述的,在一些实施例中,经由第一时钟输入228从第一时钟212接收到的信号可以将复用器208a至208b初始化,以循环通过数据线216,但每个单独数据线循环通过经由第二时钟输入226从第二时钟214接收到的信号触发。利用来自第二时钟214的信号,使得所循环的复用器数据线的数目等于针对单个计算集群利用的列数。

例如,当复用器208a从第一时钟212接收时钟信号clk1以发起计算集群循环时,复用器208a在从第二时钟214接收到下一个时钟信号c1时循环到对应于部分总和ps1的数据线,使得来自ps1的部分总和值由感测电路210a获得。当从第二时钟214接收到时钟信号c2时,复用器208a循环到对应于部分总和ps2的数据线,使得其部分总和值由感测电路210a获得并且与其先前保持的值组合。在感测电路210a已经组合了来自ps1和ps2的值之后,输出所得到的值作为对应计算集群输出,诸如将其输出至输出缓冲器232a。

然后,复用器208a从第一时钟212接收第二信号clk2以发起另一计算集群循环,而这发起了第二计算集群循环。当从第二时钟214接收到时钟信号c3时,复用器208a循环到对应于部分总和ps3的数据线,使得其部分总和值由感测电路210a获得。当从第二时钟214接收到时钟信号c4时,复用器208a循环到对应于部分总和ps4的据线,使得其部分总和值由感测电路210a获得并且与其先前保持的值组合。在感测电路210a已经组合了来自ps3和ps4的值之后,将所得到的值输出至输出缓冲器232a作为对应计算集群输出。

类似于复用器208a,当复用器208b从第一时钟212接收到时钟信号clk1以发起计算集群循环时,复用器208b循环到对应于在从第二时钟214接收到下一个时钟信号c1和c2时的部分总和ps5和ps6的数据线。当从第二时钟214接收到时钟信号c2时,复用器208b循环到对应于部分总和ps6的数据线,使得其部分总和值由感测电路210b获得并且与其先前保持的值组合。在感测电路210b已经组合了来自ps5和ps6的值之后,输出所得到的值作为对应计算集群输出,诸如将其输出至输出缓冲器232b。

然后,复用器208b从第一时钟212接收第二信号clk2以发起另一计算集群循环,这发起了第二计算集群循环。当从第二时钟214接收到时钟信号c3时,复用器208b循环到对应于部分总和ps7的数据线,使得其部分总和值由感测电路210b获得。当从第二时钟214接收到时钟信号c4时,复用器208b循环到对应于部分总和ps8的数据线,使得其部分总和值由感测电路210b获得并且与其先前保持的值组合。在感测电路210b已经组合了来自ps7和ps8的值之后,将所得到的值输出至输出缓冲器232b作为对应计算集群输出。

一旦达到物理复用器循环的最大数目(例如在图2b中的所图示的示例中为四个),则复用器208a至208b基于计算集群循环大小等待来自第一时钟212的下一个第一时钟信号,以发起复用器208a至208b,从而再次循环通过数据线216。

因此,系统200b针对四个计算集群获得四个结果,一个结果通过感测电路210a针对列204a至204b获得,第二结果通过感测电路210a针对列204c至204d获得,第三结果通过感测电路210b针对列204e至204f获得,并且第四个结果通过感测电路210b针对列204g至204h获得。并且因为复用器208a至208b利用相同时钟信号(第一时钟信号或第一时钟信号与第二时钟信号的组合)来循环通过其相应数据线216,所以前两个计算集群(列204a至204b和204e至204f)的前两个结果是在第一计算集群循环时间期间获得的,并且后两个计算集群(列204c至204d和204g至204h)的后两个结果是在第二计算集群循环时间期间获得的。

类似于上文描述的内容,复用器208a至208b可以利用来自第一时钟212的时钟信号,来指示复用器208a至208b在从第二时钟214接收到下一个时钟信号时循环到第一数据线216,以允许每个复用器循环由从第二时钟214接收到的时钟信号控制,或是复用器208a至208b可以利用来自第一时钟212的一个时钟信号和来自第二时钟214的一个时钟信号来访问其针对给定计算集群的对应的两条数据线216,或复用器208a至208b可以利用从第一时钟212接收到的每个单独时钟信号循环到下一条数据线。同样,还可以利用从第一时钟212、第二时钟214或其组合接收到的时钟信号分别触发感测电路210a至210b以获得复用器208a至208b的当前输出值。

在一些实施例中,针对给定计算集群利用的数据线的数目可以由第一时钟信号212控制。例如,第一时钟信号可以针对两个第二时钟信号保持值“1”,然后下降至值“0”。下降至“0”的这种改变指示开始新计算集群循环。在另一示例中,其他电路装置(未图示)可以存储与给定计算集群循环相关联的列数,并且监测使得复用器能够循环到对应数目的数据线的第二时钟信号的数目。一旦第二时钟信号的数目等于与给定计算集群循环相关联的列数,则其他电路装置释放下一个第一时钟信号以发起新计算集群循环。

在其他实施例中,如上文所描述的,复用器208a至208b可以具有计算集群循环大小输入线(未图示),该计算集群循环大小输入线指示复用器关于与给定计算集群循环相关联的列数。例如,可以使用单条输入线,使得“0”指示两列,而“1”指示四列。其他数目的计算集群循环大小输入线也可以用于表示不同的计算集群循环大小。类似地,感测电路210a至210b可以利用计算集群循环大小输入线或时钟信号来指示感测电路输出当前保持的值。

尽管图2a和图2b图示了复用器208a至208b循环通过四条数据线216以使得每个感测电路210a至210b组合一个或多个计算集群循环的部分总和的实施例,但一些实施方式可以期望感测电路组合更多的部分总和,诸如八个部分总和。例如,在一些情况下和实施方式中,由于不良纵横比,在使用两列或四列时,非常大的计算集群可能无法最佳地利用存储器。为了改善纵横比,大计算集群的数据可以被存储在八列中,而非如上文所描述的两列或四列中,这在图2c中进行了图示。

如上文所描述的,图2c中的系统200c图示了可配置的复用器208a至208b和感测电路210a至210b被重新配置为利用存储器202中的八列而非两列或四列的实施例。系统200c是图2a中所描述的系统200a和图2b中所描述的系统200b的实施例。

如上文所描述的,存储器阵列202的每一列204a至204h与对应的部分总和电路206电通信,该部分总和电路206被配置为计算或确定来自该对应列中的每个单元的单元值的总和。然而,在该示例中,计算集群大于上文在图2a和图2b中所描述的计算集群。在所图示的实施例中,被标记为k1[a1]、…、k1[a4]、k1[n1]、…、k1[n3]、k1[p1]、…、k1[p3]、k1[x1]、k1[x2]、k1[e1]、…、k1[e4]、k1[h1]、…、k1[h3]、k1[q1]、…、k1[q3]、k1[y1]以及k1[y2]的数据用于计算集群并且被存储在列204a至204h中的单元。

然而,在该图示的示例中,复用器208a被重新配置为具有八条数据线216。在一些实施例中,复用器208a被重新配置成使得附加数据线由先前用作另一复用器的电路装置提供。在其他实施例中,第二复用器(例如图2a或图2b中的复用器208b)由复用器208a控制或受复用器208a“从动”以利用其数据线。例如,复用器208a可以在复用器208a已经循环通过了其物理数据线之后将时钟信号提供给第二复用器。

如上文所描述的,在一些实施例中,经由第一时钟输入228从第一时钟212接收到的信号可以将复用器208a初始化,以循环通过数据线216,但每个单独数据线循环通过经由第二时钟输入226从第二时钟214接收到的信号触发。利用来自第二时钟214的信号,使得所循环的复用器数据线的数目等于针对单个计算集群循环利用的列数。

例如,当复用器208a从第一时钟212接收到时钟信号clk以发起计算集群循环时,复用器208a等待来自第二时钟214的时钟循环c1以循环到对应于部分总和ps1的数据线216。当从第二时钟214接收到时钟信号c2时,复用器208a循环到对应于部分总和ps2的数据线,使得其部分总和值由感测电路210a获得并且与其先前保持的值组合。复用器208a继续循环到对应于部分总和ps3、ps4、ps5、ps6、ps7以及ps8的其他数据线216,使得其部分总和值由感测电路210a响应于来自第二时钟214的时钟信号c3、c4、c5、c6、c7以及c8而获得并组合。

在感测电路210a已经组合了来自ps1至ps8的值之后,输出所得到的值作为对应计算集群输出,诸如将其输出至输出缓冲器232a。一旦在计算集群循环内达到复用器循环的最大数目(例如在图2c中的所图示的示例中为八个),则复用器208a等待来自第一时钟212的下一个第一时钟信号以发起复用器208a,从而再次循环通过数据线216。

类似于上文描述的内容,复用器208a可以利用来自第一时钟212的时钟信号,来指示复用器208a在从第二时钟214接收到下一个时钟信号时循环到第一数据线216,以允许针对每个复用器循环由从第二时钟214接收到的时钟信号控制,或是复用器208a可以利用来自第一时钟212的一个时钟信号和来自第二时钟214的七个时钟信号来访问针对计算集群的数据线216,或是复用器208a可以利用从第一时钟212接收到的每个单独时钟信号循环到下一条数据线。如上文所描述的,复用器208a可以利用一条或多条计算集群循环大小输入线(未图示)来将复用器208a重新配置为针对给定计算集群循环大小的正确数目的数据线。同样,还可以利用从第一时钟212、第二时钟214或其组合接收到的时钟信号触发感测电路210a,以获得复用器208a的当前输出值。

应该认识到,可以针对其他大小的存储器202利用其他数目的复用器208a至208b、感测电路210a至210b和部分总和电路206。类似地,其他数目的物理数据线以及不同计算集群循环大小可以由复用器208a至208b利用。而且,部分总和电路206可以获得在存储器202中的对应列204中的每个单元值的数学总和。然而,在一些实施例中,部分总和电路206可以获得单元值的其他数学组合,诸如乘法。

图2d中的系统200d包括存储器阵列202和多个计算电路,如由部分总和电路206、一个或多个列复用器208a至208b以及一个或多个感测电路210a至210b所图示的。此外,系统200d包括:校准控制电路装置140,在所描绘的实施例中,该校准控制电路装置以分布式方式生以及存储校准信息,以补偿对一个或多个感测电路210a至210b产生的不期望的和/或不需要的影响;以及集群循环管理电路装置160,在所描绘的实施例中,该集群循环管理电路装置160基于存储给定计算集群的数据的列数来确定要用于计算集群循环的复用器循环的数目(例如计算集群循环大小)。

以与经由图2a中的系统200a所图示的方式类似的方式,存储器202包括配置成列-行布置的多个单元230,其中多行单元与多列单元相交,其中每个单元经由特定列和特定行可寻址。如前所述,存储器阵列202中所图示的单元230的数目仅用于说明性目的。

在所图示的实施例中,将数据值添加至存储器202,使得用于单个计算集群的所有数据与相同感测电路210a至210b相关联。例如,被标记为k1[a1]、k1[a2]、…、k1[n1]、k1[n2]、…、k1[p1]、k1[p2]、…、k1[x1]以及k1[x2]的数据值用于第一计算集群并且被存储在列204a至204d中的单元230中。相反,被标记为k2[a1]、k2[a2]、…、k2[n1]、k2[n2]、…、k2[p1]、k2[p2]、…、k2[x1]以及k2[x2]的数据用于第二单独计算集群并且被存储在列204e至204h中的单元230中。以这种方式,由感测电路210a获得的结果用于一个计算集群,而由感测电路210b获得的结果用于另一计算集群。

除了分别被存储在针对第一计算集群的列204a至204d和针对第二计算集群的列204e至204h中的数据值之外,并且与图2a的系统200a明显不同,系统200d中的存储器202的行240存储与分别与第一计算集群和第二计算集群相关联的感测电路210a和210b相关的分布式校准信息。列204a至204d中的每一列存储由校准控制电路装置140基于由感测电路210a提供的输出(诸如响应于先前应用于那些列204a至204d的存储器单元230的测试数据模式)而生成的校准信息(其在所描绘的实施例中可以被视为是偏移数据)。特定地,列204a的行240存储偏移数据o1[c1]和o1[c2];列204b的行240存储偏移数据o2[c1]和o2[c2];列204c的行240存储偏移数据o3[c1]和o3[c2];并且列204d的行240存储偏移数据o4[c1]和o4[c2]。类似地,列204e至204h中的每一列存储由校准控制电路装置140基于由感测电路210b提供的输出(诸如响应于先前应用于列204e至204h的存储器单元230的测试数据模式)而生成的偏移数据。特定地,列204e的行240存储偏移数据o5[c1]和o5[c2];列204f的行240存储偏移数据o6[c1]和o6[c2];列204g的行240存储偏移数据o7[c1]和o7[c2];并且列204h的行240存储偏移数据o8[c1]和o8[c2]。

此外,如上文相对于图2a的系统200a所描述的,系统200d的存储器阵列202的每一列204a至204h与对应部分总和电路206电通信。每个部分总和电路206包括被配置为在操作中计算或确定来自该对应列中的每个单元230的单元值的总和的电路装置。例如,部分总和ps1是列204a中的单元230之总和,部分总和ps2是列204b中单元230之总和,依此类推。在一个实施例中,部分总和电路206可以是采样保持电路。

在所描绘的实施例中,通过以分布式方式将偏移数据o1[c1]至o8[c2]存储在存储器202的相应列上,存储在这些列中的偏移数据被包括在通过部分总和电路206计算的部分总和ps1至ps8中。以这种方式,在存储了所生成的校准信息(例如偏移数据)之后,对存储在存储器单元的相应列中的数据值进行的操作——诸如计算或确定来自该对应列中的每个单元230的单元值的总和——通过组合数据值与偏移数据两者来执行,从而通过补偿老化和影响感测电路210a和210c的其他因素来提高此类操作的准确度。应理解,在不利用存储器内计算集群的存储器阵列中,可以在不脱离本文中所描述的技术的情况下以各种分布式方式存储此校准信息。作为非限制性示例,为此,可以诸如通过指定存储器阵列的一个或多个行或列来将校准信息存储在存储器阵列的一个或多个区域中,存储器阵列的一个或多个区域对应于耦合到感测电路的存储器单元,该校准信息基于该感测电路的那些存储器单元。在此类实施例中,可以引起与这样的额外行或列的指定相关联的所谓的“区域损失”。

如上文相对于系统200a所描述的,在所描绘的实施例中,复用器208a至208b包括多条数据线216以及输出218a至218b。每个复用器208a至208b包括四条物理数据线216,其指示四个物理复用器循环。参考c1、c2、c3以及c4图示了数据线216。如上所述,这些参考是指特定时钟循环,在该时钟循环中,复用器208a至208b选择特定数据线,以将值从对应部分总和206传递到相应输出218a至218b。同样如上文相对于系统200a所描述的,复用器208a至208b被配置为基于在完整的计算集群循环中的循环所选择的数目(对应于与特定计算集群相关联的列),来循环通过数据线216。在该示例中,计算集群大小是四个循环。

在各种实施例中,每个复用器208a至208b接收控制信号,该控制信号指示何时发起循环通过数据线216或何时循环到每条单独数据线216,或其组合。在所图示的实施例中,由复用器208a至208b接收到的控制信号包括经由第一时钟212的第一时钟输入228,以发起复用器208a至208b循环通过数据线216,其中每个单独数据线循环通过经由第二时钟输入226从第二时钟214接收到的信号触发。以这种方式,来自第一时钟212的时钟信号作为集群控制信号而运行以发起复用器循环,并且来自第二时钟214的时钟信号作为复用器循环控制信号而运行,该复用器循环控制信号发起复用器的每个单独循环。

一旦在给定计算集群循环内达到了最大数目的复用器循环(例如在图2d中的所图示的示例中为四个),则感测电路210a至210b输出其所获得的值,并且复用器208a至208b等待来自第一时钟212的下一个第一时钟信号以发起复用器208a至208b,从而针对下一组计算集群循环再次循环通过数据线216。因此,系统200d针对两个计算集群获得两个结果,一个结果通过感测电路210a针对列204a至204d获得,并且第二个结果通过感测电路210b针对列204e至204h获得。并且因为复用器208a至208b利用相同的时钟信号(第一时钟信号或第一时钟信号与第二时钟信号的组合)来循环通过其相应数据线216,所以在单个计算集群循环期间获得了两个计算集群的两个结果。

如本文中的其他地方所描述的,尽管复用器208a至208b利用来自第一时钟212的一个时钟信号和来自第二时钟214的四个时钟信号来访问其对应的四条数据线216,但各种其他实施例可以利用各种时钟信号布置来发起和完成所指示的量的计算集群循环。

相对于图2a的系统200a的参考元件描述了经由系统200d描绘的附加特征和过程。

尽管将图2a至图2d中的实施例描述为使用来自第一时钟212和第二时钟214的时钟信号来从存储器202读取数据,但实施例不限于此。在一些实施例中,还可以利用类似时钟信号将数据写入存储器,例如结合图3a至图3d和图4a至图4d所示出和描述的。

而且,图2a至图2d图示了基于存储给定计算集群的数据的列数来确定和利用在读取操作期间要采用的多个复用器循环的实施例,其中复用器循环的数目可以小于、等于或大于复用器的物理数据线的数目。在一些其他实施例中,在写操作期间,复用器可以循环通过所确定的复用器循环数目,该数目小于、等于或大于复用器的物理数据线的数目。例如,在一些实施例中,集群循环管理电路装置160可以将给定计算集群的内核批量大小与一个或多个阈值进行比较,以确定要存储给定计算集群的内核数据的列数。在一个此实施例中,每个阈值可以对应于特定复用器循环数目——例如,如果批量大小小于第一阈值,那么复用器循环的数目为两个;如果批量大小大于第一阈值但小于第二阈值,那么复用器循环的数目为四个;且如果批量大小大于第二阈值,那么复用器循环的数目为八个。还可以利用其他数目的阈值和对应复用器循环数目,这可以基于神经网络层或所执行的处理而改变。

上文结合图2a至图2d所描述的实施例图示了各种实施例,这些实施例用于在高数据处理神经网络环境中利用可配置的复用器从存储器读取数据,同时还对从存储器读取的值执行计算——诸如针对给定计算集群获得部分总和并且组合部分总和。

为了从存储器读取这样的数据量,需要将传入数据写入存储器。如上文所提及,神经网络通常涉及对大量数据进行的许多类似计算。而且,神经网络被设计成从大量训练数据中学习特定特点。该训练数据中的一些训练数据将为有用的,而另一者将是无用的。因此,随着系统的学习,最终从系统中移除了错误的数据。然而,一些情况可导致错误的训练或输入数据。例如,如果以相同方式将连续图像读取到存储器中,那么将相同像素地点存储在相同存储器地点中。但是,如果像素变为“死的”(例如因出故障的光传感器或相关电路装置或故障的存储器单元),那么该存储器地点将始终具有相同值。因此,可能的是,系统可以学习“死”像素作为训练过程的一部分,或系统无法正确地处理连续的输入图像。

图3a至图3d图示了根据实施例的使用移位或线移位复用器308将多个数据连续地写入存储器阵列302的用例背景示图。移位复用器或线移位复用器是指包括电路装置的复用器,该电路装置在操作中使复用器本身改变复用器的每条物理数据线的地址,或修改对用于连续数据写入的物理数据线的选择。在各种实施例中,复用器308包括桶形移位器,该桶形移位器修改每条数据线316的内部地址,以用于多个数据的连续数据写入。复用器308可以是只写或读写复用器。

图3a图示了用于第一计算集群写入的示例300a。传入数据分别经由被寻址为00、01、10和11的数据线按此顺序写入列304a、304b、304c以及304d。将第一计算集群的第一数据存储在列304a中,将第一计算集群的第二数据存储在列304b中,将第一计算集群的第三数据存储在列304c中,并且将第一计算集群的第四数据存储在列304d中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图3b图示了用于在图3a中的第一计算集群写入之后的第二计算集群写入的示例300b。当接收到用于第二计算集群写入的数据时,桶形移位器修改数据线的地址,使得被寻址为00、01、10和11的数据线分别对应于列304b、304c、304d以及304a。传入数据分别经由被寻址为00、01、10和11的数据线按此顺序写入列304b、304c、304d以及304a。将第二计算集群的第一数据存储在列304b中,将第二计算集群的第二数据存储在列304c中,将第二计算集群的第三数据存储在列304d中,且将第二计算集群的第四数据存储在列304a中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图3c图示了用于在图3b中的第二计算集群写入之后的第三计算集群写入的示例300c。当接收到用于第三计算集群写入的数据时,桶形移位器再次修改数据线的地址,使得被寻址为00、01、10和11的数据线分别对应于列304c、304d、304a以及304b。传入数据分别经由被寻址为00、01、10和11的数据线按此顺序写入列304c、304d、304a以及304b。将第三计算集群的第一数据存储在列304c中,将第三计算集群的第二数据存储在列304d中,将第三计算集群的第三数据存储在列304a中,且将第三计算集群的第四数据存储在列304b中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图3d图示了用于在图3c中的第三计算集群写入之后的第四计算集群写入的示例300d。当接收到用于第四计算集群写入的数据时,桶形移位器再次修改数据线的地址,使得被寻址为00、01、10和11的数据线分别对应于列304d、304a、304b以及304c。传入数据分别经由被寻址为00、01、10和11的数据线按此顺序写入列304d、304a、304b以及304c。将第四计算集群的第一数据存储在列304d中,将第四计算集群的第二数据存储在列304a中,将第四计算集群的第三数据存储在列304b中,且将第四计算集群的第四数据存储在列304c中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

如图3a中所图示的,当接收到用于第五计算集群写入的数据时,桶形移位器再次修改数据线的地址,使得被寻址为00、01、10和11的数据线分别对应于列304a、304b、304c以及304d。如图3a至图3d中所图示的,数据线地址的移位可以针对连续的计算集群写入以这种方式继续进行。该移位有助于连续错误的半随机存储,这有助于通过学习/推理过程去除此类错误或有助于在分析目标图像时忽略此类错误。

如上文所描述的,可以利用第一时钟信号来发起复用器循环通过其数据线,以进行可配置的数目的数据线的计算集群循环的读取操作。图3a至图3d还图示了此类时钟信号的使用,但用于数据写入操作。

在一些实施例中,经由第一时钟输入228从第一时钟212接收到的信号将复用器308初始化以循环通过数据线216,但是每个单独数据线循环通过经由第二时钟输入226从第二时钟214接收到的信号触发。以这种方式,每个单独计算集群循环都通过来自第一时钟212的时钟信号触发。

例如,在图3a中,当复用器308从第一时钟212接收到时钟信号clk以发起计算集群写入循环时,复用器308响应于来自第二时钟214的c1而循环到地址为00的数据线216,使得可以将数据写入列304a。时钟信号c2使复用器308循环到地址为01的数据线316,使得可以将数据写入列304b。复用器308继续以类似方式运行,以供时钟信号c3和c4分别将数据写入列304c和304d。

图3b是类似的,但是当复用器308从第一时钟212接收到时钟信号clk以发起计算集群写入循环且随后从第二时钟214接收到c1时,复用器308循环到地址为00的数据线316,使得可以将数据写入列304b(不是如图3a中的列304a)。从第二时钟214接收到的时钟信号c2、c3和c4使复用器308分别循环到地址为01、10和11的数据线316,使得可以将数据分别写入列304c、304d和304a。

同样,在图3c中,在复用器308从第一时钟212接收到时钟信号clk时发起计算集群写入循环。当从第二时钟214接收到c1时,复用器308循环到地址为00的数据线316,使得可以将数据写入列304c(不是如图3b中的列304b)。从第二时钟214接收到的时钟信号c2、c3和c4使复用器308分别循环到地址为01、10和11的数据线316,使得可以将数据分别写入列304d、304a和304b。

而且,在图3d中,当复用器308从第一时钟212接收到时钟信号clk时,复用器208发起计算集群写入循环,并且响应于从第二时钟214接收到c1而循环到地址为00的数据线316,使得可以将数据写入列304d(不是如图3c中的列304c)。从第二时钟214接收到的时钟信号c2、c3和c4使复用器308分别循环到地址为01、10和11的数据线316,使得可以将数据分别写入列304a、304b和304c。

如所图示的,复用器308利用来自第一时钟212的一个时钟信号和来自第二时钟214的四个时钟信号来写入四条数据线216。然而,实施例不限于此。相反,在其他实施例中,从第一时钟212接收到时钟信号可以指示复用器308循环到地址为00的第一数据线316。以这种方式,针对给定计算集群循环写入操作,利用第一时钟212循环到第一数据线并且利用第二时钟214循环通过彼此对应的数据线,在所图示的该示例中,复用器308将利用来自第二时钟214的三个时钟信号将数据写入列304a至304d。

在其他实施例中,经由第一时钟输入228从第一时钟212接收到的每个信号触发单独数据线循环。例如,当复用器308从第一时钟212接收到第一时钟信号时,复用器308循环到数据线地址00。但是,当复用器308从第一时钟212接收到第二时钟信号时,复用器308循环到数据线地址01。针对从第一时钟212接收到的附加时钟信号,复用器308继续以类似的方式运行。一旦针对计算集群循环达到了复用器循环的最大数目(例如在图3a至图3d中的所图示的示例中为四个),则复用器308在下一个时钟信号上循环回到数据线地址00。在此实施例中,第二时钟214是可选的并且未被利用。

尽管图3a至图3d图示了使用具有内置桶形移位器的复用器来改变数据线的地址,但实施例不限于此。相反,在一些实施例中,可以利用其他移位电路装置(诸如在复用器的外部的电路装置)作为复用器的预解码,以在不改变复用器的内部数据线地址的情况下为复用器移位和选择数据线。

图4a至图4d图示了使用预解码移位将多个数据连续地写入存储器阵列的用例背景示图。系统包括复用器408、存储器阵列402和数据线选择电路装置406。复用器408可以是只写或读写复用器。不同于图3a至图3d中所图示的示例,在改变了数据线的地址的情况下,每条数据线416对应于不变的地址。因此,数据线地址00对应于存储器402中的列404a,数据线地址01对应于存储器402中的列404b,数据线地址10对应于存储器402中的列404c,且数据线地址11对应于存储器402中的列404d。

图4a图示了用于第一计算集群写入的示例400a。数据线选择电路装置406选择使复用器408的数据线416循环以写入数据的顺序。在该示例中,数据线选择电路装置406按此顺序将数据线地址选择为00、01、10以及11,并且经由地址选择线418将数据线地址输出至复用器408。将第一计算集群的第一数据存储在列404a中,将第一计算集群的第二数据存储在列404b中,将第一计算集群的第三数据存储在列404c中,并且将第一计算集群的第四数据存储在列404d中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图4b图示了用于在图4a中的第一计算集群写入之后的第二计算集群写入的示例400b。当接收到用于第二计算集群写入的数据时,数据线选择电路装置406修改使复用器408的数据线416循环以写入数据的顺序。在该示例中,数据线选择电路装置406按此顺序将数据线地址选择为01、10、11以及00,并且经由地址选择线418将数据线地址输出至复用器408。将第二计算集群的第一数据存储在列404b中,将第二计算集群的第二数据存储在列404c中,将第二计算集群的第三数据存储在列404d中,并且将第二计算集群的第四数据存储在列404a中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图4c图示了用于在图4b中的第二计算集群写入之后的第三计算集群写入的示例400c。当接收到用于第二计算集群写入的数据时,数据线选择电路装置406修改使复用器408的数据线416循环以写入数据的顺序。在该示例中,数据线选择电路装置406按此顺序将数据线地址选择为10、11、00以及01,并且经由地址选择线418将数据线地址输出至复用器408。将第三计算集群的第一数据存储在列404c中,将第三计算集群的第二数据存储在列404d中,将第三计算集群的第三数据存储在列404a中,并且将第三计算集群的第四数据存储在列404b中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

图4d图示了用于在图4c中的第三计算集群写入之后的第四计算集群写入的示例400d。当接收到用于第二计算集群写入的数据时,数据线选择电路装置406修改使复用器408的数据线416循环以写入数据的顺序。在该示例中,数据线选择电路装置406按此顺序将数据线地址选择为11、00、01以及10,并且经由地址选择线418将数据线地址输出至复用器408。将第四计算集群的第一数据存储在列404d中,将第四计算集群的第二数据存储在列404a中,将第四计算集群的第三数据存储在列404b中,且将第四计算集群的第四数据存储在列404c中。然后处理存储器中的数据,诸如上文结合图2a至图2c所描述的。

如图4a中所图示的,当接收到用于第五计算集群写入的数据时,数据线选择电路装置406按此顺序将数据线416成为数据线地址的顺序修改为00、01、10以及11。如图4a至图4d中所图示的,数据线地址的移位可以针对连续的计算集群写入以这种方式继续进行。类似于上文在图3a至图3d中所讨论的内容,移位允许连续错误的半随机存储,这允许通过学习/推理过程去除错误或在分析目标图像时忽略错误。

如上文在图3a至图3d中所描述的,可以利用第一时钟信号来发起复用器,以循环通过其数据线,以便进行计算集群循环和针对每个单独循环的第二时钟的写入操作。结合图4a至图4d所描述的实施例,还可以以类似方式利用第一时钟和第二时钟。然而,在图4a至图4d中的所图示的示例中,数据线选择电路装置406从第一时钟212和第二时钟214而非复用器408本身接收时钟信号。相反,对地址选择线418的改变由时钟信号触发,并且触发了复用器以选择适合的数据线416。类似于图3a至图3d中所图示的内容,在其他实施例中,复用器408可以包括输入(未图示)以接收第一时钟信号和第二时钟信号。

数据线选择电路装置406从第一时钟212接收信号,以将对数据线地址的选择初始化,但是每个单独数据线地址循环通过从第二时钟214接收到的信号触发。以这种方式,每个单独计算集群循环通过来自第一时钟212的时钟信号触发。

类似于上文所描述的内容,在一些实施例中,数据线选择电路装置406利用来自第一时钟212的一个时钟信号和来自第二时钟214的四个时钟信号来选择四个数据线地址,以供复用器408写入四个不同的列404a至404d。在其他实施例中,从第一时钟212接收到时钟信号可以指示数据线选择电路装置406循环到第一数据线地址,并且利用第二时钟214循环通过用于给定计算集群循环写入操作的每个剩余的对应数据线地址,在该所图示的示例中,数据线选择电路装置406将利用来自第一时钟212的一个时钟信号和来自第二时钟214的三个时钟信号来选择四个数据线地址,以供复用器将数据写入到列404a至404d。在又一些实施例中,经由第一时钟输入228从第一时钟212接收到的每个信号触发单独数据线地址选择。

在各种实施例中,上文分别结合图3a至图3d和图4a至图4d所描述的桶形移位器和数据线选择电路装置的输入序列还可以将地址/数据线选择的序列改变为不同序列。而且,在一些实施例中,并非所有地址输入/数据线地址都可以被移位。例如,针对大复用器比率,仅地址输入/数据线地址的子集可以移位至考虑中的存储器中所存储的高频振动数据(ditherdata)。

现在将相对于图5至图8描述本公开的某些方面的操作。如本文中所描述的,在各种实施例的至少一个实施例中,分别结合图5至图8所描述的过程500、600、700以及800可以由与存储器内计算元件相关联的一个或多个组件或电路来实施。

图5图示了大体上示出了用于使用如图2a至图2c中所图示的可配置的复用器和感测电路,从存储器阵列读取数据的过程500的一个实施例的逻辑流程图。在开始框之后,过程500在框502中开始,在框502中,将集群数据存储在列-行存储器阵列中。下文结合图6和图7更详细地描述了有助于将数据存储在存储器中的各种实施例。

过程500继续进行至框504,在框504中,针对存储器中的每一列计算部分总和。

过程500继续至框506,在框506中,针对计算集群选择多个列。在各种实施例中,这是针对单个计算集群存储数据的列数,其可以被称为计算集群循环大小。

过程500继续进行至决策框508,此处,确定针对计算集群的所选择的列数是否大于列复用器循环的数目。在至少一个实施例中,该确定基于在所选择的列数与复用器上的物理数据线的数目之间的比较。如果针对计算集群的所选择的列数大于复用器循环的数目,那么过程500进行至框510;否则,过程500进行至框512。

在框510中,复用器被扩大。在一些实施例中,由复用器所支持的数据线的数目被重新配置为容纳针对计算集群的所选择的列数。在至少一个实施例中,复用器的扩大可以包括利用第二复用器作为复用器的扩大部分。这可以例如通过将第一复用器重新配置为利用第二复用器的电路装置来提供附加数据线,或通过将第一复用器配置为控制如相对于图2c所讨论的复用器来完成。过程500继续进行至框512。

如果在决策框508中,所选择的列数等于或小于复用器循环的数目,或在框510之后,则过程500进行至框512。在框512中,发起复用器和感测电路以循环通过与计算集群相关联的存储器中的每一列的部分总和。如上文所描述的,第一时钟信号可以发起复用器以循环通过针对计算集群循环的部分总和。

过程500继续进行至框514,此处,获得针对当前复用器循环的当前部分总和,并且将其与计算集群值组合。

过程500继续至决策框516,此处,确定所获得的部分总和的数目是否等于针对计算集群的所选择的列数。在各种实施例中,基于在所选择的复用器循环的数目(所获得的部分和的数目)与所选择的列数(计算集群循环大小)之间的比较来做出该确定。如果所获得的部分总和的数目等于所选择的列数,那么过程500进行至框520;否则,过程500进行至框518。

在框518中,复用器循环被递增以获得针对计算集群的下一个部分总和。在框518之后,过程500循环至框514,以获得针对递增的复用器循环的下一个部分和。

如果在决策框516中,所获得的部分总和的数目等于针对计算集群的所选择的列数,那么过程500从决策框516进行至框520。在框520中,将组合的计算集群值输出至缓冲器,该缓冲器可以由系统的另一组件访问以供进一步处理,诸如对神经网络处理的下一层的输入。

过程500继续至决策框522,在决策框522中,确定是否达到了复用器循环的最大数目。在各种实施例中,复用器循环的最大数目是与复用器相关联的数据线的物理数目。如果达到了复用器循环的最大数目,那么过程500进行至决策框524;否则,过程500循环至框512,以发起复用器和感测电路,从而循环通过针对所选择的列数的下一个计算集群的下一组部分总和。

在决策框524中,确定是否要将附加数据存储在存储器中,诸如用于下一组计算集群。如果要将附加数据存储在存储器中,那么过程500循环至框502;否则,过程500终止或以其他方式返回至调用过程以执行其他动作。

图6图示了大体上示出了用于采用复用器的过程600的一个实施例的逻辑流程图,该复用器修改数据线地址以便将多个数据连续地写入如图3a至图3d中所图示的存储器阵列。

在开始框之后,过程600在框602中开始,在框602中,接收命令以将数据存储在列-行存储器阵列中以用于集群计算操作。该命令可以是写入命令或可以是在特定输入数据线上的数据。

过程600继续进行至框604,此处,每条复用器数据线与在存储器中的对应列相关联。在各种实施例中,在存储器中的列与在复用器的特定数据线之间的关联包括:选择复用器地址并且将该复用器地址分配给该特定数据线。在一个示例实施例中,向复用器的第一数据线分配地址00,向复用器的第二数据线分配地址01,向复用器的第三数据线分配地址10,并且向复用器的第四数据线分配地址11。

过程600继续至框606,此处,接收针对集群计算操作的下一个数据。在各种实施例中,下一个数据是要被存储在特定计算集群的存储器中的传入数据。

接下来,过程600继续进行至框608,此处,针对集群计算的下一个数据被存储在列中,该列与用于当前复用器循环的复用器数据线相关联。在各种实施例中,当前复用器循环是复用器的数据线的当前地址。例如,当接收到第一数据时,当前复用器循环是第一循环,并且可以使用地址00;当接收到第二数据时,当前复用器循环为第二循环,并且可以使用地址01;依此类推。

接下来,过程600继续至决策框610,此处,确定是否已经达到了复用器的最大数据线循环。在一些实施例中,最大数据线循环是复用器的物理数据线的数目。在其他实施例中,最大数据线循环可以是针对特定计算集群的所选择的数目的数据线或列。如果已经达到了复用器的最后一个数据线循环或最大数据线循环,那么过程600进行至框612;否则,过程600进行至框616。

在框616中,复用器循环到下一条数据线。在至少一个实施例中,复用器将其当前复用器循环数据线地址递增到下一个地址。例如,如果在框608中经由地址00存储了数据,那么下一个复用器数据线地址可以是01。过程600然后循环至框606,以接收要存储在存储器中以用于集群计算操作的下一个数据。

如果在决策框610中已经达到了最大复用器数据线循环,那么过程600从决策框610进行至框612。在框612中,执行集群计算操作。在一些实施例中,可以接收读取命令,该读取命令经由复用器和感测电路(诸如本文中所描述的,包括图2a至图2c和图5中的过程500)发起对存储器列的读取。

接下来,过程600继续进行至决策框614,在决策框614中,确定是否接收到命令以存储用于连续的集群计算操作的数据。如果要执行连续的集群计算操作,那么过程600进行至框618;否则,过程600终止或以其他方式返回至调用过程以执行其他动作。

在框618中,修改在每条复用器数据线与在存储器中的列之间的关联。在至少一个非限制性实施例中,复用器包括桶形移位器,该桶形移位器修改在存储连续的集群计算操作的数据之间的数据线/列关联。例如,如图3a至图3d中所图示的,桶形移位器修改数据线的地址。如果先前的关联指示了向复用器的第一数据线分配地址00,向复用器的第二数据线分配地址01,向复用器的第三数据线分配地址10,并且向复用器的第四数据线分配地址11;那么修改后的关联可以是:向复用器的第一数据线分配地址01,向复用器的第二数据线分配地址10,向复用器的第三数据线分配地址11,并且向复用器的第四数据线分配地址00。

在框618之后,过程600循环至框606以接收用于下一个集群计算机操作的数据。

图7图示了大体上示出了用于采用预解码移位以便将多个数据连续地写入如图4a至图4d中所图示的存储器阵列的过程700的一个实施例的逻辑流程图。

在开始框之后,过程700在框702中开始,在框702中,接收命令以将数据存储在列-行存储器阵列中以用于集群计算操作。在各种实施例中,框702可以采用上文结合图6中的框602所描述的实施例。

过程700继续进行至框704,此处,每条复用器数据线与在存储器中的对应列相关联。在各种实施例中,框704可以采用上文结合图6中的框604所描述的实施例。

过程700继续至框706,此处,确定用于使复用器数据线写入用于集群计算操作的数据的顺序。在一些实施例中,复用器数据线的初始顺序可以被预先选择或预定。在其他实施例中,初始数据线顺序可以是随机的。

在至少一个实施例中,复用器数据线顺序是数据线地址被提供给复用器以进行数据写入的顺序。例如,选择电路装置可以确定数据线地址的初始顺序是00、01、10、11。然而,也可以利用其他顺序。同样,也可以根据复用器的大小而利用其他数目的地址。

接下来,过程700继续进行至框708,此处,基于所确定的数据线顺序来选择初始复用器数据线。在至少一个实施例中,对初始复用器数据线的选择是所确定的数据线顺序中的第一数据线地址,并且第一数据线地址被输出至复用器。

过程700继续至框710,此处,接收用于集群计算操作的下一个数据。在各种实施例中,框710可以采用上文结合图6中的框606所描述的实施例。

接下来,过程700继续进行至框712,此处,将集群计算的下一个数据存储在与所选择的复用器数据线相关联的列中。在至少一个实施例中,利用与所选择的数据线的数据线地址相关联的数据线,将接收到的数据存储在存储器中的对应列中。

接下来,过程700继续至决策框714,此处,确定是否已经达到了复用器的最大数据线循环。在各种实施例中,决策框714可以采用图6中的决策框610的实施例。如果已经达到了复用器的最后一个数据线循环或最大数据线循环,那么过程700进行至框716;否则,过程700进行至框720。

在框720中,基于所确定的数据线顺序来指示复用器循环到下一条数据线。在至少一个实施例中,选择电路装置以所确定的数据线顺序对数据线地址进行递增。例如,如果先前的数据线地址是00并且数据线顺序是地址00、01、10、11,那么下一个数据线地址是01。然后,过程700循环至框710,以接收要存储在存储器中以用于集群计算操作的下一个数据。

如果在决策框714中已经达到了最大复用器数据线循环,那么过程700从决策框714进行至框716。在框716中,执行集群计算操作。在各种实施例中,框716可以采用上文结合图6中的框612所描述的实施例。

接下来,过程700继续进行至决策框718,此处,确定是否接收到命令以存储用于连续的集群计算操作的数据。在各种实施例中,决策框718可以采用上文结合图6中的决策框614所描述的实施例。如果要执行连续的集群计算操作,那么过程700进行至框722;否则,过程700终止或以其他方式返回至调用过程以执行其他动作。

在框722中,新的复用器数据线顺序被确定。新的复用器数据线顺序可以是随机的,或新的复用器数据线顺序可以使先前地址递增。例如,如果先前的顺序是地址00、01、10、11,那么新顺序可以是地址01、10、11、00。在至少一个非限制性实施例中,数据线选择电路装置包括电路装置(例如桶形移位器),该电路装置选择数据线顺序以存储用于连续的集群计算操作的数据。例如,如图4a至图4d中所图示的,数据线选择电路装置选择不同顺序,以指示复用器循环通过其数据线,以进行连续的集群计算操作。

在框722之后,过程700循环至框708以接收用于下一个集群计算机操作的数据。

图8图示了大体上示出了用于利用第一时钟(例如外部系统时钟)来发起对存储器阵列的复用器读取和写入,以及利用第二时钟(例如内部存储器时钟)来发起复用器读取和写入的每个循环的过程的一个实施例的逻辑流程图。

在开始框之后,过程800在框802中开始,存储,接收命令以用于列-行存储器中的数据的集群计算操作。在一些实施例中,该命令可以是读取命令,例如以从存储器读取数据(例如如上文结合图2a至图2c所描述的)。在其他实施例中,该命令可以是写入命令,例如以便将数据写入存储器(例如如上文结合图3a至图3d和图4a至图4d所描述的)。

过程800继续进行至框804,此处,利用第一时钟信号发起列复用器,以有助于对存储器的读取或写入操作。在各种实施例中,第一时钟与存储器本身分离。在至少一个实施例中,第一时钟可以与存储器单元或芯片分离,并且可以是整体系统时钟。

过程800继续至框806,此处,触发第二时钟以逐步通过复用器循环。在至少一个实施例中,第一时钟信号可以触发第一复用器循环。在其他实施例中,在第一时钟信号之后用第一第二时钟信号触发第一复用器循环。

接下来,过程800继续进行至框808,此处,在对应于当前复用器循环的列处从存储器读取数据或将数据写入存储器。在各种实施例中,根据复用器和存储器的操作和利用,框808可以采用图5中的框514、图6中的框608或图7中的框712的实施例。

接下来,过程800继续至决策框810,在决策框810中,确定是否达到了复用器循环的最大数目。在各种实施例中,决策框810可以采用图5中的决策框522、图6中的决策框610或图7中的决策框714的实施例。如果达到了最大复用器循环,那么过程800进行至框812,否则,过程800进行至框816。

在框816中,在下一个第二时钟信号处使复用器递增到下一个复用器循环。在各种实施例中,响应于接收到下一个第二时钟信号而使当前存储器循环地址递增。在框816之后,过程800循环至框808,以读取在存储器中的与下一个复用器循环相关联的下一列或将数据写入该下一列。

如果在决策框810中达到了最大复用器循环,那么过程800从决策框810进行至框812。在框812中,将存储器置于低功率模式或存储器保留模式。在一些实施例中,存储器可以在操作模式与存储器保留模式之间、或在低功率模式与保留模式之间转换通过其他状态。此类其他状态可以包括但不限于空闲状态、等待状态、轻度睡眠状态等。在其他实施例中,框812可以是可选的,并且在决策框810中达到了最大复用器循环之后,存储器可能无法移动到保留或低功率模式中。

图9图示了大体上示出了根据本文中所描述的技术的用于存储器阵列校准的过程900的一个实施例的逻辑流程图。

在开始框之后,过程900在框905中开始,在框905中,将测试数据模式应用于存储器阵列(诸如图2a至图2d的存储器阵列202、图3a至图3d的存储器阵列303或图4a至图4d的存储器阵402)的单元。如本文中的其他地方所提到的,在一些实施例中,测试数据模式可以是从一个或多个附加存储器区域中获取到的被定义模式(例如预定义模式)。在其他实施例中,测试数据模式可以由校准控制电路装置(诸如图1和图2d的校准控制电路装置140)生成。

过程900继续进行至框910,此处,响应于所应用的测试数据模式而提供被耦合至存储器阵列的感测电路的一个或多个输出,然后诸如相对于此类输出的一个或多个期望值分析该一个或多个输出。过程继续进行至框915。

在框915中,基于所分析的感测电路输出来生成校准信息(诸如通过校准控制电路装置)。例如,此校准信息可以包括偏移数据以补偿感测电路的任何被确定的不期望或不需要的放电。

过程继续至框920,此处,以分布式方式将所生成的校准信息存储在存储器阵列的单元中。如本文中的其他地方所描述的,可以以各种方式执行所生成的校准信息的分布式存储。作为一个示例,可以以如下方式将所生成的校准信息存储在存储器内计算集群的部分中:使得还对分布式校准信息执行了对此类计算集群中的数据值执行的操作。

过程900继续至框925,其中,接收对存储在存储器阵列的一个或多个所选择的单元中的所选择的数据值进行的一个或多个操作的请求。例如,该请求可以包括时钟输入信号,该时钟输入信号引导部分总和电路(诸如图2a至图2d的部分总和电路206)组合存储在存储器阵列的一列或多列中的值,存储器阵列的一列或多列形成单个存储器内计算集群。

在框930中,诸如通过组合所选择的数据值与对应的所存储的校准信息(例如通过计算那些所选择的数据值和对应于存储器阵列的单元的所存储的校准信息之总和,那些所存储的数据值被存储在该存储器阵列中)来执行所请求的操作。

在框930中执行所请求的操作之后,过程900继续进行至框940,在框940中,确定是否要发起另一存储器阵列校准。例如,并且如本文中的其他地方所提到的,可以在以下项时执行存储器阵列校准:初始系统通电时、间歇地、响应于显式请求、在存储器重新配置或其他事件时。如果将要发起存储器阵列校准,那么过程900返回至框905以开始此校准;否则,过程继续进行至框995。

在框995中,确定过程900是否要继续,诸如在不存在终止请求的情况下。如果该过程要继续,那么其返回至框925,以便等待对所选择的数据值进行的一个或多个操作的新请求;否则,该过程返回至框999并且结束。

前述过程和方法的实施例可以包含图5至图9中未示出的附加行动,可以不包含图5至图8中所示出的所有行动,可以以各种顺序执行图5至图9中所示出的行动,可以组合行动,并且可以在各种方面进行修改。例如,图8中的过程800可以在将连续的计算集群写入存储器并且从存储器读取连续的计算集群以进行连续的神经网络层处理时省略行动812、将行动804与806组合等。

一些实施例可以采取计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种计算机可读介质,其包括适用于执行上文所描述的方法或功能中的一个或多个的计算机程序。介质可以是物理存储介质(诸如例如只读存储器(rom)芯片)或磁盘,诸如数字多功能盘(dvd-rom)、光盘(cd-rom)、硬盘、存储器、网络或由适合的驱动器或经由适合的连接读取的便携式介质物品,包括编码为存储在一个或多个此类计算机可读介质上的一个或多个条形码或其他相关代码并且可由适合的阅读器设备读取。

此外,在一些实施例中,可以以其他方式实施或提供一些或所有方法和/或功能性,诸如至少部分地利用固件和/或硬件(包括但不限于一个或多个专用集成电路(asic)、数字信号处理器、离散电路装置、逻辑门、标准集成电路、控制器(例如通过执行适合的指令并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(fpga)、复杂可编程逻辑设备(cpld)等以及采用rfid技术的设备及其各种组合)来实施或提供。

进一步地或备选地,实施例可以如下文所描述一般被概括。

一种存储器校准系统可以被概括为包括:存储器阵列,包括多个存储器单元;第一感测电路,被耦合至存储器阵列;以及校准电路装置,在操作中将测试数据模式应用于存储器阵列,基于由第一感测电路响应于将测试数据模式应用于存储器阵列而提供的输出,来生成校准信息;以及以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内。在操作中并且在以分布式方式存储所生成的校准信息之后,第一感测电路可以被配置为将所生成的校准信息的至少一部分与被存储在多个存储器单元中的一个或多个数据值组合,以作为对一个或多个所存储的数据值进行的一个或多个操作的部分。

一个或多个所存储的数据值可以包括被存储在存储器阵列的存储器内计算集群中的多个数据值。对一个或多个所存储的数据值进行的一个或多个操作可以包括:将存储器内计算集群的多个数据值与所生成的校准信息的至少一部分组合,以作为针对存储器内计算集群的存储器内计算操作的至少部分。所生成的校准信息可以包括针对存储器内计算集群的偏移数据,并且以分布式方式存储所生成的校准信息可以包括:将针对存储器内计算集群的偏移数据存储在存储器内计算集群的一个或多个存储器单元中。将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合可以包括:通过计算偏移数据与一个或多个所存储的数据值的总和来计算一个或多个所存储的数据值的总和。

多个存储器单元可以被布置为与多列存储器单元相交的多行存储器单元,使得在操作中,存储器阵列可以包括一个或多个存储器内计算集群,该存储器内计算集群各自包括多列存储器单元中的一列或多列存储器单元。该存储器校准系统可以包括:多个第一计算电路,其中每个第一计算单元在操作中根据在多个存储器单元中的对应列存储器单元中的单元值来计算计算值;第一列复用器,在操作中循环通过各自对应于多个第一计算电路中的第一计算电路的多条数据线;以及第二感测电路,在操作中经由第一列复用器从多个第一计算电路获得计算值,并且通过所确定的复用器循环数目,组合所获得的计算值。该存储器校准系统可以包括集群循环管理电路装置,该集群循环管理电路装置在操作中基于存储了存储器内计算集群的数据的列数,来确定所确定的复用器循环数目。

一种用于存储器阵列校准的方法可以被概括为:将测试数据模式应用于存储器阵列,该存储器阵列包括多个存储器单元;基于应用测试数据模式来生成校准信息,使得生成校准信息可以包括:分析由被耦合至多个存储器单元的感测电路响应于应用测试数据模式而提供的输出;以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内;以及在以分布式方式存储所生成的校准信息之后,并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的一部分,将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合。

一个或多个所存储的数据值可以包括被存储在存储器阵列的存储器内计算集群中的多个数据值。对一个或多个所存储的数据值进行的一个或多个操作可以包括:将存储器内计算集群的多个数据值与所生成的校准信息的至少一部分组合,以作为针对存储器内计算集群的存储器内计算操作的至少部分。所生成的校准信息可以包括针对存储器内计算集群的偏移数据,使得以分布式方式存储所生成的校准信息可以包括:将针对存储器内计算集群的偏移数据存储在存储器内计算集群的一个或多个存储器单元中。将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合可以包括:通过计算偏移数据与一个或多个所存储的数据值的总和来计算一个或多个所存储的数据值的总和。

多个存储器单元可以被布置为与多列存储器单元相交的多行存储器单元,使得在操作中,存储器阵列可以包括一个或多个存储器内计算集群,一个或多个存储器内计算集群各自包括多列存储器单元中的一列或多列存储器单元。

一种计算设备可以被概括为包括:用于将测试数据模式应用于存储器阵列的装置,使得存储器阵列可以包括多个存储器单元;用于基于响应于应用测试数据模式而提供的输出,来生成校准信息的装置;用于以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内的装置;以及,用于在以分布式方式存储所生成的校准信息之后、并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的部分将所生成的校准信息的一部分与一个或多个所存储的数据值组合的装置。

该计算设备可以包括用以将多个存储器单元中的多个存储器单元配置为作为存储器阵列的存储器内计算集群而操作的装置。该计算设备可以包括用于将所生成的校准信息的部分与被存储在存储器内计算集群的多个存储器单元中的多个数据值组合,以作为针对存储器内计算集群的存储器内计算操作的至少部分的装置。所生成的校准信息可以包括针对存储器内计算集群的偏移数据,使得用于以分布式方式存储所生成的校准信息的装置包括:用于将针对存储器内计算集群的偏移数据存储在存储器内计算集群的一个或多个存储器单元中的装置。

多个存储器单元可以被布置为与多列存储器单元相交的多行存储器单元,使得在操作中,存储器阵列可以包括一个或多个存储器内计算集群,该一个或多个存储器内计算集群分别包括多列存储器单元中的一列或多列存储器单元。

一种非暂时性计算机可读介质可以被概括为具有内容,该内容使存储器校准电路装置执行动作,该动作包括:将测试数据模式应用于具有多个存储器单元的存储器阵列;基于应用测试数据模式来生成校准信息,使得生成校准信息可以包括:分析由被耦合至多个存储器单元的感测电路响应于应用测试数据模式而提供的输出;以分布式方式将所生成的校准信息存储在多个存储器单元中的至少一些存储器单元内;以及,在以分布式方式存储所生成的校准信息之后、并且作为对被存储在多个存储器单元中的一个或多个数据值进行的一个或多个操作的一部分,将所生成的校准信息的至少一部分与一个或多个所存储的数据值组合。

一种系统可以被概括为包括:存储器阵列,具有被布置为与多列单元相交的多行单元的多个单元;列复用器,具有多条数据线,其中每条相应数据线对应于多个列中的相应列,并且列复用器具有多条选择线,该多条选择线指示在给定循环内选择了多条数据线中的哪些数据线,其中列复用器在操作中循环通过多条数据线,以基于经由多条选择线接收到的数据线地址,来将数据写入多个单元;以及数据线选择电路装置,该数据线选择电路装置在操作中:针对第一写入操作选择第一循环顺序,以将第一多个数据写入多个单元,并且针对第二写入操作选择第二循环顺序,以将第二多个数据写入多个单元,其中第一循环顺序和第二循环顺序指示在每个循环上选择多条数据线的顺序,并且其中第一循环顺序与第二循环顺序不同。

列复用器可以包括数据线选择电路装置,以在第一写入操作期间以第一循环顺序选择多条数据线,并且在第二写入操作期间以第二循环顺序选择多条数据线。数据线选择电路装置可以包括对应于列复用器的多条选择线的多条输出线,并且数据线选择电路装置在操作中:根据第一所选择的循环顺序经由多条输出线来输出多条数据线的数据线地址,以在第一写入操作期间将第一多个数据写入多个单元中,以及根据第二所选择的循环顺序经由多条输出线输出多条数据线的数据线地址,以在第二写入操作期间将第二多个数据写入多个单元。

该系统可以包括集群循环管理电路装置,该集群循环管理电路装置在操作中响应于时钟信号而生成多个控制信号,并且将该多个控制信号提供给列复用器,以循环通过多条数据线以将数据写入多列单元中的相应列。

该系统可以包括:多个计算电路,其中每个计算电路根据多个单元中的对应列单元中的单元值来计算计算值,并且每个计算电路对应于列复用器的多条数据线中的相应数据线;以及感测电路,该感测电路在操作中在列复用器循环通过多条数据线时经由列复用器从多个计算电路获得计算值,并且在读取操作期间针对所确定的复用器循环数目组合所获得的计算值。所确定的复用器循环数目可以少于列复用器的多条数据线。感测电路在操作中可以在读取操作的第一部分期间,在列复用器的第一循环集合期间经由多条数据线的第一集合从所获得的计算值中计算第一值,并且在读取操作的第二部分期间,在列复用器的第二循环集合期间经由多条数据线的第二集合,从所获得的计算值中计算第二值,其中第一循环集合和第二循环集合包括所确定的复用器循环数目。列复用器在操作中可以循环通过第二多条数据线,该第二多条数据线分别对应于多个第二计算电路中的相应第二计算电路,其中每个第二计算电路根据第二多个单元中的对应列单元中的单元值计算计算值。列复用器的第二多条数据线可以由第二列复用器提供。该系统可以包括第一时钟,该第一时钟在操作中发起列复用器的读取操作,以针对所确定的复用器循环数目循环通过多条数据线;以及第二时钟,该第二时钟在操作中在感测电路的读取操作期间,针对所确定的复用器循环数目,针对列复用器的每条数据线发起每个循环,以从对应计算电路获得计算值。

一种方法可以被概括为包括:接收第一命令以将针对第一集群计算操作的第一数据存储在多个单元中,该多个单元格被布置为与多列单元相交的多行单元;将多条复用器数据线中的每条复用器数据线与多个列中的相应列相关联;确定用于将第一数据存储在多个单元中的第一数据线顺序;根据第一数据线顺序循环通过多条数据线,以将第一数据存储在多个列的相应列中,以进行第一集群计算操作;执行第一集群计算操作;响应于第一集群计算操作的完成,接收第二命令以将针对第二集群计算操作的第二数据存储在多个单元中;确定用于将第二数据存储在多个单元中的第二数据线顺序,该第二数据线顺序与第一数据线顺序不同;以及根据第二数据线顺序循环通过多条数据线,以将第二数据存储在多个列中的相应列中,以进行第二集群计算操作。

确定用于将第二数据存储在多个单元中的第二数据线顺序可以包括采用桶形移位器,以基于第一数据线顺序来修改多条数据线中的每条数据线的地址。确定用于将第一数据存储在多个单元中的第一数据线顺序可以包括:选择第一数据线顺序,并且根据第一数据线顺序指示列复用器循环通过多条数据线,并且其中确定用于将第二数据存储在多个单元中的第二数据线顺序可以包括:选择第二数据线顺序,并且根据第二数据线顺序指示列复用器循环通过多条数据线。

根据第一数据线顺序循环通过多条数据线可以包括:响应于来自第一时钟的第一时钟信号,根据第一数据线顺序发起循环通过多条数据线;以及响应于来自第二时钟的第一组时钟信号,而以第一数据线顺序发起用于每条数据线的每个循环,以将数据写入多个列中的每个相应列中;其中根据第二数据线顺序循环通过多条数据线可以包括:响应于来自第一时钟的第二时钟信号,根据第二数据线顺序发起循环通过多条数据线;以及,响应于来自第二时钟的第二组时钟信号,而以第一数据线顺序发起用于每条数据线的每个循环,以将数据写入多个列中的每个相应列。

执行第一集群计算操作可以包括:根据来自多列单元的单元值来计算多个计算值,其中每个相应计算值是根据来自相应列单元的单元值来计算的;基于存储针对第一集群计算操作的数据的列数来选择用于第一集群计算操作的多个复用器循环;通过采用列复用器针对所选择的复用器循环数目,来循环通过多个计算值的第一子集、并且通过采用感测引擎组合来自计算值的第一子集的相应计算值来生成第一集群计算操作的结果;以及,输出第一集群计算操作的结果。该方法还可以包括:通过采用第二列复用器,针对所选择的复用器循环数目,来循环通过多个计算值的第二子集、并且通过采用第二感测引擎组合来自计算值的第二子集的相应计算值,来生成第一集群计算操作的第二结果;以及输出第一集群计算操作的第二结果。所选择的复用器循环数目可以少于多条数据线。

一种计算设备可以被概括为包括:用于接收多个数据以便存储在多个单元中的装置,该多个单元被布置为与多列单元相交的多行单元;用于确定用于将接收到的多个数据存储在多个单元中的数据线顺序的装置;用于根据数据线顺序循环通过多条数据线,以将接收到的多个数据存储在多个列中的相应列中的装置;以及用于修改数据线顺序,以将随后接收到的多个数据存储在多个单元中的装置。

该计算设备还可以包括:用于基于来自第一时钟的信号来发起循环通过多条数据线的装置;以及用于基于来自第二时钟的信号,根据数据线顺序针对多条数据线中的每条数据线发起每个循环的装置。该计算设备还可以包括:用于根据来自多列单元中的每个相应列的单元值来计算相应计算值的装置;用于循环通过所确定的数目的计算值的每个相应计算值的装置;以及用于从计算值的子集中组合相应计算值,以生成所确定的数目的计算值的数据计算集群的结果的装置。

一种系统可以被概括为包括:具有多个单元的存储器阵列,该多个单元被布置为与多列单元相交的多行单元;具有多条数据线的列复用器,其中每条相应数据线对应于多个列中的相应列,其中列复用器在操作中发起循环通过多条数据线,以针对读取或写入操作响应于来自第一时钟的时钟信号而从多个单元读取数据或将输入写入多个单元,并且其中列复用器在操作中针对列复用器的每条数据线发起每个循环,以响应于来自与第一时钟分离的第二时钟的时钟信号,而从多列单元中的相应列读取数据或将数据写入多列单元中的相应列。第一时钟可以是在多个单元外部的系统时钟,并且第二时钟可以是与多个单元相关联的存储器刷新时钟。

该系统可以包括数据线选择电路装置,该数据线选择电路装置在操作中选择用于第一写入操作的第一循环顺序,以将第一多个数据写入多个单元,并且选择用于第二写入操作的第二循环顺序,以将第二多个数据写入多个单元中,其中第一循环顺序和第二循环顺序指示在每个循环上选择多条数据线的顺序,并且其中第一循环顺序与第二循环顺序不同。数据线选择电路装置可以包括对应于列复用器的多条选择线的多条输出线,并且数据线选择电路装置在操作中根据第一所选择的循环顺序经由多条输出线输出多条数据线的数据线地址,以在第一写入操作期间将第一多个数据写入多个单元中,并且根据第二所选择的循环顺序经由多条输出线输出多条数据线的数据线地址,以在第二写入操作期间将第二多个数据写入多个单元。

列复用器在操作中可以修改列复用器的多条数据线中的每条数据线的地址,以将连续的多个数据写入多个单元。列复用器在操作中可以在第一写入操作期间以第一循环顺序选择多条数据线,并且在第二写入操作期间以第二循环顺序选择多条数据线。

该系统可以包括:集群循环管理电路装置,该集群循环管理电路装置在操作中基于存储与读取操作相关联的数据的列数来确定复用器循环的数目;多个计算电路,其中每个计算电路根据多个单元中的对应列单元中的单元值来计算计算值,并且每个计算电路对应于列复用器的多条数据线中的相应数据线;以及感测电路,该感测电路在操作中在列复用器循环通过多条数据线时经由列复用器从多个计算电路获得计算值,并且在读取操作期间针对所确定的复用器循环数目组合所获得的计算值。所确定的复用器循环数目可以少于列复用器的多条数据线。感测电路在操作中可以在读取操作的第一部分期间,在列复用器的第一循环集合期间经由多条数据线的第一集合从所获得的计算值中计算第一值,并且在读取操作的第二部分期间,在列复用器的第二循环集合期间经由多条数据线的第二集合,从所获得的计算值中计算第二值,其中第一循环集合和第二循环集合包括所确定的复用器循环数目。列复用器在操作中可以循环通过第二多条数据线,该第二多条数据线分别对应于多个第二计算电路中的相应第二计算电路,其中每个第二计算电路根据第二多个单元中的对应列单元中的单元值计算计算值。

一种方法可以被概括为包括:接收与集群计算操作相关联的命令,以从多个单元读取数据或将数据写入多个单元,该多个单元被布置为与多列单元相交的多行单元;响应于来自第一时钟的时钟信号而发起复用器循环通过多条数据线,多条数据线中的每条数据线对应于多个列中的相应列;以及响应于来自第二时钟的时钟信号而针对多条数据线中的每条数据线发起复用器的每个循环,以从多个列中的每个相应列读取数据,或将数据写入多个列中的每个相应列。第一时钟可以是在多个单元外部的系统时钟,并且第二时钟是与多个单元相关联的存储器刷新时钟。

该方法还可以包括:在发起复用器循环通过多条数据线之前,确定用于将第一数据存储在多个单元中的数据线顺序;并且其中针对多条数据线中的每条数据线发起复用器的每个循环包括:根据数据线顺序循环通过多条数据线,以将数据存储在多个列中的相应列中。

该方法还可以包括:接收第二命令以将第二数据写入多个单元;确定用于将第一数据存储在多个单元中的第二数据线顺序;响应于来自第一时钟的第二时钟信号而发起复用器,以循环通过多条数据线;以及针对多条数据线中的每条数据线发起复用器的每个循环,以根据第二数据线顺序并且响应于来自第二数据线的附加时钟信号,将第二数据存储到多个列中的每个相应列中。确定用于将第二数据存储在多个单元中的第二数据线顺序可以包括:采用桶形移位器,以基于第一数据线顺序来修改多条数据线中的每条数据线的地址。

该方法还可以包括:根据来自多列单元的单元值,来计算多个计算值,其中每个相应计算值是根据来自相应列单元的单元值来计算的;基于存储针对集群计算读取操作的数据的列数,来选择用于集群计算读取操作的多个复用器循环;以及通过采用复用器针对所选择的复用器循环数目,循环通过多个计算值的第一子集,并且通过采用感测引擎组合来自计算值的第一子集的相应计算值,来生成集群计算读取操作的结果。

该方法还可以包括:响应于来自第一时钟的时钟信号而发起第二复用器循环通过第二多条数据线,第二多条数据线中的每条数据线对应于多个单元中的第二多个列中的相应列;以及响应于来自第二时钟的时钟信号,而针对第二多条数据线中的每条数据线发起第二复用器的每个循环,以从第二多个列中的每个相应列读取数据;以及通过针对所选择的复用器循环数目,来循环通过多个计算值的第二子集,并且通过采用第二传感引擎组合来自计算值的第二子集的相应计算值,来生成集群计算读取操作的第二结果。

一种计算设备可以被概括为包括:用于接收命令以从多个单元读取数据或将数据写入多个单元的装置,该多个单元被布置为与多列单元相交的多行单元;用于发起复用器循环通过来自第一时钟源的多条数据线的装置,多条数据线中的每条数据线对应于多个列中的相应列;以及用于针对多条数据线中的每条数据线发起复用器的每个循环,以从来自第二时钟源的多个列中的每个相应列读取数据、或将数据写入来自第二时钟源的多个列中的每个相应列的装置。

该计算设备还可以包括:用于确定用于将多个接收到的数据存储在多个单元中的数据线顺序的装置;用于根据数据线顺序循环通过多条数据线,以将接收到的多个数据存储在多个列中的相应列中的装置;以及用于修改数据线顺序以将随后接收到的多个数据存储在多个单元中的装置。该计算设备还可以包括:用于根据来自多列单元中的每个相应列的单元值来计算相应计算值的装置;用于基于存储与数据计算集群相关联的数据的列数来确定多个计算值的装置;用于循环通过所确定的数目的计算值的每个相应计算值的装置;以及用于从计算值的子集中组合相应计算值以生成所确定的数目的计算值的数据计算集群的结果的装置。

可以组合上文所描述的各种实施例以提供其他实施例。可以根据以上详细描述对实施例进行这些改变和其他改变。一般而言,在以下权利要求书中,所使用的术语不应被解释为将权利要求限制于说明书和权利要求书中所公开的特定实施例,而应被解释为包括所有可能的实施例以及此类权利要求所授权保护的等效物的全部范围。因此,权利要求不受本公开限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1