掌桥专利:专业的专利平台
掌桥专利
首页

存储器系统

文献发布时间:2023-06-19 10:03:37


存储器系统

本申请享受以日本专利申请2019-153745号(申请日:2019年8月26日)为基础申请的优选权。本申请通过参照该基础申请而包含基础申请的全部内容。

技术领域

本实施方式涉及存储器系统。

背景技术

在具有非易失性存储器的存储器系统中,有时会进行向非易失性存储器写入的数据的加密化等的使用随机数的处理。此时,希望高效地提高随机数的随机性。

发明内容

一个实施方式提供能够高效地提高随机数的随机性的存储器系统。

根据一个实施方式,提供具有非易失性存储器和控制器的存储器系统。非易失性存储器具有第1存储区域以及第2存储区域。第1存储区域以及第2存储区域分别包括多个存储单元。控制器进行第1处理、第2处理以及第3处理。第1处理是对于第1存储区域所包括的多个第1存储单元的处理。2处理是对于第1存储区域所包括的多个第2存储单元的处理。第3处理是对于第2存储区域所包括的多个第3存储单元的处理。存储单元与阈值电压相应地存储多个值。多个值至少包括第1值和在与阈值电压的关系上与第1值相邻的第2值。第1处理是使多个第1存储单元存储第1值、使多个第1存储单元的阈值电压中的最高的阈值电压为第1阈值电压的处理。第2处理是使多个第2存储单元存储第2值、使多个第2存储单元的阈值电压中的最低的阈值电压为比第1阈值电压高的第2阈值电压的处理。第3处理是使多个第3存储单元的阈值电压中的最低的阈值电压比第1阈值电压低、且使多个第3存储单元的阈值电压中的最高的阈值电压比第2阈值电压高的处理。

附图说明

图1是表示实施方式涉及的存储器系统的构成的图。

图2是表示实施方式中的非易失性存储器的构成以及动作的图。

图3的(a)~(e)是表示实施方式中的非易失性存储器的随机数产生动作的图。

图4是表示实施方式中的非易失性存储器的随机数生成动作的图。

图5是表示实施方式涉及的存储器系统的随机数生成动作的流程图。

图6是表示实施方式的第1变形例中的用于进行使用了随机数的加密化处理的构成的图。

图7是表示包括实施方式的第2变形例涉及的存储器系统的RAID系统中的内部读处理的执行定时的图。

图8是表示实施方式的第2变形例中的用于进行使用了随机数的内部读处理的构成的图。

标号说明

1、1-A~1-D存储器系统;2存储器控制器;3非易失性存储器;4主机;100RAID系统。

具体实施方式

以下参照附图对实施方式涉及的存储器系统进行详细的说明。此外,并不是通过该实施方式限定本发明。

(实施方式)

实施方式涉及的存储器系统具有非易失性存储器。在该存储器系统中,有时会进行向非易失性存储器写入的数据的加密化等的、使用随机数的预定处理。

在存储器系统中,有时进行生成伪随机数、并使用所生成的伪随机数进行预定处理。伪随机数的优点在于,由于不需要专用的硬件随机数生成器,因此能够使制造涉及的成本低廉。但是,在如加密化处理那样要求高随机性的处理中,有可能即使使用伪随机数也无法满足所要求的随机性。

与此相对,为了满足所要求的随机性,考虑在存储器系统中生成自然随机数(真随机数),使用所生成的自然随机数来进行预定处理。为了生成自然随机数,多会在存储器系统中追加硬件的随机数生成器。在该情况下,存储器系统的制造成本有可能变高。另外,为了实际安装追加部件,存在芯片和/或板块(board)的面积增大、系统的成本增大的可能性。

于是,在本实施方式中,通过在存储器系统中使非易失性存储器自身作为自然随机数产生器来进行动作,谋求兼顾系统成本的抑制和随机数的随机性的提高。

具体而言,在非易失性存储器内的预定的存储区域中进行形成跨特定读出电平的阈值电压分布的预定的写入处理(例如粗写入处理)。由此,存储器系统使得能够在非易失性存储器内的预定的存储区域中产生自然随机数。即,在存储器系统中,阈值电压分布可能受到由数据保持、读干扰、编程干扰等自然现象引起的随机性的影响。由于阈值电压分布跨特定的读出电平,因此,当在从预定的存储区域以特定的读出电平进行读出处理时,读出结果成为具有由自然现象引起的随机性的混合存在“0”和“1”的数据。因此,该读出结果可以作为真随机数来使用。即,在存储器系统中,从已经搭载的非易失性存储器生成真随机数,因此,不需要追加专用的硬件随机数生成器,就能够生成真随机数。

更具体而言,存储器系统1可以为如图1所示那样构成。图1是表示存储器系统1的构成的图。

存储器系统1能够经由通信介质(例如串行线缆)与主机4连接,能够在与主机4连接的状态下作为对于主机4的外部存储装置发挥功能。存储器系统1例如既可以是SSD(Solid State Drive,固态硬盘装置)等储存设备,也可以是存储卡等的能够携带的存储设备。主机4例如也可以是个人计算机、便携终端等的电子设备。存储器系统1具备存储器控制器2和非易失性存储器3。

非易失性存储器3是以非易失的方式存储数据的存储器,例如是NAND型闪速存储器(以下简称为NAND存储器)。在以下的说明中,例示了使用NAND存储器来作为非易失性存储器3的情况,但也可以使用三维构造闪速存储器、ReRAM(Resistive Random AccessMemory,阻变随机访问存储器)、FeRAM(Ferroelectric Random Access Memory,铁电随机访问存储器)、MRAM(Magnetoresistive Random Access Memory,磁阻随机访问存储器)等的NAND存储器以外的存储介质来作为非易失性存储器3。另外,非易失性存储器3并不必须为半导体存储器,也可以对半导体存储器以外的各种存储介质应用本实施方式。

存储器控制器2例如是作为SoC(System On a Chip,片上系统)来构成的半导体集成电路。存储器控制器2按照来自主机4的写入要求,控制向非易失性存储器3的写入处理。另外,存储器控制器2按照来自主机4的读出要求,控制从非易失性存储器3的读出处理。存储器控制器2具备主机接口(I/F)21、RAM(Random Access Memory,随机访问存储器)24、存储器接口(I/F)25、控制部23、ECC(Error Check and Correct,错误检查和纠正)部(编码处理部)26以及缓冲存储器22。主机I/F21、存储器I/F25、控制部23、RAM24、缓冲存储器22以及ECC部26经由内部总线20相互连接。对于存储器控制器2中的各功能,既可以全部由专用硬件来实现,也可以全部由执行固件的处理器来实现。或者,对于存储器控制器2中的各功能,也可以其一部分由专用硬件来实现,其余由执行固件的处理器来实现。

主机I/F21向内部总线20输出从主机4接收到的写入要求以及读出要求和/或用户数据等。另外,主机I/F21向主机4发送从非易失性存储器3读出的用户数据和/或来自控制部23的响应等。

存储器I/F25基于控制部23的指示,执行向非易失性存储器3写入数据等的写入处理以及从非易失性存储器3读出数据等的读出处理。

ECC部26通过对用户数据进行编码化来生成错误检测纠正用的奇偶校验码(parity),并且,生成包括用户数据和奇偶校验码的代码文。另外,ECC部26对从非易失性存储器3读出的代码文进行解码,复原用户数据。

RAM24例如是如SRAM(Static RAM,静态RAM)那样的半导体存储器,作为控制部23执行处理时的工作存储器来使用。在RAM24中,根据需要加载有用于管理非易失性存储器3的固件和/或地址变换表等的各种管理表等。

控制部23对存储器系统1进行总括地控制。控制部23例如由CPU(CentralProcessing Unit,中央处理单元)、MPU(Micro Processing Unit,微处理单元)构成。

控制部23当从主机4经由主机I/F21接收到要求时,进行按照该要求的控制。例如,控制部23在被输入了来自主机4的写入要求的情况下,对存储器I/F25指示向非易失性存储器3写入用户数据。控制部23在被输入了来自主机4的读出要求的情况下,向存储器I/F25指示从非易失性存储器3读出用户数据的读出处理。

缓冲存储器22作为暂时性地保存写入用户数据、读出用户数据、内部管理数据等的存储区域发挥功能。该缓冲存储器22例如可以由DRAM(包括Dynamic RAM(动态RAM)、SDRAM(Synchronous DRAM(同步DRAM)))和/或SRAM构成。

非易失性存储器3包括多个块(Block),存储器控制器2能够以来源于块的单位(例如将块分为多个的簇(cluster)单位)对数据进行管理。存储器控制器2能够分别将多个块中的一部分块分配给自然随机数产生区域3b以及管理信息保存区域3c、并将其余块分配给储存区域3a来使用。存储器控制器2也可以生成表示各块的分配结果的块管理信息。存储器控制器2也可以将块管理信息3c4保存于管理信息保存区域3c。

块是数据擦除的单位。各块在相互离开而交叉的多条字线和多条位线的交叉位置具有存储单元。图2是表示1个块的构成例的电路图。

块BLK具有多个串(string)单元SU0~SU3。多个串单元SU0~SU3与多条选择栅极线SGDL0~SGDL3对应,并且,共用选择栅极线SGSL。各串单元SU0~SU3作为物理块BLK中的驱动单位发挥功能。各串单元SU0~SU3能够由多条选择栅极线SGDL0~SGDL3中的所对应的选择栅极线和选择栅极线SGSL来驱动。另外,各串单元SU0~SU3包括多个存储串MST。

各存储串MST例如包括64个存储单元晶体管MT(MT0~MT63)以及选择晶体管SDT、SST。存储单元晶体管MT具有控制栅极和电荷蓄积膜,以非易失的方式保持数据。并且,64个存储单元晶体管MT(MT0~MT63)串联连接在选择晶体管SDT的源极和选择晶体管SST的漏极之间。此外,存储串MST内的存储单元晶体管MT的个数不限定于64个。

位线BL0~BLp(在不区别各位线的情况下,设为由BL表示)与存储串MST连接。在选择晶体管SDT导通时,存储串MST内的各存储单元晶体管MT的沟道区域能够与位线BL导通。在各位线BL连接有感测放大器电路SAC内的多个感测放大器(sense amplifier)SA0~Sap中的所对应的感测放大器SA。

字线WL0~WL63(在不区别各字线的情况下,设为由WL表示)在物理块BLK内的各串单元SU内的各存储串MST间共同地连接于存储单元晶体管MT的控制栅极。也即是,在物理块BLK内的各串单元SU中位于同一行的存储单元晶体管MT的控制栅极与同一字线WL连接。即,物理块BLK的串单元SU包括与多条字线WL对应的多个存储单元组群MCG,各存储单元组群MCG包括与同一字线WL连接的(p+1)个存储单元晶体管MT。在构成为能够在各存储单元晶体管MT保持1位的值的情况(以单层单元(Single Level Cell,SLC)模式进行工作的情况)下,与同一字线WL连接的(p+1)个存储单元晶体管MT(即存储器组群MCG)作为一个物理页来处理,按该物理页进行数据的写入处理和数据的读出处理。

有时构成为能够在各存储单元晶体管MT保持多位的值。例如,在各存储单元晶体管MT能够存储n(n≧2)位的值的情况下,每条字线WL的存储容量成为与n个物理页量的尺寸(size,容量)相等。即,各存储单元组群MCG作为n个物理页来处理。例如,在各存储单元晶体管MT为存储2位的值的多层单元(Multi Level Cell,MLC)模式时,在各字线WL保持2个物理页量的数据。或者,在各存储单元晶体管MT为存储3位的值的三层单元(Triple levelcell,TLC)模式时,在各字线WL保持3个物理页量的数据。

存储器控制器2有时在以预定块对非易失性存储器3的储存区域3a(参照图1)进行了擦除处理之后,会在SLC模式下进行第1写入处理。第1写入处理包括第1写入条件。例如,存储器控制器2向非易失性存储器3发布对通过第1写入处理向储存区域3a中的某物理地址写入数据进行指示的第1命令。

非易失性存储器3按照第1命令,从管理信息保存区域3c(参照图1)读出写入控制信息3c1,按照写入控制信息3c1来决定第1写入条件。在该情况下,多个存储单元的阈值电压分布成为如图3的(a)所示那样。处于未被写入数据的擦除状态的多个存储单元(多个第1存储单元)呈现由“E”表示的阈值电压分布,处于被写入了数据的编程状态的多个存储单元(多个第2存储单元)呈现由“P”表示的阈值电压分布。阈值电压分布“P”形成在比阈值电压分布“E”靠高电压一侧。第1写入条件是使得形成图3的(a)所示的多个阈值电压分布(即阈值电压分布“E”以及阈值电压分布“P”)的写入条件。各存储单元与阈值电压相应地存储多个值。该多个值包括第1值(例如与阈值电压分布“E”对应的1位的值“1”)和在与阈值电压的关系上与第1值相邻的第2值(例如与阈值电压分布“P”对应的1位的值“0”)。将阈值电压分布“E”所包含的多个阈值电压中的最高的阈值电压设为VtEmax,将阈值电压分布“P”所包含的多个阈值电压中的最低的阈值电压设为VtPmin。此时,对于多个第1存储单元的擦除处理是使多个第1存储单元的阈值电压中的最高的阈值电压为VtEmax的处理。对于多个第2存储单元的擦除处理及其之后的按照第1写入条件的第1写入处理是使多个第1存储单元的阈值电压中的最低的阈值电压为VtPmin(>VtEmax)的处理。

