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

存储装置及其操作方法

文献发布时间:2023-06-19 10:08:35


存储装置及其操作方法

技术领域

本公开总体上涉及一种电子装置,更具体而言,涉及一种电子存储装置及其操作方法。

背景技术

存储装置是被配置成在主机装置(例如计算机、智能电话或智能平板)的控制下存储数据的装置。存储装置包括被配置成在磁盘(例如硬盘驱动器(HDD))上存储数据的装置以及被配置成在半导体存储器(即非易失性存储器,例如固态驱动器(SSD)或存储卡)中存储数据的装置。

存储装置可以包括被配置成存储数据的存储器装置和被配置成控制存储器装置的存储器控制器。存储器装置被分为易失性存储器装置或非易失性存储器装置。非易失性存储器装置包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)和铁电RAM(FRAM)等。

发明内容

根据本公开的实施方式,存储装置包括:用于存储数据的存储器装置、用于控制存储器装置的存储器控制器以及用于与存储器装置通信的编程数据存储部。存储器装置包括临时存储数据的页缓冲器。存储器控制器包括请求发送器,该请求发送器被配置成当存储器装置在存储器装置正在执行编程操作时从主机接收到读取请求时,提供用于暂停编程操作的编程暂停请求。存储器控制器还包括命令控制器,该命令控制器被配置成基于编程暂停请求而生成和输出编程暂停命令,并且基于命令队列的命令的数量来输出高速缓存读取命令或正常读取命令,其中,与从主机接收的请求相对应的命令在命令队列中排队。编程数据存储部存储为了执行与高速缓存读取命令相对应的操作而从存储器装置输出的数据。

根据本公开的另一实施方式,提供了一种操作存储装置的方法,该存储装置包括用于存储数据的存储器装置、用于控制存储器装置的存储器控制器以及用于与存储器装置通信的编程数据存储部。该方法包括以下步骤:在存储器装置正在执行编程操作时,从主机接收读取请求;基于读取请求,生成用于暂停编程操作的编程暂停命令;以及当编程操作被暂停时,基于命令队列的命令的数量,执行与高速缓存读取命令或正常读取命令相对应的读取操作,其中,与从主机接收的请求相对应的命令在命令队列中排队。

根据本公开的又一实施方式,提供了一种存储器控制器,其用于控制存储数据的存储器装置。存储器控制器包括:请求发送器,其被配置成当存储器装置在存储器装置正在执行编程操作时从主机接收到读取请求时,提供用于暂停编程操作的编程暂停请求。存储器控制器还包括:命令控制器,其被配置成基于编程暂停请求而生成和输出编程暂停命令,并且基于在命令队列中排队的与从主机接收的请求相对应的命令的数量而输出高速缓存读取命令或正常读取命令。

根据本公开的又一实施方式,存储装置包括用于存储数据的数据存储部,其中,数据存储部包括临时存储数据的页缓冲器。存储装置还包括用于控制数据存储部的操作控制器。操作控制器包括:请求发送器,其被配置成当数据存储部在数据存储部正在执行编程操作时接收到读取命令时,提供用于暂停编程操作的编程暂停请求;命令控制器,其被配置成基于编程暂停请求而生成和输出编程暂停命令,并且基于命令队列的命令的数量而生成和输出高速缓存读取命令或正常读取命令,其中,接收的命令在命令队列中排队;以及编程数据存储部,其被配置成存储为了执行与高速缓存读取命令相对应的操作而从数据存储部输出的数据以。

附图说明

现在将在下文中参照附图更全面地描述示例性实施方式;然而,它们可以以不同的形式实施,并且不应当被解释为限于本文阐述的实施方式。相反,提供这些实施方式是为了使本公开彻底和完整,并且将示例性实施方式的范围完全传达给本领域技术人员。

在附图中,为了例示清楚,可能放大尺寸。应当理解,当一个元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或更多个中间元件。相同的附图标记始终表示相同的元件。

图1是示出存储装置的框图。

图2是示出图1所示的存储器装置的结构的图。

图3是示出存储块的图。

图4是示出根据编程暂停命令暂停编程操作的图。

图5A和图5B是示出基于命令队列中排队的读取命令的数量而输出正常读取命令的过程的图。

图6A和图6B是示出基于命令队列中排队的读取命令的数量而输出高速缓存读取命令的过程的图。

图7是示出在图6A和图6B所示的存储器装置中输出数据的过程的图。

图8是示出与图6A和图6B所示的与高速缓存读取命令相对应的锁存器的传输操作的图。

图9是示出高速缓存读取操作的暂停和编程操作的恢复的图。

图10是示出根据本公开的实施方式的输出正常读取命令或高速缓存读取命令的过程的图。

图11是示出根据本公开的实施方式的基于命令队列输出的正常读取命令或高速缓存读取命令的图。

图12是示出根据本公开的实施方式的输出高速缓存读取暂停命令的过程的图。

图13是示出根据本公开的实施方式的输出恢复命令的过程的图。

图14是示出图1所示的存储器控制器的另一实施方式的图。

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

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

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

具体实施方式

本文公开的任何特定结构或功能的描述仅仅是为了示出根据本公开的构思来描述实施方式的目的。这些实施方式可以以各种形式实现,因此不应当被解释成限制本文阐述的教导。

在下文中,参照附图详细描述了本公开的各种实施方式,以使得本领域技术人员能够容易地实现本公开的教导。一些实施方式涉及一种能够在编程暂停(programsuspend)中执行高速缓存读取操作而无需添加任何锁存器的方法。

图1是示出存储装置50的框图。

参照图1,存储装置50可以包括存储器装置100和存储器控制器200。

存储装置50可以是用于在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视机、平板电脑或车载信息娱乐系统的主机300的控制下存储数据的装置。

根据作为与主机300的通信方案的主机接口,可以将存储装置50制造为各种类型的存储装置中的任何一种。例如,存储装置50可以由诸如固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、小型化MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存存储(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)和记忆棒等的各种类型的存储装置中的任何一种来实现。

存储装置50可以被制造成各种封装类型中的任何一种。例如,存储装置50可以被制造成诸如层叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级层叠封装(WSP)的各种封装类型中的任何一种。

存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元,并且多个存储器单元可以构成多个页。在一个实施方式中,页可以是用于在存储器装置100中存储数据或者读取存储在存储器装置100中的数据的单位。存储块可以是用于擦除数据的单位。

在一个实施方式中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪存存储器、垂直NAND闪存存储器、NOR闪存存储器、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了描述方便,假设并且描述了存储器装置100是NAND闪存存储器的情况。

在一个实施方式中,存储器装置100可以以二维阵列结构或三维阵列结构实现。在下文中,将存储器装置100以三维阵列结构实现的情况作为实施方式进行描述,但本公开不限于三维阵列结构。本公开不仅可以应用于其中电荷存储层配置有浮栅(FG)的闪存存储器装置,而且还可以应用于其中电荷存储层配置有绝缘层的电荷撷取闪存(CTF)。

在一个实施方式中,可以使用一个数据位被存储在一个存储器单元中的单层单元(Single-Level Cell,SLC)方案来操作存储器装置100。另选地,可以使用至少两个数据位被存储在一个存储器单元中的方案来操作存储器装置100。例如,可以使用两个数据位被存储在一个存储器单元中的多层单元(MLC)方案、三个数据位被存储在一个存储器单元中的三层单元(TLC)方案或四个数据位被存储在一个存储器单元中的四层单元(QLC)方案来操作存储器装置100。

存储器装置100被配置成从存储器控制器200接收命令和地址,并访问在存储器单元阵列中由所述地址选择的区域。也就是说,存储器装置100可以对由所述地址选择的区域执行对应于所述命令的操作。例如,存储器装置100可以根据接收到的命令执行写入(编程)操作、读取操作和擦除操作。例如,当接收到编程命令时,存储器装置100可以将数据编程到由地址选择的区域中。当接收到读取命令时,存储器装置100可以从由地址选择的区域读取数据。当接收到擦除命令时,存储器装置100可以擦除存储在由地址选择的区域中的数据。

存储器控制器200可以包括请求发送器210。请求发送器210可以从主机300接收请求。在一个实施方式中,即使当存储器装置100正在执行编程操作时,请求发送器210也可从主机300接收请求。从主机300接收的请求可以被传送到命令控制器220。命令控制器220可以基于从请求发送器210接收的请求而生成命令,并且将所生成的命令输出到存储器装置100。

请求发送器210可以通过将执行与从主机300接收的请求相对应的操作所需的时间与完成编程操作所需的时间进行比较来向命令控制器220发送编程暂停请求。也就是说,请求发送器210可以根据各个操作的等待时间(latency)来确定是否要暂停正由存储器装置100执行的编程操作。

具体而言,当请求发送器210在存储器装置100正在执行编程操作的情况下从主机300接收到读取请求时,请求发送器210可以确定执行与读取请求相对应的读取操作所需的时间以及完成正由存储器装置100执行的编程操作所需的时间。请求发送器210可以基于所所确定的时间来向命令控制器220发送编程暂停请求。

例如,当执行读取操作所需的时间短于完成编程操作所需的时间时,请求发送器210可以不向命令控制器220发送编程暂停请求。也就是说,因为编程操作具有长等待时间,所以请求发送器210可以不向命令控制器220发送编程暂停请求。相反,当执行读取操作所需的时间长于完成编程操作所需的时间时,请求发送器210可以向命令控制器220发送编程暂停请求。也就是说,因为读取操作具有长等待时间,所以请求发送器210可以向命令控制器220发送编程暂停请求。

存储器控制器200可以包括命令控制器220。命令控制器220可以生成与要由存储器装置100执行的操作相对应的命令,并且将生成的命令输出到存储器装置100。也就是说,命令控制器220可以通过请求发送器210接收从主机300接收的请求,并生成对应于所述请求的命令,然后将所生成的命令输出到存储器装置100。命令控制器220可以通过命令队列(command queue)管理所生成的命令。

在一个实施方式中,当命令控制器220在存储器装置100正在执行编程操作的情况下从请求发送器210接收到编程暂停请求时,命令控制器220可以生成用于暂停编程操作的编程暂停命令,并将所生成的编程暂停命令输出到存储器装置100。

在命令控制器220输出编程暂停命令之后,命令控制器220可以基于命令队列中排队的命令的数量来生成正常读取命令或高速缓存读取命令(cache read command),并且将所生成的正常读取命令或高速缓存读取命令输出到存储器装置100。在命令控制器220向存储器装置100输出高速缓存读取命令之前,命令控制器220可以输出用于读取存储在存储器装置100中的数据的随机数据输出命令。

在一个实施方式中,当确定暂停与高速缓存读取命令相对应的操作的执行时,命令控制器220可以向存储器装置100输出高速缓存读取暂停命令。在命令控制器220向存储器装置100输出高速缓存读取暂停命令之后,命令控制器220可以向存储器装置100输出用于重新执行由存储器装置100暂停的编程操作的随机数据输入命令。

存储装置50可以包括编程数据存储部400。当存储器装置100在编程操作期间从存储器控制器200接收到编程暂停命令并且确定执行高速缓存读取操作时,编程数据存储部400可以存储从存储器装置100输出的数据。

在一个实施方式中,在执行高速缓存读取操作之前,存储在存储器装置100中的数据(即,最低有效位(LSB)数据、中央有效位(CSB)数据和最高有效位(MSB)数据)中的任意一个数据可以被传送到编程数据存储部400以被存储在编程数据存储部400中。当数据被存储在编程数据存储部400中时,存储器装置100可以执行高速缓存读取操作。

在高速缓存读取操作结束之后,当命令控制器220输出随机数据输入命令时,存储在编程数据存储部400中的数据可以与随机数据输入命令一起被输出。当存储在编程数据存储部400中的数据被输出到存储器装置100时,存储器装置100可以通过接收恢复命令来恢复被暂停的编程操作。

存储器控制器200可以控制存储装置50的整体操作。

在将电源电压施加到存储装置50时,存储器控制器200可以执行固件(FW)。当存储器装置100是闪存存储器装置时,存储器控制器200可以执行诸如闪存转换层(FTL)的FW以控制主机300和存储器装置100之间的通信。

在一个实施方式中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA)并且将LBA转换成物理块地址(PBA),物理块地址表示存储器装置100中所包括的将要存储数据的存储器单元的地址。此外,存储器控制器200可以在缓冲器存储器(buffermemory)中存储建立LBA和PBA之间的映射关系的逻辑-物理地址映射表。

存储器控制器200可以响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作或擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可以将编程请求改变为编程命令,并向存储器装置100提供编程命令、PBA和数据。当从主机300接收到读取请求和LBA时,存储器控制器200可以将读取请求改变为读取命令,选择对应于LBA的PBA,并且然后向存储器装置100提供读取命令和PBA。当从主机300接收到擦除请求和LBA时,存储器控制器200可以将擦除请求改变为擦除命令,选择对应于LBA的PBA,并且然后向存储器装置100提供擦除命令和PBA。

在一个实施方式中,存储器控制器200可以在没有来自主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行诸如用于损耗均衡(wear leveling)的编程操作和用于垃圾收集的编程操作的后台操作。

在一个实施方式中,存储装置50还可以包括缓冲器存储器(未示出)。存储器控制器200可以控制主机300和缓冲器存储器之间的数据交换。另选地,存储器控制器200可以在缓冲器存储器中临时存储用于控制存储器装置100的系统数据。例如,存储器控制器200可以将从主机300输入的数据临时存储在缓冲器存储器中,并且然后将临时存储在缓冲器存储器中的数据传送到存储器装置100。

在各种实施方式中,缓冲器存储器可以用作存储器控制器200的工作存储器或高速缓存存储器。缓冲器存储器可以存储由存储器控制器200执行的代码或命令。另选地,缓冲器存储器可以存储由存储器控制器200处理的数据。

在一个实施方式中,缓冲器存储器可以由诸如双倍数据速率同步DRAM(DDRSDRAM)、DDR4 SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM)的动态随机存取存储器(DRAM)来实现,或由静态随机存取存储器(SRAM)来实现。

在各种实施方式中,缓冲器存储器可以在存储装置50的外部联接到存储装置50。因此,在存储装置50外部联接到存储装置50的易失性存储器装置可以执行缓冲器存储器的功能。

在一个实施方式中,存储器控制器200可以控制至少两个存储器装置。存储器控制器200可以根据交织方案来控制存储器装置,以提高操作性能。

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

图2是示出图1所示的存储器装置的结构的图。

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

存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到行解码器121。多个存储块BLK1至BLKz通过位线BL1至BLn联接到页缓冲器组123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在一个实施方式中,多个存储器单元可以是非易失性存储器单元。联接到同一字线的存储器单元可以被定义为页。因此,一个存储块可以包括多个页。

行线RL可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。

存储器单元阵列110中所包括的每一个存储器单元可以被配置成存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。

外围电路120可以在控制逻辑130的控制下对存储器单元阵列110的选定区域执行编程操作、读取操作或擦除操作。外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以在控制逻辑130的控制下向行线RL和位线BL1至BLn施加各种操作电压,或者释放所施加的电压。控制逻辑130可以被实现为硬件、软件或硬件和软件的组合。例如,控制逻辑130可以是根据算法操作的控制逻辑电路和/或执行控制逻辑代码的处理器。

外围电路120可以包括行解码器121、电压生成器122、页缓冲器组123、列解码器124、输入/输出电路125和感测电路126。

行解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。在一个实施方式中,字线可以包括正常字线和虚拟字线。在一个实施方式中,行线RL还可以包括管式选择线(pipe select line)。

行解码器121解码从控制逻辑130接收的行地址RADD。行解码器121根据经解码的地址选择存储块BLK1至BLKz中的至少一个存储块。此外,行解码器121可以根据经解码的地址选择所选存储块的至少一条字线,以将由电压生成器122生成的电压施加到所述至少一条字线WL。

例如,在编程操作中,行解码器121可以向所选字线施加编程电压,并且向未选字线施加具有低于编程电压的电压电平的编程通过电压。在编程验证操作中,行解码器121可以将验证电压施加到所选字线,并且将具有高于验证电压的电压电平的验证通过电压施加到未选字线。

在读取操作中,行解码器121可以向所选字线施加读取电压,并且向未选字线施加具有高于读取电压的电压电平的读取通过电压。

在一个实施方式中,在存储块单元中执行对存储器装置100的擦除操作。在擦除操作中,行解码器121可以根据经解码的地址选择一个存储块。在擦除操作中,行解码器121可以向联接到所选存储块的字线施加接地电压

电压生成器122在控制逻辑130的控制下工作。电压生成器122通过使用提供给存储器装置100的外部电源电压来生成多个电压。具体而言,电压生成器可以响应于操作信号OPSIG而生成在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,电压生成器122可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、读取电压和擦除电压等。

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

在一个实施方式中,电压生成器122可以通过使用外部电源电压或内部电源电压来生成多个电压。

例如,电压生成器122可以包括用于接收内部电源电压的多个泵浦电容器(pumping capacitor),并且通过在控制逻辑130的控制下选择性地激活多个泵浦电容器来生成多个电压。

多个生成的电压可以由行解码器121提供给存储器单元阵列110。

页缓冲器组123包括第一页缓冲器PB1至第n页缓冲器PBn。第一页缓冲器PB1至第n页缓冲器PBn分别通过第一位线BL1至第n位线BLn联接到存储器单元阵列110。第一位线BL1至第n位线BLn在控制逻辑130的控制下操作。具体而言,第一位线BL1至第n位线BLn可以响应于页缓冲器控制信号PBSIGNALS而操作。例如,第一页缓冲器PB1至第n页缓冲器PBn可以在读取操作或验证操作中临时存储通过第一位线BL1至第n位线BLn接收的数据或感测位线BL1至BLn的电压或电流。

具体而言,在编程操作中,在编程电压被施加到所选字线时,第一页缓冲器PB1至第n页缓冲器PBn可以通过第一位线BL1至第n位线BLn将通过输入/输出电路125接收的数据DATA传送到所选存储器单元。根据传送的数据DATA对所选页的存储器单元进行编程。在编程验证操作中,第一页缓冲器PB1至第n页缓冲器PBn通过感测经由第一位线BL1至第n位线BLn从所选存储器单元接收的电压或电流来读取页数据。

在读取操作中,第一页缓冲器PB1至第n页缓冲器PBn通过第一位线BL1至第n位线BLn从所选页的存储器单元读取数据DATA,并且在列解码器124的控制下将读取的数据DATA输出到输入/输出电路125。

在擦除操作中,第一页缓冲器PB1至第n页缓冲器PBn可以使第一位线BL1至第n位线BLn浮置或者施加擦除电压。

列解码器124可以响应于列地址CADD而在输入/输出电路125和页缓冲器组123之间进行数据通信。例如,列解码器124可以通过数据线DL与第一页缓冲器PB1至第n页缓冲器PBn进行数据通信,或通过列线CL与输入/输出电路125进行数据通信。

输入/输出电路125可以将从存储器控制器(图1所示的200)接收的命令CMD和地址ADDR传送到控制逻辑130,或者与列解码器124交换数据DATA。

在读取操作或验证操作中,感测电路126可以响应于允许位VRYBIT信号生成参考电流,并通过比较从页缓冲器组123接收的感测电压VPB和由参考电流生成的参考电压来输出通过信号PASS或失败信号FAIL。

控制逻辑130可以通过响应于命令CMD和地址ADDR而输出操作信号OPSIG、行地址RADD、页缓冲器控制信号PBSIGNALS和允许位VRYBIT来控制外围电路120。例如,控制逻辑130可以响应于子块读取命令和地址来控制所选存储块的读取操作。此外,控制逻辑130可以响应于子块擦除命令和地址来控制所选存储块中包括的所选子块的擦除操作。此外,控制逻辑130可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。

存储器单元阵列110中所包括的每一个存储器单元可以根据存储在其中的数据而被编程到多个编程状态中的任意一个编程状态。根据存储在存储器单元中的数据,可以将存储器单元的目标编程状态确定为多个编程状态中的任意一个。

图3是示出存储块的图。

参照图2和图3,图3是示出图2所示的存储器单元阵列110中所包括的多个存储块BLK1至BLKz中的任意一个存储块BLKa的电路图。

在存储块BLKa中,彼此平行布置的第一选择线、字线和第二选择线可以联接到存储器单元。例如,字线可以平行布置在第一选择线和第二选择线之间。第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。

更具体地,存储块BLKa可以包括联接在位线BL1至BLn和源极线SL之间的多个串。位线BL1至BLn可以分别联接到串,并且源极线SL可以共用地联接到串。串可以彼此相同地配置,因此,详细描述联接到第一位线BL1的串ST作为示例。

串ST可以包括在源极线SL和第一位线BL1之间彼此串联联接的源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DST。在一个串ST中可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且在一个串ST中可以包括数量大于附图所示的存储器单元F1至F16的数量的存储器单元。

源极选择晶体管SST的源极可以联接到源极线SL,并且漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串中包括的源极选择晶体管SST的栅极可以联接到源极选择线SSL,并且不同串中包括的漏极选择晶体管DST的栅极可以联接到漏极选择线DSL。存储器单元F1至F16的栅极可以联接到多条字线WL1至WL16。不同串中包括的存储器单元中的联接到同一字线的一组存储器单元可以被称为一个物理页PPG。因此,与字线WL1至WL16的数量相对应的物理页可以被包括在存储块BLKa中。

一个存储器单元可以存储一位数据。这种存储器单元通常被称为单层单元(SLC)。一个物理页PG可以存储一个逻辑页(LPG)数据。一个LPG数据可以包括数量与一个物理页PPG中包括的单元的数量相对应的数据位。另选地,一个存储器单元MC可以存储两位或更多位的数据。这种存储器单元通常被称为多层单元(MLC)。一个物理页PPG可以存储两个或更多个LPG数据。

用于存储两位或更多位数据的存储器单元被称为MLC。随着存储在一个存储器单元中的数据位的数量增加,MLC最近表示用于存储两位数据的存储器单元。用于存储三位或更多位数据的存储器单元被称为三层单元(TLC),用于存储四位或更多位数据的存储器单元被称为四层单元(QLC)。此外,已经开发了用于存储多位数据的存储器单元,并且该实施方式可以应用于存储两位或更多位数据的存储器系统。

在另一实施方式中,多个存储块中的每一个可以具有三维结构。每个存储块可以包括层叠在基板上的多个存储器单元。多个存储器单元可以沿着+X、+Y和+Z方向布置。

图4是示出根据编程暂停命令暂停编程操作的图。

参照图4,图4所示的存储器控制器200可以包括请求发送器210和命令控制器220。在图4中,假设省略了图1所示的编程数据存储部400的情况。

图4示出了当存储器装置100正在执行编程操作时存储器控制器200从主机300接收到读取请求READ_REQ的情况。

具体而言,存储器控制器200可以将与来自主机300的编程请求相对应的编程命令输出到存储器装置100,并且存储器装置100可以执行与从存储器控制器200接收的编程命令相对应的操作。

在一个实施方式中,当存储器装置100正在执行编程操作时,存储器控制器200可以从主机300接收读取请求READ_REQ。因此,存储器装置100可以暂停编程操作。特别地,执行读取操作所需的时间比存储器装置100执行编程操作所需的时间更长,因此存储器装置100可以暂停正在执行的编程操作并优先执行读取操作。

在一个实施方式中,当存储器装置100正在执行编程操作时,请求发送器210可以从主机300接收读取请求READ_REQ。读取请求READ_REQ可以是用于读取存储在存储器装置100中的数据的请求。

当请求发送器210从主机300接收到读取请求READ_REQ时,请求发送器210可以通过将直至存储器装置100正在执行的编程操作完成所需的时间与执行与读取请求READ_REQ相对应的读取操作所需的时间进行比较来确定是否要发送编程暂停请求PGMSP_REQ。

例如,当执行与读取请求READ_REQ相对应的读取操作所需的时间长于直至存储器装置100正在执行的编程操作完成所需的时间时,存储器装置100可以暂停编程操作。也就是说,可以优先执行具有长等待时间的读取操作。因此,请求发送器210可以向命令控制器220发送编程暂停请求PGMSP_REQ,从而暂停存储器装置100正在执行的编程操作。

然而,当存储器装置100执行读取操作所需的时间短于直至编程操作完成所需的时间时,存储器装置100可以不暂停编程操作。也就是说,因为编程操作的等待时间比读取操作的等待时间更长,所以可以不暂停存储器装置100正在执行的编程操作。因此,请求发送器210可以不将编程暂停请求PGMSP_REQ发送到命令控制器220,而是可以将从主机300接收的读取请求READ_REQ发送到命令控制器220。

在图4中,假设读取操作的等待时间长于编程操作的等待时间。

因此,当请求发送器210在存储器装置100正在执行编程操作的情况下从主机300接收到读取请求READ_REQ时,请求发送器210可以向命令控制器220输出用于暂停编程操作的编程暂停请求PGMSP_REQ。

在一个实施方式中,命令控制器220可以从请求发送器210接收请求。也就是说,命令控制器220可以通过请求发送器210接收从主机300接收的请求。命令控制器220可以生成与从请求发送器210接收的请求相对应的命令,并且将所生成的命令输出到存储器装置100。命令控制器220可以通过命令队列来管理生成的命令。也就是说,命令控制器220可以生成命令并且然后使生成的命令在命令队列中排队,并基于存储器装置100正在执行的操作的等待时间而将在命令队列中排队的命令输出到存储器装置100。

当命令控制器220从请求发送器210接收到编程暂停请求PGMSP_REQ时,命令控制器220可以向存储器装置100输出与编程暂停请求PGMSP_REQ相对应的编程暂停命令PGMSP_CMD。当存储器装置100接收到编程暂停命令PGMSP_CMD时,存储器装置100可以暂停编程操作,并且执行与随后接收到的命令相对应的操作。

图5A和图5B是示出基于在命令队列中排队的读取命令的数量来输出正常读取命令的过程的图。

参照图4、图5A和图5B,图5A示出了命令控制器220中包括的命令队列,并且图5B示出了基于在命令队列中排队的命令的数量而输出的正常读取命令NORMAL_RCMD。图5A和图5B示出了在图4中命令控制器220向存储器装置100输出编程暂停命令之后命令控制器220的操作。

在图5B中,假设省略了图1所示的存储器控制器200的配置中的除命令控制器220之外的其它组件的情况。

在一个实施方式中,命令控制器220可以通过请求发送器210接收从主机(图1所示的300)接收的请求,并且生成与从主机(图1所示的300)接收的请求相对应的命令,并且然后使生成的命令在命令队列中排队。图5A示出了在命令队列中排队的命令。在一个实施方式中,在命令队列中排队的命令可以是第一读取命令READ_CMD1至第九读取命令READ_CMD9。

当在命令队列中排队的读取命令的数量小于第一参考值时,命令控制器220可以向存储器装置100输出用于允许存储器装置100执行正常读取操作的正常读取命令NORMAL_RCMD。第一参考值可以是预先确定的。

在一个实施方式中,第一参考值可以是在直至存储在存储器装置100的页缓冲器中的数据被输出到存储器控制器200以被存储在存储器控制器200中并且被存储在存储器控制器200中的数据被再次存储在存储器装置100的页缓冲器中所需的时间变得等于执行在命令队列中累积的读取命令所需的时间时的读取命令的数量。也就是说,可以基于要由存储器装置100执行的读取命令的数量来确定是要执行正常读取操作还是要执行高速缓存读取操作。正常读取操作是不同于高速缓存读取操作的操作,并且可以是不使用高速缓存锁存器的读取操作。

在图5A和图5B中,假设第一参考值为“10”的情况。

在一个实施方式中,当在命令队列中排队的读取命令的数量小于作为第一参考值的10时,不需要执行高速缓存读取操作。

也就是说,因为在存储器装置100的页缓冲器中包括有限数量的锁存器,所以需要移动存储在锁存器中的数据,并且确保用于高速缓存读取操作的锁存器,以执行高速缓存读取操作。然而,当在命令队列中排队的命令的数量小于第一参考值时,移动存储在锁存器中的数据并且然后执行读取操作效率低下。因此,需要将存储在锁存器中的数据存储在另一存储器单元中或将存储在锁存器中的数据输出到存储器控制器200。

因此,因为在图5A和图5B中命令队列中排队的读取命令的数量小于10,所以命令控制器220可以向存储器装置100输出用于执行不使用高速缓存锁存器的正常读取操作的正常读取命令NORMAL_RCMD。存储器装置100可以通过接收正常读取命令NORMAL_RCMD来执行与第一读取命令READ_CMD1至第九读取命令READ_CMD9相对应的操作。

在存储器装置100执行了与第一读取命令READ_CMD1至第九读取命令READ_CMD9相对应的所有操作之后,存储器控制器200可以向存储器装置100输出恢复命令。存储器装置100可以通过接收恢复命令来再次执行被暂停的编程操作。

图6A和图6B是示出基于命令队列中排队的读取命令的数量而输出高速缓存读取命令的过程的图。

参照图4、图6A和图6B,图6A示出了命令控制器220中包括的命令队列,并且图6B示出了基于命令队列中排队的命令的数量而输出高速缓存读取命令CACHE_RCMD的操作。图6A和图6B示出了在图4中命令控制器220向的存储器装置100输出了编程暂停命令之后命令控制器220的操作。

在图6A中,当存储器装置100正在执行编程操作时,与从主机300接收的请求相对应的读取命令可以在命令队列中排队。也就是说,当存储器装置100正在执行编程操作时,存储器控制器200可以从主机300接收第一读取请求至第十读取请求,并且与第一读取请求至第十读取请求相对应的第一读取命令READ_CMD1至第十读取命令READ_CMD10可以在命令队列中排队。

与图5A所示的命令队列中排队的命令的数量不同,图6A所示的命令队列中排队的命令的数量可以是作为第一参考值的10。也就是说,图6B示出了当命令队列中排队的命令的数量等于或大于第一参考值时存储器控制器200和存储器装置100的操作。

在一个实施方式中,当在命令队列中排队的读取命令的数量等于或大于第一参考值时,命令控制器220可以向存储器装置100输出高速缓存读取命令CACHE_RCMD。然而,因为存储器装置100正在执行的编程操作被暂停,所以将要被编程在存储器单元中的数据仍被存储在锁存器中,并且因此需要确保用于执行高速缓存读取操作的锁存器。因此,命令控制器220可以向存储器装置100输出随机数据输出命令RDOUT_CMD,以确保用于执行高速缓存读取操作的锁存器。

参照图6B,在命令控制器220确定输出高速缓存读取命令CACHE_RCMD之后,命令控制器220可以将用于确保高速缓存锁存器的随机数据输出命令RDOUT_CMD输出到存储器装置100。响应于随机数据输出命令RDOUT_CMD,存储器装置100可以将存储在多个锁存器当中的任意一个中的数据输出到存储器控制器200。

例如,当存储器装置100通过使用三层单元(TLC)方案执行编程操作时,编程数据可能被临时存储在页缓冲器中所包括的多个锁存器当中的三个锁存器中,并且然后被编程在存储器单元中。也就是说,LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA被临时存储在各个锁存器中并且然后被编程在存储器单元中。

存储在三个锁存器中的任意一个锁存器中的数据可以被输出到存储器控制器200,使得存储器装置100执行高速缓存读取操作。也就是说,LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA中的任意一个数据可以被输出到存储器控制器200,并且曾一直存储被输出到存储器控制器200的数据的锁存器可以被用作用于执行高速缓存读取操作的锁存器。

即使当使用多层单元(MLC)方案或四层单元(QLC)方案执行编程操作时,也可以相同地应用与随机数据输出命令RDOUT_CMD相对应的操作。也就是说,在存储有多个页数据的任意一个锁存器中所存储的数据被输出到存储器控制器200之后,相应的锁存器可以被用作用于执行高速缓存读取操作的锁存器。

在一个实施方式中,可以将LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA中的任意一个数据存储在编程数据存储部400中。编程数据存储部400可以被配置成静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。

当在编程数据存储部400存储从存储器装置100输出的数据之后存储器装置100结束高速缓存读取操作并且再次执行编程操作时,编程数据存储部400可以再次将从存储器装置100输出的数据输出到存储器装置100。

当从存储器装置100接收的数据被存储在编程数据存储部400中时,命令控制器220可以向存储器装置100输出用于执行高速缓存读取操作的高速缓存读取命令CACHE_RCMD。存储器装置100可以响应于高速缓存读取命令CACHE_RCMD来执行高速缓存读取操作。

图7是示出在图6B所示的存储器装置100中输出数据的过程的图。

参照图7,图7示出了在图2所示的存储器装置100的配置中的页缓冲器组(图2所示的123)中所包括的第一页缓冲器PB1、列解码器124和输入/输出电路125。在图7中,假设省略了图2所示的存储器装置100的配置中的其它组件的情况。图7示出了当存储器装置100通过使用三层单元(TLC)方案执行编程操作时的数据输出。

在一个实施方式中,页缓冲器组(图2所示的123)中所包括的第一页缓冲器PB1可以包括第一锁存器LATCH1至第五锁存器LATCH5。第一锁存器LATCH1至第五锁存器LATCH5可以共同联接到第一位线BL1。此外,第一锁存器LATCH1至第五锁存器LATCH5可以通过第一数据线DL1联接到列解码器124。页缓冲器组(图2所示的123)中所包括的其它缓冲器中的每一个也可以联接到对应位线和对应数据线。

LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA可以分别被临时存储在第一页缓冲器PB1中所包括的第一锁存器LATCH1至第五锁存器LATCH5中的第一锁存器LATCH1至第三锁存器LATCH3中,并且被存储在第一锁存器LATCH1至第三锁存器LATCH3中的数据可以被编程在存储器单元中。第一页缓冲器PB1中所包括的第一锁存器LATCH1至第五锁存器LATCH5中的第四锁存器LATCH4和第五锁存器LATCH5可以用于感测存储在存储器单元中的数据的感测操作。

在一个实施方式中,当命令控制器220向存储器装置100输出随机数据输出命令时,存储器装置100可以执行与随机数据输出命令相对应的操作。

具体而言,当存储器装置100接收到随机数据输出命令时,存储器装置100可以通过第一数据线DL1将存储在第一锁存器LATCH1至第三锁存器LATCH3中的数据中的任意一个数据发送到列解码器124。也就是说,被存储在第一锁存器LATCH1中的LSB页数据LSB_DATA、被存储在第二锁存器LATCH2中的CSB页数据CSB_DATA和被存储在第三锁存器LATCH3中的MSB页数据MSB_DATA中的任意一个数据可以通过第一数据线DL1被发送到列解码器124。

被发送到列解码器124的数据可以通过列线被发送到输入/输出电路125,并且被发送到输入/输出电路125的数据可以被提供给存储器控制器200。

当被存储在第一锁存器LATCH1至第三锁存器LATCH3中的数据中的任意一个数据被发送到存储器控制器200时,发送该数据的锁存器可以被分配为用于执行高速缓存读取操作的锁存器。也就是说,向存储器控制器发送数据的锁存器可以被擦除,并且可以在高速缓存读取操作中存储读取的数据。

图8是示出与图6所示的高速缓存读取命令相对应的锁存器的传输操作的图。

参照图8,图8是示出在第一页缓冲器(图7所示的PB1)中所包括的多个锁存器当中的用于执行高速缓存读取操作的一些锁存器的图。存储器装置(图1所示的100)可以在时间t0至t5读取存储在存储器单元中的数据。

在一个实施方式中,在作为一般读取操作的正常读取操作中,可以使用第一页缓冲器(图7所示的PB1)中所包括的第四锁存器LATCH4和第五锁存器LATCH5来执行读取操作。也就是说,存储在存储器单元中的数据可以被临时存储在第四锁存器LATCH4中,并且用于感测的数据可以被存储在第五锁存器LATCH5中。

然而,与正常读取操作不同,在高速缓存读取操作中,除了第一页缓冲器(图7所示的PB1)中所包括的第四锁存器LATCH4和第五锁存器LATCH5之外,还可以使用第一锁存器LATCH1至第三锁存器LATCH3中的任意一个锁存器来执行高速缓存读取操作。也就是说,响应于从存储器控制器(图1所示的200)接收的随机数据输出命令而输出数据的锁存器可以被用于执行高速缓存读取操作。

例如,在高速缓存读取操作中,存储在存储器单元中的数据可以被存储在第四锁存器LATCH4中。存储在第四锁存器LATCH4中的数据可以被存储在第一锁存器LATCH1中。也就是说,当响应于随机数据输出命令而将存储在第一锁存器LATCH1中的LSB页数据LSB_DATA输出到存储器控制器(图1所示的200)时,第一锁存器LATCH1可以被分配为用于执行高速缓存读取操作的锁存器,并且存储在第四锁存器LATCH4中的数据可以被存储在第一锁存器LATCH1中。

在一个实施方式中,当存储在第二锁存器LATCH2中的CSB页数据CSB_DATA被输出到存储器控制器(图1所示的200)时,第二锁存器LATCH2可以被分配为用于执行高速缓存读取操作的锁存器,并且存储在第四锁存器LATCH4中的数据可以被存储在第二锁存器LATCH2中。另外,当存储在第三锁存器LATCH3中的MSB页数据MSB_DATA被输出到存储器控制器(图1所示的200)时,第三锁存器LATCH3可以被分配为用于执行高速缓存读取操作的锁存器,并且存储在第四锁存器LATCH4中的数据可以被存储在第三锁存器LATCH3中。

因此,存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3中的数据可以被输出到存储器控制器(图1所示的200)。在高速缓存读取操作中,第四锁存器LATCH4作为主锁存器操作,并且被分配作为高速缓存锁存器的第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3可以执行独立的操作。

因此,在从存储器单元读取的数据被存储在第四锁存器LATCH4中时,存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3中的数据可以被输出到列解码器。在本公开中执行的高速缓存读取操作可以按以下时间顺序执行。

在时间t0,存储器装置(图1所示的100)可以将存储在存储器单元中的数据中的第一数据Data1存储到第四锁存器LATCH4(Data1读取)。

在时间t1,存储器装置(图1所示的100)可以将存储在第四锁存器LATCH4中的第一数据Data1复制到第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3(Data1复制)。

在时间t2,在存储器装置(图1所示的100)正在将第二数据Data2存储在第四锁存器LATCH4中(Data2读取)时,存储器装置(图1所示的100)可以将存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3中的第一数据Data1输出到存储器控制器(图1所示的200)(Data1输出)。

在时间t3,存储器装置(图1所示的100)可以将存储在第四锁存器LATCH4中的第二数据Data2复制到第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3(Data2复制)。

在时间t4,在存储器装置(图1所示的100)正在将第三数据Data3存储在第四锁存器LATCH4中(Data3读取)时,存储器装置(图1所示的100)可以将存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3中的第二数据Data2输出到存储器控制器(图1所示的200)(Data2输出)。

在时间t5,存储器装置(图1所示的100)可以将存储在第四锁存器LATCH4中的第三数据Data3复制到第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3(Data3复制),并且然后将存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器3中的第三数据Data3输出到存储器控制器(图1所示的200)(Data3输出)。

在时间t2、t4和t5,在正在将存储在存储器单元中的数据读取到第四锁存器LATCH4时,可以输出存储在第一锁存器LATCH1、第二锁存器LATCH2或第三锁存器LATCH3中的数据。因此,当使用高速缓存读取方案执行顺序读取操作时,与不使用高速缓存读取方案的正常读取操作相比,存储器装置(图1中示出的100)能够更加快速有效地执行顺序读取操作。

图9是示出高速缓存读取操作的暂停和编程操作的恢复的图。

参照图9,图9所示的存储器控制器200可以包括命令控制器220和编程数据存储部400。在图9中,假设省略了存储器控制器(图1所示的200)的配置中的请求发送器(图1所示的210)的情况。

图9示出了暂停与命令控制器220输出的高速缓存读取命令相对应的操作的情况。

在一个实施方式中,存储器装置100可以执行与高速缓存读取命令相对应的高速缓存读取操作。当存储器装置100执行的读取命令的数量大于第二参考值时,存储器装置100可以暂停高速缓存读取操作。第二参考值可以是预先确定的。

具体而言,存储器装置100可以在编程暂停状态下执行与从命令控制器220接收的高速缓存读取命令相对应的高速缓存读取操作。然而,即使当存储器装置100正在执行高速缓存读取操作时,读取命令也可以在命令队列中排队,因此可能需要暂停高速缓存读取操作,使得存储器装置100执行被暂停的编程操作。

也就是说,对于一个实施方式,当读取命令在命令队列中持续排队时,存储器装置100不能再次执行被暂停的编程操作。因此,存储器装置100可以暂停高速缓存读取操作,以再次执行被暂停的编程操作。

在本公开中,命令控制器220可以基于存储器装置执行的读取命令的数量是否超过第二参考值来控制存储器装置100暂停高速缓存读取操作。

例如,当由存储器装置执行的读取命令的数量超过20时,命令控制器220可以向存储器装置100输出高速缓存读取暂停命令CACHE_RSCMD。第二参考值可以是“20”。存储器装置100可以通过接收高速缓存读取暂停命令CACHE_RSCMD来暂停高速缓存读取操作。

当高速缓存读取操作暂停时,命令控制器220可以向存储器装置100输出随机数据输入命令RDIN_CMD,以再次执行被暂停的编程操作。在命令控制器220向存储器装置100输出随机数据输入命令RDIN_CMD之后,编程数据存储部400可以再次向存储器装置100输出在存储器装置100执行高速缓存读取操作之前从存储器装置100输出的数据。从存储器装置100输出的数据可以是LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA中的任意一个。

当LSB页数据LSB_DATA、CSB页数据CSB_DATA和MSB页数据MSB_DATA中的任意一个被输出到存储器装置100时,输出数据可以被存储在锁存器中。随后被存储在锁存器中的数据可以用于执行被暂停的编程操作。

当被输出到存储器装置100的数据被存储在锁存器中时,命令控制器220可以向存储器装置100输出恢复命令RESUME_CMD。存储器装置100可以通过接收恢复命令RESUME_CMD来恢复被暂停的编程操作。也就是说,已经被存储在编程数据存储部400中的数据可以再次被存储在锁存器中,并且存储器装置100可以对应于恢复命令RESUME_CMD而将存储在锁存器中的数据编程在存储器单元中。

图10是示出根据本公开的实施方式的输出正常读取命令或高速缓存读取命令的过程的图。

参照图10,在操作S1001中,当存储器装置正在执行编程操作时,存储器控制器可以从主机接收读取请求。存储器控制器可以生成与读取请求相对应的读取命令,并将生成的读取命令输出到存储器装置。存储器装置可以执行与读取命令相对应的读取操作。

然而,因为存储装置正在执行编程操作,所以存储器控制器可以基于读取操作的等待时间和存储装置正在执行的编程操作的等待时间而向存储装置输出编程暂停命令(S1003)。例如,当执行读取操作所需的时间长于完成编程操作所需的时间时,可能需要优先执行读取操作。因此,存储器控制器可以向存储器装置输出用于暂停编程操作的编程暂停命令。

在存储器控制器输出编程暂停命令之后,存储器控制器可以基于命令队列中排队的命令的数量来确定是输出正常读取命令还是输出高速缓存读取命令(S1005)。

例如,当在命令队列中排队的读取命令的数量小于第一参考值时,将存储在页缓冲器中的数据读取到存储器控制器并且将被读取到存储器控制器的数据再次发送到页缓冲器所需的时间比执行在命令队列中排队的读取命令所需的时间更长。因此,不需执行高速缓存读取操作。因此,存储器控制器可以确定将正常读取命令输出到存储器装置,以执行在命令队列中排队的读取命令。

对于相反的示例,当在命令队列中排队的读取命令的数量大于或等于第一参考值时,将存储在页缓冲器中的数据读取到存储器控制器并且将被读取到存储器控制器的数据再次发送到页缓冲器所需的时间比执行在命令队列中排队的读取命令所需的时间更短。因此,可能需要执行高速缓存读取操作。因此,存储器控制器可以确定将高速缓存读取命令输出到存储器装置,以执行在命令队列中排队的读取命令。

图11是示出根据本公开实施方式的基于命令队列输出的正常读取命令或高速缓存读取命令的图。

图11是根据本公开的实施方式的通过细分图10所示的操作S1005而获得的流程图。

在操作S1101中,存储器控制器可以检查命令队列中累积的命令的数量。与从主机接收的请求相对应的命令可以在命令队列中排队。在命令队列中排队的命令可以在存储器控制器的控制下被输出到存储器装置。

具体而言,存储器控制器可以确定在命令队列中排队的命令的数量是否大于第一参考值(S1103)。第一参考值可以是在直至存储在存储器装置的页缓冲器中的数据被输出到存储器控制器以被存储在存储器控制器中并且存储在存储器控制器中的数据被再次存储在存储器装置的页缓冲器中所需的时间变得等于执行累积在命令队列中的读取命令所需的时间时的读取命令的数量。

在一个实施方式中,当在命令队列中排队的命令的数量小于第一参考值时(N),存储器控制器可以向存储器装置输出正常读取命令(S1105)。也就是说,因为直至存储在存储器装置的页缓冲器中的数据被输出到存储器控制器以被存储在存储器控制器中并且存储在存储器控制器中的数据被再次存储在存储器装置的页缓冲器中所需的时间比执行累积在命令队列中的读取命令所需的时间更长,所以存储器装置不需行高速缓存读取操作。

相反,当在命令队列中排队的命令的数量大于第一参考值时(Y),存储器控制器可以向存储器装置输出随机数据输出命令(S1107)。也就是说,因为直至存储在存储器装置的页缓冲器中的数据被输出到存储器控制器以被存储在存储器控制器中并且存储在存储器控制器中的数据被再次存储在存储器装置的页缓冲器中所需的时间比执行累积在命令队列中的读取命令所需的时间更短,所以存储器装置可以确定执行高速缓存读取操作。因此,存储器控制器可以向存储器装置输出随机数据输出命令,并且存储在存储器装置中的数据被输出到存储器控制器,从而可以确保用于执行高速缓存读取操作的锁存器。

具体而言,存储器控制器可以从存储器装置接收LSB页数据、CSB页数据和MSB页数据中的任意一个(S1109)。也就是说,当存储器装置通过使用三层单元(TLC)方案执行编程操作时,存储器控制器可以接收存储在存储器装置的锁存器中的任意一个数据,以确保用于执行高速缓存读取操作的锁存器。

当存储器控制器接收到存储在存储器装置的锁存器中的LSB页数据、CSB页数据和MSB页数据中的任意一个时,曾一直存储所接收到的数据的锁存器可以被分配为用于执行高速缓存读取操作的锁存器。

当确保了用于执行高速缓存读取操作的锁存器时,存储器控制器可以向存储器装置输出高速缓存读取命令(S1111)。当高速缓存读取命令被输出到存储器装置时,可以由存储器装置执行与在命令队列中排队的读取命令相对应的操作。

图12是示出根据本公开的实施方式的输出高速缓存读取暂停命令的过程的图。

参照图11和图12,当通过图11所示的操作S1109确保了用于执行高速缓存读取操作的锁存器时,存储器控制器可以向存储器装置输出高速缓存读取命令(S1111)。存储器装置可以通过接收高速缓存读取命令来执行与高速缓存读取命令相对应的高速缓存读取操作。

然而,当命令在存储器控制器中所包括的命令队列中持续地排队时,不能再次执行被暂停的编程操作。因此,存储器控制器可以确定由存储器装置执行的读取命令的数量是否达到第二参考值(S1203)。第二参考值可以是预先确定的。

当由存储装置执行的读取命令的数量没有达到第二参考值时(N),可以由存储装置执行读取操作,并且因此,存储器控制器可以再次向存储装置输出高速缓存读取命令(S1205)。

然而,当存储装置执行的读取命令的数量达到第二参考值(Y)时,存储器控制器可以向存储装置输出高速缓存读取暂停命令。存储器装置可以通过接收高速缓存读取暂停命令来暂停读取操作,并且执行被暂停的编程操作。

图13是示出根据本公开的实施方式的输出恢复命令的过程的图。

图13示出了根据本公开的实施方式的在图12所示的操作S1205之后的操作。

在一个实施方式中,当存储器装置暂停高速缓存读取操作时,存储器控制器可以控制存储器装置再次执行被暂停的编程操作。

具体而言,存储器控制器可以向存储器装置输出随机数据输入命令(S1301)。随机数据输入命令可以是用于将从存储器装置接收和存储的数据输出到存储器装置的命令。

在存储器控制器向存储器装置输出随机数据输入命令之后,存储在存储器控制器中的数据可以被输出到存储器装置(S1303)。所述存储在存储器控制器中的数据可以是在存储器控制器输出高速缓存读取命令之前对应于随机数据输出命令而接收的。当存储在存储器控制器中的数据被输出到存储器装置时,对应的数据可以被存储在在存储器装置中的用于执行高速缓存读取操作的锁存器中。

当数据被存储在存储器装置的锁存器中时,存储器控制器可以向存储器装置输出恢复命令(S1305)。恢复命令可以是用于再次执行被暂停的编程操作的命令。当恢复命令被输出到存储器装置时,存储器装置可以基于存储在锁存器中的数据再次执行被暂停的编程操作。

图14是示出图1所示的存储器控制器200的另一实施方式的图。

参照图14,存储器控制器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可以接收将要使用映射表而被转换成PBA的LBA。根据映射单元,存在FTL的数种地址映射方法。代表性的地址映射方法包括页映射方法、块映射方法和混合映射方法。

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

当处理器1010在存储器装置(图1所示的100)正在执行编程操作的情况下从主机(图1所示的300)接收到读取请求时,处理器1010可以控制存储器装置(图1所示的100),以基于与读取请求相对应的读取操作的等待时间和编程操作的等待时间来暂停由存储器装置(图1所示的100)执行的编程操作。

