CN101685382A - 使用第一及第二存储装置的磁盘加速 - Google Patents

使用第一及第二存储装置的磁盘加速 Download PDF

Info

Publication number
CN101685382A
CN101685382A CN200910206622A CN200910206622A CN101685382A CN 101685382 A CN101685382 A CN 101685382A CN 200910206622 A CN200910206622 A CN 200910206622A CN 200910206622 A CN200910206622 A CN 200910206622A CN 101685382 A CN101685382 A CN 101685382A
Authority
CN
China
Prior art keywords
data
memory storage
address
read
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.)
Granted
Application number
CN200910206622A
Other languages
English (en)
Other versions
CN101685382B (zh
Inventor
艾伦·韦尔什·辛克莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101685382A publication Critical patent/CN101685382A/zh
Application granted granted Critical
Publication of CN101685382B publication Critical patent/CN101685382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Abstract

本发明涉及使用第一及第二存储装置的磁盘加速。本发明提供一种数据存储装置。一磁盘装置与一非易失性存储器装置结合以提供较一单独磁盘装置所能实现的写入存取时间及数据写入速度更短的写入存取时间及更高的数据写入速度。两个存储装置之间的区段写入交错丛发能够有效消除对所述磁盘装置的搜寻时间的影响。依据一来自一主机系统的非邻接逻辑地址变迁,所述存储控制器能够在所述磁盘装置上实施一先行搜寻作业,同时将当前数据写入至所述非易失性存储器装置。此一系统能够利用一非易失性存储器装置固有的快速写入存取特性,消除通常由磁盘搜寻时间所导致的停滞时间。

Description

使用第一及第二存储装置的磁盘加速
本发明专利申请是一件分案申请,原发明专利申请案的申请日为2005年1月5日,申请号为200580008163.3,以及发明名称为“使用第一和第二存储装置的磁盘加速”
技术领域
本发明一般而言涉及数据存储装置,且更具体而言涉及双媒体存储。
背景技术
通用计算机需要一海量存储系统。不同于用于直接调处数据的主存储器,海量存储器是用来保存数据。通常,一程序存储于海量存储器内且,当执行所述程序时,将所述整个程序或所述程序的部分复制至主存储器内。一系统能够将所述程序及其相关数据定位且从海量存储装置传输至主存储器的速度是与所述系统的整体速度成一体。
常见的海量存储装置包括:软盘、硬盘、光盘及磁带。每种装置均在容量、价格、速度及方便性方面各具有其强点及弱点。
此外,诸如快闪存储器的其它装置能够提供非易失性存储。快闪存储器是一种电可擦可编程只读存储器(EEPROM)。尽管快闪存储器通常不像易失性主存储器那样快,但其仍快于硬盘。
本发明人先前已研究过将多个单独装置整合至一海量存储系统来最大化每一装置的强点及最小化每一装置的弱点的概念。例如,本发明人也是1997年12月31日公开的WO97/50035号PCT申请案“存储器装置”的发明人,此案以引用的方式并入本文中。所述PCT申请案阐释一种既包括一相对慢存取的海量存储装置(诸如一硬盘)也包括一相对快存取的数据存储装置(诸如一快闪存储器)的存储器系统。一类似概念业已揭示于2000年1月18日颁予Daniel Auclair及Eliyahou Harari的第6,016,530号“既具有固态也具有旋转磁盘型存储器的计算机海量存储系统”的美国专利中,所述申请案的全文以引用的方式并入本文中。
通过将一非易失性快闪存储器装置与一非易失性硬盘相组合,一合成海量存储系统的总容量能够大于其全部部件的容量之和。然而,以往,此一存储器系统被限制于始终保持每一数据区段的唯一版本的情形。所述数据区段即可存储在高速存储器内也可存储在一慢存取海量数据存储装置内,由此使逻辑地址空间等于高速存储器及慢存取海量数据存储装置的容量的和。
当今,存在多种正使用的在商业上取得成功的非易失性存储器产品,其通常采用一形成于一个或一个以上集成电路芯片上的快闪单元阵列。一通常位于一单独集成电路芯片上的存储器控制器(但非必须)控制所述存储器阵列的运作。此一控制器通常包括:一微处理器、某一非易失性只读存储器(ROM)、一易失性随机存取存储器(RAM)及一个或一个以上特殊电路,诸如,一个在数据于程序化及读取运作期间穿过所述控制器时计算所述数据中的错误修正码(ECC)的电路。
一典型快闪阵列的存储器单元可划分为多个能够一起擦除的离散存储器单元区块。亦即,所述擦除区块是所述擦除单元--一可同时擦除的最小数量的存储器单元。每一擦除区块通常存储一个或一个以上数据页,可在不同的子阵列或平面内并行编程或读取所述页。每一平面通常存储一个或一个以上数据区段,所述区段的大小是由主机系统来决定。按照一磁盘驱动器所建立的标准,一实例性区段包括512个字节的使用者数据。此等存储器通常配置为每一擦除区块内具有16、32或更多个页,且每一页存储一个或几个主数据区段。
为提高并行度,一般会将所述阵列划分为通常称作平面的子阵列。每一平面均可包括其自己的数据寄存器及允许并行运作的其它电路,以便可将所述数据区段同时编程至所有平面内或从所有平面读取。一单个集成电路上的阵列可物理上划分为多个平面,或每一平面可由单独的一个或一个以上集成电路芯片形成。此一存储器构建方案的实例阐释于1998年8月25日颁予Lee等人的第5,798,968号美国专利“平面解码/虚拟区段构造”,及1999年3月30日颁予Lee等人的第5,890,192号美国专利“将多个资料区块并行写入快闪EEPROM的多个子阵列”中,所述两个专利的全文以引用的方式并入本文中。
为进一步有效管理存储器,擦除区块可连接在一起形成虚拟区块或元区块。亦即,可规定每一元区块包括一来自每一平面的擦除区块。所述元区块的使用阐释于2002年7月25日公开的第WO02/058074号PCT专利申请案“一非易失性存储器内的部分区块数据编程及读取运作”中,所述申请案的全文以引用的方式并入本文中。所述元区块由一主机逻辑区块地址识别为一编程及读取数据的目的地。同样,一元区块的全部擦除区块能够一起擦除。一存储器系统内由这些大区块及/或元区块运作的控制器需执行大量功能,其中包括接收自一主机的逻辑区块地址(LBAs)与存储器单元阵列内物理区块编号(PBNs)之间的转换。所述区块内的个别页通常是通过所述区块地址内的偏置来识别。
此类型的快闪存储器系统通常在可携式应用中用作海量存储装置。所述快闪存储器装置使用一诸如ATA的协议经由一逻辑接口与一主机系统进行通讯,且常常呈一可移动卡的形式。某些市面出售的卡是:CompactFlashTM(CF)卡、多媒体卡(MMC)、安全数字(SD)卡、智能媒体卡、个人信息卡(P-Tag)及存储器卡。主机包括个人计算机、笔记本计算机、个人数字助理(PDAs)、各种数据通讯系统、及类似形式的设备。除存储器卡实施方案外,此类型的存储器也可嵌装于各种类型的主机系统内。
至今,人们仍在不断努力改进海量存储装置。
发明内容
本发明提供一种数据存储系统,其通常包括:一第一存储装置、一第二存储装置及一存储控制器。所述第二存储装置具有一比所述第一存储装置慢的平均存取时间及一高的容量。平均存取时间是所述装置能够开始读取或写入数据之前必需的平均延迟。
于一实施例中,所述存储控制器可运作以将数据的第一部分引导至所述第一存储装置及将数据的第二部分引导至所述第二存储装置。于另一实施例中,存储控制器可运作以从所述第一存储装置检索数据的第一部分及从所述第二存储装置检索数据的第二部分。
通常,所述数据的第一部分是一连续数据流内数据的第一部分。同样,所述数据的第二部分是来自所述数据流的剩余数据。通常使用一表来包含关于所述数据的第一部分的位置及所述数据的第二部分的位置的信息。
于另一实施例中,首先通过从一主机系统总线接收一写入指令将数据写入至一数据地址来存储所述数据。然后,将所述数据的第一部分存储于所述第一存储装置内。在所述数据的第一部分完全存储入所述第一装置内之前,所述第二存储装置业已做好写入数据的准备。在所述第二存储装置准备就绪后,将所述数据的剩余部分存储入所述第二存储装置内。
于再一实施例中,首先从所述主机系统总线接收一读取指令。然后,所述数据存储系统决定所述数据的第一部分是否驻存于所述第一存储装置上。如果所述数据确实驻存于所述第一存储装置上,则:从所述第一存储装置读取所述数据的第一部分;在完成读取所述数据的第一部分之前,所述第二存储装置做好读取所述数据的剩余部分的准备;及从第二存储装置读取所述数据的剩余部分。否则,如果所述数据的一部分并未驻存于所述第一存储装置上,则从所述第二存储装置读取所述数据的第一部分及所述数据的剩余部分二者。
通过结合以举例方式图解说明本发明原理的附图来阅读下述详细说明,本发明的其它方面及优点将显而易见。
附图说明
结合附图参照以下说明可最佳地理解本发明,图式中:
图1A描绘一能够使用本发明的实例性通用计算机系统;
图1B描绘一图1A的通用计算机系统的抽象示意图;
图2A描绘根据本发明一实例性实施例的改进型海量存储装置;
图2B描绘根据本发明另一实例性实施例的改进型海量存储装置;
图3A描绘一硬盘驱动器地址空间及一快闪地址空间内的磁头数据及主体数据的抽象示意图;
图3B描绘一硬盘驱动器地址空间及一快闪地址空间与整个改进型海量存储装置的地址空间关系的抽象示意图;
图4A是一时序图,其描绘当一未使用磁盘加速的系统接收一写入指令时所发生的传统写入处理。
图4B是一时序图,其描绘根据本发明一实例性实施例当一使用磁盘加速的系统接收一写入指令时所发生的写入处理;
图5A描绘一图解说明当快闪容量增加时系统性能益处的图表;
图5B描绘一图解说明当所述改进型海量存储装置的利用率降低时系统性能益处的图表;
图6描绘一环形缓冲区的仿效示意图;
图7是一根据本发明一实例性实施例的实例性写入技术的流程图;
图8是一根据本发明的一实例性实施例的实例性读取技术的流程图;及
图9是一图6环形缓冲区内一区段存储位置图的示意图。
应了解,在这些附图中,相同的参考编号代表相同的结构性元件。同样,应了解这些图式中的描绘未必按照比例尺。
具体实施方式
在下文说明中,列举了大量具体细节以使人们能够彻底了解本发明。当然,所属领域的技术人员应明了:无需这些具体细节的某些或全部细节也可实施本发明。在其它示例中,为避免对本发明产生不必要的混淆,本文不再赘述众所周知的过程步骤。
通常,本发明是通过组合两个各具有其强点及弱点的单独存储装置来改进先前的海量存储装置(一般也称为辅助存储器)。例如,尽管快闪比一硬盘驱动器具有更快的存取时间,但其一般不具备硬盘驱动器的存储容量。如那些所属领域的技术人员所了解的,任何两个非易失性存储装置均能够用于本发明中,只要其中一个比另一个具有更快的存取时间。应用于存储装置的存取时间通常是定义为一存储装置接收一数据请求与所述存储装置实际开始读取及/或写入所述数据之间的时间。例如,对于位于一硬盘或软盘上的数据而言,存取时间一般等于指令耗用时间、搜寻时间、稳定时间及等待时间的总和。
搜寻时间及等待时间决定一磁盘的整体存取时间。一磁盘的搜寻时间是一读/写磁头从一个磁道移动至另一个磁道所花费的时间。对于一硬盘而言,搜寻至一相邻磁道通常需要1mSec,一全程搜寻(一从内磁道至外磁道的搜寻,或反之亦然)需要15mSec,且随机搜寻的平均时间为10mSec。等待时间是指在磁头定位于一地址磁道上后所述盘片上的一已寻址区段转动至磁头的时间,且是磁盘旋转速度的函数。对于一7200rpm的旋转速度,平均等待时间是4.14mSec,而最大等待时间是8.3mSec。
相反地,于一典型的快闪磁盘装置上,可将一数据区段以约30μS的速度转移至所述装置,且可以200μS将八个区段并行编程至所述快闪存储器内。此可提供一约16MB/s的丛发写入速度,其中每250μS可将八个区段写至装置。然而,由于所述装置偶尔也须执行某些内务运作,诸如垃圾收集、再定位数据区段来完成一数据区块、及区块擦除;因此,编程八个区段的有效时间有时相当长。由此,一快闪的维持写入速率大约为15MB/Sec。当然,也可于一快闪磁盘装置内使用其它区段转移及并行编程方案,以提供一不同的运作速度。
图1A描绘一能够使用本发明的实例性通用计算机系统100。所述系统的组件包括:一计算机105、诸如一鼠标110及键盘115等各种输入装置、及诸如一监视器120及一打印机125等各种输出装置。
图1B一描绘图1所示计算机系统100的抽象视图,图中仅描绘系统的基本组件。一单个组件130表示允许一使用者与计算机系统100交作的输入装置,例如一鼠标及键盘。同样,一单个组件135表示能够显示计算机系统100所完成任务的输出装置,例如一监视器及打印机。计算机系统100的核心是一中央处理单元(CPU)140及执行指令的组件。主存储器145一般为易失性且给CPU140提供供执行的指令及供所述指令调处的数据两者。此等组件130、135、140及145均在所属技术领域中众所周知。
一改进型海量存储装置150允许计算机系统100永久保存海量数据。组件130、135、140、145及150能够经由一主机总线155相互交换信息。
图2A描绘一根据本发明一实施例的改进型海量存储装置150A。其中两个存储装置,即一快闪存储器系统205及一硬盘驱动器210为并行连接。所述快闪存储器系统205包括一快闪存储器阵列215及一快闪控制器220。硬盘驱动器210包括一硬磁盘225及一磁盘控制器230。每一控制器220及230各负责相应类型存储器的特定作业。例如,快闪控制器220控制所有数据区段的逻辑-至-物理映像及所有快闪存储器的管理,以使快闪控制器220与快闪存储器阵列215间的接口250是一物理接口。磁盘控制器230管理硬磁盘225的读取及写入作业。控制器220及230两者经由一逻辑接口260及265连接至路由器235。
一主机接口240及一存储控制器245双双定位于路由器235的上游,以允许数据及控制信息于主机接口240与磁盘控制器230或快闪控制器220之间的任一方向上通行。此外,路由器235能够控制于磁盘控制器230与快闪控制器220之间任一方向上的数据转移。此等转移可作为一独立作业实施。另一选择是,此等转移可结合主机接口240与海量存储控制器220及230之间的任一方向上的数据转移来实施。路由器235可含纳用于数据转移的控制逻辑。
主机接口240给主机总线155提供一直接接口,且能够给主机总线155上使用的特定协议提供全部支持。所述由主机接口240、磁盘控制器230及硬磁盘225构成的子系统及由主机接口240、快闪控制器220及快闪存储器阵列215构成的子系统各构成完整的数据存储系统。路由器235可使数据及控制信号通过而无需主机接口240的修改,或可建立一用于与控制器220及230通讯的替代协议。路由器235与海量存储控制器220或230之间的接口260及265可是一标准协议,例如ATA,或可是一规定用于改进型海量存储装置150的特殊接口。接口260及265通常是提供对快闪存储器系统205及硬盘驱动器210内单独数据区段的随机读取及写入存取的逻辑接口,且不相依于各自存储媒体的物理特征。
此外,快闪控制器220也可支持接口260上的特殊指令或作业,以便直接存取快闪存储器阵列215的保留区域,所述区域可用来存储供存储控制器245A使用的表及信息记录。另一选择是,存储控制器245A可具有自己的非易失性存储器供存储这些表及记录。
存储控制器245A是一能够指挥主机接口240与海量存储控制器220及230之间信息转移的智能型控制单元。存储控制器245A可协调至或自快闪存储器系统205或硬盘驱动器210内数据的存储或数据的读取。存储控制器245A能够为存储于快闪存储器阵列215中的信息维持地址列表。
易失性存储器可在诸多改进型海量存储装置150的组件中担当一缓冲区或高速缓冲存储器,所述组件包括主机接口240、路由器235、快闪控制器220及磁盘控制器230。或可排定一单个易失性存储器运作于不同组件内,或可将单独的易失性存储器专用于每一组件。
于另一实施例中,可将控制器220及230的功能与路由器235一起合并于一集成式控制装置内。此装置也可包括存储控制器245及主机接口240。然而,此一配置需要产生新的控制器单元。相应地,控制器220及230中的任一个或其两者均不会再包括在存储器装置内。虽然此配置将需要开发新的控制电路,但此也可减少所需组件的总数量。
图2B描绘一根据本发明另一实施例的改进型海量存储装置150B。所述改进型存储装置150B保留与图2A中改进型海量存储装置150A内相同的硬盘驱动器210组件,但其使用一包含路由器235及主机接口240的功能以及图2A中存储控制器245A的主要功能的存储控制器245B。逻辑接口260被去除并由一直接连接至一快闪存储器阵列215B的物理接口275所替代。于此一配置中,一磁盘加速器250宜为一位于硬盘驱动器210的ATA接口上的前端高速缓冲存储器或为利用硬盘驱动器210的既有组件而集成于硬盘驱动器210组合件中。于此实施例中,不再需要快闪控制器220的功能且快闪存储器阵列215B也不再构成一逻辑数据存储装置的部分,但其可直接用作一物理存储器。此配置特别适合临时存储数据流。
无论使用何种具体构造,磁盘加速通常均可通过在一第二存储装置正经历等待的同时将一“磁头”数据写至一第一存储装置及/或从所述第一存储装置读取所述“磁头”数据来实现。在图2A及图2B中所示的实施例中,快闪存储器阵列215所经历的等待时间明显小于硬磁盘225。将数据流的一初始部分(“磁头数据”)写入至快闪存储器系统205的快闪存储器阵列215,而非等待硬磁盘225的读/写磁头合适定位。一旦硬磁盘225已准备接收数据,即将剩余部分(“主体数据”)写入至硬盘驱动器210的硬磁盘225。同时,所述磁头数据及主体数据形成一单个资料片段。一数据片段可定义为一能够导致所述第二存储装置经历一非一般存取时间的数据簇。如果是一硬磁盘225,则可将一数据片段阐释为一非邻接先前数据的顺序数据,由此可迫使硬盘驱动器210经历搜寻时间及/或等待时间。
取决于如何利用改进型海量存储装置150,所述磁头数据的大小或可基于需要来计算或可是一标准大小。一标准大小可取决于多个因素,包括一硬盘驱动器210的平均搜寻时间、快闪存储器阵列215的大小、及/或在因一垃圾收集运作而出现一显著延长的有效编程时间之前可写入的逻辑上相邻区段的数量。
图3A是一描绘一硬盘驱动器地址空间315及快闪地址空间320内磁头数据305及主体数据310的抽象视图。存储控制器245A或245B使用一磁头映像表325来协调磁头数据305及主体数据310的存储。如果快闪存地址空间320足够大,则磁头数据305能够永久驻存于快闪存储器阵列215内。然而,如果所述快闪空间有限,则需要构建机理以允许从快闪存储器阵列215中移除磁头数据305,从而给新磁头数据腾出空间。
一种此类机理可包括将磁盘地址空间305内的空间330保留用于磁头数据305。当快闪存储器阵列215内需要空间时,可将磁头数据305复制至保留空间330,以使整个数据片段在硬磁盘225上邻接。较佳地,在未使用改进型海量存储装置150A或150B时,磁头数据305的复制可作为一背景作业予以实施。这一区段再定位的频率较佳是根据磁盘装置与快闪存储器装置的存储器容量的比率,及根据能够写至改进型海量存储装置150的单独邻接区段序列的数量而定。
同样,图3B是一描绘所述整个改进型海量存储装置的一地址空间350与磁盘地址空间315及快闪地址空间320之间关系的抽象视图。由于磁盘地址空间315内保留有用于磁头数据的空间,所以用于所述改进型海量存储装置的地址空间350等于磁盘地址空间315。
从图4A与图4B的差异可看出:系统性能因使用改进型海量存储装置而提高。图4A是一时序图,其描绘当从一海量存储系统接收到一写入指令405时所发生的传统写入处理,此处,所述海量存储系统未使用本发明所提供的磁盘加速。通常,大约在硬盘驱动器210的读/写磁头开始移动415至适当位置的同时,数据410开始转移至一磁盘高速缓冲存储器。一旦所述读/写磁头及硬磁盘225均已进入位置,即可开始将数据420写至硬磁盘225。通常,将数据420从所述高速缓冲存储器写至硬磁盘225所花费置时间长于将进入数据410转移至高速缓冲存储器内所花费的时间。
图4B是一描绘根据本发明实施例在一使用磁盘加速的海量存储系统接收到一写入指令405时所发生的写入处理的时序图。一旦接收到写入指令405,数个不同的运作即可开始。例如,可开始将磁头数据425及430转移至快闪存储器内。易失性缓冲存储器无需快闪所需的内务运作。因此,将磁头数据430存储于快闪存储器系统205内通常包括:将磁头数据425转移至一缓冲区,且随后将磁头数据425从所述缓冲区转移至快闪存储器系统205以于快闪存储器系统205内产生磁头数据430。在存储磁头数据425及430的同时,硬盘驱动器210准备接收数据。如果正为所述磁头数据保留空间,则给硬盘驱动器210提供一新的写入指令435。所述新的写入指令435不会将读/写磁头引导至所述数据片段地址,而是引导至所述主体数据地址,而所述主体数据地址仅是偏置开分配给所述磁头数据的分配空间的片段地址。在硬盘驱动器210接收到新的写入指令435之后,即可将读/写磁头及硬盘适当定位440。
一旦磁头数据425全部转移至快闪缓冲区425,则开始将主体数据445存储于改进型海量存储装置的磁盘高速缓冲存储器内,因此,一主机系统将数据转移至改进型海量存储装置150内的速度与一未使用磁盘加速的系统的转移速度相同。当读/写磁头及硬盘均已进入位置时,一旦所述主体数据可用,即可开始将主体数据450写全硬磁盘。写入图4B中的数据片段所花费的总时间明显小于图4A中所需的总时间。
然而,系统性能的整体提高既取决于快闪存储器阵列215的容量也取决于存取改进型海量存储装置150的频率。如图5A所示,当快闪存储器阵列215的容量增加时,系统性能会显著获益。快闪存储器阵列215越大,在具有多个数据片段的丛发行动期间可存储的数据越多。
同样地,图5B显示:当利用更多改进型海量存储装置150时,系统性能会降低。如果持续不断地存取海量存储装置150,则将没有足够的时间将磁头数据从快闪存储器阵列215转移至硬磁盘225(假设必须转移)。最后,根据其错误处理例程,海量存储装置150或必须在接收新磁头数据之前转移旧磁头数据,或必须停止使用快闪存储器阵列215而将硬盘驱动器210专用于新数据片段。如图5B所示,假若采用后一错误处理例程,则系统性能应与一仅使用一硬盘驱动器210的系统相同。如果快闪存储器阵列215暂时不可用,则也可利用此一错误处理例程(例如,快闪存储器阵列215参与一垃圾收集过程)。如果在主机数据正被写入至硬盘驱动器210的同时,执行垃圾收集作业,则会减少与垃圾收集的冲突,其原因是此时通常为快闪存储器阵列215的待用时间。
图6描绘一种以环形缓冲区600形式组织快闪存储器阵列215B的数据流中的区段存储的方式。供写入一数据区段的当前位置由一写入指针605来界定,所述写入指针以一无终点循环在图6所示的地址空间内顺时针移动。所述地址空间是由元区块来界定(例如,610及615),所述元区块以一预定次序或以写入指针605从一全元区块移动至一新擦除元区块时动态决定的次序链接(例如620)。同样地,一擦除指针625以一无终点循环在图6所示的地址空间内顺时针移动。为存储新的数据区段,以一能够确保在写入指针605前维持少量备用已擦除元区块的速率,擦除由擦除指针625识别的元区块。所述正被擦除的区块包含最少量最近写入环形缓冲区600内的数据。
磁头数据存储于一循环地址空间内,亦即,一于其内可通过提供一从最高地址返回至最低地址的递增步骤,连续实施递增地址变迁的地址空间。于图2A中所描绘的改进型海量存储装置150A的实施例中,快闪存储器系统205的逻辑地址空间的一部分内的循环缓冲区提供所述循环地址空间。于图2B中所描绘的改进型海量存储装置150B的实施例中,快闪存储器阵列215B的物理地址空间内的环形缓冲区600提供所述循环地址空间。
为保持快闪存储器的成本尽可能低,快闪存储器阵列215的容量通常小于存储与改进型海量存储装置150的整个地址空间350相关的全部磁头数据所需的容量。由此,为了在快闪存储器阵列215内腾出空间供继续存储磁头数据,需要将磁头数据从快闪存储器阵列215复制至硬磁盘225上适合的保留空间。执行此作业的方法对通过改进型海量存储装置150而实现的系统性能的整体提高具有重要作用。
图9描绘一与将磁头数据复制至硬盘驱动器210的管理方法相关的环形缓冲区600内的区段存储位置图。所述环形缓冲区600具有一从其最后物理地址至其第一物理地址呈环绕状的环形地址空间。所述环形缓冲区600包括元区块960、965、970、975、980、985、990及995。区段数据在由递增写入指针605所界定的位置处写至所述缓冲区。图9将此循环地址空间描绘为一移动线性地址空间,其中包括写入指针605的元区块960被指配为缓冲区910的顶部。循环缓冲区600内写入指针605前面的元区块995被指配为缓冲区940的底部。擦除指针625界定供擦除的下一目标区块,且也界定所述缓冲区内磁头数据输入项的尾部。擦除指针625与缓冲区底部940之间的元区块均处于被擦除状态。
自擦除指针625所识别的元区块990复制有效磁头数据,以允许擦除元区块990。如果磁头数据305自其写至环形缓冲区600后尚未被读取,则将其复制至硬磁盘225上对应的保留空间330。然而,如果磁头数据305自写入后已被读取,则也可将其在写入指针605处复制回快闪存储器,且因此保存在环形缓冲区600内。此可允许可能供主机系统读取的磁头数据仍会在环形缓冲区600内保持可用。可使用磁头映像表325及数据区段自身的一标头内的逻辑地址信息来识别有效磁头数据。如果有效磁头数据重叠元区块990与另一元区块间的边界,则完整地复制整个磁头数据。
然而,磁头数据可能因相同逻辑地址的更新磁头数据存在于环形缓冲区600内的其它地方而无效。于此情形下,无需在擦除元区块990之前复制所述磁头数据。
在除所述由擦除指针625识别的元区块外的元区块上执行提前复制作业。此可允许,例如,在主机所需的一磁盘存取临时阻止对硬磁盘225的复制作业时,继续实施对快闪存储器阵列115的复制作业。一快闪复制指针915及一磁盘复制指针905均可用于识别下一需要复制作业的位置。位于擦除指针625与复制指针905及915之间的有效磁头数据均应已执行其所要求的复制作业。由于人们期望在环形缓冲区600内存储尽可能多的有效磁头数据,因此,对此等提前复制作业的程度设定若干限制。一磁盘复制限制920及一快闪复制限制930界定磁盘复制指针905及快闪复制指针915可在擦除指针625前移动的最大限度。
无需将擦除元区块限定于指针625所识别的元区块。例如,如果擦除指针625处的元区块990需要进一步快闪复制作业,同时擦除指针625与磁盘复制指针905之间的元区块980不包含未复制的有效数据,则可立即擦除元区块980。于此情形下,可修改一规定元区块链接次序形成环形缓冲区的区块链接表,以将新擦除元区块980移至擦除指针625下方。
在任何可能的地方,将磁头数据的复制作为一背景任务予以实施。一至快闪存储器阵列215的复制可与主机-至-磁盘或磁盘-至-主机的数据转移同时实施。另一选择是,假如果复制一完整的元区块,则无需移动一实际数据。可仅修改区块链接表来再定位缓冲区内的数据。当主机接口非现用时,可在环形缓冲区600与硬盘高速缓冲存储器之间实施一快速磁盘复制。如果主机开始活动,则会安全地终止一磁盘复制,且所述磁盘复制可在一随后时间恢复或重复实施。
存储在快闪存储器阵列215内的管理表可包括一磁头映像表325及一区块链接表。于一实施例中,所述磁头映像表325仅能为存储于快闪存储器阵列215内的每一有效磁头数据片段提供一个输入项。随后,所述输入项将以一非连续逻辑地址次序存储于一专用区块内的一磁头映像表区段集合内,以允许借助一已界定的逻辑地址来搜寻一输入项。每一输入项可具有单独字段用于:一改进型海量存储装置内的逻辑地址、一环形缓冲区内的物理地址、一磁头数据的大小(如果未使用一固定磁头大小)、一指示所述磁头数据自写入后已被读取的读取旗标、及一指示所述磁头数据已复制至硬盘驱动器210的复制旗标。所述区块链接表给环形缓冲区600内的每一链接元区块提供一个输入项。所述输入项以区块链接次序存储在一专用区块内的一链接表区段集合内。可添加新的链接表区段,并可修改其次序。每一区段无需满载,且可添加新输入项。所述最后写入的链接表区段可包括界定所述专用区块内所有有效链接表区段的位置及其次序的信息。
图7是一本发明实例性实施例的实例性写入技术的流程图。在705处,从主机系统总线155接收一在某个地址X写入数据的指令。在710处,改进型海量存储装置150决定地址X是否邻接于先前已存取的地址且因此是一现有数据片段的部分、或是非邻接于先前地址并界定一新数据片段的开始。如果所述地址是邻接,则所述数据在715处被直接写入至硬盘驱动器210并续接所述现有数据片段。如果快闪存储器阵列215是非邻接,则尝试将所述数据作为新数据片段的磁头数据写入至快闪存储器阵列215。
如果欲写入磁头数据,则所述系统在720处决定快闪存储器阵列215是否已准备就绪。如果因任何原因快闪存储器阵列215不可用,则所述系统可在715处简单地将磁头数据写入至硬盘驱动器210且不对所述片段执行加速。如果快闪存储器阵列215可用,则接下来的三个作业可大致同时进行。
三个作业中的第一个是在725处发送一搜寻指令至硬盘驱动器210。如果数据最终将从快闪存储器阵列215转移至硬盘驱动器210,则所述搜寻指令应考虑一等同于所述磁头数据大小的偏差。因此,硬盘驱动器210应接收一搜寻指令以将读/写磁头定位至地址X+H,其中H是所述磁头数据偏差的大小。在730处,将所述磁头数据写入至快闪存储器阵列215。如果使用一环形缓冲区,则在写入指针处写入所述磁头数据。在735处,更新所述区块映像表以指示磁头数据被独自存储在快闪存储器阵列215内。为适当地协调数据,存储控制器245应具有关于硬磁盘225内逻辑地址及快闪存储器阵列215内物理地址的信息。另一选择是,其它信息也可存储在区块映像表内。例如,如果所述磁头大小是可变,则也应存储所述磁头的大小。下文将结合图8讨论其它旗标。
在所述磁头数据正被写入至快闪存储器阵列215且所述区块映像表被更新的同时,硬盘驱动器210在740处等待硬磁盘225适当定位。一旦进入合适位置,假若改进型海量存储装置150已从主机系统总线155接收到主体数据,则在745处,所述主体数据开始被写入至硬磁盘225。
图8是本发明一实施例的实例性读取技术的流程图。在805处,从主机系统总线155接收一在某个地址X读取数据的指令。在810处,存储控制器245决定在区块映像表内是否存在一地址X的输入项。如果所述地址未在区块映像表内,则所述系统在815处从硬盘驱动器210读取所述数据。随后,在820处,系统决定快闪存储器阵列215是否准备写入。如果因某个原因(例如,垃圾收集)快闪存储器阵列215不可用,则可结束所述过程,从而担当一无磁盘加速的系统。然而,如果快闪存储器215是可用,则在825处,可在从硬盘驱动器210读取数据的同时,将磁头数据复制至快闪存储器阵列215。随后,在830处,可更新所述区块映像表来指示现在驻存于快闪存储器阵列215上的磁头数据。
一旦一输入存在于所述区块映射表内,则在805处接收一读取指令后,存储控制器245将遵循一不同的路径。如果在810处所述地址是在区块映像表内,则存储控制器245将给硬盘驱动器210发送一搜寻指令来搜寻硬盘驱动器210内主体数据的地址。在本发明的实施例中,所述主体数据的地址将是偏置磁头数据大小的地址X。随后,在840处,存储控制器245通常等待快闪存储器阵列215准备就绪。然而,某些实施例可具有额外的错误处理例程,所述额外的错误处理例程可决定在硬盘驱动器210内是否也存在所述磁头的一副本,且如果适合,如果其在快闪存储器阵列215之前可用,则仅从硬盘驱动器210读取所述数据。在某些专使用读取技术的实施例中,所述磁头数据的一副本始终存在于所述硬盘驱动器内。一旦快闪存储器阵列215可用,则在845处从所述快闪读取磁头数据。在850处,可在所述区块映射表内设置一旗标来指示已读取对应于表输入项的数据。假若使用一环形缓冲区布置,在必须擦除含有所述输入项的元区块时,此一旗标将允许所述输入项通过复制至所述缓冲区的顶部而非硬盘驱动器而得以保存在所述环形缓冲区内。
当所述磁头数据完全从快闪存储器阵列215读出后,则在855处,所述系统可能需要等待硬磁盘225正确定位。一旦合适定位,则在860处从硬磁盘225读取所述主体数据。
尽管本文以其当前所设想的最佳模式阐释本发明,但应了解:本发明可具有诸多修改、运作模式及实施例,且这些均在所属领域技术人员的能力范围内且无需进一步实施发明性行动。例如,其它改进型存储装置可使用除快闪或硬盘驱动器外的技术,且可包括电池支持型RAM、光盘、相变化存储器(OUM)、磁性RAM(MRAM)、铁电聚合物、铁电RAM(FeRAM)、绝缘体上覆硅(Sol)等。相应地,意欲受到专利保护的内容陈述于权利要求且包括属于权利要求精神及范围内的所有改变及修改。

Claims (15)

1、一种提高从旋转磁盘驱动器读取数据性能的方法,其包括:
从主机系统接收第一指令以读取所述旋转磁盘驱动器中具有已界定初始地址的数据簇;
决定所述第一指令的所述数据簇的所述地址是否邻接于先前已存取的地址;
如果所述地址确定为非邻接,则
从所述旋转磁盘驱动器读取所述已请求的数据,并拷贝所述数据的初始部分至非易失性存储器装置;
随后从所述主机系统接收第二指令以读取所述旋转磁盘驱动器中具有所述同样初始地址的数据簇;
决定所述第二指令的所述数据簇的所述地址是否邻接于先前已存取的地址;
如果所述地址确定为非邻接,则
从所述非易失性存储器装置中读取所述已请求的数据的所述初始部分,并从所述旋转磁盘驱动器中读取所述已请求的数据的剩余部分,从而消除由所述旋转磁盘驱动器中的搜寻时间引起的,向所述主机系统提供数据的延迟。
2、如权利要求1所述的方法,其中所述旋转磁盘驱动器以及所述非易失性存储器装置是计算机系统的一部分,并且
其中所述非易失性存储器装置是可从计算机系统移除的。
3、如权利要求1所述的方法,其中所述非易失性存储器装置为固态存储器。
4、如权利要求1所述的方法,其中所述固态存储器是快闪存储器,并且其中所述旋转磁盘驱动器是磁硬盘驱动器。
5、一种提高从计算机系统提供的硬盘驱动器中读取数据的性能的方法,其包括:
从主机系统接收请求以读取所述硬盘驱动器中的具有已界定初始地址的数据;
决定所述已请求的数据的所述地址是否邻接于先前已存取的数据;
如果所述已请求的数据的所述地址邻接于先前已存取的数据,则
从所述硬盘驱动器中读取所述已请求的数据;以及
如果所述已请求的数据的所述地址非邻接于先前已存取的数据。则
决定所述已请求的数据的第一部分是否驻存于非易失性海量存储装置中;
如果所述已请求的数据的第一部分驻存于非易失性海量存储装置中,则从所述非易失性海量存储装置中读取所述已请求数据的所述第一部分并且从所述
硬盘驱动器中读取所述已请求的数据的剩余部分;
如果所述已请求的数据的第一部分并未驻存于非易失性海量存储装置中,则从所述硬盘驱动器中读取所述已请求的数据,并且拷贝所述已请求的数据的第一部分至所述非易失性海量存储装置中
6、一种数据存储系统,其包括:
第一非易失性存储装置;
具有比所述第一存储装置慢的平均存取时间及高的容量的第二非易失性存储装置,其中所述较慢的平均存取时间是所述第二非易失性存储装置开始写入数据之前必须的平均延迟;及
可运作用来将数据的一第一部分引导至所述第一存储装置及将数据的一第二部分引导至所述第二存储装置的存储控制器;
从主机系统接受第一指令以读取在所述第二存储装置中具有已界定初始地址的数据片段;
决定所述第一指令的所述数据片段的所述地址是否邻接于先前已存取的地址;以及
如果所述地址确定为非邻接,则从所述第二存储装置中读取所述已请求的数据,并拷贝所述数据的初始部分至所述第一存储装置。
7、如权利要求6所述的数据存储系统,其中所述存储控制器可进一步运作以:
随后从所述主机系统接收第二指令以读取所述第二存储装置中的具有所述同样地址的数据片段;
决定所述第二指令中的所述数据片段的所述地址是否邻接于先前已存取的地址;
如果所述地址确定为非邻接,则从所述第一存储装置中读取所述已请求的数据的所述初始部分,并从所述第二存储装置中读取所述已请求的数据的剩余部分。
8、如权利要求7所述的数据存储系统,
其中所述第一存储装置为固态存储器,并且所述第二存储装置为硬盘驱动器,并且
其中,如果所述地址确定为非邻接,则从所述第一存储装置中读取所述已请求的数据的所述初始部分,以减小向所述主机系统提供数据的延迟,否则所述硬盘驱动器的搜寻延迟在非邻接地址的地址变迁中,将会引起所述延迟。
9、一种用于存储数据的方法,其包括:
从一主机系统总线接收一写入指令以写至一数据地址;
从所述主机系统总线接收一数据片段;
将所述数据的一第一部分存储于一第一存储装置内;
在完成将所述数据片段的所述第一部分存储于所述第一存储装置前,使一第二存储装置做好写入数据的准备;及
在所述第二存储装置已做好准备后,将所述数据片段的一剩余部分存储于所述第二存储装置内;
更新一包含关于所述数据的第一部分及所述数据的剩余部分的所述位置信息的磁头表;以及
随后将所述数据片段的所述第一部分从所述第一存储装置复制至所述第二存储装置内的所述数据地址。
10、如权利要求9所述的存储数据的方法,其进一步包括更新包含关于所述数据的第一部分及所述数据的剩余部分的所述位置信息的磁头表。
11、如权利要求9所述的存储数据的方法,其中在所述主机系统总线未请求存取所述包含在所述第一或所述第二存储装置内的数据期间,实施所述复制。
12、如权利要求9所述的存储数据的方法,其中如果所述第一存储装置不可用,则将所述整个数据片段都存储于所述第二存储装置内。
13、一种检索数据的方法,其包括:
从主机系统总线接收读取指令以在数据地址读取数据;
决定所述数据的第一部分是否驻存于第一存储装置上;
如果所述数据的第一部分驻存于所述第一存储装置上,则
从所述第一存储装置读取所述数据的所述第一部分;
在完成读取所述第一存储装置内的所述数据片段的所述第一部分之前,使一第二存储装置准备读取所述数据的剩余部分;及
在所述第二存储装置已准备好读取所述数据的所述剩余部分后,从所述第二存储装置读取所述数据的剩余部分;及
如果所述数据的第一部分并未驻存于所述第一存储装置上,则从所述第二存储装置读取所述数据的所述第一部分且读取所述数据的所述剩余部分。
14、如权利要求13所述的检索数据的方法,其中如果所述第一存储装置不可用,则从所述第二存储装置读取所述数据的第一部分及所述数据的剩余部分。
15、一种至少包括用来检索数据的计算机程序码的计算机可读媒体,所述计算机可读媒体包括:
用于从主机系统总线接收读取指令以在数据地址上读取数据的计算机程序码;
用于决定所述数据的第一部分是否驻存在第一存储装置上的计算机程序码;
计算机程序码,如果所述数据的所述第一部分驻存在第一存储装置上,所述计算机程序码用于:
从所述第一存储装置中读取所述数据的所述第一部分;
在完成读取所述第一存储装置内的所述数据片段的所述第一部分之前,使一第二存储装置准备读取所述数据的剩余部分;及
在所述第二存储装置已准备好读取所述数据的所述剩余部分后,从所述第二存储装置读取所述数据的剩余部分;及
计算机程序码,如果所述数据的所述第一部分并未驻存在第一存储装置上,所述计算机程序码用于从所述第二存储装置中读取所述数据的所述第一部分以及所述数据的所述剩余部分。
CN200910206622.9A 2004-02-04 2005-01-05 使用第一及第二存储装置的磁盘加速 Active CN101685382B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/772,789 2004-02-04
US10/772,789 US7127549B2 (en) 2004-02-04 2004-02-04 Disk acceleration using first and second storage devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800081633A Division CN100570546C (zh) 2004-02-04 2005-01-05 使用第一和第二存储装置的磁盘加速

Publications (2)

Publication Number Publication Date
CN101685382A true CN101685382A (zh) 2010-03-31
CN101685382B CN101685382B (zh) 2016-12-14

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874216A (zh) * 2015-12-11 2017-06-20 捷鼎国际股份有限公司 加快在不连续页面写入数据的计算机系统及其方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874216A (zh) * 2015-12-11 2017-06-20 捷鼎国际股份有限公司 加快在不连续页面写入数据的计算机系统及其方法
CN106874216B (zh) * 2015-12-11 2020-07-10 捷鼎新加坡私人有限公司 加快在不连续页面写入数据的计算机系统及其方法

Also Published As

Publication number Publication date
EP2241966A2 (en) 2010-10-20
WO2005081097A2 (en) 2005-09-01
JP4777263B2 (ja) 2011-09-21
CN1934529A (zh) 2007-03-21
KR20070001136A (ko) 2007-01-03
EP2241966A3 (en) 2010-11-17
JP2007522560A (ja) 2007-08-09
JP2013218741A (ja) 2013-10-24
US7310699B2 (en) 2007-12-18
CN100570546C (zh) 2009-12-16
US20050172067A1 (en) 2005-08-04
JP2011192298A (ja) 2011-09-29
WO2005081097A3 (en) 2005-11-24
US20070028040A1 (en) 2007-02-01
TWI360050B (en) 2012-03-11
EP1716477A2 (en) 2006-11-02
KR101200670B1 (ko) 2012-11-12
TW200604796A (en) 2006-02-01
US7127549B2 (en) 2006-10-24

Similar Documents

Publication Publication Date Title
CN100570546C (zh) 使用第一和第二存储装置的磁盘加速
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US6751155B2 (en) Non-volatile memory control
CN100487632C (zh) 双媒体存储装置
US8626987B2 (en) Flash memory system and defragmentation method
CN102819408B (zh) 可动态调整条带深度的raid 0的实现方法及系统
US20030065899A1 (en) Memory system sectors
CN101571832B (zh) 数据写入方法及使用该方法的快闪存储系统与其控制器
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
US20140115240A1 (en) Storage devices and methods for controlling a storage device
CN101685382B (zh) 使用第一及第二存储装置的磁盘加速

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGIES, INC.

Free format text: FORMER OWNER: SANDISK CORPORATION

Effective date: 20121112

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20121112

Address after: American Texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Corp.

CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant