CN105389121A - 有效率释出序列输入输出串流的方法及装置 - Google Patents

有效率释出序列输入输出串流的方法及装置 Download PDF

Info

Publication number
CN105389121A
CN105389121A CN201510509600.5A CN201510509600A CN105389121A CN 105389121 A CN105389121 A CN 105389121A CN 201510509600 A CN201510509600 A CN 201510509600A CN 105389121 A CN105389121 A CN 105389121A
Authority
CN
China
Prior art keywords
memory controller
write
full
memory
striped
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
CN201510509600.5A
Other languages
English (en)
Other versions
CN105389121B (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.)
Seagate Cloud Systems Corp
Original Assignee
Dot Hill Systems 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
Priority claimed from US14/465,291 external-priority patent/US8930619B2/en
Application filed by Dot Hill Systems Corp filed Critical Dot Hill Systems Corp
Publication of CN105389121A publication Critical patent/CN105389121A/zh
Application granted granted Critical
Publication of CN105389121B publication Critical patent/CN105389121B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Abstract

本发明系揭露一种自一存储控制器释出写入数据至存储元件的方法。此方法包含决定一快取元素应该自该存储控制器的一写入快取记忆体移转至该存储元件、计算出一脏水标是在一脏水标最大值之上、辨别一第一快取元素将自该写入快取记忆体释出至该存储元件、将包含该第一快取元素的一第一数据容器移转至该存储元件、以及由该存储控制器将一有效释出计数增加。此方法也包含重复该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话。该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目,以及该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。

Description

有效率释出序列输入输出串流的方法及装置
技术领域
本发明所属技术领域大致相关于电脑数据存储系统,特别是关于有效率地自一存储控制器快取记忆体将序列输入输出串流释出至存储元件的一条纹区域的方法及装置。
背景技术
在数据存储系统中,系藉由许多熟知的技术例如是包括写回快取等数据快取技术来提升写入效能。当一存储控制器自一主机电脑接收一写入请求时,假如此写入快取中尚有空间的话,此存储控制器将写入数据存入写入快取,且会通知此主机电脑已完成此写入请求。如此可以使得此主机电脑能够继续发出额外的读取或是写入请求。假如此写入快取中并没有空间的话,此存储控制器则必须将写入数据直接存入速度较慢的存储元件中,如此会减缓写入效能。
一旦将写入数据存入写入快取后,此存储控制器会启动不同的策略来决定在何时、选取哪些、及多少数目以将写入数据移转至存储元件。与此移转相关的这些行动通称为自写入快取释出数据。释出数据是很重要的因为其释放出写入快取内的空间以自主机电脑接收新的写入请求,且这些数据是以磁盘阵列(redundantarrayofinexpensivedisk,RAID)的组态存储于存储元件中。磁盘阵列组态可以在单一存储元件失效的事件中仍保留数据-且某些磁盘阵列组态-可以在多重存储元件失效的事件中仍保留数据。因此需要提供一种有效率自一存储控制器快取记忆体将写入数据释出至存储元件的方法及装置。
发明内容
本发明系关于解决现有技术一些缺点的方案。根据本发明的实施例,提供一种有效率地自一存储控制器释出写入数据至存储元件的方法。此方法包含由该存储控制器决定一快取元素应该自该存储控制器的一写入快取记忆体移转至该存储元件。该快取元素为该写入快取记忆体的一固定部分大小。此方法也包含由该存储控制器计算出一脏水标是在一脏水标最大值之上,由该存储控制器辨别一第一快取元素将自该写入快取记忆体释出至该存储元件,将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件,及由该存储控制器将一有效释出计数增加。该脏水标辨别在该写入快取记忆体中的脏数据数目,且该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据。该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目。该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。此方法还包含假如该有效释出计数是小于一有效释出计数最大值的话,则由该存储控制器重复该决定、计算、辨别、移转和增加等动作。
于本发明另外的实施例中提供一种有效率地释出写入数据至存储元件的存储控制器。此存储控制器包含一个处理器,以及一记忆体,与该处理器耦接。该记忆体包括一写入快取记忆体,其包含复数个快取元素。该快取元素为该写入快取记忆体的一固定部分大小。该存储控制器决定一快取元素应该自该写入快取记忆体移转至该存储元件,计算出一脏水标是在一脏水标最大值之上,辨别一第一快取元素自该写入快取记忆体释出至该存储元件,将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件,将一有效释出计数增加,以及重复该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话。该脏水标辨别在该写入快取记忆体中的脏数据数目,其中该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据。该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目。该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。
于本发明另外的实施例中提供一种有效率释出写入数据至存储元件的系统。此系统包含一个主机电脑,一存储控制器,与该主机电脑耦接,以及一虚拟磁盘其包括一个或多个存储元件,与该存储控制器耦接。此存储控制器包含一个处理器,以及一记忆体,与该处理器耦接。该记忆体包括一写入快取记忆体,其包含复数个快取元素。该快取元素为该写入快取记忆体的一固定部分大小。该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。该主机电脑传送一写入请求至该存储控制器,为了响应接收该写入请求,该存储控制器存储该写入请求所对应的写入数据至复数个快取元素中。该存储控制器决定一快取元素应该自该写入快取记忆体移转至该存储元件,计算出一脏水标是在一脏水标最大值之上,辨别一第一快取元素自该写入快取记忆体释出至该存储元件,将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件,将一有效释出计数增加,以及重复该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话。该脏水标辨别在该写入快取记忆体中的脏数据数目,其中该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据。该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目。
本发明的一个优点是可以藉由有效率地自一存储控制器释出写入数据至存储元件来改善一条纹虚拟磁盘的写入效率。若是没有使用有效率的方式将条纹释出至一条纹区域,会发生以下两种情况之一。一存储控制器或许会太过度地自写入数据快取记忆体复制数据至条纹区域,而导致大致上写入数据快取记忆体的低度使用及造成其失去效果。或者是,一存储控制器或许会太消极地自写入数据快取记忆体复制数据至条纹区域,而导致写入数据快取记忆体大致上都是满的状态。当写入数据快取记忆体是满的状态时,存储控制器必须暂缓新的写入直到在此写入数据快取记忆体有新的可用空间,或者是以写过方式将此新的写入数据直接写入存储元件内。两种方式都会造成效能低落的结果。
本发明的另一个优点是可以连续释出最大数量的可用写入数据,其可以在写入快取记忆体中释放出最多空间以供主机电脑写入数据。写入快取记忆体中如此的最大可用空间,允许存储控制器存储较多的写入请求以及在写入快取记忆体中存储较多的写入请求。
本发明的又一个优点是相较于现有技术必须依序检查每一笔脏的快取元素可以允许更快速地搜寻可以释出的较佳替代写入数据。本发明利用数据容器的概念以迅速地辨别可用的满条纹以供释出。一般而言,数据容器的数目是远小于快取元素的,因为每一个数据容器中包含预设数目的快取元素。此外,释出串流的数目也是远小于数据容器的,所以本发明所使用的搜寻释出串流也是远快于搜寻数据容器或是快取元素。
本发明内容说明章节目的并非在于定义本发明。本发明系由权利要求所定义。举凡本发明的实施例、特征、目的及优点等将可通过下列说明专利申请范围及所附附图获得充分了解。
附图说明
图1a绘示本发明第一实施例的非主机为基型的数据存储系统的方块图。
图1b绘示本发明第二实施例的非主机为基型的数据存储系统的方块图。
图1c绘示本发明第三实施例的非主机为基型的数据存储系统的方块图。
图2a绘示本发明第一实施例的主机为基型的数据存储系统的方块图。
图2b绘示本发明第二实施例的主机为基型的数据存储系统的方块图。
图2c绘示本发明第三实施例的主机为基型的数据存储系统的方块图。
图3绘示本发明一实施例的数据存储系统的方块图。
图4a显示根据本发明实施例之一单一存储元件条纹区域的方块示意图。
图4b显示根据本发明实施例之一多重存储元件条纹区域的方块示意图。
图5显示根据本发明实施例之一写入数据快取记忆体的数据流程的方块示意图。
图6显示根据本发明实施例之一3+1磁盘阵列(RAID)5条纹区域的一范例数据容器的示意图。
图7a显示根据本发明实施例之一计算完整写入百分比的流程图。
图7b显示根据本发明实施例的完整写入百分比之一范例计算。
图8显示根据本发明实施例之一写入数据流大数据的参数示意图。
图9a显示根据本发明实施例之一数据流整体大数据的示意图。
图9b显示根据本发明实施例之一数据流虚拟磁盘大数据的示意图。
图10显示根据本发明实施例之一数据流大数据初始过程的流程图。
图11显示根据本发明实施例之一串流释放初始过程的流程图。
图12显示根据本发明实施例之一主要流程的流程图。
图13显示根据本发明实施例之一决定此目前快取元素是否能有效率地释出的主要流程的流程图。
图14显示根据本发明实施例之一辨别一较佳快取元素可以被释出的主要流程的流程图。
图15显示根据本发明实施例之一决定对应虚拟磁盘的释出串流梯度的主要流程的流程图。
其中,附图标记说明如下:
100数据存储系统
104主机电脑
108、108a、108b存储控制器
112主机汇流排或是网络
116、116a、116b存储元件
120存储元件汇流排
124、132存储子系统
128、136非主机为基型的数据存储系统
140控制器间通讯链路
212主机汇流排转接器
216、312中央处理器
220、316记忆体
224应用程序
308主机串流
320数据串流大数据
324读取数据快取记忆体
328写入数据快取记忆体
332主机输入输出写入请求
340计时器
344存储元件写入
348虚拟磁盘
352快取元素
404条纹N
408条纹N+1
412条纹N+2
416条纹N+3
420区块A
424区块B
428区块C
432区块D
436条纹M
440条纹M+1
444条纹M+2
448条纹M+3
452区块E
456区块F
460区块G
464区块H
468区块I
472区块J
476区块K
480区块L
484区块M
488区块N
492区块O
496区块P
320写入数据流大数据
328写入数据快取记忆体
332主机输入输出写入请求
344存储元件写入
352快取元素
504快取记忆体的空部分
508快取记忆体的脏部分
512脏水标
516最大脏水标百分比
604条纹
608区块
612数据容器
616空快取元素
620脏快取元素
624有效快取元素
804条纹
808满/部分条纹
812每一条纹中的快取元素
816每一条纹中的脏快取元素
820目前快取元素指针
824目前数据容器
828释出串流物件
832最小释出串流物件
836最大释出串流物件
840释出串流物件梯度
904满条纹写入亲和力值
908主机写入需求中断时间
912有效释出计数最大值
916释出串流梯度临界值
920有效释出计数
具体实施方式
本案发明人观察到自主机电脑至存储控制器间的某些输入输出工作负荷时所遭遇的一些效能问题。特别是,当牵涉到大量的序列写入串流时,存储控制器中的写入快取记忆体或许会难以进行有效的管理。
部分磁盘阵列的写入操作牵涉到将新的写入数据存储到一写入快取记忆体中,自存储元件读取旧的写入数据以及同位,产生新的同位,及写入新的写入数据以及新的同位至存储元件。如此的方式使得在一个完整条纹写入而不是部分条纹写入来处理同位磁盘阵列的写入操作会更有效率。本发明藉由在较大序列写入串流时释出完整条纹而不是部分条纹来改善效能。
图1a绘示本发明第一实施例的非主机为基型的数据存储系统100的元件方块图。
数据存储系统100包含一个或数个主机电脑104。主机电脑104一般为伺服器,但是也可为桌上型电脑或行动型电脑。主机电脑104执行应用程序而产生读取请求以及写入请求,通过主机汇流排112(或网络)将读取请求以及写入请求传送至存储控制器108。在本实施例中,主机汇流排(或网络)112可为SCSI,FC-AL,USB,Firewire,SSA,SAS,SATA,或高速汇流排(Infiniband)。在其他实施例中,主机汇流排(或网络)112可为Ethernet,iSCSI,FiberChannel,SSA,ESCON,ATM,FICON,NVMe,或高速汇流排(Infiniband)。
主机电脑104可与多个存储控制器108相连接,为了清楚起见,附图中仅显示出一个存储控制器108。在本实施例中,存储控制器108为磁盘阵列(RAID)控制器。在其他实施例中,存储控制器108为存储元件,例如调度、虚拟化、复制或备份装置。存储控制器108通过存储元件汇流排120将数据至存储子系统124内的两个存储元件116a、116b,或者通过存储元件汇流排120接收来自两个存储元件116a、116b的数据。存储元件汇流排120可为任何合适的存储汇流排或汇流排组,其包含但不仅限于SCSI,光纤通道(FiberChannel),SAS,SATA,orSSA,以便于存储控制器108与存储元件116之间直接传送数据。
在本实施例中,存储子系统124包含十二个存储元件116。在其他实施例中,存储子系统124可包含少于或多于十二个存储元件116。存储元件116包含多种类的存储元件,其包含硬盘驱动器、固态驱动器、光学驱动器、以及磁带驱动器。在指定的存储元件种类的范围内,有数个存储元件116的子类依据效能进行配置,例如硬盘驱动机依据快取空间、驱动频率(例如5400,7200,10000,以及1500RPM)、序列深度、随机传送率、或循序的传送率。
图1b绘示本发明第二实施例的非主机为基型的数据存储系统128的方块图。本实施例的数据存储系统128与第一实施例的数据存储系统100相似,差别在于存储子系统132与存储元件116设于存储控制器108内。如图1b所示,存储控制器108为一个RAID控制器。然而在其他实施例中,存储控制器108可为多个RAID控制器。
图1c绘示本发明第三实施例的非主机为基础型的数据存储系统136的方块图。本实施例的数据存储系统136与第一及第二实施例的数据存储系统100、128相似,差别在于存储控制器108包含有两个冗余存储控制器108a、108b。在本实施例中,当冗余存储控制器108a、108b其中一个发生失效状况时,由于冗余存储控制器108a、108b利用有效-有效(active-active)失效切换功能,使得存储元件116可被主机104持续地使用。内部控制器通讯链路140为冗余存储控制器108a、108b之间的通讯及数据传递路径,以便反映写入数据以及同步失效切换以及自动恢复的操作。
图2a绘示本发明第一实施例的主机型的数据存储系统200的方块图。本实施例的数据存储系统200相似于图1a的数据存储系统100,差别在于存储控制器108设于主机电脑104内。存储控制器108连接主机电脑104的区域汇流排,其包含RapidIO,PCI,PCI-X,或PCIExpress。存储控制器108可整合于主机电脑104的主机板,或者为附加的板体或其他形式与主机电脑104相组接。
图2b绘示本发明第二实施例的主机式的数据存储系统204的方块图。数据存储系统204将存储子系统124的功能整合于主机电脑104中。数据存储系统204为高度自给式整合数据系统。
图2c绘示本发明第三实施例的主机式的数据存储系统208的方块图。本实施例的数据存储系统208与数据存储系统200相似,但是将存储控制器108改由软件方式取代。主机电脑104与存储元件汇流排120之间通过主机汇流排转接器212来连接,藉此提供适当的数据与命令缓冲功能,就如同协定控制以及低阶错误操作一样。中央处理器216执行记忆体220内的应用程序240以便控制记忆体220与存储子系统124内的存储元件116a、116b之间的数据流通。
图3绘示本发明一实施例的数据存储系统300的方块图。数据存储系统300包含一个或多个主机电脑104,而主机电脑104通过汇流排112(或网络)与存储控制器108连接。主机电脑104产生主机串流,而主机串流为主机输入/输出请求332的数个群组。
存储控制器108包含一中央处理器312(或处理器),其执行存储于记忆体316内的程序指令,而记忆体316与中央处理器312耦接。中央处理器312包含任何适用于执行存储控制器108的程序的任何处理装置,例如微软x-86相容处理器、嵌入式处理器、行动处理器、且/或RSIC处理器。中央处理312可包含数个装置,其包含现场可编辑逻辑闸阵列(FPGAs)、记忆体控制器、北桥装置、且或南桥装置。
记忆体316可为挥发性记忆体、非挥发性记忆体、或挥发性与非挥发性记忆体的一种或多种组合。记忆体316包含韧体,其包含中央处理器312取得与执行的程序指令。非挥发性记忆体包含但不限制为快闪记忆体、SD、EPROM、EEPROM、硬盘、及NOVRAM。挥发性记忆体存储数个数据结构以及使用者数据。挥发性记忆体包含但不限制为SRAM、DDRRAM、DDR2RAM、DDR3RAM、Z-RAM、TTRAM、A-RAM、ETARAM、及其他形式的暂存记忆体。
记忆体316包含读取数据快取记忆体(readdatacache)324。在其他实施例中,记忆体316还可包含一写入数据快取记忆体328,读取数据快取记忆体324以及写入数据快取记忆体328分别改善了对于主机电脑104的读取与写入效能。记忆体316也包含数据流大数据320。数据流大数据320存储与主机输入/输出请求332相关的参数,且用于控制序列输入输出操作。
存储控制器108与存储子系统124、132相耦接,存储子系统124、132包含一个或数个虚拟磁盘348a-348n。每一个虚拟磁盘348是一个不同的磁盘阵列区域,且包括一个或多个存储元件116。常用的数据会自虚拟磁盘348中读取进入读取数据快取记忆体324,其可以相较于直接自虚拟磁盘348更快速地提供以响应主机读取请求332。写入数据系初始地存储于写入数据快取记忆体328,其可以相较于直接送至虚拟磁盘348更快速地处理。写入数据快取记忆体328被分割成一预设数目的固定大小快取元素352,在图中标示为CE0352a-CEn352n。存储控制器108自写入数据快取记忆体328移转存储元件写入344,更特定的是自快取元素352,至虚拟磁盘348。
在其他实施例中,存储控制器108包含数个计时器340。计时器340可为中央处理器312控制的硬件,或者为中央处理器312内执行的软件。计时器340量测主机写入需求中断时间908,其详细内容将随后讨论。计时器340的数量并未受限,在本发明中,全域仅配置有一个计时器340给所有的主机输入输出请求332。
可以理解的,存储控制器108可配置于数种不同的功能组织与架构,前提在不超出本发明附图与说明书的范围。
请参阅图4a,显示根据本发明实施例之一单一存储元件条纹区域400的方块示意图。
一单一存储元件116可以是一条纹区域400。存储元件116可以是硬盘驱动器、固态驱动器、光学驱动器、磁带驱动器以及其他型态的巨量数据存储元件。条纹区域400是一逻辑区域包含两个或更多大小相等的条纹。在一存储元件116上的一条纹区域之一部分是一区块。
图4a显示一具有四个条纹的条纹区域400,包括:条纹N404、条纹N+1408、条纹N+2412和条纹N+3416。条纹N404具有一区块A420、条纹N+1408具有一区块B424、条纹N+2412具有一区块C428及条纹N+3416具有一区块D432。虽然图4a仅显示一单一存储元件条纹区域400,其具有四个条纹404、408、412和416,以及四个区块420、424、428和432,但也可以理解为一单一存储元件条纹区域400可以具有较四个条纹/区块数目更多或是更少的条纹/区块。此外,一单一存储元件条纹区域400可以仅占据一单一存储元件116中可用数据存储空间的一部分,且可以具有其他的单一存储元件条纹区域400于此相同的单一存储元件116之中。当此单一存储元件116为一虚拟磁盘348时,此虚拟磁盘条纹大小即为区块420、424、428或432的大小。
请参阅图4b,显示根据本发明一实施例之一多重存储元件条纹区域434的方块示意图。
多重存储元件116或是多重存储元件116的一部分可以是一条纹区域434。图4b显示一条纹区域434横跨三个存储元件116a、116b和116c。此条纹区域434具有四个条纹,包括:条纹M436、条纹M+1440、条纹M+2444和条纹M+3448。条纹M436具有三区块E452、F456和G460。条纹M+1440具有三区块H464、I468和J472。条纹M+2444具有三区块K476、L480和M484。条纹M+3448具有三区块N488、O492和P496。虽然图4b仅显示一多重存储元件条纹区域434,其具有四个条纹436、440、444和448,以及三个存储元件116a、116b和116c,但也可以理解为一多重存储元件条纹区域434可以具有较四个条纹/三个存储元件116数目更多或是更少的条纹/存储元件。在此说明书中,"一条纹区域400、434"可以是一单一存储元件条纹区域400或是一多重存储元件条纹区域434。此外,一多重存储元件条纹区域434可以仅占据一组存储元件116中可用数据存储空间的一部分,且可以具有其他的多重存储元件条纹区域434于此相同的一组存储元件116之中。当此多重存储元件116为一虚拟磁盘348时,此虚拟磁盘条纹大小即为一条纹中区块的组合大小:即图4b中三个存储元件116内的区块452+456+460、464+468+472、476+480+484或488+492+496的大小。
请参阅图5,显示根据本发明一实施例之一写入数据快取记忆体328的数据流程的方块示意图。写入数据快取记忆体328是存储控制器108的记忆体316之一部分。写入数据快取记忆体328经由主机汇流排或是网络112自主机电脑104接收主机输入输出写入请求332,且将此写入数据作为脏数据存储于写入数据快取记忆体328之中。所谓脏数据是来自主机输入输出写入请求332而存储于写入数据快取记忆体328的写入数据,其尚未被写入存储元件116内。主机数据写入存储于此快取记忆体脏部分508之中,等待移转存储元件写入344自快取记忆体脏部分508至条纹区域400、434的条件。存储元件写入344可以是部分条纹写入或是完全条纹写入。写入数据快取记忆体328未被脏数据占据的部分是此写入数据快取记忆体328的空白部分,且可以用于自主机输入输出写入请求332接收数据。
一个脏水标512是由存储控制器108所控制以维持纪录此写入数据快取记忆体328中的脏数据数目。当更多的脏数据508累积在此写入数据快取记忆体328中,脏水标512会对应地增加,且脏数据508被释放至存储元件116后,此脏水标512也会对应地降低。
此写入数据快取记忆体328也可以包括一最高脏水标百分比516或是脏水标最大值,其是一个事先决定的值表示脏水标在特定时间的相对值以决定一快取元素352是否应该自此写入数据快取记忆体328释放至一虚拟磁盘348中。
当接收主机输入输出写入请求332,且写入至写入数据快取记忆体328后,快取记忆体的脏部份508会对应地扩展,只要在此写入数据快取记忆体328之中具有足够的空间来存储这些新的写入数据。当快取记忆体的脏部份508扩展时,快取记忆体的空部份504会缩减。类似地,当存储元件写入344自快取记忆体328移转数据至虚拟磁盘348时,快取记忆体的脏部份508会缩减且快取记忆体的空部份504会对应地扩展。
请参阅第6图,显示根据本发明一实施例之一3+1磁盘阵列(RAID)5条纹区域434的一范例数据容器600的示意图。此3+1磁盘阵列(RAID)5条纹区域434包括四个存储元件116,其在图中标示为存储元件116a、存储元件116b存储元件116c和存储元件116d。此范例条纹区域具有14个条纹604,标示为条纹0到条纹13。必须理解的是一条纹区域434可以视磁盘阵列、条纹区域大小或是其他的限制条件而具有任何数目的存储元件116或是条纹604。
此条纹604安排至一单一存储元件116的部份是一区块。在图6的范例中,每一个区块被分割成八个相同大小的快取元素(CEs)352。然而,在其他的实施例中,每一个区块可以具有较八个更多或更少数目的快取元素(CEs)352。在较佳实施例中,每一个快取元素(CEs)352是16K位元组。在其他的实施例中,每一个快取元素(CEs)352是较16K位元组更大或更小。每一个快取元素(CEs)352可以具有空616、脏620或是正确624的状态。只有脏快取元素620包含新的写入数据。正确快取元素624包含先前已写入至存储元件116的写入数据。
在图6的范例中,条纹区域434根据磁盘阵列5技术被映射,其中一同位区块根据条纹604在每一个存储元件116间旋转。在一实施例中,同位区块608a被分配至存储元件116d的条纹0、同位区块608b被分配至存储元件116c的条纹1,其余类推。
数据容器612是在接收到新写入数据时分配在条纹604的数据结构,且不会超越条纹604的边界。数据容器612包括未知、部分或是满三者之一的状态808。当数据容器612被初始产生时,此数据容器612具有未知的状态808。当新写入数据与数据容器612相关时,且仍具有一个或多个空快取元素(CEs)616,此数据容器612具有部分的状态808。当新写入数据与数据容器612相关时,且此数据容器612中的所有快取元素(CEs)352皆是脏快取元素620或是正确快取元素624时,此数据容器612具有满的状态808。在较佳实施例中,数据容器612被依序分配。然而,在其他实施例中,数据容器612可以以任何顺序被分配只要没有两个条纹604具有相同的数据容器612编号即可。
条纹3是图6的条纹区域434中第一个即将接收写入数据的条纹604,且因此是数据容器0。因为条纹3中所有的快取元素(CEs)352皆是脏快取元素620,数据容器0具有满的状态808。
条纹9是图6的条纹区域434中第二个即将接收写入数据的条纹604,且因此是数据容器1。因为条纹9中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器1具有部分的状态808。
条纹0是图6的条纹区域434中第三个即将接收写入数据的条纹604,且因此是数据容器2。因为条纹0中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器2具有部分的状态808。
条纹5是图6的条纹区域434中第四个即将接收写入数据的条纹604,且因此是数据容器3。因为条纹5中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器3具有部分的状态808。
条纹13是图6的条纹区域434中第五个即将接收写入数据的条纹604,且因此是数据容器4。因为条纹13中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器4具有部分的状态808。
条纹10是图6的条纹区域434中第六个即将接收写入数据的条纹604,且因此是数据容器5。因为条纹10中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器5具有部分的状态808。
条纹4是图6的条纹区域434中第七个即将接收写入数据的条纹604,且因此是数据容器6。因为条纹4中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器6具有部分的状态808。
条纹12是图6的条纹区域434中第八个即将接收写入数据的条纹604,且因此是数据容器7。因为条纹12中所有的快取元素(CEs)352皆是脏快取元素620或是正确快取元素624,数据容器7具有满的状态808。
条纹6是图6的条纹区域434中第九个即将接收写入数据的条纹604,且因此是数据容器8。因为条纹6中所有的快取元素(CEs)352皆是脏快取元素620或是正确快取元素624,数据容器8具有满的状态808。
条纹11是图6的条纹区域434中第十个即将接收写入数据的条纹604,且因此是数据容器9。因为条纹11中所有的快取元素(CEs)352并非皆是脏快取元素620或是正确快取元素624,数据容器9具有部分的状态808。
因为写入数据快取记忆体328中只有10个条纹604具有脏快取元素620或是正确快取元素624,因此仅有10个数据容器612被分配。
请参阅图7a,显示根据本发明一实施例之一计算满条纹写入百分比724的流程图。此计算满条纹写入百分比724的流程在本发明实施例中的不同节点中被调用以决定当一快取元素352应该自此写入数据快取记忆体328释放。此流程自方块704开始。
在方块704,对每一个虚拟磁盘348而言此存储控制器108自数据流大数据320获得属于部分条纹712及满条纹716中的脏或是正确快取元素的计数。流程继续至方块708。
在方块708,对每一个虚拟磁盘348而言此存储控制器108藉由每一虚拟磁盘720中脏或是正确快取元素的总和除以属于部分条纹712及满条纹716中的脏或是正确快取元素的计数,且将结果乘上100。每一虚拟磁盘720中脏或是正确快取元素的计数是和属于部分条纹712及满条纹716中的脏或是正确快取元素与属于满条纹716及满条纹716中的脏或是正确快取元素的总和相等。且流程于方块708结束。
请参阅图7b,显示根据本发明一实施例之一范例计算满条纹写入百分比724。此存储控制器108计算满条纹写入百分比724在本发明实施例流程中的不同节点;特别是,在图13中的方块1308及图14中的方块1420。此范例在以下系使用图7a中的流程步骤描述。
此存储控制器108对此写入数据快取记忆体328中的所有快取元素352维持数据流大数据320中的快取元素统计值。更特定的是,此存储控制器108维持每一虚拟磁盘属于部分条纹712中的脏或是正确快取元素的一目前计数,及每一虚拟磁盘属于满条纹716中的脏或是正确快取元素的一目前计数。因此,由此存储控制器108所管理的每一虚拟磁盘348皆具有一个属于部分条纹712中的脏或是正确快取元素的一目前计数,及每一虚拟磁盘属于满条纹716中的脏或是正确快取元素的一目前计数的独一无二的值。
此存储控制器108亦对此数据流大数据320中的每一虚拟磁盘720维持全脏或正确之快取元素352的一目前计数。每一虚拟磁盘720之全脏或正确之快取元素352的一目前计数是与每一虚拟磁盘716属于部分条纹712中的脏或是正确快取元素的一目前计数,及每一虚拟磁盘属于满条纹716中的脏或是正确快取元素的一目前计数的总和相等。
在某些实施例中的存储控制器108对数据流大数据320中的每一虚拟磁盘724维持满条纹写入百分比。在另一些实施例中,此存储控制器108系在需要时才对数据流大数据320中的每一虚拟磁盘724计算其满条纹写入百分比,且并未特别存储数据流大数据320中的每一虚拟磁盘724的满条纹写入百分比。在目前的范例中,对一给定虚拟磁盘348属于部分条纹712中的脏或是正确快取元素有25个而属于满条纹716中的脏或是正确快取元素则有50个。此存储控制器108藉由将属于部分条纹712中的25个脏或是正确快取元素加上属于满条纹716中的50个脏或是正确快取元素而对一给定虚拟磁盘720计算其脏或正确之快取元素的一目前计数。因此,对一给定虚拟磁盘348而言其一共有75个脏或是正确快取元素。
之后,此存储控制器108藉由将一给定虚拟磁盘720中属于满条纹716中的脏或是正确快取元素之目前计数除上整个虚拟磁盘中的个脏或是正确快取元素的目前计数来计算此给定虚拟磁盘348中的满条纹写入百分比724。因此50除以75是0.667,且当乘以100之后,此给定虚拟磁盘中的满条纹写入百分比724是67%。
请参阅图8,显示根据本发明实施例之一写入数据流大数据320的参数示意图。本发明的存储控制器108分成三个阶层管理大数据320:在快取元素352阶层、在数据容器612阶层、及在一释出串流物件828阶层。
在快取元素352阶层,此存储控制器108对每一条纹604维持其大数据。特别是,此存储控制器108根据每一快取元素352是否存在于此条纹604中来辨别每一条纹812中的快取元素。在此说明书中"存在"的意思是一快取元素253具有脏620或是正确624状态。此外,对每一条纹812中的快取元素而言,此存储控制器108辨别每一条纹812中的快取元素352是否为脏快取元素(即一快取元素具有脏620状态)。因为每一条纹604中脏快取元素的数目不可能超过整体快取元素的数目,每一条纹816中脏快取元素的数目总是等于或小于每一条纹812中整体快取元素的数目。此存储控制器108亦维持辨别一特定快取元素352的一目前快取元素指针820。
在数据容器612阶层,此存储控制器108将相关的快取元素352与特定数据容器612对应。此存储控制器108也对每一数据容器612维持数据流大数据320,其包括数据容器状态808。数据容器状态808辨别每一个数据容器612是满的或是部分满的。必须注意的是数据容器612仅在当一给定条纹604的至少一个快取元素352是脏620或是正确624的情况下才会建立,而且数据容器612在假如一区块中的每一个快取元素352具有空616状态的情况下并不会建立。因为此目前快取元素指针820辨别一特定快取元素352,其也辨别一特定数据容器612。举例而言,此目前快取元素指针820辨别目前数据容器824是数据容器C。
在释出串流物件828阶层,此存储控制器108辨别满数据容器612。满数据容器612是一给定条纹604中的每一个快取元素352皆是脏620或是正确624的数据容器612。若是一给定条纹604中的至少一个快取元素352是空616或是找不到的话,其对应的数据容器612就不是满的。此存储控制器108另外会将释出串流物件828合并成更大的释出串流物件828假如这些释出串流物件828在逻辑区块地址(LBA)中是直接邻接的话。图8显示数据容器612"E"、"F"、和"G"是满的数据容器612,每一个具有五个脏快取元素352。因此,此存储控制器108将"E"、"F"、和"G"合并成一个具有15个快取元素352的大释出串流物件836。一旦满数据容器612于此释出串流内,此存储控制器108辨别出一最小的释出串流物件832及一最大的释出串流物件836两者。在图8的范例实施例中,最小的释出串流物件832具有五个快取元素352而数据容器612"E"、"F"、和"G"是一具有十五个快取元素352之最大的释出串流物件836。
此存储控制器108此外也会为每一个虚拟磁盘348维持一释出串流梯度840于此数据流大数据320中。此释出串流梯度840是介于最大释出串流物件836与最小释出串流物件832两者间的差值,其中最大释出串流物件836包括合并释出串流物件828。因此,在图8的范例实施例中,此释出串流梯度840相当于15-5或是10个快取元素352。
此存储控制器108自较低逻辑区块地址至较高逻辑区块地址依序管理条纹604、快取元素352、数据容器612和释出串流物件828。此外,必须需注意的是此存储控制器108系对每一个虚拟磁盘348独立地管理图8中的大数据。
请参阅图9a,显示根据本发明实施例之一数据流整体大数据320a的示意图。整体大数据320a是用来横跨由此存储控制器108所控制的所有虚拟磁盘348和存储元件116的大数据。
数据流整体大数据320a包括一脏水标百分比512及一最大脏水标百分比516。此脏水标百分比512及最大脏水标百分比516会搭配第5图做更详细的描述。
数据流整体大数据320a包括一满条纹写入亲和力值904。此满条纹写入亲和力值904是此存储控制器108仅会操作用来自写入数据快取记忆体328发出满条纹写入的临界值。此值最佳系利用经验测试来决定,且会依赖主机数据写入332参考的区域化和频率、此写入数据快取记忆体328以及自此写入数据快取记忆体328释出部分或满条纹808所需的时间。在较佳实施例中,此满条纹写入亲和力值904是50%。在另一实施例中,此满条纹写入亲和力值904是60%。然而,在其他的实施例中,此满条纹写入亲和力值904可以是与50%或是60%不同的值。
数据流整体大数据320a也包括一主机写入需求中断时间908。此主机写入需求中断时间908是一事先决定的时间区间其用来作为决定当一快取元素352是否应该自此写入数据快取记忆体328释出的条件之一。以下会搭配图11做更详细的描述。
数据流整体大数据320a还包括一有效释出计数最大值912,其是对所有虚拟磁盘348而言能够自此写入数据快取记忆体328释出的最大释出串流物件928的数目。
最后,数据流整体大数据320a还包括一释出串流梯度临界值916,其是一个事先决定的值与释出串流梯度840比较以决定除了由目前快取元素指针820辨别的目前快取元素352之外的哪一个快取元素352是可以自写入数据快取记忆体328释出的最佳快取元素352。此释出串流梯度临界值916会搭配图14做更详细的描述。
请参阅图9b,显示根据本发明实施例之一数据流虚拟磁盘大数据320b的示意图。数据流虚拟磁盘大数据320b是由此存储控制器108对其所控制的每一个虚拟磁盘348独立地管理。因此,此存储控制器108对一第一虚拟磁盘348a管理数据流虚拟磁盘大数据320b是与其所控制之一第二虚拟磁盘348b或是其他虚拟磁盘348n管理的数据流虚拟磁盘大数据320b无关的。
请参阅图10,显示根据本发明实施例之一数据流大数据320初始过程的流程图。大数据320于存储控制器108开机时及其他特定指定的时间进行初始化。流程自方块1004开始。
在方块1004,此存储控制器108初始化所有的每一-虚拟磁盘大数据320b参数。此每一虚拟磁盘大数据320b参数会搭配图9b做更详细的描述。流程前进至方块1008。
在方块1008,此存储控制器108初始化所有的快取元素352和数据容器612。假如还没有数据容器612已经被建立的话,则也还不会存在快取元素352和数据容器612。假如快取元素352和数据容器612在开机循环事件之前已经存在的话,此存储控制器108恢复两者于即将开机循环之前的状态。流程在方块1008结束。
请参阅图11,显示根据本发明实施例之一串流释放初始过程的流程图。流程自方块1104、1116或决定方块1120开始。
在方块1104,此存储控制器108完成将一个或多个条纹604自写入数据快取记忆体328释放至一虚拟磁盘348。流程前进至方块1108。
在方块1108,此存储控制器108将对应虚拟磁盘348的有效释出计数减少。流程前进至决定方块1112。
在决定方块1112,此存储控制器108决定此对应虚拟磁盘348的有效释出计数值920是否小于一有效释出计数最大值912。假如此对应虚拟磁盘348的有效释出计数值920是小于一有效释出计数最大值912的话,则流程前进至图12中的决定方块1204。假如此对应虚拟磁盘348的有效释出计数值920不小于一有效释出计数最大值912的话,则流程结束。
在方块1116,此存储控制器108决定已完成一主机输入输出写入请求332。因此,对应此主机输入输出写入请求332的数据已被写入一虚拟磁盘348中。流程前进至决定方块1112。
在决定方块1120,此存储控制器108决定一主机输入输出写入请求332是否在超过一主机写入需求中断时间908内接收到。假如一主机输入输出写入请求332是在超过一主机写入需求中断时间908接收到,则此流程前进至决定方块1112。假如一主机输入输出写入请求332是在小于一主机写入需求中断时间908接收到,则此流程结束。
请参阅图12,显示根据本发明实施例之一主要流程的流程图。所示的流程是接续自图11中的决定方块1112。流程自决定方块1204开始。
在决定方块1204,此存储控制器108决定一脏水标百分比512是否在大于一脏水标百分比最大值516。假如此脏水标百分比512大于此水标百分比最大值516,则此流程前进至决定方块1208。假如此脏水标百分比512不大于此水标百分比最大值516,则此流程结束。
在决定方块1208,此存储控制器108决定目前快取元素352是否足以释出。此目前特定快取元素352是由一目前快取元素指针820辨别。决定方块1208会在图13的流程图中做更详细的描述。假如目前快取元素352足以释出,则此流程前进至决定方块1216。假如此目前快取元素352不足以释出,则此流程前进至方块1212。
在方块1212,此存储控制器108辨别一较佳的快取元素352可以自写入数据快取记忆体328释出。方块1212会在图14的流程图中做更详细的描述。流程前进至决定方块1216。
在决定方块1216,此存储控制器108决定目前数据容器824是否是满的。此目前数据容器824是包括由目前快取元素指针820所辨别的快取元素352的数据容器612。假如数据容器612中的所有快取元素352皆在写入数据快取记忆体328内,则数据容器612是满的,且每一个快取元素352具有脏620或是正确624的状态。假如目前数据容器824是满的,则此流程前进至方块1220。假如目前数据容器824不是满的,则此流程前进至方块1224和1228。
在方块1220,此存储控制器108将此满的和目前数据容器824自释出串流828移出。此流程前进至方块1224和1228。
在方块1224,此存储控制器108将此目前数据容器824释出至对应的虚拟磁盘348且将此对应虚拟磁盘348的实际释出计数920增加。此流程前进至方块1232。
在方块1228,此存储控制器108将此目前数据容器824自此虚拟磁盘大数据320b的数据容器612清单中移除。此流程前进至方块1232。
在方块1232,此存储控制器108藉由逻辑区块地址(LBA)辨别下一个脏快取元素620。目前快取元素指针820被更新以反映被辨别的下一个脏快取元素620,且此目前数据容器824可以是与先前的数据容器612不同的。此流程前进至决定方块1236。
在决定方块1236,此存储控制器108决定对应虚拟磁盘348的实际释出计数920是否小于一实际释出计数最大值912。假如此对应虚拟磁盘348的实际释出计数920小于实际释出计数最大值912的话,则此流程前进至图12中的决定方块1204以尝试释出下一个快取元素352。假如此对应虚拟磁盘348的实际释出计数920不小于实际释出计数最大值912的话,则此流程结束。
请参阅图13,显示根据本发明实施例之一决定此目前快取元素352是否能有效率地释出的主要流程的流程图。在图13中所示的流程是对应第12图中的决定方块1208。流程自决定方块1304开始。
在决定方块1304,此存储控制器108决定数据容器824是否是满的。此目前数据容器824是包括由目前快取元素指针820所辨别的快取元素352的数据容器612。假如数据容器612中的所有快取元素352皆在写入数据快取记忆体328内,则数据容器612是满的,且每一个快取元素352具有脏620或是正确624的状态。假如目前数据容器824是满的,则此流程前进至方块1316。假如目前数据容器824不是满的,则此流程前进至决定方块1308。
在决定方块1308,此存储控制器108决定此对应虚拟磁盘348的条纹写入百分比724是否大于一满条纹写入亲和力值904。在另一实施例中,此存储控制器108决定此对应虚拟磁盘348的条纹写入百分比724是否大于或等于一满条纹写入亲和力值904。此满条纹写入亲和力值904是此存储控制器108仅会操作用来自写入数据快取记忆体328发出满条纹写入的临界值。此值最佳系利用经验测试来决定,且会依赖主机数据写入332参考的区域化和频率、此写入数据快取记忆体328以及自此写入数据快取记忆体328释出部分或满条纹808所需的时间。在较佳实施例中,此满条纹写入亲和力值904是50%。在另一实施例中,此满条纹写入亲和力值904是60%。然而,在其他的实施例中,此满条纹写入亲和力值904可以是与50%或是60%不同的值。假如此对应虚拟磁盘348的条纹写入百分比724是大于或等于一满条纹写入亲和力值904的话,则此流程前进至方块1312。假如此对应虚拟磁盘348的条纹写入百分比724不大于一满条纹写入亲和力值904的话,则此流程前进至方块1316。
在方块1312,此存储控制器108辨别目前快取元素352不足以释出。此目前特定快取元素352是由一目前快取元素指针820辨别。此流程于方块1312结束,因此控制回到图12中的方块1212。
在方块1316,此存储控制器108辨别目前快取元素352足以释出。此流程于方块1316结束,因此控制回到图12中的方块1216。
请参阅图14,显示根据本发明实施例之一辨别一较佳快取元素352可以被释出的主要流程的流程图。在图14中所示的流程是对应图12中的方块1212。流程自方块1404开始。
在方块1404,此存储控制器108决定此释出串流梯度840。此释出串流梯度840是介于最大释出串流物件836与最小释出串流物件832两者间的差值。此决定此释出串流梯度840的流程会搭配图15做更详细的描述。流程前进至方块1408。
在方块1408,此存储控制器108决定此释出串流梯度840是否大于一释出串流梯度临界值916。假如此释出串流梯度840大于此释出串流梯度临界值916的话,则流程前进至方块1412。假如此释出串流梯度840不大于此释出串流梯度临界值916的话,则流程前进至决定方块1420。
在方块1408,此存储控制器108辨别最大的释出串流物件836。此最大释出串流物件836是包含最多数目快取元素352的释出串流物件828。在图8的范例中,此最大的释出串流物件836具有15个快取元素352。流程前进至方块1416。
在方块1416,此存储控制器108辨别在最大的释出串流物件836中具有最小逻辑区块地址(LBA)的快取元素352为释出的较佳快取元素352。在图8的范例中,此较佳快取元素352则会是最大的释出串流物件836中最左边的快取元素352,即数据容器E612中的最左边快取元素。流程在方块1416结束,控制回到图12中的方块1216。
在决定方块1420,此存储控制器108决定此对应虚拟磁盘348的条纹写入百分比724是否大于一满条纹写入亲和力值904。在另一实施例中,此存储控制器108决定此对应虚拟磁盘348的条纹写入百分比724是否大于或等于一满条纹写入亲和力值904。此满条纹写入亲和力值904是此存储控制器108仅会操作用来自写入数据快取记忆体328发出满条纹写入的临界值。此值最佳系利用经验测试来决定,且会依赖主机数据写入332参考的区域化和频率、此写入数据快取记忆体328以及自此写入数据快取记忆体328释出部分或满条纹808所需的时间。在较佳实施例中,此满条纹写入亲和力值904是50%。在另一实施例中,此满条纹写入亲和力值904是60%。然而,在其他的实施例中,此满条纹写入亲和力值904可以是与50%或是60%不同的值。假如此对应虚拟磁盘348的条纹写入百分比724是大于或等于一满条纹写入亲和力值904的话,则此流程前进至方块1428。假如此对应虚拟磁盘348的条纹写入百分比724不大于或等于一满条纹写入亲和力值904的话,则此流程前进至方块1424。
在方块1424,此存储控制器108辨别目前快取元素352为释出的较佳快取元素352。此目前快取元素352是由一目前快取元素指针820辨别。此流程于方块1424结束,因此控制回到图12中的方块1216。
在方块1428,此存储控制器108藉由逻辑区块地址(LBA)辨别下一个满的数据容器612。此下一个满的数据容器612是释出串流828具有下一个最高起始逻辑区块地址(LBA)的数据容器612。此流程前进至方块1432。
在方块1432,此存储控制器108辨别下一个满的数据容器612中具有最低逻辑区块地址(LBA)的快取元素352为释出的较佳快取元素352。此存储控制器108改变目前快取元素指针820以指向此下一个满的数据容器612中具有最低逻辑区块地址(LBA)的快取元素352。此流程于方块1432结束,因此控制回到图12中的方块1216。
请参阅图15,显示根据本发明实施例之一决定对应虚拟磁盘348的释出串流梯度840的主要流程的流程图。在图15中所示的流程是对应图14中的方块1404。流程自方块1504开始。
在方块1504,此存储控制器108辨别此释出串流828中最大的释出串流物件836。在图8的范例中,此最大的释出串流物件会是包含15个快取元素352的释出串流物件828。此流程前进至方块1508。
在方块1508,此存储控制器108辨别此释出串流828中最小释出串流物件832。在图8的范例中,此最小的释出串流物件会是包含5个快取元素352的释出串流物件828。此流程前进至方块1512。
在方块1512,此存储控制器108自最大释出串流物件836减去最小释出串流物件832以获得释出串流梯度840。在图8的范例中,对应虚拟磁盘348的释出串流梯度840是15-5或是10个快取元素352。流程在方块1412结束,因此控制回到图14中的决定方块1408。
最后,在不脱离本发明的精神及范围内,如同以下所述的申请范围,在本领域的技术人员应能轻易地应用本发明揭露的概念及特定实施例,以作为设计或修改其它架构的基础,并用以达成与本发明的目的相同的功用。

Claims (20)

1.一种有效率地自一存储控制器释出写入数据至存储元件的方法,包含:
由该存储控制器决定一快取元素应该自该存储控制器的一写入快取记忆体移转至该存储元件,其中该快取元素为该写入快取记忆体的一固定部分大小;
由该存储控制器计算出一脏水标是在一脏水标最大值之上,其中该脏水标辨别在该写入快取记忆体中的脏数据数目,其中该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据;
由该存储控制器辨别一第一快取元素将自该写入快取记忆体释出至该存储元件;
由该存储控制器将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件;
由该存储控制器将一有效释出计数增加,其中该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目,其中该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组;以及
假如该有效释出计数是小于一有效释出计数最大值的话,则由该存储控制器重复该决定、计算、辨别、移转和增加等动作。
2.如权利要求1所述的方法,其中,假如一释出串流包含该第一数据容器,该方法更包含:
由该存储控制器将该第一数据容器自该释出串流中移除,其中该释出串流及该第一数据容器与该虚拟磁盘对应,其中该释出串流仅包括满的数据容器,其中一个满的数据容器包含在该磁盘阵列群组的一条纹中的所有该快取元素。
3.如权利要求2所述的方法,其中,该释出串流包括该第一数据容器,其中该存储控制器连接复数个满的数据容器以产生该第一数据容器,若是该复数个满的数据容器中的每一个满的数据容器具有邻接逻辑区块地址的话。
4.如权利要求1所述的方法,其中,由该存储控制器决定一快取元素应该自该存储控制器的该写入快取记忆体移转至该存储元件,包含下列步骤之一:
由该存储控制器完成自该写入快取记忆体释出一条纹至该存储元件且将该有效释出计数减少;
由该存储控制器完成一主机写入请求,其中完成该主机写入请求包含写入对应该主机写入请求的数据于该存储元件中;以及
由该存储控制器验证在一主机输入输出请求期限区间内并没有接收到主机输入输出请求,其中主机输入输出请求包括主机写入请求和主机读取请求;
于完成该完成释出、完成一主机写入请求或验证三者之一后:
由该存储控制器进行该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话。
5.如权利要求1所述的方法,其中,由该存储控制器辨别一第一快取元素自该写入快取记忆体释出至该存储元件包含:
由该存储控制器决定该第一数据容器是否是满的,其中一个满的数据容器包含一条纹中的所有快取元素,其中一条纹包含具有邻接逻辑区块地址的复数个快取元素;
假如该第一数据容器不是满的,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别一目前快取元素作为该第一快取元素,其中一目前快取元素指针辨别该目前快取元素及该第一数据容器;以及
假如该第一数据容器是满的,则:
由该存储控制器辨别该目前快取元素作为该第一快取元素。
6.如权利要求5所述的方法,其中,该满条纹写入百分比是属于该虚拟磁盘中满条纹的脏快取元素数目除以该虚拟磁盘中的脏快取元素数目,其中脏快取元素是包含尚未被写入该存储元件内数据的快取元素,其中一满条纹中的所有数据位置由该写入快取记忆体中的快取元素代表,其中该满条纹写入亲和力值是辨别该存储控制器仅会操作用来自该写入数据快取记忆体发出满条纹写入的一临界值,其中该目前条纹是一满条纹和一部份条纹两者之一。
7.如权利要求6所述的方法,其中,由该存储控制器辨别一较佳快取元素以释出包含:
由该存储控制器计算一释出串流梯度;
由该存储控制器决定该释出串流梯度是否大于一释出串流梯度临界值,其中该释出串流梯度临界值是该虚拟磁盘条纹大小的倍数;
假如该释出串流梯度大于该释出串流梯度临界值,则:
由该存储控制器辨别一最大释出串流物件;及
由该存储控制器辨别该最大释出串流物件中的具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;
假如该释出串流梯度不大于该释出串流梯度临界值,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一下一个满数据容器,其中该下一个满数据容器是与该第一数据容器相较具有第二大尺寸的释出串流物件;以及
由该存储控制器辨别在该下一个满数据容器中具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别该目前快取元素是该较佳快取元素以供释出。
8.如权利要求7所述的方法,其中,计算该释出串流梯度包含:
由该存储控制器辨别该虚拟磁盘中该最大释出串流物件,其中该释出串流仅包含满的数据容器;
由该存储控制器辨别该虚拟磁盘中一最小释出串流物件;以及
由该存储控制器将该最大释出串流物件减去该最小释出串流物件以获得该释出串流梯度。
9.如权利要求8所述的方法,其中,由该存储控制器将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件包含:
由该存储控制器将该第一数据容器自该写入快取记忆体释出至该虚拟磁盘;
由该存储控制器将该有效释出计数增加;以及
由该存储控制器将该数据容器自一数据容器清单中移除,其中该数据容器清单包含一状态、一脏快取元素计数、及每一有效数据容器的一整体快取元素计数,其中该状态辨别一数据容器是满的或是部分满的。
10.一种有效率地释出写入数据至存储元件的存储控制器,包含:
一处理器;以及
一记忆体,与该处理器耦接,该记忆体包含:
一写入快取记忆体,包含:
复数个快取元素,其中该快取元素为该写入快取记忆体的一固定部分大小;
其中该存储控制器决定一快取元素应该自该写入快取记忆体移转至该存储元件,计算出一脏水标是在一脏水标最大值之上,辨别一第一快取元素自该写入快取记忆体释出至该存储元件,将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件,将一有效释出计数增加,以及重复该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话,
其中该脏水标辨别在该写入快取记忆体中的脏数据数目,其中该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据,其中该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目,其中该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。
11.如权利要求10所述的存储控制器,其中该存储控制器决定一快取元素应该自该写入快取记忆体移转至该存储元件,包括下列之一:
由该存储控制器完成自该写入快取记忆体释出一释出串流物件至该存储元件且将该有效释出计数减少,其中该释出串流物件是满的数据容器;
由该存储控制器完成一主机写入请求,其中完成该主机写入请求包含写入对应该主机写入请求的数据于该存储元件中;以及
由该存储控制器验证在超过一主机输入输出请求期限区间接收到主机输入输出请求;
于完成该完成释出、完成一主机写入请求或验证三者之一后:
由该存储控制器进行该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话。
12.如权利要求10所述的存储控制器,其中该存储控制器辨别一第一快取元素自该写入快取记忆体释出至该存储元件包含:
由该存储控制器决定该第一数据容器是否是满的,其中一个满的数据容器包含一条纹中的所有快取元素,其中一条纹包含具有邻接逻辑区块地址的复数个快取元素;
假如该第一数据容器不是满的,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别一目前快取元素作为该第一快取元素,其中一目前快取元素指针辨别该目前快取元素及该第一数据容器;以及
假如该第一数据容器是满的,则:
由该存储控制器辨别该目前快取元素作为该第一快取元素。
13.如权利要求12所述的存储控制器,其中该满条纹写入百分比是属于该虚拟磁盘中满条纹的脏快取元素数目除以该虚拟磁盘中的脏快取元素数目,其中脏快取元素是包含尚未被写入该存储元件内数据的快取元素,其中一满条纹中的所有数据位置由该写入快取记忆体中的数据元素代表,其中该满条纹写入亲和力值是辨别该存储控制器仅会操作用来自该写入数据快取记忆体发出满条纹写入的一临界值,其中该目前条纹是一满条纹和一部份条纹两者之一。
14.如权利要求13所述的存储控制器,其中,该存储控制器辨别一较佳快取元素以释出包含:
由该存储控制器计算一释出串流梯度;
由该存储控制器决定该释出串流梯度是否大于一释出串流梯度临界值,其中该释出串流梯度临界值是该虚拟磁盘条纹大小的倍数;
假如该释出串流梯度大于该释出串流梯度临界值,则:
由该存储控制器辨别一最大释出串流物件;
由该存储控制器辨别该最大释出串流物件中具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;
假如该释出串流梯度不大于该释出串流梯度临界值,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一下一个满数据容器,其中该下一个满数据容器是相较于该第一数据容器具有第二大尺寸的释出串流物件;以及
由该存储控制器辨别在该下一个满数据容器中的具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别该目前快取元素是该较佳快取元素以供释出。
15.如权利要求14所述的存储控制器,其中,该存储控制器计算该释出串流梯度包含:
由该存储控制器辨别该虚拟磁盘中该最大释出串流物件,其中该释出串流仅包含满的数据容器;
由该存储控制器辨别该虚拟磁盘中一最小释出串流物件;以及
由该存储控制器将该最大释出串流减去该最小释出串流物件以获得该释出串流梯度。
16.如权利要求15所述的存储控制器,其中该存储控制器将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件包含:
由该存储控制器将该第一数据容器自该写入快取记忆体释出至该虚拟磁盘;
由该存储控制器将该有效释出计数增加;以及
由该存储控制器将该数据容器自一数据容器清单中移除,其中该数据容器清单包含一状态、一脏快取元素计数、及每一有效数据容器的一快取元素计数,其中该状态辨别一数据容器是满的或是部分满的。
17.一种有效率释出写入数据至存储元件的系统,包含:
一主机电脑;
一存储控制器,与该主机电脑耦接,包含:
一处理器;以及
一记忆体,与该处理器耦接,该记忆体包含:
一写入快取记忆体,包含:
复数个快取元素,其中该快取元素为该写入快取记忆体的一固定部分大小;
一虚拟磁盘包括一个或多个存储元件,与该存储控制器耦接,其中该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组,
其中该主机电脑传送一写入请求至该存储控制器,其中为了响应接收该写入请求,该存储控制器存储该写入请求所对应的写入数据至复数个快取元素中,
其中该存储控制器决定一快取元素应该自该写入快取记忆体移转至该存储元件,计算一脏水标是在一脏水标最大值之上,辨别一第一快取元素自该写入快取记忆体释出至该存储元件,将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件,将一有效释出计数增加,以及重复该决定、计算、辨别、移转和增加等动作,假如该有效释出计数是小于一有效释出计数最大值的话,
其中该脏水标辨别在该写入快取记忆体中的脏数据数目,其中该脏数据是在该写入快取记忆体中尚未被写入该存储元件内的数据,其中该有效释出计数是发至一虚拟磁盘中尚未被完成的主机写入请求的一目前数目,其中该虚拟磁盘是包含一个或多个特定存储元件的一磁盘阵列群组。
18.如权利要求17所述的系统,其中该存储控制器辨别一第一快取元素自该写入快取记忆体释出至该存储元件包含:
由该存储控制器决定该第一数据容器是否是满的,其中一个满的数据容器包含一条纹中的所有快取元素,其中一条纹包含具有邻接逻辑区块地址的复数个快取元素;
假如该第一数据容器不是满的,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值,其中该满条纹写入百分比是属于该虚拟磁盘中满条纹的脏快取元素数目除以该虚拟磁盘中的脏快取元素数目,其中脏快取元素是包含尚未被写入该存储元件内数据的快取元素,其中一满条纹中的所有数据位置由该写入快取记忆体中的快取元素代表,其中该满条纹写入亲和力值是反映该存储控制器仅会操作用来自该写入数据快取记忆体发出满条纹写入的一临界值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别一目前快取元素作为该第一快取元素,其中一目前快取元素指针辨别该目前快取元素及该第一数据容器;以及
假如该第一数据容器是满的,则:
由该存储控制器辨别该目前快取元素作为该第一快取元素。
19.如权利要求18所述的系统,其中,该存储控制器辨别一较佳快取元素以释出包含:
由该存储控制器计算一释出串流梯度,其中该存储控制器计算该释出串流梯度包含:
由该存储控制器辨别该虚拟磁盘中该最大释出串流物件,其中该释出串流仅包含满的数据容器;
由该存储控制器辨别该虚拟磁盘中一最小释出串流物件;以及
由该存储控制器将该最大释出串流物件减去该最小释出串流物件以获得该释出串流梯度;
由该存储控制器决定该释出串流梯度是否大于一释出串流梯度临界值,其中该释出串流梯度临界值是该虚拟磁盘条纹大小的倍数;
假如该释出串流梯度大于该释出串流梯度临界值,则:
由该存储控制器辨别一最大释出串流物件;
由该存储控制器辨别该最大释出串流物件中具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;
假如该释出串流梯度不大于该释出串流梯度临界值,则:
由该存储控制器计算一满条纹写入百分比是否小于一满条纹写入亲和力值;
假如该满条纹写入百分比不小于该满条纹写入亲和力值,则:
由该存储控制器辨别一下一个满数据容器,其中该下一个满数据容器是相较于该第一数据容器具有第二大尺寸的释出串流物件;以及
由该存储控制器辨别在该下一个满数据容器中的具有最小逻辑区块地址的一快取元素是该较佳快取元素以供释出;以及
假如该满条纹写入百分比是小于该满条纹写入亲和力值,则:
由该存储控制器辨别该目前快取元素是该较佳快取元素以供释出。
20.如权利要求17所述的系统,其中,该存储控制器将包含该第一快取元素的一第一数据容器自该写入快取记忆体移转至该存储元件包含:
由该存储控制器将该第一数据容器自该写入快取记忆体释出至该虚拟磁盘;
由该存储控制器将该有效释出计数增加;以及
由该存储控制器将该数据容器自一数据容器清单中移除,其中该数据容器清单包含一状态、一脏快取元素计数、及每一有效数据容器的一快取元素计数,其中该状态辨别一数据容器是满的或是部分满的。
CN201510509600.5A 2014-08-21 2015-08-18 有效率释出序列输入输出串流的方法及装置 Expired - Fee Related CN105389121B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/465,291 2014-08-21
US14/465,291 US8930619B2 (en) 2012-05-29 2014-08-21 Method and apparatus for efficiently destaging sequential I/O streams

Publications (2)

Publication Number Publication Date
CN105389121A true CN105389121A (zh) 2016-03-09
CN105389121B CN105389121B (zh) 2019-06-07

Family

ID=53483683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510509600.5A Expired - Fee Related CN105389121B (zh) 2014-08-21 2015-08-18 有效率释出序列输入输出串流的方法及装置

Country Status (6)

Country Link
EP (1) EP2988222B1 (zh)
JP (1) JP6154433B2 (zh)
CN (1) CN105389121B (zh)
CA (1) CA2896567A1 (zh)
HK (1) HK1215611A1 (zh)
TW (1) TWI544401B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865770A (zh) * 2018-08-27 2020-03-06 爱思开海力士有限公司 存储器系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275670B (zh) 2018-03-16 2021-02-05 华为技术有限公司 控制存储设备中数据流的方法、装置、存储设备及存储介质
US11055001B2 (en) 2018-05-30 2021-07-06 Seagate Technology Llc Localized data block destaging
US11656792B2 (en) * 2021-06-29 2023-05-23 International Business Machines Corporation Mirroring data in write caches of a controller of a non-volatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294301A1 (en) * 2004-12-29 2006-12-28 Xiv Ltd. Method, system and circuit for managing task queues in a disk device controller
US20130326149A1 (en) * 2012-05-29 2013-12-05 Dot Hill Systems Corporation Write Cache Management Method and Apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04114228A (ja) * 1990-09-05 1992-04-15 Nec Corp ディスクキャッシュシステム
JP4440803B2 (ja) * 2005-03-03 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム
JP5026102B2 (ja) * 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
JP2012234254A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294301A1 (en) * 2004-12-29 2006-12-28 Xiv Ltd. Method, system and circuit for managing task queues in a disk device controller
US20130326149A1 (en) * 2012-05-29 2013-12-05 Dot Hill Systems Corporation Write Cache Management Method and Apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865770A (zh) * 2018-08-27 2020-03-06 爱思开海力士有限公司 存储器系统

Also Published As

Publication number Publication date
TW201608469A (zh) 2016-03-01
EP2988222B1 (en) 2019-12-11
CA2896567A1 (en) 2016-02-21
HK1215611A1 (zh) 2016-09-02
CN105389121B (zh) 2019-06-07
TWI544401B (zh) 2016-08-01
EP2988222A1 (en) 2016-02-24
JP6154433B2 (ja) 2017-06-28
JP2016045935A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
US10698818B2 (en) Storage controller caching using symmetric storage class memory devices
JP6294518B2 (ja) 不揮発性メモリシステムにおける同期ミラーリング
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
US10838885B2 (en) Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
CN103635969B (zh) 包含存储器系统控制器的设备和相关方法
JP5574451B2 (ja) 電力損失事象時にnvsデータを迅速に保護する方法、システム、及びコンピュータ・プログラム
US9836223B2 (en) Changing storage volume ownership using cache memory
US20090031097A1 (en) Creating Backups in Storage Systems
TWI791880B (zh) 電腦系統
CN105389121A (zh) 有效率释出序列输入输出串流的方法及装置
CN107533537B (zh) 存储系统、用于存储的方法和非暂时性计算机可读介质
US20140372672A1 (en) System and method for providing improved system performance by moving pinned data to open nand flash interface working group modules while the system is in a running state
CN103049407A (zh) 数据存储方法、装置及系统
WO2018055686A1 (ja) 情報処理システム
KR20230147950A (ko) 시스템 내 전원 손실 데이터 보호를 위한 장치 및 방법
US9836359B2 (en) Storage and control method of the same
US20160018995A1 (en) Raid system for processing i/o requests utilizing xor commands
US20240095196A1 (en) Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd
US9830094B2 (en) Dynamic transitioning of protection information in array systems
JP2014182812A (ja) データ記憶装置
EP4033346A1 (en) Affinity-based cache operation for a persistent storage device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1215611

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190607

Termination date: 20190818

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1215611

Country of ref document: HK