当由存储器装置(图1所示的100)执行的编程操作被暂停时,处理器1010可以基于在命令队列中排队的读取命令的数量,向存储器装置(图1所示的100)输出正常读取命令或高速缓存读取命令。

在存储器装置(图1所示的100)执行与高速缓存读取命令相对应的高速缓存读取操作之前,可以从存储器装置(图1所示的100)输出数据。从存储器装置(图1所示的100)输出的数据可以被存储在存储器缓冲器1020中。随后,当存储器装置(图1所示的100)恢复编程操作时,存储在存储器缓冲器1020中的数据可以被输出到存储器装置(图1所示的100)。

处理器1010可以通过驱动软件或固件来执行随机化和去随机化。

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

ECC电路1030可以执行ECC操作。ECC电路1030可以通过存储器接口1060对要被写入存储器装置中的数据执行ECC编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置。ECC电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码。在一个示例中,ECC电路1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。

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

缓冲器控制电路1050被配置成在处理器1010的控制下控制存储器缓冲器1020。

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

在一个示例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。

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

在一个示例中,存储器控制器1000的总线1070可以被分为控制总线和数据总线。数据总线可以被配置成在存储器控制器1000中发送数据,并且控制总线可以被配置成在存储器控制器1000中发送例如命令和地址的控制信息。数据总线和控制总线可以彼此分离,并且可以不相互干扰或影响。数据总线可以连接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。

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

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

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

当存储器控制器2100在存储器装置2200正在执行编程操作的情况下从主机(图1所示的300)接收到读取请求时,存储器控制器2100可以控制存储器装置2200,以基于与读取请求相对应的读取操作的等待时间和编程操作的等待时间来暂停存储器装置2200正在执行的编程操作。

当暂停由存储器装置2200执行的编程操作时,存储器控制器2100可以基于在命令队列中排队的读取命令的数量向存储器装置2200输出正常读取命令或高速缓存读取命令。

在存储器装置2200执行与高速缓存读取命令相对应的高速缓存读取操作之前,可以从存储器装置2200输出数据。从存储装置2200输出的数据可以被存储在存储器控制器2100中。随后,当存储器装置2200恢复编程操作时,存储在存储器控制器2100中的数据可以被输出到存储器装置2200。

在一个示例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和纠错器的组件。

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

在一个示例中,存储器装置2200可以采用诸如电可擦除可编程只读存储器(EEPROM)、NAND闪存存储器、NOR闪存存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-MRAM)的各种非易失性存储器装置实现。

存储器控制器2100和存储器装置2200可以集成到单个半导体装置中,以构成存储卡。例如,存储器控制器2100和存储装置2200可以构成诸如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro和eMMC)、SD卡(SD、miniSD、microSD和SDHC)以及通用闪存存储(UFS)的存储卡。

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

参照图16,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD3200包括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 express(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子装置(IDE)、火线、通用闪存存储(UFS)、Wi-Fi、蓝牙和NVMe的至少一种接口限定的信号。

当SSD控制器3210在多个闪存存储器3221至322n正在执行编程操作的情况下从主机3100接收到读取请求时,SSD控制器3210可以控制多个闪存存储器3221至322n,以基于与读取请求相对应的读取操作的等待时间和编程操作的等待时间来暂停多个闪存存储器3221至322n正在执行的编程操作。

当暂停多个闪存存储器3221至322n执行的编程操作时,SSD控制器3210可以基于在命令队列中排队的读取命令的数量,向多个闪存存储器3221至322n输出正常读取命令或高速缓存读取命令。

在多个闪存存储器3221至322n执行与高速缓存读取命令相对应的高速缓存读取操作之前,可以从多个闪存存储器3221至322n输出数据。从多个闪存存储器3221至322n输出的数据可以被存储在SSD控制器3210中。随后,当多个闪存存储器3221至322n恢复编程操作时,存储在SSD控制器3210中的数据可以被输出到多个闪存存储器3221至322n。

辅助电源3230通过电源连接器3002连接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可以为SSD 3200供电。在一个示例中,辅助电源3230可以位于SSD3200中,或者位于SSD 3200的外部。例如,辅助电源3230可以位于主板上,并且向SSD 3200提供辅助电力。

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

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

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

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

当应用处理器4100在存储模块4400正在执行编程操作的情况下从主机(图1所示的300)接收到读取请求时,应用处理器4100可以控制存储模块4400,以基于与读取请求相对应的读取操作的等待时间和编程操作的等待时间来暂停存储模块4400正在执行的编程操作。

当暂停存储模块4400正在执行的编程操作时,应用处理器4100可以基于在命令队列中排队的读取命令的数量向存储模块4400输出正常读取命令或高速缓存读取命令。

在存储模块4400执行与高速缓存读取命令相对应的高速缓存读取操作之前,可以从存储模块4400输出数据。从存储模块4400输出的数据可以被存储在应用处理器4100中。随后,当存储模块4400恢复编程操作时,存储在应用处理器4100中的数据可以被输出到存储模块4400。

存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲器存储器或高速缓存存储器来操作。存储器模块4200可以包括易失性随机存取存储器(例如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM)或非易失性随机存取存储器(例如PRAM、ReRAM、MRAM和FRAM)。在一个示例中,应用处理器4100和存储器模块4200可以通过基于层叠封装(PoP)进行封装而设置为一个半导体封装。

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

存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。另选地,存储模块4400可以将存储在其中的数据发送到应用处理器4100。在一个示例中,存储模块4400可以采用具有三维结构的例如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、NAND闪存、NOR闪存或NAND闪存的非易失性半导体存储器装置来实现。在一个示例中,存储模块4400可以被设置为可移动驱动器,例如用户系统4000的存储卡或外部驱动器。

在一个示例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图2和图3描述的存储器装置相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。

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

根据本公开,在编程暂停期间,存储有编程数据的锁存器中的任意一个中所存储的数据被输出到存储器控制器,并且对应的锁存器被用作用于执行高速缓存读取操作的锁存器,从而可以在不添加任何锁存器的情况下执行高速缓存读取操作。

尽管已经参照本公开的某些实施方式示出和描述了本公开,但是本领域技术人员应理解,在不脱离由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应限于上述实施方式,而是应由所附权利要求及其等同物确定。

在上述实施方式中,可以选择性地执行所有操作,或者可以省略一些操作。在每个实施方式中,操作不一定按照所描述的顺序执行,而是可以重新排列。本说明书和附图中公开的实施方式仅是用于便利对理解本公开的示例,并且本公开不限于此。也就是说,对于本领域的技术人员来说,显然可以基于本公开的技术范围进行各种修改。

同时,已经在附图中示出并且在说明书中描述了本公开的实施方式。尽管这里使用了特定的术语,但是这些术语仅用于解释本公开的实施方式。因此,本公开不限于上述实施方式,并且在本公开的精神和范围内可以进行许多变化。对本领域技术人员来说,除了在此公开的实施方式之外,显然可以基于本公开的技术范围进行各种修改。

相关申请的交叉引用

本申请要求于2019年9月6日在韩国知识产权局提交的韩国专利申请No.10-2019-0110935的优先权,其全部公开内容通过引用结合于此。

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

06120112437458