CN107402836B - 半导体存储装置及其存储器系统 - Google Patents

半导体存储装置及其存储器系统 Download PDF

Info

Publication number
CN107402836B
CN107402836B CN201710339908.9A CN201710339908A CN107402836B CN 107402836 B CN107402836 B CN 107402836B CN 201710339908 A CN201710339908 A CN 201710339908A CN 107402836 B CN107402836 B CN 107402836B
Authority
CN
China
Prior art keywords
error correction
correction code
address information
area
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710339908.9A
Other languages
English (en)
Other versions
CN107402836A (zh
Inventor
神永雄大
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN107402836A publication Critical patent/CN107402836A/zh
Application granted granted Critical
Publication of CN107402836B publication Critical patent/CN107402836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明提供一种半导体存储装置及其存储器系统。半导体存储装置包含存储阵列、错误纠正部件与设定部件。错误纠正部件将所生成的错误纠正码保存至保存区域。设定部件能够从外部设定所述保存区域。由此本发明提供一种具备与现有的系统之间实现兼容性的错误纠正功能的半导体存储装置及其存储器系统。

Description

半导体存储装置及其存储器系统
技术领域
本发明涉及一种半导体存储装置,尤其涉及一种具备芯片上(on chip)的错误检测/纠正功能的半导体存储装置及其存储器系统。
背景技术
在NAND型快闪存储器中,由于要反复进行数据的编程或擦除,因而会因穿隧绝缘膜的劣化而导致电荷保持特性发生恶化,或者因被穿隧绝缘膜捕获的电荷而产生阈值变动,从而在读出操作等时引起位错(bit error)。日本专利特开2010-152989号公报中,作为此种位错的对策,搭载了错误检测纠正电路(Error Checking Correction,ECC)。
伴随NAND快闪存储器的微细化,在读出过程等中产生的位错数存在增加的倾向。各厂商为了具备与以往产品的兼容性,而且为了更容易在系统中使用,开发出具备利用元件自身来执行错误检测纠正的功能的产品。其被称作芯片上ECC产品,并执行下述操作:在元件内部自动算出在ECC计算时使用的码(code)信息,并将其写入所确定的地址区域。
图1表示在芯片上搭载ECC功能的NAND型快闪存储器的区段M部分。在芯片上搭载ECC功能的快闪存储器中,能够通过命令或设定等来启用/禁用ECC。编程操作时,从外部输入/输出端子输入的数据被加载至页面缓冲器/读出电路10,加载的数据经由传输电路20而传输至ECC电路30。传输电路20包含能够进行双向数据传输的多个晶体管,各晶体管是根据共同连接于栅极的控制信号TG而受到驱动。ECC电路30进行下述操作:进行所传输的数据的ECC运算,生成用于错误检测/纠正的错误纠正码,并将错误纠正码重写至页面缓冲器/读出电路10的备用(spare)区域。接下来,将由页面缓冲器/读出电路10所保持的编程数据及错误纠正码编程至存储阵列)的选择页面。而且,在读出操作时,将从存储阵列的选择页面读出的数据保持于页面缓冲器/读出电路10,接下来,将所保持的数据经由传输电路20而传输至ECC电路30。ECC电路30基于错误纠正码来进行读出数据的错误检测、纠正,在检测到错误的情况下,将纠正的数据设定至页面缓冲器/读出电路10。并且,从外部输入/输出端子输出由页面缓冲器/读出电路10所保持的数据。
但是,以往的搭载有芯片上ECC功能的快闪存储器中,存在如下所述的问题。图2(A)是搭载有芯片上ECC功能的快闪存储器侧的备用区域的地址映射(address mapping)的例示,图2(B)是系统40侧的备用区域的地址映射的例示。如图2(A)所示,页面缓冲器/读出电路10例如包含2K字节(byte)(512B×4)的常规(regular)区域REG与64字节(16B×4)的备用区域SPA。此时,常规区域REG被分割为4个主要区段(sector)(M0、M1、M2、M3),向各区段中加载数据,以区段为单位来进行ECC处理。此时,将通过ECC运算而生成的错误纠正码保存至备用区域SPA中。备用区域SPA的16字节的区段S0保存区段M0的错误纠正码,区段S1保存区段M1的错误纠正码,区段S2保存区段M2的错误纠正码,区段S3保存区段M3的错误纠正码。随后,将由页面缓冲器10所保持的常规区域REG及备用区域SPA的数据编程至存储阵列的选择页面的常规区域REG及备用区域SPA。
另一方面,能够执行ECC功能的系统40如图2(B)所示,若为512字节的区段M区段与16字节的备用区域成对的结构,则至少系统40的备用区域的区段S0和区段S1的地址会与快闪存储器侧的常规区域REG的地址重复。因此,为了实现与执行芯片上ECC功能的快闪存储器的兼容性,必须在系统40侧变更固件(firmware),以使两者的备用区域的地址一致,因此,不能说搭载有芯片上ECC功能的快闪存储器与系统40之间具有完全的兼容性。
图3(A)~图3(D)是1个备用区域(16字节)的例示,图3(A)、图3(B)、图3(C)分别为规格不同的快闪存储器侧的备用区域,图3(D)为系统侧的备用区域。图3(A)的快闪存储器中,在起始的2字节内保存是否为坏块(bad block)的识别信息,在接下来的6字节内保存用户数据,在接下来的6字节内保存区段M0的错误纠正码,在最后的2字节内保存与区段S0的错误纠正码相关的错误纠正码(以下称作备用区域的错误纠正码)。图3(B)的快闪存储器中,在“8~F”这8字节内保存区段M0的错误纠正码与备用区域的错误纠正码。在图3(A)与图3(B)的情况下,在相同的字节位置保存错误纠正码,但保存备用区域的错误纠正码的位置未必一致。图3(C)的快闪存储器中,在“1~3”这3字节内保存区段M0的错误纠正码,在“4~7”这4字节内保存备用区域的错误纠正码。与此相对,在图3(D)的系统侧,在“2~9”这8字节内保存常规区域的主要区段错误纠正码及备用区域的错误纠正码,在“A~F”这6字节内保存用户能够自由利用的元数据(metadata)。这样,即使假设快闪存储器的备用区域与系统侧的备用区域的地址一致,但若在备用区域的不同位置保存错误纠正码,则两者并无完全的兼容性。
发明内容
本发明的目的在于解决所述的以往问题,提供一种具备与现有的系统之间实现兼容性的错误纠正功能的半导体存储装置及其存储器系统。
本发明的半导体存储装置包括:存储阵列;错误纠正部件,具备对存储于所述存储阵列中的数据或从所述存储阵列读出的数据的错误进行纠正的功能,且具备将用于错误纠正的所生成的错误纠正码保存于保存区域中的功能;以及设定部件,能够从外部设定所述保存区域。
优选形态中,所述设定部件从外部接受用于设定所述保存区域的地址信息,基于所述地址信息来设定所述保存区域。优选形态中,所述地址信息包含用于保存所述错误纠正码的起始地址与所述保存区域的大小。优选形态中,所述设定部件基于来自外部的命令来设定所述保存区域。优选形态中,所述设定部件在非易失性寄存器(例如,配置寄存器(configuration register,CF))中保持所述地址信息。优选形态中,半导体存储装置更包括:输出部件,将由所述设定部件所设定的信息输出至外部。优选形态中,所述输出部件在所述地址信息中所含的保存区域的大小比所述错误纠正码的大小要小时,输出警告信息。优选形态中,所述输出部件在所述地址信息中所含的起始地址的数量比能够连续编程的最大次数大时,输出警告信息。优选形态中,所述存储阵列包含常规区域与备用区域,所述备用区域包含所述保存区域。优选形态中,半导体存储装置更包括控制部件,基于来自外部的命令来存取所述非易失性寄存器,且基于来自外部的所述地址信息改变所述非易失性寄存器所保持的所述地址信息,其中所述控制部件在接通电源时读出所述非易失性寄存器所保持的所述地址信息且所述错误纠正部件基于所述非易失性寄存器所保持的所述地址信息将所述错误纠正码保存于所述保存区域中。优选形态中,半导体存储装置更包括易失性寄存器,所述控制部件将从所述非易失性寄存器读出的所述地址信息保持于所述易失性寄存器中,其中所述易失性寄存器的存取速率大于所述非易失性寄存器的存取速率,且所述错误纠正部件从所述易失性寄存器读出所述地址信息,以将所述错误纠正码保存于所述保存区域中。
本发明的系统包括所述结构的半导体存储装置、以及与所述半导体存储装置连接的外部控制器,所述外部控制器将用于设定所述保存区域的地址信息输出至所述半导体存储装置。优选形态中,外部控制器接受由所述设定部件所设定的信息,并基于所接受的所述信息来输出所述地址信息。
根据本发明,能够从外部对保存错误纠正码的保存区域进行设定,由此,能够变更半导体存储装置的保存区域,因此,无须变更现有系统的规格,便能够与半导体存储装置之间实现数据的兼容性。
附图说明
图1是以往的快闪存储器的芯片上ECC操作的示意图;
图2(A)、图2(B)是表示以往的快闪存储器的备用区域与主机装置(系统)侧的备用区域的地址映射不同的例子的图;
图3(A)~图3(D)是表示在以往的快闪存储器的备用区域与主机装置(系统)侧的备用区域中保存的信息的一例的图;
图4是表示本发明的实施例的存储器系统的一结构例的图;
图5是表示本发明的实施例的NAND型快闪存储器的整体的概略结构的图;
图6是对本发明的实施例的编程操作时的常规区域的ECC处理进行说明的图;
图7是对本发明的实施例的编程操作时的备用区域的ECC处理进行说明的图;
图8是说明对本发明的实施例的备用区域的错误纠正码的保存区域进行设定的操作的流程图;
图9(A)~图9(C)是对本实施例的错误纠正码的保存区域进行变更的例子;
图10(A)、图10(B)是对备用区域的位置不同时的错误纠正码的保存区域进行变更的具体例;
图11(A)~图11(D)是对本实施例的错误纠正码的保存区域进行变更的另一例;
图12是表示本发明的实施例的ECC操作的例子的流程图;
图13是对本发明的第2实施例的操作序列进行说明的图;
图14是对本发明的第3实施例的操作序列进行说明的图。
附图标记说明:
10、180:页面缓冲器/读出电路
20:传输电路
30、130:ECC电路
100:快闪存储器
110:存储阵列
120-0、120-1~120-7、120:输入/输出缓冲器
140:地址寄存器
150:配置寄存器
160:控制器
170:字线选择电路
190:列选择电路
192:内部电压产生电路
200:系统
210:外部控制器
300:常规区域
310:备用区域
311、312、313、314:区域
Ax:行地址信息
Ay:列地址信息
BLK(0)、BLK(1)、BLK(m-1):存储区块
M0~M3:常规区域的区段
REG:常规区域
P-0、P-1~P-7:外部输入/输出端子
SPA:备用区域
S0~S3:备用区域的区段
TG:控制信号
Vers:擦除电压
Vpass:通过电压
Vpgm:写入电压
Vread:读出通过电压
X0:起始地址
S100、S102、S104、S200、S210、S220、S230、S240、S300、S310、S400、S410、S420、S430:步骤
具体实施方式
接下来,参照附图来详细说明本发明的实施方式。此处,作为半导体存储装置的优选形态,例示为NAND型快闪存储器。
图4是表示本实施例的存储器系统的一例的图。存储器系统200包括外部控制器210以及连接于所述外部控制器210的快闪存储器100。外部控制器210并无特别限定,例如为计算机、数码相机、打印机、存储器控制器等电子装置或主机(host)装置。外部控制器210向快闪存储器100发送命令、数据、控制信号等,以控制快闪存储器100的操作(编程、读出、擦除、设定等)。
图5是表示快闪存储器100的结构的图。快闪存储器100可包括存储阵列110、输入/输出缓冲器120、ECC电路130、地址寄存器140、配置寄存器150、控制器160、字线选择电路170、页面缓冲器/读出电路180、列选择电路190以及内部电压产生电路192。存储阵列110包括呈矩阵状地排列的多个存储胞元。输入/输出缓冲器120连接于外部输入/输出端子,并保持输入/输出数据。ECC电路130对编程入存储阵列110的数据或从其中读出的数据进行错误检测/纠正。地址寄存器140接受来自输入/输出缓冲器120的地址数据。配置寄存器150存储地址信息,所述地址信息保存由ECC电路130所生成的错误纠正码。控制器160基于来自外部控制器210的命令数据或控制信号来控制各部。字线选择电路170从地址寄存器140接受行地址信息Ax,对行地址信息Ax进行解码,并基于解码结果来进行区块的选择或字线的选择等。页面缓冲器/读出电路180保持从由字线选择电路170所选择的页面读出的数据,或者保持欲对所选择的页面编程的数据。列选择电路190从地址寄存器140接受列地址信息Ay,对列地址信息Ay进行解码,并基于所述解码结果来进行页面缓冲器/读出电路180内的列的选择等。内部电压产生电路192生成数据的读出、编程及擦除等所需的各种电压(写入电压Vpgm、通过电压Vpass、读出通过电压Vread、擦除电压Vers等)。
存储阵列110具有沿列方向配置的m个存储区块(memory block)BLK(0)、BLK(1)、...、BLK(m-1)。在1个存储区块中,形成有多个NAND串(string),所述NAND串是将多个存储胞元串联连接而成。存储胞元例如具有金属氧化物半导体(Metal OxideSemiconductor,MOS)结构,所述MOS结构包括:作为N型扩散区域的源极/漏极,形成在P阱内;穿隧氧化膜,形成在源极/漏极间的沟道上;浮动栅极(电荷蓄积层),形成在穿隧氧化膜上;以及控制栅极,经由介电质膜而形成在浮动栅极上。NAND串既可形成为二维阵列状,也可形成为三维阵列状。而且,存储胞元既可为存储1个位(二值数据)的单层胞元(SingleLevel Cell,SLC)型,也可为存储多个位的多层胞元(Multi Level Cell,MLC)型。
表1是表示在快闪存储器的各操作时施加的偏电压的一例的表。在读出操作时,对位线施加某正电压,对所选择的字线施加某电压(例如0V),对非选择字线施加通过电压Vpass(例如4.5V),对选择栅极线SGD、SGS施加正电压(例如4.5V),使NAND串的位线侧选择晶体管、源极线侧选择晶体管导通,对共用源极线施加0V。在编程(写入)操作时,对所选择的字线施加高电压的编程电压Vpgm(15V~20V),对非选择的字线施加中间电位(例如10V),使位线侧选择晶体管导通,使源极线侧选择晶体管断开,并将与“0”或“1”的数据相应的电位供给至位线。在擦除操作时,对区块内的被选择的字线施加0V,对P阱施加高电压(例如21V),将浮动栅极的电荷抽出至基板,由此以区块为单位来擦除数据。
Figure BDA0001294955770000051
表1
ECC电路130能够通过命令或出货时的设定等来启用或禁用。在芯片上ECC功能被启用的情况下,在编程操作期间经由输入/输出缓冲器120而将欲编程的数据加载至页面缓冲器/读出电路180时,ECC电路130对从页面缓冲器/读出电路180传输的数据进行运算,并生成错误纠正码。ECC的运算例如是通过奇偶校验检查(parity check)、汉明码(hammingcode)或里德所罗门(Reed-Solomon)等公知方法来进行,将所输入的k位或k字节的数据转换为p=k+q。“q”是数据的错误检测纠正所需的错误纠正码或奇偶校验位(parity bit)。ECC电路130将所生成的错误纠正码保存至页面缓冲器/读出电路180的备用区域。这样,对页面缓冲器/读出电路180所设定的数据与错误纠正码被编程至存储阵列110的选择页面。
读出操作时,当将从存储阵列110的选择页面读出的数据保持于页面缓冲器/读出电路180时,ECC电路130基于从页面缓冲器/读出电路180传输的数据及错误纠正码来进行读出数据的错误检测,在检测到错误的情况下,将纠正的数据设定至页面缓冲器/读出电路180。并且,经由输入/输出缓冲器120将由页面缓冲器/读出电路180所保持的数据输出。
配置寄存器150保存用于对快闪存储器100的操作进行定义的各种信息,但本实施例的配置寄存器150是存储用于对保存备用区域的错误纠正码的保存区域进行设定的信息,即,用于保存由ECC电路130所生成的错误纠正码的地址信息。配置寄存器150包含可重写的非易失性存储器,外部控制器210例如输出特定的命令,由此来对配置寄存器150进行存取,从而能够变更配置寄存器150的设定内容。或者,不依赖于此种命令,外部控制器210在快闪存储器100处于特定的模式时(如测试模式),对配置寄存器150进行存取,从而能够变更配置寄存器150的设定。
在配置寄存器150中,保持如上所述用于对错误纠正码的保存区域进行规定的地址信息,但在默认设定中,如图2(A)所示,将常规区域的区段M3之后的所有备用区段S0~S3(16B×4)设定为所述错误纠正码的保存区域。图6表示此种地址信息为默认设定时的ECC处理的一例。
控制器160在经由输入/输出缓冲器120而收到编程命令时,开始用于编程的程序。当快闪存储器100具有×8的外部输入/输出端子P-0~P-7时,从外部输入/输出端子P-0~P-7经由各输入/输出缓冲器120-1~120-7而对页面缓冲器/读出电路180加载输入数据。在本例的情况下,页面缓冲器/读出电路180具有:常规区域300,被分割为M0~M3这4个区段;以及备用区域310,被分割为区段S0、区段S1、区段S2、区段S3这4个区段。常规区域300的1个区段包含512字节,备用区域310的1个区段包含16字节。
备用区域310的1个区段例如具有:区域311,存储对包含不良存储胞元的坏块进行识别的信息;区域312,存储用户数据;区域313,存储与常规区域300的1个区段相关的错误纠正码;以及区域314,存储备用区域310进行ECC运算时的错误纠正码。备用0的区域313存储区段M0的错误纠正码,备用1的区域313存储区段M1的错误纠正码,备用2存储区段M2的错误纠正码,备用3存储区段M3的错误纠正码。
对于常规区域300的1个区段,分配有输入/输出缓冲器120-0~120-7,即,对于1个外部输入/输出端子,分配有512位(512位×8=1区段)。列选择电路190对在编程操作时收到的列地址信息Ay进行解码,并基于所述解码结果来选择加载来自外部输入/输出端子P-0~P-7的输入数据的区段。图6表示利用外部输入/输出端子P-0~P-7将所收到的输入数据加载至区段M0的例子。
而且,本实施例的ECC电路130包含用于写入错误纠正码的写入电路。优选的是,ECC电路130能够进行ECC运算,直至与常规区域300的1个区段相等的字节数的数据为止。若常规区域300的1个区段为512字节,则ECC电路对512字节的数据进行ECC运算,例如生成对1位的错误进行纠正的错误纠正码。此时,所有4区段中,最大能够纠正4位的错误。
ECC电路130将所生成的错误纠正码写入至备用区域310的对应区域313。在图6所示的例子中,输入数据Di被加载至区段M0,因此错误纠正码被写入至区段S0的区域313。
图7例示保存于备用区域310中的数据的ECC处理。当对常规区域300的各区段结束ECC处理时,接下来,对备用区域310的各区段进行ECC处理。进行备用区域310的1个区段内所含的哪个数据的ECC处理为任意,但在本例中,是对区域312、313的数据进行ECC处理。因此,区段S0的区域312、313的数据被传输至ECC电路130,通过ECC处理所生成的错误纠正码被写入至区段S0的区域314。对于其他的区段S1至区段S3也进行同样的处理。当ECC处理结束时,开始存储阵列110的选择页面的编程。
接下来,对由配置寄存器150所保持的地址信息的变更进行详细说明。图8是对用于变更或设定地址信息的操作进行说明的流程图。首先,外部控制器210对快闪存储器100输出用于对配置寄存器150的设定进行变更的特定命令,所述特定命令被快闪存储器100接受(S100)。控制器160响应所收到的特定命令,来开始用于对配置寄存器150的设定进行变更的程序。
外部控制器210对快闪存储器100输出用于对错误纠正码的保存区域进行规定的地址信息,所述地址信息被输入至快闪存储器100(S102)。控制器160依照所输入的地址信息来变更配置寄存器150的设定内容(S104)。
此处,从外部控制器210发出的地址信息优选包含保存错误纠正码的起始地址及大小(字节数)。假设设定图6所示的常规区域300与备用区域310的情况下,地址信息包含用于保存区段S0、区段S1、区段S2及区段S3各自的错误纠正码的起始地址及大小。若为区段S0,则为区域313的起始地址及从其算起的大小。
接下来,对错误纠正码的保存区域的具体变更例进行说明。图9(A)是快闪存储器侧的默认时的备用区域的结构,图9(B)是系统侧的备用区域的结构,图9(C)是根据本实施例来对图9(A)的备用区域的错误纠正码的保存区域进行变更时的例子。图9(A)中,错误纠正码的保存区域是由起始地址从“8”开始的8字节所规定的区域,图9(B)的系统侧的错误纠正码的保存区域是由起始地址从“2”开始的8字节所规定的区域。系统侧的“A~F”这6字节的元(Meta)区域是用户保存数据的区域,为了与系统之间具备兼容性,必须对与元区域重复的快闪存储器侧的“A~F”的错误纠正码的保存区域进行变更。因此,本实施例中,如图9(C)所示,为了变更快闪存储器侧的错误纠正码的保存区域,外部控制器210将包含起始地址“2”、大小=8字节的地址信息输出至快闪存储器100,控制器160依照所输入的地址信息来变更配置寄存器150的设定内容。
图9(A)~图9(C)的例子是快闪存储器侧与系统侧的备用区域的位置一致的情况,但如图2(A)、图2(B)所示,在备用区域的位置不同的情况也同样,可将包含起始地址与大小的地址信息设定至配置寄存器150,并变更错误纠正码的保存区域。常规区域的区段M0~M3的合计为2048字节,备用区域的区段S0~S3的合计为64字节,两者的合计为2112字节,其中,设定有用于保存错误纠正码的起始地址与大小。即,如图10(A)所示,用于保存区段M0的错误纠正码的起始地址X0为514(512B+2B),大小为8字节。以后,根据图9(C)的结构,空闲空间(free space)为6字节,下个区段M1为512字节,紧跟其后的坏块为2字节,下个备用区域的区段S1的起始地址X1为1042(=512+16+512+2),下个区段S2的起始地址X2为1570,最后的区段S3的起始地址为2098。而且,它们的大小全部为8字节。而且,假设若变更为图2(A)所示的备用区域SPA,则备用区域的区段S0的起始地址为2050,区段S1的起始地址为2066,区段S2的起始地址为2082,区段S3的起始地址为2098。它们的大小全部为8字节。而且,图10(B)表示具有将图10(A)所示的常规区域的区段与备用区域的区段的顺序反转的地址映射的例子。备用区域的区段S0保存常规区域的区段M0的错误纠正码,同样,备用区域的区段S1、S2、S3分别保存常规区域的区段M1、M2、M3的错误纠正码。图10(B)时,通过与所述同样的方法,也能够对包含备用区域的各区段S0、S1、S2、S3的起始地址及其大小的地址信息进行变更。
图11(A)~图11(D)表示本实施例的其他错误纠正码的保存区域的变更例。图11(A)是芯片上ECC模式禁用时的快闪存储器侧的页面缓冲器的例子,页面缓冲器具有分割为区段M0~区段M3的2048字节的常规区域300;及128字节的备用区域310。图11(B)为系统侧的页面缓冲器的结构,在128字节的备用区域中,设定有错误纠正码的保存区域(ECC)以及用户所使用的元区域。图11(C)是图11(A)的快闪存储器的ECC被启用时的页面缓冲器的结构,此时,128字节的备用区域被设定为64字节的备用区域与64字节的隐藏区域(用户无法看到的区域)。此种例子中,64字节的隐藏区域与系统侧的元区域重复,系统间的数据的兼容性受损。因此,适用了本实施例的快闪存储器如图11(D)所示,能够在128字节的备用区域310中,以与系统侧的错误纠正码的保存区域一致的方式来变更错误纠正码的保存区域。其结果,能够直接利用系统侧的元区域。
接下来,参照图12的流程来说明本实施例的ECC操作。当图4所示的系统200启动,对快闪存储器100接通电源时(S200),控制器160开始用于上电(power up)程序的编程或状态机(state machine)。控制器160作为其一环,对配置寄存器150进行存取,从其中读出地址信息,并将地址信息保持于例如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等能够高速读出的易失性寄存器(S210)。
随后,在编程操作时等,当进行ECC操作时(S220),ECC电路130从易失性寄存器读出地址信息(S230),并将所生成的错误纠正码保存至由所述地址信息所规定的备用区域或保存区域内(S240)。而且,当对从存储阵列读出的数据进行ECC时,从备用区域或保存区域读出错误纠正码,进行与读出数据相关的错误的检测/纠正。
如此,根据本实施例,在具备芯片上ECC功能的快闪存储器中,能够从外部对保存由ECC电路所生成的错误纠正码的保存区域进行变更,因此无须变更系统侧的地址映射或固件,而能够实现与存储器系统的兼容性。
接下来,对本发明的第2实施例进行说明。所述实施例中,表示了从外部控制器210向快闪存储器100输出地址信息,对配置寄存器150的设定内容进行变更的例子,但此时理想的是,用户预先知晓与快闪存储器的ECC相关的规格(例如所生成的错误纠正码的字节数)。第2实施例中,外部控制器210具备下述功能:从快闪存储器100读出与由配置寄存器所保持的错误纠正码的保存区域相关的信息。
图13是表示第2实施例的操作的序列的一例。首先,外部控制器210对快闪存储器100输出用于读出配置寄存器150的内容的命令。控制器160根据所述特定的命令,读出由配置寄存器150所保持的地址信息(S300),并将读出的地址信息输出至外部控制器210。外部控制器210基于所接收的地址信息,输出快闪存储器100的ECC的规格。由此,用户能够对由快闪存储器100的ECC电路130所生成的错误纠正码的大小进行确认。随后,如第1实施例中所说明般,在对配置寄存器150的地址信息进行变更的情况下,将包含不小于所生成的错误纠正码的大小的地址信息发送至快闪存储器100。
接下来,对本发明的第3实施例进行说明。第3实施例中,快闪存储器100的控制器160在从外部控制器210发送的地址信息比由ECC电路130所生成的错误纠正码的大小小的情况下,对外部控制器210发出警告。图14是表示第3实施例的操作的程序的一例。如所述图14所示,当从外部控制器210对快闪存储器100发送用于对错误纠正码的保存区域进行变更的地址信息时,控制器160对所发送的地址信息中所含的大小Sa与由ECC电路130所生成的错误纠正码的大小Sb进行比较(S410),若所变更的大小Sa为所生成的错误纠正码的大小Sb以上,则控制器160对配置寄存器150的地址信息进行变更(S420)。在所变更的大小Sa比所生成的错误纠正码的大小Sb更小的情况下,控制器160对外部控制器210发送警告或者发送所生成的错误纠正码的大小Sb的信息,外部控制器210通过输出警告等而将所述意旨告知给用户(S430)。
而且,在快闪存储器具备局部页面编程功能,即,将比1页面大小(2K字节)小的大小的数据多次编程至同一字线的功能的情况下,为了防止将高编程电压反复施加至同一字线的不良影响,而规定有所允许的编程的最大次数Nop。作为第3实施例的变形例,控制器160对来自外部控制器210的地址信息中所含的起始地址的数量与最大次数Nop进行比较,在大于最大次数Nop的情况下,也可对外部控制器210发出警告。
所述实施例中,表示了将对错误纠正码的保存区域进行规定的地址信息设定至配置寄存器的例子,但这只是一例,也可为其他非易失性的存储区域。此种存储区域也可为从由用户所利用的或参照的存储阵列的区域隐藏的区域。而且,对错误纠正码的保存区域进行规定的地址信息既可为表示物理地址空间的地址,也可为表示逻辑地址空间的地址。进而,非易失性的存储区域例如也可包含或非(NOR)型或NAND型的存储器件、电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、磁性随机存取存储器(Magnetic Random Access Memory,MRAM)、可变电阻式随机存取存储器(Resistive Random Access Memory,ReRAM)等存储器件等。
进而,所述实施例中,例示了快闪存储器,但本发明也能够适用于搭载有芯片上ECC功能的其他半导体存储装置、或者具备存储器功能的半导体存储装置(例如嵌入有快闪存储器的半导体存储装置)。
对本发明的优选实施方式进行了详述,但本发明并不限定于特定的实施方式,在权利要求书所记载的发明的主旨的范围内可进行各种变形、变更。

Claims (10)

1.一种半导体存储装置,其特征在于,包括:
存储阵列;
页面缓冲器/读出电路,耦接至所述存储阵列;
非易失性寄存器;
控制器,被配置为从所述半导体存储装置的外部接收用于指出外部错误纠正码保存区域在系统侧的位置的错误纠正码地址信息,在所述非易失性寄存器中存储所述错误纠正码地址信息,在接通电源时从所述非易失性寄存器读取所述错误纠正码地址信息,并根据从所述非易失性寄存器读出的所述错误纠正码地址信息来决定位于所述页面缓冲器/读出电路的错误纠正码保存区域,以使通过所述控制器所决定的所述错误纠正码保存区域在所述页面缓冲器/读出电路的位置与所述外部错误纠正码保存区域在所述系统侧的位置一致;以及
错误纠正部件,被配置为产生错误纠正码以对存储于所述存储阵列中的数据或从所述存储阵列读出的数据的错误进行纠正,且将所述错误纠正码保存于由所述控制器根据所述错误纠正码地址信息所决定的所述页面缓冲器/读出电路中的所述错误纠正码保存区域中。
2.根据权利要求1所述的半导体存储装置,其特征在于,
所述错误纠正码地址信息包含起始地址与所述外部错误纠正码保存区域在所述系统侧的大小。
3.根据权利要求2所述的半导体存储装置,其特征在于,
在所述控制器从所述外部接收所述错误纠正码地址信息之前,所述非易失性寄存器存储默认地址信息,所述默认地址信息用于决定具有默认错误纠正码保存区域的备用区,并且所述控制器还被配置为在从所述外部接收所述错误纠正码地址信息之后,将存储在所述非易失性寄存器中的所述默认地址信息替换为所述错误纠正码地址信息,从而使所述页面缓冲器/读出电路的结构被更改为使所述错误纠正码保存区域在所述页面缓冲器/读出电路的位置与所述外部错误纠正码保存区域在所述系统侧的位置一致。
4.根据权利要求3所述的半导体存储装置,其特征在于,
所述半导体存储装置还包括:输出部件,将存储在所述非易失性寄存器中且由所述控制器所读出的所述默认地址信息输出至所述外部。
5.根据权利要求4所述的半导体存储装置,其特征在于,
当所述外部错误纠正码保存区域在所述系统侧的大小比由所述错误纠正部件所产生的所述错误纠正码的大小要小时,所述输出部件输出警告信息至所述外部。
6.根据权利要求4所述的半导体存储装置,其特征在于,
当所述错误纠正码地址信息中所含的所述起始地址的数量比能够连续编程的最大次数大时,所述输出部件输出警告信息至所述外部。
7.根据权利要求1所述的半导体存储装置,其特征在于,
所述错误纠正码地址信息包括多个起始地址和用于自所述多个起始地址中的每一个来存储所述错误纠正码的大小,以用于识别在所述系统侧上的多个所述外部错误纠正码保存区域的多个分离的位置;以及
所述控制器用于根据从所述非易失性寄存器读取的所述错误纠正码地址信息,决定所述页面缓冲器/读出电路中的多个所述错误纠正码保存区域,以使多个所述错误纠正码保存区域在所述页面缓冲器/读出电路中的位置与所述系统侧上的多个所述外部错误纠正码保存区域的所述多个分割位置一致。
8.根据权利要求4所述的半导体存储装置,其特征在于,还包括易失性寄存器,所述控制器将从所述非易失性寄存器读出的所述错误纠正码地址信息存储于所述易失性寄存器中,其中所述易失性寄存器的存取速率大于所述非易失性寄存器的存取速率,且所述错误纠正部件从所述易失性寄存器读出所述错误纠正码地址信息,以将所述错误纠正码保存于所述页面缓冲器/读出电路中的所述错误纠正码保存区域中,其中当芯片上ECC模式被启用后,在所述页面缓冲器/读出电路中的所述错误纠正码保存区域是位于所述页面缓冲器/读出电路的所述备用区中,且所述备用区是在所述芯片上ECC模式被禁用时根据所述默认地址信息来决定。
9.一种存储器系统,其特征在于,包括:
根据权利要求1至8中任一项所述的半导体存储装置;以及
外部控制器,与所述半导体存储装置连接,
所述外部控制器将用于指出所述外部错误纠正码保存区域在所述系统侧的位置的所述错误纠正码地址信息输出至所述半导体存储装置。
10.根据权利要求9所述的存储器系统,其特征在于,
所述外部控制器从所述控制器接受用于指出由所述错误纠正部件所产生的所述错误纠正码的大小的信息,并基于所接受的所述信息来输出所述错误纠正码地址信息。
CN201710339908.9A 2016-05-16 2017-05-15 半导体存储装置及其存储器系统 Active CN107402836B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016097870A JP6258399B2 (ja) 2016-05-16 2016-05-16 半導体装置
JP2016-097870 2016-05-16

Publications (2)

Publication Number Publication Date
CN107402836A CN107402836A (zh) 2017-11-28
CN107402836B true CN107402836B (zh) 2020-12-22

Family

ID=60297542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710339908.9A Active CN107402836B (zh) 2016-05-16 2017-05-15 半导体存储装置及其存储器系统

Country Status (5)

Country Link
US (1) US10496474B2 (zh)
JP (1) JP6258399B2 (zh)
KR (1) KR101950758B1 (zh)
CN (1) CN107402836B (zh)
TW (1) TWI637395B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI659308B (zh) * 2017-12-08 2019-05-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
CN111026675B (zh) * 2019-12-06 2022-02-15 华中科技大学 一种高效的闪存数据刷新方法及基于闪存的固态硬盘
CN113495674B (zh) 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
EP3964941B1 (en) 2020-04-01 2024-02-28 Changxin Memory Technologies, Inc. Read-write method and memory device
EP3964940A4 (en) 2020-04-01 2022-08-17 Changxin Memory Technologies, Inc. READ/WRITE METHOD AND STORAGE DEVICE
CN113495671B (zh) 2020-04-01 2023-10-17 长鑫存储技术有限公司 读写方法及存储器装置
EP3936996A4 (en) 2020-04-01 2022-07-06 Changxin Memory Technologies, Inc. READ-WRITE METHOD AND STORAGE DEVICE
EP3985494B1 (en) 2020-04-01 2024-01-17 Changxin Memory Technologies, Inc. Read-write method and memory device
CN113495675B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
CN113495672B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
JP2022137391A (ja) 2021-03-09 2022-09-22 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および誤り検出訂正方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135935B2 (en) * 2007-03-20 2012-03-13 Advanced Micro Devices, Inc. ECC implementation in non-ECC components
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
CN104916332A (zh) * 2014-03-14 2015-09-16 华邦电子股份有限公司 半导体存储装置及nand型快闪存储器的程序化方法
CN104951405A (zh) * 2014-03-28 2015-09-30 三星电子株式会社 存储系统以及对存储系统执行和验证写保护的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
KR101403429B1 (ko) * 2007-10-09 2014-06-03 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
JP2010152989A (ja) 2008-12-25 2010-07-08 Toshiba Corp 不揮発性半導体記憶装置
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US8560922B2 (en) * 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US8902653B2 (en) * 2011-08-12 2014-12-02 Micron Technology, Inc. Memory devices and configuration methods for a memory device
US8719646B2 (en) * 2012-04-30 2014-05-06 Freescale Semiconductor, Inc. Non-volatile memory (NVM) reset sequence with built-in read check
US9122626B2 (en) * 2013-05-13 2015-09-01 Seagate Technology Llc Linearly related threshold voltage offsets
US9201728B2 (en) * 2013-09-12 2015-12-01 Seagate Technology Llc Memory device with variable code rate
US9984007B2 (en) * 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135935B2 (en) * 2007-03-20 2012-03-13 Advanced Micro Devices, Inc. ECC implementation in non-ECC components
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
CN104916332A (zh) * 2014-03-14 2015-09-16 华邦电子股份有限公司 半导体存储装置及nand型快闪存储器的程序化方法
CN104951405A (zh) * 2014-03-28 2015-09-30 三星电子株式会社 存储系统以及对存储系统执行和验证写保护的方法

Also Published As

Publication number Publication date
KR101950758B1 (ko) 2019-02-21
KR20170129060A (ko) 2017-11-24
US10496474B2 (en) 2019-12-03
TW201742080A (zh) 2017-12-01
US20170329670A1 (en) 2017-11-16
JP6258399B2 (ja) 2018-01-10
CN107402836A (zh) 2017-11-28
TWI637395B (zh) 2018-10-01
JP2017208149A (ja) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107402836B (zh) 半导体存储装置及其存储器系统
US10453524B2 (en) NAND flash memory device performing continuous reading operation using NOR compatible command, address and control scheme
CN107068190B (zh) 修正编程电压的存储器设备编程方法
US9230669B2 (en) Memory system and method of operation thereof
CN107403636B (zh) 读取非易失性存储设备的方法
US10957415B2 (en) NAND flash memory and reading method thereof
US9520184B2 (en) Method for writing in-system programming code into flash memory for better noise margin
US20100241929A1 (en) Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same
CN111258793A (zh) 存储器控制器及其操作方法
CN109754840B (zh) 半导体存储器装置及其操作方法
US9036418B2 (en) Read voltage generation circuit, memory and memory system including the same
US20240311294A1 (en) Memory system and non-volatile memory
CN112052116A (zh) 存储器系统、存储器控制器和元信息存储装置
CN113703662B (zh) 存储器系统、存储器控制器及其操作方法
US11182108B2 (en) Memory system, memory controller, and operation method
US11237767B2 (en) Memory system, memory controller and method for operating memory controller
CN112037837B (zh) 存储器系统、存储器控制器和存储器设备
CN115565585A (zh) 储存装置、存储器装置及操作存储器装置的方法
US20240036730A1 (en) Memory controller, memory system including the memory controller, and method of operating the same
US20230376211A1 (en) Controller for controlling one-time programmable memory, system, and operation method thereof
KR102524724B1 (ko) 반도체 기억 장치 및 ecc 관련 정보의 독출 방법
US20240274201A1 (en) Storage device for determining memory cell type after data input during program operation and operating method thereof
CN115346584A (zh) Nand闪存、写入和读取方法及电子装置
CN115810385A (zh) 存储器设备和操作存储器设备的方法
CN114968078A (zh) 存储器装置及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant