背景技术
作为以低功耗可以进行非易失性的数据存储的存储装置,引人注目的是MRAM(Magnetic Random Access Memory)设备。MRAM设备是使用在半导体集成电路上形成的多个薄膜磁性体进行非易失性的数据存储而对各个薄膜磁性体可以随机访问的存储装置。
特别是近年来已发表了通过将利用磁隧道结(MTJ:MagneticTunnel Junction)的薄膜磁性体作为存储单元使用而MRAM设备的性能飞速进步的信息。
图11是表示具有磁隧道结部的存储单元(以下,简单地称为「MTJ存储单元」)的结构的概略图。
参见图11,MTJ存储单元具有电阻随存储数据电平而变化的隧道磁阻元件TMR和在数据读出时用于形成通过隧道磁阻元件TMR的读出电流Is的路径的访问元件ATR。访问元件ATR,典型的是由场效应晶体管形成的,所以,下面,也将访问元件称为访问晶体管ATR。访问晶体管ATR连接在隧道磁阻元件TMR与固定电压(接地电压Vss)之间。
图12是说明从MTJ存储单元中进行的数据读出的概念图。
参见图12,隧道磁阻元件TMR包括具有固定的一定的磁化方向的强磁性体层(以下,简单地称为「固定磁化层」)FL和磁化为与外部的外加磁场相应的方向的强磁性体层(以下,简单地称为「自由磁化层」)VL。在固定磁化层FL与自由磁化层VL之间,设置由绝缘体膜形成的隧道势垒(隧道膜)TB。自由磁化层VL根据写入的存储数据的电平磁化为与固定磁化层FL相同的方向或与固定磁化层FL相反的方向。由固定磁化层FL、隧道势垒TB和自由磁化层VL形成磁隧道结。
在数据读出时,访问晶体管ATR随字线WL的激活而导通。这样,便可使读出电流Is流过位线BL~隧道磁阻元件TMR~访问晶体管ATR~接地电压Vss的电流路径。
隧道磁阻元件TMR的电阻根据固定磁化层FL和自由磁化层VL的磁化方向的相对关系而变化。具体而言,在固定磁化层FL的磁化方向与自由磁化层VL的磁化方向相同(平行)时,隧道磁阻元件的电阻比两者的磁化方向相反(反平行)时小。
因此,如果使自由磁化层VL根据存储数据磁化为上述2种方向中的某一方向,则在隧道磁阻元件TMR中由于读出电流Is而发生的电压变化就随存储数据电平而异。因此,如果在例如将位线BL预充电到一定电压之后使读出电流Is流过隧道磁阻元件TMR,通过检测位线BL的电压,便可读出MTJ存储单元的存储数据。
图13是说明对MTJ存储单元的数据写入动作的概念图。
参见图13,在数据写入时,字线WL非激活,访问晶体管ATR截止。在该状态下,用于将自由磁化层VL磁化为与写入数据相应的方向的数据写入电流分别流过写入数字线WDL和位线BL。自由磁化层VL的磁化方向由分别流过写入数字线WDL和位线BL的数据写入电流决定。
图14是说明对MTJ存储单元进行数据写入时的数据写入电流与隧道磁阻元件的磁化方向的关系的概念图。
参见图14,横轴H(EA)表示在隧道磁阻元件TMR内的自由磁化层VL中加到易磁化轴(EA:Easy Axis)方向的磁场。另一方面,纵轴H(HA)表示在自由磁化层VL中作用到难磁化轴(HA:Hard Axis)方向的磁场。磁场H(EA)和H(HA)分别与由分别流过位线BL和写入数字线WDL的电流产生的2个磁场中的1个对应。
在MTJ存储单元中,固定磁化层FL的固定的磁化方向沿自由磁化层VL的易磁化轴,自由磁化层VL根据存储数据的电平(“1”和“0”)沿易磁化轴方向磁化为与固定磁化层FL平行(相同)或反平行(相反)的方向。下面,在本说明书中,分别用Rmax、Rmin(其中,Rmax>Rmin)表示分别与自由磁化层VL的2种磁化方向对应的隧道磁阻元件TMR的电阻。MTJ存储单元与这样的自由磁化层VL的2种磁化方向对应,可以存储1位的数据(“1”和“0”)。
自由磁化层VL的磁化方向仅在外加的磁场H(EA)和H(HA)之和达到图中所示的星形特性线的外侧的区域时可以重新改写。即,在外加的数据写入磁场是与星形特性线的内侧的区域相当的强度时,自由磁化层VL的磁化方向不变化。
如星形特性线所示的那样,通过给自由磁化层VL施加难磁化轴方向的磁场,可以降低改变沿易磁化轴的磁化方向所需要的磁化阈值。
如图14的例那样,在设计了数据写入时的工作点时,在作为数据写入对象的MTJ存储单元中,设计为易磁化轴方向的数据写入磁场的强度成为HWR。即,为了得到该数据写入磁场HWR,设计流过位线BL或写入数字线WDL的数据写入电流的值。通常,数据写入磁场HWR用磁化方向的切换所需要的开关磁场HSW与余量ΔH之和表示。即,HWR=HSW+ΔH。
为了改写MTJ存储单元的存储数据即隧道磁阻元件TMR的磁化方向,必须使指定电平以上的数据写入电流流过写入数字线WDL和位线BL。这样,隧道磁阻元件TMR中的自由磁化层VL就根据沿易磁化轴(EA)的数据写入磁场的方向磁化为与固定磁化层FL平行或相反(反平行)的方向。一旦写入隧道磁阻元件TMR的磁化方向即MTJ存储单元的存储数据在执行心的数据写入之前非易失地保持着。
通常,在存储设备中,为了提高制造合格率,除了根据地址信号有选择地可以访问的多个正规存储单元外,还具有用于修复发生了缺陷的正规存储单元(以下,称为「缺陷存储单元」)的冗长结构。
图15是表示具有冗长结构的先有的MRAM设备的结构的概略框图。在图15中,代表性地表示出了这样的MRAM设备中的与数据读出关联的结构。
参见图15,先有的MRAM设备具有多个正规存储单元MC和用于修复缺陷存储单元的备用存储单元SMC配置成矩阵状的存储器阵列MA、行选择电路RDC和列选择电路CDC。
在存储器阵列MA中,多个备用存储单元SMC配置为构成备用行。在图15中,作为一例,表示出了配置成4行×4列的正规存储单元MC和配置成1行×4列的备用存储单元SMC。与这些备用存储单元的行和正规存储单元的行分别对应地配置了备用字线SWL和字线WL0~WL3。即,在图15所示的MRAM设备中,按包含缺陷存储单元的不良存储单元行单位利用备用行进行置换修复。
另一方面,备用存储单元SMC和正规存储单元MC配置为共有存储单元列。分别与存储单元列对应地配置位线BL0~BL3。分别与位线BL0~BL3对应地设置读出放大器SA0~SA3。读出放大器SA0~SA3放大分别在位线BL0~BL3上传输的数据。
行选择电路RDC将包含表示有无缺陷存储单元即表示与否需要使用备用行的信息和用于特定不良存储单元行的信息的冗长信息存储到内部,根据这些冗导通状态长信息和输入的行地址RA0和RA1执行行选择。
列选择电路CDC根据输入的列地址CA0和CA1执行列选择,将从位线BL0~BL3中的与选择列对应的1条位线中读出的数据向用于在与外部间进行数据收发的外部I/O(EI/O)输出。
图16是表示行选择电路RDC的结构的电路图。
参见图16,行选择电路RDC包含构成备用译码器SD和正规行译码器的行选择门RLG0~RLG3。
备用译码器SD具有用于非易失地存储冗长修复使用的信息的熔断器元件FS0~FS2。熔断器元件FS0和FS1分别存储用于表示不良存储单元行的行地址RA0和RA1的电平。熔断器元件FS2存储表示是否需要使用备用行的信息。
熔断器FS0~FS2分别通过激光输入等引起的熔断器元件的切断(熔断)而执行编程。即,各熔断器元件FS可以根据是熔断状态(切断状态)和非熔断状态(导通状态)中的某一种状态而非易失地保持1位的信息。
备用译码器SD具有用于将与熔断器元件FS0的状态相应的电压锁存在节点Ng0的锁存电路LT0、用于将与熔断器元件FS1的状态相应的电压锁存在节点Ng1的锁存电路LT1和用于将节点Ng0和节点Ng1提升到电源电压Vcc的晶体管100。在锁存电路LT0和LT1中,将节点Ng0和节点Ng1作为输入侧的反相器的驱动力设计为大于晶体管100的驱动力。
备用译码器SD包括分别设置在分别传输行地址RA0和/RA0(RA0的反相电平)的节点与节点Ns0之间的晶体管门101及102和分别设置在分别传输行地址RA1和/RA1(RA1的反相电平)的节点与节点Ns1之间的晶体管门103及104。晶体管门101~104由例如N沟道MOS晶体管构成。
备用译码器SD进而包括连接在电源电压Vcc与节点Ns2之间的P沟道MOS晶体管105和串联连接在节点Ns2与接地电压Vss之间的N沟道MOS晶体管106、107及108。
晶体管105的栅极与接地电压Vss连接。晶体管106的栅极与静电Ns0连接,晶体管107的栅极与静电Ns1连接。晶体管108的栅极通过熔断器元件FS2与电源电压Vcc连接。反相器109根据静电Ns2的电压的反相电平驱动备用字线SWL。
下面,说明备用译码器SD的动作。
在正规存储单元中不存在缺陷存储单元时,即不使用备用行时,熔断器元件FS2就熔断,成为切断状态。在该状态下,晶体管108总是设定为截止状态,所以,静电Ns2的电压固定为电源电压Vcc(高电平)。结果,备用字线SWL维持为非激活状态(接地电压Vss:低电平)。
以下,在本说明书中,将数据、信号和信号线等的与作为2值的电压电平的“1”对应的高电压电平(例如电源电压Vcc)和与“0”对应的低电压电平(例如接地电压Vss)简单地分别称为「高电平」和「低电平」。
另一方面,为了缺陷存储单元的置换修复而使用备用行时,将熔断器元件FS2维持为导通状态,同时,由熔断器FS0和FS1决定表示不良存储单元行的行地址RA0和RA1的电平。
在熔断器元件FS0为切断状态时,节点Ng0由晶体管100设定为电源电压Vcc(高电平)。与此相应地,晶体管门101导通,而晶体管门102截止。因此,晶体管106在行地址RA0=“1”时导通,在行地址RA0=“0”时截止。
与此相反,在熔断器元件FS0为导通状态时,节点Ng0设定为低电平(接地电压Vss)。与此相应地,晶体管门102导通,而晶体管门101截止。因此,晶体管106在行地址RA0=“0”时导通,在行地址RA0=“1”时截止。
这样,晶体管106在熔断器元件FS0为切断状态时而RA0=“1”(高电平)时导通,在熔断器元件FS0为导通状态时而行地址RA0=“0”(低电平)时导通。即,与熔断器元件FS0执行的状态对应地可以使晶体管106根据行地址RA0的指定电平而导通。
对于行地址RA1,熔断器元件FS1、锁存电路LT1、晶体管门103及104和晶体管107与和行地址RA0对应的的熔断器元件FS0、锁存电路LT0、晶体管门101及102和晶体管106一样进行设置。
因此,晶体管107与熔断器元件FS1执行的状态对应地根据行地址RA1的指定电平而导通。
这样,通过在与不良存储单元行对应的行地址RA0为“1”时使熔断器元件FS0成为切断状态而在行地址RA0为“0”时使熔断器元件FS0成为导通状态,可以使表示不良存储单元行的行地址RA0执行编程。同样,利用熔断器元件FS1可以使与不良存储单元行对应的行地址RA1执行编程。
通过采用这样的结构,备用译码器SD在熔断器元件FS2不熔断而为导通状态并且由熔断器元件FS0和FS1执行的不良存储单元行的行地址与输入的行地址RA0和RA1一致时将备用字线SWL驱动激活为高电平。
分别与正规存储单元行对应的字线WL0~WL3的激活,分别由行选择门RLG0~RLG3进行控制。
行选择门RLG0根据行地址/RA0,/RA1、和节点Ns2的电压电平的AND逻辑运算结果控制字线WL0的激活。因此,字线WL0在节点Ns2为低电平(即,备用字线SWL为非激活状态)并且RA0=“0”和RA1=“0”时激活为高电平。
同样,行选择门RLG1根据行地址/RA0,/RA1、和节点Ns2的电压电平的AND逻辑运算结果控制字线WL1的激活。因此,字线WL1在备用字线SWL为非激活状态并且RA0=“0”和RA1=“1”时激活为高电平。
行选择门RLG2根据行地址/RA0,/RA1、和节点Ns2的电压电平的AND逻辑运算结果控制字线WL2的激活。因此,字线WL2在备用字线SWL为非激活状态并且RA0=“1”和RA1=“0”时激活为高电平。
行选择门RLG3根据行地址/RA0,/RA1、和节点Ns2的电压电平的AND逻辑运算结果控制字线WL3的激活。因此,字线WL3在备用字线SWL为非激活状态并且RA0=“1”和RA1=“1”时激活为高电平。
通过采用这样的结构,在备用字线SWL激活时,字线WL0~WL3就成为低电平。另一方面,在备用字线SWL为非激活状态时,与行地址RA0和RA1的组合相应地有选择地激活字线WL0~WL3中的1条字线。
这样,在图15所示的MRAM设备中,可以利用由备用存储单元SMC构成的备用行置换修复正规存储单元中的缺陷存储单元。
这样,在先有的MRAM设备中,为了实现冗长结构,必须设置通过激光输入等而切断(熔断)的熔断器元件。这样,就需要激光微调装置等特别的机器和处理工序,所以,编程处理所需要的时间和成本将增大。另外,熔断器元件具有比较大的面积,所以,将招致MRAM设备的面积增加。此外,由于伴有激光照射等外部输入引起的物理的破坏,所以,对其他所需要的电路也将造成损害,从而设备全体的动作可靠性将接地。
发明的具体实施方式
下面,参照附图详细说明本发明的实施例。以下,图中的相同符号表示相同或相当的部分。
实施例1.
图1是表示本发明实施例1的MRAM设备1的结构的框图。在图1中,代表性地表示MRAM设备中包含冗长结构的与数据读出动作关联的电路群。
参见图1,实施例1的MRAM设备1具有存储器阵列10、行选择电路20、列选择电路30、由与存储器阵列10相邻地配置的编程单元PMC构成的编程组件PU0~PU2和用于从编程组件中读出数据的编程信息读出部40。
存储器阵列10包括配置成矩阵状的多个正规存储单元MC和备用存储单元SMC。备用存储单元SMC配置为构成备用行。即,正规存储单元MC和备用存储单元SMC设置为共有存储单元列。
在图1中,和图15所示的结构一样,表示出了配置成4行×4列的正规存储单元MC和配置成1行×4列的备用存储单元SMC。
但是,在本发明的应用中,正规存储单元MC和备用存储单元SMC的配置个数不特别限定,可以是任意的。
分别与正规存储单元行对应地配置字线WL0~WL3,与备用行对应地设置备用字线SWL。此外,分别与存储单元列对应地配置位线BL0~BL3。位线BL0~BL3在对应的存储单元列中由正规存储单元MC和备用存储单元SMC所共有。分别与位线BL0~BL3对应地设置的读出放大器SA0~SA3放大位线BL0~BL3中的对应的1条位线的电压,生成读出数据。
编程组件PU0~PU2分别由2个编程单元构成。编程组件PU0具有编程单元PMC0和PMC1,编程组件PU1具有编程单元PMC2和PMC3,编程组件PU2具有编程单元PMC4和PMC5。以下,统称编程单元时,简单地标记为编程单元PMC。各编程组件存储1位的信息。构成各编程组件PU的2个编程单元PMC存储不同的电平的数据。
编程单元PMC配置为构成编程单元行,与编程单元行对应地设置编程字线PWL。图1中表示的是编程单元PMC配置成1行×6列的结构例,但是,在本发明的应用中,编程单元PMC的配置个数不特别限定,可以采用任意的个数。例如,也可以将编程单元PMC配置为构成多个编程单元行。
正规存储单元MC、备用存储单元SMC和编程单元PMC分别具有与图11所示的相同的结构。即,在正规存储单元MC中,访问晶体管ATR的栅极与对应的字线WL连接,在备用存储单元SMC中,访问晶体管ATR的栅极与备用字线SWL连接,在编程单元PMC中,访问晶体管ATR的栅极与编程字线PWL连接。
编程信息读出部40具有电源接通检测电路45和分别与编程组件PU0~PU1对应地设置的编程读出放大器PSA0~PSA2。
参见图2A,电源接通检测电路45响应供给MRAM设备1的外部电源电压Ext.Vcc,生成电源接通复位信号POR。电源接通复位信号POR向编程字线PWL传输。
参见图2B,电源接通复位信号POR在与响应电源接通而上升的外部电源电压Ext.Vcc超过指定的电压Vt的时刻相当的时刻tp激活为高电平。这样,电源接通检测电路45至少在数据读出动作之前可以将编程字线PWL激活为高电平。
图3是表示编程读出放大器PSA0~PSA2的结构的电路图。编程读出放大器PSA0~PSA2具有相同的结构,所以,代表性地说明编程读出放大器PSA0的结构。
参见图3,编程读出放大器PSA0与编程单元PMC0和PMC1对应地设置。编程读出放大器PSA0具有用于向节点N0和N1供给一定电流Ic的电流供给部70、在节点N0和接地电压Vss之间与编程单元PMC0串联连接的N沟道MOS晶体管73和在节点N1和接地电压Vss之间与编程单元PMC1串联连接的N沟道MOS晶体管74。电流供给部70具有分别与节点N0和N1对应地设置的电流源71和72。
如前所述,各编程单元PMC具有与正规存储单元MC和备用存储单元SMC相同的结构。例如,编程单元PMC0具有在节点N0和接地电压Vss之间串联连接的隧道磁阻元件TMR0和访问晶体管ATR0。同样,编程单元PMC1具有在节点N1和接地电压Vss之间串联连接的隧道磁阻元件TMR1和访问晶体管ATR1。
编程单元PMC0和PMC1分别存储不同的电平(“1”,“0”)的数据。即,隧道磁阻元件TMR0和TMR1的电阻各设定为Rmax和Rmin中的一方。
编程单元PMC0和PMC1内的访问晶体管ATR0和ATR1响应编程字线PWL的激活即电源接通复位信号POR的激活而导通。
这样,响应电源接通复位信号POR的激活而在节点N0和N1之间发生隧道磁阻元件TMR0和TMR1的电阻差即与存储数据电平的不同对应的极性的电压差。
编程读出放大器PSA0进而具有用于放大节点N0和N1间的电压差而生成编程信号XRA0的读出放大器75。例如,在编程单元PMC0和PMC1分别存储“1”和“0”时,编程信号XRA0设定为“1”(高电平),在编程单元PMC0和PMC1分别存储“0”和“1”时,就设定为“0”(低电平)。这样,各编程组件就利用分别存储不同的电平的2个编程单元PMC存储1位信息。
再次参见图1,编程组件PU0~PU2分别存储与图16所示的熔断器元件FS0~FS2相同的1位信息。编程读出放大器PSA0~PSA2根据对应的编程组件分别存储的1位信息分别生成编程信号XRA0、XRA1和XUSE。
因此,编程信号XRA0和XRA1表示用于表示不良存储单元行的行地址RA0和RA1的电平,编程信号XUSE表示作为冗长结构而配置的备用行是使用状态/非使用状态中的哪一种状态。也将使用编程单元(编程组件)存储的置换修复使用的这些信息总称为「冗长信息」。
行选择电路20从编程信息读出部40接收编程信号XRA0、XRA1、XUSE和行地址RA0和RA1,有选择地激活字线WL0~WL3和备用字线SWL中的1条字线。
参见图4,行选择电路20包括用于根据冗长信息进行地址判断的备用译码器50和与正规行译码器相当的行选择门RLG0~RLG3。
备用译码器50从图16所示的先有的备用译码器SD中省略了熔断器元件FS0~FS2的配置,而与接收编程信号XRA0、XRA1、XUSE的输入的结构相当。
即,备用译码器50包括用于分别锁存编程信号XRA0和XRA1的锁存电路51及52、由N沟道MOS晶体管构成的晶体管门53~56和在电源电压Vcc与接地电压Vss之间串联连接的P沟道MOS晶体管57及N沟道MOS晶体管58~60。
此外,备用译码器50包括用于使与晶体管57和58的连接节点相当的节点Nc的电压电平反相的反相器61和用于锁存编程信号XUSE的锁存电路62。备用字线SWL驱动为与反相器61的输出相应的电压。锁存电路51、52和62在电源接通中分别保持编程信号XRA0、XRA1和XUSE。
锁存电路51和52将响应电源接通复位信号POR的激活而生成的编程信号XRA0和XRA1的反相电平分别保持在节点Na和Nb。
晶体管门53在节点Na的电压为高电平时导通,将行地址/RA0向晶体管58的栅极传输。晶体管门54与晶体管门53相辅地导通,在导通状态时将行地址RA0向晶体管58的栅极传输。因此,晶体管58在编程信号XRA0和行地址RA0的电平一致时导通。
同样,晶体管门55在节点Nb为高电平时导通,将行地址/RA1向晶体管59的栅极传输。晶体管门56与晶体管门55相辅地导通,在导通状态时将行地址RA1向晶体管59的栅极传输。因此,晶体管59在编程信号XRA1和行地址RA1的电平一致时导通。
锁存电路62将晶体管60的栅极电压维持在锁存的编程信号XUSE的电平。因此,晶体管60在编程信号XUSE设定为“1”(高电平)时导通,而在编程信号XUSE设定为“0”(低电平)时截止。
因此,在备用行的不使用状态时编程信号XUSE设定为“0”(低电平),所以,晶体管60固定地截止,不论行地址RA0、RA1如何,备用字线SWL都维持为非激活状态(低电平)。
另一方面,在编程信号XUSE设定为“1”(高电平)的备用行的使用状态时,表示不良存储单元行的编程信号XRA0和XRA1分别与输入的行地址RA0和RA1一致时,备用字线SWL激活为高电平。但是,在两者不一致时,即输入的行地址RA0、RA1未选择不良存储单元行时,备用字线SWL就是非激活状态(低电平)。这样,备用译码器就进行输入的行地址与由冗长信息表示的不良行地址是否一致的判断。
行选择门RLG0~RLG3具有与图16所示的行选择门RLG0~RLG3相同的结构,在备用字线SWL为非激活状态时,根据行地址RA0和RA1有选择地激活字线WL0~WL3的1条字线。另一方面,在备用字线SWL已激活时,字线WL0~WL3都成为非激活状态(低电平)。
因此,备用译码器50备用行由编程信号XUSE设定为使用状态并且编程信号XRA0和XRA1与行地址RA0和RA1一致时,就将备用字线SWL激活为高电平。在除此以外的情况时,备用字线SWL维持为低电平。
再次参见图1,位线BL0~BL3分别由行选择电路20有选择地激活,读出与字线WL0~WL3中的1条或与备用字线SWL对应的正规存储单元MC和备用存储单元SMC的某一个的存储数据对应的电压。读出放大器SA0~SA3放大位线BL0~BL3的电压,生成读出数据。
参见图5,列选择电路30具有分别设置在与外部I/O(E I/O)连接的节点No和位线BL0~BL3之间的列选择开关31~34。列选择开关31~34分别由例如N沟道MOS晶体管构成。列选择开关31~34的通/断分别与列选择线CSL0~CSL3相应地设定。
列选择电路30进而具有分别用于控制列选择线CSL0~CSL3的激活的流通选择门CSG0~CSG3。列选择门CSG0~CSG3根据列地址CA0和CA1控制列选择线CSL0~CSL3的激活。例如,在流通地址CA0=“0”并且CA1=“0”时,列选择线CSL0由列选择门CSG0激活为高电平。因此,这时,读出到位线BL0上的数据向外部I/O(E I/O)传输。这样,4条列选择线CSL0~CSL3中的1条就根据2个列地址CA0、CA1的电平的组合(4种)而激活为高电平。
参见图6,在时刻t0,对MRAM设备1接通电源,开始进行初始动作。响应外部电源电压Ext.Vcc的上升而电源接通复位信号POR激活为高电平。响应电源接通复位信号POR的激活,从由编程单元PMC构成的编程组件PU中进行冗长信息读出,生成编程信号XUSE、XRA0和XRA1。
在图6中,作为一例,表示了编程信号XUSE、XRA0、XRA1分别为“1”(高电平)的情况。这时,将备用行设定为使用状态(XUSE=“1”),行地址RA0=RA1=“1”作为不良行地址进行处理。在备用译码器50中,节点Na和Nb的电压电平根据生成的编程信号XRA0和XRA1的电平分别保持为低电平。
这样,在数据读出动作进行之前的初始动作时,读出编程组件存储的冗长信息,由锁存电路保持在备用译码器50内。与此相应地,在时刻ts以后,设备成为可以使用的状态,从而可以进行通常的数据读出。
在图6中,表示了在初始动作之也维持电源接通复位信号的激活即编程字线PWL的激活的动作例,但是,也可以将编程字线PWL的激活期间限定为初始动作内的指定期间。这时,由设置在备用译码器50内的锁存电路保持编程信号XUSE、XRA0和XRA1的电平。换言之,如图6所示,在电源接通期间中,在维持编程字线PWL的激活的动作状态下,在备用译码器50内也可以省略锁存电路的配置。但是,如果配置了锁存电路,仅在电源接通之后比较短的期间中使数据读出电流通过编程单元,便可得到冗长信息,所以,可以抑制编程单元的故障发生,从而可以提高动作的可靠性。通过缩短在编程单元中的电流通过期间,可以提高编程单元的动作的可靠性。
在时刻ts以后,在设定为输入的行地址RA0=RA1=“0”的期间(时刻ts~t1),由于行地址RA0和RA1分别与编程信号XRA0和XRA1(不良行地址)不一致,所以,节点Nc的电压设定为高电平。因此,备用字线SWL设定为非激活状态(低电平),与正规存储单元对应的字线WL0有选择地激活为高电平。
其次,在时刻t1,行地址发生变化,设定为RA0=“1”和RA1=“0”。这时,行地址RA0和RA1与编程信号XRA0和XRA1(不良行地址)也完全不一致。因此,节点Nc维持为高电平,备用字线SWL维持非激活状态(低电平)。此外,响应行地址的变化,取代字线WL0,WL1有选择地激活(高电平)。
此外,在时刻t2,行地址进而发生变化,设定为RA0=RA1=“1”。在该状态下,行地址RA0和RA1与编程信号XRA0和XRA1(不良行地址)完全一致。即,选择不良存储单元行。这时,节点Nc的电压从高电平变化为低电平。
与此相应地,备用字线SWL激活为高电平,字线WL0~WL3非激活,保持低电平。这样,在指示了对不良存储单元行的访问时,取代不良存储单元行,对备用行进行访问。结果,便可置换修复缺陷存储单元,从而可以执行正常的读出动作。
按照实施例1的结构,不设置熔断器元件,具有与正规存储单元和备用存储单元相同的结构,使用由小面积形成的编程单元PMC,就可以非易失地存储置换修复所使用的冗长信息。
这样,对于冗长信息的编程,不需要特别的处理工序和专用的机器,不伴有物理的破坏也可以和通常的数据写入一样进行磁写入。因此,不会招致处理时间和处理成本的增大,此外,没有影响设备全体的动作的可靠性的危险性,可以处理冗长信息。
此外,每2个分别存储不同电平的数据的编程单元PMC构成存储1位的信息的编程组件PU,所以,如图3所示,可以简化用于从编程组件PU中读出信息的编程读出放大器PSA的结构。
实施例2.
在图7中,代表性地表示出了实施例2的MRAM设备2中与包含冗长结构的数据读出动作关联的电路群。
参见图7,在实施例2的结构中,编程单元PMC配置为在存储器阵列10内共有正规存储单元MC和备用存储单元SMC以及存储单元列。此外,各编程单元PMC非易失地存储构成冗长信息的1位信息。
例如,编程信号XRA0、XRA1和XUSE分别使用编程单元PMC0~PMC2进行存储。冗长信息通过与通常数据向正规存储单元中写入时相同的数据写入动作写入编程单元PMC。
即,在存储器阵列10中,和实施例1一样,设置了配置成4行×4列的正规存储单元MC、配置成1行×4列的备用存储单元SMC和配置成1行×4列的编程单元PMC(PMC0~PMC3)。即,在存储器阵列10全体中,具有相同结构的备用存储单元SMC、存储单元MC和编程单元PMC配置成6行×4列。
在实施例1的结构中,分别与由备用存储单元SMC、正规存储单元MC和编程单元PMC所共有的存储单元列对应地分别配置位线BL0~BL3和读出放大器SA1~SA3,即,从编程单元PMC中进行的数据读出与备用存储单元SMC和正规存储单元MC一样,与实施例1的结构不同,由位线BL0~BL3和读出放大器SA0~SA3进行。这样,就不必配置用于从编程单元PMC中进行数据读出的专用电路,所以,可以简化电路结构。
MRAM设备2与MRAM设备1比较,不同的地方在于进而具有行选择电路25和列选择电路35,取代了行选择电路20和列选择电路30。关于MRAM设备2的其他方面,与实施例1的MRAM设备1相同,所以,不重复详细的说明。
图8是表示实施例2的行选择电路25的结构的电路图。
参见图8,行选择电路25包括备用译码器80和与正规行译码器相当的行选择门RLG#0~RLG#3。
备用译码器80与图4所示的备用译码器50的结构相比,不同的地方在于,进而具有用于控制编程信号XRA0向锁存电路51的传输的晶体管门81、用于控制编程信号XRA1向锁存电路52的传输的晶体管门82、将控制信号SWLB反相的反相器83、用于驱动备用字线SWL的电压的逻辑门84和用于控制编程信号XUSE向锁存电路62的传输的晶体管门85。此外,还配置了用于根据控制信号SWLB驱动编程字线PWL的信号缓冲器90。
控制信号SWLB至少在通常的数据读出动作执行之前为了读出编程单元PMC的存储数据即冗长信息而在指定期间激活为高电平。在控制信号SWLB的激活期间,编程字线PWL激活为高电平。与此相应地,图7所示的编程单元PMC0~PMC3的存储数据分别读出到位线BL0~BL3上。
参见图9,实施例2的列选择电路35与图5所示的实施例1的列选择电路30相比,不同的地方在于,进而配置了分别用于传输编程信号XRA0、XRA1还XUSE的编程信号线SL0~SL2。
其他部分的结构还动作与列选择电路30相同,所以,不重复详细的说明。
编程信号线SL0~SL2是为了将位线BL0~BL2上的数据向行选择电路25传输而配置的。通过采用这样的结构,进行和通常的数据读出相同的动作便可读出编程单元存储的冗长信息。在进行通常动作之前,根据编程单元PMC的存储数据(冗长信息)而生成的编程信号XRA0、XRA1和XUSE从列选择电路35向行选择电路25传输。
再次参见图8,晶体管门81响应控制信号SWLB的激活而将列选择电路35的编程信号XRA0向锁存电路51传输。同样,晶体管门82和85将列选择电路35的编程信号XRA1和XUSE分别向锁存电路52和62传输。这样,晶体管58、59、60的栅极电压和节点Nc的电压就设定为与实施例1相同。
逻辑门84根据由反相器83反相后的控制信号SWLB和反相器61的输出驱动备用字线SWL。因此,在控制信号SWLB的激活期间即编程单元PMC的数据读出期间,备用字线SWL维持为非激活状态。另外,在编程单元PMC的数据读出期间以外,根据节点Nc的电压电平与实施例1一样地控制备用字线SWL的激活。
构成正规行译码器的行选择门RLG#0~RLG#3对于实施例1的行选择门RLG0~RLG3的输出进而在与反相器83的输出之间分别进行AND逻辑运算,控制字线WL0~WL3的激活。
即,在编程单元的数据读出期间(控制信号SWLB=高电平),字线WL0~WL3固定为非激活状态。另一方面,在编程单元的数据读出期间以外(控制信号SWLB=低电平),字线WL0~WL3的激活控制为与实施例1一样。
参见图10,在时刻t0,对MRAM设备1接通电源,开始进行初始动作时,作为初始动作的一环,为了进行编程电源的数据读出即冗长信息的读出,控制信号SWLB在指定期间激活为高电平。与此相应地,编程字线PWL在指定期间也激活为高电平。例如,使用图2所示的电源接通检测电路45,在触发了电源接通检测电路的指定期间中,可以将控制信号SWLB激活。
响应编程字线PWL的激活,进行编程单元PMC的冗长信息读出,表示编程信号XRA0、XRA1和XUSE的电平的数据分别读出到位线BL0~BL2上。在图10中,编程信号XRA0、XRA1和XUSE分别设定为“1”(高电平)。
在编程单元的数据读出期间,传输到行选择电路25中的编程信号XRA0、XRA1和XUSE分别由锁存电路51、52和62保持。与此相应地,节点Na和Nb设定为低电平。另外,备用行由编程信号XUSE设定为使用状态。这样,晶体管60的栅极维持为高电平,从而晶体管60固定为导通状态。
这样,在完成编程单元的冗长信息读出之后,读出的冗长信息由锁存电路保持在备用译码器80内。于是,在时刻ts以后,设备就成为可以使用的状态,从而可以进行通常的数据读出。
在时刻ts以后,在输入的行地址设定为RA0=RA1=“0”的期间(时刻ts~t1),和图6一样,备用字线SWL设定为非激活状态(低电平),与正规存储单元对应的字线WL0有选择地激活为高电平。
其次,在时刻t1,行地址发生变化,设定为RA0=“1”和RA1=“0”。这时,行地址RA0和RA1与编程信号XRA0和XRA1的电平也完全不一致,所以,备用字线SWL维持非激活(低电平)。此外,响应行地址的变化,WL1取代字线WL0有选择地激活(高电平)。
此外,在时刻t2,行地址进而变化,设定为RA0=RA1=“1”。在该状态,选择了不良存储单元行,所以,备用字线SWL激活为高电平,字线WL0~WL3为低电平,保持非激活状态。因此,与实施例1一样,可以用备用行置换修复包含缺陷存储单元的不良存储单元行,从而可以进行正常的读出动作。
此外,按照实施例2的结构,可以就编程单元PMC配置到存储器阵列10内,共有正规存储单元MC和备用存储单元SMC和相同的位线BL0~BL3以及读出放大器SA0~SA3。这样,就不必特别设置从编程单元进行的冗长信息读出专用的读出放大器,所以,可以减小电路面积。
在本实施例中,代表性地表示了设置备用行而以存储单元行单位进行冗长置换的结构,但是,在利用备用列的以存储单元列单位进行的冗长置换或利用备用数据线以数据线块单位进行的冗长置换中也可以利用同样的结构进行冗长信息的存储、读出和根据冗长信息进行地址判断。