包括主机命令队列的存储器控制器及操作其的方法

文档序号:10686774阅读:1161来源:国知局
包括主机命令队列的存储器控制器及操作其的方法
【专利摘要】公开了一种存储器控制器,包括:主机接口,适用于将来自主机的多个主机命令排队在主机命令队列中;状态寄存器,适用于储存分别与所述多个主机命令相对应的就绪设定位;存储器命令发生单元,适用于产生分别与排队的主机命令相对应的存储器命令和状态更新信息并将其排队在存储器命令队列中;以及存储器命令执行单元,适用于响应于排队的存储器命令来执行操作。存储器命令执行单元从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
【专利说明】包括主机命令队列的存储器控制器及操作其的方法
[0001]相关申请的交叉引用
[0002]本申请要求2015年4月3日向韩国知识产权局提交的申请号为10-2015-0047633的韩国专利申请的优先权,其全部公开内容通过引用整体合并于此。
技术领域
[0003]本发明涉及一种电子器件,更具体地,涉及一种包括主机命令队列的存储器控制器及操作其的方法。
【背景技术】
[0004]半导体存储器件使用诸如硅(Si)、锗(Ge)、砷化镓(GaAs)和磷化铟(InP)的半导体。半导体存储器件通常分类为易失性存储器件和非易失性存储器件。
[0005]在无恒定的电源的情况下,易失性存储器件不能维持储存的数据。易失性存储器件的示例包括:静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和同步DRAM(SDRAM)等。即便在无恒定的电源的情况下,非易失性存储器件仍能够维持它们储存的数据。非易失性存储器件包括:只读存储器(R0M)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM (EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。闪速存储器通常划分为或非(NOR)型和与非(NAND)型。
[0006]存储器控制器响应于主机命令来产生存储器命令,并控制半导体存储器件来执行产生的存储器命令。存储器控制器包括用于将主机命令排队的主机命令队列。主机命令队列可以由存储器控制器之内的RAM组成。

【发明内容】

[0007]本发明试图提供具有改善的操作速度的存储器控制器及操作其的方法。
[0008]本发明的一个示例性实施例提供一种存储器控制器,包括:主机命令队列;主机接口,适用于将来自主机的多个主机命令排队在主机命令队列中;状态寄存器,适用于储存分别与多个主机命令相对应的就绪设定位(ready set bit),其中,就绪设定位中的每个指示多个主机命令中的对应的一个是否是就绪的且可得到的;存储器命令队列;存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及存储器命令执行单元,适用于响应于排队的存储器命令来执行操作。存储器命令执行单元可以从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
[0009]主机接口可以响应于来自主机的就绪状态请求来将就绪设定位输出到主机。
[0010]存储器控制器可以接收针对多个主机命令的由主机选择的一部分的执行命令。
[0011]主机接口还可以从主机接收分别与多个主机命令相对应的多个任务ID。
[0012]就绪设定位可以分别对应于任务ID。
[0013]存储器命令发生单元还可以将分别与排队的主机命令相对应的任务ID和存储器命令一起排队在存储器命令队列中。
[0014]存储器命令执行单元可以从存储器命令队列检测与执行过的存储器命令相对应的任务ID,并根据获取的状态更新信息来更新状态寄存器之内的与检测到的任务ID相对应的就绪设定位。
[0015]本发明的另一个示例性实施例提供一种操作存储器控制器的方法,包括:将来自主机的多个主机命令排队在主机命令队列中;将分别与多个主机命令相对应的就绪设定位提供给状态寄存器;产生存储器命令和状态更新信息并将其排队在存储器命令队列中;响应于排队的存储器命令来执行操作;根据与执行过的存储器命令相对应的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位;以及响应于来自主机的就绪状态请求来将就绪设定位输出到主机。
[0016]本发明的又一个示例性实施例提供一种存储器控制器,包括:主机命令队列;主机接口,适用于将来自主机的多个主机命令和分别与多个主机命令相对应的任务ID排队在主机命令队列中;状态寄存器,适用于储存分别与任务ID相对应的就绪设定位;存储器命令队列;存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及存储器命令执行单元,适用于响应于排队的存储器命令来执行操作。存储器命令执行单元可以从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
[0017]根据本发明的示例性实施例,提供了具有改善的操作速度的存储器控制器及其操作方法。
[0018]前述的概要仅是说明性的,并在任何方面都不意在为限制性的。除了以上描述的说明性的方面、实施例和特征之外,通过参考附图以及下面的详细描述,进一步的方面、实施例和特征将变得明显。
【附图说明】
[0019]通过参照附图来详细地描述本发明的实施例,本发明的以上的和其他的特征和优点对于本领域技术人员来说将变得更加明显,在附图中:
[0020]图1是图示根据本发明的一个示例性实施例的存储器控制器的框图;
[0021]图2是图示图1的半导体存储器件的框图;
[0022]图3是图示根据本发明的一个示例性实施例的操作存储器控制器的方法的流程图;
[0023]图4是用于图示从存储器命令队列输出存储器命令的过程的示图;
[0024]图5是图示根据本发明的一个示例性实施例的输出图1的状态寄存器的就绪设定位的过程的流程图;
[0025]图6是图示根据本发明的一个示例性实施例的响应于来自主机的执行命令而操作存储器控制器的方法的流程图;
[0026]图7是图示图3中的步骤S150的流程图;以及
[0027]图8是图示用于实施图1的存储器控制器的示例性实施例的框图。
【具体实施方式】
[0028]在下文中,将参照附图来详细地描述本发明的示例性实施例。在以下的描述中,应当注意的是,仅将解释用于理解根据本发明的操作所必需的部分,且将省略对其他部分的解释以免混淆本发明的主旨。然而,本发明不局限于本文中所描述的示例性实施例,并且可以以其他形式来详细说明。本示例性实施例被提供以详细地描述本发明使得本领域技术人员可以轻易地掌握本发明的技术主旨。
[0029]贯穿本说明书和所附权利要求书,当描述为元件“耦接”到另一个元件时,该元件可以“直接耦接”到另一个元件或通过第三元件“电耦接”到另一个元件。贯穿本说明书和所附权利要求书,除非另外地明确陈述,否则词“包括”(“comprise”及诸如“comprises”或“comprising”的变种)将被理解为暗含包括所述元件但不排除其他任何元件。
[0030]图1是图示根据本发明的一个示例性实施例的存储器控制器100的框图。
[0031]参见图1,存储器控制器100可以包括:主机接口 110、存储器命令发生单元120、存储器命令执行单元130、RAM 140、主机命令队列HCQ、存储器命令队列MCQ和状态寄存器SRG0
[0032]主机接口 110可以与主机Host通信。主机接口 110可以在存储器命令发生单元120的控制下执行操作。主机接口 110可以包括用于执行主机Host与存储器控制器100之间的数据交换的协议。作为示例性实施例,主机接口 110可以通过各种接口协议(诸如,通用串行总线(USB)协议、多媒体卡(MMC)协议、外围部件互连(PCI)协议、PC1-快速(PC1-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小接口(SCSI)协议、增强型小磁盘接口(ESDI)协议、集成驱动电路(IDE)协议以及私有协议)中的一种或更多种来与主机Host通信。
[0033]主机接口 110可以从主机Host接收多个主机命令HCMDl到HCMDm。主机接口 110可以将接收到的主机命令HCMDl到HCMDm排队在主机命令队列HCQ中。多个主机命令HCMDl到HCMDm可以是用于访问半导体存储器件200的命令。例如,主机命令可以是用于读取储存在半导体存储器件200中的数据的主机读取命令。例如,主机命令可以是用于将数据储存在半导体存储器件200中的主机编程命令。
[0034]可以维持排队在主机命令队列HCQ中的主机命令HCMDl到HCMDm,直到从主机Host接收到执行命令。之后将描述该执行命令。
[0035]主机Host可以在传送每个主机命令时传送对应的逻辑块地址。主机接口 110可以将与对应的主机命令相关的逻辑块地址储存在RAM 140中。
[0036]在一个示例性实施例中,主机Host可以在传送每个主机命令时将每个主机命令和任务ID —起传送。任务ID可以是用于识别主机命令HCMDl到HCMDm中的每个的信息。在这种情形下,主机接口 110可以将任务ID连同对应的主机命令排队在主机命令队列HCQ中。在图1中,第一主机命令HCMDl到第m主机命令HCMDm可以分别对应于第一任务ID到第m任务ID。第一主机命令HCMDl和第一任务ID TKIDl可以包括在第一主机命令集HCSl中。第二主机命令HCMD2和第二任务ID TKID2可以包括在第二主机命令集HCS2中。第三主机命令HCMD3和第三任务ID TKID3可以包括在第三主机命令集HCS3中。第m主机命令HCMDm和第m任务ID TKIDm可以包括在第m主机命令集HCSm中。第一主机命令集HCSl到第m主机命令集HCSm可以根据先进先出原则而排队在主机命令队列HCQ中。
[0037]状态寄存器SRG可以储存就绪设定位RSBl到RSBm。可以通过存储器命令发生器120来初始化就绪设定位RSBl到RSBm。第一就绪设定位RSBl到第m就绪设定位RSBm可以通过初始化而具有第一设定值(例如,逻辑值“O”)。
[0038]在一个示例性实施例中,第一就绪设定位RSBl到第m就绪设定位RSBm可以包括在位映射图中以分别对应于第一任务ID TKIDl到第m任务ID TKIDm。可以理解为状态寄存器SRG可以储存具有比m大的数目的就绪设定位。状态寄存器SRG可以储存与从主机Host可得到的任务ID同样多的就绪设定位。
[0039]主机接口 110可以响应于来自主机Host的就绪状态请求信号RSR来将储存在状态寄存器SRG中的就绪设定位RSBl到RSBm输出到主机Host。主机Host可以基于就绪设定位RSBl到RSBm来确定存储器控制器100准备好执行主机命令HCMDl到HCMDm中的哪个。相应地,在存储器控制器100准备好分别执行主机命令HCMDl到HCMDm之后,需要立即更新就绪设定位RSBl到RSBm。主机Host可以通过查阅就绪设定位RSBl到RSBm来选择第一主机命令HCMDl到HCMDm中的一些主机命令,并将针对选定的主机命令的执行命令传送到存储系统100。存储器控制器100可以响应于执行命令来执行从第一主机命令HCMDl到第m主机命令HCMDm中选择的主机命令。
[0040]存储器命令发生单元120可以控制存储器控制器100的常规操作。存储器命令发生单元120可以执行闪速转换层的功能。存储器命令发生单元120可以将映射表MPT加载到RAM 140,以及可以基于映射表MPT来执行闪速转换层的功能。
[0041]当主机命令HCMDl到HCMDm排队在主机命令队列HCQ中时,存储器命令发生单元120可以产生针对每个主机命令的存储器命令。对于单个主机命令,可能需要一个或更多个存储器命令。例如,当主机命令是针对特定逻辑块地址的主机读取命令时,可能需要储存物理块地址与逻辑块地址之间的映射信息的映射表MPT。当映射表MPT不包括逻辑块地址与物理块地址之间的映射信息时,存储器命令发生单元120可以产生用于从半导体存储器件200读取对应的映射信息的存储器命令。例如,为了获取关于选定的逻辑块地址的映射信息,存储器命令发生单元120可以产生用于读取半导体存储器件200之内的一个页的存储器读取命令。在这种情形下,该页可以储存关于选定的逻辑块地址的映射信息。对于另一个示例,为了获取关于选定的逻辑块地址的映射信息,存储器命令发生单元120可以产生用于读取半导体存储器件200之内的两个或更多个页的存储器读取命令。在这种情形下,两个或更多个页可以储存关于选定的逻辑块地址的映射信息。此外,可以理解,存储器命令发生单元120可以产生用于准备主机命令队列HCQ之内的每个主机命令的执行的各种存储器命令。
[0042]根据本发明的一个示例性实施例,存储器命令发生单元120可以产生与产生的存储器命令相对应的状态更新信息STUP。当状态更新信息STUP包括第一设定值时,在执行对应的存储器命令之后可以不更新状态寄存器SRG。当状态更新信息STUP包括第二设定值时,在执行对应的存储器命令之后可以更新状态寄存器SRG。在下文中,为了方便,第一设定值被例示为逻辑值“0”,而第二设定值被例示为逻辑值“ I ”。
[0043]存储器命令发生单元120可以将产生的存储器命令和状态更新信息STUP排队在存储器命令队列MCQ中。在一个示例性实施例中,存储器命令发生单元120可以将产生的存储器命令、主机命令HCMDl到HCMDm中与存储器命令相对应的一个主机命令的任务ID以及状态更新信息STUP作为单个存储器命令集MCS来排队在存储器命令队列MCQ中。存储器命令队列MCQ可以根据先入先出原则来输入/输出数据。
[0044]在图1中,第一存储器命令集MCSl到第五存储器命令集MCS5可以排队在存储器命令队列MCQ的首地址HD与尾地址TL之间。假定第一存储器命令MCMDl对应于第一主机命令HCMDl。在第一主机命令集HCSl中,第一主机命令HCMDl具有第一任务ID TKIDl。例如,第一存储器命令MCMDl可以与第一任务ID TKIDl以及具有逻辑值“ I”的状态更新信息STUP排队在一起。
[0045]假定第二存储器命令MCMD2到第四存储器命令MCMD4对应于第二主机命令HCMD2。SP,为了执行第二主机命令HCMD2,可以产生第二存储器命令MCMD2到第四存储器命令MCMD4。在第二主机命令集HCS2中,第二主机命令HCMD2具有第二任务ID TKID2。第二存储器命令MCMD2到第四存储器命令MCMD4中的每个可以与第二任务ID TKID2以及状态更新信息STUP排队在一起。例如,与第二存储器命令MCMD2到第四存储器命令MCMD4之中的在最后时间排队的存储器命令MCMD4相对应的状态更新信息STUP可以具有逻辑值“ I ”。例如,与第二存储器命令MCMD2到第四存储器命令MCMD4之中的剩余的存储器命令MCMD2和MCMD3相对应的状态更新信息STUP可以具有逻辑值“O”。
[0046]假定第五存储器命令MCMD5对应于第三主机命令HCMD3。例如,第五存储器命令MCMD5可以与第三任务ID TKID3以及具有逻辑值“I”的状态更新信息STUP排队在一起。
[0047]如上所述,可以产生针对第一主机命令集HCSl到第m主机命令集HCSm的存储器命令集MCSl到MCS5,且存储器命令集可以排队在存储器命令队列MCQ中。
[0048]存储器命令执行单元130可以执行储存在存储器命令队列MCQ中的存储器命令。存储器命令队列MCQ之内的第一存储器命令集MCSl到第五存储器命令集MCS5可以顺序地输出。存储器命令执行单元130可以将每个存储器命令提供给半导体存储器件200,以及可以接收对存储器命令的响应。当存储器命令是针对半导体存储器件200之内的页的存储器读取命令时,半导体存储器件200可以将储存在选定的页中的数据输出作为响应。在这种情形下,存储器命令执行单元130可以将从半导体存储器件200接收的数据作为映射信息来更新在映射表MPT中。
[0049]根据本发明的一个示例性实施例,存储器命令执行单元130可以执行从存储器命令队列MCQ输出的存储器命令,然后可以查阅与针对其的操作完成的存储器命令相对应的状态更新信息STUP。可以查阅包括执行过的存储器命令的存储器命令集的状态更新信息STUP。存储器命令执行单元130可以根据查阅到的状态更新信息STUP来更新就绪设定位RSBl到RSBm中与针对其的操作完成的存储器命令相对应的一个就绪设定位。更具体地,可以输出单个存储器命令集,以及半导体存储器件200可以响应于包括在输出的存储器命令集中的存储器命令来执行操作。当包括在输出的存储器命令集中的状态更新信息STUP是逻辑值“I”时,存储器命令执行单元130可以更新状态寄存器SRG中的包括在输出的存储器命令集中的任务ID的就绪设定位。
[0050]例如,可以从存储器命令队列MCQ输出第一存储器命令集MCS1。半导体存储器件200可以响应于第一存储器命令MCMDI来执行操作。当响应于第一存储器命令MCMDI的操作完成时,存储器命令执行单元130可以通过查阅第一存储器命令集MCSl中具有逻辑值“I”的状态更新信息STUP来更新与第一任务ID TKIDl相对应的第一就绪设定位RSBl。例如,存储器命令执行单元130可以更新状态寄存器SRG,使得第一就绪设定位RSBl具有逻辑值“I”。
[0051]然后,可以从存储器命令队列MCQ输出第二存储器命令集MCS2。半导体存储器件200可以响应于第二存储器命令MCMD2来执行操作。第二存储器命令集MCS2中的状态更新信息STUP具有逻辑值“O”。存储器命令执行单元130可以不更新状态寄存器SRG。可以从存储器命令队列MCQ输出第三存储器命令集MCS3。在半导体存储器件200完成响应于第三存储器命令MCMD3的操作之后,根据第三存储器命令集MCS3中的具有逻辑值“O”的状态更新信息STUP,可以不更新状态寄存器SRG。可以从存储器命令队列MCQ输出第四存储器命令集MCS4。半导体存储器件200可以响应于第四存储器命令MCMD4来执行操作。第四存储器命令集MCS4可以包括具有逻辑值“I”的状态更新信息STUP。第四存储器命令集MCS4可以包括第二任务ID TKID2。存储器命令执行单元130可以基于第四存储器命令集MCS4中的具有逻辑值“I”的状态更新信息STUP来更新状态寄存器SRG,使得与第二任务ID TKID2相对应的第二就绪设定位RSB2具有逻辑值“ I ”。结果,在响应于针对第二主机命令HCMD2的所有存储器命令MCMD2到MCMD4的操作完成之后,可以更新对应的就绪设定位RSB2。
[0052]在一个示例性实施例中,存储器命令队列MCQ可以被提供为独立于存储器命令发生单元120的单个硬件模块。
[0053]为了与本发明的一个示例性实施例相比较,假定存储器命令发生单元120更新状态寄存器SRG的就绪设定位RSBl到RSBm。在半导体存储器件200完成响应于存储器命令的操作之后,存储器命令执行单元130可以产生例如中断信号,并将与存储器命令相对应的操作的完成告知存储器命令发生单元120。存储器命令发生单元120可以响应于中断信号来停止正在进行的操作(其已经开始执行),确定对应的就绪设定位,以及更新确定的就绪设定位。中断信号的重复产生可以降低存储器命令发生单元120的速度。
[0054]根据一个示例性实施例,在存储器命令发生单元120产生存储器命令之后,可以在不妨碍存储器命令发生单元120的情况下更新状态寄存器SRG中的对应的就绪设定位。为了此目的,存储器命令发生单元120可以将状态更新信息STUP与存储器命令一起排队在存储器命令队列MCQ中。在半导体存储器件200完成响应于存储器命令的操作之后,存储器命令执行单元130可以基于对应的状态更新信息STUP来更新状态寄存器SRG中的对应的就绪设定位。相应地,可以改善存储器命令发生单元120和存储器控制器100的操作速度。
[0055]图2是图示图1的半导体存储器件200的框图。
[0056]参见图2,半导体存储器件200可以包括:存储单元阵列210以及用于驱动存储单元阵列210的外围电路220。半导体存储器件200可以在存储器控制器100的控制下执行操作。存储单元阵列210可以包括第一存储块BLKl到第z存储块BLKz。第一存储块BLKl到第z存储块BLKz中的每个可以包括第一页PGl到第η页PGn。第一页PGl到第η页PGn中的每个可以包括多个存储单元。
[0057]外围电路220可以控制存储单元阵列210。外围电路220可以在存储器控制器100的控制下执行操作。外围电路220可以响应于来自存储器控制器100的存储器命令来将数据编程在存储单元阵列210中、从存储单元阵列210读取数据或擦除存储单元阵列210的数据。
[0058]在一个示例性实施例中,可以以页为单位来执行半导体存储器件200的读取操作和编程操作。在编程操作期间,外围电路220可以从存储器控制器100接收存储器命令、物理块地址和数据。可以通过物理块地址选择一个存储块以及包括在该一个存储块中的一个页。外围电路220可以将数据编程到选定的页中。在读取操作期间,外围电路220可以从存储器控制器100接收存储器命令和物理块地址。可以通过物理块地址选择一个存储块以及包括在该一个存储块中的一个页。外围电路220可以从选定的页读取数据,并将读取的数据输出到存储器控制器100。
[0059]在一个示例性实施例中,半导体存储器件200可以是闪速存储器件。
[0060]图3是图示根据本发明的一个示例性实施例的存储器控制器100的操作方法的流程图。图4是图示从存储器命令队列MCQ输出存储器命令的过程的示图。
[0061]参见图1和图3,在步骤SllO处,可以将来自主机Host的多个主机命令HCMDl到HCMDm排队在主机命令队列HCQ中。在一个示例性实施例中,也可以将分别与排队的主机命令相对应的任务ID排队在主机命令队列HCQ中。排队的主机命令和对应的任务ID可以分别形成主机命令集HCS。
[0062]然后,可以对多个主机命令HCMDl到HCMDm中的每个执行准备操作。
[0063]在步骤S120,可以产生与每个主机命令相对应的存储器命令和状态更新信息STUP。状态更新信息STUP可以指示在响应于存储器命令的操作完成之后是否更新状态寄存器SRG。存储器命令发生单元120可以产生针对主机命令队列HCQ中的每个主机命令的操作的一个或更多个存储器命令。例如,当与主机命令一起输入的、与主机命令相对应的逻辑块地址不在映射表MPT中时,存储器命令发生单元120可以产生用于从半导体存储器件200获取关于逻辑块地址的映射信息的一个或更多个存储器命令。在这种情形下,存储器命令可以是存储器读取命令。
[0064]当产生存储器命令时,存储器命令发生单元120可以产生与存储器命令相对应的状态更新信息STUP。
[0065]在步骤S130,可以将产生的存储器命令和对应的状态更新信息STUP排队在存储器命令队列MCQ中。在图1中,可以将第一存储器命令MCMDl到第五存储器命令MCMD5以及分别与第一存储器命令MCMDl到第五存储器命令MCMD5相对应的状态更新信息STUP顺序地排队在存储器命令队列MCQ中。例如,第一存储器命令MCMDl可以具有具有逻辑值“I”的状态更新信息STUP,第二存储器命令MCMD2和第三存储器命令MCMD3可以具有具有逻辑值“O”的状态更新信息STUP,以及第四存储器命令MCMD4和第五存储器命令MCMD5可以具有具有逻辑值“I”的状态更新信息STUP。
[0066]尽管在图1中未图示,但也可以将与剩余的主机命令HCMD4到HCMDm相对应的存储器命令排队在存储器命令队列MCQ中。
[0067]在一个示例性实施例中,可以将分别与主机命令队列HCQ中的排队的主机命令相对应的且因此分别与存储器命令队列MCQ中的排队的存储器命令相对应的任务ID排队在存储器命令队列MCQ中。排队的存储器命令、对应的状态更新信息STUP以及对应的任务ID可以分别形成存储器命令集MCS。
[0068]例如,第一存储器命令MCMDl可以对应于第一主机命令HCMDl。第一存储器命令集MCSl可以包括第一存储器命令MCMDl、第一任务ID TKIDl以及具有逻辑值“I”的状态更新信息STUP。第二存储器命令MCMD2到第四存储器命令MCMD4可以对应于第二主机命令HCMD2。第二主机命令HCMD2可以具有第二任务ID TKID2。第二存储器命令MCMD2、第二任务ID TKID2以及具有逻辑值“O”的状态更新信息STUP可以作为第二存储器命令集MCS2来排队。第三存储器命令MCMD3、第二任务ID TKID2以及具有逻辑值“O”的状态更新信息STUP可以作为第三存储器命令集MCS3来排队。第四存储器命令MCMD4、第二任务ID TKID2以及具有逻辑值“I”的状态更新信息STUP可以作为第四存储器命令集MCS4来排队。第五存储器命令MCMD5可以对应于第三主机命令HCMD3。第五存储器命令MCMD5、第三任务IDTKID3以及具有逻辑值“I”的状态更新信息STUP可以作为第五存储器命令集MCS5来排队。
[0069]在步骤S130之后,每当响应于排队的存储器命令的一个或更多个操作完成时可以根据存储器命令队列MCQ中的对应的状态更新信息STUP的值来选择性地更新状态寄存器SRG,而不妨碍存储器命令发生单元120。
[0070]在步骤S140,可以执行响应于从存储器命令队列MCQ输出的存储器命令的操作。存储器命令执行单元130可以基于先进先出原则,根据包括在存储器命令队列MCQ的第一存储器命令集MCSl到第五存储器命令集MCS5中的存储器命令来顺序地执行操作。
[0071]图4是用于图示从存储器命令队列MCQ输出存储器命令的过程的示图。参见图4,存储器命令执行单元130可以根据储存在存储器命令队列MCQ的首地址HD与尾地址TL之间的第一存储器命令集MCSl到第五存储器命令集MCS5中包括的存储器命令来顺序地执行操作。存储器命令执行单元130可以从存储器命令发生单元120获取首地址HD和尾地址TL,并基于先进先出原则,根据包括在存储器命令队列MCQ的第一存储器命令集MCSl到第五存储器命令集MCS5中的存储器命令来顺序地执行操作。
[0072]重新参见图3,在步骤S150处,可以根据与响应于其的一个或更多个操作完成的存储器命令相对应的状态更新信息STUP来更新对应的主机命令的就绪设定位。
[0073]当与完成的存储器命令相对应的状态更新信息具有逻辑值“I”时,可以更新对应的主机命令的就绪设定位。当与完成的存储器命令相对应的状态更新信息具有逻辑值“O”时,可以不更新对应的主机命令的就绪设定位。
[0074]在一个示例性实施例中,可以根据对应的状态更新信息STUP来更新与包括在存储器命令队列MCQ的各个存储器命令集MCS中的任务ID相对应的第一就绪设定位RSBl到第m就绪设定位RSBm。例如,当响应于第一存储器命令集MCSl (其包括第一存储器命令MCMDl、对应的状态更新信息STUP和第一任务ID TKID1)中的第一存储器命令MCMDl的操作完成时,可以根据具有值“I”的对应的状态更新信息STUP来将与第一任务ID TKIDl相对应的第一就绪设定位RSBl更新为逻辑值“ I ”。当与第二存储器命令集MCS2和第三存储器命令集MCS3相对应的操作完成时,可以根据第二存储器命令集MCS2和第三存储器命令集MCS3中的具有逻辑值“O”的状态更新信息STUP来将与第二任务ID TKID2相对应的第二就绪设定位RSB2维持为逻辑值“O”。当与第四存储器命令集MCS4相对应的操作完成时,可以根据第四存储器命令集MCS4中的具有逻辑值“I”的状态更新信息STUP来将与第二任务ID TKID2相对应的第二就绪设定位RSB2更新为逻辑值“ I ”。即,可以在与第二就绪设定位RSB2相对应的第二主机命令HCMD2就绪且可得到时将第二就绪设定位RSB2更新为逻辑值“I”。当与第五存储器命令集MCS5相对应的操作完成时,可以根据第五存储器命令集MCS5中的具有逻辑值“I”的状态更新信息STUP来将与第三任务ID TKID3相对应的第三就绪设定位RSB3更新为逻辑值“ I ”。
[0075]根据本发明的示例性实施例,可以将状态更新信息STUP与存储器命令一起排队在存储器命令队列MCQ中。然后,每当响应于排队的存储器命令的一个或更多个操作完成时,可以根据存储器命令队列MCQ中的对应的状态更新信息STUP的值来选择性地更新状态寄存器SRG,而不妨碍存储器命令发生单元120。相应地,可以改善存储器命令发生单元120和存储器控制器100的操作速度。
[0076]图5是图示根据本发明的一个示例性实施例的将图1中示出的状态寄存器SRG中的就绪设定位RSBl到RSBm输出的过程的流程图。
[0077]参见图1和图5,在步骤S210处,存储器控制器100可以从主机Host接收用于查询就绪设定位RSBl到RSBm的就绪状态请求信号RSR。在步骤S220处,主机接口 110可以将储存在状态寄存器SRG中的就绪设定位RSBl到RSBm输出到主机Host。
[0078]如参照图3的步骤S150所描述的,可以根据对应的状态更新信息STUP来更新与存储器命令队列MCQ的第一存储器命令集MCSl到第m存储器命令集MCSm中包括的第一任务ID TKIDl到第m任务ID TKIDm相对应的第一就绪设定位RSBl到第m就绪设定位RSBm。同样如参照图1所描述的,第一主机命令HCMDl到第m主机命令HCMDm可以分别对应于第一任务ID到第m任务ID。因此,第一主机命令HCMDl到第m主机命令HCMDm、第一存储器命令MCMDl到第m存储器命令MCMDm、状态更新信息STUP以及第一就绪设定位RSBl到第m就绪设定位RSBm可以分别通过第一任务ID TKIDl到第m任务ID TKIDm而相互对应。通过在步骤S220处从主机接口 110传送的第一就绪设定位RSBl到第m就绪设定位RSBm,主机Host可以确定第一主机命令HCMDl到第m主机命令HCMDm中的哪一个是就绪的且可得到的。
[0079]主机Host可以根据在步骤S220处接收到的第一就绪设定位RSBl到第m就绪设定位RSBm来输出针对从第一主机命令HCMDl到第m主机命令HCMDm中选择的主机命令的执行命令。在一个示例性实施例中,执行命令可以包括用于识别与就绪且可得到的第一主机命令HCMDl到第m主机命令HCMDm中的一个或更多个相对应的第一任务ID TKIDl到第m任务ID TKIDm的信息,且可以根据该信息的逻辑值来选择第一任务ID TKIDl到第m任务ID TKIDm0
[0080]图6是图示根据本发明的一个示例性实施例的响应于来自主机Host的执行命令来操作存储器控制器100的方法的流程图。
[0081]参见图1和图6,在步骤S310处,存储器控制器100可以从主机Host接收执行命令。执行命令可以包括用于识别与就绪且可得到的第一主机命令HCMDl到第m主机命令HCMDm中的一个或更多个相对应的第一任务ID TKIDl到第m任务ID TKIDm的信息。通过执行命令,可以从第一主机命令HCMDl到第m主机命令HCMDm选择一个或更多个就绪且可得到的主机命令。
[0082]在步骤S320处,存储器命令发生单元120可以响应于执行命令来产生与选定的主机命令相对应的存储器命令,且可以将产生的存储器命令排队在存储器命令队列MCQ中。
[0083]存储器命令发生单元120可以执行闪速转换层的功能。存储器命令发生单元120可以通过查阅映射表MPT来将每个主机命令的逻辑块地址转换为物理块地址。当存储器命令被储存在存储器命令队列MCQ中时,存储器命令发生单元120可以将与存储器命令相关的对应的物理块地址储存在RAM 140中。
[0084]在步骤S330处,存储器命令执行单元130可以基于先进先出原则,根据存储器命令队列MCQ的存储器命令集中包括的存储器命令来顺序地执行操作。存储器命令执行单元130可以将每个存储器命令和与存储器命令相关的储存在RAM 140中的物理块地址一起传送给半导体存储器件200。当存储器命令是存储器读取命令时,可以接收储存在半导体存储器件200中的数据。当存储器命令是存储器编程命令时,存储器命令执行单元130可以将要编程的数据传送到半导体存储器件200。
[0085]图7是图示图3的步骤S150的流程图。如参照图3的步骤S150所描述的,可以根据对应的状态更新信息STUP来更新与存储器命令队列MCQ的第一存储器命令集MCSl到第m存储器命令集MCSm中包括的第一任务ID TKIDl到第m任务ID TKIDm相对应的第一就绪设定位RSBl到第m就绪设定位RSBm。同样如以上所描述的,第一主机命令HCMDl到第m主机命令HCMDm、第一存储器命令MCMDl到第m存储器命令MCMDm、状态更新信息STUP以及第一就绪设定位RSBl到第m就绪设定位RSBm可以分别通过第一任务ID TKIDl到第m任务ID TKIDm而相互对应。
[0086]参见图1和图7,在步骤S151处,存储器命令执行单元130可以从存储器命令队列MCQ获取与响应于其的一个或更多个操作完成的存储器命令相对应的状态更新信息STUP。例如,当响应于第一存储器命令集MCSl (其包括第一存储器命令MCMDl、对应的状态更新信息STUP和第一任务ID TKID1)中的第一存储器命令MCMDl的操作完成时,可以获取具有逻辑值“ I ”的对应的状态更新信息STUP。当响应于第二存储器命令集MCS2 (其包括第二存储器命令MCMD2、对应的状态更新信息STUP和第二任务ID TKID2)中的第二存储器命令MCMD2的操作完成时,可以获取具有逻辑值“O”的对应的状态更新信息STUP。
[0087]在步骤S152处,存储器命令执行单元130可以判断获取的状态更新信息STUP是否具有逻辑值“I”。当获取的状态更新信息STUP具有逻辑值“I” (在步骤S152处,“是”)时,存储器命令执行单元130可以在步骤S153处将对应的主机命令的就绪设定位更新为第二设定值(例如,逻辑值“I”)。例如,在响应于第一存储器命令集MCSl中的第一存储器命令MCMDl的操作完成之后,可以根据状态更新信息STUP (其对应于第一存储器命令MCMDl且具有逻辑值“I”)来将第一就绪设定位RSBl更新为第二设定值。当获取的状态更新信息STUP具有逻辑值“O” (在步骤S152处,“否”)时,存储器命令执行单元130可以在步骤S154处将对应的主机命令的就绪设定位更新为第二设定值(例如,逻辑值“I”)。在响应于第二存储器命令集MCS2中的第二存储器命令MCMD2的操作完成之后,可以根据状态更新信息STUP (其对应于第二存储器命令MCMD2且具有逻辑值“O”)来将第二就绪设定位RSB2维持为第一设定值。
[0088]图8是图示用于实施图1的存储器控制器100的示例性实施例1200的框图。
[0089]参见图8,控制器1200可以包括:随机存取存储器(RAM) 1210、处理单元1220、主机接口 1230、存储器接口 1240和错误校正块1250。
[0090]处理单元1220可以控制控制器1200的常规操作。RAM 1210可以用作处理单元1220的操作存储器、图1的半导体存储器件200与图1的主机Host之间的高速缓冲存储器以及半导体存储器件200与主机Host之间的缓冲存储器之中的一种或更多种。处理单元1220和RAM 1210可以执行图1的存储器命令发生单元120的功能。例如,处理单元1220可以通过将编程命令、数据文件和数据结构等加载到RAM 1210并执行加载的数据来执行存储器命令发生单元120的功能。
[0091]此外,RAM 1210可以用作图1的RAM 140。虽然图8图示提供了一个RAM 1210,但可以提供两个或更多个RAM。
[0092]主机接口 1230可以包括用于执行主机与控制器1200之间的数据交换的协议。主机接口 1230可以执行图1的主机接口 110的功能。
[0093]存储器接口 1240与半导体存储器件200接口。错误校正块1250可以通过使用错误校正码来校正从半导体存储器件200读取的数据的错误。存储器接口 1240和错误校正块1250可以执行图1的存储器命令执行单元130的功能。
[0094]根据本发明的一个示例性实施例,可以将状态更新信息STUP与存储器命令MCMD一起排队在存储器命令队列MCQ中。然后,每当针对每个存储器命令的操作完成时,可以根据对应的状态更新信息STUP来选择性地更新状态寄存器SRG中的就绪设定位RSB,而不妨碍存储器命令发生单元。相应地,可以改善存储器命令发生单元和存储器控制器的操作速度。
[0095]如上所述,在附图和说明书中已经公开了实施例。本文中所使用的特定术语是为了说明,而不限制如权利要求书中所限定的本发明的范围。相应地,本领域技术人员将理解,在不脱离本公开的范围和精神的情况下,可以做出各种变型和其他示例。因此,本发明的范围将由所附权利要求书的技术主旨来限定。
[0096]通过以上实施例可以看出,本发明提供以下技术方案。
[0097]技术方案1.一种存储器控制器,包括:
[0098]主机命令队列;
[0099]主机接口,适用于将来自主机的多个主机命令排队在主机命令队列中;
[0100]状态寄存器,适用于储存分别对应于所述多个主机命令的就绪设定位,其中,就绪设定位中的每个指示所述多个主机命令中的对应的一个是否是就绪的且可得到的;
[0101]存储器命令队列;
[0102]存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及
[0103]存储器命令执行单元,适用于响应于排队的存储器命令来执行操作,
[0104]其中,存储器命令执行单元从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
[0105]技术方案2.如技术方案I所述的存储器控制器,其中,主机接口响应于来自主机的就绪状态请求来将就绪设定位输出到主机。
[0106]技术方案3.如技术方案2所述的存储器控制器,其中,存储器控制器接收针对主机命令中的由主机选择的一些主机命令的执行命令。
[0107]技术方案4.如技术方案3所述的存储器控制器,其中,存储器命令发生单元响应于执行命令来产生用于执行选定的主机命令的多个存储器命令,并将产生的所述多个存储器命令排队在存储器命令队列中。
[0108]技术方案5.如技术方案4所述的存储器控制器,其中,存储器命令执行单元响应于排队的存储器命令来执行操作。
[0109]技术方案6.如技术方案I所述的存储器控制器,其中,主机接口还从主机接收分别与所述多个主机命令相对应的多个任务ID。
[0110]技术方案7.如技术方案6所述的存储器控制器,其中,主机接口还将所述多个主机命令与对应的任务ID —起排队在主机命令队列中。
[0111]技术方案8.如技术方案6所述的存储器控制器,其中,就绪设定位分别对应于任务ID0
[0112]技术方案9.如技术方案8所述的存储器控制器,其中,存储器命令发生单元还将分别与排队的主机命令相对应的任务ID和存储器命令一起排队在存储器命令队列中。
[0113]技术方案10.如技术方案9所述的存储器控制器,其中,存储器命令执行单元从存储器命令队列检测与执行过的存储器命令相对应的任务ID,并根据获取的状态更新信息来更新状态寄存器之内的与检测到的任务ID相对应的就绪设定位。
[0114]技术方案11.一种操作存储器控制器的方法,包括:
[0115]将来自主机的多个主机命令排队在主机命令队列中;
[0116]将分别与所述多个主机命令相对应的就绪设定位提供给状态寄存器;
[0117]产生存储器命令和状态更新信息并将其排队在存储器命令队列中;
[0118]响应于排队的存储器命令来执行操作;
[0119]根据与执行过的存储器命令相对应的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位;
[0120]响应于来自主机的就绪状态请求来将就绪设定位输出到主机。
[0121]技术方案12.如技术方案11所述的方法,其中,就绪设定位中的每个指示所述多个主机命令中的对应的一个是否是就绪的且可得到的。
[0122]技术方案13.如技术方案11所述的方法,还包括:接收针对主机命令中的由主机选择的一些主机命令的执行命令。
[0123]技术方案14.如技术方案13所述的方法,还包括:响应于执行命令来产生分别与选定的主机命令相对应的存储器命令和状态更新信息并将其排队在存储器命令队列中。
[0124]技术方案15.如技术方案11所述的方法,还包括:从主机接收分别与所述多个主机命令相对应的多个任务ID。
[0125]技术方案16.如技术方案15所述的方法,其中,将所述多个主机命令排队包括:将所述多个主机命令与对应的任务ID —起排队在主机命令队列中。
[0126]技术方案17.如技术方案15所述的方法,其中,就绪设定位分别对应于任务ID。
[0127]技术方案18.如技术方案17所述的方法,其中,将状态更新信息排队包括:将分别与排队的主机命令相对应的任务ID和存储器命令一起排队在存储器命令队列中。
[0128]技术方案19.如技术方案18所述的方法,其中,更新就绪设定位包括:
[0129]从存储器命令队列检测与执行过的存储器命令相对应的任务ID ;以及
[0130]根据与执行过的存储器命令相对应的状态更新信息来更新状态寄存器之内的与检测到的任务ID相对应的就绪设定位。
[0131]技术方案20.—种存储器控制器,包括:
[0132]主机命令队列;
[0133]主机接口,适用于将来自主机的多个主机命令以及分别与所述多个主机命令相对应的任务ID排队在主机命令队列中;
[0134]状态寄存器,适用于储存分别与任务ID相对应的就绪设定位;
[0135]存储器命令队列;
[0136]存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及
[0137]存储器命令执行单元,适用于响应于排队的存储器命令来执行操作,
[0138]其中,存储器命令执行单元从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
【主权项】
1.一种存储器控制器,包括: 主机命令队列; 主机接口,适用于将来自主机的多个主机命令排队在主机命令队列中; 状态寄存器,适用于储存分别对应于所述多个主机命令的就绪设定位,其中,就绪设定位中的每个指示所述多个主机命令中的对应的一个是否是就绪的且可得到的; 存储器命令队列; 存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及 存储器命令执行单元,适用于响应于排队的存储器命令来执行操作, 其中,存储器命令执行单元从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。2.如权利要求1所述的存储器控制器,其中,主机接口响应于来自主机的就绪状态请求来将就绪设定位输出到主机。3.如权利要求2所述的存储器控制器,其中,存储器控制器接收针对主机命令中的由主机选择的一些主机命令的执行命令。4.如权利要求3所述的存储器控制器,其中,存储器命令发生单元响应于执行命令来产生用于执行选定的主机命令的多个存储器命令,并将产生的所述多个存储器命令排队在存储器命令队列中。5.如权利要求4所述的存储器控制器,其中,存储器命令执行单元响应于排队的存储器命令来执行操作。6.如权利要求1所述的存储器控制器,其中,主机接口还从主机接收分别与所述多个主机命令相对应的多个任务ID。7.如权利要求6所述的存储器控制器,其中,主机接口还将所述多个主机命令与对应的任务ID —起排队在主机命令队列中。8.如权利要求6所述的存储器控制器,其中,就绪设定位分别对应于任务ID。9.一种操作存储器控制器的方法,包括: 将来自主机的多个主机命令排队在主机命令队列中; 将分别与所述多个主机命令相对应的就绪设定位提供给状态寄存器; 产生存储器命令和状态更新信息并将其排队在存储器命令队列中; 响应于排队的存储器命令来执行操作; 根据与执行过的存储器命令相对应的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位; 响应于来自主机的就绪状态请求来将就绪设定位输出到主机。10.一种存储器控制器,包括: 主机命令队列; 主机接口,适用于将来自主机的多个主机命令以及分别与所述多个主机命令相对应的任务ID排队在主机命令队列中; 状态寄存器,适用于储存分别与任务ID相对应的就绪设定位; 存储器命令队列; 存储器命令发生单元,适用于产生存储器命令和状态更新信息并将其排队在存储器命令队列中;以及 存储器命令执行单元,适用于响应于排队的存储器命令来执行操作, 其中,存储器命令执行单元从存储器命令队列获取与执行过的存储器命令相对应的状态更新信息,并基于获取的状态更新信息来更新与执行过的存储器命令相对应的主机命令的就绪设定位。
【文档编号】G06F3/06GK106055267SQ201510586430
【公开日】2016年10月26日
【申请日】2015年9月15日
【发明人】姜芝娟
【申请人】爱思开海力士有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1