具体实施方式
通常,根据一个实施例,存储器装置包括:存储器,其被配置为存储数据;纠错电路,其被配置为校正从存储器读取的数据中的错误,并且如果数据中的错误不能被校正,则生成第一状态的第一信号以与数据一起发送到外部;以及第一引脚,其被配置为向外部发送第一信号,并从外部接收数据掩码信号。
现在将参考附图描述实施例。在以下描述和附图中,相同的附图标记用于表示相似或对应的元件。
[1]实施例
[1-1]存储器系统1
首先,将描述根据本实施例的存储器系统1。如图1中所示,存储器系统1包括半导体存储器装置10和主机(或存储器控制器)15。本实施例的半导体存储器装置10例如是自旋转移矩型磁阻随机存取存储器(STT-MRAM)。
如图1中所示,半导体存储器装置10包括存储器核11、外围电路12和接口13。
存储器核11被设置有用于存储数据的多个存储器单元。外围电路12将数据写入存储器核11并从其中读取数据。
接口13被设置有接收指令、地址和数据的焊垫单元14。焊垫单元14包括多个焊垫。接口13通过焊垫单元14和控制信号线CNT连接到主机15。接口13通过焊垫单元14和数据选通信号线DQS/DQSb连接到主机15。接口13通过焊垫单元14和数据掩码信号线DM/ECC CR<k:0>连接到主机15。接口13通过焊垫单元14和指令/地址线CA<n:0>连接到主机15。接口13通过焊垫单元14和数据线DQ<m:0>连接到主机15。字母k、n和m表示自然数。
控制信号线CNT用于发送和接收控制信号。控制信号包括时钟信号CK/CKb、时钟使能信号CKE和片选信号CS。指令/地址线CA<n:0>用于发送和接收指令和地址。数据掩码信号线DM/ECC CR<k:0>用于发送和接收数据掩码信号和检错信号。数据线DQ<m:0>用于在半导体存储器装置10和主机15之间发送和接收数据。数据选通信号线DQS/DQSb用于发送和接收数据信号DQ。时钟信号CK/CKb和数据选通信号DQS/DQSb用于控制半导体存储器装置10的操作时序。
控制信号线CNT、数据选通信号线DQS/DQSb、数据掩码信号线DM/ECC CR<k:0>、指令/地址线CA<n:0>和数据线DQ<m:0>中的每一个可以包括引脚,或者可以是引脚本身。
[1-2]半导体存储器装置10
将参考图2描述半导体装置10。
[1-2-1]存储器核11
将描述半导体存储器装置10的存储器核11。存储器核11被设置有存储器区域20、行解码器21和列解码器22。存储器区域20包括(j+1)个存储体BK0至BKj(j:自然数)。这些存储体BK0至BKj中的每一个都可以被单独激活。除非存储体BK0至BKj必须彼此区分,否则它们将被简称为存储体BK。
行解码器21解码存储体地址BA<x:0>和行地址<y:0>,采用存储体地址BA<x:0>选择存储体BK0至BKj中的一个存储体,采用行地址<y:0>选择所选存储体的行。
列解码器22解码列地址C<z:0>,采用列地址C<z:0>选择存储器区域20中的列。
[1-2-2]外围电路12
将描述半导体存储器装置10的外围电路12。如图2中所示,外围电路12被设置有指令锁存电路23、地址锁存电路24、数据锁存电路25、数据掩码锁存电路26、控制电路27、纠错码(ECC)电路28、第一时钟发生器29和第二时钟发生器30。
指令锁存电路23经由指令/地址线CA<n:0>接收来自主机15的指令CMD,并暂时存储接收到的指令CMD。指令CMD被提供给控制电路27和ECC电路28。
地址锁存电路24接收地址ADD。在地址ADD中,行地址R<y:0>从地址锁存电路24被提供给行解码器21,并且列地址C<z:0>从地址锁存电路24被提供给列解码器22。
数据锁存电路25暂时存储经由数据线DQ<m:0>从主机15向其提供的输入数据,并暂时存储从所选存储体读取的输出数据。输入数据写入所选存储体的存储器单元中。
数据掩码锁存电路26暂时存储经由数据掩码线DM/ECC CR<k:0>从主机15向其提供数据掩码信号或表示ECC的纠错结果的输出数据。数据掩码信号是当输入数据写入存储器单元时用于控制写入掩码的信号。
控制电路27基于从主机15提供的时钟使能信号CKE、片选信号CSb和指令CMD来控制半导体存储器装置10的操作。在接收到数据掩码信号后,控制电路27执行数据遮掩。数据遮掩是用于防止目标存储器单元被写入的操作。输入的时钟使能信号CKE和片选信号CSb基于由第一时钟发生器29生成的内部时钟CLK存储在控制电路27中。基于存储在控制电路27中的时钟使能信号CKE和片选信号CSb,可以控制第一时钟发生器29的后续操作,以停止内部时钟CLK的生成。
当数据被写入时,ECC电路28生成用于存储在数据锁存电路25中并将被写入的数据的校验(parity)位(纠错码),并且将校验位添加到数据。包括向其添加的校验位的结果数据被写入存储器单元阵列中。
当数据被读取时,ECC电路28执行对从存储器单元阵列读取并将其提供给数据锁存电路25的数据的纠错处理。通过执行使用校验位的纠错处理,ECC电路28检查从存储器阵列中读取的数据是否包含错误。如果检测到数据中的错误,则ECC电路校正所检测到的错误。控制电路27将错误被校正的数据写回到存储器单元阵列中。在本实施例中,将错误被校正的数据(即,通过ECC处理校正了错误的数据)写回到存储器单元阵列中的操作将被称为回写操作。例如,如果在从存储器单元阵列读取的数据中没有检测到数据,则本实施例的半导体存储器装置10不执行回写操作。回写操作确保了存储在半导体存储器装置10中的数据的可靠性。ECC电路28可以被设置在存储器区域20(存储体BK)中。
ECC电路28被设置有检测电路28a。如果确定错误的位数大于由ECC电路28可校正的位数,则检测电路28a向数据掩码锁存电路26和控制电路27提供H(高)电平的检错信号DET。通过数据掩码锁存电路26和控制电路27,检错信号DET经由用于发送和接收数据掩码信号的数据掩码信号线DM/ECC CR<k:0>被提供给主机15。
将给出更具体的描述。假设对于每一个纠错单元,ECC电路28的纠错能力是“n”位(n:自然数)。在该情况下,如果对于每一个纠错单元,错误是“n+1”位以上,则检测电路28a将检错信号DET设定为“H”电平。相反,如果对于每一个纠错单元,错误是“n”位以下,则检测电路28a将检错信号DET设定为“L”电平。
主机15可以识别在检错信号DET的“H”电平期间接收的数据是纠错处理未被正确执行的数据。因此,主机15可以对纠错处理未被正确执行的数据采取适当的动作。例如,主机15可以丢弃数据或者避免执行回写操作。关于在检错信号DET的“L”电平期间接收到的数据,主机15可以将其识别为纠错处理已被正确执行的数据。
尽管ECC电路28和检测电路28a被描述为功能上不同的电路,但是ECC电路28和检测电路28a可以被集成为一个电路。
第一时钟发生器29基于从主机15提供的时钟信号CK/CKb生成内部时钟CLK。将内部时钟CLK提供给指令锁存电路23、控制电路27和地址锁存电路24。内部时钟CLK用于控制这些电路的操作时序。
第二时钟发生器30基于从主机15提供的数据选通信号DQS/DQSb生成内部时钟DCLK。将内部时钟DCLK提供给数据锁存电路25和数据掩码锁存电路26。内部时钟DCLK用于控制这些电路的操作时序。
[1-2-3]BK存储体
将参考图3描述存储器区域20的存储体BK。存储体BK包括读出放大器/写入驱动器(SA/WD)20b、页缓冲器20c和存储器单元阵列20a。
读出放大器/写入驱动器20b以存储器单元阵列20a的位线方向被布置。读出放大器/写入驱动器20b包括读出放大器和写入驱动器。读出放大器被连接到位线BL,并通过检测流经被连接到所选字线WL的存储器单元MC的电流而从存储器单元MC读取数据。写入驱动器被连接到位线BL,并通过使电流流过被连接到所选字线的存储器单元MC而将数据写入存储器单元MC中。读出放大器/写入驱动器20b基于从控制电路27提供的控制信号来控制位线BL和源极线SL。数据经由数据锁存电路25在读出放大器/写入驱动器20b和数据线DQ之间传送。
页缓冲器20c暂时存储从存储器单元阵列20c读取的数据或从主机15接收的数据。数据以多个存储器单元晶体管为单位(以页为单位)写入存储器单元阵列20a中。可在某时被写入存储器单元阵列20a中的数据的单位被称为“页”。在本实施例中,页缓冲器20c被提供给每一个存储体BK,并且具有使存储体BK的全部页数据能够被暂时存储的存储容量。
当数据被写入存储器单元阵列20a中时,主机15伴有写入指令将页地址(指示数据将被写入的区域)和写入数据提供到半导体存储器装置10。控制电路27将从主机接收的写入数据存储在页缓冲器20c中,并将存储在页缓冲器20c中的写入数据写入由页地址指定的存储器单元MC中。
当从存储器单元阵列20a中读取数据时,主机15伴有读取指令将页地址(指示将从中读取数据的区域)提供到半导体存储器装置10。控制电路27从由页地址指定的存储器单元读取数据,并将读取的数据提供给页缓冲器20c。
存储器单元阵列20a包括以矩阵模式布置的多个存储器单元MC。多个字线WL0至WLi-1和多个位线BL0至BLj-1和多个源极线SL0至SLj-1被布置在存储器单元阵列20a中。存储器单元阵列20a的一行被连接到字线WL1中的每一个字线,并且存储器单元阵列20a的一列被连接到每个由一个位线BL和一个源极线SL构成的对。
每一个存储器单元MC包括磁性隧道结(MTJ)元件30和选择晶体管31。选择晶体管31例如是N沟道MOSFET。
MTJ元件30的一端被连接到位线BL,并且另一端被连接到选择晶体管31的漏极(源极)。选择晶体管31的栅极被连接到字线WL,并且源极(漏极)被连接到源极线SL。
存储体BK的上述配置仅仅是示例,并且存储体BK可以具有任何其它配置。
[1-2-4]半导体存储器装置10和主机15之间的连接
将参考图4给出关于半导体存储器装置10与主机15如何彼此连接的描述。
如图4中所示,焊垫单元14包括D触发器14a、14c、14e、14g、14i和14k、接收电路14b、14d、14f和14j以及发送电路14h和14l。
如图4中所示,主机15包括D触发器15a、15c、15e、15g、15i和15k、发送电路15b、15d、15f和15j以及接收电路15h和15l。
在D触发器14a、14c、14e、14g、14i、14k、15a、15c、15e、15g、15i和15k不必彼此区分的情况下,它们将被简称为“D触发器”。在发送电路14h、14l、15b、15d、15f和15j不必彼此区分的情况下,它们将被简称为“发射器”。在接收电路14b、14d、14f、14j、15h和15l不必彼此区分的情况下,它们将被简称为“接收器”。
发送电路发送被提供到它们的输入端子的信号。接收电路接收被提供到它们的输入端子的信号。
每一个D触发器与时钟CLK的上升沿同步地保持提供给端子D的数据。更具体地,在时钟CLK上升沿,每一个D触发器从端子Q输出此时提供给端子D的数据。每一个D触发器重复输出相同的数据,直到下一次时钟CLK被输入。
如图4中所示,借助于D触发器14g和发送电路14h将检错信号DET提供给数据掩码信号线DM/ECC CR。主机15借助于接收电路15h和D触发器15g从数据掩码信号线DM/ECC CR接收检错信号DET。
该检错信号DET例如在读取数据时被输出。另一方面,数据掩码信号DM在写入数据时被输入。因此,检错信号DET和数据掩码信号DM不会彼此冲突。由于该原因,两种信号可以通过使用仅一个信号线而被发送和接收。
[1-3]读取操作
[1-3-1]根据本实施例的纠错单元的示例1
将参考图5描述ECC电路28的纠错单元。
本实施例的控制电路27以与预定列地址YX(X:整数)对应的数据Q0-Q3为单位执行纠错。数据Q0-Q3是读取操作时的预取单元。更具体地,控制电路27从存储器区域20中读取与列地址Y0相关的数据Q0-Q3和校验。基于与列地址Y0相关的数据Q0-Q3和校验,ECC电路28对与列地址Y0相关的数据Q0-Q3执行纠错。类似地,ECC电路28对与其它列地址YX相关的数据Q0-Q3执行纠错。
[1-3-2]根据本实施例的读取操作的示例1
将参考图6描述读取操作的示例。
首先将描述根据本实施例执行的读取操作的示例1的概要。根据本实施例,ECC电路28使用纠错单元的示例1来执行纠错。
ECC电路28对与列地址Y0相关的数据Q0-Q3执行纠错。如果与列地址Y0相关的数据Q0-Q3包含ECC电路28不能校正的错误,则检测电路28a通知主机15该结果。具体地,在时刻T0(当半导体存储器装置10向主机15提供与列地址Y0相关的数据Q0-Q3时),检测电路28a将从数据掩码信号线DM/ECC CR输出的检错信号DET设定为“H”电平。
另外,ECC电路28对与Y1相关的数据Q0-Q3执行纠错。如果与Y1相关的数据Q0-Q3不包含错误,或者如果ECC电路28成功地对数据Q0-Q3执行纠错,则检测电路28a通知主机15该结果。具体地,在时刻T1(当半导体存储器装置10向主机15提供与列地址Y1相关的数据Q0-Q3时),检测电路28a将从数据掩码信号线DM/ECC CR输出的检错信号DET设定为“L”电平。
数据和检错信号DET的输出时序可以由控制电路27控制。
[1-3-3]根据本实施例的纠错单元的示例2
将参考图7描述ECC电路28的纠错单元。
本实施例的控制电路27对被包括在预定数据QZ(Z:整数)中并与多个列地址对应的数据执行纠错。具体地,控制电路27从存储器区域20中读取被包括在数据Q0中并与列地址Y0-Y3对应的数据以及校验。ECC电路28基于读取数据(该读取数据被包括在数据Q0中并且与列地址Y0-Y3对应)和校验而对被包括在数据Q0中并且与列地址Y0-Y3对应的数据执行纠错。类似地,ECC电路28对被包括在数据Q0中并与其它列地址对应的数据执行纠错。ECC电路28同样地对数据Q1-Q3执行纠错。
[1-3-4]根据本实施例的读取操作的示例2
将描述根据本实施例执行的读取操作的示例2的概要。根据本实施例,ECC电路28使用纠错单元的示例2来执行纠错。
ECC电路28对数据Q0和与列地址Y0-Y3相关的数据执行纠错。如果数据Q0和与列地址Y0-Y3相关的数据不包含错误,或者如果ECC电路28成功地对数据Q0和与列地址Y0-Y3相关的数据执行纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta0(当半导体存储器装置10向主机15提供数据Q0和与列地址Y0-Y3相关的数据时),检测电路28a将从数据掩码信号线DM/ECC CR输出的检错信号DET设定为“L”电平。
ECC电路28对数据Q1和与列地址Y0-Y3相关的数据执行纠错。如果数据Q1和与列地址Y0-Y3相关的数据包含ECC电路28不能校正的错误,则检测电路28a通知主机15该结果。具体地,在时刻Ta1(当半导体存储器装置10向主机15提供数据Q1和与列地址Y0-Y3相关的数据时),检测电路28a将从数据掩码信号线DM/ECC CR输出的检错信号DET设定为“H”电平。
ECC电路28对数据Q2和与列地址Y0-Y3相关的数据执行纠错。如果数据Q2和与列地址Y0-Y3相关的数据不包含错误,或者如果ECC电路28成功地对数据Q2和与列地址Y0-Y3相关的数据执行了纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta2(当半导体存储器装置10向主机15提供数据Q2和与列地址Y0-Y3相关的数据时),检测电路28a将检错信号DET设定为“L”电平。
ECC电路28对数据Q3和与列地址Y0-Y3相关的数据执行纠错。如果数据Q3和与列地址Y0-Y3相关的数据不包含错误,或者如果ECC电路28成功地对数据Q3和与列地址Y0-Y3相关的数据执行了纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta3(当半导体存储器装置10向主机15提供数据Q3和与列地址Y0-Y3相关的数据时),检测电路28a将检错信号DET设定为“L”电平。
ECC电路28对数据Q0和与列地址Y4-Y7相关的数据执行纠错。如果数据Q0和与列地址Y4-Y7相关的数据不包含错误,或者如果ECC电路28成功地对数据Q0和与列地址Y4-Y7相关的数据执行了纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta4(当半导体存储器装置10向主机15提供数据Q0和与列地址Y4-Y7相关的数据时),检测电路28a将检错信号DET设定为“L”电平。
ECC电路28对数据Q1和与列地址Y4-Y7相关的数据执行纠错。如果数据Q1和与列地址Y4-Y7相关的数据不包含错误,或者如果ECC电路28成功地对数据Q1和与列地址Y4-Y7相关的数据执行了纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta5(当半导体存储器装置10向主机15提供数据Q1和与列地址Y4-Y7相关的数据时),检测电路28a将检错信号DET设定为“L”电平。
ECC电路28对数据Q2和与列地址Y4-Y7相关的数据执行纠错。如果数据Q2和与列地址Y4-Y7相关的数据包含ECC电路28不能校正的错误,则检测电路28a通知主机15该结果。具体地,在时刻Ta6(当半导体存储器装置10向主机15提供数据Q2和与列地址Y4-Y7相关的数据时),检测电路28a将检错信号DET设定为“H”电平。
ECC电路28对数据Q3和与列地址Y4-Y7相关的数据执行纠错。如果数据Q3和与列地址Y4-Y7相关的数据不包含错误,或者如果ECC电路28成功地对数据Q3和与列地址Y4-Y7相关的数据执行了纠错,则检测电路28a通知主机15该结果。具体地,在时刻Ta7(当半导体存储器装置10向主机15提供数据Q3和与列地址Y4-Y7相关的数据时),检测电路28a将检错信号DET设定为“L”电平。
如上所述,本实施例的半导体存储器装置控制用于每一个预取的检错信号DET。
[1-4]本实施例的优点
根据上述实施例,半导体存储器装置10在读取操作中检查是否存在ECC电路28不能校正的错误。如果检测到这种错误,则当发送不能被校正的数据时,半导体存储器装置10通过数据掩码信号线DM/ECC CR通知主机15发生错误。
近年来,正在开发用于提供最初为半导体存储器装置中的主机准备的ECC电路的技术。在ECC电路被安装在存储器芯片上的情况下,只要数据中的错误在ECC电路的纠错能力内,就可以输出精确的数据。然而,如果错误超出了ECC电路的纠错能力,则包含错误的读取数据或已经进行不正确校正的读取数据可以被输出并被提供给主机。
如果不存在由ECC电路获得的最终校正信息被提供给主机的说明,则主机不能确定从半导体存储器装置接收到的数据是否正确。
根据本实施例,当半导体存储器装置输出读取数据时,不可纠错的信息(即,“H(高)”电平的检错信号DET)连同读取数据一起提供给主机。由于该特征,主机可以确定从半导体存储器装置接收到的数据的有效性,并且因此不执行不正确的操作。
在上述实施例中,半导体存储器装置借助于数据掩码信号线向主机发送不可纠错的信息。这是因为在读取操作模式中数据掩码信号不被发送到半导体存储器装置10。由于该原因,不需要另外的信号线或引脚来向主机发送不可纠错的信息。结果,本实施例的半导体存储器装置可以向主机发送不可纠错的信息,而不需要增加电路面积。
[2]修改
当数据被输出到数据线时,仅需要从数据掩码信号线DM/ECC CR输出与该数据对应的检错信号DET,并且纠错单元不需要是上述单元。
结合上述实施例描述的存储体的结构仅仅是示例,并且可以做出各种修改。
应用于本实施例的半导体存储器装置的规格可以是JEDEC存储器规格,诸如LPDDR和DDR。此外,半导体存储器装置可以利用不基于特定规格的存储器。
结合上述实施例,半导体存储器装置被描述为利用磁阻效应元件的MRAM,但不限于此。半导体存储器装置可以是任何类型的半导体存储器装置,无论是易失性存储器还是非易失性存储器。另外,半导体存储器装置可以被实现为类型与MRAM类似的电阻变化存储器,例如电阻随机存取存储器(ReRAM)或相变随机存取存储器(PCRAM)。
尽管已经描述了某些实施例,但是这些实施例仅以示例的方式呈现,并不旨在限制本发明的范围。实际上,本文描述的新颖实施例可以以各种其它形式来实施。此外,在不脱离本发明的精神的情况下,可以对本文描述的实施例的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入该实施例的范围和精神内的这些形式或修改。