CN105683930B - 用于数据存储系统的动态缓存方法和系统 - Google Patents
用于数据存储系统的动态缓存方法和系统 Download PDFInfo
- Publication number
- CN105683930B CN105683930B CN201380080591.1A CN201380080591A CN105683930B CN 105683930 B CN105683930 B CN 105683930B CN 201380080591 A CN201380080591 A CN 201380080591A CN 105683930 B CN105683930 B CN 105683930B
- Authority
- CN
- China
- Prior art keywords
- data
- write
- caching
- written
- direct
- 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
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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种用于数据存储系统的动态缓存方法,对需要写入的数据队列的写入方式进行动态判别,根据判别结果,对于适合直接写入的数据,将数据直接写入到存储介质,对于适合缓存写入的数据,将数据经缓存器件缓存后再写入存储介质。一种使用上述方法的动态缓存系统。所述方法和系统显著地缩小了缓存的空间需求,兼顾了容错性,提升了系统性能。
Description
技术领域
本发明涉及一种用于数据存储系统的动态缓存方法和系统,尤其是一种在固态存储应用环境下的动态缓存方法和系统。
背景技术
在数据存储系统中,为了缩短写延迟,提高写性能,对写入的数据进行缓存是常用的手段。基于闪存(NAND Flash)的数据存储技术在过去十几年发展迅速,在很多应用中逐渐取代了传统的磁记录硬盘(hard disk drive,HDD)。主要原因有:
1.速度快:基于闪存的数据存储不像传统HDD依靠磁头机械寻址,从而在数据读写速度上有本质性的提高,满足了应用对数据存储吞吐速度的日趋严格的需求
2.价格下降:随着半导体技术的进歩,闪存的容量也随着摩尔定律每不到两年增加一倍,单位容量价格也随着下降。目前MLC的闪存每GB的价格已从5年前的$10USD/GB降至现在的低于$1USD/GB。
3.控制器技术进步:闪存需要匹配的控制器(controller)才能与主机(host)通信实现数据存储读写。控制器技术的成熟促进了基于闪存的固态存储技术在越来越多的领域找到相应的应用,包括在高端的数据中心及移动智能电话中的应用。
固态硬盘(SSD)为数据存储系统的性能带来了革命性的提升,同时也对写缓存提出了新的要求并带来新的机遇。现有技术中固态硬盘SSD的系统结构如附图1所示。主机接口是数据读写命令的接口,上层应用通过主机接口发出所需读取写入数据的命令。由于闪存写入数据的延迟在1毫秒左右,相对较大,而在关键系统的应用中,毫秒级别的延迟不能满足要求。因此,在控制器系统的设计中,通常还有缓存模块,该模块可以是外置的DRAM,或者是控制器内部的SRAM。在对SSD写入数据时,控制器读取写入指令,将写入数据缓存在缓存模块中。在传统的SSD设计中所有的数据将被缓存模块缓存,而数据在写入缓存后写命令完成。由于缓存模块的写入延迟在微秒量级,能够大幅度减低写入延迟,提升系统性能。控制器在随后的操作中将缓存模块中的数据通过数据通道写入存储介质中。在SSD中,存储介质由多个闪存模块组成。固态硬盘SSD的写缓存系统框图参见附图2。
然而,现有技术的写缓存方案存在如下问题:
·缓存的大小-对于高带宽的流式数据的缓冲有可能需要相当大的缓存,将无法在控制器内部实现。
·带宽要求-如果缓存放在控制器片外的话,数据需要从主机进入控制器,从控制器到缓存,再从缓存回到控制器,再最终写入闪存。对于控制器芯片来说,其带宽要求是用户带宽的四倍。
·数据完整性-如何保证正确的读出最新数据。当仅有一部分数据写入到闪存中时,需从缓存中读取而不能从闪存中读取数据,缓存越大,判断的复杂度就越大,性能损失就越大。
·突发情况数据完整性-突然断电时必须将缓存中的数据进行紧急写入,否则将带来数据丢失,缓存越大,危险越大。
发明内容
为了解决上述问题,同时达到高性能和低代价,本发明提出了一种用于数据存储系统的动态缓存方法,对需要写入的数据队列的写入方式进行判别,根据判别结果对当前请求写入的数据块采用缓存的写入方式或者直接写入方式。其中一种判别方法为:如果对当前请求写入的数据块采用缓存写入方式、会造成缓存写入数据队列的长度超过上限Tbuf时,对当前请求写入的数据块采用直接写入方式写入,否则,对当前请求写入的数据块采用缓存写入方式写入。根据判别结果,对于需要直接写入的数据,将数据直接写入到存储介质,对于需要缓存写入的数据,将数据经缓存器件缓存后再写入存储介质。
其中,缓存写入数据队列长度上限Tbuf可以是预先设定的固定值。也可以动态调节,每当某些缓存写入完成、但缓存中相应缓存写入数据队列非空时,所述上限Tbuf会减去一个较小的数值;每当某些缓存写入完成、但缓存中相应缓存写入数据队列为空时,所述上限Tbuf会加上一个较大的数值。
写缓存由若干独立块组成;当某一块被填满时,控制器自动在最优的时间将数据块写入存储介质,在该数据缓存写入存储介质后,将该数据从缓存模块中移除,其空间可以迅速重复利用。
此外,对数据写入方式的判别可以采用静态的方式。如对于指定的数据类型可以采用直接写入方式。例如,可将所有flash文件系统数据管理器FTL产生的系统写入数据都采用直接写入方式写入存储介质,有利于节约缓存空间,使其更有效地服务于用户数据。
还有,所述存储介质为闪存、SSD、传统基于硬盘的阵列,或下一代存储介质的阵列,缓存可以是控制芯片内的SRAM或者外置的DRAM等。
本发明还提出了一种用于数据存储系统的动态缓存系统,包括主机接口、控制器、缓存与直接写入判断模块、缓存模块、数据写入通道、存储介质。主机接口用于传输上层应用中的写入数据队列。控制器用于从主机接口接收写入数据命令队列,并控制缓存与直接写入判断模块、缓存模块、数据写入通道等设备向存储介质中写入数据。缓存与直接写入判断模块对来自控制器的写入数据队列的写入方式进行判别,如果对当前请求写入的数据块采用缓存写入方式或者采用直接写入方式写入,缓存与直接写入判断模块根据判别结果,对于需要直接写入的数据,将数据通过数据写入通道直接写入到存储介质,对于需要缓存写入的数据,将数据经过缓存模块缓存后再通过数据写入通道写入存储介质。
其中,如果对当前请求写入的数据块采用缓存写入方式造成缓存写入数据队列的长度超过指定上限Tbuf时,将对当前请求写入的数据采用直接写入方式写入;否则,对当前请求写入的数据采用缓存写入方式写入。其中缓存写入数据队列长度上限Tbuf可以是预先设定的固定值。
缓存写入数据队列长度上限Tbuf也可以动态调节,每当某些缓存写入完成、但缓存中相应缓存写入数据队列非空时,所述上限Tbuf会减去一个较小的数值;每当某些缓存写入完成、但缓存中相应缓存写入数据队列为空时,所述上限Tbuf会加上一个较大的数值。
此外,缓存与直接写入判断模块可以对指定的数据类型采用指定的写入方式。例如,将所有flash文件系统数据管理器FTL产生的系统写入数据都采用直接写入方式写入存储介质。
还有,缓存中数据将来在存储介质的位置事先分配,在突发事件如断电,宕机等发生时,控制器自主将缓存中的部分数据紧急写入事先指定的位置。保证发生突发事件时,数据的完整性。
在本发明方法和系统中,数据的写入同时保留了直接写入(不通过缓存)和缓存写入两种模式,结合使用了两种写入方式的优点,利用了不同数据类型对写入性能的不同要求:
·流式数据,如拷贝文件,视频播放等。此时写入带宽比较平稳,用户对写延迟不敏感,同时无须缓存即可提取足够的并发度以满足带宽需求。
·突发性数据,如数据库等应用。此时写入带宽要求有很大的波动,且不可预测,用户对写延迟非常敏感。这时必须缓存数据,但缓存无须很大即可满足要求。
本发明的方法和系统实现了以下功能:
·自动检测并在毫秒级的时间内自适应选择当前的数据模式。
·在两种数据模式同时存在的情况下,用不同的方式写入数据,从而以最低的系统代价满足应用需求。
·在数据模式特征不显著时,保持良好的系统总体性能。
附图说明
附图1示出了现有技术中固态硬盘SSD的系统结构;
附图2示出了现有技术中固态硬盘SSD的动态缓存系统框图;
附图3示出了本发明的动态缓存系统结构框图;
附图4示出了本发明优选实施例中缓存写入数据队列的长度随时间变化的图线。
具体实施方式
以下根据优选实施例对本发明进行详细说明。
附图3中示出了本发明可用于固态硬盘SSD的动态缓存系统的结构框图。本发明的动态缓存系统包括主机接口、控制器、缓存与直接写入判断模块、缓存模块、数据写入通道、如闪存的存储介质。
在该动态缓存系统中,对数据写入包括直接写入和缓存写入两种方式。直接写入是数据不经缓存模块缓存数据,而是直接通过数据写入通道写入闪存芯片或其它存储介质,采用直接写入方式,每个闪存芯片可独立操作,虽然延时较大,但并行操作时可以提供极限带宽。缓存写入是写入数据经过缓存模块缓存数据后再写入闪存芯片或其它存储介质。缓存写入响应快,但带宽利用率不高。
主机接口用于传输上层应用中的写入数据命令队列。
控制器用于从主机接口接收写入数据块命令,并控制缓存与直接写入判断模块、缓存模块、数据写入通道等设备向如闪存的存储介质中写入数据。
缓存与直接写入判断模块对来自控制器的写入数据队列的写入方式进行判别,如果对当前请求写入的数据块采用缓存写入方式,会造成缓存写入数据队列的长度超过上限Tbuf时,对当前请求写入的数据采用直接写入方式写入,否则,对当前请求写入的数据采用缓存写入方式写入。直接写入是写入数据直接通过数据写入通道写入闪存芯片或其它存储介质,缓存写入是写入数据经过缓存模块缓存后再写入闪存芯片或其它存储介质。缓存与直接写入判断模块可以独立于控制器之外设置,也可以设置在控制器中。
其中,缓存写入数据队列长度上限Tbuf可以是预先设定的固定值,也可以是在固定值的基础上自适应调整,例如可以采用以下方法动态调节,即,每当某些缓存写入完成,但缓存中相应缓存写入数据队列非空时,Tbuf会减去一个较小的数值;每当某些缓存写入完成,但缓存中相应缓存写入数据队列为空时,Tbuf会加上一个较大的数值。
这个算法叫做钳位算法,其目的是使得缓存中缓存写入数据队列的长度在随时间变化时,局部最小值接近零但不等于零,如附图4所示。如果缓存写入数据队列长度为零,则在一定时间内缓存写入功能闲置,导致浪费。此时,应该加大缓存写入的比例。反之,如果缓存写入数据越积越多,缓存写入数据队列长度过大,短时间内无法下降到比较小的数值,则应该增大直接写入的比例,从而更有效利用存储介质提供的写入带宽。
在可动态调整缓存写入数据队列长度上限Tbuf时,随上限Tbuf的变化,相同长度的写入数据可能通过不同方法写入,但较大的写入请求更有可能直接写入,较小的请求更有可能被缓存写入。从而,针对系统现状对不同的请求实现了相应的优化。
本发明采用上述算法,在缓存空间固定的情况下,实现了从小块数据到大块数据、从小并发度到大并发度的智能写入,在带宽和延时方面获得了较佳性能,并能随数据流量模式变化而自动跟踪变化,从而达到稳定可靠的高性能。
此外,缓存与直接写入判断模块还可对所有flash文件系统数据管理器FTL产生的写入数据(如磨损均衡,垃圾回收等)都采用直接写入方式写入闪存,从而节约缓存空间使其更有效服务于用户数据,进一歩提高系统效能。
上述实施例仅是优选的和示例性的,本领域技术人员可以根据本专利的描述,将所述方法应用于SSD以外的其他存储介质,其都由本专利的保护范围所覆盖。
Claims (8)
1.一种用于数据存储系统的动态缓存系统,包括主机接口、控制器、缓存与直接写入判断模块、缓存模块、数据写入通道、存储介质,
主机接口用于传输上层应用中的写入数据队列,
控制器用于从主机接口接收写入数据命令队列,并控制缓存与直接写入判断模块、缓存模块、数据写入通道向存储介质中写入数据,
其特征在于:
缓存与直接写入判断模块对来自控制器的写入数据队列中的对应的数据块进行实时判别,对当前请求写入的数据采用直接写入方式写入或者采用缓存写入方式写入,
缓存与直接写入判断模块根据判别结果,对于需要直接写入的数据,将数据通过数据写入通道直接写入到存储介质,对于需要缓存写入的数据,将数据经过缓存模块缓存后再通过数据写入通道写入存储介质,如果对当前请求写入的数据块采用缓存写入方式会造成缓存写入数据队列的长度超过上限Tbuf时,对当前请求写入的数据采用直接写入方式写入,否则,对当前请求写入的数据采用缓存写入方式写入。
2.如权利要求1所述的动态缓存系统,其特征在于:缓存写入数据队列长度上限Tbuf可以是预先设定的固定值;也可以动态调节自适应,每当某些缓存写入完成、但缓存中相应缓存写入数据队列非空时,所述上限Tbuf会减去一个较小的数值,每当某些缓存写入完成、但缓存中相应缓存写入数据队列为空时,所述上限Tbuf会加上一个较大的数值。
3.如权利要求1或2所述的动态缓存系统,其特征在于:缓存与直接写入判断模块将指定一类数据全部采用直接或者缓存写入方式而非做动态判定。
4.如权利要求1或2所述的动态缓存系统,其特征在于:所述存储介质为闪存和传统基于硬盘的阵列,缓存模块是控制芯片内的SRAM或者外置的DRAM。
5.如权利要求1或2所述的动态缓存系统,其特征在于:所述缓存与直接写入判断模块设置在控制器中。
6.一种用于数据存储系统的动态缓存方法,其特征在于:
对需要写入的数据队列的写入方式进行判别,
根据判别结果,对于需要直接写入的数据,将数据直接写入到存储介质,对于需要缓存写入的数据,将数据经缓存器件缓存后再写入存储介质,如果对当前请求写入的数据块采用缓存写入方式会造成缓存写入数据队列的长度超过上限Tbuf时,对当前请求写入的数据采用直接写入方式写入,否则,对当前请求写入的数据采用缓存写入方式写入。
7.如权利要求6所述的动态缓存方法,其特征在于:缓存写入数据队列长度上限Tbuf可以是预先设定的固定值;也可以动态调节,每当某些缓存写入完成、但缓存中相应缓存写入数据队列非空时,所述上限Tbuf会减去一个较小的数值;每当某些缓存写入完成、但缓存中相应缓存写入数据队列为空时,所述上限Tbuf会加上一个较大的数值。
8.如权利要求6或7所述的动态缓存方法,其特征在于:将指定一类的所有写入数据都采用直接写入方式写入存储介质。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/001308 WO2015061921A1 (zh) | 2013-10-29 | 2013-10-29 | 用于数据存储系统的动态缓存方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105683930A CN105683930A (zh) | 2016-06-15 |
CN105683930B true CN105683930B (zh) | 2019-05-31 |
Family
ID=53003064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380080591.1A Active CN105683930B (zh) | 2013-10-29 | 2013-10-29 | 用于数据存储系统的动态缓存方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9898413B2 (zh) |
CN (1) | CN105683930B (zh) |
WO (1) | WO2015061921A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068768B (zh) * | 2015-08-26 | 2020-06-26 | 华为技术有限公司 | 一种写策略控制方法和装置 |
CN107797756B (zh) * | 2016-09-05 | 2021-01-12 | 上海宝存信息科技有限公司 | 固态硬盘系统的优先写入方法以及使用该方法的装置 |
CN107329906B (zh) * | 2017-05-10 | 2018-07-03 | 北京邮电大学 | 一种高带宽的多尺度故障位图缓存结构 |
KR102566635B1 (ko) | 2017-12-18 | 2023-08-14 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 그 동작 방법 |
CN108197039B (zh) * | 2017-12-28 | 2022-01-11 | 湖南国科微电子股份有限公司 | 一种ssd控制器混合流数据的传输方法和系统 |
CN110187828B (zh) * | 2019-04-12 | 2023-03-28 | 深圳市金泰克半导体有限公司 | Nand闪存的垃圾回收方法及nand闪存 |
CN114817319A (zh) * | 2021-01-21 | 2022-07-29 | 华为云计算技术有限公司 | 一种缓存管理方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4916605A (en) * | 1984-03-27 | 1990-04-10 | International Business Machines Corporation | Fast write operations |
CN101149668A (zh) * | 2007-11-02 | 2008-03-26 | 杭州华三通信技术有限公司 | 一种包括读写缓存的存储设备及缓存实现方法 |
CN101866328A (zh) * | 2010-04-01 | 2010-10-20 | 和记奥普泰通信技术有限公司 | 一种自动访问的串行总线读写控制方法 |
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2286267A (en) * | 1994-02-03 | 1995-08-09 | Ibm | Energy-saving cache control system |
US6922754B2 (en) * | 2002-12-09 | 2005-07-26 | Infabric Technologies, Inc. | Data-aware data flow manager |
US7401188B2 (en) * | 2005-06-29 | 2008-07-15 | Intel Corporation | Method, device, and system to avoid flushing the contents of a cache by not inserting data from large requests |
FR2906624A1 (fr) * | 2006-10-03 | 2008-04-04 | Bull S A S Soc Par Actions Sim | Systeme et procede de stockage de masse. |
US8683139B2 (en) * | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
US10430338B2 (en) * | 2008-09-19 | 2019-10-01 | Oracle International Corporation | Selectively reading data from cache and primary storage based on whether cache is overloaded |
US9213628B2 (en) * | 2010-07-14 | 2015-12-15 | Nimble Storage, Inc. | Methods and systems for reducing churn in flash-based cache |
CN102385562A (zh) * | 2010-08-31 | 2012-03-21 | 联想(北京)有限公司 | 计算机和数据交互方法 |
CN102137454B (zh) * | 2010-09-26 | 2013-09-25 | 华为技术有限公司 | 业务叠加网络中的内容存储方法及设备 |
US9202512B2 (en) * | 2011-09-01 | 2015-12-01 | Marvell International Ltd. | Data storage device |
US9298636B1 (en) * | 2011-09-29 | 2016-03-29 | Emc Corporation | Managing data storage |
CN102521175B (zh) | 2011-12-20 | 2014-10-29 | 山东大学 | 一种sdram控制器及其工作方法 |
CN103207836B (zh) * | 2012-01-16 | 2016-01-20 | 百度在线网络技术(北京)有限公司 | 一种用于固态存储硬盘的写方法及写装置 |
US9645917B2 (en) * | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
US9507733B2 (en) * | 2013-06-21 | 2016-11-29 | Microsoft Technology Licensing, Llc | Cache destaging for virtual storage devices |
US9274713B2 (en) * | 2014-04-03 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache |
-
2013
- 2013-10-29 WO PCT/CN2013/001308 patent/WO2015061921A1/zh active Application Filing
- 2013-10-29 CN CN201380080591.1A patent/CN105683930B/zh active Active
- 2013-10-29 US US15/032,817 patent/US9898413B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4916605A (en) * | 1984-03-27 | 1990-04-10 | International Business Machines Corporation | Fast write operations |
CN101149668A (zh) * | 2007-11-02 | 2008-03-26 | 杭州华三通信技术有限公司 | 一种包括读写缓存的存储设备及缓存实现方法 |
CN101866328A (zh) * | 2010-04-01 | 2010-10-20 | 和记奥普泰通信技术有限公司 | 一种自动访问的串行总线读写控制方法 |
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160283387A1 (en) | 2016-09-29 |
WO2015061921A1 (zh) | 2015-05-07 |
CN105683930A (zh) | 2016-06-15 |
US9898413B2 (en) | 2018-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105683930B (zh) | 用于数据存储系统的动态缓存方法和系统 | |
US8225044B2 (en) | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system | |
US7549021B2 (en) | Enhanced data integrity using parallel volatile and non-volatile transfer buffers | |
US10740242B2 (en) | Sensing device data caching | |
US20190251023A1 (en) | Host controlled hybrid storage device | |
CN105474185B (zh) | 基于高速缓存的功率节省 | |
WO2007133646B1 (en) | Adaptive storage system including hard disk drive with flash interface | |
JP2006024211A5 (zh) | ||
CA2469517A1 (en) | Application management and interface for cluster control of time shift buffer | |
US20080162788A1 (en) | Memory Controller with Automatic Command Processing Unit and Memory System Including the Same | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
US20100088466A1 (en) | Storage device, storage control device, and control method | |
JP2006178923A5 (zh) | ||
CN101957729B (zh) | 逻辑块变换方法及基于该方法兼容用户读写的方法和装置 | |
US9959052B1 (en) | Media based cache for data storage device | |
US9588898B1 (en) | Fullness control for media-based cache operating in a steady state | |
US10459658B2 (en) | Hybrid data storage device with embedded command queuing | |
GB2531105A (en) | Implementing enhanced performance with read before write to phase change memory to avoid write cancellations | |
CN105493185B (zh) | 数据存储装置的数据迁移 | |
CN104516827B (zh) | 一种读缓存的方法及装置 | |
CN206628271U (zh) | 光盘库开关控制装置及光盘式数据中心 | |
US9367258B2 (en) | Systems and methods for managing storage space in hybrid data storage systems | |
KR20090121228A (ko) | 정보 기록 방법 및 정보 기록 장치 | |
US10019404B2 (en) | Accessing method for accessing hybrid hard-disk drive | |
CN107632790A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |