CN207148818U - 具有lun映射器的固态存储设备控制部件 - Google Patents
具有lun映射器的固态存储设备控制部件 Download PDFInfo
- Publication number
- CN207148818U CN207148818U CN201720947480.1U CN201720947480U CN207148818U CN 207148818 U CN207148818 U CN 207148818U CN 201720947480 U CN201720947480 U CN 201720947480U CN 207148818 U CN207148818 U CN 207148818U
- Authority
- CN
- China
- Prior art keywords
- lun
- physics
- nvm
- virtual
- storage device
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
Abstract
提供了具有LUN映射器的固态存储设备控制部件。所公开的固态存储设备的控制部件,包括LUN(Logic Unit,逻辑单元)映射器与耦合到LUN映射器的介质接口控制器;LUN映射器包括查找表电路,以虚拟LUN号和/或虚拟块号为索引从查找表电路中获取第一LUN号,作为LUN映射器的输出;介质接口控制器通过第一通道与第二通道耦合到多个NVM芯片;介质接口控制器根据LUN映射器的输出选择通道之一,在所选择的通道上生成有效的使能(CE)信号,以激活所述第一LUN号对应的物理LUN。
Description
技术领域
本申请涉及存储技术,尤其涉及在固态存储设备中使用虚拟LUN提供存储空间和/或闪存通道管理。
背景技术
参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA、IDE、USB、PCIE、NVMe(NVM Express)、SAS、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM(非易失存储器,Non-Volatile Memory)芯片105以及可选地固件存储器110。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器。控制部件104在运行时从固件存储器110加载固件。固件存储器110可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片105的部分。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(Logic Unit)。每个逻辑单元具有逻辑单元号(LUN,Logic UnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在公开号为CN1414468A的中国专利申请中,提供了通过执行微指令序列来处理CPU(Central Processing Unit,中央处理单元)指令的方案。当CPU要处理特定指令时,转换逻辑电路将特定指令转换成与之对应的微指令序列,通过执行微指令序列来实现特定指令的功能。微指令序列或者微指令序列的模板存储在ROM(Read Only Memory,只读存储器)中。在将特定指令转换成微指令序列过程中,可对微指令序列模板进行填充,使之与特定指令相对应。
在中国专利申请CN201610009789.6与CN201510253428.1中提供了用于闪存接口控制器的微指令执行方法与装置,中国专利申请CN 201610861793.5提供了微指令序列的调度方法与装置,中国专利申请CN 201611213754.0提供了IO命令处理方法与固态存储设备,中国专利申请CN 201611213755.5提供了大容量NVM接口控制器,将其全文合并于此。闪存接口控制器通常耦合到多个NVM芯片,NVM芯片包括多个LUN(Logic UNit,逻辑单元)或管芯,多个LUN和管芯可以并行响应及访问NVM命令。又由于每个LUN或管芯上可以有多个待处理的NVM命令,因此NVM控制器需要对多个NVM命令的处理过程进行调度,以维护多个在处理中或待处理的NVM命令,或者维护多段用于生成和处理NVM命令的微指令序列的执行。
在大容量固态硬盘中,控制器需要连接更多的NVM芯片。而在单一NVM芯片内也可包括了多个管芯或目标。由于NVM芯片上的每个管芯或目标都具有芯片使能(Chip Enable,CE)引脚,并且在操作每个管芯或目标时,要向其施加单独的CE信号,以同固态硬盘中的其它NVM芯片/管芯/目标的操作相区分。然而众多的CE信号需要消耗控制器的大量的IO引脚资源。
图2为中国专利CN201632269U的具有芯片使能信号扩展的存储***的示意图。图2示出的存储***包含存储器控制器210(也称为固态硬盘控制器)和闪存通道1(230)到闪存通道m(233),每个闪存通道上包括一片或多片闪存芯片(未示出)。在图2的存储***中,还包括CE扩展器220。CE扩展器220连接到存储器控制器210。CE扩展器220与存储器控制器210的连接,在CE扩展器220与存储器控制器210之间传输数据。在图2的实施例中,闪存通道230与233共用数据信号线和除芯片使能之外的控制信号线。
CE扩展器220通过多条芯片使能(CE)信号线,与闪存通道1(230)到闪存通道m(233)上的多个闪存芯片或闪存管芯的芯片使能(CE)端口相连接,这些芯片使能(CE)信号线在图2中用“闪存通道1-CE1”、“闪存通道1-CEn”、“闪存通道m-CE1”以及“闪存通道m-CEn”指出。
在图2的实施例中,存储***中有m个闪存通道,每个闪存通道上有1个闪存芯片,每个闪存芯片包含n个管芯以及与该n个管芯相对应的n个芯片使能(CE)端口,因而总共需要用到n*m个CE信号线。将这些n*m个CE信号端口均连接到CE扩展器220,而CE扩展器220与存储器控制器210之间通过较少的信号线进行通信(例如,图2中的CE数据信号线和CE控制信号线)。例如,存储器控制器210向CE扩展器220指示要使能闪存通道233上的第一个闪存芯片的第一管芯,则CE扩展器220在相应的“闪存通道m-CE1”芯片使能信号线上产生有效的使能信号,而在其他芯片使能信号线上不产生有效的使能信号。
依然可以理解的,可提供多个CE扩展器,用于使存储器控制器能够访问更多的闪存芯片。以及中国专利CN201632269U提供的技术可应用于访问其他NVM芯片。
实用新型内容
本申请的目的包括在固态存储设备中提供虚拟LUN以屏蔽通道、NVM芯片的多样性引起的复杂度,为固态存储设备的控制部件提供统一的虚拟LUN接口。从而在固态存储设备中,有效管理通道的非对称性(多个通道各自提供的容量不同),和/或NVM芯片的非对称性(多个NVM芯片各自具有不同的配置和/或容量),简化固态存储设备的开发,特别是简化对变更容量的存储设备的开发过程。
提供IO命令处理方法与NVM接口控制器,用于支持对CE扩展器以及扩展机制的应用,以访问更多的NVM芯片。
根据本申请的第一方面,提供了根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,包括:获取访问NVM芯片的消息;根据所述消息中的虚拟LUN号和/或与虚拟块号获取所述消息要访问的物理LUN;向同所述物理LUN关联的CE端口发出有效的芯片使能信号;以及向所述物理LUN发出访问NVM芯片的命令。
根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第二访问固态存储设备的NVM芯片的方法,其中第一虚拟LUN被映射到两个或更多物理LUN,第一虚拟LUN的虚拟块数量是所述物理LUN的物理块数量的2倍;以及通过LUN映射表依据虚拟LUN号获得所述两个或更多物理LUN,以及依据虚拟块号与物理LUN的物理块数量的模,从所述两个或更多物理LUN中选择所述消息要访问的物理LUN。
根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第三访问固态存储设备的NVM芯片的方法,其中第一虚拟LUN与第二虚拟LUN被映射到第一物理LUN,第一物理LUN的物理块数量是所述虚拟LUN的虚拟块数量的2倍;以及通过LUN映射表依据虚拟LUN号获得所述消息要访问的物理LUN,以及依据虚拟块号与虚拟LUN号获得所述消息要访问的物理LUN的物理块号。
根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第四访问固态存储设备的NVM芯片的方法,其中第一虚拟LUN被映射到两个或更多物理LUN,第一虚拟LUN的虚拟块数量是所述两个或更多物理LUN的物理块数量的和;以及通过LUN映射表依据虚拟LUN号获得所述两个或更多物理LUN,以及依据虚拟块号作为索引,从所述两个或更多物理LUN中选择所述消息要访问的物理LUN。
根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第五访问固态存储设备的NVM芯片的方法,其中根据所述消息中的虚拟LUN号与虚拟块号获取包括所述消息要访问的物理LUN的扩展LUN;依据所述扩展LUN选择处理单元;所述处理单元根据所述虚拟LUN号从所述扩展LUN中识别所述消息要访问的物理LUN。
根据本申请第一方面的第一至第五访问固态存储设备的NVM芯片的方法之一,提供了根据本申请第一方面的第六访问固态存储设备的NVM芯片的方法,还包括:依据所述物理LUN选择处理单元;所述处理单元向同所述物理LUN关联的CE端口发出有效的芯片使能信号;以及向所述物理LUN发出访问NVM芯片的命令。
根据本申请第一方面的第一访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第七访问固态存储设备的NVM芯片的方法,其中所述固态存储设备包括第一通道,所述第一通道耦合第一NVM芯片与第二NVM芯片;所述第一NVM芯片具有第一数量的物理LUN,所述第二NVM芯片具有第二数量的物理LUN,所述第一数量不同于第二数量。
根据本申请第一方面的第七访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第八访问固态存储设备的NVM芯片的方法,其中所述固态存储设备还包括第二通道,所述第二通道耦合第三NVM芯片与第四NVM芯片;所述第四NVM芯片具有第一数量的物理LUN,所述第三NVM芯片具有第二数量的物理LUN。
根据本申请第一方面的第八访问固态存储设备的NVM芯片的方法,提供了根据本申请第一方面的第九访问固态存储设备的NVM芯片的方法,其中所述第二NVM芯片与所述第四NVM芯片被布置在所述固态存储设备的空间上相邻的位置。
根据本申请第一方面的第一至第九访问固态存储设备的NVM芯片的方法之一,提供了根据本申请第一方面的第十访问固态存储设备的NVM芯片的方法,其中,若所述消息指示复位操作,获取所述消息的虚拟LUN号所对应的所有物理LUN,并向提供所有这些物理LUN的CE端口均发出有效的芯片使能信号;以及向所有这些物理LUN发出复位命令;以及确认复位命令在所有物理LUN上均执行完成。
根据本申请第一方面的第一至第十访问固态存储设备的NVM芯片的方法之一,提供了根据本申请第一方面的第十一访问固态存储设备的NVM芯片的方法,其中,若所述消息指示编程操作,向所述消息要访问的物理LUN发出编程命令;以及获取所述编程命令的执行状态,直到所述编程命令执行完成。
根据本申请第二方面,提供了根据本申请第二方面的固态存储设备,包括控制部件和多个NVM芯片,控制部件用于访问多个NVM芯片,NVM芯片包括一个或多个物理LUN,其特征在于,所述控制部件执行根据本申请第一方面的访问固态存储设备的NVM芯片的方法之一。
根据本申请第三方面,提供了根据本申请第三方面的第一固态存储设备的控制部件,包括LUN(Logic Unit,逻辑单元)映射器与耦合到LUN映射器的介质接口控制器;LUN映射器包括查找表电路,以虚拟LUN号和/或虚拟块号为索引从查找表电路中获取第一LUN号,作为LUN映射器的输出;介质接口控制器通过第一通道与第二通道耦合到多个NVM芯片;介质接口控制器根据LUN映射器的输出选择通道之一,在所选择的通道上生成有效的使能(CE)信号,以激活所述第一LUN号对应的物理LUN。
根据本申请第三方面的第一固态存储设备的控制部件,提供了根据本申请第三方面的第二固态存储设备的控制部件,其中所述LUN映射器将第一虚拟LUN映射到两个或更多物理LUN。
根据本申请第三方面的第一固态存储设备的控制部件,提供了根据本申请第三方面的第三固态存储设备的控制部件,其中所述LUN映射器将多个虚拟LUN映射到单一的物理LUN。
根据本申请第三方面的第一固态存储设备的控制部件,提供了根据本申请第三方面的第四固态存储设备的控制部件,其中所述LUN映射器将多个虚拟LUN映射到两个或更多的物理LUN。
根据本申请第三方面的第一固态存储设备的控制部件,提供了根据本申请第三方面的第五固态存储设备的控制部件,所述LUN映射器将第一虚拟LUN映射到两个或更多物理LUN;以及所述LUN映射器根据虚拟块号相对于物理LUN的块数的模,选择所述两个或更多物理LUN之一以得到所述第一LUN号。
根据本申请第三方面的第一至第五固态存储设备的控制部件之一,提供了根据本申请第三方面的第六固态存储设备的控制部件,其中LUN映射器以连续的虚拟LUN号作为索引,将连续的虚拟LUN号的每个,映射到物理上分离的多个NVM芯片的物理LUN。
根据本申请第三方面的第一至第六固态存储设备的控制部件之一,提供了根据本申请第三方面的第七固态存储设备的控制部件,其中所述介质接口控制器还耦合到CE扩展器,CE扩展器通过多个使能(CE)信号线耦合到多个NVM芯片的使能(CE)信号端口。
根据本申请第三方面的第七固态存储设备的控制部件,提供了根据本申请第三方面的第八固态存储设备的控制部件,其中所述介质接口控制器根据LUN映射器的输出选择通道之一,在所选择的通道上通过设置CE扩展器生成有效的使能(CE)信号,以激活所述第一LUN号对应的物理LUN。
根据本申请第三方面的第八固态存储设备的控制部件,提供了根据本申请第三方面的第九固态存储设备的控制部件,其中所述介质接口控制器根据LUN映射器的输出的第一LUN号与虚拟LUN号获取所述第一LUN号对应的物理LUN。
根据本申请第三方面的第一至第九固态存储设备的控制部件之一,提供了根据本申请第三方面的第十固态存储设备的控制部件,其中第一通道耦合第一数量的NVM芯片,第二通道耦合第二数量的NVM芯片,其中第一数量不同于第二数量。
根据本申请第三方面的第一至第十固态存储设备的控制部件之一,提供了根据本申请第三方面的第十一固态存储设备的控制部件,其中所述多个NVM芯片具有不同数量的管芯。
根据本申请第三方面的第一至第十一固态存储设备的控制部件之一,提供了根据本申请第三方面的第十二固态存储设备的控制部件,其中所述LUN映射器的索引还包括虚拟通道号。
根据本申请第三方面的第一固态存储设备的控制部件,提供了根据本申请第三方面的第十三固态存储设备的控制部件,其中所述第一通道耦合第一NVM芯片与第二NVM芯片;所述第一NVM芯片具有第一数量的物理LUN,所述第二NVM芯片具有第二数量的物理LUN,所述第一数量不同于第二数量。
根据本申请第三方面的第十三固态存储设备的控制部件,提供了根据本申请第三方面的第十四固态存储设备的控制部件,其中所述固态存储设备还包括第二通道,所述第二通道耦合第三NVM芯片与第四NVM芯片;所述第四NVM芯片具有第一数量的物理LUN,所述第三NVM芯片具有第二数量的物理LUN。
根据本申请第三方面的第十三或十四固态存储设备的控制部件,提供了根据本申请第三方面的第十五固态存储设备的控制部件,其中第一通道耦合的第一NVM芯片与第二NVM芯片共享数据信号线,以及第一NVM芯片与第二NVM芯片各自的多个使能(CE)信号端口彼此独立地耦合到所述介质接口控制器。
根据本申请的的四方面,提供了根据本申请第四方面的第一固态存储设备,包括根据本申请第三方面的控制部件之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1展示了现有技术的存储设备的框图;
图2为现有技术中的具有芯片使能信号扩展的存储***的示意图;
图3A是根据本申请实施例一的固态存储设备的框图;
图3B展示了根据本申请实施例一的虚拟LUN映射表;
图3C是根据本申请实施例二的固态存储设备的框图;
图3D展示了根据本申请实施例二的虚拟LUN映射表;
图3E是根据本申请实施例三的固态存储设备的框图;
图3F展示了根据本申请实施例三的虚拟LUN映射表;
图3G是根据本申请实施例四的固态存储设备的框图;
图3H展示了根据本申请实施例四的虚拟LUN映射表;
图3I是根据本申请实施例五的固态存储设备的框图;
图3J展示了根据本申请实施例五的虚拟LUN映射表;
图3K是根据本申请实施例六的固态存储设备的框图;
图3L展示了根据本申请实施例六的虚拟LUN映射表;
图4A是根据本申请实施例七的固态存储设备的框图;
图4B展示了根据本申请实施例七的虚拟LUN映射表;
图4C是根据本申请实施例八的固态存储设备的框图;
图4D展示了根据本申请实施例八的虚拟LUN映射表;
图4E是根据本申请实施例九的固态存储设备的框图;
图4F展示了根据本申请实施例九的虚拟LUN映射表;
图5是根据本申请实施例的固态存储设备的示意;
图6是根据本申请实施例的控制部件的介质接口控制器的框图;
图7是根据本申请又一实施例的控制部件的介质接口控制器的框图;
图8是根据本申请实施例的扩展LUN的示意图;
图9A是根据本申请实施例十的固态存储设备的框图;
图9B展示了根据本申请实施例十的虚拟LUN映射表;
图9C展示了根据本申请实施例十的又一虚拟LUN映射表;
图10是根据本申请实施例的固态存储设备的示意图;
图11是根据本申请实施例的访问NVM芯片的消息的处理流程图;
图12是根据本申请另一实施例的固态存储设备的示意图;以及
图13展示了根据本申请另一实施例的虚拟LUN映射表。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3A是根据本申请实施例一的固态存储设备的框图。固态存储设备包括控制部件与耦合到控制部件的NVM芯片(NVM 0)。NVM芯片(NVM 0)包括4个管芯(DIE),每个管芯包括2个逻辑单元(分别记为LUN 0与LUN 1)。控制部件提供4个CE信号,分别耦合到NVM芯片(NVM0)的管芯之一。控制部件通过有效的CE信号向管芯发送命令,并通过命令中的地址选择管芯中的LUN。
根据本申请的实施例中,将耦合到控制部件的各个LUN组织为虚拟LUN。为了便于区分,将下文中,将LUN也称为物理LUN,以同虚拟LUN相区别。控制部件通过虚拟LUN访问各个物理LUN,在使用虚拟LUN时,无须关心物理LUN的位置、不连续编号、非对称性的因素,从而降低访问物理LUN的复杂度。可选地,控制部件根据虚拟LUN访问NVM芯片,通过查表或映射电路,通过虚拟LUN编号找到要访问的物理LUN。
图3B展示了根据本申请实施例一的虚拟LUN映射表。虚拟LUN具有连续的编号,图3B中,虚拟LUN编号为0-7。图3B的映射表将虚拟LUN编号的每个取值映射为物理LUN之一,例如,虚拟LUN 0映射到由信号CE 0所指定的物理LUN 0,而虚拟LUN 7映射到由信号CE 3所指定的物理LUN 1。实施例一中,虚拟LUN具有唯一且连续的编号,固态存储设备的各个NVM芯片的各个LUN被分配唯一的虚拟LUN编号,控制部件通过虚拟LUN编号访问NVM芯片,而无须关心NVM芯片的特定几何特征(管芯数量、LUN数量等)和/或位置(例如,所在的闪存通道等)。
图3C是根据本申请实施例二的固态存储设备的框图。控制部件偶合到NVM芯片(NVM 0)与NVM芯片(NVM 1)。NVM芯片包括4个管芯(DIE),每个管芯包括2个逻辑单元(分别记为LUN 0与LUN 1)。控制部件提供4个CE信号,分别耦合到NVM芯片的管芯之一。
图3D展示了根据本申请实施例二的虚拟LUN映射表。虚拟LUN具有连续的编号。实施例二中,将两个物理LUN映射到一个虚拟LUN,从而控制部件所体验到的虚拟LUN的容量是物理LUN容量的2倍。图3D的虚拟LUN映射表中,将虚拟LUN 0映射到由信号CE 0所指示的物理LUN 0与物理LUN 1。为了区分所访问的物理LUN,将虚拟LUN 0上编号为0-M的块(也称为虚拟块)映射到物理LUN 0,而将虚拟LUN 0上编号为(M+1)-N的块(也称为虚拟块)映射到物理LUN 1。从而控制部件看到的虚拟LUN 0具有比物理LUN 0或物理LUN 1数量更多的块,在访问虚拟LUN 0时,进一步依据所访问的虚拟块确定要访问哪个物理LUN(以及该物理LUN上的块)。
图3D的例子中,将两个物理LUN映射到一个虚拟LUN,并且映射到同一虚拟LUN的物理LUN来自相同的管芯(由相同的CE信号所指示)。可以理解,这不是必须的。可选地,映射到同一虚拟LUN的两个物理LUN来自不同的管芯或不同的NVM芯片。依然可选地,由三个或更多物理LUN来构成一个虚拟LUN。
实施例二中,控制部件体验到8个虚拟LUN,而实施例一中,控制部件同样体验到8个虚拟LUN。从而为实施例一设计的控制部件可以不修改或仅修改每个虚拟LUN的块数量而应用于实施例二,从而快速实现具有更大容量的存储设备。并且,虚拟LUN的数量少于物理LUN的数量,在控制部件中可采用更少的数据位来描述要访问的LUN,减少了对存储空间的占用。
图3E是根据本申请实施例三的固态存储设备的框图。控制部件偶合到NVM芯片(NVM 0)、NVM芯片(NVM 1)以及NVM芯片(NVM 2)。NVM芯片(NVM 0)包括4个管芯(DIE),NVM芯片(NVM 1)与NVM芯片(NVM 2)各自包括2个管芯(DIE),每个管芯包括2个逻辑单元(分别记为LUN 0与LUN 1)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例三的存储设备中使用了不同几何特征的NVM芯片。并通过图3F的虚拟LUN映射表屏幕不同几何特征的NVM芯片带来的复杂度。
图3F展示了根据本申请实施例三的虚拟LUN映射表。实施例三中,将两个物理LUN映射到一个虚拟LUN,从而控制部件所体验到的虚拟LUN的容量是物理LUN容量的2倍。图3F的虚拟LUN映射表中,将虚拟LUN 1映射到由信号CE 1所指示的物理LUN 0与物理LUN 1。为了区分所访问的物理LUN,将虚拟LUN 1上编号为0-M的块(也称为虚拟块)映射到物理LUN0,而将虚拟LUN 1上编号为(M+1)-N的块(也称为虚拟块)映射到物理LUN 1。从而控制部件看到的虚拟LUN 1具有比物理LUN 0或物理LUN 1数量更多的块。在访问虚拟LUN 1时,进一步依据所访问的虚拟块确定要访问哪个物理LUN(以及该物理LUN上的块)。可选地,映射到同一虚拟LUN的两个物理LUN来自不同的管芯或不同的NVM芯片。
实施例三中,控制部件体验到8个虚拟LUN(同实施例一或实施例二相同),从而为实施例一或实施例二设计的控制部件可以不修改或仅修改每个虚拟LUN的块数量而应用于实施例三,从而快速实现具有更大容量的存储设备。实施例3中,各NVM芯片的管芯数量不同,从而可组合出更多种容量的固态存储设备。
图3G是根据本申请实施例四的固态存储设备的框图。控制部件偶合到NVM芯片(NVM 0)、NVM芯片(NVM 1)以及NVM芯片(NVM 2)。NVM芯片(NVM0)包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN 1)。NVM芯片(NVM 1)与NVM芯片(NVM 2)各自包括2个管芯(DIE),每个管芯包括1个逻辑单元(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例四的存储设备中使用了不同几何特征的NVM芯片。并且,NVM芯片(NVM 1与NVM 2)的LUN所包括的块数是NVM芯片(NVM0)的LUN所包含的块数的2倍。并通过图3H的虚拟LUN映射表屏蔽不同几何特征的NVM芯片带来的复杂度。
图3H展示了根据本申请实施例四的虚拟LUN映射表。图3H的虚拟LUN映射表中,将虚拟LUN 0映射到由信号CE 0所指示的物理LUN 0与物理LUN 1。为了区分所访问的物理LUN,将虚拟LUN 0上编号为0-M的块(也称为虚拟块)映射到物理LUN 0,而将虚拟LUN 0上编号为(M+1)-N的块(也称为虚拟块)映射到物理LUN 1。以及将虚拟LUN 4仅映射到由信号CE4所指示的物理LUN 0。
实施例四中,控制部件依然体验到8个虚拟LUN,从而为实施例一、实施例二或实施例3设计的控制部件可以不修改或仅修改每个虚拟LUN的块数量而应用于实施例四,从而快速实现具有更大容量的存储设备。实施例4中,各NVM芯片的管芯数量不同,各管芯的LUN数量不同,从而可组合出更多种容量的固态存储设备。
图3I是根据本申请实施例五的固态存储设备的框图。控制部件偶合到NVM芯片(NVM 0)、NVM芯片(NVM 1)以及NVM芯片(NVM 2)。NVM芯片(NVM 0)包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN 1)。NVM芯片(NVM 1)与NVM芯片(NVM 2)各自包括2个管芯(DIE),每个管芯包括1个逻辑单元(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例五的存储设备中使用了不同几何特征的NVM芯片。并且,NVM芯片(NVM 1与NVM 2)的LUN所包括的块数同NVM芯片(NVM0)的LUN所包含的块数相同。并通过图3J的虚拟LUN映射表屏蔽不同几何特征的NVM芯片带来的复杂度。
图3J展示了根据本申请实施例五的虚拟LUN映射表。图3J的虚拟LUN映射表中,将虚拟LUN 0映射到由信号CE 0所指示的物理LUN 0与物理LUN 1。为了区分所访问的物理LUN,将虚拟LUN 0上编号为0-M的块(也称为虚拟块)映射到物理LUN 0,而将虚拟LUN 0上编号为(M+1)-N的块(也称为虚拟块)映射到物理LUN 1。将虚拟LUN 4映射到由信号CE 4所指示的物理LUN 0以及由信号CE 6所指示的物理LUN 0。将虚拟LUN 5映射到由信号CE 5所指示的物理LUN 0以及由信号CE 7所指示的物理LUN 0。
图3K是根据本申请实施例六的固态存储设备的框图。控制部件偶合到NVM芯片(NVM 0)。NVM芯片(NVM 0)包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN1)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例六的存储设备中,两个虚拟LUN被映射到一个物理LUN。在一些存储设备中,受到空间或成本的限制,物理LUN的数量较少,而为提供存储空间利用率有效的数据保护而使用RAID技术时,需要足够的LUN数量。通过将单一物理LUN映射为一个或多个虚拟LUN,并在足够数量的虚拟LUN上构建RAID数据保护单元,能够将RAID技术用于小容量的固态存储设备。可选地,将三个或更多的虚拟LUN映射到一个物理LUN。
图3L展示了根据本申请实施例六的虚拟LUN映射表。图3L的虚拟LUN映射表中,将虚拟LUN 0与虚拟LUN 1均映射到由信号CE 0所指示的物理LUN 0。为了区分,将虚拟LUN 0映射到物理LUN 0的物理块0-M,而将虚拟LUN 1映射到物理LUN 0的物理块B-(B+M)。其中,B与M均为正整数,M代表了虚拟LUN所包含的虚拟块数量,而B指示了在物理LUN上为有一个虚拟LUN提供的物理块的基地址。例如,B=M+1,指示物理LUN上为两个虚拟LUN分配的物理块相邻的排列。
图4A是根据本申请实施例七的固态存储设备的框图。控制部件通过两个通道(分别记为CH 0与CH 1)耦合到NVM芯片。通道CH 0偶合到NVM芯片(NVM 0)与NVM芯片(NVM 1)。通道CH 1偶合到NVM芯片(NVM 2)与NVM芯片(NVM3)。NVM芯片(NVM 0)与NVM芯片(NVM 3)包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN 1)。NVM芯片(NVM 1)与NVM芯片(NVM 2)各自包括2个管芯(DIE),每个管芯包括1个逻辑单元(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例七的存储设备中使用了不同几何特征的NVM芯片。并且,NVM芯片(NVM 1与NVM 2)的LUN所包括的块数同NVM芯片(NVM0与NVM 3)的LUN所包含的块数相同。并通过图4B的虚拟LUN映射表屏蔽不同几何特征的NVM芯片带来的复杂度。
图4B展示了根据本申请实施例七的虚拟LUN映射表。图4B的虚拟LUN映射表中,将虚拟LUN 0映射到通道CH 0上的由信号CE 0所指示的物理LUN 0与物理LUN 1。为了区分所访问的物理LUN,将虚拟LUN 0上编号为0-M的块(也称为虚拟块)映射到物理LUN 0,而将虚拟LUN 0上编号为(M+1)-N的块(也称为虚拟块)映射到物理LUN 1。将虚拟LUN 4映射到通道CH 0上的由信号CE 4所指示的物理LUN 0以及由信号CE 5所指示的物理LUN 0。将虚拟LUN5映射到通道CH 1上的由信号CE 0所指示的物理LUN 0以及由信号CE 1所指示的物理LUN0。为了区分所访问的物理LUN,将虚拟LUN 4上编号为0-M的块(也称为虚拟块)映射到由CE信号4所指示的物理LUN 0,而将虚拟LUN 4上编号为(M+1)-N的块(也称为虚拟块)映射到由信号CE 5所指示的物理LUN 1。将虚拟LUN 6映射到通道CH 1上的由信号CE 2所指示的物理LUN 0与物理LUN 1。
在实施例七,控制部件访问每个通道上的5个虚拟LUN,而无须关心通道上的两个NVM芯片的几何特征不所带来的复杂度。
图4C是根据本申请实施例八的固态存储设备的框图。控制部件通过三个通道(分别记为CH 0、CH 1与CH 2)耦合到NVM芯片。通道CH 0偶合到NVM芯片(NVM 0)。通道CH 1偶合到NVM芯片(NVM 1)。通道CH 2偶合到NVM芯片(NVM 2与NVM 3)。NVM芯片(NVM 0、NVM 1、NVM2以及NVM 3)各自包括4个管芯(DIE),每个管芯包括1个LUN(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例八的存储设备中使用了相同几何特征的NVM芯片。而各个通道所容纳的NVM芯片可以不同。通过图4D的虚拟LUN映射表屏蔽不同几何特征的NVM芯片带来的复杂度。
图4D展示了根据本申请实施例八的虚拟LUN映射表。图4D的虚拟LUN映射表中,将每个物理LUN同虚拟LUN之间建立一一对应。从而,控制部件通过虚拟LUN访问各个物理LUN,而无须关心通道的不均衡配置(各通道具有不同数量的NVM芯片以及物理LUN)。通过在通道上设置不同数量的NVM芯片,使得提供不同容量的固态存储设备更加便利。
图4E是根据本申请实施例九的固态存储设备的框图。控制部件通过三个通道(分别记为CH 0、CH 1与CH 2)耦合到NVM芯片。通道CH 0偶合到NVM芯片(NVM 0)。通道CH 1偶合到NVM芯片(NVM 1)。通道CH 2偶合到NVM芯片(NVM 2与NVM 3)。NVM芯片(NVM 0、NVM 1、NVM2以及NVM 3)各自包括4个管芯(DIE),每个管芯包括1个LUN(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。实施例九的存储设备中使用了相同几何特征的NVM芯片。而各个通道所容纳的NVM芯片可以不同。通过图4E的虚拟LUN映射表屏蔽不同几何特征的NVM芯片带来的复杂度。
图4F展示了根据本申请实施例九的虚拟LUN映射表。图4F的虚拟LUN映射表中,将每个物理LUN同虚拟LUN之间建立一一对应。实施例九中还提供虚拟通道,使控制部件体验虚拟通道而不是物理通道。图4E的虚拟LUN映射表中,物理通道CH 0的所有物理LUN均被映射到虚拟通道0,物理通道CH 1的所有物理LUN均被映射到虚拟通道1,物理通道CH 2的4个物理LUN均被映射到虚拟通道2,而将物理通道CH2的另2个物理LUN映射到虚拟通道0(图4F中,虚拟LUN 12与虚拟LUN 13),将物理通道CH 2的再2个物理LUN映射到虚拟通道1(图4F中,虚拟LUN 14与虚拟LUN 15)。从而控制部件体验到具有6个虚拟LUN的虚拟通道CH 0,具有6个虚拟LUN的虚拟通道CH 1,以及具有4个虚拟LUN的虚拟通道CH 2。
从而,控制部件通过虚拟LUN(可选地,还包括虚拟通道)访问各个物理LUN,而无须关心通道的不均衡配置(各通道具有不同数量的NVM芯片以及物理LUN)。通过在通道上设置不同数量的NVM芯片,使得提供不同容量的固态存储设备更加便利。
可选地,根据本申请实施例九,向控制部件或上层***展示虚拟通道与虚拟LUN。通过虚拟通道与虚拟LUN向控制部件或上层***提供“标准”固态存储设备配置,例如16个虚拟通道,每个虚拟通道包括16个虚拟LUN。或者,根据固态存储设备的性能、业务场景等需求,选择虚拟通道与虚拟LUN的数量,而不受控制部件的物理通道与NVM芯片的限制。例如,为提供“31+1”的RAID配置,需要32个或32的整数倍个虚拟LUN。或者,需要各个虚拟通道的虚拟LUN数量大体上相同。依然可选地,在每个虚拟通道上,提供指定数量的虚拟LUN用作额外的存储空间等。将“标准”固态存储设备,通过虚拟LUN映射表映射到固态存储设备的实际通道和/或NVM芯片的物理LUN,从而使上层***体验到标准化的固态存储设备。
图5是根据本申请实施例的固态存储设备的示意。固态存储设备包括控制部件,控制部件通过通道耦合到NVM芯片。图5中,展示了通道CH 0与通道CH 1,通道CH 0耦合到NVM芯片(NVM 0与NVM 1),通道CH 1耦合到NVM芯片(NVM 2与NVM3)。NVM芯片(NVM 0以及NVM 3)各自包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN 1)。NVM芯片(NVM 1以及NVM 2)各自包括2个管芯(DIE),每个管芯包括1个LUN(记为LUN 0)。控制部件向每个管芯提供CE信号,分别耦合到各个NVM芯片的管芯之一。可选地,控制部件可通过其他数量的通道耦合NVM芯片。
图5展示的实施例中,控制部件通过描述虚拟LUN和/或指定虚拟LUN中的虚拟块号访问NVM芯片的物理LUN。控制部件包括LUN映射器,用于将虚拟LUN号和/或虚拟块号映射到物理LUN。进一步可选地,LUN映射器还根据虚拟LUN号和/或虚拟块号而输出虚拟通道号,使得控制部件获知所访问的虚拟LUN属于哪个虚拟通道。
在一个例子中,虚拟LUN与物理LUN是一一对应,LUN映射器将虚拟LUN号映射到指定通道、指定使能信号(CE)的管芯的指定物理LUN。可选地,LUN映射器输出通道编号、使能信号编号与物理LUN的编号,控制部件根据LUN映射器输出的通道、使能信号编号与物理LUN的编号来选中并访问同虚拟LUN号对应的物理LUN。例如,控制部件的CPU通过执行指令访问LUN映射器,向LUN映射器提供虚拟LUN号和/或虚拟块号,并从LUN映射器接收通道编号、使能信号编号与物理LUN的编号。或者,控制部件向介质接口控制器发出访问NVM芯片的消息,消息中指示了虚拟LUN号和/或虚拟块号。LUN映射器根据虚拟LUN号和/或虚拟块号输出通道编号、使能信号编号与物理LUN的编号,并修改访问NVM芯片的消息。从而消息发出方使用虚拟LUN号访问介质接口控制器,而介质接口控制器使用物理LUN号访问物理LUN。
依然可选地,LUN映射器依据虚拟LUN号,指示指定的通道产生指定使能信号(CE),并在访问NVM芯片的命令中生成指定的物理LUN编号,从而直接访问对应的物理LUN。
在又一个例子中,虚拟LUN被映射到多个物理LUN。向LUN映射器提供虚拟LUN号以及虚拟块号。LUN映射器依据虚拟LUN号得到对应的多个物理LUN,并依据虚拟块号,从多个物理LUN中选择对应的物理LUN。
在依然又一个例子中,多个虚拟LUN被映射到一个物理LUN。向LUN映射器提供虚拟LUN号以及虚拟块号。LUN映射器依据虚拟LUN号得到对应的物理LUN,以及在物理LUN上分配给该虚拟LUN的物理块的基地址(也参看图3J,基地址B),并将虚拟块号更新为该虚拟LUN上的物理块号。
作为再一个例子,LUN映射器依据虚拟通道号、虚拟LUN号与虚拟块号作为选择,得到对应的物理通道号、物理LUN号以及物理块号。
作为举例,LUN映射器包括查找表电路,查找表电路以虚拟LUN号为索引,以对应的通道编号、使能信号编号与物理LUN的编号为同索引对应的值。向查找表电路提供虚拟LUN号,查找表电路输出对应的通道编号、使能信号编号与物理LUN的编号,或者产生对应的选通信号以选择指定的通道、使能信号以及物理LUN的编号。查找表是可配置的,控制部件根据NVM芯片耦合到控制部件的方式,将虚拟LUN与物理LUN的映射关系(例如,图3B、3D、3F、3H、3J、4B、4D与4F)存储在查找表中。
作为又一个例子,虚拟LUN与物理LUN的映射关系是已知的,例如,虚拟LUN 0被映射到通道CH 0的使能信号CE0的物理LUN 0(将虚拟LUN按编号顺序依次映射到按通道、使能信号、物理LUN编号顺序的各个物理LUN);或者将按上述顺序的每两个物理LUN映射到同一个虚拟LUN。LUN映射器实现为将每个虚拟LUN按编号顺序映射到物理位置上顺序的一个或多个物理LUN。进一步地,为LUN映射器配置每个物理LUN所提供的物理块数量。
依然可选地,虚拟LUN与物理LUN的映射关系,可被更新。在固态存储设备使用过程中,通过修改LUN映射表,而改变虚拟LUN与物理LUN的映射关系。例如,响应于物理LUN损坏,用备用物理LUN替换损坏的物理LUN,并更新LUN设备表,将虚拟LUN映射到备用物理LUN。作为又一个例子,响应于用户指令(例如,格式化),更新LUN映射表。进一步地,根据用户指示的配置或性能要求,选择所需要的虚拟LUN数量,并生成所需要的映射表(例如,图3B的LUN映射表对应更大的并行性,而图3L的映射表对应虚拟LUN的更多的数量)。
图6是根据本申请实施例的控制部件的介质接口控制器的框图。图6中的介质接口控制器包括消息队列610与NVM命令处理单元620。图6的实施例中,消息队列610用于接收来自控制部件(也参看图1或图5的控制部件)的访问NVM芯片的消息。来自控制部件的消息可包括指示读出、写入、删除NVM芯片的消息,还可以包括指示读取NVM芯片状态、读取或设置NVM芯片特征(Feature)的消息,以及也可以包括用户自定义消息。NVM命令处理单元620从消息队列610获取消息,并根据消息的指示向NVM芯片发送符合NVM芯片接口标准的NVM接口命令或依照NVM芯片接口标准从NVM接收数据或状态。NVM命令处理单元620耦合到多个NVM芯片。在图6的实施例中,NVM命令处理单元620通过2个通道耦合到4颗NVM芯片,每个NVM芯片包括2个LUN。在通道CH 1的NVM芯片(NVM 0与NVM 1)各自提供LUN 0与LUN1,在通道CH 2的NVM芯片(NVM 2与NVM 3)各自提供其LUN0与LUN1。可以理解的,NVM接口控制器可耦合更多的通道,并访问更多的NVM芯片与更多的LUN。
NVM命令处理单元包括LUN映射器,用于将访问NVM芯片的消息中指示的虚拟LUN映射到指定通道的指定物理LUN。例如,图6的实施例中,虚拟LUN的编号空间为0-7,对于消息中指示的虚拟LUN 7,LUN映射器将其映射到通道CH 2的NVM芯片(NVM 3)的物理LUN 1。
图7是根据本申请又一实施例的控制部件的介质接口控制器的框图。图7中的介质接口控制器包括消息队列710与NVM命令处理单元720。NVM处理单元720包括多个处理单元,多个处理单元通过执行微指令序列来访问NVM芯片。其中,将被执行的微指令序列称作线程。图7中还示出了介质接口控制器中的多个可被调度执行线程。在线程被调度执行时,NVM命令处理单元720通过设置CE扩展器,来访问多个NVM芯片。
微指令序列在每次执行时拥有自己的执行状态,可基于同一微指令序列创建多个线程。在NVM命令处理单元720还为每个线程存储执行状态。作为举例,基于所要访问的物理LUN来创建或使用线程。例如使用线程1来访问NVM芯片(NVM 0)的物理LUN 0,和/或使用线程2来访问NVM芯片(NVM 0)的物理LUN 1。作为又一个例子,一个线程负责对多个物理LUN的访问,例如,图7中,线程1负责对耦合到CE扩展器的NVM芯片(NVM 0、NVM 1、NVM 2以及NVM3)的物理LUN的访问。
在图7的实施例中,介质接口控制器通过CE扩展器耦合到多个NVM芯片的CE端口,以及通过执行微指令,来设置CE扩展器向多个NVM芯片中的任意一个(或其中的目标(Target)之一)产生芯片使能信号或芯片禁用信号,这些多个NVM芯片的同类其他端口(例如,DQ、DQS、ALE、CLE等)共享信号线。例如,通过执行Set_CE微指令,向CE扩展器告知所要访问NVM芯片。例如,为访问NVM芯片(NVM 1)的物理LUN 1,线程1执行Set_CE微指令,使得CE扩展器向NVM 1芯片的CE端口发送有效的芯片使能信号,而向NVM 0、NVM2与NVM3的CE端口产生无效的芯片信号,从而使线程1发出的访问NVM芯片的命令对NVM1芯片生效。以此方式,线程能访问多个NVM芯片、多个LUN或多个目标。
NVM命令处理单元包括LUN映射器,用于将访问NVM芯片的消息中指示的虚拟LUN映射到指定通道的指定物理LUN。例如,图7的实施例中,虚拟LUN的编号空间为0-7,对于消息中指示的虚拟LUN 7,LUN映射器将其映射到由线程1负责的NVM芯片(NVM 3)的物理LUN 1。
作为另一个例子,NVM接口控制器通过多个CE扩展器耦合到多个NVM芯片,通过执行微指令,来设置各个CE扩展器向指定的NVM芯片(或者,LUN或目标)发送芯片使能信号或芯片禁用信号。
图8是根据本申请实施例的扩展LUN的示意图。作为举例,控制部件通过CE扩展器耦合到2个NVM芯片(NVM 0与NVM 1),每个NVM芯片包括两个LUN(物理LUN 0与物理LUN 1),从而通过CE扩展器可访问4个物理LUN。参看图8,每个物理LUN包括1024个用于存储数据的物理块,提供扩展LUN来代表可通过CE扩展器访问的4个物理LUN,从而扩展LUN包括由4个物理LUN提供的4096个物理块。在根据本申请的实施例中,在块地址范围为0-4095的空间内访问扩展LUN,而依据扩展LUN的块地址(例如,4000)获得提供该块的物理LUN(例如,NVM芯片NVM 1的物理LUN 1),并指示CE扩展器向NVM芯片(NVM 1)的CE端口发送使能信号,并向其他CE端口发送禁用信号。
通过提供扩展LUN,介质接口控制器(参看图6或图7)的多个处理单元(例如,线程)的每个负责访问一个扩展LUN。以及LUN映射器(例如图5到图7的LUN映射器)将扩展LUN用作容量变大的物理LUN,并提供从虚拟LUN到扩展LUN的映射。而介质接口控制器(例如,通过线程)处理从扩展LUN到物理LUN的转换,从而方便地使适用于管理较少数量物理LUN的控制部件应用于管理较大数量的物理LUN。
图9A是根据本申请实施例十的固态存储设备的框图。控制部件通过两个通道(分别记为CH 0与CH 1)耦合到NVM芯片。通道CH 0偶合到NVM芯片(NVM 0)。通道CH 1偶合到NVM芯片(NVM 1)。NVM芯片(NVM 0与NVM 1)各自包括4个管芯(DIE),每个管芯包括2个LUN(分别记为LUN 0与LUN 1)。控制部件通过CE扩展器向每个管芯提供CE信号。通道CH 0的CE扩展器0耦合到NVM芯片(NVM 0),通道CH 1的CE扩展器1耦合到NVM芯片(NVM 1)。
图9B展示了根据本申请实施例十的虚拟LUN映射表。图9B的虚拟LUN映射表中,将虚拟LUN映射到扩展LUN。由LUN映射器(也参看图9A)将虚拟LUN号映射为扩展LUN号。扩展LUN号同介质接口控制器的处理单元(或通道)具有直接的对应关系,例如图9A中,管理通道CH 0的处理单元,处理访问扩展LUN 0与扩展LUN 1的消息,而管理通道CH 1的处理单元,处理访问扩展LUN 2与扩展LUN 3的消息。LUN映射器不提供物理LUN的信息,而是由处理单元维护扩展LUN与物理LUN的映射关系。处理单元还依据扩展LUN的块号确定对应的物理LUN。从而固态存储设备的控制部件,按虚拟LUN管理NVM芯片,介质接口控制器通过扩展LUN聚合多个物理LUN,以提升可操作的物理LUN数量。
图9C展示了根据本申请实施例十的又一虚拟LUN映射表。图9C的虚拟LUN映射表中,将虚拟LUN直接映射到物理LUN,而无须维护扩展LUN。由LUN映射器(也参看图9A)将虚拟LUN号映射为使能信号(CE)序号与物理LUN号。按使能信号(CE)确定介质接口控制器的处理单元(或通道),而由处理单元操作CE扩展器生成指定序号的使能(CE)信号,并依据物理LUN号访问NVM芯片。
图10是根据本申请实施例的固态存储设备的示意图。根据图10的实施例,介质接口控制器的NVM命令处理单元1020通过消息队列接收访问NVM芯片的消息,消息中指示了要访问的虚拟LUN号和虚拟块号。例如,命令访问虚拟LUN 3的虚拟块2047。LUN映射器将消息中指定字段的虚拟LUN号和虚拟块号映射为扩展LUN号以及扩展LUN中的块号(2047)(称为扩展块号),作为举例,扩展LUN 3(虚拟LUN与扩展LUN为一一映射)。依据扩展LUN号识别负责处理该消息的处理单元(线程)(例如,线程3)。线程3处理消息,根据扩展LUN号与扩展LUN中的块号(2047)识别应由图10中的物理LUN 3-2的物理块1023提供该消息所访问的存储空间,并通过设置CE扩展器来向提供物理LUN3-2的NVM芯片或目标提供有效的芯片使能信号,并向物理LUN 3-2发出NVM接口命令。
在图10的实施例中,通过将多个物理LUN组织为扩展LUN,使得在不需增加线程数量的情况下(每个线程管理对一个扩展LUN的访问),NVM接口控制器能访问更多的物理LUN,从而实现更大容量的固态存储设备。从而在不改变上层***或改动很小的情况下,获得了对更多的NVM芯片的访问能力。
图11是根据本申请实施例的访问NVM芯片的消息的处理流程图。图11的实施例中,介质接口控制器获取访问NVM芯片的消息(1110),消息中指示了消息类型、要访问的虚拟LUN号以及虚拟块号。消息类型包括编程、擦除、读取、复位等。
在一个例子中,消息指示的类型为复位,消息中还指示了要访问的虚拟LUN号(例如虚拟LUN 3)。在步骤1120,判断消息的类型,识别出消息类型为复位。响应于接收到复位消息,通过LUN映射器,依据虚拟LUN号得到对应的所有物理LUN,并选择负责管理这些物理LUN的处理单元(线程),以及这些物理LUN对应的使能信号(CE)端口(1134)。
接下来,并通过设置CE扩展器来向提供所有这些物理LUN的NVM芯片或目标的CE引脚发出使能信号,以及向所有这些物理LUN发出复位命令(1136)。以及在这些物理LUN上处理复位命令,并且确认复位命令执行完成(1138)。
可选地,每次向这些物理LUN中的一个发出复位命令,以及重复向每个物理LUN发出复位命令(1138),并通过设置CE扩展器在提供这些物理LUN的相应的CE引脚上发送使能信号。以及在每个物理LUN上处理复位命令,直到复位了虚拟LUN对应的所有物理LUN。
在又一个例子中,消息指示的类型为编程命令,消息中还指示了要访问的虚拟LUN号(例如虚拟LUN 3)和虚拟块号。接下来,识别消息的类型(1120),以及判断出消息类型为编程消息。响应于接收到编程消息,通过LUN映射器,依据虚拟LUN号得到对应的物理LUN,并选择负责管理该物理LUN的处理单元(线程)(1142),以及该物理LUN对应的使能信号(CE)端口(1144)。接下来,通过设置CE扩展器向提供该物理LUN的NVM芯片或管芯的CE引脚发送使能信号,以及向该物理LUN发出编程命令(1146)。以及获取并检查编程命令的执行状态,直到编程命令执行完成(1148)。
图12是根据本申请另一实施例的固态存储设备的示意图。根据图12的实施例,介质接口控制器的NVM命令处理单元通过消息队列接收访问NVM芯片的消息,消息中指示了要访问的虚拟LUN号和虚拟块号。例如,命令访问虚拟LUN 3的虚拟块2047。LUN映射器将消息中指定字段的虚拟LUN号和虚拟块号映射为扩展LUN号以及扩展LUN中的块号(称为扩展块号)。
图13是根据本申请图12的实施例的LUN映射表。扩展LUN是由每个线程所管理(通过CE扩展器)的所有物理LUN所构成。参看图12,扩展LUN 0由耦合到CE扩展器0的四个物理LUN(物理LUN 0-0、物理LUN 0-1、物理LUN 0-2与物理LUN0-3)构成,每个物理LUN提供1024个块。从而虚拟LUN3的块2047可由组成虚拟LUN3的第2个物理LUN(记为逻辑LUN 3-1)提供。介质接口控制器的处理单元(线程)同扩展LUN一一对应。虚拟LUN由多个扩展LUN的每个的部分物理块所组成。继续参看图12,虚拟LUN 0包括分别耦合到4个CE扩展器的扩展LUN(分别记为扩展LUN0、扩展LUN1、扩展LUN2与扩展LUN3)的物理LUN(分别记为物理LUN 0-0,物理LUN 1-0,物理LUN 2-0以及物理LUN 3-0),而虚拟LUN 3包括分别耦合到4个CE扩展器的扩展LUN(分别记为扩展LUN0、扩展LUN1、扩展LUN2与扩展LUN3)的物理LUN(分别记为物理LUN0-3,物理LUN 1-3,物理LUN 2-3以及物理LUN 3-3)。
图13的LUN映射表中,由虚拟LUN号与虚拟块号共同指定扩展LUN。例如,虚拟LUN 0的0-1023号虚拟块,被映射到扩展LUN 0,而虚拟LUN 0的1024-2047号虚拟块,被映射到扩展LUN 1。图13的LUN映射表中,虚拟LUN与扩展LUN是多对多的映射方式。虚拟LUN 0被映射到扩展LUN 0到扩展LUN 3,而扩展LUN 0为虚拟LUN 0到虚拟LUN 3都提供物理块。由虚拟LUN号与扩展LUN号共同指定物理LUN。图13的LUN映射表中,也记录了虚拟LUN与扩展LUN的组合与物理LUN的映射关系。
返回参看图12,LUN映射器根据消息中的虚拟LUN号与虚拟块号的组合生成扩展LUN号(根据图13的LUN映射表),NVM命令处理单元根据扩展LUN号选择线程之一,并由被选择的线程来处理该消息。LUN映射器还根据虚拟LUN号与扩展LUN号的组合生成物理LUN号(根据图13的LUN映射表),并将物理LUN号提供给被选择的线程。可选地,LUN映射器还生成物理LUN中的物理块号;或者由线程根据虚拟块号得到物理块号。
作为举例,响应于收到的访问NVM芯片的消息,消息中指示了要访问的虚拟LUN 3的虚拟块地址2047,LUN映射器(参看图12)根据虚拟LUN 3与虚拟块地址2047,确定由扩展LUN 1提供存储空间,并由负责管理扩展LUN 1的线程1(参看图12)处理该消息。LUN映射器还根据虚拟LUN 3与扩展LUN 1得到由物理LUN 1-3提供存储空间,并将对物理LUN的指示添加到消息中,并提供给所选择的线程1。线程1依据所访问的物理LUN 1-3,通过设置CE扩展器来向提供物理LUN的NVM芯片或目标提供有效的CE使能信号,并向对应的物理LUN发出NVM接口命令。
作为依然另一个例子,介质接口控制器以不同的方式将虚拟LUN(以及块)映射到扩展LUN(以及物理LUN),使得对虚拟LUN的连续块的访问,被映射到不同的虚拟LUN,从而进一步提升命令处理的并行性。
作为依然又一个例子,介质接口控制器将访问虚拟LUN内的连续块的命令映射到不同扩展LUN,或将访问多个虚拟LUN的具有相同地址的块的命令映射到不同的扩展LUN。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种固态存储设备的控制部件,包括LUN(Logic Unit,逻辑单元)映射器与耦合到LUN映射器的介质接口控制器;
LUN映射器包括查找表电路,以虚拟LUN号和/或虚拟块号为索引从查找表电路中获取第一LUN号,作为LUN映射器的输出;
介质接口控制器通过第一通道与第二通道耦合到多个NVM芯片;
介质接口控制器根据LUN映射器的输出选择通道之一,在所选择的通道上生成有效的使能(CE)信号,以激活所述第一LUN号对应的物理LUN。
2.根据权利要求1的固态存储设备的控制部件,其中所述LUN映射器将第一虚拟LUN映射到两个或更多物理LUN。
3.根据权利要求1的固态存储设备的控制部件,其中所述LUN映射器将多个虚拟LUN映射到单一的物理LUN。
4.根据权利要求1的固态存储设备的控制部件,所述LUN映射器将第一虚拟LUN映射到两个或更多物理LUN;以及
所述LUN映射器根据虚拟块号相对于物理LUN的块数的模,选择所述两个或更多物理LUN之一以得到所述第一LUN号。
5.根据权利要求1-4之一的固态存储设备的控制部件,其中LUN映射器以连续的虚拟LUN号作为索引,将连续的虚拟LUN号的每个,映射到物理上分离的多个NVM芯片的物理LUN。
6.根据权利要求1的固态存储设备的控制部件,其中所述介质接口控制器还耦合到CE扩展器,CE扩展器通过多个使能(CE)信号线耦合到多个NVM芯片的使能(CE)信号端口。
7.根据权利要求6所述的固态存储设备的控制部件,其中所述介质接口控制器根据LUN映射器的输出选择通道之一,在所选择的通道上通过设置CE扩展器生成有效的使能(CE)信号,以激活所述第一LUN号对应的物理LUN。
8.根据权利要求1所述的固态存储设备的控制部件,其中所述第一通道耦合第一NVM芯片与第二NVM芯片;
所述第一NVM芯片具有第一数量的物理LUN,所述第二NVM芯片具有第二数量的物理LUN,所述第一数量不同于第二数量。
9.根据权利要求8所述的固态存储设备的控制部件,其中所述固态存储设备还包括第二通道,所述第二通道耦合第三NVM芯片与第四NVM芯片;
所述第四NVM芯片具有第一数量的物理LUN,所述第三NVM芯片具有第二数量的物理LUN。
10.一种固态存储设备,包括根据权利要求1-9之一所述的控制部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201720947480.1U CN207148818U (zh) | 2017-07-31 | 2017-07-31 | 具有lun映射器的固态存储设备控制部件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201720947480.1U CN207148818U (zh) | 2017-07-31 | 2017-07-31 | 具有lun映射器的固态存储设备控制部件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN207148818U true CN207148818U (zh) | 2018-03-27 |
Family
ID=61673570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201720947480.1U Active CN207148818U (zh) | 2017-07-31 | 2017-07-31 | 具有lun映射器的固态存储设备控制部件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN207148818U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445697A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种组块方法及装置 |
-
2017
- 2017-07-31 CN CN201720947480.1U patent/CN207148818U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445697A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种组块方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201350B (zh) | 存储数据的方法、存储器和计算机*** | |
CN102681952B (zh) | 将数据写入存储设备的方法与存储设备 | |
JP2001306393A (ja) | 記憶装置 | |
CN108509145A (zh) | 存储***和控制方法 | |
CN109101185B (zh) | 固态存储设备及其写命令和读命令处理方法 | |
CN109656833B (zh) | 数据储存装置 | |
JPH0887876A (ja) | Nand形フラッシュメモリicカード | |
CN101436171B (zh) | 模块化通信控制*** | |
CN109164976A (zh) | 利用写缓存优化存储设备性能 | |
CN107870866A (zh) | Io命令调度方法与nvm接口控制器 | |
CN109977032A (zh) | 垃圾数据回收控制方法及其装置 | |
CN108733580A (zh) | 读取命令排程方法 | |
CN108572932A (zh) | 多平面nvm命令融合方法与装置 | |
CN109597565A (zh) | 虚拟Plane管理 | |
CN207148818U (zh) | 具有lun映射器的固态存储设备控制部件 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与*** | |
CN109388333A (zh) | 降低读命令处理延迟的方法与装置 | |
CN108153582A (zh) | Io命令处理方法与介质接口控制器 | |
CN108628759A (zh) | 乱序执行nvm命令的方法与装置 | |
CN108241468B (zh) | Io命令处理方法与固态存储设备 | |
CN207676335U (zh) | 具有非对称通道的固态存储设备 | |
CN101609712B (zh) | 具有多非易失性存储器的存储***及其控制器与存取方法 | |
CN107870779A (zh) | 调度方法与装置 | |
CN109815157A (zh) | 编程命令处理方法与装置 | |
CN108877862A (zh) | 页条带的数据组织以及向页条带写入数据的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |