存储器控制器及其操作方法与流程

文档序号:20916443发布日期:2020-05-29 13:35阅读:260来源:国知局
相关申请的交叉引用本申请要求于2018年11月22日提交的申请号为10-2018-0145784的韩国专利申请的优先权,其全部公开内容通过引用整体并入本文。本公开总体涉及一种电子装置,且更特别地,涉及一种存储器控制器及其操作方法。
背景技术
::存储装置在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置包括诸如硬盘驱动器(hdd)的用于将数据存储在磁盘上的装置,或者诸如固态驱动器(ssd)或存储卡的用于将数据存储在半导体存储器,即非易失性存储器上的装置。存储装置可包括用于存储数据的存储器装置和用于控制存储器装置的存储器控制器。存储器装置分为易失性存储器装置或非易失性存储器装置。非易失性存储器装置的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)以及铁电ram(fram)等。技术实现要素:实施例提供了一种用于处理清除请求的存储器控制器及其操作方法。根据本公开的一个方面,提供了一种存储器控制器,包括:请求消息控制器,被配置成响应于主机的请求生成命令或控制信号;延迟时间确定器,被配置成当请求是当前清除请求时,基于在当前清除请求之前最后接收的清除请求与所接收的清除请求之间的写入请求的数量来生成延迟信息;以及响应消息控制器,被配置成基于延迟信息来生成对应于所接收的清除请求的清除响应。根据本公开的另一方面,提供了一种存储器控制器,包括:延迟时间确定器,被配置成从主机接收请求,并且当主机的请求是清除请求时,基于清除请求与清除请求之前最后接收的清除请求之间的写入请求的数量,生成关于清除响应的延迟时间的延迟信息;以及响应消息控制器,被配置成基于延迟信息,延迟生成对应于清除请求的清除响应。根据本公开的又一方面,提供了一种操作存储器控制器的方法,该存储器控制器基于来自主机的请求消息来控制存储器装置的操作,该方法包括:从主机接收清除请求,基于在当前清除请求之前最后接收的清除请求与所接收的清除请求之间的写入请求的数量来生成延迟信息,并且基于延迟信息来确定对应于所接收的清除请求的清除响应的延迟时间。根据本公开的又一方面,提供了一种操作存储器装置的方法,该方法包括:接收一个或多个写入请求,然后接收清除请求,在接收写入请求的同时,缓冲相应的写入命令,响应于清除请求将写入命令清除到存储器装置中以响应于写入请求来执行写入操作,并且当写入命令或写入请求的数量大于或等于阈值时,将对应于清除请求的清除响应的输出延迟对应于该数量的时间量。附图说明现在将参照附图更全面地描述各个实施例;然而,本发明的方面和特征可以不同的形式、配置或布置来实现。因此,本发明不限于本文阐述的实施例。相反地,提供这些实施例以使本公开是彻底且充分的,并且将实施例的范围全面地传达给本领域技术人员。此外,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在附图中,为了说明清楚,可放大尺寸。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。图1是示出根据本公开的实施例的存储装置的框图。图2是示出诸如图1所示的存储器控制器的示图。图3是示出诸如图1所示的存储器控制器的另一实施例的示图。图4是示出诸如图2和图3所示的延迟时间确定器的示图。图5是示出诸如图4所示的延迟表的示图。图6是示出清除请求被累积的示图。图7是示出诸如图1所示的主机与存储器控制器之间的请求和响应的示图。图8是示出诸如图1所示的存储器装置的结构的框图。图9是示出根据本公开的实施例的存储器控制器的操作的流程图。图10是示出根据本公开的实施例的存储器控制器的操作的流程图。图11是示出根据本公开的实施例的存储器控制器的操作的流程图。图12是示出根据本公开的实施例的存储器控制器的操作的流程图。图13是示出诸如图1所示的存储器控制器的另一实施例的示图。图14是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。图15是示出根据本公开的实施例的应用存储装置的固态驱动器(ssd)系统的框图。图16是示出根据本公开的实施例的应用存储装置的用户系统的框图。具体实施方式本文的具体结构和功能描述是为了描述根据本发明的概念的实施例。可以各种形式来实施实施例,因此本发明不限于本文所阐述的实施例。可以各种方式修改本公开的实施例。虽然本文详细描述和说明了实施例,但本发明不限于这些具体的细节。相反,本发明包括不脱离本公开的实质和技术范围的所有改变、等同方案和替代方案。虽然诸如“第一”和“第二”的术语可用于识别各个部件,但这些部件不受以上术语的限制。以上术语仅用于将一个部件与另一具有相同或相似名称的部件区分开。例如,在不脱离本发明的权利范围的情况下,一个实例中的第一组件在另一实例中可被称为第二组件,反之亦然。将理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接连接到或联接到其它元件,或者也可存在一个或多个中间元件。相反地,当元件被称为“直接连接”或“直接联接”到另一元件时,不存在中间元件。可类似地来解释诸如“在……之间”、“直接在……之间”或“与……相邻”和“直接与……相邻”等描述组件之间关系的其它表述。本申请中的术语用于描述特定实施例,而非限制本发明。除非上下文另有明确说明,否则本公开中的单数形式也旨在包括复数形式。将进一步理解的是,诸如“包括”或“具有”等开放式术语旨在指示所述特征、数字、操作、动作、组件、部件或其组合的存在,但不旨在排除可能存在或可能添加一个或多个其它特征、数字、操作、动作、组件、部件或其组合的可能性。只要没有进行不同的定义,则本文所使用的包括技术或科学术语的所有术语都具有本公开所属领域的技术人员通常理解的含义。普通字典定义的术语应当被理解为具有与相关技术背景一致的含义。只要本申请没有明确定义,不应以理想或过于正式的方式理解术语。在描述实施例时,省略了对本公开所属领域公知的且与本公开不直接相关的技术的描述。这样做是为了避免不必要地模糊本发明。以下将参照附图详细地描述本公开的各个实施例,以便本领域技术人员能够容易地实施和实践本发明。图1是示出根据本公开的实施例的存储装置的框图。参照图1,存储装置50可包括存储器装置100和存储器控制器200。存储装置50可在诸如移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、tv、平板电脑或车载信息娱乐系统的主机300的控制下存储数据。根据作为与主机300的通信方案的主机接口,存储装置50可被配置成各种类型的存储装置中的任意一种。例如,存储装置50可利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(ssd),嵌入式多媒体卡(emmc)型、尺寸减小的多媒体卡(rs-mmc)型和微型多媒体卡(微型mmc)型的多媒体卡(mmc),安全数字(sd)型、迷你安全数字(迷你-sd)型和微型安全数字(微型sd)型的安全数字(sd)卡,通用串行总线(usb)存储装置,通用闪存(ufs)装置,个人计算机存储卡国际协会(pcmcia)卡型的存储装置,外围组件互连(pci)卡型的存储装置,高速pci(pci-e或pcie)卡型的存储装置,紧凑型闪存(cf)卡,智能媒体卡和记忆棒。存储装置50可被制造在诸如以下的各种封装类型中的任意一种中:堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)以及晶圆级堆叠封装(wsp)。存储器装置100可存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可包括多个平面。每个平面可包括多个存储块blk1至blkz。每个存储块可包括多个存储器单元。一个存储块可包括多个页面。在实施例中,页面可以是用于在存储器装置100中存储数据或读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。在实施例中,存储器装置100可以是:双倍数据速率同步动态随机存取存储器(ddrsdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器装置、电阻式随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移力矩随机存取存储器(stt-ram)等。在本说明书中,作为示例,在存储器装置100为nand闪速存储器的背景中描述实施例。在实施例中,存储器装置100可以三维阵列结构来实施。本公开不仅可应用于其中电荷存储层被配置有浮栅(fg)的闪速存储器装置,而且可应用于其中电荷存储层被配置有绝缘层的电荷撷取闪存(ctf)。在实施例中,存储器装置100中包括的存储器单元中的每一个可被配制成用于存储一个数据位的单层单元(slc)、用于存储两个数据位的多层单元(mlc)、用于存储三个数据位的三层单元(tlc)或用于存储四个数据位的四层单元(qlc)。存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的由地该址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器装置100可将数据编程到由地址选择的区域中。在读取操作中,存储器装置100可从由地址选择的区域读取数据。在擦除操作中,存储器装置100可擦除存储在由地址选择的区域中的数据。存储器装置100可在存储器控制器200的控制下以设定操作电压执行编程操作或擦除操作。存储器控制器200可控制存储装置50的全部操作。当向存储装置50供应电力时,存储器控制器200可执行固件(fw)。当存储器装置100为闪速存储器装置时,存储器控制器200可执行诸如闪存转换层(ftl)的fw,用以控制主机300和存储器装置100之间的通信。在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(lba),并且将lba转换为物理块地址(pba),该物理块地址(pba)表示包括在存储器装置100中的、待存储数据的存储器单元的地址。而且,存储器控制器200可在缓冲存储器中存储逻辑-物理地址映射信息,该逻辑-物理地址映射信息在lba和pba之间建立映射关系。存储器控制器200可响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可向存储器装置100提供编程命令、pba和数据。在读取操作中,存储器控制器200可向存储器装置100提供读取命令和pba。在擦除操作中,存储器控制器200可向存储器装置100提供擦除命令和pba。在实施例中,存储器控制器200可在没有来自主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。在实施例中,存储器控制器200可控制至少两个存储器装置100。存储器控制器200可根据交错(interleave)方案控制存储器装置,以便提高操作性能。在实施例中,存储器控制器200可包括主机接口210。主机接口210可与主机300通信。具体地,主机接口210可从主机300接收请求消息req_mes,并将该请求消息req_mes提供到请求消息控制器220。请求消息req_mes可以是编程(写入)请求、读取请求和清除请求中的任意一个。然而,从主机300接收的请求消息req_mes不限于这些类型的请求;相反,请求消息req_mes可指示适于存储器装置100的性能的任何其它类型的操作。在实施例中,存储器控制器200可包括请求消息控制器220。请求消息控制器220可从主机300接收请求存储器装置100执行特定操作的请求消息req_mes。请求消息控制器220可基于主机300的请求消息req_mes来生成写入命令write_cmd或清除控制信号flush_sig。所生成的写入命令write_cmd可存储在请求消息控制器220的缓冲存储器(未示出)中。当缓冲存储器中存储的写入命令的数量达到设定数量时,缓冲存储器中存储的写入命令可通过存储器接口250而被提供到存储器装置100。具体地,写入命令write_cmd可从存储器控制器200输出到存储器装置100。写入命令write_cmd可用于将特定数据存储在存储器装置100中。清除控制信号flush_sig可用于控制对在存储器控制器200中生成的写入命令write_cmd的清除操作。将参照图2和图3更详细地描述写入命令write_cmd和清除控制信号flush_sig。在实施例中,存储器控制器200可包括延迟时间确定器230。延迟时间确定器230可确定是否将延迟与主机300的清除请求flush_req相对应的清除响应flush_res以及该清除响应flush_res的延迟时间。延迟时间确定器230可基于清除控制信号flush_sig和写入命令write_cmd来确定是否将延迟清除响应flush_res以及清除响应flush_res的延迟时间。延迟时间确定器230可生成延迟信息delay_inf,该延迟信息delay_inf包括是否将延迟清除响应flush_res以及清除响应flush_res的延迟时间。在实施例中,存储器控制器200可包括响应消息控制器240。响应消息控制器240可响应于主机300的清除请求flush_req而生成清除响应flush_res。在实施例中,存储器控制器200可包括存储器接口250。存储器接口250可与存储器装置100通信。具体地,存储器接口250可从请求消息控制器220接收写入命令write_cmd。存储器接口250可将所接收的写入命令write_cmd提供到存储器装置100。存储器装置100可执行对应于写入命令write_cmd的操作。主机300可使用诸如以下的各种通信协议中的至少一种来与存储装置50通信:通用串行总线(usb)、串行at附件(sata)、高速芯片间(hsic)、小型计算机系统接口(scsi)、火线、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)以及低负载dimm(lrdimm)。主机300可包括应用310和内核320。在实施例中,应用310是应用程序,并且可被设计成执行主机300的请求。应用可以是被设计成使得主机300在存储装置50中执行特定操作的程序。内核320可生成或移除待在存储装置50中执行的操作进程。内核320可分配和执行操作进程所需的进程。内核320可包括虚拟文件系统(vfs)321、块层323和存储器驱动器325。在实施例中,vfs321是虚拟文件系统,并且可被配置成使主机300能够访问存储装置50的系统。vfs321可管理主机300与存储装置50之间的目录,以访问存储装置50中存储的数据。块层323可提供接口,使得应用310可访问存储装置50。块层323可提供能够累积或保持主机300的请求并将所保持的请求传输到存储装置50的接口。在实施例中,块层323可执行主机300的电梯清除策略(elevatorflushpolicy)。电梯清除策略指的是将分别对应于清除请求的多个写入命令进行合并。具体地,在主机300接收到与主机300的清除请求flush_req相对应的清除响应flush_res之前,可不将与主机300的清除请求相对应的多个写入命令提供到存储器控制器200。因此,在主机300接收到清除响应flush_res之前,主机300可将对应于清除请求的多个写入命令进行合并。存储器驱动器325可控制主机300和存储装置50以彼此通信。具体地,主机300可通过存储器驱动器325向主机300传输数据或者从主机300接收数据。在实施例中,存储器驱动器325可基于电梯清除策略来合并所保持的清除请求。具体地,从块层323接收的清除请求可被保持在存储器驱动器325中。也就是说,可通过合并多个写入命令来执行一次清除操作。存储器驱动器325可向存储装置50提供所保持的写入命令。图2是示出图1所示的存储器控制器200的示图。参照图2,存储器控制器200可包括主机接口210、请求消息控制器220、延迟时间确定器230、响应消息控制器240和存储器接口250。主机接口210可与主机300通信。具体地,主机接口210可从主机300接收请求消息req_mes,并将该请求消息req_mes提供到请求消息控制器220。请求消息req_mes可以是任何编程(写入)请求、读取请求、清除请求和其它类型请求中的任意一种。将参照图3描述主机接口210提供请求消息req_mes的方法的另一实施例。请求消息控制器220可从主机300接收请求消息req_mes。请求消息控制器220可响应于主机300的请求消息req_mes来生成命令或控制信号。当请求消息req_mes是写入请求write_req时,请求消息控制器220可生成写入命令write_cmd。所生成的写入命令write_cmd可存储在请求消息控制器220的缓冲存储器中。当特定数量的写入命令被存储在缓冲存储器中时,缓冲存储器中存储的写入命令可通过存储器接口250而被提供到存储器装置100。除了存储器装置100之外,也可将写入命令write_cmd提供到延迟时间确定器230。当请求消息req_mes是清除请求flush_req时,请求消息控制器220可生成清除控制信号flush_sig。可将所生成的清除控制信号flush_sig提供到延迟时间确定器230。可在将与在当前清除请求和先前清除请求之间接收的写入请求相对应的写入命令存储在缓冲存储器中之后生成清除控制信号flush_sig。如本文所使用的,先前清除请求可以是紧接在当前清除请求之前的清除请求,即最后清除请求。延迟时间确定器230可接收从请求消息控制器220生成的清除控制信号flush_sig和写入命令write_cmd。延迟时间确定器220可通过使用所接收的清除控制信号flush_sig和所接收的写入命令write_cmd来生成延迟信息delay_inf。延迟信息delay_inf可包括关于是否将延迟与主机300的清除请求flush_req相对应的清除响应flush_res的信息,以及如果将延迟清除请求flush_req,则包括关于延迟时间的量(延迟时间)的信息。具体地,延迟时间确定器230可在延迟时间确定器230接收清除控制信号flush_sig之前接收写入命令write_cmd。当延迟时间确定器230接收到写入命令write_cmd时,延迟时间确定器230可不生成延迟信息delay_inf。当延迟时间确定器230接收到清除控制信号flush_sig时或之后,延迟时间确定器230可生成延迟信息delay_inf。在实施例中,当延迟时间确定器230接收到对应于清除请求flush_req的清除控制信号flush_sig时,延迟时间确定器230可生成延迟信息delay_inf。可基于在当前清除请求与先前清除请求之间接收的写入请求的数量来生成延迟信息delay_inf。也就是说,当延迟时间确定器230接收到清除控制信号flush_sig时,可基于在接收到当前清除控制信号flush_sig之前所接收的写入命令的数量来生成延迟信息delay_inf。在接收到当前清除控制信号flush_sig之前接收的写入命令可以是在当前与先前清除控制信号flush_sig之间接收的写入命令。延迟信息delay_inf可包括输出对应于清除请求flush_req的清除响应flush_res的信息。具体地,延迟信息delay_inf可指示是否将延迟清除响应flush_res。当在当前与先前清除控制信号flush_sig之间接收的写入命令的数量是某个阈值数量时,可延迟清除响应flush_res。可基于在当前与先前清除控制信号flush_sig之间接收的写入命令的数量来设置清除响应flush_res的延迟时间。基于写入命令的数量而设置的延迟时间可用于优化每秒输入/输出操作(iops)。响应消息控制器240可生成对应于清除请求flush_req的清除响应flush_res。具体地,当响应消息控制器240从延迟时间确定器230接收到延迟信息delay_inf时,可生成清除响应flush_res。在实施例中,当延迟信息delay_inf指示将不延迟清除响应flush_res时,响应消息控制器240可在接收到延迟信息delay_inf时立即生成清除响应flush_res,并且通过主机接口210将清除响应flush_res输出到主机300。在实施例中,延迟信息delay_inf可指示将延迟清除响应flush_res,以及关于清除响应flush_res的延迟时间的信息。响应消息控制器240可基于延迟信息delay_inf来生成清除响应flush_res,延迟基于延迟信息delay_inf生成的清除响应flush_res,并且通过主机接口210将所延迟的清除响应flush_res输出到主机300。可基于在当前与先前清除控制信号flush_sig之间接收的写入命令的数量来设置输出清除响应flush_res的延迟时间。存储器接口250可与存储器装置100通信。具体地,存储器接口250从请求消息控制器220接收写入命令write_cmd。存储器接口250可将所接收的写入命令write_cmd提供到存储器装置100。存储器装置100可执行对应于写入命令write_cmd的操作。图3是示出图1所示的存储器控制器200的另一实施例的示图。参照图3,存储器控制器200可包括主机接口210、请求消息控制器220、延迟时间确定器230、响应消息控制器240和存储器接口250。主机接口210可与主机300通信。具体地,主机接口210可从主机300接收请求消息req_mes,并将该请求消息req_mes提供到请求消息控制器220和延迟时间确定器230。请求消息req_mes可以是编程(写入)请求、读取请求、清除请求中的任意一种和其它类型的请求。请求消息控制器220可生成与从主机300接收的请求消息req_mes之中的写入请求write_req相对应的写入命令write_cmd。所生成的写入命令write_cmd可存储在请求消息控制器220的缓冲存储器中。当特定阈值数量的写入命令被存储在缓冲存储器中时,所存储的写入命令可通过存储器接口250而被提供到存储器装置100。延迟时间确定器230可通过使用从主机300接收的请求消息req_mes来生成延迟信息delay_inf。延迟信息delay_inf可确定是否将延迟清除响应flush_res以及清除响应flush_res的延迟时间。在实施例中,延迟时间确定器230可在延迟时间确定器230接收清除请求flush_req之前接收写入请求write_req。当延迟时间确定器230接收到写入请求write_req时,延迟时间确定器230可不生成延迟信息delay_inf。在延迟时间确定器230接收到清除请求flush_req之后,延迟时间确定器230可生成延迟信息delay_inf。在实施例中,当延迟时间确定器230接收到主机300的清除请求flush_req时,延迟时间确定器230可生成延迟信息delay_inf。可基于在当前清除请求与先前清除请求之间接收的写入请求的数量来生成延迟信息delay_inf。延迟信息delay_inf可包括输出对应于清除请求flush_req的清除响应flush_res的信息。具体地,延迟信息delay_inf可指示是否将延迟清除响应flush_res。当在当前清除请求与先前清除请求之间接收的写入命令的数量是某个阈值数量时,可延迟清除响应flush_res。可基于当前清除请求与先前清除请求之间接收的写入命令的数量来设置清除响应flush_res的延迟时间。基于写入命令数量设置的延迟时间可用于优化每秒输入/输出操作(iops)。响应消息控制器240可生成对应于清除请求flush_req的清除响应flush_res。具体地,当响应消息控制器240从延迟时间确定器230接收到延迟信息delay_inf时,可生成清除响应flush_res。在实施例中,当延迟信息delay_inf指示不延迟清除响应flush_res时,响应消息控制器240可在接收到延迟信息delay_inf之后立即生成清除响应flush_res,并且通过主机接口210将清除响应flush_res输出到主机300。在实施例中,延迟信息delay_inf可指示延迟清除响应flush_res,并且包括关于清除响应flush_res的延迟时间的信息。响应消息控制器240可基于延迟信息delay_inf来生成清除响应flush_res,延迟基于延迟信息delay_inf生成的清除响应flush_res,并且通过主机接口210将所延迟的清除响应flush_res输出到主机300。可基于在当前清除请求与先前清除请求之间接收的写入请求的数量来设置输出清除响应flush_res的延迟时间。存储器接口250可与存储器装置100通信。具体地,存储器接口250从请求消息控制器220接收写入命令write_cmd。存储器接口250可将所接收的写入命令write_cmd提供到存储器装置100。存储器装置100可执行对应于写入命令write_cmd的操作。图4是示出图2和图3所示的延迟时间确定器230的示图。参照图4,延迟时间确定器230可包括计数器231、延迟信息生成器232和延迟表233。计数器231可基于从请求消息控制器220提供的清除控制信号flush_sig和写入命令write_cmd或写入请求write_req来输出计数值count_val。可通过对请求消息控制器220中生成的写入命令的数量或从主机300提供的写入请求的数量进行计数来获得该计数值count_val。具体地,在计数器231接收到清除控制信号flush_sig之后,计数器231可对所提供的写入命令的数量或写入请求的数量进行计数。在任一种情况下,所计数的数量可以是在当前与先前清除控制信号flush_sig之间接收的数量。当计数器231接收到清除控制信号flush_sig时,计数器231可将计数值count_val输出到延迟信息生成器232。在实施例中,写入命令的数量或写入请求的数量可按如下计数。随着写入命令或写入请求被逐一输入到计数器231,计数器231可在每次输入时将计数值count_val增加1。在计数器231将计数值count_val输出到延迟信息生成器232之后,可将计数值count_val初始化为0以再次开始计数。在将计数值count_val初始化为0之后,当下一组写入命令或写入请求被输入到计数器231时,计数值count_val可增加1。延迟信息生成器232可从计数器231接收计数值count_val。延迟信息生成器232可将该计数值count_val提供到延迟表233。延迟信息生成器232可基于从计数器231提供的计数值count_val和从延迟表233提供的表信息table_inf来生成延迟信息delay_inf。也就是说,延迟信息delay_inf可包括关于是否将延迟对应于清除请求flush_req的清除响应flush_res以及清除响应flush_res的延迟时间的信息。可将所生成的延迟信息delay_inf提供到响应消息控制器240。具体地,计数值count_val可以是对应于当前清除请求flush_req的写入请求的数量。对应于当前清除请求flush_req的写入请求可以是在当前清除请求与先前清除请求之间提供的那些写入请求。延迟表233可基于从延迟信息生成器232提供的计数值count_val来将表信息table_inf提供到延迟信息生成器232。表信息table_inf可包括关于是否将延迟对应于计数值count_val的清除响应flush_res以及清除响应flush_res的延迟时间的信息。将参照图5更详细地描述延迟表233。当延迟信息生成器232从延迟表233接收到表信息table_inf时,延迟信息生成器232可生成延迟信息delay_inf。延迟信息delay_inf可包括关于是否将延迟对应于清除请求flush_req的清除响应flush_res以及清除响应flush_res的延迟时间的信息。图5是示出图4所示的延迟表233的示图。参照图5,延迟表233可根据对应于清除请求flush_req的写入请求的数量(即,图5所示表中的第一字段“写入请求(write_req):清除请求(flush_req)”)来存储关于是否将延迟清除响应flush_res以及清除响应flush_res的延迟时间的信息。具体地,对应于当前清除请求flush_req的写入请求的数量可以是在当前清除请求与先前清除请求之间提供的写入请求的数量。在实施例中,当对应于清除请求flush_req的写入请求的数量为1或2时,可不延迟清除响应flush_res。当基于电梯清除策略未接收到特定数量的写入请求时,可不延迟清除响应flush_res。当将不延迟清除响应flush_res时,所生成的延迟信息delay_inf可指示将不延迟清除响应flush_res。在这种情况下,延迟信息delay_inf可不包括关于延迟时间的信息。当生成包括将不延迟清除响应flush_res的信息的延迟信息delay_inf时,响应消息控制器240可在响应消息控制器240接收到延迟信息delay_inf之后或者在接收到这种信息时立即输出清除响应flush_res。在实施例中,当对应于清除请求flush_req的写入请求的数量为p1或p2时,可延迟清除响应flush_res。p1和p2可以是20或更大的自然数,其中p2大于p1。例如,p1可以是“100”,p2可以是大于p1的“1000”。p1可以是用于确定是否将延迟清除响应flush_res的参考数量。当将延迟清除响应flush_res时,可生成包括延迟清除响应flush_res的信息的延迟信息delay_inf。延迟信息delay_inf可进一步包括关于清除响应flush_res的延迟时间的信息。具体地,当对应于清除请求flush_req的写入请求的数量为p1时,延迟信息delay_inf可包括将延迟清除响应flush_res的信息和关于延迟时间q1的信息。q1可以是1000μs。q1可以是预先确定的。当对应于清除请求flush_req的写入请求的数量为p2时,延迟信息delay_inf可包括将延迟清除响应flush_res的信息和关于延迟时间q2的信息。q2可以是比q1长的2000μs。q2可以是预先确定的。也就是说,当p2大于p1时,q2比q1长。当生成包括将延迟清除响应flush_res的信息的延迟信息delay_inf时,响应消息控制器240可在经过延迟信息delay_inf中包括的延迟时间之后输出清除响应flush_res。图6是示出清除请求被累积或保持的示图。参照图6,请求消息控制器220可通过主机接口210从主机300接收第一至第五清除请求flush_req1至flush_req5。响应消息控制器240可通过主机接口210向主机300输出对应于清除请求flush_req1至flush_req5的清除响应flush_res1至flush_res5。在t0时,请求消息控制器220可从主机300接收第一清除请求flush_req1。在请求消息控制器220接收到第一清除请求flush_req1之后,请求消息控制器220可存储对应于与第一清除请求flush_req1相对应的写入请求的写入命令。在将写入命令全部都存储在请求消息控制器220中之前,响应消息控制器240可不将第一清除响应flush_res1输出到主机300。第一清除响应flush_res1可对应于第一清除请求flush_req1。在对应于第一清除请求flush_req1的写入命令全部都存储在请求消息控制器220中之后,响应消息控制器240可将第一清除响应flush_res1输出到主机300。在t1时,在对应于第一清除请求flush_req1的写入命令全部都存储在请求消息控制器220中之后,可将第一清除响应flush_res1输出到主机300。具体地,在对应于第一清除请求flush_req1的写入命令全部都存储在请求消息控制器220中之后,请求消息控制器220可将清除控制信号flush_sig提供到延迟时间确定器230。延迟时间确定器230可基于对应于清除请求flush_req的写入命令的数量来生成延迟信息delay_inf,并将该延迟信息delay_inf提供到响应消息控制器240。响应消息控制器240可基于延迟信息delay_inf、通过主机接口210来将清除响应flush_res提供到主机300。在t1时,在将第一清除响应flush_res1输出到主机300之前,请求消息控制器220可不从主机300接收第二至第五清除请求flush_req2至flush_req5。在t1时,因为对应于第一清除请求flush_req的写入请求的数量可能小于参考数量p1,所以可不延迟提供到主机接口210的第一清除响应flush_res1。在t2时,请求消息控制器220可通过主机接口210从主机300接收第二清除请求flush_req2。在请求消息控制器220接收到第二清除请求flush_req2之后,请求消息控制器220可存储对应于与第二清除请求flush_req2相对应的写入请求的写入命令。在将写入命令全部都存储在请求消息控制器220中之前,响应消息控制器240可不将第二清除响应flush_res2输出到主机300。第二清除响应flush_res2可对应于第二清除请求flush_req2。在对应于第二清除请求flush_req2的写入命令全部都存储在请求消息控制器220中之后,响应消息控制器240可将第二清除响应flush_res2输出到主机300。在t2时,在请求消息控制器220从主机300接收到第二清除请求flush_req2之后,请求消息控制器220可不将第二清除响应flush_res2输出到主机300。未将第二清除响应flush_res2输出到主机300的情况可以是对应于第二清除响应flush_res2的写入命令未全部都存储在请求消息控制器220中的情况。在另一实施例中,未将第二清除响应flush_res2输出到主机300的情况可以是对应于第二清除响应flush_res2的写入请求的数量大于或等于参考数量p1的情况。在t3时,响应消息控制器240处于未输出第二清除响应flush_res2的状态,因此请求消息控制器220不能通过主机接口210从主机300接收第三清除请求flush_req3。因此,在t3时,第三清除请求flush_req3可处于被保持在主机300中的状态。在t4时,响应消息控制器240处于未输出第二清除响应flush_res2的状态,因此请求消息控制器220不能通过主机接口210从主机300接收第四清除请求flush_req4。因此,在t4时,第四清除请求flush_req4可处于被保持在主机300中的状态。在t4时,第三清除请求flush_req3和第四清除请求flush_req4可保持在主机300中。进一步地,对应于第三清除请求flush_req3的写入请求和对应于第四清除请求flush_req4的写入请求可保持在主机300中。在t5时,在对应于第二清除请求flush_req2的写入命令全部都存储在请求消息控制器220中之后,可将第二清除响应flush_res2输出到主机300。具体地,对应于第二清除请求flush_req2的写入命令可以是在第一清除请求flush_req1与第二清除请求flush_req2之间接收的写入命令。在t5时,在将第二清除响应flush_res2输出到主机300之后,可通过主机接口210将在主机300中保持的写入请求提供到请求消息控制器220。具体地,主机300中保持的写入请求可包括本应该在第二清除请求flush_req2与第三清除请求flush_req3之间提供的写入请求,以及本应该在第三清除请求flush_req3和第四清除请求flush_req4之间提供的写入请求。因此,在将第二清除响应flush_res2输出到主机300之后,可通过主机接口210将主机300中保持的写入请求提供到请求消息控制器220。当将主机300中保持的写入请求提供到请求消息控制器220时,相应的清除请求可进行合并。在实施例中,因为第三清除请求flush_req3和第四清除请求flush_req4由于第二清除响应flush_res2的延迟而被保持,所以第三清除请求flush_req3和第四清除请求flush_req4可进行合并。当将主机300中保持的写入请求提供到请求消息控制器220时,主机300可不将第三清除请求flush_req3提供到主机接口210。因为第三清除请求flush_req3和第四清除请求flush_req4被合并,所以主机300可通过主机接口210仅将第四清除请求flush_req4提供到请求消息控制器220。在与被合并的第三清除请求flush_req3和第四清除请求flush_req4相对应的写入命令全部都存储在请求消息控制器220中之后,可响应于被合并的第三清除请求flush_req3和第四清除请求flush_req4而将第四清除响应flush_res4输出到主机300。在t6时,响应消息控制器240处于未将第四清除响应flush_res4输出到主机300的状态,因此请求消息控制器220不能从主机300接收第五清除请求flush_req5。因此,在t6时,第五清除请求flush_req5可处于被保持在主机300中的状态。图7是示出图1所示的主机300与存储器控制器200之间的请求和响应的示图。参照图7,主机300和存储器控制器200可彼此通信。具体地,主机300可将请求消息req_mes提供到存储器控制器200。存储器控制器200可将响应消息res_mes提供到主机300。在图7的实施例中,延迟清除响应flush_res的写入请求或写入命令的参考或阈值数量为20。在实施例中,主机300可将写入请求write_req和清除请求flush_req提供到存储器控制器200。在实施例中,在将与第一写入请求write_req1和第二写入请求write_req2相对应的第一清除请求flush_req1提供到存储器控制器200之前,主机300可向存储器控制器200提供已累积或保持在主机300中的第一写入请求write_req1和第二写入请求write_req2。当对应于第一写入请求write_req1和第二写入请求write_req2的第一写入命令write_cmd1和第二写入命令write_cmd2都存储在请求消息控制器220的缓冲存储器中时,可将对应于第一清除请求flush_req1的第一清除响应flush_res1提供到主机300。在提供第一清除请求flush_req1之前被提供到请求消息控制器220的写入请求的数量为2,因此不延迟第一清除响应flush_res1,而是立即输出第一清除响应flush_res1。也就是说,因为在提供第一清除请求flush_req1之前被提供到请求消息控制器220的写入请求的数量为2,小于参考数量20,所以可不延迟第一清除响应flush_res1。在将第一清除响应flush_res1提供到主机300之前,另一请求消息req_mes可累积或保持在主机300中。当将第一清除响应flush_res1提供到主机300时,可将已累积或保持在主机300中的第三写入请求write_req3至第二十二写入请求write_req22提供到存储器控制器200。当与第三写入请求write_req3至第二十二写入请求write_req22相对应的第三写入命令write_cmd3至第二十二写入命令write_cmd22都存储在请求消息控制器220的缓冲存储器中时,第二清除响应flush_res2可响应于第二清除请求flush_res2而被提供到主机300,其中第二清除请求flush_res2对应于第三写入请求write_req3至第二十二写入请求write_req22。在提供第二清除请求flush_req2之前被提供到请求消息控制器220的写入请求的数量为20,因此可延迟第二清除响应flush_res2。也就是说,因为在提供第二清除请求flush_req2之前被提供到请求消息控制器220的写入请求的数量为20,大于或等于参考数量20,所以可延迟第二清除响应flush_res2。可通过写入请求的数量来确定第二清除响应flush_res2的延迟时间。在提供第二清除请求flush_req2之前被提供到请求消息控制器220的写入请求的数量可以为20或大于20的值。因为提供到请求消息控制器220的写入请求的数量为20或大于20的值,所以可将第二清除响应flush_res2延迟在延迟表233中存储的分别与写入请求的数量相对应的延迟时间之中的、与该写入请求的数量相对应的延迟时间,然后进行输出。在第二清除响应flush_res2的延迟时间内,另一写入请求可被累积或保持。因此,当存储器控制器200将第二清除响应flush_res2提供到主机300时,可将已累积或保持在主机300中的写入请求提供到存储器控制器200。也就是说,当将第二清除响应flush_res2提供到主机300时,主机300可向存储器控制器200提供已保持在主机300中的第二十三写入请求write_req23至第二十五写入请求write_req25。图8是示出图1所示的存储器装置的结构的框图。参照图8,存储器装置100可包括存储器单元阵列100、外围电路120和控制逻辑130。存储器单元阵列110包括多个存储块blk1至blkz。多个存储块blk1至blkz通过行线rl联接到地址解码器121。多个存储块blk1至blkz通过位线bl1至blm联接到读取/写入电路123。多个存储块blk1至blkz中的每一个包括多个存储器单元。每个存储块可以是用于存储用户数据的用户块和用于存储系统数据的系统块。根据是否存储有数据,用户块可以是空闲块或数据块。空闲块没有存储任何数据;它是空白的。数据块存储数据。数据块中存储的数据可以是有效数据或无效数据。存储块之中的无法存储任何数据的块可能是坏块。坏块可以是当制造存储器装置100时坏了的制造坏块(mbb),或者是当使用存储块时变坏的生长坏块(gbb)。在实施例中,包括发生了编程失败的页面的存储块可以是gbb。根据本公开的实施例,当识别出gbb时,可将相应块设置为坏块,并且相应块中包括的擦除页面可用于替代另一存储块中的已经发生编程失败的页面。因此,存储装置50可控制存储器装置100,使得gbb坏块的数量不超过一。每个存储块可包括用于存储数据的多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元可被定义为一个页面。也就是说,存储器单元阵列110可包括多个页面。在实施例中,包括在存储器单元阵列110中的多个存储块blk1至blkz中的每一个可包括多个虚设单元。一个或多个虚设单元可串联联接在漏极选择晶体管与存储器单元之间。另外,一个或多个虚设单元可串联联接在源极选择晶体管与存储器单元之间。存储器装置100的存储器单元中的每一个可以是用于存储一个数据位的单层单元(slc)、用于存储两个数据位的多层单元(mlc)、用于存储三个数据位的三层单元(tlc)或用于存储四个数据位的四层单元(qlc)。外围电路120可包括地址解码器121、电压生成器122、读取/写入电路123以及数据输入/输出电路124。外围电路120驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。地址解码器121通过行线rl联接到存储器单元阵列110。行线rl可包括漏极选择线、字线、源极选择线和共源线。在实施例中,字线可包括普通字线和虚设字线。在实施例中,行线rl可进一步包括管道选择线。地址解码器121可在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址addr。地址解码器121可对所接收的地址addr中的块地址进行解码。地址解码器121根据解码的块地址来在存储块blk1至blkz之中选择至少一个存储块。地址解码器121可对所接收的地址addr中的行地址进行解码。地址解码器121可根据解码的行地址,通过将从电压生成器122提供的电压施加到字线wl来在所选择存储块的字线之中选择至少一个字线wl。在编程操作中,地址解码器121可将编程电压施加到所选择字线并将电平低于编程电压的电平的编程通过电压施加到未选择字线。在编程验证操作中,地址解码器121可将验证电压施加到所选择字线并将高于验证电压的验证通过电压施加到未选择字线。在读取操作中,地址解码器121可将读取电压施加到所选择字线并且将高于读取电压的读取通过电压施加到未选择字线。在实施例中,以存储块为单位对存储器装置100执行擦除操作。在擦除操作中,输入到存储器装置100的地址addr包括块地址。地址解码器121可对块地址进行解码,并且根据解码的块地址来在存储块blk1至blkz之中选择至少一个存储块。在擦除操作中,地址解码器121可将接地电压施加到与所选择存储块联接的字线。在实施例中,地址解码器121可对传输到地址解码器121的地址addr中的列地址进行解码。解码的列地址(dca)可被传输到读取/写入电路123。在示例中,地址解码器121可包括诸如行解码器、列解码器和地址缓冲器的组件。电压生成器122可通过使用供应给存储器装置100的外部电源电压来生成多个电压。电压生成器122在控制逻辑130的控制下操作。在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。通过电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。在实施例中,电压生成器122可通过使用外部电源电压或内部电源电压来生成多个电压。电压生成器122可被配置成生成存储器装置100所需的各种电压。例如,电压生成器122可生成多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。例如,电压生成器122可包括用于接收内部电源电压的多个泵浦(pumping)电容器,并且可在控制逻辑130的控制下通过选择性地激活多个泵浦电容器来生成多个电压。多个所生成的电压可通过地址解码器121供给到存储器单元阵列110。读取/写入电路123包括第一至第m页面缓冲器pb1至pbm(m为正整数)。第一至第m页面缓冲器pb1至pbm通过各自的第一至第m位线bl1至blm联接到存储器单元阵列110。第一至第m页面缓冲器pb1至pbm在控制逻辑130的控制下操作。第一至第m页面缓冲器pb1至pbm与数据输入/输出电路124通信数据。在编程操作中,第一至第m页面缓冲器pb1至pbm可通过数据输入/输出电路124和数据线dl接收待被存储的数据data。在编程操作中,可根据行地址来将编程脉冲施加到所选择字线。第一至第m页面缓冲器pb1至pbm可通过位线bl1至blm来将通过数据输入/输出电路124接收的数据data传输到所选择字线的存储器单元。可根据传输的数据data对所选择字线的存储器单元之中的至少一个存储器单元进行编程。联接到施加有编程允许电压(例如,接地电压)的位线的存储器单元的阈值电压可被增加。联接到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作中,第一至第m页面缓冲器pb1至pbm通过位线bl1至blm从所选择字线的存储器单元读取页面数据。在读取操作中,读取/写入电路123通过位线bl从所选择字线的存储器单元读取页面数据data,并且将读取的页面数据data输出到数据输入/输出电路124。在擦除操作中,读取/写入电路123可使位线bl浮置。在实施例中,读取/写入电路123可包括列选择电路。数据输入/输出电路124通过数据线dl而联接到第一至第m页面缓冲器pb1至pbm。数据输入/输出电路124在控制逻辑130的控制下操作。数据输入/输出电路124可包括接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作中,数据输入/输出电路124可从外部控制器(未示出)接收待被存储的数据data。在读取操作中,数据输入/输出电路124将从包括在读取/写入电路123中的第一至第m页面缓冲器pb1至pbm传输的数据输出到外部控制器。控制逻辑130可联接到地址解码器121、电压生成器122、读取/写入电路123以及数据输入/输出电路124。控制逻辑130可被配置成控制存储器装置100的全部操作。控制逻辑130可响应于从外部装置传输的命令cmd而进行操作。图9是示出根据本公开的实施例的存储器控制器的操作的示图。参照图9,在步骤s901中,请求消息控制器220可通过主机接口210从主机300接收写入请求write_req。存储器控制器200可响应于主机300的写入请求write_req来执行操作。在步骤s903中,请求消息控制器220可生成对应于写入请求write_req的写入命令write_cmd。可通过存储器接口250来将所生成的写入命令write_cmd提供到存储器装置100。写入命令write_cmd可指示存储器装置100执行写入操作。在步骤s905中,所生成的写入命令write_cmd可存储在请求消息控制器220的缓冲存储器中。当特定阈值数量的写入命令被存储在请求消息控制器220的缓冲存储器中时,可通过存储器接口250将所存储的写入命令提供到存储器装置100。在步骤s907中,可将请求消息控制器220的缓冲存储器中存储的写入命令提供到存储器装置100。具体地,当缓冲存储器中存储的写入命令与对一个页面的全部或部分进行编程的命令相对应时,可将写入命令提供到存储器装置100。当写入命令被提供到存储器装置100时,存储器装置100可执行对应于写入命令的写入操作。图10是示出根据本公开的另一实施例的存储器控制器200的操作的示图。参照图10,在步骤s1001中,请求消息控制器220可通过主机接口210从主机300接收清除请求flush_req。当请求消息控制器220接收到清除请求flush_req时,存储器控制器200可响应于清除请求flush_req来执行操作。具体地,当提供了主机300的当前清除请求flush_req时,在主机300接收到响应于当前清除请求flush_req的清除响应flush_res之前,可不将主机300的后续请求消息req_mes提供到存储器控制器200。因此,在主机300接收到对应于当前清除请求flush_req的清除响应flush_res之前,主机300可对在主机300中保持的后续清除请求进行合并。在步骤s1003中,请求消息控制器220可输出清除控制信号flush_sig。具体地,在与在当前清除请求与先前清除请求之间接收的写入请求相对应的写入命令存储在缓冲存储器中之后,可生成清除控制信号flush_sig。可将清除控制信号flush_sig提供到延迟时间确定器230。当将清除控制信号flush_sig提供到延迟时间确定器230时,延迟时间确定器230可基于与清除请求flush_req相对应的写入请求或写入命令的数量以及清除控制信号flush_sig,来生成延迟信息delay_inf。延迟信息delay_inf可包括关于是否将延迟清除响应flush_res的信息,以及如果延迟的情况下,关于清除响应flush_res的延迟时间的信息。在步骤s1005中,当输出清除控制信号flush_sig时,请求消息控制器220可确定对应于清除请求flush_req的写入命令的数量是否大于或等于参考数量,即特定阈值数量。在确定步骤中考虑的写入命令的数量可以是与在当前与先前清除请求之间接收的写入请求对应的数量。当写入命令的数量大于或等于参考数量时,请求消息控制器220进行到步骤s1007。否则,请求消息控制器220进行到步骤s1009。在步骤s1007中,响应消息控制器240可延迟清除响应flush_res并输出所延迟的清除响应flush_res。可通过主机接口210将清除响应flush_res提供到主机300。在清除响应flush_res的输出正在被延迟时,后续请求消息req_mes可保持在主机300中。基于请求消息req_mes被保持在主机300中,后续的清除请求可进行合并。在步骤s1009中,响应消息控制器240不延迟清除响应flush_res,而是可输出该清除响应flush_res。也就是说,当延迟信息delay_inf包括将不延迟清除响应flush_res的信息时,响应消息控制器240可在接收到延迟信息delay_inf之后立即生成清除响应flush_res,并且通过主机接口210将该清除响应flush_res输出到主机300。图11是示出根据本公开的另一实施例的存储器控制器200的操作的示图。参照图11,在步骤s1101中,请求消息控制器220可将缓冲存储器中存储的写入命令write_cmd提供到延迟时间确定器230中的计数器231。可将写入命令write_cmd提供到计数器231,以便确定是否将延迟响应于主机300的当前清除请求flush_req的清除响应flush_res,以及如果延迟,则确定清除响应flush_res的延迟时间。在步骤s1103中,计数器231可对从请求消息控制器220提供的写入命令的数量进行计数。具体地,在计数器231接收到对应于当前清除请求flush_req的当前清除控制信号flush_sig之后,计数器231可对对应于当前清除请求flush_req的写入命令的数量进行计数。所计数的写入命令可以是在当前与先前清除控制信号flush_sig之间接收的那些写入命令。在步骤s1105中,请求消息控制器220可确定计数器231是否已接收到当前清除控制信号flush_sig。当计数器231尚未接收到当前清除控制信号flush_sig时,请求消息控制器220进行到步骤s1103。在接收到当前清除控制信号flush_sig之前,计数器231可对所接收的写入命令的数量进行计数。当计数器231接收到当前清除控制信号flush_sig时,请求消息控制器220进行到步骤s1107。在步骤s1107中,当计数器231接收当前清除控制信号flush_sig时,计数器231可将计数值count_val输出到延迟信息生成器232。可将计数值count_val提供到延迟信息生成器232,以便确定是否将延迟清除响应flush_res,以及如果延迟,则确定清除响应flush_res的延迟时间。延迟信息生成器232可将计数值count_val提供到延迟表233,以确定是否将延迟清除响应flush_res以及清除响应flush_res的延迟时间。在步骤s1109中,延迟信息生成器232可通过使用从计数器231接收的计数值count_val来生成延迟信息delay_inf。具体地,延迟信息生成器232可从计数器231接收计数值count_val,并将该计数值count_val提供到延迟表233。延迟信息生成器232可基于从计数器231提供的计数值count_val和从延迟表233提供的表信息table_inf来生成延迟信息delay_inf。当延迟信息生成器232从延迟表233接收到表信息table_inf时,延迟信息生成器232可生成延迟信息delay_inf。延迟信息delay_inf可包括关于是否将延迟对应于清除请求flush_req的清除响应flush_res的信息,以及如果延迟,则包括关于清除响应flush_res的延迟时间的信息。也就是说,根据延迟表233中存储的信息之中的计数值count_val,延迟信息delay_inf可包括关于是否将延迟清除响应flush_res的信息,以及如果延迟,则包括关于清除响应flush_res的延迟时间的信息。可将所生成的延迟信息delay_inf提供到响应消息控制器240。图12是示出根据本公开的另一实施例的存储器控制器200的操作的示图。参照图12,在步骤s1201中,响应消息控制器240可从延迟信息生成器232接收延迟信息delay_inf。响应消息控制器240可基于延迟信息delay_inf来确定是否将延迟输出对应于清除请求flush_req的清除响应flush_res。在步骤s1203中,响应消息控制器240可确定延迟信息delay_inf是否包括将延迟清除响应flush_res的信息。当延迟信息delay_inf包括将延迟清除响应flush_res的信息时,响应消息控制器240进行到步骤s1205。当延迟信息delay_inf不包括将延迟清除响应flush_res的信息时,响应消息控制器240进行到步骤s1207。在步骤s1205中,延迟信息delay_inf可包括将延迟清除响应flush_res的信息。延迟信息delay_inf可进一步包括关于清除响应flush_res的延迟时间的信息。响应消息控制器240可基于延迟信息delay_inf来生成清除响应flush_res,延迟所生成的清除响应flush_res,并且通过主机接口210将所延迟的清除响应flush_res输出到主机300。可基于对应于清除请求flush_req的写入命令的数量来设置输出清除响应flush_res的延迟时间。在步骤s1207中,当延迟信息delay_inf包括将不延迟清除响应flush_res的信息时,响应消息控制器240可在响应消息控制器240接收到延迟信息delay_inf之后立即生成清除响应flush_res。可通过主机接口210将所生成的清除响应flush_res输出到主机300。图13是示出图1所示的存储器控制器的另一实施例的示图。存储器控制器1000联接到主机和存储器装置。存储器控制器1000被配置成响应于从主机接收的请求来访问存储器装置。例如,存储器控制器1000被配置成控制存储器装置的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000被配置成提供存储器装置与主机之间的接口。存储器控制器1000被配置成驱动用于控制存储器装置的固件。参照图13,存储器控制器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将由主机提供的逻辑地址(la)转换成物理地址(pa)。ftl可接收待使用映射表而被转换为pa的la。根据映射单位,存在数个ftl地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。处理器1010被配置成使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来使从主机接收的数据随机化。将随机化数据作为待存储的数据提供到存储器装置,以被编程在存储器单元阵列中。在读取操作中,处理器1010被配置成使从存储器装置接收的数据去随机化。例如,处理器1010可使用去随机化种子使从存储器装置接收的数据去随机化。经去随机化的数据可被输出到主机。在实施例中,处理器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(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)以及低负载dimm(lrdimm)。缓冲器控制电路1050被配置成在处理器1010的控制下控制存储器缓冲器1020。存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置通信命令、地址和数据。在示例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。可单独提供这些组件中的任一个或两个,或者将这些组件功能中的一个或两个分布在存储器控制器1000中。在示例中,处理器1010可通过使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(rom))加载代码。在另一示例中,处理器1010可通过存储器接口1060从存储器装置加载代码。在示例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传输数据,并且控制总线可被配置成在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分离,以便不相互干扰或影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ecc电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。图14是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。参照图14,存储卡系统2000包括存储器控制器2100、存储器装置和连接器2300。存储器控制器2100联接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。存储器装置2200可与参照图8描述的存储器装置100相同地实施。在示例中,存储器控制器2100可包括诸如随机存取存储器(ram)、处理单元、主机接口、存储器接口和ecc电路的组件。存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可根据特定通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙以及nvme。在示例中,存储器装置2200可利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程rom(eeprom)、nand闪速存储器、nor闪速存储器、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)以及自旋力矩转移磁性ram(stt-mram)。存储器控制器2100和存储器装置2200可集成到单个半导体装置中以构成诸如以下的存储卡:pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存(cf)卡、智能媒体卡(sm和smc)、记忆棒、多媒体卡(mmc、rs-mmc、微型mmc和emmc)、sd卡(sd、迷你sd、微型sd和sdhc)和/或通用闪存(ufs)。图15是示出根据本公开的实施例的应用了存储装置的固态驱动器(ssd)系统的框图。参照图15,ssd系统3000包括主机3100和ssd3200。ssd3200通过信号连接器3001与主机3100交换信号sig,并且通过电源连接器3002接收电力pwr。ssd3200包括ssd控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。在实施例中,ssd控制器3210可用作参照图1描述的存储器控制器200。ssd控制器3210可响应于从主机3100接收的信号sig来控制多个闪速存储器3221至322n。在示例中,信号sig可基于主机3100和ssd3200之间的接口。例如,信号sig可由诸如以下的接口中的至少一种来限定:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙以及nvme。辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可提供ssd3200的电力。在示例中,辅助电源3230可位于ssd3200中,或者位于ssd3200的外部。例如,辅助电源3230可位于主板上,并且向ssd3200提供辅助电力。缓冲存储器3240作为ssd3200的缓冲存储器操作。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如dram、sdram、ddrsdram、lpddrsdram和gram的易失性存储器或诸如fram、reram、stt-mram和pram的非易失性存储器。图16是示出根据本公开的实施例的应用了存储装置的用户系统的框图。参照图16,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。应用处理器4100可驱动包括在用户系统4000中的组件、操作系统(os)、用户程序等。在示例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(soc)。存储器模块4200可作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器操作。存储器模块4200可包括诸如dram、sdram、ddrsdram、ddr2sdrm、ddr3sdram、lpddrsdram、lpddr2sdram和lpddr3sdram的易失性随机存取存储器或者诸如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可包括多个非易失性存储器装置,并且多个非易失性存储器装置可与参照图8描述的存储器装置相同地操作。存储模块4400可与参照图1描述的存储装置50相同地操作。用户接口4500可包括用于向应用处理器4100输入数据或命令或者用于将数据输出到外部装置的接口。在示例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可包括诸如以下的用户输出接口:液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和监视器。根据本公开的实施例,提供了一种处理清除请求的存储器控制器及其操作方法。虽然已参照本公开的某些实施例示出和描述了本发明,但本领域技术人员根据本公开将理解的是,在不脱离由所附权利要求及其等同物限定的本发明的实质和范围的情况下,可在形式和细节上进行各种改变。因此,本发明的范围不应限于上述实施例,而是应由所附权利要求及其等同方案来确定。在上述实施例中,可选择性地执行任何或所有步骤或部分步骤,并且可省略这些步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可重新进行排列。本文公开的实施例是为了便于理解本发明,而非限制本发明。本发明包括对本领域技术人员显而易见的各种修改,这些修改可基于本公开的技术范围进行。虽然此处使用了特定的术语,但这些术语仅用于说明本公开的实施例。因此,因为许多变化在本公开的实质和范围内都是可能的,所以本发明不受所使用的特定术语的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1