技术领域
[0003] 本公开总体上涉及存储器阵列,更具体地涉及具有智能计算存储器电路的智能计算电阻式存储器(例如,电阻式RAM),该智能计算存储器电路具有集成处理器和逻辑电路以实现自适应存储器管理和控制以及自适应片上系统(SOC)和电子子系统功率或性能改进。
相关背景技术
[0004] 磁性随机存取存储器(MRAM)设备正被开发为用于许多应用的常规半导体存储器设备的替代品,这些应用包括物联网(IoT)、人工智能(AI)、消费者到服务器信息存储、无线和有线通信(包括移动电话)和/或信息处理(包括微处理器)。嵌入式MRAM设备提供了比传统静态随机存取存储器SRAM密度相对更高的持久性(非易失性)存储。
[0005] 用于IoT、可穿戴市场和人工智能(AI)的现代便携式电子设备存在限制电池寿命或影响热功率耗散的功耗问题。与访问片上存储器相比,必须访问片外存储器可能会导致
30倍‑60倍的功耗。片上系统(SoC)中的中央处理单元(CPU)是电子设备中功耗最高的组件中的一个。每当CPU通电时,功率就从几微安变为几百微安,并且在某些情况下是几毫安或甚至是几十毫安。因此,在通电状态期间,CPU的功率增长200至3000倍以上。在通电状态期间,频繁的片外存储器访问和CPU操作显著增加了功耗,并缩短了电池寿命,或者降低了电子设备的热功率耗散。此外,对于高性能系统,脱离芯片并且有时连接到主服务器CPU,意味着可能影响系统效率和总体功率耗散的延迟。
具体实施方式
[0023] 在以下描述中,阐述了许多具体细节,诸如特定组件、电路和过程的示例,以提供对本公开的透彻理解。本文使用的术语“耦合”是指直接连接或通过一个或多个中间组件或电路连接。此外,在下面的描述中并且出于说明的目的,阐述了具体的命名法以提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,实践示例性具体实施可不需要这些具体细节。在其他情况下,以框图形式示出众所周知的电路和设备,以避免混淆本公开。本公开不应被解释为限于本文所描述的具体示例,而是应在其范围内包括由所附权利要求所定义的所有具体实施。
[0024] 下文将参考附图更全面地描述本公开的各个方面。然而,本公开可以以许多不同的形式体现,并且不应被解释为限于在整个本公开中展示的任何特定结构或功能。相反,提供这些方面使得本公开将是彻底和完整的,并且将向本领域技术人员充分传达本公开的范围。基于本文的教导,本领域技术人员应当理解,本公开的范围旨在涵盖本文所公开的公开内容的任何方面,无论是独立于本公开的任何其他方面实现还是与本公开的其他方面结合实现。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。此外,本公开的范围旨在涵盖这种装置或方法,该装置或方法使用除了本文所阐述的本公开内容的各个方面之外或不同于本文所阐述的本公开内容的各个方面的其他结构、功能或结构和功能来实践。应当理解,本文公开的公开内容的任何方面都可由权利要求的一个或多个元素来体现。在不脱离本公开的范围的情况下,可以对所讨论的元件的功能和布置进行改变。各种示例可视情况省略、替换或添加各种程序或组件。例如,所描述的方法可以以与所描述的顺序不同的顺序执行,并且可以添加、省略或组合各种步骤。此外,关于一些示例描述的特征可以组合在其他示例中。
[0025] 然而,应该记住的是,所有这些和类似的术语都将与适当的物理量相关联,并且只是应用于这些量的方便的标签。除非另有明确说明,否则应当理解的是,如从以下讨论中显而易见的,在整个本申请中,利用诸如“访问”、“接收”、“发送”、“使用”、“选择”、“确定”、“归一化”、“相乘”、“平均”、“监测”、“比较”、“应用”、“更新”、“测量”等术语的讨论指的是计算机系统或类似的电子计算设备的动作和过程,该类似的电子计算设备操纵计算机系统的寄存器和存储器内表示为物理(电子)量的数据并将其转换为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
[0026] 如本文所用,术语“确定”包括各种各样的动作。例如,“确定”可包括运算、计算、处理、导出、调查、查找(例如,在表、数据库或其他数据结构中查找)、探知等。而且,“确定”可包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。而且,“确定”可包括解决、挑选、选择、建立等。而且,“确定”可包括测量、估计等。
[0027] 如本文所用,术语“生成”包括各种各样的动作。例如,“生成”可包括运算、引起、计算、创建、确定、处理、导出、调查、制作、产生、提供、使发生、导致、结果、查找(例如,在表、数据库或其他数据结构中查找)、探知等。而且,“生成”可包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。而且,“生成”可包括解析、挑选、选择、建立等。
[0028] 如本文所用,提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖a、b、c、a‑b、a‑c、b‑c和a‑b‑c,以及包括多个相同成员的任何此类列表(例如,包括aa、bb或cc的任何列表)。
[0029] 在附图中,单个框可被描述为执行一个或多个功能;然而,在实际实践中,由该框执行的一个或多个功能可在单个组件中或跨多个组件执行,和/或可使用硬件、使用软件或使用硬件和软件的组合来执行。为了清楚地展示硬件和软件的这种可互换性,下面在其功能性方面对各种说明性的组件、块、模块、电路和步骤进行了总体描述。这种功能是实现为硬件还是实现为软件取决于特定应用和施加在整个系统上的设计约束。技术人员可针对每个特定应用以不同方式实现所描述的功能,但是这种实现决策不应被解释为导致脱离本权利要求的范围。
[0030] 电阻式RAM存储单元将存储的数据表示为不同的电阻值,并且通常被称为基于电阻的存储单元,因为存储在其中的数据的逻辑状态可通过测量MRAM存储单元的电阻值来确定。示例性的基于电阻的存储单元可包括但不限于磁性RAM(MRAM),诸如自旋转移扭矩
(STT)存储单元、自旋轨道扭矩(SOT)存储单元、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元。举例来说,STT MRAM存储单元可通过改变磁性隧道结(MTJ)元件的等效电阻来存储数据的不同逻辑状态。在写入操作期间,可通过改变驱动通过存储单元的电流和/或电压来将数据编程到基于电阻的存储单元中,例如,将基于电阻的存储单元编程到高阻抗值或低阻抗值。在读取操作期间,可通过基于电阻的存储单元驱动受控电流,以确定指示存储在其中的数据的逻辑状态的阻抗值。
[0031] 由于数据收集的增加,将所有数据移动到云或跨服务器已不再实用和节能。芯片大小和功耗变得由存储器和存储器访问支配。需要增加非易失性存储器来存储程序、模型/系数,并收集更多的数据。例如AI/信号处理就是这样,其中,深度或卷积神经网络所需的AI系数可超过1GB的存储器。外部存储器可满足这些需求,但外部存储器的存储器访问功率耗散非常高(例如,外部低功率双数据速率(LPDDR4)RAM存储器的功率耗散是内部SRAM存储器的57.5倍)。然而,内部存储器基于电子设备的形状因素而受到面积限制。
[0032] 比以往任何时候都更重要的是,拥有高效的片上存储器以实现超低功率耗散,并因此延长电池寿命或实现更高效的处理/功率足迹。
[0033] 频繁的片外存储器访问和密集的功耗设备(诸如在接通状态期间操作的CPU)显著增加了电子设备的功耗并缩短了电池寿命。此外,RF电路在RF电路的正常操作期间也会消耗大量功率。
[0034] 本设计包括智能计算电阻式RAM,用于将计算和学习操作从主机系统(例如,CPU、处理器、微处理器)移动到智能计算电阻式存储器,以降低不同类型电子设备的功耗。存储器内的计算能够实时执行某些操作,从而改进性能和整体系统功率。电阻式RAM内的本地化处理将大大降低电子设备的总体功率耗散。特别地,CPU将更频繁地在低功率休眠模式下操作,而不是通常处于完全操作接通状态。
[0035] 对于IoT、可穿戴市场甚至AI而言,功率是电池寿命,或整体功率降低以及与更高功率相关的热问题的关键组成部分。在许多应用中,由于不必到云端(或电话)进行处理而导致的低延迟也是关键因素。存储器中的本地处理还可在网络不良的情况下实现一定的自主性以及在网络连接是不可能的火灾/紧急情况下实现安全性。
[0036] 而且,通过执行驱动器本地的一些操作,而不是将数据从驱动器发送到主机系统然后使主机系统执行操作或计算,本设计有可能减少企业存储驱动器中的延迟并改进性能。
[0037] 智能计算存储器还可用于增强存储器管理和控制。可编程存储器管理和控制使得能够优化存储器性能与存储器耐久性(例如,在较低能量读取/写入操作时的较长耐久时间导致较慢的性能,而在较高能量(例如,较高的电流/电压)读取/写入操作时,导致较快的性能和较低的耐久性)。可编程存储器管理和控制管理不同的写入/读取模式,以实现更大的使用灵活性。
[0038] 图1描绘了根据一个实施例的具有智能计算存储器的存储器子系统100的框图。存储器子系统100(例如,AI子系统、存储器电路100)包括:输入/输出(I/O)电路110,该电路具有主接通功率状态以管理到存储器子系统的数据的输入/输出;智能计算存储器功率管理电路120;以及智能计算存储器电路150,该电路包括集成处理器160(例如,处理器、微处理器、微控制器等);智能计算存储器管理和控制电路190;存储器接口170;可选的自适应存储器管理与控制电路(AMMC)172以及电阻式存储器阵列180。(I/O)电路110具有接通功率状态以接收诸如流数据的外部输入。
[0039] 电阻式存储器阵列180可以是任何类型的非易失性电阻式RAM存储器(例如,磁性RAM(MRAM),诸如自旋转移扭矩(STT)存储单元、自旋轨道扭矩(SOT)存储单元、电阻式RAM(RRAM、ReRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)、碳纳米管存储单元等),用于从非易失性RAM到低功率、高密度SRAM的应用。电阻式RAM是改变电介质固态材料两端的电阻的非易失性RAM计算机存储器。通常是绝缘的介电层可通过由施加足够高的电压形成的细丝或导电路径变得导电。电阻式存储器阵列180具有与常规RAM相比小2倍‑3.5倍的较小面积。在任何存储器应用中,这使得片上存储器增加2倍‑3.5倍,以减少片外存储器(例如,DRAM)访问,从而显著节省功率。
[0040] 该存储器子系统100可以是独立芯片或作为较大SOC的一部分嵌入。I/O电路110包括输入流控制寄存器112、存储缓冲器114(例如,流FIFO缓冲器、队列)和用于跟踪智能计算存储器电路150的功率状态的有限状态机116。通信链路130‑1、130‑2、130‑3和130‑4(例如,高速互连、PCIe)提供I/O电路110、FSM 116、集成处理器160、智能计算存储器管理和控制电路190以及智能计算存储器电路150之间的通信。互连将两个或更多个电路元件电连接在一起。集成处理器160可以是具有功率管理控制的低功率集成处理器。集成处理器通过集成功率管理有效地集成到存储器内核中。集成处理器可包括但不限于自定义逻辑功能、数字信号处理器、精简指令集计算机(RISC)或复杂指令集计算机(CISC),或自定义逻辑功能和/或DSP的组合,包括具有RISC或CISC的VLIW。集成处理器可用于存储器计算或处理应用。集成处理器可执行任何软件功能,包括加法、减法、比较甚至乘法。与CPU类似,集成处理器可处理广泛的应用,从而使智能计算存储器非常灵活,并且可适应广泛的应用。
[0041] 在一个示例中,集成处理器最初从存储器(例如,电阻式存储器阵列180、存储器1204、存储器1206)获取指令。然后对该指令进行解码,以确定要执行的动作。如果合适,则集成处理器基于指令从存储器或I/O模块中获取数据。
[0042] 然后执行指令,这可需要对数据执行算术或逻辑运算。除了执行之外,集成处理器还监督和控制I/O设备(例如,I/O电路110、输入设备1212)。如果有来自I/O设备的任何请求(称为中断),则集成处理器暂停当前程序的执行,并将控制转移到中断处理程序。最后,执行的结果可需要将数据转移到存储器或I/O模块。集成处理器是集成电路(IC)。IC是可编程多用途硅芯片,它是时钟驱动的、基于寄存器的,并接受二进制数据作为输入,并在根据存储在存储器中的指令对该二进制数据进行处理后提供输出。
[0043] 集成处理器160可用于增强电路190和AMMC 172的存储器管理和控制。可编程存储器管理和控制使得能够优化存储器参数,包括性能(例如,速度)与存储器耐久性(例如,在较低能量读取/写入操作时的较长耐久时间导致较慢的性能,而在较高能量(例如,较高的电流/电压)读取/写入操作时,导致较快的性能和较低的耐久性)。另外,集成处理器160的可编程存储器管理和控制使得能够管理用于写入/读取的不同模式,以实现更大的使用灵活性。
[0044] 集成处理器160被配置为处理数据(例如,预处理/后处理流数据),其中预处理/后处理的结果被存储在电阻式存储器阵列180中。通信链路151‑1、151‑2、151‑3和151‑4提供存储器接口170、集成处理器160、功率管理电路120和电阻式存储器阵列180之间的通信。
[0045] 在一个示例中,来自任何源(例如,计算设备、服务器、IoT设备、传感器等)的流数据被存储在缓冲器114中。在周期性间隔或每当缓冲器达到阈值满量(例如,25%满、50%满、75%满等)时,集成处理器160和电阻式存储器阵列180的至少一个区域(例如,180‑1、180‑2、180‑3、180‑4)从低功率休眠状态被唤醒到操作功率状态,而电阻式存储器阵列180的其他区域,主机系统(例如SoC主CPU 1202、处理器1227)和计算系统1200的其他组件保持在低功率休眠状态。存储器子系统100(例如,存储器1204)可与计算机系统1200集成。
[0046] 在一个示例中,FSM 116跟踪事件和缓冲器114的阈值满量水平。在缓冲器114中发生某些事件或出现阈值满量时,FSM 116向功率管理电路120提供指示符信号以改变电路150的功率状态。电路150内的所有组件可具有修改的功率状态,或者组件的子集可具有修改的功率状态。如果FSM 116确定集成处理器160已经处理了缓冲器内的所有或大部分数
据,则FSM 116可向功率管理电路120提供另一指示符信号,以改变电路150的功率状态(例如,当缓冲器中没有数据要处理时,将功率状态从操作状态降低到休眠状态)。
[0047] 集成处理器160从主存储器1206加载其软件程序,根据需要预处理数据,可执行计算,并将结果存储到电阻式存储器阵列180中。在全操作功率状态期间,集成处理器160可从缓冲器114读取数据,处理该数据或使用该数据执行计算,将计算结果写入存储器阵列180,从存储器阵列180读取这些结果,并且还可从存储器阵列180接收对数据的用户查询。
[0048] 可选地,如果集成处理器160的处理结果触发编程事件(例如,软件小程序功能、阈值事件),则集成处理器160将发出警报(例如,发出警报声、发送文本、唤醒主CPU等)。然后,集成处理器160和电阻式存储器阵列180从完全操作功率状态转变到低功率休眠状态,直到下一事件。集成处理器160与电阻式存储器阵列紧密耦合(例如,经由通信链路直接连接),这导致显著的功率节省(有效功率和空闲功率)。
[0049] 在一个示例中,存储器子系统100由主机系统(例如,主CPU 1202、处理器1227)形成或集成在单个芯片上。该存储器子系统100可配置为宽范围的输入数据宽度(x8,x16,x24,…)、主存储器大小(从小到可能超过1Gb)和处理选项(仅简单整数到复杂浮点)。
[0050] 常规方法使用多个芯片(诸如FPGA或微控制器)来进行智能计算电路的预处理,并使用另一芯片作为主存储器。然而,由于SOC主CPU频繁活动,数据必须在芯片之间多次移动,因此这种方法显著增加了功率(估计比存储器子系统100多200倍至3000倍的功率),这在切换功率方面非常昂贵。此外,如果常规方法的存储器芯片是非易失性的,如SRAM,那么它将具有显著更高的空闲功率,并且数据将必须存储在片外设备上,这将再次导致30倍‑60倍的功耗。
[0051] 在本设计的另一示例中,存储器子系统100是独立的智能计算电阻式RAM存储器,集成处理器160用于优化存储器的耐久性、性能、功率和测试功能。集成处理器160用作智能存储器管理和控制。输入数据不需要来自传感器设备;任何输入源都是有效的。
[0052] 图2描绘了根据一个实施例的具有智能计算存储器的智能计算存储器电路的功能框图。智能计算存储器电路200(例如,智能计算存储器电路150)包括电阻式存储器阵列210和用作智能存储器管理和控制的智能计算电路260(或集成处理器)。
[0053] 在一个示例中,智能计算电路260包括计算功能,该计算功能包括数据路径加法器261、数据路径比较器262、归约功能263和控制/存储寄存器264。计算功能可与存储器输入/输出(例如,I/O电路)间距匹配。
[0054] 智能计算存储器电路200在不唤醒主机系统(例如,主CPU 1202、处理器1227)的情况下提供存储器内的处理,以与典型设计相比节省10倍‑100倍的功率。计算功能可包括平均、移动平均、加法、减法、比较、简单乘法/除法、最小值/最大值、软件小程序功能(例如,if/then功能)等。如果电路200确定警报,则可以主CPU发送唤醒信号。设计自动化软件可自定义存储器大小、性能、逻辑功能和数据类型精度。
[0055] 图3展示了根据一个实施例的智能计算存储器电路300的框图。电路300提供用于在不使用主机系统(例如,主CPU 1202、处理器1227)的情况下在存储器子系统内本地处理数据的计算功能。计算功能可包括平均316、移动平均328、相似性测量功能338和更新最小/最大功能346。数据总线302向这些计算功能提供输入。使用到累加器310、除法运算312和寄存器314的最旧和最新输入来确定平均功能316,以存储该平均功能的输出。
[0056] 使用缓冲器320(例如,FIFO缓冲器)、累加器322、除法运算324和寄存器326来确定移动平均功能328,以存储该移动平均功能的输出。
[0057] 相似性测量功能338是使用到加法/减法功能330的输入A和B、绝对值确定332、具有要与输入333比较的输出反馈335的累加器334以及存储该相似性测量的输出的寄存器336来确定的。
[0058] 使用到更新最小/最大功能340的输入A和B、软件小程序功能342(例如,编程条件语句,如果确定了警报,则可向CPU发送唤醒信号)和存储该更新最小/最大功能346的输出的寄存器344来确定更新最小/最大功能346。
[0059] 图4A展示了根据一个实施例的低功率神经形态智能存储器400。存储器400包括与路由信道410互连的知识产权(IP)内核的M*N网格450。每个内核450(例如,智能计算存储器电路150、200)可被认为具有100个神经元,高达100万个神经元。
[0060] 图4B展示了根据一个实施例的IP内核的分解视图。内核450包括用于存储数据(例如,2D信号、图像、特征等)的电阻式存储器460、数据路径加法器462和数据路径比较器464。内核450具有类似于智能计算存储器电路200或类似于智能计算机存储器电路150的存储
器、寄存器和逻辑功能(例如,加法/减法、比较、累加470、软件小程序逻辑等)。
[0061] 在一个示例使用流程中,用2D数据训练神经元。对于每个输入测试向量(例如,数据468),神经元用逻辑472计算上下文或类别474的数据的相似性或距离。生成最接近的神经元匹配作为输出预测。在一个示例中,将输入图像的像素值与另一图像的像素数值进行比较。神经网络可对数据进行聚类和分类。聚类或分组是对相似性的检测。聚类可包括搜索以比较文档、图像或声音,从而浮现出类似的项目。
[0062] 分类可检测人脸、识别图像中的人、识别面部表情、识别图像中的对象(停车标志、行人、车道标记…)、识别视频中的手势、检测语音、识别说话者、将语音转录成文本或识别语音中的情感。分类可将文本分类为垃圾电子邮件(在电子邮件中)、或欺诈(在保险索赔中)或识别文本中的情感(客户反馈)。
[0063] 在一个实施例中,每个神经元/IP内核接收128字节到512字节(1Kbits‑4Kbits)的数据(例如,信号、图像、特征等)。设计自动化软件可自定义神经元数量、神经元存储器大小、性能、逻辑功能和形状。
[0064] 图5展示根据一个实施例的用于操作智能计算存储器电路以降低计算系统的功耗的方法500的流程图。尽管方法500中的操作以特定顺序示出,但是可以修改动作的顺序。因此,所展示的实施例可以以不同顺序执行,并且一些操作可并行执行。根据某些实施例,图5中所列出的操作中的一些是可选的。所呈现的操作的编号是为了清楚起见,并不旨在规定必须进行各种操作的操作顺序。另外,可以以各种组合利用来自各种流程的操作。
[0065] 计算机实现方法500的操作可由存储器子系统、智能计算存储器电路或集成处理器执行。存储器子系统、智能计算存储器电路或集成处理器可包括硬件(电路、专用逻辑等)、(诸如在通用计算机系统或专用机器或设备上运行的)软件或两者的组合。
[0066] 在操作502处,计算机实现方法包括接收来自任何源(例如,计算设备、服务器、IoT设备、传感器等)的数据(例如,流数据)。在操作504处,可将数据存储在存储器子系统的缓冲器中。计算机实现方法包括在操作506处确定缓冲器是否达到数据的阈值满量(例如,25%满、50%满、75%满等)。
[0067] 在操作508处,在周期性间隔或每当缓冲器达到阈值满量(例如,25%满、50%满、75%满等)时,智能计算存储器电路和存储器子系统的电阻式存储器阵列的至少一个区域(例如,180‑1、180‑2、180‑3、180‑4)从低功率休眠状态转变为完全操作功率状态,而电阻式存储器阵列180的其他区域、主机系统(例如SOC主CPU 1202、处理器1227)和计算系统的其他组件保持在低功率休眠状态。
[0068] 在操作510处,智能计算存储器电路从主存储器加载其软件程序,根据需要预处理数据,可执行计算,并将结果存储到电阻式存储器阵列中。
[0069] 可选地,在操作512处,如果智能计算电路的处理结果触发编程事件(例如,软件小程序功能、阈值事件),则智能计算电路将发出警报(例如,发出警报声、发送文本、唤醒主CPU等)。然后,在操作514处,智能计算电路和电阻式存储器阵列从完全操作功率状态转变为低功率休眠状态,直到下一事件发生。
[0070] 如果在操作506处,缓冲器没有达到阈值满量,则在操作516处,智能计算存储器电路和电阻式存储器阵列保持在低功率休眠状态。
[0071] 片上系统中存储器的大小和数量不断增加,给设计人员和测试工程师带来了处理大量功能或自动测试模式生成(ATPG)模式以验证存储器功能的挑战。无论是在功能上还是通过ATPG来测试存储器功能,都需要大量的测试时间,并且因此,测试成本很高。在这种情况下,难以完全验证存储器功能。因此,设计人员通过BIST(内置自测试)功能验证存储器功能。BIST是软件/硬件模块内的内置测试电路。测试电路从计算系统外部启动。然后,该测试电路运行内置模式/算法,并返回指示被测试模块是否正常工作的响应。
[0072] 大多数存储器设备包括各种自测试方法。这些方法提供加速、独特的操作模式、维修可及性和微调功能以及其他能力。虽然这些能力对于测试存储器非常强大,但这些能力通常非常复杂,难以使用,并且可能是专有的。因此,这些能力通常作为BIST引擎的一部分被绑定,并且只能以非常特定的预定义方式使用。
[0073] 通过以这种方式实现BIST功能,系统设计从简单性中受益,并且去除了任何专有信息,但结果是不灵活的,并且不能被采用来满足不同客户、制造商和多年工艺变化的测试挑战。
[0074] 相反,本设计扩展了BIST的全部能力,并将全部能力映射到电阻式存储器阵列内的扩展存储器空间。该空间通常在正常的可寻址范围之外,但是它不一定是这样,而是可像正常的存储器空间一样进行读写。这样,能够访问存储器的任何算法单元也可访问全部BIST能力。
[0075] 本设计包括自适应存储器管理和控制电路(AAMMC),该电路除了BIST之外,还能够执行其他功能,以使存储器能够单独优化,还能在它集成于其中的SOC中进行优化。因此,AMMC是BIST的超集。AMMC通常作为特殊模式对SOC用户是透明的,但可根据请求授予某些访问权限。
[0076] 在一个实施例中,AMMC提供包括性能、功率和耐久性的参数的优化。AMMC能够自适应地调整参数,包括不同操作模式的性能和功率。这可通过一组经过计算和校准的选项来执行,这些选项可改变电压或电流以编程存储器或改变读取写入次数或读取写入配置文件。
[0077] 例如,写入可包括预读取、写入,它可以是单相或两相写入。可首先执行写入逻辑状态1,然后执行写入逻辑状态0。然后,针对写入逻辑状态中的每个进行不同次数的读取验证。自定义序列也可通过利用写入然后读取/验证序列而无需预读取、写入来适应最高速度。
[0078] 在另一实施例中,AMCC提供了包括一定温度范围内的功率和性能在内的参数的优化。使用集成温度控制电路(例如,图7‑图9的电路722),AMMC可在给定温度范围内自适应地改变功率和性能,以获得最佳操作条件。在极端温度下(例如,低于0摄氏度(C),‑40摄氏度),读取或写入操作可需要更高的功率或表现出不同的访问次数。然而,一旦IC芯片操作,温度将迅速升高到0摄氏度以上。AMMC根据温度实现最佳性能,而不是在极端温度(例如,低于0摄氏度,‑40摄氏度)下使用最坏情况的性能。
[0079] 在另一实施例中,AMMC可自适应地使存储器能够从存储器内的不同存储体或区域(例如,区域680‑1、680‑2、680‑3、680‑4)读取和写入。这可用于通过使某些存储体或区域处于活动状态而使其他存储体或区域处于低功率模式(例如,休眠模式、深度休眠模式等)来优化功率。
[0080] AMCC还可用于读取和写入不同的存储体或区域,以在读取或写入操作在初始存储体或者区域中结束时,通过使用不同的存储体或区域来改进性能(例如,通过乘法因子来改进性能)。
[0081] 图6描绘了根据一个实施例的具有智能计算存储器和自适应存储器管理和控制的存储器子系统600的框图。存储器子系统600(例如,AI子系统、存储器电路)包括输入/输出(I/O)电路610,该电路具有主接通功率状态以管理到存储器子系统的数据的输入/输出,功率管理电路620,以及包括集成处理器660(例如,处理器、微处理器、微控制器、基于风险‑V的处理器等)的智能计算存储器电路650,存储器接口670,具有扩展的存储器管理和控制功能的自适应存储器管理与控制电路(AMMC)672,智能计算存储器管理及控制电路690以及电阻式存储器阵列680。(I/O)电路610具有接通功率状态以接收诸如数据(例如,流数据)的外部输入。AMMC 672耦合到接口674,以与访问AMMC 672的系统组件通信。电阻式存储器阵列
680包括与集成处理器660和存储器接口670通信的系统接口682。可替代地,存储器接口670被移除,并且系统接口682与系统组件通信。
[0082] 电阻式存储器阵列680可以是任何类型的非易失性电阻式RAM存储器,用于从非易失性RAM到低功率、高密度SRAM的应用。非易失性电阻式RAM的示例性的基于电阻的存储单元可包括但不限于磁性RAM(MRAM),诸如自旋转移扭矩(STT)存储单元、自旋轨道扭矩(SOT)存储单元、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元。
[0083] 该存储器子系统600可以是独立芯片或作为较大SOC的一部分嵌入。I/O电路610包括输入流控制寄存器612、存储器缓冲器614(例如,流FIFO缓冲器、队列)和用于跟踪存储器子系统的功率状态的有限状态机616。通信链路630‑1、630‑2、630‑3和630‑4(例如,高速互连、PCIe)提供I/O电路610、FSM 616、集成处理器660、智能计算存储器管理和控制电路690以及智能计算存储器电路650之间的通信。互连将两个或更多个电路元件电连接在一起。集成处理器660可以是具有功率管理控制的低功率集成处理器。集成处理器660可用于增强AMMC 672的存储器管理和控制。可编程存储器管理和控制使得能够优化存储器性能(例如,速度)与存储器耐久性(例如,在较低能量读取/写入操作时的较长耐久时间导致较慢的性能,而在较高能量(例如,较高的电流/电压)读取/写入操作时,导致较快的性能和较低的耐久性)。此外,集成处理器660的可编程存储器管理和控制使得能够管理用于写入/读取的不同模式,以实现更大的使用灵活性。不同模式的示例包括操纵数据以根据需要对数据进行加密/解密的第一模式、用于以不同速度写入/读取以在一定温度范围内优化功率和性能的第二模式、用于生成读取和写入操作的自定义序列的第三模式以及用于基于来自逻辑功能(例如,比较、其他处理)的输出来生成条件读取或写入操作的第四模式。
[0084] 集成处理器660被配置为预处理/后处理数据(例如,流数据),其中预处理/后处理的结果被存储在电阻式存储器阵列680中。通信链路651‑1、651‑2、650‑3和651‑4提供存储器接口670、集成处理器660、功率管理电路620和电阻式存储器阵列680之间的通信。与图1的集成处理器160相比,集成处理器660具有类似的功能。
[0085] 在一个示例中,FSM 616跟踪事件和缓冲器614的阈值满量水平。在缓冲器614中发生某些事件或出现阈值满量时,FSM 616向功率管理电路620提供指示符信号以改变电路650的功率状态。电路650内的所有组件可具有修改的功率状态,或者组件的子集可具有修改后的功率状态。
[0086] 图7展示了根据一个实施例的具有自适应存储器管理和控制电路(AMMC)的电阻式存储器的框图。电阻式存储器700包括电阻式存储器阵列702、AMMC 720、用于控制可测试性特征的测试逻辑710以及用于与其他组件(例如,集成处理器160、集成处理器660)通信的自适应存储器管理和控制接口730。系统接口704提供电阻式存储器阵列702与系统组件(例
如,CPU 1202、处理器1227、集成处理器160、智能计算电路660)之间的接口。AMMC 720可包括用于测试电阻式存储器的BIST电路。BIST电路可包括BIST硬件,该BIST硬件包括测试模式生成器、比较器和其他逻辑电路,以优化超越柔性集成处理器的功能。
[0087] 为了进一步增强AMMC 720的全部能力,利用了智能计算电路(例如,集成处理器160、集成处理器660、微处理器、微控制器)和少量可写存储器。集成处理器可用作AMMC 720的控制器。与限于8位或32位测试序列的典型微控制器相比,集成处理器可处理复杂的BIST测试序列。AMMC 720包括温度控制电路722以感测电阻式存储器702的存储单元的温度。温度控制电路722可与AMMC 720集成或定位在电阻式存储器702附近。
[0088] 在一个示例中,电阻式存储器702的可写存储器将自定义测试代码加载到电阻式存储器中,并且集成处理器将执行该代码。虽然这些组件可在正在测试的存储器外部,但为了获得改进的结果,这些组件将完全集成到存储器中。
[0089] 一种此类具体实施将允许部分地测试存储器,例如存储器区域702A和存储器区域702B。当要测试存储器区域702A时,测试代码将被加载到存储器区域702B的存储器703B中用于执行;那么当要测试存储器区域702B时,测试代码将被加载到存储器区域702A的存储器703A中。这将允许在不需要单独存储器的情况下满足可写存储器要求,这将增加存储器子系统的面积和复杂性。
[0090] 图8展示了根据另一实施例的具有集成自适应存储器管理和控制电路(AMMC)的电阻式存储器的框图。电阻式存储器800包括电阻式存储器阵列702、AMMC 720、用于控制可测试性特征的测试逻辑710以及用于与其他组件(例如,集成处理器160、集成处理器660)通信的自适应存储器管理和控制接口730。
[0091] 为了进一步增强AMMC 720的全部能力,利用了智能计算电路(例如,集成处理器160、集成处理器660、微处理器、微控制器)和少量可写存储器。集成处理器可用作AMMC 720的控制器。一个或多个存储器映射接口740被分配给AMMC 720和测试逻辑710。存储器映射区域通常在正常的可寻址范围之外,但它不一定是这种情况,并且可像正常的存储器空间一样进行读写。
[0092] 图9展示了根据另一实施例的具有集成自适应存储器管理和控制电路(AMMC)的电阻式存储器的框图。电阻式存储器900类似于电阻式存储器800,除了电阻式存储器900另外包括耦合到系统接口704的BIST算术逻辑单元(ALU)760。ALU 760可耦合到智能计算电路
(例如,集成处理器160、智能计算电路660),而系统接口704可耦合到其他系统组件。
[0093] 为了进一步增强AMMC 720的全部能力,利用了智能计算电路(例如,集成处理器160、集成处理器660、微处理器、微控制器)和少量可写存储器。集成处理器可用作AMMC 720的控制器。一个或多个存储器映射接口740被分配给AMMC 720和测试逻辑710。
[0094] 图10是展示根据一个实施例的用于提供自适应存储器管理、功率管理和控制的方法1000的流程图。尽管方法1000中的操作以特定顺序示出,但是可修改动作的顺序。因此,所展示的实施例可以以不同顺序执行,并且一些操作可以并行执行。根据某些实施例,图10中列出的操作中的一些是可选的。所呈现的操作的编号是为了清楚起见,并不旨在规定必须进行各种操作的操作顺序。另外,可以以各种组合利用来自各种流程的操作。
[0095] 计算机实现方法1000的操作可以由存储器子系统、智能计算存储器电路或集成处理器执行。存储器子系统、智能计算存储器电路或集成处理器可以包括硬件(电路、专用逻辑等)、(诸如在通用计算机系统或专用机器或设备上运行的)软件或两者的组合。
[0096] 在操作1002处,计算机实现方法包括将自适应存储器管理和控制特征映射到存储器子系统的电阻式存储器的存储器映射区域。自适应存储器管理和控制电路以及测试逻辑可提供存储器管理和控制特征。这个存储器映射区域通常在正常的可寻址范围之外,但它不一定是这种情况,并且可像正常的存储器空间一样进行读写。这样,能够访问存储器的任何算法单元也可访问全部BIST能力。
[0097] 在操作1004处,将自定义测试代码加载到电阻式存储器的第一存储器区域中。在操作1006处,存储器子系统的智能计算存储器电路(例如,集成处理器、微处理器)执行自定义测试代码以测试电阻式存储器的第二存储器区域。自定义测试代码可测试不同类型的故障(例如,固定型故障、过渡延迟故障、耦合、邻域模式敏感故障)或提供自适应或增强模式。
[0098] 在操作1008处,计算机实现方法包括读取来自第二存储器区域的响应。在操作1010处,计算机实现方法包括将读取响应与预期响应进行比较。在操作1012处,所实现的计算机响应于所述比较而执行动作。该动作可包括使存储器区域通过或不通过、优化存储器性能或耐久性,或者在一定温度范围内优化功率和性能。
[0099] 智能计算存储器电路(例如,集成处理器、微处理器)可提供增强模式,以优化存储器性能/速度与存储器耐久性(较低能量下的较长时间与较高能量下的较低耐久性)。可替代地,可提供用于写入和读取存储单元的不同模式,以实现更大的使用灵活性。在另一示例中,自适应模式包括温度监测和基于温度的电阻式存储器阵列的存储器优化。不同模式的示例包括操纵数据以根据需要对数据进行加密/解密的第一模式、用于以不同速度写入/读取以在一定温度范围内优化功率和性能的第二模式、用于生成读取和写入操作的自定义序列的第三模式以及用于基于来自逻辑功能(例如,比较、其他处理)的输出来生成条件读取或写入操作的第四模式。
[0100] 图11是根据本发明实施例的包括数据处理系统的计算机系统(或计算系统)的示意图。在计算机系统1200内具有用于使机器执行本文讨论的方法中的任何一个或多个的一组指令。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网或因特网中的其他机器。该机器可在客户端‑服务器网络环境中以服务器或客户端的身份操作,或者作为对等(或分布式)网络环境中的对等机器操作,该机器还可以以网络设备、服务器、网络路由器、交换机或网桥、事件产生器、分布式节点、中心化系统或能够(顺序地或以其他方式)执行一组指令的任何机器的身份操作,这组指令指定该机器要采取的动作。此外,虽然仅展示了单个机器,但术语“机器”也应被视为包括单独或联合执行一组(或多组)指令以执行本文所讨论的方法中的任何一种或多种的任何机器集合(例如计算机)。
[0101] 如上所述,数据处理系统1202(或CPU 1202)包括基于通用指令的处理器1227。基于通用指令的处理器可以是一个或多个基于通用指令的处理器或处理设备(例如,微处理器、中央处理单元(CPU)等)。更具体地,数据处理系统1202可以是复杂指令集计算(CISC)微处理器、精简指令集计算微处理器(RISC)、超长指令字(VLIW)微处理器、实现其他指令集的基于通用指令的处理器或实现指令集组合的基于通用指令的处理器。
[0102] 示例性计算机系统1200(或诸如移动设备、平板设备、智能手表等的无线设备1200)包括数据处理系统1202(或CPU 1202)、主存储器1206(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、非易失性电阻式RAM存储器1204(例如,基于电阻的存储单元可包括但不限于磁性RAM(MRAM),诸如自旋转移扭矩(STT)存储单元、自旋轨道扭矩(SOT)存储单元、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元等)和数据存储设备1216(例如,驱动单元形式的辅助存储器单元,其可包括固定或可移动的计算机可读存储介质),它们经由总线1208彼此通信。计算机系统1200中公开的存储单元和存储器可被配置为实现用于执行本文所讨论的操作和步骤的数据存储机制。
[0103] 在一个实施例中,数据存储设备1216包括存储区域1216a和智能计算电路1216b。通过利用智能计算电路1216b(例如,集成处理器、微处理器、微控制器等)执行数据存储设备1216本地的一些处理和计算操作,而不是将数据从数据存储设备发送到至总线1208的互连,至主机系统(例如,CPU 1202)的附加互连,并且然后使主机系统执行操作或计算,并且然后利用该智能计算电路将处理后的数据发送到至总线1208的互连,至数据存储设备1216的附加互连,本设计减少了延迟并改进了企业存储驱动器中的性能。在一个示例中,执行数据库比较/匹配操作以确定数据库是否应存储在数据存储设备中用于进行本地处理,或者数据库是否应移动到不同位置用于进行处理。
[0104] 存储器1206可存储供处理器1227使用的代码和/或数据。存储器1206包括可使用RAM(例如,SRAM、DRAM、DDRAM)、ROM、FLASH、磁性和/或光存储设备的任何组合来实现的存储器层次结构。存储器还可包括用于承载指示计算机指令或数据的信息承载信号的传输介质(具有或不具有在其上调制信号的载波)。
[0105] 存储器1204可以是如本文所讨论的存储器子系统(例如,100、600)。存储器1204可包括存储器子系统的组件中的任一个,诸如I/O电路1204a、智能计算存储器电路1204b和电阻式存储器阵列1204c。
[0106] 处理器1227和智能计算存储器电路1204b执行存储在存储器中的各种软件组件,以执行系统1200的各种功能。在一个实施例中,软件组件包括操作系统、编译器组件和通信模块(或指令集)。此外,存储器可存储上文未描述的附加模块和数据结构。
[0107] 操作系统包括用于控制和管理一般系统任务的各种程序、指令集、软件组件和/或驱动器,并促进各种硬件与软件组件之间的通信。编译器是将用编程语言编写的源代码转换为另一种计算机语言(例如,目标语言、目标代码)的计算机程序(或程序集)。通信模块利用网络接口设备1222或RF收发器1224提供与其他设备的通信。网络接口设备1222与网络1218(例如,局域网(LAN)、广域网(WAN))耦合以与其他设备通信。
[0108] 计算机系统1200可进一步包括网络接口设备1222。计算机系统1200还可包括通过图形端口和图形芯片组连接到计算机系统的可选的显示设备1210(例如,液晶显示器(LCD)、LED或阴极射线管(CRT))、可选的输入设备1212(例如,键盘、鼠标)、传感器系统
1213、照相机1214。在另一示例中,计算机系统是无线设备1200(例如,移动设备、平板设备、智能手表等),该无线设备包括可选的图形用户界面(GUI)设备1220(例如,具有输入和输出功能的触摸屏)。
[0109] 计算机系统1200可进一步包括RF收发器1224,该RF收发器提供频移、将接收到的RF信号转换为基带以及将基带发射信号转换为RF。在一些描述中,无线电收发器或RF收发器可被理解为包括其他信号处理功能,诸如调制/解调、编码/解码、交织/解交织、扩展/解扩、快速傅里叶逆变换(IFFT)/快速傅里叶变换(FFT)、循环前缀附加/去除以及其他信号处理功能。
[0110] 数据存储设备1216可包括机器可读存储介质(或者更具体地,计算机可读存储介质),其上存储有体现本文所述方法或功能中的任何一个或多个的一组或多组指令。所公开的数据存储机制可通过计算机系统1200在主存储器1206和/或数据处理系统1202内完全或至少部分地实现,主存储器1206和数据处理系统1202也构成机器可读存储介质。
[0111] 在一个示例中,计算机系统1200是可连接(例如,联网)到LAN、WAN或任何网络中的其他机器或其他自主车辆的自主车辆。自主车辆可以是包括在车辆内联网的许多计算机的分布式系统。自主车辆可在客户端‑服务器网络环境中以服务器或客户端的身份运行,或者作为对等(或分布式)网络环境中的对等机器运行。计算机系统1200中公开的存储单元可被配置为实现用于执行自主车辆的操作的数据存储机制。
[0112] 图12展示了根据一个实施例的处理器(例如,RISC、智能计算电路、集成处理器)的操作阶段的流程图1300。在一个示例中,在阶段1310处,处理器最初从存储器(例如,电阻式存储器阵列180、存储器1204、存储器1206)获取指令。在阶段1320处,指令随后被解码以确定随后可执行什么动作。如果需要,处理器基于指令从存储器或I/O模块获取数据。
[0113] 在阶段1330处,然后执行可需要对数据执行算术或逻辑运算的指令。除了执行之外,处理器还监督和控制I/O设备或I/O模块(例如,I/O电路110、输入设备1212、GUI 1220)。如果有来自I/O设备或I/O模块的任何请求(称为中断),则处理器暂停当前程序的执行,并将控制转移到中断处理程序。执行的结果可需要在阶段1340处进行存储器访问以将数据转移到存储器、I/O设备或I/O模块。在阶段1350处,处理器执行回写策略,其中数据被写入处理器的寄存器。
[0114] 本文公开的方法包括用于实现所述方法的一个或多个步骤或动作。在不脱离权利要求的范围的情况下,这些方法步骤和/或动作可彼此互换。换句话说,除非指定了步骤或动作的特定顺序,否则可修改特定步骤和/或动作的顺序和/或使用而不脱离所附权利要求的范围。
[0115] 所描述的功能可用硬件、软件、固件或其任何组合来实现。处理系统可用总线架构来实现。根据处理系统的具体应用和总体设计约束,总线可包括任意数量的互连总线和网桥。总线可将包括处理器、机器可读介质和总线接口的各种电路链接在一起。总线接口可用于经由总线将网络适配器等连接到处理系统。总线还可链接各种其他电路,诸如定时源、外围设备、电压调节器、功率管理电路等,这些电路在本领域中是众所周知的,因此将不再进一步描述。
[0116] 以下示例中的任一个可以组合成单个实施例,或者这些示例可以是单独的实施例。在第一实施例的一个示例中,智能计算存储器电路包括集成处理器和逻辑电路,以实现自适应功率或性能改进,以及智能计算存储器电路的自适应存储器管理和控制。电阻式存储器阵列耦合到集成处理器。
[0117] 在第一实施例的另一示例中,电阻式存储器阵列包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元中的一个或多个。
[0118] 在第一实施例的另一示例中,集成处理器配置有可编程存储器管理和控制,以优化包括存储器性能和存储器耐久性的参数。
[0119] 在第一实施例的另一示例中,集成处理器被配置为在主机系统保持在低功率休眠状态时预处理传入流数据,其中预处理的结果被存储在电阻式存储器阵列中。
[0120] 在第一实施例的另一示例中,集成处理器被配置为在主机系统保持在低功率休眠状态时对要从电阻式存储器阵列输出的数据进行后处理。
[0121] 在第一实施例的另一示例中,集成处理器配置有功率管理控制,以控制包括集成处理器和电阻式存储器阵列的正常操作状态和休眠状态的功率状态。
[0122] 在第二实施例的一个示例中,计算系统包括中央处理单元(CPU)和耦合到CPU的存储器子系统。该存储器子系统包括输入/输出(I/O)电路、智能计算存储器电路和电阻式存储器阵列。智能计算存储器电路包括集成处理器和逻辑电路,以实现自适应功率或性能改进,以及智能计算存储器电路的自适应存储器管理和控制。
[0123] 在第二实施例的另一示例中,电阻式存储器阵列包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元中的一个或多个。
[0124] 在第二实施例的另一示例中,集成处理器配置有可编程存储器管理和控制,以优化包括存储器性能和存储器耐久性的参数。
[0125] 在第二实施例的另一示例中,集成处理器被配置为在CPU保持在低功率休眠状态时预处理流数据,其中预处理的结果被存储在电阻式存储器阵列中。
[0126] 在第二实施例的另一示例中,集成处理器被配置为在CPU保持在低功率休眠状态时对要从电阻式存储器阵列输出的数据进行后处理。
[0127] 在第二实施例的另一示例中,集成处理器配置有功率管理控制,以控制包括集成处理器和电阻式存储器阵列的正常操作状态和休眠状态的功率状态。
[0128] 在第二实施例的另一示例中,I/O电路具有功率接通状态而没有低功率状态。
[0129] 在第二实施例的另一示例中,计算系统进一步包括耦合到I/O电路的功率管理电路。功率管理电路用于从I/O电路的有限状态机接收输入以及控制集成处理器和电阻式存储器的功率状态。
[0130] 在第三实施例的一个示例中,一种用于计算系统的低功率操作的计算机实现方法包括:利用计算系统的存储器子系统接收来自任何源的数据,将该数据存储在存储器子系统的缓冲器中;确定缓冲器何时达到数据的阈值满量;以及以周期性间隔或当缓冲器达到阈值满量时,将智能计算电路和存储器子系统的电阻式存储器阵列的至少一个区域从低功率休眠状态转变为操作功率状态。
[0131] 在第三实施例的另一示例中,智能计算电路和电阻式存储器阵列的至少一个区域从低功率休眠状态转变为操作功率状态,而电阻式存储器阵列的其他区域和包括主CPU的计算系统的组件保持在低功率休眠状态。
[0132] 在第三实施例的另一示例中,计算机实现方法进一步包括:利用智能计算电路加载软件程序;利用智能计算机电路处理数据以生成结果;以及将结果存储到电阻式存储器阵列中。
[0133] 在第三实施例的另一示例中,计算机实现方法进一步包括确定智能计算电路的处理是否触发编程事件,并响应于编程事件以将主CPU从低功率休眠状态转变为操作状态。
[0134] 在第三实施例的另一示例中,计算机实现方法进一步包括响应于主CPU转变为操作状态,将智能计算电路转变为低功率休眠状态直到下一事件。
[0135] 在第三实施例的另一示例中,智能计算电路包括集成处理器,并且电阻式存储器阵列包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻器随机存取存储器(ReRAM、RRAM)、相变RAM(PCRAM)、铁电RAM(FeRAM)和/或碳纳米管存储单元中的一个或多个。
[0136] 在第四实施例的一个示例中,电阻式存储器包括电阻式存储器阵列和耦合到电阻式存储器阵列的自适应存储器管理和控制电路(AMMC)。AMMC配置有扩展的测试、可靠性、性能或功率优化能力。
[0137] 在第四实施例的另一示例中,AMMC与电阻式存储器阵列集成在一起。
[0138] 在第四实施例的另一示例中,AMMC配置有性能优化能力,从而通过降低存储器耐久性来优化存储器速度,或者通过降低存储器速度来优化存储器耐久性。
[0139] 在第四实施例的另一示例中,电阻式存储器进一步包括存储器映射接口,以将自适应存储器管理和控制特征映射到电阻式存储器的存储器映射区域。
[0140] 在第四实施例的另一示例中,AMMC包括内置自测试电路,以测试电阻式存储器阵列的扩展到附加测试功能的功能。
[0141] 在第四实施例的另一示例中,电阻式存储器阵列包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻式RAM(RRAM)、相变RAM
(PCRAM)或铁电RAM(FeRAM)中的一个或多个。
[0142] 在第五实施例的一个示例中,存储器子系统包括智能计算存储器电路、耦合到智能计算存储器的电阻式存储器阵列以及耦合到电阻式存储器阵列的自适应存储器管理和控制电路(AMMC)。AMMC配置有扩展的测试和性能优化能力。
[0143] 在第五实施例的另一示例中,智能计算存储器电路包括具有功率管理控制和存储器管理控制的集成处理器。
[0144] 在第五实施例的另一示例中,集成处理器配置有可编程存储器管理和控制以优化不同模式的参数,所述不同模式包括:操纵数据以根据需要对数据进行加密或解密的第一模式、用于以不同速度写入/读取以在一定温度范围内优化功率和性能的第二模式、用于生成读取和写入操作的自定义序列的第三模式以及用于基于来自逻辑功能的输出来生成条件读取或写入操作的第四模式。
[0145] 在第五实施例的另一个示例中,AMMC包括用于感测温度的集成温度控制电路,其中,AMMC被配置为使用集成的温度控制电路基于所感测的电阻式存储器阵列的温度数据在一定温度范围内自适应地改变功率和性能。
[0146] 在第五实施例的另一示例中,AMMC包括内置自测试(BIST)电路以测试电阻式存储器阵列的功能。
[0147] 在第五实施例的另一示例中,集成处理器被配置为在正在测试电阻式存储器阵列的第二区域时,用存储在电阻式存储器阵列的第一区域中的测试代码执行BIST电路的测试代码。
[0148] 在第五实施例的另一示例中,AMMC通过在低功率模式下操作电阻式存储器阵列的第二区域的同时对电阻式存储器阵列的第一区域进行读取和写入来自适应地实现功率优化。
[0149] 在第五实施例的另一示例中,电阻式存储器阵列包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻式RAM(RRAM)、相变RAM
(PCRAM)或铁电RAM(FeRAM)中的一个或多个。
[0150] 在第六实施例的一个示例中,一种计算机实现方法向电阻式存储器提供自适应存储器管理和控制。该计算机实现方法包括:将自适应存储器管理和控制特征映射到存储器子系统的电阻式存储器的存储器映射区域;将自定义测试代码加载到电阻式存储器的第一存储器区域;以及使用存储器子系统的智能计算存储器电路执行自定义测试代码以测试电阻式存储器的第二存储器区域。
[0151] 在第六实施例的另一示例中,自定义测试代码测试不同类型的故障或提供自适应模式以改进电阻式存储器的可靠性、性能、耐久性或功耗。
[0152] 在第六实施例的另一示例中,该计算机实现方法进一步包括:读取来自第二存储器区域的响应,将读取响应与预期响应进行比较,以及响应于所述比较执行动作。
[0153] 在第六实施例的另一示例中,该动作包括使存储器区域通过或不通过,或优化存储器设置、性能、耐久性或功率。
[0154] 在第六实施例的另一示例中,智能计算存储器电路包括集成处理器,该集成处理器被配置为提供用于向电阻式存储器的存储单元进行写入和读取的不同模式,以实现更大的使用灵活性。不同的模式包括性能优化模式,以通过顺序地或利用一组寻址序列从电阻式存储器的多个存储体读取或向其写入,从而使得能够例如在读取或写入在电阻式存储器的第一存储体中结束时从第二存储体读取或向其写入来改进性能。
[0155] 在第六实施例的另一示例中,电阻式存储器包括非易失性随机存取存储器(RAM),该非易失性随机存取存储器包括磁性RAM(MRAM)、电阻式RAM(RRAM)、相变RAM(PCRAM)或铁电RAM(FeRAM)中的一个或多个。
[0156] 应当理解,权利要求不限于上述精确的配置和部件。在不脱离所附权利要求的范围的情况下,可对上述方法和装置的布置、操作和细节进行各种修改、改变和变化。