具体实施例
以下,参照附图详细说明本发明的实施例。
实施例1
参照图1,本发明的实施例的MRAM器件1根据来自外部的控制信号CMD及地址信号ADD进行随机存取,进行写入数据DIN的输入及输出数据DOUT的输出。在MRAM器件1中的数据读出工作及数据写入工作例如以与来自外部的时钟信号CLK同步的时序进行。或者,也可以不接受来自外部的时钟信号CLK,在内部决定工作时序。
MRAM器件1具备:接受地址信号ADD输入的地址端子2;接受控制信号CMD及时钟信号CLK输入的控制信号端子3;接受在程序工作时被激活的程序信号PRG输入的信号端子4a;响应于控制信号CMD及时钟信号CLK、用于控制MRAM器件1的整体工作的控制电路5;以及配置成行列状的多个MTJ存储单元的存储器阵列10。
虽然存储器阵列10的结构将在后面详细地说明,但是,存储器阵列10包含由地址信号ADD能够指定各个地址的配置成行列状的多个正规的MTJ存储单元(以下,也称为「正规存储单元」)和为了补救产生了缺陷的正规存储单元(以下,也称为「有缺陷存储单元」)的备用存储单元(图中未示出)。
正规存储单元的缺陷补救以规定的冗余补救区为单位进行置换。由备用存储单元构成各自用于置换包含有缺陷存储单元的冗余补救区的多个冗余电路(图中未示出)。一般地说,冗余补救区被设定为存储单元行、存储单元列或者数据I/O线单位。在这样情况下,各冗余电路分别相当于与备用行、备用列或者备用I/O线对应的备用块。细节将在后面说明,但在本实施例中,设定正规存储单元的缺陷补救以存储单元列单位进行。
与MTJ存储单元的行(以下,也简称为「存储单元行」)对应地配置多个写字线WWL及读字线RWL。还有,与MTJ存储单元列(以下,也简称为「存储单元列」)对应地配置位线BL及/BL。
MRAM器件1进一步具备行译码器20,列译码器25,字线驱动器30和读出/写入控制电路50、60。
行译码器20根据由地址信号ADD表示的行地址RA进行在存储器阵列10中的行选择。列译码器25根据由地址信号ADD表示的列地址CA进行在存储器阵列10中的列选择。字线驱动器30基于行译码器20的行选择结果,有选择地激活读字线RWL或者写字线WWL。由行地址RA及列地址CA表示被指定为数据读出或者数据写入对象的存储单元(以下,也称为「选择存储单元」)。
写字线WWL在区域40与接地电压Vss耦合,区域40位于配置字线驱动器30的区域的相反一侧,其间夹持存储器阵列10。读出/写入控制电路50,60是配置在与存储器阵列10邻接的区域的电路组的总称,是当数据读出及数据写入时,为了对对应于选择存储单元的选择存储单元列(以下,也称为「选择列」)的位线BL及/BL流过数据写入电流及读出电流(数据读出电流)而设置的。
MRAM器件1进一步具备程序电路100和冗余控制电路105。
程序电路100非易失性地存储在数据读出及数据写入中至少一方使用的程序信息。构成程序信息的程序数据在程序信号PRG被激活的程序数据写入时,例如通过地址端子2从外部输入。程序数据读出根据来自控制电路的控制电压Vcn而进行。
以下,在本实施例中,代表性地说明用于特别指定有缺陷存储单元的不良地址作为程序信息被存储在程序电路100中的结构。不良地址相当于表示有缺陷存储单元存在的存储单元列(以下,也称为「不良列」)的列地址。
冗余控制电路105在通常工作时,通过将列地址CA与保持在程序电路100中的不良地址进行比较,作为数据读出或者数据写入对象,判定不良列是否被选出。
在由列地址CA选出不良列的情况下,冗余控制电路105在对由备用存储单元构成的冗余电路指示存取的同时,还对列译码器25指示停止对列地址CA中所示的存储单元列的存取。由此,代替用列地址CA所示的存储单元列,而将冗余电路作为对象,进行数据读出或者数据写入。
另一方面,当列地址CA不与不良地址对应的情况下,由列译码器25进行通常的列选择工作,选择用列地址CA所示的存储单元列,进行数据读出或者数据写入。
其次,说明在MRAM器件1中的冗余结构。
参照图2,存储器阵列10包含排列成n行×m列(n,m:自然数)的正规存储单元MC和k个(k:自然数)冗余电路RD1~RDk。在本实施例中,由于用存储单元列单位进行冗余补救,各个冗余电路RD1~RDk相当于备用列。此外,以下将冗余电路RD1~RDk总括起来也称为冗余电路RD。
在看存储器阵列10总体时,具有同样结构的MTJ存储单元配置遍及n个存储单元行及(m+k)个存储单元列。此外,以下,也将由正规存储单元组成的存储单元列称为「正规存储单元列」,将分别对应于冗余电路RD1~RDk的备用存储单元的存储单元列称为「备用列」。
分别对应于存储单元行配置读字线RWL1~RWLn及写字线WWL1~WWLn。分别对应于正规存储单元列配置位线对BLP1~BLPm。各位线对由2条互补的位线构成。例如,位线对BLP1由位线BL1及/BL1构成。
分别对应于备用存储单元列配置备用位线对SBLP1~SBLPk。各备用位线对与位线对同样,由2条互补的位线构成。例如,备用位线对SBLP1由备用位线SBL1及/SBL1构成。
以下,在将写字线、读字线、位线对、位线、备用位线对及备用位线分别总括性表现的情况下,分别用符号WWL、RWL、BLP、BL(/BL)、SBLP及SBL(/SBL)书写,当表示特定的写字线、读字线、位线对、位线、备用位线对及备用位线的情况下,在这些符号上加字,记作WWL1、RWL1、BLP1、BL1(/BL1)、SBLP1及SBL1(/SBL1)。还有,分别将信号及信号线的高电压状态(电源电压Vcc1、Vcc2)及低电压状态(接地电压Vss)也称为「H电平」及「L电平」。
各个正规存储单元MC及备用存储单元SMC具有串联连接的、作为其电阻随存储数据电平变化的磁存储部而起作用的隧道磁阻TMR及作为存取栅电极而起作用的存取晶体管ATR。如已经说明的那样,对于存取晶体管ATR,代表性地应用了形成在半导体衬底上的作为场效应晶体管的MOS晶体管。隧道磁阻元件TMR被磁化成2个磁化方向的某一方向,其电阻被设定在Rmin及Rmax中的某一方。还有,以下,将两者的电阻差Rmax-Rmin记作ΔR。
正规存储单元MC的每一行与位线BL及/BL中的某一方连接。例如,如就属于第1存储单元列的正规存储单元进行说明,则第1行的正规存储单元与位线/BL1耦合,第2行的正规存储单元与位线BL1耦合,以下同样,各个正规存储单元在奇数行与一方的位线/BL1~/BLm连接,在偶数行与另一方的位线BL1~BLm连接。同样,备用存储单元SMC在奇数行与备用位线/SBL1~/SBLk连接,在偶数行与备用位线SBL1~SBLk连接。
存储器阵列10进一步具有分别与位线BL1、/BL1~BLm、/BLm及备用位线SBL1、/SBL1~SBLk、/SBLk耦合的多个虚设存储单元DMC。
各虚设存储单元DMC具有虚设电阻器TMRd及虚设存取元件ATRd。虚设电阻器TMRd的电阻Rd被设定在分别对应于MTJ存储单元MC的存储数据电平“1”及“0”的电阻Rmax及Rmin的中间值,即,设定为Rmax>Rd>Rmin。虚设存取元件ATRd与MTJ存储单元的存取元件同样,代表性地用场效应晶体管构成。因此,以下,也将虚设存取元件称为虚设存取晶体管ATRd。
虚设存储单元DMC与虚设读字线DRWL1及DRWL2中的某一方对应那样,被配置成2行×(m+k)列。与虚设读字线DRWL1对应的虚设存储单元分别与位线BL1~BLm及备用位线SBL1~SBLk耦合。另一方面,与虚设读字线DRWL2对应的剩下的虚设存储单元分别与位线/BL1~/BLm及备用位线/SBL1~/SBLk耦合。以下,将虚设读字线DRWL1及DRWL2总括起来,仅记作虚设读字线DRWL。
进而,分别与虚设存储单元的行对应,配置虚设写字线DWWL1、DWWL2。此外,虚设电阻器TMRd的结构虽然不必配置虚设写字线,但是,为了确保在存储器阵列上的形状的连续性,避免制造工艺的复杂化,可设置与写字线WWL同样设计的虚设写字线DWWL1、DWWL2。
在数据读出时,字线驱动器30根据行选择结果将各读字线RWL及虚设读字线DRWL1,DRWL2有选择地激活为H电平(电源电压Vcc1)。具体地说,在奇数行被选择,选择行的正规存储单元及备用存储单元与位线/BL1~/BLm及备用位线/SBL1~/SBLk连接的情况下,虚设读字线DRW1再被激活,虚设存储单元组与位线BL1~BLm及备用位线SBL1~SBLk连接。在偶数行被选择的情况下,除选择行的读字线外,虚设读字线DRWL2被激活。
字线驱动器30在数据写入时,将选择行的写字线WWL的一端与电源电压Vcc2耦合。由此,与实施例1同样,在选择行的写字线WWL上,能够在从字线驱动器30向区域40的方向上流过行方向的数据写入电流Ip。另一方面,非选择行的写字线由字线驱动器30与接地电压Vss耦合。
分别对应于存储单元列,设置用于进行列选择的列选择线CSL1~CSLm。列译码器25根据列地址CA的译码结果,即列选择结果,在数据写入及数据读出时的各情况下,将列选择线CSL1~CSLm中的一条激活为选择状态(H电平)。
进而,分别对应于备用存储单元列,设置备用列选择线SCSL1~SCSLk。备用列驱动器SCV1~SCVk分别响应于来自冗余控制电路105的备用启动信号SE1~SEk,将对应的备用列选择线激活为选择状态(H电平)。关于备用启动信号SE1~SEk的生成将在后面详细说明。
进而,配置了用于传递读出数据及写入数据的数据总线对DBP。数据总线对DBP包含互补的数据总线DB及/DB。
读出/写入控制电路50包含:数据写入电路51W;数据读出电路51R;分别对应于存储单元列设置的列选择门CSG1~CSGm;以及分别对应于备用存储单元列设置的备用列选择门SCSG1~SCSGk。
以下,分别将列选择线CSL1~CSLm,备用列选择线SCSL1~SCSLk,列选择门CSG1~CSGm及备用列选择门SCSG1~SCSGk总括起来,也分别仅称为列选择线CSL,备用列选择线SCSL,列选择门CSG及备用列选择门SCSG。
各列选择门CSG具有电耦合在与数据总线DB对应的位线BL之间的晶体管开关和电耦合在与数据总线/DB对应的位线/BL之间的晶体管开关。这些晶体管开关根据对应的列选择线CSL的电压而通·断。即,在对应的列选择线CSL被激活为选择状态(H电平)的情况下,各列选择门CSG将数据总线DB及/DB分别电耦合到对应的位线BL及/BL上。
各备用列选择门SCSG也具有与列选择门CSG同样的结构,当对应的备用列选择线SCSL被激活为选择状态(H电平)的情况下,将对应的备用位线SBL及/SBL与数据总线DB及/DB分别电耦合。
其次,说明在MRAM器件1中的列选择工作。如已经说明的那样,列选择工作包含用于置换补救不良列的冗余控制。
程序电路100能够在内部存储k个不良地址FAD1~FADk。在程序电路100中被编程的不良地址FAD1~FADk被传递到冗余控制电路105。冗余控制电路105判定用于表示选择列的列地址CA是否与不良地址FAD1~FADk一致。
参照图3,冗余控制电路105具有分别对应于不良地址FAD1~FADk而设置的冗余判定装置RJU1~RJUk和正常存取控制门106。对于各个冗余判定装置RJU1~RJUk,输入用列地址位CAB<0:h>(CAB(0)~CAB(h),h:自然数)构成的(h+1)位的列地址CA。对于冗余判定装置RJU1~RJUk,分别给予来自程序电路100的不良地址FAD1~FADk。各个不良地址FAD1~FADk与列地址同样具有(h+1)位。
冗余判定装置RJU1~RJUk基于列地址CA与不良地址FDA1~FDAk的比较结果生成备用启动信号SE1~SEk。以下,将冗余判定装置RJU1~RJUk、不良地址FAD1~FADk及备用启动信号SE1~SEk分别总括起来,也称为冗余判定装置RJU、不良地址FAD及备用启动信号SE。
当列地址CA与对应的不良地址FAD一致的情况下,各冗余判定装置RJU将对应的备用启动信号SE激活为H电平。例如,当列地址CA与不良地址FAD1一致的情况下,冗余判定装置RJU1激活备用启动信号SE1。
由于图3所示的各个冗余判定装置RJU1~RJUk的结构是同样的,所以在图4中,就冗余判定装置RJU1的结构进行说明。
参照图4,程序电路100具有各自存储构成程序信息的程序数据的多个程序装置PU。各程序装置PU响应于磁程序输入,从作为初始状态的非程序状态变化到程序状态,非易失性地存储1位的程序数据。在图4中,代表性地示出了多个程序装置中的与冗余判定装置RJU1对应的程序装置PU0~PUh。程序装置PU0~PUh存储(h+1)位的不良地址FAD1的各自的位。
当程序数据读出时,程序装置PU0~Puh根据各自的内部磁化状态分别输出程序信号φa0、φb0、φah、φbh。以下,也将程序信号φa0~φah及φb0~φbh分别总称为程序信号φa及φb。这些程序信号φa及φb的每一个是用于将程序信息非易失地存储,即用于程序的1位信号。
程序信号φa是表示对应的程序装置PU是非程序状态和程序状态中的哪一状态的信号,程序信号φb是表示对应的程序装置PU存储的程序数据的电平的信号。
冗余判定装置RJU1包含:将程序信号φa0~φah的AND逻辑运算结果输出的逻辑门107;在程序装置PU0~Puh中分别对应设置的一致判定门JG0~JGh;以及根据逻辑门107及一致判定门JG0~JGh的输出用于产生备用启动信号的逻辑电路108。
各个一致判定门JG0~JGh当与列地址位CAB(0)~CAB(h)对应的一个和被存储在与程序装置PU0~PUh对应的一个上的不良地址位一致时输出H电平信号,不一致时输出L电平信号。因此,当用列地址位CAB(0)~CAB(h)表示的列地址与不良地址FAD1一致时,一致判定门JG0~JGh的输出全部被设定为H电平。
还有,当对应的程序装置PU是非程序状态时,程序信号φa被设定为L电平,是程序状态时被设定为H电平。因此,当程序装置PU0~PUh的各个是程序状态时,逻辑门107的输出被设定为H电平。
由于采用这样的结构,使用程序装置PU0~PUh使不良地址FAD1被编程,而且,当输入的列地址CA与不良地址FAD1一致时,为了将对应的冗余电路(备用列)RD1指定为存取对象,冗余判定装置RJU1将备用启动信号SE1激活为H电平。
再次参照图3,备用启动信号SE1~SEk被分别传递给备用列驱动器SCV1~SCVk。当对应的备用启动信号SE被激活为H电平的情况下,各个备用列驱动器SCV1~SCVk将对应的备用列选择线SCSL激活为选择状态(H电平)。
正常存取控制门106将备用启动信号SE1~SEk的NOR运算结果作为正常启动信号NE输出。因此,当列地址CA与不良地址FAD1~FADk中的任何一个一致的情况下,为了中止由列译码器25对正规存储单元的存取,正常启动信号被非激活为L电平。另一方面,当列地址CA与不良地址FAD1~FADk的任何一个不一致的情况下,正常启动信号NE被激活为H电平。
参照图5,列译码器25具有地址预译码电路26、控制门27、译码电路以及驱动器28。
地址预译码电路26接受(h+1)位的列地址CA进行预译码,生成g位(g:g>(h+1)的整数)的预译码信号CPDR。控制门27接受g位的预译码信号CPDR和来自冗余控制电路105的正常启动信号NE,生成g位的列预译码信号CPD。
控制门27在预译码信号CPDR的各位上总括性地记作用于进行与正常启动信号NE的NAND运算的g位部分的NAND门。因此,当正常启动信号NE被激活为H电平的情况下,列预译码信号CPD相当于将预译码信号CPDR的各自的位反转的信号。另一方面,当正常启动信号NE被非激活为L电平时,列预译码信号CPD的各位被固定在H电平。
(译码电路及驱动器)28响应于来自控制门27的列预译码信号CPD,有选择地将列选择线CSL1~CSLm激活。因此,当正常启动信号NE被激活为H电平的情况下,即,列地址CA与任何一个不良地址FAD一致的情况下,对应于列地址CA的一条列选择线CSL被激活,对正规存储单元进行存取。
另一方面,当正常启动信号NE被非激活为L电平的情况下,即,当列地址CA与任何一个不良地址FDA也不一致的情况下,与正规存储单元对应的列选择线CSL1~CSLm的各条被非激活,不对正规存储单元进行存取。
再次参照图2,读出/写入控制电路60具有分别与存储单元列对应设置的短路开关晶体管62-1~62-m、62-s1~62-sk及控制门66-1~66-m、66-s1~66-sk。读出/写入控制电路60进一步具有分别设置在位线BL1、/BL1~BLm、/BLm和备用位线SBL1、/SBL1~SBLk、/SBLK与接地电压Vss之间的预充电晶体管64-1a、64-1b~64-ma、64-mb及64-s1a、64-s1b~64-ska、64-skb。
以下,将短路开关晶体管62-1~62-m、62-s1~62-sk、预充电晶体管64-1a、64-1b~64-ma、64-mb和64-s1a、64-s1b~64-ska、64-skb以及控制门66-1~66-m、66-s1~66-sk分别总括起来,也称为短路开关晶体管62、预充电晶体管64及控制门66。
各控制门66输出对应的列选择线CSL或者备用列选择线SCSL与控制信号WE的AND逻辑运算结果。因此,当数据写入工作时,在与列地址CA对应的选择列或者备用列中,控制门66的输出有选择地被激活为H电平。
短路开关晶体管62分别响应于对应的控制门66的输出而通/断。因此,当数据写入工作时,在对应于列地址CA的选择列或者备用选择列中,位线BL及/BL或者备用位线SBL及/SBL的一端相互间由短路开关62电耦合。
由于各预充电晶体管64响应于位线预充电信号BLPR的激活而导通,将位线BL1、/BL1~BLm、/BLm及备用位线SBL1、/SBL1~SBLk、/SBLk的每一条预充电到接地电压Vss。由控制电路5生成的位线预充电信号BLPR在MRAM器件1的激活期间,至少在数据读出进行前的规定期间内被激活为H电平。另一方面,在MRAM器件1的激活期间中的数据读出工作时及数据写入工作时,位线预充电信号BLPR被非激活为L电平,预充电晶体管64被断开。
其次,用图6说明在MRAM器件中数据读出工作及数据写入工作时的置换补救。
首先,说明数据写入时的工作。字线驱动器30根据行译码器20的行选择结果,将与选择行对应的写字线WWL激活,与电源电压Vcc连接。各写字线WWL的一端由于在区域40上与接地电压Vss耦合,在选择行的写字线WWL上,数据写入电流Ip在从字线驱动器30向区域40的方向流过。另一方面,在非选择行,由于写字线WWL被维持在非激活状态(L电平:接地电压Vss),没有数据写入电流流过。
在列地址CA与不良地址FAD的任何一个都不一致的情况下,选择列的列选择线CSL被激活为选择状态(H电平),选择列的位线BL及/BL的各自的一端分别与数据总线DB及/DB结合。进而,对应的短路开关晶体管62接通,选择列的位线BL及/BL的另一端(列选择门CSG的相反一侧)相互之间短路。
另一方面,当列地址CA与不良地址FAD的任何一个一致的情况下,对应的备用列选择线SCSL被激活为选择状态(H电平),代替选择列的位线BL及/BL,对应的备用位线SBL及/SBL的各自的一端分别与数据总线DB及/DB结合。进而,对应的短路开关晶体管62接通,对应的备用位线SBL及/SBL的另一端(备用列选择门SCSG的相反一侧)相互之间短路。
数据写入电路51W将数据总线DB及/DB设定在电源电压Vcc2及接地电压Vss的各自的某一方上。例如,当写入数据DIN的数据电平是L电平的情况下,在数据总线DB上流过用于写入L电平数据的数据写入电流-Iw。数据写入电流-Iw通过列选择门CSG或者备用列选择门SCSG被供给选择列的位线BL或者对应的备用位线SBL。
流过选择列位线BL或者对应的备用位线SBL的数据写入电流-Iw被短路开关晶体管62折返。由此,在另一方的位线/BL或者备用位线/SBL中,流过相反方向的数据写入电流+Iw。流过位线/BL或者备用位线/SBL的数据写入电流+Iw通过列选择门CSG或者备用列选择门SCSG传递到数据总线/DB上。
当写入数据DIN的数据电平是H电平的情况下,通过替换数据总线DB及/DB的电压设定,能够将相反方向的数据写入电流流到选择列的位线BL、/BL或者对应的备用位线SBL、/SBL上。
这样,当列地址CA与不良地址FAD的任何一个都不一致的情况下,对于在对应的写字线WWL及位线BL(/BL)的双方流过数据写入电流的正规存储单元(选择存储单元),进行数据写入。另一方面,当列地址CA与不良地址FAD的任何一个一致的情况下,对于在对应的写字线WWL及备用位线SBL(/SBL)的双方流过数据写入电流的备用存储单元,进行数据写入。
在数据写入时,读字线RWL维持在非选择状态(L电平)。还有,通过即使在数据写入时也将位线预充电信号BLPR激活为H电平,数据写入时的位线BL及/BL的电压被设定为与数据读出时的预充电电压电平相当的接地电压Vss。这样,通过使对应于非选择列的位线BL、/BL及备用位线SBL、/SBL的数据写入后的电压与为数据读出所具备的预充电电压一致,无需在数据读出前进行新的预充电工作,能够使数据读出工作高速化。
其次,说明数据读出工作。
在数据读出时,字线驱动器30根据行译码器20的行选择结果,将与选择行对应的读字线RWL激活为H电平。在非选择行中,读字线RWL的电压电平被维持在非激活状态(L电平)。
数据读出开始时,选择行的读字线RWL被激活为H电平,对应的存取晶体管ATR一旦接通,与选择行对应的正规存储单元及备用存储单元通过存取晶体管ATR电耦合到位线BL、/BL及备用位线SBL、/SBL与接地电压Vss之间。
数据读出电路51R用电源电压cc1将数据总线DB及/DB的每一条上拉,供给恒定的读出电流Is。
进而,与数据写入时同样,根据列地址CA,选择列的列选择线CSL或者对应的备用列选择线SCSL被激活为选择状态(H电平)。
当列地址CA与不良地址FAD的任何一个也不一致的情况下,通过数据总线DB(/DB)及选择列的位线BL(/BL),对选择存储单元(正规存储单元)的隧道磁阻元件TMR通过读出电流Is。由此,各在选择列的位线BL及/BL的一方及数据总线DB、/DB的一方上,产生对应于隧道磁阻元件TMR的电阻(Rmax、Rmin),即对应于选择存储单元存储数据的电平的电压变化。同样地,各在选择列的位线BL、/BL的另一方及数据总线DB、/DB的另一方上,产生对应于虚设存储单元DMC的虚设电阻器TMRd的电阻的电压变化。
例如,当选择存储单元的存储数据电平是“1”(电阻Rmax)的情况下,在与选择存储单元耦合的位线BL及/BL的一方,产生比与虚设存储单元DMC耦合的位线BL及/BL的另一方产生的电压变化ΔVm大的电压变化ΔV1(ΔV1>ΔVm)。同样,在数据总线DB、/DB上,也产生电压变化ΔVb1及ΔVbm(ΔVbm>ΔVb1)。这样,由数据读出电路51R检测并放大所产生的在数据总线DB及/DB之间的电压差,能够将选择存储单元的存储数据作为读出数据DOUT输出。
另一方面,当列地址CA与不良地址FAD的任何一个一致的情况下,通过数据总线DB(/DB)及选择列的位线BL(/BL),读出电流Is通过备用存储单元的隧道磁阻元件TMR。由此,各在备用位线SBL及/SBL的一方和数据总线DB、/DB的一方上,隧道磁阻元件TMR的电阻(Rmax、Rmin),即产生对应于备用存储单元的存储数据的电平的电压变化。各在选择列的位线BL、/BL的另一方及数据总线DB、/DB的另一方上,与正规存储单元被存取时同样,产生对应于虚设电阻器TMRd的电阻Rd的电压变化。
这样,即使在由列地址CA选择不良列的情况下,也能在对应的冗余电路(备用列)的备用存储单元上进行存取,正常地进行数据写入及数据读出。因此,通过与冗余电路相当的备用列,能够以存储单元列单位置换补救有缺陷存储单元。
还有,由于将位线BL、/BL及备用位线SBL、/SBL的预充电电压设定为接地电压Vss,所以在非选择列中,响应于选择行的读字线RWL的激活,通过接通的存取晶体管,不产生来自位线BL、/BL及备用位线SBL、/SBL的放电电流。这个结果能够削减因预充电工作时的位线及备用位线的充放电引起的功耗。
此外,作为数据写入电路51W的工作电源电压的Vcc2被设定为比作为数据读出电路51R的工作电源电压Vcc1要高。这是因为在数据写入时,为了对选择存储单元的隧道磁阻元件TMR进行磁化所必须的数据写入电流Ip、±IW比数据读出所必须的读出电流Is要大的缘故。例如,能够原封不动地将从MRAM器件外部供给的外部电源电压将用作电源电压Vcc2,进而,如果采用图中未示出的降压电路使该外部电源电压降低,产生电源电压Vcc1的结构,则能够有效地供给上述这些电源电压Vcc1及Vcc2。
其次,说明不良地址,即用于有效地存储程序信息的程序电路的结构。
图7是表示图4所示的程序装置PU的实施例1的结构的电路图。
参照图7,程序装置PU具有用于将与不良地址位相当的程序数据非易失性地磁存储的程序单元PRC1及PRC2。如后面将详细说明的,程序单元PRC1及PRC2用具有与正规存储单元的隧道磁阻元件TMR同样结构的磁阻元件构成。由于程序单元PRC1及程序单元PRC2的每一个与隧道磁阻元件TMR同样,被磁化成2个磁化方向中的任何一个,所以各自的电阻R1及R2与正规存储单元中的隧道磁阻元件TRM同样,被设定为Rmin及Rmax中的任何一方。
程序装置PU进一步包含:分别对应于程序单元PRC1及PRC2而设置的电流读出放大器110及120;基准电阻115及125;以及逻辑门130。
基准电阻115及125的电阻Rref被设定为Rmin和Rmax的中间值,最好被设定为Rref=Rmin+ΔR/2。例如,能够用与保持对应于电阻Rmin的存储数据的隧道磁阻元件TMR同样的磁阻元件构成基准电阻的一部分。
电流读出放大器110具有:串联连接在电源电压Vcc1与程序单元PRC1之间的P沟道MOS晶体管111及N沟道MOS晶体管113;以及串联连接在电源电压Vcc1与基准电阻115之间的P沟道MOS晶体管112及N沟道MOS晶体管114。程序单元PRC1被耦合在N沟道MOS晶体管113与接地电压Vss之间。基准电阻115被连接在晶体管114与接地电压Vss之间。
在P沟道MOS晶体管111及112的栅极上输入来自控制电路5的控制电压Vcn。N沟道MOS晶体管113的栅极与相当于P沟道MOS晶体管112及N沟道MOS晶体管114的连接节点的节点N1连接,N沟道MOS晶体管114的栅极与相当于P沟道MOS晶体管111及N沟道MOS晶体管113的连接节点的节点/N1连接。
电流读出放大器120具有与电流读出放大器110同样的结构,具有P沟道MOS晶体管121及122,N沟道MOS晶体管123及124。程序单元PRC2被连接在N沟道MOS晶体管123与接地电压Vss之间。基准电阻125被连接在N沟道MOS晶体管124与接地电压Vss之间。
N沟道MOS晶体管123的栅极被耦合在相当于P沟道MOS晶体管122及N沟道MOS晶体管124的连接节点的节点N2上。N沟道MOS晶体管124的栅极与相当于P沟道MOS晶体管121及N沟道MOS晶体管123的连接节点的节点/N2连接。
逻辑门130将节点N1及N2的信号电平的“异或”(EX-OR)逻辑运算结果作为程序信号φa输出。因此,当程序单元PRC1及PRC2的电阻一致的情况下,程序信号φa被设定在L电平,当二者的电阻不同的情况下,被设定在H电平。另一方面,节点N2的信号电平被作为程序信号φb输出。
图8是示出程序单元的电阻和程序装置的状态的对应关系图。
参照图8,在初始状态下程序单元PRC1及PRC2被磁化成同一方向,二者的电阻是同样的。在本实施例中,在初始状态下,程序单元PRC1及PRC2的各自的电阻被设为Rmin。
当在程序状态时,程序单元PRC1及PRC2被磁化成不同的方向,互补数据分别被写入其中。即,仅仅程序单元PRC1及PRC2的一方被磁化成与初始状态不同的方向。这时,写入磁化方向一方的程序单元根据被写入的程序数据而被选择。
即,当程序数据写入时,有选择地进行下述两种情况的某一方:程序单元PRC2的磁化方向被改写,程序单元PRC1的磁化方向被维持在与初始状态同样的状态的数据写入(R1=Rmin,R2=Rmax,以下,将这样的状态也称为「程序状态1」),和程序单元PRC1的磁化方向被改写,程序单元PRC2的磁化方向被维持在与初始状态同样的状态(R1=Rmax,R2=Rmin,以下,将这样的状态也称为「程序状态2」)的数据写入。
与此相反,不进行程序数据写入,即,在非程序状态的程序单元中,程序单元PRC1及PRC2的电阻R1及R2仍是初始状态(R1=R2=Rmin)。
其次,用图9A、9B、9C说明在程序数据读出时及写入时程序信号的电平。
参照图9A,在初始状态,由于程序单元PRC1及PRC2的电阻R1及R2都比基准电阻115的电阻值Rref小,即使将控制电压Vcn变化到中间电压Vm(Vss<Vm<Vcc),进行程序数据读出,节点N1及N2各自的电压同样地变化到H电平。因此,逻辑门130输出的程序信号φa被设定为表示非程序状态的L电平(接地电压Vss)。
虽然随后将说明其细节,但是在本实施例中,通过将在初始状态(非程序状态)的各程序单元的电阻定义为Rmin,以图简化MRAM器件的制造工序。由此,进而将图7所示的逻辑门130置换成不是一致比较门,而是能够更简单构成的NAND门。
参照图9B,当程序数据写入时,控制电压Vcn被设定为电源电压Vcc,停止来自电流读出放大器110及120的对程序单元PRC1及PRC2的电流的供给。进而,根据上述的程序状态1及程序状态2中的任何一个,分别在程序单元PRC1及PRC2上写入互补的数据。关于对程序单元PRC1及PRC2写入程序数据的结构,将随后作详细说明。
在图9C中,示出了来自程序状态的程序装置的程序数据读出工作。当控制电压Vcn被设定为中间电压Vm时,节点N1及N2由电流读出放大器110及120分别被设定为不同的电压电平。在程序状态1(R2=Rmax,R1=Rmin)中,节点N1变化到H电平,而节点N2维持在L电平。与此相反,在程序状态2(R1=Rmax,R2=Rmin)中,节点N1的电压维持在L电平,而节点N2的电压变化到H电平。
因此,在程序状态的程序装置中,即使是程序状态1及程序状态2中的某一个,程序信号φa都被设定为H电平。与此相反,根据是程序状态1及程序状态2中的哪一个,程序信号φb被设定为H电平或者L电平。
通过作成这样的结构,使用由与正规存储单元同样的磁阻元件构成的2个程序单元PRC1及PRC2,各程序装置能够存储1位的程序数据和该程序装置是否存储了程序数据的信息。
其次,说明程序单元的配置。
此外,以下将程序单元PRC1及PRC2总括起来,也称为程序单元PRC。
参照图10中的(a),构成各正规存储单元的隧道磁阻元件TMR被对应地配置在分别对应于存储单元行而设置的写字线WWL及分别对应于存储单元列而设置的位线BL的交点上。在隧道磁阻元件中,由流过写字线WWL的数据写入电流施加难磁化轴(HA)方向的磁场,由流过位线BL的数据写入电流施加沿易磁化轴(EA)方向的磁场。
参照图10中的(b),各程序单元PRC被对应地设置在程序字线PWL及程序位线PBL的交点上。程序单元PRC与隧道磁阻元件TMR同样地被设计和制作。
程序字线PWL及程序位线PBL分别沿不同的方向配置。在程序字线PWL上流过用于产生沿难磁化轴(HA)方向的磁场的程序电流。另一方面,对于程序位线PBL流过用于产生沿易磁化轴(EA)方向的磁场的程序电流。
图11A及11B分别示出了正规存储单元及程序单元的配置。
参照图11A,在半导体主衬底SUB上的p型区PAR上形成存取晶体管ATR。存取晶体管ATR具有为n型区的源/漏区210、220和栅230。虽然图中未示出,但源/漏区210与接地电压耦合。还有,写字线WWL形成在第1金属布线层M1上。
读字线RWL是为了控制存取晶体管ATR的栅电压而设置的,没有必要主动地流过电流。因此,从提高集成度的观点考虑,读字线RWL不是新设独立的金属布线层,而是在与栅230同一的布线层中,用多晶硅、多晶硅化物结构等形成。另一方面,位线BL形成在第2金属布线层M2上,与隧道磁阻元件TMR电耦合。
存取晶体管ATR的源/漏区220通过形成在接触孔上的金属膜250,第1金属布线层M1及阻挡层金属240与隧道磁阻元件TMR电耦合。阻挡层金属240是为了将隧道磁阻元件TMR与金属布线之间的电耦合而设置的缓冲材料。
在图11B上,作为一个例子,示出了图7所示的程序单元PRC1的结构。
参照图11B,与程序单元PRC1连接的N沟道MOS晶体管113形成在半导体主衬底SUB上的p型区上。N沟道MOS晶体管113具有为n型区的源/漏区212,222和栅232。程序字线PWL用与正规存储单元MC对应的写字线WWL同一的金属布线层M1配置。
源/漏区212通过阻挡层金属242、形成在接触孔上的金属膜252以及形成在金属布线层M1上的金属布线与程序单元PRC1耦合。源/漏区222与图7所示的电流读出放大器110中的节点/N1连接的金属布线耦合。
程序位线PBL用与正规存储单元MC对应的位线BL同一的金属布线层M2形成,与程序单元PRC1电耦合。程序位线PBL除程序数据写入时以外都被固定至接地电压Vss。栅232与图7所示的电流读出放大器110中的节点N1连接。
由于采用这样的结构,没有设置特别的制造工序,各程序单元PRC就能够在与正规存储单元同一的制造工序中制作。
其次,说明在程序数据写入时用于供给程序电流的结构。
参照图12,在程序单元PRC1及PRC2上共同地配置程序字线PWL,与程序单元PRC1及PRC2分别对应地配置程序位线PBL1及PBL2。
配置在存储器阵列10上的写字线WWL和配置在程序电路110上的程序字线PWL沿同一方向配置。同样地,配置在存储器阵列10上的位线BL和配置在程序电路100上的程序位线PBL1及PBL2沿同一方向配置。
正规存储单元的隧道磁阻元件TMR和与程序单元PRC1及PRC2相当的磁阻元件沿同一方向配置。因此,在作为MRAM器件制造工序一环设置的、用于将隧道磁阻元件TMR内的固定磁化层磁化成规定方向的磁场施加工序中,程序单元PRC的固定磁化层也能够同时被磁化。还有,在该磁化工序中,在各正规存储单元的隧道磁阻元件TMR及各程序单元PRC中,自由磁化层也被磁化成与固定磁化方向同一方向。即,各隧道磁阻元件TMR及各程序单元PRC的电阻都被设定在Rmin。
因此,正规存储单元的隧道磁阻元件TMR和与程序单元PRC1及PRC2相当的磁阻元件沿同一方向配置,进而,如果将电阻是Rmin的状态定义为各程序单元的初始状态(非程序状态),则没有必要设置将程序单元作对象的专门的磁化工序。由此,能够简化MRAM器件的制造工序。
程序电路100包含:用于控制供给程序位线PBL1及PBL2的程序电流±Iw(P)的方向的控制门150、152、160、162;以及对应于程序位线PBL1而设置的电压设定晶体管154、155及164、165。
控制门150输出在第j个(j:0~k的整数)程序装置上被编程的程序数据PDj与在程序工作时被激活为H电平的程序信号PRG的NAND运算结果。控制门152输出控制门150的输出信号与程序信号PRG的NAND逻辑运算结果。控制门160进行与控制门150同样的工作。控制门162与控制门152同样,输出控制门160的输出信号与程序信号PRG的NAND运算结果。
电压设定晶体管154用p沟道MOS晶体管构成,电耦合在程序位线PBL1的一端与电源电压Vcc2之间。电压设定晶体管155用N沟道MOS晶体管构成,电耦合在程序位线PBL1的一端与接地电压Vss之间。电压设定晶体管164用p沟道MOS晶体管构成,电耦合在程序位线PBL1的另一端与电源电压Vcc2之间。电压设定晶体管165用N沟道MOS晶体管构成,电耦合在程序位线PBL1的另一端与接地电压Vss之间。
电压设定晶体管154及155的各栅极与控制门152的输出端连接。电压设定晶体管164及165的各栅极与控制门160的输出端连接。
电压设定晶体管157用P沟道MOS晶体管构成,电耦合在程序位线PBL2的一端与电源电压Vcc2之间。电压设定晶体管158用N沟道MOS晶体管构成,电耦合在程序位线PBL2的一端与接地电压Vss之间。电压设定晶体管167用P沟道MOS晶体管构成,电耦合在程序位线PBL2的另一端与电源电压Vcc2之间。电压设定晶体管168用N沟道MOS晶体管构成,电耦合在程序位线PBL2的另一端与接地电压Vss之间。
电压设定晶体管157及158的各栅极与控制门150的输出端连接。电压设定晶体管167及168的各栅极与控制门162的输出端连接。
在程序数据写入时以外(程序信号PRG=L电平),控制门150、152、160、162各自的输出被设定在H电平上。因此,程序位线PBL1及PBL2的两端每一端各自与接地电压Vss耦合。如图11B所示,由于各程序单元被连接到MOS晶体管与程序位线之间,所以通过将各程序位线与接地电压连接,当程序数据写入时以外,能够实现图7所示的电流读出放大器110、120的电路结构。
与此相反,在程序数据写入时(程序信号PRG=H电平),与程序数据PDj的电平对应,控制门150及152的输出被互补地设定在H电平及L电平的各一方上。控制门160及162的输出同样地也被互补地设定。这里,控制门150及160的输出成为相同电平,控制门152及162的输出成为相同电平。
例如,当程序数据PDj是H电平时,对于程序位线PBL1,电压设定晶体管155及164导通,电压设定晶体管154及165关断。另一方面,对于程序位线PBL2,电压设定晶体管157及168导通,电压设定晶体管158及167关断。由此,在图中用用虚线箭头所示的方向上,流过分别对程序单元PRC1及PRC2反方向作用的程序电流±Iw(P)。
另一方面,当程序数据PDj是L电平时,各电压设定晶体管的通·断替换,在程序位线PBL1及PBL2中,如图中用实线箭头所示的方向上,分别流过与PDj=H电平时相反的程序电流±Iw(P)。
由程序电流±Iw(P)产生用于将程序单元PRC1及PRC2磁化成对应于程序数据PDj的方向上的、沿易磁化轴方向的程序磁场。此外,与程序数据PDj的电平无关,由于分别流过程序位线PBL1及PBL2的程序电流的方向是相反的方向,在程序数据写入时,程序单元PRC1及PRC2沿易磁化轴被磁化成相反的方向。
程序电路100还具有对应于程序字线PWL而设置的选择晶体管170。选择晶体管170在栅极上接受程序信号PRG的反转信号/PRG,电耦合到电源电压Vcc2与程序字线PWL的一端之间。程序字线PWL的另一端与接地电压Vss耦合。因此,当程序数据写入时,对于程序字线PWL流过恒定方向的程序电流Ip(P)。由程序电流Ip(P)对程序单元PRC的每一个施加难磁化轴方向的程序磁场。
在分别沿易磁化轴及难磁化轴的两方施加了程序磁场的程序单元PRC中,进行用于写入程序数据PDj的磁化。
图13是用于说明对程序单元的输入输出信号的图。
参照图13,通过磁化正规存储单元中的固定磁化层的工序,各程序单元被设定在初始状态,程序单元PRC1及PRC2的电阻R1及R2分别被设定在Rmin。在这种状态下,一旦进行程序数据读出,如已经说明的那样,从程序装置输出的程序信号φa及φb被分别设定在L电平及H电平。
在用于使程序数据(不良地址位)存储到程序装置上的程序数据写入时,与程序信号PRG被设定在H电平的同时,还根据程序数据PDj,应用程序状态1及程序状态2中的某一状态,程序单元PRC1及PRC2的某一方的磁化方向从初始状态改变,电阻变化到Rmax。
具体地说,在程序数据PDj是L电平的程序状态1,供给程序电流使得程序单元PRC2的电阻R2变化到Rmax。与此相反,在程序数据PDj是H电平的程序状态2,供给程序电流使得程序单元PRC1的电阻R1变化到Rmax。
通过程序数据写入,对于从初始状态变化到程序状态的程序装置进行程序数据读出时,程序信号φa被设定在H电平,此外,程序信号φb与程序数据的电平对应地被设定在H电平或者L电平。
另一方面,在非程序状态,即在维持初始状态不变的程序装置中,程序单元PRC1及PRC2的电阻是Rmin,没有从初始状态改变。因此,对于非程序状态的程序装置进行程序数据读出时,程序信号φa及φb的每一个被设定在L电平。
这样,如果采用实施例1的程序装置,则不用经过特别的制造工序及磁化工序即能够使用可制作及磁化的程序单元,与存储1位程序数据同时,还存储该程序装置是否存储了程序数据的信息,而且,通过电流检测能够高速地读出。
进而,通过这样的程序装置,使置换补救有缺陷存储单元用的不良地址位等的信息被存储起来,能够有效地实现冗余补救结构
实施例1的变例1
以下,作为实施例1的变例,就考虑了确保各程序单元的工作可靠性的程序数据的读出工作作一说明。
参照图14,在与时钟信号CLK的激活时序相当的时刻t10及时刻t20,输入数据读出工作或者数据写入工作的执行命令,开始数据读出周期或者数据写入周期。数据写入周期开始时,就开始与输入的地址信号对应的行选择工作及列选择工作。
在具有冗余结构的MRAM器件中,在行选择工作或者列选择工作中,有必要首先判定输入的地址信号与不良地址是否一致。因此,在数据读出周期或者数据写入周期开始后,在初始的规定期间(在图14中的时刻t11~t12的期间),为了从各程序装置读出程序数据,即,为了读出不良地址位,给予各程序装置的控制电压Vcn被设定在中间电压Vm。由此,采用从程序电路100读出的不良地址,冗余控制电路105能够实行规定的置换补救。
这样,为了读出各个周期的不良地址,对程序单元读出程序数据的频度与配置在存储器阵列10的对正规存储单元及备用单元的各自的存储数据的读出频度相比,它的读出频度高。
在配置在存储器阵列10的各正规存储单元及备用单元中,在通常的数据读出时施加在隧道磁阻元件TMR两端的电压是电源电压Vcc1(读字线RWL的选择状态)。另一方面,由于将程序数据读出时的控制电压Vcn设定为中间电压Vm,程序数据读出时施加在程序单元两端上的偏置电压成为中间电压Vm附近(Vcc1>Vm>Vss)。因此,能够抑制程序数据读出时程序单元的通过电流,能过提高程序单元的工作可靠性。
此外,在各周期内,在对不良地址必要的冗余判定终结后的期间(图14的t12~t20期间),控制电压Vcn被设定在电源电压Vcc1。在该期间中,不产生通过各程序单元PRC的电流。在对应于存储单元列而进行置换补救的结构中,对应于行选择结果的读字线RWL及写字线WWL的激活能够与冗余判定无关地进行。因此,通常的数据读出时的读字线(选择行)RWL的激活期间Tn被设定为比程序数据读出时控制电压Vcn被设定在中间电压Vm的期间Tp要长。
因此,程序数据读出时的程序单元的偏置电压施加时间,即电流通过时间,设定为比对配置在存储器阵列10上的正规存储单元及备用单元的每一个在通常的数据读出时的电流通过时间要短。其结果是,能够提高程序单元的工作可靠性。
实施例1的变例2
参照图15,实施例1的变例2的程序电路100与图4所示的结构相比,对应于各程序装置PU,其不同点在于它包含用于存储程序信号φa、φb的传输门TGa、TGb及闩锁电路LTa、LTb。虽然省略了图示,对各程序装置同样配置了传输门TGa、TGb及闩锁电路LTa、LTb。
传输门TGa及闩锁电路LTa对应于程序信号φa而设置,传输门TGb及闩锁电路LTb对应于程序信号φb而设置。传输门TGa及TGb在闩锁信号LS的激活(H电平)期间,将程序信号φa及φb分别对闩锁电路LTa及LTb传递。
闩锁电路LTa及LTb分别将分别通过传输门TGa及TGb而传递的程序信号φa及φb闩锁。闩锁电路LTa及LTb的保持数据在电源接通期间仍被保持。
关于其他方面,由于程序电路100的结构与实施例1同样,改不再重复作详细说明。
图16是说明实施例1的变例2的程序数据的读出工作的工作波形图。
参照图16,在时刻t0,MRAM器件的工作电源启动,电源电压Vcc1及Vcc2上升。在从电源启动经过规定时间后的时刻t1,复位信号/RST从L电平变化到H电平,进行启动程序。
对各程序单元的程序数据读出,即不良地址的读出,作为启动程序的一环,将电源启动作为触发进行。响应复位信号/RST的变化,在时刻t2,控制电压Vcn被设定在中间电压Vm(或者接地电压Vss)。由此,对各程序装置进行程序数据读出,输出与程序数据(不良地址位)对应的程序信号φa及φb。进而,在与程序信号φa及φb的设定结束的时序对应地设定的从时刻t3到t4的规定期间内,闩锁信号LS被激活为H电平。由此,从各程序装置读出的程序信号φa及φb,在直至电源被截断的期间内,被保持在闩锁电路LTa及LTb上。
在程序信号被读出、而且闩锁电路LTa及LTb被闩锁的状态下,在时刻t5以后,控制电压Vcn被设定在电源电压Vcc1。在以后的通常工作时,在每个数据读出周期或者数据写入周期中,基于闩锁电路LTa,LTb的保持数据,进行与不良地址对应的冗余判定。
通过采用这样的结构,电流通过各程序单元一事成为仅限于将电源启动作为触发的启动程序中的短期间。因此,即使在以不良地址为代表的、在通常时将每个周期必须参照的信息编程的情况下,能够提高程序单元的工作可靠性。
实施例2
在图17中示出了与实施例2的程序输入输出相关的电路结构。
参照图17,在实施例2的结构中,基于在程序电路100上被编程的不良地址,进一步配置用于从外部监测冗余控制电路105中的冗余判定结果的监测端子4b。
选择电路109接受来自冗余控制电路105的备用启动信号SEI~SEk,将与输入到信号端子4c上的测试选择信号TSL对应的一个信号有选择地输出到监测端子4b上。由此,由于还使用了2个端子,能够从外部监测由冗余控制电路105得到的冗余判定结果。
例如,在工作测试时,在程序电路100上输入与编程的不良地址对应的地址信号ADD,若监测备用启动信号SE1~SEk,则能够有效地确认不良地址是否正确地被存储在程序电路100中。
或者,不设置选择电路109,也可以使用k个监测端子,形成将备用启动信号SE1~Sek分别并列地从外部监测的结构。
实施例3
在实施例3中,说明有效地供给程序电流的结构。
图18是示出实施例3中用于进行程序电流供给的第1结构例的电路图。
参照图18,用于供给正规存储单元的数据写入电流±Iw的数据写入电路51W具有用于流过规定电流Iw(Ref)的电流供给电路80和构成电流镜的P沟道MOS晶体管81及82。由此,向内部节点Nw0的供给电流根据规定电流Iw(Ref)而设定。
数据写入电路51W还具有通过内部节点Nw0接受工作电流的供给而工作的倒相器84、85及86。倒相器84、85及86各自接受电源电压Vcc2及接地电压Vss的供给而工作。
倒相器84将写入数据DIN的电压电平反转并传递到数据总线DB上。倒相器85将写入数据DIN的电压电平反转并传递到倒相器86的输入节点上。倒相器86将倒相器85的输出反转并传递到数据总线/DB上。因此,数据写入电路51W根据写入数据DIN的电压电平,将数据总线DB及/DB设定在电源电压Vcc2及接地电压Vss的各自一方上。
在实施例3的第1结构例中,将用于对程序位线PBL1及PBL2供给程序电流±Iw(P)的结构与图12所示的结构进行比较,其不同点在于电压设定晶体管154及157分别电耦合在与数据写入电路51W共同的内部节点Nw0与程序位线PBL1及PBL2的一端之间。
当用同一形状·同一磁化特性设计程序单元PRC和构成正规存储单元及备用存储单元的隧道磁阻元件时,程序电流±Iw(P)的电流量能够设定为与对正规存储单元的数据写入电流±Iw同样。因此,能够共用在数据写入电路51中使用的电流供给电路80而不增加电路面积来供给最合适的程序电流。
此外,在图18所示的结构中,代替图12所示的控制门160、162及电压设定晶体管164、165、167、168,配置了晶体管开关175。在晶体管开关175的栅极上设定程序信号PRG。由于其他部分的结构与图12同样,故不再重复作详细的说明。
如已经说明的那样,在程序数据写入时,不管程序数据PDj的电平如何,对程序位线PBL1及PBL2分别流过相反方向的电流。
因此,如果根据程序数据PDj的电平,将程序位线PBL1及PBL2的各自一端与电源电压Vcc或者接地电压Vss耦合,则就程序位线PBL1及PBL2的另一端相互间来说,仅靠由晶体管开关175进行的电耦合,就能够在程序数据写入时流过与图12中说明过的同样的程序电流。由此,能够削减程序电路的面积。
此外,在图12的结构中,代替控制门160、162及电压设定晶体管164、165、167、168,能够配置晶体管开关175。
图19是示出用于进行实施例3的程序电流供给的第2结构例的电路图。
参照图19,控制字线驱动器30中的写字线WWL的激活的写字线驱动部30W具有用于流过规定正规存储单元的数据写入电流Ip的规定电流Ip(Ref)的电流供给电路90和构成电流镜的P沟道MOS晶体管91及92。由此,向内部节点Nw1的供给电流根据规定电流Ip(Ref)设定。
写字线驱动部30W还具有分别对应于写字线WWL1~WWLn而设置的驱动装置WD1~WDn。驱动装置WD1~WDn的每一个用通过内部节点Nw1接受工作电流供给而工作的倒相器构成。驱动装置WD1~WDn的每一个接受电源电压Vcc2及接地电压Vss的供给而工作。
行译码器20根据行地址RA,将行译码信号RDC1~RDCn中与选择行对应的一个信号激活为L电平。响应于此,驱动装置WD1~WDn中与选择行对应的一个将对应的写字线WWL激活为选择状态(H电平:电源电压Vcc2)。
在实施例3的第2结构例中,将用于对程序位线PBL1及PBL2供给程序电流Ip(P)的结构与图12所示的结构进行比较,其不同点在于选择晶体管170电耦合在与写字线驱动部30W共同的内部节点Nw1与程序字线PWL之间。由于其他部分的结构与图12是同样的,故不再重复作详细的说明。
还有,对于程序位线PBL1及PBL2,与图18所示的结构同样地代替图12所示的控制门160、162及电压设定晶体管164、165、167、168,配置了晶体管开关175。
如果用同一形状、同一磁化特性设计程序单元PRC和构成正规存储单元及备用存储单元的隧道磁阻元件,则就程序电流±Ip(P)的电流量来说,能够设定为与对正规存储单元的数据写入电流Ip同样。因此,能够共用写字线驱动部30W内的电流供给电路90而不增加电路面积来供给最适合的程序电流。
实施例4
在实施例4中,说明将多个程序单元有效地配置的结构。
图20是示出实施例4的程序单元配置的电路图。
在图20中代表性地示出:包含在程序电路100中的多个程序单元之中的、与用于存储同一不良地址的各自的位的程序装置PU0~PUh对应的程序单元的配置。
在程序装置PU0~Puh的每一个中,程序单元PRC1及PRC2分别与成对配置的程序位线PBL1及PBL2电耦合。
程序字线PWL0~PWLh分别对应于程序装置PU0~Puh而配置。即,构成同一的程序装置的程序单元与共同的程序字线PWL对应地被加上。
此外,在程序字线PWL0~PWLh与电源电压Vcc2之间分别配置了选择晶体管170-0~170-h。在选择晶体管170-0~170-h的栅极上,分别输入与程序装置PU1~PUh分别对应地设定的程序信号/PRG0~/PRGh。当对应的程序装置PU作为程序数据写入的对象时,程序信号/PRG0~/PRGh被激活为L电平。因此,在成为程序数据写入对象的程序装置中,对于程序单元PRC1及PRC2的每一个供给程序电流Ip(P)。
将用于对成对的程序位线PBL1及PBL2供给程序电流±Iw(P)的结构与图18及图19所示的结构进行比较,其不同点在于代替晶体管开关175而配置例如用金属布线构成的连接部176。这样,省略了晶体管开关175的配置,即使将程序位线PBL1及PBL2的另一端相互之间常时地电耦合,也能够与图12、图18及图19同样地进行程序数据写入时的程序电流±Iw(P)的供给以及在程序数据写入以外的程序位线PBL1及PBL2的电压设定。即:即使在图12、图18及图19中,也能够不用晶体管而由连接部176将程序位线PBL1及PBL2的另一端相互间电耦合。
通过采用这样的结构,将程序单元有效地配置成行列状,在此基础上能够按每个程序装置进行对应于程序数据PDj的程序数据写入。
实施例5
如实施例1至4所示那样的、用于存储冗余程序等中所用的程序数据的程序装置有必要将它的工作可靠性设定为远比进行通常的数据存储的各存储单元要高。因此,在实施例5中,就工作可靠性高的程序装置的结构进行说明。
参照图21,在实施例5的程序装置PU#中,程序单元PRC1包含串联连接在N沟道MOS晶体管113与接地电压Vss之间的、与隧道磁阻元件TMR同样的多个磁阻元件。同样,程序单元PRC2具有串联连接在N沟道MOS晶体管123与接地电压Vss之间的、串联连接的磁阻元件。
在图21中,示出了各程序单元PRC由2个磁阻元件构成的例子。即,程序单元PRC1包含串联连接的磁阻元件PRC1a及PRC1b,程序单元PRC2包含串联连接的磁阻元件PRC2a及PRC2b。磁阻元件PRC1a、PRC1b、PRC2a、PRC2b的每一个是与图7所示的程序单元PRC1及PRC2的每一个同样的结构。
此外,在实施例5的结构中,由于程序单元PRC1及PRC2的电阻被设定为2×Rmin及2×Rmax中的任何一个,所以代替基准电阻115及125而配置了基准电阻116及126。基准电阻116及126的电阻被设定在2×Rmin+ΔR。程序装置PU#其他部分的结构由于与图7所示的程序装置PU同样,故不再重复作详细的说明。
通过采用这样的结构,在程序数据读出时,由于能够抑制流过构成程序单元的各磁阻元件的电流量,因而能够提高程序单元的工作可靠性。
图22是说明实施例5的对程序单元供给程序电流的电路图。
参照图22,构成程序单元PRC1的磁阻元件PRC1a对应于程序字线PWL1与程序位线PBL1的交点而配置。磁阻元件PRC1b对应于程序字线PWL2与程序位线PBL1的交点而配置。
同样,构成程序单元PRC2的磁阻元件PRC2a对应于程序字线PWL1与程序位线PBL2的交点而配置。磁阻元件PRC2b对应于程序字线PWL2与程序位线PBL2的交点而配置。
对于成对的程序位线PBL1及PBL2,由在图18及图19中已说明过的同样的结构供给对应于程序数据PDj的程序电流±Iw(P)。此外,如图20所示,也可以代替晶体管开关175而配置由金属布线等形成的连接部176。
此外,与同一程序装置对应地被加上的程序字线PWL1及PWL2成对配置,它的一端相互之间通过用金属布线等形成的连接部177电耦合。另外,一方的程序字线PWL1的另一端通过选择晶体管170与电源电压Vcc2连接。另一方的程序字线PWL2的另一端与接地电压Vss连接。响应于输入到选择晶体管170的程序信号/PRG的激活,能够作为往复电流在程序字线PWL1及PWL2上流过恒定方向的程序电流Ip(P),将难磁化轴方向的程序磁场施加在各磁阻元件上。
此外,由沿着流过程序位线PBL1、PBL2,响应于程序数据PDj的程序电流±Iw(P)生成的易磁化轴方向的程序磁场,能够将构成同一的程序单元的磁阻元件的每一个磁化成同一的方向,而且,能够将构成不同程序单元的磁阻元件的每一个磁化成不同的方向。由此,即使对于实施例5的工作可靠性高的程序单元也能够进行同样地程序数据写入。
实施例6
在实施例6中,说明工作容限及工作可靠性高的程序装置的其他结构例。
参照图23,将实施例6的程序装置与图7所示的实施例1的程序装置的结构进行比较,其不同点在于分别配置程序单元PRC1#及PRC2#以分别代替基准电阻115及125。程序单元PRC1#及PRC2#的每一个与程序单元PRC1及PRC2同样,具有与构成各存储单元MC的隧道磁阻元件TMR同样的形状及结构。程序单元PRC1#连接在电流读出放大器110中的晶体管114与接地电压Vss之间。同样地,程序单元PRC2#连接在电流读出放大器120中的晶体管124与按地电压Vss之间。
还有,图7所示的逻辑门130(异或门)的配置被省略,节点N1及N2的电压电平分别相当于程序信号φa及φb。即,程序装置PU包含用于存储与程序信号φa相当的1位信号的程序寄存器300a和用于存储与程序信号φb相当的1位信号的程序寄存器300b。
在程序数据读出时,控制电压Vcn变化到中间电压Vm(Vss<Vm<Vcc)。与此相对应,在程序寄存器300a中,电流读出放大器110在程序单元PRC1及PRC1#的每一个的两端施加对应于控制电压Vcn的偏置电压,两者的通过电流差,即根据两者的电阻R1及R1#的比较,生成程序信号φa。程序信号φa示出对应的程序装置是非程序状态及程序状态中的哪一个。同样地,在程序寄存器300b中,电流读出放大器120在程序单元PRC2及PRC2#的每一个的两端施加对应于控制电压Vcn的偏置电压,两者的通过电流差,即根据两者的电阻R2及R2#的比较,生成程序信号φb。程序信号φb示出存储成为程序状态的对应程序装置的程序数据的电平。
图24是示出在实施例6的程序装置中的程序单元的电阻和程序装置的状态等的对应关系图。
参照图24,在初始状态,构成程序寄存器300a的程序单元PRC1及PRC1#被磁化成相反方向,各自的电阻被设定为R1=Rmax、R1#=Rmin。另一方面,构成程序寄存器300b的程序单元PRC2及PRC2#被磁化成同一方向,各自的电阻R2及R2#例如被设定为Rmin。
在程序状态时,构成程序寄存器300a的程序单元PRC1及PRC1#分别被磁化成与初始状态相反的方向。即,被设定为R1=Rmax、R1#=Rmin。另一方面,构成程序寄存器300b的程序单元PRC2及PRC2#被磁化成相互不同的方向,分别写入互补的数据。即,仅仅程序单元PRC2及PRC2#的一方被磁化成与初始状态不同的方向。这时,写入磁化方向的该方的程序单元根据被写入的程序数据而被选择。
即,在程序数据写入时,有选择地进行:改写程序单元PRC2的磁化方向,维持程序单元PRC2#的磁化方向与初始状态同样的数据写入(R2=Rmax、R2#=Rmin:「程序状态1」)和改写程序单元PRC2#的磁化方向,维持程序单元PRC2的磁化方向与初始状态同样的数据写入(R2=Rmin、R2#=Rmax:「程序状态2」)中的某一方。
与此相反,在不进行程序数据写入,即在非程序状态的程序单元中,程序单元PRC1、PRC1#、PRC2、PRC2#的各自的磁化方向,即电阻与初始状态时没有变化。
其次,用图25A~25C说明来自实施例6的程序装置的程序数据读出时及写入时的程序信号的电平。
参照图25A,在初始状态,在程序寄存器300a中,由于程序单元PRC1的电阻R1比程序单元PRC1#的电阻R1#大,在进行程序数据读出时,节点N1的电压,即程序信号φa被设定为表示非程序状态的L电平。另一方面,在程序寄存器300b中,由于程序单元PRC2及PRC2#的电阻R2、RE#是同一电平,即使进行程序数据读出,节点N2的电压,即程序信号φb是不定的。但是,当成对的程序信号φa被设定为表示非程序状态的L电平的情况下,由于对应的程序信号φb不是有意义的,即使程序信号φb不定,也不产生坏的影响。
参照图25B,在程序数据写入时,在程序寄存器300a中,由于程序单元PRC1和PRC1#间的电阻的大小关系轮换,程序信号φa从表示非程序状态的L电平变化到表示程序状态的H电平。另一方面,在程序寄存器300b上,根据写入的程序数据的电平,进行遵从上述程序状态1及程序状态2中的某一状态的程序数据写入,对于程序单元PRC2及PRC2#写入互补的数据。其结果是,当进行遵从程序状态1(R2=Rmax、R2#=Rmin)的程序数据写入时,来自程序寄存器300b的程序信号φb被设定为L电平,当进行遵从程序状态2(R2=Rmin、R2#=Rmax)的程序数据写入时,来自程序寄存器300b的程序信号φb被设定为H电平。
在图25C中,示出了来自程序状态的程序装置的程序数据读出工作。当程序数据读出时,各程序单元上施加对应于控制电压Vcn的规定偏置电压,在此基础上由电流读出放大器110及120生成程序信号φa、φb。在程序状态的程序装置中,程序信号φb示出是程序状态1及程序状态2中的某一状态,即,示出存储的1位的程序数据的电平。另一方面,程序信号φa即使是程序状态1及程序状态2中的某一状态,即不管存储的1位的程序数据的电平如何,被设定为H电平。
如果采用这样的实施例6的结构,则程序寄存器300a,300b的每一个,由2个程序单元,即由成对的单元结构存储1位的程序信号。在另一方面,如图2所示,各存储单元MC由1个隧道磁阻元件TMR,即由单个的单元结构进行1位的数据存储。
因此,在程序电路中,由于作为1位程序信号的存储单位的程序寄存器的可靠性比进行通常的数据存储的存储单元的可靠性要高,故不会产生尽管存储单元的工作正常,而程序装置产生误动作,因而使MRAM器件的工作不稳定化的现象。
还有,在图23所示的电路结构中,能够采用调整输入到电流读出放大器110、120上的控制电压Vcn,在程序数据读出时,施加在各程序单元两端的电压,即施加在程序单元中的隧道膜上的电场设定为比施加在通常的数据读出时的各程序单元中的隧道磁阻元件TMR两端上的电压(施加在隧道膜上的电场)小的结构。由此,能够将各程序寄存器的可靠性提高到比进行通常的数据存储的存储单元的可靠性要高。此外,即使是与实施例1至4的结构的组合,这样的控制电压的设定同样地能够适用。
特别是,如实施例1的变例2所示那样的、如果使用将在电源启动时进行的程序读出结果保持在闩锁电路上的结构,则高速地进行来自程序装置的数据读出的必要性减小。因此,在这样的结构中,最好使程序装置的工作可靠性最优先考虑,使施加在各程序单元两端的电压(偏置电压)降低,使施加在隧道膜上的电场降低。
还有,图23的结构中所示的各程序单元与图21所示的实施例5的结构相同,也能够将多个隧道磁阻元件TMR串联连接构成。由此,能够进一步提高各程序单元的工作可靠性。
或者,如图26所示那样,也可以作成在程序寄存器中作为程序单元配置的隧道磁阻元件的面积比存储单元MC中的隧道磁阻元件TMR大的结构。由此,在程序数据读出时,由于程序单元中的电流通过面积比存储单元MC中的隧道磁阻元件TMR中的电流通过面积大,各程序单元的电阻变得比各存储单元MC的电阻小。
如果采用这样的结构,则在各程序单元和各存储单元中,即使在两端施加的偏置电压相同的情况下,因磁化方向(即存储数据电平)的不同而产生的通过电流差变得比在程序单元中大。其结果是,由于来自程序单元的读出裕量比存储单元MC大,能够将程序寄存器的可靠性提高为比进行通常的数据存储的存储单元的可靠性高。
实施例7
如从实施例1至6所示的那样,在采用与MTJ存储单元同样的程序单元存储使用于冗余补救等的程序数据的结构中,能够将这些程序数据非易失性地而且可多次改写地存储起来。在实施例7中,就设定使用这样的程序单元存储程序信息的情况下,在MRAM器件中的编程方法进行说明。
图27是说明在实施例7的MRAM器件中的程序信息的编程方法的流程图。
参照图27,对结束了用于制作晶片的晶片工艺(工艺P100)的MRAM器件进行晶片测试,将为了冗余补救在晶片测试中检测出的有缺陷存储单元用的程序信息写入程序电路(工艺P110)。进而,在用于使初始缺陷加速显现的晶片状态下MRAM器件被送去进行老化试验(工艺P120),在晶片老化实验结束后被封装(工艺P130)。
被封装了的MRAM器件在封装后的状态下再次被送去进行老化试验(工艺P140)。对封装后的老化试验结束了的MRAM器件进行最终的工作测试。在该工作测试中,能够从外部监测存储在各程序装置中的程序数据,即在工艺P110中写入的程序信息,并予以确认(工艺P150)。
这样的程序监测功能能够由具有图17所示的实施例2的结构的程序电路100执行。具体地说,在工作测试时,输入对应于在程序电路100中已编程的不良地址的地址信号ADD,如果监测备用启动信号SE1~SEk,则能够有效地确认不良地址是否被准确地存储到程序电路100中。
由工艺150得到的最终的有缺陷存储单元由再次冗余补救来补救(工艺P160)。即,存储在程序电路100中的程序信息能够用该工艺改写。通过施加磁场能够任意改写的MTJ存储单元的特性可被灵活运用于非易失性的存储数据方面,封装工序前暂时写入的程序信息在封装工序后能够被改写。其结果是,能够非易失性地存储反映封装后的最终测试结果的程序信息。
在工艺P160结束后,确定应最终存储于程序电路中的程序信息,即确定对各程序寄存器的程序信号。因此,至少对于一部分程序寄存器的每一个,程序状态被锁定,将其存储内容非可逆地固定住(工艺P170),使得在程序寄存器中的存储内容在以后不至被错误地改写。在程序状态被锁定后,MRAM器件就出货并封装。(工艺P180)。
其次,对在工艺P170中用于实现程序状态锁定功能的结构进行说明。
图28是用于说明具有程序状态锁定功能的程序寄存器的结构的电路图。
参照图28,如在图23已经说明的那样,程序寄存器300相当于用于存储1位的程序数据信号的单位。程序寄存器具有电流读出放大器110、程序单元PRC、以及比较电阻部205。比较电阻部205具有固定电阻206及207,假定电阻206的电阻值相当于隧道磁阻元件TMR的电阻值Rmin,电阻207的电阻值相当于ΔR/2。即,用Rcp=Rmin+ΔR/2表示比较电阻部205的电阻值。程序单元PRC用与各存储单元MC同样的隧道磁阻元件TMR构成。程序单元PRC被连接在节点N0与电源节点200之间。电源节点200在通常情况下供给接地电压Vss。
在程序状态未被锁定的程序寄存器中,由于隧道磁阻元件TMR中的隧道膜未被破坏,程序单元PRC与各存储单元中的隧道磁阻元件TMR同样,具有电阻值Rmax及Rmin中的某一个。
在图29A中示出了在程序状态锁定前的程序单元PRC的电阻特性。参照图29A,当程序单元PRC沿它的易磁化轴方向EA,施加超过使自由磁化层的磁化方向反转所必须的阈值的磁场的情况下其电阻被反转,被设定为Rmax及Rmin中的某一个。如在图12等已经说明的那样,对于程序单元PRC,通过施加来自程序字线PWL及程序位线PBL双方的数据写入磁场,能够进行数据写入(磁化方向的反转)。
再次参照图28,如果将程序单元PRC内的固定磁化层与自由磁化层的磁化方向一致的情况定义为初始状态,则在初始状态的程序单元PRC的电阻相当于Rmin。这样,通过定义初始状态,就没有必要设置用于将各程序单元PRC设定为初始状态的专用的磁化工序。
其结果是,在初始状态,程序单元PRC的电阻比比较电阻部205的电阻Rcp小。因此,节点N1被设定为H电平(电源电压Vcc1)。然后,在图27所示的工艺P110及P160中,为了存储程序数据,当有必要从节点N1输出L电平信号的情况下,对程序单元PRC进行数据写入,使它的电阻从Rmin变化到Rmax。此时,由于程序单元PRC的电阻比比较电阻部205的电阻Rcp大,从节点N1输出L电平信号。
在图27所示的工艺P160中,对于多个配置的程序单元PRC中以初始状态原样保存的一部分程序单元,从节点N1应输出H电平信号的程序单元,将其程序状态锁定,使得其后不错误地进行数据写入。在锁定时,例如节点N0被设定在接地电压Vss,电源节点200被设定在负电压-Vnn。负电压-Vnn被设定为能引起隧道膜绝缘击穿的电场能够施加到该隧道膜上。隧道膜遭到击穿的程序单元PRC的电阻非可逆地被固定住。
在图29B中,示出了程序状态锁定后程序单元PRC的电阻特性。
参照图29B,程序单元PRC锁定后的电阻被固定在比Rmax及Rmin中的任何一个都低的Rb1上。在锁定后的隧道膜遭到击穿的程序单元中,电阻不随磁数据写入而变化,在节点N1上生成的程序信号被固定在H电平。
图30是说明在程序状态锁定时的施加电压的图。
在图30中,与图11B同样,示出了程序单元的剖面图。相当于晶体管113和程序单元PRC的连接节点的节点N0相当于耦合在源/漏区212与程序单元PRC之间的金属布线层M1上形成的金属布线260。还有,电源节点200相当于程序位线PBL。因此,在锁定工作时,与将金属布线260和接地电压Vss连接的同时,如果向程序位线PBL供给图中未示出的来自负电压发生电路的负电压-Vnn即可。
这样,在程序状态锁定时,即通过将程序单元的隧道膜击穿时的施加电压的极性与通常的程序数据读出时同样地设定,能够可靠地实现在锁定后所希望的电阻。
此外,在图28所示的结构中,示出了利用隧道膜的烧断,将程序单元PRC的电阻固定到比2种电阻Rmax、Rmin的任何一个都小的结构,但相反地,也可以将比较电阻部205一侧的电阻固定地设定在比Rmin、Rmax的每一个都高,或者都低。这样的结构例如用MIS(金属-绝缘体-半导体)晶体管等构成比较电阻部205的电阻206、207,可以利用高电压击穿该MIS晶体管的绝缘膜,非可逆地固定为Rcp<Rmin的结构,或用金属布线形成电阻206、207,在该金属布线上流过大电流将其熔断,形成使比较电阻部205的电阻非可逆地固定为Rcp>Rmax的结构。或者,插入与程序单元PRC串联的、用大电流能够熔断的金属布线,锁定后的程序单元的电阻也能够设定为比Rmax非可逆地增大。
此外,在实施例1~7中,虽然是以用于特别指定有缺陷存储单元的不良地址作为程序信息存储到程序电路100中的结构作了代表性的说明,但是,本申请发明的应用并不限于这样的结构。
例如,也能够采用:根据存储在程序电路100中的程序信息,设定用于规定图18及图19所示的数据写入电流量的规定电流Iw(Ref)及Ip(Ref)的调整,和内部电源电压的调整的结构。这样,使用本申请发明的程序电路,也能够将与MRAM器件的内部电路相关的工作条件及MRAM器件的工作模式等作为程序信息存储起来。