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

文档序号:24893407发布日期:2021-04-30 13:21阅读:90来源:国知局
控制器及其操作方法与流程

相关申请的交叉引用

本申请要求于2019年10月14日提交的申请号为10-2019-0126614的韩国专利申请的优先权,其通过引用整体并入本文。

本发明的各个实施例涉及一种控制存储器装置的控制器。



背景技术:

计算机环境范例已经转变成可随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和笔记本电脑等便携式电子装置的使用迅速增加。这种便携式电子装置通常使用具有用于存储数据的一个或多个存储器装置的存储器系统。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。

因其没有移动部件,所以存储器系统具有诸如稳定性和耐久性好、信息存取速度快、功耗低等优点。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。



技术实现要素:

本发明的实施例涉及一种确保快速处理针对控制器中排队的命令的中止命令的控制器以及操作该控制器的方法。

根据本发明的实施例,一种控制存储器装置的控制器包括:命令队列,适于将从主机接收的两个或更多个命令排队;重新生成队列,适于响应于用于中止中止目标命令的中止命令,将与命令队列中排队的命令之中除中止目标命令以外的剩余命令相对应的重新生成的命令排队;处理器,适于当完成将命令排队到重新生成队列中时,重置命令队列,并且将重新生成的命令排队到该命令队列中。

根据本发明的另一实施例,用于操作控制存储器装置的控制器的方法包括:将从主机接收的两个或更多个命令在命令队列中排队;响应于用于中止中止目标命令的中止命令,将重新生成的命令在重新生成队列中排队,其中所述重新生成的命令与命令队列中排队的命令之中除中止目标命令以外的剩余命令相对应;当完成将命令排队到重新生成队列中时,重置该命令队列;并且将重新生成的命令排队到该命令队列中。

根据本发明的另一实施例,一种控制器的操作方法,该操作方法包括:将第一命令和第二命令排队;响应于针对第二命令的中止命令,生成包括第一命令的一个或多个子命令的第三命令;移除第一命令和第二命令;根据第三命令,控制存储器装置以执行操作。

附图说明

图1是示出根据本发明的实施例的数据处理系统的框图。

图2是示出根据本发明的实施例的存储器系统的框图。

图3a至图3e是示出根据本发明的实施例的存储器系统的操作的示图。

图4是示出根据本发明的实施例的存储器系统的操作的流程图。

具体实施方式

下文将参照附图更详细地描述本发明的各个实施例。然而,本发明可以以不同形式来实现,因此不应被解释为仅限于本文阐述的实施例。相反的,提供这些实施例以使本公开是彻底且完整的,并且将向本领域的技术人员充分地传达本发明的范围。在本发明的整个公开中,相同的附图标记在本发明的各个附图和实施例中始终指代相同的部件。

在整个说明书中,对“实施例”、“另一实施例”等的参考不一定意为仅一个实施例,对任何这种短语的不同参考不一定针对相同的实施例。而且,在本文中使用的诸如“包括”、“包括有”等的任意开放式过渡术语并不排除除了所描述的元件或操作之外存在或添加一个或多个元件或操作。类似地,除非上下文清楚地指向单数形式,否则冠词的使用,即“一”或“一个”,旨在意为“一个或多个”。

下文将参照附图更详细地描述本发明的实施例。

图1是示出根据本发明的实施例的数据处理系统100的框图。

参照图1,数据处理系统100可包括主机102,该主机102可操作地联接到存储器系统110。

主机102可包括各种诸如移动电话、mp3播放器和/或膝上型计算机的便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(tv)和/或投影仪的各种非便携式电子装置中的任意一种。

主机102可包括至少一个操作系统(os),该os可管理和控制主机102的全部功能和操作,并且提供主机102与使用数据处理系统100或存储器系统110的用户之间的操作。os可支持与用户的使用目的和用途相对应的功能和操作。例如,根据主机102的移动性,os可被分为通用os和移动os。根据用户的环境,通用os可分为个人os和企业os。

响应于主机102的请求,存储器系统110可操作以存储用于主机102的数据。存储器系统110的非限制性示例包括固态驱动器(ssd)、多媒体卡(mmc)、安全数字卡(sd)、通用串行总线(usb)装置、通用闪存(ufs)装置、紧凑式闪存(cf)卡、智能媒体卡(smc)、个人计算机存储卡国际协会(pcmcia)卡和记忆棒。mmc可包括嵌入式mmc(emmc)、缩小尺寸的mmc(rs-mmc)和微型mmc。sd卡可包括迷你sd卡和微型sd卡。

存储器系统110可由各种类型的存储装置实现。这种存储装置的示例可包括但不限于诸如动态随机存取存储器(dram)和/或静态ram(sram)的易失性存储器装置和诸如以下的非易失性存储器装置:只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程只读存储器(eeprom)、铁电ram(fram)、相变ram(pram)、磁性ram(mram)、电阻式ram(rram或reram)和/或闪速存储器。闪速存储器可具有三维(3d)堆叠结构。

主机102可向存储器系统110提供命令。即使在接收到对已经提供到存储器系统110的命令的响应之前,主机102也可向存储器系统110提供另一命令。存储器系统110可在其中将从主机102接收的命令排队,并按照命令被排队的顺序执行命令操作。

存储器系统110可包括接收并缓冲由主机102提供的命令的命令缓冲器cmd_buffer。存储器系统110可包括命令队列cmd_queue,该命令队列将命令缓冲器中缓冲的命令排队。图1的步骤s102表示存储器系统110将在命令缓冲器中缓冲的命令移动到命令队列cmd_queue的操作。图1示出先前在命令缓冲器中缓冲的命令被移动到命令队列的状态。因此,第一至第三命令cmd1至cmd3在命令队列中排队。存储器系统110可向主机102提供对命令队列中排队的命令的响应,然后从命令队列中移除这些命令。

来自主机102的命令可包括正常命令和中止命令。正常命令可指主机102指示存储器系统110执行特定操作的命令。正常命令的示例包括读取命令、写入命令等。中止命令可指主机102指示存储器系统110中止已经提供的一个或多个正常命令的命令。

存储器系统110可确保由主机102提供的命令的原子性。换言之,存储器系统110可能必须确保正常命令的成功处理,除非提供了针对该正常命令的中止命令。

对命令的处理可意为存储器系统110执行由该命令指示的操作。例如,当存储器系统110提供对写入命令的响应时,从主机102接收的与写入命令有关的所有写入数据可能必须存储在存储器系统110中。

当存储器系统110在提供对写入命令的响应之前从主机102接收到针对写入命令的中止命令时,即使从主机102接收到与写入命令相关联的写入数据的至少一部分,也可能必须从存储器系统110移除所有接收的数据。

存储器系统110可根据先进先出(fifo)方案顺序地处理在命令队列中排队的命令。存储器系统110可将缓冲器资源分配给相应的命令,以缓冲与这些命令相关联的数据。存储器系统110可通过预先分配与将来待执行的命令以及当前正在执行的命令相对应的缓冲器资源来提高操作性能。

在向存储器系统110提供正常命令之后,并且在从存储器系统110接收到对正常命令的响应之前,主机102可通过向存储器系统110提供中止命令来中止该命令。图1的步骤s104表示主机102向存储器系统110提供针对命令队列cmd_queue中排队的命令cmd1至cmd3中的第二命令cmd2的中止命令abort_cmd2的操作。与图1的与第二命令cmd2相关联示出的阴影表示第二命令cmd2是中止目标命令。

根据本发明的实施例,当存储器系统110将在命令缓冲器cmd_buffer中排队的命令排队到命令队列cmd_queue时,可根据命令的优先级顺序重新排列排队顺序。例如,存储器系统110可以以下方式排列命令:中止命令优先于正常命令。abort_cmd2可在排队早于该abort_cmd2的第一至第三命令之前被处理。

而且,当存储器系统110响应于abort_cmd2而从命令队列中仅移除第二命令时,施加在存储器系统110上的abort_cmd2的复杂性和处理时间可能会增加。

为了中止该第二命令,不仅必须从命令队列中移除第二命令,而且还可能必须从缓冲器中解除分配针对第二命令分配的缓冲器资源。例如,存储器系统110可能必须执行中止操作,检查是否分配了用于存储与第二命令相对应的数据的缓冲器资源,并且当如此分配了缓冲器资源时,将缓冲器资源中已分配给与第二命令相对应的数据的数据标记为虚设数据。

在使用多处理器的高性能存储器系统110的情况下,中止命令的进程可能非常复杂。例如,存储器系统110可包括主机处理器和闪存转换层(ftl)处理器。主机处理器可接收来自主机102的命令并将其排队,并且传送或接收与该命令相关联的数据。ftl处理器可执行与排队的命令相对应的操作。当主机处理器和ftl处理器彼此分开时,存储器系统110可能需要控制ftl处理器不执行与由主机处理器中止的命令相对应的操作。例如,可能必须实施排它过程,使得ftl处理器不执行与标记为虚设数据的缓冲器资源相关联的命令操作。

此外,当存储器系统110接收针对多个命令的中止命令时,可能必须对每个命令执行中止进程。因此,当存储器系统110响应于中止命令而从命令队列中仅移除一个命令(中止目标命令)时,很难实现存储器系统110的规范所指示的性能特性。即,在存储器系统110中中止命令所花费的时间比存储器系统110的规范所允许的时间更长。

根据本发明的实施例,存储器系统110可将与剩余命令相对应的重新生成的命令从命令队列cmd_queue移动到重新生成队列re-gen_queue中,并且可响应于来自主机102的中止命令而重置命令队列cmd_queue和缓冲器分配。剩余命令可指在命令队列中排队的命令之中不是中止命令的中止目标的任意命令。图1例示第二命令cmd2是中止目标命令,第一命令cmd1和第三命令cmd3是剩余命令。重新生成队列可以是在重置命令队列和缓冲器分配之后将(多个)剩余命令移动到其中以完成对(多个)剩余命令的处理的队列。重新生成的命令可以是指基于(多个)剩余命令在重新生成队列中排队的命令。重新生成的命令可或可不与其他任意剩余命令相同。如有必要,存储器系统110可通过修改(多个)剩余命令来生成重新生成的命令。图1的步骤s106表示响应于例如针对第二命令cmd2(即,中止目标命令)的abort_cmd2的中止命令,将对应于第一命令cmd1和第三命令cmd3(即,剩余命令)的重新生成的命令排队到重新生成队列的操作。

作为重置操作的结果,所有命令都可从命令队列中被临时移除。在重置操作完成之后,存储器系统110可将重新生成的命令排队到该命令队列。图1的步骤s108表示将对应于第一命令和第三命令的重新生成的命令排队到命令队列的操作。就像将命令缓冲器的命令排队到命令队列的情况一样,存储器系统110可将重新生成队列的命令排队到命令队列。存储器系统110可处理在命令队列中排队的重新生成的命令。

根据本发明的实施例,当在命令队列中排队的多个命令之中只有一些命令被中止时,可将剩余命令移动到重新生成队列,并且可将命令队列和所分配的缓冲器资源集体地重置。因此,与从命令队列中仅移除一些命令的情况相比,中止进程所花费的时间可以更少,系统复杂性能可以更低。

图2是示出根据本发明的实施例的存储器系统110的框图。

存储器系统110可包括控制器130和存储器装置150。存储器装置150可存储主机102的数据,并且控制器130可控制存储器装置150中存储的数据。

控制器130和存储器装置150可集成到单个半导体装置中。例如,控制器130和存储器装置150可集成为一个半导体装置以构成固态驱动器(ssd)。当存储器系统110用作ssd时,可提高连接到存储器系统110的主机102的操作速度。此外,控制器130和存储器装置150可集成为一个半导体装置以构成诸如以下的存储卡:个人计算机存储卡国际协会(pcmcia)卡,紧凑式闪存(cf)卡,智能媒体(sm)卡,记忆棒,包括缩小尺寸的mmc(rs-mmc)和微型mmc的多媒体卡(mmc),包括迷你sd卡、微型sd卡和sdhc卡的安全数字(sd)卡,或者通用闪存(ufs)装置。

存储器系统110的非限制性应用示例包括计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境中传输/接收信息的装置、构成家庭网络的各种电子装置中的一种电子装置、构成计算机网络的各种电子装置中的一种电子装置、构成远程信息处理网络的各种电子装置中的一种电子装置、射频识别(rfid)装置或构成计算系统的各种组件中的一种组件。

存储器装置150可以是非易失性存储器装置,即使不供应电力,也保留存储在其中的数据。存储器装置150可通过编程操作存储由主机102提供的数据,并且通过读取操作将存储器装置150中存储的数据提供到主机102。存储器装置150可包括多个存储块,多个存储块中的每一个可包括多个页面,并且多个页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可具有三维(3d)堆叠结构。

控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可向主机102提供从存储器装置150读取的数据,并将由主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、编程操作和擦除操作。

控制器130可包括全部经由内部总线而可操作地联接的主机接口(i/f)132、ftl处理器(fcpu)134、存储器i/f136、缓冲器管理器138和存储器140。

主机i/f132可被配置为处理主机102的命令和数据,并且可通过诸如以下的各种接口协议中的一个或多个与主机102通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)和/或电子集成驱动器(ide)。

主机接口132可包括命令缓冲器1322、命令队列1324、重新生成队列1326和主机处理器(hcpu)1328。

主机处理器1328可控制主机102和存储器系统110交换命令和数据的全部操作。例如,主机处理器1328可通过驱动固件来控制命令缓冲器1322、命令队列1324和重新生成队列1326。主机处理器1328可控制缓冲器管理器138,该缓冲器管理器138管理用于临时存储与主机102交换的数据的缓冲器。

当完成处理从主机102接收的命令时,主机处理器1328可向主机102提供与该命令相对应的响应。例如,当响应于写入命令而从主机102接收到与该写入命令相关联的所有写入数据时,主机处理器1328可向主机102提供表示该接收的响应。当写入数据被缓冲在内部缓冲器中或者当写入数据被写入存储器装置150中时,可提供对写入命令的响应。在响应于读取命令而将从存储器装置150读取的所有读取数据提供到主机102之后,主机处理器1328可向主机102提供响应。当接收到中止命令时,主机处理器1328可中止中止目标命令,而不提供对中止目标命令的响应。

命令缓冲器1322可对应于早前参照图1描述的命令缓冲器cmd_buffer,并且命令缓冲器1322可缓冲从主机102接收的命令并向命令队列1324提供信号。根据本发明的另一实施例,命令缓冲器1322可在硬件中实现。

命令队列1324可对应于早前参照图1描述的命令队列cmd_queue。命令队列1324可响应于命令缓冲器1322的信号,获取在命令缓冲器1322中排队的命令并将该命令排队。命令队列1324可向ftl处理器134提供命令,使得存储器系统110执行与主机102的命令相对应的操作。当主机处理器1328向主机102提供对排队的命令的响应时,命令队列1324可移除该命令。尽管命令队列1324被示为独立于主机处理器1328的构成元件,但是命令队列1324可被实现为由主机处理器1328驱动的固件的一部分。

重新生成队列1326可对应于参照图1描述的重新生成队列re-gen_queue,并且它可响应于来自主机102的中止命令而将对应于剩余命令的重新生成命令排队。因为重新生成队列1326临时保存重新生成的命令,所以主机处理器1328可通过重置命令队列1324中的所有命令和所分配的缓冲器资源来简单地中止中止目标命令。当完成重置操作时,重新生成队列1326可将重新生成的命令排队到命令队列1324中。

ftl处理器134可响应于排队的命令,通过驱动被称为ftl的固件来执行前台操作。例如,ftl处理器134可响应于从命令队列1324接收的命令而将与该命令相关联的逻辑地址转换为物理地址。ftl处理器134可生成与物理地址相关联的命令,并将所生成的命令提供到存储器接口136。

而且,ftl处理器134可通过驱动ftl来执行后台操作。例如,后台操作可以是垃圾收集(gc)操作、损耗均衡(wl)操作、映射清除操作、坏块管理操作等之中的任意一个。

存储器i/f136可用作存储器/存储装置接口,用于连接控制器130和存储器装置150,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或特别是nand闪速存储器时,存储器i/f136可以是闪存控制器。存储器i/f136可通过包括一条或多条信号线的通道连接到存储器装置150。

存储器i/f136可基于从ftl处理器134接收的命令向存储器装置150提供控制信号。控制信号可包括用于控制存储器装置150的命令和地址。存储器接口134可向存储器装置150提供数据或从存储器装置150接收数据。

存储器140可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。

存储器140可由易失性存储器实现。例如,存储器140可由静态随机存取存储器(sram)或动态随机存取存储器(dram)来实现。存储器140可布置在控制器130内部或外部。图2例示设置在控制器130内的存储器140。在另一实施例中,存储器140可由具有在存储器140和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。

存储器140可包括程序存储器、数据缓冲器等。程序存储器可存储由诸如主机处理器1328、ftl处理器134等处理器驱动的固件。数据缓冲器可临时存储从主机102接收到并待写入存储器装置150中的写入数据,以及从存储器装置150读取的并待传送到主机102的读取数据。

缓冲器管理器138可在主机处理器1328的控制下分配数据缓冲器,用于临时存储与在命令队列1324中排队的命令相关联的数据。例如,缓冲器管理器138可将数据缓冲器划分成多个缓冲区域,并将每个区域与索引相关联。缓冲器管理器138可基于与在命令队列1324中排队的命令相关联的数据的大小来确定待分配给该命令的缓冲区域的数量,并且参照其索引来分配未经分配的缓冲区域。缓冲器管理器138不仅可为当前执行的命令预先分配缓冲区域,还可为将来执行的命令预先分配缓冲区域,以提高存储器系统110的操作性能。

主机处理器1328可基于缓冲器管理器138的管理信息向主机102提供对命令队列1324中排队的命令的响应。例如,基于所有数据都存储在为相关写入命令分配的缓冲区域中的信息,主机处理器1328可向主机102提供写入进程完成的响应。即使在写入数据被编程到存储器装置150中之前,当主机102请求写入数据时,存储器系统110也可提供写入数据。作为另一示例,基于所有数据都存储在为读取命令分配的缓冲区域中的信息,主机处理器1328可向主机102提供读取数据,然后向主机102提供读取进程完成的响应。

图3a至图4示出根据本发明的实施例的存储器系统110的操作。

图3a示出在接收中止命令之前存储器系统110的状态。图3a示出存储器系统110中包括的命令缓冲器1322、命令队列1324、重新生成队列1326和缓冲器管理器138的状态。在图3a中,省略可形成存储器系统110的其它构成元件。

图3a示出命令缓冲器1322、命令队列1324和重新生成队列1326中的每一个的头和尾。命令可在每个队列或每个缓冲器中从头到尾排队。

主机处理器1328可调整命令之间的顺序,使得首先处理在命令队列1324中排队的命令之中具有最高优先级的命令。主机处理器1328可顺序地处理在命令队列1324的头部排队的命令。

图3a示出第一至第四命令cmd1至cmd4在命令队列1324中排队的状态。当命令缓冲器1322中缓冲cmd1至cmd4时,主机处理器1328可获取这些命令,并将cmd1至cmd4在命令队列1324中排队。在本示例中,一旦从命令缓冲器1322获取cmd1至cmd4并在命令队列1324中排队,命令缓冲器1322可能变为空。cmd1至cmd4可以其数字标识符指示的顺序,即从cmd1至cmd4的顺序排队,并且可以该顺序执行相应的操作。cmd1至cmd4可以是正常命令。

缓冲器管理器138可为在命令队列1324中排队的命令分配数据缓冲器(或缓冲器中的区域)。例如,数据缓冲器可包括多个缓冲区域。缓冲器管理器138可将索引映射到缓冲区域中的每一个。图3a示出缓冲器管理器138具有分别由第一至第十五索引标识的15个缓冲区域。缓冲器管理器138可确定哪个(哪些)已索引的缓冲区域当前存储数据。缓冲器管理器138可分配未存储数据的一个或多个缓冲区域,以便临时存储与命令相关联的数据。图3a示出缓冲器管理器138为第一命令cmd1分配对应于第一至第四索引的并且未存储数据的缓冲区域的状态。缓冲器管理器138甚至可在与cmd1相关联的第一命令处理完成之前预先为cmd2分配对应于第五至第八索引的缓冲区域,以提高存储器系统110的操作性能。类似地,缓冲器管理器138可为第三命令预先分配对应于第九至第十二索引的缓冲区域。

此时重新生成队列1326可能为空。

图4是描述根据本发明的实施例的存储器系统110的操作的流程图。

在步骤s402中,命令缓冲器1322可从主机102接收中止命令。

图3b是示出根据步骤s402的存储器系统110的状态改变的示图。如图3a所示,为了清楚起见,图3b仅示出与结合图4所描述的处理相关的存储器系统110的那些构成元件,即命令缓冲器1322、命令队列1324、重新生成队列1326和缓冲器管理器138。

图3b示出针对cmd2和cmd3的中止命令abort_cmd2&3被缓冲在命令缓冲器1322中的状态。

主机处理器1328可将中止命令abort_cmd2&3在命令队列1324中排队。abort_cmd2&3的处理优先级可高于正常命令(即,cmd1至cmd4中的任意一个)。主机处理器1328可调整命令在命令队列1324中排队的顺序,以便首先执行具有高优先级的命令。图3b示出abort_cmd2&3排在cmd1前面的状态。

当abort_cmd2&3排队时,可能正在处理cmd1。例如,当cmd1是写入命令时,在从主机102接收到与cmd1(或其(多个)子命令)相对应的写入数据的一部分并将其缓冲在缓冲器中的同时,主机处理器1328可将abort_cmd2&3排队。作为另一示例,当cmd1是读取命令时,在从存储器装置150读取与cmd1(或其(多个)子命令)相对应的读取数据的一部分并将其缓冲在缓冲器中的同时,主机处理器1328可将abort_cmd2&3排队。图3b示出当abort_cmd2&3正在排队时,在与第一和第二索引相对应的缓冲区域中接收和缓冲与cmd1(或其(多个)子命令)相关联的数据的一部分的状态。在图3b中,用周边阴影来示出其中缓冲数据的缓冲区域。

在步骤s404中,与命令队列1324的剩余命令相对应的重新生成的命令可排队到重新生成队列1326中。

图3c示出执行步骤s404的操作之后的存储器系统110的状态。参照图3c,可首先执行在命令队列1324的头部排队的针对cmd2和cmd3的abort_cmd2&3。主机处理器1328可响应于abort_cmd2&3,停止正常命令处理并执行中止进程。

在图3c的示例中,主机处理器1328可停止缓冲与cmd1相关联的数据的操作。主机处理器1328可基于已经缓冲的数据来处理由cmd1指示的操作的一部分。处理命令的一部分(即命令的至少一个子命令)可意为仅对与该命令相关联的数据的一部分执行命令操作。

主机处理器1328可将对应于剩余命令cmd1和cmd4的重新生成的命令排队到重新生成队列1326中。重新生成的命令和剩余命令可彼此相同或彼此不同。例如,当尚未处理剩余命令时,主机处理器1328可将剩余命令作为重新生成的命令排队到重新生成队列1326中。当仅部分地处理了剩余命令时,主机处理器1328可生成与剩余命令的未处理部分(即,尚未执行的子命令)相对应的重新生成的命令,并且将重新生成的命令排队到重新生成队列1326中。例如,主机处理器1328可能在响应于来自主机102的写入128kb数据的写入命令而接收96kb数据的同时接收中止命令。在主机102侧,与接收的96kb数据相对应的写入命令的一部分是已处理的部分或已处理的子命令。另一方面,与剩余32kb数据相对应的写入命令的一部分是未处理的部分或未处理的子命令。主机处理器1328可向ftl处理器134提供对应于接收的96kb数据的写入命令,响应于中止命令而生成对应于剩余32kb数据的重新生成的命令并且将重新生成的命令排队。

下文将描述主机处理器1328处理命令的一部分(即,子命令)并生成与该命令的未处理部分(即,未处理或未执行的子命令)相对应的重新生成的命令的操作的示例。

正常命令可包括待存储在存储器装置150中或待提供到主机102的数据的大小和地址信息。例如,cmd1可与来自逻辑地址“100”的四个逻辑地址的数据相关联。例如,假设对应于一个索引的缓冲区域能够缓冲由一个逻辑地址表示的数据,则分别对应于逻辑地址“100”、“101”、“102”和“103”的数据可被缓冲在第1至第4缓冲区域中。在图3c的示例中,对应于逻辑地址“100”和“101”的数据可已经被缓冲。

基于在生成与cmd1相对应的重新生成的命令之前已经缓冲的数据,主机处理器1328可处理cmd1的一部分(即,一个或多个子命令)。例如,当cmd1是写入命令时,主机处理器1328可向ftl处理器134提供写入命令,以将与逻辑地址“100”和“101”相对应的数据编程到存储器装置150中。当cmd1是读取命令时,主机处理器1328可向主机102提供与逻辑地址“100”和“101”相对应的数据。

在完成cmd2和cmd3的中止进程之后,主机处理器1328可能还必须处理cmd1的未处理的部分(即未处理的(多个)子命令),以确保cmd1的原子性。主机处理器1328可生成第五命令cmd5,第五命令cmd5指示针对从逻辑地址“102”开始的两个逻辑地址写入数据,并且将cmd5在重新生成队列1326中排队。cmd5是重新生成的命令,可与作为剩余命令的cmd1相对应。

作为剩余命令的cmd4完全尚未被处理。主机处理器1328可将cmd4作为重新生成的命令在重新生成队列1326中排队。

在步骤s406中,主机处理器1328可重置命令队列1324和缓冲器管理器138的缓冲器分配。

图3d示出执行步骤s406的操作之后的存储器系统110的状态。

主机处理器1328可移除命令队列1324中排队的所有命令。主机处理器1328可移除与缓冲器管理器138的缓冲器分配相关联的信息。参照图3d,可移除表示缓冲器被分配给cmd1至cmd3的信息。

尽管图3d中未详细示出,但当前正在处理的命令可以是中止目标命令。即使与命令的一个或多个子命令相关联的数据的至少一部分被缓冲在缓冲器中,主机处理器1328也可移除缓冲器分配和所分配的缓冲区域的数据。因此,在当前正在处理中止目标命令时,可通过完全中止该命令来确保存储器系统110的原子性。

通过步骤s406的操作,可中止命令队列1324中排队的cmd2和cmd3。在步骤s406中,还可从命令队列1324中移除cmd1和cmd4。

在步骤s408中,主机处理器1328可将在重新生成队列1326中排队的重新生成的命令cmd4和cmd5排队到命令队列1324中。主机处理器1328可通过处理命令队列1324中排队的cmd4和cmd5来确保cmd1和cmd4的原子性。

图3e是示出执行步骤s408的操作之后的存储器系统110的状态的示图。

图3e示出命令队列1324中的cmd4和cmd5排队的状态。cmd5可以是对应于cmd1的重新生成的命令,并且因为cmd5排在cmd4前面,所以可首先由主机处理器1328处理cmd5。

图3e示出缓冲器管理器138为cmd4和cmd5分配缓冲区域的状态。可为cmd5分配与第一和第二索引相对应的缓冲区域,并且可为cmd4分配与第三至第六索引相对应的缓冲区域。在图3e的示例中,cmd5可以是与从逻辑地址“102”开始的两个逻辑地址相关联的命令。

例如,当cmd1是写入命令时,主机处理器1328响应于cmd5从主机102接收与逻辑地址“102”和“103”相对应的数据,并向ftl处理器134提供命令,以便存储器装置150可写入数据。当cmd1是读取命令时,主机处理器1328可基于cmd5来控制ftl处理器134读取与逻辑地址“102”和“103”相对应的数据,并将读取的数据提供到主机102。因为已处理与cmd1的未处理部分(即,未处理的(多个)子命令)相对应的cmd5,所以可完成对cmd1的处理。

根据本发明的实施例,主机处理器1328可响应于中止命令abort_cmd2&3,将与剩余命令相对应的重新生成的命令排队到重新生成队列1326中,并重置命令队列和缓冲器分配信息。主机处理器1328可通过集体地重置命令队列和缓冲器分配信息来中止中止目标命令。主机处理器1328可不必执行仅移除命令队列1324和较低队列中排队的命令之中的中止目标命令的复杂操作。类似地,缓冲器管理器1328可不必对分配给中止目标命令的缓冲区域执行任何单独的处理。因此,可缩短存储器系统110的中止处理所花费的时间,并且可减少实施存储器系统110的复杂性。

根据本发明的实施例,可以确保针对在控制器内排队的命令的中止命令的快速处理。

虽然已经相对于具体实施例描述了本发明,但是对于本领域技术人员来说显而易见的是,在不脱离所附权利要求中限定的本发明的精神和范围的情况下,可进行各种改变和修改。本发明涵盖落入权利要求范围内的所有这些改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1