磁随机存取存储器及其读出方法 【相关申请的交叉引用】
本申请基于并要求以2003年2月17日提交的在先日本专利申请No.2003-38723为优先权,该申请的内容在此全部引用,以供参考。
【技术领域】
本发明涉及例如磁随机存取存储器(MRAM:Magnetic RandomAccess Memory),尤其涉及利用参照单元的存储器信息的读出方式。
背景技术
MRAM是利用磁电阻效应存储1或0的数据的设备,作为兼有非易失性、高集成性、高可靠性、低功耗性、可高速动作的常规存储器设备的候补之一进行了开发。
作为磁电阻效应,已知主要有GMR(Giant Magneto Resistive)和TMR(Tunneling Magneto Resistive)两种。其中,GMR利用2个强磁性层夹持的导体的电阻随着上下强磁性层的自旋方向而改变的效应。但是,表示磁电阻值的变化比例的MR比约低10%左右。因此,使用GMR的MRAM,存储信息的读出信号小,难以确保读出裕度。所以,认为其不利于实用化。
另一方面,TMR具有由2个作为强磁性层的金属夹持绝缘层构成的层叠结构,利用自旋偏转隧道效应产生的磁电阻变化。具体说,上下强磁性层的自旋方向彼此平行时,插入隧道绝缘膜的2个磁性层之间的隧道概率最大,其结果是电阻值最小。而另一方面,自旋方向彼此相反时,由于自旋偏转隧道概率最小,使得电阻值最大。为实现这样的2个自旋状态,通常上述2个磁性层中某一个的磁化方向被固定,设定为不受外部磁化的影响。一般地,该磁化方向被固定了的层叫做钉扎层。另一个磁性层可编程为根据施加的磁场方向,其磁化方向与钉扎层平行或反平行。该层一般叫做自由层,负责存储信息。TMR的情况下,作为电阻变化率的MR比目前可超出50%,成为MRAM开发地主流。
使用TMR的MRAM的写入反转上述自由层的磁化方向。因此,在正交通过各存储器单元的位线和字线中流过一定值以上的电流,由该电流产生的合成磁场的大小控制自由层的磁化方向。
另一方面,关于存储器单元中存储的数据的读出,开发出如下方式:向与所选择的位相当的TMR的2个磁性层之间施加电压,根据流过那里的电流读出电阻值的方式;向选择的TMR中流入恒定电流,读出由此产生的2个磁性层之间的电压的方式等。
具体说,提出自参考读出法(破坏读出法)(美国专利No.6,134,138)。该专利文献1中举出了使用GMR的MRAM的例子。但是,TMR中也可适用与此完全同样的读出法。该方法可在1或0数据之间确保最大的读出信号,为确保读出裕度,这是非常有效的方法。
图14表示上述已有的自参考读出法的流程图。图14仅仅表示出1位大小的读出顺序,但在实际的存储器中,可读出系统侧要求的任意位大小的信息。在该读出顺序中,首先,适当激活字线和位线,读出所选单元的电阻值。该读出结果保持在数据缓冲器A中(第一读出)(S1)。接着,例如向选择单元中写入数据1(第一写入)(S2)。之后,再度读出选择单元的电阻值,该信息保持在数据缓冲器B中(第二读出)(S3)。在该状态下,判断数据缓冲器A和B的值是否相等(S4)。利用在第一写入动作中写入数据1,在数据缓冲器A和B的值相等时,判断为从选择单元读出的数据为1(S5)。在数据缓冲器A和B的值不相等时,判断为从选择单元读出的数据为0(S6)。
根据图14所示的顺序,选择单元与读出前的存储信息无关,为一直写入数据1的状态。即,读出前的数据被破坏了。这也是之所以叫做破坏读出法的原因。判断为从选择单元读出的数据为0时,通过第一写入动作,将选择单元的数据从0改写为1。因此,该选择单元中需要再次写入数据0的作业(第二写入)(S7)。
这样,作为上述破坏读出法的自参考读出法,在从选择单元读出数据之际,最坏的情况是需要2次的读出动作和2次的写入动作,共计4个循环,因此难以高速存取。另外,在MRAM的情况下,一般地,与读出动作相比,写入动作时消耗电流较大。因此,读出时的2次写入动作进一步增大了芯片自身的功耗。这样,难以将MRAM引入小型便携信息终端等市场。
【发明内容】
根据本发明的一个方面,提供一种磁随机存取存储器装置,包括:存储器单元阵列,表现出磁电阻效应的多个存储器单元按矩阵状配置;多个参照单元,配置在上述存储器单元阵列的一部分上,存储在上述存储器单元读出时应参照的数据;字线,按上述存储器单元阵列的各行配置;位线,按上述存储器单元阵列的各列配置;行解码器,用于选择驱动上述字线;列解码器,用于选择驱动上述位线;读出放大器,检测出上述选择的存储器单元的数据和选择的上述参照单元的数据;第一数据缓冲器,保持从上述读出放大器输出的数据;控制部,在从选择的上述存储器单元读出数据后,反转上述选择的参照单元的数据;第二数据缓冲器,保持上述选择的存储器单元的数据和对应反转了上述数据的参照单元的数据从上述读出放大器输出的数据;比较器,比较上述第一、第二数据缓冲器的输出数据,判别从选择单元读出的数据。
根据本发明的另一个方面,提供一种磁随机存取存储器装置,包括:字线,按存储器单元阵列的各行配置;位线,按上述存储器单元阵列的各列配置;行解码器,用于选择驱动上述字线;列解码器,用于选择驱动上述位线;多个存储器单元,配置在上述字线和位线的一半的交点上,表现出磁电阻效应;多个参照单元,配置在上述存储器单元阵列的一部分上,通过专用的字线选择,存储在上述存储器单元读出时应参照的数据,表现出磁电阻效应;读出放大器,检测出上述选择的存储器单元的数据和选择的上述参照单元的数据;第一数据缓冲器,保持从上述读出放大器输出的数据;控制部,在从选择的上述存储器单元读出数据后,反转上述选择的参照单元的数据;第二数据缓冲器,保持上述选择的存储器单元的数据和对应反转了上述数据的参照单元的数据从上述读出放大器输出的数据;比较器,比较上述第一、第二数据缓冲器的输出数据,判别从选择单元读出的数据。
根据本发明的再一个方面,提供一种磁随机存取存储器装置的读出方法,包括:检测通过第一读出动作从选择单元读出的数据与从参照单元读出的数据的差分;向上述参照单元中写入通过上述第一读出动作读出的数据的反转数据;检测通过第二读出动作从上述选择单元读出的数据与从上述参照单元读出的数据的值的差分;从通过上述第一读出动作检测的数据的差分与通过上述第二读出动作检测的数据的差分的大小关系判别存储在上述选择单元中的数据。
【附图说明】
图1是为说明本发明的基本原理而示出的流程图;
图2是表示本发明第一实施例的结构图;
图3是为说明图2的动作而表示出的流程图;
图4是表示图2所示的读出放大器的一个例子的电路图;
图5是为说明图4所示的读出放大器的动作而表示出的图;
图6是表示图4所示的差动放大器的一个例子的电路图;
图7是表示图2所示的数据缓冲器的一个例子的电路图;
图8是表示图2所示的比较器的一个例子的电路图;
图9是表示比较器的动作的图;
图10是表示图2所示的控制电路的一个例子的电路图;
图11是表示图10的动作的波形图;
图12是表示接通电源时的动作的流程图;
图13是表示本发明的第二实施例的结构图;
图14是为说明原来的破坏读出法而示出的流程图。
【具体实施方式】
下面参考附图说明本发明的实施例。
(基本原理)
图1是表示本实施例中的读出动作的基本原理的流程图。首先,开始同时选择选择单元和例如预先写入数据“0”的参照单元,将这两个单元之间的电阻值之差保持在数据缓冲器A中(第一读出)(S11)。接着向参照单元中写入与预先写入的数据相反的数据、例如“1”(第一写入)(S12)。之后,再次同时选择选择单元和写入数据“1”的参照单元,将这两个单元的电阻值之差保持在数据缓冲器B中(第二读出)(S13)。该状态下,比较数据缓冲器A和B的值(S14)。其结果是A>B时,即,参照单元中写入“0”的状态下的选择单元与参照单元的电阻值之差比向参照单元写入“1”后的选择单元与参照单元的电阻值之差大。因此,可判断为在选择单元中写入了“1”(S15)。
另一方面,当比较结果是A<B时,即在参照单元中写入“0”的状态下的选择单元与参照单元的电阻值之差比向参照单元写入“1”后的选择单元与参照单元的电阻值之差小。因此,可判断为选择单元中写入了“0”(S16)。
这里重要的是图1所示的顺序中,完全不进行对选择单元的写入。这意味着本实施例的读出方法是非破坏读出。因此,不再需要原来的破坏读出中必不可少的第二写入,原来的顺序中需要4个循环的读出动作用3个循环即可完成。在评价该效果时,假设读出动作和写入动作的时间相等,并且在将写入时的功耗假定为读出时的5倍时,通过采用本实施例的方法,在读出时间方面,意味着可实现25%的速度提高,在读出时的功耗方面,意味着有42%的降低。
本实施例与上述的现有自参考型的破坏读出方式不同,设置专用的参照单元,可根据对该参照单元写入前和写入后的电阻值与选择单元的电阻值之差得到选择单元的写入信息。
另一方面,关于读出裕度,由于比较选择单元和参照单元中的相反数据,使与MR(Magneto Resistive)比匹敌的最大信号彼此进行比较成为可能。因此,可确保与原来的破坏读出相等的读出裕度。
(第一实施例)
图2表示依据本发明第一实施例的MRAM。存储器单元阵列11按矩阵状配置例如以TMR为基本元素的多个存储器单元MC。这些存储器单元MC分别连接字线WL和位线BL。各字线WL的一端部连接行解码器12,各字线WL的另一端部连接X写入驱动器13。该X写入驱动器13通过流入字线WL的电流产生X轴方向的电流磁场。
将存储器单元阵列11中的例如最接近X写入驱动器13的一列作为在实现非破坏读出方面起到重要作用的参照单元RC。这些参照单元RC连接专用的位线。
在X写入驱动器13中配置有与参照单元RC数目相同的参照单元用数据寄存器14。这些数据寄存器14保持参照单元中目前写入的数据。这些数据寄存器14如后所述,由于参照单元的数据在1次读出循环中必须反转,因此需要明示出参照单元的当前写入数据处于何种状态。
相反,在不存在参照单元用数据寄存器的情况下,在使用同一参照单元的其他存储器单元进行读出时,由于第一写入动作时应写入参照单元的信息不明确,从而不可能进行读出动作。通过在读出循环的最开始,每次向参照单元写入作为初始状态的数据“0”可省略数据寄存器。但是,此时,需要2次写入动作,与原来的破坏读出相比,没有高速性、低功耗的优点。与此相反,通过使用数据寄存器,可减少写入次数并实现高速动作、低功耗。保持在数据寄存器14中的数据在各读出动作的最后被反转。
另一方面,各位线BL的两端部分别连接Y写入驱动器/接收器(sinker)15A,15B。这些Y写入驱动器/接收器15A,15B通过向位线BL中流过电流而产生Y轴方向的电流磁场。Y写入驱动器/接收器15A,15B配置在位线BL的两端的理由是通过在两个方向上改变位线的电流方向,可将自由层的磁化方向控制为与钉扎层平行或反平行状态之一。
上述Y写入驱动器/接收器15B经列栅极开关16连接列解码器17。地址接收器18连接Y写入驱动器/接收器15B、以及列解码器17、行解码器12和X写入驱动器13。该地址接收器18接收地址信号,并提供给行解码器12、X写入驱动器13、Y写入驱动器/接收器15B和列解码器17。命令接收器19接收从外部供给的命令信号,并提供给上述地址接收器18和开关电路22。数据写入接收器(data in receiver)20接受写入数据Din,并提供给Y写入驱动器/接收器15B、X写入驱动器13和Y写入驱动器/接收器15A。
上述列栅极开关16依据列解码器17的输出信号选择连接到存储器单元MC的位线BL。由列栅极开关16选择的位线和经Y写入驱动器/接收器15B连接到参照单元RC的参照单元专用位线被连接到读出放大器21。该读出放大器21检测这些位线的信号。该读出放大器21的输出信号经依据从命令接收器19供给的信号而动作的开关电路22,被提供给数据缓冲器23A,23B之一。这些数据缓冲器23A,23B的输出信号和数据寄存器14的输出信号DR被提供给比较器24。该比较器24根据数据寄存器14的输出信号,判定数据缓冲器23A,23B的信号,并确定输出最终的输出数据。
图3是表示图2的动作的流程图。
在读出存储器单元MC的数据时,由行解码器12选择的1根字线被激活后,全部位线上出现单元信息(伴随TMR电阻的信号电流、信号电压)。之后,由列解码器17选择接通任意的列栅极开关16。其结果是1根选择线和参照单元专用的位线连接到读出放大器21。该状态下,与选择单元和参照单元的电阻值对应的信号被提供给读出放大器21。读出放大器21检测这些信号之差,该检测结果经开关电路22提供给数据缓冲器23A。其结果是数据缓冲器23A中保持选择单元和参照单元的电阻值之差(S21)。
之后,参考数据寄存器14中保持的数据,反转参照单元RC的数据(S22)。即,通过在选择字线和参照单元RC用位线中流过适当方向和大小的电流,产生其大小足够反转参照单元RC的自由层磁畴方向的合成磁场,并仅反转连接到所选字线的参照单元RC的数据。此时,只有连接选择字线的参照单元依据数据寄存器14中保持的数据而被反转。在初始状态下,该数据寄存器14中保持例如数据“0”,在参照单元RC中依据数据寄存器14的数据而写入数据“0”。因此,参照单元的数据相对数据寄存器14的数据“0”而被反转为数据“1”。在写入该反转数据的过程中,X写入驱动器13依据数据寄存器14的数据来驱动字线。
接着再次如上所述读出选择单元和参照单元的电阻值,由读出放大器21检测出它们之差。该检测输出信号经开关电路22被提供给数据缓冲器23B,在数据缓冲器23B中保持选择单元与参照单元的电阻值之差(S23)。
接着将数据寄存器23A和23B的数据提供给比较器24。该比较器24根据从数据寄存器14供给的数据,比较数据寄存器23A和23B的数据,判断从选择单元读出的数据(S24)。该比较器24的输出信号Dout被输出到芯片外。之后,反转与选择单元相对应的数据寄存器14的数据(S25)。
这里以读出动作为中心进行了叙述,但数据的写入动作与MRAM的一般写入动作相同,因此省略其说明。
图4显示读出放大器21的一个例子。本实施例中,来自参照单元和选择单元的信息被提供给并联连接的2个差动放大器Amp<0>、Amp<1>的反转输入端,并作为从这些差动放大器Amp<0>、Amp<1>输出的2个输出信号而被取出。差动放大器Amp<0>的反转输入端与电源之间连接有串联连接的电阻R1,R2,差动放大器Amp<1>的非反转输入端与电源之间连接有串联连接的电阻R3,R4。电阻R1,R2的连接节点连接到差动放大器Amp<1>的反转输入端,电阻R3,R4的连接节点连接到差动放大器Amp<0>的非反转输入端。即,差动放大器Amp<0>、Amp<1>的输入端的信号由电阻R1~R4适当进行电压变换。通过这种结构,可在读出放大器21中设定规定的死区(不感带)。
图5表示在读出放大器21中设定的死区。在几乎没有来自参照单元和选择单元的信号差时,差动放大器Amp<0>的输出信号out<0>为“0”、差动放大器Amp<1>的输出信号out<1>为“1”。通过如此设定死区,可检测3值状态<0,0><0,1><1,1>。
上述死区的宽度可通过改变R1∶R2和R3∶R4的电阻比来控制。但是,当增大电阻比时,参照单元和选择单元的信号差充分情况下的读出裕度被降低。因此,一般情况下通常设定为R1/R2<1、R3/R4<1。
图6表示图4所示的差动放大器的一个例子。该差动放大器用一般的运算放大器可实现。该差动放大器由N沟道MOS晶体管(下面叫NMOS)Wn1~Wn4、P沟道MOS晶体管(下面叫PMOS)Wp1~Wp3构成。输入信号vcmn是足以恒流控制N沟道MOS晶体管Wn1的中间电位,有利于电流镜象电路的稳定动作。输入信号in_t,in_c被提供给构成差动对的NMOS Wn3,Wn4的栅极。另一方面,构成电流镜象电路的PMOS Wp1,Wp3的输出信号被提供给构成反相器电路的PMOSWp2的栅极。该反相器电路由PMOS Wp2和作为恒流负载的NMOSWn2构成,从这些PMOS Wp2和NMOS Wn2的连接节点输出输出信号out_t。
图7表示上述开关电路22和数据缓冲器23A,23B的一个例子。开关电路22由NMOS 22-1,22-2,22-3,22-4构成。NMOS 22-1,22-3由从命令接收器19供给的控制信号SN1控制,NMOS 22-2,22-4由从命令接收器19供给的控制信号SN2控制。数据缓冲器23A由锁存电路23A-1,23A-2构成,数据缓冲器23B由锁存电路23B-1,23B-2构成。
对应第一读出动作将控制信号SN1设为高电平时,NMOS 22-1,22-3接通。因此,从读出放大器21输出的信号OUT<0>,<1>分别保持在锁存电路23A-1,23A-2中。对应第二读出动作将控制信号SN2设为高电平时,NMOS 22-2,22-4接通。因此,从读出放大器21输出的信号OUT<0>,<1>分别保持在锁存电路23B-1,23B-2中。
图8表示上述比较器24的一个例子。该比较器24包括第一至第四逻辑电路24-1~24-4、由这些第一到第四逻辑电路24-1~24-4的输出信号控制的NMOS 24-5~24-8、以及反相器电路24-9。被供以数据寄存器14的输出信号DR的输入节点N1和输出节点N2彼此之间串联连接NMOS 24-5,24-7,在这些NMOS 24-5,24-7的串联电路中并联连接反相器电路24-9、NMOS 24-6,24-8的串联电路。
从数据缓冲器23A的锁存电路23A-1,23A-2输出的信号dba<0><1>被分别提供给逻辑电路24-1,24-2,从数据缓冲器23B的锁存电路23B-1,23B-2输出的信号dbb<0><1>被分别提供给逻辑电路24-1,24-2。
图9是表示图4所示的读出放大器21的输出数据与比较器24的输出数据Dout的关系的真值表。参照图9说明图8所示的比较器24的动作。
如图3所示的顺序所示,在对参照单元的初始写入数据为“0”时(即图7所示的参照单元的初始数据为“0”时),进行第一读出动作后,数据缓冲器23A的锁存电路23A-1,23A-2中锁存数据<0,1>在或<1,1>。在锁存的数据为<0,1>时,如图5所示,为参照单元与选择单元的信号差较小的情况。接着,在向参照单元中写入数据“1”后,进行第二读出动作,此时数据缓冲器23B的锁存电路23B-1,23B-2中锁存数据<0,0>。
锁存电路23A-1,23A-2的输出信号dba<0><1>如上所述为<0,1>,锁存电路23B-1,23B-2的输出信号dbb<0><1>如上所述为<0,0>。在这些输出信号被提供给比较器24的情况下,逻辑电路24-1,24-3的输出信号为高电平,逻辑电路24-2,24-4的输出信号为低电平。因此,NMOS 24-5,24-7导通,NMOS 24-6,24-8截止。此时,数据寄存器14的输出信号为参照单元读出初期的数据“0”。该数据“0”经NMOS 24-5,24-7作为输出数据输出到输出节点N2。因此,最终输出数据为“0”,并可判断为在选择单元中写入了“0”。
另一方面,在通过第一读出动作,而在数据缓冲器23A的锁存电路23A-1,23A-2中保持<1,1>时,如图5所示,表示选择单元的电压比参照单元的更高(电阻高)。接着,向参照单元中写入数据“1”后,进行第二读出动作,此时数据缓冲器23B的锁存电路23B-1,23B-2中锁存意味着死区的数据<0,1>。
锁存电路23A-1,23A-2的输出信号dba<0><1>如上所述为<1,1>,锁存电路23B-1,23B-2的输出信号dbb<0><1>如上所述为<0,1>。在这些输出信号被提供给比较器24的情况下,逻辑电路24-2,24-4的输出信号为高电平,逻辑电路24-1,24-3的输出信号为低电平。因此,NMOS 24-6,24-8导通,而NMOS 24-5,24-7截止。此时,数据寄存器14的输出信号为参照单元读出初期的数据“0”。该数据“0”由反相器电路24-9反转,经NMOS 24-6,24-8作为输出数据输出到输出节点N2。因此,最终输出数据为“1”,并可判断为在选择单元中写入了数据“1”。
在对同一序号的单元对的第二次读出、或已通过整个循环对参照单元存取了一次的情况下,参照单元的数据被改写为“1”(即相当于图7所示的参照单元的初始数据为“1”的情况)。此时,最终输出数据如真值表的右侧所示,与左侧相反。即,此时,数据寄存器14的数据为“1”,因此从比较器24输出的最终输出数据相对于数据寄存器14的数据为“0”的情况被完全反转。
图10表示图2所示的数据寄存器14的一个例子。该数据寄存器14在接通电源时被设定为初始值,例如被设定为数据“0”,对应于MRAM的读出动作,反转所保持的数据。即,在该数据寄存器14中,由反相器电路14a和时钟反相器电路(clocked inverter)14b构成锁存电路。NMOS 14c响应电源接通信号PWRON而导通并将锁存电路的节点NB设为接地电位Vss。或非电路14d、反相器电路14e响应电源接通信号PWRON或在存取MRAM时产生的时钟信号CLK而控制时钟反相器电路14b。反相器电路14f反转锁存电路的输出信号,并将输出信号DR提供给X写入驱动器13和比较器24。延迟电路(DL)14g将反相器电路14f的输出信号DR延迟规定时间。或非电路14i响应由反相器电路14h反转的时钟信号CLK和延迟电路14g的输出信号控制NMOS14j。该NMOS 14j控制构成锁存电路的时钟反相器电路14b的输入端电位。反相器电路14k反转延迟电路14g的输出信号。或非电路14l响应反相器电路14k的输出信号和由反相器电路14h反转的时钟信号CLK来控制NMOS 14m。该NMOS 14m控制构成锁存电路的反相器电路14a的输入端电位。
图11是表示图10所示的数据寄存器14的动作波形图。电源接通信号PWRON为高电平时,NMOS 14c导通,反相器电路14a的输入端NB为低电平。因此锁存电路的输出信号为高电平。该输出信号作为由反相器电路14f反转的控制信号DR被提供给X写入驱动器13和比较器24。因此,数据寄存器14被设定为数据“0”。
该状态下,在响应对MRAM的存取而产生时钟信号CLK后,NMOS 14j,14m响应延迟电路14g的输出信号和时钟信号而交互导通,且锁存电路的数据被反转。随之而来的是从反相器电路14f输出的控制信号DR被反转,数据寄存器14的数据被反转。
图12表示依据本发明的MRAM接入电源时的顺序。在接入电源时,确定存储器内部各节点的初始状态(S31)。在芯片内部生成的各种发生电压达到规定值时(S32),在全部参照单元中写入数据“0”或“1”(S33)。接着,通过图10,图11所示动作,将参照单元用的数据寄存器14进行初始化(S34)。该一连串的动作结束后,即可进行通常的存取动作。
对该参照单元的写入包括有边作为用户侧电源接通顺序的一环而递增行地址边进行写入的方法,和在芯片内设置初始写入用计数器电路,边通过该计数器电路递增行地址边自动进行写入的方法。
根据第一实施例,存储器单元阵列11中设置与选择单元同时被选择的参照单元RC,在读出选择单元时,首先,由读出放大器21检测选择单元和参照单元RC的电阻值之差,之后,反转参照单元RC的数据,另读出放大器21进一步检测选择单元和被反转后的参照单元RC的电阻值之差,通过比较器24比较这2次读出动作带来的检测结果,判断选择单元中存储的数据。这样,根据第一实施例,由于数据读出时改变参照单元的数据而不改变选择单元的数据,因此可防止现有的自参考读出法在不可避免的读出中对选择单元的数据破坏。其结果是读出动作的必要顺序仅仅包括2次读出动作和1次写入动作,因此可实现高速读出。而且由于功耗大的写入次数减少,可实现低功耗型的MRAM。
对应参照单元设置的数据寄存器14的输出信号DR也被提供给比较器24,比较器24据此从数据寄存器23A,23B中保持的数据判定选择单元的数据。因此,在连续进行存取动作时,可由比较器24从数据寄存器23A,23B中保持的数据中确实地判定选择单元的数据。
(第二实施例)
图13表示第二实施例的MRAM的方框图。图13中,与图2相同的部分具有相同的符号。第二实施例在使用TMR的存储器单元阵列的结构上与第一实施例不同。即,在第一实施例的存储器单元阵列11中,在所有字线WL和位线BL的交点上配置存储器单元MC和参照单元RC,参照单元RC专用的位线被配置在存储器单元阵列11中与X写入驱动器13相邻的位置上。
与此相反,第二实施例如图13所示,只在字线WL和位线BL的一半交点区域配置存储器单元MC和参照单元RC。参照单元RCA,RCB按行方向配置,参照单元RC专用的字线WL配置在存储器单元阵列11中与Y写入驱动器/接收器15A,15B相邻的两端。
存储器单元MC和参照单元RC由TMR构成。各字线WL的一端部连接到行解码器12,另一端部连接到X写入驱动器13。由行解码器12选择这些字线WL,并通过在由X写入驱动器13选择的字线中流过电流而产生X轴方向的电流磁场。
各位线BL的一端部连接到Y写入驱动器/接收器15A,另一端部连接到Y写入驱动器/接收器15B。通过由这些Y写入驱动器/接收器15A,15B向位线BL中流过电流而产生Y轴方向的电流磁场。Y写入驱动器/接收器15A上连接与参照单元RCA相对应的多个数据寄存器14A,Y写入驱动器/接收器15B上连接与参照单元RCB对应的多个数据寄存器14B。与第一实施例同样,这些数据寄存器14A,14B在电源接通时设定初始数据,在各读出动作的最后反转数据。读出放大器21的两个输入端连接到列栅极开关16。
在上述结构中,在读出存储器单元MC的数据时,若选择1根字线,则2根参照单元专用的字线之一被激活。即,激活参照单元专用的字线,以选择与连接选择单元的位线相邻的位线上所连接的参照单元。这样,在全部的位线上出现选择单元的数据(伴随TMR电阻的信号电流和信号电压)和参照单元的数据。之后,由列解码器17选择导通任意的列栅极开关16。这样,1个选择单元和1个参照单元的数据被提供给读出放大器21。至于此后的读出动作,与第一实施例相同,可遵从图3所示的顺序。
参照单元用的数据寄存器14A,14B配置在存储器单元阵列11的两侧,但不限定于此,例如可仅配置在存储器单元阵列11的单侧。
根据上述第二实施例,可得到与第一实施例相同的效果。
第一、第二实施例表示出从相同的单元阵列读出1位数据的情况。但是,在取出1位以上的数据时,可相应地准备多根参照单元专用位线和多个读出放大器。
此外,当然在不改变本发明的宗旨的范围中可实施种种变形。
本领域的技术人员容易发现附加的优点并可进行种种修改。因此,本发明在其广义方面不限于这里所示出的和所描述的特定细节和代表实施例。这样,在不背离后附权利要求及其等效物所限定的本发明的精神和范围的情况下可作出各种改变。