芯片使能的虚拟化的制作方法

文档序号:6352034阅读:221来源:国知局
专利名称:芯片使能的虚拟化的制作方法
芯片使能的虚拟化
背景技术
各种类型的存储器设计为存储器中的大部分为可擦除和可编程的,并且通常将其称之为闪存(flash memory)。这样的存储器设备在其操作寿命期间可以承受有限数量的擦除循环。闪存能够承受并继续可靠地操作的擦除循环的数量可表示为存储器设备的耐久性(endurance) 0通常,目前闪存设备的给定存储器单元在其不能可靠地操作之前,可擦除的次数在10,000到100,000之间。存储器设备的耐久性可取决于用于制造该设备的半导体工艺以及存储器设备的架构。在各种常规电子设备中闪存是常见的。当超出了闪存的耐久性时,闪存和/或包含该闪存的电子设备的性能会受到不利的影响,或者其甚至可停止操作。因此,存在对诸如闪存的存储器设备的耐久性进行改进的持续需要。此外,闪存设备有各种几何结构和大小、需要不同的ECC保护、使用不同的协议、 操作在单数据速率(SDR)和/或双倍数据速率(DDR)模式。因此,存在对控制器接口进行改进以与不同的闪存设备进行协作的持续需要。

发明内容
本技术的实施例针对芯片使能技术的虚拟化。在一个实施例中,芯片使能虚拟化的方法包括接收包括逻辑地址的存储器访问请求。利用虚拟芯片使能数据结构将逻辑地址中的虚拟芯片使能号码(enable number)转换为物理芯片使能。还从虚拟芯片使能数据结构中确定一个或多个操作参数。然后将虚拟地址转译为物理地址。之后,可使用物理芯片使能来使能可适用的存储器设备,并且可将存储器访问请求路由至可适用的存储器设备,在其上使用可适用的操作参数运行该存储器访问请求。在另一个实施例中,设备包括多个块可编程存储器设备和存储器控制器。存储器控制器包括存储多个虚拟芯片使能条目的虚拟芯片使能缓存,其中每个条目均包括虚拟芯片使能号码、设备标识符和对应的块可编程存储器设备的操作参数。


本技术的实施例通过示例方式而非限制性的方式在附图的图中示出,其中相似的参考数字指的是类似的元素并且其中图I示出根据本技术一个实施例的,示范性块可编程存储器设备的框图。图2示出根据本技术一个实施例的,示范性电子设备的框图。图3A和3B示出根据本技术一个实施例的,芯片使能虚拟化的方法的流程图。
具体实施例方式现在将详细地参考本技术的实施例,其示例示意在附图中。虽然本技术结合这些实施例进行描述,应该理解为并非意图将本发明限于这些实施例。相反,本发明意图覆盖包括在由所附权利要求所限定的本发明范围内的替代、修改和等同物。此外,在本技术的以下详细描述中,为提供对本技术的彻底理解将阐述大量的具体细节。然而,可以理解,在没有这些具体细节的情况下,也可实践本技术。在其他实例中,并未详细描述众所周知的方法、过程、组件和电路以避免对本技术的多个方面造成不必要的混淆。参考图1,示出根据本技术一个实施例的示范性的块可编程存储器设备。示范性存储器设备230可以是闪存设备或类似设备。块可编程存储器设备包括大量排列成阵列的存储器单元。可以将存储器单元的阵列排列于一个或多个逻辑单元(LUN)IlO中。每个LUN 110均包括存储器单元的交织的物理块120的集合。每个物理块120均包括多个页面130 (例如,指定数目的存储单元)。在一种实现方案中,物理块120可包括2的幂次方的页面(例如,32的倍数个页面)。存储器单元的页面130可包括2的幂次方的存储器单元(例如,存储8的倍数个比特)。页面大小可以从2千字节到512兆字节或者更大,并且典型地为4千字节至64千字节。每个存储器单元典型地存储一个或多个比特。例如,单层单元(single-level cell, SLC)存储一个比特的数据,而多层单元(multiple-level cell,MLC)可存储两个或更多个比特的数据。 闪存这样的电路和存储器单元架构使得新的数据写到闪存230的已擦除的物理块120。通常,如果数据将被写到已经包含数据的物理块120,那么该物理块120必须在新的数据被编程之前被擦除。如果直接从软件对闪存230的块120进行访问和写入,则非统一的地址模式可导致跨存储器230的多个物理块120的不规则数量的擦除。例如,如果在一个地址的存储器被持续地写,那么擦除的数量将最终超出给定物理块120的耐久性限度。超出块120的耐久性限度将缩短闪存设备230的操作寿命。现参考图2,示出根据本技术一个实施例的示范性电子设备。电子设备210可以是计算机、笔记本计算机、蜂窝电话、智能电话、便携式音乐播放器(例如,MP3播放器)、个人数字助理、上网本计算机、电子书、游戏控制台、便携式游戏机、机顶盒、卫星接收器、导航系统、数字录像机(例如,DVR)、服务器计算机和/或等等。电子设备210包括一个或多个处理单元220、系统存储器230、存储器控制器240和多个块可编程存储器设备250,通过一个或多个通信总线260通信耦合。电子设备210还可包括其他电路,诸如输入/输出设备270等等。在一个实现方案中,多个块可编程存储器设备250可以是闪存设备。闪存设备可以是开放式NAND闪存接口(ONFI)兼容设备。在一个实现方案中,存储器控制器240可以使能对系统存储器230、块可编程存储器设备250以及电子设备210的其他存储器设备的访问。在另一个实现方案中,电子设备210可以包括多个存储器控制器,其中存储器控制器中的一个为专用的块可编程存储器控制器240。一个或多个块可编程存储器设备250可以位于电子设备210的内部或外部。存储器控制器240可以是电子设备210的一个或多个其他电路的一部分,或者可以是一个分立设备。例如,存储器控制器可以是一个或多个存储器设备、一个或多个处理器、一个或多个其他电路(例如,北桥芯片、图形处理单元)的一部分和/或可以是单独的专用控制器。一个或多个块可编程存储器设备250可以具有不同的操作参数。例如,闪存设备可以具有不同的存储容量(例如,页面、块、空余(spare)块)、具有不同的计时需求、使用不同的协议、需要不同的错误校正码(error correcting code,ECC)保护、操作在单数据速率(SDR)或双倍数据速率(DDR)模式,可以是单层单元(SLC)或多层单元(MLC)设备和/或诸如此类。相同的电子设备210,有时候可以采用一种或多种类型的块可编程存储器设备250加以制造,而在另一个时间可以采用用一种或多种不同类型的块可编程存储器设备加以制造。存储器控制器240也可以被利用在具有相同或不同的块可编程存储器设备的其他电子设备中。虽然这里参考块可编程存储器设备以及更具体地参考闪存设备对本技术的实施例进行描述,然而本技术的实施例也可采用任意其他集成电路(IC)存储器设备实践。本技术的实施例可以与多个集成电路存储器设备一起使用,其中存储器设备可以具有非均匀操作参数。存储器控制器240可以通过一种或多种方式实施,诸如硬件、固件和/或计算设备可读指令(例如,软件)以及处理单元(例如,微控制器),其中计算设备可读指令当由处理单元运行时,使得处理单元执行包括芯片使能(chip enable,CE)虚拟化的一个或多个进程。在一个实现方案中,存储器控制器240是非易失性存储器主机控制器接口(NVMCHI)。存储器控制器240实施芯片使能的虚拟化以支持对多个块可编程存储器设备250的抽象,所述多个块可编程存储器设备250可以是彼此相同的或不同的。存储器控制器240 执行对虚拟芯片使能(CE)而非对物理芯片使能的操作。虚拟芯片使能(VCE)可在VCE数据结构280中指定,该VCE数据结构280由存储器控制器240在最初的发现过程之后编程。每个VCE条目均可包括VCE号码(例如,标签)、设备标识符和块可编程存储器设备的一个或多个操作参数。设备标识符可识别物理的或逻辑的设备,或者设备的物理的或逻辑的分区。例如,可解码设备标识符以选择设备的物理芯片使能(CD)引脚来选择设备内的逻辑单元(LUN)和/或诸如此类。给定的VCE可覆盖多个物理存储器设备。另外,两个VCE可覆盖单个物理存储器设备。因此,虚拟芯片使能可以与一个或多个块可编程存储器设备的一个或多个逻辑或物理分区相关联。块可编程存储器设备250的操作参数可包括关于引脚映射、几何结构(例如,页面大小、扇区(sector)大小、逻辑单元的数量、每逻辑单元中块的数量、每块中页面的数量等等)、ECC保护的级别、协议使用和/或诸如此类的信息。在一个实现方案中,存储器控制器的固件操作虚拟芯片使能(VCE)作为逻辑目标,而存储器控制器的硬件强制执行正确的路由和功能。诸如非易失性存储器主机接口控制器(NVMHCI)的存储器控制器可向给操作系统
(OS)呈现端口的概念以呈现单个存储实体。因此,芯片使能的虚拟化有利地允许将非均匀块可编程存储器设备分组到单个NVMHCI端口中。在示范性实现方案中,电子设备在同一个闪存裸片(die)上既可以包括多层单元(MLC)也可以包括单层单元(SLC)。闪存的类型由地址确定。然而,损耗均衡算法典型地对全部芯片使能(CE)或逻辑单元(LUN)进行操作。芯片使能的虚拟化允许损耗均衡算法跨多个非均匀块可编程存储器设备得以应用。芯片使能的虚拟化允许对同一级别的抽象层进行维护,而不管闪存设备物理上是如何分区的。在芯片使能虚拟化技术中,当呈现给存储器控制器时,可以将单个物理芯片使能分裂为分开的完全独立的虚拟芯片使能。存储器控制器利用虚拟芯片使能数据结构以应用正确的ECC、大小操作等等来访问多层单元和单层单元分区,而无需操作系统必须知道闪存设备的相应参数。在另一个实现方案中,芯片使能的虚拟化重映射向存储器控制器提供了对多于所具有的硬件资源的芯片使能进行管理的方式。现在参考图3A和3B,示出根据本技术的一个实施例的芯片使能虚拟化的方法。该方法可体现在计算设备可读指令中,所述计算设备可读指令存储在一个或多个计算设备可读介质(例如,存储器)上,如果由处理单元所运行,则执行包括芯片使能(CE)虚拟化的一个或多个进程。该方法也可在硬件和/或固件中实施。该方法包括设置阶段和存储器访问阶段。在设置阶段中,在305,发现多个块可编程存储器设备的每一者。在一个实现方案中,电子设备的存储器控制器发现电子设备的多个块可编程存储器设备的每一者。在310,为每个所发现的块可编程存储器设备确定操作参数。在一个实现方案中,存储器控制器确定每个块可编程存储器设备的操作参数。块可编程存储器设备的操作参数可包括关于引脚映射、页面大小、扇区大小、逻辑单元数量、每逻辑单元中块的数量、每块中页面的数量、ECC保护的级别、协议使用和/或诸如此类的信息。在315,建立虚拟芯片使能(VCE)数据结构。在一个实现方案中,存储器控制器建立虚拟芯片使能(VCE)数据结构。虚拟芯片使能(VCE)数据结构包括用于一个或多个所发现的块可编程存储器设备的一个或多个虚拟芯片使能(VCE)条目。每个虚拟芯片使能(VCE)条目均可包括VCE号码(例如,标签)、设备标识符、和相应的块可编程存储器设备的一个或多个操作参数。设备标识符可识别物理或逻辑设备,或者设备的物理或逻辑分区。设置阶段完成之后,存储器控制器可操作在存储器访问阶段。在存储器访问阶段 中,在320,接收包括逻辑地址的存储器访问请求。存储器访问请求可由存储器控制器从运行在电子设备上的应用程序或操作系统所接收。在325,将逻辑地址中的VCE号码转换为一个或多个闪存设备的设备标识符,并且使用虚拟芯片使能数据结构来确定用于相应的物理存储器设备的可适用的操作参数。在一个实现方案中,闪存控制器使用虚拟芯片使能数据结构将VCE号码转换为芯片使能并确定可适用的操作参数。在330,将逻辑地址转译为物理地址。可以使用给定的损耗均衡算法来将逻辑地址转译为跨一个或多个物理或逻辑设备的物理地址。在一个实现方案中,存储器控制器还利用页面表、转译后备缓冲区和/或诸如此类来将逻辑地址转译为物理地址。在335,使用物理芯片使能来使能可适用的块可编程存储器设备,将存储器访问命令路由至可适用的存储器设备,并且之后该可适用的存储器设备使用可适用的操作参数运行存储器访问请求。在一个实现方案中,存储器控制器使用设备标识符来使能可适用的块可编程存储器设备,路由存储器访问命令至可适用的存储器设备,并且使可适用的存储器设备使用可适用的操作参数运行存储器访问请求。虚拟芯片使能是这样的构造,其有利地包括对应于用于存储器控制器的唯一目标的属性。可以利用这些属性以访问相应的存储器设备、实施损耗均衡算法、为非易失性存储器主机控制接口(NVMHCI)的操作做好准备等等。这些实施例有利地允许以不同速率、协议标准和/或诸如此类运行的块可编程存储器设备在系统上混合和匹配。上述对本技术的具体实施例的描述出于示例和描述的目的加以呈现。它们并不意图穷尽或限制本发明至所公开的精确形式,并且明显地,根据上述教导,很多修改和变化都是可能的。为了最佳地解释本技术的原理和其实际应用,对这些实施例加以选择和描述,从而使本领域的其他技术人员最好地利用本技术和具有适应预期的特定用于的各种修改的各种实施例。意图由所附权利要求和它们的等同物来定义本发明的范围。
权利要求
1.一种或多种其上存储有指令的计算设备可读介质,如果由一个或多个处理单元所运行,则所述指令执行一种方法,包括 接收包括逻辑地址的存储器访问请求; 利用虚拟芯片使能数据结构将虚拟芯片使能号码从所述逻辑地址转换为设备标识符并确定一个或多个操作参数; 将虚拟地址转译为物理地址;以及 使用所述设备标识符来使能可适用的存储器设备,路由所述存储器访问请求至所述可适用的存储器设备,并使所述可适用的存储器设备使用可适用的操作参数来运行所述存储器访问请求。
2.根据权利要求I所述的一种或多种计算设备可读介质,进一步包括使用损耗均衡算法来将所述虚拟地址转译为物理地址。
3.根据权利要求I所述的一种或多种计算设备可读介质,进一步包括 发现多个存储器设备的每一者; 确定每个所发现的存储器设备的操作参数;以及 建立所述虚拟芯片使能数据结构,所述虚拟芯片使能数据结构将一个或多个虚拟芯片使能号码映射至一个或多个所发现的存储器设备和相应存储器设备的所述操作参数。
4.根据权利要求3所述的一种或多种计算设备可读介质,其中所述虚拟芯片使能数据结构包括多个虚拟芯片使能条目,每个虚拟芯片使能条目均包括虚拟芯片使能号码、设备标识符和所述相应存储器设备的操作参数。
5.根据权利要求3所述的一种或多种计算设备可读介质,其中给定的虚拟芯片使能覆盖多个物理存储器设备。
6.根据权利要求3所述的一种或多种计算设备可读介质,其中给定的多个虚拟芯片使能覆盖单个物理存储器设备。
7.—种设备,包括 多个块可编程存储器设备;以及 通信地耦合至所述多个块可编程存储器设备的存储器控制器,其包括存储多个虚拟芯片使能条目的虚拟芯片使能缓存,其中每个条目均包括虚拟芯片使能号码、设备标识符和相应存储器设备的操作参数。
8.根据权利要求7所述的设备,其中给定的虚拟芯片使能覆盖多个物理或逻辑存储器设备。
9.根据权利要求7所述的设备,其中给定的多个虚拟芯片使能覆盖单个物理或逻辑存储器设备。
10.根据权利要求7所述的设备,其中所述存储器控制器包括非易失性存储器主机接口控制器(NVMHCI)。
11.根据权利要求7所述的设备,其中所述多个块可编程存储器设备包括闪存设备。
12.根据权利要求7所述的设备,其中所述多个块可编程存储器设备包括开放NAND闪存接口(ONFI)存储器设备。
13.根据权利要求7所述的设备,其中所述块可编程存储器设备中至少两个的所述操作参数是非均匀的。
14.一种设备,包括: 用于发现多个存储器设备的每一者的装置; 用于确定每个所发现的存储器设备的操作参数的装置;以及 用于建立虚拟芯片使能数据结构的装置,所述虚拟芯片使能数据结构将一个或多个虚拟芯片使能号码映射至 一个或多个所发现的存储器设备和相应存储器设备的所述操作参数。
15.根据权利要求14所述的设备,其中所述芯片使能数据结构将多个虚拟芯片使能号码的每一者关联至一个或多个物理设备标识符和所述相应存储器设备的操作参数。
16.根据权利要求14所述的设备,进一步包括 用于接收包括逻辑地址的存储器访问请求的装置; 用于利用虚拟芯片使能数据结构将虚拟芯片使能号码从所述逻辑地址转换为物理芯片使能并确定一个或多个操作参数的装置; 用于将虚拟地址转译为物理地址的装置;以及 用于使用所述物理芯片使能来使能可适用的存储器设备,路由所述存储器访问请求至所述可适用的存储器设备,并使所述可适用的存储器设备使用可适用的操作参数来运行所述存储器访问请求的装置。
17.根据权利要求14所述的设备,其中所述操作参数包括从由以下各项所构成的组中所选择的一项或多项页面参数、块参数、扇区参数、逻辑单元参数、空余块参数、坏块参数、计时参数、协议参数、错误校正代码参数、数据速率参数、编程级别参数、引脚映射参数、几何结构参数和分区参数。
18.根据权利要求14所述的设备,其中所述用于将虚拟地址转译为物理地址的装置进一步包括用于根据损耗均衡算法将所述虚拟地址转译为物理地址的装置。
19.根据权利要求14所述的设备,进一步包括用于将两个或更多块可编程存储器设备分组到端口中的装置。
20.根据权利要求14所述的设备,进一步包括用于对多于所具有的物理块可编程存储器设备的块可编程存储器设备芯片使能进行管理的装置。
全文摘要
虚拟芯片使能技术执行对虚拟芯片使能而非对物理芯片使能的存储器访问操作。每个虚拟芯片使能是这样的构造,其包括对应于唯一的物理或逻辑存储器设备的属性。
文档编号G06F12/10GK102782660SQ201080065040
公开日2012年11月14日 申请日期2010年11月23日 优先权日2009年12月31日
发明者保罗·J·久吉, 尼尔·迈宁格, 迪米特里·卫士茨基, 霍华德·蔡 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1