CN103392165B - 存储系统 - Google Patents

存储系统 Download PDF

Info

Publication number
CN103392165B
CN103392165B CN201180068073.9A CN201180068073A CN103392165B CN 103392165 B CN103392165 B CN 103392165B CN 201180068073 A CN201180068073 A CN 201180068073A CN 103392165 B CN103392165 B CN 103392165B
Authority
CN
China
Prior art keywords
transmission
processor
data
sequencer
transfer sequence
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
Application number
CN201180068073.9A
Other languages
English (en)
Other versions
CN103392165A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN103392165A publication Critical patent/CN103392165A/zh
Application granted granted Critical
Publication of CN103392165B publication Critical patent/CN103392165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的实施例的存储系统包括第一传输引擎、第二传输引擎、第一存储装置、第二存储装置、处理器以及传输定序器,该传输定序器为不同于该处理器的装置。该处理器创建传输序列信息,其用于指示用户数据的传输顺序。传输定序器接收由处理器形成的传输序列信息,并且根据该传输序列信息来控制第一传输引擎和第二传输引擎。第一传输引擎和第二传输引擎根据来自传输定序器的指令在各存储装置之间传输用户数据。

Description

存储系统
技术领域
本发明涉及存储系统,并且具体地涉及在存储系统中的数据传输控制。
背景技术
所谓的存储系统是已知的,该存储系统包括利用由多个磁盘驱动器或闪速存储驱动器构成的磁盘阵列配置的子系统,并且在磁盘阵列中存储数据。
如美国专利申请公开No.2007/0201434A1(PTL1)中所公开,例如存储系统被配置成包括:用于连接到主机计算机的主机接口,硬盘驱动器(HDD)或固态驱动器(SSD),用于与驱动器通信的磁盘接口,用于临时存储数据以提高存储系统性能的高速缓冲存储器模块,以及从主机计算机接收访问请求并且控制数据传输的处理器。
大规模存储系统包括例如大约2000个磁盘驱动器,具有用于主机计算机的总共200个端口的外部接口,以及大约1TB高速缓冲存储器容量。
这种大规模存储系统可以在从磁盘驱动器到主机计算机的数据传输中使用缓冲器存储器,类似于″IBMSystemStorageDS8700ArchitectureandImp1ementation,IBMCorporation,August2010″(NPL1)中公开的系统。例如,在从磁盘驱动器检索数据一直到将其递送到主机计算机的过程中,大规模存储系统除了将数据存储于高速缓冲存储器之外,还将数据存储于主机接口或者磁盘接口的缓冲器中。这种配置允许诸如磁盘接口和主机接口的电路独立地操作,使得整个系统的吞吐量可以得以提高。
引文列表
专利文献
PTL1:美国专利申请公开No.2007/0201434A1
非专利文献
NPL1:IBMSystemStorageDS8700ArchitectureandImplementation,IBMCorporation,August2010
发明内容
技术问题
这种存储系统要求在系统中多次传输用户数据从而对来自主机计算机的请求作出响应。存储系统中的处理器根据来自主机计算机的命令(读取命令或写入命令)控制所述多次数据传输。因此,处理器必须多次干预从而响应于来自主机计算机的输入/输出(I/O)请求(读取命令或写入命令)而在系统中传输数据,使得对处理器的负荷增加。
问题的解决方案
本发明的一方面是一种存储系统,该存储系统在该系统内传输用户数据,该存储系统包括第一传输引擎,第二传输引擎,第一存储装置,第二存储装置,处理器,以及传输定序器,该传输定序器为不同于该处理器的装置。该处理器创建用于指示用户数据的传输的顺序的传输序列信息。该传输定序器接收由该处理器创建的传输序列信息,并且根据该传输序列信息来控制第一传输引擎和第二传输引擎。该第一传输引擎根据来自传输定序器的指令,向第一存储装置传输接收的用户数据。该第一存储装置存储所传输用户数据。该第二传输引擎根据传输定序器的指令,将第一存储装置中的用户数据传输到第二存储装置。该第二存储装置存储所传输用户数据。
发明的有益效果
本发明的一方面实现了处理器响应于从主机计算机接收的I/O请求而需要干预的次数的减小。因此,处理器用于处理I/O所需的处理时间可以减小。特别是在大规模存储中,I/O处理的效率以及存储系统的性能被有效提高。通过下述优选实施例中的描述,将阐明上文所述之外的本发明的问题、配置和效果。
附图说明
[图1]图1为例示包括第一实施例的存储系统的计算机系统的框图。
[图2]图2示出当存储控制器接收读取请求时,存储控制器中的数据传输的序列以及在从驱动器到主机计算机的传输数据中传输定序器和处理器的任务的配给的示例。
[图3]图3为示出第一实施例的存储系统中在存储控制器中执行的数据传输的示例的序列图。
[图4]图4例示在第一实施例中处理器向传输定序器发送的传输序列。
[图5]图5例示在第一实施例中传输定序器向处理器发送的传输序列结果。
[图6]图6例示在第一实施例中传输定序器向传输引擎发送的传输命令。
[图7]图7例示在第一实施例中在传输命令处理结束时传输引擎输出的传输状态。
[图8]图8的流程图说明在第一实施例中处理器在从主机计算机接收命令时的处理的示例。
[图9]图9示出在第一实施例中的传输定序器的配置的示例。
[图10]图10例示在第一实施例中的序列跟踪表。
[图11]图11是示出在第一实施例中由传输定序器执行的处理示例的流程图。
[图12]图12是示出在第二实施例中响应于I/O请求由处理器执行的I/O处理示例的流程图。
[图13]图13示出了在第二实施例中在利用传输定序器的读取命中处理中或未利用传输定序器的读取命中处理中由传输引擎执行的数据传输。
[图14]图14是示出在第二实施例中利用传输定序器的读取命中处理示例的流程图。
[图15]图15是示出在第二实施例中未利用传输定序器的读取命中处理示例的流程图。
[图16]图16示出在第二实施例中在利用传输定序器的读取漏失处理中或未利用传输定序器的读取漏失处理中由传输引擎执行的数据传输。
[图17]图17示出在第二实施例中利用传输定序器的读取漏失处理示例的流程图。
[图18]图18示出在第二实施例中未利用传输定序器的读取漏失处理示例的流程图。
[图19]图19示出在第二实施例中在利用传输定序器的前端写入处理中或未利用传输定序器的前端写入处理中由传输引擎执行的数据传输。
[图20]图20是示出在第二实施例中利用传输定序器的前端写入处理示例的流程图。
[图21]图21是示出在第二实施例中未利用传输定序器的前端写入处理示例的流程图。
[图22]图22是示出在第二实施例中用于将由主机计算机写入高速缓冲存储器的数据写入驱动器的降级示例的流程图说明。
[图23]图23示出在第二实施例中在利用传输定序器的RAID1降级或未利用传输定序器的RAID1降级中由传输引擎执行的数据传输。
[图24]图24示出在第二实施例中利用传输定序器的RAID1降级示例的流程图。
[图25]图25示出在第二实施例中未利用传输定序器的RAID1降级示例的流程图。
[图26]图26示出在第二实施例中在利用传输定序器的RAID5降级中或未利用传输定序器的RAID5降级中由传输引擎执行的数据传输。
[图27]图27示出在第二实施例中利用传输定序器的RAID5降级示例的流程图。
[图28]图28示出在第二实施例中未利用传输定序器的RAID5降级示例的流程图。
[图29]图29示出在第二实施例中形成升级序列从而形成用于升级数据的传输序列的示例的流程图。
[图30]图30示出在第二实施例中形成降级序列从而形成用于降级数据的传输序列的示例的流程图。
[图31]图31示出在第二实施例中在未利用传输定序器的降级中使用的将数据升级到高速缓冲存储器的示例的流程图。
[图32]图32示出在第二实施例中在未利用传输定序器的降级中使用的将数据降级到驱动器的示例的流程图。
具体实施方式
本发明涉及一种提高存储系统中的性能的技术。在下文中,将参考附图描述本发明的优选实施例。应当注意,所述实施例纯粹是实施本发明的示例,而并非限制本发明的技术范围。相同部件在各附图中始终用相同附图标记指示。
第一实施例
此实施例为使内部数据传输的开始/结束的检查自动化的方法的示例,其由传统存储系统中的处理器执行从而提高性能。在下文中,将参考附图描述此实施例的细节。
图1例示计算机系统,其包括此实施例的存储系统1以及处理和计算数据的主机计算机12。存储系统1包括存储控制器11和容纳用于存储数据的驱动器14的机柜13。计算机系统可包括多个主机计算机12。存储系统1可包括多个驱动器机柜13。
驱动器机柜13容纳多个驱动器14。典型地,驱动器14为具有非易失性磁盘的硬盘驱动器(HDD)或者安装有非易失性半导体存储器(诸如闪速存储器)的固态驱动器(SSD)。驱动器14存储由主机计算机12发送的数据(用户数据)。多个驱动器14通过RAID计算实现数据的冗余,从而在某些驱动器14发生故障时防止数据丢失。
存储控制器11包括:用于连接到主机计算机12的前端板2,用于连接到驱动器机柜13(驱动器14)的后端板3,用于安装高速缓冲存储器42的高速缓冲存储器板41,用于安装执行内部处理的处理器44的处理器板43,以及用于连接这些部件的内部网络46。如图1所示,存储控制器11典型地包括多个前端板2和多个后端板3。
每个前端板2包括:用于连接到主机计算机12的主机接口LSI21,用于在存储控制器11中传输数据的数据传输LSI22,以及用于向/从主机计算机12中继在存储控制器11内部传输的数据的前端缓冲器25(用于临时存储用户数据)。
数据传输LSI22包括:用于在前端缓冲器25和高速缓冲存储器42之间传输数据的前端DMA控制器(下文中称为DMA)23,以及用于数据传输的序列控制的传输定序器24。主机接口LSI21具有将在主机计算机12和存储控制器11之间的通信中使用的协议(诸如光纤信道(FC)、以太网上的光纤信道(FCoE)或iSCSI)转换为在存储控制器11中使用的协议(诸如PCI-Express)的功能。
每个后端板3包括:用于连接到驱动器机柜13的驱动器接口LSI31,用于在存储控制器11中传输数据的数据传输LSI32,以及用于向/从驱动器机柜13中继在存储控制器内部传输的数据的后端缓冲器35(用于临时存储用户数据)。
数据传输LSI32包括用于在后端缓冲器35和高速缓冲存储器42之间传输数据的后端DMA33,用于控制数据传输的序列的传输定序器34,以及用于执行奇偶校验计算以实现在RAID5、RAID6阵列等之中的数据冗佘的奇偶校验发生器36。
驱动器接口LSI31具有将在驱动器14和存储控制器11之间的通信中使用的协议(诸如光纤信道(FC)或串行连接SCSI(SAS))转换为在存储控制器11中使用的协议(诸如PCI-Express)的功能。
高速缓冲存储器板41具有用于临时存储将由主机计算机12读取或写入的用户数据的高速缓冲存储器42。处理器板43具有用于控制存储控制器11的处理器44以及用于存储将由处理器44处理的数据和程序的存储器45。将由处理器44处理的数据和程序从存储控制器11或驱动器14中的非易失性存储器(未示出)加载。
在下述描述中,用于传输数据的主机接口LSI21、前端DMA23、后端DMA33以及驱动器接口LSI31通常称为数据传输引擎。前端缓冲器25、后端缓冲器35和高速缓冲存储器42通常称为数据传输中继存储器或中继存储器。高速缓冲存储器42以及缓冲器25和35典型地为半导体存储器的RAM,其为所存储数据在没有电力供应时丢失的易失性存储器装置。
在存储系统中的最后数据存储区域(在此示例中,驱动器14中的存储区域)和主机计算机12之间传输用户数据中,中继存储器临时存储用户数据。数据传输引擎在各中继存储器之间,在中继存储器和主机计算机12(其中的存储区域)之间,或者在中继存储器和驱动器14之间传输数据。
尽管未示于图1,存储控制器11可包括用于连接到另一存储系统的外部接口板。外部接口板包括例如外部接口LSI、缓冲器以及数据传输LSI。存储控制器11经由外部接口板向另一存储系统发送命令或用户数据或者从其接收命令或用户数据。外部接口板连接到另一存储系统中的后端板3、高速缓冲存储器板41和前端板2其中之一,从而实现数据传输。
图2例示当存储控制器11从主机计算机12接收读取请求(I/O请求其中之一)以及从驱动器14向主机计算机12传输数据时,存储控制器11中数据传输的顺序以及传输定序器24/34和处理器44的任务的配给。传输定序器24/34指示传输定序器24和34中任何一个。
在图2中,代表传输定序器24、传输定序器34和处理器44的矩形中的椭圆分别指示这些电路执行的处理。如图2所示,传输定序器24和34执行相同的处理。在此实施例中,与处理器44分离地提供传输定序器24和34。由于传输定序器24和34是不同于处理器44的装置,在处理器44正在执行特定处理时,传输定序器24和34可以执行不同处理。传输定序器24和34为独立于处理器44的不同电路,但是可以安装在同一封装或同一芯片中。
驱动器14中保持的数据由驱动器接口LSI31加载到后端缓冲器35。后端DMA33随后将数据从后端缓冲器35传输到高速缓冲存储器42。随后,前端DMA23将数据从高速缓冲存储器42传输到前端缓冲器25,以及最后主机接口LSI21将数据从前端缓冲器25传输到主机计算机12。
处理器44分析从主机计算机12发送的数据传输请求(51),定位数据被保持之处的位置(逻辑地址),以及通过指定一系列处理阶段所需要的数据传输引擎和数据传输中继存储器,决定传输路径(52),并且根据需要分配数据传输中继存储器(其中的区域)(53)。
处理器44进一步创建描述传输源地址、传输目的地地址和传输的顺序的传输序列(54),将传输序列发送给传输定序器(55),从传输定序器接收传输序列结果(56),并且根据需要释放数据传输中继存储器(其中的区域)(57)。在下述描述中,分配和释放存储器(包括缓冲器和驱动器)意味着分配和释放存储器中的存储区域。
处理器44根据程序操作以执行所述处理,使得处理器44充当上述处理的处理模块(诸如传输请求分析模块、传输路径决定模块以及存储器分配模块)。存储控制器11为包括这些处理模块的控制器。
传输定序器24/34控制一系列数据传输的序列。具体地,它评估最新的数据传输是否成功(61),将数据传输命令发送给数据传输引擎(62),接收从数据传输引擎发送的数据传输状态(63),以及在传输完成时查找下一个传输命令(64)。
传输定序器24/34可以由一种根据程序(命令代码)工作的处理器或者一种硬件逻辑电路制成。功能(处理)的一部分可以由处理器(程序)实施并且其它功能(处理)可以由硬件逻辑电路实施。对于错误修正或者设计变更,优选地由根据程序工作的处理器实施所述功能(处理)。
尽管处理器44在算术处理为中心的计算方面是出色的,但是与处理实质相比,在存储控制器11中与另一电路(硬件装置)通信(诸如发送或接收命令)致使处理器44消耗长的处理时间。处理器44在接收来自另一电路的通信时需要一种上下文切换,该上下文切换使得在执行下一个动作时相关数据能够被读取或写入。
具体地,处理器44保存直到那时已经在处理中使用的用于堆栈区域和局部变量的数据,并且恢复在堆栈区域和局部变量中用于处理与另一电路通信中接收的数据所需的不同数据。因此,如果处理器44将一系列传输序列的细节初步发送给传输定序器24和34,并且传输定序器24和34根据传输序列中描述的细节执行传输(使用传输引擎),则处理器44可以减小其监视传输操作以及上述上下文切换的次数。
因此,处理器44执行一系列传输所需的处理时间可以显著减小。同时,传输定序器24和34仅仅指示数据传输引擎21、23、31和33根据初步指定的传输顺序来传输数据并且监视传输的结果;因此它们不需要执行复杂处理。
因此,传输定序器24和34的低处理能力将不是问题。优选地,传输定序器24和34中所内嵌的处理器的工作频率低于主处理器44的工作频率,这可以节约成本。传输定序器24和34使用的存储器的容量可以小于处理器44使用的储器45的容量,这也可以节约成本。
图3为例示本发明所适用的存储系统1中由存储控制器11执行的一系列数据传输的序列图。当数据传输是有必要时,此过程被执行。要求数据传输的场合为:例如当存储控制器11从主机计算机12接收数据传输请求时,当位于高速缓冲存储器42中并且未被写入驱动器14的数据需要写入驱动器14从而解决高速缓冲存储器42的容量不足时,当由于驱动器14中的故障或者从故障恢复等而需要恢复数据中的冗余时。
在此过程中,处理器44首先决定用户数据的传输路径(52)。具体地,它决定将用于用户数据的一系列传输的数据传输定序器,数据传输引擎,以及数据传输中继存储器。对于从主机计算机12接收的写入命令的情形,处理器44决定将被用于传输由写入命令指定的用户数据(写入数据)的主机接口LSI21,前端DMA23,以及用于存储数据的高速缓冲存储器42。
接着,处理器44分配数据传输所需的存储器资源(53)。例如,对于从主机计算机12接收的写入命令的情形,它分配连接到主机计算机12和高速缓冲存储器42的前端板2上的前端缓冲器23。
随后,处理器44创建传输序列(54)。具体地,它创建这样的数据,其描述构成传输序列的传输命令,用于处理该命令的数据传输引擎,以及数据传输命令的执行次序。处理器44创建传输定序器24和34进行的各自数据传输的传输序列,并且将所创建数据传输序列单独地发送给传输定序器24和34(55)。以此方式,传输序列包括指定传输方法的信息。
已经接收传输序列的传输定序器24/34从传输序列选择首先执行的传输命令以及命令的目的地传输引擎。传输定序器24/34将传输命令发送给传输引擎以请求执行该数据传输(62)。
已经从传输定序器24/34接收数据传输执行命令的数据传输引擎根据所指定细节,执行传输中继存储器之间、主机计算机12和传输中继存储器之间或者驱动器14和传输中继存储器之间的数据传输。当数据传输完成时,或者当数据传输由于某种错误而失败时,传输引擎将传输状态传递给传输定序器24/34。
当传输定序器24/34接收传输状态时(63),它检查传输状态的内容以确定传输是成功还是失败(61)。如果传输成功,传输定序器24/34从初步接收的传输序列获得下一个传输命令和命令的目的地传输引擎(64),并且将传输命令发送给传输引擎。
传输定序器24/34(和传输引擎)重复前述步骤以执行由该序列定义的所有数据传输。在正常完成之后,传输定序器24/34根据传输序列中描述的在完成时的动作,将消息发送给另一传输定序器24/34或者处理器44。
在图3中,在完成所接收的传输序列的处理之后,传输定序器24和34其中之一将传输调用消息发送给另一传输定序器24/34。已经接收传输调用消息的传输定序器24/34根据初步接收的传输序列执行另一传输。传输定序器24/34重复前述步骤,直至完成处理器44初步发送的所有传输序列。
当传输序列的所有处理完成时,已经执行最后数据序列的传输定序器24/34将传输结果发送给处理器44。在接收到传输结果时(56),处理器44释放所分配的存储器资源(57)。
上述过程消除了处理器44在用户数据传输期间检查传输完成状态或者发送下一个传输命令的必要性。因此,它可以减小处理器44的处理(数据传输中的负荷)的量并且提高存储系统1的处理性能。
如上所述,在优选配置中,处理器44形成一个或多个数据传输序列(数据),并且将它们传递给输定序器24/34,所述一个或多个数据传输序列(数据)定义从一系列数据传输的开始点(初始点)到其最终点的整个一系列数据传输。以此方式,创建定义所需数据传输所需要的所有传输步骤的一个或多个数据传输序列实现了从传输的开始到结束更少涉及处理器44。
另外,在优选配置中,处理器44在于开始点(初始点)开始数据传输之前,分配所有所需存储器资源,并且如上所述在根据所有所创建数据传输序列的处理完成之后(在用户数据被存储在最终点(最终存储区域)之后),释放所分配的存储器资源。这种配置实现较少涉及处理器44直至完成该数据传输。
取决于设计,处理器44可以接收每个传输序列完成的状态并且请求在其之后执行下一个传输序列。此外,处理器44可以在完成每个传输序列时释放相关分配的存储器资源。
图4例示将从处理器44传递给传输定序器24/34的传输序列71。序列ID710为用于区分由传输定序器24/34处理的多个序列的信息;在形成传输序列71时,处理器44分派给传输序列71的值不同于分派给另一传输序列71的值。
传输ID711为用于标识传输序列71中的传输命令的信息。传输引擎712为指示传输命令的传递目的地的传输引擎的信息。此示例指示第一命令将被传递给驱动器接口LSI#1(#N指示相同类型的装置的编号)以及第二命令将被传递给后端DMA#1。传输命令73的内容将参考图6详细描述。
在序列714之后的动作指示在传输序列完成时将被执行的动作71。对于此字段714指示调用另一序列的情形,相关传输定序器24/34向其它定序器发送用以调用传输序列的消息。对于其指示发送消息给处理器44的情形,相关传输定序器24/34将传输序列结果发送给处理器44。在图4的示例中,字段714指示发送消息以调用另一传输序列。
目的地715为用于指示消息的目的地的信息。在此示例中,它指示前端板#3上的传输定序器24。与图4的示例中相似,对于在序列714之后的动作指示调用另一序列的情形,此字段指示目的地的传输定序器24/34的标识符。对于在序列714之后的动作指示将传输序列结果传递给处理器44的情形,此字段指示目的地的处理器44的标识符。序列ID716指示如下序列的标识符,该序列在序列714之后的动作指示调用另一序列的情形中下一个将被调用。
图4中的传输序列71为一个示例,并且传输序列可以具有任何数据结构。这同样适用于存储系统1使用的其它信息,诸如将在下文描述的传输序列结果72和序列跟踪表242。例如,适当地选自表、清单、数据库和队列的数据结构可以存储此实施例或其它实施例中的信息。
图5例示将从传输定序器24/34发送给处理器44的传输序列结果72。传输序列ID721为用于指示传输序列结果72所对应的传输序列的信息。传输命令结果722为用于指示相关传输序列中包括的单独传输的成功/失败的信息。
错误传输状态为如下信息,所述信息用于指示在传输命令时失败的传输引擎,并且在传输序列中的任何一个传输命令失败的情况下用于指示错误的类型。错误传输状态中的错误传输引擎723指示已经形成传输错误的传输引擎的标识符。此示例指示主机接口#3。错误传输状态中的错误ID724为用于指示由已经形成传输错误的传输引擎所输出的错误类型的标识符。
图6例示将从传输定序器24/34发送给传输引擎的传输命令73。交换ID731为用于区分传输引擎中的多个传输命令73的标识符。源装置732为用于指示传输命令所请求的数据传输的源装置的信息。
此示例指示传输源为驱动器接口#1的缓冲器。源地址733为指示源装置中待传输的数据被保持的位置(区域)的逻辑地址。类似地,目的地装置734和目的地地址735分别为用于指示传输数据的目的地装置和在目的地装置中保持传输数据的位置的信息。传输长度736为用于指示传输命令将传输的数据的长度的信息。
图7例示在传输命令的执行完成时由传输引擎输出的传输状态74。交换ID741为用于指示传输状态74所对应的传输命令73的信息。传输结果742为用于指示传输命令73的成功/失败的信息。错误ID743为用于指示在传输失败情况下失败的原因的标识符。
图8示出当处理器44已经从主机计算机12接收命令(典型地,读取命令或写入命令)时处理器44的处理示例的流程图。在从主机计算机12接收命令时,处理器44决定传输路径(s8111)。具体地,处理器44决定将使用的源装置和目的地装置、中继存储器以及传输引擎。随后,处理器44确定是否根据预定准则使用传输定序器24/34(S8112)。
例如,如果处理器44具有剩余处理能力,和/或如果传输定序器24/34由于高使用率而具有少量剩余处理能力,则处理器44确定不使用传输定序器24/34。具体地,处理器44参考处理器44的使用比例和/或传输定序器24/34的使用率来确定是否使用传输定序器24/34。
例如,如果处理器44的使用比例小于预定阈值和/或如果传输定序器24/34的使用比例大于预定阈值,则不能预期到性能提高的效果,因为传输定序器的能力不足。因此,处理器44确定不使用传输定序器24/34。典型地,两个阈值的值是不同的。如果一系列数据传输涉及由传输定序器24和34控制的两个传输引擎,则处理器44确定是使用它们其中之一还是使用它们二者。
此外,在优选配置中,处理器44分析来自主机计算机12的I/O命令(读取命令或写入命令),从而取决于命令的目标用户数据(读取数据或写入数据)的存储位置而确定是否使用传输定序器24/34。
具体地,如果存储目标用户数据的位置分散于多个存储装置中,则可能需要形成并组合用于单独存储装置的传输命令从而传输所有数据。为了支持所有这种复杂情形,传输定序器24/34需要复杂配置和大量存储器。为了避免这种情况,处理器44决定不使用传输定序器24/34。一个存储装置利用一个地址空间来定义,并且传输引擎访问在地址空间中由一个存储装置提供的存储区域。分离的存储装置提供分离的地址空间。由于这种情形通常少见,因不使用传输定序器24/34而造成的对性能的影响较小。
例如,如果由来自主机计算机12的读取命令指定的源(目标数据的存储位置)位于多个分离的高速缓冲存储器42或驱动器14,或者如果由来自主机计算机12的写入命令指定的目的地(用于存储目标数据的位置)位于多个分离的高速缓冲存储器42处,则处理器44决定不使用传输定序器24/34。原因与在数据被分散于多个存储装置中的前述情形下的原因相同。
更优选地,如果用户数据的源或目的地不是在连续区域(位于连续逻辑地址的区域)中,或者在离散区域中,则处理器44决定不使用传输定序器24/34。原因与在数据被分散于多个存储装置中的前述情形下的原因相同。另外,如果由于长传输长度的原因,在中继存储器中无法分配连续区域,则优选的是处理器44决定不使用传输定序器24/34。原因也与在数据被分散于多个存储装置中的前述情形下的原因相同。
在优选配置中,处理器44可以考虑缓冲器的自由区域和传输数据长度之间的关系而确定是否使用传输定序器24/34。如果前端缓冲器25或者后端缓冲器35的自由空间对于传输长度而言是不足的,例如,如果它们之间的差异小于预定阈值,则处理器44决定不使用传输定序器24/34。由于传输定序器长时间占用缓冲器,所以如果缓冲器的长时间分配的影响显著,则不使用传输定序器实现了缓冲器的有效利用。除此之外,如果预计对同一数据进行另一访问,则优选的是处理器44决定不使用传输定序器24/34。在传输数据中,通常实施消除了另一数据访问出现的排除,以避免数据中的矛盾。在这种情况下,使用传输定序器致使延长了排除对数据访问的时间,从而使得其它动作被长时间暂停。不使用传输定序器使得该排除时间能够碎片化,从而实现对其它动作的较小影响。
这些情形需要与存储器(包括驱动器中的存储介质)之间的简单数据传输不同的处理。例如,在分离的高速缓冲存储器装置中存储数据需要将从主机计算机12接收的用户数据分割成多个部分并且将它们存储到分离的高速缓冲存储器中。为了简化设计传输定序器24/34的配置(处理),优选的是处理器44执行这种例外处理。
处理器44可以参考多个前述准则的预定一个或多个,以确定是否使用传输定序器24/34。对于使用多个准则的情形,如果任何一个准则满足不使用的要求,则处理器44典型地在未利用传输定序器24/34的情况下传输数据。处理器44可以确定是否单独地使用传输定序器24和34。可替换地,如果传输定序器24和34其中之一未被使用,它可以决定不使用另一传输定序器24/34。
为了使用传输定序器,处理器44首先分配传输路径上的所有中继存储器。换言之,处理器44分配传输路径上的中继存储器,诸如前端缓冲器25、后端缓冲器35和高速缓冲存储器42(S8113)。
接着,处理器44形成传输命令和(多个)传输序列(S8114)。具体地,处理器44创建传输命令以使用在S8111决定的传输引擎,从而使得在S8113分配的存储器区域变为源/目的地。随后,它利用所创建传输命令形成(多个)传输序列。
接着,处理器44将所创建(多个)传输序列发送给传输定序器24和/或传输定序器34,并且在传输的开始点指示传输定序器执行传输(S8115)。处理器44等待来自在最终传输目的地处的传输定序器的结果(S8116),并且最后释放在S8113分配的缓冲器(S8117),从而终止处理。
另一方面,如果在S8112处理器44决定不使用传输定序器24或传输定序器34,则它在未利用传输定序器的情况下在单独阶段逐一执行数据传输。具体地,处理器44首先分配下一个数据传输所需的存储器(S8118)。随后,它创建下一个传输所需的传输命令(S8119)。
接着,处理器44将所创建传输命令发送给传输引擎(S8120)并且等待从传输引擎发送的传输状态(S8121)。在接收到传输状态时,处理器44检查传输成功(S8122),并且释放在此传输中使用的缓冲器(S8123)。处理器44确定是否所有必需的数据传输已经被执行(S8124)并且如果剩下任何数据传输(在S8124,N),则处理器44返回到S8118。如果所有数据传输均已经完成(在S8124,Y),处理器44终止处理。
图9例示传输定序器24的配置。传输定序器24包括:执行图2所示过程的内嵌处理器241,用于存储正被处理的传输序列的状态的序列跟踪表242,以及用于存储传输序列的细节的序列表243。传输定序器24的功能的至少一部分可以由不同于所内嵌处理器241的逻辑电路实施。
传输定序器24例如还包括内嵌存储器,并且把将由内嵌处理器241执行的程序以及包括序列跟踪表242和序列表243的数据存储在该存储器中。传输定序器24可以使用缓冲器25。这些数据(包括程序)从存储控制器11的非易失性存储器(未示出)或驱动器14的非易失性存储区域加载。安装在后端板3上的传输定序器34具有相同结构并且充当传输定序器24。
图10例示序列跟踪表242。序列跟踪表242具有用于存储传输阶段2422的字段,该字段用于指示相对于单独序列ID2421该传输已经进行到的阶段,从而用于标识多个传输序列。
图11为例示由传输定序器24/34执行的处理的流程图。传输定序器24/34重复此处理以替代处理器44进行数据传输的序列控制。
如图11的流程图中所示,传输定序器24/34首先寄存来自处理器44的传输序列。具体地,传输定序器24/34首先检查传输序列是否已经从处理器44发送(S8211)。在新传输序列已经到达的情况下(在S8212,Y),传输定序器24/34将该传输序列添加到传输序列表243(S8213)。
传输定序器24/34发送第一传输命令给由传输序列指定的传输引擎(S8214)。另一方面,当在S8212传输序列未到达的情况下,传输定序器24/34进行到S8215。接着,传输定序器24/34控制诸如DMA23/33的传输引擎以及接口LSI21/31。
具体地,传输定序器24/34检查来自传输引擎的传输状态是否已经到达(S8215)。在状态未到达的情况下(在S8216,N),传输定序器24/34终止处理。
在状态已经到达的情况下(在S8216,Y),传输定序器24/34分析状态,以检查相关传输已经成功还是失败(S8217)。在已经成功的情况下(在S8218,Y),传输定序器24/34查找传输序列表243以得到下一个将被执行的传输命令(s8219)。
在下一个命令存在的情况下,也就是说在所完成的数据传输不是序列中的最后一个的情况下(在S8220,N),传输定序器24/34将下一个命令发送给由传输序列指定的传输引擎(s8221)。随后,它将传输跟踪表242中正在处理的传输命令更新为刚刚开始被执行的命令(S8222),并且终止该处理。
另一方面,在刚刚完成的命令是最后命令的情况下(在s8220,Y),传输定序器24/34检查在传输序列中描述的在序列714之后的动作(S8223)。如果该动作是调用另一序列,则传输定序器24/34将序列调用消息发送给所指定的传输定序器(S8224),并且终止该处理。
另一方面,在序列714之后的动作指示将消息(结果)传递给处理器而不是调用另一序列的情况下,传输定序器24/34将传输序列结果发送给处理器44(S8225),并且终止该处理。同时,当传输定序器24/34在S8218发现传输失败的情况下,它将传输序列结果发送给处理器44,并且终止该处理。
如上所述,传输定序器24/34被提供以允许处理器44向传输定序器24/34初步发送传输序列,从而使得传输定序器24/34可以根据来自处理器44的命令执行一系列数据传输。因此,处理器44在一系列数据传输期间不需要干预每个数据传输(由传输引擎进行的每个传输),从而使得处理器44的处理量减少。结果,处理器44变得能够处理其它任务,使得存储系统1的性能得以提高。
在此实施例中,传输定序器24和34分别安装在不同板2和3上。传输定序器24和34控制板2和3上的各自传输引擎。
也就是说,前端板2上的传输定序器24控制前端DMA23和主机接口LSI21。后端板3上的传输定序器34控制后端DMA33和驱动器接口LSI31。传输定序器24/34仅仅控制同一板上的传输引擎的这种配置实现了位错误位置的容易定位。取决于设计,传输定序器可以控制不同板上的传输引擎。
第二实施例
第二实施例例示当存储控制器11已经从主机计算机12接收I/O请求时,适当地利用传输定序器24/34的处理I/O请求(读取命令或写入命令)。图12是示出当存储控制器11已经从主机计算机12接收I/O请求时由处理器44执行的I/O处理的流程图。
在从主机计算机12接收到I/O请求时,处理器44分析命令的类型(S8311)。具体地,在命令的类型为读取命令的情况下(在S8311,读取),处理器44检查所请求数据是否位于高速缓冲存储器42(S8312)。
具体地,处理器44查找管理被保持在高速缓冲存储器42中的数据的高速缓冲器目录,并且检查该卷号的并且在主机计算机12请求的地址处的数据是否位于高速缓冲存储器42。
在该数据位于高速缓冲存储器42的情况下(在S8312,Y),处理器44确定是否使用传输定序器24(S8313)。对于使用传输定序器24的准则,如前所讨论,可以使用下述的部分或全部:所请求数据被保持在高速缓冲存储器42的连续区域中,前端缓冲器25具有足够自由空间,不存在访问同一数据的另一过程,以及类似准则。
对于使用数据传输24的情形(在S8313,Y),处理器44利用传输定序器24执行读取命中处理84。另一方面,在未利用传输定序器24的情况下(在S8313,N),处理器44在未利用传输定序器24的情况下执行读取命中处理85。
另一方面,如果所请求数据并未位于高速缓冲存储器42(在S8312,N),则处理器44确定是否使用传输定序器24和34(S8316)。对于使用传输定序器24和34的准则,可以使用下述的部分或全部:所请求数据被保持在驱动器14的连续区域中,前端缓冲器25和后端缓冲器35具有足够自由空间,不存在访问同一数据的另一过程,以及类似准则。
对于使用传输定序器24和34的情形(在S8316,Y),处理器44利用传输定序器24和34执行读取漏失处理86。另一方面,在不利用传输定序器24或34的情况下(在S8316,N),处理器44执行读取漏失处理87而不利用传输定序器24或34。
在S8311,如果主机命令的类型为写入命令(在S8313,写入),处理器44确定是否使用传输定序器24(S8319)。使用传输定序器24的准则为:前端缓冲器25具有足够自由空间,不存在访问同一数据的另一处理,目的地高速缓冲存储器42中的地址是连续的,以及类似准则。
对于使用传输定序器24的情形(在S8319,Y),处理器44利用传输定序器24执行前端写入处理88。另一方面,在不利用传输定序器24的情况下(在S8319,N),处理器44执行前端写入处理89而不利用传输定序器24。
图13示出在利用传输定序器24的读取命中处理84中或者在未利用传输定序器24的读取命中处理85中,由传输引擎(主机接口LSI21和DMA23)执行的数据传输。
在读取命中处理84/85中,前端DMA(FEDMA)23首先执行从高速缓冲存储器42到前端缓冲器(FEBUF.)25的数据传输。具体地,前端DMA23向高速缓冲存储器42发出读取请求。前端DMA23从高速缓冲存储器42接收响应数据,并且将其写入前端缓冲器25。
接着,主机接口LSI21将数据从前端缓冲器25传输到主机计算机12。具体地,主机接口LSI21向前端缓冲器25发出读取请求。主机接口LSI21从前端缓冲器25接收响应数据并且将其转发给主机计算机12。
图14例示利用传输定序器24的读取命中处理84。此过程对应于图8中的S8113至S8117。在此过程中,处理器44首先分配前端缓冲器25(S841),这对应于图8中的S8113。
接着,处理器44创建针对前端DMA23的命令,用以将所请求数据从保持数据的高速缓冲存储器42传输到在S841分配的前端缓冲器25(S842)。
随后,处理器44形成针对主机接口LSI21的传输命令(S843),用以将数据从前端缓冲器25转发给主机计算机12。处理器44基于这些传输命令形成传输序列,使得前端DMA23和主机接口LSI21按顺序地操作(S844)。
处理器44将所创建的传输序列发送给前端传输定序器24(S845)。处理器44等待来自前端传输定序器24的响应(S846)。在接收到来自前端传输定序器24的响应时,处理器44检查传输序列已经成功(S847),释放前端缓冲器25(S848),并且终止该处理。
图15例示未利用传输定序器24的读取命中处理85。此过程对应于图8中的S8118至S8124。在此过程中,处理器44首先分配前端缓冲器25(S850)。处理器44形成针对前端DMA23的命令,用以将所请求数据从保持数据的高速缓冲存储器42传输到在S850分配的前端缓冲器25(S851)。
接着,处理器44将所创建传输命令发送给前端DMA23(S852)。处理器44等待由前端DMA23发送的传输状态(S853)。在接收到传输状态时,处理器44检查指示传输成功的状态(S854)。
接着,处理器44创建针对主机接口LSI21的传输命令,将数据从前端缓冲器25传输到主机计算机12(S855)。处理器44将所创建的命令发送给主机接口LSI21(S856)。
处理器44等待由主机接口LSI21发送的传输状态(S857)。在接收到传输状态时,处理器44检查指示传输成功的状态(S858)。处理器44释放所分配的前端缓冲器25(S859),从而终止该处理。
图16示出了在利用传输定序器24和34的读取漏失处理86中或者在未利用传输定序器24或34的读取漏失处理87中,由传输引擎(驱动器接口LSI31,后端DMA(BEDMA)33,前端DMA(FEDMA)23以及主机接口LSI21)处理的数据传输。
在读取漏失处理86/87中,驱动器接口LSI31首先将数据从驱动器14传输到后端缓冲器(BEBUF.)35。具体地,驱动器接口LSI31发出读取命令给驱动器14。驱动器接口LSI31从驱动器14接收响应数据并且将其写入后端缓冲器35。
接着,后端DMA33将数据从后端缓冲器35传输到高速缓冲存储器42。具体地,后端DMA33向后端缓冲器35发出读取请求。后端DMA33从后端缓冲器35接收响应数据并且将其写入高速缓冲存储器42。
接着,前端DMA23将数据从高速缓冲存储器42传输到前端缓冲器25。具体地,前端DMA23发出读取请求到高速缓冲存储器42。前端DMA23从高速缓冲存储器42接收响应数据并且将其写入前端缓冲器25。
最后,数据从前端缓冲器25传输到主机计算机12。具体地,主机接口LSI21向前端缓冲器25发出读取请求。主机接口LSI21从前端缓冲器25接收响应数据并且将其转发到主机计算机12。
图17例示利用传输定序器24和34的读取漏失处理86。此过程对应于图8中的S8113至S8117。在此过程中,处理器44首先分配一系列传输所需的中继存储器。具体地,处理器44定位后端板3并且分配其上的后端缓冲器35(S8611),所述后端板3连接到将从其读取由读取命令指定的用户数据的驱动器14。
接着,处理器44将高速缓冲存储器42中的自由区域分配给用以存储所请求数据的区域(S8612)。类似地,处理器44分配前端缓冲器25(S8613)。通过前述步骤,可以分配一系列传输所需的中继存储器。
接着,处理器44创建传输所需的传输命令和传输序列。具体地,处理器44创建针对驱动器接口LSI31的传输命令,用以将数据从驱动器14传输到后端缓冲器35(S8614)。处理器44随后创建针对后端DMA33的传输命令,用以将数据从后端缓冲器35传输到高速缓冲存储器42(S8615)。
接着,处理器44创建针对前端DMA23的传输命令,用以将数据从高速缓冲存储器42传输到前端缓冲器25(S8616)。处理器44创建针对主机接口LSI21的传输命令,用以将数据从前端25传输到主机计算机12(S8617)。
接着,使用所创建的驱动器接口LSI31和后端DMA33的传输命令,处理器44形成按此次序传输数据的传输序列(S8618)。处理器44将在完成传输序列之后的下一个动作设置为调用用于前端传输定序器24的传输序列。
接着,使用前端DMA23和主机接口LSI21的传输命令,处理器44创建用于按此次序传输数据的传输序列(S8619)。通过前述步骤,传输命令和传输序列的创建已经完成。
处理器44将在S8619创建的传输序列发送给前端传输定序器24(S8620)。接着,处理器44将在S8618创建的传输序列发送给后端传输定序器34(S8621)。处理器44指示后端传输定序器34调用该传输序列(S8622)。
处理器44等待由前端传输定序器24发送的传输结果(s8623)。在该传输结果到达时,处理器44分析该传输结果以检查传输序列的处理已经成功(S8624)。处理器44释放先前分配的前端缓冲器25(S8625)并且按照相同方式释放后端缓冲器35(S8626),从而终止该处理。
图18例示未利用传输定序器24或34的读取漏失处理87。此过程对应于图8中的S8118至S8124。此过程首先将数据从驱动器14传输到后端缓冲器35。具体地,处理器44分配后端缓冲器35(S8711)。接着,处理器44创建针对驱动器接口LSI31的传输命令,用以将数据从驱动器14传输到后端缓冲器35(S8712)。
接着,处理器44将所创建的命令发送给驱动器接口LSI31(S8713)。处理器44等待从驱动器接口LSI31发送的执行结果的状态(S8714)。在接收到该状态时,处理器44对其进行分析以检查传输已经成功(S8715)。
接着,处理器44将来自后端缓冲器35的数据传输到高速缓冲存储器42。具体地,处理器44首先分配高速缓冲存储器42(S8716)。接着,处理器44创建针对后端DMA33的传输命令,以将数据从后端缓冲器35传输到高速缓冲存储器42(S8717)。
接着,处理器44将所创建的命令发送给后端DMA33(s8718)。处理器44等待由后端DMA33发送的执行状态(S8719)。在接收到该状态时,处理器44分析该状态以检查传输已经成功(S8720)。随后,处理器44释放后端缓冲器35(S8721)。
接着,处理器44将来自高速缓冲存储器42的数据传输到前端缓冲器25。具体地,处理器44首先分配前端缓冲器25(S8722)。接着,处理器44创建针对前端DMA23的传输命令,用以将数据从高速缓冲存储器42传输到前端缓冲器25(S8723)。
接着,处理器44将所创建的命令发送给前端DMA23(S8724)。处理器44等待由前端DMA23发送的执行结果的状态(s8725)。在接收到该状态时,处理器44分析状态以检查传输已经成功(S8726)。
最后,处理器44将来自前端缓冲器25的数据传输到主机计算机12。具体地,处理器44首先创建针对主机接口LSI21的传输命令,用以将数据从前端缓冲器25传输到主机计算机12(S8727)。
处理器44将所创建的命令发送给主机接口LSI21(S8728)。随后,处理器44等待由主机接口LSI21发送的执行结果的状态(S8729)。在接收到该状态时,处理器44分析状态以检查传输已经成功(S8730)。最后,处理器44释放前端缓冲器25(S8731),从而终止该处理。
图19示出在利用传输定序器24的前端写入处理88中或者在未利用传输定序器24的前端写入处理89中,由传输引擎(主机接口LSI21和前端DMA23)执行的数据传输。
在前端写入处理88/89中,主机接口LSI21首先将数据从主机计算机12传输到前端缓冲器25。具体地,主机接口LSI21接收由主机计算机12发送的用户数据。主机接口LSI21将数据写入由传输命令初步指定的前端缓冲器25中的位置。
接着,前端DMA23将数据从前端缓冲器25传输到高速缓冲存储器42。具体地,前端DMA23发出读取请求到前端缓冲器25。
前端DMA23接收由前端缓冲器25转发的数据,并且将其写入高速缓冲存储器42。在这种场合,由于从主机计算机12发送的数据中的错误或者电源或高速缓冲存储器板41中的故障,数据可能无法被读取。因此,在写入数据时,优选的是将同一数据写入两个高速缓冲存储器42中,从而在其中任何一个出现故障并且无法从其读取的情况下防止数据丢失。
图20例示利用传输定序器24的前端写入处理88。此过程对应于图8中的S8113至S8117。在此过程中,处理器44首先分配一系列传输所需的中继存储器。
具体地,处理器44首先分配前端缓冲器25(s881)。接着,处理器44检查用于存储来自主机计算机12的写入数据的高速缓冲存储器42是否已经被分配,并且如果它们尚未被分配,则它分配高速缓冲存储器42(S882)。通过这些步骤来分配传输中继存储器。
接着,处理器44创建传输命令和传输序列。具体地,处理器44形成针对主机接口LSI21的传输命令,用以将数据从主机计算机12传输到前端缓冲器25(S883)。
接着,处理器44创建针对前端DMA23的传输命令,用以将数据从前端缓冲器25传输到两个高速缓冲存储器42(S884)。处理器44基于所创建传输命令形成传输序列,以便按此次序执行由主机接口LSI21进行的传输和由前端DMA23进行的传输(S885)。通过这些步骤,完成创建传输命令和传输序列。
接着,处理器44将所创建的传输序列发送给前端传输定序器24以指示它执行传输序列(S886)。处理器44随后等待来自传输定序器24的响应(S887)。在接收到该响应时,处理器44检查传输序列的执行已经成功(S888),并且释放前端缓冲器25(S889)。处理器44终止该处理。
图21例示未利用传输定序器的前端写入处理89。此过程对应于图8中的S8118至S8124。在此过程中,处理器44首先将数据从主机计算机12传输到前端缓冲器25。
具体地,处理器44首先分配前端缓冲器25(S890)。接着,处理器44形成针对主机接口LSI21的传输命令,以将数据从主机计算机12传输到前端缓冲器25(S891)。处理器44将所创建的命令传输到主机接口LSI21(S892)。
处理器44等待由主机接口LSI21发送的执行结果的状态(S893)。在接收到该状态时,处理器44分析状态以检查传输已经成功(S894)。通过这些步骤,从主机计算机12到前端缓冲器25的数据传输完成。
接着,处理器44将数据从前端缓冲器25传输到高速缓冲存储器42。具体地,处理器44首先形成针对前端DMA23的传输命令,用以将数据从前端缓冲器25传输到高速缓冲存储器42(S895)。随后,处理器44将所创建的命令发送给前端DMA23(S896)。
处理器44等待由前端DMA23发送的执行结果的状态(S897)。在接收到该状态时,处理器44分析状态以检查传输已经成功(S898)。最后,处理器44释放所分配的前端缓冲器25(S899),从而终止该处理。
图22示出将由主机计算机12写入高速缓冲存储器42的用户数据写入到驱动器14的降级处理90的示例。如果由主机计算机12写入的用户数据位于高速缓冲存储器42中,当高速缓冲存储器42的自由空间短缺时或者当存储系统1具有剩余处理能力时,此过程被执行。
在此过程中,处理器44检查写入目标的驱动器14的RAID水平(S901)。对于RAID1的情形(在S901,RAID1),处理器44确定是否使用传输定序器34(S902)。
处理器44检查是否满足使用传输定序器34的准则;该准则可包括下述的部分或全部:待降级的数据被保持在高速缓冲存储器42的连续区域中,数据将不存储于多个分离的驱动器14中,驱动器14中的存储区域是连续的,后端缓冲器35具有足够自由空间,不存在访问该数据的其它过程,以及写入目标驱动器14所属的RAID群组的其它驱动器没有出现故障。
对于使用传输定序器34的情形(在S902,Y),处理器44利用传输定序器34执行RAID1降级91。另一方面,对于不使用传输定序器34的情形(在S902,N),处理器44执行RAID1降级92而不利用传输定序器34。在S901,在写入目标驱动器14的RAID水平为RAID5的情况下(在S901,RAID5),处理器44确定是否使用传输定序器34(S905)。
处理器44检查是否满足使用传输定序器34的准则;该准则可包括下述的部分或全部:待降级的数据被保持在高速缓冲存储器42的连续区域中,数据将不存储于多个分离的驱动器14中,驱动器14中的存储区域是连续的,后端缓冲器35具有足够自由空间,不存在访问该数据的其它处理,以及写入目标驱动器14所属的RAID群细的其它驱动器没有出现故障。
对于使用传输定序器34的情形(在S905,Y),处理器44利用传输定序器34执行RAID5降级93。另一方面,在不使用传输定序器34的情况下(在S905,N),处理器44执行RAID5降级94而不利用传输定序器34。
图23示出在利用传输定序器34的RAID1降级91中或者在未利用传输定序器34的RAID1降级92中由传输引擎执行的数据传输。
RAID1降级91/92分别将高速缓冲存储器42中的数据写入两个驱动器14(DRIVE1和DRIVE2)中。在通常配置中,驱动器1(14)和驱动器2(14)连接到不同后端板3上的不同驱动器接口LSI131;因此,将用于传输的后端DMA33和后端缓冲器35是不同的。
首先,第一后端DMA(BE1DMA)33将数据从高速缓冲存储器42传输到第一后端缓冲器(BE1BUF.)35,这意味着第一后端DMA33向高速缓冲存储器42发出读取请求,并且将所接收的响应数据写入第一后端缓冲器35。
接着,第一驱动器接口LSI(DRIVEI/F1LSI)31将数据从第一后端缓冲器35传输到第一驱动器(DRIVE1)14。类似地,第一驱动器接口LSI31向第一后端缓冲器35发出读取请求,接收数据,向第一驱动器14发出写入命令,并且写入所接收的数据。通过这些步骤,完成对第一驱动器14的写入。
接着,按照相同方式,RAID1降级91/92执行对第二驱动器(DRIVE2)14的写入。第二后端DMA(BE2DMA)33、第二后端缓冲器(BE2BUF.)35、第二驱动器接口LSI(DRIVEI/F2LSI)31执行与上文针对将数据写入第二驱动器14所述的处理相同的处理。
图24例示利用传输定序器的RAID1降级91。此过程对应于图8中的S8113至s8117。在此过程中,处理器44首先分配一系列传输所需的中继存储器。具体地,处理器44分配第一后端缓冲器35,用以写入第一驱动器14(S9111)。接着,处理器44按照相同方式分配第二后端缓冲器35(S9112)。通过这些步骤,完成分配传输中继存储器。
接着,处理器44创建传输命令和传输序列。具体地,首先处理器44形成用于将数据从高速缓冲存储器42降级到第一驱动器14的第一传输序列(S9113)。接着,处理器44形成用于将数据降级到第二驱动器14的第二传输序列(S9114)。这些过程的细节将参考图30描述。接着,处理器44将在完成S9113处的第一传输序列之后的下一个动作设置为调用第二传输序列(S9115)。通过这些步骤,完成创建传输序列。
接着,处理器44将在S9113创建的第一传输序列发送给第一后端传输定序器34(S9116),该第一后端传输定序器34位于连接到第一驱动器14的第一后端板3上。按照相同方式,处理器44将在S9114创建的第二传输序列发送给第二后端传输定序器34(S9117),该第二后端传输定序器34位于连接到第二驱动器14的第二后端板3上。
随后,处理器44指示已经在S9116向其发送第一序列的那个传输定序器34调用该传输序列(S9118)。处理器44等待来自传输定序器34的指示第二传输序列完成的状态(S9119)。在接收到该传输状态时,处理器44检查传输序列的执行已经成功(S9120),释放第一后端缓冲器35(S9121)以及释放第二后端缓冲器35(S9122)。随后,处理器44终止其处理。
图25例示未利用传输定序器34的RAID1降级91。此过程对应于图8中的S8118至S8124。在此过程中,首先,处理器44分配位于连接到第一驱动器14的第一后端板3上的第一后端缓冲器35(S921),用以将数据降级到第一驱动器14。处理器44将数据从高速缓冲存储器42降级到第一驱动器14(S922)。此过程的细节将参考图31描述。处理器44释放第一后端缓冲器35(S923)。
类似地,处理器44分配位于连接到第二驱动器14的第二后端板3上的第二后端缓冲器35,用以将数据降级到第二驱动器14(S924)。处理器44将数据从高速缓冲存储器42降级到第二驱动器14(S925)。随后,处理器44释放第二后端缓冲器35(S926),从而终止处理。
图26示出在利用传输定序器的RAID5降级93中或者在未利用传输定序器的RAID5降级94中由传输引擎执行的数据传输。
RAID5降级93/94将更新的数据写入构成RAID5群组的驱动器14的两个驱动器14:用于存储数据的驱动器14(在下文中,称为数据驱动器)和用于存储奇偶校验的驱动器14(在下文中,称为奇偶校验驱动器)。在图26中,数据驱动器由DRIVE(D.)表示,奇偶校验驱动器由DRIVE(P.)表示。
此过程首先将更新之前的数据(在下文中,称为旧数据)从数据驱动器14加载到高速缓冲存储器42。具体地,连接到数据驱动器(DRIVE(D.))14的第一驱动器接口LSI(D.I/F1LSI)31将旧数据加载到位于同一板上的第一后端缓冲器(BE1BUF.)35。具体地,第一驱动器接口LSI31发出读取命令以将旧数据读取到数据驱动器14并且将所接收的数据写入第一后端缓冲器35。
接着,与第一后端缓冲器35在相同的后端板3上被提供的第一后端DMA(BE1DMA)33将第一后端缓冲器35中的旧数据传输到高速缓冲存储器42。具体地,后端DMA33向第一后端缓冲器35发出读取请求,并且将所接收的旧数据写入高速缓冲存储器42。
类似地,RAID5降级93/94将存储于奇偶校验驱动器(DRIVE(P.))14中的更新之前的奇偶校验(在下文中,旧奇偶校验)加载到高速缓冲存储器42中。除了使用第二驱动器接口LSI(D.I/F2LSI)31、第二后端缓冲器(BE2BUF.)35和第二后端DMA(BE2DMA)33之外,该方法与加载用户数据的方法相同。
接着,RAID5降级93/94根据由主机写入并且原始存在于高速缓冲存储器42的数据(在下文中,新数据),加载的旧数据,以及旧奇偶校验而生成该更新之后的奇偶校验(在下文中,新奇偶校验)。具体地,奇偶校验发生器(PARITYGEN.)36发出读取命令以将旧数据、旧奇偶校验和新数据读取到高速缓冲存储器42。奇偶校验发生器36对所接收的三个数据执行XOR计算,以生成新奇偶校验,并且将其写入高速缓冲存储器42。
随后,RAID5降级93/94将来自高速缓冲存储器42的新数据写入数据驱动器14。具体地,第一后端DMA33向高速缓冲存储器42发出读取请求并且将所接收的新数据写入第一后端缓冲器35。接着,第一驱动器接口LSI31向第一后端缓冲器35发出读取请求并且发出写入命令以将所接收的新数据写入数据驱动器14。
最后,RAID5降级93/94将来自高速缓冲存储器42的旧奇偶校验写入奇偶校验驱动器14。除了使用第二后端DMA33、第二后端缓冲器35和第二驱动器接口LSI31之外,该方法与写入新数据相同。
图27例示利用传输定序器34的RAID5降级93。此处理对应于图8中的S8113至S8117。在此过程中,处理器44首先分配传输中继存储器。具体地,处理器44分配第一后端缓冲器(BE1BUF.)35中的第一缓冲器区域,用以加载来自数据驱动器14的旧数据(S9311)。接着,处理器44分配第二后端缓冲器(BE2BUF.)35中的第二缓冲器区域,用以从奇偶校验驱动器14加载旧奇偶校验(S9312)。
类似地,处理器44分配第一后端缓冲器35中的第三缓冲器区域,用以将来自高速缓冲存储器42的新数据写入(降级)到数据驱动器14(S9313)。处理器44分配第二后端缓冲器35中的第四缓冲器区域,用以将来自高速缓冲存储器42的新奇偶校验写入奇偶校验驱动器14(S9314)。通过这些步骤,完成分配传输中继存储器。
接着,处理器44创建传输命令和传输序列。具体地,处理器44创建用于将旧数据从数据驱动器14升级到高速缓冲存储器42的第一传输序列(S9315)。接着,处理器44创建用于将旧奇偶校验从奇偶校验驱动器14升级到高速缓冲存储器42的第二传输序列(S9316)。
接着,处理器44创建第三序列(s9317),以便奇偶校验发生器36根据旧数据、旧奇偶校验和新数据生成新奇偶校验。此序列仅仅由供奇偶校验发生器36生成奇偶校验的数据传输命令构成。接着,处理器44形成用于将新数据从高速缓冲存储器42降级到数据驱动器14的第四传输序列(S9138)。处理器创建用于将新奇偶校验从高速缓冲存储器42降级到数据驱动器14的第五传输序列(S9319)。
处理器44将完成第一传输序列时的动作设置为调用第二传输序列(S9320),将完成第二传输序列时的动作设置为调用第三传输序列(S9321),将完成第三传输序列时的动作设置为调用第四传输序列(S9322),以及将完成第四传输序列时的动作设置为调用第五传输序列(S9323)。通过这些步骤,完成创建传输序列。创建用于升级和降级的传输序列的细节将在下文参考图29和30描述。
处理器44将单独创建的传输序列发送给相关后端传输定序器34(S9324)。具体地,第一和第四传输序列被发送给位于连接到数据驱动器14的第一后端板3上的首先传输定序器34。第二和第五传输序列被发送给位于连接到奇偶校验驱动器14的第二后端板3上的第二传输定序器34。
将第三传输序列发送给在后端板3上的传输定序器34,用于此奇偶校验生成的奇偶校验发生器36被布置在该后端板3上。应注意的是,奇偶校验发生器36和操作奇偶校验发生器36的传输定序器可以放置在不同位置,诸如放置在高速缓冲存储器板41上。
接着,处理器44指示第一后端传输定序器34调用第一传输序列(S9325)。处理器44等待报告完成第五传输序列的状态的到达(S9326)。在接收到该状态时,处理器44检查传输已经成功(S9327),释放所分配的第一至第四缓冲器区域(s9328),以及终止处理。
图28例示未利用传输定序器的RAID5降级94。此过程对应于图8中的S8118至S8124。在此过程中,处理器44分配位于连接到数据驱动器14的第一后端板3上的第一后端缓冲器35中的第一缓冲器区域,用于将旧数据从数据驱动器14升级到高速缓冲存储器42(S9411)。
接着,处理器44将旧数据从数据驱动器14升级到高速缓冲存储器42(S9412)。随后,处理器44释放所分配的第一缓冲器区域(S9413)。
接着,处理器44分配位于连接到奇偶校验驱动器14的第二后端板3上的第二后端缓冲器35中的第二缓冲器区域,用于将旧奇偶校验从奇偶校验驱动器14升级到高速缓冲存储器42(S9414)。处理器44将旧奇偶校验从奇偶校验驱动器14升级到高速缓冲存储器42(S9415)。处理器44释放所分配的第二缓冲器区域(S9416)。
接着,处理器44使用奇偶校验发生器36,根据高速缓冲存储器42中的旧数据、旧奇偶校验以及新数据生成新奇偶校验(S9417)。具体地,处理器44创建传输命令以指示奇偶校验发生器36在检索旧数据、旧奇偶校验和新数据之后生成和写入新奇偶校验,并且将传输命令发送给奇偶校验发生器36。
接着,处理器44分配位于连接到数据驱动器14的第一后端板3上的第一后端缓冲器35中的第三缓冲器区域,用于将新数据从高速缓冲存储器42降级到数据驱动器14(S9418)。处理器44将新数据从高速缓冲存储器42降级到数据驱动器14(S9419)。处理器44释放所分配的第三缓冲器区域(S9420)。
接着,处理器44分配位于连接到奇偶校验驱动器14的第二后端板3上的第二后端缓冲器35中的第四缓冲器区域,用于将新奇偶校验从高速缓冲存储器42降级到奇偶校验驱动器14(S9421)。处理器44将新奇偶校验从高速缓冲存储器42降级到奇偶校验驱动器14(S9422)。处理器44释放所分配的第四缓冲器区域(S9423)。随后,处理器44终止处理。升级和降级的细节将参考图31和32描述。
图29例示了形成升级序列95,用以形成用于升级数据的传输序列。在此过程中,首先,处理器44创建针对驱动器接口LSI31的传输命令,用以将数据从驱动器14传输到后端缓冲器35(S951)。
接着,处理器44创建针对后端DMA33的传输命令,用以将数据从后端缓冲器35传输到高速缓冲存储器42(S952)。另外,处理器44创建用于按此次序执行这些传输命令的传输序列(S953),从而终止该处理。
图30例示形成降级序列96,用以创建用于降级数据的传输序列。在此过程中,首先,处理器44创建针对后端DMA33的传输命令,用以将数据从高速缓冲存储器42传输到后端缓冲器35(S961)。
接着,处理器44形成针对驱动器接口LSI31的传输命令,用以将数据从后端缓冲器35传输到驱动器14(S962)。处理器44形成按此次序执行这两个传输命令的传输序列(S963),从而终止处理。
图31例示在未利用传输定序器34的降级中使用的将数据升级到高速缓冲存储器42(97)。在此过程中,首先,处理器44形成针对驱动器接口LSI31的传输命令,用以将数据从驱动器14传输到后端缓冲器35(S971)。
接着,处理器44将所创建的命令发送给驱动器接口LSI31并且指示它执行传输(S972)。处理器44等待来自驱动器接口LSI31的指示传输已经完成的状态(S973)。在接收到该状态时,处理器44分析它以检查传输已经成功(S974)。
随后,处理器44形成针对后端DMA33的传输命令,用以将数据从后端缓冲器35传输到高速缓冲存储器42(S975)。处理器44将所创建的命令发送给后端DMA33并且指示它执行传输(S976)。
处理器44等待来自后端DMA33的指示该传输完成的状态(S977)。在接收到该状态时,处理器44分析它以检查传输已经成功(S978)。最后,处理器44终止处理。
图32例示在未利用传输定序器34的情况下到驱动器14的数据降级(98)。在此过程中,首先,处理器44形成针对后端DMA33的传输命令,用以将数据从高速缓冲存储器42传输到后端缓冲器35(S981)。
处理器44将所创建的命令发送给后端DMA33并且指示它执行传输(S982)。处理器44等待由后端DMA33发送的指示传输完成的状态(S983)。在接收到该状态时,处理器44分析它以检查传输已经成功(S984)。
接着,处理器44形成针对驱动器接口LSI31的传输命令,用以将数据从后端缓冲器35传输到驱动器14(S985)。处理器44将所创建的命令发送给驱动器接口LSI31以指示它执行传输(S986)。处理器44等待由驱动器接口LSI31发送的指示传输完成的状态(S987)。在接收到该状态时,处理器44分析它以检查传输已经成功(S988)。随后,处理器44终止该处理。
在使用传输定序器24/34的情况下,不需要处理器44干预一系列传输的调用以及其完成的验证。因此,处理器44的处理量小,使得存储系统1可以表现出高性能。另一方面,在没有使用传输定序器24/34的情况下,缓冲器(的区域)被分配用于所需时间段并且随后被释放;因此,所需缓冲器区域的量可以得到抑制。
鉴于这些情形,在处理器44不具有足够剩余处理能力或者剩余缓冲器空间紧张的情况下,可能优选的是不使用传输定序器24/34。此外,在需要将多个传输命令用于传输阶段的情形下,诸如待传输的数据未位于连续区域的情形,则优选不使用传输定序器,以使得传输定序器24/34的结构可以简化。另外,当存在对同一数据的多个访问时,则高效的是处理器44执行传输而不使用传输定序器24/34,因为将不需要长时间排除访问数据。
上述的配置实现了存储系统中在数据传输中的处理器的处理量减小。结果,存储系统的性能提高。此实施例中需要的传输定序器其配置(仅仅执行硬件通信)是简单的;附加需要的资源(电路系统规模和存储器容量)少。
如前所述,已经描述了本发明的优选实施例,但是本发明不限于上述实施例。本领域技术人员可以在本发明范围内容易地调整、添加或者转换上述实施例中的每个构成。一个实施例的配置的部分可以用另一实施例的配置的部分替代;并且一个实施例的配置可以被添加到另一实施例。每个实施例的配置的部分可以被添加,删除,或者由不同配置替代。
本发明可以应用到不包括驱动器和高速缓冲存储器其中之一的存储系统。在不包括驱动器的存储系统中,对应于上述实施例中的高速缓冲存储器的存储装置提供用户数据的最后存储区域。典型地,这种存储系统包括多个电源并且在多个存储装置中并行地存储用户数据从而减小数据丢失的可能性。

Claims (12)

1.一种存储系统,所述存储系统在所述系统内传输用户数据,所述存储系统包括:
第一传输引擎;
第二传输引擎;
第一存储装置;
第二存储装置;
处理器;以及
传输定序器,所述传输定序器为不同于所述处理器的装置,
其中:
所述处理器创建用于指示用户数据的传输顺序的传输序列信息,
所述传输序列信息包括关于目的地和源的标识信息,所述用户数据在所述目的地和所述源处的存储地址信息,以及用于指定所述用户数据的每个传输的、包括关于传输引擎的标识信息的传输参数,以及指示所述用户数据的传输顺序的信息,
所述传输定序器接收由所述处理器创建的所述传输序列信息,并且根据所述传输序列信息控制所述第一传输引擎和所述第二传输引擎;
所述第一传输引擎根据来自所述传输定序器的指令,向所述第一存储装置传输接收的用户数据;
所述第一存储装置存储传输的所述用户数据;
所述第二传输引擎根据所述传输定序器的指令,向所述第二存储装置传输在所述第一存储装置中的所述用户数据;以及
所述第二存储装置存储传输的所述用户数据。
2.根据权利要求1所述的存储系统,其中:
在根据所述传输序列信息的所述传输开始之前,所述处理器分配所述第一存储装置和所述第二存储装置的存储区域;以及
在根据所述传输序列信息的所述传输完成之后,所述处理器释放分配的所述存储区域。
3.权利要求2所述的存储系统,还包括:
第二传输定序器;
第三传输引擎;以及
第三数据存储装置,
其中:
所述传输定序器以及所述第一传输引擎和所述第二传输引擎被布置在第一板上;
所述第二传输定序器和所述第三传输引擎被布置在第二板上;
所述第一板和所述第二板经由内部网络连接;
所述处理器创建用于传输所述用户数据的第二传输序列信息;以及
所述第二传输定序器接收所述第二传输序列信息,并且根据所述第二传输序列信息控制所述第三传输引擎。
4.根据权利要求3所述的存储系统,其中:
在根据所述传输序列信息的所述用户数据的所述传输已经正常完成之后,所述传输定序器根据所述传输序列信息调用所述第二传输定序器;
所述第三传输引擎根据调用的所述第二传输定序器的指令,向所述第三数据存储装置传输在所述第二存储装置中的所述用户数据;以及
所述第三数据存储装置存储传输的所述用户数据。
5.根据权利要求4所述的存储系统,其中所述处理器根据预定准则确定在所述用户数据的内部传输中是否使用所述传输定序器。
6.根据权利要求5所述的存储系统,其中所述处理器决定在其中所述用户数据的存储位置分散于多个存储装置中的内部传输中,不使用所述传输定序器。
7.根据权利要求6所述的存储系统,其中所述处理器决定在其中所述用户数据存储于不连续存储区域中的内部传输中,不使用所述传输定序器。
8.根据权利要求7所述的存储系统,其中所述处理器把将在内部传输的所述用户数据的数据长度与所述第一存储装置和所述第二存储装置的至少任何一个的自由空间进行比较,以确定是否使用所述传输定序器。
9.根据权利要求8所述的存储系统,其中所述处理器决定在对于其存在由多个过程的访问的所述用户数据的内部传输中,不使用传输定序器。
10.根据权利要求9所述的存储系统,其中所述处理器参考对于所述处理器的负荷和/或对于所述传输定序器的负荷,确定是否使用所述传输定序器。
11.根据权利要求10所述的存储系统,其中:
所述传输定序器向所述第一传输引擎和所述第二传输引擎中的每个传输引擎通知所述用户数据在所述目的地和所述源处的所述存储地址信息以及所述用户数据的所述数据长度;
所述传输定序器从所述第一传输引擎和所述第二传输引擎中的每个传输引擎接收指示传输的正常完成/异常完成的状态;以及
在接收的所述状态指示正常完成的情况下,所述传输定序器调用下一数据传输。
12.根据权利要求11所述的存储系统,其中:
所述传输定序器包括内嵌处理器;以及
所述内嵌处理器的工作频率低于所述处理器的工作频率。
CN201180068073.9A 2011-06-24 2011-06-24 存储系统 Active CN103392165B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/003624 WO2012176244A1 (en) 2011-06-24 2011-06-24 Storage system

Publications (2)

Publication Number Publication Date
CN103392165A CN103392165A (zh) 2013-11-13
CN103392165B true CN103392165B (zh) 2016-04-06

Family

ID=46760777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180068073.9A Active CN103392165B (zh) 2011-06-24 2011-06-24 存储系统

Country Status (5)

Country Link
US (1) US8266342B1 (zh)
EP (1) EP2652589A1 (zh)
JP (1) JP5658827B2 (zh)
CN (1) CN103392165B (zh)
WO (1) WO2012176244A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
CN103986779B (zh) * 2014-05-29 2017-10-13 沈文策 一种应用数据传输方法、装置及终端设备
US10031860B2 (en) * 2014-09-24 2018-07-24 Western Digital Technologies, Inc. Memory transfer of objects in a data storage device
US9851901B2 (en) 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10459653B2 (en) 2016-03-01 2019-10-29 Hitachi Ltd. Storage system, storage device, and storage system control method for duplicating data with copy pair
CN112486874B (zh) * 2020-11-30 2021-12-10 无锡众星微系统技术有限公司 宽端口场景下i/o指令的保序管理方法及装置
JP7232281B2 (ja) 2021-03-29 2023-03-02 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101778138A (zh) * 2010-02-01 2010-07-14 成都市华为赛门铁克科技有限公司 一种存储系统及数据传输方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3617672B2 (ja) * 1994-03-14 2005-02-09 富士通株式会社 並列プロセッサシステム
JP2001109708A (ja) * 1999-10-14 2001-04-20 Hitachi Ltd マイクロコンピュータ
US7684422B1 (en) * 2002-01-17 2010-03-23 Juniper Networks, Inc. Systems and methods for congestion control using random early drop at head of buffer
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US6993600B1 (en) * 2003-05-07 2006-01-31 Integrated Memory Logic, Inc. Write control sequencer for optical read/write and DVD combination integrated circuit
JP2005056067A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd Dma転送制御装置
US7325118B2 (en) * 2003-09-30 2008-01-29 Samsung Electronics, Co., Ltd. Method and apparatus for executing dynamic memory management with object-oriented program
JP2005135065A (ja) * 2003-10-29 2005-05-26 Hitachi Ltd 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
JP4397770B2 (ja) * 2004-09-17 2010-01-13 富士通株式会社 記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラム
JP2006185000A (ja) * 2004-12-27 2006-07-13 Hitachi Ltd ストレージ装置
US8149854B2 (en) * 2005-06-30 2012-04-03 Intel Corporation Multi-threaded transmit transport engine for storage devices
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
JP4740763B2 (ja) 2006-02-15 2011-08-03 株式会社日立製作所 ストレージシステム及びストレージコントローラ
JP5031596B2 (ja) * 2008-01-22 2012-09-19 ルネサスエレクトロニクス株式会社 情報記憶装置、情報処理システム、及び情報処理装置の動作状態の設定方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101778138A (zh) * 2010-02-01 2010-07-14 成都市华为赛门铁克科技有限公司 一种存储系统及数据传输方法

Also Published As

Publication number Publication date
WO2012176244A1 (en) 2012-12-27
US8266342B1 (en) 2012-09-11
JP2014504749A (ja) 2014-02-24
EP2652589A1 (en) 2013-10-23
JP5658827B2 (ja) 2015-01-28
CN103392165A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
CN103392165B (zh) 存储系统
US7596660B2 (en) System and method for storage system
CN102622316B (zh) 选择性地使能主机传递中断
US6792482B2 (en) Device controller and input/output system
US10725878B2 (en) Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused
JP4175788B2 (ja) ボリューム制御装置
CN103927261A (zh) 用于精简供应存储的高效分配和回收的方法和系统
AU2021343577A1 (en) Order processing and warehouse dispatch method, device, system, and storage medium
JP2010271808A (ja) ストレージ装置及びデータコピー方法
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
US20110246599A1 (en) Storage control apparatus and storage control method
TW201409475A (zh) 高效能持續性記憶體
JP2005321959A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP3617631B2 (ja) ストレージ制御装置及びその制御方法
JP6617461B2 (ja) 制御装置、制御プログラム、及び制御方法
US20230137668A1 (en) storage device and storage system
US6954825B2 (en) Disk subsystem
US10606754B2 (en) Loading a pre-fetch cache using a logical volume mapping
US20100057989A1 (en) Method of moving data in logical volume, storage system, and administrative computer
US11099740B2 (en) Method, apparatus and computer program product for managing storage device
CN114546287B (zh) 一种单通道多逻辑单元号交叉传输的方法和装置
JPH1195934A (ja) 情報処理システムの制御方法
CN107153515B (zh) 一种多控集群存储信息处理系统及方法
JP6836536B2 (ja) ストレージシステム及びio処理の制御方法
JP2008192020A (ja) Raid制御装置及びその制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant