CN102265267A - 用于分层非易失性存储设备的系统和方法 - Google Patents
用于分层非易失性存储设备的系统和方法 Download PDFInfo
- Publication number
- CN102265267A CN102265267A CN2009801527940A CN200980152794A CN102265267A CN 102265267 A CN102265267 A CN 102265267A CN 2009801527940 A CN2009801527940 A CN 2009801527940A CN 200980152794 A CN200980152794 A CN 200980152794A CN 102265267 A CN102265267 A CN 102265267A
- Authority
- CN
- China
- Prior art keywords
- request
- volatile memory
- hard disk
- solid state
- storage devices
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/012—Recording on, or reproducing or erasing from, magnetic disks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/224—Disk storage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/45—Hierarchical combination of record carriers, e.g. HDD for fast access, optical discs for long term storage or tapes for backup
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明的多种实施例提供了用于分层非易失性存储设备的系统和方法。作为示例,公开了一种多层非易失性存储设备,其包括硬盘存储设备;固态非易失性存储设备,其高速缓存硬盘存储设备上所包括的数据的子集;以及控制器电路,其能够操作用于控制固态非易失性存储设备和硬盘存储设备之间的数据传输。
Description
技术领域
本发明涉及用于实现存储设备的系统和方法,更具体地,涉及用于实现具有存储层的存储设备的系统和方法。
背景技术
硬盘驱动器常常被设计为基于扇区写入数据。因此,例如,写入硬盘驱动器可能涉及在图1中图示的给定的写处理期间写入4096个字节。根据图1,由主机提供要写入到硬盘驱动器的512个字节的数据集合(步骤A)。反过来,硬盘驱动器取回4096B的数据集合120,其包括要被写入的地址空间130(步骤B)。硬盘驱动器用要写入的数据110覆写该地址空间,并且随后将整个4096个字节的块写回到非易失性存储器(步骤C)。该读取/修改/写入处理允许支持主机所支持的和硬盘驱动器所支持的存储器块的尺寸的失配。然而,该方法招致访问硬盘驱动器时的相当大的延时。
因此,至少出于上述原因,在本领域中需要改进的用于非易失性存储设备的系统和方法。
发明内容
本发明涉及用于实现存储设备的系统和方法,更具体地,涉及用于实现具有存储层的存储设备的系统和方法。
本发明的多种实施例提供了多层非易失性存储设备。这种设备包括硬盘存储设备、固态非易失性存储设备、和控制器电路。固态非易失性存储设备高速缓存硬盘存储设备上所包括的数据的子集,并且控制器电路可操作用于控制固态非易失性存储设备和硬盘存储设备之间的数据传输。在一些情况下,硬盘存储设备至少在数量级上大于固态非易失性存储设备。在上述实施例的一些实例中,硬盘存储设备可以是一维硬盘存储设备或二维硬盘存储设备。在其他实例中,硬盘存储设备包括一维硬盘存储设备和二维硬盘存储设备两者。在这些实例中,一维硬盘存储设备可以高速缓存二维硬盘存储设备上所包括的数据的子集,并且控制器电路可以操作用于控制固态非易失性存储设备和硬盘存储设备之间的数据传输。在特定情况下,二维硬盘存储设备是一维硬盘存储设备的三倍以上。
在上述实施例的其他实例中,控制器电路可操作用于在执行主机和硬盘存储设备之间的多块传输时旁路(bypass)固态非易失性存储设备。在一些这样的实例中,该设备进一步包括缓冲器,其可操作用于存储来自硬盘存储设备的数据块,并且在控制器电路的控制下执行针对请求主机的一系列子块传输。缓冲器还可以操作用于从主机接收一系列子块传输,并且在控制器电路的控制下将子块传输组合为针对硬盘存储设备的单块传输。
本发明的其他实施例提供了用于非易失性数据存储设备的方法。这些方法包括提供多层非易失性存储器,其具有硬盘存储设备;固态非易失性存储设备;以及控制器电路。固态非易失性存储设备高速缓存硬盘存储设备上所包括的数据的子集,并且控制器电路可操作用于控制固态非易失性存储设备和硬盘存储设备之间的数据传输。所述方法进一步包括从主机接收访问多层非易失性存储器的请求;并且响应该请求。
在一些情况下,该请求是读取请求,并且响应读取请求包括:确定与读取请求对应的地址空间是否被包括在固态非易失性存储设备中;以及在与读取请求对应的地址空间被包括在固态非易失性存储设备中的情况下,从固态非易失性存储设备响应读取请求。在其他情况下,响应读取请求包括将数据块从硬盘存储设备传输到固态非易失性存储设备。在与读取请求对应的地址空间未被包括在固态非易失性存储设备中的情况下,数据块包括与读取请求对应的地址空间。该响应还包括从固态非易失性存储设备响应读取请求。
在上述实施例的特定实例中,所述请求是扩展的读取请求。在这些实例中,响应扩展的读取请求可以包括:确定与扩展的读取请求对应的地址空间是否被包括在固态非易失性存储设备中;并且在与该读取请求对应的地址空间未被包括在固态非易失性存储设备中的情况下,从硬盘存储设备响应扩展的读取请求而不通过固态非易失性存储设备。在其中与该读取请求对应的地址空间被至少部分地包括在固态非易失性存储设备中的情况下,通过将与来自固态非易失性存储设备的扩展的读取请求对应的地址空间写入到硬盘存储设备来响应所述扩展的读取请求,并且从硬盘存储设备响应扩展的读取请求而不通过固态非易失性存储设备。
在上述实施例的其他实例中,所述请求是写入请求。在一些这样的实例中,响应读取请求包括确定与写入请求对应的地址空间是否被包括在固态非易失性存储设备中;以及在与写入请求对应的地址空间被包括在固态非易失性存储设备中的情况下,通过将与写入请求对应的数据写入固态非易失性存储设备来响应该写入请求。替代地,在与写入请求对应的地址空间未被包括在固态非易失性存储设备中的情况下,响应包括将数据块从硬盘存储设备传输到固态非易失性存储设备。数据块包括与写入请求对应的地址空间。于是,对写入请求的响应包括将与写入请求对应的数据写入固态非易失性存储设备。
在上述实施例的特定实例中,所述请求是扩展的写入请求。在这些实例中,响应扩展的写入请求包括:确定与扩展的写入请求对应的地址空间是否被包括在固态非易失性存储设备中;以及在与扩展的写入请求对应的地址空间未被包括在固态非易失性存储设备中的情况下,通过将与扩展的写入请求的数据写入硬盘存储设备而不通过固态非易失性存储设备来响应扩展的写入请求。在其他情况下,在与扩展的写入请求对应的地址空间被至少部分地包括在固态非易失性存储设备中的情况下,响应扩展的写入请求包括:使固态非易失性存储设备中的与扩展的写入请求对应的地址空间无效,以及将与扩展的写入请求对应的数据写入硬盘存储设备而不通过固态非易失性存储设备。
本发明的其他实施例提供了非易失性存储系统。这种非易失性存储系统包括硬盘存储设备,其包括存储介质和接口控制器电路。接口控制器电路可操作用于控制对存储介质的一维访问和对存储介质的二维访问。所述存储系统进一步包括:固态非易失性存储设备,其高速缓存硬盘存储设备上所包括的数据的子集;以及控制器电路,其可操作用于控制固态非易失性存储设备和硬盘存储设备之间的数据传输。
本发明内容仅提供了本发明的一些实施例的一般性概述。通过下面的详细描述、所附权利要求和附图,本发明的许多其他目的、特征、优点以及其他实施例将变得更全面明了。
附图说明
通过参照在本说明书的剩余部分中描述的附图,可以认识到本发明的各种实施例的进一步的理解。在附图中,在若干图中使用相同的附图标记表示相似的部件。在一些实例中,由小写字母组成的下标与附图标记关联以表示多个相似部件中的一个。在提到附图标记而没有指明存在的下标时,旨在表示所有这种多个相似的部件。
图1示出了现有技术中使用的用于将数据块写入硬盘驱动器的读取/修改/写入方法;
图2示出了根据本发明的一个或多个实施例的可通信耦合到主机的分层非易失性存储器;
图3示出了根据本发明的多种实施例的可通信耦合到主机的另一分层非易失性存储器;
图4示出了根据本发明的一些实施例的可通信耦合到主机的又一分层非易失性存储器;
图5图示了在一维硬盘存储设备上使用的一维轨;
图6图示了根据本发明的各种实施例的在二维硬盘存储设备上使用的多个轨;
图7a-7c示出了根据本发明的一些实施例的将数据写入二维硬盘存储设备的处理过程;
图8示出了根据本发明的一些实施例的多层存储设备;
图9是示出根据本发明的一些实施例的用于与分层非易失性存储器相关地存储数据的方法的流程图;以及
图10是示出根据本发明的一个或多个实施例的用于旁路上层固态非易失性存储设备的方法的流程图。
具体实施方式
本发明涉及用于实现存储设备的系统和方法,更具体地,涉及用于实现具有存储层的存储设备的系统和方法。
转到图2,示出了根据本发明的一个或多个实施例的系统200,系统200包括可通信耦合到主机210的分层非易失性存储器220。主机210可以是任何能够传输去往和来自存储设备的数据的设备或系统。因此,主机210可以是(但不限于)如本领域中已知的微处理器、基于计算机的系统、或者接口电路。基于这里提供的公开,本领域普通技术人员将认识到可以用作根据本发明的不同实施例的主机的多种设备和/或系统。
分层非易失性存储器220包括三个存储器层。具体地,分层非易失性存储器220包括:包括固态非易失性存储设备230的第一层、包括一维硬盘存储设备240的第二层、和包括二维硬盘存储设备245的第三层。固态非易失性存储设备230可以使用本领域中已知的任何固态存储器技术实现。因此,固态非易失性存储设备230可以使用(但不限于)闪速存储器、相变存储器、旋转转矩(spin-torque)存储器、铁电存储器、磁存储器、电阻存储器、跑道(racetrack)存储器、基于氧化物陷阱的闪速存储器、或者本领域中已知的其他非易失性固态存储器类型来实现。固态非易失性存储设备230提供了快速I/O访问的优点,以及固态器件的其他益处,包括降低的功率和合理的可靠性。此外,固态非易失性存储设备230提供了在主机210和分层非易失性存储器220之间转译长和短的存储器访问的能力。
一维硬盘存储设备240是其中轨宽度(track width)基本上与用于从盘写入数据的写入头的宽度相同的硬盘。这在下文中将参照图5更详细地图示和描述。一维硬盘存储设备240可以包括相对长的数据扇区。这些扇区可以比主机210所支持的访问块长得多。例如,这些扇区的长度可以是4096个字节,而主机210支持的访问长度可能仅为512个字节。此外,一维硬盘存储设备240较之固态非易失性存储设备典型地提供更低的每比特成本,但是具有增加的访问延迟。
相反,二维硬盘存储设备245是其中轨宽度小于用于从盘写入数据的写入头的宽度的硬盘。这在下文中将参照图6-7更详细地图示和描述。通过提供小于写入宽度的轨宽度,二维硬盘存储设备245可以提供增加的面积密度(areal density),并且因而降低了存储设备的每比特的成本。该方法通常依赖于跨(span)多个轨的强力的码。尽管提供了增加的比特密度,但是仍支持相对慢的I/O速率。然而,这些慢的访问时间平均起来由通过固态非易失性存储设备230和一维硬盘存储设备240的访问所隐藏。
在本发明的一些实施例中,固态非易失性存储设备230操作作为针对一维硬盘存储设备240的高速缓存,而一维硬盘存储设备240操作作为二维硬盘存储设备245的高速缓存。每级高速缓存之间的高速缓存处理由控制器电路235管理。该高速缓存处理提供了能够对主机210掩蔽读取/修改/写入指令的延迟的优点。换言之,尽管在一些情况下可能仍在固态非易失性存储设备230和一维硬盘存储设备240之间,和/或在一维硬盘存储设备240和二维硬盘存储设备245之间,执行读取/修改/写入处理,但是对主机210掩蔽了由该处理引起的延迟。替代地,在一些情况下,固态非易失性存储设备230可以包括从一维硬盘存储设备240拉出的整个扇区(或者更大数据块),并允许仅覆写给定扇区的一部分。当固态非易失性存储设备230是满的并且访问固态非易失性存储设备230中未包括的地址时,发生高速缓存未命中。该高速缓存未命中使得至少将来自固态非易失性存储设备230的数据扇区回写到一维硬盘存储设备240(或者使固态非易失性存储设备230中的数据扇区无效),并且使得从包括要访问的地址的一维硬盘存储设备240读取数据扇区。在包括要访问的地址的数据未被包括在一维硬盘存储设备240中时,发生另一高速缓存未命中。该高速缓存未命中使得至少将来自一维硬盘存储设备240的数据扇区回写到二维硬盘存储设备245(或者,至少使一维硬盘存储设备240中的数据扇区无效),并且使得从包括要访问的地址的二维硬盘存储设备245读取数据扇区。应当注意,可以使用本领域中已知的任何高速缓存未命中支持方法和/或高速缓存替换方案来确定是否已发生高速缓存未命中,以及用来在不同的高速缓存级之间传输数据执行高速缓存替换。
作为一些其他优点,在使用多级高速缓存方案的情况下,可以使用对于分层非易失性存储设备220的较低的有效占空比。此外,由于对主机210掩蔽读取/修改/写入处理的延迟,因此一维硬盘存储设备240中的硬盘可以以非常低的旋转速率操作。
在本发明的一个特定实施例中,一维硬盘存储设备240是固态非易失性存储设备230十倍大,并且二维硬盘存储设备245是一维硬盘存储设备240十倍大。基于这里提供的公开,本领域普通技术人员将认识到根据本发明的不同实施例可以支持的固态非易失性存储设备230、一维硬盘存储设备240、和/或二维硬盘存储设备245之间的多种不同的比率。在本发明的一个特定实施例中,二维硬盘存储设备245是两兆兆字节(terabyte),一维硬盘存储设备240是五千兆字节(gigabyte),而固态非易失性存储设备230是五十兆字节(megabyte)。基于这里提供的公开,本领域普通技术人员将认识到根据本发明的不同实施例可以针对二维硬盘存储设备、一维硬盘存储设备和固态非易失性存储设备中的每个使用的多种存储器大小。
注意,在接收到来自主机210的针对分层非易失性存储器220的连续数据请求的情况下,控制器电路235可以使固态非易失性存储设备230被旁路。该旁路可以通过使用缓冲器250缓冲一维硬盘存储设备240和主机210之间的数据来实现。缓冲器250可以是本领域中已知的任何存储器设备。例如,缓冲器250可以是具有足以缓冲一维硬盘存储设备240所需要的传输块的大小的随机存取易失性固态存储器。因此,例如,在一维硬盘存储设备每次访问传输4096个字节的情况下,缓冲器250可以是8192个字节。去往/来自缓冲器250和一维硬盘存储设备240的传输由控制器电路235控制。作为示例,在主机210将读取多个数据扇区并且这些扇区均未被包括在固态非易失性存储设备230中的情况下,控制器电路235可以指引一维硬盘存储设备240直接支持读取而不使数据通过固态非易失性存储设备230。该方法避免了不必要的针对固态非易失性存储设备230的写入,这样的不必要的写入会减少其寿命。在一些数据存在于固态非易失性存储设备230中并且较之一维硬盘存储设备240上保持的数据被更新的情况下,可以在开始来自一维硬盘存储设备240的块传输之前触发从固态非易失性存储设备230到一维硬盘存储设备240的回写。基于该讨论,本领域普通技术人员将认识到可以根据本发明的不同实施例使用的用于避免对固态非易失性存储设备230的不必要的写入的其他旁路方法。
转到图3,示出了根据本发明的一个或多个实施例的包括可通信耦合到主机310的分层非易失性存储器320的系统300。主机310可以是任何能够传输去往和来自存储设备的数据的设备或系统。因此,主机310可以是(但不限于)如本领域中的已知的微处理器、基于计算机的系统、或者接口电路。基于这里提供的公开,本领域普通技术人员将认识到根据本发明的不同实施例的可以用作主机的多种设备和/或系统。
分层非易失性存储器320包括两个存储器层。具体地,分层非易失性存储器320包括:包括固态非易失性存储设备330的第一层,和包括一维硬盘存储设备340的第二层。固态非易失性存储设备330可以使用本领域中已知的任何固态存储器技术实现。因此,固态非易失性存储设备330可以使用(但不限于)闪速存储器、相变存储器、旋转转矩存储器、铁电存储器、磁存储器、电阻存储器、跑道存储器、基于氧化物陷阱的闪速存储器、或者本领域中已知的其他非易失性固态存储器类型来实现。固态非易失性存储设备330提供了快速I/O访问的优点,以及固态器件的其他益处,包括降低的功率和合理的可靠性。此外,固态非易失性存储设备330提供了在主机310和分层非易失性存储器320之间转译长和短的存储器访问的能力。
一维硬盘存储设备340是其中轨宽度基本上与用于从盘写入数据的写入头的宽度相同的硬盘。一维硬盘存储设备340可以包括相对长的数据扇区。这些扇区可以比主机310所支持的访问块长得多。例如,这些扇区的长度可以是4096个字节,而主机310支持的访问长度可能仅为512个字节。此外,一维硬盘存储设备340较之固态非易失性存储设备典型地提供更低的每比特成本,但是具有增加的访问延迟。
在本发明的一些实施例中,固态非易失性存储设备330操作作为针对一维硬盘存储设备340的高速缓存。两级之间的高速缓存处理由控制器电路335管理。该高速缓存处理提供了能够对主机310掩蔽读取/修改/写入指令的延迟的优点。换言之,尽管在一些情况下可能仍在固态非易失性存储设备330和一维硬盘存储设备340之间执行读取/修改/写入处理,但是对主机310掩蔽了由该处理引起的延迟。替代地,在一些情况下,固态非易失性存储设备330可以包括从一维硬盘存储设备340拉出的整个扇区(或者更大数据块),并且允许仅覆写给定扇区的一部分。当固态非易失性存储器330是满的并且访问固态非易失性存储器330中未包括的地址时,发生高速缓存未命中。该高速缓存未命中使得至少将来自固态非易失性存储设备330的数据扇区回写到一维硬盘存储设备340(或者使固态非易失性存储设备330中的数据扇区无效),并且使得从包括要访问的地址的一维硬盘存储设备340读取数据扇区。应当注意,可以使用本领域中已知的任何高速缓存未命中支持方法和/或高速缓存替换方案来确定是否已发生高速缓存未命中,以及在不同的高速缓存级之间传输数据。作为一些其他优点,在使用该高速缓存方案的情况下,可以使用对于分层非易失性存储设备320的较低的活跃占空比。此外,由于对主机310掩蔽了读取/修改/写入处理的延迟,因此一维硬盘存储设备340中的硬盘可以以低得多的旋转速率操作。
在本发明的一个特定实施例中,一维硬盘存储设备340是固态非易失性存储设备330得五十倍大。基于这里提供的公开,本领域普通技术人员将认识到固态非易失性存储设备330和一维硬盘存储设备340之间的多种不同的比率。在本发明的一个特定实施例中,一维硬盘存储设备340是一兆兆字节,而固态非易失性存储设备330是五千兆字节。基于这里提供的公开,本领域的普通技术人员将认识到根据本发明的不同实施例可以针对一维硬盘存储设备和固态非易失性存储设备中的每个使用得多种存储器大小。
注意,在接收到来自主机310的针对分层非易失性存储器320的连续数据请求的情况下,控制器电路335可以使固态非易失性存储设备330被旁路。该旁路可以通过使用缓冲器350缓冲一维硬盘存储设备340和主机310之间的数据来实现。缓冲器350可以是本领域中已知的任何存储器设备。例如,缓冲器350可以是具有足以缓冲一维硬盘存储设备340需要的传输块的大小的随机存取易失性固态存储器。因此,例如,在一维硬盘存储设备每次访问传输4096个字节的情况下,缓冲器350可以是4096个字节。去往/来自缓冲器350和一维硬盘存储设备340的传输由控制器电路335控制。作为示例,在主机310将读取多个数据扇区并且这些扇区均未被包括在固态非易失性存储设备330的情况下,控制器电路335可以指引一维硬盘存储设备340直接支持读取而不使数据通过固态非易失性存储设备330。该方法避免了不必要的针对固态非易失性存储设备330的写入,不必要的写入会减少其寿命。在一些数据存在于固态非易失性存储设备330中并且较之一维硬盘存储设备340上保持的数据被更新的情况下,可以在开始来自一维硬盘存储设备340的块传输之前触发从固态非易失性存储设备330到一维硬盘存储设备340的回写。基于该讨论,本领域普通技术人员将认识到根据本发明的不同实施例可以使用的用于避免对固态非易失性存储设备330的不必要的写入的其他旁路方法。
转到图4,示出了根据本发明的一个或多个实施例的包括可通信耦合到主机410的分层非易失性存储器420的系统400。主机410可以是任何能够传输去往和来自存储设备的数据的设备或系统。因此,主机410可以是(但不限于)如本领域中的已知的微处理器、基于计算机的系统、或者接口电路。基于这里提供的公开,本领域普通技术人员将认识到可以用作根据本发明的不同实施例的主机的多种设备和/或系统。
分层非易失性存储器420包括两个存储器层。具体地,分层非易失性存储器420包括:包括固态非易失性存储设备430的第一层和包括二维硬盘存储设备445的第二层。固态非易失性存储设备430可以使用本领域中已知的任何固态存储器技术实现。因此,固态非易失性存储设备430可以使用(但不限于)闪速存储器、相变存储器、旋转转矩存储器、铁电存储器、磁存储器、电阻存储器、跑道存储器、基于氧化物陷阱的闪速存储器、或者本领域中已知的其他非易失性固态存储器类型来实现。固态非易失性存储设备430提供了快速I/O访问的优点,以及固态器件的其他益处,包括降低的功率和合理的可靠性。此外,固态非易失性存储设备430提供了在主机410和分层非易失性存储器420之间转译长和短的存储器访问的能力。
二维硬盘存储设备445是其中轨宽度小于用于从盘写入数据的写入头的宽度相同的硬盘。通过提供小于写入宽度的轨宽度,二维硬盘存储设备445可以提供增加的面积密度,并且因而降低了存储设备的每比特的成本。该方法通常依赖于跨多个轨的强力的码。尽管提供了增加的比特密度,但是仍支持相对慢的I/O速率。然而,这些慢的访问时间平均起来由通过固态非易失性存储设备430的访问所隐藏。
在本发明的一些实施例中,固态非易失性存储设备430操作作为针对二维硬盘存储设备445的高速缓存。两级高速缓存之间的高速缓存处理由控制器电路435管理。该高速缓存处理提供了能够对主机410掩蔽读取/修改/写入指令的延迟的优点。换言之,尽管在一些情况下可能仍在固态非易失性存储设备430和二维硬盘存储设备445之间执行读取/修改/写入处理,但是对主机410掩蔽了由该处理引起的延迟。替代地,在一些情况下,固态非易失性存储设备430可以包括从二维硬盘存储设备445拉出的整个扇区(或者更大数据块),并且允许仅覆写给定扇区的一部分。当固态非易失性存储设备430是满的并且访问固态非易失性存储设备430中未包括的地址时,发生高速缓存未命中。该高速缓存未命中使得至少将来自固态非易失性存储设备430的数据扇区回写到二维硬盘存储设备445(或者使固态非易失性存储设备430中的数据扇区无效),并且使得从包括要访问的地址的二维硬盘存储设备445至少读取该数据扇区。应当注意,可以使用本领域中已知的任何高速缓存未命中支持方法和/或高速缓存替换方案来确定是否已发生高速缓存未命中,以及在不同的高速缓存级之间传输数据。
在本发明的一个特定实施例中,二维硬盘存储设备445是固态非易失性存储设备430的五十倍大。基于这里提供的公开,本领域普通技术人员将认识到固态非易失性存储设备430和二维硬盘存储设备445之间的多种不同的比率。在本发明的一个特定实施例中,二维硬盘存储设备445是两兆兆字节,而固态非易失性存储设备是十六千兆字节。基于这里提供的公开,本领域普通技术人员将认识到根据本发明的不同实施例可以针对一维硬盘存储设备和固态非易失性存储设备中的每个使用的多种存储器大小。
注意,在接收到来自主机410的针对分层非易失性存储器420的连续数据请求的情况下,控制器电路435可以使固态非易失性存储设备430被旁路。该旁路可以通过使用缓冲器450缓冲二维硬盘存储设备445和主机410之间的数据来实现。缓冲器450可以是本领域中已知的任何存储器设备。例如,缓冲器450可以是具有足以缓冲二维硬盘存储设备445所需要的传输块的大小的随机存取易失性固态存储器。因此,例如,在二维硬盘存储设备每次访问传输32K个字节的情况下,缓冲器450可以是64K个字节。去往/来自缓冲器450和二维硬盘存储设备445的传输由控制器电路435控制。作为示例,在主机410将读取多个数据扇区并且这些扇区均未被包括在固态非易失性存储设备430中的情况下,控制器电路435可以指引二维硬盘存储设备445直接支持读取而不使数据通过固态非易失性存储设备430。该方法避免了针对固态非易失性存储设备430的不必要的写入,该不必要的写入会减少其寿命。在一些数据存在于固态非易失性存储设备430中并且较之二维硬盘存储设备445上保持的数据被更新的情况下,可以在开始来自二维硬盘存储设备445的块传输之前触发从固态非易失性存储设备430到二维硬盘存储设备445的回写。基于该讨论,本领域普通技术人员将认识到可以根据本发明的不同实施例使用的用于避免对固态非易失性存储设备430的不必要的写入的其他旁路方法。
转到图5,示出了一维硬盘存储设备的部分500。部分500包括单个轨540,其包括散布有伺服数据区域520、530的多个用户数据区域525。写入头510与轨540相关地设置,并且可操作用于在写入头510在用户数据区域525上方通过时将磁模式(magnetic pattern)写入该区域。注意,轨540的宽度近似与写入头510的宽度512相同。应当注意,轨540是布置在如本领域已知的存储介质的表面上的许多个平行的轨中的一个。
在操作中,写入头以规定的速率在用户数据区域525上方通过。在写入头510在用户数据区域525上方通过时的每个比特周期期间,不同的电流通过写入头510,其在写入头510周围感生磁场。该磁场在与用户数据区域525对应的存储介质的表面上引起了变化的磁化水平。该磁场可以在以后感测并且用于重新生成原始写入到与用户数据区域525对应的存储介质的表面上的数据。注意,将数据码型(data pattern)写入到用户数据区域涉及使写入头在轨540上仅通过一次。
转到图6,示出了二维硬盘存储设备的部分600。部分600包括多个轨640,每个轨640包括分别散布有伺服数据区域620、622、624、630、632、634的相应的用户数据区域625、627、629。写入头610与多个轨640相关地设置,并且可操作用于在写入头610在两个或更多个用户数据区域625、627、629上方通过时将磁模式写入相应区域。注意,多个轨640中的各个轨中的任何轨的宽度(即,轨宽度614、轨宽度616和轨宽度618)每一均基本上小于写入头610的宽度612。应当注意,多个轨640中的各个轨是布置在如本领域已知的存储介质的表面上的多个平行的轨中的一些轨。应当注意,尽管写入头610被示出为约为任何给定轨的宽度的两倍,但是其他实施例也可以使用呈现不同的相互比例的宽度的写入头和轨。
结合图7a-7c更全面地描述二维硬盘存储设备的使用。转到图7a,写入头610在包括用户数据区域725和用户数据区域727的头两个轨上方通过。在写入头610在用户数据区域725和用户数据区域727上方通过时的每个比特周期期间,不同的电流通过写入头610,在写入头610周围感生磁场。该磁场在与用户数据区域725和用户数据区域727对应的存储介质的表面上引起了变化的磁化水平。这导致了将相同的“第一写入用户数据”写入用户数据区域725和用户数据区域727。
如图7b中所示,写入头610随后移动,使得其同时在用户数据区域727和用户数据区域729上方飞过。在写入头610在用户数据区域727和用户数据区域729上方通过时的每个比特周期期间,不同的电流通过写入头610,其在写入头610周围感生磁场。该磁场在与用户数据区域727和用户数据区域729对应的存储介质的表面上引起了变化的磁化水平。这导致了将相同的“第二写入用户数据”写入用户数据区域727和用户数据区域729。注意,先前被写入有第一写入用户数据的用户数据区域727被第二写入用户数据所覆写。
如图7c中所示,该处理继续,移动写入头610使得其同时在用户数据区域729和用户数据区域731上方飞过。在写入头610在用户数据区域729和用户数据区域731上方通过时的每个比特周期期间,不同的电流通过写入头610,其在写入头610周围感生磁场。该磁场在与用户数据区域729和用户数据区域731对应的存储介质的表面上引起了变化的磁化水平。这导致将相同的“第三写入用户数据”写入用户数据区域729和用户数据区域731。注意,先前被写入有第二写入用户数据的用户数据区域729被第三写入用户数据所覆写。
对于分块在一起的多个轨,重复图7a-7c中示出的“叠压(shingling)”效应。注意,由于移除了先前的基于写入头610的宽度的限制,因此可以实现非常高的比特密度。还应当注意,较之上文参照图5讨论的一维轨写入处理,这种叠压式写入的延迟可能实质性增加。
在本发明的一些实施例中,一维硬盘存储设备实现在与二维硬盘存储设备分开的分立设备上。在其他情况下,一维硬盘存储设备实现在与二维硬盘存储设备相同的设备上。转到图8,示出了根据本发明的一些实施例的包括实现在与二维硬盘存储设备相同的设备上的一维硬盘存储设备的多层存储设备800。特别地,多层存储设备800包括固态非易失性存储设备890。接口控制器820提供了对于作为一维硬盘存储设备访问或者二维硬盘存储设备访问的访问盘片878的控制。多层存储设备800还包括前置放大器870、硬盘控制器866、马达控制器868、主轴马达872、和读/写头876。接口控制器820控制去往/来自盘片878的数据的寻址和时序。盘片878上的数据由磁信号组构成,当读/写头组件876被适当地定位在盘片878上时,该组件可以检测这些磁信号。在一个实施例中,盘片878包括根据纵向或垂直记录方案记录的磁信号。再次地,可以根据与上文参照图5讨论的相似的一维硬盘存储设备或者与上文参照图6-7讨论的相似的二维硬盘存储设备,写入盘片878上存储设备的数据。
在典型的写操作中,确定要被写入的地址是否被包括在固态非易失性存储设备890中。在其被包括在固态非易失性存储设备890中的情况下,接口控制器820使得将来自主机(未示出)的写入数据802写入到固态非易失性存储设备890中的适当地址。另一方面,在该地址未被包括在固态非易失性存储设备890中而是被包括在盘片878的一维部分上的情况下,马达控制器868准确地将读写/头组件876定位在盘片878上的期望的数据轨上方。马达控制器868与盘片878相关地定位读/写头组件876,并且通过在硬盘控制器866的指引下将读/写头组件移动到盘片878上的适当的数据轨来驱动主轴马达872。主轴马达872使盘片878以确定的旋转速率(RPM)旋转。一旦读/写头组件878被定位为与适当的数据轨相邻,则在主轴马达872使盘片878旋转时,由读/写头组件876感测表示盘片878上的数据的磁信号。感测到的磁信号被提供为表示盘片878上的磁数据的连续的微小的模拟信号。该微小的模拟信号经由前置放大器870从读/写头组件876传输到读通道模块864。前置放大器870可操作用于放大从盘片878获取的微小的模拟信号。读通道模块810又对接收到的模拟信号进行解码和数字化以重新创建原始写入到盘片878的信息。该数据作为读取数据805被提供给固态非易失性存储设备890,在这里其被高速缓存。固态非易失性存储设备890又覆写与写入数据802对应的新近存储到固态非易失性存储设备890的数据部分。该写入数据802保留在固态非易失性存储设备890上,直至根据多层存储设备800所使用的高速缓存替换策略将其从固态非易失性存储设备890冲刷(flush)到盘片。
相反地,在数据在盘片878的一维部分上也不可用的情况下,可以根据高速缓存替换算法从盘片878的二维部分读取涵盖要被写入的地址的大的数据块,并将其写入到盘片878的一维部分以取代先前保持在盘片878的一维部分上的数据。然后可以经由读取数据805将块的子集传输到固态非易失性存储设备890。然后在固态非易失性存储设备890中修改要被写入的部分,其中其保留直到根据多层存储设备800所使用的高速缓存替换策略将其从固态非易失性存储设备890冲刷到盘片。
以相似的方式实现读取传输。此外,在要写入来自主机的大的传输并且数据不在固态非易失性存储设备890中的情况下,写入可以旁路固态非易失性存储设备890,并且作为替代,可以作为写入数据807经由读通道电路810直接写入到盘片878。这可以使用由接口控制器电路820识别的来自主机的专门的指令来进行。该方法可以用于限制固态非易失性存储设备890的磨损,并且由此延长其寿命。相似地,当主机请求大的读取请求并且数据不在固态非易失性存储设备890中时,读取请求可以旁路固态非易失性存储设备890,并且作为替代,可以作为读取数据803经由读通道电路810直接从盘片878读取。这可以使用由接口控制器电路820识别的来自主机的专门的指令来进行。该方法可以用于限制固态非易失性存储设备890的磨损,并且由此延长其寿命。
转到图9,流程图900示出了根据本发明的一些实施例的用于与分层非易失性存储设备相关地存储数据的方法。遵循流程图905,提供多层非易失性存储器(框905)。确定是否从主机接收到存储器写入请求(框910)或存储器读取请求(框955)。这些存储器写入请求和存储器读取请求可以是本领域中已知的任何请求类型。作为示例,存储器写入请求识别将从其开始写入数据的开始地址,以及将写入的数据的长度。在一些情况下,这些写入是基于块进行的。相似地,存储器读取请求识别将从其开始读取数据的开始地址,以及将写入的数据的长度。在一些情况下,这些写入和读取是基于块进行的。作为示例,块可以是512个字节。
在接收到存储器写入请求(框910)的情况下,确定要被写入的地址空间是否存储在固态存储设备中(框915)。在要被写入的地址空间存储在固态存储设备中(框915)的情况下,将新数据写入到固态存储设备(框920),并且写入处理完成。
替代地,在要被写入的地址空间未被包括在固态存储设备中(框915)的情况下,确定要被写入的地址空间是否存储在一维硬盘中(框925)。在要被写入的地址空间存储在一维硬盘中(框925)的情况下,从一维硬盘读取包括要被写入的地址空间的数据块,并且将其写入到固态存储设备(框930)。这包括替换固态存储设备中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。然后将新数据写入道固态存储设备(框935),并且写入处理完成。
替代地,在要被写入的地址空间未被包括在一维硬盘中(框925)的情况下,从二维硬盘读取包括要被写入的地址空间的数据块,并且将其写入到一维硬盘(框940)。这包括替换一维硬盘中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。此外,从一维硬盘读取包括要被写入的地址空间的数据块,并将其写入到固态存储设备(框945)。这包括替换固态存储设备中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。然后将新数据写入道固态存储设备(框950),并且写入处理完成。
另一方面,在接收到存储器读取请求(框955)的情况下,确定要被读取的地址空间是否存储在固态存储设备中(框960)。在要被读取的地址空间存储在固态存储设备中(框960)的情况下,从固态存储设备读取新数据(框965),并且读取处理完成。
替代地,在要被读取的地址空间未被包括在固态存储设备中(框960)的情况下,确定要被读取的地址空间是否存储在一维硬盘中(框970)。在要被读取的地址空间存储在一维硬盘中(框970)的情况下,从一维硬盘读取包括要被读取的地址空间的数据块,并将其写入到固态存储设备(框975)。这包括替换固态存储设备中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。然后从固态存储设备读取新数据(框980),并且读取处理完成。应当理解,在某些情况下,可以与针对固态存储设备的写入并行地将读取数据从一维硬盘直接传递到主机。这减少了高速缓存未命中期间招致的读取延迟。
替代地,在要被读取的地址空间未被包括在一维硬盘中(框970)的情况下,从二维硬盘读取包括要被读取的地址空间的数据块,并将其写入到一维硬盘(框985)。这包括替换一维硬盘中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。此外,从一维硬盘读取包括要被读取的地址空间的数据块,并将其写入到固态存储设备(框990)。这包括替换固态存储设备中的块。该替换可以根据本领域中已知的任何高速缓存替换算法进行。然后从固态存储设备读取数据(框995),并且读取处理完成。应当注意,在某些情况下,可以与针对一维硬盘的写入并行地将读取数据从二维硬盘直接传递到主机,或者与针对固态存储设备的写入并行地将读取数据从一维硬盘直接传递到主机。这减少了高速缓存未命中期间招致的读取延迟。
转到图10,流程图1000示出了根据本发明一个或多个实施例的用于旁路上层的固态非易失性存储设备的方法。遵循流程图1000,从主机接收大存储器请求(框1005)。存储器请求在其例如大于固态存储设备的大小的情况下可以被视为大的。作为另一示例,存储器请求在其例如大于所限定的大小的情况下可以被视为大的。基于这里提供的公开,本领域普通技术人员将认识到可以被视为大的多种请求大小。
确定存储器请求是读取请求还是写入请求(框1010)。这些存储器写入请求和存储器读取请求可以是本领域中已知的任何请求类型。作为示例,存储器写入请求识别将从其开始写入数据的开始地址,以及要写入的数据的长度。在一些情况下,这些写入是基于块进行的。类似地,存储器读取请求识别将从其读取数据的开始地址,以及要写入的数据的长度。在一些情况下,这些写入和读取是基于块进行的。作为示例,块可以是512个字节。
在接收到存储器写入请求(框1010)的情况下,确定要被写入的地址空间是否存储在固态存储设备中(框1015)。在要被写入的地址空间存储在固态存储设备中(框1015)的情况下,将新数据写入到固态存储设备(框1020),并且写入处理完成。这可以包括替换固态存储设备中保持的一部分数据。该替换可以根据本领域中已知的任何高速缓存替换算法进行。
替代地,在要被写入的地址空间未被包括在固态存储设备中(框1015)的情况下,确定要被写入的地址空间是否被包括在一维硬盘中(框1025)。在要被写入的地址空间存储在一维硬盘中(框1025)的情况下,执行针对一维硬盘的写入(框1030),并且写入处理完成。这可以包括替换一维硬盘上保持的一部分数据。该替换可以根据本领域中已知的任何高速缓存替换算法进行。替代地,在要被写入的地址空间未被包括在一维硬盘中(框1035)的情况下,执行针对二维硬盘的写入(框1035),并且写入处理完成。
另一方面,在存储器访问请求是读取访问请求(框1010)的情况下,确定要被读取的整个地址空间是否存储在固态存储设备中(框1050)。在要被读取的整个地址空间存储在固态存储设备中(框1050)的情况下,从固态存储设备读取新数据(框1055),并且读取处理完成。
替代地,在要被读取的整个地址空间未被包括在固态存储设备中(框1050)的情况下,确定要被读取的地址空间的一部分是否存储在固态存储设备中(框1060)。在一部分存储在固态存储设备上(框1060)的情况下,将该部分回写到一维硬盘和/或使其在固态存储设备上无效(框1065)。在要被读取的地址空间的任何部分均未存储在固态存储设备中(框1060)的情况下或者在已执行回写和/或无效(框1065)的情况下,确定要被读取的整个地址空间是否存储在一维硬盘上(框1070)。在要被读取的整个地址空间存储在一维硬盘上(框1070)的情况下,从一维硬盘执行读取请求(框1075),并且读取处理完成。
替代地,在要被读取的整个地址空间存储在一维硬盘上(框1070)的情况下,确定是否一部分地址空间保持在一维硬盘上(框1080)。在一部分存储在一维硬盘上(框1080)的情况下,将该部分回写到二维硬盘和/或使其在一维硬盘上无效(框1085)。在要被读取的地址空间的任何部分均未存储在一维硬盘上(框1080)的情况下,或者,在已执行回写和/或无效(框1085)的情况下,从二维硬盘执行读取(框1090),并且读取处理完成。
总之,本发明提供了新型的用于提供多层存储的系统、设备、方法和布置。尽管上文给出了本发明的一个或多个实施例的详细描述,但是各种替选、修改和等同方案对于本领域的技术人员是明显的而不偏离本发明的精神。因此,以上描述不应被视为限制本发明的范围,本发明的范围由所附权利要求限定。
Claims (20)
1.一种多层非易失性存储设备,所述设备包括:
硬盘存储设备;
固态非易失性存储设备,其中所述固态非易失性存储设备高速缓存所述硬盘存储设备上所包括的数据的子集;以及
控制器电路,其中所述控制器电路能够操作用于控制所述固态非易失性存储设备和所述硬盘存储设备之间的数据传输。
2.根据权利要求1所述的设备,其中所述硬盘存储设备选自一维硬盘存储设备和二维硬盘存储设备。
3.根据权利要求1所述的设备,其中所述硬盘存储设备包括一维硬盘存储设备和二维硬盘存储设备。
4.根据权利要求3所述的设备,其中所述一维硬盘存储设备高速缓存所述二维硬盘存储设备上所包括的数据的子集。
5.根据权利要求4所述的设备,其中所述控制器电路能够操作用于控制所述固态非易失性存储设备和所述硬盘存储设备之间的数据传输。
6.根据权利要求4所述的设备,其中所述二维硬盘存储设备是所述一维硬盘存储设备的三倍以上。
7.根据权利要求1所述的设备,其中所述控制器电路能够操作用于在执行主机和所述硬盘存储设备之间的多块传输时旁路所述固态非易失性存储设备。
8.根据权利要求7所述的设备,其中所述设备进一步包括:
缓冲器,其中所述缓冲器能够操作用于存储来自所述硬盘存储设备的数据块,并且在所述控制器电路的控制下执行针对请求主机的一系列的子块传输。
9.根据权利要求7所述的设备,其中所述设备进一步包括:
缓冲器,其中所述缓冲器能够操作用于从主机接收一系列的子块传输,并且在所述控制器电路的控制下将所述子块传输组合为针对所述硬盘存储设备的单块传输。
10.根据权利要求1所述的设备,其中所述硬盘存储设备至少在数量级上大于所述固态非易失性存储设备。
11.一种用于非易失性数据存储设备的方法,所述方法包括:
提供多层非易失性存储器,其中所述多层非易失性存储器包括:
硬盘存储设备;
固态非易失性存储设备,其中所述固态非易失性存储设备高速缓存所述硬盘存储设备上所包括的数据的子集;以及
控制器电路,其中所述控制器电路能够操作用于控制所述固态非易失性存储设备和所述硬盘存储设备之间的数据传输;以及
从主机接收访问所述多层非易失性存储器的请求;以及
响应所述请求。
12.根据权利要求11所述的方法,其中所述请求是读取请求,并且响应所述读取请求包括:
确定与所述读取请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在与所述读取请求对应的地址空间被包括在所述固态非易失性存储设备中的情况下,从所述固态非易失性存储设备响应所述读取请求。
13.根据权利要求11所述的方法,其中所述请求是读取请求,并且响应所述读取请求包括:
确定与所述读取请求对应的地址空间是否被包括在所述固态非易失性存储设备中;
在与所述读取请求对应的地址空间未被包括在所述固态非易失性存储设备中的情况下,将数据块从所述硬盘存储设备传输到所述固态非易失性存储设备,其中所述数据块包括与所述读取请求对应的地址空间;以及
从所述固态非易失性存储设备响应所述读取请求。
14.根据权利要求11所述的方法,其中所述请求是扩展的读取请求,并且其中响应所述扩展的读取请求包括:
确定与所述扩展的读取请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在与所述读取请求对应的地址空间未被包括在所述固态非易失性存储设备中的情况下,从所述硬盘存储设备响应所述扩展的读取请求而不通过所述固态非易失性存储设备。
15.根据权利要求11所述的方法,其中所述请求是写入请求,并且其中响应所述写入请求包括:
确定与所述写入请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在与所述写入请求对应的地址空间被包括在所述固态非易失性存储设备中的情况下,通过将与所述写入请求对应的数据写入所述固态非易失性存储设备来响应所述写入请求。
16.根据权利要求11所述的方法,其中所述请求是写入请求,并且其中响应所述写入请求包括:
确定与所述写入请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在与所述写入请求对应的地址空间未被包括在所述固态非易失性存储设备中的情况下,将数据块从所述硬盘存储设备传输到所述固态非易失性存储设备,其中所述数据块包括与所述写入请求对应的地址空间;以及
通过将与所述写入请求对应的数据写入到所述固态非易失性存储设备来响应所述写入请求。
17.根据权利要求11所述的方法,其中所述请求是扩展的写入请求,并且其中响应所述扩展的写入请求包括:
确定与所述扩展的写入请求对应的地址空间是被否包括在所述固态非易失性存储设备中;以及
在与所述扩展的写入请求对应的地址空间未被包括在所述固态非易失性存储设备中的情况下,通过将与所述扩展的写入请求对应的数据写入所述硬盘存储设备而不通过所述固态非易失性存储设备来响应所述扩展的写入请求。
18.根据权利要求11所述的方法,其中所述请求是扩展的写入请求,并且其中响应所述扩展的写入请求包括:
确定与所述扩展的写入请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在与所述扩展的写入请求对应的地址空间被至少部分地包括在所述固态非易失性存储设备中的情况下,通过使所述固态非易失性存储设备中的与所述扩展的写入请求对应的地址空间无效,以及将与所述扩展的写入请求对应的数据写入到所述硬盘存储设备而不通过所述固态非易失性存储设备,来响应所述扩展的写入请求。
19.根据权利要求11所述的方法,其中所述请求是扩展的读取请求,并且其中响应所述扩展的读取请求包括:
确定与所述扩展的读取请求对应的地址空间是否被包括在所述固态非易失性存储设备中;以及
在其中与所述读取请求对应的地址空间被至少部分地包括在所述固态非易失性存储设备中的情况下,通过将来自所述固态非易失性存储设备的与所述扩展的读取请求对应的地址空间写入到硬盘存储设备来响应所述扩展的读取请求,并且从所述硬盘存储设备响应所述扩展的读取请求而不通过所述固态非易失性存储设备。
20.一种非易失性存储系统,所述非易失性存储系统包括:
硬盘存储设备,其中所述硬盘存储设备包括:
存储介质;以及
接口控制器电路,其中所述接口控制器电路能够操作用于控制对所述存储介质的一维访问和对所述存储介质的二维访问;以及
固态非易失性存储设备,其中所述固态非易失性存储设备高速缓存所述硬盘存储设备上所包括的数据的子集;以及
控制器电路,其中所述控制器电路能够操作用于控制所述固态非易失性存储设备和所述硬盘存储设备之间的数据传输。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2009/049752 WO2011005249A1 (en) | 2009-07-07 | 2009-07-07 | Systems and methods for tiered non-volatile storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102265267A true CN102265267A (zh) | 2011-11-30 |
Family
ID=43429443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801527940A Pending CN102265267A (zh) | 2009-07-07 | 2009-07-07 | 用于分层非易失性存储设备的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20120102261A1 (zh) |
EP (1) | EP2452266A4 (zh) |
JP (1) | JP2012533112A (zh) |
KR (1) | KR20140040870A (zh) |
CN (1) | CN102265267A (zh) |
TW (1) | TW201103016A (zh) |
WO (1) | WO2011005249A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942159A (zh) * | 2014-03-19 | 2014-07-23 | 华中科技大学 | 一种基于混合存储设备的数据读写方法与装置 |
CN104007937A (zh) * | 2013-02-26 | 2014-08-27 | 希捷科技有限公司 | 云计算环境中的数据更新管理 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697115B2 (en) | 2011-10-26 | 2017-07-04 | Hewlett-Packard Development Company, L.P. | Segmented caches |
CN102521152B (zh) * | 2011-11-29 | 2014-12-24 | 华为数字技术(成都)有限公司 | 一种分级存储方法及系统 |
US11347443B2 (en) * | 2012-04-13 | 2022-05-31 | Veritas Technologies Llc | Multi-tier storage using multiple file sets |
US9092141B2 (en) * | 2012-04-18 | 2015-07-28 | Hitachi, Ltd. | Method and apparatus to manage data location |
US9785438B1 (en) * | 2012-10-11 | 2017-10-10 | Seagate Technology Llc | Media cache cleaning based on workload |
KR101569049B1 (ko) | 2013-03-15 | 2015-11-20 | 시게이트 테크놀로지 엘엘씨 | 패스 스루 스토리지 디바이스들 |
JP6148996B2 (ja) * | 2013-03-15 | 2017-06-14 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | 区分された読み出し‐修正‐書き込み操作のための装置および方法 |
US9164828B2 (en) | 2013-09-26 | 2015-10-20 | Seagate Technology Llc | Systems and methods for enhanced data recovery in a solid state memory system |
US9424179B2 (en) | 2013-10-17 | 2016-08-23 | Seagate Technology Llc | Systems and methods for latency based data recycling in a solid state memory system |
US9201729B2 (en) | 2013-10-21 | 2015-12-01 | Seagate Technology, Llc | Systems and methods for soft data utilization in a solid state memory system |
US9378840B2 (en) | 2013-10-28 | 2016-06-28 | Seagate Technology Llc | Systems and methods for sub-zero threshold characterization in a memory cell |
US9276609B2 (en) | 2013-11-16 | 2016-03-01 | Seagate Technology Llc | Systems and methods for soft decision generation in a solid state memory system |
US9135184B2 (en) * | 2013-12-12 | 2015-09-15 | International Business Machines Corporation | Load-through fault mechanism |
US9576683B2 (en) | 2014-02-06 | 2017-02-21 | Seagate Technology Llc | Systems and methods for hard error reduction in a solid state memory device |
US9378810B2 (en) | 2014-02-11 | 2016-06-28 | Seagate Technology Llc | Systems and methods for last written page handling in a memory device |
US9772782B2 (en) * | 2014-05-21 | 2017-09-26 | Seagate Technology Llc | Non-volatile complement data cache |
US9417814B1 (en) | 2015-02-12 | 2016-08-16 | HGST Netherlands B.V. | Tempered pacing of shingled magnetic storage devices |
KR101712594B1 (ko) * | 2016-06-22 | 2017-03-07 | 주식회사 모비젠 | 다계층 구조 스토리지에 대한 데이터 관리 시스템 및 그 방법 |
US11275684B1 (en) | 2020-09-15 | 2022-03-15 | Seagate Technology Llc | Media read cache |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1934529A (zh) * | 2004-02-04 | 2007-03-21 | 桑迪士克股份有限公司 | 海量存储加速器 |
CN101236524A (zh) * | 2007-01-16 | 2008-08-06 | 三星电子株式会社 | 混合硬盘驱动器、计算机系统、闪存直接存储器存取电路 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4075686A (en) * | 1976-12-30 | 1978-02-21 | Honeywell Information Systems Inc. | Input/output cache system including bypass capability |
US4399503A (en) * | 1978-06-30 | 1983-08-16 | Bunker Ramo Corporation | Dynamic disk buffer control unit |
EP0019358B1 (en) * | 1979-05-09 | 1984-07-11 | International Computers Limited | Hierarchical data storage system |
US4394733A (en) * | 1980-11-14 | 1983-07-19 | Sperry Corporation | Cache/disk subsystem |
US4454595A (en) * | 1981-12-23 | 1984-06-12 | Pitney Bowes Inc. | Buffer for use with a fixed disk controller |
EP0189944B1 (en) * | 1985-02-01 | 1993-05-12 | Nec Corporation | Cache memory circuit capable of processing a read request during transfer of a data block |
US5778418A (en) * | 1991-09-27 | 1998-07-07 | Sandisk Corporation | Mass computer storage system having both solid state and rotating disk types of memory |
US5999351A (en) * | 1996-08-27 | 1999-12-07 | International Business Machines Corporation | Multi-track density direct access storage device |
SG135056A1 (en) * | 2006-02-14 | 2007-09-28 | Trek 2000 Int Ltd | Data storage device using two types of storage medium |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
KR20090013394A (ko) * | 2007-08-01 | 2009-02-05 | 공윤옥 | 플래시메모리 기반의 솔리드스테이트디스크 복합 스토리지 |
US8347029B2 (en) * | 2007-12-28 | 2013-01-01 | Intel Corporation | Systems and methods for fast state modification of at least a portion of non-volatile memory |
-
2009
- 2009-07-07 KR KR1020117019871A patent/KR20140040870A/ko not_active Application Discontinuation
- 2009-07-07 EP EP09847170.9A patent/EP2452266A4/en not_active Withdrawn
- 2009-07-07 CN CN2009801527940A patent/CN102265267A/zh active Pending
- 2009-07-07 WO PCT/US2009/049752 patent/WO2011005249A1/en active Application Filing
- 2009-07-07 JP JP2012519524A patent/JP2012533112A/ja not_active Withdrawn
- 2009-07-07 US US13/126,746 patent/US20120102261A1/en not_active Abandoned
- 2009-08-24 TW TW098128396A patent/TW201103016A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1934529A (zh) * | 2004-02-04 | 2007-03-21 | 桑迪士克股份有限公司 | 海量存储加速器 |
CN101236524A (zh) * | 2007-01-16 | 2008-08-06 | 三星电子株式会社 | 混合硬盘驱动器、计算机系统、闪存直接存储器存取电路 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007937A (zh) * | 2013-02-26 | 2014-08-27 | 希捷科技有限公司 | 云计算环境中的数据更新管理 |
US11687292B2 (en) | 2013-02-26 | 2023-06-27 | Seagate Technology Llc | Data update management in a cloud computing environment |
CN103942159A (zh) * | 2014-03-19 | 2014-07-23 | 华中科技大学 | 一种基于混合存储设备的数据读写方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2452266A1 (en) | 2012-05-16 |
TW201103016A (en) | 2011-01-16 |
JP2012533112A (ja) | 2012-12-20 |
KR20140040870A (ko) | 2014-04-04 |
US20120102261A1 (en) | 2012-04-26 |
WO2011005249A1 (en) | 2011-01-13 |
EP2452266A4 (en) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102265267A (zh) | 用于分层非易失性存储设备的系统和方法 | |
CN102576293B (zh) | 固态存储设备和分层存储系统中的数据管理 | |
US10394493B2 (en) | Managing shingled magnetic recording (SMR) zones in a hybrid storage device | |
CN104050090B (zh) | 中间存储中的停留排序数据 | |
JP6732684B2 (ja) | 情報処理装置、ストレージデバイスおよび情報処理システム | |
US8706985B1 (en) | System and method for optimizing garbage collection in data storage | |
US9619178B2 (en) | Hybrid storage apparatus and logical block address assigning method | |
US7096378B2 (en) | Data storage system having a non-volatile IC based memory for storing user data | |
CN1265273C (zh) | 对数据存储介质并行读写访问的方法、数据存储驱动器以及自动数据存储库 | |
CN104049908B (zh) | 基于动态颗粒的中间存储 | |
US20040042112A1 (en) | Removable media storage system with memory for storing operational data | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
US6646948B1 (en) | Data storage system utilizing a non-volatile IC based memory for reduction of data retrieval time | |
US20020129200A1 (en) | Apparatus and method for defragmentation in disk storage system | |
US10152236B2 (en) | Hybrid data storage device with partitioned local memory | |
US9804786B2 (en) | Sector translation layer for hard disk drives | |
US8856438B1 (en) | Disk drive with reduced-size translation table | |
US9454990B1 (en) | System and method of conducting in-place write operations in a shingled magnetic recording (SMR) drive | |
CN101833994A (zh) | 使用数据存储装置在高速缓存存储器中存储叠块的技术 | |
US9070378B2 (en) | Partial write system | |
US20120151134A1 (en) | Data Storage Management in a Memory Device | |
CN100468548C (zh) | 具有可变索引结构的硬盘驱动器的缺陷管理 | |
US11275684B1 (en) | Media read cache | |
US20060218361A1 (en) | Electronic storage device with rapid data availability | |
US7170706B2 (en) | Hard disk system with non-volatile IC based memory for storing data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111130 |