此时,向各存储单元MT的第1写入处理能够以如下的ISPP(Incremental StepPulse Program,递增步阶脉冲编程)方式来进行,该方式为:一边使施加于字线的写入电压增加,直到在验证电平(verification level)Vf1下验证通过(pass),一边交替地反复进行写入动作和验证动作。验证电平Vf1是比读出电平Vrd高的电平,是比阈值电压分布“P”的中心的目标电平Vpc低阈值电压分布“P”的电压宽度ΔVp的大致一半的电压ΔVp/2而得到的电平。由此,阈值电压分布“P”能够被适当地进行调整。另外,存储器控制器2也可以对于进行了第1写入处理的块更新块管理信息3c4,使更新后的块管理信息3c4保存于管理信息保存区域3c。

存储器控制器2对于非易失性存储器3的储存区域3a(参照图1),在SLC模式下进行读出处理。该读出处理包括第1读出条件。例如,存储器控制器2向非易失性存储器3发布对通过读出处理从储存区域3a中的某理地址读出数据进行指示的第2命令。

非易失性存储器3按照第2命,从管理信息保存区域3c(参照图1)读出读出控制信息3c2,按照读出控制信息3c2来决定第1读出条件。在该情况下,存储器控制器2使用SLC模式用的读出电平Vrd,从储存区域3a读出数据。读出电平Vrd是多个阈值电压分布(即阈值电压分布“E”以及阈值电压分布“P”)之间的电平。即,第1读出条件是使得使用图3的(a)所示的多个阈值电压分布之间的读出电平Vrd的读出条件。阈值电压分布“E”中的最高的阈值电压VtEmax比读出电平Vrd低。阈值电压分布“P”中的最低的阈值电压VtPmin(大致等于验证电平Vf1)比读出电平Vrd高。

此时,在非易失性存储器3中,位线BL和所对应的感测放大器SA中的感测节点被预充电到预定的电平,向选择字线WL施加读出电平Vrd。

在与选择字线WL连接的存储单元MT写入有数据的情况(阈值电压分布“P”的情况)下,存储单元MT保持截止(off)不变,难以向位线BL流动单元电流,因此,能保持感测节点的电压。感测放大器SA按照保持感测节点的电压而判定为存储单元MT保持数据“0”。非易失性存储器3向存储器控制器2输出该判定结果来作为读出数据。

在与选择字线WL连接的存储单元MT未被写入有数据的情况(阈值电压分布“E”的情况)下,存储单元MT导通(on),在位线BL流动单元电流,因此,感测节点的电压被放电释放。感测放大器SA按照感测节点的电压被放电释放而判定为存储单元MT保持数据“1”。非易失性存储器3向存储器控制器2输出该判定结果来作为读出数据。

这样,在存储器系统1中,各存储单元MT能够以其阈值电压来表现“0”和“1”。在本实施方式的存储器系统1中,利用存储单元MT的阈值电压的分布特性来作为物理现象,得到自然随机数。

例如,存储器控制器2能够对于非易失性存储器3的自然随机数产生区域3b(参照图1),在SLC模式下进行第2写入处理。第2写入处理包括第2写入条件。例如,存储器控制器2向非易失性存储器3发布对通过第2写入处理向自然随机数产生区域3b的某物理地址写入用于产生自然随机数的数据(例如全部为“0”)进行指示的第3命令。

非易失性存储器3按照第3命令,从管理信息保存区域3c(参照图1)读出写入控制信息3c3,按照写入控制信息3c3来决定第2写入条件。在该情况下,多个存储单元的阈值电压分布能够成为如图3的(b)所示那样。

第2写入条件是使得形成如图3的(b)所示那样的跨读出电平Vrd的阈值电压分布(例如阈值电压分布“WP1”)的写入条件。另外,第2写入条件也可以是使得向存储单元MT粗略地写入数据的条件,第2写入处理也可以是粗写入处理(Rough Write处理)。在第2写入处理为粗写入处理的情况下,第2写入条件也可以是与第1写入条件相比容许(施加于字线的)写入电压的偏差的条件。即,在第2写入条件下形成的阈值电压分布(例如阈值电压分布“WP1”)与在第1写入条件下形成的编程状态的阈值电压分布(例如图3的(a)所示的阈值电压分布“P”)相比,分布的电压宽度能够变为更宽。阈值电压分布“WP1”中的最低的阈值电压(大致等于验证电平Vf2)比阈值电压分布“E”中的最高的阈值电压(参照图3的(a))VtEmax低。阈值电压分布“WP1”中的最高的阈值电压比阈值电压分布“P”中的最低的阈值电压VtPmin(大致等于验证电平Vf1)高。

第3命令也可以是对粗略地写入数据进行指示的Rough Write命令。存储器控制器2也可以按照Rough Write命令,对自然随机数产生区域3b的全部存储单元MT粗略地写入数据。处于被写入了数据的编程状态的存储单元能够呈现在图3(b)中由“WP1”表示的阈值电压分布。阈值电压分布“WP1”具有跨读出电平Vrd的电压范围。即,第2写入条件是使得形成跨读出电平Vrd的阈值电压分布(即阈值电压分布“WP1”)的写入条件。通过进行写入以使得存储单元的阈值电压成为作为0和1的判定阈值电压的读出电平Vrd附近,能够在读出时容易使0和1的判定反转。被进行了Rough Write的块的读出结果是包含由自然现象引起的偏差的自然随机数。

此时,向各存储单元MT的第2写入处理(例如粗写入处理)能够以如下的ISPP方式进行,该方式为:一边按照与第1写入条件相比容许施加于字线的写入电压的偏差的第2写入条件,使写入电压增加直到在验证电平Vf2下验证通过,一边交替地反复进行写入动作和验证动作。由此,阈值电压分布“WP1”被适当地进行调整。验证电平Vf2是比读出电平Vrd低在第2写入条件下形成的阈值电压分布的电压宽度的大致一半的电压(例如阈值电压分布“WP1”的电压宽度ΔVwp1的大致一半的电压ΔVwp1/2)而得到的电平。另外,存储器控制器2也可以对进行了第2写入处理的块更新块管理信息3c4,使更新后的块管理信息3c4保存于管理信息保存区域3c。

对于从被进行了Rough Write的块读出的数据,随着时间经过,每次进行读出时可能会变化。例如,通过第2写入处理进行了写入的自然随机数产生区域3b的块的各存储单元MT的阈值电压分布“WP1”有可能因环境变动(例如周围温度的变动以及/或者工作电源的变动等)的影响,从图3的(b)所示的状态如图3的(c)所示那样向低电压侧移动,或者从图3的(b)所示的状态如图3的(d)所示那样向高电压侧移动。通过使第2写入处理为粗写入处理,即使如图3的(b)~图3的(d)所示那样发生由环境变动的影响引起的阈值电压分布的移动,阈值电压分布也能够维持跨读出电平Vrd的状态。

此外,即使发生图3的(b)~图3的(d)所示的阈值电压分布的移动,作为阈值电压分布所包含的自然现象的随机性也得到维持。即,在图3的(b)~图3的(d)所示的阈值电压分布中,读出可得的位值“0”和“1”的比例可能不同,但关于阈值电压分布内的哪个存储单元MT取得位值“0”或者“1”的随机性能够变得均等。

存储器控制器2也可以对于非易失性存储器3的自然随机数产生区域3b(参照图1),在SLC模式下以第1读出条件进行读出处理。例如,存储器控制器2向非易失性存储器3发布对通过读出处理从自然随机数产生区域3b的某物理地址读出数据进行指示的第4命令。

非易失性存储器3按照第4命令,从管理信息保存区域3c(参照图1)读出读出控制信息3c2,按照读出控制信息3c2来决定第1读出条件。在该情况下,存储器控制器2使用SLC模式用的读出电平Vrd,从自然随机数产生区域3b读出数据。

此时,在非易失性存储器3中,位线BL和所对应的感测放大器SA内的感测节点被预充电到预定的电平,在选择字线WL施加读出电平Vrd。

在与选择字线WL连接的存储单元MT为在阈值电压分布“WP1”内分布在比读出电平Vrd靠高电压一侧(例如在图3的(b)内为比Vrd靠右一侧)的存储单元MT的情况下,存储单元MT保持截止不变,在位线BL难以流动单元电流,因此,感测节点的电压被保持。感测放大器SA按照感测节点的电压被保持而判定为存储单元MT保持数据“0”。非易失性存储器3向存储器控制器2输出该判定结果来作为读出数据。

在与选择字线WL连接的存储单元MT为在阈值电压分布“WP1”内分布在比读出电平Vrd靠低电压一侧(例如在图3的(b)内为比Vrd靠左一侧)的存储单元MT的情况下,存储单元MT导通,在位线BL流动单元电流,因此,感测节点的电压被放电释放。感测放大器SA按照感测节点的电压被放电释放而判定为存储单元MT保持数据“1”。非易失性存储器3向存储器控制器2输出该判定结果来作为读出数据。

由此,存储器控制器2能够利用存储单元MT的阈值电压的分布特性来作为物理现象(自然现象),从非易失性存储器3读出包含自然现象的随机性的数据,能够得到自然随机数。

此外,在能够忽略环境变动的影响的情况下,第2写入条件也可以是如图3的(e)所示那样使得以与第1写入条件同样的阈值电压分布宽度向存储单元MT写入数据的条件,对于第2写入处理,除了将读出电平Vrd附近作为目标来进行写入之外,是与第1写入处理同样的写入处理。即,在第2写入条件下形成的阈值电压分布(例如阈值电压分布“P1”)是使得形成如下的阈值电压分布的写入条件,该阈值电压分布为:跨读出电平Vrd,并且,具有与第1写入条件的阈值电压分布宽度(例如图3的(a)所示的阈值电压分布“P”的电压宽度ΔVp)大致相等的电压宽度(例如图3的(e)所示的阈值电压分布“P1”的电压宽度ΔVp1≈ΔVp)。

此时,向各存储单元MT的第2写入处理能够以如下的ISPP方式进行,该ISPP方式为:一边使施加于字线的写入电压增加,直到在验证电平Vf3下验证通过,一边交替地反复进行写入动作和验证动作。验证电平Vf3是比读出电平Vrd低在第1写入条件下形成的阈值电压分布的电压宽度的大致一半的电压而得到的电平。由此,阈值电压分布“P1”能够被适当地进行调整。阈值电压分布“P1”中的最低的阈值电压(大致等于验证电平Vf3)比阈值电压分布“E”中的最高的阈值电压(参照图3的(a))低。阈值电压分布“P1”中的最高的阈值电压比阈值电压分布“P”中的最低的阈值电压(大致等于验证电平Vf1)高。

此外,存储第1值的多个存储单元不限于处于擦除状态的存储单元。也可以使被编程了特定数据的多个存储单元为存储第1值的多个存储单元。在该情况下,第2值也是在与阈值电压的关系上与第1值相邻的值。例如,也可以在跨通过多层单元(MLC)模式的写入处理形成的四个阈值电压分布“E”,“A”,“B”,“C”中的、除去处于擦除状态的阈值电压分布“E”之外的相邻的两个阈值电压分布的阈值电压范围进行粗略的写入动作,以相邻的两个阈值电压分布之间的读出电压进行读出动作。在两个阈值电压分布为阈值电压分布“A”、“B”的情况下,例如第1值为“10”,第2值为“00”。在两个阈值电压分布为阈值电压分布“B”、“C”的情况下,例如第1值为“00”,第2值为“01”。

存储器控制器2也可以如图4所示那样进行多次的从自然随机数产生区域3b读出数据的读出处理。图4是表示非易失性存储器3的随机数生成动作的图,例示了从分配于自然随机数产生区域3b的块A多次读出数据的动作。在图4中,例示了在对块A进行了粗略的写入(Rough Write)动作之后进行4次读出动作的情况。第一次从块A读出的数据(Read data)成为“b0010111011101110……”。第二次从块A读出的数据(Read data)成为“b0001101011001111……”。第三次从块A读出的数据(Read data)成为“b1010101011101100……”。第四次从块A读出的数据(Read data)成为“b1110111001101101……”。如图4所示,从自然随机数产生区域3b读出的数据在空间上的随机性的基础上还包含时间上的随机性。因此,通过整合多个读出结果,也能够生成自然随机数。

此外,每当读出时所读出的数据会变化的理由不仅是由于在0和1的判定阈值电压(即读出电平Vrd)附近进行写入,也包含各存储单元受到数据保持、编程干扰以及读干扰的影响。数据保持是当经过时间时对象存储单元的数据会变化的现象。编程干扰是因施加与编程对象存储单元的附近的存储单元连接的字线或者位线电压而该存储单元的数据会变化的现象。读干扰是因对与读对象存储单元的附近的存储单元连接的字线施加电压而该存储单元的数据会变化的现象。非易失性存储器3中的这些特性(即数据保持、编程干扰、读干扰)包含由自然现象引起的随机性,因此,能够利用这些来生成自然随机数。

接着,使用图5对用于生成自然随机数的存储器系统的动作进行说明。图5是表示存储器系统的动作的流程图。

存储器控制器2从非易失性存储器3的自然随机数产生区域3b选择写入对象的块(对象块),检查对象块的状态(S1)。存储器控制器2也可以通过从块管理信息3c4读出管理信息保存区域3c,并参照块管理信息3c4,从而检查对象块的状态。存储器控制器2判断是否未对对象块写入自然随机数产生用的数据(例如全部为“0”)(S2)。

若在对象块未写入数据(S2中为“是”),则存储器控制器2通过第2写入处理向对象块写入数据(S3)。若完成向对象块的数据的写入(S2中为“否”),则存储器控制器2跳过步骤S3。存储器控制器2通过使用了特定读出电平的读出处理从对象块读出数据,保持读出结果(S4)。存储器控制器2将通过步骤S4保持的读出结果作为自然随机数来使用,进行预定处理(S5)。

如上所述,在实施方式中,使得在存储器系统1中使非易失性存储器3自身作为自然随机数产生器来工作。由此,能够兼顾系统成本的抑制和随机数的随机性的提高。

此外,在实施方式中,在存储器系统1中,作为随机数,不是得到伪随机数,而是得到利用了自然现象的随机性的自然随机数。自然随机数的熵(entropy)高,因此,与伪随机数相比,能够生成更加没有模式(pattern)的随机数。自然随机数对加密化处理来说是优选的。

例如,在图5的步骤S5中进行的预定处理也可以是加密化处理。此时,存储器系统1中的存储器控制器2在功能上能够构成为如图6所示那样。图6是表示实施方式的第1变形例中的用于进行使用了随机数的加密化处理的构成的图。

存储器控制器2具有随机数生成模块2a、块管理模块2b、认证模块2c以及加密化模块2d。

块管理模块2b能够从管理信息保存区域3c读出块管理信息3c4,对非易失性存储器3中的多个块进行管理。块管理模块2b能够根据块管理信息3c4,掌握哪个块分别被分配给储存区域3a、自然随机数产生区域3b、管理信息保存区域3c。

随机数生成模块2a询问块管理模块2b,确定分配给自然随机数产生区域3b的块。随机数生成模块2a进行图5所示的处理,得到自然随机数。随机数生成模块2a向加密化模块2d供给所得到的自然随机数。

认证模块2c在主机4连接于存储器系统1时或者从主机4第一次向存储器系统1发送了主机4的识别信息时等,对主机4进行认证。在认证模块2c也可以设定有记录了能够连接的主机的识别信息的主机管理信息。认证模块2c判断从主机4接收到的主机4的识别信息是否包含于主机管理信息,若主机4的识别信息包含于主机管理信息,则判断为主机4是能够信赖的主机。

认证模块2c当从主机4接收到主机4的识别信息和主机写命令时,按照主机4的识别信息,对主机4进行认证。主机写命令包含写入要求和写入数据。当主机4的认证成功时,认证模块2c向加密化模块2d供给主机写命令。

加密化模块2d从随机数生成模块2a接受自然随机数,从认证模块2c接受主机写命令。加密化模块2d使用自然随机数,生成用于进行加密化的密钥信息2d1。密钥信息2d1使用自然随机数来生成,因此,能够设为随机性高的模式。密钥信息2d1包括加密密钥。加密化模块2d用密钥信息2d1对主机写命令所包含的写入数据进行加密化,使加密化后的数据写入储存区域3a。

认证模块2c当从主机4接收到主机4的识别信息和主机读命令时,按照主机4的识别信息,对主机4进行认证。当主机4的认证成功时,认证模块2c向加密化模块2d提供主机读命令。

加密化模块2d按照主机读命令,从储存区域3a读出被加密化了的数据。加密化模块2d用密钥信息2d1对被加密化了的数据进行解码,向认证模块2c提供被解码后的数据。

