背景技术
新的存储器技术,例如磁阻随机存取存储器(MRAM)和铁电随机存取存储器(FeRAM)吸引了越来越多的关注,这是由于它们有下述潜力,即结合非易失存储和现有存储器技术的许多有用的特性,例如高密度、高速、低功耗和低成本。
众所周知的MRAM技术是基于存储单元,该存储单元包含在两个交叉电极之间具有磁隧穿结(MTJ)元件的层状结构。存储单元通常设置成矩阵形式。电极称为位线和字线。MTJ元件作为具有两个截然不同电阻值的可编程电阻。
在写操作中,通过使电流流过位线和字线两者来选择存储单元。在它们的交叉点,由字线和位线电流产生的两个磁场与MTJ元件的层的磁矩相互作用。这两个场加到一个场,该场足以在电阻状态之间切换选中字线和选中位线的交叉点的MTJ元件。编程到单元中的电阻状态取决于位线中电流的方向。
在读操作中,为了确定选择的存储单元的电阻状态,施加小的读出(sense)电流到选中的位线上。为了确保读出电流只流过选中的单元,选择元件例如晶体管与位线和第三电极之间的每个存储单元相连,第三电极称为基电极。当向选中的位线和选中的基电极施加敏感电压时,选中的存储器的选择晶体管切换到导通状态。因为所有其它存储单元的选择晶体管切断了流过它们的电流,因此读出电流只流过激活的位线和基电极交叉点处的单元。根据这个存储单元的电阻状态,读出电流为两种可能的电流值中的一种,这两种可能的电流值表 示可以存储在存储单元中的两种可能的位值。包含与一个MTJ元件结合的一个选择晶体管的存储单元称为1T1MTJ存储单元。
基于1T1MTJ存储单元的MRAM器件的主要缺点是存储单元密度低于与之竞争的半导体存储器件的存储单元密度。这是因为其存储单元的尺寸大,并且这主要是由选择晶体管引起的。选择晶体管远大于其所属的存储单元的MTJ元件。省掉存储单元的晶体管能够得到高得多的单元密度,使其可与半导体存储器件的单元密度相比,并且通过采用三维单元阵列,甚至可能变得更大。具有一个MTJ元件而没有晶体管的存储单元称为0T1MTJ存储单元。
0T1MTJ存储单元的第一个主要缺点是省掉晶体管去除了读操作的选择性。在0T1MTJ存储器中,读操作的读出电流分别由几个通过相邻单元的电流通路贡献,其在激活的位线和字线之间建立连接。每条通路包括一个不同的存储单元,因为没有办法取消选择任何存储单元。因此,在读操作中很难确定特定存储单元的状态。这个问题在这里也被称为泄漏问题。
因此,这个问题所有已知的解决方案会导致较长的读时间跨度。确定存储单元中包含的位值所需的时间跨度也被称为读时间。0T1MTJ存储单元的读时间目前在一微秒的数量级。例如一种解决方案是通过首先读,然后写这个单元,再读并与以前的状态进行比较来读取存储单元的状态。如果检测到不同,则通过另一个写步骤恢复原值。很明显这种类型的读操作与写操作相比需要更长的时间。执行一个写操作需要的时间跨度称为写时间。当谈及一个存储器件的读时间与另一个存储器件的写时间或读时间比较时,假定要进行比较的这些操作涉及到相似或相等量的数据。
0T1MTJ存储单元的另一个主要缺点是,长的读时间阻碍了从基于1T1MTJ的存储器件已知的功耗节省写方法的使用。这种功耗节省写方法利用了引入写数据和存储的存储数据的比较。详细地说,伴 随着写请求收到的写数据与已经存储在对应于伴随着该写请求接收到的地址数据的存储单元中的数据进行比较。比较之后,只改写存储了与各自写数据不同的位值的存储单元。
利用了这种比较的写操作在这里将称为条件写操作。在条件写操作中,实际上只有写请求寻址的一小部分存储单元被不同的值改写。因为如上所述包含读、比较和条件写过程的写操作所需的功率,少于在不事先进行比较的情况下无条件改写所有寻址的存储单元所消耗的功率,所以功耗节省了。
在US 2002/0159286A1中介绍了一种现有技术的MRAM存储器件,该器件实现了用于向具有1T1MTJ存储单元的非易失性存储器进行写入的功率节省方法。
在US 2002/0159286A1中,这种方法是通过使用读数据锁存器和写数据锁存器实现的。来自当前写请求寻址的存储单元的存储数据暂时存储在读数据锁存器中。引入写数据暂时存储在写数据锁存器中。数据比较器电路比较写数据和分配相同存储器地址的存储数据。如果相应的数据完全相同,则写操作结束。如果相应的数据不同,则激活字线驱动器和位线驱动器来选择并改写各自的存储单元。
US 2002/0159286A1的写方法在本质上利用了这样一个事实,即一方面条件写操作和另一方面无条件写操作所需的写时间之间的差值是可忽略的。在具有0T1MTJ存储单元的存储器件,或者,一般地说,在与写时间相比具有长的读时间的任何存储器件中采用功耗节省写方法将会减慢条件写操作,使其超过读操作已经需要的长时间跨度。这使得该存储器件与现有的半导体技术例如Flash存储器相比不具有竞争力。
总的来说,一方面,与和其竞争的半导体技术相比,当前的MRAM技术提供了相当低的单元密度。在另一方面,高密度MRAM器件的获得只能以长的读时间为代价。长的读时间阻碍了涉及到读取步骤的写操作的使用,该读取步骤例如用于与之前存储的数据进行比较,并且尤其是为了在写操作中节省功耗。
尽管例如在大量数据存储中可以接受长的读时间,与现有技术相比,高功耗将成为主要的缺点。
发明内容
本发明的一个目的是提供一种具有长的读时间的存储器件,该器件至少部分弥补了提及的与写时间相比长的读时间的缺点。
本发明的另一个目的是提供一种用于将数据与存储器的存储部分中存储的存储数据进行比较的方法,该方法在与写存取相比具有慢的读取存取的存储器件中同样有用。
根据本发明的第一方面,提供了一种存储器件,该存储器件包含:
用于在分配了地址信息的存储部分中存储存储数据的存储器,与写时间相比,所述存储器具有长的读取时间,
读控制单元,与所述存储器相连,并且适用于从由引入写请求中包含的地址数据限定的存储器的多个部分或所有部分并行读取存储数据,
至少一个第一暂存器,适用于并行接收和存储通过读控制单元读取的存储数据,
至少一个第二暂存器,适用于存储针对所述存储器的引入写请求中包含的数据,
比较器单元,与所述第一和第二暂存器相连,并且适用于比较在第一暂存器中存储的存储数据和存储在第二暂存器中且分配了相同地址信息的写数据,且在其输出端提供指示各自比较的结果的信号。
本发明第一个方面的存储器件是基于总的思想,即与读时间相比长读时间的缺点,至少部分能通过并行读取存储在存储器中的多个数据来得到补偿。因为并行读取多个数据的步骤的执行时间与读一个位的步骤的时间大致相同,因此其中将要读取大量存储器数据的读取操作,可以在具有长读取时间的存储器件中被执行得与具有较短读取时 间的存储器件中的串行读取操作大约一样快。
本发明中的存储器件包含读控制单元,该读控制单元与存储器相连,并且适用于从由引入写请求中包含的地址数据限定的存储器的多个部分或所有部分并行读取存储数据。为了执行读取操作,读控制单元优选适于产生至少一个包含相应地址数据的读请求,并将其送到存储器。
“并行读”意味着存储在存储器的多个存储单元中的多个数据,例如许多位、字节或字,至少部分暂时交叠地被读取。并行读在下文中也称为并行读取操作。存储部分在一个实施例中是一个存储单元,而在另一个实施例中是多个存储单元,例如一行或一列存储单元或存储单元的其它任何组合。
从存储器中读取多个数据的并行读取操作需要和读取一个位值的单一读取操作大约相同的时间。因此,并行读取的数据量越大且暂时交叠越大,则与串行读取操作相比在时间上的受益就越大。在一个实施例中,同时执行从不同的存储器单元的读取,这意味着,具有在技术上可能的最大的暂时交叠。这进一步减少了读取时间,尤其对于将要读取的大量存储数据。
在根据本发明第一方面的存储器件中,并行读取的存储数据也被并行接收在第一暂存器中。相应地,第一暂存器具有与存储器相连的一个输入端,其适用于并行接收多个位值。第一暂存器优选具有短的读写时间。例如,SRAM存储器被用作第一暂存器。可以有一个以上的第一暂存器。
优选地,在一次并行读取操作中读取可能被引入写请求改变的所有存储数据。在例如以存储体(memory bank)的形式提供一个以上第一暂存器的情况下,读取的数据可以被并行发送到不同的存储体。作为可选方案,连续执行许多并行读取操作,以覆盖要进行比较的所有存储数据。在本发明第一方面的存储器件的优选实施例中,读控制 单元适于从存储器的存储部分顺序执行许多并行读取操作,使得由包含在一个引入写请求中的地址数据定义的所有部分被读取操作覆盖。这个实施例对于提供带有大量写数据的写请求是有用的。在许多个工作周期中处理将要进行比较的写数据。
读控制单元优选适于分析将要被读取的存储数据能否用一个并行读取操作来并行读取。如果不能,读控制单元产生适当数目的并行读取请求来覆盖所有数据。是否能够在一个并行读取操作中读取所有的数据,这不仅取决于引入写请求的写数据的量,还取决于存储器件的硬件设计,特别是取决于存储器和第一暂存器之间的总线的宽度。在一个实施例中,存在着协议约束,该协议约束将写请求中的地址数据限制到能用一个并行读取操作读取的范围。不允许产生不能用一个并行读取操作提供的写请求,或者这样的写请求会被存储器件拒绝。
优选地,存储器件的存储器被组织起来以增强并行读取操作。例如,存储器可以被组织成能被并行读取的存储体。这意味着,不同的体能被并行读取。在另一个实施例中,每个体都能被并行读取。在再一个实施例中,每个体以及不同的体能被并行读取。
在一个优选实施例中,通过宽的数据总线建立起存储器和第一暂存器之间的数据连接,该数据总线允许并行传输大量的数据。
本发明第一方面的存储器件还包含至少一个第二暂存器,其存储随同引入写请求接收的数据。第二暂存器优选也是SRAM存储器。
在本发明第一方面的存储器件中提供了比较器单元。比较器单元将存储在第一暂存器中的存储数据和存储在第二暂存器中且分配相同地址信息的数据进行比较。比较器单元提供表示各自比较结果的输出。在不同的实施例中,存储器件具有适用于逐位或逐字节地进行比较的比较器单元。
例如,比较器单元的输出可以被用来决定随同写请求接收到的且刚刚与存储数据进行比较的写数据是否应该被写入存储器。例如,如 果比较器单元的输出指示写数据与第一暂存器中相应的存储数据不同,则该输出可以用于触发写控制电路,其将刚刚被比较的写数据从第二暂存器传送到存储器。
并行读取操作不需要等到接收到属于写请求的所有数据以后才执行。在本发明的存储器件的实施例中,读控制单元适用于接收到包含在写请求中的地址数据之后立即开始并行读取操作。这进一步加速了写请求的流动。在这个实施例的一种形式中,通过与那些用于接收写数据的接触(contact)分离的接触来接收地址数据。这允许与用于写数据的输入端的状态无关地来触发并行读取操作。在这个实施例的另一种形式中,通过相同的接触来接收地址数据和写数据。在这种情况下,在写请求的开始,地址数据通常被传送到预先确定的部分。因此,当接收到写数据时,读控制单元检测地址数据并触发并行读取操作。
因为将接收到的写数据存储在第二暂存器中花费可相比地短的时间,因此在用写数据填充第二暂存器之前,至少可以部分地执行并行读取操作。这仅仅导致写操作所需的时间增加很小。另一方面,这个实施例为引起写请求的应用提供了更大的灵活性。此应用可以与用于执行从存储器的数据的并行读取操作的地址数据无关地发送写请求的写数据。这也允许使用预测和预取的方法,这样此应用可以在数据的真实值可用之前预测这些数据将必须写入到哪些存储器位置。
在另一个实施例中节省了额外的时间,在该实施例中,当比较器单元执行存储在第二暂存器中的写数据与第一暂存器中的相应存储数据的比较时,读控制单元适用于将存储数据读到第一暂存器中。
在本发明的存储器件的进一步优选的实施例中,第二暂存器的存储容量大于第一暂存器的存储容量。优选地,第一暂存器和第二暂存器的存储容量之比等于存储器的写时间和读时间之比或在该范围内。例如,如果存储器的写时间是读时间的一半,则用于写数据的第二暂 存器具有的存储容量是用于存储数据的第一暂存器的存储容量的两倍。在这个实施例的一种形式中,提供额外的存储容量作为额外的第二暂存器。在另一个形式中,使用具有更大容量的单个第二暂存器。
在这个实施例中,当存储数据被读入第一暂存器或执行条件写操作,也就是,当比较第一和第二暂存器的数据,或在这两个提到的阶段期间,第二暂存器的存储容量将用新的引入的写数据来填充。因此,存储器件可用于在第二暂存器被清空之前从外部存储客户端接收新的写数据或新的写请求。存储客户端的一个例子是一个应用(application)。
本发明的存储器件在原理上能被用于任何引入数据,该数据将与之前存储的存储数据进行比较。在一个实施例中,该存储器件适用于执行写操作,该写操作涉及到用写请求提供一个密码,例如口令。存储器件在其存储器中具有口令,并且只有提供的口令和存储的版本相同之后才为写请求工作。在验证口令之后执行的写操作可能是条件写操作。然而,如果功率节省条件写操作不是优选的,则在这个实施例中,可以在不比较写数据与相应的存储数据的情况下执行写。
在一个优选实施例中,本发明第一方面的存储器件适用于执行条件写操作。优选地,这个实施例的存储器件包含写控制单元,该单元连接到比较器单元和存储器,并且适用于只将包含在第二暂存器中且比较器单元的输出指示其与包含在第一暂存器中相应的存储数据不同的写数据连续写到存储器。将数据位直接提供给存储器的写操作也称为直接写操作。
在执行触发(toggle)写操作的一个替代的实施例中,如果比较器单元的输出指示比较的数据不同时,写控制单元使用比较器单元的输出来产生命令,以改变相应存储单元或多个存储单元的状态。存储器单元的状态对应于其中存储的信息位。触发写操作将改变存储的信息位,例如从″0″变到″1″,而不提供写数据位到存储器。在一个实施 例中,可以执行直接写操作或触发写操作。
在一个实施例中,比较器单元提供的输出可以是一个二进制信号,该信号指示″相同″或″不相同″。在另一个实施例中,只在比较的数据不同时,比较器单元才产生输出。这就在写控制单元中节省了解释信号的步骤。在这种情况下,输出例如是刚刚发现与相应的存储数据位不同的写数据位,在写操作期间节省了额外的步骤。对于执行触发写的存储器,比较器单元的输出的另一个例子是将要被改写的存储单元的地址。这意味着写控制器不通过另外的通道得到地址信息。
为了进一步节省时间,在另一个实施例中,当写控制单元正在执行一个或几个写操作时,读控制单元适用于执行并行读取操作。
特别是,本发明的总的思想和提到的实施例能用于与写时间相比具有长的读时间的MRAM器件,例如具有包含0T1MTJ存储单元的存储器的MRAM器件。由于泄漏问题,0T1MTJ存储器的读取时间远长于常规1T1MTJ存储器的读取时间。这个实施例的存储器件能在一个时间跨度内执行例如包含条件写操作的读取步骤,对于将要读取的大量数据来说,该时间跨度可以和现有技术的1T1MTJ器件中使用的连续读操作的时间跨度相比。本发明的这个实施例允许结合0T1MTJ MRAM存储器件的高单元密度和从1T1MTJ器件获知的条件写操作功耗减少的优点。
因此,本发明第一方面的存储器件允许在与各自的写时间相比总是具有长的读取时间的存储技术中利用从具有短的读取时间的MRAM技术获知的功率节省条件写操作的优点。要写入到存储器的位的数目越大,与具有短读时间的存储器件相比,在写操作中本发明的存储器件的性能就越好。对于更大量的写数据,可以使本发明的存储器件的写时间与具有短读取时间的现有技术器件的写时间相当。
根据本发明的第二方面,提供一种用于比较引入数据和存储在存储器的存储部分中的存储数据的方法,所述存储器的读取时间比写时 间长,该方法包含以下步骤:
a)接收包含数据和地址信息的写请求,所述地址信息限定写数据将被写入到的至少一个存储部分,
b)从由包含在写请求中的地址数据限定的存储器的多个部分或所有部分并行读取那些数据,
c)将读取的存储数据存储在第一暂存器中,
d)将写请求包含的至少一部分数据存储在第二暂存器中,
e)比较包含在第一暂存器中的存储数据和包含在第二暂存器且分配了相同地址数据的相应数据,
f)提供指示比较结果的输出。
本发明第二方面的方法对应于本发明第一方面的存储器件。因此,所有提到的特征和优点可以转移到本发明第二方面的方法。具体地说,这个方法在具有存储单元的存储器件中同样允许执行条件写操作,所述存储单元的读取时间比写时间长。这是通过从由包含在引入写请求中的地址数据限定的存储器的多个部分或所有部分并行读取那些数据来实现的。
本发明第二方面的方法的优选实施例对应于本发明第一方面的存储器件的那些优选实施例。
一个实施例包含只将不同于相应的存储数据的那些写数据从第二暂存器写到存储器的步骤。在一个实施例中,写步骤执行为直接写或作为触发写操作。
在另一个实施例中,步骤b)和c)与步骤d)并行执行。
在另一个实施例中,执行从存储器的存储部分的大量的并行读取操作(步骤b),使得包含在引入写请求中的地址数据限定的所有部分被读取操作覆盖。
在另一个实施例中,在接收到包含在写请求中的地址数据之后立即执行并行读取操作。
在另一个实施例中,将写数据从第二暂存器连续地写到存储器。
在另一个实施例中,当执行一个或多个写操作时,执行并行读取操作。
具体实施方式
图1示出了存储器件10的简化框图。这个图仅仅示出了结构元件和它们之间的连接,其有助于向本领域的技术人员解释本发明。然而,对于本领域的普通技术人员很明显,这个描述包含的信息足够使本领域的普通技术人员能够利用本发明。
存储器件10具有用于与外部存储客户端通信的接口单元12。接口单元12通过分离的输入端口接收包含在写请求中的地址数据和写数据,该写请求是在外部存储客户端发起的。
接口单元12与写存储器14和读控制单元16相连,写存储器14在这里也称为第二暂存器。写存储器14与比较器单元18相连。比较器单元18连接到读控制单元16、写存储器14和读存储器20,读存储器20在这里也称为第一暂存器。
存储器件10还包含一个写控制单元22,它的一个输入端与比较器单元18相连,一个输出端与MRAM24相连。注意到比较器单元18可以作为写控制器22的组成部分来提供。MRAM 24具有矩阵状的,或者三维0T1MTJ存储单元阵列,例如那些称为交叉点存储单元的存储单元阵列。存储器24组织成能被并行读取的体(未显示)。通过特别宽的数据总线26建立起MRAM 24和读存储器20之间的连接。
在操作中,在接口单元12接收包含写数据和地址数据的写请求。带有宽实线的箭头指示存储器件10中地址数据的流动。通过与写数据不同的接触接收地址数据。从接口单元12将地址数据传送到读控制单元16。为了简洁,对于本例,我们假设地址数据限定了能利用一个并行读取操作来读取的存储数据的量。读控制单元16从地址数据产生相应的读请求,并将其传送到MRAM 24。
于是,存储在由地址数据限定的存储部分(单元)的存储数据被并行读出,且被并行传送到读存储器20。在一个例子中,通过数据总线26并行传输数以百计的位。
从存储器24读取的数据将会具有与真实数据的失真,这是由于众所周知的基于0T1MTJ存储单元的存储器的泄漏电流问题。结果,确定从存储器24读取的特定存储数据位是0或1涉及到特殊处理,其是造成与1T1MTJ器件相比器件的读时间长的原因。
作为读处理方法的一个例子,读取步骤的测量的电阻值首先存储在连接在存储器24和读存储器20之间的中间读存储器中(未显示)。然后,对中间读存储器中的数据进行评估过程,以便确定每个存储单元的状态(1或0)。评估过程的简单例子是从存储器24读取存储数据,然后改变存储器24中的一位,并且再次从存储器24读取数据。这可以用来确定这个位的值是1还是0。然后,确定的值可以通过数据总线26从中间读存储器传输到存储器20。
读存储器20具有输入寄存器,该寄存器适用于并行接收从MRAM 24读取的存储数据。然后其临时存储该数据。注意到,刚才描述的并行读取操作产生从MRAM 24的存储数据的并行输出,其被从MRAM 24并行传送到读存储器20。存储数据被存储在读存储器20中,从而节省了存储数据到相应地址数据的分配。
在读存储器20填充有存储数据期间,用写请求的写数据填充写存储器14。写数据存储在写存储器20中,从而节省了存储数据到相应地址数据的分配。
因为写入存储器14所需的时间远小于从MRAM 24读取所需的 时间,所以向写存储器14的写入可以在从MRAM 24读之后开始。由发送写请求的存储器客户端、或由内部存储器控制单元(未显示),或由两者一起控制写数据写入写存储器14的实际时间。存储器客户端可以通过首先只发送地址数据到存储器件10,然后在应用方便时的稍后的时刻发送写数据来控制时序。存储控制单元可以通过指示存储器件忙来阻止接收写数据。这例如在写存储器14满时是有用的。
一旦写存储器14中有写数据且分配了相同地址数据的读存储器20中有存储数据,就一边从写存储器14且另一边从读存储器20将写数据和存储数据顺序传送到比较器单元18。比较器单元18的两个数据输入端接收到的位被进行比较。
如果发现写位和相应的存储位不同,则从存储器14接收的相应位值呈现在比较器单元18的输出端,并且与附属的地址数据一起被传送到写控制单元22。写控制单元22用从比较器单元18接收的位值改写MRAM 24中相应的存储单元。
如果发现写位和相应的存储位是相同的,则没有数据从比较器单元18输出到写控制器22。
在替代的实施例中,写存储器14是直接并行连接到MRAM 24,和比较器单元18。写控制单元22还连接到写存储器14。操作中,比较器单元18比较写存储器14的输出端的位值和读存储器20的输出端的位值。如果发现所述位值不同,则比较器单元18向写控制器22发该结果的信号,其触发MRAM 24相应存储单元的改写。改写可以在直接写操作或触发写操作中完成。
图2示出根据本发明的写方法的流程图。该方法在步骤S10中以写请求的接收开始。
在步骤S12中,从由包含在写请求中的地址信息限定的非易失性存储器的多个部分或所有部分并行读取存储数据。存储器的部分例如是存储单元或限定的存储单元排列。注意到,一收到地址数据就执 行步骤S12。存储器件不会一直等到完全接收到写请求,而是立即开始并行读取操作。
在这个实施例中,为了描述的简洁性,只处理写请求,在存储数据和引入的写数据进行比较的子程序中可以使用一个并行读取操作来服务所述写请求。
在步骤S14中,从存储器读取的存储数据存储在第一暂存器中。在步骤S16中,写请求的写数据存储在第二暂存器中。
在步骤S18中,包含在第一暂存器的存储数据与包含在第二暂存器且分配了相同地址信息的相应写数据进行比较。
在步骤S20中,呈现比较的结果作为输出。在步骤S22中,基于步骤S20中产生的输出,只有来自第二暂存器的与相应的存储数据不同的写数据写入到存储器。连续执行,例如逐位或逐字节地执行步骤S18、S20和S22。