CN101923512B - 三层闪存装置、智能存储开关和三层控制器 - Google Patents
三层闪存装置、智能存储开关和三层控制器 Download PDFInfo
- Publication number
- CN101923512B CN101923512B CN 201010135362 CN201010135362A CN101923512B CN 101923512 B CN101923512 B CN 101923512B CN 201010135362 CN201010135362 CN 201010135362 CN 201010135362 A CN201010135362 A CN 201010135362A CN 101923512 B CN101923512 B CN 101923512B
- Authority
- CN
- China
- Prior art keywords
- flash
- data
- intelligent storage
- capacity
- memory
- 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.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 title claims abstract description 430
- 230000015654 memory Effects 0.000 claims abstract description 330
- 238000013507 mapping Methods 0.000 claims abstract description 87
- 230000011218 segmentation Effects 0.000 claims description 38
- 238000007726 management method Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 21
- 238000011144 upstream manufacturing Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 5
- 238000013506 data mapping Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims 1
- 230000005055 memory storage Effects 0.000 abstract description 7
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 238000004064 recycling Methods 0.000 abstract 1
- OBKXEAXTFZPCHS-UHFFFAOYSA-N 4-phenylbutyric acid Chemical compound OC(=O)CCCC1=CC=CC=C1 OBKXEAXTFZPCHS-UHFFFAOYSA-N 0.000 description 50
- 238000005299 abrasion Methods 0.000 description 21
- 238000011067 equilibration Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 12
- 239000012634 fragment Substances 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 241001269238 Data Species 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 238000002156 mixing Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 239000002184 metal Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 239000000835 fiber Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 229940044442 onfi Drugs 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001167556 Catena Species 0.000 description 1
- 235000007516 Chrysanthemum Nutrition 0.000 description 1
- 244000189548 Chrysanthemum x morifolium Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Abstract
本发明适用于存储器领域,提供了一种三层闪存装置、智能存储开关和三层控制器。固态硬盘设有智能存储开关,用来废物回收利用从分段数据容量上经由删减而删除的闪存存储。超出分段数据容量的额外存储用未分割的散列数据方式进行存取。随着时间的推移当更多坏块出现时,分段数据容量降低。第一级映射图存储所有闪存信道的分段数据和散列数据容量,并映射散列数据和分段数据。每个闪存信道设有NVMD,NVMD设有较低级控制器,该控制器将LBA转换为PBA,PBA用来存取NVMD内的闪速存储器。每个NVMD执行磨损平衡和坏块重新映射。NVMD可循环回收利用源本闪存区块和阴影闪存区块。两个级别的智能存储开关能够启动三个级别的控制器。
Description
技术领域
本发明属于存储器领域,尤其涉及一种两层闪存装置、三层闪存装置、智能存储开关和智能存储开关两层控制器、智能存储开关三层控制器。
背景技术
相关申请
本专利申请案是于2008年10月15日提起的美国序列号12/252,155的“将数据分割到未加工闪存模块的指令队列智能存储传输管理器”的共同申请案的部分延续案(CIP)。
本专利申请案是于2008年8月5日提起的序列号12/186,471的“用于交错存取多个单芯片闪速存储装置的带智能存储传输管理器的多层控制器”的共同申请案的部分延续案。
本专利申请案是于2008年5月29日提起的序列号12/128,916的“从用于用户存储的集成闪速存储器读取开机启动代码的单芯片多媒体卡/安全数字控制器”的共同申请案的部分延续案;而第12/128,916号申请案是于2006年8月28日提起的序列号11/309,594的“从用于用户存储的集成闪速存储器读取开机启动代码的单芯片多媒体卡/安全数字控制器”的共同申请案的部分延续案;第11/309,594号申请案现已以第7,383,362号美国专利公布,是于2003年12月2日提起的序列号10/707,277的“从用于用户存储的集成闪速存储器读取开机启动代码的单芯片控制器”的共同申请案的部分延续案,第10/707,277号申请案现已以第7,103,684号美国专利公布。
本专利申请案是于2009年4月3日提起的序列号12/418,550的“用于混合块和分页模式闪速存储系统的混合两层映射表”的共同申请案的部分延续案。
本专利申请案是于2008年7月1日提起的序列号12/166,19的“非易失性存储装置中数据错误检测及纠正”的共同申请案的部分延续案。
本专利申请案是于2008年12月31日提起的序列号12/347,306的“带整合闪存写入指令队列的闪速存储系统中部分映射表的可交换数集”的共同申请案的部分延续案。
本专利申请案是于2007年10月25日提起的序列号11/924,448的“带基于高级加密标准硬件安全的便携式电子存储装置”的共同申请案的部分延续案。
如个人电脑(PC)等主机系统在大容量存储装置如硬盘驱动器(HDD)上存储大量数据。大容量存储装置是以扇区编地址而不是以字节编地址的,这是因为能够被读写的闪速存储器的最小单位是页,一页在大小上等于几个512字节扇区。闪速存储器作为最佳的大容量存储媒体取代了硬盘和光盘。
NAND型闪速存储器是一种由带有浮栅金属氧化物半导体晶体管的电可擦除可编程只读存储器(EEPROM)单元组成的闪速存储器。这些单元使用量子力学隧道注入方式进行写入,使用隧道释放方式进行擦除。由于NAND型闪速存储器是一种非易失性存储器,因此是便携式数据存储装置的理想产品。NAND型闪速存储器将比NOR型闪速存储器密度更大、价格更便宜。
但是,NAND型闪速存储器也存在很多局限性。在闪速存储单元内,数据是以一(1)和零(0)的二进制形式进行存储的。NAND型闪速存储器的一个局限性是:存储数据(将数据写入到闪速存储器内)时,闪速存储器仅能写入从一(1)到零(0)的数据;写入从零(0)到一(1)时,闪速存储器需要每次擦除一个“区块”;虽然读取的最小单位可以是一页内一个字节或一个词,但是擦除的最小单位是一个区块。
单级存储单元(SLC)闪速存储器和多级存储单元(MLC)闪速存储器是两种NAND型闪速存储器。单级存储单元闪速存储器的擦除区块大小可达到128K+4K字节,而多级存储单元闪速存储器的擦除区块大小可达到256K+8K字节。NAND型闪速存储器的另外一个局限性是:NAND型闪速存储器的擦除周期有限,一般在10,000和100,000个周期之间,达到这些周期后,闪速存储器将受损害,变为不可靠。
与单级存储单元闪速存储器相比,多级存储单元闪速存储器在消费者应用方面具有诸多优点,但同时也具有诸多缺点。在存储单元技术方面,单级存储单元闪速存储器每个单元存储一个位元的数据,而多级存储单元闪速存储器每个单元能够存储两个或两个以上字节位元的数据。在同一技术条件下,多级存储单元闪速存储器的密度是单级存储单元闪速存储器的两倍或两倍以上。
由于多级存储单元闪速存储器的存储密度比单级存储单元闪速存储器的存储密度大,所以多级存储单元闪速存储器是用来存储长序列数据的较好选择,但是,多级存储单元闪速存储器的可靠性低于单级存储单元闪速存储器。那些经常变更的数据存储在单级存储单元闪速存储器里比较好,这是因为单级存储单元闪速存储器可靠性比较高,快速变更数据比变更缓慢的数据较可能成为重要数据。另外,比起多级存储单元闪速存储器,较小单位的数据比较容易整合到单级存储单元闪速存储器中,这是因为单级存储单元闪速存储器通常在写入序列方面比多级存储单元闪速存储器有较少限制。
消费者可能会比较喜欢大容量闪速存储器系统,很可能用来取代硬盘。使用闪速存储器芯片做成的固态硬盘(SSD)由于没有移动部件,因此比旋转盘更可靠。
几个较小的闪存驱动器可连接在一起,比如将多个闪存驱动器插入到一个与主机USB插口相连接的USB集线器上,然后这些闪存驱动器将成为主机的单独驱动器。例如,主机的操作系统可为每个闪存驱动器分配专门的字母代号(D:、E:、F:等),并非仅仅将它们整合成为只有一个字母代号的一个逻辑驱动器。其它的总线协议也可能存在类似的问题,如串行附属装置(SATA)、集成设备电子部件(IDE)、串行小型计算机系统界面(SCSI)(SAS总线、光纤信道总线以及外设部件互连标准(PCIE)。本专利申请案的根源母案,亦即现第7,103,684号美国专利描述一种连接到几个闪速存储器大容量存储区的单芯片控制器。
较大型闪存系统可使用多信道进行平行存取,大大地提高系统的性能。磨损平衡算法是存储控制其能够重新将逻辑地址变为不同的物理地址,从而便于数据写入能够均等分配。因此,磨损平衡算法扩展了闪速存储器的耐用性,尤其是多级存储单元类型的闪速存储器的耐用性。
多信道闪存系统可设计几个数据可分割通过的信道。数据分割能够提高系统的性能,这是因为可同时写入几个信道,另外将所有信道的存储容量设置与最小信道的容量相吻合时,由于需要进行删减处理,某些存储区域可能会丢失。随着闪存系统的磨损,将会出现更多的区块变坏,从而降低系统的可用存储空间。由于这些变坏的区块出现位置具有随机性,各个信道的容量会随着时间的推移出现偏差。当各个信道出现大不同的容量情况时,更多信道将会浪费大量空间。
我们所需要的是一种可恢复或挽救非冗余体系结构下由于删减操作所浪费的空间的多信道闪存系统。在闪存系统内,最好使用映射结构将逻辑地址映射为物理区块。额外空间部分可用作额外容量。另外,额外空间可用作其它存在很多坏块的驱动器的替代容量。
发明内容
本发明实施例的目的在于提供一种两层闪存装置,旨在解决由于删减操作造成的存储空间浪费严重的问题。
本发明实施例是这样实现的,一种三层闪存装置,包括第一级智能存储开关,所述第一级智能存储开关包括:
连接到主机的上游接口,用来接收主机命令、主句数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的第一级智能存储事务管理器;
将主机地址映射到指定闪存信道上从而生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的第一级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层闪存装置还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到第一级智能存储开关的第二上游接口,用于接收访问NVM存储器的命令以及接收来自第一级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
将地址从第一级智能存储开关映射到指定闪存信道上从而生成本地逻辑块地址的信道存储处理器,所述信道存储处理器执行映射功能到附在第二级智能存储开关上的多个NVM装置;
与所述信道存储处理器连接的第二级映射器、存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量第二级映射器,所有NVM装置的的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
所述三层闪存装置还包括:
多个NVM控制器,每个NVM控制器与LBA总线相连接,接收信道存储处理器生成的逻辑块地址以及来自第二级智能存储开关的数据;
安装在NVM控制器内的低级映射器,将逻辑块地址映射到物理块地址,低级映射器生成块映射的主机数据的物理块地址以及页映射的主机数据的物理块地址和页码;
以及包括指定闪存信道在内的多个闪存信道,每个闪存信道包括:
与NVM控制器连接的NVM闪速存储器,用来将主机数据存储至所述NVM控制器内的低级映射器生成的物理块地址识别的块位置上以及页映射的主机数据的页码识别的页面位置上。
其中,第二级智能存储开关作为多个信道,每次多个闪存信道同时存取存储在多个闪存信道内的分段数据;
其中,第二级智能存储开关作为单个信道,每次一个闪存信道存取存储在多个闪存信道内的散列数据;
因此,散列数据以单信道存取方式进行存取,而分段数据使用多个信道同时存取方式进行存取。
本发明实施例的另一目的在于提供一种智能存储开关的三层控制器,包括第一级智能存储开关,所述第一级智能存储开关包括:
连接到主机的上游接口,用于接收主机命令、主机数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的智能存储事务管理器;
将主机地址映射到指定闪存信道上生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的第一级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层控制器还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到第一级智能存储开关的第二级上游接口,用来接收用于访问非易失性存储器的命令以及接收来自第一级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
与信道存储处理器连接的第二级分割映射器,存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量,所有NVM装置的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
从第一级智能存储开关上将地址映射到指定闪存信道生成本地逻辑块地址LBA的信道存储处理器,信道存储处理器执行将数据映射到附在第二级智能存储开关上多个NVM装置上的功能;
所述三层控制器还包括:
NVM控制器,与LBA总线连接,接收信道存储处理器生成的LBA以及来自于第二级智能存储开关的数据;以及
安装在NVM控制器内的低级映射器,将LBA映射到物理块地址PBA,低级映射器生成块映射的主机数据的PBA以及页映射的主机数据的PBA和页码。
本发明实施例的另一目的在于提供一种智能存储开关的三层控制器,包括第一级智能存储开关,所述第一级智能存储开关包括:
连接到主机的上游接口,用于接收主机命令、主机数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的智能存储事务管理器;
将主机地址映射到指定闪存信道上生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的第一级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层控制器还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到第一级智能存储开关的第二级上游接口,用来接收用于访问非易失性存储器的命令以及接收来自第一级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
与信道存储处理器连接的第二级分割映射器,存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量,所有NVM装置的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
从第一级智能存储开关上将地址映射到指定闪存信道生成本地逻辑块地址LBA的信道存储处理器,信道存储处理器执行将数据映射到附在第二级智能存储开关上多个NVM装置上的功能。
附图说明
图1A是本发明实施例提供的使用带多层集成控制器的混合闪速存储器的智能存储开关;
图1B是本发明实施例提供的使用带多层控制器和外部非易失性存储装置(NVMD)的混合闪速存储器的智能存储开关;
图1C是本发明实施例提供的使用带多层集成控制器的闪速存储器的两层智能存储开关;
图1D是本发明实施例提供的控制非易失性存储装置(NVMD)的两层智能存储开关;
图2是本发明实施例提供的多层控制器体系结构闪存系统中的两层ECC;
图3是本发明实施例提供的附有智能存储事务管理器更多具体细节的四信道智能存储开关;
图4A-E是本发明实施例提供的多层控制器体系结构闪存系统中的两层坏块管理;
图5是本发明实施例提供的多层控制器体系结构闪存系统中的分段数据和散列数据领域管理;
图6和图7是本发明实施例提供的上电程序流程图;
图8和图9是本发明实施例提供的闪速存储器系统内的源本区块和阴影区块;
图10A-C是本发明实施例提供的带有闪速存储器的线路板;
图11A是本发明实施例提供的能够直接与主机相连接的固态盘(SSD)板;
图11B是本发明实施例提供的带非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡;
图11C是本发明实施例提供的带插入到插槽内的可插入式非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡;
图11D是本发明实施例提供的带可通过线缆连接的非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡;
图12A-B是本发明实施例提供的使用多层控制器体系结构(MLCA)驱动器线路板的固态驱动器,每个MLCA驱动器使用一个智能存储开关;
图13A-D是本发明实施例提供的安装到SATA存储驱动器线路板上的插座内的闪存模块;
图14是本发明实施例提供的三层数据分割;
图15A-C是本发明实施例提供的数据分割例子;
图16A是本发明实施例提供的使用两层智能存储开关的闪存的两个信道之间的交错存取;
图16B是本发明实施例提供的使用高级和低级智能存储开关的三层数据分割;
图16C是本发明实施例提供的使用高级和低级智能存储开关的三层容量删减;
图16D是本发明实施例提供的使用高级和低级智能存储开关的三层ECC;
图17是本发明实施例提供的闪存系统内的冗余控制器、信道和芯片选通信号;
图18A-D是本发明实施例提供的静态磨损平衡;
图19A-C是本发明实施例提供的混合闪存系统内的数据缓存。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1A所示为使用带多层集成控制器的混合闪速存储器的智能存储开关。智能存储开关30是多层控制器体系结构(MLCA)11的一部分,通过上游接口34经过主机存储总线18连接到主机主板10。另外,智能存储开关30也通过虚拟存储桥42、43经过LBA存储总线接口28连接到下游的闪速存储装置。
虚拟存储桥42、43是协议桥,也提供物理信令,如驱动和接受LBA存储总线接口28的差动信号线上的差动信号,探测或生成包开始开始或包停止模式,检查或生成校验和,以及其它更高级的功能,如插入或提取装置地址和包类型和命令。来自于主机主板10的主机地址包含一个经过存储总线接口28发送的逻辑块地址(LBA),虽然该逻辑块地址在某些通过NVM控制器76向所附NVM闪速存储器68排列和分配大小相等的数据的实施例内可通过智能存储开关30进行分割。NVM闪速存储器68可以是ONFI型闪速存储器,也可以是点动(Toggle)NAND型闪速存储器。
与虚拟缓冲桥32连接的SDRAM 60内的缓冲存储器可在主机将数据写入到MLCA盘中时能够存储扇区数据,也能够在主机从闪速存储器获取数据时暂时保留数据。SDRAM 60是用于智能存储开关30的同步动态随机存取存储器。另外,SDRAM 60也可以在进行回写、通写或预读缓存时用作临时数据存储或缓存。
虚拟存储处理器140为智能存储事务管理器36提供数据分割服务。例如,来自主机的逻辑地址可计算和转换成为逻辑块地址(LBA),该逻辑块地址经过LBA存储总线接口28发送到由NVM控制器76控制的NVM闪速存储器68。主机数据可由虚拟存储处理器140或智能存储事务管理器36以交错存取方式交替地分配到闪速存储器。NVM控制器76然后可在NVM闪速存储器68之间进行较低级的交错存取。从而交错存取可以用两个层次进行,亦即高层次在两个或更多个NVM控制器76之间由智能存储事务管理器36进行和低层次在NVM闪速存储器68之间由每个NVM控制器76进行。
NVM控制器76执行作为闪存转换层功能一部分的逻辑到物理重新映射功能,将LBA存储总线接口28上接收到的LBA转换为PBA用于定址NVM闪速存储器68内实体的非易失性存储块。NVM控制器76可进行磨损平衡和坏块重新映射以及其它较低层的管理功能。
以单端点模式运作时,智能存储事务管理器36不但通过虚拟缓冲桥32缓存数据,同时也对主机的事务包进行重新排列。每个事务可能会产生几个包,如启动存储器读取的初始指令包、从存储装置返回到主机的数据包以及结束事务的握手包。不必要在下一个事务开始之前完成现在一个事务的所有的包,下一个事务的包可由智能存储开关30进行重新排列,然后在现在一个事务完成之前发送到NVM控制器76。这就使得下一个事务拥有更多时间存取存储器。通过包的重新排列,事务就会出现重叠现象。
经过LAB存储总线接口28发送的包根据主机存储总线18上的包顺序进行重新排列。智能存储事务管理器36可在由NVM控制器76控制的不同NVM闪速存储器68上重叠和交错事务,从而提高数据流量。例如,通过虚拟缓冲桥32或关联缓冲存储器(未显示)将来自于主机的几个事务包存储在SDRAM缓冲存储器60内。智能存储事务管理器36检查这些缓存的事务和包,然后重新排列包,之后经过内部总线38发送到虚拟存储桥42、43,再通过NVM控制器76发送到其中一个下游闪速存储区块。
通过虚拟存储桥43开始读取一个闪存区块的包可被重新排列在通过虚拟存储桥42结束读取另外前一个闪存区块的包之前,从而让第二个闪存区块更早的开始读取。
可通过为经过主机存储总线18的数据设置的加密器/解密器35对数据进行加密和解密。上游接口34可配置使数据流转移而不通过加密器/解密器35,该功能可通过软件或硬件开关进行控制来启动或取消。该功能可以是高级加密标准(AES)、IEEE 1667标准等,通过硬件或软件编程对主机系统附带的暂时存储装置进行核实。相关的方法可参考2007年10月25日提起的第11/924,448号美国申请案。当主要电源出现故障时,备用电池47将为智能存储开关30提供电源,从而使写入数据能够存放在闪存内。于是,可使用回写缓存方案,而不仅仅使用通写缓存方案。
NVM控制器76内的映射器46将对作为MLC闪存的NVM闪速存储器68进行一层映射,或对作为SLC或MLC闪存的NVM闪速存储器68进行两层映射。NVM控制器76内置于智能存储开关30。
图1B所示为使用带多层控制器和外部NVMD的混合闪速存储器的智能存储开关。智能存储开关30是多层控制器体系结构(MLCA)11的一部分,通过上游接口34经过主机存储总线18连接到主机主板10。另外,智能存储开关30也通过虚拟存储桥42、43经过LBA存储总线接口28连接到下游的闪速存储装置。
虚拟存储桥42、43是协议桥,也提供物理信令,如驱动和接受LBA存储总线接口28的差动信号线上的差动信号,探测或生成包开始或包停止模式,检查或生成校验和,以及其它更高级的功能,如插入或提取装置地址和包类型和命令。来自于主机主板10的主机地址包含一个经过存储总线接口28发送的逻辑块地址(LBA),虽然该逻辑块地址在某些通过NVM控制器76向所附NVM闪速存储器68排列和分配大小相等的数据的实施例内可通过智能存储开关30进行分割。
与虚拟缓冲桥32连接的SDRAM 60内的缓冲存储器可在主机将数据写入到MLCA盘中时能够存储扇区数据,也能够在主机从闪速存储器获取数据时暂时保留数据。SDRAM 60是用于智能存储开关30的同步动态随机存取存储器。另外,SDRAM 60也可以在进行回写、通写或预读缓存时用作临时数据存储或缓存。
虚拟存储处理器140为智能存储事务管理器36提供数据分割服务。例如,来自主机的逻辑地址可计算和转换成为逻辑块地址(LBA),该逻辑块地址经过LBA存储总线接口28发送到由NVM控制器76控制的NVM闪速存储器68。主机数据可由虚拟存储处理器140或智能存储事务管理器36以交错存取方式交替地分配到闪速存储器。NVM控制器76然后可在NVM闪速存储器68之间进行较低级的交错存取。从而交错存取可以用两个层次进行,亦即高层次在两个或更多个NVM控制器76之间由智能存储事务管理器36进行和低层次在NVM闪速存储器68之间由每个NVM控制器76进行。
NVM控制器76执行作为闪存转换层功能一部分的逻辑到物理重新映射功能,将LBA存储总线接口28上接收到的LBA转换为PBA用于定址NVM闪速存储器68内实体的非易失性存储块。NVM控制器76可进行磨损平衡和坏块重新映射以及其它较低层的管理功能。
以单端点模式运作时,智能存储事务管理器36不但通过虚拟缓冲桥32缓存数据,同时也对主机的事务包进行重新排列。每个事务可能会产生几个包,如启动存储器读取的初始指令包、从存储装置返回到主机的数据包以及结束事务的握手包。不必要在下一个事务开始之前完成现在一个事务的所有的包,下一个事务的包可由智能存储开关30进行重新排列,然后在现在一个事务完成之前发送到NVM控制器76。这就使得下一个事务拥有更多时间存取存储器。通过包的重新排列,事务就会出现重叠现象。
经过LAB存储总线接口28发送的包根据主机存储总线r8上的包顺序进行重新排列。智能存储事务管理器36可在由NVM控制器76控制的不同NVM闪速存储器68上重叠和交错事务,从而提高数据流量。例如,通过虚拟缓冲桥32或关联缓冲存储器(未显示)将来自于主机的几个事务包存储在SDRAM缓冲存储器60内。智能存储事务管理器36检查这些缓存的事务和包,然后重新排列包,之后经过内部总线38发送到虚拟存储桥42、43,再通过NVM控制器76发送到其中一个下游闪速存储区块。
通过虚拟存储桥43开始读取一个闪存区块的包可被重新排列在通过虚拟存储桥42结束读取另外前一个闪存区块的包之前,从而让第二闪存区块更早的开始读取。
可通过为经过主机存储总线18的数据设置的加密器/解密器35对数据进行加密和解密。上游接口34可配置使数据流转移而不通过加密器/解密器35,该功能可通过软件或硬件开关进行控制来启动或取消。该功能可以是高级加密标准(AES)、IEEE 1667标准等,通过硬件或软件编程对主机系统附带的暂时存储装置进行核实。相关的方法可参考2007年10月25日提起的第11/924,448号美国申请案。当主要电源出现故障时,备用电池47将为智能存储开关30提供电源,从而使写入数据能够存放在闪存内。于是,可使用回写缓存方案,而不仅仅使用通写缓存方案。
NVM控制器76内的映射器46将对作为MLC闪存的NVM闪速存储器68进行一层映射,或对作为SLC或MLC闪存的NVM闪速存储器68进行两层映射。数据可缓存于NVM控制器76内的SDRAM 77内。NVM控制器76和NVM闪速存储器68属于非易失性存储装置(NVMD)412的一部分。在本发明实施例内,NVMD 412外置于智能存储开关30。
图1C所示为使用带多层集成控制器的闪速存储器的两层智能存储开关。第一级智能存储开关638是多层控制器体系结构(MLCA)的一部分,经过主机存储总线18连接到主机主板。第一级智能存储开关638连接到多个第二级智能存储开关639、639’。
第二级智能存储开关639、639’使用NVM控制器76连接到下游闪存,而NVM控制器76连接到NVM闪速存储器68。当主要电源出现故障时,备用电池47将为智能存储开关和存储系统645内的其它元件提供电源,使写入数据能够保存在闪存内。于是,可使用回写缓存方案,而不仅仅使用通写缓存方案。可使用外部SDD系统647中的选件智能管理器526来进行高级重新映射。
第一级智能存储开关638用来与主机10相连,并连接到多个第二级智能存储开关639、639’。第二级智能存储开关639、639’进一步与图1A和图1B中所示的多个NVMD相连接。在所有智能存储开关(638、639、639’)的ECC奇偶校验可由用户选择打开或关闭。在一个发明实施例内,第一级智能存储开关638的ECC奇偶校验打开时,其它所有智能存储开关(639、639’)将关闭ECC;在另外一个发明实施例内,第一级智能存储开关638的ECC奇偶校验关闭时,其它所有第二级智能存储开关(639、639’)将打开ECC逻辑。串联的智能存储开关(638、639、639’)使控制器变得更简单。
图1D所示为控制非易失性存储装置(NVMD)的两层智能存储开关。第一级智能存储开关638是多层控制器体系结构(MLCA)的一部分,经过主机存储总线接口18连接到主机主板。第一级智能存储开关638连接到多个第二级智能存储开关(639、639’)。
第二级智能存储开关(639、639’)连接到下游非易失性存储装置(NVMD)412。当主要电源出现故障时,备用电池47将为智能存储开关和两层智能存储开关644内的其它元件提供电源,从而能将写入数据保存在闪存内。于是,可使用回写缓存方案,而不仅仅使用通写缓存方案。可使用外部SDD系统647中的选件智能管理器526来进行高级重新映射。
如图1所示,在使用多个涉及控制器的较低级NVMD装置的多层闪速存储器体系结构中,由于更多的独立地址系统用于所采用的个别较低级映射表,闪速存储器容量实际上得到了提升。可降低某个NVMD中发生的坏块增大效果,从而影响其它NVM存储器,这些其它NVM存储器可能会有不同位置的坏块在事务处理中发生。
两层ECC管理——图2。
图2所示为多层控制器体系结构闪存系统中的两层ECC。主机协议接口521接收主机指令和数据,循环冗余码校验(CRC)测试器523对主机指令和数据检测进行第一级错误校正。CRC测试器523发现错误时,要求主机重新发送数据。该CRC协议与下文将要叙述的错误校正代码(ECC)是分开来不同的。
预留单元525预留一个闪存信道,用作分段ECC存储。在这个例子中,NVM闪速存储器68的第4信道(CHAN4)预留用于分段ECC。而其它3个信道用于分段数据。分割映射器527将数据发送到前三个信道内作为一个分段,然后从这些数据中生成ECC词。生成的ECC词将发送到第四信道内,作为分段ECC进行存储。
发送到四个信道中每个信道的数据将由以页为基础的ECC发生器47进行处理,生成以页为基础的ECC。该以页为基础的ECC将和数据一起由闪存控制器42存储在每个信道内。以页为基础的ECC和数据存放在第1-3信道的NVM闪速存储器68内,而分段ECC和其以页为基础的ECC存放在第4信道的NVM闪速存储器68内。对其它的主机数据或长度大于一个分段的数据只需要重复该过程。
图3所示为附有智能存储事务管理器更多具体细节的四信道智能存储开关。虚拟存储处理器140、与SDRAM缓冲器60连接的虚拟缓冲桥32以及与主机连接的上游接口34都连接到智能存储事务管理器36,按照图1A先前的描述进行运作。
通到四个NVMD(950-953)的四个信道由连接到智能存储事务管理器36中的多信道交错路由逻辑534的四个虚拟存储桥42提供。主机数据能够通过路由逻辑534交错到四个信道和四个NVMD(950-953)之间,从而提高性能。
来自上游接口34的主机数据由智能存储事务管理器36内的重新排序单元516进行重新排序。例如,主机将以不同于接收时的顺序重新进行事务处理。这是一种很高级别的重新排列。智能存储事务管理器36中的第一级映射逻辑517为NVMD 412执行高级映射。
对于非冗余体系结构来说,通过将NVMD 412的删减部分纳入到总容量中提高整体容量是非常有用。在另外一个发明实施例中,如果一个NVMD 412累积了太多坏块以及其总容量不足以支持正常运作,其中一些容量可以重新映射给其它有额外资源的NVMD 412。
分割逻辑518可把主机数据分割成为分段数据,这些分段数据被写入到不同的实体装置中,如廉价冗余磁盘阵列(RAID)。奇偶校验和ECC数据可由ECC逻辑520添加和检查,而NVMD安装器521可以安装一个NVMD的新存储逻辑卷,然后使用奇偶校验NVMD和所有其它好的NVMD来恢复坏块,以及更换NVMD的内容到新的NVMD。NVMD逻辑卷可分配到不同的实体闪速存储器中,如本图所示的NVMD(950-953),分别是分配为1号、2号、3号和4号NVMD。
虚拟化单元514将主机逻辑地址虚拟化并将NVMD(950-953)内的闪速存储器集中起来成为一个单独装置,从而进行高效的数据处理,例如使用重新映射和错误处理。使用智能管理器526,智能存储事务管理器36可进行高级重新映射,该智能管理器526监控每个NVMD(950-953)内出现的磨损和坏块。这种高级磨损平衡可将新区块指引到最少磨损的NVMD(950-953),如NVMD(952),其磨损度仅为250,比其它NVMD的磨损度500、400和300较低。然后NVMD(952)可在NVMD(952)内的NVM闪速存储器68(如图1)之间进行其它的低级磨损平衡。
于是,高级或“总统级”磨损平衡确定最少磨损逻辑卷或NVMD,而在所选择的NVMD中的闪速存储器区块之间进行低级或“管理者级”磨损平衡。通过使用这种总统-管理者两层磨损平衡,整个磨损情况就可以得到改善和优化。
端点和集线模式逻辑528促使智能事务管理器36将端点集中起来,用于图1中模式逻辑26较早描述的开关模式。在不使用上述磨损度的情况下,智能存储事务管理器36可使用坏块百分比率来决定将新区块分配给哪一个NVMD(950-953)。那些存在大量坏块的NVMD可以跳过。不需要交错的少量主机数据可使用磨损较少的NVMD,而大量主机数据可交错到所有四个NVMD之中,包括磨损较大的NVMD。仍然使用交错存取方式改善较大多区块数据转移的同时,磨损也被降低。
两层坏块管理——图4。
图4A-E所示为多层控制器体系结构闪存系统中的两层坏块管理。图4A-E中,所显示的是4个信道的NVMD。在该例子中,每个信道都设有一个不同的存储容量,其中3号NVMD的容量最大,1号NVMD的容量最小。某些可用容量分配用于映射表,坏块以及其它系统管理目的,显示在每个NVMD的顶部区域。剩下的区域可用来存储主机数据。但是,当主机数据被分割和发送到所有四个NVMD时,分段数据区域限于最小容量NVMD的剩下区域。于是,所有四个NVMD的分段数据区域设置为容量最小的1号NVMD的分段数据区域。这种将所有信道的NVMD存储容量相吻合的过程称为删减。删减数据区域用虚线来表示。删减由容量最小的NVMD来决定。
虚线下面的区域是分段数据区域。在该区域内可进行快速主机写入,这是因为数据可以发送到所有四个NVMD,然后每个NVMD在不耽误其它NVMD的情况下缓存数据并将数据写入到自己的NVM闪速存储器。
虚线上面的区域属于容量最小的1号NVMD的保留区域,而其它NVMD(2号、3号和4号)设有一个系统管理不需要的额外区域。本专利申请案发明者们使用该额外区域来存放散列数据。散列数据是指那些不能作为分段的数据。相反,散列数据是通过一次单独存取一个NVMD的方式来存取。由于存取散列数据时平行存取多个NVMD就会受到封闭,因此散列数据的存取速度和性能都比分段数据的存取较低。
虚线上部的散列区域包括系统管理或保留数据和信息以及散列数据。随着时间的推移,坏块的数量会增加,保留(RESV)区域也可能没有足够的空区块。这就可能使其中一个NVMD的速度减慢。将NVMD的某些部分迁移到其它容量较大NVMD上可以延长整个系统的寿命。散列数据可包含那些从一个NVMD重新映射到另外一个NVMD的坏块。于是,即使进行删减,其它NVMD(2号、3号和4号)中的报废空间也可用于散列数据的存储。数据分段或数据区域可设有包括选择性ECC数据冗余保护的快速读/写。LBA可从数据分段的零点一直排列到末端。散列数据区域的LBA大于数据分段末端的LBA。
图4B中,由于采用比较保守和灵活的配置,分段数据区域特意设置比图4A中的小。每个NVMD中的保留区域可以增加为更多坏块提供较大的映射表。但是,散列数据区域也可以增加。散列数据可存放在NVMD内虚线上面的区域内。分段数据区域可小于NVMD最低容量。
分段数据区域在系统设置开始之初设置比较低,目的是为每个NVMD的末端部分分配散列数据区域。可将更多的LBA重新映射到不同的NVMD。分段数据区域从LBA0开始,增加到分段数据区域大小为止。散列数据区域的LBA在分段数据区域之后达到每个NVMD容量的末端。
图4C所示为两层映射表。第一级分割映射图531由智能存储开关30进行管理,在散列数据区域和分段数据区域之间对所有四信道NVMD提供整体分配。不能被分割的主机数据输入可以当做散列数据写入到拥有多余容量的信道内。例如,使用第一级分割映射图531,较小的数据写入可被分配到拥有大散列数据区域的较大NVMD。
每个NVMD都设有第二级映射图533,用来重新映射NVMD内的NVM闪速存储器68的坏块。如图4C所示,坏块位于NVM闪速存储器68的物理地址空间内的随机位置内。
图4D所示为每个信道逻辑地址空间内坏块的重新映射。每个NVMD都设有装载相应NVM闪速存储器68内坏块位置的第二级映射图533。这些坏块从接收分割数据的逻辑地址分段数据领域内删除。坏块移动到逻辑地址空间内的散列数据领域内。随着时间的推移,由于系统将会磨损以及出现更多的坏块,散列数据领域大小将增加,而分段数据领域大小将减少。来自智能存储开关30的散列数据经由第一级分割映射图531映射到NVMD散列数据领域,存储在散列数据领域内并由第二级映射图533进行定位。
图4E所示是更具体的第一级和第二级映射图。第一级分割映射图531存储了每个NVMD的全部容量,并将该容量划分成一个分段容量和一个散列容量,散列容量包括一个保留区和一个交换区。交换区用于存储之后出现的重新定位坏块的数据,而保留区用来存储非数据的系统管理附加信息,如NVM控制器的固件的信息。
最初,如第一级分割映射图531所示,所有四个NVMD已被删减为每个分段容量180个区块,每个NVMD的保留区范围在2-5个区块之间。
一段时间过后,坏块的增加导致了需重新进行删减处理,每个NVMD仍旧拥有180个分段容量区块。但是,每个NVMD内的保留区的区块增加到10-13个。第一级分割映射图531也存在一张主机逻辑地址到指定NVMD的映射图,并可以确定数据是在该NVMD内的分段数据领域内还是在散列数据领域内。于是,主机读取就可以快速地找到所需数据。
每个NVMD设有第二级映射图533,第二级映射图533设有列出该NVMD的NVM闪速存储器68内的坏块物理地址的坏块表535。坏块表535中所列出的区块不能分配接收新主机数据。其它图和表格可在第二级映射图533中出现,如之后图7和图8所示。
图5所示为多层控制器体系结构闪存系统中的分段数据和散列数据领域管理。智能存储开关通过启动或调查每个信道内的NVMD来扫描搜寻所有信道的坏块(步骤310)。每个信道的NVMD扫描自己的NVM闪速存储器并设置第二级坏块映射图(步骤312)。NVMD然后将其可用容量和该信道内其闪存结构的其它具体情况报告给智能存储开关。智能存储开关比较所有信道的容量,找出其中容量最小的信道(步骤314)。通常情况下,坏块最多的信道就是容量最小的信道,如当所有信道的标称容量相同时。
将最低可用容量乘以不保留用于分段ECC的NVMD数量可获得分段数据领域容量大小(步骤316)。所有信道的分段数据大小都根据最低可用容量大小来设置。剩下的容量设置为可接收散列数据而非分段数据的散列数据领域区。智能存储开关装载分段数据领域和散列数据领域的大小到第一级分割映射图内(步骤318)。
随着时间的推移,NVMD将会发现更多的新坏块。这些NVMD将每个新发现的坏块的入口加入到相应信道第二级映射图533的坏块表中(步骤320)。最初坏块是由每个信道内NVM控制器76来管理,之后,坏块的最新数量将通知给智能存储开关。然后智能存储开关将根据新坏块信息重新装载其第一级分割映射图(步骤322),并减少分段数据容量(步骤324)。
图6和图7所示为上电程序流程图。图6中,NVMD上电或进行初始化。当NVMD是第一次上电时,如NVMD的非易失性固件中的一个旗标所显示(步骤332),那么NVMD将扫描NVM闪速存储器68的所有区块,建立坏块表和磨损平衡表。也确定NVM闪速存储器68的容量和结构,如可用来单独寻址NVM闪速存储器68的单独芯片选通(CE)的数量(步骤334)。该信息已准备就绪供智能存储开关读取。
当NVMD不是第一次上电时,如NVMD的非易失性固件中的一个旗标所显示(步骤332),那么NVMD将扫描NVM闪速存储器68的所有区块,查证或修补由NVMD管理的各个图表和数据库(步骤336)。这些图表有时会因突然断电而受损。
图7中,当智能存储开关上电或初始化时,该程序将启动。智能存储开关将等待直到所有NVMD做好准备,如输出一个就绪线信号到智能存储开关30(步骤338)。智能存储开关从所有NVMD收集容量和闪存结构信息(步骤340)。如果已经有用户设置(步骤342),那么可以使用这种用户设置。用户设置可包括数据分段大小和奇偶校验配置。如果没有用户设置(步骤342),那么需要调查用户或主机,确定闪存系统的所需特性情况,如用户所需的冗余程度、数据分割、超量配置等(步骤344)。智能存储开关然后可用该用户设置去建立第一级分割映射图531以及为ECC或冗余分配NVMD。
源本和阴影区块——图8和图9。
图8和图9所示为闪速存储器系统内的源本和阴影区块。图8所示为一个源本区块和两个阴影区块。
到LBA(13)的第一个写入命令正到达时,控制器映射出源本区块PBA(18)。写入命令先是写入0-4页,之后是2-3页,然后在区块的下一页空白页中标出“EOC旗标”。之后,另外一个写入命令先是写入2-5页,之后是D-E页,然后在最后一页标出“EOC旗标”。区块PBA(18)填满。1-4页写入命令完成写入,然后生成1号阴影区块PBA(25)。下一个写入命令写入2-4页,然后写入“EOC旗标”。后来又一个写入命令写入2-4页,之后9-B页写入命令写入,然后PBA(25)的最后一页写入“EOC旗标”。区块PBA(25)现在填满。收到一个新的0-2页写入命令,生成2号阴影区块PBA(33)。写入“EOC旗标”页。之后最后一个4-E页写入命令来到。然后写入“EOC旗标”。“从PBA到LBA的映射图”的18H、25H和33H的入口将有13H的内容。“属性表”的18H入口将拥有10H的内容,25H入口将有11H的内容以及33H入口将有12H的内容。过一段时间后,控制器将检查这三个与LBA(13H)相关的区块,并发现PBA(18)中的所有数据都是旧数据,有效页码3位于PBA(25)中。控制器将00写入“从PBA到LBA的映射图”的入口18H。另外,将“属性表”的18H入口的内容改写为00,25H入口改写为10H以及33H入口改写为11H。
源本区块PBA(18)拥有最旧的主机数据。主机数据的LBA和页偏置存储在每页的备用区域内。在该例子中,每个物理区块总共有64页(第0页-第63页)。
由于源本区块PBA(18)填满了主机数据,新的主机数据将写入到1号阴影区块PBA(25)中。1号阴影区块PBA(25)的数据比源本区块PBA(18)的数据新。但是,源本区块中的某些数据也还是新的。
最后,1号阴影区块PBA(25)填满,新的主机数据将存储在2号阴影区块PBA(33)中。随着较新数据写入到2号阴影区块中,源本区块和1号阴影区块中的主机数据将变得更旧。
源本区块PBA(18)中最后剩下几页的新数据可以通过NVMD控制器(76)复制到2号阴影区块PBA(33)中,一旦将所有新数据从源本区块PBA(18)中复制出去,源本区块能够安全进行擦除和回收以备将来使用之需。然后1号阴影区块将成为新的源本区块,并从回收区块中挑选的另一个新区块将配置为2号阴影区块。旧的2号阴影区块PBA(33)变为1号阴影区块。这种从源本区块中将数据迁移到阴影区块的过程可重复进行,从而改善磨损平衡和性能。
在另外一个发明实施例中,源本区块PBA(18)和1号阴影区块PBA(25)中的新数据可复制到2号阴影区块PBA(33)中,源本区块PBA(18)和1号阴影区块PBA(25)可安全的擦除,成为回收可用区块中的一部分,以备将来之需。2号阴影区块成为新的源本区块。
主机读取数据时,所寻编址的扇区可能存在几份数据。其中只有一份数据是最新的数据。NVM控制器76首先搜索物理映射图575以及属性表577,找到与主机要读取的数据LBA相关的源本区块、1号阴影区块以及2号阴影区块。然后NVM控制器76可先搜索2号阴影区块,然后1号阴影区块,最后源本区块,寻找所需数据。
一旦完成每个主机命令的最后一页写入,就可将一个特别的旗标插入到区块最后未使用的一页。旗标可以是未使用页的索引,如不存在的第64页。也可以使用特别的页面数据模式。当主机读取数据时,主机一般从2号阴影区块(若存在)开始;主机从该区块的最后一页开始,直到向后找到第一个非空页。如果该页在备用区域内标有特别旗标,页面的内容包含有逻辑页面地址的映射信息,映射出物理页面地址。因此,NVM控制器76可直接读取页面数据,而不是向后搜索直到找到扇区数据(与备用区域逻辑页面地址吻合),不需要读取阴影和源本区块的所有页面。
图9所示为物理到逻辑的映射图表。与逻辑到物理页面映射不同,可使用PBA到LBA的映射。物理映射图575有由PBA索引的入口。当LBA载入到PBA内时,主机LBA将被载入PBA的入口。例如,源本区块PBA(18)以及阴影区块PBA(25)和PBA(33)都从LBA(13)接收数据,所以内容(13)被载入到物理映射图(575)的这三个PBA入口。
属性表577与物理映射图575相关联,存储物理映射图575中映射的每个物理区块的属性。例如,属性表577存储PBA(18)的属性(10),指示当前是源本区块,一旦旧数据擦除,接下来将回收使用。属性表577也存储PBA(25)的属性(11),指示当前是1号阴影区块;存储PBA(33)的属性(12),指示当前是2号阴影区块。
物理映射图575仅可以映射有限的逻辑地址,当LBA不属于物理映射图575中的入口范围时,还需要从存储在闪速存储器内的较大映射图表中重新下载物理映射图575。例如,物理映射图575可限于其内部的64个区块入口的50个LBA。在新映射下载到物理映射图575和属性表577之前,物理映射图575和属性表577的现有映射需要写回到存储在闪速存储器中较大映射图表的相应区域内。
闪存板体系结构——图10。
图10A-C所示为带有闪速存储器的线路板。这些线路板可以是能够插入到插槽的插入式板或者与主板或其它板整合的集成。
图10A所示为使用闪存模块的主机系统。主板系统控制器404通过前侧总线(FSB)或其它高速CPU总线连接到中央处理器(CPU)402。CPU 402读写由易失性存储控制器408控制的SDRAM缓冲器410。SDRAM缓冲器410可设几个包含DRAM芯片的存储器模块。
闪速存储器上的数据可通过使用易失性存储控制器408和非易失性存储控制器406的主板系统控制器转移到SDRAM缓冲器410上。这些数据转移可采用直接内存存取(DMA)控制器,或使用中央处理器(CPU)402来进行。非易失性存储控制器406可读写闪速存储器模块414。另外,DMA也可以存取由智能存储开关30控制的NVMD 412。
NVMD 412包含图1B中所示的NVM控制器76和NVM闪速存储器68。NVM控制器76将LBA转换成为PBA地址。智能存储开关30将逻辑LBA地址发送到NVMD 412,而非易失性存储控制器406将LBA或物理PBA地址通过物理总线422发送到闪存模块414。物理总线422可承载LBA或PBA取决于闪存模块414的类型。虽然某些系统可有两个类型子系统,但是一个主机系统仅能包含一个类型NVM子系统,即可以是闪存模块414或是NVMD 412。
图10B所示为图10A中的闪存模块414可以平行排列在物理总线422的单个部分。
图10C所示为图10A中的闪存模块414可以串行排列在物理总线422的多个部分,形成菊花串链。
图11A所示为能够直接与主机相连接的固态盘(SSD)板。SSD板440设有一个插入到主机主板的接头112”,如插入图1中主机存储总线18的接头。接头112”可以承载SATA、PATA、PCIE总线或其它总线。NVMD 412焊接到SSD板440上或插入到接头内。也可以使用其它逻辑和缓冲器。智能存储开关30如图1所示。在某些发明实施例中,NVM闪速存储器68可用来替换NVMD 412。
图11B所示为带非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡。PCIE卡441上的接头312是一个x1、x2、x4或x8的PCIE接头,插入到PCIE总线中。智能存储开关30可用SDRAM缓存到NVMD 412的数据。在某些发明实施例中,NVM闪速存储器68可用来替换NVMD 412。
图11C所示为带插入到插槽内的可插入式非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡。PCIE卡300上的接头312是一个x1、x2、x4、x8或x16的PCIE接头,插入到PCIE总线中。智能存储开关30使用SDRAM 60缓存到NVMD的数据。
SDRAM 60可直接焊接到PCIE卡300上,或是可拆卸式SDRAM模块插入到PCIE卡300上的模块插槽中。数据通过智能存储开关30发送到插槽304,这些插槽插入了插入式NVMD368。插入式NVMD 368可包含NVMD 412。插入式NVMD 368的电源通过插槽304获得。
选件电源接头45位于PCIE卡300上,当接头312的电源不足时,可为插入式NVMD 368提供电源。备用电池47可焊接在PCIE卡300内或附属于PCIE卡300上,如果突然断电时,为PCIE卡300和插槽304提供电源。
图11D所示为带可通过线缆连接的非易失性闪速存储器(NVM)的外设部件互连(PCIE)卡。PCIE卡301上的接头312是一个x1、x2、x4、x8或x16的PCIE接头,插入到PCIE总线中。智能存储开关30使用SDRAM 60缓存到NVMD的数据。
通过智能存储开关30将数据发送到接头305,接头305接受与外部MLCA 11(图中未显示)相连的线缆(图中未显示)。线缆连接式MLCA的电源通过接头305获得。接头305可连接子卡和NVMD或线缆以增加闪速存储器的容量。
选件电源接头45位于PCIE卡301上,当接头312的电源不足时,可为外部NVMD提供电源。备用电池47可焊接在PCIE卡301内或附属于PCIE卡301上,如果突然断电时,为PCIE卡301和接头305提供电源。
可将第二级智能存储开关30添加到这些发明实施例中。
SSD驱动器——图12。
图12A-B所示为使用线路板的固态驱动器,线路板是多层控制器体系结构(MLCA)驱动器,每个MLCA驱动器使用一个智能存储开关。图12A中,智能存储开关30复制数据并跟踪多份数据。数据用几个NVMD 412来存储。
图12B中,主板157安装有智能存储开关30。通过在主板157上的引线将两个或两个以上的MLCA插槽155连接到智能存储开关30。每个MLCA插槽155与图1A或1B中所示的一个MLCA 11连接。
闪存模块——图13。
图13A-D所示为安装到如SATA存储驱动器线路板等一个线路板上的插座内的闪存模块。图13A所示为闪存模块。闪存模块110设有一基底,如多层印制线路板(PCB)用于表面安装NVMD 412在基底的前表面上,如图所示,然而更多的NVMD 412安装在基底的后表面上(图中未显示)。另外,NVMD 412可用插座或接头取代直接地表面安装。
金属接触垫112沿着模块底部边缘布置在前后表面上。金属接触垫112与模块插座上的接触垫配对,将模块电气连接到个人电脑主板或固态硬盘卡上。某些种类的模块上出现孔洞116,目的是为了将模块正确地定位到插座内。缺口114也是为了确保模块在插座内的正确定位。缺口114能够避免由于失误将错误类型的模块插入。电容或其它离散的元件表面安装在基底上,目的是为了过滤来自于NVMD 412的干扰信号,NVMD 412也是采用表面安装技术SMT工艺进行安装。
闪存模块110将NVMD 412连接到金属接触垫112上。与闪存模块110的连接是通过逻辑总线LBA或通过LBA存储总线接口28来完成的。图1所示的NVM闪速存储器68以及NVM控制器76可用图13A的闪存模块来替换。
图13B所示为LBA闪存模块。闪存模块110’设有一基底,如多层印制线路板(PCB)用于表面安装NVMD 412在基底的前表面上,如图所示,然而更多的NVMD 412安装在基底的后表面(图中未显示)。
金属接触垫112沿着模块底部边缘布置在前后表面上。金属接触垫112与模块插座上的接触垫配对,将模块电气连接到个人电脑主板或固态硬盘卡上。某些种类的模块上出现孔洞116,目的是为了将模块正确地定位到插座内。缺口114也是为了确保模块在插座内的正确定位。缺口114能够避免由于失误将错误类型的模块插入。电容或其它离散的元件表面安装在基底上,目的是为了过滤来自于NVMD 412的干扰信号。
图13C所示为SATA存储驱动器的顶视图。线路板151上安装了智能存储开关30和插座143。图13A-B所示的闪存模块110插入到插座143中,并通过线路板151上的引线连接到智能开关30。SATA接头113将智能存储开关30连接到主机SATA总线上,如当线路板151插入图12B所示的插槽155内以及线路板151充当RAID驱动器时。
图13D所示为图13C所示的SATA存储驱动器的侧视图。图13A-B所示的闪存模块110插入到插座143中,并通过线路板151上的引线连接到智能开关30。SATA接头113将智能存储开关30连接到主机SATA总线上。
三层数据分割——图14。
图1D中所示的三层控制器包括第一级智能存储开关,该智能存储开关接收主机数据和经过N个信道分配数据。这些信道中的每个信道都连接到一个第二级智能存储开关。然后每个第二级智能存储开关进一步经过每个第二级智能存储开关的M个NVMD 412分配数据。每个NVMD可设有几个裸片,每个裸片几个平面,从而保证每个NVMD在第三层的进一步数据分割。
图14所示为三层数据分割。来自主机的数据将以分段深度N倍于分段大小的分段形式由第一级智能存储开关进行存储。每个分段将发送到N个第二级智能存储开关中不同的一个智能存储开关。
在第二层时,每个第二级智能存储开关设有M个连接到NVMD的信道。每个第二级智能存储开关总共设有M个NVMD。信道分段大小是信道大小的M倍。
在第三层时,每个NVMD将数据分配到闪速存储器上,每个闪速存储器可分成几个裸片,每个裸片可分为几个平面。数据的宽度可以是每个平面8位元、16位元、32位元或其它位元大小。CE1是裸片1的芯片选通,而CE2是裸片2的芯片选通。该例子中,每个NVMD有两个NVM裸片,每个裸片有两个平面,数据宽度是8位元NVM。图1B以及其它图中的NVMD 412可每个封装包装两个闪速存储器裸片,每个闪速存储器裸片有两个平面。这种每个封装包两个闪速存储器裸片,每个闪速存储器裸片有两个平面的方式经由使用双平面闪速存储器命令而提高了闪存存取速度。
图15A-C所示为数据分割的几个例子。图15A中,数据分割形成的分段大小与NVMD紧密地关联。分段大小可设置为每个NVMD可同时存储的页数。例如,当每个NVMD设有两个裸片和每个裸片有两个平面时,可一次将四个平面或四页写入到每个NVMD中。因此,分段大小等于四页。
分段深度等于信道数目N乘以分段大小或N倍于该例子中的4个页面。一个设有每个信道两个裸片、每个裸片两个平面的8个NVMD的8信道系统拥有8x4或32页的数据分段深度,由智能存储开关30设置。当裸片或平面数增加或页面大小不同时,根据基于LBA的NVMD物理闪速存储器体系结构,数据分割方法会改变。分段大小会随着闪速存储器页面大小改变,从而达到最高效率。
保留一个NVMD用来存储另外N-1个NVMD的奇偶校验。存储奇偶校验所选择的NVMD没有必要固定,但是可在智能存储开关30控制下的N个NVMD之间进行轮流。该例子中提供了类似RAID5的数据保护。
图15B中,使用了4K字节的数据块。4K字节的数据块比1K字节的数据块大但比NVMD分段尺寸小。汉明码可用来定位错误。在该例子中,使用两个半NVMD存储奇偶校验或其它ECC信息。例如,使用带11个数据和5个奇偶校验的4K字节块的汉明码(16,5)。
图15C中,使用了1K字节的数据块。1K字节的数据块比NVMD分段尺寸小。可用汉明码来保护一个1K字节的错误,但是整个页面仍可能会因为邻近存储单元的读/写干扰而丢失数据。
在该例子中,仅使用一个NVMD存储奇偶校验或其它ECC信息。例如,使用57个数据和7个奇偶校验的1K字节块的汉明码(64,7)。
除了所描述的一层智能存储开关30外,也可使用两层智能存储开关将数据以分段进行多层分配处理。既可以使用水平ECC,也可以使用竖向ECC。所有页面可保留用于竖向ECC,而每个页面的某些奇偶校验则保留用于水平ECC。这对读-改-写循环和对与SDRAM 60一起使用特别有好处。各种其它强度的错误探测和错误纠正可用不同的汉明码来替换。
设有交错的三层功能——图16A。
图16A所示为使用两层智能存储开关的闪存的两个信道之间的交错存取。第二级智能存储开关30’的内部总线连接到多个闪存信道界面63、63’,进行奇偶交错。CPU 82是一种如图3中所示的虚拟存储处理器140,或接收和解码通过内部总线发送的请求的另一种处理器。
每个NVMD 412可设有多个信道的闪速存储器NVM 68。CPU 82将某些请求发送到第一个闪存信道界面63,用于存储在第一和第二个NVMD 412的NVM 68的数据,而CPU 82发送其它请求到第二个闪存信道界面63’,用于存储在第三和第四个NVMD 412的NVM 68的数据。
第一闪存信道界面63生成交错控制、数据以及一次一个分别选址和激活第一个和第二个NVMD 412的1号地址和相关装置选择1号CS。第二闪存信道界面63’生成交错控制、数据以及一次一个分别选址和激活第三个和第四个NVMD 412的2号地址和相关装置选择2号CS。
使用了两个时钟源。奇数号时钟源驱动第一个奇数号时钟同步到第二个和第三个NVMD412上,而偶数号时钟源驱动第二个偶数号时钟同步到第一个和第四个NVMD 412上。两个时钟可在时间上不相互重叠,从而可在第一信道内的两个NVMD 412之中选择一个,或在第二信道内的两个NVMD 412之中选择一个。当一个时钟脉冲时,另外一个时钟源可停止。时钟源也可以与交错选择信号或地址位元一起使用。
来自第一级智能存储开关30的数据可驱动多个第二级智能存储开关30’,第一级智能存储开关30连接到主机并缓冲SDRAM 60中的数据。第一级智能存储开关30内的一个CPU执行主处理器的作用而第二级智能存储开关30’中的CPU 82执行信道处理器的作用。第一级智能存储开关30内部的信道发送器(没有显示)将数据分配和发送到第二级智能存储开关30’之中。
图16B所示为使用高级和低级智能存储开关的三层数据分割。第一级智能存储开关638接收主机数据并将其存储在主控制器460内的几排信道缓冲器中。第一排信道缓冲器(0)填满后,然后存储到第一排信道缓冲器(1),等等,直到第一排信道缓冲器(N)填满为止再开始第二排的填充。
每个缓冲信道将数据发送到几个第二级智能存储开关639中不同的一个智能存储开关。数据是经过每个第二级智能存储开关639中的流水线寄存器(PL_REG)进行分配的。流水线寄存器数据然后发送到一对与该第二级智能存储开关639相连接的NVMD 412。每个NVMD 412有两个裸片,每个裸片有两个平面,因此每个NVMD一次能够存储4页。每个流水线寄存器能够存储8页数据。
N个中的每一个第二级智能存储开关639拥有M对NVMD 412。每对NVMD的分段深度为8页,每个信道(每个第二级智能存储开关639)的分段深度是M*8页,第一级智能存储开关638的高级分段深度是N*M*8页。
图16C所示为使用高级和低级智能存储开关的三层数据删减。每个NVMD跟踪自己NVM内的坏块数量和位置。分段数据的可用区域以及重新定位的坏块数据的交换区域也为每个NVMD存储好。该信息将上报到第二级智能存储开关639,该智能存储开关跟踪附在其上的所有M个NVMD的可用区域。附在一个第二级智能存储开关639的所有NVMD的可用区域均设置为相同的数值以便于数据分割和交错存储。例如,信道(0)的每个NVMD的可用区域为190,所以信道(0)的可用区域总数为190*M。
所有第二级智能存储开关639的可用区域信息将上报到第一级智能存储开关638。选择最小可用区域并用于所有第二级智能存储开关639上,以便于数据分割。该例子中,第二级智能存储开关639的N个信道的可用区域总数为190*M*N。
图16D所示为使用高级和低级智能存储开关的三层ECC。在高级情况时,第一级智能存储开关638使用主控制器460中的汉明水平ECC码单元478生成并检查水平ECC。来自存储界面470的主机数据将其从主机获得的循环冗余码校验(CRC),由CRC校验器470进行校验,然后与汉明水平ECC码单元478生成的水平ECC码一道由发送器474发送到各个信道(即第二级智能存储开关639)。读取闪速存储器时,接收器476将奇偶校验或ECC数据发送到汉明水平ECC码单元478,该单元校验和矫正发回到主机的数据中的错误。
水平ECC可存储在信道(M)内,而数据可存储在信道(0-N)内。竖向ECC可在信道(0-N)和信道(M)之间进行分配。
两个级别都可以使用单个错误纠正和双个错误侦测码。RAID-5就属于一个特殊的案例。ECC既可水平布置也可竖向布置。竖向ECC存储在信道(M)的多个NVMD内,而水平或页面ECC存储在信道(N)的一个NVMD内。
图17所示为如图1A所示的闪存系统内的冗余控制器、信道和芯片选通信号。智能存储开关30使用多个NVM控制器76,从0号到M号。每个NVM控制器76驱动0号到N号信道的共享地址/命令/数据总线。每个总线连接到所有四个NVM闪速存储器68,每个NVM控制器76也驱动四个芯片选通(CE)控制信号,每个CE发送到四个NVM闪速存储器68中不同的一个。
智能存储开关30从存储到0号到M-1号NVM控制器76的第一级数据分段生成奇偶校验,然后将该奇偶校验存储到M号NVM控制器76内。分段数据存取比较快,这是因为能平行存取几个NVM控制器;非分段的散列数据也可以存取,但是会降低系统性能。
当NVM控制器76其中之一个的磨损严重时,可将该NVM控制器从分割处理中删除,而使用剩下的NVM控制器76。M号NVM控制器76的一个NVM闪存存储器68可用来存储重新映射数据,如用CE(3)来存取的第四个NVM闪速存储器68。于是,M号信道可用于奇偶校验存储和存储来自其它信道的重新定位或重新映射的数据。如果出现硬件故障,M号信道可用作更换硬件。
如果执行冗余,将可能有三个执行方案。第一个执行方案是数据大小与NVM控制器76数据分段大小相等。其中一个NVM控制器76用作奇偶校验保护其余的NVM控制器76的一个已知位置故障;两个NVM控制器76用作奇偶校验保护其余的NVM控制器76的两个已知位置故障。或如果NVM控制器76的故障位置是未知,那么需要几个NVM控制器76用作奇偶校验保护其余的NVM控制器76中的数据。可使用单个错误纠正和双个错误侦测方案,如汉明码计算方法。汉明码有下列奇偶校验要求:4个数据使用4个奇偶校验(8,4);或11个数据使用5个奇偶校验(16,5);或26个数据使用6个奇偶校验(32,6);或57个数据使用7个奇偶校验(64,7);或120个数据使用8个奇偶校验(128,8)。
第二个执行方案是数据大小与NVM控制器76的一个信道数据分段大小相等。使用单个错误纠正和双个错误侦测的汉明码计算方法。该例子中总共有M*N个信道。如果有M=4个NVM控制器76,每个控制器有N=4个信道,那么SSD内就有16个信道,即5个奇偶校验和11个数据的汉明码(16,5)。例如,对于0号和1号NVM控制器76,所有信道都是用来存储主机数据的数据信道。2号NVM控制器76有3个数据信道和一个奇偶校验信道。3号NVM控制器76所有的4个信道都是奇偶校验信道。
第三个执行方案是数据大小等于一个CE数据分段大小。总共有M*N*4个CE数据分段。该例子中,使用64个CE数据分段,即7个奇偶校验和57个数据的汉明码(64,7)。例如,0号、1号和2号NVM控制器76将用于数据。3号NVM控制器76的0号和1号信道也用于数据,另外,3号NVM控制器76的2号信道的CEO也用于数据。3号NVM控制器76剩下的7个部分都用于奇偶校验。数据大小可以进一步降低到等于页面大小。NVM闪速存储器68中的闪存ECC保护单元将是奇偶校验最小的数据大小。
冗余使系统能够通过生成的奇偶校验(有时称为元数据)纠正错误数据。当没有提供冗余时,不需要奇偶校验,那么该奇偶校验存储区域可用来存储数据。如果一个NVMD或其一个信道或一个CE芯片保留用作备用区,那么当一个NVMD或其一个信道或一个CE芯片发生故障时,该备用区可通过第一级映射逻辑(517)将故障部分更换掉。
另外,也可能存在三个更换区域。第一个执行方案使用一个或多个NVM控制器76作为备用区域,其中使用一个备用NVM控制器76更换发生错误的NVM控制器76或重新映射部分发生错误的NVM控制器76到备用NVM控制器76。第二个执行方案使用NVM控制器76的一个或多个信道作为备用区域;其中使用这些信道中的一个信道替换发生错误的信道或重新映射部分发生错误的信道到备用信道。第三个执行方案使用一个或多个芯片(CE)作为备用区域;其中使用这些芯片中的一个芯片替换发生错误的芯片或重新映射部分发生错误的芯片到备用芯片。
磨损平衡——图18。
图18A-D所示为静态磨损平衡。既可以进行动态磨损平衡也可以进行静态磨损平衡。动态磨损平衡由NVM控制器76来执行,NVM控制器76将非旧数据页面从源本区块移动到阴影区块,以至于整个源本区块仅包含旧数据。然后旧数据源本区块擦除并回收用作可用的物理区块。该操作在正常运行期间进行。当新数据要求分配一个新的物理区块时,将选择擦除数量最低的物理区块,或采用某种程序优先选择低擦除数量的物理区块,而不选择较高擦除数量的物理区块。
静态磨损平衡属于上电时进行的一个附加级别的磨损平衡。使用静态磨损平衡程序搜索擦除数量最低的物理区块和擦除数量最大的物理区块,并交换该两个物理区块。
图18A中,四个物理区块的擦除数量都予以标示。区块PBA(3)的擦除数量最低,而区块PBA(0)的擦除数量最高,属于磨损最严重的区块。图18B中,通过从两个区块读取数据以及将从区块PBA(0)读取的数据写入区块PBA(3)和将从区块PBA(3)读取的数据写入区块PBA(0)的方式实现两个物理区块的交换。那些在区块PBA(0)上迅速变化的数据已经移动到磨损最小的区块PBA(3)上,该区块有最高的存取优先。区块PBA(0)包含那些经常变更的数据,而区块PBA(3)包含那些不常使用的代码。通过两个区块的交换,区块PBA(0)擦除数量将降低。
对于磨损平衡,擦除数量最低的清空的PBA将首先使用,所以该区块有最高的存取优先。区块PBA(0)上经常变更数据实际上是指该区块所映射到的LBA经常变更。区块PBA(0)和区块PBA(3)之间的交换结果将把分配到这些物理区块的LBA交换。区块PBA(0)留有不经常变更的LBA。由于LBA经常变更,区块PBA(3)也经常变更,并将进行回收和重新利用。
图18C中,随着时间的推移,系统已经再次上电。区块PBA(1)已经被额外擦除多次,现在已经成为擦除数量最高的磨损最严重的区块。区块PBA(2)的擦除数量最低。图18D中,区块PBA(1)和区块PBA(2)相互交换。区块PBA(1)上迅速变更的数据已经移动到磨损最低少的区块PBA(2),现在该PBA(2)区块有最高的存取优先。
数据缓存——图19。
图19A-C所示为混合闪存系统内的数据缓存。在第一级智能存储开关30由SDRAM 60缓存数据,在第二级智能存储开关30’由SDRAM 60’缓存数据,以及在NVM控制器76由另一个SDRAM缓存数据。请参考美国专利申请序列号12/252,155专利的申请案图1A了解更多缓存信息。
图19A中,SDRAM 60作为第一级智能存储开关30的回写缓存。主机主板10将一个DMA输出(写)命令发送到第一级智能存储开关30,该智能存储开关送还DMA确认单。然后主机主板10将数据发送到第一级智能存储开关30,该智能存储开关将该数据存放在SDRAM 60中。一旦主机数据存放在SDRAM 60,第一级智能存储开关30将把一个成功完成写入状态信号发回到主机主板10。从主机主板10的角度看,DMA写入完成,主机的访问时间相当短。
主机数据存放到SDRAM 60内后,第一级智能存储开关30将DMA写入命令发送到第二级智能存储开关30’,该第二级智能存储开关将DMA确认单回送给第一级智能存储开关30。然后第一级智能存储开关30将存放在SDRAM 60的数据发送出去。该数据缓存在第二级智能存储开关30’的SDRAM 60’内。一个成功完成写入状态信号将发回到第一级智能存储开关30。
第二级智能存储开关30’将DMA写入命令发送到NVMD 412。NVM控制器送还DMA确认单,然后该第二级智能存储开关30’将存放在SDRAM 60’的数据发送出去。该数据缓存在NVM控制器76内的SDRAM缓冲器77或另外一个缓冲器中,然后写入到闪速存储器。一旦数据写入到闪速存储器,一个成功完成写入状态信号将发回到第二级智能存储开关30’。从第二级智能存储开关30’的角度看,内部DMA写入完成。第二级智能存储开关30’的访问时间由于通写缓存模式缘故而相当长。但是,该访问时间对主机主板10是隐藏的。
图19B中,SDRAM 60作为通写缓存进行工作,但是NVMD作为回写缓存运作。主机主板10将一个DMA输出(写)命令发送到第一级智能存储开关30,该智能存储开关送还DMA确认单。然后主机主板10将数据发送到第一级智能存储开关30,该智能存储开关将该数据存放在SDRAM 60中。
主机数据存放到SDRAM 60后,第一级智能存储开关30将DMA写入命令发送到第二级智能存储开关30’,该第二级智能存储开关送还DMA确认单给第一级智能存储开关30。然后第一级智能存储开关30将存放在SDRAM 60的数据发送出去。该数据缓存在第二级智能存储开关30’的SDRAM 60’内。但是,返回到第一级智能存储开关30的成功完成写入状态信号将延迟到NVMD 412将数据写到闪速存储器后。
第二级智能存储开关30’将DMA写入命令发送到NVMD 412。NVM控制器送还DMA确认单,然后第二级智能存储开关30’将存放在SDRAM 60’的数据发送出去。数据缓存在NVM控制器76的SDRAM缓冲器77(如图1B所示)或另外一个缓冲器中,然后写入到闪速存储器中。一旦数据写入到闪速存储器,一个成功完成写入状态信号将回送到第二级智能存储开关30’,然后到第一级智能存储开关30。从第一级智能存储开关30的角度看,内部DMA写入完成。
第一级智能存储开关30将一个成功完成写入状态信号回送到主机主板10。从主机主板10的角度看,DMA写入完成,主机的访问时间相当长。
图19C中,所有NVMD 412、第一级智能存储开关30以及第二级智能存储开关30’以预读缓存功能进行工作。主机主板10发送一个DMA输入(读)命令到第一级智能存储开关30,然后等待读出数据。
当在第一级智能存储开关30的SDRAM 60内部发现读出数据,点中数据和点中状态可立即送回到主机10。不需要咨询第二级智能存储开关30’和NVMD 412。
但是,当SDRAM 60内出现失误(非点中状态),第一级智能存储开关30没有在SDRAM 60中找到缓存的读出数据。SDRAM 60然后发送一个DMA读命令到第二级智能存储开关30’,该第二级智能存储开关30’也在其SDRAM 60’中出现失误(非点中状态)。
第二级智能存储开关30’然后向NVMD 412发送一个DMA读取命令。这种情况下,NVM控制器发现缓存点中状态,然后从其缓存,即NVM控制器76内的SDRAM缓冲器77中读取数据(如图1B所示),NVM控制器76较早有读取或写入该数据,比如在较早读取或写入之后通过预读方式读取数据。该数据发送到第二级智能存储开关30’并存储在SDRAM 60’内,然后发送到第一级智能存储开关30并存储在SDRAM 60内,之后传送到主机主板10。
NVMD 412将一个成功完成状态信号发送到第二级智能存储开关30’,该第二级智能存储开关将一个成功完成状态信号发送到第一级智能存储开关30。从智能存储开关(30,30’)的角度看,内部DMA读取完成。第一级智能存储开关30将发送一个成功完成状态信号到主机主板10。从主机主板10的角度看,DMA读出完成。主机读取时间相当长,但是与如果必须读取闪速存储器的状况来比较,则仍是短的。
替代实施例
发明者们预计存在其它几种实施例。例如,NVMD 412可为以下其中一个:设有混合SLC和MLC闪速存储器的区块模式映射器,设有SLC或MLC的区块模式映射器,设有混合SLC和MLC闪速存储器的页面模式映射器以及设有SLC或MLC的页面模式映射器。作为选择方案之一,闪存模块110中的NVMD 412可包括未加工闪速存储器芯片。闪存模块内的NVMD 412以及智能存储开关30可包括未加工闪速存储器芯片和闪存控制器,如美国序列号12/252,155的专利申请案图3A-C所示。
每个区块可分成多个页面分区。例如,一个区块可有16个页面和4个分区,每个分区有4个页面。该替代实施例中,某些映射是指向分区而不是单独页面。作为选择方案之一,特殊情况下,每个分区可以是1个页面。分区模式所需的映射入口比页面模式所需的入口少,这是因为通常每个分区都是多个页面。
来自主机逻辑扇区地址(LSA)的高位元可选择一串或一个区。一个映射表中所有入口可用于相同的区。当来自LSA的区码与映射表中的所有入口区码吻合时,来自于LSA的LBA将选择映射表中的一个入口。另外也可以使用混合映射表。
由于MLC闪存的相继写入规则在页面模式下比在区块模式下较少被违反,因此在页面映射下重新定位的区块复制就很少出现。这就提升了闪存系统的耐久性和性能。
映射表可在一个延展的地址空间内进行定位,也可以使用比用户地址空间内最大地址还要大的虚拟地址或非法地址。页面可按照主机页面顺序排列,也可以根据任何页面位置进行重新映射。也可以使用其它编码方式。
可能会出现图1A-B或其它方面的诸多变种。一个ROM,比如EEPROM,就可以连接到虚拟存储处理器140或成为其一组成部分,或者另外一个虚拟存储桥42和NVM控制器76将虚拟存储处理器140连接到另外一个未加工NAND闪速存储器芯片或连接到专门用作虚拟存储处理器140存储固件的NVM闪速存储器68。该固件也可以存储在主要的闪存模块内。主机存储总线18可以是串行附属装置(SATA)总线、外设部件互连标准(PCIE)总线、压缩闪存(CF)总线或串行总线(USB)、IEEE1394法尔接口总线、光纤信道(FC)总线等等。LBA存储总线接口28可以是串行附属装置(SATA)总线、集成设备电子部件(IDE)总线、外设部件互连标准(PCIE)总线、压缩闪存(CF)总线或串行总线(USB)、安全数字(SD)总线、多媒体卡(MMC)总线、IEEE1394法尔接口总线、光纤信道(FC)总线以及各种以太网总线等等。NVM存储器68可能仅为SLC或MLC闪存或可为混合式SLC和MLC闪存。NVM控制器76内的映射器46可对一部分SLC或MLC闪速存储器执行一层区块映射,对剩下的SLC或MLC闪速存储器则可能执行两层页面映射。
闪速存储器可嵌入到主板或SSD板或可以嵌入到不同的模块上。可以加入电容、缓冲器、电阻以及其它元件。智能存储开关30可集成到主板或一个单独的线路板或模块上。NVM控制器76可与智能存储开关30或未加工NAND闪速存储器芯片集成为一个单芯片装置或一个插入式模块或线路板。SDRAM 60可直接焊接到卡300或其它线路板,或一个可拆卸式SDRAM模块可插入到一个模块插座。
使用多层控制器,如总统-管理者的两层控制器,智能存储开关30内的控制器在磨损平衡、坏块管理、重新映射、缓存、电源管理等要求上,就比单层控制器简单的多。由于NVM控制器76在每个闪存模块内的闪速存储器芯片68之间执行较低级管理者功能,所以智能存储开关30的较高层总统功能就得以简化。智能存储开关30内可以使用便宜的硬件,如虚拟存储处理器140或智能存储事务管理器36使用一个8051处理器,而不是使用比较昂贵的处理器核心,如高级RISC Machine ARM-9 CPU核心。
不同数量和布置的闪存存储区块能够连接到智能存储开关。可以不使用LBA存储总线接口28或差动串行包总线,而使用其它串行总线,如同步双倍数据速率(DDR)总线、ONFI、点动(Toggle)NAND、差动串行数据包总线、传统闪存界面等等。
模式逻辑可以只在上电时侦测引脚的状态,而不是侦测专用引脚的状态。可以用多个引脚状态的某一组合或序列来启动模式变更,或者内部寄存器(如配置寄存器)可以设置模式。多总线协议芯片可以具有额外的个性化引脚来选择要使用哪一个串行总线界面,或者可设有可编程寄存器,将模式设为集线器模式或开关模式。
事务管理器和其控制器以及功能可以不同方式执行。可由一个CPU或其它处理器来编程和执行功能,也可以使用专门硬件、固件或它们的某些混合执行功能。功能多数分区可以被替换。智能存储开关30可以是硬件也可以包括固件或软件或它们的组合。
通过使用多个NVM控制器76的奇偶校验/ECC功能以及将数据段分配到多个NVM区块中的方式,大大地提高整个系统的可靠性。但是,这可能要使用带DDR/SDRAM缓存的CPU引擎,以满足复杂ECC/奇偶校验计算和生成所需的计算能力要求。另外一个优点是,即使闪存区块或闪存模块被损坏,数据可以恢复,或者智能存储开关可启动“错误恢复”或“自动重建”过程,插入新闪存模块以及恢复或重建“丢失”或“损坏”的数据。整个系统的容错性能得到大大的提高。
可换用较宽或较窄的数据总线和闪速存储器芯片,如使用16位元或32位元数据信道。可在智能存储开关内外部使用备选的总线体系结构,如带嵌套的或分段式总线。智能存储开关中可使用两个或两个以上的内部总线,从而提高数据吞吐量。内外部总线可用更复杂的开关结构取代。
数据分割可用不同的方式来进行,如同奇偶校验和错误纠正代码(ECC)一样。包的重新排序可根据用来防止重新排列重叠的存储器位置的数据布置来进行调整。智能开关可与其它元件集成,也可以设置为单独芯片。
可加入额外的流水线寄存器或临时缓冲器和FIFO。例如,智能存储开关30内的主机FIFO可为智能存储事务管理器36的部分,或存储在SDRAM60内。每个信道可设置单独的页面缓冲器。可加入时钟源。
单个包装、单个芯片或单个多芯片包装可能包含一个或多个闪速存储器和/或智能存储开关的多个信道。
一个基于MLC的闪存模块可能有四个设有两个平行数据信道的MLC闪存芯片,但是可用不同的组合构成其它闪存模块,如四个、八个或更多数据信道、或八个、十六个或更多MLC芯片。闪存模块和信道可以链条、枝状或阵列方式进行布置。例如,4个闪存模块的一个分支可以链条形式连接到智能存储开关30。其它大小组合或分隔方案可用于存储器的不同存取。可使用闪速存储器、变相存储器(PCM)或铁电体随机存取存储器(FRAM)、磁阻随机存取存储器(MRAM)、记忆电阻器(Memristor)、变相随机存取存储器(PRAM)、氮化膜阱(SONOS)闪速存储器、电阻式随机存取存储器(RRAM)、赛道存储器(Racetrack Memory)以及纳米随机存取存储器(NRAM)。
主机可以是个人电脑主板或其它个人电脑平台、移动通信装置、个人数字助理(PDA)、数码相机、组合装置或其它装置。主机总线或主机-装置界面可以是SATA、PCIE、SD、USB或其它主机总线,而连接到闪存模块的内部总线可以是PATA、使用多个SD/MMC的多信道SSD、压缩闪存(CF)、USB或其它并联界面。闪存模块可以是标准的PCB也可以是多芯片组件包装在TSOP、BGA、LGA、COB、PIP、SIP、CSP、POP封装或多芯片封装(MCP)内,并且可包括未加工NAND闪速存储器芯片或者未加工NAND闪速存储器芯片可以是分开的闪存芯片、或包括其它类型的NVM闪速存储器68。内部总线可全部或部分共享或设成分开的总线。SSD系统可使用装有其它元件如LED指示器、电容、电阻等的电路板。
诸如“上部”,“下部”、“上”、“下”、“顶部”、“底部”等方向词是相对,可随着系统或数据的旋转、翻转等发生变化。这些词语对装置的描述非常有用,但是不是绝对的。
NVM闪速存储器68可设置在闪存模块上,闪存模块可设有封装控制器和闪存裸片的单芯片封装,单芯片封装既可以集成到PCB组装上也可以直接的集成到主板上,从而进一步简化装配,降低生产成本和减少整个厚度。闪存芯片也可以与其它实施例一起使用,包括框架开放式卡。
智能存储开关30除了仅用于闪速存储器的存储功能外,可以加入其它功能特点。例如,音乐播放器可以包括播放存储在闪速存储器内的MP3音频数据的控制器。可在装置上加入音频插孔,用户可将耳机插入享受音乐。可以在装置上加入无线发射机,如蓝牙发射机,从而将装置与无线耳机连接而不需使用音频插孔。也可以添加如用于IrDA的红外发射机。另外,也可以添加与无线鼠标、PDA,键盘、打印机、数码相机、MP3播放器或其它无线装置连接的蓝牙收发器。蓝牙收发器可用作主要连接头取代一般连接头。蓝牙适配器可设有一个连接头、一个射频(RF)收发器、一个基带控制器、一个天线、一个闪速存储器(EEPROM)、一个电压调节器、一个晶体、一个LED(发光二极管)、几个电阻、电容和感应器。这些元件可在封装到一个塑料或金属箱之前安装到PCB上。
发明背景章节可以包含关于发明问题或环境的背景信息,而不是仅描述他人的先有技术。因此,在背景章节内加入的资料并不能视为专利申请人的承认其先有技术。
本申请案中描述的任何方法或工艺是由机械或电脑执行的方法或工艺,将由机器、电脑或其它设备来执行,而不能单独地由人在没有这些机械装置的协助下执行。所生成的有形结果可包含报告或其它机械生成的在显示器上显示的信息,如电脑显示器、投影装置、音频生成装置以及相关媒体装置,也可包括机械生成的硬拷贝打印资料。其它机器的电脑控制也算是另一个有形结果。
所述的优势和优点可能不实用于发明的所有实施例。当“构件”一词在专利范围的每一项元件内引用时,表明专利申请人想要将专利范围的每一项元件归到《美国专利法》35U.S.C.§112第6款。通常有一个包含一个或多个词的标签在“构件”一词的前面。置于“构件”一词前面的一个或多个词是一个标签,用于方便参考专利范围的每一项元件而不是传达结构限制。这种构件+功能的权利主张不但涵盖本文件所述的执行功能的结构和结构等价物,并且进一步包括其它等效结构。例如,虽然钉子和螺丝的结构不同,但是它们是等效的结构,因为它们都具有紧固功能。那些不使用“构件”一词的权利主张表明不归到《美国专利法》35U.S.C.§112第6款。信号一般是指电子信号,但是也可以是光信号,如可通过光纤线路传送的信号。
前述发明实施例的目的是为了说明和描述本发明。本专利申请案不是完全无遗漏的描述本发明或将本发明限制于所披露的精确形式。从上文的描述中,可以学会对本发明进行许多改装和更改。本发明范围应认不受本专利申请案的具体描述限制,而是受本专利申请案所附专利权利主张的限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种三层闪存装置,其特征在于,包括高级智能存储开关,所述高级智能存储开关包括:
连接到主机的上游接口,用来接收主机命令、主机数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的高级智能存储事务管理器;
将主机地址映射到指定闪存信道上从而生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的高级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层闪存装置还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到高级智能存储开关的第二上游接口,用于接收访问NVM存储器的命令以及接收来自高级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
将地址从高级智能存储开关映射到指定闪存信道上从而生成本地逻辑块地址的信道存储处理器,所述信道存储处理器执行映射功能到附在第二级智能存储开关上的多个NVM装置;
与所述信道存储处理器连接的第二级映射器、存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量,所有NVM装置的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
所述三层闪存装置还包括:
多个NVM控制器,每个NVM控制器与LBA总线相连接,接收信道存储处理器生成的逻辑块地址以及来自于第二级智能存储开关的数据;
安装在NVM控制器内的低级映射器,将逻辑块地址映射到物理块地址,低级映射器生成块映射的主机数据的物理块地址以及页映射的主机数据的物理块地址和页码;
以及包括指定闪存信道在内的多个闪存信道,每个闪存信道包括:
与NVM控制器连接的NVM闪速存储器,用来将主机数据存储至所述NVM控制器内的低级映射器生成的物理块地址识别的块位置上以及页映射的主机数据的页码识别的页面位置上;
其中,第二级智能存储开关作为多个信道,每次多个闪存信道同时存取存储在多个闪存信道内的分段数据;
其中,第二级智能存储开关作为单个信道,每次一个闪存信道存取存储在多个闪存信道内的散列数据;
因此,散列数据以单信道存取方式进行存取,而分段数据使用多个信道同时存取方式进行存取。
2.如权利要求1所述的装置,其特征在于,所述第二级映射器进一步包括:
上电起动的删减过程,用来决定NVM闪速存储器的选定大小以及删减所有NVM闪速存储器设置为选定的大小。
3.如权利要求1所述的装置,其特征在于,所述高级分割映射器进一步包括:
上电起动的删减过程,用来决定闪存信道的选定的大小以及删减所有闪存信道设置为选定的大小。
4.如权利要求1所述的装置,其特征在于,所述第二级智能存储开关进一步包括:
信道纠错码ECC单元,用于生成ECC,并将ECC发送到与指定NVM控制器连接的指定NVM闪速存储器上;
其中,指定NVM闪速存储器采用对角分布方式;
汉明码纠错单元,位于第二级智能存储开关内,使用汉明码ECC电路在从NVM闪速存储器回读数据上检测两位元错误以及纠正一位元错误;
其中,ECC将发送到一个冗余信道用于存储在NVM闪速存储器内,以生成和存储分段ECC。
5.如权利要求1所述的装置,其特征在于,所述高级智能存储开关进一步包括:
将信道ECC附加到发送到指定闪存信道的数据上的高级纠错码ECC单元,其中信道ECC存储在NVM闪速存储器内;
其中,存储信道ECC的指定闪存信道采用对角分布方式;
汉明码ECC单元,位于高级智能存储开关内,从主机数据的分段上生成分段ECC;其中,分段是由高级分割映射器生成的;
其中,分段ECC将发送到一个分段信道用于存储在NVM闪速存储器内,以生成和存储分段ECC以及页面ECC。
6.如权利要求1所述的装置,其特征在于,所述高级智能存储事务管理器进一步包括:
交错单元,与虚拟存储桥相连接,将主机数据交错到附在NVM闪速存储器上的多个闪存信道的多个交错位置内,以多个交错位置方式存取多个闪存信道。
7.如权利要求1所述的装置,其特征在于,所述第二级智能存储事务管理器进一步包括:
交错单元,连接到第二级智能存储开关的虚拟存储桥,将分段数据交错到附在NVM闪速存储器上的多个闪存信道的多个交错位置内,以多个交错位置方式存取多个NVM控制器。
8.如权利要求1所述的装置,其特征在于,所述高级智能存储事务管理器进一步包括:
多信道平行存取单元,与虚拟存储桥相连接,将主机数据平行存取到附在多个第二级智能存储开关上的多个信道内,以平行方式存取多个第二级智能存储开关。
9.如权利要求1所述的装置,其特征在于,所述第二级智能存储事务管理器进一步包括:
多信道平行存取单元,与第二级智能存储开关的虚拟存储桥相连接,将分段数据平行存取到多个NVM控制器内,以平行方式存取多个NVM控制器。
10.如权利要求1所述的装置,其特征在于,所述高级智能存储开关进一步包括:
用来暂时存储主机数据在当断电时会丢失数据的易失性存储器缓冲器;
缓存电路,由易失性存储器缓冲器执行,用于存储来自于上游接口的相关缓冲数据,缓存电路用于事务数据的缓存;
其中,第二级智能存储开关进一步包括:
缓存多个NVM控制器的数据的第二级缓存构件;
其中,NVM控制器进一步包括:
缓存NVM闪速存储器的数据的低级缓存构件。
11.一种智能存储开关的三层控制器,其特征在于,包括第一级智能存储开关,所述第一级智能存储开关包括:
连接到主机的上游接口,用于接收主机命令、主机数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的智能存储事务管理器;
将主机地址映射到指定闪存信道上生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的第一级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层控制器还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到第一级智能存储开关的第二级上游接口,用来接收用于访问非易失性存储器的命令以及接收来自第一级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
与信道存储处理器连接的第二级分割映射器,存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量,所有NVM装置的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
从第一级智能存储开关上将地址映射到指定闪存信道生成本地逻辑块地址LBA的信道存储处理器,信道存储处理器执行将数据映射到附在第二级智能存储开关上多个NVM装置上的功能;
所述三层控制器还包括:
NVM控制器,与LBA总线连接,接收信道存储处理器生成的LBA以及来自于第二级智能存储开关的数据;以及
安装在NVM控制器内的低级映射器,将LBA映射到物理块地址PBA,低级映射器生成块映射的主机数据的PBA以及页映射的主机数据的PBA和页码。
12.一种智能存储开关的三层控制器,其特征在于,包括第一级智能存储开关,所述第一级智能存储开关包括:
连接到主机的上游接口,用于接收主机命令、主机数据和主机地址,所述主机命令用于访问非易失性存储器;
管理来自主机的事务的智能存储事务管理器;
将主机地址映射到指定闪存信道上生成逻辑块地址LBA的虚拟存储处理器,所述虚拟存储处理器执行高级映射;
与所述虚拟存储处理器连接的第一级分割映射器,存储有用于每个闪存信道的分段数据容量和散列数据容量,所有闪存信道的分段数据容量数值相等,闪存信道之间的散列数据容量存在数值差别,所述分段数据容量是指分段数据区域的容量,所述分段数据区域的容量是指容量最小的闪存信道中除分配用于映射表、坏块以及其它系统管理目的以外的存储区域的容量,所述闪存信道的散列数据容量是指该闪存信道中除分段数据容量外的容量;
连接在智能存储事务管理器和LBA总线之间的虚拟存储桥;
所述三层控制器还包括第二级智能存储开关,所述第二级智能存储开关包括:
连接到第一级智能存储开关的第二级上游接口,用来接收用于访问非易失性存储器的命令以及接收来自第一级智能存储开关的数据和地址;
管理来自NVM装置的事务的第二级智能存储事务管理器;
与信道存储处理器连接的第二级分割映射器,存储有用于每个闪存信道的所有NVM装置的物理容量和交换容量,所有NVM装置的物理存储器存在不同数量的坏块,闪存信道之间的交换容量也存在数量差别,所述每个闪存信道的所有NVM装置的物理容量是指每个闪存信道的所有NVM装置的物理存储器的容量,所述交换容量是指用于存储重新定位坏块的数据的交换区的容量;
从第一级智能存储开关上将地址映射到指定闪存信道生成本地逻辑块地址LBA的信道存储处理器,信道存储处理器执行将数据映射到附在第二级智能存储开关上多个NVM装置上的功能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/475,457 | 2009-05-29 | ||
US12/475,457 US8266367B2 (en) | 2003-12-02 | 2009-05-29 | Multi-level striping and truncation channel-equalization for flash-memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101923512A CN101923512A (zh) | 2010-12-22 |
CN101923512B true CN101923512B (zh) | 2013-03-20 |
Family
ID=43338463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010135362 Expired - Fee Related CN101923512B (zh) | 2009-05-29 | 2010-02-21 | 三层闪存装置、智能存储开关和三层控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101923512B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013095465A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
US9740439B2 (en) * | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
CN102567257B (zh) * | 2011-12-26 | 2014-08-27 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN103034458B (zh) * | 2012-12-25 | 2015-11-25 | 华为技术有限公司 | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 |
CN105094271B (zh) * | 2014-05-06 | 2018-02-09 | 瑞昱半导体股份有限公司 | 集线器控制方法以及集线器控制电路 |
CN104951406B (zh) * | 2015-06-12 | 2018-05-04 | 上海华为技术有限公司 | 一种分页式地址空间管理方法以及控制器 |
CN107807786B (zh) * | 2016-09-08 | 2021-09-07 | 宏碁股份有限公司 | 存储装置及其资料映射方法 |
TWI640867B (zh) | 2017-05-02 | 2018-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其操作方法 |
CN107643992B (zh) * | 2017-09-27 | 2020-09-08 | 成都忆芯科技有限公司 | PCIe控制器与使用PCIe控制器的环回数据通路 |
US11210247B2 (en) | 2017-09-27 | 2021-12-28 | Chengdu Starblaze Technology Co., Ltd. | PCIe controller and loopback data path using PCIe controller |
KR102507140B1 (ko) * | 2017-11-13 | 2023-03-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110147200A (zh) * | 2018-02-13 | 2019-08-20 | 矽创电子股份有限公司 | 闪存的控制器及控制方法 |
KR20200028255A (ko) * | 2018-09-06 | 2020-03-16 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
CN110209374B (zh) * | 2019-05-23 | 2021-04-20 | 浙江大学 | 一种基于racetrack memory的乘法器及其操作方法 |
CN111078143B (zh) * | 2019-11-27 | 2020-12-29 | 华中科技大学 | 基于段映射进行数据布局和调度的混合存储方法及系统 |
CN115346590A (zh) * | 2022-08-12 | 2022-11-15 | 腾讯科技(深圳)有限公司 | 一种通道修复方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1447242A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 可适用于快闪存储卡的控制装置及其建构方法 |
US20080320214A1 (en) * | 2003-12-02 | 2008-12-25 | Super Talent Electronics Inc. | Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices |
US20090037652A1 (en) * | 2003-12-02 | 2009-02-05 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
-
2010
- 2010-02-21 CN CN 201010135362 patent/CN101923512B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1447242A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 可适用于快闪存储卡的控制装置及其建构方法 |
US20080320214A1 (en) * | 2003-12-02 | 2008-12-25 | Super Talent Electronics Inc. | Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices |
US20090037652A1 (en) * | 2003-12-02 | 2009-02-05 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
Also Published As
Publication number | Publication date |
---|---|
CN101923512A (zh) | 2010-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101923512B (zh) | 三层闪存装置、智能存储开关和三层控制器 | |
US8266367B2 (en) | Multi-level striping and truncation channel-equalization for flash-memory system | |
CN108694128B (zh) | 存储器系统和用于数据存储的方法 | |
CN101727976B (zh) | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 | |
CN103488578B (zh) | 虚拟存储设备(vmd)应用/驱动器 | |
USRE50408E1 (en) | Data storage system configuration to perform data rebuild operation via reduced read requests | |
KR101405741B1 (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
US8341332B2 (en) | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices | |
US9563549B2 (en) | Data storage device, user device and data write method | |
US8037234B2 (en) | Command queuing smart storage transfer manager for striping data to raw-NAND flash modules | |
CN102549554B (zh) | 基于条带的存储器操作 | |
US20090193184A1 (en) | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System | |
KR102533207B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US20190294345A1 (en) | Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance | |
CN109992530A (zh) | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
US11573893B2 (en) | Storage system and method for validation of hints prior to garbage collection | |
US11442666B2 (en) | Storage system and dual-write programming method with reverse order for secondary block | |
US20230384966A1 (en) | Storage System and Method for Data Placement in Zoned Storage | |
US11782788B2 (en) | Error-correction-detection coding for hybrid memory module | |
CN101576851B (zh) | 存储单元配置方法及其所适用的存储介质 | |
US11314428B1 (en) | Storage system and method for detecting and utilizing wasted space using a file system | |
KR102797299B1 (ko) | 데이터 저장 장치 및 동작 방법 | |
US12254936B2 (en) | Data storage device and method for runtime exclusive—or zoning during folding |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20210221 |
|
CF01 | Termination of patent right due to non-payment of annual fee |