存储器中的延迟回写的制作方法

文档序号:16637377发布日期:2019-01-16 07:09阅读:216来源:国知局
存储器中的延迟回写的制作方法

本申请要求于2016年4月28日提交的美国申请no.15/141,379的优先权和权益,其全部内容通过引用并入本文中。

本文的公开内容一般而言涉及具有对阵列的延迟回写的存储器设备,并且更具体而言,涉及用于支持存储器设备中的这种延迟回写操作的电路和方法。



背景技术:

自旋-扭矩磁存储器设备通过控制跨磁隧道结(mtj)的电阻来存储信息,使得通过磁隧道结的读电流导致具有基于磁阻堆叠的状态的量值的电压降。每个磁隧道结中的电阻可以基于磁阻堆叠内的磁阻层的相对磁状态而变化。在这种存储器设备中,通常存在具有固定磁状态的磁阻堆叠的一部分和具有自由磁状态的另一部分,该自由磁状态被控制为相对于具有固定磁状态的部分的两种可能状态中的任一种。因为通过磁隧道结的电阻基于自由部分相对于固定部分的朝向而改变,所以可以通过设置自由部分的朝向来存储信息。稍后通过感测自由部分的朝向来取回信息。这种磁存储器设备在本领域中是众所周知的。

诸如磁随机存取存储器(mram)之类的一些磁阻存储器设备支持也由其它存储器设备使用的访问协议。例如,使用同步双数据速率协议的动态随机存取存储器(dram)设备(例如ddrsdram、ddr2sdram、ddr3sdram、ddr4sdram等)在本领域中是众所周知的。一些mram设备支持这种协议,其中与用于ddrsdram设备的相同的操作代码导致mram设备中相同或相似的操作。

附图说明

图1和2是示出现有技术存储器设备中数据访问操作的各个方面的相对定时的框图;

图3是示出根据示例性实施例的存储器设备中的数据访问操作的各个方面的相对定时的框图;

图4是根据示例性实施例的磁存储器设备的一部分的示意图;

图5-7是与根据示例性实施例的用于执行和支持磁存储器中的延迟回写的方法对应的流程图;以及

图8是根据另一个示例性实施例的磁存储器设备的一部分的示意图以及相关联时序图。

具体实施方式

以下详细描述本质上仅仅是说明性的,并不旨在限制本主题的实施例或这些实施例的应用和使用。本文描述为示例性的任何实现不必被解释为比其它实现更优选或更具优势。

为了说明的简单和清楚,附图描绘了各种实施例的一般结构和/或构造方式。可以省略众所周知的特征和技术的描述和细节,以避免不必要地模糊其它特征。附图中的元件不一定按比例绘制:一些特征的维度可以相对于其它元件被夸大,以帮助改进对示例实施例的理解。

术语“包括”、“包含”、“具有”及其任何变体同义地用于表示非排他性的包含。术语“示例性”在“示例”而非“理想”的意义上使用。

为了简明起见,本文中可能未描述本领域技术人员已知的常规技术、结构和原理,包括例如标准磁随机存取存储器(mram)处理技术、偏置电压的生成、磁性的基本原理以及存储器设备的基本操作原理。

在本描述的过程中,根据图示各种示例性实施例的不同附图,相同的数字可以用于识别相同的元件。

为简洁起见,本文中可能不会详细描述与读取和写入存储器有关的常规技术,以及某些系统和子系统(及其各个操作部件)的其它功能方面。此外,本文包含的各个图中所示的连接线旨在表示各种元件之间的示例性功能关系和/或物理耦接。应当注意的是,在本主题的实施例中可以存在许多替代或附加的功能关系或物理连接。

磁存储器设备和其它存储器设备常常包括被划分为多个存储体或子阵列的存储器单元的阵列。在这种存储器设备中,可以单独访问每个存储体,使得存储体之间的访问可以交错,以优化数据吞吐量。一些磁存储器设备支持ddr存储器协议,其中激活操作打开特定存储体中的一页存储器单元。一“页”存储器单元被理解为作为一个单位(unit)一起被访问的一组存储器单元。在一些情况下,一“页”可以构成存储器单元的一“行”。打开一页将该页的数据从存储器单元的阵列移动到高速缓存或其它形式的临时存储装置中,在那里数据更容易被访问。一旦页被激活(打开),可以执行对页的读取和写入操作。在完成对打开的页的读取/写入操作后,页被关闭。当页被关闭时,阵列返回到准备好后续页激活的状态,并且在不再次打开页的情况下无法再次访问已关闭的页中的数据以进行读取和写入。在一些存储器设备中,在激活命令期间移动到临时存储装置的数据立即被回写到阵列,并且在一些情况下,与页打开时执行的写入操作对应的数据也立即被写入阵列中的存储器单元。在这种存储器设备中,预充电操作可以仅对位线预充电并且对与页对应的字线去断言。在其它存储器设备中,在激活期间移动到临时存储装置的数据和写入打开的页的数据直到就在关闭页之前才存储到阵列中。照此,在那些存储器设备中,预充电操作还将包括执行数据从临时存储装置到阵列的回写。通过一直等到就在关闭页之前才将数据回写到阵列,存储器设备可以节省功率或改善与移动或修改数据相关联的定时规范。

具有多个存储体允许打开多个页,从而实现访问的交错。这是因为每个存储体都有允许单独的读取和写入的相应的高速缓存或自己的临时存储装置。图1示出了与三个不同存储体中的三个不同页对应的多个存储器读取的交错。每个方框表示由特定操作相对于其它正在进行的操作所消耗的时间。顶行的方框表示对bank1page1的读取访问。在110处,发生对bank1的激活操作。在激活操作期间,从阵列中与bank1对应的部分取回与page1对应的数据,并将其存储在高速缓存中以进行读取/写入访问。如下面更详细讨论的,激活操作可以非常耗时,尤其是在使用自参考读取操作来感测存储在阵列中的数据的磁阻存储器设备中。

在激活之后,读取请求需要读取访问时间来取得要输出的特定数据。这与方框111对应,该方框被标记为cl,代表“cas等待时间”。cas等待时间是通常用于表示接收读取请求和输出与该读取请求对应的数据之间的时间的术语。那个时间与打开的页中的特定数据的选择以及该数据到存储器设备的输出端的路由对应。在方框112期间输出读取的数据。值得注意的是,仅示出了对bank1page1的单个读取访问,但是应当理解的是,在页打开时可以发生许多读取和写入访问。在与图1和2相关的现有技术存储器设备中,当完成对页的所有访问时,预充电命令使页关闭,并且在方框113处将高速缓存中的数据回写到阵列。相对于在数据在高速缓存中时执行读取和写入操作所需的时间,对阵列的这种回写操作也会是非常耗时的。

如图1中所示,为了“隐藏”与各种操作相关联的延迟的一些,可以在多个存储体中打开多个页。这允许最高效地使用用于向存储器设备和从存储器设备传达命令、地址和数据的各种信号线。例如,一旦存储器已接收到对bank1的激活命令,就可以发送与bank2对应的第二激活命令。因为bank2具有其自己的高速缓存,所以激活bank2中的单独页允许bank1的page1与bank2的page1同时打开。图1中第二行的方框示出在方框120处激活bank2page1的时间与bank1中的激活和读取的部分110-112重叠。bank2中的读取操作在定时方面类似于bank1中的读取操作,并且被示出为包括读取访问时间121、读取数据输出122和预充电方框123。图1的第三行示出了对bank3的类似操作130-133。

如图1中所示,因为顺序访问是在不同的存储体中(例如,首先从bank1读取,然后是bank2,并且然后是bank3),所以访问的交错允许读取的数据可以由存储器设备相对恒定地输出。对bank1的读取的数据112之后紧跟着对bank2的读取的数据122,bank2的读取的数据122之后进而跟着对bank3的读取的数据132。因为存储体之间的交错允许与激活、读取访问时间和预充电相关联的延迟至少在某种程度上被隐藏,所以可以实现高吞吐量。

但是,如图2中所示,在一些情况下,顺序访问可以是对同一存储体中的不同页。在所示的示例中,在方框210处激活bank1page1,并且在读取访问时间211之后,输出读取的数据212。如果下一次访问是对bank1page2的读取,那么必须在经由激活220打开bank1的page2之前经由预充电213关闭bank1的page1。在激活220之后,直到读取访问时间221之后才输出读取的数据222。然后预充电223关闭bank1的page2。如从图2清楚的是,对同一存储体的这种背靠背访问不允许完全隐藏与激活、读取访问时间和预充电相关联的时间。有可能当输出最后一个读取的数据时(即,在读取数据方框212完成稍微之前一点)开始预充电操作,但是,如图所示,从第一页的读取数据输出212与从第二页的读取数据输出222之间的时间延迟是显著的。

在当前的动态随机存取存储器(dram)中,与激活和预充电操作相关联的定时并不比数据访问周期的其它方面的定时大很多,因此背靠背操作(诸如图2中所示的那些)的延迟可以是可容忍的。但是,在mram中,激活和回写操作常常花费更长的时间,从而导致用于这种相同存储体顺序访问的数据访问之间的更大的不期望的延迟。

在一些mram中,自参考读取操作用于感测要访问的页的存储在阵列中的数据。在示例自参考读取中,感测通过页中的每个存储器单元的初始电阻,然后将页中的所有存储器单元都写为已知状态,最后,再次感测通过每个单元的写入后的电阻并将其与写入前感测到的初始电阻进行比较。在写入之后电阻与已知状态是否相同指示存储器单元的初始状态。值得注意的是,自参考读取是破坏性的,并且使所有存储器单元处于在两个感测操作之间写入的已知状态。这种自参考读取操作相对于存储器访问的其它方面常常花费大量时间。例如,激活mram中的页可能需要数百纳秒,而对打开的页的读取操作可能是近似数十纳秒。

类似地,在完成读取/写入访问时将一页数据回写到阵列所需的时间会是显著的。例如,为了延长mram设备的寿命,通常避免会快速改变自旋-扭矩存储器单元中的自由层的状态的大量值写入电流脉冲,因为这种大脉冲会损坏磁阻堆叠中的敏感层。为了避免层的击穿,常常采用较低量值和较长持续时间的写入脉冲,因为它们使得能够切换自由层而对设备层具有较小的不利影响。在促进存储器设备的较长的寿命的同时,这种长持续时间的写脉冲延长了回写操作所需的时间。

本文公开的实施例利用关闭的页的数据的延迟回写来帮助提高磁阻存储器设备中的整体吞吐量。这是通过将与正在被关闭的页对应的数据的回写延迟到回写的执行不会对与读取和写入相关联的其它正在进行的操作的定时产生不利影响的时间来实现的。如本文所公开的,在一些实施例中,在对要访问的下一页的激活操作之后执行与先前打开的页对应的回写。

图3有助于说明延迟回写的概念。如图3中所示,在方框320处,发生对bank1page2的激活。在读取访问时间321之后,输出读取的数据322。一旦完成与bank1page2对应的激活操作并且page2数据已从阵列传送到用于读取和写入操作的高速缓存,阵列中的bank1就不再活动。照此,可以在对新激活的存储体的读取和写入操作发生的时间期间执行与先前打开的存储体对应的回写操作。如图3中所示,一旦对bank1page2的激活操作320完成,就发生方框313处的对bank1page1的回写操作。

如上面所讨论的,对正在被关闭的存储体的回写操作通常是一旦对那个存储体的读取和写入访问完成就立即发生,并且这种回写操作通常由通过存储器设备接收的预充电命令来提示。如本文所讨论的,本文公开的实施例将回写操作一直延迟到可以隐藏回写并且不影响后续激活操作的定时的时间,而不是在完成读取和写入访问时立即执行那个回写从而阻止后续的激活操作从阵列取得数据直到那个回写操作完成之后。因为对先前打开的页的回写是将与关闭的页对应的数据写入阵列,所以不会由于移动(shifting)回写操作而造成不利延迟,使得其在下一页打开之后发生。换句话说,不急于将数据放回到阵列中,因为当前正在访问另一个不同的页。

如图3中所示,通过将与存储体内先前打开的页对应的回写延迟直到对那个存储体的下一个激活操作完成之后,可以隐藏与那个存储体相关联的预充电时间,从而大大改善存储器设备的等待时间和吞吐量特点。在图3中,存储器设备的初始状态与先前打开bank1page1、但是与那个页对应的读取和写入操作已经完成并且page1数据准备好回写到阵列的时间点对应。在pagel数据准备好回写的情况下,接收与bank1page2对应的激活命令,从而指示将打开page2以进行读取和写入访问。不是在激活page2之前完成对page1的回写操作,而是首先打开page2,并且一旦激活完成,就可以发生对page1的回写操作,而不延迟与激活page2或访问新打开的page2中的数据相关联的任何操作(例如,读取访问时间321和读取的数据322)。

在访问bank1page2之后,在方框330处发生对bank1的page3的激活操作。一旦完成对page3的激活,在方框323处对bank1page2的回写就可以立即发生,而对page3的读取访问时间331和读取的数据332同时发生。类似地,一旦对bank1page4的激活在方框340处完成,对page3的回写就开始。值得注意的是,一旦阻止回写发生的下一个激活命令的所有部分都完成,对先前打开的页的回写操作就可以发生。例如,虽然回写和激活的一些部分利用存储器设备上的相同电路系统(例如,写入驱动器、列解码器等),但是其它部分可以使用独立的电路系统,使得激活操作的一些方面在回写操作开始时未完成。

本文描述的实施例在对新打开的页的读取和写入正发生时使用激活操作之后的时间将与先前打开的页对应的数据回写到阵列。为了实现这一点,必须将与先前打开的页对应的数据存储在不会干扰要访问的新页的激活的位置。在一些实施例中,存储器设备的每个存储体包括两个高速缓存结构,其中第一高速缓存用作用于对打开的页的读取/写入操作的主高速缓存或活动高速缓存,而第二高速缓存用作用于与对其的访问完成但尚未发生回写的页对应的数据的临时存储位置。

转向图4,给出了根据各种实施例的存储器设备400的一部分的示意图。存储器设备400包括存储器单元的阵列405。在一些实施例中,存储器单元是非易失性自旋-扭矩mram单元,而在其它实施例中,存储器单元是其它类型的存储器单元,诸如例如dram单元或其它电阻性存储器单元。如图4中所示,阵列405包括多个存储体,所述多个存储体包括bank1410和bank2420。存储体410和420中的每一个分别包括电路系统414和424的对应集合,用于临时存储用于对存储体410和420内的页的读取和写入访问的数据。用于bank1410的电路系统414包括第一高速缓存415、第二高速缓存416和更新电路系统417。可以包括奇偶校验计算器418和/或多数检测电路419的更新电路系统417在下面以附加的细节进行讨论。

如图4中所示,高速缓存415和416耦接到bank1410,以允许数据在阵列405的bank1410与高速缓存415和416之间传送。在一些实施例中,高速缓存415和416中的每一个包括静态随机存取存储器(sram)存储器单元,而在其它实施例中,高速缓存415和416由寄存器、触发器或用于存储数据的其它存储电路组成。高速缓存415和416包括足够的存储以容纳来自bank1的一页数据,并且还可以包括附加的存储以存储页的地址、页的奇偶校验或其它纠错码(ecc)信息,以及任何反转或与页相关的其它信息。在一些示例实施例中,高速缓存415和416是大约64个数据字,8或16位/字。在其它示例实施例中,高速缓存存储128或256个字。在一些实施例中,组合存储体,以在字尺寸增加时(例如,从8位到16位)维持所存储的数据字的数量。可以调整高速缓存的尺寸和被访问的页的尺寸以适合应用的需要。

如图4中所示,阵列405中的每个存储体具有高速缓存和更新电路系统的对应的集合。bank2420被示为与更新电路系统427耦接到高速缓存425和426。每个存储体具有单独的高速缓存结构使得不同存储体中的多个页能够同时打开,从而允许交错的访问。虽然图4中描绘的实施例示出了每个存储体两个高速缓存,但是在其它实施例中,每个存储体包括多于两个的高速缓存,从而允许将对多于一个页的回写推迟到稍后的时间点。这种附加高速缓存在回写所需的时间比激活操作所需的时间长得多或者访问模式将受益于对多页的回写的推迟的实施例中会是适当的。在还有其它实施例中,每个存储体具有一个对应的高速缓存以用于存储用于读取/写入操作的打开的页,但是与一个或多个其它存储体共享第二高速缓存,其中第二高速缓存专门用于存储与还没有被回写的关闭的页对应的数据。要注意的是,在存储体之间共享回写高速缓存可能会限制对那些存储体的激活操作,以确保在两个存储体同时需要使用回写高速缓存时不会发生冲突。

控制电路系统450耦接到阵列405和电路系统414,电路系统414包括高速缓存415和416以及更新电路系统417。在图4中所示的实施例中,控制电路系统450耦接到阵列405中的所有存储体以及用于那些存储体的所有高速缓存结构和更新电路系统。照此,控制电路系统450在图4的实施例中提供对存储器访问操作的全局控制。在其它实施例中,为每个存储体提供专用的控制电路系统,使得对每个存储体的操作被单独控制。

控制电路系统450(其可以包括例如状态机、处理器、微控制器或逻辑电路系统)被配置为控制数据的移动和对数据执行的操作,以用于由存储器设备支持的各种存储器访问操作。控制电路系统450接收命令434和复位信号435。在其它实施例中,控制电路系统450接收源自存储器设备的内部或者源自存储器设备的外部的附加信号,附加信号向控制电路系统450提供促进数据存储和取回操作的信息或指令。例如,控制电路系统450可以接收自刷新信号,该自刷新信号指示没有即时访问即将发生,并且在这种信号被断言时存储器设备有机会执行其它操作。由控制电路系统450接收的命令434可以包括从向存储器设备发出命令的外部存储器控制器或其它控制设备接收的命令。例如,外部存储器控制器可以向控制电路系统450提供命令434,其中这些命令包括激活、读取、写入、预充电、使用自动预充电的读取、使用自动预充电的写入以及刷新命令。在其它实施例中,可以以分级的方式处理指导存储器设备的动作的命令,使得一些共享的电路系统执行与每个命令相关的动作中的一些,并且控制电路系统450接收从由存储设备接收的更高级命令导出的更多本地化命令434。

在操作中,控制电路系统450被配置为响应于由存储器设备接收的第一激活命令而将来自阵列中的第一位置的第一页数据传送到第一高速缓存。在与图4对应的示例中,第一激活命令使控制电路系统450向阵列405和高速缓存415提供适当的信号,使得与bank1410中的第一页411对应的数据被传送到高速缓存415中。在一些实施例中,将第一页411的数据加载到高速缓存415中包括对第一页411中包括的存储器单元执行自参考读取。在其它实施例中,参考读取操作(例如,将每个存储器单元的电阻与参考进行比较,以确定存储在其中的数据),或者用于确定存储在每个存储器单元中的数据的其它技术被用于将用于第一页411的数据加载到高速缓存415中。

一旦将第一页411的数据加载到高速缓存415中,第一页411就被认为是“打开的”,并且可以通过读取高速缓存415中的数据或重写高速缓存415中的数据来发生对第一页411的读取和写入操作。每个读取或写入命令都附带有允许第一页411中的具体字或字的集合被访问的地址信息。一旦对第一页411的所有读取和写入访问都已完成,第一页411的数据(其可以包括由写入操作添加的新数据)就从高速缓存415移动到高速缓存416。在一些实施例中,对第一页411的读取/写入操作完成的指示是基于由存储器设备接收预充电命令。在其它实施例中,数据被保留在高速缓存415(其可以被称为主高速缓存)中,直到由存储器设备接收到对bank1410的后续激活操作。如下面额外详细讨论的,在一些实施例中使用附加命令或信号以使高速缓存415中的数据移动到高速缓存416中或直接移回到阵列405的bank1中。

在将第一页数据从第一高速缓存415传送到第二高速缓存416之后,第一高速缓存415可用于接收与新页对应的数据。因此,响应于与bank1410的第二页412对应的第二激活命令,控制电路系统450发出适当的控制信号,使得与第二页412对应的第二页数据从与阵列405的bank1410中的第二页412对应的位置传送到高速缓存415中。由此,第二页412被“打开”并可用于读取和写入操作。一旦对第二页412的激活操作完成,或者已经进展得足够远以便不干扰对bank1的回写操作,就可以将存储在高速缓存416中的与第一页411对应的第一页数据回写到阵列405的bank1中的适当位置。如上面所指出的,第一页411的地址可以包括在存储在高速缓存416中的数据中,因此阵列405中第一页数据将被写入的位置是已知的。在其它实施例中,单独的寄存器或存储位置可以用于存储每个页的地址信息以及任何其它适当的特定于页的信息(诸如奇偶校验信息或反转状态)。

在一些实施例中使用奇偶校验信息或其它形式的ecc来防止或减少数据错误。奇偶校验计算在本领域中是众所周知的,并且与页数据一起存储用于存储体中的页的奇偶校验位的集合允许奇偶校验检查以确认数据有效性并且在一些情况下可以允许校正数据错误。在上面参考图4描述的示例中,当与第一页411对应的第一页数据回写到阵列405中时,该数据可以包括奇偶校验信息。因为第一页411中包括的数据可以通过在第一页411打开时执行的写入操作来修改,所以在将数据回写到阵列405之前需要执行新的奇偶校验计算。在一些实施例中,奇偶校验计算在对页的每个写入操作完成时执行,使得与数据一起存储在高速缓存415中的奇偶校验信息总是当前的。在这种实施例中,在回写之前的稍后时间,准确的奇偶校验信息可以与数据一起从高速缓存415移到高速缓存416。但是,在时间和资源方面实时执行这种奇偶校验计算会是昂贵的(例如,将需要额外的功耗)。照此,因为已知当将第一页411的数据移到高速缓存416时不会发生对第一页411的进一步写入操作,所以可以结合从高速缓存415到高速缓存416的数据的移动来执行对第一页411的奇偶校验计算。在图4中,奇偶校验计算器418包括在更新电路系统417中,其中当数据从高速缓存415传送到高速缓存416时更新奇偶校验信息。

