相关申请的交叉引用
本申请要求8月14日提交的韩国专利申请序号10--0094933的优先权,其全部内容通过引用并入本文。
示例性实施例涉及存储器系统,更具体地涉及用于分布式地存储从主机接收的数据的存储器系统和数据处理系统。
背景技术:
计算机环境范例已经变为可以随时随地使用的普遍存在的计算系统。因此,诸如移动电话、数字相机和笔记本计算机之类的便携式电子装置的使用已迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来用于存储数据。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。
存储器系统提供优异的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有活动部件。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储器卡、以及固态驱动器(ssd)。
技术实现要素:
各种实施例涉及存储器系统和数据处理系统,其能够有效地分布式地存储被分组到事务中的多个写数据。
在一个实施例中,一种数据处理系统可以包括:第一存储器系统,包括第一非易失性存储器装置;第二存储器系统,包括第二非易失性存储器装置;以及主系统,包括第三非易失性存储器装置,并且被配置为根据预定基准而将所述第一存储器系统和所述第二存储器系统中的任何一个分类为第一从系统并且将另一个分类为第二从系统。所述主系统可以直接耦合到主机,并且可以包括用于临时存储从所述主机输入的多个写数据的写缓冲器。根据分析存储在所述写缓冲器中的所述写数据的特性的结果,所述主系统可以将所述写数据存储在所述第三非易失性存储器装置中,或者通过将所述写数据分配到所述第一从系统和所述第二从系统来将所述写数据存储在所述第一非易失性存储器装置或所述第二非易失性存储器装置中。
所述主系统可以将存储在所述写缓冲器中的所述写数据分类为被分组到事务中的第一写数据和未被分组到事务中的第二写数据,可以将所述第二写数据存储在所述第三非易失性存储器装置中,并且可以通过将所述第一写数据分配到所述第一从系统和所述第二从系统来将所述第一写数据存储在所述第一非易失性存储器装置或所述第二非易失性存储器装置中。
所述主系统可以将存储在所述写缓冲器中的所述第一写数据之中未完全提交的第一写数据分类到第三写数据中,可以将存储在所述写缓冲器中的所述第一写数据之中完全提交的第一写数据分类到第四写数据中,可以通过将所述第三写数据传送到所述第一从系统来将所述第三写数据存储在所述第一从系统中包括的非易失性存储器装置中,并且可以通过将所述第四写数据传送到所述第二从系统来将所述第四写数据存储在所述第二从系统中包括的非易失性存储器装置中。
在所述第一非易失性存储器装置和所述第二非易失性存储器装置都能够或不能被重写的情况下,所述主系统可以执行第一比较操作,比较所述第一非易失性存储器装置的总大小和所述第二非易失性存储器装置的总大小,作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小较小的情况下,可以将所述第一存储器系统分类为所述第一从系统并且将所述第二存储器系统分类为所述第二从系统,并且作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小较大的情况下,可以将所述第二存储器系统分类为所述第一从系统并且将所述第一存储器系统分类为所述第二从系统。
作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小和所述第二非易失性存储器装置的总大小相同的情况下,所述主系统可以执行第二比较操作,比较所述第一非易失性存储器装置中的空的空间的大小和所述第二非易失性存储器装置中的空的空间的大小,作为所述第二比较操作的结果,在所述第一非易失性存储器装置中的空的空间的大小较小的情况下,可以将所述第一存储器系统分类为所述第一从系统并且将所述第二存储器系统分类为所述第二从系统,并且作为所述第二比较操作的结果,在所述第一非易失性存储器装置中的空的空间的大小较大的情况下,可以将所述第二存储器系统分类为所述第一从系统并且将所述第一存储器系统分类为所述第二从系统。
在所述第一非易失性存储器装置和所述第二非易失性存储器装置中的任何一个能够被重写而另一个不能被重写的情况下,所述主系统可以将能够被重写的所述非易失性存储器装置分类为所述第一从系统并且将不能被重写的另一个非易失性存储器装置分类为所述第二从系统。
在将所述第一写数据分类到所述第四写数据中时,在第一事务的开始数据被包括在存储在所述写缓冲器中的所述第一事务的第四写数据中的情况下,所述主系统可以通过将存储在所述写缓冲器中的所述第一事务的所述第四写数据传送到所述第二从系统,来将存储在所述写缓冲器中的所述第一事务的所述第四写数据存储在所述第二从系统中包括的所述非易失性存储器装置中。
当将所述第一写数据分类到所述第四写数据中时,在针对第二事务的数据组的开始数据未被包括在存储在所述写缓冲器中的所述第二事务的第四写数据中的情况下,所述主系统可以通过所述第一从系统从包括在所述第一从系统中的所述非易失性存储器装置读取未被存储在所述写缓冲器中的所述第二事务的剩余数据,可以通过将剩余数据传送到所述第二从系统来将所述剩余数据存储在所述第二从系统中包括的所述非易失性存储器装置中,并且可以通过所述第一从系统使所述第一从系统中包括的所述非易失性存储器装置中的所述第二事务的所述剩余数据无效,并且可以通过将所述第二事务的所述第四写数据传送到所述第二从系统来将存储在所述写缓冲器中的所述第二事务的所述第四写数据存储在所述第二从系统中包括的所述非易失性存储器装置中。
在突然断电(spo)发生之后进入的恢复操作时期中,所述主系统可以通过所述第一从系统使存储在所述第一从系统中包括的所述非易失性存储器装置中的所有数据无效,并且将关于与所无效的数据相对应的事务的信息传送到所述主机。
所述第一非易失性存储器装置和所述第二非易失性存储器装置中的每一个可以包括多个存储器块。在从所述主系统在所述第一从系统中接收第三事务的第三写数据和第四事务的第三写数据的情况下,所述第一从系统可以通过选择其中包括的所述非易失性存储器装置的第一存储器块来存储所述第三事务的所述第三写数据,并且可以通过选择其中包括的所述非易失性存储器装置的第二存储器块来存储所述第四事务的所述第三写数据。在从所述主系统在所述第二从系统中接收第五事务的第四写数据和第六事务的第四写数据的情况下,所述第二从系统可以通过选择其中包括的所述非易失性存储器装置的第三存储器块来存储所述第五事务的所述第四写数据,并且可以通过选择其中包括的所述非易失性存储器装置的第四存储器块来存储所述第六事务的所述第四写数据。
在一个实施例中,一种存储器系统可以包括:第一非易失性存储器装置;第二非易失性存储器装置;第三非易失性存储器装置;以及控制器,所述控制器被配置为根据预定基准而将所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个分类为主装置,并且将剩余两个中的任何一个分类为第一辅助装置并且将另一个分类为第二辅助装置。所述控制器可以包括用于临时存储从主机输入的多个写数据的写缓冲器。根据分析存储在所述写缓冲器中的所述写数据的特性的结果,所述控制器可以在所述主装置、所述第一辅助装置和所述第二辅助装置中分配所述写数据。
所述控制器可以将存储在所述写缓冲器中的所述写数据分类为被分组到事务中的第一写数据和未被分组到事务中的第二写数据,可以将所述第二写数据存储在所述主装置中,并且可以在所述第一辅助装置和所述第二辅助装置中分配所述第一写数据。
所述控制器可以将存储在所述写缓冲器中的所述第一写数据之中未完全提交的第一写数据分类到第三写数据中,并且可以将存储在所述写缓冲器中的所述第一写数据之中完全提交的第一写数据分类到第四写数据中,可以将所述第三写数据存储在所述第一辅助装置中,并且可以将所述第四写数据存储在所述第二辅助装置中。
在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置全部都能够被重写或不能被重写的情况下,所述控制器可以执行第一比较操作,比较所述第一非易失性存储器装置的总大小、所述第二非易失性存储器装置的总大小和所述第三非易失性存储器装置的总大小。作为所述第一比较操作的结果,所述控制器可以将具有最大大小的存储器装置分类为主装置,将具有最小大小的存储器装置分类为第一辅助装置,并且将具有中等大小的存储器装置分类为第二辅助装置。
作为所述第一比较操作的结果,在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置全部具有相同的总大小的情况下,所述控制器可以执行第二比较操作,比较所述第一非易失性存储器装置中的空的空间的大小、所述第二非易失性存储器装置中的空的空间的大小和所述第三非易失性存储器装置中的空的空间的大小。作为所述第二比较操作的结果,所述控制器可以将具有最大空的空间大小的存储器装置分类为主装置,将具有最小空的空间大小的存储器装置分类为第一辅助装置,并且将具有中等空的空间大小的存储器装置分类为第二辅助装置。
在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个能够被重写并且剩余两个不能被重写的情况下,所述控制器可以将能够被重写的任何一个存储器装置分类为所述第一辅助装置,将不能被重写的剩余两个存储装置之间的总大小较大的任何一个分类为所述主装置并且将另一个分类为所述第二辅助装置,并且在不能被重写的剩余两个存储器装置的总大小相同的情况下,所述控制器将空的空间较大的任何一个分类为所述主装置并且将另一个分类为所述第二辅助装置。在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个不能被重写并且剩余两个能够被重写的情况下,所述控制器可以将不能被重写的任何一个存储器装置分类为所述主装置,将能够被重写的剩余两个存储装置之间的总大小较小的任何一个分类为所述第一辅助装置并且将另一个分类为所述第二辅助装置,并且在能够被重写的剩余两个存储器装置的总大小相同的情况下,所述控制器将空的空间较小的任何一个分类为所述第一辅助装置并且将另一个分类为所述第二辅助装置。
在将所述第一写数据分类到所述第四写数据中时,在针对第一事务的数据组的开始数据被包括在存储在所述写缓冲器中的所述第一事务的第四写数据中的情况下,所述控制器可以将存储在所述写缓冲器中的所述第一事务的所述第四写数据存储在所述第二辅助装置中。
当将所述第一写数据分类到所述第四写数据中时,在第二事务的开始数据未被包括在存储在所述写缓冲器中的所述第二事务的第四写数据中的情况下,所述控制器可以从所述第一辅助装置读取未被存储在所述写缓冲器中的所述第二事务的剩余数据,将所述剩余数据存储在所述第二辅助装置中,并且可以使所述第一辅助装置中的所述第二事务的所述剩余数据无效,并且可以将存储在所述写缓冲器中的所述第二事务的所述第四写数据存储在所述第二辅助装置中。
在突然断电(spo)发生之后进入的恢复操作时期中,所述控制器可以使存储在所述第一辅助装置中的所有数据无效,并且可以将关于与所无效的数据相对应的事务的信息传送到所述主机。
所述第一辅助装置和所述第二辅助装置中的每一个可以包括多个存储器块。当执行刷新操作时,在第三事务的第三写数据、第四事务的第三写数据、第五事务的第四写数据和第六事务的第四写数据被存储在所述写缓冲器中的情况下,所述控制器可以通过选择所述第一辅助装置的第一存储器块来存储所述第三事务的所述第三写数据,可以通过选择所述第一辅助装置的第二存储器块来存储所述第四事务的所述第三写数据,可以通过选择所述第二辅助装置的第三存储器块来存储所述第五事务的所述第四写数据,并且通过选择所述第二辅助装置的第四存储器块来存储所述第六事务的所述第四写数据。
在一个实施例中,一种存储器系统可以包括:第一存储器装置和第二存储器装置;适用于缓冲从外部提供的事务的第一部分数据组和第一整个数据组的缓冲器;以及控制单元,适用于:通过刷新所缓冲的数据组,控制所述第一存储器装置和所述第二存储器装置以分别在其中存储所述第一部分数据组和所述第一整个数据组;以及当在刷新时所述第一部分数据组与存储在所述第一存储装置中的第二部分数据组一起形成第二整个数据组时,控制所述第一存储器装置和所述第二存储器装置以在刷新时将所述第二部分数据组从所述第一存储器装置移动到所述第二存储器装置中。
在本技术中,根据所接收的数据是否被分组到事务中以及事务数据是否被提交,通过在多个存储装置(多个非易失性存储器装置或多个存储器系统)上适当地进行分配来存储从主机接收的数据。
通过这样,可以简化用于确保事务数据的算法。此外,可以在spor(突然断电恢复)操作中容易地区分事务数据的有效/无效状态。
附图说明
图1和图2a至图2c是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的图。
图3a至图3e是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的操作的图。
图4是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的操作的流程图。
图5和图6是根据本公开的第二实施例的包括多个存储器系统的数据处理系统的图。
图7a至图7e是包括根据本公开的第二实施例的多个存储器系统的数据处理系统的图。
图8是根据本公开的第二实施例的包括多个存储器系统的数据处理系统的操作的流程图。
具体实施方式
以下将参考附图更详细地描述各种实施例。然而,本发明可以以不同的形式被体现,并且不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使得本公开彻底和完整,并且向本领域技术人员充分传达本发明的范围。贯穿本公开,在本发明的各个图和实施例中,相同的附图标记指代相同的部件。
<第一实施例>
图1和图2a至图2c是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的图。
参见图1,根据本公开的第一实施例的数据处理系统包括主机a10和存储器系统a20、a30和a40。存储器系统a20、a30和a40包括主系统a20、第一存储器系统a30和第二存储器系统a40。
主机a10向存储器系统a20、a30和a40发送与用户请求相对应的多个命令,并且因此存储器系统a20、a30和a40执行与命令相对应的操作,即,与用户请求相对应的操作。
存储器系统a20、a30和a40响应于主机a10的请求而操作,具体地,存储要由主机a10访问的数据。换句话说,存储器系统a20、a30和a40中的每一个可以被用作主机a10的主存储器装置或辅助存储器装置。
存储器系统a20、a30和a40中的每一个可以由各种类型的存储装置中的任何一种实现,这取决于与主机a10耦合的主机接口协议。例如,存储器系统a20、a30和a40中的每一个可以由各种类型的存储装置中的任何一种来实现,诸如固态驱动器(ssd)、mmc、emmc(嵌入式mmc)、rs-mmc(缩小尺寸mmc)和微型mmc形式的多媒体卡、sd、迷你sd和微型sd形式的安全数字卡、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡、记忆棒等。
存储器系统a20、a30和a40中的每一个可以被集成到一个半导体装置中并且构成存储器卡。例如,存储器系统a20、a30和a40中的每一个可以构成存储器卡,诸如个人计算机存储器卡国际协会(pcmcia)卡、紧凑型闪存(cf)卡、sm和smc形式的智能媒体卡、记忆棒、mmc、rs-mmc和微型mmc形式的多媒体卡、sd、迷你sd、微型sd和sdhc形式的安全数字卡、以及通用闪存(ufs)装置。
对于另一个实例,存储器系统a20、a30和a40中的每一个可以构成计算机、超移动pc(umpc)、工作站、网络书、个人数字助理(pda)、便携式计算机、网络平板电脑、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航装置、黑匣子、数字相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、构成数据中心的存储部、能够在无线环境下发送和接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、rfid(射频识别)装置、或构成计算系统的各种组成元件之一。
存储器系统a20、a30和a40中的每一个可以包括存储装置,诸如易失性存储器装置,诸如动态随机存取存储器(dram)和静态随机存取存储器(sram),或者诸如非易失性存储器装置,诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁ram(mram)、电阻式ram(rram)和闪存。
主系统a20直接耦合到主机a10。主系统a20包括写缓冲器a22,用于临时存储从主机a10输入的多个写数据wdata。主系统a20进一步包括第三非易失性存储器装置a21,其可以接收和存储从写缓冲器a22传送的写数据wdata。
第一存储器系统a30直接与主系统a20耦合。第一存储器系统a30包括第一非易失性存储器装置a31,其可以存储从主系统a20中的写缓冲器a22传送的写数据wdata。
第二存储器系统a40直接与主系统a20耦合。第二存储器系统a40包括第二非易失性存储器装置a41,其可以存储从主系统a20中的写缓冲器a22传送的写数据wdata。
也就是说,第一存储器系统a30和第二存储器系统a40通过主系统a20耦合到主机a10。
主系统a20可以根据预定基准而将第一存储器系统a30和第二存储器系统a40中的任何一个分类为第一从系统slave1并且将另一个分类为第二从系统slave2。
详细地,在第一非易失性存储器装置a31和第二非易失性存储器装置a41都能够或不能被重写的情况下,主系统a20执行第一比较操作,比较第一非易失性存储器装置a31的总大小和第二非易失性存储器装置a41的总大小。
作为这种第一比较操作的结果,在第一非易失性存储器装置a31的总大小小于第二非易失性存储器装置a41的总大小的情况下,主系统a20将第一存储器系统a30分类为第一从系统slave1,并且将第二存储器系统a40分类为第二从系统slave2。
此外,作为第一比较操作的结果,在第一非易失性存储器装置a31的总大小大于第二非易失性存储器装置a41的总大小的情况下,主系统a20将第一存储器系统a30分类为第二从系统slave2,并且将第二存储器系统a40分类为第一从系统slave1。
作为第一比较操作的结果,在第一非易失性存储器装置a31的总大小和第二非易失性存储器装置a41的总大小彼此相同的情况下,主系统a20执行第二比较操作,比较第一非易失性存储器装置a31的总大小中的空的空间的大小和第二非易失性存储器装置a41的总大小中的空的空间的大小。
作为这种第二比较操作的结果,在第一非易失性存储器装置a31的空的空间的大小小于第二非易失性存储器装置a41的空的空间的大小的情况下,主系统a20将第一存储器系统a30分类为第一从系统slave1,并且将第二存储器系统a40分类为第二从系统slave2。
此外,作为第二比较操作的结果,在第一非易失性存储器装置a31的空的空间的大小大于第二非易失性存储器装置a41的空的空间的大小的情况下,主系统a20将第一存储器系统a30分类为第二从系统slave2,并且将第二存储器系统a40分类为第一从系统slave1。
在第一非易失性存储器装置a31和第二非易失性存储器装置a41中的任何一个存储器装置能够被重写而另一个不能被重写的情况下,主系统a20将能够被重写的任何一个存储器装置分类为第一从系统slave1,并且将不能被重写的另一个存储装置分类为第二从系统slave2。
例如,在第一非易失性存储器装置a31是能够被重写的存储器装置并且第二非易失性存储器装置a41是不能被重写的存储器装置的情况下,主系统a20将第一存储器系统a30分类为第一从系统slave1,并且将第二存储器系统a40分类为第二从系统slave2。
主系统a20将存储在写缓冲器a22中的写数据wdata存储在第三非易失性存储器装置a21中,或者根据分析写数据wdata的特性的结果,通过将写数据wdata分配给第一从系统slave1和第二从系统slave2,将存储在写缓冲器a22中的写数据wdata存储在第一非易失性存储器装置a31或第二非易失性存储器装置a41中。
详细地,主系统a20将存储在写缓冲器a22中的写数据wdata分类为被分组到事务中的第一写数据tran_wdata和未被分组到事务中的第二写数据nmal_wdata。
在针对写缓冲器a22执行刷新操作时,主系统a20将未被分组到事务中的第二写数据nmal_wdata存储在第三非易失性存储器装置a21中。
此外,在针对写缓冲器a22执行刷新操作时,主系统a20将第一写数据tran_wdata分配给第一从系统slave1和第二从系统slave2,并且从而将第一写数据tran_wdata存储在第一非易失性存储器装置a31或第二非易失性存储器装置a41中。
写数据wdata被分组到事务中的事实意味着用于相同用途的多个写数据wdata被分组到一个事务中。
例如,在数据库中,用于已存储数据的校正、添加和更新的数据可以根据相应的用途被分组到相应的事务中。在这方面,可以将用于校正数据库的数据设置为被分组到一个事务组中,并且可以将用于添加数据库的数据设置为被分组到另一个事务组中。
因此,当分组到一个事务中的写数据tran_wdata从主机a10被发送到主系统a20时,仅存在提交状态或中止状态,在提交状态中所有写数据tran_wdata被正常发送和存储并且因此是有效的,在中止状态中任何一个未被正常发送和存储的写数据tran_wdata或者所有写数据tran_wdata根据主机a10的中止请求都是无效的。也就是说,分组到一个事务中的写数据tran_wdata仅在写数据tran_wdata处于提交状态时才有意义,因为所有写数据tran_wdata都被正常发送和存储,并且因此全部有效。
例如,当将所有第一写数据tran_wdata被正常地从主机a10发送到主系统a20并且完全存储在主系统a20中并且没有来自主机a10的中止请求时,可以确定被分组到一个事务中的第一写数据tran_wdata处于提交状态。如果任何一条第一写数据tran_wdata没有被正常发送和存储,或者从主机a10接收到中止请求,则确定所有第一写数据tran_wdata处于中止状态。
作为参考,如上所述通过将它们分类为提交状态或中止状态来管理被分组到一个事务中的第一写数据tran_wdata的操作通常可以被称为用于确保事务的操作。
主系统a20将存储在写缓冲器a22中的第一写数据tran_wdata之中未完全处于提交状态中的第一写数据tran_wdata分类为第三写数据,并且将完全在提交状态中的第一写数据tran_wdata分类为第四写数据。
在上述状态中,当针对写缓冲器a22执行刷新操作时,主系统a20将第三写数据传送到第一从系统slave1,并且将第三写数据存储在第一从系统slave1中包括的非易失性存储器装置中。
此外,当针对写缓冲器a22执行刷新操作时,主系统a20将第四写数据传送到第二从系统slave2,并且将第四写数据存储在第二从系统slave2中包括的非易失性存储器装置中。
例如,在将第一存储器系统a30分类为第一从系统slave1并且将第二存储器系统a40分类为第二从系统slave2的情况下,主系统a20将第三写数据存储在第一非易失性存储器装置a31中,并且将第四写数据存储在第二非易失性存储器装置a41中。
相反,在将第一存储器系统a30分类为第二从系统slave2并且将第二存储器系统a40分类为第一从系统slave1的情况下,主系统a20将第三写数据存储在第二非易失性存储器装置a41中,并且将第四写数据存储在第一非易失性存储器装置a31中。
当将存储在写缓冲器a22中的第一写数据tran_wdata分类为第四写数据时,主系统a20检查对应于该事务的第四写数据的开始数据是否被包括在存储在写缓冲器a22中的第四写数据中。
例如,可以假设分组到第一事务和第二事务中的第一写数据tran_wdata被存储在写缓冲器a22中的状态。在这种状态下,当第一事务被提交时,即,当第一事务的第一写数据tran_wdata被分类为第一事务的第四写数据时,主系统a20检查第一事务的开始数据是否是被存储在写缓冲器a22中。类似地,当第二事务被提交时,即,当第二事务的第一写数据tran_wdata被分类为第二事务的第四写数据时,主系统a20检查第二事务的开始数据是否被存储在写缓冲器a22中。
作为检查开始数据是否被存储的结果,当在第一事务被提交时第一事务的开始数据被存储在写缓冲器a22中时,可以看出这是分组到第一事务中的所有第一写数据tran_wdata作为第四写数据被存储在写缓冲器a22中的状态。
第一事务被提交的事实意味着分组到第一事务中的所有第一写数据tran_wdata已经被完全发送到主系统a20。即,第一事务被提交的事实意味着分组到第一事务中的第一写数据tran_wdata的全部(即,从开始数据到最后数据)已经被完全发送到主系统a20。
因此,从在第四写数据包括第一事务的开始数据的状态中分组到第一事务中的第四写数据被存储在写缓冲器a22中的事实可以看出,存储在写缓冲器a22中的第四写数据是第一事务中的所有数据。
以这种方式,在检查到事务的开始数据被包括在写缓冲器a22中存储的第四写数据中的情况下,当执行针对写缓冲器a22的刷新操作时,主系统a20将存储在写缓冲器a22中的所有第四写数据发送到第二从系统slave2,并且从而将第四写数据存储在第二从系统slave2中包括的非易失性存储器装置中。
作为检查开始数据是否被存储的结果,在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器a22中的情况下,可以看出这不是分组到第二事务中的所有第一写数据tran_wdata作为第四写数据被存储在写缓冲器a22中的状态。
包括第二事务的开始数据在内的一些数据可以被存储在第一从系统slave1中包括的非易失性存储器装置中。
这是因为,如上面针对主系统a20所述,在当针对写缓冲器a22执行刷新操作时未完全处于提交状态中的第一写数据tran_wdata被存储在写缓冲器a22中的情况下,未完全处于提交状态中的第一写数据tran_wdata被发送到第一从系统slave1,并且从而被写入到第一从系统slave1中包括的非易失性存储器装置中。
在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器a22中的情况下,在第二事务被启动之后被提交之前,已针对写缓冲器a22执行了刷新操作。因此,分组到第二事务中的存储在写缓冲器a22中的第一写数据tran_wdata已被写入到第一从系统slave1中包括的非易失性存储器装置中。
因此,在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器a22中的情况下,主系统a20从包括在第一从系统slave1中的非易失性存储器装置中读取第二事务的未被存储在写缓冲器a22中的剩余数据(包括数据组的开始数据),并且将剩余数据写入到第二从系统slave2中包括的非易失性存储器装置中。然后,主系统a20使第一从系统slave1中包括的非易失性存储器装置中的第二事务的剩余数据无效。接着,主系统a20将存储在写缓冲器a22中的第二事务的第四写数据传送到第二从系统slave2,并且从而将它们存储在第二从系统slave2中包括的非易失性存储器装置中。
在发生突然断电(spo)之后进入的恢复操作时期中,主系统a20使存储在第一从系统slave1中包括的非易失性存储器装置中的所有数据无效。
其原因在于,在发生spo的情况下,未完全处于提交状态中的第一写数据tran_wdata可能在被存储在作为易失性存储器装置的写缓冲器a22中时丢失。由于这个事实,因为第一写数据tran_wdata存储在第一从系统slave1中包括的非易失性存储器装置中而在spo发生时未丢失的并且未完全处于提交状态中的第一写数据tran_wdata的事务可能不能被确保。
因此,在发生spo的情况下,为了使未完全处于提交状态中的所有第一写数据tran_wdata无效,主系统a20使存储在第一从系统slave1中包括的非易失性存储器装置中的所有数据无效。以这种方式,在存储在第一从系统slave1中包括的非易失性存储器装置中的所有数据无效之后,主系统a20将关于与数据无效相对应的事务的信息传送到主机a10。
当从主机a10输入写数据wdata时,分别对应于写数据wdata的写命令(未示出)被一起输入,并且相应的写数据wdata的事务信息(未示出)分别被包括在写命令中。
每个写数据wdata的事务信息可以包括事务标识(id)信息、事务提交信息、事务中止信息和事务开始信息。
主系统a20响应于相应的写命令而将写数据wdata存储在写缓冲器a22中。
主系统a20检查包括在写命令中的相应的写数据wdata的事务信息中的事务id信息,并且从而将存储在写缓冲器a22中的写数据wdata分类为被分组到一个事务中的第一写数据tran_wdata或未被分组到事务中的第二写数据nmal_wdata。
详细地,主系统a20检查存储在写缓冲器a22中的相应的写数据wdata的事务信息中的事务id信息,并且从而将其事务id信息被设置为指定值的写数据wdata分类为第一写数据tran_wdata。
另一方面,主系统a20检查存储在写缓冲器a22中的相应的写数据wdata的事务信息中的事务id信息,并且从而将其事务id信息未被设置为指定值的写数据wdata分类为第二写数据nmal_wdata。
例如,主系统a20可以将存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第一值的写数据wdata分类为被分组到第一事务中的第一写数据tran_wdata。
此外,主系统a20可以将存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第二值的写数据wdata分类为被分组到第二事务中的第一写数据tran_wdata。
另一方面,主系统a20可以将存储在写缓冲器a22中的写数据wdata之中的其事务id信息未被设置为任何值的写数据wdata分类为未被分组到事务中的第二写数据nmal_wdata。
作为参考,事务id信息未被设置为任何值的事实可以意味着事务id信息被设置为预定义的初始值或者作为事务id信息无意义的值的情况。
主系统a20可以通过检查预设的提交信息是否包括在存储在写缓冲器a22中的相应的第一写数据tran_wdata的事务信息中来检查提交是否完成。
类似地,主系统a20可以通过检查预设的中止信息是否包括在存储在写缓冲器a22中的相应的第一写数据tran_wdata的事务信息中来检查中止是否完成。
主系统a20可以通过检查预设的开始信息是否包括在存储在写缓冲器a22中的相应的第一写数据tran_wdata的事务信息中来检查事务开始数据是否存储在写缓冲器a22中。
例如,在预设的提交信息被包括在存储在写缓冲器a22中的并且被分组到第一事务中的相应的第一写数据tran_wdata的事务信息中的情况下,被分组到第一事务中的第一写数据tran_wdata可能被视为完全提交。
在这方面,在预设的开始信息被包括在存储在写缓冲器a22中的并且被分组到第一事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以看出被分组到第一事务中的第一写数据tran_wdata被完全提交,并且第一事务的开始数据被存储在写缓冲器a22中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20将存储在写缓冲器a22中的并且被分组到第一事务中的所有第一写数据tran_wdata存储在第二从系统slave2中。
相反,在预设的开始信息未被包括在存储在写缓冲器a22中的并且被分组到第一事务中的第一写数据tran_wdata的事务信息中的情况下,可以看出被分组到第一事务中的第一写数据tran_wdata被完全提交,并且第一事务的开始数据未被存储在写缓冲器a22中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20接收从第一从系统slave1传送的、被分组到第一事务中的第一写数据tran_wdata的剩余数据(包括开始数据),将所接收的数据存储在第二从系统slave2中,然后将存储在写缓冲器a22中的并且被分组到第一事务中的所有第一写数据tran_wdata存储在第二从系统slave2中。
在预设的提交信息和预设的中止信息未被包括在存储在写缓冲器a22中的并且被分组到第二事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以认为被分组到第二事务中的第一写数据tran_wdata未被完全提交且未被中止。也就是说,可以认为并非所有被分组到第二事务中的第一写数据tran_wdata都从主机a10被发送并且处于未提交状态中。
在预设的开始信息被包括在存储在写缓冲器a22中的并且被分组到第二事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以看出被分组到第二事务中的第一写数据tran_wdata未被完全提交,并且第二事务的开始数据被存储在写缓冲器a22中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20将被分组到第二事务中的所有第一写数据tran_wdata存储在第一从系统slave1中。
相反,在预设的开始信息未被包括在存储在写缓冲器a22中的并且被分组到第二事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以看出被分组到第二事务中的第一写数据tran_wdata未被完全提交,并且第二事务的开始数据未被存储在写缓冲器a22中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20将被分组到第二事务中的第一写数据tran_wdata存储在第一从系统slave1中。
在预设的中止信息被包括在存储在写缓冲器a22中的并且被分组到第三事务中的相应的第一写数据tran_wdata的事务信息中的情况下,被分组到第三事务中的第一写数据tran_wdata可以被视为完全中止。因此,当针对写缓冲器a22执行刷新操作时,主系统a20丢弃存储在写缓冲器a22中的并且被分组到第三事务中的第一写数据tran_wdata。
作为参考,被分组到第一事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第一值的状态。此外,被分组到第二事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第二值的状态。此外,被分组到第三事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第三值的状态。
以这种方式,根据被指定给特定值的事务信息的事务id信息,将存储在写缓冲器a22中的相应的第一写数据tran_wdata确定为不同的事务组。
也就是说,多个事务组可以被混合在存储在写缓冲器a22中的第一写数据tran_wdata中,多个事务组之中的某一事务组可以是提交完成状态,某一事务组可以是提交未完成状态,并且某一事务组可以是中止状态。
参见图2a,在上面参考图1描述的数据处理系统的部件之中,示出了主系统a20的详细配置。
首先,主系统a20包括存储要从主机a10访问的数据的存储器装置(即,第三非易失性存储器装置a21)以及控制数据存储到第三非易失性存储器装置a21的主控制器b10。
主控制器b10响应于来自主机a10的请求而控制第三非易失性存储器装置a21。例如,主控制器b10将从第三非易失性存储器装置a21读取的数据提供给主机a10,并且将从主机a10提供的数据存储在第三非易失性存储器装置a21中。为此,主控制器b10控制第三非易失性存储器装置a21的操作,诸如读取、写入、编程和擦除操作。
详细地,主控制器b10包括主机接口单元(主机接口)132、处理器(处理器)134、存储器接口单元(存储器接口)142、存储器144、第一存储器系统接口单元(存储器系统接口1)b20和第二存储器系统接口单元(存储器系统接口2)b30。
主机接口单元132执行交换要在主系统a20和主机a10之间传送的命令和数据的操作,并且可以被配置为通过各种接口协议中的至少一种来与主机a10通信,各种接口协议诸如通用串行总线(usb)、多媒体卡(mmc)、快速外围部件互连(pci-e)、串行连接scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小磁盘接口(esdi)、集成驱动电子装置(ide)和mipi(移动工业处理器接口)。可以通过作为与主机a10交换数据的区域的被称为主机接口层(hil)的固件来驱动主机接口单元32。
存储器接口单元142用作执行主控制器b10和第三非易失性存储器装置a21之间的接口的存储器/存储接口,以允许主控制器b10响应于来自主机a10的请求而控制第三非易失性存储器装置a21。在第三非易失性存储器装置a21是闪存的情况下,特别是在第三非易失性存储器装置a21是nand闪存的情况下,存储器接口单元142在作为nand闪存控制器(nfc)的处理器134的控制下生成用于第三非易失性存储器件a21的控制信号并且处理数据。
存储器接口单元142可以支持处理主控制器b10和第三非易失性存储器装置a21之间的命令和数据的接口(例如nand闪存接口)的操作,特别是主控制器b10和第三非易失性存储器装置a21之间的数据输入/输出,并且存储器接口单元142可以通过作为与第三非易失性存储器装置a21交换数据的区域的被称为闪存接口层(fil)的固件来被驱动。
第一存储器系统接口单元b20用作执行主系统a20和第一存储器系统a30之间的接口的系统接口,以允许主控制器b10控制第一存储器系统a30的操作。第一存储器系统接口单元b20在处理器134的控制下将命令和数据传送到第一存储器系统a30。
第二存储器系统接口单元b30用作执行主系统a20和第二存储器系统a40之间的接口的系统接口,以允许主控制器b10控制第二存储器系统a40的操作。第二存储器系统接口单元b30在处理器134的控制下将命令和数据传送到第二存储器系统a40。
作为主系统a20和主控制器b10的工作存储器的存储器144存储用于驱动主系统a20和主控制器b10的数据。详细地,当主控制器b10响应于来自主机a10的请求而控制第三非易失性存储器装置a21时,例如,当主控制器b10控制第三非易失性存储器装置a21的诸如读取、写入、编程和擦除操作之类的操作时,存储器144临时存储应当被管理的数据。此外,当主控制器b10控制第一从系统slave1或第二从系统slave2的操作时,例如,当主控制器b10控制发送用于第一从系统slave1或第二从系统slave2的命令和数据的操作时,存储器144临时存储应当被管理的数据。
存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。
如图2a中图示,存储器144可以被设置在主控制器b10内部,并且与图2a的图示不同,存储器144可以被设置在主控制器b10的外部。在与图2a的图示不同地将存储器144设置在主控制器b10的外部的情况下,存储器144应该由外部易失性存储器来实现,数据通过单独的存储器接口(未示出)从主控制器b10输入到该外部易失性存储器以及从该外部易失性存储器输出到主控制器b10。
存储器144存储在控制第三非易失性存储器装置a21、第一从系统slave1和第二从系统slave2的操作的过程中应当被管理的数据。对于这样的数据存储,存储器144可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。因此,如上所述用于临时存储从主机a10输入的多个写数据wdata的主系统a20的写缓冲器a22可以被包括在存储器144中,如图2a中所示。
处理器134控制主系统a20的整个操作,并且具体地,响应于来自主机a10的写请求或读请求,控制用于第三非易失性存储器装置a21的编程操作或读操作。处理器134驱动被称为闪存转换层(ftl)的固件,以控制用于第三非易失性存储器装置a21的主系统a20的一般操作。处理器134可以由微处理器或中央处理单元(cpu)来实现。
例如,主控制器b10在第三非易失性存储器装置a21中执行从主机a10请求的操作,即,通过由微处理器或中央处理单元(cpu)实现的处理器134,利用第三非易失性存储器装置a21执行与从主机a10接收的命令相对应的命令操作。主控制器b10可以执行前台操作作为与从主机a10接收的命令相对应的命令操作,例如,与写命令相对应的编程操作、与读命令相对应的读操作、与擦除命令相对应的擦除操作、或与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
主控制器b10可以通过由微处理器或中央处理单元(cpu)实现的处理器134执行针对第三非易失性存储器装置a21的后台操作。针对第三非易失性存储器装置a21的后台操作可以包括将存储在第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>之中的某一存储器块中的数据复制到另一某一存储器块的操作,例如,垃圾收集(gc)操作。针对第三非易失性存储器装置a21的后台操作可以包括在第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>之间交换存储的数据的操作,例如,耗损均衡(wl)操作。针对第三非易失性存储器装置a21的后台操作可以包括将存储在主控制器b10中的映射数据存储在第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>中的操作,例如,映射刷新操作。针对第三非易失性存储器装置a21的后台操作可以包括针对第三非易失性存储器装置a21的坏管理操作,例如,检查和处理被包括在第三非易失性存储器装置a21中的多个存储器块memoryblock<0,1,2,...>之中的坏块的坏块管理操作。
主控制器b10可以通过由微处理器或中央处理单元(cpu)实现的处理器134生成和管理与访问第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>的操作相对应的日志数据。访问第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>的操作包括执行针对第三非易失性存储器装置a21的存储器块memoryblock<0,1,2,...>的前台操作或后台操作。
在主控制器b10的处理器134中,可以包括用于执行第三非易失性存储器装置a21的坏管理的单元(未示出)。用于执行第三非易失性存储器装置a21的坏管理的单元执行检查被包括在第三非易失性存储器装置a21中的多个存储器块memoryblock<0,1,2,...>之中的坏块并且将已检查的坏块处理为坏的坏块管理。坏块管理意味着,在第三非易失性存储器装置a21是闪存(例如,nand闪存)的情况下,由于在写入数据(例如,编程数据)时由于nand闪存的特性可能发生编程故障,已发生编程故障的存储器块被处理为坏的并且编程失败的数据被写入(即,编程)在新的存储器块中。
主控制器b10通过由微处理器或中央处理单元(cpu)实现的处理器134执行发送主系统a20与第一从系统slave1或第二从系统slave2之间要被输入/输出的命令和数据的操作。在主系统a20与第一从系统slave1或第二从系统slave2之间要被输入/输出的命令和数据可以从主机a10被发送到主系统a20,或者可以在主系统a20内部生成。
即使没有供电,主系统a20中的第三非易失性存储器装置a21也可以保留存储的数据。具体地,主系统a20中的第三非易失性存储器装置a21可以通过写操作存储从主机a10提供的写数据wdata,并且可以通过读操作将存储在其中的读数据(未示出)提供给主机a10。
虽然第三非易失性存储器装置a21可以由诸如闪存(例如,nand闪存)的非易失性存储器实现,但是应注意,第三非易失性存储器装置a21可以由以下存储器之中的任何一个存储器实现,诸如相变存储器(pcram:相变随机存取存储器)、电阻式存储器(rram(reram):电阻式随机存取存储器)、铁电存储器(fram:铁电随机存取存储器)和自旋转移力矩磁存储器(stt-ram(stt-mram):自旋转移力矩磁随机存取存储器)。
第三非易失性存储器装置a21包括多个存储器块memoryblock<0,1,2,...>。换句话说,第三非易失性存储器装置a21可以通过写操作将从主机a10提供的写数据wdata存储在存储器块memoryblock<0,1,2,...>中,并且可以通过读操作将存储在存储器块memoryblock<0,1,2,...>中的读数据(未示出)提供给主机a10。
包括在第三非易失性存储器装置a21中的存储器块memoryblock<0,1,2,...>中的每一个包括多个页p<0,1,2,3,4,...>。而且,虽然未在图中详细示出,但是在页p<0,1,2,3,4,...>中的每一个中包括多个存储器单元。
包括在第三非易失性存储器装置a21中的存储器块memoryblock<0,1,2,...>中的每一个可以被分类为单级单元(slc)存储器块或多级单元(mlc)存储器块,这取决于可以包括在其中的一个存储器单元中存储或表达的位数。slc存储器块包括由每个存储1位的存储器单元实现的多个页,并且具有优异的数据计算性能和高耐用性。mlc存储器块包括由每个存储多位数据(例如,2位或更多位)的存储器单元实现的多个页,并且可以比slc存储器块更高度集成,因为它比slc存储器块具有更大的数据存储空间。
具体地,mlc存储器块可以被分类为:包括多个页的mlc存储器块,多个页由每个能够存储2位数据的存储器单元实现;包括多个页的三级单元(tlc)存储器块,多个页由每个能够存储3位数据的存储器单元实现;包括多个页的四级单元(qlc)存储器块,多个页由每个能够存储4位数据的存储器单元实现;或包括多个页的多级单元存储器块,多个页由每个能够存储5位或更多位数据的存储器单元实现。
参见图2b,在上面参考图1描述的数据处理系统的部件之中,示出了第一存储器系统a30的详细配置。
首先,第一存储器系统a30包括存储要从主系统a20访问的数据的存储器装置(即,第一非易失性存储器装置a31)以及控制数据存储到第一非易失性存储器装置a31的第一控制器b40。
第一控制器b40响应于来自主系统a20的请求而控制第一非易失性存储器装置a31。例如,第一控制器b40将从第一非易失性存储器装置a31读取的数据提供给主系统a20,并且将从主系统a20提供的数据存储在第一非易失性存储器装置a31中。为此,第一控制器b40控制第一非易失性存储器装置a31的操作,诸如读取、写入、编程和擦除操作。
详细地,第一控制器b40包括第一主系统接口单元(主系统接口1)b50、处理器(处理器)1342、存储器接口单元(存储器接口)1422和存储器(存储器)1442。
第一主系统接口单元b50执行交换要在第一存储器系统a30和主系统a20之间传送的命令和数据的操作。为此,第一主系统接口单元b50与主系统a20中的第一存储器系统接口单元b20耦合。
存储器接口单元1422用作执行第一控制器b40与第一非易失性存储器装置a31之间的接口的存储器/存储接口,以允许第一控制器b40响应于来自主系统a20的请求而控制第一非易失性存储器装置a31。在第一非易失性存储器装置a31是闪存的情况下,特别是在第一非易失性存储器装置a31是nand闪存的情况下,存储器接口单元1422在作为nand闪存控制器(nfc)的处理器1342的控制下生成用于第一非易失性存储器装置a31的控制信号并且处理数据。
存储器接口单元1422可以支持处理第一控制器b40和第一非易失性存储器装置a31之间的命令和数据的接口(例如nand闪存接口)的操作,特别是第一控制器b40和第一非易失性存储器装置a31之间的数据输入/输出,并且存储器接口单元1422可以通过作为与第一非易失性存储器装置a31交换数据的区域的被称为闪存接口层(fil)的固件来被驱动。
作为第一存储器系统a30和第一控制器b40的工作存储器的存储器1442存储用于驱动第一存储器系统a30和第一控制器b40的数据。详细地,当第一控制器b40响应于来自主系统a20的请求而控制第一非易失性存储器装置a31时,例如,当第一控制器b40控制第一非易失性存储器装置a31的诸如读取、写入、编程和擦除操作之类的操作时,存储器1442临时存储应当被管理的数据。
存储器1442可以由易失性存储器实现。例如,存储器1442可以由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。
如图2b中图示,存储器1442可以被设置在第一控制器b40内部,并且与图2b的图示不同,存储器1442可以被设置在第一控制器b40的外部。在与图2b的图示不同地将存储器1442设置在第一控制器b40外部的情况下,存储器1442应该由外部易失性存储器来实现,数据通过单独的存储器接口(未示出)从第一控制器b40输入到该外部易失性存储器以及从该外部易失性存储器输出到第一控制器b40。
存储器1442存储在控制第一非易失性存储器装置a31的操作的过程中应当被管理的数据。对于这样的数据存储,存储器1442可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。因此,从主系统a20输入的多个写数据wdata可以临时存储在存储器1442中,直到它们被编程到第一非易失性存储器装置a31。
处理器1342控制第一存储器系统a30的整个操作,并且具体地,响应于来自主系统a20的写请求或读请求,控制用于第一非易失性存储器装置a31的编程操作或读操作。处理器1342驱动被称为闪存转换层(ftl)的固件,以控制用于第一非易失性存储器装置a31的第一存储器系统a30的一般操作。处理器1342可以由微处理器或中央处理单元(cpu)实现。
例如,第一控制器b40在第一非易失性存储器装置a31中执行从主系统a20请求的操作,即,通过由微处理器或中央处理单元(cpu)实现的处理器1342,利用第一非易失性存储器装置a31执行与从主系统a20接收的命令相对应的命令操作。第一控制器b40可以执行前台操作作为与从主系统a20接收的命令相对应的命令操作,例如,与写命令相对应的编程操作、与读命令相对应的读操作、与擦除命令相对应的擦除操作、或与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
第一控制器b40可以通过由微处理器或中央处理单元(cpu)实现的处理器1342执行针对第一非易失性存储器装置a31的后台操作。针对第一非易失性存储器装置a31的后台操作可以包括将存储在第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>之中的某一存储器块中的数据复制到另一某一存储器块的操作,例如,垃圾收集(gc)操作。针对第一非易失性存储器装置a31的后台操作可以包括在第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>之间交换存储的数据的操作,例如,耗损均衡(wl)操作。针对第一非易失性存储器装置a31的后台操作可以包括将存储在第一控制器b40中的映射数据存储在第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>中的操作,例如,映射刷新操作。针对第一非易失性存储器装置a31的后台操作可以包括针对第一非易失性存储器装置a31的坏管理操作,例如,检查和处理被包括在第一非易失性存储器装置a31中的多个存储器块memoryblock<0,1,2,...>之中的坏块的坏块管理操作。
第一控制器b40可以通过由微处理器或中央处理单元(cpu)实现的处理器1342生成和管理与访问第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>的操作相对应的日志数据。访问第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>的操作包括执行针对第一非易失性存储器装置a31的存储器块memoryblock<0,1,2,...>的前台操作或后台操作。
在第一控制器b40的处理器1342中,可以包括用于执行第一非易失性存储器装置a31的坏管理的单元(未示出)。用于执行第一非易失性存储器装置a31的坏管理的单元执行检查被包括在第一非易失性存储器装置a31中的多个存储器块memoryblock<0,1,2,...>之中的坏块并且将已检查的坏块处理为坏的坏块管理。坏块管理意味着,在第一非易失性存储器装置a31是闪存(例如,nand闪存)的情况下,由于在写入数据(例如,编程数据)时由于nand闪存的特性可能发生编程故障,已发生编程故障的存储器块被处理为坏的并且编程失败的数据被写入(即,编程)在新的存储器块中。
即使没有供电,第一存储器系统a30中的第一非易失性存储器装置a31也可以保留存储的数据。具体地,第一存储器系统a30中的第一非易失性存储器装置a31可以通过写操作存储从主系统a20提供的写数据wdata,并且可以通过读操作将存储在其中的读数据(未示出)提供给主系统a20。
虽然第一非易失性存储器装置a31可以由诸如闪存(例如,nand闪存)的非易失性存储器实现,但是应注意,第一非易失性存储器装置a31可以由以下存储器之中的任何一个存储器实现,诸如相变存储器(pcram:相变随机存取存储器)、电阻式存储器(rram(reram):电阻式随机存取存储器)、铁电存储器(fram:铁电随机存取存储器)和自旋转移力矩磁存储器(stt-ram(stt-mram):自旋转移力矩磁随机存取存储器)。
第一非易失性存储器装置a31包括多个存储器块memoryblock<0,1,2,...>。换句话说,第一非易失性存储器装置a31可以通过写操作将从主系统a20提供的写数据wdata存储在存储器块memoryblock<0,1,2,...>中,并且可以通过读操作将存储在存储器块memoryblock<0,1,2,...>中的读数据(未示出)提供给主系统a20。
包括在第一非易失性存储器装置a31中的存储器块memoryblock<0,1,2,...>中的每一个包括多个页p<0,1,2,3,4,...>。而且,虽然未在图中详细示出,但是在页p<0,1,2,3,4,...>中的每一个中包括多个存储器单元。
包括在第一非易失性存储器装置a31中的存储器块memoryblock<0,1,2,...>中的每一个可以被分类为单级单元(slc)存储器块或多级单元(mlc)存储器块,这取决于可以在其中包括的一个存储器单元中存储或表达的位数。slc存储器块包括由每个存储1位的存储器单元实现的多个页,并且具有优异的数据计算性能和高耐用性。mlc存储器块包括由每个存储多位数据(例如,2位或更多位)的存储器单元实现的多个页,并且可以比slc存储器块更高度集成,因为它比slc存储器块具有更大的数据存储空间。
具体地,mlc存储器块可以被分类为:包括多个页的mlc存储器块,多个页由每个能够存储2位数据的存储器单元实现;包括多个页的三级单元(tlc)存储器块,多个页由每个能够存储3位数据的存储器单元实现;包括多个页的四级单元(qlc)存储器块,多个页由每个能够存储4位数据的存储器单元实现;或包括多个页的多级单元存储器块,多个页由每个能够存储5位或更多位数据的存储器单元实现。
参见图2c,在上面参考图1描述的数据处理系统的部件之中,示出了第二存储器系统a40的详细配置。
首先,第二存储器系统a40包括存储要从主系统a20访问的数据的存储器装置(即,第二非易失性存储器装置a41)以及控制数据存储到第二非易失性存储器装置a41的第二控制器b60。
第二控制器b60响应于来自主系统a20的请求而控制第二非易失性存储器装置a41。例如,第二控制器b60将从第二非易失性存储器装置a41读取的数据提供给主系统a20,并且将从主系统a20提供的数据存储在第二非易失性存储器装置a41中。为此,第二控制器b60控制第二非易失性存储器装置a41的操作,诸如读取、写入、编程和擦除操作。
详细地,第二控制器b60包括第二主系统接口单元(主系统接口2)b70、处理器(处理器)1343、存储器接口单元(存储器接口)1423和存储器(存储器)1443。
第二主系统接口单元b70执行交换要在第二存储器系统a40和主系统a20之间传送的命令和数据的操作。为此,第二主系统接口单元b70与主系统a20中的第二存储器系统接口单元b30耦合。
存储器接口单元1423用作执行第二控制器b60和第二非易失性存储器装置a41之间的接口的存储器/存储接口,以允许第二控制器b60响应于来自主系统a20的请求而控制第二非易失性存储器装置a41。在第二非易失性存储器装置a41是闪存的情况下,特别是在第二非易失性存储器装置a41是nand闪存的情况下,存储器接口单元1423在作为nand闪存控制器(nfc)的处理器1343的控制下生成用于第二非易失性存储器装置a41的控制信号并且处理数据。
存储器接口单元1423可以支持处理第二控制器b60和第二非易失性存储器装置a41之间的命令和数据的接口(例如nand闪存接口)的操作,特别是第二控制器b60和第二非易失性存储器装置a41之间的数据输入/输出,并且存储器接口单元1423可以通过作为与第二非易失性存储器装置a41交换数据的区域的被称为闪存接口层(fil)的固件来被驱动。
作为第二存储器系统a40和第二控制器b60的工作存储器的存储器1443存储用于驱动第二存储器系统a40和第二控制器b60的数据。详细地,当第二控制器b60响应于来自主系统a20的请求而控制第二非易失性存储器装置a41时,例如,当第二控制器b60控制第二非易失性存储器装置a41的诸如读取、写入、编程和擦除操作之类的操作时,存储器1443临时存储应当被管理的数据。
存储器1443可以由易失性存储器实现。例如,存储器1443可以由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。
如图2c中图示,存储器1443可以被设置在第二控制器b60内部,并且与图2c的图示不同,存储器1443可以被设置在第二控制器b60的外部。在与图2c的图示不同地将存储器1443设置在第二控制器b60外部的情况下,存储器1443应该由外部易失性存储器来实现,数据通过单独的存储器接口(未示出)从第二控制器b60输入到该外部易失性存储器输入以及从该外部易失性存储器输出到第二控制器b60。
存储器1443存储在控制第二非易失性存储器装置a41的操作的过程中应当被管理的数据。对于这样的数据存储,存储器1443可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。因此,从主系统a20输入的多个写数据wdata可以临时存储在存储器1443中,直到它们被编程到第二非易失性存储器装置a41。
处理器1343控制第二存储器系统a40的整个操作,并且具体地,响应于来自主系统a20的写请求或读请求,控制用于第二非易失性存储器装置a41的编程操作或读操作。处理器1343驱动被称为闪存转换层(ftl)的固件,以控制用于第二非易失性存储器装置a41的第二存储器系统a40的一般操作。处理器1343可以由微处理器或中央处理单元(cpu)实现。
例如,第二控制器b60在第二非易失性存储器装置a41中执行从主系统a20请求的操作,即,通过由微处理器或中央处理单元(cpu)实现的处理器1343,利用第二非易失性存储器装置a41执行与从主系统a20接收的命令相对应的命令操作。第二控制器b60可以执行前台操作作为与从主系统a20接收的命令相对应的命令操作,例如,与写命令相对应的编程操作、与读命令相对应的读操作、与擦除命令相对应的擦除操作、或与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
第二控制器b60可以通过由微处理器或中央处理单元(cpu)实现的处理器1343执行针对第二非易失性存储器装置a41的后台操作。针对第二非易失性存储器装置a41的后台操作可以包括将存储在第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>之中的某一存储器块中的数据复制到另一某一存储器块的操作,例如,垃圾收集(gc)操作。针对第二非易失性存储器装置a41的后台操作可以包括在第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>之间交换存储的数据的操作,例如,耗损均衡(wl)操作。针对第二非易失性存储器装置a41的后台操作可以包括将存储在第二控制器b60中的映射数据存储在第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>中的操作,例如,映射刷新操作。针对第二非易失性存储器装置a41的后台操作可以包括针对第二非易失性存储器装置a41的坏管理操作,例如,检查和处理被包括在第二非易失性存储器装置a41中的多个存储器块memoryblock<0,1,2,...>之中的坏块的坏块管理操作。
第二控制器b60可以通过由微处理器或中央处理单元(cpu)实现的处理器1343生成和管理与访问第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>的操作相对应的日志数据。访问第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>的操作包括执行针对第二非易失性存储器装置a41的存储器块memoryblock<0,1,2,...>的前台操作或后台操作。
在第二控制器b60的处理器1343中,可以包括用于执行第二非易失性存储器装置a41的坏管理的单元(未示出)。用于执行第二非易失性存储器装置a41的坏管理的单元执行检查被包括在第二非易失性存储器装置a41中的多个存储器块memoryblock<0,1,2,...>之中的坏块并且将已检查的坏块处理为坏的坏块管理。坏块管理意味着,在第二非易失性存储器装置a41是闪存(例如,nand闪存)的情况下,由于在写入数据(例如,编程数据)时由于nand闪存的特性可能发生编程故障,已发生编程故障的存储器块被处理为坏的并且编程失败的数据被写入(即,编程)在新的存储器块中。
即使没有供电,第二存储器系统a40中的第二非易失性存储器装置a41也可以保留存储的数据。具体地,第二存储器系统a40中的第二非易失性存储器装置a41可以通过写操作存储从主系统a20提供的写数据wdata,并且可以通过读操作将存储在其中的读数据(未示出)提供给主系统a20。
虽然第二非易失性存储器装置a41可以由诸如闪存(例如,nand闪存)的非易失性存储器实现,但是应注意,第二非易失性存储器装置a41可以由以下存储器之中的任何一个存储器实现,诸如相变存储器(pcram:相变随机存取存储器)、电阻式存储器(rram(reram):电阻式随机存取存储器)、铁电存储器(fram:铁电随机存取存储器)和自旋转移力矩磁存储器(stt-ram(stt-mram):自旋转移力矩磁随机存取存储器)。
第二非易失性存储器装置a41包括多个存储器块memoryblock<0,1,2,...>。换句话说,第二非易失性存储器装置a41可以通过写操作将从主系统a20提供的写数据wdata存储在存储器块memoryblock<0,1,2,...>中,并且可以通过读操作将存储在存储器块memoryblock<0,1,2,...>中的读数据(未示出)提供给主系统a20。
包括在第二非易失性存储器装置a41中的存储器块memoryblock<0,1,2,...>中的每一个包括多个页p<0,1,2,3,4,...>。而且,虽然未在图中详细示出,但是在页p<0,1,2,3,4,...>中的每一个中包括多个存储器单元。
包括在第二非易失性存储器装置a41中的存储器块memoryblock<0,1,2,...>中的每一个可以被分类为单级单元(slc)存储器块或多级单元(mlc)存储器块,这取决于可以在其中包括的一个存储器单元中存储或表达的位数。slc存储器块包括由每个存储1位的存储器单元实现的多个页,并且具有优异的数据计算性能和高耐用性。mlc存储器块包括由每个存储多位数据(例如,2位或更多位)的存储器单元实现的多个页,并且可以比slc存储器块更高度集成,因为它比slc存储器块具有更大的数据存储空间。
具体地,mlc存储器块可以被分类为:包括多个页的mlc存储器块,多个页由每个能够存储2位数据的存储器单元实现;包括多个页的三级单元(tlc)存储器块,多个页由每个能够存储3位数据的存储器单元实现;包括多个页的四级单元(qlc)存储器块,多个页由每个能够存储4位数据的存储器单元实现;或包括多个页的多级单元存储器块,多个页由每个能够存储5位或更多位数据的存储器单元实现。
图3a至图3e是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的操作的图。
图3a至图3e是被示出以通过参考根据上面参照图1和图2a至图2c描述的本公开的第一实施例的包括多个存储器系统的数据处理系统的配置来描述本公开的表征操作的图。
首先,在下面将描述的图3a至图3e中,以下将通过将其事务id信息具有第一值的第一写数据tran_wdata(即,被分组到第一事务中的第一写数据tran_wdata)定义为第一事务数据tran_wdata1来进行描述。此外,以下将通过将其事务id信息具有第二值的第一写数据tran_wdata(即,被分组到第二事务中的第一写数据tran_wdata)定义为第二事务数据tran_wdata2来进行描述。此外,以下将通过将其事务id信息具有第三值的第一写数据tran_wdata(即,被分组到第三事务中的第一写数据tran_wdata)定义为第三事务数据tran_wdata3来进行描述。参见图3a至图3e,可以看出在写缓冲器a22中存在其中可以存储总共10个写数据wdata的空间。
另外,在下面将描述的图3a至图3e中,主系统a20将第一存储器系统a30分类为第一从系统slave1,并且将第二存储器系统a40分类为第二从系统slave2。
参见图3a,可以看出,0、1和2作为第一事务数据tran_wdata1,110、111、112和113作为第二事务数据tran_wdata2,并且a、b和c作为第二写数据nmal_wdata被存储在写缓冲器a22中。
首先,主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1和2分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的0、1和2中,主系统a20可以知道它处于事务未完成状态,其中第一事务的提交未完成。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111、112和113分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息被包括在作为第二事务数据tran_wdata2的110、111、112和113中,主系统a20可以知道它处于事务完成状态,其中第二事务的提交完成。
当检查其是否处于第二事务数据tran_wdata2的提交完成的状态时,主系统a20检查第二事务的开始数据是否被包括在存储在写缓冲器a22中的整个第二事务数据tran_wdata2中。可以假设第二事务数据tran_wdata2的开始数据是110。也就是说,主系统a20可以检查到作为开始数据的110被包括在作为存储在写缓冲器a22中的第二事务数据tran_wdata2的110、111、112和113中。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息未被设置的写数据wdata的a、b和c分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器a22中的相应的写数据wdata相对应的事务id信息,主系统a20将写数据wdata分类到第一事务数据tran_wdata1、第二事务数据tran_wdata2和第二写数据nmal_wdata中。
然后,在针对写缓冲器a22执行刷新操作时,主系统a20将事务未完成的第一事务数据tran_wdata1传送到第一从系统slave1,并且从而将第一事务数据tran_wdata1存储在第一从系统slave1中包括的非易失性存储器装置中。换句话说,主系统a20将作为第一事务数据tran_wdata1的0、1和2传送到被选择作为第一从系统slave1的第一存储器系统a30。因此,第一存储器系统a30将作为从主系统a20传送的第一事务数据tran_wdata1的0、1和2存储在其中包括的第一非易失性存储器装置a31中。
主系统a20已经检查到开始数据被包括在事务完成的第二事务数据tran_wdata2中。因此,在针对写缓冲器a22执行刷新操作时,主系统a20将存储在写缓冲器a22中的并且事务完成的所有第二事务数据tran_wdata2传送到第二从系统slave2,并且从而将它们存储在第二从系统slave2中包括的非易失性存储器装置中。即,主系统a20将作为存储在写缓冲器a22中的所有第二事务数据tran_wdata2的110、111、112和113传送到被选择作为第二从系统slave2的第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第二事务数据tran_wdata2的110、111、112和113存储在其中包括的第二非易失性存储器装置a41中。
此外,当针对写缓冲器a22执行刷新操作时,主系统a20将作为未被分组到事务中的第二写数据nmal_wdata的a、b和c存储在其中包括的第三非易失性存储器装置a21中。
参见图3b,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中作为第一事务数据tran_wdata1的0、1和2存储在被选择作为第一从系统slave1的第一存储器系统a30的第一非易失性存储器装置a31中。而且,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中第二事务数据tran_wdata2存储在被选择作为第二从系统slave2的第二存储器系统a40的第二非易失性存储器装置a41中。此外,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中未被分组到事务中的第二写数据nmal_wdata存储在第三非易失性存储器装置a21中。
在这种状态下,可以看出,3、4和5作为第一事务数据tran_wdata1,310、311、312和313作为第三事务数据tran_wdata3,并且d、e和f作为第二写数据nmal_wdata被存储在写缓冲器a22中。
首先,主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的3、4和5分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的3、4和5中,主系统a20可以知道这是事务完成状态,其中第一事务的提交完成。
在检查到这是第一事务数据tran_wdata1的提交完成的状态时,主系统a20检查开始数据是否被包括在存储在写缓冲器a22中的整个第一事务数据tran_wdata1中。以上参考图3a所述,第一事务数据tran_wdata1的开始数据为0。也就是说,主系统a20可以检查到作为开始数据的0未被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的3、4和5中。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第三值的写数据wdata的310、311、312和313分类到第三事务数据tran_wdata3中。通过检查到预设的提交信息被包括在作为第三事务数据tran_wdata3的310、311、312和313中,主系统a20可以知道这是事务完成状态,其中第三事务的提交完成。
在检查到这是第三事务数据tran_wdata3的提交完成的状态时,主系统a20检查开始数据是否被包括在存储在写缓冲器a22中的整个第三事务数据tran_wdata3中。也就是说,第三事务数据tran_wdata3的开始数据是310。此外,主系统a20可以检查到作为开始数据的310被包括在作为存储在写缓冲器a22中的第三事务数据tran_wdata3的310、311、312和313中。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息未被设置的写数据wdata的d、e和f分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器a22中的相应的写数据wdata相对应的事务id信息,主系统a20将写数据wdata分类到第一事务数据tran_wdata1、第三事务数据tran_wdata3和第二写数据nmal_wdata中。
主系统a20已经检查到开始数据未被包括在存储在写缓冲器a22中的第一事务数据tran_wdata1中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20接收从第一从系统slave1传送的第一事务数据tran_wdata1的剩余数据(包括开始数据0),将接收的数据存储在第二从系统slave2中,然后将存储在写缓冲器a22中的所有第一事务数据tran_wdata1存储在第二从系统slave2中。
详细地,主系统a20向被选择作为第一从系统slave1的第一存储器系统a30请求第一事务数据tran_wdata1的剩余数据(包括开始数据0)。因此,第一存储器系统a30从第一非易失性存储器装置a31读取作为第一事务数据tran_wdata1的剩余数据的0、1和2,并且将剩余数据传送到主系统a20。在读取作为第一事务数据tran_wdata1的剩余数据的0、1和2并且将剩余数据传送到主系统a20之后,第一存储器系统a30使作为第一非易失性存储器装置a31中的第一事务数据tran_wdata1的剩余数据的0、1和2无效。
接着,主系统a20将作为从第一存储器系统a30传送的第一事务数据tran_wdata1的剩余数据的0、1和2传送到被选择作为第二从系统slave2的第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第一事务数据tran_wdata1的剩余数据的0、1和2存储在其中包括的第二非易失性存储器装置a41中。
然后,主系统a20将作为存储在写缓冲器a22中的所有第一事务数据tran_wdata1的3、4和5传送到第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第一事务数据tran_wdata1的3、4和5存储在其中包括的第二非易失性存储器装置a41中。
因此,作为所有第一事务数据tran_wdata1的0、1、2、3、4和5可以被存储在第二非易失性存储器装置a41中。
主系统a20已经检查到开始数据被包括在事务完成的第三事务数据tran_wdata3中。因此,在针对写缓冲器a22执行刷新操作时,主系统a20将存储在写缓冲器a22中的并且事务完成的所有第三事务数据tran_wdata3传送到第二从系统slave2,并且从而将所有第三事务数据tran_wdata3存储在第二从系统slave2中包括的非易失性存储器装置中。即,主系统a20将作为存储在写缓冲器a22中的所有第三事务数据tran_wdata3的310、311、312和313传送到被选择作为第二从系统slave2的第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第三事务数据tran_wdata3的310、311、312和313存储在其中包括的第二非易失性存储器装置a41中。
此外,在针对写缓冲器a22执行刷新操作时,主系统a20将作为未被分组到事务中的第二写数据nmal_wdata的d、e和f存储在其中包括的第三非易失性存储器装置a21中。
参见图3c,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中作为第一事务数据tran_wdata1的0、1和2存储在被选择作为第一从系统slave1的第一存储器系统a30的第一非易失性存储器装置a31中。而且,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中第二事务数据tran_wdata2存储在被选择作为第二从系统slave2的第二存储器系统a40的第二非易失性存储器装置a41中。此外,作为上面参考图3a描述的针对写缓冲器a22的刷新操作的结果,这是这样的状态,其中未被分组到事务中的第二写数据nmal_wdata存储在第三非易失性存储器装置a21中。
在这种状态下,如果在数据处理系统中发生突然断电(spo)之后再次供电,则主系统a20进入用于恢复操作的突然断电恢复(spor)时期。
在spor时期中,主系统a20通过第一从系统slave1使存储在第一从系统slave1中包括的非易失性存储器装置中的所有数据无效。接着,主系统a20将关于与存储在第一从系统slave1中的无效数据相对应的事务的信息传送到主机a10。
详细地,在spor时期中,主系统a20向被选择作为第一从系统slave1的第一存储器系统a30请求数据无效。由于这个事实,第一存储器系统a30使存储在其中包括的第一非易失性存储器装置a31中的所有数据(即,作为第一事务数据tran_wdata1的剩余数据的0、1和2)无效。以这样的方式,在通过第一存储器系统a30使存储在第一非易失性存储器装置a31中的第一事务数据tran_wdata1的剩余数据被无效之后,主系统a20将第一事务没有被确保的信息传送给主机a10。
参见图3d,可以看出作为第一事务数据tran_wdata1的0、1、2、3、4和5以及作为第二事务数据tran_wdata2的110、111、112和113被存储在写缓冲器a22中。
首先,主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1、2、3、4和5分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的0、1、2、3、4和5中,主系统a20可以知道这是事务完成状态,其中第一事务的提交完成。
在检查到这是第一事务数据tran_wdata1的提交完成的状态时,主系统a20检查开始数据是否被包括在存储在写缓冲器a22中的整个第一事务数据tran_wdata1中。可以假设第一事务数据tran_wdata1的开始数据是0。也就是说,主系统a20可以检查到作为开始数据的0被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的0、1、2、3、4和5中。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111、112和113分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息被包括在作为第二事务数据tran_wdata2的110、111、112和113中,主系统a20可以知道这是事务完成状态,其中第二事务的提交完成。
在检查到这是第二事务数据tran_wdata2的提交完成的状态时,主系统a20检查开始数据是否被包括在存储在写缓冲器a22中的整个第二事务数据tran_wdata2中。可以假设第二事务数据tran_wdata2的开始数据是110。也就是说,主系统a20可以检查到作为开始数据的110被包括在作为存储在写缓冲器a22中的第二事务数据tran_wdata2的110、111、112和113中。
以这种方式,通过检查与存储在写缓冲器a22中的相应的写数据wdata相对应的事务id信息,主系统a20将写数据wdata分类到第一事务数据tran_wdata1和第二事务数据tran_wdata2中。
主系统a20已经检查到开始数据被包括在事务完成的第一事务数据tran_wdata1中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20将存储在写缓冲器a22中的并且事务完成的所有第一事务数据tran_wdata1传送到第二从系统slave2,并且从而将它们存储在第二从系统slave2中包括的非易失性存储器装置中。即,主系统a20将作为存储在写缓冲器a22中的所有第一事务数据tran_wdata1的0、1、2、3、4和5传送到被选择作为第二从系统slave2的第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第一事务数据tran_wdata1的0、1、2、3、4和5存储在其中包括的第二非易失性存储器装置a41中。
主系统a20已检查到开始数据被包括在事务完成的第二事务数据tran_wdata2中。因此,当针对写缓冲器a22执行刷新操作时,主系统a20将存储在写缓冲器a22中的并且事务完成的所有第二事务数据tran_wdata2传送到第二从系统slave2,并且从而将它们存储在第二从系统slave2中包括的非易失性存储器装置中。即,主系统a20将作为存储在写缓冲器a22中的所有第二事务数据tran_wdata2的110、111、112和113传送到被选择作为第二从系统slave2的第二存储器系统a40。因此,第二存储器系统a40将作为从主系统a20传送的第二事务数据tran_wdata2的110、111、112和113存储在其中包括的第二非易失性存储器装置a41中。
第二非易失性存储器装置a41包括多个存储器块memoryblock<0,1,2,...>。
被选择作为第二从系统slave2的第二存储器系统a40同时接收从主系统a20传送的第一事务数据tran_wdata1和第二事务数据tran_wdata2。
第二存储器系统a40将作为第一事务数据tran_wdata1的0、1、2、3、4和5存储在其中包括的第二非易失性存储器装置a41的第零存储器块block0中。
第二存储器系统a40将作为第二事务数据tran_wdata2的110、111、112和113存储在其中包括的第二非易失性存储器装置a41的第一存储器块block1中。
参见图3e,可以看出作为第一事务数据tran_wdata1的0、1、2、3和4、作为第二事务数据tran_wdata2的110、111和112、以及作为第二写数据nmal_wdata的a和b被存储在写缓冲器a22中。
首先,主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1、2、3和4分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器a22中的第一事务数据tran_wdata1的0、1、2、3和4中,主系统a20可以知道这是事务未完成状态,其中第一事务的提交未完成。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111和112分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器a22中的第二事务数据tran_wdata2的110、111和112中,主系统a20可以知道这是事务未完成状态,其中第二事务的提交未完成。
主系统a20将作为存储在写缓冲器a22中的写数据wdata之中的其事务id信息没有被设置的写数据wdata的a和b分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器a22中的相应的写数据wdata相对应的事务id信息,主系统a20将写数据wdata分类到第一事务数据tran_wdata1、第二事务数据tran_wdata2和第二写数据nmal_wdata中。
然后,当针对写缓冲器a22执行刷新操作时,主系统a20将事务未完成的第一事务数据tran_wdata1传送到第一从系统slave1,并且从而将第一事务数据tran_wdata1存储在第一从系统slave1中包括的非易失性存储器装置中。换句话说,主系统a20将作为第一事务数据tran_wdata1的0、1、2、3和4传送到被选择作为第一从系统slave1的第一存储器系统a30。因此,第一存储器系统a30将作为从主系统a20传送的第一事务数据tran_wdata1的0、1、2、3和4存储在其中包括的第一非易失性存储器装置a31中。
此外,当针对写缓冲器a22执行刷新操作时,主系统a20将事务未完成的第二事务数据tran_wdata2传送到第一从系统slave1,并且从而将第二事务数据tran_wdata2存储在第一从系统slave1中包括的非易失性存储器装置中。换句话说,主系统a20将作为第二事务数据tran_wdata2的110、111和112传送到被选择作为第一从系统slave1的第一存储器系统a30。因此,第一存储器系统a30将作为从主系统a20传送的第二事务数据tran_wdata2的110、111和112存储在其中包括的第一非易失性存储器装置a31中。
此外,当针对写缓冲器a22执行刷新操作时,主系统a20将作为未被分组到事务中的第二写数据nmal_wdata的a和b存储在其中包括的第三非易失性存储器装置a21中。
第一非易失性存储器装置a31包括多个存储器块memoryblock<0,1,2,...>。
被选择作为第一从系统slave1的第一存储器系统a30同时接收从主系统a20传送的第一事务数据tran_wdata1和第二事务数据tran_wdata2。
第一存储器系统a30将作为第一事务数据tran_wdata1的0、1、2、3和4存储在其中包括的第一非易失性存储器装置a31的第零存储器块block0中。
第一存储器系统a30将作为第二事务数据tran_wdata2的110、111和112存储在其中包括的第一非易失性存储器装置a31的第一存储器块block1中。
图4是根据本公开的第一实施例的包括多个存储器系统的数据处理系统的操作的流程图。
参见图4,主系统a20从主机a10在写缓冲器a22中接收写数据wdata(s10)。
主系统a20检查在步骤s10处在写缓冲器a22中接收的写数据wdata是否是被分组到事务中的数据(s20)。
作为步骤s20的结果,在写数据wdata未被分组到事务中(否)的情况下,写数据wdata被存储在主系统a20中包括的非易失性存储器装置中(s40)。
作为步骤s20的结果,在写数据wdata被分组到事务中(是)的情况下,则检查事务是否被提交(s30)。
作为步骤s30的结果,在写数据wdata的事务未被提交(否)的情况下,写数据wdata被存储在第一从系统slave1中包括的非易失性存储器装置中(s50)。
作为步骤s30的结果,在写数据wdata的事务被提交(是)的情况下,则检查提交的事务的开始数据是否被包括在写缓冲器a22中(s60)。
作为步骤s60的结果,在提交的事务的开始数据被包括在写缓冲器a22中(是)的情况下,存储在写缓冲器a22中的并且其事务被提交的写数据wdata被存储在第二从系统slave2中包括的非易失性存储器装置中(s70)。
作为步骤s60的结果,在提交的事务的开始数据未被包括在写缓冲器a22中(否)的情况下,其事务被提交的写数据wdata的剩余数据(包括开始数据)从第一从系统slave1中包括的非易失性存储器装置中被接收,并且被存储在第二从系统slave2中包括的非易失性存储器装置中(s80)。
在步骤s80之后,在第一从系统slave1中包括的非易失性存储器装置中使其事务被提交的写数据wdata的剩余数据无效(s90)。
在步骤s90之后,存储在写缓冲器a22中的并且其事务被提交的写数据wdata被存储在第二从系统slave2中包括的非易失性存储器装置中(s70)。
从以上描述显而易见的是,在根据本公开的第一实施例的技术中,根据所接收的数据是否被分组到事务中以及事务数据是否被提交,可以通过在多个存储器系统上适当地进行分配来存储从主机接收的数据。
通过这样,可以简化用于确保事务数据的算法。此外,可以在spor(突然断电恢复)操作中容易地区分事务数据的有效/无效状态。
<第二实施例>
图5和图6是根据本公开的第二实施例的包括多个存储器系统的数据处理系统的图。
参见图5,根据本公开的第二实施例的数据处理系统包括主机c10和存储器系统c20。存储器系统c20包括控制器c30、第一非易失性存储器装置c40、第二非易失性存储器装置c50和第三非易失性存储器装置c60。
主机c10将与用户请求相对应的多个命令发送到存储器系统c20,并且因此存储器系统c20执行与命令相对应的操作,即,与用户请求相对应的操作。
存储器系统c20响应于主机c10的请求而操作,具体地,存储要由主机c10访问的数据。换句话说,存储器系统c20可以被用作主机c10的主存储器装置或辅助存储器装置。存储器系统c20可以被实现为各种类型的存储装置中的任何一种,这取决于与主机c10耦合的主机接口协议。例如,存储器系统c20可以被实现为各种类型的存储装置中的任何一种,诸如固态驱动器(ssd)、mmc、emmc(嵌入式mmc)、rs-mmc(缩小尺寸mmc)和微型mmc形式的多媒体卡、sd、迷你sd和微型sd形式的安全数字卡、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡、记忆棒等。
此外,存储器系统c20可以被集成到一个半导体装置中并且构成存储器卡。例如,存储器系统c20可以构成存储器卡,诸如个人计算机存储器卡国际协会(pcmcia)卡、紧凑型闪存(cf)卡、sm和smc形式的智能媒体卡、记忆棒、mmc、rs-mmc和微型mmc形式的多媒体卡、sd、迷你sd、微型sd和sdhc形式的安全数字卡、和通用闪存(ufs)装置。
对于另一个实例,存储器系统c20可以构成计算机、超移动pc(umpc)、工作站、网络书、个人数字助理(pda)、便携式计算机、网络平板电脑、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航装置、黑匣子、数字相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、构成数据中心的存储器、能够在无线环境下发送和接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、rfid(射频识别)装置、或构成计算系统的各种组成元件之一。
存储器系统c20可以包括存储装置,诸如易失性存储器装置,诸如动态随机存取存储器(dram)和静态随机存取存储器(sram),或者非易失性存储器装置,诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁ram(mram)、电阻式ram(rram)和闪存。
控制器c30包括写缓冲器c31,用于临时存储从主机c10输入的多个写数据wdata。
控制器c30可以根据预定基准而将第一非易失性存储器装置c40、第二非易失性存储器装置c50和第三非易失性存储器装置c60之中的任何一个分类为主装置,并且将剩余的两个中的任何一个分类为第一辅助装置并且将另一个分类为第二辅助装置。
详细地,在第一非易失性存储器装置c40、第二非易失性存储器装置c50和第三非易失性存储器装置c60全部都能够或不能被重写的情况下,控制器c30执行第一比较操作,比较第一非易失性存储器装置c40的总大小、第二非易失性存储器装置c50的总大小和第三非易失性存储器装置c60的总大小。
作为这种第一比较操作的结果,具有最大大小的存储器装置被分类为主装置,具有最小大小的存储器装置被分类为第一辅助装置,并且具有中等大小的存储器装置被分类为第二辅助装置。
例如,在第三非易失性存储器装置c60的总大小最大并且第一非易失性存储器装置c40的总大小小于第二非易失性存储器装置c50的总大小的情况下,第三非易失性存储器装置c60被分类为主装置,第一非易失性存储器装置c40被分类为第一辅助装置,并且第二非易失性存储器装置c50被分类为第二辅助装置。
作为第一比较操作的结果,在第一非易失性存储器装置c40的总大小、第二非易失性存储器装置c50的总大小和第三非易失性存储器装置c60的总大小全都相同的情况下,控制器c30执行第二比较操作,比较第一非易失性存储器装置c40的总大小中的空的空间的大小、第二非易失性存储器装置c50的总大小中的空的空间的大小和第三非易失性存储器装置c60的总大小中的空的空间的大小。
作为这种第二比较操作的结果,具有最大空的空间大小的存储器装置被分类为主装置,具有最小空的空间大小的存储器装置被分类为第一辅助装置,并且具有中等空的空间大小的存储器装置被分类为第二辅助装置。
例如,在第一非易失性存储器装置c40的空的空间的大小最大并且第二非易失性存储器装置c50的空的空间的大小大于第三非易失性存储器装置c60的空的空间的大小的情况下,第一非易失性存储器装置c40被分类为主装置,第三非易失性存储器装置c60被分类为第一辅助装置,并且第二非易失性存储器装置c50被分类为第二辅助装置。
在第一非易失性存储器装置c40、第二非易失性存储器装置c50和第三非易失性存储器装置c60之中的任何一个存储器装置能够被重写并且剩余的两个存储器装置不能被重写的情况下,控制器c30将能够被重写的任何一个存储器装置分类为第一辅助装置,将不能被重写的剩余两个存储器装置中的具有较大总大小的任何一个存储器装置分类为主装置,并且将具有较小总大小的另一个存储器装置分类为第二辅助装置。在这方面,在不能被重写的剩余两个存储器装置的总大小彼此相同的情况下,剩余两个存储器装置中的具有较大空的空间大小的任何一个被分类为主装置,并且具有较小空的空间大小的另一个被分类为第二辅助装置。
例如,在第一非易失性存储器装置c40是能够被重写的存储器装置、第二非易失性存储器装置c50和第三非易失性存储器装置c60是不能被重写的存储器装置、并且第三非易失性存储器装置c60的总大小大于第二非易失性存储器装置c50的总大小的情况下,第一非易失性存储器装置c40被分类为第一辅助装置,在第二非易失性存储器装置c50和第三非易失性存储器装置c60之间具有较大总大小的第三非易失性存储器装置c60被分类为主装置,并且具有较小总大小的第二非易失性存储器装置c50被分类为第二辅助装置。
作为另一示例,在第一非易失性存储器装置c40是能够被重写的存储器装置、第二非易失性存储器装置c50和第三非易失性存储器装置c60是不能被重写的存储器装置、第三非易失性存储器装置c60的总大小和第二非易失性存储器装置c50的总大小彼此相同、并且第二非易失性存储器装置c50的空的空间的大小大于第三非易失性存储器装置c60的空的空间的大小的情况下,第一非易失性存储器装置c40被分类为第一辅助装置,在第二非易失性存储器装置c50和第三非易失性存储器装置c60之间具有较小空的空间大小的第三非易失性存储器装置c60被分类为第二辅助装置,并且具有较大空的空间大小的第二非易失性存储装置c50被分类为主装置。
在第一非易失性存储器装置c40、第二非易失性存储器装置c50和第三非易失性存储器装置c60中的任何一个存储器装置不能被重写并且剩余两个存储器装置能够被重写的情况下,控制器c30将不能被重写的任何一个存储器装置分类为主装置,将能够被重写的剩余两个存储装置中的具有较小总大小的任何一个存储器装置分类为第一辅助装置,并将具有较大总大小的另一存储器装置分类为第二辅助装置。在这方面,在能够被重写的剩余两个存储器装置的总大小彼此相同的情况下,剩余两个存储器装置中的具有较小空的空间大小的任何一个被分类为第一辅助装置,并且具有较大空的空间大小的另一个被分类为第二辅助装置。
例如,在第一非易失性存储器装置c40是不能被重写的存储器装置、第二非易失性存储器装置c50和第三非易失性存储器装置c60是能够被重写的存储器装置、并且第三非易失性存储器装置c60的总大小大于第二非易失性存储器装置c50的总大小的情况下,第一非易失性存储器装置c40被分类为主装置,在第二非易失性存储器装置c50和第三非易失性存储器装置c60之间具有较大总大小的第三非易失性存储器装置c60被分类为第二辅助装置,并且具有较小总大小的第二非易失性存储器装置c50被分类为第一辅助装置。
作为另一示例,在第一非易失性存储器装置c40是不能被重写的存储器装置、第二非易失性存储器装置c50和第三非易失性存储器装置c60是能够被重写的存储器装置、第三非易失性存储器装置c60的总大小和第二非易失性存储器装置c50的总大小彼此相同、并且第二非易失性存储器装置c50的空的空间的大小大于第三非易失性存储器装置c60的空的空间的大小的情况下,第一非易失性存储器装置c40被分类为主装置,在第二非易失性存储器装置c50和第三非易失性存储器装置c60之间具有较小空的空间大小的第三非易失性存储器装置c60被分类为第一辅助装置,并且具有较大空的空间大小的第二非易失性存储装置c50被分类为第二辅助装置。
根据分析写数据wdata的特性的结果,控制器c30将存储在写缓冲器c31中的写数据wdata分配到主装置、第一辅助装置和第二辅助装置中。
详细地,控制器c30将存储在写缓冲器c31中的写数据wdata分类为被分组到事务中的第一写数据tran_wdata和未被分组到事务中的第二写数据nmal_wdata。
当针对写缓冲器c31执行刷新操作时,控制器c30将未被分组到事务中的第二写数据nmal_wdata存储在主装置中。
此外,控制器c30在第一辅助装置和第二辅助装置中分配第一写数据tran_wdata。
写数据wdata被分组到事务中的事实意味着在写数据wdata之中用于相同用途的多个写数据wdata被分组到一个事务中。
例如,在数据库中,用于已存储数据的校正、添加和更新的数据可以根据相应的用途被分组到相应的事务中。在这方面,可以将用于校正数据库的数据设置为被分组到一个事务组中,并且可以将用于添加数据库的数据设置为被分组到另一个事务组中。
因此,当分组到一个事务中的写数据tran_wdata从主机c10被发送到控制器c30时,仅存在提交状态或中止状态,在提交状态中所有写数据tran_wdata被正常发送和存储并且因此是有效的,在中止状态中任何一个写数据tran_wdata未被正常发送和存储,或者所有写数据tran_wdata根据主机c10的中止请求都成为无效。也就是说,分组到一个事务中的写数据tran_wdata仅在它们处于提交状态时才有意义,因为所有写数据tran_wdata都被正常发送和存储,并且因此全部有效。
例如,当所有第一写数据tran_wdata被正常地从主机c10发送到控制器c30并且完全存储在控制器c30中并且没有来自主机c10的中止请求时,可以确定被分组到一个事务中的第一写数据tran_wdata处于提交状态。如果任何一条第一写数据tran_wdata没有被正常发送和存储,或者从主机c10接收到中止请求,则确定所有第一写数据tran_wdata处于中止状态。
作为参考,如上所述通过将第一写数据tran_wdata分类为提交状态或中止状态来管理被分组到一个事务中的第一写数据tran_wdata的操作通常可以被称为用于确保事务的操作。
控制器c30将存储在写缓冲器c31中的第一写数据tran_wdata之中未完全提交的第一写数据tran_wdata分类为第三写数据,并且将完全提交的第一写数据tran_wdata分类为第四写数据。
在该状态中,控制器c30将第三写数据存储在第一辅助装置中。此外,控制器c30将第四写数据存储在第二辅助装置中。
例如,在第一非易失性存储器装置c40被分类为第一辅助装置、第二非易失性存储器装置c50被分类为第二辅助装置并且第三非易失性存储器装置c60被分类为主装置的情况下,控制器c30将第二写数据nmal_wdata存储在第三非易失性存储器装置c60中,将第三写数据存储在第一非易失性存储器装置c40中,并且将第四写数据存储在第二非易失性存储器装置c50中。
作为另一示例,在第一非易失性存储器装置c40被分类为第二辅助装置、第二非易失性存储器装置c50被分类为第一辅助装置并且第三非易失性存储器装置c60被分类为主装置的情况下,控制器c30将第二写数据nmal_wdata存储在第三非易失性存储器装置c60中,将第三写数据存储在第二非易失性存储器装置c50中,并且将第四写数据存储在第一非易失性存储器装置c40中。
当将存储在写缓冲器c31中的第一写数据tran_wdata分类为第四写数据时,控制器c30检查对应于该事务的第四写数据的开始数据是否被包括在存储在写缓冲器c31中的第四写数据中。
例如,可以假设分组到第一事务和第二事务中的第一写数据tran_wdata被存储在写缓冲器c31中的状态。在这种状态下,在第一事务被提交时,即,在第一事务的第一写数据tran_wdata被分类为第一事务的第四写数据时,控制器c30检查第一事务的开始数据是否被存储在写缓冲器c31中。类似地,在第二事务被提交时,即,在第二事务的第一写数据tran_wdata被分类为第二事务的第四写数据时,控制器c30检查第二事务的开始数据是否被存储在写缓冲器c31中。
作为检查开始数据是否被存储的结果,在当第一事务被提交时第一事务的开始数据被存储在写缓冲器c31中的情况下,可以看出这是分组到第一事务中的所有第一写数据tran_wdata作为第四写数据被存储在写缓冲器c31中的状态。
第一事务被提交的事实意味着分组到第一事务中的所有第一写数据tran_wdata已被发送到控制器c30。即,第一事务被提交的事实意味着已经将分组到第一事务中的第一写数据tran_wdata的全部(即,从开始数据到最后数据)已被发送到控制器c30。
因此,从在第四写数据包括第一事务的开始数据的状态中分组到第一事务中的第四写数据被存储在写缓冲器c31中的事实可以看出,存储在写缓冲器c31中的第四写数据是针对第一事务的所有数据。
以这种方式,在检查到第一事务的开始数据被包括在写缓冲器c31中存储的第四写数据中的情况下,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的所有第四写数据存储在第二辅助装置中。
作为检查开始数据是否被存储的结果,在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器c31中的情况下,可以看出这不是分组到第二事务中的所有第一写数据tran_wdata作为第四写数据被存储在写缓冲器c31中的状态。
包括第二事务的开始数据在内的一些数据可以被存储在第一辅助装置中。
这是因为,如上面针对控制器c30所描述,在当针对写缓冲器c31执行刷新操作时未完全提交的第一写数据tran_wdata被存储在写缓冲器c31中的情况下,未完全提交的第一写数据tran_wdata被写入在第一辅助装置中。
以这样的方式,在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器c31中的情况下,意味着在第二事务被启动之后被提交之前,先前已针对写缓冲器c31执行了刷新操作,并且因此分组到第二事务中的第一写数据tran_wdata开始被发送到写缓冲器c31,并且因此由于先前刷新操作,针对第二事务的数据组的一部分(包括开始数据)已被写入第一辅助装置中。
因此,在当第二事务被提交时第二事务的开始数据未被存储在写缓冲器c31中的情况下,控制器c30从第一辅助装置中读取第二事务的未存储在写缓冲器c31中的剩余数据(包括数据组的开始数据),并且将剩余数据写入到第二辅助装置中。接着,控制器c30使第一辅助装置中的第二事务的剩余数据无效。然后,控制器c30将存储在写缓冲器c31中的第二事务的第四写数据存储在第二辅助装置中。
在发生突然断电(spo)之后进入的恢复操作时期中,控制器c30使存储在第一辅助装置中的所有数据无效。
其原因在于,在发生spo的情况下,未完全提交的第一写数据tran_wdata可能在被存储在作为易失性存储器装置的写缓冲器c31中时丢失,并且由于这一事实,因为它们存储在第一辅助装置中而在spo发生时未丢失的并且未完全提交第一写数据tran_wdata的事务可能不能被确保。
因此,在发生spo的情况下,为了使未完全提交的所有第一写数据tran_wdata无效,控制器c30使存储在第一辅助装置中的所有数据无效。以这种方式,在存储在第一辅助装置中的所有数据无效之后,控制器c30将关于与数据无效相对应的事务的信息传送到主机c10。
当从主机c10输入写数据wdata时,分别对应于写数据wdata的写命令(未示出)被一起输入,并且相应的写数据wdata的事务信息(未示出)分别被包括在写命令中。
每个写数据wdata的事务信息可以包括事务标识(id)信息、事务提交信息、事务中止信息和事务开始信息。
控制器c30响应于相应的写命令而将写数据wdata存储在写缓冲器c31中。
控制器c30检查包括在写命令中的相应的写数据wdata的事务信息中的事务id信息,并且从而将存储在写缓冲器c31中的写数据wdata分类为未被分组到事务中的第二写数据nmal_wdata或第一写数据tran_wdata。
详细地,控制器c30检查存储在写缓冲器c31中的相应的写数据wdata的事务信息中的事务id信息,并且从而将其事务id信息被设置为指定值的写数据wdata分类为第一写数据tran_wdata。
另一方面,控制器c30检查存储在写缓冲器c31中的相应的写数据wdata的事务信息中的事务id信息,并且从而将其事务id信息未被设置的写数据wdata分类为第二写数据nmal_wdata。
例如,控制器c30可以将存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第一值的写数据wdata分类为被分组到第一事务中的第一写数据tran_wdata。
此外,控制器c30可以将存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第二值的写数据wdata分类为被分组到第二事务中的第一写数据tran_wdata。
另一方面,控制器c30可以将存储在写缓冲器c31中的写数据wdata之中的其事务id信息未被设置为任何值的写数据wdata分类为未被分组到事务中的第二写数据nmal_wdata。
作为参考,事务id信息未被设置为任何值的事实可以意味着事务id信息被设置为预定义的初始值或者作为事务id信息无意义的值的情况。
控制器c30可以通过检查预设的提交信息是否包括在存储在写缓冲器c31中的相应的第一写数据tran_wdata的事务信息中来检查提交是否完成。
类似地,控制器c30可以通过检查预设的中止信息是否包括在存储在写缓冲器c31中的相应的第一写数据tran_wdata的事务信息中来检查中止是否完成。
控制器c30可以通过检查预设的开始信息是否包括在存储在写缓冲器c31中的相应的第一写数据tran_wdata的事务信息中来检查事务开始数据是否存储在写缓冲器c31中。
例如,在预设的提交信息被包括在存储在写缓冲器c31中的并且被分组到第一事务中的相应的第一写数据tran_wdata的事务信息中的情况下,被分组到第一事务中的第一写数据tran_wdata可能被视为完全提交。
在这方面,在预设的开始信息被包括在存储在写缓冲器c31中的并且被分组到第一事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以看出,被分组到第一事务中的第一写数据tran_wdata被完全提交,并且第一事务的开始数据被存储在写缓冲器c31中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且被分组到第一事务中的所有第一写数据tran_wdata存储在第二辅助装置中。
相反,在预设的开始信息未被包括在存储在写缓冲器c31中的并且被分组到第一事务中的第一写数据tran_wdata的事务信息中的情况下,可以看出,被分组到第一事务中的第一写数据tran_wdata被完全提交,并且第一事务的开始数据未被存储在写缓冲器c31中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30接收从第一辅助装置传送的、被分组到第一事务中的第一写数据tran_wdata的剩余数据(包括开始数据),将所接收的数据存储在第二辅助装置中,然后将存储在写缓冲器c31中的并且被分组到第一事务中的所有第一写数据tran_wdata存储在第二辅助装置中。
在预设的提交信息和预设的中止信息未被包括在存储在写缓冲器c31中的并且被分组到第二事务中的相应的第一写数据tran_wdata的事务信息中的情况下,可以认为被分组到第二事务中的第一写数据tran_wdata未被完全提交并且未被中止。也就是说,可以认为并非所有被分组到第二事务中的第一写数据tran_wdata都从主机c10被发送。
在预设的开始信息被包括在存储在写缓冲器c31中的并且被分组到第二事务中的第一写数据tran_wdata的事务信息中的情况下,可以看出,被分组到第二事务中的第一写数据tran_wdata未被完全提交,并且第二事务的开始数据被存储在写缓冲器c31中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将被分组到第二事务中的第一写数据tran_wdata存储在第一辅助装置中。
相反,在预设的开始信息未被包括在存储在写缓冲器c31中的并且被分组到第二事务中的第一写数据tran_wdata的事务信息中的情况下,可以看出,被分组到第二事务中的第一写数据tran_wdata未被完全提交,并且第二事务的开始数据未被存储在写缓冲器c31中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将被分组到第二事务中的第一写数据tran_wdata存储在第一辅助装置中。
在预设的中止信息包括在存储在写缓冲器c31中的并且被分组为第三事务中的相应的第一写数据tran_wdata的事务信息中的情况下,当执行针对写缓冲器c31的刷新操作时,控制器c30丢弃存储在写缓冲器c31中的并且被分组到第三事务中的第一写数据tran_wdata。
作为参考,被分组到第一事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第一值的状态。此外,被分组到第二事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第二值的状态。此外,被分组到第三事务中的每个第一写数据tran_wdata可以处于其事务信息的事务id信息具有第三值的状态。
以这种方式,根据被指定为值的事务信息的事务id信息,将存储在写缓冲器c31中的相应的第一写数据tran_wdata确定为不同的事务组。
也就是说,多个事务组可以被混合在存储在写缓冲器c31中的第一写数据tran_wdata中,多个事务组之中的某一事务组可以是提交完成状态,某一事务组可以是提交未完成状态,并且某一事务组可以是中止状态。
参见图6,在上面参考图5描述的数据处理系统的部件之中,示出了存储器系统c20的详细配置。
首先,包括在存储器系统c20中的控制器c30响应于来自主机c10的请求而控制第一至第三非易失性存储器装置c40、c50和c60。例如,控制器c30将从第一至第三非易失性存储器装置c40、c50和c60读取的数据提供给主机c10,并且将从主机c10提供的数据存储在第一至第三非易失性存储器装置c40、c50和c60中。为此,控制器c30控制第一至第三非易失性存储器装置c40、c50和c60的操作,诸如读取、写入、编程和擦除操作。
详细地,包括在存储器系统c20中的控制器c30包括主机接口单元(主机接口)132、处理器(处理器)134、存储器144、第一存储器接口单元(存储器接口1)d10、第二存储器接口单元(存储器接口2)d20和第三存储器接口单元(存储器接口3)d30。
主机接口单元132执行交换要在存储器系统c20和主机c10之间传送的命令和数据的操作,并且可以被配置为通过各种接口协议中的至少一种来与主机c10通信,各种借口协议诸如通用串行总线(usb)、多媒体卡(mmc)、快速外围部件互连(pci-e)、串行连接scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小磁盘接口(esdi)、集成驱动电子装置(ide)和mipi(移动工业处理器接口)。可以通过作为与主机c10交换数据的区域的被称为主机接口层(hil)的固件来驱动主机接口单元32。
第一至第三存储器接口单元d10、d20和d30用作执行控制器c30与第一至第三非易失性存储器装置c40、c50和c60之间的接口的存储器/存储接口,以允许控制器c30响应于来自主机c10的请求而控制相应的第一至第三非易失性存储器装置c40、c50和c60。在第一至第三非易失性存储器装置c40、c50和c60中的每一个是闪存的情况下,特别是在第一至第三非易失性存储器装置c40、c50和c60中的每一个是nand闪存的情况下,第一至第三存储器接口单元d10、d20和d30中的每一个在作为nand闪存控制器(nfc)的处理器134的控制下生成用于第一至第三非易失性存储器装置c40、c50和c60中的每一个的控制信号并且处理数据。
第一至第三存储器接口单元d10、d20和d30中的每一个可以支持处理控制器c30与第一至第三非易失性存储器装置c40、c50和c60中的每一个之间的命令和数据的接口(例如nand闪存接口)的操作,特别是控制器c30与第一至第三非易失性存储器装置c40、c50和c60中的每一个之间的数据输入/输出,并且可以通过作为与第一至第三非易失性存储器装置c40、c50和c60中的每一个交换数据的区域的被称为闪存接口层(fil)的固件来被驱动。
作为存储器系统c20和控制器c30的工作存储器的存储器144存储用于驱动存储器系统c20和控制器c30的数据。详细地,当控制器c30响应于来自主机c10的请求而控制第一至第三非易失性存储器装置c40、c50和c60时,例如,当控制器c30控制第一至第三非易失性存储器装置c40、c50和c60的诸如读取、写入、编程和擦除操作之类的操作时,存储器144临时存储应当被管理的数据。
存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。
如图6中图示,存储器144可以被设置在控制器c30内部,并且与图6的图示不同,存储器144可以被设置在控制器c30的外部。在与图6的图示不同地将存储器144设置在控制器c30外部的情况下,存储器144应该由外部易失性存储器实现,数据通过单独的存储器接口(未示出)从控制器c30输入到该外部易失性存储器以及从该外部易失性存储器输出到控制器c30。
存储器144存储在控制第一至第三非易失性存储器装置c40、c50和c60的操作的过程中应当被管理的数据。对于这样的数据存储,存储器144可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。因此,如上所述,用于临时存储从主机c10输入的多个写数据wdata的写缓冲器c31可以被包括在存储器144中,如图6中所示。
处理器134控制控制器c30的整个操作,并且具体地,响应于来自主机c10的写请求或读取请求,控制用于第一至第三非易失性存储器装置c40、c50和c60的编程操作或读取操作。处理器134驱动被称为闪存转换层(ftl)的固件,以控制用于第一至第三非易失性存储器装置c40、c50和c60的控制器c30的一般操作。处理器134可以由微处理器或中央处理单元(cpu)来实现。
例如,控制器c30在第一至第三非易失性存储器装置c40、c50和c60中执行从主机c10请求的操作,即,通过由微处理器或中央处理单元(cpu)实现的处理器134,利用第一至第三非易失性存储器装置c40、c50和c60执行与从主机c10接收的命令相对应的命令操作。控制器c30可以执行前台操作作为与从主机c10接收的命令相对应的命令操作,例如,与写命令相对应的编程操作、与读命令相对应的读操作、与擦除命令相对应的擦除操作、或与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
控制器c30可以通过由微处理器或中央处理单元(cpu)实现的处理器134执行针对第一至第三非易失性存储器装置c40、c50和c60的后台操作。针对第一至第三非易失性存储器装置c40、c50和c60的后台操作可以包括将存储在第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>之中的某一存储器块中的数据复制到另一某一存储器块的操作,例如,垃圾收集(gc)操作。针对第一至第三非易失性存储器装置c40、c50和c60的后台操作可以包括在第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>之间交换存储的数据的操作,例如,耗损均衡(wl)操作。针对第一至第三非易失性存储器装置c40、c50和c60的后台操作可以包括将存储在控制器c30中的映射数据存储在第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>中的操作,例如,映射刷新操作。针对第一至第三非易失性存储器装置c40、c50和c60的后台操作可以包括针对第一至第三非易失性存储器装置c40、c50和c60的坏管理操作,例如,检查和处理被包括在第一至第三非易失性存储器装置c40、c50和c60中的每一个中的多个存储器块memoryblock<0,1,2,...>之中的坏块的坏块管理操作。
控制器c30可以通过由微处理器或中央处理单元(cpu)实现的处理器134生成和管理与访问第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>的操作相对应的日志数据。访问第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>的操作包括执行针对第一至第三非易失性存储器装置c40、c50和c60中的每一个的存储器块memoryblock<0,1,2,...>的前台操作或后台操作。
在控制器c30的处理器134中,可以包括用于执行第一至第三非易失性存储器装置c40、c50和c60的坏管理的单元(未示出)。用于执行第一至第三非易失性存储器装置c40、c50和c60的坏管理的单元执行检查被包括在第一至第三非易失性存储器装置c40、c50和c60中的每一个中的多个存储器块memoryblock<0,1,2,...>之中的坏块并且将已检查的坏块处理为坏的坏块管理。坏块管理意味着,在第一至第三非易失性存储器装置c40、c50和c60中的每一个是闪存(例如nand闪存)的情况下,由于在写入数据(例如,编程数据)时由于nand闪存的特性可能发生编程故障,已发生编程故障的存储器块被处理为坏的并且编程失败的数据被写入(即,编程)在新的存储器块中。
控制器c30通过由微处理器或中央处理单元(cpu)实现的处理器134执行发送在控制器c30与第一至第三非易失性存储器装置c40、c50和c60之间要被输入/输出的命令和数据的操作。在控制器c30与第一至第三非易失性存储器装置c40、c50和c60之间要被输入/输出的命令和数据可以从主机c10被发送到控制器c30,或者可以在控制器c30内部生成。
即使没有供电,第一至第三非易失性存储器装置c40、c50和c60中的每一个也可以保留存储的数据。具体地,第一至第三非易失性存储器装置c40、c50和c60中的每一个可以通过写操作存储从主机c10提供的写数据wdata,并且可以通过读操作将存储在其中的读数据(未示出)提供给主机c10。
虽然第一至第三非易失性存储器装置c40、c50和c60中的每一个可以由诸如闪存(例如,nand闪存)之类的非易失性存储器来实现,但是应当注意,第一至第三非易失性存储器装置c40、c50和c60中的每一个可以由以下存储器之中的任何一个存储器实现,诸如相变存储器(pcram:相变随机存取存储器)、电阻式存储器(rram(reram):电阻式随机存取存储器)、铁电存储器(fram:铁电随机存取存储器)和自旋转移力矩磁存储器(stt-ram(stt-mram):自旋转移力矩磁随机存取存储器)。
第一至第三非易失性存储器装置c40、c50和c60中的每一个包括多个存储器块memoryblock<0,1,2,...>。换句话说,第一至第三非易失性存储器装置c40、c50和c60中的每一个可以通过写操作将从主机c10提供的写数据wdata存储在存储器块memoryblock<0,1,2,...>中,并且可以通过读操作将存储在存储器块memoryblock<0,1,2,...>中的读数据(未示出)提供给主机c10。
包括在第一至第三非易失性存储器装置c40、c50和c60中的每一个中的存储器块memoryblock<0,1,2,...>中的每一个包括多个页p<0,1,2,3,4,...>。而且,虽然未在图中详细示出,但是在页p<0,1,2,3,4,...>中的每一个中包括多个存储器单元。
包括在第一至第三非易失性存储器装置c40、c50和c60中的每一个中的存储器块memoryblock<0,1,2,...>中的每一个可以被分类为单级单元(slc)存储器块或多级单元(mlc)存储器块,这取决于可以在其中包括的一个存储器单元中存储或表达的位数。slc存储器块包括由每个存储1位的存储器单元实现的多个页,并且具有优异的数据计算性能和高耐用性。mlc存储器块包括由每个存储多位数据(例如,2位或更多位)的存储器单元实现的多个页,并且可以比slc存储器块更高度集成,因为它比slc存储器块具有更大的数据存储空间。
具体地,mlc存储器块可以被分类为:包括多个页的mlc存储器块,多个页由每个能够存储2位数据的存储器单元实现;包括多个页的三级单元(tlc)存储器块,多个页由每个能够存储3位数据的存储器单元实现;包括多个页的四级单元(qlc)存储器块,多个页由每个能够存储4位数据的存储器单元实现;或包括多个页的多级单元存储器块,多个页由每个能够存储5位或更多位数据的存储器单元实现。
图7a至图7e是根据本公开的第二实施例的包括多个存储器系统的数据处理系统的操作的图。
图7a至7e是通过参考根据上面参照图5和图6描述的本公开的第二实施例的包括多个存储器系统的数据处理系统的配置来示出本公开的表征操作的图。
首先,在下面将描述的图7a至图7e中,以下将通过将其事务id信息具有第一值的第一写数据tran_wdata(即,被分组到第一事务中的第一写数据tran_wdata)定义为第一事务数据tran_wdata1来进行描述。此外,以下将通过将其事务id信息具有第二值的第一写数据tran_wdata(即,被分组到第二事务中的第一写数据tran_wdata)定义为第二事务数据tran_wdata2来进行描述。此外,以下将通过将其事务id信息具有第三值的第一写数据tran_wdata(即,被分组到第三事务中的第一写数据tran_wdata)定义为第三事务数据tran_wdata3来进行描述。参见图7a至图7e,可以看出,在写缓冲器c31中存在其中可以存储总共10个写数据wdata的空间。
此外,在下面将描述的图7a至图7e中,控制器c30将第一非易失性存储器装置c40分类为第二辅助装置,将第二非易失性存储器装置c50分类为第一辅助装置,并且将第三非易失性存储器装置c60分类为主装置。
参见图7a,可以看出,作为第一事务数据tran_wdata1的0、1和2、作为第二事务数据tran_wdata2的110、111、112和113、以及作为第二写数据nmal_wdata的a、b和c被存储在写缓冲器中c31中。
首先,控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1和2分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的0、1和2中,控制器c30可以知道这是事务未完成状态,其中第一事务的提交未完成。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111、112和113分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息被包括在作为第二事务数据tran_wdata2的110、111、112和113中,控制器c30可以知道这是事务完成状态,其中第二事务的提交完成。
当检查到这是第二事务数据tran_wdata2的提交完成的状态时,控制器c30检查开始数据是否被包括在存储在写缓冲器c31中的整个第二事务数据tran_wdata2中。可以假设第二事务数据tran_wdata2的开始数据是110。也就是说,控制器c30可以检查到作为开始数据的110被包括在作为存储在写缓冲器c31中的第二事务数据tran_wdata2的110、111、112和113中。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息未被设置的写数据wdata的a、b和c分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器c31中的相应的写数据wdata相对应的事务id信息,控制器c30将写数据wdata分类到第一事务数据tran_wdata1、第二事务数据tran_wdata2和第二写数据nmal_wdata中。
然后,当针对写缓冲器c31执行刷新操作时,控制器c30将事务未完成的第一事务数据tran_wdata1存储在第一辅助装置中。换句话说,控制器c30将作为第一事务数据tran_wdata1的0、1和2传送到被选择作为第一辅助装置的第二非易失性存储器装置c50。因此,第二非易失性存储器装置c50将作为从控制器c30传送的第一事务数据tran_wdata1的0、1和2存储在其中。
控制器c30已经检查到开始数据被包括在事务完成的第二事务数据tran_wdata2中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且事务完成的所有第二事务数据tran_wdata2存储在第二辅助装置中。即,控制器c30将作为存储在写缓冲器c31中的所有第二事务数据tran_wdata2的110、111、112和113传送到被选择作为第二辅助装置的第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第二事务数据tran_wdata2的110、111、112和113存储在其中。
当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且未被分组到事务中的所有第二写数据nmal_wdata存储在主装置中。即,控制器c30将存储在写缓冲器c31中的所有第二写数据nmal_wdata传送到被选择作为主装置的第三非易失性存储器装置c60。因此,第三非易失性存储器装置c60将作为从控制器c30传送的第二写数据nmal_wdata的a、b和c存储在其中。
参见图7b,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中作为第一事务数据tran_wdata1的0、1和2被存储在被选择作为第一辅助装置的第二非易失性存储器装置c50中。而且,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中第二事务数据tran_wdata2被存储在被选择作为第二辅助装置的第一非易失性存储器装置c40中。此外,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中未被分组到事务中的第二写数据nmal_wdata被存储在被选择作为主装置的第三非易失性存储器装置c60中。
在这种状态下,可以看出,作为第一事务数据tran_wdata1的3、4和5、作为第三事务数据tran_wdata3的310、311、312和313、以及作为第二写数据nmal_wdata的d、e和f被存储在写缓冲器c31中。
首先,控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的3、4和5分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的3、4和5中,控制器c30可以知道这是事务完成状态,其中第一事务的提交完成。
当检查到这是第一事务数据tran_wdata1的提交完成的状态时,控制器c30检查开始数据是否被包括在存储在写缓冲器c31中的整个第一事务数据tran_wdata1中。可以假设第一事务数据tran_wdata1的开始数据是0,以上参考图7a所述。也就是说,控制器c30可以检查到作为开始数据的0未被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的3、4和5中。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第三值的写数据wdata的310、311、312和313分类到第三事务数据tran_wdata3中。通过检查到预设的提交信息被包括在作为第三事务数据tran_wdata3的310、311、312和313中,控制器c30可以知道这是事务完成状态,其中第三事务的提交完成。
当检查到这是第三事务数据tran_wdata3的提交完成的状态时,控制器c30检查开始数据是否被包括在存储在写缓冲器c31中的整个第三事务数据tran_wdata3中。可以假设第三事务数据tran_wdata3的开始数据是310。即,控制器c30可以检查到作为开始数据的310被包括在作为存储在写缓冲器c31中的第三事务数据tran_wdata3的310、311、312和313中。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息未被设置的写数据wdata的d、e和f分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器c31中的相应的写数据wdata相对应的事务id信息,控制器c30将写数据wdata分类到第一事务数据tran_wdata1、第三事务数据tran_wdata3和第二写数据nmal_wdata中。
控制器c30已经检查到开始数据未被包括在存储在写缓冲器c31中的第一事务数据tran_wdata1中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30接收从第一辅助装置传送的第一事务数据tran_wdata1的剩余数据(包括开始数据0),将接收的数据存储在第二辅助装置中,然后将存储在写缓冲器c31中的所有第一事务数据tran_wdata1存储在第二辅助装置中。
详细地,控制器c30向被选择作为第一辅助装置的第二非易失性存储器装置c50请求第一事务数据tran_wdata1的剩余数据(包括开始数据0)。因此,第二非易失性存储器装置c50在其中读取作为第一事务数据tran_wdata1的剩余数据的0、1和2,并且将它们传送到控制器c30。在读取作为第一事务数据tran_wdata1的剩余数据的0、1和2并且将它们传送到控制器c30之后,第二非易失性存储器装置c50使它们无效。
接着,控制器c30将作为从第二非易失性存储器装置c50传送的第一事务数据tran_wdata1的剩余数据的0、1和2传送到被选择作为第二辅助装置的第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第一事务数据tran_wdata1的剩余数据的0、1和2存储在其中。
然后,控制器c30将作为存储在写缓冲器c31中的所有第一事务数据tran_wdata1的3、4和5传送到第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第一事务数据tran_wdata1的3、4和5存储在其中。
因此,作为所有第一事务数据tran_wdata1的0、1、2、3、4和5可以被存储在第一非易失性存储器装置c40中。
控制器c30已检查到开始数据被包括在事务完成的第三事务数据tran_wdata3中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且事务完成的所有第三事务数据tran_wdata3存储在第二辅助装置中。即,控制器c30将作为存储在写缓冲器c31中的所有第三事务数据tran_wdata3的310、311、312和313传送到被选择作为第二辅助装置的第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第三事务数据tran_wdata3的310、311、312和313存储在其中。
当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且未被分组到事务中的所有第二写数据nmal_wdata存储在主装置中。即,控制器c30将存储在写缓冲器c31中的所有第二写数据nmal_wdata传送到被选择作为主装置的第三非易失性存储器装置c60。因此,第三非易失性存储器装置c60将作为从控制器c30传送的第二写数据nmal_wdata的d、e和f存储在其中。
参见图7c,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中作为第一事务数据tran_wdata1的0、1和2被存储在被选择作为第一辅助装置的第二非易失性存储器装置c50中。而且,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中第二事务数据tran_wdata2被存储在被选择作为第二辅助装置的第一非易失性存储器装置c40中。此外,作为上面参考图7a描述的针对写缓冲器c31的刷新操作的结果,这是这样的状态,其中未被分组到事务中的第二写数据nmal_wdata被存储在被选择作为主装置的第三非易失性存储器装置c60中。
在这种状态下,如果在数据处理系统中发生突然断电(spo)之后再次供电,则控制器c30进入用于恢复操作的突然断电恢复(spor)时期。
在spor时期中,控制器c30使存储在第一辅助装置中的所有数据无效。接下来,控制器c30将关于与存储在第一辅助装置中的无效数据相对应的事务的信息传送到主机c10。
详细地,在spor时期中,控制器c30向被选择作为第一辅助装置的第二非易失性存储器装置c50请求数据无效。由于这个事实,第二非易失性存储器装置c50使存储在其中的所有数据(即,作为第一事务数据tran_wdata1的剩余数据的0、1和2)无效。以这种方式,在存储在第二非易失性存储器装置c50中的第一事务数据tran_wdata1的剩余数据被无效之后,控制器c30将第一事务没有被确保的信息传送到主机c10。
参见图7d,可以看出,作为第一事务数据tran_wdata1的0、1、2、3、4和5以及作为第二事务数据tran_wdata2的110、111、112和113被存储在写缓冲器c31中。
首先,控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1、2、3、4和5分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的0、1、2、3、4和5中,控制器c30可以知道这是事务完成状态,其中第一事务的提交完成。
当检查到这是第一事务数据tran_wdata1的提交完成的状态时,控制器c30检查开始数据是否被包括在存储在写缓冲器c31中的整个第一事务数据tran_wdata1中。可以假设第一事务数据tran_wdata1的开始数据是0。也就是说,控制器c30可以检查到作为开始数据的0被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的0、1、2、3、4和5中。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111、112和113分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息被包括在作为第二事务数据tran_wdata2的110、111、112和113中,控制器c30可以知道这是事务完成状态,其中第二事务的提交完成。
当检查到这是第二事务数据tran_wdata2的提交完成的状态时,控制器c30检查开始数据是否被包括在存储在写缓冲器c31中的整个第二事务数据tran_wdata2中。可以假设第二事务数据tran_wdata2的开始数据是110。也就是说,控制器c30可以检查到作为开始数据的110被包括在作为存储在写缓冲器c31中的第二事务数据tran_wdata2的110、111、112和113中。
以这种方式,通过检查与存储在写缓冲器c31中的相应的写数据wdata相对应的事务id信息,控制器c30将写数据wdata分类到第一事务数据tran_wdata1和第二事务数据tran_wdata2中。
控制器c30已经检查到开始数据被包括在事务完成的第一事务数据tran_wdata1中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且事务完成的所有第一事务数据tran_wdata1存储在第二辅助装置中。即,控制器c30将作为存储在写缓冲器c31中的所有第一事务数据tran_wdata1的0、1、2、3、4和5传送到被选择作为第二辅助装置的第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第一事务数据tran_wdata1的0、1、2、3、4和5存储在其中。
控制器c30已检查到开始数据被包括在事务完成的第二事务数据tran_wdata2中。因此,当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且事务完成的所有第二事务数据tran_wdata2传送到第二辅助装置,并且从而将它们存储在第二辅助装置中。即,控制器c30将作为存储在写缓冲器c31中的所有第二事务数据tran_wdata2的110、111、112和113传送到被选择作为第二辅助装置的第一非易失性存储器装置c40。因此,第一非易失性存储器装置c40将作为从控制器c30传送的第二事务数据tran_wdata2的110、111、112和113存储在其中。
第一非易失性存储器装置c40包括多个存储器块memoryblock<0,1,2,...>。
被选择作为第二辅助装置的第一非易失性存储器装置c40同时接收从控制器c30传送的第一事务数据tran_wdata1和第二事务数据tran_wdata2。
第一非易失性存储器装置c40将作为第一事务数据tran_wdata1的0、1、2、3、4和5存储在其中包括的第零存储器块block0中。
第一非易失性存储器装置c40将作为第二事务数据tran_wdata2的110、111、112和113存储在其中包括的第一存储器块block1中。
参见图7e,可以看出,作为第一事务数据tran_wdata1的0、1、2、3和4、作为第二事务数据tran_wdata2的110、111和112、以及作为第二写数据nmal_wdata的a和b被存储在写缓冲器c31中。
首先,控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第一值的写数据wdata的0、1、2、3和4分类到第一事务数据tran_wdata1中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器c31中的第一事务数据tran_wdata1的0、1、2、3和4中,控制器c30可以知道这是事务未完成状态,其中第一事务的提交未完成。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息具有第二值的写数据wdata的110、111和112分类到第二事务数据tran_wdata2中。通过检查到预设的提交信息和预设的中止信息未被包括在作为存储在写缓冲器c31中的第二事务数据tran_wdata2的110、111和112中,控制器c30可以知道这是事务未完成状态,其中第二事务的提交未完成。
控制器c30将作为存储在写缓冲器c31中的写数据wdata之中的其事务id信息未被设置的写数据wdata的a和b分类到第二写数据nmal_wdata中。
以这样的方式,通过检查与存储在写缓冲器c31中的相应的写数据wdata相对应的事务id信息,控制器c30将写数据wdata分类到第一事务数据tran_wdata1、第二事务数据tran_wdata2和第二写数据nmal_wdata中。
然后,当针对写缓冲器c31执行刷新操作时,控制器c30将事务未完成的第一事务数据tran_wdata1存储在第一辅助装置中。换句话说,控制器c30将作为第一事务数据tran_wdata1的0、1、2、3和4传送到被选择作为第一辅助装置的第二非易失性存储器装置c50。因此,第二非易失性存储器装置c50将作为从控制器c30传送的第一事务数据tran_wdata1的0、1、2、3和4存储在其中。
当针对写缓冲器c31执行刷新操作时,控制器c30将事务未完成的第二事务数据tran_wdata2存储在第一辅助装置中。换句话说,控制器c30将作为第二事务数据tran_wdata2的110、111和112传送到被选择作为第一辅助装置的第二非易失性存储器装置c50。因此,第二非易失性存储器装置c50将作为从控制器c30传送的第二事务数据tran_wdata2的110、111和112存储在其中。
当针对写缓冲器c31执行刷新操作时,控制器c30将存储在写缓冲器c31中的并且未被分组到事务中的所有第二写数据nmal_wdata存储在主装置中。即,控制器c30将存储在写缓冲器c31中的所有第二写数据nmal_wdata传送到被选择作为主装置的第三非易失性存储器装置c60。因此,第三非易失性存储器装置c60将作为从控制器c30传送的第二写数据nmal_wdata的a和b存储在其中。
第二非易失性存储器装置c50包括多个存储器块memoryblock<0,1,2,...>。
被选择作为第一辅助装置的第二非易失性存储器装置c50同时接收从控制器c30传送的第一事务数据tran_wdata1和第二事务数据tran_wdata2。
第二非易失性存储器装置c50将作为第一事务数据tran_wdata1的0、1、2、3和4存储在其中包括的第零存储器块block0中。
第二非易失性存储器装置c50将作为第二事务数据tran_wdata2的110、111和112存储在其中包括的第一存储器块block1中。
图8是根据本公开的第二实施例的包括多个存储器系统的数据处理系统的操作的流程图。
参见图8,控制器c30从主机c10在写缓冲器c31中接收写数据wdata(l10)。
控制器c30检查在步骤l10处在写缓冲器c31中接收的写数据wdata是否是被分组到事务中的数据(l20)。
作为步骤l20的结果,在写数据wdata未被分组到事务中(否)的情况下,写数据wdata被存储在主装置中(l40)。
作为步骤l20的结果,在写数据wdata被分组到事务中(是)的情况下,检查事务是否被提交(l30)。
作为步骤l30的结果,在写数据wdata的事务未被提交(否)的情况下,写数据wdata被存储在第一辅助装置中(l50)。
作为步骤l30的结果,在写数据wdata的事务被提交(是)的情况下,检查提交的事务的开始数据是否被包括在写缓冲器c31中(l60)。
作为步骤l60的结果,在提交的事务的开始数据被包括在写缓冲器c31中(是)的情况下,存储在写缓冲器c31中的并且其事务被提交的写数据wdata被存储在第二辅助装置中(l70)。
作为步骤l60的结果,在提交的事务的开始数据未被包括在写缓冲器c31中(否)的情况下,其事务被提交的写数据wdata的剩余数据(包括开始数据)从第一辅助装置中被接收并且被存储在第二辅助装置中(l80)。
在步骤l80之后,在第一辅助装置中使其事务被提交的写数据wdata的剩余数据无效(l90)。
在步骤l90之后,存储在写缓冲器c31中的并且其事务被提交的写数据wdata被存储在第二辅助装置中(l70)。
从以上描述显而易见的是,在根据本公开的第二实施例的技术中,根据接收到的数据是否被分组到事务中以及事务数据是否被提交,可以通过适当地在多个非易失性存储器装置上进行分配来存储从主机接收的数据。
通过这样,可以简化用于确保事务数据的算法。此外,可以在spor(突然断电恢复)操作中容易地区分事务数据的有效/无效状态。
尽管出于说明性目的已经描述了各种实施例,但是对于本领域技术人员来说显而易见的是,在不脱离所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
技术特征:
1.一种数据处理系统,包括:
第一存储器系统,包括第一非易失性存储器装置;
第二存储器系统,包括第二非易失性存储器装置;以及
主系统,包括第三非易失性存储器装置,并且被配置为根据预定基准而将所述第一存储器系统和所述第二存储器系统中的任何一个分类为第一从系统并且将另一个分类为第二从系统,
其中所述主系统直接耦合到主机,并且包括用于临时存储从所述主机输入的多个写数据的写缓冲器,以及
其中根据分析存储在所述写缓冲器中的所述写数据的特性的结果,所述主系统将所述写数据存储在所述第三非易失性存储器装置中,或者通过将所述写数据分配到所述第一从系统和所述第二从系统来将所述写数据存储在所述第一非易失性存储器装置或所述第二非易失性存储器装置中。
2.根据权利要求1所述的数据处理系统,其中所述主系统
将存储在所述写缓冲器中的所述写数据分类为被分组到事务中的第一写数据和未被分组到事务中的第二写数据,
将所述第二写数据存储在所述第三非易失性存储器装置中,以及
通过将所述第一写数据分配到所述第一从系统和所述第二从系统,将所述第一写数据存储在所述第一非易失性存储器装置或所述第二非易失性存储器装置中。
3.根据权利要求2所述的数据处理系统,其中所述主系统
将存储在所述写缓冲器中的所述第一写数据之中未完全提交的第一写数据分类到第三写数据中,
将存储在所述写缓冲器中的所述第一写数据之中完全提交的第一写数据分类到第四写数据中,
通过将所述第三写数据传送到所述第一从系统,将所述第三写数据存储在所述第一从系统中包括的非易失性存储器装置中,以及
通过将所述第四写数据传送到所述第二从系统,将所述第四写数据存储在所述第二从系统中包括的非易失性存储器装置中。
4.根据权利要求3所述的数据处理系统,其中所述主系统
在所述第一非易失性存储器装置和所述第二非易失性存储器装置都能够被重写或不能被重写的情况下,执行比较所述第一非易失性存储器装置的总大小和所述第二非易失性存储器装置的总大小的第一比较操作,
作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小较小的情况下,将所述第一存储器系统分类为所述第一从系统并且将所述第二存储器系统分类为所述第二从系统,以及
作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小较大的情况下,将所述第二存储器系统分类为所述第一从系统并且将所述第一存储器系统分类为所述第二从系统。
5.根据权利要求4所述的数据处理系统,其中所述主系统
作为所述第一比较操作的结果,在所述第一非易失性存储器装置的总大小和所述第二非易失性存储器装置的总大小相同的情况下,执行比较所述第一非易失性存储器装置中的空的空间的大小和所述第二非易失性存储器装置中的空的空间的大小的第二比较操作,
作为所述第二比较操作的结果,在所述第一非易失性存储器装置中的空的空间的大小较小的情况下,将所述第一存储器系统分类为所述第一从系统并且将所述第二存储器系统分类为所述第二从系统,以及
作为所述第二比较操作的结果,在所述第一非易失性存储器装置中的空的空间的大小较大的情况下,将所述第二存储器系统分类为所述第一从系统并且将所述第一存储器系统分类为所述第二从系统。
6.根据权利要求3所述的数据处理系统,其中所述主系统
在所述第一非易失性存储器装置和所述第二非易失性存储器装置中的任何一个非易失性存储器装置能够被重写而另一个非易失性存储器装置不能被重写的情况下,将能够被重写的非易失性存储器装置分类为所述第一从系统并且将不能被重写的另一个非易失性存储器装置分类为所述第二从系统。
7.根据权利要求3所述的数据处理系统,其中在将所述第一写数据分类到所述第四写数据中时,在第一事务的开始数据被包括在存储在所述写缓冲器中的所述第一事务的第四写数据中的情况下,所述主系统通过将存储在所述写缓冲器中的所述第一事务的所述第四写数据传送到所述第二从系统来将存储在所述写缓冲器中的所述第一事务的所述第四写数据存储在所述第二从系统中包括的所述非易失性存储器装置中。
8.根据权利要求7所述的数据处理系统,其中当将所述第一写数据分类到所述第四写数据中时,在针对第二事务的数据组的开始数据未被包括在存储在所述写缓冲器中的所述第二事务的第四写数据中的情况下,所述主系统
通过所述第一从系统从包括在所述第一从系统中的所述非易失性存储器装置读取未被存储在所述写缓冲器中的所述第二事务的剩余数据,通过将所述剩余数据传送到所述第二从系统来将所述剩余数据存储在所述第二从系统中包括的所述非易失性存储器装置中,并且通过所述第一从系统使所述第一从系统中包括的所述非易失性存储器装置中的所述第二事务的所述剩余数据无效,以及
通过将所述第二事务的所述第四写数据传送到所述第二从系统,将存储在所述写缓冲器中的所述第二事务的所述第四写数据存储在所述第二从系统中包括的所述非易失性存储器装置中。
9.根据权利要求3所述的数据处理系统,其中在突然断电(spo)发生之后进入的恢复操作时期中,所述主系统通过所述第一从系统使存储在所述第一从系统中包括的所述非易失性存储器装置中的所有数据无效,并且将关于与所无效的数据相对应的事务的信息传送到所述主机。
10.根据权利要求3所述的数据处理系统,
其中所述第一非易失性存储器装置和所述第二非易失性存储器装置中的每一个包括多个存储器块,
其中在从所述主系统在所述第一从系统中接收第三事务的第三写数据和第四事务的第三写数据的情况下,所述第一从系统通过选择所述第一从系统中包括的所述非易失性存储器装置的第一存储器块来存储所述第三事务的所述第三写数据,并且通过选择所述第一从系统中包括的所述非易失性存储器装置的第二存储器块来存储所述第四事务的所述第三写数据,以及
其中在从所述主系统在所述第二从系统中接收第五事务的第四写数据和第六事务的第四写数据的情况下,所述第二从系统通过选择所述第二从系统中包括的所述非易失性存储器装置的第三存储器块来存储所述第五事务的所述第四写数据,并且通过选择所述第二从系统中包括的所述非易失性存储器装置的第四存储器块来存储所述第六事务的所述第四写数据。
11.一种存储器系统,包括:
第一非易失性存储器装置;
第二非易失性存储器装置;
第三非易失性存储器装置;以及
控制器,被配置为根据预定基准而将所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个分类为主装置,并且将剩余两个中的任何一个分类为第一辅助装置并且将另一个分类为第二辅助装置,
其中所述控制器包括用于临时存储从主机输入的多个写数据的写缓冲器,以及
其中根据分析存储在所述写缓冲器中的所述写数据的特性的结果,所述控制器在所述主装置、所述第一辅助装置和所述第二辅助装置中分配所述写数据。
12.根据权利要求11所述的存储器系统,其中所述控制器
将存储在所述写缓冲器中的所述写数据分类为被分组到事务中的第一写数据和未被分组到事务中的第二写数据,
将所述第二写数据存储在所述主装置中,以及
在所述第一辅助装置和所述第二辅助装置中分配所述第一写数据。
13.根据权利要求12所述的存储器系统,其中所述控制器
将存储在所述写缓冲器中的所述第一写数据之中未完全提交的第一写数据分类到第三写数据中,并且将存储在所述写缓冲器中的所述第一写数据之中完全提交的第一写数据分类到第四写数据中,
将所述第三写数据存储在所述第一辅助装置中,以及
将所述第四写数据存储在所述第二辅助装置中。
14.根据权利要求13所述的存储器系统,
其中在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置全部都能够被重写或不能被重写的情况下,所述控制器执行比较所述第一非易失性存储器装置的总大小、所述第二非易失性存储器装置的总大小和所述第三非易失性存储器装置的总大小的第一比较操作,以及
其中作为所述第一比较操作的结果,所述控制器将具有最大大小的存储器装置分类为所述主装置,将具有最小大小的存储器装置分类为所述第一辅助装置,并且将具有中等大小的存储器装置分类为所述第二辅助装置。
15.根据权利要求14所述的存储器系统,
其中作为所述第一比较操作的结果,在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置全部具有相同的总大小的情况下,所述控制器执行比较所述第一非易失性存储器装置中的空的空间的大小、所述第二非易失性存储器装置中的空的空间的大小以及所述第三非易失性存储器装置中的空的空间的大小的第二比较操作,以及
其中作为所述第二比较操作的结果,所述控制器将具有最大空的空间大小的存储器装置分类为所述主装置,将具有最小空的空间大小的存储器装置分类为所述第一辅助装置,并且将具有中等空的空间大小的存储器装置分类为所述第二辅助装置。
16.根据权利要求13所述的存储器系统,
其中在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个存储器装置能够被重写并且剩余两个存储器装置不能被重写的情况下,所述控制器将能够被重写的任何一个存储器装置分类为所述第一辅助装置,将不能被重写的剩余两个存储装置之间的总大小较大的任何一个存储器装置分类为所述主装置并且将另一个存储器装置分类为所述第二辅助装置,并且在不能被重写的剩余两个存储器装置的总大小相同的情况下,所述控制器将空的空间较大的任何一个存储器装置分类为所述主装置并且将另一个存储器装置分类为所述第二辅助装置,以及
其中在所述第一非易失性存储器装置、所述第二非易失性存储器装置和所述第三非易失性存储器装置中的任何一个存储器装置不能被重写并且剩余两个存储器装置能够被重写的情况下,所述控制器将不能被重写的任何一个存储器装置分类为所述主装置,将能够被重写的剩余两个存储装置之间的总大小较小的任何一个存储器装置分类为所述第一辅助装置并且将另一个存储器装置分类为所述第二辅助装置,并且在能够被重写的剩余两个存储器装置的总大小相同的情况下,所述控制器将空的空间较小的任何一个存储器装置分类为所述第一辅助装置并且将另一个存储器装置分类为所述第二辅助装置。
17.根据权利要求13所述的存储器系统,其中在将所述第一写数据分类到所述第四写数据中时,在针对第一事务的数据组的开始数据被包括在存储在所述写缓冲器中的所述第一事务的第四写数据中的情况下,所述控制器将存储在所述写缓冲器中的所述第一事务的所述第四写数据存储在所述第二辅助装置中。
18.根据权利要求17所述的存储器系统,其中当将所述第一写数据分类到所述第四写数据中时,在第二事务的开始数据未被包括在存储在所述写缓冲器中的所述第二事务的第四写数据中的情况下,所述控制器
从所述第一辅助装置读取未被存储在所述写缓冲器中的所述第二事务的剩余数据,将所述剩余数据存储在所述第二辅助装置中,并且使所述第一辅助装置中的所述第二事务的所述剩余数据无效,以及
将存储在所述写缓冲器中的所述第二事务的所述第四写数据存储在所述第二辅助装置中。
19.根据权利要求13所述的存储器系统,其中在突然断电(spo)发生之后进入的恢复操作时期中,所述控制器使存储在所述第一辅助装置中的所有数据无效,并且将关于与所无效的数据相对应的事务的信息传送到所述主机。
20.根据权利要求13所述的存储器系统,
其中所述第一辅助装置和所述第二辅助装置中的每一个包括多个存储器块,以及
其中当执行刷新操作时,在第三事务的第三写数据、第四事务的第三写数据、第五事务的第四写数据和第六事务的第四写数据被存储在所述写缓冲器中的情况下,所述控制器通过选择所述第一辅助装置的第一存储器块来存储所述第三事务的所述第三写数据,通过选择所述第一辅助装置的第二存储器块来存储所述第四事务的所述第三写数据,通过选择所述第二辅助装置的第三存储器块来存储所述第五事务的所述第四写数据,并且通过选择所述第二辅助装置的第四存储器块来存储所述第六事务的所述第四写数据。
技术总结
本文描述了用于分布式存储输入数据的存储器系统和数据处理系统。数据处理系统可以包括:第一存储器系统,包括第一非易失性存储器装置;第二存储器系统,包括第二非易失性存储器装置;以及主系统,包括第三非易失性存储器装置,并且被配置为根据预定基准而将第一存储器系统和第二存储器系统中的任何一个分类为第一从系统并且将另一个分类为第二从系统,主系统可以直接耦合主机,并且可以包括用于存储多个写数据的写缓冲器。根据分析存储在写缓冲器中的写数据的特性的结果,主系统可以将写数据存储在第三非易失性存储器装置中,或者通过将写数据分配到第一从系统和第二从系统来将写数据存储在第一非易失性存储器装置或第二非易失性存储器装置中。
技术研发人员:崔海起
受保护的技术使用者:爱思开海力士有限公司
技术研发日:.06.12
技术公布日:.02.21