可选择性操作的存储器装置
文献发布时间:2023-06-19 11:14:36
技术领域
本公开大体上涉及半导体存储器和方法,且更确切地说,涉及用于可选择性操作的存储器装置的设备、系统和方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可需要功率以维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和可控硅随机存取存储器(TRAM)等等。非易失性存储器可通过在未供电时保存所存储数据来提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻性随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统处于操作中时供主机使用。举例来说,数据、命令和/或指令可在计算系统或其它电子系统的操作期间在主机与存储器装置之间传送。
发明内容
本申请的一个方面涉及一种用于可选择性操作的存储器装置的方法,其包括:通过电阻可变存储器装置接收以第一模式或第二模式来操作所述电阻可变存储器装置的命令;至少部分地基于所述所接收命令而以所述第一模式或所述第二模式来操作所述电阻可变存储器装置,以在所述第一模式中执行读取操作或写入操作或两者,或在所述第二模式中执行计算操作、测试操作或两者;以及至少部分地基于对所述电阻可变存储器装置正以所述第二模式操作的确定而使用驻留在所述电阻可变存储器装置上的处理单元来执行所述计算操作、所述测试操作或两者。
本申请的另一方面涉及一种可选择性操作的存储器设备,其包括:处理单元,其驻留于电阻可变存储器装置上,其中所述处理单元被配置成:接收使得所述电阻可变存储器装置以第一模式操作的第一命令,在所述第一模式中,所述电阻可变存储器装置执行读取操作或写入操作或两者;接收使得所述电阻可变存储器装置以第二模式操作的第二命令,在所述第二模式中,所述电阻可变存储器装置执行计算操作;以及至少部分地基于接收到所述第二命令而使得修改存储于所述电阻可变存储器装置的存储器单元集合中的数据的操作执行。
本申请的另一方面涉及一种可选择性操作的存储器系统,其包含:主机;控制器,其耦合到所述主机;多个电阻可变存储器装置,其耦合到所述控制器且其上驻留有相应处理单元,其中所述相应处理单元被配置成:接收指示以第一模式或第二模式来操作其上驻留所述相应处理单元的所述电阻可变存储器装置的信令;响应于所述信令,使得其上驻留所述处理单元的所述电阻可变存储器装置以所述第一模式或所述第二模式操作;以及响应于所述所接收信令指示以所述第二模式来操作其上驻留所述处理单元的所述电阻可变存储器装置而使得其上驻留所述相应处理单元的所述电阻可变存储器装置执行存储器操作。
附图说明
图1为根据本公开的数个实施例的呈计算系统形式的功能框图,所述计算系统包含存储装置/存储器控制器和其上驻留有相应处理单元的多个存储器装置。
图2为根据本公开的数个实施例的呈计算系统形式的功能框图,所述计算系统包含存储装置/存储器控制器和其上驻留有相应多个处理单元的多个存储器装置。
图3为根据本公开的数个实施例的呈计算系统形式的功能框图,所述计算系统包含其上驻留有处理单元的存储装置/存储器控制器和多个存储器装置。
图4为根据本公开的数个实施例的呈计算系统形式的功能框图,所述计算系统包含其上驻留有多个处理单元的存储装置/存储器控制器和多个存储器装置。
图5为根据本公开的数个实施例的呈计算系统形式的功能框图,所述计算系统包含处理单元、存储装置/存储器控制器和硬件加速器。
图6为表示根据本公开的数个实施例的对应于可选择性操作的存储器装置的实例方法的流程图。
具体实施方式
本文描述与可选择性操作的存储器装置有关的系统、设备和方法。对应于可选择性操作的存储器装置的实例方法可包含由电阻可变存储器装置接收。对应于可选择性操作的存储器装置的实例方法可包含:由电阻可变存储器装置接收以第一模式或第二模式来操作所述电阻可变存储器装置的命令;以及至少部分地基于所接收的命令而以所述第一模式或所述第二模式来操作所述电阻可变存储器装置,从而在所述第一模式中执行读取操作或写入操作或两者,或者在所述第二模式中执行计算操作。所述方法可进一步包含:至少部分地基于对所述电阻可变存储器装置正以所述第二模式操作的确定而使用驻留在所述电阻可变存储器装置上的处理单元来执行所述计算操作、所述测试操作或两者。
存储器装置可用于存储计算装置中的重要或关键数据,且可经由至少一个存储器接口在与所述计算装置相关联的主机之间传送此类数据。然而,随着存储器装置所存储的数据的大小和数量增加,将数据传送到主机和从主机传送数据可变成耗时且资源密集的。举例来说,当主机使用较大数据块(例如,约为4千字节(KB)、8KB等的数据块)来请求存储器操作的执行时,在进行所述请求中所消耗的时间量和/或资源量可与同所述数据块相关联的数据的大小和/或数量成正比地增加。
随着存储器装置的存储能力增加,这些效应可变得更加明显,这是因为越来越多的数据能够被存储器装置存储且因此可用于存储器操作中。另外,因此数据可被处理(例如,可对数据执行存储器操作或使用数据来执行存储器操作),所以随着能够存储在存储器装置中的数据的量增加,可被处理的数据的量也可增加。这可导致处理时间增加和/或处理资源消耗增加,此情形在某些类型的存储器操作的执行中可加剧。为了缓解这些和其它问题,本文中的实施例可允许使用存储器装置、一或多个计算装置和/或存储器阵列来对数据执行各种操作,以更高效地将数据从计算装置传送到存储器装置和/或从计算装置传送到主机,且反过来也一样。
举例来说,在一些实施例中,可在存储于存储器装置中的数据被存储器装置外部的电路存取之前,在存储器装置内或在存储器装置附近对所述数据执行操作(例如,相比于与主机相关联的中央处理单元,通过驻留在存储器装置上的处理单元来执行)。与将数据传送到存储器装置外部的电路(或传送到不在存储器装置附近的电路)的途径相比,通过在存储器装置内(或附近)对存储于存储器装置中的数据执行操作,处理数据所需的时钟周期数量和/或时间量可减少,从而改进存储器装置和其中部署存储器装置的计算系统的性能。如本文中所使用,术语“驻留于……上”是指某物物理上位于特定组件上。举例来说,处理单元“驻留于”存储器装置“上”是指处理单元物理上位于存储器装置上的情况。术语“驻留于……上”可在本文中与例如“部署于……上”或“位于……上”的其它术语互换使用。
也就是说,因为一些途径(例如在请求和检索数据时)可需要多个时钟周期和/或对计算系统的存储器(例如存储器装置和/或存储器阵列)进行多次功能调用以来回移动数据从而对存储器装置所存储的数据执行操作,所以在存储器装置与外部电路之间传送数据以对数据执行操作时可消耗固定时间量。此外,因为一些途径可需要将数据传送到部署在存储器装置之外的位置中的电路(例如,因此一些途径可需要在既不驻留于存储器装置上也不靠近存储器装置的位置处对数据执行操作),所以在执行将数据传送到合适的电路以执行所述操作的操作时可消耗固定时间量。此外,随着存储器装置所存储的数据的量由于存储器装置的能力增加而增加,所述效应,例如将数据传送出存储器装置(例如,传送到既不驻留于存储器装置上也不靠近存储器装置的电路)以执行操作所用的时间量,可进一步加剧。
相比之下,本文中的实施例可允许在存储器装置上或在存储器装置附近执行存储器操作,从而相比于将数据传送到存储器装置外部或远离存储器装置的电路的途径,减少了用于请求数据、检索数据和/或在计算系统内的不同位置之间移动数据的时钟周期和/或功能调用的数量。通过减少用于请求数据、检索数据和/或在计算系统内的不同位置之间移动数据的时钟周期和/或功能调用的数量,相比于将数据传送到存储器装置外部或远离存储器装置的电路的途径,可减少执行存储器操作所消耗的功率量。
另外,通过允许在存储器装置上或在存储器装置附近执行存储器操作,本文中的实施例可允许减少在执行存储器操作之后检索以供主机使用的数据(例如,相关数据)的量。举例来说,在一些途径中,主机可请求将较大(例如,4KB、8KB等)数据分块用于主机操作;然而,主机可能实际上仅需要所述较大数据分块的特定相关部分。因此,通过在将所请求的数据传送到主机之前在存储器装置上或在存储器装置附近执行存储器操作,可将数量减少的数据(例如,仅相关数据)传送到主机,从而相比于不允许在存储器装置上或在存储器装置附近执行存储器操作的途径,减少了数据的量,且因此减少了将数据传送到主机所消耗的时间和/或功率量。
可经由向处理单元和/或存储器装置断言信号和/或命令来促进本文中的实施例。所述信号和/或命令可指示存储器装置的操作模式。举例来说,可向处理单元和/或存储器装置断言使得存储器装置以第一操作模式(例如,存储器装置用作计算系统的存储装置和/或存储器的“正常”操作模式)操作的特定信号和/或命令,且可向处理单元和/或存储器装置断言使得存储器装置以第二操作模式(例如,存储器装置和/或处理单元使用存储器装置所存储的数据来执行存储器操作的“计算”操作模式)操作的不同信号和/或命令。然而,如将更详细地描述,在本文中,实施例不限于上文所描述的信号和/或命令的断言。举例来说,在一些实施例中,可向处理单元和/或存储器装置断言使得存储器装置以“测试”模式操作的信号和/或命令,在所述测试模式中,处理单元和/或存储器装置对耦合到处理单元和/或存储器装置的各种硬件组件(例如,硬件加速器、算术逻辑单元、神经形态处理器等)执行测试操作。
在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过说明的方式示出了可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。
如本文所使用,例如“X”、“N”、“M”等特定地关于图式中的附图标号的指定符指示可包含数个如此指定的特定特征。还应理解,本文中所用的术语仅仅是为了描述特定实施例且并不意图为限制性的。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述(the)”可以包含单数个指示物和多个指示物两者。另外,“数个”、“至少一个”和“一或多个”(例如,数个存储器组)可指一或多个存储器组,而“多个”意图指代超过一个此类事物。
此外,贯穿本申请在容许意义上(即,有可能、能够)而非在强制性意义上(即,必须)使用词语“可(can/may)”。术语“包含”和其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意味着物理上直接或间接连接或存取和移动(发射)命令和/或数据。视上下文而定,术语“数据”及“数据值”在本文中可互换地使用并可具有相同含义。
本文中的图遵循编号定则,其中第一一或多个数字对应于图号,且剩余的数字标识所述图中的元件或组件。可通过使用类似数字来标识不同图式之间的类似元件或组件。举例来说,104可指代图1中的元件“04”,且类似元件在图2中可表示为204。通常在本文中可用单个元件符号指代一组或多个类似元件或组件。举例来说,多个参考元件110-1、…、110-N(或替代地110-1到110-N)可被统称为110。如应了解,可添加、交换和/或去除本文中的各种实施例中展示的元件,从而提供本公开的数个额外实施例。另外,图中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,并且不应被视作限制性意义。
图1为根据本公开的数个实施例的呈计算系统100形式的功能框图,所述计算系统包含存储装置/存储器控制器104和其上驻留有相应处理单元110-1到110-N的多个存储器装置116-1到116-N。主机102、存储装置控制器104、存储器装置116和/或处理单元110可分开或一起被称为设备。如本文所使用,“设备”可指但不限于各种结构或结构组合中的任一者,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。
在图1中所说明的实施例中,存储器装置116-1到116-N可包含一或多个存储器模块(例如,双数据速率(DDR)存储器、三维(3D)交叉点存储器、NAND存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置116-1到116-N可包含易失性存储器和/或非易失性存储器。在数个实施例中,存储器装置116-1到116-N可包含多芯片装置。多芯片装置可包含数个不同的存储器类型和/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。
存储器装置116-1到116-N可提供用于计算系统100的主存储器或可在整个计算系统100中用作额外存储器或存储装置。每一存储器装置116-1到116-N可包含存储器单元,例如易失性和/或非易失性存储器单元的一或多个阵列。举例来说,阵列可以是具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说,存储器装置可以包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和快闪存储器等等。
在其中存储器装置116-1到116-N包含非易失性存储器的实施例中,存储器装置116-1到116-N可为快闪存储器装置,例如NAND或NOR快闪存储器装置。然而,实施例不限于此,且存储器装置116-1到116-N可包含其它非易失性存储器装置,例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM),“新兴”存储器装置,例如可变电阻(例如,3-D交叉点(3D XP)存储器装置)、包含自选存储器(SSM)单元阵列的存储器装置等,或其组合。可变电阻存储器装置可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,相比于多个基于快闪的存储器,可变电阻非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。相比于基于快闪的存储器和可变电阻存储器,自选存储器单元可包含具有充当存储器单元的开关和存储元件两者的单个硫族化物材料的存储器单元。
如图1中所说明,存储器装置116-1到116-N可包含相应处理单元110-1到110-N。处理单元110-1到110-N可以是任何类型的处理器、协同处理器的组合或可被配置成对存储器装置116-1到116-N所存储的数据执行处理操作的类似者。处理单元110-1到110-N的非限制性实例可包含支持全Linux的高速缓存一致的64位RISC-V处理器、U54-MC计算核心或其它被配置成对存储器装置116-1到116-N所存储的数据执行处理操作的处理装置。
存储装置/存储器控制器104可为可处理从主机102、存储器装置116-1到116-N和/或处理单元110-1到110-N接收到的命令的非易失性存储器高速(NVMe)媒体控制器。举例来说,存储装置/存储器控制器104可为可执行操作以控制存储器装置116-1到116-N的专用存储器控制器。举例来说,除了用于存储器装置116-1到116-N的专用操作,例如耗损均衡、垃圾收集、错误校正等以外,存储装置/存储器控制器104还可被配置成执行例如复制、写入、读取、错误校正等简单操作。然而,在一些实施例中,存储装置/存储器控制器104不会对与存储器装置116-1到116-N相关联的数据执行处理(例如,操纵数据的操作)。举例来说,存储装置/存储器控制器104可使得读取和/或写入操作执行以经由通信路径107-1到107-N从存储器装置116-1到116-N读取数据或将数据写入到存储器装置116-1到116-N,但存储装置/存储器控制器104可不对从存储器装置116-1到116-N读取或写入到存储器装置116-1到116-N的数据执行处理。在一些实施例中,存储装置/存储器控制器104可为非易失性存储器控制器,但实施例不限于此。
主机102和/或存储装置/存储器控制器104可被配置成向处理单元110-1到110-N和/或向存储器装置116-1到116-N断言使得存储器装置116-1到116-N在各种模式或操作状态之间选择性操作的信号和/或命令。可操作存储器装置116-1到116-N的各种模式或操作状态的非限制性实例包含:存储器装置116-1到116-N用作计算系统100的存储装置和/或存储器的“正常”操作模式;存储器装置116-1到116-N用于使用其所存储的数据来执行存储器操作的“计算”操作模式;等等。
当向处理单元110-1到110-N和/或向存储器装置116-1到116-N断言使得存储器装置116-1到116-N以“计算”模式操作的所述信号和/或命令时,存储器装置116-1到116-N可选择性地对其所存储的数据进行操作,从而使得数据中的至少一些被排序、重新排序、移除或丢弃。可执行所述操作以移除不相关数据、提取相关数据或以其它方式减少数据块中一定量的位。数据块可大约为4千字节大小(但实施例不限于此特定大小),并且可响应于由控制器104和/或主机产生且经由第二通信子系统106发送的一或多个命令而以流式传输方式由计算装置110-1、…、110-N处理。在一些实施例中,数据块可为32位、64位、128位等的数据字或数据分块,和/或数据块可对应于用于执行本文所描述的存储器操作的操作数。
在一些实施例中,可执行操作以从按分列格式存储的数据对象移除一或多列数据。通过使用存储器装置116-1到116-N和/或处理单元110-1到110-N来处理数据,可将数量减少的数据传送到存储器装置116-1到116-N外部的位置(例如,传送到主机102,或传送到存储器装置116-1到116-N外部的其它电路),从而增加传送数据的速度,减少传送数据所消耗的功率量,和/或减少与将数据传送出存储器装置116-1到116-N相关联的时钟周期或功能调用数目。
然而,由存储器装置116-1到116-N和/或处理单元110-1到110-N所执行的操作不限于上文所列举的操作。举例来说,在一些实施例中,存储器装置116-1到116-N和/或处理单元110-1到110-N在存储器装置以“计算”模式操作时可执行(或使得执行):算术操作,例如加法、减法、乘法、除法、融合乘加、乘积累加、点积单元、大于或小于、绝对值(例如,FABS())、快速傅立叶(Fourier)变换、快速傅立叶反变换、S型函数、卷积、平方根、指数和/或对数操作;和/或递归逻辑操作,例如AND、OR、XOR、NOT等;以及三角函数操作,例如正弦、余弦、正切等。如将了解,前述操作列表既不意图为穷尽性的,也不意图为限制性的,且存储器装置116-1到116-N和/或处理单元110-1到110-N可被配置成执行(或使得执行)其它算术操作、逻辑操作、按位操作或其它操作。
在一些实施例中,存储装置/存储器控制器104可进一步被配置成发送命令以使得由处理单元110-1到110-N和/或存储器装置116-1到116-N执行的操作(例如存储器操作)的执行同步。举例来说,存储装置/存储器控制器104(和/或主机102)可向第一处理单元110-1断言使得第一处理单元110-1和/或第一存储器装置116-1执行第一操作的信号和/或命令,且存储装置/存储器控制器104(或主机102)可向第二处理单元110-N断言使用第二处理单元110-N和/或第二存储器装置116-N来执行第二存储器操作的信号和/或命令。存储装置/存储器控制器104使得由处理单元110所执行的操作(例如存储器操作)的执行同步可进一步包含使得处理单元110在特定时间或以特定次序执行特定操作。
如更详细地描述,在本文中,由存储器操作的执行所产生的数据可存储在存储器装置116中在存储器操作的执行之前存储数据的原始地址中,然而,在一些实施例中,由存储器操作的执行所产生的数据块可在存储器操作的执行之后转换成逻辑记录。逻辑记录可包括独立于其物理位置的数据记录。举例来说,逻辑记录可为指向存储器装置116中的至少一者中存储对应于存储器操作的执行的物理数据的地址(例如,位置)的数据记录。
在一些实施例中,存储器操作的结果可存储在存储器装置116的与在存储器操作的执行之前存储数据的地址相同的地址中。然而,实施例不限于此,且存储器操作的结果可存储在存储器装置116的与在存储器操作的执行之前存储数据的地址不同的地址中。在一些实施例中,逻辑记录可指向这些地址位置,使得可从处理单元110存取经扩展存储器操作的结果且将所述结果传送到处理单元110外部的电路(例如,传送到主机102)。
在一些实施例中,存储装置/存储器控制器104可直接从存储器装置116接收数据块和/或将数据块发送到存储器装置116。这可允许存储装置/存储器控制器104将未被处理单元110和/或存储器装置116处理的数据块(例如,未在存储器操作的执行中使用的数据块)传送进出存储装置/存储器控制器104和/或主机102。
举例来说,如果存储装置/存储器控制器104从主机102接收待由存储器装置116存储的未处理数据块,那么存储装置/存储器控制器104可使得所述未处理数据块被传送到存储器装置116。类似地,如果主机102请求未处理(例如完整)数据块(例如,未被处理单元110和/或存储器装置116处理的数据块),那么存储装置/存储器控制器104可使得未处理数据块被传送到主机102。
在其中处理单元110-1到110-N和相应存储器装置116-1到116-N为电阻可变存储器装置(相应处理单元110-1到110-N部署在所述相应存储器装置116-1到116-N上且以设备的形式提供)的非限制性实施例中,处理单元110-1到110-N可被配置成接收使得电阻可变存储器装置116-1到116-N以第一模式操作的第一命令,在所述第一模式中,电阻可变存储器装置116-1到116-N执行读取操作或写入操作或两者。在一些实施例中,处理单元110-1到110-N可被配置成接收使得电阻可变存储器装置116-1到116-N以第二模式操作的第二命令,在所述第二模式中,电阻可变存储器装置116-1到116-N执行计算操作。响应于接收到第二命令,处理单元110-1到110-N可使得修改存储于电阻可变存储器装置116-1到116-N的存储器单元集合中的数据的操作执行。如上文所描述,所述操作可为移除不相关数据、提取相关数据或以其它方式减少数据块中一定量的位的操作,和/或算术操作、按位操作、逻辑操作或其它存储器操作。
在一些实施例中,处理单元110-1到110-N可被配置成通过使得存储于存储器单元集合中的数据在电阻可变存储器装置116-1到116-N的第一部分与电阻可变存储器装置116-1到116-N的第二部分之间选择性传送来使得所述操作执行。电阻可变存储器装置116-1到116-N的第一部分和/或电阻可变存储器装置116-1到116-N的第二部分可指与电阻可变存储器装置116-1到116-N相关联的存储器单元组。举例来说,电阻可变存储器装置116-1到116-N的第一部分和/或电阻可变存储器装置116-1到116-N的第二部分可指电阻可变存储器装置116-1到116-N中可小于电阻可变存储器装置116-1到116-N所存储的数据块的存储器单元子集。
处理单元116-1到116-N可被配置成接收指示调用特定类型的操作来修改存储于存储器单元集合中的数据的信令,且响应于接收到所述信令而检索存储于存储器单元集合中的数据。在一些实施例中,处理单元110-1到110-N可根据所接收的信令来执行(或使得执行)修改数据的操作,且将修改数据的操作的结果传送(或使得将所述结果传送)到电阻可变存储器装置。举例来说,响应于完成操作,处理单元110-1到110-N可将操作的结果传送(或使得将所述结果传送)到电阻可变存储器装置116-1到116-N内的一位置。在一些实施例中,电阻可变存储器装置116-1到116-N内的所述位置可为在执行操作之前存储数据的同一位置。举例来说,处理单元110-1到110-N可被配置成将修改数据的操作的结果传送到在执行操作之前存储数据的电阻可变存储器装置116-1到116-N的存储器单元集合的至少一部分。
在一些实施例中,处理单元110-1到110-N可被配置成通过选择性地移除数据的至少一部分使得被选择性移除的数据的所述部分不可恢复来执行修改数据的操作。举例来说,如果操作包含选择性移除不相关数据或提取相关数据的操作,那么处理单元110-1到110-N可被配置成删除不相关数据使得所述不相关数据不可恢复。
处理单元110-1到110-N可被配置成在没有不同于第一命令或第二命令的主机命令的情况下使得操作的结果被传送到可耦合到电阻可变存储器装置的主机102。举例来说,处理单元110-1到110-N可被配置成在无需来自主机102的额外信令或额外命令的情况下确定操作完成且将操作的结果传送到主机102。因此,与除了用于将电阻可变存储器装置116-1到116-N置于选定操作模式的第一和/或第二命令以外主机102还产生请求操作的结果的信号和/或命令的途径相比,用于执行操作且将操作的结果提供到主机102的信号和/或命令的数量可减少。
在一些实施例中,设备可进一步包含与上文所描述的处理单元(例如,处理单元110-1)不同的处理单元(例如,处理单元110-N)。不同处理单元(例如,110-N)可驻留在与其上部署处理单元110-1的电阻可变存储器装置(例如,电阻可变存储器装置116-1)不同的电阻可变存储器装置(例如,电阻可变存储器装置116-N)上。在此等实施例中,处理单元110-1到110-N可被配置成与彼此通信以促进操作(或作为操作的组成部分的多个子操作)的执行。举例来说,处理单元110-1可至少部分地基于接收到第二命令而确定数据存储于不同电阻可变存储器装置116-N的存储器单元集合中,从不同电阻可变存储器装置116-N请求数据,且使得修改存储于不同电阻可变存储器装置116-N的不同存储器单元集合中的数据的操作执行。
在另一非限制性实例中,计算系统100可包含主机102、耦合到主机102的存储装置/存储器控制器104(其可被简称为“控制器”)和其上各自驻留有至少一个相应处理单元110-1到110-N的多个电阻可变存储器装置116-1到116-N。相应处理单元110-1到110-N可被配置成接收指示以第一模式或第二模式操作其上驻留相应处理单元110-1到110-N的电阻可变存储器装置116-1到116-N的信令,且响应于所述信令使得其上驻留处理单元110-1到110-N的电阻可变存储器装置116-1到116-N以所述第一模式或所述第二模式操作。在一些实施例中,相应处理单元110-1到110-N可进一步被配置成响应于所接收信令指示以第二模式操作其上驻留处理单元110-1到110-N的电阻可变存储器装置116-1到116-N而使得其上驻留相应处理单元110-1到110-N的电阻可变存储器装置116-1到116-N执行存储器操作。
如上文所描述,第一模式或第二模式中的至少一者可为“正常”操作模式,在所述正常操作模式中,电阻可变存储器装置116-1到116-N用作计算系统100的存储装置和/或存储器装置,而第一模式或第二模式中的另一者中的至少一者可为“计算”操作模式,在所述计算操作模式中,电阻可变存储器装置116-1到116-N操作以使用电阻可变存储器装置116-1到116-N所存储的数据来执行存储器操作。
在一些实施例中,相应处理单元110-1到110-N可被配置成从主机102接收信令,且在没有来自主机102的插入信号的情况下使得其上驻留相应处理单元110-1到110-N的存储器装置116-1到116-N执行存储器操作。举例来说,处理单元110-1到110-N可被配置成在无需来自主机102的额外信令或额外命令的情况下执行操作和/或将操作的结果传送到主机102。因此,与除了用于将电阻可变存储器装置116-1到116-N置于选定操作模式的第一和/或第二命令以外主机102还产生请求操作的结果的信号和/或命令的途径相比,用于执行操作和/或将操作的结果提供到主机102的信号和/或命令的数量可减少。
相应处理单元110-1到110-N可被配置成从控制器104接收信令,且在没有来自控制器104的插入信号的情况下使得其上驻留相应处理单元110-1到110-N的存储器装置116-1到116-N执行存储器操作。举例来说,处理单元110-1到110-N可被配置成在无需来自控制器104的额外信令或额外命令的情况下执行操作和/或将操作的结果传送到控制器104。因此,与除了用于将电阻可变存储器装置116-1到116-N置于选定操作模式的第一和/或第二命令以外控制器104还产生请求操作的结果的信号和/或命令的途径相比,用于执行操作和/或将操作的结果提供到控制器104的信号和/或命令的数量可减少。
如上文所描述,在一些实施例中,存储器操作可包括算术操作、逻辑操作、修改存储于电阻可变存储器装置的存储器单元集合中的数据的操作或其组合,但实施例不限于存储器操作的这些特定所列举实例。
相应处理单元110-1到110-N可被配置成将存储器操作的结果传送到在操作的执行之前存储数据的存储器单元集合的至少一部分。在一些实施例中,相应处理单元110-1到110-N可被配置成通过使得存储于其上驻留相应处理单元的电阻可变存储器装置中的数据在电阻可变存储器装置的第一部分与电阻可变存储器装置的第二部分之间选择性传送来使得存储器操作执行。电阻可变存储器装置116-1到116-N的第一部分和/或电阻可变存储器装置116-1到116-N的第二部分可指与电阻可变存储器装置116-1到116-N相关联的存储器单元组。举例来说,电阻可变存储器装置116-1到116-N的第一部分和/或电阻可变存储器装置116-1到116-N的第二部分可指电阻可变存储器装置116-1到116-N中可小于电阻可变存储器装置116-1到116-N所存储的数据块的存储器单元子集。
在一些实施例中,相应处理单元110-1到110-N可被配置成从主机102接收信令,和/或在没有从主机102、控制器104或两者接收到的插入命令的情况下使得存储器操作的结果被传送到主机。举例来说,相应处理单元110-1到110-N可被配置成在无需来自主机102和/或控制器104的额外信令或额外命令的情况下确定操作完成且将操作的结果传送到主机102和/或控制器104。因此,与除了用于将电阻可变存储器装置116-1到116-N置于选定操作模式的第一和/或第二命令以外主机102和/或控制器104还产生请求操作的结果的信号和/或命令的途径相比,用于执行操作且将操作的结果提供到主机102和/或控制器104的信号和/或命令的数量可减少。
主机102可以是主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话、存储卡读卡器和/或物联网启用装置,以及各种其它类型的主机,且可以包含存储器存取装置(例如,处理器或处理装置)。所属领域的一般技术人员将理解,“处理器”可以是一或多个处理器,例如平行处理系统、数个协同处理器等。主机102可包含系统母板和/或底板,且可包含数个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路)。在一些实施例中,主机可包含主机控制器,所述主机控制器可被配置成通过(例如)产生命令且将命令传送到主机控制器以使得例如经扩展存储器操作等操作执行来控制主机102的至少一些操作。主机控制器可包含可被配置成控制主机102的至少一些操作的电路(例如,硬件)。举例来说,主机控制器可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)或被配置成控制主机102的至少一些操作的电路和/或逻辑的其它组合。
主机102可经由接口103耦合到存储装置/存储器控制器104。接口103可包含通信子系统(例如,XBAR,或被配置成在主机102与存储装置/存储器控制器104之间传送数据和/或命令的其它通信子系统)、外围组件互连高速(PCIe)总线、双数据速率(DDR)接口、互连接口(例如AXI互连接口)、多路复用器(mux)或其它合适的接口或总线。然而,实施例不限于此。
系统100可包含单独的集成电路,或主机102、存储装置/存储器控制器104、处理单元110-1到110-N和/或存储器装置116-1、…、116-N可在同一集成电路上。举例来说,系统100可以是服务器系统和/或高性能计算(HPC)系统和/或其一部分。尽管图1中展示的实例说明具有冯·诺依曼(Von Neumann)架构的系统,但本公开的实施例可实施于非冯·诺依曼架构中,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
图1的实施例可包含为避免模糊本公开的实施例而未说明的额外电路。举例来说,计算系统100可包含地址电路系统,以锁存经由I/O电路系统在I/O连接上提供的地址信号。可通过行解码器和列解码器接收和解码地址信号以存取存储器装置116-1到116-N。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置116-1到116-N的密度和架构。
图2为根据本公开的数个实施例的呈计算系统200形式的功能框图,所述计算系统包含存储装置/存储器控制器204和其上驻留有相应多个处理单元210-1到210-N和211-1到211-N的多个存储器装置216-1到216-N。主机202、存储装置/存储器控制器204、存储器装置216和/或处理单元210/211可分开或一起被称为设备。如本文所使用,“设备”可指但不限于各种结构或结构组合中的任一者,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。
主机202、存储装置/存储器控制器204、存储器装置216-1到216-N和/或处理单元210-1到210-N和/或211-1到211-N可类似于上文关于图1所说明和描述的主机102、存储装置/存储器控制器104、存储器装置116-1到116-N和/或处理单元110-1到110-N。如图2中所展示,存储装置/存储器控制器204可经由接口203耦合到主机202,所述接口可类似于图1中所说明的接口103。此外,存储装置/存储器控制器204可经由相应通信路径207-1到207-N耦合到存储器装置216-1到216-N,所述通信路径可类似于图1中所说明的通信路径107-1到107-N。
与图1中描绘的实施例相对比,图2中展示的实施例包含驻留于存储器装置216-1到216-N上的多个处理单元210-1到210-N和211-1到211-N。驻留于存储器装置261-1上的处理单元210-1到210-N可经由一或多个接口206-1耦合在一起,而驻留于存储器装置216-N上的处理单元211-1到211-N可经由一或多个接口206-N耦合在一起。接口206-1到206-N可包含通信子系统(例如,XBAR,或被配置成在处理单元210-1到210-N与211-1到211-N之间传送数据和/或命令的其它通信子系统)、外围组件互连高速(PCIe)总线、双数据速率(DDR)接口、互连接口(例如AXI互连接口)、多路复用器(mux)或其它合适的接口或总线。然而,实施例不限于此。
在一些实施例中,驻留于存储器装置216-1上的处理单元210-1到210-N中的一或多者和/或驻留于存储器装置216-N上的处理单元211-1到211-N中的一或多者可接收以各种操作模式选择性操作存储器装置216-1到216-N的信令和/或命令。如上文所描述,操作模式可包含:“正常”操作模式,其中存储器装置216-1到216-N用作计算系统200的存储装置和/或存储器;“计算”操作模式;等等。
驻留于存储器装置216-1上的处理单元210-1到210-N和/或驻留于存储器装置216-N上的处理单元211-1到211-N中的一或多者可独立或协同地操作以使用存储于存储器装置216-1到216-N中的数据来执行存储器操作和/或使用存储于存储器装置216-1到216-N中的数据来使得存储器操作执行。举例来说,在一些实施例中,第一处理单元(例如,处理单元210-1)可接收使得存储器装置216-1以计算模式操作从而使用存储器装置216-1所存储的数据来执行存储器操作的信令和/或命令。视待执行的存储器操作的类型和/或复杂度而定,处理单元210-1可执行存储器操作,使得存储器装置216-1执行存储器操作,和/或将存储器操作的一部分的执行分担到不同处理单元(例如,处理单元210-N)。
图3为根据本公开的数个实施例的呈计算系统300形式的功能框图,所述计算系统包含其上驻留有处理单元310的存储装置/存储器控制器304和多个存储器装置316-1到316-N。主机302、存储装置/存储器控制器304、处理单元310和/或存储器装置316-1到316-N可分开或一起被称为设备。
主机302、存储装置/存储器控制器304、存储器装置316-1到316-N和/或处理单元310可类似于上文关于图1所说明和描述的主机102、存储装置/存储器控制器104、存储器装置116-1到116-N和/或处理单元110-1到110-N。如图3中所展示,存储装置/存储器控制器304可经由接口303耦合到主机302,所述接口可类似于图1中所说明的接口103。此外,存储装置/存储器控制器304和/或处理单元310可经由相应通信路径307-1到307-N耦合到存储器装置316-1到316-N,所述通信路径可类似于图1中所说明的通信路径107-1到107-N。
图4为根据本公开的数个实施例的呈计算系统400形式的功能框图,所述计算系统包含其上驻留有多个处理单元410-1到410-N的存储装置/存储器控制器404和多个存储器装置416-1到416-N。主机402、存储装置/存储器控制器404、处理单元410-1到410-N和/或存储器装置416-1到416-N可分开或一起被称为设备。
主机402、存储装置/存储器控制器404、存储器装置416-1到416-N和/或处理单元410-1到410-N可类似于上文关于图1所说明和描述的主机102、存储装置/存储器控制器104、存储器装置116-1到116-N和/或处理单元110-1到110-N。如图4中所展示,存储装置/存储器控制器404可经由接口403耦合到主机402,所述接口可类似于图1中所说明的接口103。此外,存储装置/存储器控制器404和/或处理单元410可经由相应通信路径407-1到407-N耦合到存储器装置416-1到416-N,所述通信路径可类似于图1中所说明的通信路径107-1到107-N。在一些实施例中,处理单元410-1到410-N可经由一或多个接口406彼此通信耦合。接口406可包含通信子系统(例如,XBAR,或被配置成在处理单元410-1到410-N之间传送数据和/或命令的其它通信子系统)、外围组件互连高速(PCIe)总线、双数据速率(DDR)接口、互连接口(例如AXI互连接口)、多路复用器(mux)或其它合适的接口或总线。然而,实施例不限于此。
图5为根据本公开的数个实施例的呈计算系统500形式的功能框图,所述计算系统包含处理单元510、存储装置/存储器控制器504和硬件加速器520。如图5中所展示,处理单元510可包含处理单元存储器(例如,“处理单元存储器(PROC.UNIT MEMORY)”)512。在一些实施例中,处理单元存储器512可为存储器资源,例如随机存取存储器(例如,RAM、SRAM等)。然而,实施例不限于此,且处理单元存储器512可包含各种寄存器、高速缓冲存储器、缓冲器和/或存储器阵列(例如,1T1C、2T2C、3T等DRAM阵列)。举例来说,处理单元存储器512可包含易失性存储器资源、非易失性存储器资源或易失性与非易失性存储器资源的组合。在一些实施例中,处理单元存储器512可以是高速缓冲存储器、一或多个寄存器、NVRAM、ReRAM、FeRAM、MRAM、PCM)、例如3-D交叉点(3D XP)存储器装置等电阻可变存储器装置或其组合。
处理单元存储器512可分割成一或多个可寻址存储器区。举例来说,处理单元存储器512可分割成使得不同类型的数据可存储于其中的可寻址存储器区。举例来说,一或多个存储器区可存储处理单元510使用的指令和/或处理单元510使用的命令。在一些实施例中,作为由处理单元510执行的存储器操作的执行的部分,处理单元存储器512可用于存储从存储器装置(例如,本文在图1中所说明的存储器装置116-1到116-N)检索的数据。
处理单元510可耦合到一或多个硬件装置,例如硬件加速器520、算术逻辑单元522和/或神经形态处理器524。硬件加速器520的一些实例包含声音处理单元(例如,声卡)、图形处理单元(GPU或“图形卡”)、数字信号处理单元、模拟信号处理单元、计算机联网处理单元(例如,芯片上网络、TCP卸载引擎、I/O加速处理单元等)、密码处理单元(例如,密码加速器单元,其可提供基于硬件的加密和/或解密)、人工智能处理单元(例如,视觉处理单元、神经网络处理单元等)、张量处理单元、物理处理单元、正则表达式处理单元和/或数据压缩加速单元等等。硬件加速器520可以现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或复杂可编程逻辑装置、芯片上系统等形式作为计算机硬件提供。应了解,硬件加速器的前述所列举实例且具体地说计算机硬件的所列举实例既不是限制性的也不是穷尽性的,且其它硬件加速器和/或计算机硬件涵盖在本公开的范围内。
算术逻辑单元(ALU)522可包含可对存储器装置所存储的数据执行例如算术操作、逻辑操作、按位操作等操作的组合数字电子电路。在一些实施例中,ALU可被配置成响应于接收到由处理单元510、存储装置/存储器控制器504、主机502和/或存储器装置所产生的信令和/或命令而执行此类操作。
神经形态处理器524可为被配置成模拟神经系统中存在的神经生物架构的硬件装置。在一些实施例中,神经形态处理器524可被配置成执行机器学习算法,其方式使得神经形态处理器524可被训练成基于先前所学习的情境、模式或其它可学习准则来执行操作。
如上文所描述,处理单元510可接收指示耦合到处理单元的存储器装置的操作模式的信令和/或命令。举例来说,处理单元510可接收指示处理单元510和/或存储器装置以特定操作模式操作的信令和/或命令。一旦所述信令和/或命令已指示特定操作模式,即可使用处理单元510和/或存储器装置来执行符合所述信令和/或命令所指示的操作模式的操作。
如果信令和/或命令指示“测试(test/testing)”操作模式,那么处理单元510和/或存储器装置可操作以对与计算系统500相关联的各种硬件组件执行测试操作。举例来说,处理单元510和/或存储器装置可操作以测试硬件加速器520、算术逻辑单元522和/或神经形态处理器524的各种性能属性和/或操作特性。测试可包含在类似计算系统性能特性下测试不同硬件组件(例如,不同硬件加速器等)以确定特定硬件组件相比于其它硬件组件是否更好地适合于特定任务。
在非限制性实例中,处理单元510可接收指示以“测试”操作模式操作存储器装置的信令和/或命令。作为响应,处理单元510和/或存储器装置可进入所述“测试”操作模式,且开始使用硬件加速器520、算术逻辑单元522和/或神经形态处理器524来执行一或多种测试。为简单起见,下文为存在多个硬件加速器520的实例,然而,应了解,作为使用图5中所展示的实例系统500来执行测试操作的部分,类似技术可应用于其它硬件组件(例如,算术逻辑单元522和/或神经形态处理器524)。
继续本实例,处理单元510可在由硬件加速器520执行的任务的执行期间监视硬件加速器520以确定硬件加速器520相比于其它硬件加速器520更好或更坏地执行特定任务。举例来说,可通过处理单元510将特定任务分配给硬件加速器520中的每一者。接着处理单元510可在任务的执行期间监视与硬件加速器520的性能相关联的速度、功率消耗、准确性或其它特性,以确定硬件加速器520中的哪些硬件加速器(如果存在)相比于其它硬件加速器更好地执行任务(例如,更快、具有更少功率消耗、具有更高准确度等)。
接着处理单元510可使得在测试操作期间收集的信息存储于处理单元存储器512中以供在稍后时间在特定任务的执行期间使用。举例来说,如果在任务已执行之后,处理单元510确定第一硬件加速器比第二硬件加速器更高效地执行任务,那么处理单元510可存储指示第一硬件加速器执行所述特定任务的性能增加的信息。如果在稍后时间调用相同(或类似)任务,那么处理单元510可基于处理单元存储器512中所存储的信息而将所述任务分配到硬件加速器520(例如,第一硬件加速器)。
图6为表示根据本公开的数个实施例的对应于可选择性操作的存储器装置的实例方法的流程图630。方法630可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。尽管以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明处理程序可以不同次序执行,且一些处理程序可并行地执行。另外,在各种实施例中可省去一或多个处理程序。因此,并非每个实施例中都需要所有处理程序。其它处理程序流程是可能的。
在方框632处,方法630可包含通过电阻可变存储器装置接收以第一模式或第二模式来操作所述电阻可变存储器装置的命令。电阻可变存储器装置可类似于本文图1到4中所说明的存储器装置116-1到116-N/216-1到216-N/316-1到316-N/416-1到416-N。如上文所描述,第一模式、第二模式等可包含:“正常”操作模式,其中存储器装置用作计算系统的存储装置和/或存储器;“计算”操作模式,其中存储器装置使用存储器装置所存储的数据来执行存储器操作;和/或“测试”模式,其中处理单元和/或存储器装置对各种硬件组件操作执行测试操作;以及其它模式。
在方框634处,方法630可包含至少部分地基于所述所接收命令而以第一模式或第二模式来操作电阻可变存储器装置,以在第一模式中执行读取操作或写入操作或两者,或在第二模式中执行计算操作、测试操作或两者。在一些实施例中,可响应于在可耦合到电阻可变存储器装置的主机计算装置(例如,本文图1到5中所说明的主机102/202/302/402/502)处所产生的调用指定功能的请求而从所述主机计算装置接收以第一模式或第二模式来选择性操作电阻可变存储器装置的命令。
在方框636处,方法630可包含至少部分地基于对电阻可变存储器装置正以第二模式操作的确定而使用驻留于电阻可变存储器装置上的处理单元来执行计算操作、测试操作或两者。
在一些实施例中,作为执行计算操作的部分,方法630可包含通过选择性地移除数据或选择性地重新排序所述数据而执行修改存储于电阻可变存储器装置的存储器单元集合中的数据的操作。然而,实施例不限于此,且在一些实施例中,作为逻辑操作的操作数,方法630可包含通过使用数据的至少一部分来执行逻辑操作而执行修改存储于电阻可变存储器装置的存储器单元集合中的数据的操作。
方法630可包含响应于对计算操作、测试操作或两者完成的确定而将由计算操作、测试操作或两者的执行所产生的数据存储在电阻可变存储器装置中。举例来说,由计算操作、测试操作或两者的执行所产生的数据可在没有由主机或处理单元等产生的插入命令的情况下存储于电阻可变存储器装置中。然而,实施例不限于此,且在一些实施例中,方法630可包含响应于接收到传送由计算操作、测试操作或两者所产生的数据的主机请求而将由计算操作、测试操作或两者的执行所产生的数据传送到电阻可变存储器装置和处理单元外部的电路。
尽管已在本文中说明并描述了特定实施例,但所属领域的一般技术人员应了解,经计算以实现相同结果的布置可取代所展示的特定实施例。本公开意图涵盖本公开的一或多个实施例的修改或变化。应理解,以上描述是以说明方式而非限制方式进行的。对于所属领域的技术人员来说在审阅以上描述之后以上实施例的组合和本文中未特定描述的其它实施例将是显而易见的。本公开的一或多个实施例的范围包含其中使用以上结构和处理程序的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一并归到单个实施例中。本公开的这一方法不应被理解为反映本公开的所公开实施例必须使用比每个权利要求中明确陈述的特征更多的特征的意图。相反,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每项权利要求就其自身来说作为单独实施例。
- 可选择性操作的存储器装置
- 存储器单元、存储器单元编程方法、存储器单元读取方法、存储器单元操作方法及存储器装置