因为将所选页中的所有存储器单元写为第一状态的破坏性自参考读取操作在激活操作结束时使所有单元处于相同状态,所以确定页中的大多数位中在页被回写之前处于第一状态(例如,二进制“0”)还是处于第二状态(例如,二进制“1”)可以帮助减少功耗。例如,如果激活操作使页中的所有存储器单元处于与二进制“0,”对应的第一状态,并且当数据准备好被回写时,页中要被回写的大多数位是“0,”,那么不到一半的存储器单元将需要一个或多个写入脉冲,所述一个或多个写入脉冲用于将那些单元中的自由层改变为与二进制“1.”对应的状态。但是,如果页中的大多数位是“l的”,那么超过一半的存储器单元将必须被写入以便改变它们的状态。在这种情况下,反转页的所有位是有价值的,使得先前表示“0”的状态现在表示“1.”。通过在大多数不与存储器单元在激活完成时所处的状态对应时反转所有位,回写将将总是涉及写入页中不超过一半的存储器单元。

为了在多数检测之后支持这种反转,为每个页维持反转状态位,以指示存储在阵列405中的用于那个页的数据是否被反转。此外,如果页中的数据在页打开时被修改,那么在页的回写之前需要对每个页进行多数检测。照此,多数检测器419包括在更新电路系统417中。与奇偶校验计算的情况一样,可以与每次写入操作实时地执行多数检测,但是在页处于关闭过程中时执行多数检测和反转位的设置可能更高效。因此,在一些实施例中,在页的数据从第一高速缓存415传送到第二高速缓存416时执行多数检测。

为了促进与在各个位置之间移动数据相关联的所有内部操作并执行与奇偶校验计算、多数检测等相关联的步骤,控制电路系统450生成指导存储器设备上的电路系统的多个定时信号,以便以适当的次序并在适当的时间执行适当的操作。在一些实施例中,那些定时信号由延迟电路455生成,延迟电路455被示为被包括在控制电路系统450中。在一些实施例中,延迟电路包括多个延迟块或电路,用于生成与访问存储器阵列405中的数据时发生的各种功能相关联的定时信号。例如,响应于在bank1中的前一页尚未被回写的情况下对bank1的激活操作,生成多个定时信号,使得来自高速缓存415的数据被移动到高速缓存416、执行任何奇偶校验计算和多数检测、将要打开的页加载到高速缓存415中,并且一旦激活完成,就将高速缓存416中的数据回写到阵列405。因此,指示激活的信号的单个转变(transition)可以触发由延迟电路455在时间上适当间隔开的多个信号转变,使得适当的操作发生在适当的时间。各种定时信号之间的间隔可以是可编程的,使得可以通过例如将值存储在可编程寄存器中来调整执行不同操作的相对时间。

要注意的是,在一些情况下,可以接收与同一存储体中的同一页对应的顺序激活。例如,可以打开第一页411,对第一页411中的数据执行多次读取/写入操作,然后接收指示应当关闭第一页411的预充电命令。在一些实施例中,接收预充电命令不会导致数据被回写到阵列,因为控制电路系统450正等待下一个激活命令以这样做。照此,如果接收到与第一页411对应的、指导存储器重新打开它的新激活操作,那么将数据从阵列405传送到高速缓存415将不会导致第一页411的数据被放在高速缓存415中,因为第一页411的数据尚未返回到阵列405的bank1410中。在一些实施例中,当接收到对第一页411的重新激活命令时,第一页411的数据仍然在高速缓存415中。照此,在一些实施例中,控制电路系统450包括页地址比较器,该比较器被配置为将伴随激活命令的地址与打开的上一页的地址进行比较。如果比较指示要打开的新页与前一页相同,那么如果先前打开的页的数据仍在主高速缓存415中,则控制电路系统450将什么都不做。如果要打开的新页与前一页相同并且那一页的数据已经被传送到高速缓存416,那么数据可以或者被直接传送回高速缓存415或者在从阵列再次取回数据并加载到高速缓存415中之前回写到阵列405。

当前一页数据没有响应预充电命令而被回写而是代替地正等待另一个永远不会来的激活命令时,发生前一页的延迟回写的另一个潜在问题。例如,在关闭电源之前对存储体的最终数据访问会导致驻留在高速缓存415或416中的被访问的页的数据等待下一次激活。如果没有这种激活,那么通常不会发起对阵列405的回写。照此,断电可能在数据尚未回写阵列405的情况下发生。如果高速缓存结构是易失性存储装置,那么数据会丢失。

在一些实施例中,通过对用于每个存储体的一个或两个高速缓存使用非易失性存储装置来解决这个问题。在其它实施例中,存储器设备可以在未接收到新的激活命令的时间周期性地执行对阵列的回写。在一些实施例中,由存储器设备接收的刷新命令或刷新信号指示存储器控制器将不会在任何很快的时间发出激活,并且存储器有机会执行“刷新”操作。在dram中使用这种刷新操作来补充存储器单元的阵列中的一行或多行中的电容器上的电荷。为了执行刷新,dram中的所有存储体通常都是关闭的。照此,即使mram不需要执行刷新操作,它也可以将刷新命令或信号作为所有存储体都应当被关闭并且与当前保存在高速缓存中的页对应的数据应当被回写到阵列的指示。在其它实施例中,刷新命令/信号可以用于发起对许多存储体之一的回写,其中存储器设备跟踪哪些存储体已被回写,从而知道下一次刷新将在哪个存储体中触发回写。

在其它实施例中,复位信号435可以被用作发起对阵列的回写的触发器。通过向用户指明需要断言复位信号以便确保存储器中的数据是非易失性的,用户可以在诸如断电之类的事件之前断言复位信号,从而使最后打开的页的数据例如从高速缓存415传送到高速缓存416(具有可能的奇偶校验和反转计算),然后被回写到存储器阵列405中。

在还有其它实施例中,可以采用新的操作代码来具体地使得回写无需另外的激活就发生。例如,“存储”操作代码可以由存储器控制器发送到存储器,其中存储操作代码使mram回写正在等待回写的任何行。这种存储操作代码可以是或者特定于存储体的,因为它只指导与一个存储体对应的数据被回写到阵列(存储-bankx,其中x=存储体编号),它可以使存储体的子集的数据被回写,或者它可以使所有存储体的数据被回写(存储-全部)。这种(一个或多个)新操作代码可以用于清除存储器设备上的任何易失性数据,从而迫使其存储在阵列405的非易失性存储装置中,使得在移除电源的情况下它也不易损失。

当发生对大页(每页多个位)或多个存储体的回写操作时,可以期望将回写操作错开到存储器单元的子集,以便减少与回写操作相关联的功率和电流尖峰。在这种错开中,存储器单元的部分在不同的时间被回写,使得与回写相关联的电流汲取和功耗在时间上分布。因此,要回写的数据的第一部分是在与数据的第二部分不同的时间写入的。例如,在对大页的回写中,可以首先回写页中的一半的位,然后稍后回写另一半的位。在与存储-全部命令或操作代码对应的另一个示例中,首先回写一半的存储体的数据,然后回写另一半的存储体的数据。在另一个存储-全部示例中,首先回写每个存储体中的一半的位,然后回写每个存储体中的另一半的位。在再有另一个存储-全部示例中,回写操作被序列化,使得存储体或一组存储体在等待另一个存储体或一组存储体中的(一个或多个)回写操作的完成。回写操作的这种错开可以被拆分成许多阶段、可以被设置为被编程的,并且可以是特定于存储体的、特定于存储器单元的,或者两者都是。

如果延迟电路455被用于生成用于执行回写操作的定时信号,并且这种信号是响应于触发信号而生成的基于延迟的信号,那么可以在不需要时钟信号的情况下完成回写操作。这允许系统发出应当发生回写的指示(例如,刷新、自刷新、复位或存储命令),然后关闭时钟而不用担心数据没有被回写。当回写被错开时,延迟电路可以使用反馈或菊花链(daisy-chain)多延迟电路来确保一些回写操作在其它回写操作之前发生。

在存储体中的所有页都被回写到阵列405之后,下一个激活操作不应当导致存储在高速缓存415中的数据的回写。照此,可以为每个存储体使用标志,以指示存储体是否具有打开和/或等待回写的页。因此,当首次打开设备时,该标志被清除,指示没有页打开并等待回写。当第一页被打开时,标志被设置,使得后续激活将触发第一页数据的回写。如果接收到存储或其它回写指示,那么数据被回写,并且标志被清除。在一些实施例中,已经存在于符合标准的存储器设备中的状态寄存器可以被用于存储这种标志。

在一些实施例中,可以操纵与存储体是否打开或具有等待回写的数据相关联的标志,以支持被设计为以不同于正常操作的方式运用存储器设备的测试、老化或其它操作。例如,一些测试操作想要连续访问存储体内的同一页而不关心存储在其中的实际数据。通过保持那个存储体的打开指示被清除并且不执行要被激活的页的地址与激活的上一页的比较,可以根据期望运用存储器设备而不是响应于打开已打开的页的尝试而不执行任何操作。

虽然上面关于图4的讨论描述了将新激活的页传送到主高速缓存415并且在回写之前将那个数据移动到辅助的回写高速缓存416,但是在其它实施例中,不是在高速缓存之间移动数据,而是可以改变高速缓存的角色。例如,第一激活可以将第一页数据加载到第一高速缓存中,而第二激活可以在将第一页数据从第一高速缓存回写到阵列之前将第二页数据加载到第二高速缓存中。对第一页的读取和写入将使用第一高速缓存发生,而对第二页的读取和写入将使用第二高速缓存。

图5-7是图示用于支持存储器设备中的延迟回写的方法的示例性实施例或实施例的各方面的流程图。在一个示例中,存储器设备包括自旋-扭矩磁隧道结存储器单元的阵列。流程图中包括的操作可以仅表示用于操作设备的整个处理的一部分。为了说明的目的,图5-7中的方法的以下描述可以参考上面结合图4提到的元件。应当认识到的是,该方法可以包括任何数量的附加或替代任务,图5-7中示出的任务不需要以图示的次序执行,并且可以将这些方法结合到具有本文未详细描述的附加功能的更全面的过程或处理中。而且,只要预期的整体功能保持完整,就可以从实施例中省略图5-7中所示的一个或多个任务。

转向图5,在510处,接收用于存储器设备的第一存储体中的第一页的第一激活命令。在520处,响应于第一激活命令,从阵列取回第一页数据并将其存储在存储器设备上的第一高速缓存中。一旦以这种方式激活了第一页,对第一页中的数据的读取和写入操作就可以通过访问第一高速缓存来发生。

在530处,接收用于第一存储体中的第二页的第二激活命令。如上面关于图4所讨论的,为了将用于第二激活命令的数据从阵列的第一存储体移动到第一高速缓存以进行访问,与第一页对应的数据在最终被回写到阵列中之前被移动到第二高速缓存。但是,通过将与第一页对应的数据的回写一直延迟到第二页的激活完成之后,可以隐藏与回写第一页数据相关联的时间并且不会延迟对第二页的任何读取或写入操作。

在540处,响应于第二激活命令,存储器开始从阵列取回第二页数据。在550处,将第一页数据从第一高速缓存传送到第二高速缓存。值得注意的是,第一页数据的传送可以在第二页数据的取回被发起的同时发生,只要第一页数据在第二页数据被存储在第一高速缓存之前离开那里即可。虽然图5的流程图指示第二页数据取回在第一页数据传送之前开始,但只要不存在冲突,这些步骤的排序并不关键要。在一些实施例中,550处的传送响应于第二激活命令而开始,而在其它实施例中,传送由与在第二激活命令之前接收的与第一页对应的预充电命令触发。因此,预充电命令可以触发第一页数据从第一高速缓存到第二高速缓存的移动,但是数据可以保留在第二高速缓存中,直到后续激活命令使其被回写。

值得注意的是,在一些实施例中,预充电命令不用于触发数据从第一高速缓存到第二高速缓存的移动。在这种实施例中,预充电命令可以不起作用,使得存储器设备响应预充电命令而什么也不做。通过消除对预充电命令的需要,与标准协议(诸如用于ddr存储器设备的标准协议)中这种预充电命令的规定相关联的定时可以以允许存储器系统设计者更多灵活性的方式放宽。

在550处的将第一页数据从第一高速缓存传送到第二高速缓存可以包括在551处执行奇偶校验计算,使得在第一页数据被回写到阵列的时间可获得适当的奇偶校验或其它ecc信息。类似地,可以包括552处的多数检测和反转,作为从第一高速缓存到第二高速缓存的数据传送的一部分。在这个时间点执行奇偶校验计算和多数检测是有意义的,因为对第一页的任何写入都完成,因此被传送的数据相对于与阵列中数据的存储相关的奇偶校验和反转确定是最终的。虽然可以在数据正在高速缓存之间传送时进行奇偶校验计算和多数确定,但是在其它实施例中,可以在这种传送发生之前或之后的其它时间点执行这种操作。

在560处,将第二页数据存储在第一高速缓存中,从而标记第二激活操作的完成。因为第二激活操作完成,所以可以在不干扰第二激活操作的情况下发生第一页数据的从第二高速缓存到阵列中的回写570。要注意的是,虽然在一些实施例中,直到第二页数据被加载到第一高速缓存中才发生第一页数据的回写,但是在其它实施例中,回写可以在回写不干扰正在进行的第二次激活操作的时间点更早地开始。在一些实施例中,回写包括页中的位的反转和反转标志的设置,以指示该页的数据是否被反转。

图6是其中顺序地两次激活存储体内的相同页的情形的流程图。在610处,接收用于第一存储体中的第一页的第一激活命令。在620处,响应于第一激活命令,从阵列取回第一页数据并将其存储在第一高速缓存中。如上面所讨论的,第一页的打开可以包括将用于第一存储体的标志设置为指示那个存储体内的页是打开的。一旦已打开第一页,就使用第一高速缓存执行对第一页中的数据的读取和写入访问。一旦那些读取和写入访问完成,就可以接收与第一页对应的预充电命令,但是因为延迟的回写操作正在存储器设备中被执行,所以预充电命令可能不会导致数据从第一高速缓存移到第二高速缓存,或回写到存储器阵列中。

在630处,接收用于第一存储体中的第二页的第二激活命令。因为对于第一存储体已经存在打开的页,所以在640处将第一页的地址与第二页的地址进行比较。在650处,如果确定第一页的地址与第二页的地址匹配,那么方法前进到660,在660处第一页数据留存在第一高速缓存中。除了将第一页数据留在第一高速缓存中之外,还可以阻止由于第二激活命令而通常发生的任何回写。阻止将第一页数据回写到阵列中确保如果在激活命令之后阵列中与第一页数据对应的部分已经处于中间状态,那么保留该中间状态,使得第一页数据的最终回写不会受到危害。例如,如果使用使阵列中页中的所有存储器单元处于“0”或复位状态的自参考读取从阵列读取第一页数据,那么回写仅需要那些存储“1”或设置状态的存储器单元被写入。如果允许第一页数据的回写响应于第二激活命令而发生,那么,即使数据保留在第一高速缓存中,稍后的回写也可能需要0和1都被回写,从而使得后来的回写操作复杂化。

因此,虽然在常规的存储器设备中,通过预充电命令关闭第一页将导致第一页的数据被存储回存储器阵列中,但是本文描述的延迟回写的实施例导致第一页数据保留在第一高速缓存结构中,直到发起后续的激活操作。如果第二激活操作是用于已经打开的同一页,那么无需取得要存储在第一高速缓存中的新数据。实际上,如果在激活操作期间使用自参考读取,那么从阵列取得新数据的尝试将导致垃圾数据被加载到第一高速缓存中。照此,如果发生对同一存储体内的同一页的背靠背访问,那么存储器设备不必进行任何数据传送以便为对第一页数据的读取和写入访问而准备第一高速缓存,因为该数据仍保留在高速缓存中。

如果在650处确定第二激活命令未激活同一页,那么该方法继续进行以执行促进第二激活命令所需的操作。在670处,将第一页数据从第一高速缓存传送到第二高速缓存,如上面所讨论的,这可以包括奇偶校验计算和多数确定。而且在670处,从阵列取回第二页数据并将其存储在第一高速缓存中,从而使第二页数据可用于使用第一高速缓存的读取和写入访问。最后,一旦与第二页对应的激活操作已经完成,或者达到第一页数据的回写不会干扰激活的完成阶段,就发生第一页数据到阵列的回写。

图7的流程图有助于说明回写指示被存储器设备接收的情况,其中回写指示通知存储器设备任何打开的页或等待回写的关闭的页应当被清理,使得与那些页对应的数据返回到非易失性存储器。在停止活动之后,可以周期性地向存储器设备提供这种指示,以便确保存储器设备中的数据存储在非易失性存储装置中。

在710处,接收回写的指示。如上面关于图4讨论的,回写的指示可以包括在712处接收复位信号、在714处接收存储命令,或者在716处接收刷新信号或命令(包括进入自刷新模式)。在一些实施例中,在存储器设备进入断电模式的任何时候自动提供回写指示。如上面关于图4还讨论的,诸如在714处接收的存储命令可以指示应当对一个或多个存储体作用。例如,如果存储器设备即将断电,那么可以接收指示应当清理所有存储体的存储命令,使得当前存储在易失性存储装置中的任何存储器数据被回写到非易失性阵列中。

在710处接收到回写的指示之后,在720处确定回写的指示所属的特定存储体是否具有打开的页。如果没有,那么不需要回写,因为没有当前处于易失性存储装置中的与存储体对应的数据。如果在720处确定存储体具有打开的页,那么在730处将存储在第一高速缓存中的数据传送到非易失性阵列。730处的传送可以包括或者从第一高速缓存到阵列的直接传送,或者如果存储器设备内的电路系统被设置的话,那么数据在到达阵列的途中通过第二高速缓存被路由,730处的传送包括在从第二高速缓存回写之前将数据从第一高速缓存移动到第二高速缓存。高速缓存之间或从高速缓存之一到阵列的传送可以包括如上面所讨论的奇偶校验计算和多数确定。

当在730处发生的回写涉及写入大量存储器单元时,可以将回写拆分成多个阶段。例如,在732处,数据的第一部分被传送到阵列,然后在734处,数据的第二部分被传送到阵列。在更具体的示例中,可以在设备关闭之前触发存储-全部命令。这种存储-全部命令可以导致与多个存储体对应的数据被回写到阵列中。为了避免与同时写入多个存储器单元相关联的高峰功耗和大电流尖峰,可以在732处执行与存储体的第一半对应的回写操作,而在734处执行与存储体的第二半对应的写操作。在其它实施例中,在步骤732和734中的每一个期间写入每个存储体中的存储器单元的一部分,使得每个存储体内的回写操作在时间上错开。

图8图示了与包括延迟回写操作的使用的存储器设备的一部分相关联的电路图。示意图下方的时序图有助于说明电路系统的功能。在启动时,打开信号992为低,从而指示存储体中没有页已被打开,因此正在等待下一次激活的回写。当/激活信号990在边缘961处第一次被断言为低时,激活定时信号993被示为在966处从高转变为低,这表示在激活操作中使用的众多定时信号的生成。在图8的实施例中,这些信号是直接由/激活信号990的高到低转变产生的信号转变,并且由激活定时电路块951生成。

当/激活信号990在时序图中的边缘972处返回高时,作为触发器955的输出的打开信号992变高。打开信号992用于确定页已被打开,并且在接收到后续激活断言时应当触发那个页的回写。当/激活信号990在973处被去断言为高且打开信号992为高时,激活定时信号993、更新定时信号994和回写定时信号995都从低变为高。这基于逻辑门952、953、956、957和959发生,并且当下一个激活信号断言发生时,准备那些定时信号的集合以用于后续断言。准备信号用于断言,因为已知下一次激活将导致新页的激活、前一页的奇偶校验/多数的更新以及前一页的回写。

当/激活990的下一次断言在边缘962处发生时,该断言触发激活定时信号993、更新定时信号994和回写定时信号995中的每一个的断言。因此,由激活定时电路块951生成激活新页的定时信号(边缘967),更新关于先前打开的页的奇偶校验和多数信息的定时信号由更新定时电路块958生成(边缘968),并且在更新和激活完成之后,用于回写先前打开的页的信号(回写定时信号995)由回写定时电路块954生成(边缘970)。在边缘973处/激活990的去断言时,信号的定时信号组中的每个被去断言以准备下一次激活。打开信号992保持为高。

当复位信号991在边缘963处被拉高时,这指示存储在易失性存储器中的任何数据应当被回写到阵列中。在其它实施例中,刷新命令或存储命令的接收也可以触发这种回写。复位的断言使触发器955复位,从而使打开信号992在边缘965处变低。打开信号992的转变传播通过电路,从而使更新定时信号994被断言(边缘969)以及回写信号995被断言(边缘971)。因此,定时信号导致先前打开的页被更新(奇偶校验计算和多数确定)并被回写到存储器阵列中。

通过将对存储体的打开的数据页的回写延迟直到后续激活操作完成,可以隐藏与将数据回写到阵列相关联的延迟,从而改善与设备相关联的访问定时。包括新的操作代码以支持在无需另一个激活操作的情况下的数据回写有助于确保在断电发生时数据不会留在非易失性存储装置中。在一些情况下,可以基于单个回写指示将多页数据回写到阵列中,并且可以错开数据回写以减少峰值功耗。

虽然上面已经呈给出了示例性实施例,但是应当认识到的是,存在许多变体。此外,虽然描述在具体示例布置中使用包括存储器单元的自旋-扭矩mram设备,但是该教导可以应用于具有可以应用相同概念的不同体系架构的其它存储器设备。这种存储器设备的示例包括其它电阻性存储器和dram。这种存储器将在改进的随机存取时间、降低的功耗和增加的数据保留时间方面受益。

以上公开的特定实施例仅仅是说明性的,并且不应当被视为限制,因为实施例可以以对受益于本文教导的本领域技术人员而言清楚的不同但等效的方式进行修改和实践。因而,前面的描述并非旨在将本公开限于所阐述的特定形式,相反,其旨在覆盖可以包括在由所附权利要求限定的本发明的精神和范围内的此类替代方案、修改和等同物,使得本领域技术人员应当理解,在不脱离本发明的最广泛形式的精神和范围的情况下,他们可以进行各种改变、替换和变更。

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