固态驱动器体系结构的制作方法_4

文档序号:9383163阅读:来源:国知局
的数据。在一些情况下,DRAM逻辑闪存的量可以被增加以容纳该映射到分离的片段/区域中。
[0077]例如,非逻辑记录区域可以存储快照数据或快速加载数据。非逻辑记录区域中的数据可以或可以不被加载到闪存中。例如,如果存储器的非逻辑记录区域含有4个快照,其能够被用来恢复计算装置的状态,则仅一个或两个的最近快照可以在掉电时实际被保存到闪存。其它更早的快照被简单地丢弃。
[0078]在另一个示例中,快速加载程序可以被加载到易失性存储器的非逻辑记录区域中。这些快速加载程序是可执行文件,该可执行文件典型地在正常操作期间被修改并且不被写回到闪存存储器。存在用于更新程序的备选逻辑路径。该备选逻辑路径允许软件程序师更新软件。约束和协议可以约束除了软件分发者以外的任何人访问授权的软件程序师访问该区域。这是因为存在针对不被公开给任何未授权的个人或团体的这些区域的特定命令。
[0079]为了保护软件的拷贝,操作系统可以不允许加载到快速加载的代码拷贝到系统中的用户端口或任何其它端口。快速加载大体上是针对用户的只读功能。这防止用户对程序的修改和分配。如上面讨论的,可以存在协议中的分离命令,其仅可用于软件发行人(或其它授权的用户),使得仅他们能够更新软件。
[0080]在其它示例中,可以存在多个分离的存储器控制器。在一个实施方式中,可以存在用于被包含在存储器装置中的标准易失性存储器的一个控制器和用于DRAM逻辑闪存的一个控制器。进一步,标准易失性存储器可以被保护,并且对于用户和或计算装置而言不直接可寻址或可访问。在一些实例中,标准易失性可以具有特殊约束或使用。在一些实施例中,存储器可以看来是系统易失性存储器的扩展。
[0081]将文件写入到固态驱动器
在日常操作期间,CPU使用相同的协议将文件写入到SSD,它将会使用该协议将数据写入到典型的硬驱动器。例如,CPU可以使用以下技术:使用逻辑记录写入和读取到SSD。SSD驱动器的内部操作独立于CPU操作,并且向CPU隐藏。如上面讨论的,SSD驱动器接受来自CPU的数据,但是以克服NAND闪存存储器的速度和寿命限制的独特方式来内部地管理和存储数据。然而,SSD驱动器控制SSD驱动器与CPU之间的接口,使得它完全在CPU看来它正在写入到硬驱动器或日常闪存驱动器。因此,SSD是能够被用在任何各种计算装置中的即插即用存储器存储装置,并且明显地提供较高的数据传送速率、长的寿命、以及低的功耗。
[0082]图5A是示出经过SSD体系结构的允许极其快速的数据传送速率的说明性数据流的图示。数据经过系统总线通过CPU操作来初始地传送。例如,系统总线可以是SATA总线。数据使用DMA过程从系统总线传送到DRAM逻辑闪存。如上面讨论的,DRAM逻辑闪存存储用于以后由CPU取回的数据。CPU仅知道DRAM逻辑闪存,该DRAM逻辑闪存看来是具有闪存存储器的存储容量的极其快速的非易失性固态存储器。
[0083]如果主控制器确定它是适当的,则主控制器决定从DRAM逻辑闪存中将数据写入到闪存存储器。可以在SSD内存在任何数目的闪存存储器模块。例如,SSD体系结构可以包含八个闪存存储器模块。出于说明的目的,图5A仅示出那些装置中的四个。如上面关于图3讨论的,每个闪存存储器装置包含具有缓冲器的存储器控制器和许多闪存存储器管芯。例如,每个闪存存储器控制器可以控制到四个、八个、或十六个分离管芯的分布。在许多闪存存储器控制器当中的数据分布提供许多益处,包含同时写入到多个闪存管芯。这补偿在闪存存储器的当前实施方式中固有的相对慢的写入时间。主控制器和各种闪存存储器控制器的独立性允许具有最小等待时间的并行数据传送。为了能够实现并行写入和并行读取操作,文件跨各种闪存存储器管芯而被分带。在图5A中,这被图解为每个闪存存储器管芯中的编号的框。当文件被写入时,主控制器顺序地寻址个别闪存存储器控制器,其进而顺序地寻址它们控制的闪存管芯。这导致文件跨管芯分布并且文件的各种部分被同时写入到不同闪存管芯。当文件从闪存管芯被取回时,它能够从管芯并行地来读取。这在图6A中示出。
[0084]用于将文件写入到SSD的说明性方法被示出在图5B中。在第一步骤中,CPU发送写入命令并且放置要被写入到SSD的数据在SATA总线上(步骤505)。写入命令被传送到主控制器,主控制器命令DRAM控制器接受数据并且将它传送到DRAM存储器(步骤510)。DRAM控制器可以被配置成区分命令和其它数据,并且将命令经过分离总线发送到主控制器。该示例,DRAM控制器将写入命令发送到主控制器。当主控制器解释写入命令时,它警告DRAM控制器新的数据正在来临。DRAM控制器寻找命令中的逻辑记录并且搜索其表中的逻辑记录以确定数据是否已经被含在DRAM逻辑闪存中。例如,当前逻辑记录可能是另一个更大文件的部分。DRAM控制器能够通过搜索针对每个文件的开始和结束逻辑记录确定数据已经在DRAM逻辑闪存中。如果当前逻辑记录在针对每个文件的开始和结束逻辑记录之间,则数据当前被存储在DRAM逻辑闪存中并且将被重写。为了允许如上面描述的误处理文件恢复,逻辑记录数据用取代的文件的地址的记法被写入在DRAM逻辑闪存中的新的空间。然而,如果逻辑记录不在DRAM逻辑闪存中并且表示新的数据,则新的记录被创建用于新的逻辑记录并且数据被收集在DRAM逻辑闪存中。当写入完成时,文件分配表(FAT)被更新并且经过SATA接口被CPU发送。在一些操作系统中,每个FAT表项目的存储能够涉及多个、冗余写入周期。如果从SSD请求FAT表,则从DRAM逻辑闪存服务请求。FAT表被存储在DRAM逻辑闪存中并且在掉电时仅被保存到闪存存储器。这能够将数千个擦除/写入周期保存在闪存存储器中。
[0085]逻辑闪存控制器建立SATA DMA并且管理到DRAM逻辑闪存中的数据传送(步骤515)。如上面讨论的,被用在DRAM逻辑闪存中的DRAM存储器是极其快速的随机存取存储器。DMA传送、专用的DRAM控制器、和极其快速的DRAM存储器的组合意味着存储在DRAM逻辑闪存中的数据以典型地被SATA总线限制的速度对于CPU而言容易地并且迅速地可访问。DRAM逻辑闪存被用来存储频繁存取的数据。这使SSD中的闪存存储器装置与过多的写入周期隔离。逻辑闪存控制器按闪存文件来管理DRAM中的数据,包含使用闪存技术来合并和更新数据(步骤520 ) ο这允许DRAM逻辑闪存以与标准闪存存储器相同的方式但以高得多的速度来与SATA总线对接。
[0086]不存在SATA数据与闪存数据之间的时间相关性。闪存存储器和存储在闪存存储器上的数据对于CPU不直接可访问,而被主控制器控制。CPU仅与DRAM逻辑闪存对接,其中命令数据从DRAM逻辑闪存被传送到主控制器。逻辑闪存控制器周期地评价数据的使用,并且确定数据是否应当从DRAM逻辑闪存被写入到NAND闪存存储器(步骤525)。例如,由CPU在使用中的文件可以在用户正在用文件工作的时间期间被规则地保存到SSD驱动器。在用户用完文件之后,文件能够在它被再次访问之前暂停活动数天或数月。存储在DRAM逻辑闪存中的数据在指定的保存点处被写入到NAND闪存存储器。例如,存储在DRAM逻辑闪存中的数据可以当文件被关闭时或者当计算机掉电时被传送到NAND闪存存储器。其它保存点可以发生在DRAM逻辑闪存的容量几乎被消耗完时。在这种情况下,不太频繁保存的文件能够被传送到闪存存储器。
[0087]在主控制器的控制下从DRAM逻辑闪存到NAND闪存存储器的数据传送现在将被描述。当主控制器作出要从DRAM逻辑闪存将数据写入到闪存存储器装置的决定时,它将命令发送到逻辑闪存控制器,其识别要被传送的数据并且警告总线控制器数据传送(步骤530)。主控制器将命令数据放置到内部总线上,其警告/启用闪存控制器使得它们能够接收/取回期望的数据。逻辑闪存控制器设置适当的寄存器值以配置内部总线DMA用于传送,并且由主控制器识别的数据通过总线DMA被放置在高速内部总线上(步骤535)。主控制器(或可替选地可选总线控制器)然后开始传送具有被寻址到个别闪存控制器的特定数据片段的数据(步骤540)。各种技术能够被用来管理经过高速内部总线的数据的传送。在一个实施方式中,被加载到内部总线上的数据包含指示数据序列的开始的标志、指示数据序列的结束的标志、以及识别数据被寻址到的组件的结构。每个闪存控制器监视数据流中的其标识符并且将适当数据片段转向其内部存储。在其它实施方式中,可以存在被连接到每个存储器控制器的分离命令/使能线。当数据旨在用于特定闪存存储器模块时,连接到该存储器控制器的使能线被断言,而针对其它存储器控制器的使能线不被断言。该配置被示出在图3中。
[0088]高速总线操作在时钟上,该时钟确保来往总线的数据传送以每秒400 MB来执行。总线控制器指导数据从DRAM逻辑到闪存存储器装置以每秒300 + MB的全数据速率的传送。在数据传送期间,主控制器在第一 DMA周期期间将数据顺序地指导到第一闪存寄存器,并且然后在第二 DMA周期期间到第二闪存寄存器等等。主控制器将数据跨八个不同闪存控制器顺序地分布(步骤545)。数据以每秒40 MB并行地从闪存控制器中的寄存器中被顺序读出到闪存管芯(步骤550)。被加载的寄存器(闪存存储器缓冲器)使它们的时钟从总线速度切换到闪存速度。八个闪存控制器并行操作(针对每个以每秒40 MB)导致每秒320 MB的总体传送速率。然而,额外的每秒20 MB允许附加的开销数据诸如纠错码(ECC)被写入到闪存存储器中。此外,可以存在许多附加操作(在闪存存储器的维护期间执行的这样的额外写入或读取)。该附加开销使针对八个并行闪存驱动器的40到50 MB传送速率近似等于内部总线上的每秒400 MB的传送速率。
[0089]SSD也可以具有许多附加特征。例如,SSD可以被分割成不同存取和安全级的各种部分。例如,SSD的受保护部分可以被指定用于软件可执行文件。SSD的该受保护部分可以不由用户或由操作系统直接可访问。例如,SSD的受保护部分可以不被逻辑记录数目索引。因此,不存在用户或操作系统访问受保护部分的机制。替代地,受保护部分可以仅可用于软件供应商用于加载新的软件和更新现有的软件。受保护部分能够通过具有特殊命令的不同技术来寻址,该特殊命令特定于该类型的数据。例如,等同于逻辑记录的地址能够被使用但在不同查找表上来索引。
[0090]为了运行含在(一个或多个)受保护部分中的软件,软件能够被传送到第二“只读”部分并且被操作系统访问。该技术优势中的一个是软件可执行文件能够独立于用户正在做的事而被更新。例如,用户可以正在使用Window?操作系统和Microsoft Office?应用程序来编辑文档。在后台中,软件供应商可以正在推出对存储在SSD的受保护部分中的Window?操作系统可执行文件的更新。用户的工作不被中断。在多数的用户情形诸如文档预备或访问互联网中,很少或没有到SSD/来自SSD的通信业务。
[0091]因此,新的数据能够在没有不利地影响闪存驱动器的性能情况下被流传送到SSD的(一个或多个)受保护部分。下一次用户启动系统,新版本的操作系统将从驱动器的受保护部分被加载到“只读”部分中,并且经过DRAM逻辑闪存被传送到CPU。在电源关断或故障时,不存在对尝试保存这些可执行文件的计算系统的需要,因为它们没有被改变并且已经被存储在驱动器的受保护部分上。
[0092]此外或可替代地,可以存在被指定用于存储快照的驱动器的特殊部分。如上面讨论的,快照是时间上给定点处的计算装置的完整状态的记录。快照允许计算装置恢复到那个状态。
[0093]从固态驱动器取回文件
图6A是计算装置中的读取操作的图示。如上面讨论的,CPU经过SATA总线和SATA DMA直接与DRAM逻辑闪存通信以取回数据。当接收读取命令时,主控制器确定数据是否被存储在DRAM逻辑闪存中。如果它是,则数据从DRAM逻辑闪存被发送到CPU。如果它不是,主控制器确定它在闪存存储器模块上被存储在何处并且取回它。在许多实例中,数据可以跨多个闪存存储器模块和每个模块内的多个管芯来分带。因此,数据文件可以通过同时从使用多个独立控制器的多个管芯读取数据来迅速地取回。
[0094]图6B是用于从闪存存储器读取数据的说明性方法(600)的流程图。当需要新的或更新的文件时,CPU经由SATA接口将具有对应于所需数据的逻辑记录数目的读取命令发送到SSD (步骤605)。读取命令被接收在DRAM逻辑闪存中并且被传送到主控制器(步骤610)。例如,DRAM控制器可以被配置成标识命令并且经过特殊高速总线将它们发送到主控制器,从而警告主控制器新的命令已经被接收。主控制器或DRAM控制器确定请求的数据是否被存储在DRAM逻辑闪存中(确定612)。在一些实施方式中,DRAM控制器追踪如读取或写入的所有文件,使得响应于来自CPU或主控制器的请求,它能够将正确数据发送到SATA接口。DRAM控制器寻找命令中的逻辑记录并且在它的表中搜索逻辑记录以确定数据是否已经被含在DRAM逻辑闪存中。如果请求的数据在DRAM逻辑闪存中(“
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1