认证模块2c向主机4发送被解码后的数据。

这样,在存储器系统1中,使非易失性存储器3自身作为自然随机数产生器来工作,当生成自然随机数(真随机数)时,能够使用对加密化来说优选的真随机数,能够提高加密化的可靠性。

除了加密化之外,当使用真随机数时,还存在各种各样的对存储器系统1的功能的改善。例如,在存储器系统1为SSD(Solid State Drive,固态硬盘装置)的情况下,如图7所示,有时用多个存储器系统1-A~1-D组成RAID(Redundant Arrays of lnexpensiveDisks,廉价冗余磁盘阵列)系统100。图7是表示包括实施方式的第2变形例涉及的存储器系统1的RAID系统100中的内部读处理的执行定时的图。

例如,在图5的步骤S5中进行的预定处理也可以是对内部读处理的定时进行时序安排(scheduling)的处理。此时,考虑在各存储器系统1的内部读处理(例如巡读(PatrolRead)处理)的时序安排中加入随机性。巡读处理是指用于读出在存储器系统1的非易失性存储器3中记录的数据、定期地检测错误是否增加的处理。在用相同模型的存储器系统1组成RAID系统100来使用的情况下,当全部存储器系统1-A~1-D同时进行巡读时,相对于主机命令,作为RAID系统100整体,性能会变差。为了避免该状况,利用在各存储器系统1中生成的自然随机数来生成定时信息,按照该定时信息使进行巡读处理的定时错开。

此时,各存储器系统1中的存储器控制器2在功能上能够构成为如图8所示那样。图8是表示实施方式的第2变形例中的用于进行使用了随机数的内部读处理的构成的图。

存储器控制器2具有随机数生成模块2a、块管理模块2b、内部读管理模块2e以及命令处理模块2f。

块管理模块2b能够从管理信息保存区域3c读出块管理信息3c4,对非易失性存储器3的多个块进行管理。块管理模块2b能够按照块管理信息3c4,掌握哪个块分布被分配给储存区域3a、自然随机数产生区域3b、管理信息保存区域3c。

随机数生成模块2a询问块管理模块2b,确定分配给自然随机数产生区域3b的块。随机数生成模块2a进行图5所示的处理,得到自然随机数。随机数生成模块2a向内部读管理模块2e提供所得到的自然随机数。

内部读管理模块2e从随机数生成模块2a接受自然随机数。内部读管理模块2e使用自然随机数,生成用于决定内部读处理的执行定时的定时信息2e1。定时信息2e1使用自然随机数来生成,因此,能够设为随机性高的模式。定时信息2e1例如也可以是计时器的计数目标值。

例如,RAID系统100中的各存储器系统1的内部读管理模块2e同时开始计时器的计数,在计时器的计数值与由定时信息2e1表示的计数目标值一致的定时进行内部读处理(例如巡读处理)。由此,能够设为对如图7所示的多个存储器系统1-A~1-D在相互随机的定时进行内部读处理。在图7的情况下,多个存储器系统1-A~1-D在时间t1的前后相互不同的定时执行内部读处理。多个存储器系统1-A~1-D在时间t2的前后相互的不同的定时执行内部读处理。多个存储器系统1-A~1-D在时间t3的前后相互不同的定时执行内部读处理。

在各存储器系统1中,当内部读处理完成时,内部读管理模块2e也可以向命令处理模块2f通知内部读处理的完成。由此,命令处理模块2f成为能够执行主机命令的状态。命令处理模块2f能够从主机4接收主机命令,并执行所接收到的主机命令。

这样,在用多个存储器系统1组成RAID系统100的情况下,通过对各存储器系统1的内部读处理(例如巡读处理)的时序安排加入随机性,能够作为整体来提高包括多个存储器系统1的RAID系统100的性能。

以上对几个实施方式进行了说明,但这些实施方式是作为例子提示的,并不是意在限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,能够在不脱离发明的宗旨的范围内进行各种省略、置换、变更。这些实施方式及其变形包含在发明的范围、宗旨内,并且,包含在权利要求书记载的发明及其等同的范围内。

相关技术
  • 交叉点存储器单元、非易失性存储器阵列、读取存储器单元的方法、编程存储器单元的方法、写入到存储器单元及从存储器单元读取的方法,及计算机系统
  • 存储器、存储器系统、存储器的操作方法和存储器系统的操作
技术分类

06120112408453