CN213338708U - 一种控制部件及存储设备 - Google Patents
一种控制部件及存储设备 Download PDFInfo
- Publication number
- CN213338708U CN213338708U CN202022129205.3U CN202022129205U CN213338708U CN 213338708 U CN213338708 U CN 213338708U CN 202022129205 U CN202022129205 U CN 202022129205U CN 213338708 U CN213338708 U CN 213338708U
- Authority
- CN
- China
- Prior art keywords
- nvm
- media interface
- type
- command
- nvm chip
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种控制部件及存储设备。所提供的存储设备包括控制部件与多个NVM芯片,所述控制部件包括用于耦合多个NVM芯片的介质接口控制器;所述介质接口控制器通过多个通道耦合所述多个NVM芯片;所述多个通道中的第一通道耦合多个NVM芯片;所述多个NVM芯片的第一NVM芯片具有第一类型,所述多个NVM芯片的第二NVM芯片具有第二类型;其中,所述第一类型不同于所述第二类型。
Description
技术领域
本申请涉及存储设备技术,尤其涉及具有混合通道的存储设备、其控制器以及提供混合通道的方法。
背景技术
图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机***接口)、SAS(Serial Attached SCSI,串行连接SCSI)、 IDE(Integrated Drive Electronics,集成驱动器电子)、USB(UniversalSerial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、 NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM 芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random AccessMemory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是 FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110 的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM 芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。申请号为201510253428.1、专利名称为“微指令序列执行方法及其装置”的中国专利中提供了介质接口控制器的例子,通过执行微指令,将存储介质访问命令施加给NVM芯片。申请号为2020106080147、专利名称为“自适应NVM读取方法及其装置”的中国专利申请,申请号为“202010615178.2”、专利名称为“智能读重做方法及其介质接口控制器”的中国专利申请,申请号为“202010207004.2”、专利名称为“用于读命令融合的介质接口控制器及存储控制器”的中国专利申请,申请号为201810380329.3、专利名称为“乱序执行NVM命令的方法与装置”的中国专利,申请号为201610836531.3、专利名称为“生成NVM芯片接口命令的方法与装置”的中国专利申请中均提供了介质接口控制器的例子。
NVM芯片包括一个或多个逻辑单元(Logic Unit,LUN)。NVM芯片封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NVM芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从 http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.as hx获得的“Open NAND Flash InterfaceSpecification(Revision 3.0)”中,提供了关于目标 (target)、逻辑单元、平面(Plane)的含义,其为现有技术的一部分。本申请中,除非另外指出,目标(Target)与逻辑单元(LUN)的使用可互换。
NVM芯片通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页(也称为物理页)。物理页具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作***等上层软件所感知到的存储设备的存储空间。物理地址是用于访问存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是存储设备中的重要元数据。通常FTL表的数据项记录了存储设备中以数据页为单位的地址映射关系。
一些存储设备的FTL由存储设备所耦合的主机提供,由主机的存储器存储FTL表,主机的处理器执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。
图2展示了存储设备的控制部件的详细的框图。
主机以遵循存储协议的IO命令访问存储设备。控制部件根据来自主机的IO命令,生成一个或多个存储命令并提供给介质接口控制器。介质接口控制器根据存储命令生遵循NVM芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个IO命令生成的所有存储命令都被执行完成,并向主机指示IO命令的处理结果。
参看图2,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器与存储介质管理单元。主机接口获取主机提供的IO命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4KB。将NVM 芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4KB,则一个物理页能存储4个数据帧。
存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括FTL表。对于读命令,存储介质管理单元输出存储命令所访问的逻辑地址对应的物理地址,对于写命令,存储介质管理单元为其分配可用的物理地址,并记录其访问的逻辑地址与分配的物理地址的映射关系。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理NVM芯片所需的功能。
存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向 NVM芯片发出存储介质访问命令。为了清楚的目的,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给NVM芯片的命令称为存储介质访问命令。存储介质访问命令遵循NVM芯片的接口协议。
图3展示了介质接口控制器。
介质接口控制器包括微指令存储器、微指令执行单元与信号驱动器。介质接口控制器还耦合NVM芯片。介质接口控制器向NVM芯片提供存储介质访问命令并获取存储介质访问命令的处理结果。微指令存储器存储了微指令序列。
介质接口控制器接收存储命令处理提供的介质接口命令(图3中展示为CMD)。微指令序列同介质接口命令对应,介质接口控制器根据收到的介质接口命令获取对应的微指令序列提供给微指令执行单元。微指令执行单元执行微指令序列,根据微指令序列指示的信号驱动信号驱动器,在介质接口同NVM芯片耦合的引线上产生指定的信号。并通过执行微指令序列,产生符合NVM芯片接口协议的信号序列。信号驱动器还从引线采集信号,例如从DQ引线采集从NVM芯片读出的数据。
NVM芯片有多种类型。各种类型的NVM芯片例如来自不同的供应商、遵循不同的NVM芯片接口协议(例如,“Toggle”、“ONFI”等)、提供用于不同应用场景的不同特性(例如,低延迟、大容量、高耐久度等)。
介质接口控制器通过通道(channel)耦合NVM芯片。为提高存储密度并且平衡控制器芯片的引脚数量,通常在单个通道耦合例如2个或更多NVM芯片(或者以LUN或Target为单位耦合到通道)。耦合到相同通道的多个Target共享总线(包括控制总线与数据总线),以减少用于将NVM芯片耦合到介质接口控制器所以的引脚数量。通道为耦合到该通道的各Target提供其专用的芯片使能(CE)信号,以在任意时刻,避免向多于一个Target传输信号。
耦合到相同通道的各NVM芯片通常具有相同类型,从而介质接口控制器用相同方式得以操作所有NVM芯片。
实用新型内容
一些应用***需要利用不同类型的NVM芯片满足多样化的性能需求。例如,CDN(内容分发网络,Content Delivery Network)需要更好的读性能,而企业级应用需要更高的数据可靠性。在存储设备内部,也逐渐产生了对多样化NVM芯片类型的需求。例如,对于存储设备的关键元数据,需要能被低延迟的访问(读和/或写);对于有能力区分冷/ 热数据的存储设备,希望冷数据的存储介质有更好的保持能力(retention)而热数据的存储介质有更好的耐久力(Endurance)和/或访问延迟。因而,产生了对在存储设备内的同一控制部件上耦合不同类型的NVM芯片的需求。进一步地,希望在同一通道上耦合不同类型的NVM芯片。然而,同一通道上的NVM芯片共享总线,在这些NVM芯片的类型不同时,驱动一种NVM芯片的方式很可能无法有效驱动另一种NVM芯片,这为介质接口控制器带来挑战。
在同一控制部件上耦合不同类型的NVM芯片,也为存储介质的管理带来挑战。需要区分不同NVM芯片提供的存储空间,还希望为新功能的引入保持低的技术复杂度。
根据本申请的第一方面,提供了根据本申请第一方面的第一控制部件,包括用于耦合多个NVM芯片的介质接口控制器;所述介质接口控制器通过多个通道耦合所述多个NVM芯片;所述多个通道中的第一通道耦合多个NVM芯片;所述多个NVM芯片的第一NVM芯片具有第一类型,所述多个NVM芯片的第二NVM芯片具有第二类型;其中,所述第一类型不同于所述第二类型。
根据本申请第一方面的第一控制部件,提供了根据本申请第一方面的第二控制部件,其中所述第一类型是SLC类型,所述第二类型是TLC类型。
根据本申请第一方面的第一或第二控制部件,提供了根据本申请第一方面的第三控制部件,其中所述多个通道中的第二通道耦合第二多个NVM芯片;所述第二多个NVM 芯片的第三NVM芯片具有第三类型,所述第二多个NVM芯片的第四NVM芯片具有第四类型;其中,所述第三类型不同于所述第四类型。
根据本申请第一方面的第一控制部件,提供了根据本申请第一方面的第四控制部件,其中所述介质接口控制器包括信号驱动器,通过所述信号驱动器向所述多个通道提供信号。
根据本申请第一方面的第一至第四控制部件之一,提供了根据本申请第一方面的第五控制部件,其中所述介质接口控制器还包括多个NVM配置寄存器组,每个NVM配置寄存器组包括存储NVM芯片的特征的多个寄存器。
根据本申请第一方面的第五控制部件,提供了根据本申请第一方面的第六控制部件,其中NVM配置寄存器组包括时间约束配置寄存器、地址格式配置寄存器、数据长度配置寄存器和/或命令格式配置寄存器。
根据本申请第一方面的第五或第六控制部件,提供了根据本申请第一方面的第七控制部件,其中根据要访问的NVM芯片的类型,从对应的NVM配置寄存器组获取要访问的NVM芯片的类型的特征;所述信号驱动器根据所获取的特征通过通道向所述要访问的NVM芯片提供信号。
根据本申请第一方面的七控制部件,提供了根据本申请第一方面的第八控制部件,其中所述介质接口控制器还包括多个缓存单元;从所述第一NVM芯片读出的数据被存储在所述多个缓存单元中的第一缓存单元;要向所述第二NVM芯片写入的数据也被存储在所述第一缓存单元。
根据本申请第一方面的第八控制部件,提供了根据本申请第一方面的第九控制部件,其中所述第一NVM芯片作为所述第二NVM芯片的缓存。
根据本申请第一方面的第一至第九控制部件之一,提供了根据本申请第一方面的第十控制部件,其中所述介质接口控制器包括微指令存储单元、微指令执行单元与信号驱动器;所述微指令执行单元执行微指令序列来操作所述信号驱动器向所述多个通道提供信号。
根据本申请第一方面的第十控制部件,提供了根据本申请第一方面的第十一控制部件,其中所述微指令存储器存储多个微指令序列;所述多个微指令序列包括用于处理介质接口命令的微指令序列,与多个用于向NVM芯片提供存储介质访问命令的微指令序列;执行所述用于处理介质接口命令的微指令序列,调用同介质接口命令对应的用于向 NVM芯片提供存储介质访问命令的微指令序列。
根据本申请第一方面的第十一控制部件,提供了根据本申请第一方面的第十二控制部件,其中所述多个用于向NVM芯片提供存储介质访问命令的微指令序列包括用于向所述第一类型的NVM芯片提供编程命令的微指令序列与用于向所述第二类型的NVM芯片提供编程命令的微指令序列。
根据本申请第一方面的第十一或第十二控制部件,提供了根据本申请第一方面的第十三控制部件,其中所述微指令执行单元还包括多个NVM配置寄存器组,每个NVM配置寄存器组包括存储NVM芯片的特征的多个寄存器;执行用于处理介质接口命令的微指令序列还设置类型标记;所述微指令执行单元根据所述类型标记访问多个NVM配置寄存器组之一,并使用访问多个NVM配置寄存器组之一获取的NVM芯片的特征操作所述信号驱动器向所述多个通道提供信号。
根据本申请第一方面的第十三控制部件,提供了根据本申请第一方面的第十四控制部件,其中所述微指令执行单元还包括微指令译码器与多个信号生成单元;微指令译码器根据微指令的含义将微指令提供给所述多个信号生成单元之一;微指令译码器还根据所述类型标记选择所述多个NVM配置寄存器组之一的多个寄存器提供给所述多个信号生成单元的一个或多个;信号生成单元根据微指令译码器提供的微指令与从所述多个 NVM配置寄存器组之一获取的特征来操作信号驱动器向所述多个通道之一提供信号。
根据本申请第一方面的第十四控制部件,提供了根据本申请第一方面的第十五控制部件,其中所述多个信号生成单元包括命令信号生成单元、地址信号生成单元和/或数据传输信号生成单元;命令信号生成单元根据微指令生成存储介质访问命令的命令头,还从NVM配置寄存器组的时间约束配置寄存器获取时间约束信息,以在通道上生成ALE 信号和/或CLE信号。
根据本申请第一方面的第十四或第十五控制部件,提供了根据本申请第一方面的第十六控制部件,其中地址信号生成单元根据微指令生成存储介质访问命令的地址部分,还从NVM配置寄存器组的地址格式配置寄存器获取地址格式,以在通道上生成多个周期的DQ信号。
根据本申请第一方面的第十四至第十六控制部件之一,提供了根据本申请第一方面的第十七控制部件,其中数据传输信号生成单元根据微指令生成存储介质访问命令的数据部分,还从NVM配置寄存器组的数据长度配置寄存器获取数据长度,以在通道上生成指定周期数量的DQ信号。
根据本申请第一方面的第十至第十七控制部件之一,提供了根据本申请第一方面的第十八控制部件,其中介质接口控制器包括一个或多个缓存单元,缓存单元用于缓存从所述多个NVM芯片之一读出的数据或要向所述多个NVM芯片之一写入的数据;所述微指令执行单元执行用于复制操作的微指令序列向所述第一NVM芯片提供读命令,将读出的数据记录在第一缓存单元,以及向所述第二NVM芯片提供编程命令,以将所述第一缓存单元的数据写入所述第二NVM芯片。
根据本申请第一方面的第十八控制部件,提供了根据本申请第一方面的第十九控制部件,其中介质接口控制器响应于识别出指示搬移操作的介质接口命令,而调用用于复制操作的微指令序列。
根据本申请第一方面的第十八或第十九控制部件,提供了根据本申请第一方面的第二十控制部件,其中所述第一NVM芯片作为所述第二NVM芯片的缓存;所述介质接口控制器还包括块映射表,块映射表的条目相关联地记录了所述第二NVM芯片的块与所述第一NVM芯片的一个或多个块。
根据本申请第一方面的第二十控制部件,提供了根据本申请第一方面的第二十一控制部件,其中响应于收到指示向所述第二NVM芯片的第一块写入数据的第一介质接口命令,访问所述块映射表得到同所述第一块关联的所述第一NVM芯片的第二块;通过用于向所述第一类型的NVM芯片提供编程命令的微指令序列将所述第一介质接口命令指示的写入数据写入所述第二块。
根据本申请第一方面的第二十一控制部件,提供了根据本申请第一方面的第二十二控制部件,其中响应于收到指示向所述第二NVM芯片的第一块写入数据的第一介质接口命令,在所述块映射表中记录所述第一块同第一NVM芯片的第二块关联。
根据本申请第一方面的第二十一或第二十二控制部件,提供了根据本申请第一方面的第二十三控制部件,其中所述第一介质接口命令指示的写入数据大小为所述第一块的物理页大小;执行用于向所述第一类型的NVM芯片提供编程命令的微指令序列时,通过同类型标记对应的NVM配置寄存器组的地址格式配置寄存器获取所述第二NVM芯片的物理页地址同所述第一NVM芯片的物理页地址的转换方式,并生成所述第二块的物理页地址。
根据本申请第一方面的第二十一至第二十三控制部件之一,提供了根据本申请第一方面的第二十四控制部件,其中根据块映射表记录的所述第一块与所述第二块的关联关系,通过执行用于复制操作的微指令序列将所述第二块的数据复制到所述第一块;以及在块映射表中清除所述第一块与所述第二块的关联关系。
根据本申请第一方面的第二十一至第二十四控制部件之一,提供了根据本申请第一方面的第二十五控制部件,其中响应于收到指示向所述第二NVM芯片的第三块写入数据的第二介质接口命令,访问所述块映射表得到所述第三块在所述块映射表中没有记录;通过用于向所述第二类型的NVM芯片提供编程命令的微指令序列将所述第二介质接口命令指示的写入数据写入所述第三块。
根据本申请第一方面的第十至第二十五控制部件之一,提供了根据本申请第一方面的第二十六控制部件,其中所述介质接口控制器包括调度器,用于调度要由所述微指令执行单元执行的多个线程,其中被执行的微指令序列连同其状态称为线程;所述多个线程中的第一多个线程同所述多个NVM芯片的LUN一一对应,第一多个线程的每个对应用于向NVM芯片提供存储介质访问命令的微指令序列。
根据本申请第一方面的第二十六控制部件,提供了根据本申请第一方面的第二十七控制部件,其中所述多个线程的第二线程同要复制数据的所述第一NVM芯片的LUN与所述第二NVM芯片的LUN对应,第二线程对应用于复制操作的微指令序列。
根据本申请第一方面的第二十六控制部件,提供了根据本申请第一方面的第二十八控制部件,其中介质接口控制器响应于识别出指示搬移操作的介质接口命令,而调度第一线程与第二线程,第一线程与第二线程都被分配第一缓存单元;第一线程根据用于向NVM芯片提供读命令的微指令序列从第一NVM芯片读出数据并记录在第一缓存单元;第二线程根据用于向NVM芯片提供编程命令的微指令序列将第一缓存单元的数据写入第二NVM芯片。
根据本申请第一方面的第二十八控制部件,提供了根据本申请第一方面的第二十九控制部件,其中响应于要写入第二NVM芯片的数据尚未被记录在第一缓存单元,第二线程让步;和/或响应于要写入第二NVM芯片的数据被记录在第一缓存单元,调度第二线程。
根据本申请的第二方面,提供了根据本申请第二方面的存储设备,包括控制部件与多个NVM芯片;其中所述控制部件是根据本申请第一方面的第一至第二十九控制部件之一。
根据本申请的第三方面,提供了根据本申请第三方面的第一介质接口命令处理方法,包括:获取介质接口命令,识别介质接口要访问的NVM芯片的类型;根据识别的所述类型,获取要访问的NVM芯片的特征;根据获取的所述特征生成访问所述NVM芯片的存储介质访问命令。
根据本申请第三方面的第一介质接口命令处理方法,提供了根据本申请第三方面的第二介质接口命令处理方法,其中响应于所述类型是第一类型,执行同所述第一类型对应的第一微指令序列;所述第一微指令序列在执行过程中获取所述特征,并根据获取的所述特征生成访问所述NVM芯片的存储介质访问命令。
根据本申请第三方面的第一介质接口命令处理方法,提供了根据本申请第三方面的第三介质接口命令处理方法,其中响应于所述介质接口命令指示第一操作,执行同所述第一操作对应的第一微指令序列;所述第一微指令序列在执行过程中获取所述特征,并根据获取的所述特征生成访问所述NVM芯片的存储介质访问命令。
根据本申请第三方面的第二或第三介质接口命令处理方法,提供了根据本申请第三方面的第四介质接口命令处理方法,其中根据识别的所述类型,从同所述类型对应的NVM配置寄存器组获取要访问的NVM芯片的类型的特征;其中NVM配置寄存器组包括存储NVM芯片的特征的时间约束配置寄存器、地址格式配置寄存器、数据长度配置寄存器和/或命令格式配置寄存器。
根据本申请第三方面的第二至第四介质接口命令处理方法之一,提供了根据本申请第三方面的第五介质接口命令处理方法,其中执行用于处理介质接口命令的微指令序列分析所述介质接口命令,并调用所述第一微指令序列;其中执行用于处理介质接口命令的微指令序列还识别介质接口要访问的NVM芯片的类型;以及执行所述第一微指令序列从同所述类型对应的NVM配置寄存器组获取要访问的NVM芯片的类型的特征。
根据本申请第三方面的第二至第五介质接口命令处理方法之一,提供了根据本申请第三方面的第六介质接口命令处理方法,其中所述第一微指令序列包括生成存储介质访问命令的命令头的微指令、生成存储介质访问命令的地址的微指令和/或生成存储介质访问命令的数据的微指令。
根据本申请第三方面的第六介质接口命令处理方法,提供了根据本申请第三方面的第七介质接口命令处理方法,其中执行所述生成存储介质访问命令的命令头的微指令,生成存储介质访问命令的命令头,还从NVM配置寄存器组的时间约束配置寄存器获取时间约束信息,以在通道上生成用于所述存储介质访问命令的命令头ALE信号和/或CLE 信号。
根据本申请第三方面的第六或第七介质接口命令处理方法,提供了根据本申请第三方面的第八介质接口命令处理方法,其中执行所述生成存储介质访问命令的地址的微指令,从NVM配置寄存器组的地址格式配置寄存器获取地址格式,以在通道上生成用于所述存储介质访问命令的地址的多个周期的DQ信号。
根据本申请第三方面的第六至第八介质接口命令处理方法之一,提供了根据本申请第三方面的第九介质接口命令处理方法,其中执行所述生成存储介质访问命令的数据的微指令,从NVM配置寄存器组的数据长度配置寄存器获取数据长度,以在通道上生成指定周期数量的DQ信号。
根据本申请第三方面的第一至第九介质接口命令处理方法之一,提供了根据本申请第三方面的第十介质接口命令处理方法,其中响应于获取了指示从第一类型的NVM芯片向第二类型的NVM芯片搬移数据的介质接口命令,执行用于复制操作的微指令序列向所述第一NVM芯片提供读命令,将读出的数据记录在第一缓存单元,以及向所述第二NVM芯片提供编程命令,以将所述第一缓存单元的数据写入所述第二NVM芯片。
根据本申请第三方面的第十介质接口命令处理方法,提供了根据本申请第三方面的第十一介质接口命令处理方法,其中所述第一NVM芯片作为所述第二NVM芯片的缓存;以及在块映射表的条目中相关联地记录了所述第二NVM芯片的块与所述第一NVM芯片的一个或多个块。
根据本申请第三方面的第十一介质接口命令处理方法,提供了根据本申请第三方面的第十二介质接口命令处理方法,其中响应于收到指示向所述第二NVM芯片的第一块写入数据的第一介质接口命令,访问所述块映射表得到同所述第一块关联的所述第一 NVM芯片的第二块;通过用于向所述第一类型的NVM芯片提供编程命令的微指令序列将所述第一介质接口命令指示的写入数据写入所述第二块。
根据本申请第三方面的第十二介质接口命令处理方法,提供了根据本申请第三方面的第十三介质接口命令处理方法,其中响应于收到指示向所述第二NVM芯片的第一块写入数据的第一介质接口命令,在所述块映射表中记录所述第一块同第一NVM芯片的第二块关联。
根据本申请第三方面的第十二或第十三介质接口命令处理方法,提供了根据本申请第三方面的第十四介质接口命令处理方法,其中所述第一介质接口命令指示的写入数据大小为所述第一块的物理页大小;执行用于向所述第一类型的NVM芯片提供编程命令的微指令序列时,通过同类型标记对应的NVM配置寄存器组的地址格式配置寄存器获取所述第二NVM芯片的物理页地址同所述第一NVM芯片的物理页地址的转换方式,并生成所述第二块的物理页地址。
根据本申请第三方面的第十二至第十四介质接口命令处理方法之一,提供了根据本申请第三方面的第十五介质接口命令处理方法,其中根据块映射表记录的所述第一块与所述第二块的关联关系,通过执行用于复制操作的微指令序列将所述第二块的数据复制到所述第一块;以及在块映射表中清除所述第一块与所述第二块的关联关系。
根据本申请第三方面的第十二至第十五介质接口命令处理方法之一,提供了根据本申请第三方面的第十六介质接口命令处理方法,其中响应于收到指示向所述第二NVM芯片的第三块写入数据的第二介质接口命令,访问所述块映射表得到所述第三块在所述块映射表中没有记录;通过用于向所述第二类型的NVM芯片提供编程命令的微指令序列将所述第二介质接口命令指示的写入数据写入所述第三块。
根据本申请第三方面的第一至第十六介质接口命令处理方法之一,提供了根据本申请第三方面的第十七介质接口命令处理方法,还包括:调度多个线程,其中被执行的微指令序列连同其状态称为线程;所述多个线程中的第一多个线程同NVM芯片的LUN一一对应,第一多个线程的每个对应用于向NVM芯片提供存储介质访问命令的微指令序列。
根据本申请第三方面的第十七介质接口命令处理方法之一,提供了根据本申请第三方面的第十八介质接口命令处理方法,其中所述多个线程的第二线程同要复制数据的第一NVM芯片的LUN与第二NVM芯片的LUN对应,第二线程对应用于复制操作的微指令序列。
根据本申请第三方面的第十七介质接口命令处理方法之一,提供了根据本申请第三方面的第十九介质接口命令处理方法,其中响应于识别出指示搬移操作的介质接口命令,而调度第一线程与第二线程,第一线程与第二线程都被分配第一缓存单元;第一线程根据用于向NVM芯片提供读命令的微指令序列从第一NVM芯片读出数据并记录在第一缓存单元;第二线程根据用于向NVM芯片提供编程命令的微指令序列将第一缓存单元的数据写入第二NVM芯片。
根据本申请第三方面的第十九介质接口命令处理方法之一,提供了根据本申请第三方面的第二十介质接口命令处理方法,其中响应于要写入第二NVM芯片的数据尚未被记录在第一缓存单元,第二线程让步;和/或响应于要写入第二NVM芯片的数据被记录在第一缓存单元,调度第二线程。
根据本申请的第四方面,提供了根据本申请第四方面的信息处理设备,所述信息处理设备包括处理器与存储器,其中所述处理器存储有程序,所述程序被处理器执行时实现根据本申请第三方面的第一至第二十介质接口命令处理方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1展示了现有技术的存储设备的框图;
图2展示了存储设备的控制部件的详细的框图;
图3展示了介质接口控制器;
图4A展示了根据本申请的混合通道介质接口控制器;
图4B展示了根据本申请的又一混合通道介质接口控制器;
图5展示了根据本申请的混合通道介质接口控制器实施编程操作的示意图;
图6A展示了根据本申请又一实施例的微指令的示意图;
图6B展示了根据本申请又一实施例的NVM配置寄存器组;
图7展示了根据本申请又一实施例的微指令执行单元的框图;
图8展示了根据本申请再一实施例的介质接口控制器的框图;
图9A展示了根据本申请依然再一实施例的介质接口控制器的框图;
图9B展示了根据本申请依然又一实施例的介质接口控制器的框图;以及
图10展示了根据本申请另一实施例的介质接口控制器的框图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图4A展示了根据本申请的混合通道介质接口控制器。
介质接口控制器的信号驱动器耦合一个或多个通道(图4A中展示为通道420与通道 425)。每个通道各自耦合一个或多个NVM芯片。这些NVM芯片具有相同或不同的类型。作为举例,图4A中,耦合到通道420的2个NVM芯片分别具有类型1与类型2,而耦合到通道425的2个NVM芯片分别具有类型3与类型4。依然作为举例,类型1是例如按Toggle标准操作的低延迟NVM,类型2是按Toggle标准操作的TLC NVM,类型3 是按ONFI标准操作的TLC NVM,类型4是按ONFI标准操作的TLC NVM但工作于SLC 模式。
图4B展示了根据本申请的又一混合通道介质接口控制器。
同图4A的混合通道介质接口控制器相比,图4B的混合通道介质接口控制器的微指令存储器存储了多个微指令序列,包括例如,用于介质接口命令处理的微指令序列,用于向具有类型1的NVM芯片发出编程命令的微指令序列410,用于向具有类型2的NVM 芯片发出编程命令的微指令序列412,用于向具有类型3的NVM芯片发出读命令的微指令序列414,用于向具有类型4的NVM芯片发出擦除命令的微指令序列416。微指令序列(410、412、414与416)的微指令各自指示了所需的参数来满足要操作的NVM芯片的类型。可以理解地,微指令存储器还存储用于其他操作的微指令序列。
响应于存储命令处理单元(也参看图2)提供了介质接口命令,微指令执行单元执行用于介质接口命令处理的微指令序列,以识别介质接口命令所指示的NVM芯片类型与操作种类,并调用对应的微指令序列来驱动信号驱动器向指定的NVM芯片的Target 产生存储介质访问命令。通过为不同类型的NVM芯片提供对应的微指令序列,使得在执行微指令序列时,在通道上产生同NVM芯片类型对应的存储介质访问命令。
例如,介质接口命令指示编程通道420的类型1的NVM芯片,通过用于执行介质接口命令处理的微指令序列而调用了用于向具有类型1的NVM芯片发出编程命令的微指令序列410。又例如,介质接口命令指示擦除通道425的类型4的NVM芯片,通过用于执行介质接口命令处理的微指令序列而调用了用于向具有类型4的NVM芯片发出擦除命令的微指令序列416。
作为又一个例子,介质接口命令指示多种信息,包括操作种类(例如,读、编程、擦除等),访问的地址(例如,哪个NVM芯片、哪个LUN、块号、页号等),以及可选的类型标记。类型标记指示例如TLC操作、MLC操作或SLC操作。可选地或进一步地,类型标记指示使用ONFI协议或使用Toggle协议。通过执行用于介质接口命令处理的微指令序列,识别出处理介质接口命令对应的微指令序列。例如,若介质接口命令的类型标记指示SLC操作,则调用微指令序列410来根据该介质接口命令生成存储介质访问命令;若介质接口命令的类型标记指示TLC操作,则调用微指令序列412来根据该介质接口命令生成存储介质访问命令。
图5展示了根据本申请的混合通道介质接口控制器实施编程操作的示意图。
作为举例,微指令存储器存储了用于介质接口命令处理的微指令序列510,用于向具有SLC类型的NVM芯片发出编程命令的微指令序列512,用于向具有TLC类型的 NVM芯片发出编程命令的微指令序列514。
响应于存储命令处理单元向介质接口控制器提供了介质接口命令,执行用于介质接口命令处理的微指令序列510。微指令序列510获取介质接口命令(520),根据介质接口命令的内容识别介质接口命令所指示的NVM芯片类型与操作种类,并调用对应的微指令序列(512或514)来驱动信号驱动器向指定的NVM芯片的Target产生存储介质访问命令。
可选地,执行微指令序列510时还根据介质接口命令所指示的NVM芯片类型与操作种类,生成对应的参数并配置所调用的微指令序列。例如,对于SLC类型NVM芯片的编程命令,其传输的数据量为4KB,而对于TLC类型NVM芯片的编程操作所需传输的数据量是16KB、32KB或48KB。执行微指令序列510时生成的参数中指示了要传输的数据量大小。依然作为举例,对于SLC类型的NVM芯片的编程命令与TLC类型的 NVM芯片的编程命令具有不同的命令格式和/或命令编码,执行微指令序列510时生成的参数中指示了要使用的命令格式和/或命令编码。作为又一个例子,SLC类型的NVM 芯片的编程命令与TLC类型的NVM芯片的编程命令具有不同的时序或约束条件,例如具有各自的信号建立时间和/或保持时间,执行微指令序列510时生成的参数中指示要使用的时序或约束条件。
依然可选地,执行微指令序列510时还检查或调整介质接口命令所指示的访问NVM芯片的物理地址。例如,NVM芯片的块的多个物理页的编程顺序同其物理页编号不一致 (例如,不能按物理页编号递增或递减的顺序实施编程,而是要按指定的顺序,例如,按物理页号1-10-11-2-20的顺序编程各物理页)。相应地,执行微指令序列510时根据介质接口命令所指示的物理地址生成要编程的物理页号。作为又一个例子,多种类型的 NVM芯片各自的块内具有不同数量的物理页。为了管理存储介质的便利,存储命令处理单元按虚拟NVM管理存储介质,介质接口命令指示虚拟NVM的页地址,虚拟NVM的页可能由两个或多个真实物理页组合成,从而虚拟NVM的页地址同真实物理页号之间由微指令序列510实施转换。
作为举例,若执行微指令序列510时识别出所获取的介质接口命令指示向SLC类型NVM芯片实施编程操作,调用微指令序列512,并且可选地为其提供所需要的用于实施编程SLC类型NVM芯片所需的参数。作为响应,微指令执行单元(也参看图4A和图 4B)执行微指令序列512。
作为举例,对SLC类型NVM芯片的编程操作,写入的数据量是4KB。微指令序列 512被执行时,获取要写入的4KB数据(该数据的存储位置由介质接口命令提供),并存储在编程数据缓存。可选地,微指令序列512仅确认要写入的4KB数据可用,而不对其搬移到缓存,以减少操作。
执行微指令序列512还生成指示SLC NVM芯片编程命令的信号,以将编程命令连同4KB数据提供给SLC NVM芯片。
执行微指令序列512生成的指示SLC NVM芯片编程命令的信号,兼容该SLC NVM 芯片所支持的存储协议并存储协议的时序与约束条件。
依然作为举例,若微指令序列510识别出所获取的介质接口命令指示向TLC类型NVM芯片实施编程操作,调用微指令序列512,并且可选地为其提供所需要的用于实施编程TLC类型NVM芯片所需的参数。作为响应,微指令执行单元(也参看图4A和图 4B)执行微指令序列514。
作为举例,对TLC类型NVM芯片的编程操作,写入的数据量是48KB。微指令序列514被执行时,获取要写入的48KB数据(该数据的存储位置由介质接口命令提供),并存储在编程数据缓存。可选地,微指令序列514(也包括微指令序列512)每次搬移数据的单位是4KB,相应地,微指令序列通过16次数据搬移完成对要写入TLC NVM芯片的数据的获取。可选地,数据搬移的次数(16次)由微指令序列510的参数指示,或者微指令序列514自身记录了该次数。
可选地,微指令序列514仅确认要写入的48KB数据可用,而不对其搬移到缓存,以减少操作。
执行微指令序列514还生成指示TLC NVM芯片编程命令的信号,以将编程命令连同48KB数据提供给TLC NVM芯片。
图6A展示了根据本申请又一实施例的微指令的示意图。
也参看图3与图4A和图4B,微指令序列包括多条微指令,介质接口控制器执行微指令序列中的微指令。
为了支持单一通道中混合设置的多种类型的NVM芯片,在一条、多条或全部微指令(601)中设置“类型标记”。类型标记指示该微指令所操作的NVM芯片的类型。
图6A还提供了展示类型标记的含义的表格。例如,值为“0x01”的类型标记指示的NVM芯片类型为遵循Toggle协议的低延迟闪存。遵循Toggle协议的低延迟闪存包括多种特征,例如其存储单元为SLC类型,对其实施编程操作所需的数据量为4KB,发出编程命令后典型地查询到编程完成的时间(单位微秒),其信号遵循Toggle协议要求的时序。又例如,值为“0x02”的类型标记指示的NVM芯片类型为遵循Toggle协议的TLC闪存。遵循Toggle协议的TLC闪存的多种特征包括,例如其存储单元为TLC类型,对其实施编程操作所需的数据量为48KB,发出编程命令后典型地查询到编程完成的时间(几十微秒),其信号遵循Toggle协议要求的时序。又例如,值为“0x03”的类型标记指示的 NVM芯片类型为遵循ONFI协议的TLC闪存。遵循ONFI协议的TLC闪存的多种特征包括,例如其存储单元为TLC类型,对其实施编程操作所需的数据量为16KB或32KB,发出编程命令后典型地查询到编程完成的时间(几十微秒),其信号遵循ONFI协议要求的时序。又例如,值为“0x04”的类型标记指示的NVM芯片类型为遵循ONFI协议的TLC 闪存,但工作于SLC模式。遵循ONFI协议的TLC闪存工作于SLC模式时的多种特征包括,例如其存储单元为SLC类型,对其实施编程操作所需的数据量为16KB,发出编程命令后典型地查询到编程完成的时间(几微秒),其信号遵循ONFI协议要求的时序。
在申请号为201510253428.1、专利名称为“微指令序列执行方法及其装置”的中国专利,申请号为201610009789.6、专利名称为“用于检查块页地址的方法及其装置”的中国专利申请,以及申请号为“201610836531.3”、专利名称为“生成NVM芯片接口命令的方法与装置”的中国专利申请中提供了多种微指令,将其全文通过引用合并于此。已有的一种或多种微指令,以及将来被提出的一种或多种微指令,可被额外地设置根据本申请实施例的“类型标记”以指示所要操作的NVM芯片的类型。
微指令的“类型标记”指示了NVM芯片的类型,还需要为介质接口控制器描述一种或多种“类型标记”所需要的一种或多种特征。根据本申请的实施例,介质接口控制器还包括一个或多个NVM配置寄存器组,每个NVM配置寄存器组包括多个寄存器,用于描述对应的NVM芯片的各特征。
图6B展示了根据本申请又一实施例的NVM配置寄存器组。
图6B中,作为举例,“类型标记”有4种取值,分别为“0x00”、“0x01”、“0x02”与“0x03”(也参看图6A)。“类型标记”的每种取值对应1个NVM配置寄存器组(610、620、630与640) 之一。NVM配置寄存器组的各寄存器分别用于描述NVM芯片的特征。
作为举例,每个NVM配置寄存器组包括4个寄存器(包括时间约束配置寄存器、地址格式配置寄存器、数据长度配置寄存器以及命令格式配置寄存器)。
时间约束配置寄存器记录例如Toggle或ONFI协议要求的一个或多个信号的建立时间、保持时间等。地址格式配置寄存器,记录例如存储介质访问命令中的地址的格式,例如在DQ信号上地址传输所占用的总线周期数,各周期传输的地址的含义等。数据长度配置寄存器记录记录读命令/编程命令所需传输的数据长度。命令格式配置寄存器记录例如指示存储介质访问命令的命令编码(例如,“0x80”代表用于特定NVM芯片类型的编程命令的开始,而“0x10”代表编程命令的数据传输完成)。
从而,根据微指令的“类型标记”字段得以获取一组NVM配置寄存器,进而获取在生成存储介质访问命令时所要使用的多种可配置的参数,并根据参数的指示在通道上生成存储介质访问命令。
依然可选地,微指令指示了“类型标记”字段。对于具体的微指令,其使用“类型标记”字段所对应的NVM配置寄存器组的一个或多个配置寄存器(而无需使用全部的配置寄存器)。例如,对于用于生成擦除命令的微指令序列(包括一个或多个微指令),其无需使用NVM配置寄存器组中的数据长度配置寄存器(擦除命令无需传输数据)。
图7展示了根据本申请又一实施例的微指令执行单元的框图。
要被执行的微指令被提供给微指令执行单元。微指令执行单元包括微指令译码单元、多路器、选择器、多个NVM配置寄存器组、和多个信号生成单元(例如,命令信号生成单元、地址信号生成单元、数据传输信号生成单元)。
微指令译码单元将微指令的类型标记字段提供给选择器。选择器耦合多个NVM配置寄存器组,根据类型标记字段的值,选择NVM配置寄存器组之一并输出。对于被选择的NVM配置寄存器组,根据其各寄存器所描述的特征,耦合到信号生成单元的一个或多个。例如,时间约束信息在生成存储介质访问命令的命令编码、地址与数据时都被使用,因而时间约束配置寄存器被耦合到命令信号生成单元、地址信号生成单元与数据传输信号生成单元;地址格式信息仅在生成存储介质访问命令的地址时被使用,因而地址格式配置寄存器仅被耦合到地址信号生成单元,类似地,数据长度寄存器仅被耦合到数据传输信号生成单元。
微指令译码单元还通过多路器耦合命令信号生成单元、地址信号生成单元与数据传输信号生成单元。不同含义的微指令操作对应的信号生成单元来操作信号驱动器在通道上生成提供给NVM芯片的存储介质访问命令的信号。
例如,一条微指令用来生成存储介质访问命令的命令头(以编程命令为例,代表“0x80h”的部分),这样的微指令描述了例如ALE、CLE、DQ等信号的取值(例如,ALE 为0、CLE为1,而DQ为“0x80h”)。微指令译码单元将这样的微指令通过多路器提供给命令信号生成单元。命令信号生成单元还从选择器接收时间约束配置寄存器提供的时间约束信息,根据时间约束信息,命令信号生成单元操作信号驱动器在通道上将ALE、CLE、 DQ等信号在满足时间约束的时刻设置为指定的电平状态。
又例如,一条微指令用来生成存储介质访问命令的地址部分(以编程命令为例,代表要访问的物理地址),这样的微指令描述了例如在DQ信号上传输的多个周期的值,或者描述了引用,该引用指示了存储了在DQ信号传输的多个周期的值的存储位置。地址还需要格式,例如DQ信号传输的周期数量,各周期要传输的值对应地址的哪部分等。微指令译码单元将这样的微指令通过多路器提供给地址信号生成单元。地址信号生成单元还从选择器接收地址格式配置寄存器提供的地址格式。根据地址格式,地址信号生成单元操作信号驱动器在通道上将DQ等信号设置为指定的值。地址信号生成单元还接收时间约束配置寄存器提供的时间约束信息,并将DQ等信号在满足时间约束的时刻设置为指定的电平状态。可选地,根据地址格式配置寄存器提供的地址格式,还对微指令指示的地址进行变换。例如,将介质接口命令指示的编程顺序号变换为物理页号。
又例如,一条微指令用来生成存储介质访问命令的数据部分(以编程命令为例,代表要写入NVM芯片的数据),这样的微指令描述了例如在DQ信号上传输的多个周期的值,或者描述了引用,该引用指示了存储了在DQ信号传输的多个周期的值的在缓存种的存储位置。传输数据还需要数据长度,例如SLC类型的NVM芯片对应4KB的编程数据长度,而TLC类型的NVM芯片对应48KB的编程数据长度。微指令译码单元将这样的微指令通过多路器提供给数据信号生成单元。数据信号生成单元还从选择器接收数据长度配置寄存器提供的数据长度。根据数据长度与要传输的数据,数据传输信号生成单元操作信号驱动器在通道上将DQ等信号设置为指定的值并生成指定数量的DQ信号(例如,为传输4096字节数据,而需要2048或4096个DQ信号传输周期)。地址信号生成单元还接收时间约束配置寄存器提供的时间约束信息,并将DQ等信号在满足时间约束的时刻设置为指定的电平状态。
可选地,微指令执行单元还执行其他微指令。一些微指令用于决定后续执行的微指令的位置(称为控制微指令),还有一些微指令用于将数据在存储器与缓存之间搬移,这些微指令不操作信号驱动器。可选地,由控制微指令来确定为向NVM芯片传输数据所需的DQ信号传输周期数量,以及根据控制微指令的类型标记字段从数据长度配置寄存器获取所需的DQ信号传输周期数量。
在可选的实施方式中,提供用于设置类型标记的微指令,而不是在各微指令中提供类型标记字段。用于设置类型标记的微指令的执行,将微指令执行单元设置为使用指定的NVM配置寄存器组,并且该设置在下次被更改前保持有效。从而,通过相同的微指令序列,处理例如用于不同类型NVM芯片的存储介质访问命令,进而减少了需要存储的微指令序列的数量。例如,同一通道上耦合了TLC类型的NVM芯片与SLC类型的 NVM芯片。需要先向SLC芯片实施编程操作,再向TLC芯片实施编程操作。而介质接口控制器中存储了用于实施编程操作的微指令序列。通过用于设置类型标记的微指令,先选择对应SLC类型的NVM配置寄存器组,从而在接下来的执行用于实施编程操作的微指令序列中,信号生成单元根据对应SLC类型的NVM配置寄存器组在通道上生成信号。接下来,通过用于设置类型标记的微指令,选择对应TLC类型的NVM配置寄存器组,从而在接下来的执行用于实施编程操作的微指令序列中,信号生成单元根据对应TLC 类型的NVM配置寄存器组在通道上生成信号。
图8展示了根据本申请再一实施例的介质接口控制器的框图。
当通道上混合了不同类型的NVM芯片,使得出现了高速低存储密度的NVM芯片充当高密度NVM芯片的缓存的应用场景。在这样的应用场景中,出现了在通道内,从一个NVM芯片向另一个NVM芯片,或者从高速低密度存储单元(例如,SLC页)向高密度存储单元(例如,TLC页)复制数据的需求。通常,控制部件的存储命令处理单元向介质接口控制器发出介质接口命令,从SLC页读出数据,临时存储在控制部件的存储单元中;接下来,存储命令处理单元再发出介质接口命令,将临时存储的数据写入TLC页。然而,这样的操作,需要将被复制的数据从介质接口控制器搬出到介质接口控制器外部,更远的数据移动距离意味着更高的功耗与更多的时间消耗。
根据图8展示的实施例,在介质接口控制器内部完成通道内的不同物理页之间的数据复制。
同图4A和图4B展示的介质接口控制器相比,图8中的介质接口控制器还展示了多个缓存单元(810与812)。缓存单元(810与812)是介质接口控制器的微指令可描述来作为数据搬移的源地址或目的地址的架构可见的操作对象。缓存单元的大小适用于容纳 NVM芯片的读命令或编程命令对应的数据。
通道820耦合SLC NVM芯片840与TLC NVM芯片842,通道825耦合SLC NVM 芯片844与TLC NVM芯片846。
为了将SLC NVM芯片840的数据搬移到TLC NVM芯片842,根据图8的实施例,介质接口控制器向SLC NVM芯片840发出读命令,所读出的数据的目的地址为缓存单元810。接下来,介质接口控制器向TLC NVM芯片842发出编程命令,要写入的数据的源地址为缓存810(之前从SLC NVM芯片840读出的要被搬移的数据)。从而,被在通道内搬移的数据仅在介质接口控制器内移动,而不会被传输到介质接口控制器之外。以及通过组合利用已有的从SLCNVM芯片读数据的微指令序列与向TLC NVM芯片编程数据的微指令序列完成搬移操作,也无需提供新的微指令序列。
可选地,SLC NVM芯片的页大小(例如,4KB)不同于TLC NVM芯片(例如,16KB)。为了搬移数据,通过多个读命令从SLC NVM芯片的多个页(例如4个页)读出数据并记录在缓存单元,再通过单一编程命令将数据编程到TLC NVM芯片。
缓存单元(810与812)也用于处理通常的向NVM芯片编程数据与从NVM芯片读出数据的操作。为了编程数据,执行微指令序列将要编程的数据先从介质接口控制器外部搬移到缓存单元,再通过操作信号驱动器将缓存单元的数据搬移到NVM芯片。为了读出数据,执行微指令序列将从NVM芯片读出的数据先搬移到缓存单元,再搬移到介质接口控制器外部。
可选地,缓存单元与通道关联。例如,缓存单元810专用于通道820,而缓存单元812专用于通道825。从而,为了将SLC NVM芯片844的数据复制到TLC NVM芯片846,使用关联于通道825的缓存单元812来临时存储要复制的数据。
依然可选地,缓存单元在通道之间分配。从而,在位于不同通道的NVM芯片之间复制数据也得以通过介质接口控制器的缓存单元进行。
依然可选地,提供给介质接口控制器的介质接口命令指示复制操作,复制操作指示要读取的NVM芯片的物理地址与要编程的NVM芯片的物理地址。用于介质接口命令处理的微指令序列(也参看图4A和图4B)识别指示复制操作的介质接口命令,并先后调用用于向NVM芯片发出读命令的微指令序列与用于向NVM芯片发出写命令的微指令序列,前后两个微指令序列使用同一个缓存单元中转要复制的数据。
图9A展示了根据本申请依然再一实施例的介质接口控制器的框图。
图9A的例子中,同一通道内,SLC NVM芯片被用作MLC NVM芯片的写缓存,而仅TLCNVM芯片被用来提供存储设备的物理地址空间。作为举例,SLC NVM芯片940 与944容量为16GB,MLC NVM芯片942与946容量为128GB。虽然通道940与通道 945合计耦合了容量为288GB的NVM芯片,但存储介质管理单元(也参看图2)使用的物理地址空间大小为256GB(由MLC NVM芯片942与946提供),从而存储介质管理单元无需关心SLC NVM芯片的内部结构与其存储资源的分配。
根据图9A的实施例,存储命令处理单元提供给介质接口控制器的介质接口命令指示要写入的数据属性,介质接口控制器根据数据属性与SLC NVM芯片的可用空间确定将介质接口指示的数据写入SLC NVM芯片还是MLC NVM芯片。
作为举例,介质接口命令指示编程操作并且要写入的数据是热数据(要被频繁更新的数据)或需要低处理延迟的数据,介质接口命令还指示了要写入的物理地址是MLC NVM芯片942的物理块2(也记为M2,其中M指示MLC NVM芯片)。用于介质接口命令处理的微指令序列(也参看图4A和图4B)为该介质接口命令从SLC NVM芯片940 分配可用的物理块(例如,物理块0,也记为S0,其中S指示SLC NVM芯片),并调用向SLC NVM芯片发出编程命令的微指令序列,将数据写入物理块S0。可选地,该微指令序列还通过对应类型的NVM配置寄存器组进行诸如物理页地址的变化,以向SLC NVM芯片940发出编程命令。
响应于为物理块M2从SLC NVM芯片940分配了可用的物理块S0,用于介质接口命令处理的微指令序列还在块映射表中记录物理块T2与物理块S0的关联关系。根据图 9A的实施例,介质接口控制器为每个通道提供块映射表,其中的条目相关联地记录了 MLC NVM芯片的物理块与作为其缓存的SLC NVM芯片的物理块。可以理解地,每个 MLC NVM芯片的物理块可能对应于多个SLC NVM芯片的物理块;以及NVM配置寄存器组的地址格式配置寄存器记录了从MLC NVM芯片的物理页到SLC NVM芯片的物理页的映射方式。
图9A的例子中,块映射表的条目提供物理块级别的映射。NVM芯片中物理块的数量相对较小(同物理页数量相比),因而块映射表的整体尺寸不会很大,可由介质接口控制器容纳。而存储介质管理单元(也参看图2)维护页级别的映射,例如,为逻辑地址空间的每个4KB大小的区段记录对应的物理地址,对于大容量存储设备,页级别的映射需要占用大容量的存储器空间。
返回参看图9A,响应于又收到介质接口命令(记为MI-1),其指示向MLC NVM芯片942的物理块2(M2)写入数据。无论该介质接口命令是否指示了热数据或需要低处理延迟的数据,用于介质接口命令处理的微指令序列(也参看图4A和图4B)通过块映射表识别出物理块M2被映射到SLC NVM芯片940的物理块0(S0),其调用向SLC NVM 芯片发出编程命令的微指令序列,将数据写入物理块S0。
可选地或进一步地,响应于又收到介质接口命令(记为MI-2),其指示从MLC NVM芯片942的物理块2(M2)读取数据。用于介质接口命令处理的微指令序列(也参看图 4A和图4B)通过块映射表识别出物理块M2被映射到SLC NVM芯片940的物理块0(S0),其调用用于向SLC NVM芯片发出读命令的微指令序列,从物理块S0读出数据来响应介质接口命令(MI-2)。可以理解地,执行用于向SLC NVM芯片发出读命令的微指令序列过程中,通过NVM配置寄存器组将介质接口命令(MI-2)指示的物理地址变换为用于SLC NVM芯片的物理地址。
进一步地,存储介质管理单元(也参看图2)响应于介质接口命令(为MI-1)的处理,在页级别的映射表中记录所使用的物理地址依然是来自MLC NVM芯片942的物理块2的地址,而不是SLC NVM芯片940的地址。根据图9A的实施例,各通道的SLC NVM 芯片作为同一通道的MLC NVM芯片的缓存,存储介质管理单元在页级别映射表中仅使用MLC NVM芯片的物理地址,而不使用SLC NVM芯片的物理地址,即可认为SLC NVM 芯片对存储介质管理单元不可见。
依然可选地,由于块大小不一致,SLC NVM芯片940的块0与块1(记为S0与S1),被共同映射给MLC NVM芯片942的块2(M2),其中块S0与S1合计的容量不小于块 M2的容量。响应于块S0与S1被写满,介质接口控制器还将块S0与S1的数据复制到块M2,例如通过结合图8的实施例展示的复制数据的方式。例如,介质接口控制器的微指令存储器还存储用于管理缓存的微指令序列。响应于被映射给MLC NVM芯片的物理块的SLC NVM芯片的多个物理块被写满,响应于SLC NVM芯片被写满(没有可用的物理块,且已被使用的物理块都被写满),周期性地,或者通道940空闲时,执行用于管理缓存的微指令序列或者调用用于复制操作的微指令序列来实施从SLC NVM芯片940 到MLC NVM芯片942的复制。在复制完成后,擦除已被复制的SLC NVM芯片的一个或多个物理块,以及还更新块映射表,将已被复制的SLC NVM芯片的物理块从块映射表中删除。由于从块映射表中被删除,接下来,若接收到指示读操作的介质接口命令,用于介质接口命令处理的微指令序列查询块映射表后,将识别出要读取的数据被记录在 MLC NVM芯片而非SLC NVM芯片中,因而调用向MLC NVM芯片发出读命令的微指令序列。以及可选地,用于介质接口命令处理的微指令序列还设置所调用的微指令序列的类型标记字段,以指示要访问的NVM芯片的类型。
图9B展示了根据本申请依然又一实施例的介质接口控制器的框图。
图9B的例子中,存储介质管理单元知晓SLC NVM芯片的内部结构与其存储资源的分配。从而,SLC NVM芯片的物理地址会存在于由存储介质管理单元维护的页级映射表中。可选地,页级映射表还标记了各物理地址的NVM芯片类型或特征(例如,该物理地址由MLCNVM芯片提供或者由SLC NVM芯片提供)。参看图9B,展示了存储介质管理单元管理的物理地址空间。物理地址空间范围从物理地址P0到物理地址Pn。物理地址P0-Pm由SLC NVM芯片提供,而物理地址Pm+1到Pn由MLC NVM芯片提供。图 9B中,物理地址空间表格的第二列指示该行的物理地址由哪个物理块提供。
继而,存储命令处理单元提供给介质接口控制器的介质接口命令指示了物理地址。用于介质接口命令处理的微指令序列(也参看图4A和图4B)根据介质接口命令指示的物理地址,调用对应的微指令序列向NVM芯片发出存储介质访问命令。而无需介质接口控制器维护SLC NVM芯片与MLC NVM芯片的物理块之间的映射。
图10展示了根据本申请另一实施例的介质接口控制器的框图。
介质接口控制器包括微指令存储器、微指令执行单元、信号驱动器、调度器、状态寄存器。将由微指令执行单元执行的微指令序列连同其状态数据称为线程。调度器与状态寄存器、微指令存储器以及微指令执行单元耦合,微指令执行单元与信号驱动器耦合。本实施例中线程同例如NVM芯片的LUN一一对应。每个线程用于处理访问一个LUN 的存储介质访问命令。对于指示复制操作的介质接口命令,其访问两个不同的LUN,并且这两个LUN所属的NVM芯片可能具有不同的类型。根据本申请的实施例,由单一线程处理指示复制操作的介质接口命令。状态寄存器存储一个或多个线程的状态数据。线程还拥有缓存单元。
正在运行的线程拥有介质接口控制器的控制权。线程通过执行让步(yield)微指令使自身让步。线程让步时,其状态数据被记录在状态寄存器。以及作为响应,如图10所示,调度器从一个或多个线程中选择线程之一由微指令执行单元执行(将这一过程称为调度,或调度线程)。被调度的线程从状态寄存器获取其状态数据。例如,根据要处理访问某LUN的介质接口命令,调度器调度同该LUN对应的线程,从而该线程在执行中处理该介质接口命令。依然作为举例,线程A让步时,其正在处理介质接口命令C,但尚未处理完成。调度器再次调度线程A时,依据获取的状态信息,线程A得以从发生让步的位置继续处理介质接口命令C。
参看图10,介质接口控制器包括通道(1020与1025)。通道1020耦合SLC NVM芯片1040与TLC NVM芯片1042。SLC NVM芯片1040包括两个LUN(分别记为LUN(B) 与LUN(C))。SLCNVM芯片1042包括两个LUN(分别记为LUN(A)与LUN(C))。作为举例,介质接口控制器中运行着3个线程(分别记为线程A、线程B与线程C),各自在使用缓存单元(分别记为缓存单元A、缓存单元B与缓存单元C)。线程A在访问LUN(A),线程B在访问LUN(B),而线程C在从SLC NVM芯片1040的LUN(C)复制数据到TLC NVM芯片1042的LUN(C)。
执行线程C的微指令序列,通过信号驱动器向SLC NVM芯片1040的LUN(C)发出读命令,将读出的数据搬移到缓存单元C,再通过信号驱动器向TLC NVM芯片1042的 LUN(C)发出编程命令,将缓存单元C的数据写入TLC NVM芯片1042的LUN(C)。在这一过程中,线程C可以让步。通过为处理复制命令而使用单一的线程来访问两个LUN,使得线程C让步期间,其缓存单元C依然为线程C所有,不会被其他线程使用,以确保其复制的数据不会被破坏。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种控制部件,其特征在于,包括用于耦合多个NVM芯片的介质接口控制器;
所述介质接口控制器通过多个通道耦合所述多个NVM芯片;
所述多个通道中的第一通道耦合多个NVM芯片;
所述多个NVM芯片的第一NVM芯片具有第一类型,所述多个NVM芯片的第二NVM芯片具有第二类型;
其中,所述第一类型不同于所述第二类型。
2.根据权利要求1所述的控制部件,其特征在于,
所述第一类型是SLC类型,所述第二类型是TLC类型。
3.根据权利要求1或2所述的控制部件,其特征在于,
所述多个通道中的第二通道耦合第二多个NVM芯片;
所述第二多个NVM芯片的第三NVM芯片具有第三类型,所述第二多个NVM芯片的第四NVM芯片具有第四类型;
其中,所述第三类型不同于所述第四类型。
4.根据权利要求1所述的控制部件,其特征在于,
所述介质接口控制器包括信号驱动器,通过所述信号驱动器向所述多个通道提供信号。
5.根据权利要求4所述的控制部件,其特征在于,
所述介质接口控制器还包括多个NVM配置寄存器组,每个NVM配置寄存器组包括存储NVM芯片的特征的多个寄存器。
6.根据权利要求5所述的控制部件,其特征在于,
NVM配置寄存器组包括时间约束配置寄存器、地址格式配置寄存器、数据长度配置寄存器和/或命令格式配置寄存器。
7.根据权利要求5或6所述的控制部件,其特征在于,
根据要访问的NVM芯片的类型,从对应的NVM配置寄存器组获取要访问的NVM芯片的类型的特征;
所述信号驱动器根据所获取的特征通过通道向所述要访问的NVM芯片提供信号。
8.根据权利要求7所述的控制部件,其特征在于,
所述介质接口控制器还包括多个缓存单元;
从所述第一NVM芯片读出的数据被存储在所述多个缓存单元中的第一缓存单元;要向所述第二NVM芯片写入的数据也被存储在所述第一缓存单元。
9.根据权利要求8所述的控制部件,其特征在于,
所述第一NVM芯片作为所述第二NVM芯片的缓存。
10.一种存储设备,包括控制部件与多个NVM芯片;其特征在于,所述控制部件是根据权利要求1-9之一所述的控制部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022129205.3U CN213338708U (zh) | 2020-09-24 | 2020-09-24 | 一种控制部件及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022129205.3U CN213338708U (zh) | 2020-09-24 | 2020-09-24 | 一种控制部件及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN213338708U true CN213338708U (zh) | 2021-06-01 |
Family
ID=76067194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202022129205.3U Active CN213338708U (zh) | 2020-09-24 | 2020-09-24 | 一种控制部件及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN213338708U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023025299A1 (zh) * | 2021-08-27 | 2023-03-02 | 北京希姆计算科技有限公司 | 数据帧格式、芯片通信方法及芯片 |
-
2020
- 2020-09-24 CN CN202022129205.3U patent/CN213338708U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023025299A1 (zh) * | 2021-08-27 | 2023-03-02 | 北京希姆计算科技有限公司 | 数据帧格式、芯片通信方法及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2682814C (en) | Storage device and host apparatus | |
CN109582599B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
US11630766B2 (en) | Memory system and operating method thereof | |
KR100610647B1 (ko) | 직접실행제어 기능과 스토리지 기능이 복합된 대용량저장장치 | |
US9396141B2 (en) | Memory system and information processing device by which data is written and read in response to commands from a host | |
TW202018514A (zh) | 快閃記憶體的命名空間操作裝置及電腦程式產品 | |
CN108628543B (zh) | 垃圾回收方法以及使用该方法的装置 | |
CN108958642B (zh) | 存储器***及其操作方法 | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
US11861202B2 (en) | Memory system | |
WO2018024214A1 (zh) | Io流调节方法与装置 | |
KR102645983B1 (ko) | 오픈 채널 벡터 커맨드 실행 | |
CN109697017B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN114253462A (zh) | 提供混合通道存储设备的方法 | |
CN114253461A (zh) | 混合通道存储设备 | |
CN113744783A (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
US11341043B2 (en) | Storage device configured to perform an alignment operation and storage system including the same | |
US20130339583A1 (en) | Systems and methods for transferring data out of order in next generation solid state drive controllers | |
CN213338708U (zh) | 一种控制部件及存储设备 | |
CN108877862B (zh) | 页条带的数据组织以及向页条带写入数据的方法与装置 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
CN117950585A (zh) | 利用虚拟lun管理多平面nvm芯片方法 | |
CN117631961A (zh) | 数据储存装置、以及非挥发式存储器控制方法 | |
CN116149540A (zh) | 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |