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

存储装置及其操作方法

文献发布时间:2023-06-19 12:14:58


存储装置及其操作方法

相关申请的交叉引用

本申请要求于2020年2月17日提交的申请号为10-2020-0018811的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。

技术领域

本公开的各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储装置和操作存储装置的方法。

背景技术

通常,存储装置在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可以包括被配置为存储数据的存储器装置,以及被配置为控制存储器装置的存储器控制器。存储器装置可以是易失性存储器装置或非易失性存储器装置。

易失性存储器装置仅在向其供应电力时存储数据;当电力被关断时,所存储的数据丢失。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。

在非易失性存储器装置中,即使在电力被关断时也保留所存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。

发明内容

本公开的各个实施例涉及一种具有提高的写入性能的存储装置和操作存储装置的方法。

本公开的实施例可以提供一种存储装置,包括:存储器装置;以及存储器控制器,被配置为:响应于从主机接收的写入请求来生成指示编程操作的开始的检查开始(check-in)信息,控制存储器装置以执行将从主机接收的数据存储在存储器装置的目标区域中的编程操作,生成指示编程操作是否已经成功的检查完成(check-out)信息,并且响应于从主机接收到的写入返回请求,将包括检查完成信息的写入结果响应提供到主机。

本公开的实施例可以提供一种操作存储装置的方法,包括:响应于从主机接收的写入请求,生成指示待被执行编程操作的目标区域的检查开始信息;将指示是否已经接收到写入请求的写入请求检查响应提供到主机;使用认证密钥和从主机接收的数据,生成指示数据是否具有完整性的认证信息;基于认证信息,执行将数据存储在目标区域的数据区域中的编程操作;生成指示编程操作是否已经成功的检查完成信息;并且响应于从主机接收的结果返回请求,将包括检查完成信息的写入结果响应提供到主机。

本公开的实施例可以提供一种操作存储装置的方法,包括:响应于从主机接收的写入请求,生成指示待被执行编程操作的目标区域的检查开始信息;将指示是否已经接收到写入请求的写入请求检查响应提供到主机;执行将数据存储在目标区域的数据区域中的编程操作;在编程操作已经完成之后,生成指示编程操作是否已经成功的检查完成信息;并且响应于从主机接收的结果返回请求,将包括检查完成信息的写入结果响应提供到主机。

本公开的实施例可以提供一种操作控制器的方法,包括:响应于安全写入请求,控制存储器装置以将所提供的认证码和写入数据存储到保护存储块(PMB)中;当突然断电后通电时,基于所存储的认证码和认证密钥对所存储的写入数据进行认证;并且当认证成功时,控制存储器装置以将认证信息存储到PMB中。

附图说明

图1是示出根据本公开的实施例的存储装置的示图。

图2是示出诸如图1的存储器装置的存储器装置的配置的示图。

图3是示出诸如图2的存储器单元阵列的存储器单元阵列的示图。

图4是示出诸如图1的存储器控制器的存储器控制器的配置和操作的示图。

图5是用于描述根据实施例的目标区域的示图。

图6是示出诸如图4的检查信息生成器的检查信息生成器的示图。

图7A是示出根据实施例的诸如图4的认证控制器的认证控制器的示图。

图7B是示出根据另一实施例的诸如图4的认证控制器的认证控制器的示图。

图8是用于描述根据实施例的响应于写入请求而执行的操作的示图。

图9是用于描述根据实施例的响应于写入请求而执行的操作的示图。

图10是用于描述根据实施例的响应于写入请求而执行的操作的示图。

图11是用于描述当发生突然断电事件时的数据处理操作的示图。

图12是示出诸如图1的存储器控制器的存储器控制器的示例的示图。

图13是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。

图14是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。

图15是示出应用了根据本公开的实施例的存储装置的用户系统的框图。

具体实施方式

虽然下面描述了本发明的各个实施例,但是本领域技术人员基于本公开将认识到的是,本发明可以以各种其他形式和方式来实现。因此,本发明不限于或受限于本文所呈现的任何特定实施例或细节。在下文中,参照附图详细描述本发明的实施例。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对同一实施例。

图1是示出根据本公开的实施例的存储装置50的示图。

参照图1,存储装置50可以包括存储器装置100和被配置为控制存储器装置100的操作的存储器控制器200。存储装置50可以被配置为在诸如以下的主机300的控制下存储数据:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。

根据作为与主机300通信的通信协议的主机接口,存储装置50可以被配置为各种存储装置中的任意一种。例如,存储装置50可以被配置为:SSD,MMC、eMMC、RS-MMC或微型MMC型多媒体卡,SD、迷你SD、微型SD型安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和/或记忆棒。

存储装置50可以以各种封装类型中的任意一种的形式来制造。例如,存储装置50可以以如下的形式来制造:堆叠式封装(POP)类型、系统级封装(SIP)类型、片上系统(SOC)类型、多芯片封装(MCP)类型、板上芯片(COB)类型、晶圆级制造封装(WFP)类型和/或晶圆级堆叠封装(WSP)类型。

存储器装置100可以将数据存储在其中。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括被配置为将数据存储在其中的多个存储器单元。

存储器单元可以是能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。

存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。每个存储块可以包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中或从存储器装置100读取所存储的数据的单位。

每个存储块可以是擦除数据的单位。在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移扭矩随机存取存储器(STT-RAM)。在本说明书中,通过示例的方式,在存储器装置100是NAND闪速存储器的背景下描述了本发明的特征和方面。

存储器装置100可以从存储器控制器200接收命令和地址,并且访问存储器单元阵列的由该地址选择的区域。换言之,存储器装置100可以对由该地址选择的区域执行由该命令指示的操作。例如,存储器装置100可以执行写入(编程)操作、读取操作和擦除操作中的任意一个。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。

存储器控制器200可以控制存储装置50的全部操作。

当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)。在存储器装置100是闪速存储器装置的情况下,存储器控制器200可以运行用于控制主机300和存储器装置100之间的通信的诸如闪速转换层(FTL)的固件。

在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),该PBA指示待被存储数据的存储器单元中的地址,该存储器单元包括在存储器装置100中。

存储器控制器200可以响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将写入命令、PBA和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和PBA提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和PBA提供到存储器装置100。

在实施例中,存储器控制器200可以在没有来自主机300的请求的情况下自主地生成命令、地址和数据,并且将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100,以执行诸如损耗均衡操作或垃圾收集操作的各种后台操作中的任意一种。

在实施例中,存储器控制器200可以控制两个或更多个存储器装置100。在这种情况下,存储器控制器200可以以交错方式控制存储器装置100,以便提高操作性能。在交错方案中,至少两个存储器装置100的操作时段可以重叠。

存储器控制器200可以从主机300接收针对安全写入操作的请求。响应于来自主机300的每个请求,存储器控制器200可以将与该请求相对应的响应提供到主机300。存储器控制器200可以控制存储器装置100以执行安全写入操作。

存储器控制器200可以从主机300接收写入请求和写入数据。响应于写入请求,存储器控制器200可以将写入请求检查响应提供到主机300,写入请求检查响应指示是否已经接收到写入请求。当从存储器控制器200接收到写入请求检查响应时,主机300可以将结果请求提供到存储器控制器200。

存储器控制器200可以从主机300接收结果请求。响应于结果请求,存储器控制器200可以将结果请求检查响应提供到主机300,结果请求检查响应指示是否已经接收到结果请求。当从存储器控制器200接收到结果请求检查响应时,主机300可以将结果返回请求提供到存储器控制器200。

存储器控制器200可以从主机300接收结果返回请求。响应于结果返回请求,存储器控制器200可以将写入结果响应提供到主机300,该写入结果响应指示写入请求的结果。写入结果响应可以指示针对写入数据的编程操作是否已成功以及写入数据是否具有完整性。写入数据的完整性可以指示所接收到的写入数据是否已被损害或失真。

在实施例中,存储器控制器200可以包括操作控制器210和认证控制器220。

操作控制器210可以响应于写入请求而生成检查开始信息,该检查开始信息指示编程操作开始。检查开始信息可以包括关于在存储器装置100的存储区域之中、待被执行编程操作的目标区域的信息。当从主机300接收到写入请求时,操作控制器210可以生成检查开始信息。

在实施例中,检查开始信息可以进一步包括从主机300接收到的主机认证码。可以基于主机300中的写入数据和认证密钥来生成主机认证码。认证密钥可以为了生成认证码而在主机300和存储装置50之间被设置为相同的值,认证密钥可以被预置。

操作控制器210可以生成指示针对写入数据的编程操作是否已成功的检查完成信息。在针对写入数据的编程操作已经完成之后,操作控制器210可以生成检查完成信息。详细地,检查完成信息可以包括指示编程操作是否已成功的编程通过/失败信息。在实施例中,检查完成信息可以进一步包括指示写入数据是否具有完整性的认证信息。

操作控制器210可以控制存储器装置100以将检查开始信息、写入数据和检查完成信息存储在存储器装置100的存储区域之中的目标区域中。

操作控制器210可以基于检查完成信息来更新与目标区域相对应的映射数据。

例如,操作控制器210可以基于检查完成信息来确定针对写入数据的编程操作是否已成功以及写入数据是否具有完整性。当针对写入数据的编程操作成功并且确定写入数据具有完整性时,操作控制器210可以更新与目标区域相对应的映射数据。当针对写入数据的编程操作失败或写入数据被损坏即不具有完整性时,操作控制器210可以保持与目标区域相对应的映射数据而不更新映射数据。

当发生突然断电事件时,操作控制器210可以控制存储器装置100以恢复数据。当存储装置从已生成检查开始信息之后发生的突然断电事件恢复时,操作控制器210可以控制存储器装置100读取存储器装置100的目标区域中存储的编程数据。操作控制器210可以生成包括认证信息的检查完成信息,该认证信息指示从存储器装置100读取的编程数据是否具有完整性。

认证控制器220可以验证从主机300接收到的写入数据的完整性。详细地,认证控制器220可以使用从主机300接收到的主机认证码、写入数据和认证密钥来生成指示写入数据是否具有完整性的认证信息。认证密钥可以为了生成认证码而在主机300和存储装置50之间被设置为相同的值。

认证控制器220可以使用写入数据和认证密钥来生成装置认证码。认证控制器220可以确定从主机300接收到的主机认证码与装置认证码是否匹配。

如果主机认证码与装置认证码匹配,则认证控制器220可以确定写入数据具有完整性。换言之,认证控制器220可以确定写入数据有效。如果主机认证码与装置认证码不匹配,则认证控制器220可以确定写入数据已经被损坏并且因此不具有完整性。换言之,认证控制器220可以确定写入数据无效。

在实施例中,认证控制器220可以验证从存储器装置100读取的编程数据的完整性。认证控制器220可以生成认证信息,该认证信息指示在由检查开始信息指示的目标区域中存储的编程数据是否具有完整性。

当存储装置从已生成检查开始信息之后发生的突然断电事件恢复时,认证控制器220可以使用认证密钥和从存储器装置100读取的编程数据来生成装置认证码。此处,认证控制器220可以确定检查开始信息中包括的主机认证码是否与装置认证码匹配。认证控制器220可以基于主机认证码和装置认证码之间的比较结果来生成指示编程数据是否具有完整性的认证信息。

在各个实施例中,可以基于消息认证码(MAC)来生成主机认证码和装置认证码。

主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)通信方法。

图2是示出图1的存储器装置100的配置的示图。

参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。

存储器单元阵列110可以包括多个存储块BLK1至BLKz,多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取/写入电路123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中的、联接到相同字线的存储器单元被定义为一个页面。换言之,存储器单元阵列110可以由多个物理页面形成。在实施例中,存储器单元阵列110中的存储块BLK1至BLKz中的每一个可以包括多个虚设单元。一个或多个虚设单元可以串联地联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。

存储器装置100的存储器单元中的每一个可以由能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)形成。

外围电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。

外围电路120可以驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,以执行编程操作、读取操作或擦除操作。

地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。在实施例中,字线可以包括普通字线和虚设字线。在实施例中,行线RL可以进一步包括管道选择线。

地址解码器121可在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。

地址解码器121可以解码所接收到的地址之中的块地址。地址解码器121可以根据经解码的块地址来选择存储块BLK1至BLKz中的至少一个。地址解码器121可以解码所接收到的地址之中的行地址。地址解码器121可以根据经解码的行地址选择所选择的存储块的字线中的至少一个。地址解码器121可以将利用电压生成器122供应的操作电压Vop施加到所选择的字线。

在编程操作期间,地址解码器121可以将编程电压施加到所选择的字线,并且将小于编程电压的读取通过电压施加到未选择字线。在编程验证操作期间,地址解码器121可以将验证电压施加到所选择的字线,并且将大于验证电压的验证通过电压施加到未选择字线。

在读取操作期间,地址解码器121可以将读取电压施加到所选择的字线,并且将大于读取电压的读取通过电压施加到未选择字线。

在实施例中,可以基于存储块执行存储器装置100的擦除操作。在擦除操作期间,待被输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址,并且根据经解码的块地址选择一个存储块。在擦除操作期间,地址解码器121可以将接地电压施加到与所选择的存储块联接的字线。

在本公开的实施例中,地址解码器121可以解码所传输的地址ADDR之中的列地址。经解码的列地址可以被传输到读取/写入电路123。例如,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。

电压生成器122可以使用供应到存储器装置100的外部电源电压生成多个操作电压Vop。电压生成器122可在控制逻辑130的控制下操作。

在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压可以用作存储器装置100的操作电压。

在实施例中,电压生成器122可以使用外部电源电压或内部电源电压生成多个操作电压Vop。电压生成器122可以生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。

电压生成器122可以包括被配置为接收内部电源电压的多个泵电容器,以生成具有各种电压电平的多个操作电压Vop,并且可以在控制逻辑130的控制下通过选择性地启用多个泵电容器来生成多个操作电压Vop。

所生成的操作电压Vop可以由地址解码器121被供应到存储器单元阵列110。

读取/写入电路123可以包括第一至第m页面缓冲器PB1至PBm,该第一至第m页面缓冲器PB1至PBm可以分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下操作。

第一至第m页面缓冲器PB1至PBm可以与数据输入/输出电路124进行数据DATA通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm可以通过数据输入/输出电路124和数据线DL接收待被存储的数据DATA。

在编程操作期间,当编程电压被施加到所选择的字线时,第一到第m页面缓冲器PB1至PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传输到所选择的存储器单元。基于所传输的数据DATA对所选择的页面中的存储器单元进行编程。联接到施加有编程启用电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。可以保留联接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm从所选择的存储器单元读取数据DATA。

在读取操作期间,读取/写入电路123可以通过位线BL从所选择的页面的存储器单元读取数据DATA,并且将所读取的数据DATA存储在第一至第m页面缓冲器PB1至PBm中。

在擦除操作期间,读取/写入电路123可以使位线BL浮置。在实施例中,读取/写入电路123可以包括列选择电路。

数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124可以在控制逻辑130的控制下操作。

数据输入/输出电路124可以包括多个用于接收输入数据DATA的输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待被存储的数据DATA。在读取操作期间,数据输入/输出电路124可以将从读取/写入电路123中的第一至第m页面缓冲器PB1至PBm接收到的数据DATA输出到外部控制器。

在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT而生成参考电流,将从读取/写入电路123接收到的感测电压VPB与由参考电流生成的参考电压进行比较,并且将通过信号或失败信号输出到控制逻辑130。

控制逻辑130可以联接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传输的命令CMD而操作。

控制电路130可以响应于命令CMD和地址ADD生成各种信号并控制外围电路120。例如,响应于命令CMD和地址ADDR,控制逻辑130可以生成操作信号OPSIG、地址ADDR、读取/写入电路控制信号PBSIGNALS和使能位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将地址ADDR输出到地址解码器121,将读取/写入控制信号输出到读取/写入电路123,并且将使能位VRYBIT输出到感测电路125。控制逻辑130可以响应于从感测电路125输出的通过信号PASS或失败信号FAIL,确定目标存储器单元在验证操作期间是已通过验证还是未通过验证。

图3是示出图2的存储器单元阵列的示图。

参照图3,第一至第z存储块BLK1至BLKz共同连接到第一至第m位线BL1至BLm。在图3中,因为存储块BLK2至BLKz中的每一个具有与第一存储块BLK1相同的配置,所以通过示例的方式,仅示出了多个存储块BLK1至BLKz之中的第一存储块BLK1的元件。

存储块BLK1可以包括多个单元串CS1_1至CS1_m(m是正整数)。第一至第m单元串CS1_1至CS1_m分别联接到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个包括漏极选择晶体管DST、彼此串联联接的多个存储器单元MC1至MCn(n是正整数)以及源极选择晶体管SST。

第一至第m单元串CS1_1至CS1_m的每一个中包括的漏极选择晶体管DST的栅极端子联接到漏极选择线DSL1。第一至第m单元串CS1_1至CS1_m的每一个中的第一至第n存储器单元MC1至MCn的栅极端子分别联接到第一至第n字线WL1至WLn。第一至第m单元串CS1_1至CS1_m的每一个中包括的源极选择晶体管SST的栅极端子联接到源极选择线SSL1。

通过示例的方式,描述了多个单元串CS1_1至CS1_m中的第一单元串CS1_1的配置。将理解的是,其他单元串CS1_1至CS1_m中的每一个具有与第一单元串CS1_1相同的配置。

第一单元串CS1_1中的漏极选择晶体管DST的漏极端子联接到第一位线BL1。第一单元串CS1_1中的漏极选择晶体管DST的源极端子联接到第一单元串CS1_1中的第一存储器单元MC1的漏极端子。第一至第n存储器单元MC1至MCn彼此串联地联接。第一单元串CS1_1中的源极选择晶体管SST的漏极端子联接到第一单元串CS1_1中的第n存储器单元MCn的源极端子。第一单元串CS1_1中的源极选择晶体管SST的源极端子联接到公共源极线CSL。在实施例中,公共源极线CSL可以共同联接到第一至第z存储块BLK1至BLKz。

漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1包括在图2的行线RL中。漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1由地址解码器121控制。公共源极线CSL由控制逻辑130控制。第一至第m位线BL1至BLm由读取/入写电路123控制。

图4是用于描述图1的存储器控制器200的配置和操作的示图。

参照图4,存储器控制器200可以包括操作控制器210和认证控制器220。

操作控制器210可以从主机300接收针对安全写入操作的请求REQ。响应于来自主机的每个请求REQ,操作控制器210可以将与请求REQ相对应的响应RES提供到主机300。

操作控制器210可以从主机300接收写入请求和写入数据W_DATA。响应于写入请求,操作控制器210可以将写入请求检查响应提供到主机300,该写入请求检查响应指示是否已经接收到写入请求。当从操作控制器210接收到写入请求检查响应时,主机300可以将结果请求提供到操作控制器210。

操作控制器210可以从主机300接收结果请求。响应于结果请求,操作控制器210可以将结果请求检查响应提供到主机300,该结果请求检查响应指示是否已经接收到结果请求。当从操作控制器210接收到结果请求检查响应时,主机300可以将结果返回请求提供到操作控制器210。

操作控制器210可以从主机300接收结果返回请求。响应于结果返回请求,操作控制器210可以基于检查完成信息CO_INF将写入结果响应提供到主机300,该写入结果响应指示写入请求的结果。换言之,写入结果响应可以包括检查完成信息CO_INF。写入结果响应可以指示是否已经成功执行了针对写入数据W_DATA的安全写入操作。换言之,写入结果响应可以指示写入数据W_DATA是否已经被成功地编程在存储器装置100上以及写入数据W_DATA是否具有完整性。写入结果响应可以指示所接收到的写入数据W_DATA是否具有完整性,即写入数据W_DATA是否已被损害或失真。在实施例中,操作控制器210可以基于从认证控制器220接收到的认证信息AUT_INF来确定写入数据W_DATA是否具有完整性。

操作控制器210可以生成检查开始信息CI_INF,该检查开始信息CI_INF包括指示存储器装置100的存储区域之中、待被执行与写入请求相对应的编程操作的目标区域的信息。在实施例中,检查开始信息CI_INF可以进一步包括从主机300接收到的主机认证码AUT_CODE(H)。可以基于主机300中的写入数据W_DATA和认证密钥来生成主机认证码AUT_CODE(H)。认证密钥可以为了生成认证码而在主机300和存储装置50之间被设置为相同的值,认证密钥可以在主机300中被预置。

操作控制器210可以生成指示针对写入数据的编程操作是否已成功的检查完成信息CO_INF。详细地,检查完成信息CO_INF可以包括指示编程操作是否已成功的编程通过/失败信息。在实施例中,检查完成信息CO_INF可以包括指示写入数据W_DATA是否具有完整性的认证信息AUT_INF。

操作控制器210可以基于检查完成信息CO_INF来更新与目标区域相对应的映射数据。

操作控制器210可以将用于执行安全写入操作的命令CMD提供到存储器装置100。当已发生突然断电事件时,操作控制器210可以将用于数据恢复的命令CMD提供到存储器装置100。

操作控制器210可以用于将检查开始信息CI_INF存储在目标区域中的包括起始点的检查开始区域中的编程命令提供到存储器装置100。操作控制器210可以将用于将写入数据W_DATA存储在目标区域的数据区域中的编程命令提供到存储器装置100。操作控制器210可以将用于将检查完成信息CO_INF存储在目标区域中的包括结束点的检查完成区域中的编程命令提供到存储器装置100。

如果存储装置从已生成检查开始信息CI_INF之后发生的突然断电事件恢复,则操作控制器210可以将用于读取存储器装置100的目标区域中存储的编程数据的命令提供到存储器装置100。操作控制器210可以从认证控制器220接收认证信息AUT_INF,该认证信息AUT_INF指示从存储器装置100读取的编程数据是否具有完整性。操作控制器210可以生成包括认证信息AUT_INF的检查完成信息CO_INF,该认证信息AUT_INF指示编程数据是否具有完整性。

在实施例中,操作控制器210可以包括检查信息生成器211和映射管理器212。

当从主机300接收到写入请求时,检查信息生成器211可以生成检查开始信息CI_INF。当针对写入数据W_DATA的编程操作完成时,检查信息生成器211可以生成检查完成信息CO_INF。在实施例中,检查信息生成器211可以生成包括认证信息AUT_INF的检查完成信息CO_INF。

映射管理器212可以基于检查完成信息CO_INF来更新与目标区域相对应的映射数据。例如,映射管理器212可以基于检查完成信息CO_INF来确定对写入数据W_DATA是否已经成功编程或者写入数据W_DATA是否具有完整性。如果对写入数据W_DATA成功编程并且认为写入数据W_DATA具有完整性,则映射管理器212可以更新与目标区域相对应的映射数据。如果针对写入数据W_DATA的编程操作失败并且写入数据W_DATA被损坏即不具有完整性,则映射管理器212可以保留与目标区域相对应的现有映射数据而不更新现有映射数据。

认证控制器220可以生成指示写入数据W_DATA是否具有完整性的认证信息AUT_INF。

详细地,认证控制器220可以使用从主机300接收到的主机认证码AUT_CODE(H)、写入数据W_DATA和认证密钥来验证写入数据W_DATA的完整性。认证密钥可以为了生成认证码而在主机300与存储装置50之间被设置为相同的值。

认证控制器220可以使用写入数据W_DATA和认证密钥来生成装置认证码。认证控制器220可以确定从主机300接收到的主机认证码AUT_CODE(H)与装置认证码是否匹配。如果主机认证码AUT_CODE(H)与装置认证码匹配,则认证控制器220可以确定写入数据W_DATA具有完整性,即该写入数据W_DATA未被损害、损坏或有其他异常。换言之,可以确定写入数据W_DATA有效。如果主机认证码AUT_CODE(H)与装置认证码不匹配,则认证控制器220可以确定写入数据W_DATA不具有完整性。换言之,可以确定写入数据W_DATA无效。

在各个实施例中,可以基于消息认证码(MAC)来生成主机认证码AUT_CODE(H)和装置认证码。

认证控制器220可以将认证信息AUT_INF提供到操作控制器210,该认证信息AUT_INF指示写入数据W_DATA是否具有完整性。

在实施例中,如果存储装置从已生成检查开始信息CI_INF之后发生的突然断电事件恢复,则认证控制器220可以使用认证密钥和从存储器装置100读取的读取数据R_DATA来生成装置认证码。此处,读取数据R_DATA可以是通过读取由检查开始信息CI_INF指示的目标区域中存储的编程数据而获得的数据。认证控制器220可以确定检查开始信息CI_INF中包括的主机认证码AUT_CODE(H)与装置认证码是否匹配。认证控制器220可以基于主机认证码AUT_CODE(H)和装置认证码之间的比较结果来生成指示编程数据是否具有完整性的认证信息AUT_INF。认证控制器220可以将指示编程数据是否具有完整性的认证信息AUT_INF提供到操作控制器210。

图5是用于描述根据实施例的目标区域的示图。

参照图5,目标区域可以包括检查开始区域、数据区域和检查完成区域。在一些实施例中,目标区域可以是物理地址连续的区域。在一些实施例中,目标区域可以是逻辑地址连续的区域。

检查开始区域可以是目标区域中的包括起始点的区域。检查完成区域可以是目标区域中的包括结束点的区域。数据区域可以是目标区域中除了检查开始区域和检查完成区域以外的区域。

目标区域可以对应于一个或多个页面、一个或多个超级页面、一个或多个存储块或一个或多个超级块。然而,更一般地,目标区域可以对应于任何合适大小的存储区域。对应于目标区域的存储区域单元可以根据检查开始信息CI_INF、数据以及检查完成信息CO_INF的大小而变化。在实施例中,根据消息认证操作将数据存储在目标区域中的存储块可以包括重放保护存储块(RPMB)。

在实施例中,检查开始信息CI_INF、数据和检查完成信息CO_INF可以连续地存储在目标区域中。在各个实施例中,可以同时存储检查开始信息和全部或一些数据。可以在已经将数据存储在数据区域中之后将检查完成信息CO_INF存储在检查完成区域中。

检查开始信息CI_INF可以包括指示目标区域的信息。在实施例中,检查开始信息CI_INF可以进一步包括主机认证码AUT_CODE(H)。主机认证码AUT_CODE(H)可以用于从在已生成检查开始信息CI_INF之后发生的突然断电事件恢复数据。

检查完成信息CO_INF可以包括编程通过/失败信息PGM P/F,该编程通过/失败信息PGM P/F指示编程操作是否已成功。在实施例中,检查完成信息CO_INF可以进一步包括指示从主机接收到的数据是否具有完整性的认证信息AUT_INF。

图6是示出图4的检查信息生成器211的示图。

参照图4和图6,操作控制器210可以包括检查信息生成器211。

响应于从主机300接收到的写入请求REQ,检查信息生成器211可以生成指示待被执行与写入请求REQ相对应的操作的目标区域的检查开始信息CI_INF。详细地,检查信息生成器211可以生成包括指示目标区域的信息的检查开始信息CI_INF。

在实施例中,检查信息生成器211可以生成进一步包括从主机300接收到的主机认证码AUT_CODE(H)的检查开始信息CI_INF。可以基于主机300中的写入数据W_DATA和认证密钥来生成主机认证码AUT_CODE(H)。认证密钥可以为了生成认证码而在主机300与存储装置50之间被设置为相同的值。

如果针对写入数据W_DATA的编程操作完成,则检查信息生成器211可以生成指示编程操作是否已成功的检查完成信息CO_INF。详细地,检查信息生成器211可以生成包括编程通过/失败信息的检查完成信息CO_INF,该编程通过/失败信息指示编程操作是否已成功。

在实施例中,检查信息生成器211可以生成进一步包括认证信息AUT_INF的检查完成信息CO_INF。认证信息AUT_INF可以指示从主机300接收到的写入数据W_DATA是否具有完整性。

图7A是示出根据实施例的图4的认证控制器220的示图。

参照图4和图7A,认证控制器220可以包括认证码生成器221和认证码比较器222。

认证码生成器221可以使用认证密钥KEY和从主机300接收到的写入数据W_DATA来生成装置认证码AUT_CODE(D)。认证密钥KEY可以为了生成认证码而在主机300与存储装置50之间被设置为相同的值。

认证码生成器221可以将所生成的装置认证码AUT_CODE(D)提供到认证码比较器222。

认证码比较器222可以从主机300接收主机认证码AUT_CODE(H),并且从认证码生成器221接收装置认证码AUT_CODE(D)。主机认证码AUT_CODE(H)可以是基于写入数据W_DATA和主机300中预置的密钥KEY而生成的认证码。

认证码比较器222可以基于主机认证码AUT_CODE(H)和装置认证码AUT_CODE(D)之间的比较结果来生成指示写入数据W_DATA是否具有完整性的认证信息AUT_INF。

详细地,认证码比较器222可以确定主机认证码AUT_CODE(H)与装置认证码AUT_CODE(D)是否匹配。如果主机认证码AUT_CODE(H)与装置认证码匹配,则认证码比较器222可以确定写入数据W_DATA具有完整性。换言之,认证码比较器222可以确定写入数据W_DATA有效。如果主机认证码AUT_CODE(H)与装置认证码AUT_CODE(D)不匹配,则认证码比较器222可以确定写入数据W_DATA不具有完整性,即写入数据W_DATA已被损坏。换言之,认证码比较器222可以确定写入数据W_DATA无效。

在各个实施例中,可以基于消息认证码(MAC)来生成主机认证码AUT_CODE(H)和装置认证码AUT_CODE(D)。

图7B是示出根据实施例的图4的认证控制器220的示图。

参照图7B,认证控制器220可以具有与参照图7A描述的认证控制器220相同的配置。

认证码生成器221可以使用认证密钥KEY和从参照图4描述的存储器装置100读取的读取数据R_DATA来生成装置认证码AUT_CODE(D)。此处,读取数据R_DATA可以是通过读取由检查开始信息CI_INF指示的目标区域中存储的编程数据而获得的数据。认证密钥可以为了生成认证码在主机300与存储装置50之间被设置为相同的值。

认证码比较器222可以从存储器装置100获得检查开始信息CI_INF中包括的主机认证码AUT_CODE(H)。认证码比较器222可以从认证码生成器221接收装置认证码AUT_CODE(D)。

认证码比较器222可以基于主机认证码AUT_CODE(H)和装置认证码AUT_CODE(D)之间的比较结果来生成指示读取数据R_DATA是否具有完整性的认证信息AUT_INF。

在实施例中,指示读取数据R_DATA的完整性的认证信息AUT_INF可以用于从在已生成检查开始信息CI_INF之后发生的突然断电事件恢复数据。

图8是用于描述根据实施例的响应于写入请求而执行的操作的示图。

参照图8,在步骤S801中,存储装置50可以从主机300接收写入请求。写入请求可以是针对安全写入操作的请求。存储装置50可以连同写入请求一起从主机300接收写入数据和主机认证码。

如参照图7A所描述的,在步骤S803中,存储装置50可以使用认证密钥和写入数据来生成装置认证码。

在步骤S805中,存储装置50可以确定写入数据是否有效。如果写入数据有效,则进程可以进行到步骤S807。如果写入数据无效,则进程可以进行到步骤S809。

详细地,存储装置50可以确定装置认证码与主机认证码是否匹配。如果装置认证码与主机认证码匹配,则存储装置50可以确定写入数据具有完整性,即写入数据未被损坏。换言之,存储装置50可以确定写入数据有效。如果装置认证码与主机认证码不匹配,则存储装置50可以确定写入数据已被损坏,因此缺乏完整性。换言之,存储装置50可以确定写入数据无效。

在步骤S807中,存储装置50可以执行针对写入数据的编程操作。

在步骤S809中,存储装置50可以生成指示编程操作是否已成功的编程通过/失败信息。如果在步骤S805中存储装置50确定写入数据无效,则不执行编程操作。因此,在步骤S809中,存储装置50可以确定编程操作已经失败。

在步骤S811中,存储装置50可以基于编程通过/失败信息来更新映射数据。详细地,存储装置50可以基于编程通过/失败信息来确定编程操作是已经通过还是已经失败。如果编程操作已经通过,则存储装置50可以更新与已经执行编程操作的目标区域相对应的映射数据。如果编程操作已经失败,则存储装置50可以保持与已经执行编程操作的目标区域相对应的现有映射数据,而不更新现有映射数据。

在步骤S813中,存储装置50可以将写入请求检查响应提供到主机300,该写入请求检查响应指示是否已经接收到写入请求。

在步骤S815中,存储装置50可以从主机300接收结果请求。

在步骤S817中,存储装置50可以将结果请求检查响应提供到主机300,该结果请求检查响应指示是否已经接收到结果请求。

在步骤S819中,存储装置50可以从主机300接收结果返回请求。

在步骤S821中,存储装置50可以将写入结果响应提供到主机300,该写入结果响应指示响应于写入请求而获得的结果。写入结果响应可以指示是否已经成功执行响应于写入请求的针对写入数据的编程操作。

图9是用于描述根据实施例的响应于写入请求而执行的操作的示图。

参照图9,在步骤S901中,存储装置50可以从主机300接收写入请求。写入请求可以是针对安全写入操作的请求。存储装置50可以连同写入请求一起从主机300接收写入数据和主机认证码。

在步骤S903中,存储装置50可以响应于写入请求而生成指示待执行编程操作的目标区域的检查开始信息。

在步骤S905中,存储装置50可以将写入请求检查响应提供到主机300,写入请求检查响应指示是否已经接收到写入请求。

在步骤S907中,存储装置50可以从主机300接收结果请求。

在步骤S909中,存储装置50可以将结果请求检查响应提供到主机300,该结果请求检查响应指示是否已经接收到结果请求。

在步骤S911中,存储装置50可以从主机300接收结果返回请求。

在步骤S913中,存储装置50可以生成指示写入数据是否具有完整性的认证信息。可以同时执行步骤S905和步骤S913。可选地,可以并行地执行步骤S905和步骤S913。进一步可选地,步骤S905和步骤S913的一些操作时段可以彼此重叠。

在步骤S915中,存储装置50可以基于认证信息执行针对写入数据编程操作。详细地,存储装置50可以基于认证信息确定写入数据是否具有完整性。如果确定写入数据具有完整性,则存储装置50可以执行编程操作。如果未验证写入数据的完整性,即如果写入数据已损坏,则存储装置50可能不执行编程操作。

在步骤S917中,存储装置50可以生成指示编程操作是否已成功的检查完成信息。详细地,存储装置50可以生成包括编程通过/失败信息的检查完成信息,该编程通过/失败信息指示编程操作是否已成功。如果在步骤S915中,存储装置50确定写入数据已被损坏,则不执行编程操作。因此,在步骤S917中,存储装置50可以确定编程操作已经失败。

在步骤S919中,存储装置50可以基于检查完成信息来更新映射数据。详细地,存储装置50可以基于检查完成信息来确定编程操作是已经通过还是已经失败。如果编程操作已经通过,则存储装置50可以更新与已经执行编程操作的目标区域相对应的映射数据。如果编程操作已经失败,则存储装置50可以保持与已经执行编程操作的目标区域相对应的现有映射数据,而不更新现有映射数据。

在步骤S921中,存储装置50可以基于检查完成信息将写入结果响应提供到主机300,写入结果响应指示响应于写入请求而获得的结果。写入结果响应可以指示响应于写入请求的对写入数据的编程操作是否已经成功执行。

参照图8,如果在步骤S801从主机300接收到写入请求,则存储装置50可以在步骤S803至S811执行与该写入请求相对应的操作,然后在步骤S813将写入请求检查响应提供到主机300。此后,存储装置50可以在步骤S813至S821执行与主机300的通信。

在图9的实施例中,如果在步骤S901中从主机300接收到写入请求,则在步骤S903中存储装置50可以生成检查开始信息。此后,存储装置50可以在执行与写入请求相对应的操作S913至S919的同时与主机300通信(S905至S911)。因此,与图8的实施例相比,在图9的实施例中,可以将从写入请求到写入结果响应的全部事务时间减少与主机300的通信和对应于写入请求的操作相重叠的时间。

图10是用于描述根据实施例的响应于写入请求而执行的操作的示图。

参照图10,在步骤S1001中,存储装置50可以从主机300接收写入请求。写入请求可以是针对安全写入操作的请求。存储装置50可以连同写入请求一起从主机300接收写入数据和主机认证码。

在步骤S1003中,存储装置50可以响应于写入请求而生成指示待执行编程操作的目标区域的检查开始信息。

在步骤S1005中,存储装置50可以将写入请求检查响应提供到主机300,写入请求检查响应指示是否已经接收到写入请求。

在步骤S1007中,存储装置50可以从主机300接收结果请求。

在步骤S1009中,存储装置50可以将结果请求检查响应提供到主机300,该结果请求检查响应指示是否已经接收到结果请求。

在步骤S1011中,存储装置50可以从主机300接收结果返回请求。

在步骤S1013中,存储装置50可以执行针对写入数据的编程操作。

在步骤S1015中,存储装置50可以生成指示写入数据是否具有完整性的认证信息。在实施例中,可以同时执行步骤S1005、步骤S1013和步骤S1015。可选地,可以并行地执行步骤S1005、步骤S1013和步骤S1015。进一步可选地,步骤S1005、步骤S1013和步骤S1015的各个操作时段中的一些可以彼此重叠。

在步骤S1017中,存储装置50可以生成检查完成信息,该检查完成信息指示在步骤S1013中执行的编程操作是否已经成功以及写入数据是否具有完整性。详细地,存储装置50可以生成包括编程通过/失败信息以及在步骤S1015生成的认证信息的检查完成信息,编程通过/失败信息指示在步骤S1013中执行的编程操作是否已经成功。

在步骤S1019中,存储装置50可以基于检查完成信息来更新映射数据。详细地,存储装置50可以基于检查完成信息来确定编程操作是已经通过还是已经失败以及写入数据是否具有完整性。如果编程操作已经通过并且确定写入数据具有完整性,则存储装置50可以更新与已经执行编程操作的目标区域相对应的映射数据。如果编程操作已经失败并且写入数据已被损坏而因此缺乏完整性,则存储装置50可以保持与已经执行编程操作的目标区域相对应的现有映射数据,而不更新现有映射数据。

在步骤S1021中,存储装置50可以基于检查完成信息将写入结果响应提供到主机300,该写入结果响应指示响应于写入请求而获得的结果。写入结果响应可以指示响应于写入请求的对写入数据的编程操作是否已经成功执行以及写入数据是否具有完整性。

与图9的实施例相比,图10的检查完成信息可以另外地包括认证信息以及编程通过/失败信息。在图9的实施例中,在已经生成认证信息之后(在步骤S913中)执行编程操作(在步骤S915中)。然而,在图10的实施例中,编程操作(S1013)可以与生成认证信息(S1015)并行地执行。因此,与图9的实施例相比,在图10的实施例中,可以将从写入请求到写入结果响应的全部事务时间减少编程操作与认证信息的生成相重叠的时间。

图11是用于描述当发生突然断电事件时的数据处理操作的示图。

参照图11,在步骤S1101中,在已生成检查开始信息之后,存储装置可能发生突然断电事件。

在步骤S1103中,如果存储装置从突然断电事件恢复,则存储装置可以确定是否存在与检查开始信息相对应的检查完成信息。如果确定结果指示存在检查完成信息,则可以终止该进程。如果不存在检查完成信息,则进程可以进行到步骤S1105。

在步骤S1105中,存储装置可以基于检查开始信息来读取目标区域中存储的编程数据。检查开始信息可以包括指示已经执行了编程操作的目标区域的信息。

在步骤S1107中,存储装置可以确定针对编程数据的读取操作是否已成功。如果读取操作已成功,则进程可以进行到步骤S1109。如果读取操作已失败,则进程可以进行到步骤S1115。读取操作的成功可以指示针对编程数据的编程操作成功。读取操作的失败可以指示针对编程数据的编程操作失败。

在步骤S1109中,存储装置可以使用读取数据和认证密钥来生成装置认证码。认证密钥可以为了生成认证码而在主机和存储装置之间被设置为相同的值。

在步骤S1111中,存储装置可以确定所生成的装置认证码与检查开始信息中包括的主机认证码是否匹配。作为确定的结果,如果装置认证码与主机认证码匹配,则进程可以进行到步骤S1113。如果装置认证码与主机认证码不匹配,则进程可以进行到步骤S1115。装置认证码和主机认证码之间的匹配可以指示编程数据具有完整性。装置认证码和主机认证码之间的不匹配可以指示编程数据已被损坏而因此缺乏完整性。

在步骤S1113中,可以确定响应于写入请求的安全写入操作已经成功。

在步骤S1115中,可以确定响应于写入请求的安全写入操作已经失败。

在步骤S1117中,存储装置50可以生成检查完成信息,该检查完成信息指示在发生突然断电事件之前执行的编程操作是否已经成功以及编程数据是否具有完整性。如果(在步骤S1113中)安全写入操作已经成功,则存储装置可以确定编程操作已经成功并且编程数据具有完整性。如果(在步骤S1115中)安全写入操作已经失败,则存储装置可以确定编程操作已经失败并且编程数据被损坏而因此缺乏完整性。

在步骤S1119中,存储装置可以基于检查完成信息来更新映射数据。详细地,存储装置可以基于检查完成信息来确定编程操作是已经通过还是已失败以及编程数据是否具有完整性。如果编程操作已经通过并且认为编程数据具有完整性,则存储装置可以更新与已经执行了编程操作的目标区域相对应的映射数据。如果编程操作已经失败并且写入数据被损坏,则存储装置可以保持与已经执行编程操作的目标区域相对应的现有映射数据,而不更新现有映射数据。

根据图11的实施例,当在已生成检查开始信息之后发生突然断电事件时,存储装置可以在没有主机干预的情况下,基于检查开始信息来确定在发生突然断电之前被编程的数据是否具有完整性以及编程操作是否已成功。存储装置可以基于确定编程数据是否具有完整性以及编程操作是否已成功的结果来确定是恢复还是丢弃编程数据。

图12是示出图1的存储器控制器的示例的示图。

参照图12,存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以在存储器装置和主机之间提供接口。存储器控制器1000可以驱动用于控制存储器装置的固件。

存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。

总线1070可以在存储器控制器1000的组件之间提供通道。

处理器1010可以控制存储器控制器1000的全部操作,并且可执行逻辑运算。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。另外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用作为工作存储器、高速缓冲存储器或缓冲存储器的存储器缓冲器1020来控制存储装置的操作。

处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且使用映射表将LBA转换成PBA。根据映射的单元,可以使用利用FTL的任何合适的地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。

处理器1010可以使从主机接收到的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收到的数据随机化。经随机化的数据可以被提供到存储器装置作为待被存储的数据,并且可以被编程到存储器单元阵列。

在读取操作期间,处理器1010可以使从存储器装置100接收到的数据去随机化。例如,处理器1010可以使用去随机化种子来使从存储器装置接收到的数据去随机化。经去随机化的数据可以被输出到主机。

在实施例中,处理器1010可以驱动软件或固件以执行随机化操作或去随机化操作。

存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1020可以存储待由处理器1010运行的代码和命令。存储器缓冲器1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。

ECC电路1030可以执行错误校正。ECC电路1030可以基于待通过存储器接口1060存储在存储器装置中的数据来执行ECC编码操作。经ECC编码的数据可以通过存储器接口1060被传输到存储器装置。ECC电路1030可以对通过存储器接口1060从存储器装置接收到的数据执行ECC解码操作。例如,ECC电路1030可以作为存储器接口1060的组件包括在存储器接口1060中。

主机接口1040可在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)通信方法。

缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。

存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。

例如,存储器控制器1000可以既不包括存储缓冲器1020也不包括缓冲器控制电路1050。这些组件中的一个或两个可以单独设置。

例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器)中加载代码。可选地,处理器1010可以通过存储器接口1060从存储器装置加载代码。

例如,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据。控制总线可以在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可以彼此分离,使得既不相互干扰也不相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。

在实施例中,参照图1描述的操作控制器210和认证控制器220可以被包括在处理器1010中。

图13是示出应用了根据本公开的实施例的存储装置的存储卡系统2000的框图。

参照图13,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。

存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2100和主机之间的接口。存储器控制器2100可以驱动用于控制存储器装置2200的固件。存储器控制器2100可以与参照图1描述的存储器控制器200相同地配置。

在实施例中,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC电路的组件。

存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。

在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋扭矩磁性RAM(STT-MRAM)。

在实施例中,存储器控制器2100和存储器装置2200可集成到单个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC或微型MMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。

图14是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的框图。

参照图14,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。

在实施例中,SSD控制器3210可以执行上文参照图1描述的存储器控制器200的功能。

SSD控制器3210可以响应于从主机3100接收到的信号SIG来控制多个闪速存储器3221至322n。在实施例中,信号SIG可以基于主机3100和SSD 3200之间的接口。例如,信号SIG可以由诸如以下的各种接口中的至少一种来定义:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或高速非易失性存储器(NVMe)接口。

辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以被供应以来自主机3100的电力PWR,并且可以由电力PWR充电。当来自主机3100的电力被不平稳地传递时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以设置在SSD 3200内部,或者在另一实施例中,辅助电源3230可以设置在SSD 3200外部。例如,辅助电源3230可以设置在主板中,并且可以向SSD3200供应辅助电力。

缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收到的数据或从多个闪速存储器3221至322n接收到的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的各种易失性存储器或诸如FRAM、ReRAM、STT-MRAM和/或PRAM的非易失性存储器中的任意一种。

图15是示出应用了根据本公开的实施例的存储装置的用户系统4000的框图。

参照图15,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。

应用处理器4100可以运行在用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。

存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠式封装(POP)进行封装,然后可以被设置为单个半导体封装。

网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以包括在应用处理器4100中。

存储模块4400可在其中存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为诸如存储卡的可移动存储介质(即,可移动驱动器),或者用户系统4000的外部驱动器。

在实施例中,存储模块4400可以包括多个非易失性存储器装置,并且非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。

用户接口4500可包括用于将数据或指令输入到应用处理器4100或用于将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和/或压电装置。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和/或监视器的用户输出接口。

如上所述,本公开的各个实施例提供了一种具有提高的写入性能的存储装置以及操作存储装置的方法。

本文已经公开了各个实施例,并且虽然采用了特定术语,但这些特定术语仅在一般和描述性意义上来使用和解释,而非为了限制的目的。在一些情况下,如本领域普通技术人员在提交本申请时显而易见的是,除非另有明确说明,否则结合特定实施例描述的特征、特点、和/或元件可以单独使用或与结合其他实施例描述的特征、特点和/或元件组合使用。因此,本领域技术人员将理解的是,可以在不脱离所附权利要求中阐述的本发明的精神和范围的情况下对形式和细节进行各种改变。

相关技术
  • 存储装置、存储装置的操作方法和计算装置的操作方法
  • 存储装置、存储装置的操作方法和访问存储装置的方法
技术分类

06120113228865