CN102436406A - 半导体装置及其数据存取方法 - Google Patents
半导体装置及其数据存取方法 Download PDFInfo
- Publication number
- CN102436406A CN102436406A CN2011102545339A CN201110254533A CN102436406A CN 102436406 A CN102436406 A CN 102436406A CN 2011102545339 A CN2011102545339 A CN 2011102545339A CN 201110254533 A CN201110254533 A CN 201110254533A CN 102436406 A CN102436406 A CN 102436406A
- Authority
- CN
- China
- Prior art keywords
- data
- error correcting
- correcting system
- semiconductor device
- nand
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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 codes or arrangements adapted for a specific type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明提供半导体装置及其数据存取方法。根据一实施方式,一种半导体装置包括:NAND型闪存、纠错部以及表。NAND型闪存作为主存储器而起作用,能够保存数据。纠错部对与所述数据有关的错误进行检测、纠正。表按每一所述数据,具有与所使用的纠错方式有关的信息。纠错部根据所述表内的所述信息,对每一所述数据选择所应用的纠错方式。
Description
相关申请的交叉引用
本申请基于2010年9月15日提交的日本专利申请2010-207176并要求其优先权,该日本专利申请的全部内容通过引用的方式结合在此。
技术领域
本发明涉及半导体装置及其数据存取方法。
背景技术
以往,作为存储设备,NAND型闪存广泛使用。另外,在NAND型闪存中,ECC功能也广泛使用。然而,如果是以往的ECC功能,则有时功耗变得较大。
发明内容
本发明的实施方式提供能够降低功耗的半导体装置及其数据存取方法。
总体地,根据一实施方式,一种半导体装置包括:NAND型闪存、纠错部以及表。NAND型闪存作为主存储器而起作用,能够保存数据。纠错部对与所述数据有关的错误进行检测、纠正。表按每一所述数据,具有与所使用的纠错方式有关的信息。纠错部根据所述表内的所述信息,对每一所述数据选择所应用的纠错方式。
根据本发明的实施方式,能够提供能够降低功耗的半导体装置及其数据存取方法。
附图说明
图1是根据第1实施方式的半导体装置的框图。
图2是根据第1实施方式的NAND控制器的框图。
图3是根据第1实施方式的表象表的示意图。
图4是根据第1实施方式的数据的写入方法的流程图。
图5是根据第1实施方式的地址变换表的示意图。
图6是根据第1实施方式的ECC部的框图。
图7是以及图8是根据第1实施方式的页数据的示意图。
图9以及图10分别是根据第1实施方式的数据的读取方法以及写入方法的流程图。
图11是根据第2实施方式的ECC部的框图。
图12是根据第2实施方式的页数据的示意图。
图13以及图14分别是根据第2实施方式的数据的读取方法以及写入方法的流程图。
图15是根据第3实施方式的ECC部的框图。
图16是根据第3实施方式的半导体装置的框图。
图17是根据第4实施方式的NAND型闪存的框图。
图18是根据第4实施方式的地址变换表的示意图。
图19以及图20分别是根据第4实施方式的数据复制方法的流程图以及概念图。
图21是根据第4实施方式的变形例的数据复制方法的概念图。
图22是根据第5实施方式的记录装置的框图。
图23是根据第5实施方式的驱动控制电路的框图。
图24是根据第5实施方式的个人计算机的立体外观图。
具体实施方式
[第1实施方式]
下面对于根据第1实施方式的半导体装置进行说明。
1.关于半导体装置的结构
首先,使用图1对根据本实施方式的半导体装置的结构进行说明。图1是根据本实施方式的半导体装置的框图。
根据本实施方式的半导体装置,是具备处理器、作为主存储器而使用的NAND型闪存和管理对该NAND型闪存的存取的存储器管理装置的信息处理***。
如图1所示,半导体装置1大体具备信息处理装置10以及存储装置20,两者通过例如总线等连接为能够互相通信。信息处理装置10以及存储装置20既可以共同形成于同一半导体基板上,也可以形成为分立的芯片。另外,存储装置20具备多个半导体存储器,在本实施方式中包含易失性半导体存储器21以及非易失性半导体存储器22。
1.1关于信息处理装置10的结构
首先,对于信息处理装置10的结构进行说明。如图1所示,信息处理装置10具备多个处理器11、二级高速缓冲存储器12、总线13以及存储器管理装置14,且通过例如SoC(system on chip,片上***)形成。
各处理器11具备一级高速缓冲存储器16以及MMU(memorymanagement unit,存储器管理单元)15。作为处理器11,使用例如CPU(Central Processing Unit,中央处理单元),但也可以使用MPU(MicroProcessor Unit,微处理器单元)、GPU(Graphic Processor Unit,图形处理器单元)等其他的处理单元。另外在图1中,处理器11的数量为4个,但只要是1个以上即可。另外处理器11共享二级高速缓冲存储器12,经由总线13与存储器管理装置14电连接。并且,经由存储器管理装置14对存储装置20进行存取。进而处理器11从存储装置20读取OS并执行之,进而从存储装置20等读取应用,在OS上执行之。
存储器管理装置14与存储装置20内的易失性半导体存储器21以及非易失性半导体存储器22电连接。并且,存储器管理装置14根据处理器11的请求对存储装置20进行存取,从存储装置20读取数据,另外向存储装置20写入数据。另外存储器管理装置14能够与处理器11不同步工作,在处理器11的处理执行中,能够对非易失性半导体存储器执行损耗平均(wear leveling)、无用单元收集(garbage collection)以及压缩(compaction)等处理。
1.2关于存储装置20的结构
接下来,继续参照图1,对于存储装置20的结构进行说明。如前所述,存储装置20具备易失性半导体存储器21以及多个非易失性半导体存储器22。
这些易失性半导体存储器21以及非易失性半导体存储器22作为处理器11的主存储器而使用。在本实施方式中,对非易失性半导体存储器22确保充分的存储器量,非易失性半导体存储器22的存储器容量比易失性半导体存储器21大。并且在易失性半导体存储器21中,从非易失性半导体存储器22高速缓存例如最近存取的数据、使用频率高的数据等存取的可能性高的数据。在处理器11对易失性半导体存储器21进行存取时,当在易失性半导体存储器21中不存在存取对象数据的情况下,从非易失性半导体存储器22向易失性半导体存储器21传送必要的数据。这样,通过将易失性半导体存储器21与非易失性半导体存储器22组合使用,比易失性半导体存储器21的存储器容量大的存储器空间能够作为主存储器而使用。
在本实施方式中,易失性半导体存储器21为例如DRAM(DynamicRandom Access Memory,动态随机存储器)。然而作为易失性半导体存储器21,也可以代替DRAM,而使用FPM-DRAM(Fast Page ModeDRAM,快页模式DRAM)、EDO-DRAM(Extended Data Out DRAM,扩充的数据输出DRAM)或者SDRAM(Synchronous DRAM,同步DRAM)等那样的在计算机中作为主存储器而使用的存储器。另外,只要能够进行DRAM程度的高速随机存取、能够存取的上限次数没有实质的限制,也可以代替易失性半导体存储器21,而使用MRAM(Magnetoresistive Random Access Memory,磁致电阻的随机存储器)、FeRAM(Ferroelectric Random Access Memory,铁电随机存储器)等非易失性随机存储器。而且易失性半导体存储器21容量比非易失性半导体存储器22小(例如128M字节~4G字节等)但能够高速存取。
另外在本实施方式中,非易失性半导体存储器22为例如NAND型闪存。因此在以下的说明中,有时将非易失性半导体存储器22称为NAND型闪存22。然而,非易失性半导体存储器22也可以是例如NOR型闪存等其他的非易失性半导体存储器。非易失性半导体存储器22与易失性半导体存储器21相比容量大(例如32G字节~512G字节等)但存取时间长。
在如本实施方式那样非易失性半导体存储器22为NAND型闪存的情况下,写入与读取以页为单位执行。擦除以包含多个页的块为单位进行。
1.3关于存储器管理装置14的结构
接下来,对于上述存储器管理装置14的结构,特别着眼于用于管理NAND型闪存22的结构,使用图2进行说明。图2是存储器管理装置14的框图。
1.3.1关于存储器管理装置14的整体结构
如图2所示,存储器管理装置14具备NAND处理部30、存储部31以及NAND控制器33。
存储部31可以是DRAM等易失性半导体存储器和/或NOR型闪存等非易失性半导体存储器等。并且,存储部31保存表象表35以及地址变换表36。表象表35,对每一数据保存以各种基准为基础对该数据附加特征的信息(将其称为表象(coloring)信息)。另外,地址变换表36保存从处理器11对存储器管理装置14的存取所使用的地址(以下将其称为CPU物理地址)与在NAND型闪存22内与CPU物理地址相对应的区域的地址(以下将其称为NAND物理地址)的关系。表象表35以及地址变换表36内的信息既可以从通过处理器11执行的OS和/或应用提供,也可以从NAND处理部30提供。另外,对于表象表35以及地址变换表36,后面详细进行说明。
NAND处理部30接受从处理器11的对NAND型闪存22的存取(数据的写入/读取/擦除)。而且,对NAND控制器33进行命令,使其执行与存取相应的处理。此时,NAND处理部30参照地址变换表36,将从处理器11接收的CPU物理地址变换成NAND物理地址,将其向NAND控制器33供给。另外,NAND处理部30根据来自处理器11的命令,以及/或者从处理器11独立地,判断NAND型闪存22中的损耗平均、无用单元收集以及压缩的必要性,如果必要则对NAND控制器33进行命令,使其执行之。另外,根据该结果,更新表象表35和/或地址变换表36。NAND处理部30既可以通过用于执行上述处理的软件实现,也可以通过硬件实现。在通过软件实现的情况下,该软件也可以保存于NAND型闪存22内。而且,也可以在例如电源接通时等,从NAND型闪存22将该软件读取到NAND处理部30而执行。
NAND控制器33响应NAND处理部30的命令,管理对NAND型闪存22的存取。即NAND控制器33具备命令/地址发布部37以及ECC(errorchecking and correcting,错误检测及纠正)部38。
命令/地址发布部37根据来自NAND处理部30的命令,发布数据的写入/读取/擦除命令,将其与NAND物理地址一起向NAND型闪存22输出。这些命令以及地址被提供给管理NAND型闪存22整体的工作的序列发生器。并且,序列发生器通过接收该命令而起动,开始与命令相应的处理。
ECC部38对从NAND型闪存22读取的数据以及应该写入NAND型闪存22的数据进行纠错处理(有时称为ECC处理)。即ECC部38在数据的读取时,根据从NAND型闪存22读取的数据内的奇偶校验位生成出错位组,由此进行检错。并且,在发现了错误时,纠正之。然后,将纠正后的数据向例如易失性半导体存储器21和/或处理器11供给。另一方面,在数据的写入时,从例如处理器11和/或易失性半导体存储器21接收数据。然后,对接收的数据生成奇偶校验位,对接收的数据附加奇偶校验位,并将其作为写入数据向NAND型闪存22的页高缓冲器传送。
另外,根据本实施方式的ECC部38,能够通过多种方式进行纠错。对各数据应用哪种方式的纠错至少由OS、应用掌握,另外该信息被保存于表象表35以及/或者地址变换表36。因此,NAND处理部30在接收到数据的写入以及读取存取时,参照表象表35以及/或者地址变换表36,选择应该应用的纠错方式,将其向ECC部38通知。
1.3.2关于表象表35
接下来,对上述表象表35的详情进行说明。在本实施方式中,对每一数据附加表象信息。附加表象信息的数据的单位为例如读取以及写入的最小的单位。例如,读取以及写入的最小的单位为NAND型闪存22的页大小。以下,设定为通过表象表35与表象信息相对应的数据的大小为页大小而进行说明,但并不限定于此。
图3是表象表35的示意图。表象表35使表象信息与每一数据相对应,以条目为单位存储表象信息。对表象表35的各条目,赋予了索引。所谓索引,是基于CPU物理地址生成的值。因此NAND处理部30在从处理器11进行存取时,参照通过与所接收的CPU物理地址相对应的索引管理的条目,由此能够获取该数据的表象信息。
表象信息,是各数据所特有的信息,包含静态表象信息和动态表象信息。静态表象信息是基于被提供表象信息的相应数据的特性而生成的信息,包含例如作为确定该数据的存储装置20上的配置(写入)区域的线索的信息。动态表象信息是包含数据的读取和写入的次数及频率的至少一方的信息。
如图3所示静态表象信息包含该数据的重要度、静态写入频率、静态读取频率、数据寿命、ECC信息以及数据生成时刻。以下,对其分别进行说明。
(i)所谓重要度,是基于数据的种类等推测该数据的重要性而设定的值。重要度根据例如保存于文件***的文件的特性或者在程序中一次使用的区域(例如栈区域、堆区域等)的特性而推测。
(ii)所谓静态写入频率,是基于数据的种类等推测写入该数据的频率而设定的值。例如,越是被推测为写入频率高的数据,静态写入频率被设定越高的值。
(iii)所谓静态读取频率,是基于数据的种类等推测读取该数据的频率而设定的值。例如,越是被推测为读取频率高的数据,静态读取频率被设定越高的值。
(iv)所谓数据寿命,是基于数据的种类等推测不擦除该数据而作为数据使用的期间(数据的寿命)来设定的值。
(v)ECC信息,是基于数据的种类等而确定、与应该由ECC部38使用的纠错方式有关的信息。例如,在要求高速读取的数据的情况下,例如OS对于该数据确定为使用能够高速进行纠错的方式,将该情况作为ECC信息写入表象表35。
上述的静态表象信息是由生成数据的程序(进程)静态预先确定的值。另外,OS也可以基于数据的文件扩展名或者文件头等,预测静态表象信息。而且,通过程序和/或OS,将静态表象信息记录于表象表35。
接下来对动态表象信息进行说明。动态表象信息包含数据的写入次数以及读取次数。在这里,所谓数据的写入次数,是将该数据写入易失性半导体存储器21的次数。所谓数据的读取次数,是将该数据从存储装置20读出的次数。
这些动态表象信息由例如NAND处理部30管理。即NAND处理部30每当写入数据便使该数据的写入次数递增,每当读取数据便使该数据的读取次数递增。
上述的重要度、静态写入频率、静态读取频率以及数据寿命能够用于例如确定应该将数据存储于存储装置20之中的哪个区域。参照图4的流程图对这样的例子进行说明。图4是表示向存储装置20存储数据时的处理的一例的流程图。
如图所示,NAND处理部30首先在产生了写入请求的情况下,参照与写入数据相对应的表象信息(步骤S10)。然后NAND处理部30参照表象信息的“数据寿命”,判断写入对象数据的数据寿命(步骤S11)。
在判断为写入对象数据的数据寿命短的情况下(步骤S12:是),NAND处理部30选择(步骤S13)并确定(步骤S14)易失性半导体存储器21作为应该存储写入对象数据的存储区域。
当在步骤S11判断为数据寿命长的情况下(步骤S12:否),NAND处理部30参照写入对象数据的表象信息的“重要度”,判断写入对象数据的重要度(步骤S14)。
当在步骤S14判断为写入对象数据的重要度高的情况下(步骤S15:是),NAND处理部30选择耐久性(可靠性)高的非易失性半导体存储器22作为应该存储写入对象数据的存储区域(步骤S16)。耐久性高的非易失性半导体存储器22是例如各存储单元保存2值(1位)数据的NAND型闪存22(以下称为“SLC(single level cell,单层单元)的NAND型闪存22”)。进而NAND处理部30基于写入对象数据的表象信息,进行是否将写入对象数据高速缓存于易失性半导体存储器21(根据表象信息的高速缓存方式)的判断(步骤S17)。然后,将存储写入对象数据的存储区域确定为SLC的NAND型闪存22(步骤S21)。
当在步骤S14判断为重要度低的情况下(步骤S15:否),NAND处理部30选择耐久性低的非易失性半导体存储器22作为应该存储写入对象数据的存储区域(步骤S18)。耐久性低的非易失性半导体存储器22是例如各存储单元保存超过2值的值(2位以上)的数据的NAND型闪存22(以下称为“MLC(multi-level cell,多层单元)的NAND型闪存22”)。进而NAND处理部30根据写入对象数据的表象信息(动态表象信息、静态表象信息),进行写入对象数据的读取频率、写入频率的判断(步骤S19)。
当在步骤S19判断为写入对象数据的读取频率、写入频率高的情况下(步骤S20:是),NAND处理部30选择SLC的NAND型闪存22作为应该存储写入对象数据的存储区域(步骤S16),并前进至步骤S17。
另一方面,当在步骤S19判断为读取频率、写入频率低的情况下(步骤S20:否),保持选择MLC的NAND型闪存22不变,并前进至步骤S17。
如上所述,表象信息能够用于确定例如应该将写入数据存储于哪个存储区域。但是,图4的流程图只不过表示该确定方法的一例,也可以使用其他的方法。例如,也可以使用数据生成时刻以及当前时刻,求出动态写入频率以及读取频率,据此来确定。
1.3.3关于地址变换表38
接下来,对地址变换表38进行说明。图5是根据本实施方式的地址变换表38的示意图。
如图所示,在地址变换表38中,以表形式对于各个CPU物理地址,管理对应的NAND物理地址以及有效位。
在这里,对于CPU物理地址与NAND物理地址简单进行说明。如前所述,所谓CPU物理地址,是在从处理器11对存储器管理装置14进行存取时使用的地址,为了处理器11指定某特定的数据而使用。
与此相对,NAND物理地址是NAND型闪存22内的物理性的区域的地址。写入至NAND型闪存22的数据辗转在NAND型闪存22内的物理区域移动。即,若设定最初写入与某CPU物理地址ADDCPU1相对应的数据的区域的NAND物理地址为ADDNAND1,则该数据然后向ADDNAND2的区域移动,接下来向ADDNAND3的区域移动,进而向ADDNAND4的区域移动。即,NAND物理地址与时间一起从ADDNAND1向ADDNAND2、ADDNAND3、ADDNAND4、...变化。其原因可以列举:由于在NAND型闪存中不允许数据的覆写,所以在数据的更新时必须将更新数据写入另外的物理区域和/或由于损耗平均、无用单元收集,定期存在数据的移动等。
由于这样的原因,需要始终掌握CPU物理地址与NAND物理地址的关系,为此设置地址变换表36。
在地址变换表36中,对每个CPU物理地址分配条目。而且,在各条目中,存储对应的NAND物理地址以及有效位。有效位是表示对应的条目是否有效的信息。在有效位为“1”时,该条目被设为有效,在为“0”时被设为无效。有效位的初始值为“0”。而且有效位为“0”时的条目是没有被映射CPU物理地址的条目,或者是被映射了CPU物理地址但然后消除了的条目。在有效位为“1”的条目中,被映射CPU物理地址,在易失性半导体存储器21与NAND型闪存22的至少一方中,存在与该CPU物理地址相对应的区域。
另外,地址变换表36的各条目也可以与表象表35同样,以NAND型闪存22的页为单位进行分配,在下面以该情况为例继续进行说明。但是,当然并不限定于该情况,而能够按各种尺寸分配条目。
2.关于半导体装置1的工作
接下来,以下关于上述结构的半导体装置1的工作,对数据的读取时以及写入时的存储器管理装置14的工作进行说明。
2.1关于存储器管理装置14的工作原理
首先,关于存储器管理装置14的工作的基本原理,对数据的读取时以及写入时分别进行说明。
2.1.1关于数据的读取时
在数据的读取时,NAND处理部30首先从处理器11接收读取命令和CPU物理地址ADDCPU1。于是,NAND处理部30参照存储部31内的地址变换表36,掌握与ADDCPU1相对应的NAND物理地址ADDNAND1以及ECC信息。
接下来,NAND处理部30向NAND控制器33的命令/地址发布部37传送ADDNAND1,并且进行命令使其发布读取命令。响应于此,命令/地址发布部37对NAND型闪存22的序列发生器输出读取命令以及ADDNAND1。
另外,NAND处理部30基于参照表象表35而得到的ECC信息,对ECC部38进行命令,使其选择与ECC信息相对应的纠错方式。结果,在ECC部38中,使进行根据所选择的纠错方式的处理的电路启用,使进行根据其他的方式的处理的电路不启用。
在NAND型闪存22中,响应于读取命令,将与ADDNAND1相对应的页数据DREAD读取到页缓冲器,进而向ECC部38传送。于是,在ECC部38中,根据所选择的纠错方式,对DREAD执行检错以及纠错。
2.1.2关于数据的写入时
在数据的写入时进行与上述读取时相反的处理。即NAND处理部30首先从处理器11接收写入命令、数据DWRITE以及CPU物理地址ADDCPU2。于是,NAND处理部30参照存储部31内的地址变换表36,掌握与ADDCPU2相对应的NAND物理地址ADDNAND2以及ECC信息。
接下来,NAND处理部30基于参照表象表35而得到的ECC信息,对ECC部38进行命令,使其选择与该ECC信息相对应的纠错方式。结果,在ECC部38中,使进行根据所选择的纠错方式的处理的电路启用,使用于其他的方式的电路不启用。
然后,ECC部38对于DWRITE,根据所选择的纠错方式生成纠错符号(奇偶校验位),将数据DWRITE以及纠错符号向NAND型闪存22的页缓冲器传送。
另外,NAND处理部30向NAND控制器33的命令/地址发布部37传送ADDNAND2,并且进行命令使其发布写入命令。响应于此,命令/地址发布部37对NAND型闪存22的序列发生器输出写入命令以及ADDNAND1。
在NAND型闪存22中,响应于写入命令,将传送到了页缓冲器的数据DWRITE以及纠错符号写入与ADDNAND1相对应的区域。
2.2ECC部38和工作的具体例
接下来,以下特别着眼于ECC部38,对上述结构以及工作的具体例进行说明。
2.2.1关于ECC部38的结构
图6是本例所涉及的ECC部38的框图。另外,图6所示的箭头表示数据的读取时的信号的流程,在写入时相反。
如图所示,ECC部38具备CRC(cyclic redundancy check,循环冗余码校验)部40、第1ECC电路41、第2ECC电路42以及选择电路43。
CRC部40在数据的读取时,检查数据中所含的按照CRC方式的检查数据。另外在数据的写入时,对写入数据生成按照CRC方式的检查数据。
第1ECC电路41通过信号Enb1而启用,按照第1纠错方式,执行检错以及纠错。即,在数据的写入时,按照第1纠错方式生成第1奇偶校验位P1。另一方面,在数据的读取时,按照第1纠错方式生成出错位组,进行错误的检测以及纠正。第1纠错方式具有第1纠错能力。
第2ECC电路42通过信号Enb2而启用,按照第2纠错方式,执行检错以及纠错。即,在数据的写入时,按照第2纠错方式生成第2奇偶校验位P2。另一方面,在数据的读取时,按照第2纠错方式生成出错位组,进行错误的检测以及订正。第2纠错方式具有第2纠错能力。信号Enb1、Enb2从例如NAND处理部30提供。
选择电路43根据例如NAND处理部30的命令,选择第1ECC电路41的输出与第2ECC电路42的输出的某一个。
图7是在选择了第1纠错方式时生成的页数据的概念图。如图所示,从处理器11(或者易失性半导体存储器21)提供的写入数据(将其称为主数据Dmain)被分割为N个(N为2以上的自然数)。将分割后的N个数据分别称为主数据D1~DN。然后,对N个主数据D1~DN,第1ECC电路41分别生成第1奇偶校验位P1~PN,另外CRC部40分别生成检查数据CRC1~CRCN。另外,将主数据Di、第1奇偶校验位Pi以及检查数据CRCi(i为1~N中的任意一个)统称为第i区段(sector)。
图8是在选择了第2纠错方式时生成的页数据的概念图。如图所示,第2ECC电路42对主数据Dmain生成第2奇偶校验位P2,将其附加于主数据Dmain之后。
另外,在本例中,设定为第2纠错能力比第1纠错能力优异,纠错能力例如定义如下。即:
纠错能力=能够进行纠错的位数/符号长度
符号长度=主数据位数+奇偶校验位位数
这里,与第1纠错能力有关的主数据位数为主数据Di的位数,与第2纠错能力有关的主数据位数为主数据Dmain的位数(=D1~DN的位数之和)。
进而,在第1纠错方式中,由于ECC处理以区段为单位进行,所以第1ECC电路41的电路规模比第2ECC电路42的电路规模小。而且第1ECC电路41的处理速度比第2ECC电路42的处理速度高。因此,OS或者应用对于需要进行高速的存取的数据应用第1纠错方式(图7所示的数据形式),对于不需要进行高速的存取的数据应用第2纠错方式(图8所示的数据形式)。
2.2.2关于数据的读取时的工作
接下来,使用图9对于数据的读取时的工作进行说明。图9是读取时的流程图。
首先如前面所说明,在命令/地址发布部37发布读取命令时(步骤S30),从NAND型闪存22以页为单位读取数据DREAD(步骤S31)。数据DREAD,如果使用第1纠错方式则具有图7所示的构造,如果使用第2纠错方式则具有图8所示的构造。
另外,NAND处理部30参照表象表35,确认与该数据DREAD有关的ECC信息(步骤S32)。结果,如果不是第1纠错方式,即如果使用第2纠错方式(步骤S33:否),则NAND处理部30设定为信号Enb2=“H”,使第2ECC电路42有效(步骤S34)。另外设定为信号Enb1=“L”,使第1ECC电路41无效(步骤S35)。然后,第2ECC电路42使用数据DREAD中的第2奇偶校验位P2执行ECC处理(步骤S36)。然后,选择电路43选择由第2ECC电路42处理后的数据,向处理器11和/或易失性半导体存储器21输出。
另一方面,如果在步骤S32为第1纠错方式(步骤S33:是),则NAND处理部30设定为信号Enb1=“H”而使第1ECC电路41有效(步骤S37),并设定为信号Enb2=“L”而使第2ECC电路42无效(步骤S38)。然后CRC部40对检查数据CRCi进行检查(步骤S39)。然后如果步骤S39的结果为没有检查到错误(步骤S40:是),则第1ECC电路41对第i区段执行ECC处理(步骤S41)。选择电路43选择由第1ECC电路41处理后的数据,向处理器11和/或易失性半导体存储器21输出。步骤S39~S41的处理对于第1~第N区段的全部依次执行。但是,在产生了CRC错误的情况下(步骤S40:否),数据的读取出错,处理结束。
2.2.3关于数据的写入时的工作
接下来,使用图10对于数据的写入时的工作进行说明。图10是写入时的流程图。
首先如前面所说明,存储器管理装置14从处理器11接收写入数据DWRITE(步骤S50)。数据DWRITE相当于图7中的主数据D1~DN的集合,换言之相当于图8中的主数据Dmain。
另外,NAND处理部30参照表象表35,确认与该数据DWRITE有关的ECC信息(步骤S51)。结果,如果是第1纠错方式(步骤S52:是),则CRC部40对主数据Di生成检查数据CRCi(步骤S53)。另外,i的初始值设定为“1”。接下来,NAND处理部30设定为信号Enb1=“H”而使第1ECC电路41有效(步骤S54),并设定为信号Enb2=“L”而使第2ECC电路42无效(步骤S55)。然后,第1ECC电路41对第i区段执行ECC处理(步骤S56)。即,使用主数据Di生成第1奇偶校验位P1-i。以上的结果,完成第i区段数据。使以上的处理对于所有区段反复进行(步骤S57:否,步骤S58)。
以上的结果,完成具有图7所示的构造的数据,并向NAND型闪存22的页缓冲器传送。然后命令/地址发布部37发布写入命令(步骤S59)。
另一方面,如果在步骤S52选择第2纠错方式(步骤S52:否),则NAND处理部30设定为信号Enb2=“H”而使第2ECC电路42有效(步骤S60)。另外设定为信号Enb1=“L”而使第1ECC电路41无效(步骤S61)。然后第2ECC电路42对数据DWRITE(主数据Dmain)执行ECC处理,生成第2奇偶校验位P2(步骤S62)。结果,完成具有图8所示的构造的数据。然后,向NAND型闪存22的页缓冲器传送该数据,并发布写入命令(步骤S59)。
3.根据本实施方式的效果
如上所述,如果是根据本实施方式的半导体装置,则能够降低功耗。以下对于本效果进行说明。
根据本实施方式的存储器管理装置14作为表象信息具有ECC信息。所谓ECC信息,是按每个数据表示所应用或者应该应用的纠错方式的信息。从而存储器管理装置14,在存在对数据的存取请求时,基于该ECC信息,仅使必要的ECC电路工作。因此,能够将ECC电路的工作设为必要的最小限度,能够降低功耗。
更具体地,根据本实施方式的结构支持第1纠错方式和比第1纠错方式低速但纠正能力高的第2纠错方式。而且,对于需要进行高速的存取的数据应用第1纠错方式,对于可以进行低速的存取的数据应用第2纠错方式,该信息作为ECC信息而登记于地址变换表。
因此,在对于需要进行高速的存取的数据存在存取时,NAND处理部30基于ECC信息,使进行按照第1纠错方式的ECC处理的第1ECC电路41工作。此时,进行按照第2纠错方式的ECC处理的第2ECC电路42不工作。
另一方面,在对于可以进行低速的存取的数据存在存取时,NAND处理部30基于ECC信息,使第2ECC电路42工作,不使第1ECC电路41工作。
这样,第1、第2ECC电路41、42之中,仅需要的任意一方工作,而不是双方同时工作。因此,能够降低ECC部38的功耗,并且能够可靠地纠正错误并且满足与处理器11的存取速度有关的要求。
另外,如果是根据本实施方式的第1纠错方式,则能够进行更高速的数据存取。下面对于这一点进行说明。
在NAND型闪存中,一般存储单元阵列的端部的区域作为ECC数据用的区域而使用。因此,1页的数据构造如图8所示,从列地址小的区域起首先配置主数据,在该主数据之后集中配置奇偶校验位。
在数据的读取时,在页高缓冲器与ECC部之间的总线宽度比页大小小的情况下,数据按照列地址顺序以总线宽度为单位向ECC部传送。因此ECC部直至主数据的全部被传送至ECC部、接着奇偶校验位的向ECC部的传送完成为止,都不能开始ECC处理。
相对于此,根据本实施方式的第1ECC电路41如图7所说明,按每一区段执行ECC处理。更具体地,将应该写入至1页的主数据分割为N个组,按每组生成第1奇偶校验位P1-i。而且该第1奇偶校验位P1-i设置于为了生成第1奇偶校验位P1-i而使用的主数据Di之后。
即,1页内的数据构造从列地址小的顺序开始变为主数据D1/奇偶校验位P1-1/主数据D2/奇偶校验位P1-2/...的排列。因此,ECC部38的第1ECC电路41在接收到主数据D1以及奇偶校验位P1-1的时刻,能够不等待第2区段及以后的剩余的数据的接收地开始与第1区段有关的ECC处理。对于此后的区段也同样。
因此,能够以区段为单位依次执行ECC处理,然后从ECC处理结束了的区段开始依次将数据供给至处理器11和/或易失性半导体存储器21。由此,处理器11能够高速存取数据。这在将NAND型闪存22作为主存储器而使用的方式中,可以认为起到更好的效果。
另外,NAND处理部30根据NAND物理地址计算页编号以及区段编号,进而计算页内的列地址。此时,在图7所示的数据形式和图8所示的数据形式中,页内的有效数据的位置的计算方法不同。
若设定为NAND物理地址以页为单位分配,则在图7所示的数据形式的情况下,如下那样计算。即,
页编号=int(NAND物理地址/数据数/区段数)
区段编号=int(NAND物理地址/数据数)mod区段数
列地址=(数据数+奇偶校验位数+CRC数)×区段编号
这里,数据数、奇偶校验位数以及CRC数分别为各区段内的主数据Di的位数、第1奇偶校验位P1-i的位数以及检查数据CRCi的位数,例如分别为128字节、4字节以及1字节。另外int(A)表示获取A的整数部分的运算,A mod B表示获取A除以B时的余数的运算。
另外在图8所示的数据形式的情况下,如下那样计算。即,
页编号=int(NAND物理地址/数据数)
列地址=0
在该情况下,例如数据数为1024字节,奇偶校验位数(第2奇偶校验位P2的位数)为42字节。
[第2实施方式]
接下来,对于根据第2实施方式的半导体装置进行说明。本实施方式涉及在上述第1实施方式中使用图7至图10所说明的ECC部38的另外的具体例。以下,仅对与第1实施方式不同之处进行说明。
1.关于ECC部38的结构
图11是本例所涉及的ECC部38的框图。图11所示的箭头表示数据的读取时的信号的流程,在写入时相反。
如图所示,根据本实施方式的ECC部38具有在第1实施方式中说明的图6的结构中排除了CRC部的结构,其他与第1实施方式同样。另外在本例中,设定为第2纠错能力与第1纠错能力相同或者比其优异。处理速度如在第1实施方式中说明,第1ECC电路41的处理速度比第2ECC电路42的处理速度高。另一方面,电路规模是第2ECC电路42比第1ECC电路41小,另外第2ECC电路42的编码率比第1ECC电路41的编码率优异。即,R1<R2。另外所谓编码率,是输入数据与输出数据(对输入数据加上了奇偶校验位而成的数据)的比率,例如如果输入数据的位数为B1、奇偶校验位的位数为B2,则编码率为B1/(B1+B2)。因此,OS或者应用对于需要进行高速的存取的数据应用第1纠错方式,对于不需要进行高速的存取的数据应用第2纠错方式。
图12是在选择了第1纠错方式时生成的页数据的概念图。如图所示,在本实施方式中,相当于在第1实施方式所说明的图7的结构中从各区段排除了CRC的构造。另外,区段数M(M为2以上的自然数)既可以与N相同也可以不同。
在选择了第2纠错方式时生成的页数据如在第1实施方式中所说明。
2.根据本实施方式的工作
2.1关于数据的读取时的工作
接下来,使用图13对于数据的读取时的工作进行说明。图13是读取时的流程图。
如图所示,根据本实施方式的工作是在第1实施方式所说明的图9中排除了与CRC有关的处理(步骤S39、S40)的工作。
2.2关于数据的写入时的工作
接下来,使用图14对于数据的写入时的工作进行说明。图14是写入时的流程图。
如图所示,根据本实施方式的工作是在第1实施方式所说明的图10中排除了与CRC有关的处理(步骤S53)的工作。
3.根据本实施方式的效果
如上所述,第1实施方式也能够应用于多个纠错方式具有同一纠错能力的情况,能够得到与第1实施方式同样的效果。
[第3实施方式]
接下来,对于根据第3实施方式的半导体装置进行说明。本实施方式是将在上述第1实施方式中说明的ECC部38的具体例与在第2实施方式中说明的ECC部38的具体例组合的实施方式。即,页数据涉及获取在第1实施方式中说明的图7、图8所示的格式和在第2实施方式中说明的图12所示的格式这3个格式的情况。以下,仅对与第1、第2实施方式不同之处进行说明。
1.关于ECC部38的结构
在本实施方式中,将图7、图8以及图12所示的格式分别称为第1至第3格式,将其作为ECC信息保存于表象表35。
图15是根据本实施方式的ECC部38的框图。如图所示,ECC部38的框结构本身与在第1实施方式中说明的图6相同。但是,CRC部40在信号Enb1=“H”时有效。另一方面,在信号Enb1=“L”时无效。CRC部40将输入信号原样输出。另外第1ECC电路41也在Enb3=“H”时有效。
在选择第1格式的情况下,设定为Enb1=“H”、Enb2=“L”、Enb3=“L”。即,在该情况下ECC部38进行与在第1实施方式中选择第1纠错方式的情况相同的工作。
在选择第2格式的情况下,设定为Enb1=“L”、Enb2=“H”、Enb3=“L”。即,在该情况下ECC部38进行与在第1实施方式中选择第2纠错方式的情况相同的工作。
在选择第3格式的情况下,设定为Enb1=“L”、Enb2=“L”、Enb3=“H”。即,在该情况下ECC部38进行与在第2实施方式中选择第1纠错方式的情况相同的工作。
2.具体例
图16是示例性仅表示根据本实施方式的存储器管理装置14以及NAND型闪存22的主要部分的概念图。
如图所示,在NAND型闪存22的页PG1~PG3中,分别写入有第1~第3格式的数据。另外,设定为这些页PG1~PG3的NAND物理地址分别是(1111_1111h)、(1111_1112h)以及(1111_1113h)。另外,表示地址的数字的末尾的“h”表示“h”前的8位数字是16进制数。
另外,在存储器管理装置14的地址变换表36中,登记有3个CPU物理地址(0000_0001h)、(0000_0002h)以及(0000_0003h)。而且,对于这些CPU物理地址,分别对应NAND物理地址(1111_1111h)、(1111_1112h)以及(1111_1113h)。因此,在表象表35中,在与这些CPU物理地址相对应的条目中,作为ECC信息分别分配有表示为第1格式的值“1”、表示为第2格式的值“2”以及表示为第3格式的值“3”。
例如,在从处理器11使用CPU物理地址(0000_0001h)进行读取存取的情况下,存储器管理装置14读取与其相对应的页PG1。然后ECC部38基于ECC信息=“1”,执行与第1格式有关的ECC处理(即,在第1实施方式中选择第1纠错方式时的处理)。
另外,在使用CPU物理地址(0000_0002h)进行读取存取的情况下,存储器管理装置14读取与其相对应的页PG2。然后ECC部38基于ECC信息=“2”,执行与第2格式有关的ECC处理。
进而,在使用CPU物理地址(0000_0003h)进行读取存取的情况下,存储器管理装置14读取与其相对应的页PG3。然后ECC部38基于ECC信息=“3”,执行与第3格式有关的ECC处理。
3.根据本实施方式的效果
如上所述,能够将第1实施方式与第2实施方式组合而实施。
[第4实施方式]
接下来,对于根据第4实施方式的半导体装置进行说明。本实施方式在上述第1实施方式中、在损耗平均和/或无用单元收集时使用ECC信息。以下,仅对于在第1实施方式中省略了说明之处以及与第1实施方式不同之处进行说明。
1.关于根据本实施方式的结构
1.1关于NAND型闪存的结构
图17是表示NAND型闪存22的结构的框图。如图所示,NAND型闪存22具备存储单元阵列50以及页缓冲器51。
首先,对于存储单元阵列50进行说明。如图所示,存储单元阵列50具备S个(S为2以上的自然数)存储块BLK(BLK0~BLK(S-1))。各存储块BLK分别具备L个(L为2以上的自然数)NAND单元53。各个NAND单元53包含例如32个存储单元晶体管MT(MT0~MT31)和选择晶体管ST1、ST2。存储单元晶体管MT具备层叠栅结构,所述层叠栅结构具有隔着栅绝缘膜形成于半导体基板上的电荷蓄积层(例如浮游栅)和隔着栅间绝缘膜形成于电荷蓄积层上的控制栅。另外,存储单元晶体管MT的个数并不限定于32个,而也可以是8个、64个、128个、256个等,其个数没有限定。存储单元晶体管MT以其电流路径串联连接的方式配置于选择晶体管ST1、ST2之间。串联连接的存储单元晶体管MT的一端侧的漏连接于选择晶体管ST1的源,另一端侧的源连接于选择晶体管ST2的漏。
位于同一行的存储单元晶体管MT的控制栅共同连接于某一字线WL(WL0~WL31),位于同一行的存储单元的选择晶体管ST1、ST2的栅分别共同连接于选择栅线SGD、SGS。
另外,在存储单元阵列50中,存储块BLK在与字线WL正交的方向排列,位于同一列的选择晶体管ST1的漏共同连接于位线BL(BL0~BL(L-1))。选择晶体管ST2的源共同连接于源线SL。
在上述结构中,位于同一存储块BLK内的多个NAND单元23一并被擦除数据。另外,对连接于同一字线WL的多个存储单元晶体管MT一并写入或者读取数据,其单位为页。因此,在SLC的NAND型闪存中,由于各块BLK内的字线条数为32条,所以每一块BLK的页数也为32页。
另一方面,在MLC的NAND型闪存中,按各存储单元晶体管MT所保存的多位的每位分配页。即,数据的写入以及读取按每位进行。因此,在例如各存储单元晶体管MT保存2位数据的情况下,每一块BLK的页数为(32×2)=64页。在保存3位数据的情况下,为(32×3)=96页,以下同样。
页缓冲器51在数据的写入时,保存从存储器管理装置14接收的写入数据,将其向各位线BL传送,执行向存储单元晶体管MT的数据的写入。另外在数据的读取时,对读出至各位线BL的数据进行读出、增幅,向存储器管理装置14传送。
1.2关于地址变换表36
接下来,使用图18对根据本实施方式的地址变换表36进行说明。图18是表示根据本实施方式的地址变换表36的示意图。
如图所示,地址变换表36具有在第1实施方式中说明的图5中进一步具备频率信息字段的构成。频率信息字段存储表示对应的CPU物理地址中的错误的产生频率的频率信息。该频率信息基于例如ECC部38的检错结果、由NAND处理部30制作并更新。另外作为错误产生频率的具体例,是在该数据的读取时产生的错误位数的累计值、错误的产生的累计次数或者擦除对应的页的累计次数等。
1.3关于损耗平均以及无用单元收集
接下来,对于损耗平均以及无用单元收集进行简单说明。
所谓损耗平均,是管理每个存储块BLK的改写次数、使得数据的存取不会集中于特定的存储块BLK的处理。
例如在向某一存储块BLK1写入数据时,在该存储块BLK1的写入频率高的情况下,向写入频率低的另外的存储块BLK2写入该数据,并且将已经写入至存储块BLK1的数据向存储块BLK2复制。这是损耗平均。另外,损耗平均也可以并不一定在数据的写入时执行,而也可以在某一存储块BLK1的写入频率超过一定的阈值时、在某一定时将存储块BLK1整体复制到另外的存储块BLK2。
所谓无用单元收集,是将有效数据的较少几个存储块BLK内的有效数据向另外的擦除完毕存储块BLK复制、将原来的存储块BLK擦除而将其用作为擦除完毕存储块BLK的方法。
在NAND型闪存22中,从接近于选择栅线SGS的字线WL0开始依次写入数据。即,数据仅允许追加写入,而禁止覆写。
因此,在例如更新存储块BLK0的字线WL0的数据的情况下,存储块BLK0的字线WL0的数据保持原样,而向处于擦除状态的例如存储块BLK1的某一字线WL写入更新数据。此时,在存储块BLK0的字线WL0残留的数据为无效的数据。
在该数据的更新次数增加时,全部擦除状态的存储块BLK将用完,不能够进行数据的写入。消除该问题的是无用单元收集。
即,设定为例如在图17中,在存储块BLK0、BLK1中,字线WL0~WL15的数据已经更新完毕(更新数据写入于另外的存储块BLK),仅字线WL16~WL31的数据为有效数据。另外设定为,存储块BLK(S-1)处于擦除状态。
在该情况下,将存储块BLK0、BLK1中的字线WL16~WL31的数据复制到存储块BLK(S-1)的字线WL0~WL31。而且将存储块BLK0、BLK1擦除。由此,能够新确保2个擦除块(BLK0、BLK1)。
以上的损耗平均以及无用单元收集由NAND处理部30控制。此时,NAND处理部30基于所应用的纠错方式,选择复制目的区域。以下对于本工作进行说明。
2.关于根据本实施方式的工作
2.1关于损耗平均以及无用单元收集时的工作
接下来,使用图19对损耗平均以及无用单元收集时的根据本实施方式的存储器管理装置14的工作进行说明。图19是表示存储器管理装置14的工作的流程图。
如图所示,NAND处理部30始终或者定期或者在不进行处理的空闲时间监视地址变换表36的频率信息(步骤S70)。然后,对于地址变换表36的各条目,判断错误的产生频率是否超过第1阈值Fth1。第1阈值Fth1例如按每一条目(即每一CPU物理地址,进而换言之每一页)而设定,其信息通过例如OS提供至NAND处理部30。
当在某一条目中错误的产生频率超过了第1阈值Fth1的情况下(步骤S71:是),NAND处理部30确定使与该条目对应的数据向另外的页移动。然后NAND处理部30在表象表35中参照与该条目对应的ECC信息,确认当前应用的纠错方式(步骤S72)。
在步骤S72的结果为第2纠错方式的情况下,即在应用了纠错能力高的方式的情况下(步骤S73:否),NAND处理部30将错误产生频率高的页设定为候补,作为复制目的区域(步骤S74)。此时的错误产生频率的高低例如以第2阈值Fth2为基准而进行判断。另外,例如Fth2≤Fth1。
然后NAND处理部30对NAND控制器33进行命令,使其不改变纠错方式地对错误产生频率高的空页复制数据(步骤S75)。结果,在NAND型闪存22中,将与该条目对应的数据读出至页缓冲器51,接着将该数据复制到空页。
另外,在仅有错误产生频率低的空页的情况下,将数据复制到该空页。
在步骤S72的结果为第1纠错方式的情况下,即在应用了纠错能力低的方式的情况下(步骤S73:是),NAND处理部30将错误产生频率低的页设定为候补,作为复制目的区域(步骤S76)。因此,NAND处理部30参照地址变换表36,判断是否有错误产生频率低的空页。
如果有错误产生频率低的空页(步骤S77:是),则NAND处理部30对NAND控制器33进行命令,使其不改变纠错方式地对该空页复制数据(步骤S78)。结果,在NAND型闪存22中,将与该条目对应的数据读出至页缓冲器51,接着将该数据复制到空页。
如果没有错误产生频率低的空页(步骤S77:否),则NAND处理部30对NAND控制器33进行命令,使其在将纠错方式改变为第2纠错方式的基础上,对错误产生频率高的空页复制数据(步骤S74、S75)。结果,将与该条目对应的数据读出至页缓冲器51,接着将该数据向ECC部38传送。然后,ECC部38进行检错以及纠错。然后ECC部38以第2纠错方式进行ECC处理而生成第2奇偶校验位P2,并将包含第2奇偶校验位P2的数据向页缓冲器51传送。然后,将该数据复制到空页。
2.2关于工作的具体例
接下来,使用图20对上面说明的工作的具体例进行说明。图20是表示存储块BLK、页数据、表象表35以及地址变换表36、示意性表示数据复制的状况的概念图。
如图所示,在存储块BLK0的页PG1,存储有应用了第1纠错方式的数据PD1。以下,将与该数据PD1有关的错误产生频率F1超过第1阈值Fth1并向空页PG10和PG20复制的情况分别设定为情形I以及情形II进行说明。
(情形I)
首先,对作为复制对象的数据PD1应用第1纠错方式(图9的步骤S73:是)。因此,NAND处理部30将错误产生频率不超过第2阈值Fth2的页设定为候补,作为复制目的区域(步骤S76)。
在情形I中,页PG10为空页,并且其错误产生频率F10小于第2阈值Fth2(参照地址变换表36)。因此,NAND处理部30将数据PD1原样复制到页PG10(步骤S78)。
(情形II)
接下来对于情形II进行说明。情形II相当于页PG10处于使用中、页PG20为空页并且其错误产生频率F20大于等于第2阈值Fth2的情况(步骤S77:否)。
在该情况下,NAND处理部30将数据D1复制到页PG20。此时,NAND处理部30将纠错方式从第1纠错方式改变为第2纠错方式(步骤S75)。
3.根据本实施方式的效果
如果是根据本实施方式的结构,则除了在上述第1实施方式中说明的效果之外,还能够得到能够有效抑制数据的存取速度的下降的效果。以下对于本实施方式进行说明。
如在第1实施方式中说明,对于要求高速存取的数据应用第1纠错方式,对于不要求高速存取的数据应用第2纠错方式。该关系优选在损耗平均以及无用单元收集之后也维持。
这一点,根据本实施方式,在损耗平均以及无用单元收集时,基于应用于作为复制对象的数据的纠错方式,确定复制目的区域。更具体地,在复制第1纠错方式的数据时,将错误产生频率低的页设定为复制目的地。由此,在复制后也应用第1纠错方式,能够进行高速的存取。另外同时由于复制目的区域是错误产生频率低的页,所以即使是第1纠错方式也能够充分地纠正错误。
另一方面,在复制第2纠错方式的数据时,将错误产生频率高的页设定为复制目的地。由此,能够抑制浪费地使用错误产生频率低的空页的情况。即,能够将错误产生频率低的空页有效地用于第1纠错方式的数据。另外,即使复制目的区域的错误产生频率高,但由于第2纠错方式的纠错能力高,所以能够充分地纠正错误。
另外,在没有错误产生频率低的空页的情况下,即使假定复制对象数据为第1纠错方式的数据,也不得不将错误产生频率高的页设定为复制目的地。在该情况下,NAND处理部30在将纠错方式从第1纠错方式改变为第2纠错方式的基础上,复制数据。由此,在复制后也能够充分地纠正错误。
(本实施方式的第1变形例)
另外,在图20所说明的情形II中,数据D1也可以不复制到另外的块BLK2,而再次写入于存储块BLK0。
即,NAND处理部30若判定为没有错误产生频率低的空页时(图19的步骤S77:否),则仅读取数据PD1,或者读取存储块BLK0内的所有有效数据,将其暂时保存于例如易失性半导体存储器21。然后NAND处理部30将存储块BLK0擦除。然后,向擦除后的存储块BLK0复制保存于易失性半导体存储器21的数据。此时,数据PD1应用第2纠错方式写入至存储块BLK0(步骤S75)。
这样,在将纠错方式从第1纠错方式改变为第2纠错方式的情况下,对复制目的区域没有特别限制。因此,作为复制目的区域,也可以使用原本保存有数据PD1的存储块BLK0。这在例如图19的步骤S75中、在完全没有空页(能够作为数据的复制目的地而使用的区域)的情况下也能够应用。
(本实施方式的第2变形例)
另外,在图20所说明的情形II中,在向页PG20写入数据时,也可以将多个页合并为1页。将这样的例子表示于图21。
如图所示,设定为:需要复制的数据PD1、PD2存在于2个页PG1、PG2,其都被应用第1纠错方式。在这样的情况下,将与页PG1有关的主数据Dmain1(D1~DN)和与页PG2有关的主数据Dmain2(D1~DN)合并为1个数据Dmain3。进而,也可以对于该数据Dmain3生成第2奇偶校验位P2,将包含主数据Dmain3和第2奇偶校验位P2的数据PD3写入页PG20。
即,通过将纠错方式从第1纠错方式改变为第2纠错方式,1页所含的奇偶校验位的位数大幅度减少。因此,通过在因奇偶校验位的位数减少而空出的区域存储另外的页的主数据,能够有效地存储数据。
因此,本例能够应用于满足以下全部条件的情况。即:
·作为复制对象的页为2页以上;
·在复制时,纠错方式改变为纠正能力比原本的纠错方式低的纠错方式(即,奇偶校验位的位数由于复制而减少);以及
·合并的页的主数据之和与相关于其的奇偶校验位的总和小于等于页大小。
[第5实施方式]
接下来,对于根据第5实施方式的半导体装置进行说明。本实施方式是将在上述第1至第4实施方式中说明的存储器管理装置14的功能应用于SSD(Solid State Drive,固态驱动器)的实施方式。
图22是表示SSD100的结构的框图。如图所示,SSD100具备:数据保存用的多个NAND型闪存200、数据传送用或者工作区域用的DRAM101、控制它们的驱动控制电路102以及电源电路103。驱动控制电路102输出用于对设置于SSD100的外部的状态显示用LED进行控制的控制信号。另外,也可以代替DRAM101,而使用FeRAM(FerroelectricRandom Access Memory,铁电随机存储器)。
SSD100经由ATA接口(ATA I/F)在与个人计算机等主装置之间发送接收数据。另外,SSD100经由RS232C接口(RS232C I/F)在与调试用设备之间发送接收数据。
电源电路103接受外部电源,使用该外部电源生成多个内部电源。这些内部电源被供给于SSD100内的各部分。另外,电源电路103检测外部电源的上升,生成电源接通复位信号。电源接通复位信号向驱动控制电路102发送。
图23是表示驱动控制电路102的结构的框图。驱动控制电路102具备:数据存取用总线104、第1电路控制用总线105以及第2电路控制用总线106。
在第1电路控制用总线105上,连接有对驱动控制电路102整体进行控制的处理器107。另外,在第1电路控制用总线105上,经由ROM控制器109连接有存储有各管理程序(FW:firmware,固件)的引导用程序的引导ROM108。另外,在第1电路控制用总线105上,连接有接收来自电源电路103的电源接通复位信号并向各部分供给复位信号以及时钟信号的时钟控制器110。
第2电路控制用总线106连接于第1电路控制用总线105。在第2电路控制用总线106上,连接有向状态显示用LED供给状态显示用信号的并行IO(PIO)电路111、对RS232C接口进行控制的串行IO(SIO)电路112。
ATA接口控制器(ATA控制器)113、第1ECC(error check andcorrect,错误检测及纠正)电路114、NAND控制器115以及DRAM控制器119连接于数据存取用总线104和第1电路控制用总线105双方。ATA控制器113经由ATA接口在与主装置之间发送接收数据。在数据存取用总线104上,经由SRAM控制器121连接有作为数据工作区域而使用的SRAM120。
NAND控制器115具备:进行与4个NAND型闪存200的接口处理的NAND接口电路(NAND I/F)118、控制部117以及进行NAND型闪存-DRAM之间的存取控制的DMA传送控制用DMA控制器116。而且,控制部117具有在第1至第4实施方式中说明的存储器管理装置14的功能。即控制部117具备在图2中说明的NAND处理部30、存储部31以及NAND控制器33,执行在第1至第4实施方式中说明的工作。
图24是表示搭载了SSD100的便携式计算机200的一例的立体图。便携式计算机200具备主体201以及显示单元202。显示单元202具备显示器外框203和收置于该显示器外框203的显示装置204。
[变形例等]
如上所述,根据第1至第5实施方式的半导体装置1具备:能够保存数据的NAND型闪存22,对与所述数据有关的错误进行检测、纠正的纠错部38,按每一所述数据具有与所使用的纠错方式有关的信息(ECC信息)的表(表象表35或者地址变换表36)。而且,纠错部根据所述表内的所述信息,对每一所述数据选择所应用的纠错方式。
通过本结构,在纠错部中仅使必要最小限度的ECC电路有效,能够削减半导体装置1的功耗。
另外,实施方式并不限定于上面说明的第1至第5实施方式,而能够进行各种变形。例如,在第1、第2实施方式中,对于纠错方式有2种的情况进行了说明,在第3实施方式中对于具有3种的情况进行了说明。但是,也能够使用更多种类的纠错方式。另外,根据各纠错方式的数据格式并不限定于在上述实施方式中列举的格式,而也可以使用各种格式。
另外,ECC信息可以不存储于表象表35而存储于地址变换表36,或者也可以存储于表象表35与地址变换表36双方。
另外,在第1至第4实施方式中,作为半导体装置1,例举了将NAND型闪存作为主存储器而使用的***,另外在第5实施方式中例举了SSD而进行了说明。但是,并不限定于这些***,例如既可以应用于不将NAND型闪存作为主存储器而使用的情况,另外也能够应用于SDTM存储卡等。另外,在SSD和/或SD存储卡的例子中,在图3中说明的那样的表象表不是特别必须的。在该情况下,只要从主设备仅提供ECC信息便充分。另外,作为非易失性半导体存储器22并不限定于NAND型闪存,而能够应用于所有其他的半导体存储器。进而,存储装置20并不限于半导体存储器,而能够应用于磁记录介质和/或光学记录介质等所有进行纠错处理的记录介质。
虽然描述了几种实施方式,但是这些实施方式仅是作为例子而呈现的,而并不是要限定本发明的范围。事实上,这里描述的新实施方式也可以以其他各种方式实施,进而,在不脱离本发明的思想的范围,可以对这里描述的实施方式的形式进行各种省略、置换和变形。所附权利要求及其均等的范围旨在覆盖这样的方式或变形以落入本发明的范围和思想。
Claims (18)
1.一种半导体装置,包括:
NAND型闪存,其能够保存数据;
纠错部,其对与所述数据有关的错误进行检测、纠正;以及
表,其按每一所述数据具有与所使用的纠错方式有关的信息;
其中,所述纠错部根据所述表内的所述信息,对每一所述数据选择所应用的纠错方式。
2.如权利要求1所述的半导体装置,还包括:
处理器,其执行操作***以及/或者应用;
其中,所述与纠错方式有关的信息由所述操作***以及/或者应用提供。
3.如权利要求1所述的半导体装置,其中:
所述纠错部包括第1纠错方式的第1电路和第2纠错方式的第2电路;
所述第1电路与所述第2电路的纠错能力不同。
4.如权利要求3所述的半导体装置,其中:
所述NAND型闪存以第1单位从多个存储单元一并读取数据;
在写入时,所述第1纠错方式按每一第2单位生成奇偶校验位,所述第2单位比所述第1单位小,所述第2纠错方式以所述第1单位生成奇偶校验位。
5.如权利要求4所述的半导体装置,其中:
在所述表中,对于需要第1存取速度的数据关联所述第1纠错方式,对于需要比所述第1存取速度低速的第2存取速度的数据关联所述第2纠错方式。
6.如权利要求1所述的半导体装置,还包括:
控制部,其在所述NAND型闪存内复制数据;
其中,所述控制部基于所述表内的所述纠错方式选择作为复制目的地的区域。
7.如权利要求6所述的半导体装置,其中:
所述纠错部能够使用第1纠错方式和与所述第1纠错方式相比纠错能力高且低速的第2纠错能力;
所述控制部在作为复制对象的数据与所述第1纠错方式相关联的情况下,选择具有第1错误产生频率的区域作为所述复制目的区域;
在作为复制对象的数据与所述第2纠错方式相关联的情况下,选择具有比所述第1错误产生频率高的第2错误产生频率的区域作为所述复制目的区域。
8.如权利要求7所述的半导体装置,其中:
在作为复制对象的数据与所述第1纠错方式相关联并且不能够选择具有第1错误产生频率的区域作为所述复制目的区域的情况下,
所述控制部选择具有第2错误产生频率的区域作为所述复制目的区域,并且在复制时将纠错方式从所述第1纠错方式改变为所述第2纠错方式。
9.如权利要求8所述的半导体装置,其中:
所述NAND型闪存能够以页为单位进行数据的写入以及读取;
所述控制部在所述作为复制对象的数据位于多个页的情况下,将该多个页的数据合并为1页,并且对合并后的所述数据应用所述第2纠错方式,写入至所述复制目的区域。
10.如权利要求6所述的半导体装置,其中:
所述表还按每一数据保存与错误产生频率有关的信息;
所述控制部在所述错误产生频率超过了预定的阈值时,复制所述数据。
11.一种半导体装置的数据存取方法,所述半导体装置具有基于相互不同的纠错方式进行数据的错误的检测、纠正的多个纠错部,该方法包括:
从作为主存储器而起作用的NAND型闪存读取数据;
参照表而参照应用于所述读取的数据的纠错方式;
基于所述表的参照结果,使与应用于所述读取的数据的所述纠错方式相对应的纠错部有效,使其他的纠错部无效;以及
通过所述有效了的纠错部,进行与所述读取的数据有关的错误的检测、纠正。
12.如权利要求11所述的半导体装置的数据存取方法,其中:
所述纠错部包括第1纠错方式的第1电路和第2纠错方式的第2电路;
所述第1电路与所述第2电路的纠错能力不同。
13.如权利要求12所述的半导体装置的数据存取方法,其中:
所述NAND型闪存以第1单位从多个存储单元一并读取数据;
所述第1纠错方式按每一第2单位生成奇偶校验位,所述第2单位比所述第1单位小;
所述第2纠错方式以所述第1单位生成奇偶校验位。
14.如权利要求13所述的半导体装置的数据存取方法,其中:
在所述表中,对于需要第1存取速度的数据关联所述第1纠错方式,对于需要比所述第1存取速度低速的第2存取速度的数据关联所述第2纠错方式。
15.一种半导体装置的数据存取方法,所述半导体装置具有基于相互不同的纠错方式进行数据的错误的检测、纠正的多个纠错部,该方法包括:
参照表而参照应该应用于写入数据的纠错方式;
基于所述表的参照结果,使与应该应用于所述写入数据的所述纠错方式相对应的纠错部有效,使其他的纠错部无效;
通过所述有效了的纠错部,生成与所述写入数据有关的奇偶校验位;以及
将所述写入数据以及奇偶校验位写入于作为主存储器而起作用的NAND型闪存。
16.如权利要求15所述的半导体装置的数据存取方法,其中:
所述纠错部包括第1纠错方式的第1电路和第2纠错方式的第2电路;
所述第1电路与所述第2电路的纠错能力不同。
17.如权利要求16所述的半导体装置的数据存取方法,其中:
所述NAND型闪存以第1单位从多个存储单元一并读取数据;
所述第1纠错方式按每一第2单位生成奇偶校验位,所述第2单位比所述第1单位小;
所述第2纠错方式以所述第1单位生成奇偶校验位。
18.如权利要求17所述的半导体装置的数据存取方法,其中:
在所述表中,对于需要第1存取速度的数据关联所述第1纠错方式,对于需要比所述第1存取速度低速的第2存取速度的数据关联所述第2纠错方式。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP207176/2010 | 2010-09-15 | ||
JP2010207176 | 2010-09-15 | ||
JP178885/2011 | 2011-08-18 | ||
JP2011178885A JP2012084127A (ja) | 2010-09-15 | 2011-08-18 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102436406A true CN102436406A (zh) | 2012-05-02 |
Family
ID=45818843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102545339A Pending CN102436406A (zh) | 2010-09-15 | 2011-08-31 | 半导体装置及其数据存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120072798A1 (zh) |
JP (1) | JP2012084127A (zh) |
CN (1) | CN102436406A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155830A (zh) * | 2015-02-12 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及错误校正方法 |
CN106528321A (zh) * | 2015-09-09 | 2017-03-22 | 株式会社东芝 | 数据恢复电路、半导体存储装置及数据恢复方法 |
CN106601305A (zh) * | 2016-11-18 | 2017-04-26 | 华中科技大学 | 一种使用检错码和纠错码相结合的固态盘纠错方法 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器***及其控制方法 |
WO2022057417A1 (zh) * | 2020-09-18 | 2022-03-24 | 长鑫存储技术有限公司 | 存储器 |
US11894089B2 (en) | 2020-09-18 | 2024-02-06 | Changxin Memory Technologies, Inc. | Memory with error checking and correcting unit |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103999057B (zh) * | 2011-12-30 | 2016-10-26 | 英特尔公司 | 具有开关的相变存储器(pcms)的元数据管理和支持 |
JP2013242694A (ja) * | 2012-05-21 | 2013-12-05 | Renesas Mobile Corp | 半導体装置、電子装置、電子システム及び電子装置の制御方法 |
US9235468B2 (en) * | 2013-04-12 | 2016-01-12 | Qualcomm Incorporated | Systems and methods to improve the reliability and lifespan of flash memory |
US9520901B2 (en) | 2014-03-06 | 2016-12-13 | Kabushiki Kaisha Toshiba | Memory controller, memory system, and memory control method |
JP6486723B2 (ja) * | 2015-01-21 | 2019-03-20 | 東芝メモリ株式会社 | メモリシステムおよび処理装置 |
US10289475B2 (en) | 2015-01-21 | 2019-05-14 | Toshiba Memory Corporation | Memory system |
US10509770B2 (en) | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
US10324832B2 (en) | 2016-05-25 | 2019-06-18 | Samsung Electronics Co., Ltd. | Address based multi-stream storage device access |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US9880780B2 (en) | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
US9898202B2 (en) | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US9959046B2 (en) | 2015-12-30 | 2018-05-01 | Samsung Electronics Co., Ltd. | Multi-streaming mechanism to optimize journal based data storage systems on SSD |
US10296264B2 (en) | 2016-02-09 | 2019-05-21 | Samsung Electronics Co., Ltd. | Automatic I/O stream selection for storage devices |
US9898200B2 (en) | 2016-02-18 | 2018-02-20 | Samsung Electronics Co., Ltd | Memory device having a translation layer with multiple associative sectors |
US20170242625A1 (en) * | 2016-02-24 | 2017-08-24 | Samsung Electronics Co., Ltd. | Apparatus for ssd performance and endurance improvement |
US10592171B2 (en) | 2016-03-16 | 2020-03-17 | Samsung Electronics Co., Ltd. | Multi-stream SSD QoS management |
US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
US10216417B2 (en) | 2016-10-26 | 2019-02-26 | Samsung Electronics Co., Ltd. | Method of consolidate data streams for multi-stream enabled SSDs |
US10108345B2 (en) | 2016-11-02 | 2018-10-23 | Samsung Electronics Co., Ltd. | Victim stream selection algorithms in the multi-stream scheme |
US10545664B2 (en) | 2017-04-11 | 2020-01-28 | Samsung Electronics Co., Ltd. | System and method for identifying SSDs with lowest tail latencies |
US11048624B2 (en) | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US10698808B2 (en) | 2017-04-25 | 2020-06-30 | Samsung Electronics Co., Ltd. | Garbage collection—automatic data placement |
US20180321855A1 (en) | 2017-05-03 | 2018-11-08 | Samsung Electronics Co., Ltd. | Multistreaming in heterogeneous environments |
US10338842B2 (en) | 2017-05-19 | 2019-07-02 | Samsung Electronics Co., Ltd. | Namespace/stream management |
FR3077655A1 (fr) * | 2018-02-05 | 2019-08-09 | Proton World International N.V. | Gestion d'une memoire non volatile |
CN116386708A (zh) * | 2022-01-03 | 2023-07-04 | 三星电子株式会社 | 存储装置及其操作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482837A (zh) * | 2009-01-21 | 2009-07-15 | 华为技术有限公司 | 闪存文件***纠错方法和装置 |
WO2010076966A2 (ko) * | 2008-12-30 | 2010-07-08 | (주)인디링스 | 메모리 컨트롤러 및 메모리 관리 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7322002B2 (en) * | 2004-05-26 | 2008-01-22 | Micron Technology, Inc. | Erasure pointer error correction |
US8301980B2 (en) * | 2009-09-28 | 2012-10-30 | Nvidia Corporation | Error detection and correction for external DRAM |
-
2011
- 2011-08-18 JP JP2011178885A patent/JP2012084127A/ja not_active Withdrawn
- 2011-08-31 CN CN2011102545339A patent/CN102436406A/zh active Pending
- 2011-09-15 US US13/233,096 patent/US20120072798A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010076966A2 (ko) * | 2008-12-30 | 2010-07-08 | (주)인디링스 | 메모리 컨트롤러 및 메모리 관리 방법 |
CN101482837A (zh) * | 2009-01-21 | 2009-07-15 | 华为技术有限公司 | 闪存文件***纠错方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155830A (zh) * | 2015-02-12 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及错误校正方法 |
CN106155830B (zh) * | 2015-02-12 | 2019-07-23 | 慧荣科技股份有限公司 | 数据储存装置以及错误校正方法 |
CN106528321A (zh) * | 2015-09-09 | 2017-03-22 | 株式会社东芝 | 数据恢复电路、半导体存储装置及数据恢复方法 |
CN106528321B (zh) * | 2015-09-09 | 2019-06-07 | 株式会社东芝 | 数据恢复电路、半导体存储装置及数据恢复方法 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器***及其控制方法 |
CN108073470B (zh) * | 2016-11-07 | 2023-04-07 | 三星电子株式会社 | 执行地址映射表的纠错的存储器***及其控制方法 |
CN106601305A (zh) * | 2016-11-18 | 2017-04-26 | 华中科技大学 | 一种使用检错码和纠错码相结合的固态盘纠错方法 |
WO2022057417A1 (zh) * | 2020-09-18 | 2022-03-24 | 长鑫存储技术有限公司 | 存储器 |
US11894089B2 (en) | 2020-09-18 | 2024-02-06 | Changxin Memory Technologies, Inc. | Memory with error checking and correcting unit |
Also Published As
Publication number | Publication date |
---|---|
JP2012084127A (ja) | 2012-04-26 |
US20120072798A1 (en) | 2012-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102436406A (zh) | 半导体装置及其数据存取方法 | |
CN109783009B (zh) | 存储器***及其操作方法 | |
US20190205257A1 (en) | Memory system and operating method thereof | |
KR100884429B1 (ko) | 불휘발성 반도체 메모리를 구비하는 메모리 시스템 | |
TWI473116B (zh) | 多通道記憶體儲存裝置及其控制方法 | |
CN110083546B (zh) | 记忆装置中进行写入管理的方法、记忆装置和其控制器 | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10606758B2 (en) | Memory system and method of operating the same | |
TWI821151B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
US11714752B2 (en) | Nonvolatile physical memory with DRAM cache | |
TW202303379A (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
US11782788B2 (en) | Error-correction-detection coding for hybrid memory module | |
TWI806508B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
US11726669B2 (en) | Coherency locking schemes | |
CN109933467A (zh) | 存储器***及其操作方法 | |
US11645003B2 (en) | Memory system generating parity data based on written data and control method | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
TWI821152B (zh) | 儲存裝置、快閃記憶體控制器及其控制方法 | |
US11204719B2 (en) | Snap read optimization for media management for a memory sub-system | |
TWI781886B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR20220019570A (ko) | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120502 |