CN101727976A - 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 - Google Patents
一种多层闪存装置、固态硬盘和分割非易失性存储器系统 Download PDFInfo
- Publication number
- CN101727976A CN101727976A CN200910163527A CN200910163527A CN101727976A CN 101727976 A CN101727976 A CN 101727976A CN 200910163527 A CN200910163527 A CN 200910163527A CN 200910163527 A CN200910163527 A CN 200910163527A CN 101727976 A CN101727976 A CN 101727976A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- flash
- lba
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明适用于存储领域,提供了一种多层闪存装置、固态硬盘和分割非易失性存储器系统,所述多闪存装置包括由非易失性存储器控制器经物理块地址读取的未加工NAND型闪存芯片,所述非易失性存储器控制器在闪存模块上或在固态硬盘的系统板上,所述非易失性存储器控制器将逻辑块地址转换为物理块地址,通过智能存储事务管理器在高层控制多个闪存模块的多个通道之间的数据分割和交错,同时通过非易失性存储器控制器控制通道中的进一步交错和重新映射,从而延长了闪存装置的寿命。
Description
技术领域
本发明涉及闪存固态硬盘设备(flash-memory solid-state-drive devices),尤其是一种与多个闪存端点连接的智能存储开关。
背景技术
主机系统,如个人计算机(PC)在大容量存储设备,如硬盘驱动器(hard disk drives,HDD)中保存大量的数据。由于最小读写单元是页,每一页的大小等于若干个512字节扇区,所以大容量存储设备可以按块寻址而不是按字节寻址。闪存正在取代硬盘和光盘,作为优选的大容量存储介质。
NAND型闪存是非易失性的,所以很适合便携式数据存储设备。与NOR型闪存相比,NAND型闪存数据密度更大,并且价格更加便宜。
然而,NAND型闪存具有局限性。在闪存单元中,数据是以二进制形式,即1和0两个数码来存储。NAND型闪存的一个局限是,在存储数据(写入闪存)时,闪存只能进行从1到0的写入。当进行从0到1的写入时,闪存以每一次一“块”为单位进行擦除操作。虽然用来读取的最小单元可以是一页中的一个字节或者一个词,但擦除的最小单元是一个块。
单层式存储单元闪存(Single Level Cell,SLC)和多层式存储单元闪存(Multi LevelCell,MLC)是NAND型闪存的两种类型。SLC闪存的擦除块的大小可以是128K+4K字节,MLC闪存的擦除块的大小可以为256K+8K字节。NAND型闪存的另一个局限性是其有限的擦除周期,如从10,000至1,000,000次。此后,闪存会磨损,并且性能变得不稳定。
与SLC闪存相比,MLC闪存在消费型应用时具有一些优势和劣势。在单元技术中,SLC闪存的每一个单元存储单个位元(bit)数据,而MLC闪存的每一个单元存储两个或更多个位元数据。同样的单元技术中,MLC闪存的数据密度可以是SLC闪存的两倍或更多倍。但在性能上,MLC闪存的稳定性和耐用性会降低。
消费者会可能希望得到一个大容量的闪存来取代硬盘。由闪存芯片制成的固态硬盘(solid state disk,SSD)不包含运动部件,因此比旋转式磁盘具有更好的稳定性。
可以将几个较小的闪存驱动器连接起来,例如通过将多个闪存驱动器插入到一个与主机上的一个USB接口连接的USB集线器,而后这些闪存驱动器对于主机就是单独的驱动器。例如,主机的操作系统会分配给每个闪存驱动器它们各自的驱动器编号(如D:,E:,F:等),而不是将它们整合在一起作为一个只有一个驱动器编号的逻辑驱动器。相似的问题也会发生在其他的总线协议上,例如SATA总线(Serial AT-Attachment),IDE总线(Integrated DeviceElectronics),和PCIE总线(Peripheral Components Interconnect Express)。美国专利号为7,103,684描述了一种单芯片控制器,该单芯片控制器与若干个闪存大容量存储块连接。
较大的闪存系统可以利用若干个通道来允许并行存取,用以提高性能。平均读写演算法(Wear-Leveling Algorithm)使存储器控制器将逻辑地址重新映射到不同的物理地址,从而写入的数据能够被均匀分布。因此,平均读写演算法延长了MLC闪存的使用寿命。
希望有一种多通道闪存系统,该多通道闪存系统具有在每个通道内的模块上的闪存。在主机和多个闪存模块之间需要有智能存储开关或者集线器,从而数据可以被分割并通过闪存的多个通道。需要智能存储开关利用命令队列将数据交错和分割,通过闪存装置的多个通道,其中命令队列存储SDRAM缓冲器(buffer)中缓冲数据的商Q和余数R的指针。
发明内容
本发明的目的在于提供一种多层闪存装置,旨在解决现有的闪存装置的使用寿命短的问题。
本发明是这样实现的,一种多层闪存装置,所述装置包括:
智能存储开关,所述智能存储开关包括:
连接主机的上游接口,接收主机命令以存取非易失性存储器和接收主机数据及主机地址;
虚拟存储处理器,与所述上游接口连接,将主机发送的地址映射到指定闪存模块以产生逻辑块地址;
智能存储事务管理器,与所述虚拟存储处理器连接,管理来自所述主机的事务;
虚拟存储桥,设置于所述智能存储事务管理器和逻辑块地址总线之间;
非易失性存储器控制器,耦合到所述逻辑块地址总线,以接收所述虚拟存储处理器产生的逻辑块地址,以及来自所述虚拟存储桥的主机数据,并将所述逻辑块地址映射成物理块地址;
多个闪存模块,包括耦合到所述非易失性存储器控制器的未加工NAND型闪存芯片,用于将主机数据存储于所述非易失性存储器控制器产生的物理块地址所标识的内存块位置中。
本发明的另一目的在于提供一种固态硬盘,所述固态硬盘包括:
易失性内存缓冲器构件,临时存储主机数据在当电源断开时会丢失数据的易失性内存中;
智能存储开关构件,转换主机命令到多个下游装置,所述智能存储开关构件包括:
耦合到主机的上游接口构件,接收主机命令以存取闪存并接收主机数据和主机地址;
虚拟存储处理器构件,与所述上游接口构件连接,将主机地址转化到指定闪存模块,以产生逻辑块地址;
智能存储事务管理器构件,与所述虚拟存储处理器构件连接,管理来自主机的事务;
虚拟存储桥构件,位于所述智能存储事务管理构件与逻辑块地址总线之间,用于传送主机数据和逻辑块地址;
数据分割构件,将主机数据分割成数据片段,所述数据片段被分配给不同的闪存模块;
多个闪存模块,所述闪存模块包括:
控制闪存操作的低层控制器构件,与逻辑块地址总线耦合,以接收所述虚拟存储处理器构件产生的逻辑块地址和来自所述虚拟存储桥构件的主机数据;
在所述低层控制器构件中的第二层映射构件,将所述逻辑块地址映射到物理块地址;
耦合到所述低层控制器构件的未加工NAND型闪存芯片,所述未加工NAND型闪存芯片存储主机数据在物理块地址标识的闪存块位置,所述物理块地址由所述低层控制器构件中的所述第二层映射构件产生;
所述多个闪存模块中的未加工NAND型闪存芯片为非易失性存储器,当电源断开时,所述未加工NAND型内存芯片仍保留数据。
本发明的另一目的在于提供一种分割式非易失性存储器系统,所述系统包括:
与主机连接的上游接口,所述主机产生主机数据和主机序列中的主机命令;
耦合到所述上游接口的智能存储事务管理器,所述智能存储事务管理器将来自所述主机序列的主机命令重新排序,形成重新排序的操作序列;
多个非易失性存储器模块,每个非易失性存储器模块具有多个用于存储主机数据,当电源断开时仍会保留数据的非易失性存储器的内存块;
虚拟存储处理器,分配主机命令到所述多个非易失性存储器模块中的指定装置,所述虚拟存储处理器也存储从每个非易失性存储器模块得到的属性,该属性包括内存容量,其中所述虚拟存储处理器向主机汇报内存容量的总和;
将主机数据分割成存储在所述多个非易失性存储器模块的数据片段的数据分割单元;
耦合在所述智能存储事务管理器和多个非易失性存储器模块之间的虚拟存储桥;
内置于每个非易失性存储器模块的低层控制器,所述低层控制器包括重新映射单元,所述重新映射单元将从所述虚拟存储桥接收到的逻辑地址转换为存取所述多个非易失性存储器模块的物理地址。
本发明的另一目的在于提供一种物理块地址闪存模块,所述模块包括:
印有配线轨迹的基板,所述配线轨迹传导信号;
沿所述基板第一边缘的多个金属接触点,该多个金属接触点与主板上的存储器模块插槽匹配;
安装在所述基板上用于存储来自主板的主机数据的多个非易失性存储器芯片,当闪存模块电源断开时所述多个非易失性存储器芯片会保留数据;以及,
物理块地址总线,该物理块地址总线由所述基板上连接所述多个金属接触点的配线轨迹形成,通过所述物理块地址总线,将所述物理块地址闪存模块上的多个非易失性存储器芯片连接到主板。
本发明的另一目的在于提供一种逻辑块地址闪存模块,所述模块包括:
印有配线轨迹的基板,所述配线轨迹传导信号;
沿所述基板第一边缘的多个金属接触点,该多个金属接触点与主板上的存储器模块插槽匹配;
安装在所述基板上用于存储来自主板的主机数据的多个非易失性存储器芯片,当闪存模块电源断开时所述多个非易失性存储器芯片会保留数据;
逻辑块地址总线,该逻辑块地址总线由所述基板上连接所述多个金属接触点的配线轨迹形成;
安装在所述基板上的非易失性存储器控制器,该非易失性存储器控制器耦合到所述逻辑块地址总线,以通过所述多个金属接触点从主板接收逻辑块地址;
在所述非易失性存储器控制器中的第二层映射器,该第二层映射器将所述逻辑块地址映射到物理块地址,所述多个非易失性存储器芯片存储主机数据到所述非易失性存储器控制器中的第二层映射器产生的物理块地址所标识的存储块位置;以及,
物理块地址总线,该物理块地址总线由所述基板上没有连接到所述多个金属接触点的内部子集配线轨迹形成,通过所述物理块地址总线,将所述逻辑块地址闪存模块上的多个非易失性存储器芯片和所述非易失性存储器控制器互相耦合,再通过所述逻辑块地址总线,将所述逻辑块地址闪存模块上的多个非易失性存储器芯片经过所述非易失性存储器控制器连接到主板。
在本发明实施例中,通过在主机和多个多通道闪存装置之间设置一智能存储开关,通过该智能存储开关将所述的多个多通道闪存装置聚合为一个逻辑驱动器,同时将主机传输的数据平均分配至所述多个多通道闪存装置,其中每个多通道闪存装置进一步将数据平均分配至装置中多个未加工NANAD型闪存芯片,从而延长了闪存的使用寿命。
附图说明
图1A是本发明提供的与未加工NAND(Raw-NAND)型闪存装置连接的智能存储开关;
图1B是本发明提供的利用闪存模块的主机系统;
图1C是本发明提供的并行的闪存模块;
图1D是本发明提供的串行的闪存模块;
图2是本发明提供的采用闪存模块和模块上NVM控制器的智能存储开关;
图3A是本发明提供的物理块地址(PBA)闪存模块;
图3B展示了逻辑块地址(LBA)闪存模块;
图3C是本发明提供的固态硬盘(Solid-State-Disk,SSD)板;
图4A-F是本发明提供的存储在未加工NAND型闪存芯片内的数据的各种排列;
图5是本发明提供的双裸片(dual-die)和双平面型(dual-plane)闪存装置的多个通道;
图6是本发明提供的紧密耦合到闪存装置所需分段大小的数据分割;
图7是本发明提供的采用数据分割的每个NVM控制器的初始化或重启的流程图;
图8是本发明提供的当采用数据分割时智能存储开关的初始化或重启的流程图;
图9是本发明提供的带有更多智能存储事务管理器细节的四通道智能存储开关;
图10是本发明提供的截断方法的流程图;
图11是本发明提供的SDRAM缓冲器内的Q-R指针表和命令队列;
图12为SDRAM缓冲器内的扇区数据缓冲器的主机接口的流程图;
图13A-C为命令队列管理器的运作流程图;
图14展示了SDRAM缓冲器内和闪存内的页面对齐;
图15展示了未对齐数据的结合;
图16A-K展示了在闪存系统中利用命令队列和SDRAM缓冲器的实例。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1A展示了一个与未加工NAND型闪存装置连接的智能存储开关。智能存储开关30通过上游接口34与主机存储总线18连接。智能存储开关30还通过物理块地址(physical blockaddress,PBA)总线473与未加工NAND型闪存芯片68连接。逻辑块地址总线(logical blockaddress,LBA)38上来自虚拟存储桥42的事务被复用器/解复用器41解复用后,发送给一个NVM控制器76,该NVM控制器76将逻辑块地址转换为物理块地址,发送给未加工NAND型闪存芯片68。每个NVM控制器76可以包括一个或者多个通道。
NVM控制器76可以作为提供物理信号的协议桥,例如传送和接收逻辑块地址总线38的任何的差动数据线上的差动信号,检测或者生成分组(packet或称为包)开始或者分组终止格式,检查或者生成校验和,以及更高层的职能例如插入或者提取装置地址、分组类型和命令等。主机主板10的主机地址包括通过逻辑块地址总线38发送的逻辑块地址,虽然在一些实施例中(例如执行两个阶层平均读写、坏块管理等的实施例),该逻辑块地址可以被智能存储开关30重新映射。
智能存储开关30可以在单端点模式下进行操作。智能存储开关30操纵聚合和虚拟开关。
内部处理器总线61允许数据流向虚拟存储处理器140和SDRAM 60。在SDRAM 60中与虚拟存储桥42耦合的缓冲器,能够对数据进行存储。SDRAM 60缓冲器是智能存储开关30中的同步动态随机存储器,或者可以是主机主板10上的SDRAM存储模块的存储空间,因为通常主板上的SDRAM模块的存储容量比较大,并且如此可以降低智能存储开关30的成本。此外,由于往往位于主机主板中的CPU性能更强以及SDRAM的容量更大,智能存储开关30的职能可以被嵌入到主机主板10中,以进一步增强系统的存储效率。FIFO 63可以和SDRAM 60一起用来缓冲发送与接收来自上游接口34和虚拟存储桥42的分组。
虚拟存储处理器140向智能存储事务管理器36提供重新映射服务。例如,来自主机的逻辑地址可以被查寻到、并转变成逻辑块地址,该逻辑块地址通过逻辑块地址总线38发送给NVM控制器76。主机数据可以通过虚拟存储处理器140或者智能存储事务管理器36以交错方式被交替分配给NVM控制器76。然后,NVM控制器76将在一个或多个通道内的未加工NAND型闪存芯片68之中进行低层交错。因此交错可以在两个阶层上进行,通过智能存储事务管理器36在两个或多个NVM控制器76之间进行高层交错,以及在每一个NVM控制器76内的未加工NAND型闪存芯片68之间进行低层交错。
NVM控制器76进行逻辑至物理的重新映射,作为闪存转换层职能的一部分,将在逻辑块地址总线38上接收到的逻辑块地址转换为存取未加工NAND型闪存芯片68中实际的非易失性存储块的物理块地址。NVM控制器76可以执行平均读写,坏块再映射(bad blockremapping),以及其他低层的管理职能。
当在单端点模式中进行操作时,智能存储事务管理器36不仅利用虚拟存储桥42缓冲数据,还对来自主机的事务的分组重新排序。一个事务可以具有几个分组,例如用来启动存储器读取的初始命令分组,从存储装置返回主机的数据分组,和用来结束事务的确认分组(handshake packet)。不需要在下一个事务开始以前完成第一个事务的所有分组的任务,存储开关30在第一个事务完成以前就能对下一个事务的分组重新排序后发送给NVM控制器76。这就为下一个事务的存储器存取提供了更多的时间。因此,通过分组的重新排序,事务将会重叠。
逻辑块地址总线38发送的分组的排序是在主机存储总线18上的分组排序的被重新排序。事务管理器36将事务重叠和交错到不同的闪存存储块中,以提高数据吞吐量。例如,几个输入的主机事务的分组通过虚拟存储桥42或者相关缓冲器(图未示出)被保存在SDRAM缓冲器60中。事务管理器36检查这些缓冲的事务和分组,并对这些分组进行重新排序后将它们从逻辑块地址总线38发送给下游的其中一个未加工NAND型闪存芯片68内的闪存存储块。
图1B展示了包含闪存模块的主机系统。主板系统控制器404通过前端总线或其他高速CPU总线与中央处理器(CPU)402连接。CPU 402对受易失性存储器控制器408控制的SDRAM缓冲区410进行读取或写入。SDRAM缓冲器410可以包含若干DRAM芯片的存储模块。
通过主板系统控制器404,利用易失性存储器控制器408和非易失性存储器控制器406,可以将来自闪存存储器的数据传送给SDRAM缓冲器410。直接存储器存取(direct memoryaccess,DMA)控制器或者CPU 402可以被用来实现这种传送。非易失性存储器控制器406对闪存模块414进行读取和写入,或者可以存取受智能存储开关430控制的逻辑块地址NVM(LBA-NVM)设备412。
LBA-NVM设备412包括NVM控制器76和未加工NAND型闪存芯片68。NVM控制器76将逻辑块地址(LBA)转换为物理块地址(PBA)。智能存储开关30发送逻辑块地址给LBA-NVM设备412,同时非易失性存储器控制器406通过物理总线422发送物理块地址给闪存模块414。主机系统可以只具有一种类型的NVM子系统,或者是闪存模块414,又或者是LBA-NVM设备412,虽然在一些系统中可以具有这两种类型。
图1C展示了图1B中的闪存模块414在物理总线422的单段上并行设置。图1D展示了图1B中的闪存模块414在物理总线422的多段上串行设置,构成了一个菊花链。
图2展示了智能存储开关,该智能存储开关使用闪存模块和包含在模块上的NVM控制器。智能存储开关30通过上游接口34与主机系统11在主机存储总线18上连接。智能存储开关30还通过虚拟存储桥42、43在逻辑块地址总线28上与下游的闪存装置连接。
虚拟存储桥42、43是协议桥,该协议桥还提供物理信号,例如发送和接收逻辑块地址总线28的任何的差动数据线上的差动信号,检测或者生成分组开始或分组终止格式,检查或者生成校验和,以及更高层的职能例如插入或提取装置地址、分组类型和命令等。来自主机系统11的主机地址包括通过逻辑块地址总线28发送的逻辑块地址,虽然在一些实施例中(例如执行两个阶层平均读写、坏块管理等的实施例),该逻辑块地址可以被智能存储开关30重新映射。
SDRAM 60中的缓冲器与虚拟缓冲桥32耦合,能够存储数据。SDRAM 60是智能存储开关30上的同步动态随机存储器。SDRAM 60缓冲器可以是位于主机主板内的SDRAM存储模块的存储空间,因为通常主板上的SDRAM模块的存储容量要大的多,并且能够减少智能存储开关30的成本。此外,由于通常位于主机主板10中较大容量的SDRAM和更强大的CPU,智能存储开关30的功能能够被嵌入到主机主板中,这样进一步增强系统的存储效率。
虚拟存储处理器140向智能存储事务管理器36提供重新映射服务。例如,来自主机的逻辑地址可以被查找到,并转变成逻辑块地址,该逻辑块地址通过逻辑块地址总线28发送给闪存模块73。主机数据可以通过虚拟存储处理器140或者智能存储事务管理器36以交错方式被交替分配给闪存模块73。随后,在闪存模块73内的NVM控制器76可以在每一个闪存模块73内的未加工NAND型闪存芯片68之间,执行低层交错。因此交错可以在两个阶层上进行,通过智能存储事务管理器36在两个或更多个闪存模块73之间进行高层交错,以及在每一个闪存模块73内的未加工NAND型闪存芯片68之间进行低层交错。
NVM控制器76执行逻辑到物理的重新映射,作为闪存转换层职能的一部分,将在逻辑块地址总线28上接收到的逻辑块地址转换为存取未加工NAND型闪存芯片68中实际的非易失性存储块的物理块地址。NVM控制器76可以执行平均读写,坏块重新映射,以及其他低层的管理职能。
当在单端点模式中进行操作时,智能存储事务管理器36不仅利用虚拟缓冲桥32缓冲数据,还对来自主机的事务的分组重新排序。一个事务可以具有几个分组,例如用来启动存储器读取的初始命令分组,从存储装置返回主机的数据分组,和用来结束事务的确认分组。不需要在下一个事务开始以前完成第一个事务的所有分组的任务,存储开关30在第一个事务完成以前就能对下一个事务的分组重新排序后发送给闪存模块73。这就为下一个事务的存储器存取提供了更多的时间。因此,通过分组的重新排序,事务将会重叠。
逻辑块地址总线28发送的分组的排序是在主机存储总线18上的分组排序的被重新排序。事务管理器36将事务重叠和交错入不同的闪存存储块中,以提高数据吞吐量。例如,几个输入的主机事务的分组通过虚拟缓冲桥32或者相关缓冲器(图未示出)被保存在SDRAM缓冲器60中。事务管理器36检查这些缓冲的事务和分组,并对这些分组进行重新排序后将它们从内部逻辑块地址总线38发送给下游的其中一个闪存模块73内的闪存存储块。
通过虚拟存储桥43用来开始读取第二个闪存块的分组,可以被重新排序在通过虚拟存储桥42用来结束读取另一个闪存块的分组之前,以使对第二个闪存块的存取开始的更早。
时钟脉冲源62可以为SDRAM 60、智能存储事务管理器36、虚拟存储处理器140和智能存储开关30内的其他逻辑块产生一个时钟脉冲。来自时钟脉冲源62的时钟脉冲也可以从智能存储开关30被发送给闪存模块73,该闪存模块73具有一个内部时钟脉冲源46,其产生的内部时钟脉冲CK_SR,可以同步NVM控制器76和闪存模块73内的未加工NAND型闪存芯片68之间的传送。因此,自传送在逻辑块地址总线(LBA bus)28上的逻辑块地址(LBA)开始,物理块和物理块地址(PBA)的传送被重新定时。
图3A展示了物理块地址(PBA)闪存模块。闪存模块110包括一个基板,例如多层印刷电路板(printed-circuit board,PCB),表面贴装的未加工NAND型闪存芯片68安装在基板的正面,如图所示,同时更多的未加工NAND型闪存芯片68安装在基板的背面(图未示出)。
金属接触点112位于基板的前后表面上沿着底边位置。金属接触点112与模块插槽上的接触点匹配,使模块和个人计算机主板电连接。在一些模块板上可以设置有孔116,用来使模块正确插入插槽的位置中。凹位114同样用来使模块正确插入和对齐。凹位114能够防止插入错误类型的模块。电容器或者其他分立元件,被表面贴装在基板上,用来过滤来自未加工NAND型闪存芯片68的干扰信号,该闪存芯片68同样利用表面贴装技术(surface mounttechnology,SMT)安装。
由于闪存模块110将未加工NAND型闪存芯片68和金属接触点112连接,闪存模块110的连接是通过物理块地址实现。图1A中的未加工NAND型闪存芯片68可以用图3A中的闪存模块110替代。
金属接触点112构成了闪存控制器的连接,例如图1B中非易失性存储器控制器406。金属接触点112可以构成图1B的物理总线422的一部分。金属接触点112可以构成图1A中的总线473的一部分。
图3B展示了逻辑块地址(LBA)闪存模块。闪存模块73包括一个基板,例如多层印刷电路板(PCB),表面贴装的未加工NAND型闪存芯片68和NVM控制器76安装在基板的正面,如图所示,同时更多的未加工NAND型闪存芯片68安装在基板的背面(图未示出)。
金属接触点112’位于基板的前后表面上沿着底边位置。金属接触点112’与模块插槽上的接触点匹配,使模块和个人计算机主板电连接。在一些模块板上可以设置有孔116,用来使模块正确插进插槽的位置中。凹位114同样用来使模块正确插入。电容器或者其他分立元件,被表面贴装在基板上,用来过滤来自未加工NAND型闪存芯片68的干扰信号。
由于闪存模块73在其基板上装有NVM控制器76,未加工NAND型闪存芯片68不直接与金属接触点112’连接。取而代之地,未加工NAND型闪存芯片68利用接线轨迹与NVM控制器76连接,然后NVM控制器76与金属接触点112’连接。闪存模块73的连接是通过来自NVM控制器76的逻辑块地址总线实现的,例如,如图2所示的逻辑块地址总线28。
图3C展示了可以与主机直接连接的固态硬盘(SSD)板。SSD板440上有一个插入主机主板的连接器112”,例如插入图1A中的主机存储总线18。连接器112”可以支持SATA,PATA,PCI Express,或者其他总线。NVM控制器76和未加工NAND型闪存芯片68焊接至SSD板440。在芯片442中还可以有其他逻辑和缓冲器。芯片422还可以包括图1A中的智能存储开关30。
作为选择,连接器122”可以作为图1B中物理总线422的一部分。或者不是利用未加工NAND型闪存芯片68,而是利用逻辑块地址NAND闪存芯片(LBA-NAND)来接收来自NVM控制器的逻辑地址。
图4A-F展示了保存在未加工NAND型闪存芯片68内的数据的各种排列。来自主机的数据通过图9的分割逻辑518被分割成分段,并且保存在不同的闪存模块73,或者在一个闪存模块73内作为不同的端点的不同的未加工NAND型闪存芯片68中。主机操作系统通过利用一个群集(Cluster),例如4K字节,作为地址追踪机制进行数据文件的读取和写入。然而,在真实的数据传送中,它是基于扇区(512字节)单元。为执行两个阶层的数据分割,当智能存储开关30向物理块闪存发送页(为编程单元)和块(为擦除单元)时,智能存储开关30解决了此一问题。
图4A展示了N路(N-way)地址交错的操作过程。NVM控制器并行地将主机数据发送给若干个通道或者芯片。例如,S11、S21、S31、SM1可以是发送给一个NVM控制器或者一个通道的数据。N路交错能够改善性能,因为主机可以发送命令给一个通道,而不用等待回应,主机能直接发送更多的命令给第二个通道,等等。
在图4A中,数据按照常规的线性排列方式进行排列。在此实施例中,接收到的来自主机的数据序列是S11,S12,S13,…,S1N,然后S21,S22,S23,…,S2N,并且SMN作为最后一个数据。在实际系统中,逻辑块地址不必是从S11开始。例如,S13可以是第一个数据项,最后一个数据项可以不是SMN。例如SM3会是最后一个数据项。N令牌数据项的每一个令牌的大小是保存数据的实质闪存存储装置的页的四倍,例如4x2K,4x4K,4x8K等等。每一个令牌数据项的细节将会在后面作进一步描述。全体M个数据项被保存起来,其中一些数据项被保存在不同的闪存装置上。当发生一个失败操作时,例如一个闪存芯片没有能够送回数据,该闪存芯片的整个数据项通常会丢失。然而,保存在其他闪存芯片中的其他数据项还能够被正确读取。
在图4B中,数据被分割后通过N个闪存存储端点保存。每一个数据项被分配和存储在N个闪存存储端点中。例如,第一个N令牌数据项由S11,S12,S13,…,S1N组成。该数据项的令牌S11保存在端点1中,令牌S12保存在端点2中,…,直到令牌S1N保存在端点N中。数据项填满所有的端点后开始下一轮回的填入。这些数据项将被划分为扇区或者页,或者对齐分配给多扇区或者多页。
图4C是增加一个特定的通道或者芯片作为奇偶校验或者纠错码(error correctingcode,ECC)的另一种途径,用来间接防止N个端点中的一个端点的错误。每次主机控制器读取来自全体N+1个通道的结果并和在最后一个通道中的P奇偶校验值进行比较,来判断结果是否正确。如果是使用纠错码编码技术,最后一个通道也能够用来恢复正确值,这可以包括里德-索罗门(Reed-Solomon)或者BCH编码方法。
在图4C中,数据通过带有奇偶校验的多个存储端点被分割。未加工NAND型闪存芯片被分割成N+1个端点。N+1个端点大小相等,并且奇偶校验端点N+1有足够大的大小存储其他N个端点的奇偶校验或者ECC纠错码。
每一个数据项被分成N个部分,并且每个部分被保存在不同的N个端点中。数据项的奇偶校验或者ECC纠错码被保存在最后一个奇偶校验端点N+1中。例如,一个N令牌数据项包括令牌S11,S12,S13,…,S1N。数据项的令牌S11保存在端点1中,令牌S12保存在端点2中,令牌S13保存在端点3中,…,令牌S1N保存在第N个端点中。奇偶校验或者ECC纠错码被保存在奇偶校验端点N+1中,作为令牌S1P。
在图中,每个数据项横跨所有端点像一个横条进行保存。如果其中一个端点装置发生错误,该数据项大多数数据还保持完好,则允许用奇偶校验或ECC端点闪存装置进行恢复。
图4D展示了分配式的一维奇偶校验排列,该一维奇偶校验排列将奇偶校验载入成对角线排列。S1P,S2P,S3P构成对角线跨过端点N+1,N,N-1,奇偶校验沿着对角方向被分配,来平均负荷和避免可能发生在如图4C方法中一个奇偶校验P通道内的大量读取和写入。
图4E展示了运用两个端点的一维奇偶校验。两个端点的内容是完全相同的,因此数据被冗余地保存。这是一个非常简单的方法,但是浪费了存储空间。
图4F与图4D相似,奇偶校验分配在所有端点上,取代了集中在一个或两个端点上,以避免大量使用奇偶校验端点。
图4F展示了另一个数据分割排列,利用奇偶校验和ECC纠错码两个正交维度错误修正值,而具有两个不同的错误探测/修正的方法。例如,片段S1P利用一个奇偶校验或ECC纠错码方法,同时片段S1P’利用另一个ECC纠错码方法。一个简单的例子是具有利用汉明码(Hamming code)的一维,同时第二维是里德-索罗门(Reed-Solomon)或者BCH编码方法。用较多维数的纠错码编码,当任何单芯片闪存装置在操作中失败时,恢复的可能性更高,以保护数据的一致性。将近失败的闪存装置可以在失败之前被替代,以防止系统故障。
错误可以通过两个阶层的错误检测和修正来探测。每个闪存存储片段,包括奇偶校验片段,具有基于页的ECC纠错码(page-based ECC)。当读取片段页时,可以根据ECC纠错码(例如,里德-索罗门编码)来探测和修正坏的位元。此外,闪存存储片段形成一个分段,并在其中一个片段上设奇偶校验。
如图4C-F所示,数据可以存在闪存端点的片段上,奇偶校验或ECC纠错码片段有若干排列,并以线性形式通过闪存存储片段。此外,数据可以排列成可提供冗余存储(如图4E所示),这类似于独立磁盘冗余阵列(redundant array of independent disks,RAID)系统,以提高系统稳定性。数据被写入到两个片段,并可以从任何一个片段读取。
图5展示了双裸片(dual-die)和双平面型(dual-plane)的闪存装置的多个通道。多通道NVM控制器176可以驱动8个闪存通道,可以为智能存储开关30的一部分,如图1A所示。每个通道具有一对闪存多裸片封装装置166、167,每个闪存多裸片封装装置具有第一裸片160和第二裸片161,并且每个裸片有两个平面。因此,每个通道可以同时写入八个平面或者页。数据被分割到八页的分段,并与按每个通道可以写入的页数匹配。多通道NVM控制器176中的流水线寄存器169(Pipeline register)可以缓冲数据到每个通道。
图6展示了紧密耦合到闪存装置所需分段大小的数据分割。图2和其他附图的闪存模块73的每个通道具有两个闪存芯片封装,每个封装有两个闪存裸片,每个闪存裸片具有两个平面。由于一个封装具有两个裸片,每个裸片有两个平面,利用闪存的两平面型命令可以提高闪存存取速度。当每个平面可以存储一页数据时,分段大小可以设置为八页。因此,一个分段被写入到每个通道,且每个通道具有一个闪存模块73,该闪存模块具有两个裸片作为未加工NAND型闪存芯片68。
分段深度是通道数量乘分段大小,或者在本实施例中是N乘8页。8通道系统中,每个通道有四个裸片,每个裸片有两个平面,该8通道系统具有8乘8或64页数据,作为由智能存储开关30设置的分段深度。当裸片或平面的数量增加,或者页的大小改变时,数据分割方法可以根据实体闪存结构而改变。分段大小可以随闪存页的大小而改变,以达到最大的效率。页对齐的目的是避免局部和中心页的大小不匹配,从而提高存取速度和改进平均读写。
当执行闪存事务层职能时,NVM控制器76从智能存储开关30接收逻辑扇区地址(LogicalSector Address,LSA),并将逻辑扇区地址转化为多平面闪存内的物理地址。
图7为采用数据分割的每个NVM控制器76的初始化流程图。当NVM控制器76控制未加工NAND型闪存芯片68的多个裸片,且每个通道的每个裸片具有多个平面,如图5-6所示,在制造过程中接入电源或配置改变时,每个NVM控制器76执行此启动程序。
每个NVM控制器76接收来自智能存储开关的特别命令,步骤190,这使得NVM控制器76稍描搜寻坏块,并确定NVM控制器所控制的闪存的物理容量。
确定NVM控制器控制的所有裸片内所有闪存块的最大有效容量,步骤192,以及备用块的最小尺寸和其他系统资源。任何坏块的发现将降低最大有效容量。保留这些值用于制造过程中的特别命令,并且是可编程的值,但用户不能改变这些值。
从逻辑块地址到物理块地址的映射设置在用于这个NVM控制器76的映射器或映射表,步骤194。忽略过坏块,并保留一些空块用于以后与将来发现的坏块交换。配置信息存储在NVM控制器76中的配置寄存器,步骤196,并且可以由智能存储开关读取。
图8为当利用数据分割时智能存储开关的初始化流程图。当每个NVM控制器76控制未加工NAND型闪存芯片68的多个裸片,每个通道的每个裸片有多个平面,例如图5至6所示,当系统制造过程中接入电源或者当配置改变时,智能存储开关执行该初始化程序。
通过读取未加工NAND型闪存芯片68中未加工闪存块,智能存储开关清点列举所有的NVM控制器76,步骤186。可以获得坏块比率、尺寸、每个装置的裸片叠层、以及每个裸片的平面数量。智能存储开关发送特别命令到每个NVM控制器76,步骤188,并读取每个NVM控制器76上的配置寄存器,步骤190。
对于步骤186清点列举的每个NVM控制器76,获得每个裸片平面的数量P、每个闪存芯片裸片的数量D、每个NVM控制器76的闪存芯片的数量F,步骤180。同样获得通道的数量C,这可以等于NVM控制器76的数量或者通道的数量C是NVM控制器76数量的倍数。
分段大小设置为N*F*D*P页,步骤182。分段深度设置为C*N*F*D*P页,步骤184。该信息存储在NVM的配置空间,步骤176。
图9展示了四通道智能存储开关,以及智能存储事务管理器的更多细节。虚拟存储处理器140,连接至SDRAM缓冲器60的虚拟缓冲桥32,以及连接至主机的上游接口34均连接至智能存储事务管理器36,并以之前描述的方式运作。
连接至四个闪存模块950-953的四个通道由四个虚拟存储桥42提供,其中每个通道是一个如图2-3所示的闪存模块73,四个虚拟存储桥42连接至智能存储事务管理器36中的多通道交错存储的路由逻辑534。主机数据可以通过路由逻辑534在四个通道和四个闪存模块950-953之间交错存储,以提高性能。
来自上游接口34的主机数据由智能存储事务管理器36内的重新排序单元516重新排序。例如,主机的分组可以处理成不同于接收到的顺序。这是很高层的重新排序。
分割逻辑518可以将主机数据分割成分片,以写入不同的实体装置,如低价磁盘冗余阵列(RAID)。纠错码逻辑520可以添加和检查奇偶校验码和ECC纠错码数据,而SLV安装程序521可以安装新存储逻辑卷(storage logical volume,SLV)或恢复原SLV。SLV逻辑卷可以分配到不同的实体闪存装置,如本图所示,闪存模块950-953,编号分别为SLV#1、#2、#3和#4。
虚拟化单元514虚拟化主机逻辑地址,并将闪存模块950-953中的闪存连接成一个单元,以进行高效的数据处理,如通过重新映射和错误处理。重新映射可以由智能存储事务管理器36用平均读写和坏块监测器526(监视闪存模块950-953中每个装置的读写和坏块程度)在高层次执行。这个高层次或总统层次的平均读写可以指示新块到闪存模块950-953中读写最少的模块,如闪存模块952,其读写为250,比其他闪存模块上的读写500、400和300少。然后,闪存模块952可以在闪存模块952中的未加工闪存芯片68(图2)之间执行更多低层次或管理者层次的平均读写。
因此,高层次平均读写确定最少读写的逻辑卷或闪存模块,同时被选择的装置在所选择的闪存模块内的闪存存储块进行低层次平均读写。利用该高低两层次平均读写,整体的读写可以得到改进和优化。
端点和集线器模式逻辑528使智能存储事务管理器36为开关模式执行端点聚合。并非使用读写指示器,而是智能存储事务管理器36可以用坏块比例来决定分配新块给闪存模块950-953中的哪一个。坏块比例较大的通道或闪存模块可以被略过。小量不需要交错存储的的主机数据可以使用读写较少的闪存模块,同时较大量的主机数据可以在所有四个闪存模块(包括读写较多的模块)之间交错存储。读写仍然是被减少,而交错存储仍然用于提高较大量的多块数据传送的性能。
图10为截断方法的流程图。每个通道中的闪存大小或容量可以不一样。即使是每个通道中安装相同大小的闪存,随着闪存块磨损并变坏,通道中的有效容量也被降低变为不一样了。
图9展示了四个通道,该四个通道在闪存模块950-953中具有的容量分别是2007,2027.5,1996.75,和2011MB(百万字节)。图10中截断方法寻找最小容量,并截去所有其他通道变成这个最小容量。截断之后,所有通道具有相同的容量,这有利于数据分割,如图4所示。
读取闪存模块的所有闪存卷的大小或容量,步骤202。确定截断的间隔大小,步骤204。该间隔大小可以是整数,例如1MB,并可以由系统设置,或可以改变。
从在步骤202中读取的所有闪存卷容量大小中寻找最小的卷容量,步骤206。这个最小的卷容量在步骤208中除以间隔大小。当余数为零时,步骤210,被截断的卷容量被设置为等于最小的卷容量,步骤212。由于最小卷容量是间隔大小的倍数,所以无需取整。
当余数不为零时,步骤210,被截断的卷容量被设置为等于最小卷容量减去余数,步骤214。因为最小卷容量不是间隔大小的倍数,因此需要取整。
随后整个存储容量设置为被截断的卷容量乘以闪存卷的数量,步骤216。
图11展示了SDRAM缓冲器中的Q-R指针表和命令队列。SDRAM 60存储来自主机的扇区数据作为扇区数据缓冲器234,该扇区数据是将会被写入闪存模块的数据。当读取命中SDRAM60内的扇区数据缓冲器234时,主机的读取可以从扇区数据缓冲器234提供而不是从较慢的闪存。
Q-R指针表232包含指向扇区数据缓冲器234内扇区的入口。来自主机的逻辑地址除以扇区数据缓冲器234的大小(就是可以存储的扇区的数量),这产生了商Q和余数R。余数R选择在扇区数据缓冲器234中的一个位置,同时商Q可以用于检验是否命中扇区缓冲器234。Q-R指针表232存储商Q,余数R,以及数据类型DT。数据类型显示SDRAM 60中数据的状态。数据类型01显示SDRAM 60内数据需要即时输出复制到闪存。数据类型10显示数据只有在SDRAM 60内有效,但还没有复制到闪存。数据类型11显示数据在SDRAM 60内有效,并已经复制到闪存,所以闪存也是有效的。数据类型00显示数据在SDRAM 60内无效。
数据类型:
0,0-位置为空;
1,0-数据需要输出复制到闪存中,然而可以是后台处理,不是即时紧急的;
0,1-数据正处于写入到闪存中,需要即时处理;
1,1-数据已经写入到闪存。SDRAM内的剩余可以用于即时读取或由新数据写入;
来自主机的命令存储在命令队列230。命令队列230的命令入口存储主机逻辑块地址LBA,传送长度(如待传送的扇区数量),商Q和余数R,显示经数据传送越过扇区数据缓冲器234的边界或末端、并覆盖扇区数据缓冲器234的开始端的跨界(X-BDRY)旗标,读写旗标,和数据类型。其他数据也可以存储,例如待存取的逻辑块地址的第一扇区的位偏移。可以存储开始和结束的逻辑地址,而不是传送长度。
图12为SDRAM中的扇区数据缓冲器的主机接口的流程图。当智能存储开关收到来自主机的命令,主机命令包括逻辑地址,例如逻辑块地址(LBA),逻辑块地址除以扇区数据缓冲器234的整体大小,得到商Q和余数R,步骤342。余数R指向扇区数据缓冲器234的一个位置,来读取这个位置,步骤344。当位置R的数据类型为空型(00)或读缓存型(11)时,位置R可以重写,因为空数据类型00可以由新数据重写,这些新数据不必即时复制到闪存,并且读缓存11型的扇区数据已经被输出复制到闪存,所以可以重写新数据。来自主机的新数据重写在扇区数据缓冲器234的位置R,并且Q-R指针表232中该位置R的入口随新的Q而更新,步骤352。新数据类型设置在10型以指示数据必须复制到闪存,但不是立刻需要处理。
减少长度LEN,步骤354,并且当LEN成为零时,主机传送结束,步骤356。否则,逻辑块地址(LBA)扇区地址增加,步骤358,并且回到步骤342继续进行处理。
当在步骤344中位置R读取具有数据类型01或10型时,步骤346,SDRAM 60的位置R中的数据为脏数据,并在输出复制到闪存之前不能重写,除非主机重写到完全相同的地址(写命中)。当来自主机地址的商Q与已存储的Q匹配时,产生写命中,步骤348。来自主机的新数据可以重写扇区数据缓冲器234中的旧数据,步骤352。新数据类型设置为10型。
当商Q没有匹配时,步骤348,随后主机写入到不同的地址。扇区数据缓冲器234的旧数据必须马上输出复制到闪存。数据类型首先设为01型。随后,旧数据被写入到闪存,或者写入缓存(例如连接到闪存的FIFO),步骤350。当旧数据已经被复制存储到闪存,数据类型可以被设置为读缓存11型。随后,程序回到步骤344,并且步骤346将是正确的,引入步骤352,主机数据将重写已被复制到闪存的旧数据。
图13A-C为命令队列管理器的运作流程图。命令队列管理器控制图11的命令队列230。当来自主机的命令是读取时,步骤432,并且来自主机的逻辑块地址(LBA)命中命令队列,即当逻辑块地址(LBA)落入从命令队列中一个逻辑块地址开始计算的长度LEN范围内时,步骤436,数据被从扇区数据缓冲器读取,步骤442,并发送至主机,闪存读取已经通过缓存读取而被避免。长度LEN减少,步骤444,并且如果需要(有标记)则更新命令队列,步骤446。当长度成为零时,步骤448,命令队列中的入口顺序可以在操作完成之前重新排优先次序,步骤450。当长度不是零时,对主机传送中下一个数据,程序从步骤432重复。
当主机读取命令的逻辑块地址没有命中命令队列时,步骤436,并且商Q在Q-R指针表232中匹配,步骤438,即虽然命令队列230中没有入口,扇区数据缓冲器234中有匹配的入口。当数据类型为读缓存型,步骤440,数据可以从扇区数据缓冲器234中读取,并发送到主机,步骤442。随后程序按之前的描述继续。
当数据类型不是读缓存型时,步骤440,程序从图13B中的A继续。读取闪存,并装载入SDRAM,并发送到主机,步骤458。Q、R和数据类型在Q-R指针表232中更新,步骤460,并且程序从图13A中的E继续至步骤444。
当商Q在Q-R指针表232中不匹配时,步骤438,表示在扇区数据缓冲器234中没有匹配的入口,程序从图13B中的B继续。在图13B中,当数据类型为写缓存(10或01)型时,步骤452,旧数据从扇区数据缓冲器234输出并写入到闪存、用于必要的备份,步骤454。随后,在数据输出复制至闪存后,设置清除旗标。一旦旧数据已经复制到用于写入到闪存的缓冲器,Q-R指针表232中的数据类型可以设置为读缓存11型,步骤456。闪存根据请求而被读取,并加载入SDRAM,以取代旧数据,并发送到主机,步骤458。在Q-R指针表232中更新Q、R和数据类型更新为读缓存11型,步骤460,程序从图13A中的E继续至步骤444。
当数据类型不是为记录在SDRAM的写缓存型时(而是00或11型),步骤452,根据请求而读取闪存,并加载到SDRAM,并发送给主机,步骤458。在Q-R指针表232中更新Q、R和数据类型更新为读缓存11型,步骤460,程序从图13A中的E继续至步骤444。
在图13A中,当主机命令为写入命令时,步骤432,并来自主机的逻辑块地址(LBA)命中命令队列,步骤434,程序从图13C的D继续。命令队列没有改变,步骤474。来自主机的写入数据被写入到扇区数据缓冲器234,步骤466。更新Q-R指针表232中的Q、R和数据类型,步骤472,程序从图13A中的E继续至步骤444。
在图13A中,当主机命令为写入命令,步骤432,并来自主机的逻辑块地址(LBA)没有命中命令队列,步骤434,程序从图13C中的C继续。当商Q在Q-R指针表232中匹配时,步骤462,表示在扇区数据缓冲器234中存在匹配的入口。设置新的常驻旗标,步骤464,指示入口没有与命令队列中的另一个入口重叠。来自主机的写入数据被写入到扇区数据缓冲器234,步骤466。在Q-R指针表232中更新Q、R和数据类型更新为01型,步骤472,程序从图13A中的E继续至步骤444。
当商Q在Q-R指针表232中没有匹配时,步骤462,表示在扇区数据缓冲器234中没有匹配的入口。旧数据从扇区数据缓冲器234输出,并写入闪存,步骤468。设置清除旗标,例如通过设置数据类型至读缓存11型。清除旗标指示数据已经被发送到闪存中,并可以安全地重写。一旦旧数据已经复制到用于写入闪存的缓冲器,Q-R指针表232中的数据类型可以设置为读缓存11型,步骤470。来自主机的写入数据被写入到扇区数据缓冲器234,步骤466。更新Q-R指针表格232中的Q、R和数据类型,步骤472,程序从图13A中的E继续至步骤444。
在图13A中,当主机命令为写入命令,步骤432,并来自主机的逻辑块地址(LBA)命中命令队列,步骤434,程序从图13C中的D继续。步骤474中对命令队列不作任何处理,随后继续将来自主机的数据写入扇区数据缓冲器234,步骤466。在Q-R指针表232中更新Q、R和数据类型更新为10型,步骤472,程序从图13A中的E继续至步骤444。
图14突出显示了SDRAM和闪存中的页对齐。每页可以具有若干个扇区的数据,例如在本实施例中每页有8个扇区。一个主机传送没有页对齐的13个扇区。首先四个扇区0,1,2,3存储在SDRAM 60扇区数据缓冲器234的页1中,同时其次的八个扇区4至11存储在页2,最后的扇区12存储在页3。
当扇区数据缓冲器234内的数据被输出复制到闪存时,来自此次传送的数据被存储在闪存的三个物理页面。该三个页面不须是连续的页号,但是可以在不同的未加工NAND闪存芯片68上。逻辑块地址、序列号(SEQ#)、和扇区有效位元(sector valid bit)也存储给闪存的每个物理页。物理页101中的八个扇区有效位元都设置为1,因为所有八个扇区均为有效。物理页100中的后四个扇区有效位元均设置为1,因为有效数据存储在该页的后四个扇区。这些扇区为主机传送的扇区0,1,2,3。物理页102接收来自主机传送的最后扇区12,并将该扇区存储在物理页102中的第一扇区并设置该扇区有效位元为1。其他七个扇区的有效位元均设置为0,这七个扇区的数据扇区保持不变。
图15突出显示了未对齐的数据的合并。物理页100,101,102已经写入,如根据图14的描述。新主机数据写入SDRAM缓冲器的页1和2,并与存储在物理页101的旧数据的Q和R匹配。
带有数据A,B,C,D,E的页1内的扇区被写入到新的物理页103。因为此次的新传送,物理页103的序列号(SEQ#)增加为1。
旧物理页101变为无效,其扇区数据6,7,8,9,10,11被复制到新物理页200。来自SDRAM 60的主机数据F,G被写入到该物理页200的前两个扇区,以合并数据。旧数据4,5被新数据F,G取代。SEQ#用于区分哪个版本是新的,在这种情况下,物理页101和200具有相同的逻辑块地址号,如图15所示。固件将检查其SEQ#,以确定哪页(物理页200)是有效的。
图16A-K为采用闪存系统中SDRAM缓冲器与命令队列的实施例。SDRAM 60具有扇区数据缓冲器234,为了方便说明,扇区数据有16个位置。在本实施例中,每个位置保存一个扇区,但其他基于页的实施例可以每个页位置存储多个扇区。SDRAM 60中的这些位置可以标记为0至15。因为SDRAM 60中有16个位置,逻辑块地址(LBA)是除以16,余数R选择SDRAM 60中的16个位置中的一个。
在图16A中,在初始化后,命令队列230为空的。SDRAM 60中没有存储主机扇区数据。在图16B中,主机写入C0的LBA=1,长度LEN为3。入口加载到命令队列230用于写C0,逻辑块地址LBA设置为1,长度LEN设置为3。因为LBA除以16得到商Q为0,且余数R为1,所以0,1存储为Q,R。数据类型DT设置为10,显示为脏和还未输出复制到闪存。数据C0写入SDRAM 60内位置1,2,3。Q-R指针表232的三个扇区1,2,3指向相应的扇区数据缓冲器234,并且第一扇区的Q,R,DT为(0,1,10),第二扇区为(0,2,10),最后的扇区为(0,3,10)。写入的数据值C0可以具有任意值,并且每个扇区可以有不同值。在本实施例中,C0简单地标识写入命令。
在图16C中,主机写入C1的LBA=5,长度LEN为1。在命令队列230装载另一个入口以写入C1,逻辑块地址LBA设置为5,长度LEN设置为1。由于逻辑块地址LBA除以16得到的商Q为0,余数R为5,所以储存0,5为Q,R。数据类型DT设置为10,显示为脏和还未输出复制到闪存。数据C1被写入SDRAM 60中扇区数据234的位置5。Q-R指针表格232的扇区5填入(0,5,10)。
在图16D中,主机写入C2的LBA=14,长度LEN为4。命令队列230中装载第三入口以写入C2,逻辑块地址LBA设置为14,长度设置为4。由于逻辑块地址LBA除以16的商Q为0,余数R为14,所以0,14存储为Q,R。数据类型DT设置为10,显示为脏和还未输出复制到闪存。
由于长度LEN为4写入到扇区14,15,0,1,这跨过扇区15覆盖到扇区0,该入口的跨界旗标X设置为1。由于扇区1之前已经写入C0,而C0还未被写入到闪存,扇区1中的旧的C0数据必须即时输出复制到闪存。第一入口的数据类型改为01,这显示需要即时写入闪存。该数据类型更优先于其他数据类型,因此输出复制到闪存可以比其他请求更迅速发生。在输出复制到闪存之后,Q-R指针表232的四个扇区14,15,0,1填入(0,14,10),(0,15,10),(1,0,10)和(1,1,10)。
在图16E中,扇区1的旧C0数据的输出已经完毕。命令队列230的第一入口被更新,以说明被输出的扇区1。逻辑块地址LBA从1改变为2,余数R从1改变为2,长度从3减为2。因此,命令队列230的第一入口现在覆盖两个扇区的旧写入C0,而非三个。数据类型改变为读缓存11型,因为其他扇区2,3也与扇区1一起复制到闪存。
此时,旧C0数据已经被输出,来自主机的C2写入数据被写入SDRAM 60的扇区数据234的扇区14,15,0,1,如图16E所示。
在图16F中,主机写入C3的LBA=21,长度为3个扇区。在命令队列230中载入第四入口以写入C3,逻辑块地址LBA设置为21,长度LEN设置为3。由于逻辑块地址LBA除以16的商Q为1,余数R为5,所以1,5存储为Q,R。数据类型DT设置为10,因为新的C3数据将为脏数据,并还未输出复制到闪存。
新数据C3将被写入SDRAM 60中的扇区5,6,7。除了扇区5之外,这些扇区是空的,该扇区5有必须输出到闪存的旧的C1数据。命令队列230的扇区5入口C1的数据类型改变为01,以请求即时写入闪存。在图16G中,一旦该输出完成,数据类型改变为读缓存11型,以显示旧的C1数据已经被复制到闪存。旧的C1数据仍然存在于SDRAM 60的扇区数据234的扇区5。
在图16H中,新的C3数据写入SDRAM 60中的扇区数据234的扇区5,6,7。扇区5中的旧C1数据被重改写,所以命令队列230中其入口C1的数据类型改变为空型00。旧的C1入口可以被清除并随后被新主机命令重写。Q-R指针表232的扇区5,6,7填入(1,5,10),(1,6,10)和(1,7,10)。
在图16I中,主机读取R4的LBA=18,长度LEN为3个扇区。逻辑块地址LBA除以16,得到商Q为1和余数R为2。在命令队列230中被装载新入口以读取R4,数据类型为读缓存11型,因为新的清洁数据将从闪存读取出存到SDRAM 60的扇区数据234中。
位置R=2具有相同的商Q为1,数据类型为读缓存11型,表示扇区数据为可用。由于位置R=2和3已经加载了C0,命令队列230中第一入口C0显示商Q为0,同时新的商Q为1,两个Q不匹配。主机不能读取SDRAM 60的扇区数据234中旧的C0数据。取而代之,旧的C0数据应被输出到闪存。尽管如此,因为数据类型已经为读缓存11型,显示C0数据已经在图16D中输出,因此无需再输出并且可以被改写。C0的旧入口被弃为无效,新的数据R4数据从闪存被读取,并写入SDRAM 60的扇区2,3,4,如图16J所示。
在图16K中,从SDRAM 60的扇区数据234中的扇区2,3,4读取新数据R4,并发送到主机。Q-R指针表232的扇区2,3,4填入(1,2,11),(1,3,11)和(1,4,11)。扇区0和扇区1保持不变。
可选实施例
可以预期有其他实施例。例如,图1A以及其他可以有很多变体。ROM例如EEPROM可以连接到或者属于虚拟存储处理器140,或者另一个虚拟存储桥42和NVM控制器76可以将虚拟存储处理器140连接到另一个未加工NAND闪存芯片68,该闪存芯片68用于存储虚拟存储处理器140的固件。该固件也可以存储在主要的闪存模块。
闪存可以嵌入主板或SSD板或可以在单独的模块上。可以增加电容器、缓冲器、电阻器、或其他元件。智能存储开关30可以集成在主板上或在单独的板或模块上。NVM控制器76可以与智能存储开关30或者未加工NAND闪存芯片68集成作为单芯片装置或插件模块或板。
利用控制器的总统-管理者两层设置,智能存储开关30的控制器可以比单层次控制平均读写、坏块管理、重新映射、缓存、电源管理等所需的控制器简单。由于较低层功能在每个闪存模块73中的未加工NAND闪存芯片68之间作为管理者层功能通过NVM控制器76来执行,智能存储开关30中的总统层功能可以简化。较便宜的硬件可以用在智能存储开关30内,例如利用8051处理器用于虚拟存储处理器140或智能存储事务管理器36,而不是更贵的处理器核心例如高级RISC计算机(Advanced RISC Machine)ARM-9 CPU核心。
不同数量和设置的闪存块可以连接至智能存储开关。可以不采用逻辑块地址总线28或差动串行分组总线(differential serial packet bus),而采用其他串行总线例如同步双倍数据速率(Double Data Rate,DDR),差动串行分组数据总线(differential serial packetdata bus),传统闪存接口,等等。
模式逻辑可以只在加电时侦测引脚的状态,而不是侦测专用引脚的状态。可以用多个引脚状态的某一组合或系列来启动模式变更,或者内部寄存器(如配置寄存器)可以设置模式。多总线协议芯片可以具用附加的个性化引脚来选择要使用哪一个串行总线接口,或者可以有可编程寄存器,以将模式设为集线器模式或开关模式。
事务管理器及其控制器和功能可以用多种方式实施。功能可以由CPU或其他处理器编程和执行,或者可以在专用硬件、固件或某些组合中实施。功能的许多分区可以被替换。
通过对多个NVM控制器76使用奇偶校验码/纠错码(ECC),并将数据片段分配到多个非易失性内存块中,整个系统的可靠性大大地提高。尽管如此,可能仍需使用带DDR/SDRAM超高速缓存的CPU引擎,以达到复杂的纠错码/奇偶校验码的计算和产生所需要的计算能力。另一个优点是,即使一个闪存块或闪存模块损坏,数据也可以恢复,或者智能存储开关可以启动“故障恢复(Fault Recovery)”或“自动重建(Auto-Rebuild)”过程,以插入新的闪存模块,并恢复或重建丢失或损坏的数据。总体系统容错能力可大大提高。
可以换用更宽或更窄的数据总线和闪存芯片,例如带16或32位元数据通道的数据总线和闪存芯片。智能存储开关的内部或外部可以使用备选的总线架构,例如带嵌套或分段的总线。智能存储开关可以使用两个或两个以上的内部总线,以提高数据吞吐量。更复杂的开关结构可以取代内部或外部总线。
数据分割可以用各种方式完成,奇偶校验码和纠错码(ECC)也是一样。分组的重新排序可以根据数据排列而进行调整,以防止重新排序重叠的存储位置。智能开关可以与其他元件集成,或者作为独立的芯片。
可以增加另外的流水线或临时缓冲器和FIFO数据缓存器。例如,智能存储开关30中的主机FIFO可以为智能存储事务管理器36的一部分,或者可以存储在SDRAM 60中。独立的页缓冲器可以设置在每个通道内。当闪存模块73的未加工NAND闪存芯片68具有异步接口时,图2中闪存模块73的外部时钟输入CLK_SRC变为是不需要的。
单个封装、单个芯片、或一个多芯片封装可以包含一个或多个闪存通道和/或智能存储开关。
一个基于多层式存储单元(MLC)的闪存模块73可以有四个MLC闪存芯片(闪存芯片带有两个平行数据通道),但可以用不同的组合来形成其他闪存模块73,例如四个、八个或更多数据通道,或者八个、十六个或更多MLC闪存芯片。闪存模块和通道可以采用链、分支或阵列形式。例如,一个包含4个闪存模块73的分支可以成为链与智能存储开关30连接。可以用其他大小聚合或分割方案进行存储器不同的存取。可以使用闪存、氮化膜阱(SONOS)闪存、相变存储器(PCM)、铁电体随机存储器(FRAM)、磁阻性随机存储器(MRAM)、忆阻器(Memristor)、相变随机存储器(PRAM)、电阻式随机存储器(RRAM)、赛道存储器(Racetrack Memory)和纳米随机存储器(NRAM)。
主机可以是个人计算机(PC)主板或其他个人计算机平台、移动通讯装置、个人数码助理(PDA)、数码相机、协联装置或其他装置。主机总线或主机-装置接口可以为SATA、PCIE、SD、USB或其他主机总线,同时闪存模块73的内部总线可以为PATA,采用多个SD/MMC的多通道SSD,紧凑式闪存卡(compact flash,CF),USB,或其他并行接口。闪存模块73可以是标准的印刷电路板(PCB),或可以是封装在TSOP、BGA、LGA、COB、PIP、SIP、CSP、POP、或多芯片封装(MCP)等封装中,并可以包括未加工NAND型闪存芯片68或者未加工NAND型闪存芯片68可以为单独的闪存芯片。内部总线可以全部或部分地共享或者可以为单独的总线。SSD系统可以采用带其他元件(例如LED指示灯、电容器、电阻器等)的电路板。
方向术语例如上面、下面、向上、向下、顶部、底部等等是相对而言,并随系统或数据旋转、翻转等而变动。这些术语用于描述设备装置,但不是限制性的。
闪存模块73可以具有包含已封装的控制器和闪存裸片的单芯片封装,该单芯片封装可以集成在一个PCBA上,或者直接集成在主板上,以进一步简化组装,降低制造成本,并降低整体厚度。闪存芯片还可以与包含框架开放式闪存卡的其他实施例配合使用。
并非只为闪存使用智能存储开关30,还可以添加其他特性。例如,音乐播放器可以包含一个播放来自存储在闪存中的MP3数据的音频的控制器。装置可以添加音频插孔,以让用户插入耳机听音乐。装置可以添加无线传输器(如蓝牙传输器),以连接到无线耳机,而不是使用音频插孔。也可以添加红外线传输器(如IrDA)。也可以添加与无线鼠标、PDA、键盘、打印机、数码相机、MP3播放器或其他无线装置通信的蓝牙收发器。蓝牙收发器可以代替连接器,成为主连接器。蓝牙适配器可以有连接器、射频(RF)收发器、基频控制器、天线、闪存(EEPROM)、调压器、晶体、发光二极管(LED)、电阻器、电容器和电感器等。这些组件可以安装到PCB上,然后装入塑料或金属外壳中。
发明背景部分可以包含关于发明的问题或环境的背景信息,而不是介绍其他人的现有技术。因此,在背景部分包含资料,并不表示专利申请人承认现有技术。
此处介绍的任何方法或过程是在机器实施或计算机实施的,希望由机器、计算机或其他装置执行,而不是在没有此类机器协助的情况下人工执行。所产生的有形结果可以包括机器产生的报告或者其他在显示装置(如计算机监视器、投影装置、音频发生装置和有关的媒体装置)上显示的内容,并可以包括也是机器产生的打印件。其他机器的由计算机控制是另一种有形结果。
所介绍的任何优点和好处可能不适用于本发明的所有实施例。如果某个权利要求中叙述“构件”这个词,表明专利申请人希望权利要求被归入在35 USC Sect.112,第6段。“构件”这个词前面通常有一个包含一个或多个词的标签。“构件”这个词前面的词是希望方便权利要求参照的标签,不是希望表达结构限制。此类手段加功能的权利要求不仅涵盖此处介绍的执行功能的结构及其结构等效物,而且涵盖等效结构。例如,虽然钉子和螺丝具有不同的结构,但它们是等效结构,因为它们都执行紧固功能。不使用“构件”这个词的权利要求不希望被归入35 USC Sect.112,第6段。信号通常是电子信号,但也可能是光信号,如可以通过光纤线路传输的信号。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种多层闪存装置,其特征在于,所述装置包括:
智能存储开关,所述智能存储开关包括:
连接主机的上游接口,接收主机命令以存取非易失性存储器和接收主机数据及主机地址;
虚拟存储处理器,与所述上游接口连接,将主机发送的地址映射到指定闪存模块以产生逻辑块地址;
智能存储事务管理器,与所述虚拟存储处理器连接,管理来自所述主机的事务;
虚拟存储桥,设置于所述智能存储事务管理器和逻辑块地址总线之间;
非易失性存储器控制器,耦合到所述逻辑块地址总线,以接收所述虚拟存储处理器产生的逻辑块地址,以及来自所述虚拟存储桥的主机数据,并将所述逻辑块地址映射成物理块地址;
多个闪存模块,包括耦合到所述非易失性存储器控制器的未加工NAND型闪存芯片,用于将主机数据存储于所述非易失性存储器控制器产生的物理块地址所标识的内存块位置中。
2.如权利要求1所述的多层闪存装置,其特征在于,所述非易失性存储器控制器集成在所述闪存模块上。
3.如权利要求2所述的多层闪存装置,其特征在于,所述装置还包括:在每个闪存模块中的局部时钟脉冲源,所述局部时钟脉冲源产生局部时钟脉冲,以定时提醒所述非易失性存储器控制器和所述未加工NAND型闪存芯片的接口。
4.如权利要求1所述的多层闪存装置,其特征在于,所述闪存模块以直接焊接的方式经过连接器和插槽,实体安装在主机主板上,或者嵌入在主机主板内。
5.如权利要求1所述的多层闪存装置,其特征在于,所述非易失性存储器控制器集成在所述智能存储开关。
6.如权利要求1所述的多层闪存装置,其特征在于,所述智能存储开关还包括:
将主机数据分割成数据片段的数据分割单元,所述数据片段被分配给所述多个闪存模块中的不同的模块;
产生所述主机数据的检错码的奇偶校验码发生器,所述检错码与所述主机数据一起存储。
7.如权利要求1所述的多层闪存装置,其特征在于,所述装置还包括:
临时存储主机数据的易失性内存缓冲器,当电源断开时,所述易失性内存缓冲器丢失数据;
所述多个闪存模块中的未加工NAND型闪存芯片为非易失性存储器,当电源断开时,所述非易失性存储器保留数据;
其中所述智能存储开关还包括耦合在所述智能存储事务管理器和所述易失性内存缓冲器之间的虚拟缓冲桥。
8.如权利要求7所述的多层闪存装置,其特征在于,所述装置还包括:
扇区数据缓冲器,该扇区数据缓冲器在所述易失性内存缓冲器中,用于临时缓存主机数据,并具有用于存储主机数据的L个位置;
Q-R指针表,该Q-R指针表在所述易失性内存缓冲器中,用于存储主机地址除以L所得到的商Q和余数R,其中Q、R和L为整数,R标识所述扇区数据缓冲器中所述L个位置的其中一个。
9.如权利要求8所述的多层闪存装置,其特征在于,所述装置还包括:命令队列,该命令队列在所述易失性内存缓冲器中,用于存储从主机接收的且还未写入数据到所述未加工NAND闪存芯片的命令入口。
10.如权利要求9所述的多层闪存装置,其特征在于,所述装置还包括:
在所述命令队列中的数据类型字段,该数据类型字段区分所述命令队列中的命令,其中所述数据类型字段指示扇区数据缓冲器中旧主机数据即时输出复制到闪存的操作优先于对闪存的其他写入;
在所述命令队列中的跨界旗标,该跨界旗标指示当主机命令传送数据到扇区数据缓冲器中多个位置,该多个位置包括由最大余数R=L-1标识的最后位置和由最小余数R=0标识的第一位置。
11.一种固态硬盘,其特征在于,所述固态硬盘包括:
易失性内存缓冲器构件,临时存储主机数据在当电源断开时会丢失数据的易失性内存中;
智能存储开关构件,转换主机命令到多个下游装置,所述智能存储开关构件包括:
耦合到主机的上游接口构件,接收主机命令以存取闪存并接收主机数据和主机地址;
虚拟存储处理器构件,与所述上游接口构件连接,将主机地址转化到指定闪存模块,以产生逻辑块地址;
智能存储事务管理器构件,与所述虚拟存储处理器构件连接,管理来自主机的事务;
虚拟存储桥构件,位于所述智能存储事务管理构件与逻辑块地址总线之间,用于传送主机数据和逻辑块地址;
数据分割构件,将主机数据分割成数据片段,所述数据片段被分配给不同的闪存模块;
多个闪存模块,所述闪存模块包括:
控制闪存操作的低层控制器构件,与逻辑块地址总线耦合,以接收所述虚拟存储处理器构件产生的逻辑块地址和来自所述虚拟存储桥构件的主机数据;
在所述低层控制器构件中的第二层映射构件,将所述逻辑块地址映射到物理块地址;
耦合到所述低层控制器构件的未加工NAND型闪存芯片,所述未加工NAND型闪存芯片存储主机数据在物理块地址标识的闪存块位置,所述物理块地址由所述低层控制器构件中的所述第二层映射构件产生;
所述多个闪存模块中的未加工NAND型闪存芯片为非易失性存储器,当电源断开时,所述未加工NAND型内存芯片仍保留数据。
12.如权利要求11所述的固态硬盘,其特征在于,所述固态硬盘还包括:
扇区数据缓冲器构件,该扇区数据缓冲器构件在所述易失性内存缓冲器构件中,用于存储主机数据,并具有用于存储主机数据的L个位置;
命令队列构件,该命令队列元件在所述易失性内存缓冲器构件中,用于存储从主机接收的且还未写入数据到所述未加工NAND闪存芯片的命令入口;
Q-R指针表构件,该Q-R指针表构件在所述易失性内存缓冲器元件中,用于存储主机地址除以L所得到的商Q和余数R,其中Q、R和L为整数,R标识所述扇区数据缓冲器构件中所述L个位置的其中一个。
13.如利要求11所述的固态硬盘,其特征在于,所述未加工NAND型闪存芯片包括堆叠在一起、并可交错存取的两个闪存裸片,每个闪存裸片包括可交错存取的两个平面,其中数据被分割的分段的大小等于每个通道四页,且每个通道具有一个所述闪存模块。
14.如权利要求13所述的固态硬盘,其特征在于,分段深度等于N倍的分段大小,其中N为所述多个闪存模块的数量,其中所述分段大小等于可以同时写入一个所述闪存模块的页。
15.如权利要求11所述的固态硬盘,其特征在于,所述闪存模块以直接焊接的方式,经过连接器和插槽,实体安装在主机主板上,或者嵌入在所述主机主板内。
16.一种分割式非易失性存储器系统,其特征在于,所述系统包括:
与主机连接的上游接口,所述主机产生主机数据和主机序列中的主机命令;
耦合到所述上游接口的智能存储事务管理器,所述智能存储事务管理器将来自所述主机序列的主机命令重新排序,形成重新排序的操作序列;
多个非易失性存储器模块,每个非易失性存储器模块具有多个用于存储主机数据,当电源断开时仍保留数据的非易失性存储器的内存块;
虚拟存储处理器,分配主机命令到所述多个非易失性存储器模块中的指定装置,所述虚拟存储处理器也存储从每个非易失性存储器模块得到的属性,该属性包括模块内存容量,其中所述虚拟存储处理器向主机汇报模块内存容量的总和;
将主机数据分割成存储在所述多个非易失性存储器模块的数据片段的数据分割单元;
耦合在所述智能存储事务管理器和多个非易失性存储器模块之间的虚拟存储桥;
内置于每个非易失性存储器模块的低层控制器,所述低层控制器包括重新映射单元,所述重新映射单元将从所述虚拟存储桥接收到的逻辑地址转换为存取所述多个非易失性存储器模块的物理地址。
17.如权利要求16所述的分割式非易失性存储器系统,其特征在于,所述系统还包括:通电时起作用的截断处理,该截断处理确定所述多个非易失性存储器模块的最小容量,并将所有所述非易失性存储器模块的大小设置为该最小容量,其中所述非易失性存储器模块包括闪存、氮化膜阱闪存、相变存储器、铁电体随机存储器、磁阻性随机存储器、忆阻器、相变随机存储器、电阻式随机存储器、赛道存储器、或纳米随机存储器。
18.如权利要求16所述的分割式非易失性存储器系统,其特征在于,所述系统还包括:
用于临时存储主机数据的动态随机存储器缓冲器;
在所述动态随机存储器缓冲器和智能存储事务管理器之间的虚拟缓冲桥;
在所述动态随机存储器缓冲器中的扇区数据缓冲器,该扇区数据缓冲器临时缓存主机数据,所述扇区数据缓冲器具有用于存储主机数据的L个位置;
在所述动态随机存储器缓冲器中的Q-R指针表,该Q-R指针表存储主机地址除以L得到的商Q和余数R,其中Q、R和L为整数,R标识所述扇区数据缓冲器中L个位置中的一个。
19.如权利要求18所述的分割式非易失性存储器系统,其特征在于,所述系统还包括:在所述动态随机存储器缓冲器中的命令队列,该命令队列存储从主机接收到的、且还未写入数据到所述非易失性存储器的命令入口。
20.一种物理块地址闪存模块,其特征在于,所述闪存模块包括:
印有配线轨迹的基板,所述配线轨迹传导信号;
沿所述基板第一边缘的多个金属接触点,该多个金属接触点与主板上的存储器模块插槽匹配;
安装在所述基板上用于存储来自主板的主机数据的多个非易失性存储器芯片,当闪存模块电源断开时所述多个非易失性存储器芯片会保留数据;以及,
物理块地址总线,该物理块地址总线由所述基板上连接所述多个金属接触点的配线轨迹形成,通过所述物理块地址总线,将所述物理块地址闪存模块上的多个非易失性存储器芯片连接到主板。
21.一种逻辑块地址闪存模块,其特征在于,所述闪存模块包括:
印有配线轨迹的基板,所述配线轨迹传导信号;
沿所述基板第一边缘的多个金属接触点,该多个金属接触点与主板上的存储器模块插槽匹配;
安装在所述基板上用于存储来自主板的主机数据的多个非易失性存储器芯片,当闪存模块电源断开时所述多个非易失性存储器芯片会保留数据;
逻辑块地址总线,该逻辑块地址总线由所述基板上连接所述多个金属接触点的配线轨迹形成;
安装在所述基板上的非易失性存储器控制器,该非易失性存储器控制器耦合到所述逻辑块地址总线,以通过所述多个金属接触点从主板接收逻辑块地址;
在所述非易失性存储器控制器中的第二层映射器,该第二层映射器将所述逻辑块地址映射到物理块地址,所述多个非易失性存储器芯片存储主机数据到所述非易失性存储器控制器中的第二层映射器产生的物理块地址所标识的存储块位置;以及,
物理块地址总线,该物理块地址总线由所述基板上没有连接到所述多个金属接触点的内部子集配线轨迹形成,通过所述物理块地址总线,将所述逻辑块地址闪存模块上的多个非易失性存储器芯片和所述非易失性存储器控制器互相耦合,再通过所述逻辑块地址总线,将所述逻辑块地址闪存模块上的多个非易失性存储器芯片经过所述非易失性存储器控制器连接到主板。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/252,155 | 2008-10-15 | ||
US12/252,155 US8037234B2 (en) | 2003-12-02 | 2008-10-15 | Command queuing smart storage transfer manager for striping data to raw-NAND flash modules |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727976A true CN101727976A (zh) | 2010-06-09 |
CN101727976B CN101727976B (zh) | 2012-09-19 |
Family
ID=42448720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101635275A Expired - Fee Related CN101727976B (zh) | 2008-10-15 | 2009-08-19 | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727976B (zh) |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043731A (zh) * | 2010-12-17 | 2011-05-04 | 天津曙光计算机产业有限公司 | 一种存储系统的缓存系统 |
CN102411987A (zh) * | 2010-09-20 | 2012-04-11 | 三星电子株式会社 | 存储器件及其自交织方法 |
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
CN102568575A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 闪速存储器件以及包括其的存储系统 |
CN102566674A (zh) * | 2010-09-30 | 2012-07-11 | 苹果公司 | 固态存储器模块、便携式计算设备及其装配方法 |
CN103123809A (zh) * | 2011-11-17 | 2013-05-29 | 罗伯特·博世有限公司 | 用于存储频率的装置和用于存储和读取频率的方法 |
CN103635883A (zh) * | 2011-06-30 | 2014-03-12 | 桑迪士克科技股份有限公司 | 用于存储器核的智能桥接器 |
CN104347118A (zh) * | 2013-08-02 | 2015-02-11 | 英飞凌科技股份有限公司 | 用于仿真电可擦除可编程只读存储器的系统及方法 |
CN104616688A (zh) * | 2015-03-05 | 2015-05-13 | 上海磁宇信息科技有限公司 | 一种集成mram的固态硬盘控制芯片及固态硬盘 |
CN106057215A (zh) * | 2015-04-02 | 2016-10-26 | 株式会社东芝 | 存储装置、控制器以及控制方法 |
CN106155916A (zh) * | 2015-02-12 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及数据读取方法 |
CN106844229A (zh) * | 2017-01-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 固态硬盘固件映射表的组织方法、系统及装置 |
CN107291392A (zh) * | 2017-06-21 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种固态硬盘及其读写方法 |
CN107391026A (zh) * | 2016-04-27 | 2017-11-24 | 慧荣科技股份有限公司 | 闪存装置及闪存存储管理方法 |
CN107436847A (zh) * | 2016-03-25 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 延长非易失性存储器的使用寿命的系统、方法及计算机程序产品 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器系统及其控制方法 |
CN108170382A (zh) * | 2018-02-05 | 2018-06-15 | 力瑞信(深圳)科技有限公司 | 一种固态硬盘及数据读取系统 |
CN108292270A (zh) * | 2015-12-02 | 2018-07-17 | 高通股份有限公司 | 用于使用动态局部信道交错的存储管理的系统和方法 |
CN108509351A (zh) * | 2017-02-28 | 2018-09-07 | 东芝存储器株式会社 | 存储器系统和控制方法 |
CN108647152A (zh) * | 2018-04-27 | 2018-10-12 | 江苏华存电子科技有限公司 | 一种提升闪存存储装置中以数据数组保护数据的管理方法 |
CN108885589A (zh) * | 2015-12-22 | 2018-11-23 | 华睿泰科技有限责任公司 | 用于cdm工作负载的闪存友好型高速缓存的方法 |
CN109144900A (zh) * | 2018-09-04 | 2019-01-04 | 杭州阿姆科技有限公司 | 一种ssd中块转换层的实现方法 |
CN109426454A (zh) * | 2017-08-29 | 2019-03-05 | 三星电子株式会社 | 具备独立磁盘冗余阵列的固态驱动器及其处理请求的方法 |
US10317955B2 (en) | 2010-09-30 | 2019-06-11 | Apple Inc. | Portable computing device |
US10394456B2 (en) | 2017-08-23 | 2019-08-27 | Micron Technology, Inc. | On demand memory page size |
TWI679536B (zh) * | 2017-08-23 | 2019-12-11 | 美商美光科技公司 | 具有虛擬頁面大小之記憶體 |
US10510430B2 (en) | 2016-04-27 | 2019-12-17 | Silicon Motion, Inc. | Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips |
CN110955387A (zh) * | 2019-10-25 | 2020-04-03 | 合肥沛睿微电子股份有限公司 | 自适应识别闪存类型方法及计算机可读取存储介质及装置 |
CN111149091A (zh) * | 2017-10-02 | 2020-05-12 | 西部数据技术公司 | 基于跨多个装置的协调内部地址方案的冗余编码条带 |
CN111208951A (zh) * | 2013-11-07 | 2020-05-29 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的系统和方法 |
CN111324414A (zh) * | 2018-12-17 | 2020-06-23 | 北京忆芯科技有限公司 | Nvm存储介质模拟器 |
US10713115B2 (en) | 2016-04-27 | 2020-07-14 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及系统 |
US10846173B2 (en) | 2016-04-27 | 2020-11-24 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
CN112631518A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种数据存储的方法和设备 |
CN113924546A (zh) * | 2019-06-12 | 2022-01-11 | 国际商业机器公司 | 非易失性存储器中的磨损感知块模式转换 |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
CN114546267A (zh) * | 2022-02-14 | 2022-05-27 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932778A (zh) * | 2006-07-23 | 2007-03-21 | 海信集团有限公司 | 一种对nand flash存储器进行虚拟空间管理的方法 |
CN100487678C (zh) * | 2006-08-23 | 2009-05-13 | 晶天电子(深圳)有限公司 | 带有闪存控制器的电子数据闪存卡 |
CN100501702C (zh) * | 2007-01-17 | 2009-06-17 | 晶天电子(深圳)有限公司 | 一种闪存卡及其缓存、恢复数据的方法 |
-
2009
- 2009-08-19 CN CN2009101635275A patent/CN101727976B/zh not_active Expired - Fee Related
Cited By (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411987A (zh) * | 2010-09-20 | 2012-04-11 | 三星电子株式会社 | 存储器件及其自交织方法 |
KR20160129101A (ko) * | 2010-09-30 | 2016-11-08 | 애플 인크. | 휴대용 컴퓨팅 장치 |
KR101885014B1 (ko) * | 2010-09-30 | 2018-08-30 | 애플 인크. | 휴대용 컴퓨팅 장치 |
CN102566674A (zh) * | 2010-09-30 | 2012-07-11 | 苹果公司 | 固态存储器模块、便携式计算设备及其装配方法 |
US10061361B2 (en) | 2010-09-30 | 2018-08-28 | Apple Inc. | Portable computing device |
US10317955B2 (en) | 2010-09-30 | 2019-06-11 | Apple Inc. | Portable computing device |
US9829932B2 (en) | 2010-09-30 | 2017-11-28 | Apple Inc. | Portable computing device |
CN102566674B (zh) * | 2010-09-30 | 2015-12-16 | 苹果公司 | 固态存储器模块、便携式计算设备及其装配方法 |
CN102043731A (zh) * | 2010-12-17 | 2011-05-04 | 天津曙光计算机产业有限公司 | 一种存储系统的缓存系统 |
CN102568575A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 闪速存储器件以及包括其的存储系统 |
CN103635883A (zh) * | 2011-06-30 | 2014-03-12 | 桑迪士克科技股份有限公司 | 用于存储器核的智能桥接器 |
CN103123809A (zh) * | 2011-11-17 | 2013-05-29 | 罗伯特·博世有限公司 | 用于存储频率的装置和用于存储和读取频率的方法 |
CN103123809B (zh) * | 2011-11-17 | 2017-09-26 | 罗伯特·博世有限公司 | 用于存储频率的装置和用于存储和读取频率的方法 |
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
CN104347118A (zh) * | 2013-08-02 | 2015-02-11 | 英飞凌科技股份有限公司 | 用于仿真电可擦除可编程只读存储器的系统及方法 |
CN104347118B (zh) * | 2013-08-02 | 2018-02-02 | 英飞凌科技股份有限公司 | 用于仿真电可擦除可编程只读存储器的系统及方法 |
CN111208951B (zh) * | 2013-11-07 | 2024-05-03 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的系统和方法 |
CN111208951A (zh) * | 2013-11-07 | 2020-05-29 | 奈特力斯股份有限公司 | 混合内存模块以及操作混合内存模块的系统和方法 |
CN106155916A (zh) * | 2015-02-12 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及数据读取方法 |
CN106155916B (zh) * | 2015-02-12 | 2020-10-13 | 慧荣科技股份有限公司 | 数据储存装置以及数据读取方法 |
CN104616688A (zh) * | 2015-03-05 | 2015-05-13 | 上海磁宇信息科技有限公司 | 一种集成mram的固态硬盘控制芯片及固态硬盘 |
CN106057215A (zh) * | 2015-04-02 | 2016-10-26 | 株式会社东芝 | 存储装置、控制器以及控制方法 |
CN106057215B (zh) * | 2015-04-02 | 2019-10-11 | 株式会社东芝 | 存储装置、控制器以及控制方法 |
CN108292270A (zh) * | 2015-12-02 | 2018-07-17 | 高通股份有限公司 | 用于使用动态局部信道交错的存储管理的系统和方法 |
CN108885589A (zh) * | 2015-12-22 | 2018-11-23 | 华睿泰科技有限责任公司 | 用于cdm工作负载的闪存友好型高速缓存的方法 |
CN107436847A (zh) * | 2016-03-25 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 延长非易失性存储器的使用寿命的系统、方法及计算机程序产品 |
US11500722B2 (en) | 2016-04-27 | 2022-11-15 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10771091B2 (en) | 2016-04-27 | 2020-09-08 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11030042B2 (en) | 2016-04-27 | 2021-06-08 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
CN107391026B (zh) * | 2016-04-27 | 2020-06-02 | 慧荣科技股份有限公司 | 闪存装置及闪存存储管理方法 |
US10846173B2 (en) | 2016-04-27 | 2020-11-24 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US11847023B2 (en) | 2016-04-27 | 2023-12-19 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
CN107391026A (zh) * | 2016-04-27 | 2017-11-24 | 慧荣科技股份有限公司 | 闪存装置及闪存存储管理方法 |
US10510430B2 (en) | 2016-04-27 | 2019-12-17 | Silicon Motion, Inc. | Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips |
US11916569B2 (en) | 2016-04-27 | 2024-02-27 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10713115B2 (en) | 2016-04-27 | 2020-07-14 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10643733B2 (en) | 2016-04-27 | 2020-05-05 | Silicon Motion, Inc. | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips |
CN108073470B (zh) * | 2016-11-07 | 2023-04-07 | 三星电子株式会社 | 执行地址映射表的纠错的存储器系统及其控制方法 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器系统及其控制方法 |
CN106844229B (zh) * | 2017-01-07 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 固态硬盘固件映射表的组织方法、系统及装置 |
CN106844229A (zh) * | 2017-01-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 固态硬盘固件映射表的组织方法、系统及装置 |
CN108509351A (zh) * | 2017-02-28 | 2018-09-07 | 东芝存储器株式会社 | 存储器系统和控制方法 |
CN107291392A (zh) * | 2017-06-21 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种固态硬盘及其读写方法 |
US12001715B2 (en) | 2017-08-23 | 2024-06-04 | Micron Technology, Inc. | Memory with virtual page size |
US11747982B2 (en) | 2017-08-23 | 2023-09-05 | Micron Technology, Inc. | On-demand memory page size |
TWI679536B (zh) * | 2017-08-23 | 2019-12-11 | 美商美光科技公司 | 具有虛擬頁面大小之記憶體 |
US10394456B2 (en) | 2017-08-23 | 2019-08-27 | Micron Technology, Inc. | On demand memory page size |
US11157176B2 (en) | 2017-08-23 | 2021-10-26 | Micron Technology, Inc. | On demand memory page size |
US11210019B2 (en) | 2017-08-23 | 2021-12-28 | Micron Technology, Inc. | Memory with virtual page size |
CN109426454A (zh) * | 2017-08-29 | 2019-03-05 | 三星电子株式会社 | 具备独立磁盘冗余阵列的固态驱动器及其处理请求的方法 |
CN111149091B (zh) * | 2017-10-02 | 2023-09-12 | 西部数据技术公司 | 基于跨多个装置的协调内部地址方案的冗余编码条带 |
CN111149091A (zh) * | 2017-10-02 | 2020-05-12 | 西部数据技术公司 | 基于跨多个装置的协调内部地址方案的冗余编码条带 |
CN108170382B (zh) * | 2018-02-05 | 2023-12-12 | 力瑞信(深圳)科技有限公司 | 一种固态硬盘及数据读取系统 |
CN108170382A (zh) * | 2018-02-05 | 2018-06-15 | 力瑞信(深圳)科技有限公司 | 一种固态硬盘及数据读取系统 |
CN108647152A (zh) * | 2018-04-27 | 2018-10-12 | 江苏华存电子科技有限公司 | 一种提升闪存存储装置中以数据数组保护数据的管理方法 |
CN109144900B (zh) * | 2018-09-04 | 2023-04-07 | 杭州阿姆科技有限公司 | 一种ssd中块转换层的实现方法 |
CN109144900A (zh) * | 2018-09-04 | 2019-01-04 | 杭州阿姆科技有限公司 | 一种ssd中块转换层的实现方法 |
CN111324414A (zh) * | 2018-12-17 | 2020-06-23 | 北京忆芯科技有限公司 | Nvm存储介质模拟器 |
CN111324414B (zh) * | 2018-12-17 | 2024-03-26 | 北京忆芯科技有限公司 | Nvm存储介质模拟器 |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及系统 |
CN111506255B (zh) * | 2019-01-31 | 2023-09-26 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及系统 |
CN113924546A (zh) * | 2019-06-12 | 2022-01-11 | 国际商业机器公司 | 非易失性存储器中的磨损感知块模式转换 |
CN110955387B (zh) * | 2019-10-25 | 2023-10-24 | 合肥沛睿微电子股份有限公司 | 自适应识别闪存类型方法及计算机可读取存储介质及装置 |
CN110955387A (zh) * | 2019-10-25 | 2020-04-03 | 合肥沛睿微电子股份有限公司 | 自适应识别闪存类型方法及计算机可读取存储介质及装置 |
CN112631518A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种数据存储的方法和设备 |
CN114546267B (zh) * | 2022-02-14 | 2022-11-18 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
CN114546267A (zh) * | 2022-02-14 | 2022-05-27 | 深圳源创存储科技有限公司 | 一种基于大数据计算的固态硬盘及固态硬盘系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101727976B (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727976B (zh) | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 | |
US11042437B2 (en) | Metadata hardening and parity accumulation for log-structured arrays | |
US10664345B2 (en) | Physical page, logical page, and codeword correspondence | |
US8266367B2 (en) | Multi-level striping and truncation channel-equalization for flash-memory system | |
CN101644995B (zh) | 多层控制多闪存装置、存储装置和数据分割固态硬盘 | |
CN102549554B (zh) | 基于条带的存储器操作 | |
CN101923512B (zh) | 三层闪存装置、智能存储开关和三层控制器 | |
US8347138B2 (en) | Redundant data distribution in a flash storage device | |
US10872012B2 (en) | XOR recovery schemes utilizing external memory | |
EP2732373B1 (en) | Method and apparatus for flexible raid in ssd | |
US20110213921A1 (en) | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules | |
US20090037652A1 (en) | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules | |
US20090204872A1 (en) | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules | |
US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
US20090193184A1 (en) | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System | |
KR20130041341A (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
US9513830B2 (en) | Multi-level data protection for nonvolatile memory system | |
US11550658B1 (en) | Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory | |
CN104166558B (zh) | 固件码载入方法、存储器控制器与存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220412 Granted publication date: 20120919 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20220527 Granted publication date: 20120919 |
|
PD01 | Discharge of preservation of patent | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120919 |
|
CF01 | Termination of patent right due to non-payment of annual fee |