CN1242330C - 执行并飞“异或”运算的方法和系统 - Google Patents
执行并飞“异或”运算的方法和系统 Download PDFInfo
- Publication number
- CN1242330C CN1242330C CNB988003813A CN98800381A CN1242330C CN 1242330 C CN1242330 C CN 1242330C CN B988003813 A CNB988003813 A CN B988003813A CN 98800381 A CN98800381 A CN 98800381A CN 1242330 C CN1242330 C CN 1242330C
- Authority
- CN
- China
- Prior art keywords
- data
- bus
- distance
- address
- raid
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1054—Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Image Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
- Catching Or Destruction (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供一种不需消耗大量计算资源的执行“异或”运算的方法和系统。一个专用处理机和一组盘驱动器连接到相同的总线上;该专用处理机观察对和从盘驱动器的数据传送,并在不需要单独的传送下在对和从盘驱动器传送的数据执行“异或”运算。该专用处理机保持一个用于“异或”运算的“异或”累加器,该累加器记录“异或”运算的结果并在处理机的命令下读出该结果。该“异或”累加器包括一组用于一组选定的RAID条中的各个RAID条的累加器寄存器。一个存储器(例如按内容寻址的存储器)把一组累加器寄存器和各个选定的RAID条联系起来。
Description
技术领域
本发明涉及存储系统。
背景技术
一种已知的存储系统称为“RAID”,在该系统中跨越多个盘驱动器分布并存储数据,从而在这些盘驱动器中的一个或者一个或多个存储块出故障而丢失数据时能恢复数据。为了存储以后可恢复的数据,RAID系统同时记录数据以及奇偶信息,从而可由奇偶信息恢复数据。例如,在一种类型的RAID系统中,为了在称为“条”的单元中记录四块数据和一块奇偶信息使用一组为五个的盘。
现有技术中出现的一个问题是记录奇偶信息的RAID系统需要快速地和经常地计算奇偶信息。例如,写一个条的操作需要计算至少一组一奇偶信息。计算奇偶信息主要采用XOR(“异或”)操作。这需要分配相当多的计算资源,例如处理机周期、超高速缓存单元以及存储器存取周期。
一种计算奇偶信息的可能技术是设置用来控制计算“异或”操作的处理机的软件。这种技术具有几种设计选择方式,例如设法调度处理机指令以避免寄存器冲突、避免不必要的等待并且减少未击中超高速缓存,从而避免不必要的存储内容转储以及处理机的不必要等待。尽管该技术达到计算奇偶信息的目标,但它具有需要相当多的计算资源(处理机周期、超高速单元、转储)的缺点。
另一种可能的计算奇偶信息的技术是设置一个带有独立存储器的第二处理机,以执行“异或”运算。该第二处理机利用DMA连接和主存储器(即,第一处理机使用的存储器)耦合,该DMA连接利用DMA操作从存储器中检索“异或”运算的输入,从而使第一处理机去执行其它的任务。虽然该技术达到计算奇偶信息的目标,即使它使第一处理机摆脱了一些负担,它仍具有需要相当多的转储和使用系统总线的缺点。
发明内容
因此,提供一种消耗较少计算资源的执行“异或”运算的方法和系统应是有好处的。本发明的实施方式可达到这种好处,在本发明的实施方式中一个专用处理机观察传送到系统总线上的存储器存取和盘存取,执行“异或”运算,记录“异或”运算的结果并根据处理机命令输出这些“异或”运算的结果。
根据本发明的一个方面,提供一种方法,包括步骤:启动沿着总线向或从多个RAID条中的至少一个传送数据的数据传送操作;监视所述总线上寻址到多个地址中的任意地址的数据;根据所述数据的地址从多个“异或”累加器缓冲区中选择“异或”累加器缓冲区;和在所述“异或”累加器缓冲区中累加对所述数据执行的“异或”运算的结果。
根据本发明的另一方面,提供一种系统,包括:处理器;存储器;多个RAID条;允许向或从所述多个RAID条中的至少一个传送数据的数据传送操作的总线;多个“异或”累加器缓冲区;以及部件,该部件监视所述总线上寻址到多个地址中的任意地址的数据,根据所述数据的地址从多个“异或”累加器缓冲区中选择“异或”累加器缓冲区,并且在所述“异或”累加器缓冲区中累加对所述数据执行的“异或”运算的结果。
附图说明
图1是执行并飞“异或”的系统的方块图。
图2是操作执行并飞“异或”的系统的方法的流程图。
图3是第一并飞“异或”部件的方块图。
图4是第二并飞“异或”部件的方块图。
具体实施方式
在下述说明中,就最佳处理步骤及数据结构说明本发明的一种最佳实施方式。然而,熟练的技术人员应理解,在研读本申请后,可以用一个或多个在程序控制下运行的通用处理机(或者适宜于具体处理步骤及数据结构的专用处理机)实现本发明的实施方式,并且利用这样的设备实现本文中所说明的最佳处理步骤以及数据结构并不需要过多的实验或其它发明。
系统部件
图1是执行并飞(fly-by)“异或”的系统的方块图。
系统的100至少包括一个处理机110、一个存储器120以及一条用于连接处理机110和存储器120的系统总线130。虽然只示出一个处理机110,在对于某些应用为最佳的一些实施方式中,系统总线130可连接多于一个的处理机110并且在操作中这些处理机100相互协调。
系统100还包括多个盘驱动器140以及至少一个和盘驱动器140连接的盘I/O适配器150,适配器150用于控制盘驱动器140并利用底层总线160耦合盘驱动器140和系统总线130之间的数据。
在一种最佳实施方式中,底层总线160是PCI总线,PCI总线是周知的标准并利用PCI网桥170和系统总线130连接。
虽然在最佳实施方式中底层总线160是PCI总线,但本发明并不限制于使用PCI总线或者限制于使用任何其它特定类型的总线。类似地,虽然在本文中进一步把底层总线160描述为一个32位的总线,本发明并不受限于使用32位的总线,并且也可以用其它的总线宽度,例如64位的总线实现。这样的替代不需要过多的经验或创造。
一个并飞“异或”部件180和底层总线160连接,从而从利用底层总线160的数据传送搜集数据。并飞“异或”部件利用“异或”缓冲器190保存“异或”运算的部分或最终结果。
当处理机110控制存储器120和一个或多个盘驱动器140间的数据传送时,利用系统总线130、PCI网桥170以及底层总线160传送数据。当利用底层总线160传送数据时,并飞“异或”部件180读数据(但不干扰数据传送)并且把数据添加到“异或”缓冲器190里的多个“异或”累加器(见图2)的一个中。当整条地或部分地读或写一个RAID条时,并飞“异或”部件180动态地为该RAID条计算一组奇偶信息,不再需要从系统100的任何部分得到其它资源。不再需要额外的数据传送,并且不需要处理机110和存储器120执行“异或”运算。
当处理机110如此控制时,并飞“异或”部件180将从“异或”缓冲器190里的一个“异或”累加器中读出累加的奇偶信息,以把奇偶信息写到刚被读或写的该RAID条中的存储块上。来自“异或”缓冲器190的累加奇偶信息还可在该RAID条中的一个盘驱动器140丢失该RAID条的整个存储块或部分存储块时,重构或修复该RAID条中的数据。
系统操作
图2是一种执行并飞“异或”的系统的操作方法流程图。
并飞“异或”部件180的操作方法200包括一系列由处理机110、盘驱动器140以及并飞“异或”部件180执行的步骤。
在点210处,系统100将对其RAID条执行“异或”运算。
在步骤221,处理机110在存储器120中分配一个存储缓冲区,并且建立要向或从该存储缓冲区和一个盘驱动器140进行DMA传送的数据。
在步骤222,处理机110向并飞“异或”部件180发送该存储缓冲区的存储器地址,并控制并飞“异或”部件180识别向该存储缓冲区传送或从其传来的数据。处理机110还分配“异或”缓冲器190里各“异或”累加器缓冲区中的一个缓冲区以累加“异或”运算的结果。
在步骤223,执行DMA传送。并飞“异或”部件180监视底层总线160并试图识别向或来自该存储缓冲区的传送。当并飞“异或”部件180识别出这种传送时,它复制正在传送的数据并且(通过执行“异或”运算)把数据加到相关“异或”累加器缓冲区中的累加奇偶信息上。当该识别出的存储缓冲区的所有数据全都传送了时,该相关的“异或”累加器缓冲区持有用于该RAID条的计算出的奇偶信息。
在步骤224,处理机110控制并飞“异或”部件把累加的奇偶信息从该相关的“异或”累加器缓冲区读到存储器110里的某存储缓冲区中或者读到一个盘驱动器140上的某存储块中。在这二种情况下,从并飞“异或”部件180的读出是通过处理机读或通过对一个盘驱动器的DMA传送进行的。在一种最佳实施方式中,对累加的奇偶信息的读出造成把相关的“异或”累加器缓冲区复位到零。
在点230,完成该RAID条的“异或”运算,而系统100可以继续处理另一个RAID条。
在一种最佳实施方式中,处理机110可以实际上在不把数据从一个盘驱动器传送到存储器120的某存储缓冲区下执行“异或”运算。这在本文中称为对“空”存储缓冲区的传送,因为该运算各方面上都象是对某存储缓冲区进行,唯独实际上不把数据存储在存储器120中。能向一个空存储缓冲区传送是有好处的,这是因为存在用于RAID条的盘操作,在盘操作中需要读或写少于RAID条的全部存储块的存储块(仿佛存储在盘驱动器140上),但是其中又必须为整个RAID条计算奇偶信息。
例如,当只需要写某RAID条的一个存储块时,必须写该存储块以及奇偶信息存储块两者。在已知的RAID存储系统中,必须首先从盘中读出当前奇偶信息以及数据块二者,从而处理机可接着计算新的奇偶信息。然而借助本发明,可把这些块传送到一个空存储缓冲区,从而不使用处理机110或存储器120的资源,只利用并飞“异或”部件180计算奇偶信息。
此外,在一种最佳实施方式中,以较少的步骤执行只写RAID条的一个存储块:(1)把老的存储块数据以及老的奇偶块数据传送到空存储缓冲区,以利用异或飞“异或”部件180累加奇偶信息。(2)把新的存储块数据写入到存储块,从而利用并飞“异或”部件180在写存储块的同时累加奇偶信息。(3)把累加的奇偶信息从“异或”缓冲器190中写入到奇偶存储块里。这些运算不需要处理机110以及存储器120的资源。
为执行对空存储缓冲区的传送,在步骤221中,处理机110不在存储器120中分配一个存储缓冲区,并且建立要在一个盘驱动器140和某不为存储器120识别的存储器地址之间进行DMA传送的数据。在步骤223,执行DMA传送并且并飞“异或”部件180监视底层总线160,但存储器120不捕获任何“传送”到该空存储缓冲区的数据。
第一并飞“异或”部件
图3是第一并飞“异或”部件的方块图。
第一并飞“异或”部件包括一个总线接口310、一个定时及控制部件320、一个按内容寻址存储器(CAM)330以及其它有关部件。“异或”缓冲器190和并飞“异或”部件180连接,并且包括一个随机存取存储器(RAM)340、一个FIFO(先进先出)队列350以及其它有关部件。虽然概念上“异或”缓冲器190包括RAM340,在一种最佳实施方式中RAM340是用外部RAM电路实现的,而FIFO350以及其它有关部件是在ASIC下用并飞“异或”部件180的其它电路实现的。
总线接口310和定时及控制部件320提供并飞“异或”部件180和底层总线160之间的接口。该接口包括一组通路:由底层总线160使用的传递控制信号的控制通路311,传递具有位0到位31的总线地址值的总线地址(BA)通路312以及传递具有位0到位31的总线数据值的总线数据(BD)通路313。采用PCI总线的通信在计算机系统设计中是周知的。
在备择的实施方式中,底层总线160不是PCI总线或不为32位宽,总线数据值具有其它位的标识符(例如位0到位63)并利用非PCI的通信协议进行通信。
“异或”缓冲器190包括一个随机存取存储器(RAM)340,后者提供一组32个的“异或”累加器缓冲区,每一个缓冲区为1024入口长4字节(32位)宽,即尺寸为4K字节。从而并飞“异或”部件180可以同时执行32个不同的RAID条的“异或”累加。
“异或”缓冲器190还包括一个FIFO队列350,它输入总线数据值的各顺序字并根据这些顺序字执行“异或”运算,从而在RAM340里的32个“异或”累加器缓冲区中的一个里累加奇偶信息。
CAM330提供一个256个项的组,每个项把20位的总线地址值和RAM340里32个“异或”累加器缓冲区中的一个缓冲区的5位相关地址联系起来。CAM330包括一个地址输入端口331,用于选择CAM330里256个项中的一项;一个20位的标记端口332,用于提供由CAM330去匹配的20位的标记;一个5位的值的端口333,用于提供5位的值,以由CAM330把该值和20位的标记联系起来;一个写控制端口34,用于接收写控制信号;以及一个匹配控制端口335,用于提供匹配控制信号。
定时及控制部件320还从匹配控制端口335接收匹配控制信号,并且提供用于对RAM340寻址的15位宽的RAM地址通路(RA)314以及用于控制CAM330的写控制通路315。
总线地址通路312的位12至位31以及总线数据通路313的位12至位31(即,各情况下的20位高位)和CAM多路复用器336的输入端连接,该多路复用器的一个输出端和CAM330的标记端口332连接。标记端口332还提供一个20位的标记,利用激励器337可把该标记耦合到总线数据通路313。值端口处333的相关5位值被耦合到“异或”缓冲器190,并且利用一对激励器338还耦合到总线数据通路313。
“异或”缓冲器190包括RAM340,RAM340包括一个用于接收15位RAM地址值的RAM地址端口341以及一个RAM数据端口342,RAM数据端口342用于提供存储在RAM340中相关单元里的32位RAM数据值。在概念上把RAM340划分成32个独立的“异或”累加器缓冲区,每个缓冲区包含1K的32位的字(即,4K字节)并且占据RAM340中的一组单元,每个单元具有其5位的“异或”累加器缓冲区号(0至31)以充当RAM地址值的(五个)高位。
值端口333处的相关5位值被耦合到RAM地址端口341,以提供RAM340中寻址字的5个高位。总线地址通路312的位2至位11(即用于寻址某4字节字的10个低位)提供RAM340中的寻址字的10个低位,并且也被耦合到RAM地址端口341。这样,RAM340在RAM地址端口341接收15位的地址,并在RAM数据端口342提供32位的输出数据字。
RAM数据端口342利用激励器351和总线数据通路313(以及FIFO队列350的一个输入端)连接,并且把FIFO多路复用器352的一个输出端以及一个FIFO寄存器353的一个输入端连接。FIFO队列350具有和一个“异或”运算器354连接的输出端,“异或”运算器354包括一组32个的“异或”门,用于在一个完整的32位字上并行地执行“异或”运算。FIFO多路复用器352和“异或”运算器354的输出端以及一个“零”输入端355连接。
为了如在步骤221和步骤222中为新的RAID条分配“异或”累加器缓冲区,定时及控制部件320使CAM330装入一个用于存储器120中某存储缓冲区的20位的存储器地址(或者用于某空存储缓冲区的一个20位的存储器地址),并把该20位的存储器地址和一个用于32个“异或”累加器缓冲区中的一个的5位标识符联系起来。把总线地址通路312的位2至位9耦合到地址输入端口331以便为CAM330提供新项的地址。在定时及控制部件320的控制下,CAM多路复用器336选择用于连接到标记端口332的总线数据通路313。CAM330把来自总线数据通路313的位12至位31的总线数据值插入到地址输入端口331处规定的地址中作为新的20位的标记,并且把来自总线数据通路313的位0至位4的总线数据值插入为新的5位的值。处理机110出于诊断目的也可以读CAM330中某选出的项。
为了如在步骤223中那样监视底层总线223,定时及控制部件320把总线地址通路312选择成和标记端口332连接。当底层总线160上出现的某存储器地址(或者空存储缓冲区内的某地址)的20个高位和CAM330的一个20位的标记匹配时,CAM330把总线地址的位12至31以及相关的5位值和该20位的标记匹配。
相关的5位值用于选择RAM340里的32个“异或”累加器缓冲器中的一个,而总线地址通路312的位2至位11用于选择RAM340里该“异或”累加器缓冲区中的某个别字,从而把底层总线160上的数据值逐字地读入到FIFO队列350中。定时及控制部件320对FIFO队列350中的各字定序,连同从RAM340读到FIFO寄存器353的某对应字一起通过“异或”运算器354,从而对RAM340里相关“异或”累加器缓冲区中的数据以及FIFO队列350中的数据执行“异或”运算。定时及控制部件320然后使“异或”运算的结果被回写到RAM340里的相关“异或”累加器缓冲区中。
为了如在步骤224中读出累加的奇偶信息,定时和控制部件320把总线地址通路312选择成和RAM地址端口341连接,以便按顺序地把RAM340里的“异或”累加器缓冲区中的各个字读出到总线数据通路313上,同时或者对存储器120或者对一个盘驱动器140发生DMA传送。DMA传送最常见是朝向一个盘驱动器的,但若处理机110必须运行奇偶信息则也可以是朝向存储器120的。出于诊断目的或者如果出于其它原因要读出或操作位于“异或”缓冲器190中的奇偶信息时,处理机110也可以直接读RAM340中的项。定时和控制部件320同时向RAM340里的“异或”累加器缓冲区中的每个字写入零值,从而把“异或”累加器缓冲区复位成统一的零值。
处理机110也可以直接对RAM340中选定的单元进行写,从而在“异或”缓冲器190和选定的信息之间直接执行“异或”运算。这类似于在步骤223中执行的“异或”操作。但是,不是把从CAM330的值端口333输出的5位的值而是把总线数据通路313的位12至位16连接到RAM地址端口341上。
在一种最佳实施方式,按如表3-1中所示使用总线地址通路312上的以及总线数据通路313上的值。表3-1中,地址区间值是用十六进制表示的,并且为总线地址(BA)通路312以及总线数据(BD)通路313显示选定的位区间。
表3-1
地址区间 寄存器 读/写 数据/运算
000000..0000FF PCI总线寄存器 读写 按PCI总线协议规定
010000..0103FF CAM项 读写 读或写CAM项
BA<2:9>CAM项号
BD<0:4>“异”累加器号
BD<12:31>存储缓冲区地址
100000..10FFFF “异”累加器缓冲区 读 读并清除“异”累加器缓冲区
BA<12:16>“异”累加器缓冲区号
BD<0:31>结果
100000..10FFFF “异”累加器缓冲区 写 对“异”累加器缓冲区的直接“异”
BA<12:16>“异”累加器缓冲区号
BD<0:31>用于直接“异”的数据
000000..FFFFFF “异”累加器缓冲区 X 并飞“异”,清除存储缓冲区
BA<12:31>要匹配的存储器地址
BD<0:31>用于并飞“异”的数据
200000..7FFFFF 空存储缓冲区 写 并飞“异”,清除空存储缓冲区
BA<12:31>要匹配的存储器地址
BD<0:31>用于并飞“异”的数据
第二并飞“异或”部件
图4是第二种并飞“异或”部件的方块图。
第二种并飞“异或”部件180及“异或”缓冲器190类似于第一种并飞“异或”部件180及“异或”缓冲器190。但是,用第一SRAM430代替CAM330,并且用第二SRAM440代替RAM340。类似于第一种并飞“异或”部件180及“异或”缓冲器190,虽然在概念上“异或”缓冲器190包含SRAM430,但在一种最佳实施方式中SRAM430是利用SRAM电路实现的,而“异或”缓冲器190的其它部件是在ASIC下用并飞“异或”部件180的其它电路实现的。
第二种并飞“异或”部件180的总线接口410类似于第一种并飞“异或”部件180的总线接口310,第二种并飞“异或”部件180的定时及控制部件420类似于第一种并飞“异或”部件180的定时及控制部件320。类似地,总线接口410和定时及控制部件420提供并飞“异或”部件180和底层总线160之间的接口。该接口包括一组通路:由底层总线160使用的传递控制信号的控制通路411,传递具有位0到位31的总线地址值的总线地址(BA)通路412,以及传递具有位0到位31的总线数据值的总线数据(BD)通路413。
第一SRAM430包括每字为5位的1兆字的存储器,第一SRAM430还包括:第一SRAM地址输入端口431;一个写控制输入端口432,用于接收写控制信号;一个5位的第一RAM数据端口433;以及一个有效控制输出端口434(一个用于SRAM430的附加数据位输出端口)用于提供一个充当有效控制信号的输出数据位。总线地址通路412的位2至位21和SRAM多路复用器435的第一输入端连接,总线地址通路412的位12至位31和SRAM多路复用器435的第二输入端连接,而SRAM多路复用器的输出端435和第一SRAM地址输入端口431连接。
定时及控制部件420还从有效控制输出端口434接收有效控制信号,并且提供用于在第二SRAM440中寻址的15位的RAM地址通路(RA)414和用于控制第一SRAM430的写控制通路415。
“异或”缓冲器190包括第二SRAM440,后者包括:一个用于接收15位的第二SRAM地址值的第二SRAM地址输入端口441,以及一个提供存储在在第二SRAM440的相关单元处的32位SRAM数据值的第二SRAM数据端口442。类似于RAM340,在概念上把第二SRAM440划分成32个独立的“异或”累加器缓冲区每个缓冲区包含1K个32位的字(即,4K字节)并且在第二SRAM440中占据一组单元,每个单元具有5位的“异或”累加器缓冲区号(从0到31),该号是第二SRAM地址的高位。
和使256个20位的标记组中的每个和一个5位的值关联起来不同,第一SRAM430保持一个表,对于每个可能的20位的标记该表具有一条项、各项的一个有效位以及用于这些带有有效位组的项的5位的值。每个20位的标记代表存储器120里某存储缓冲区中一个可能地址(或空存储缓冲区的地址)的20个高位。每个5位的值代表一个可能的“异或”累加器缓冲区号。
第一SRAM数据端口433处的相关5位的值耦合到第二SRAM地址端口41,并提供第二SRAM440中寻址字的5个高位。总线地址通路412的位2至位11(即,用于对某4字节字寻址的10个低位)提供第二SRAM440中寻址字的10个低位,并且还被耦合到第二SRAM地址端口441上。从而,第二SRAM440在第二SRAM地址端口441上接收15位的地址,并提供第二SRAM数据端口442处输出的32位数据字。
第二SRAM数据端口442和第一寄存器450连接,并利用激励器451和总线数据通路413(以及还和第二寄存器452)连接。第一寄存器450以及第二寄存器452和“异或”运算器453的各输入端连接,“异或”运算器包括一组32个的“异或”门,用于并行地在整个32位的字上执行“异或”运算。“异或”运算器453的输出端以及一个“零”输入端454和“异或”多路复用器455的输入端连接;“异或”多路复用器455的输出端还和第二SRAM数据端口442连接。
在备择实施方式中,第二寄存器452可用FIFO或其它电路结构替代,尤其当第二SRAM440不能足够快地及时向第二寄存器452准备好结果时。
为了如在步骤221和步骤222中向“异或”累加器缓冲区提供新的RAID条,定时及控制部件420使第一SRAM430和存储器120里某存储缓冲区的某20位的存储器地址(或者某空存储缓冲区的某20位的存储器地址)连接,并且把某用于32个“异或”累加器缓冲区中的一个缓冲区的5位标识符存储到由该20位的存储器地址规定的单元中。
在定时及控制部件420的控制下,SRAM多路复用器435选出总线地址通路412的位2至位21以连接到第一SRAM地址输入端口431,存储来自总线数据通路413的位0至位4的总线数据值以作为该单元的新的5位值,并且为该单元设置有效位。处理机110也可以出于诊断目的读第一SRAM430中选定的项。
为了如步骤223中那样监视底层总线160,定时及控制部件420选出用于连接到第一SRAM输入端口431的总线地址通路412。底层总线160上出现的存储器地址(或空存储缓冲区内的地址)的20个高位用于对第一SRAM430寻址;当为该单元设置了有效位时,第一SRAM数据端口433对和该20位的存储器地址关联的某“异或”累加器缓冲区提供5位的值。
相关的5位值用于选择第二SRAM440里32个“异或”累加器缓冲区中的一个缓冲区,而总线地址通路412的位2至位11用于选择第二SRAM440里该“异或”累加器缓冲区中的某特定字。逐字地把第二SRAM440中的数据值读到第一寄存器,同时逐字地从底层总线160把数据值复制到第二寄存器452。“异或”运算器453对带有从底层总线160移动过来的数据的“异或”累加器缓冲区中的数据执行“异或”操作。利用第二SRAM数据端口442把“异或”运算器453的输出回写到第二SRAM440。
类似于第一种并飞“异或”部件180,为了如步骤224中那样读出累加的奇偶信息,定时及控制部件420把总线地址通路选择成和第二SRAM地址端口441连接,从而顺序地把第二SRAM440里的“异或”累加器缓冲区中的每个字读到总线数据通路413上,同时对存储器120或者对一个盘驱动器140进行DMA传送。类似于第一种并飞“异或”部件180,出于诊断目的或者如果出于其他原因要读出或操作位于“异或”缓冲器190中的奇偶信息,处理机110也可以直接读第二SRAM440的项。类似于第一种并飞“异或”部件180,定时及控制部件420同时把零值写入到第二SRAM440里的“异或”累加器缓冲区的各字中,从而把“异或”累加器缓冲区复位成统一的零值。
类似于第一种并飞“异或”部件180,处理机110还可以直接对第二SRAM440中的选定单元进行写,从而在“异或”缓冲器190的内容和选定的信息之间直接执行“异或”运算。
第二种并飞“异或”部件180具有这样的额外特性,即,存储器120中和“异或”累加器缓冲区相关的存储缓冲区(或空存储缓冲区)的数量不受限于CAM330中项的数量。这允许使用任意宽度的RAID条,并且其中可同时使用多达32个RAID条。通过改变第一SRAM数据端口433的宽度并改变第二SRAM的尺寸,可以修改第二种并飞“异或”部件180以改变“异或”累加器缓冲区的数量。
在一种最佳实施方式中,对总线地址通路412和总线数据通路413所采用的数值如表4-1中所示。在表4-1中,以十六进制表示地址区间值,并且示出总线地址(BA)通路312和总线数据(BD)通路313的选定的位区间。
表4-1
地址区间 寄存器 读/写 数据/操作
000000..0000FF PCI总线寄存器 读写 按PCI总线协议规定
010000..0103FF 表项 读写 读或写表项
BD<0:4>“异”累加器号
BD<8>表项有效
BD<12:31>存储缓冲区地址
100000..10FFFF “异”累加器缓冲区 读 读并清除“异”累加器缓冲区
BA<12:16>“异”累加器缓冲区号
BD<0:31>结果
100000..10FFFF “异”累加器缓冲区 写 对“异”累加器缓冲区的直接“异”
BA<12:16>“异”累加器缓冲区号
BD<0:31>用于直接“异”的数据
000000..FFFFFF “异”累加器缓冲区 X 并飞“异”,清除存储缓冲区
BA<12:31>要匹配的存储器地址
BD<0:31>用于并飞“异”的数据
200000..7FFFFF 空存储缓冲区 写 并飞“异”,清除空存储缓冲区
BA<12:31>要匹配的存储器地址
BD<0:31>用于并飞“异”的数据
最佳实施方式
第一种并飞“异或”部件和其相关的“异或”缓冲器190以及第二种并飞“异或”部件和其相关的“异或”缓冲器190是最佳的实施方式。在研读本申请后,熟练的技术人员清楚,在某些设计限制下第一种并飞“异或”部件180和其相关的“异或”缓冲器190是最佳的,而在另一些设计限制下第二种并飞“异或”部件180和其相关的“异或”缓冲器190是最佳的。
例如,在相对小型的但复杂的CAM330比额外的相对大的外部SRAM430便宜的情况下,第一种并飞“异或”部件180和其相关的“异或”缓冲器190是最佳的;而在相反情况下或者RAID子系统的各条的宽度相对宽的情况下,第二种并飞“异或”部件180和其相关的“异或”缓冲器190是最佳的。
其它的实施方式
虽然本文公开最佳的实施方式,在保持在本发明的内容、范围和精神之内下各种修改是可能的,并且在研读本申请后,对于熟练的技术人员这些修改是清楚的。
Claims (22)
1.一种方法,包括步骤:
启动沿着总线(130、160)向或从多个RAID条中的至少一个传送数据的数据传送操作;
监视所述总线(130、160)上寻址到多个地址中的任意地址的数据;
根据所述数据的地址从多个“异或”累加器缓冲区(340、440)中选择“异或”累加器缓冲区(340、440);和
在所述“异或”累加器缓冲区(340、440)中累加对所述数据执行的“异或”运算(354、453)的结果。
2.如权利要求1中的方法,其中所述数据传送操作向或从所述多个RAID条的条的块传送数据。
3.如权利要求2中的方法,其中所述条包含在所述多个RAID条的每个上的块。
4.如权利要求1中的方法,其中所述总线(130、160)还包括第一总线(130),和将所述多个RAID条连接到所述第一总线(130)的第二总线(160)。
5.如权利要求1中的方法,其中所述数据传送操作是向或从存储器(120)传送数据的直接存储器访问(223)操作。
6.如权利要求5中的方法,其中所述存储器(120)忽略所述地址。
7.如权利要求1中的方法,其中所述累加步骤不干扰所述数据传送操作。
8.如权利要求1中的方法,其中选择所述“异或”累加器缓冲区(340、440)的所述步骤还包括访问使所述地址与所述“异或”累加器缓冲区(340、440)相关的存储器(330、430)。
9.如权利要求8中的方法,其中所述存储器是按内容寻址存储器(330)。
10.如权利要求1中的方法,其中所述数据传送操作是从所述RAID条的条的块向所述存储器(120)传送数据的直接存储器访问操作,所述条包含在所述多个RAID条的每个上的块,所述存储器(120)忽略所述地址,并且所述累加步骤不干扰所述数据传送操作。
11.如权利要求10中的方法,其中选择所述“异或”累加器缓冲区(340、440)的所述步骤还包括访问使所述地址与所述“异或”累加器缓冲区(340、440)相关的按内容访问存储器(330)。
12.一种系统,包括:
处理器(110);
存储器(120);
多个RAID条;
允许向或从所述多个RAID条中的至少一个传送数据的数据传送操作的总线(130、160);
多个“异或”累加器缓冲区(340,440);以及
部件(180),该部件(180)监视所述总线(130、160)上寻址到多个地址中的任意地址的数据,根据所述数据的地址从多个“异或”累加器缓冲区(340、440)中选择“异或”累加器缓冲区(340、440),并且在所述“异或”累加器缓冲区(340、440)中累加对所述数据执行的“异或”运算(354、453)的结果。
13.如权利要求12中的系统,其中所述数据传送操作向或从所述多个RAID条的条的块传送数据。
14.如权利要求13中的系统,其中所述条包含在所述多个RAID条的每个上的块。
15.如权利要求12中的系统,其中所述总线(130、160)还包括第一总线(130),和将所述多个RAID条连接到所述第一总线(130)的第二总线(160)。
16.如权利要求12中的系统,其中所述数据传送操作是向或从存储器(120)传送数据的直接存储器访问(223)操作。
17.如权利要求16中的系统,其中所述存储器(120)忽略所述地址。
18.如权利要求12中的系统,其中所述累加步骤不干扰所述数据传送操作。
19.如权利要求12中的系统,其中选择所述“异或”累加器缓冲区(340、440)的所述步骤还包括访问使所述地址与所述“异或”累加器缓冲区(340、440)相关的存储器(330、430)。
20.如权利要求19中的系统,其中所述存储器是按内容寻址存储器(330)。
21.如权利要求12中的系统,其中所述数据传送操作是从所述RAID条的条的块向所述存储器(120)传送数据的直接存储器访问操作,所述条包含在所述多个RAID条的每个上的块,所述存储器(120)忽略所述地址,并且所述累加步骤不干扰所述数据传送操作。
22.如权利要求21中的系统,其中选择所述“异或”累加器缓冲区(340、440)的所述步骤还包括访问使所述地址与所述“异或”累加器缓冲区(340、440)相关的按内容访问存储器(330)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/808,396 US5950225A (en) | 1997-02-28 | 1997-02-28 | Fly-by XOR for generating parity for data gleaned from a bus |
US08/808,396 | 1997-02-28 | ||
PCT/US1998/003833 WO1998038576A1 (en) | 1997-02-28 | 1998-02-27 | Fly-by xor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1222986A CN1222986A (zh) | 1999-07-14 |
CN1242330C true CN1242330C (zh) | 2006-02-15 |
Family
ID=25198648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988003813A Expired - Fee Related CN1242330C (zh) | 1997-02-28 | 1998-02-27 | 执行并飞“异或”运算的方法和系统 |
Country Status (10)
Country | Link |
---|---|
US (1) | US5950225A (zh) |
EP (2) | EP0927395B1 (zh) |
JP (1) | JP2000514941A (zh) |
KR (1) | KR100352039B1 (zh) |
CN (1) | CN1242330C (zh) |
AT (1) | ATE240551T1 (zh) |
AU (1) | AU6671098A (zh) |
DE (1) | DE69814579T2 (zh) |
HK (1) | HK1020624A1 (zh) |
WO (1) | WO1998038576A1 (zh) |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US6138126A (en) * | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US6161165A (en) * | 1996-11-14 | 2000-12-12 | Emc Corporation | High performance data path with XOR on the fly |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
US6343984B1 (en) * | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
WO2001028179A2 (en) | 1999-10-14 | 2001-04-19 | Bluearc Uk Limited | Apparatus and method for hardware implementation or acceleration of operating system functions |
US6370616B1 (en) * | 2000-04-04 | 2002-04-09 | Compaq Computer Corporation | Memory interface controller for datum raid operations with a datum multiplier |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US6636879B1 (en) * | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US6745286B2 (en) | 2001-01-29 | 2004-06-01 | Snap Appliance, Inc. | Interface architecture |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
JP4615137B2 (ja) * | 2001-03-26 | 2011-01-19 | 富士通セミコンダクター株式会社 | 同期型メモリに対するフライバイ転送を可能にするdma制御システム |
US7739614B1 (en) | 2001-05-22 | 2010-06-15 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of directories |
US8171414B2 (en) * | 2001-05-22 | 2012-05-01 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of file systems |
US7249150B1 (en) * | 2001-07-03 | 2007-07-24 | Network Appliance, Inc. | System and method for parallelized replay of an NVRAM log in a storage appliance |
US6944785B2 (en) * | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6757695B1 (en) | 2001-08-09 | 2004-06-29 | Network Appliance, Inc. | System and method for mounting and unmounting storage volumes in a network storage environment |
US6851070B1 (en) | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US6965989B1 (en) | 2001-08-14 | 2005-11-15 | Network Appliance, Inc. | System and method for fast reboot of a file server |
US6883131B2 (en) * | 2001-09-28 | 2005-04-19 | Sun Microsystems, Inc. | XOR processing incorporating error correction code data protection |
US20030084397A1 (en) * | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
US7346831B1 (en) | 2001-11-13 | 2008-03-18 | Network Appliance, Inc. | Parity assignment technique for parity declustering in a parity array of a storage system |
US6871317B1 (en) | 2001-11-13 | 2005-03-22 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US6851082B1 (en) | 2001-11-13 | 2005-02-01 | Network Appliance, Inc. | Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array |
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7613984B2 (en) | 2001-12-28 | 2009-11-03 | Netapp, Inc. | System and method for symmetric triple parity for failing storage devices |
US7539991B2 (en) * | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7437727B2 (en) * | 2002-03-21 | 2008-10-14 | Network Appliance, Inc. | Method and apparatus for runtime resource deadlock avoidance in a raid system |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7426576B1 (en) | 2002-09-20 | 2008-09-16 | Network Appliance, Inc. | Highly available DNS resolver and method for use of the same |
US7171452B1 (en) | 2002-10-31 | 2007-01-30 | Network Appliance, Inc. | System and method for monitoring cluster partner boot status over a cluster interconnect |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US8041761B1 (en) | 2002-12-23 | 2011-10-18 | Netapp, Inc. | Virtual filer and IP space based IT configuration transitioning framework |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7383378B1 (en) * | 2003-04-11 | 2008-06-03 | Network Appliance, Inc. | System and method for supporting file and block access to storage object on a storage appliance |
US7457982B2 (en) | 2003-04-11 | 2008-11-25 | Network Appliance, Inc. | Writable virtual disk of read-only snapshot file objects |
US7739543B1 (en) | 2003-04-23 | 2010-06-15 | Netapp, Inc. | System and method for transport-level failover for loosely coupled iSCSI target devices |
US7293152B1 (en) | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7260737B1 (en) | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7181439B1 (en) * | 2003-04-25 | 2007-02-20 | Network Appliance, Inc. | System and method for transparently accessing a virtual disk using a file-based protocol |
US7437523B1 (en) | 2003-04-25 | 2008-10-14 | Network Appliance, Inc. | System and method for on-the-fly file folding in a replicated storage system |
US7577692B1 (en) | 2003-04-25 | 2009-08-18 | Netapp, Inc. | System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images |
US7330862B1 (en) | 2003-04-25 | 2008-02-12 | Network Appliance, Inc. | Zero copy write datapath |
US7603553B1 (en) | 2003-04-25 | 2009-10-13 | Netapp, Inc. | System and method to make file handles opaque to clients |
US7523201B2 (en) * | 2003-07-14 | 2009-04-21 | Network Appliance, Inc. | System and method for optimized lun masking |
US7716323B2 (en) * | 2003-07-18 | 2010-05-11 | Netapp, Inc. | System and method for reliable peer communication in a clustered storage system |
US7593996B2 (en) | 2003-07-18 | 2009-09-22 | Netapp, Inc. | System and method for establishing a peer connection using reliable RDMA primitives |
US7055014B1 (en) | 2003-08-11 | 2006-05-30 | Network Applicance, Inc. | User interface system for a multi-protocol storage appliance |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
TWI259356B (en) * | 2004-03-26 | 2006-08-01 | Infortrend Technology Inc | Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed |
US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US7398360B2 (en) * | 2005-08-17 | 2008-07-08 | Sun Microsystems, Inc. | Multi-socket symmetric multiprocessing (SMP) system for chip multi-threaded (CMT) processors |
US7529894B2 (en) * | 2005-08-17 | 2009-05-05 | Sun Microsystems, Inc. | Use of FBDIMM channel as memory channel and coherence channel |
US7353340B2 (en) * | 2005-08-17 | 2008-04-01 | Sun Microsystems, Inc. | Multiple independent coherence planes for maintaining coherency |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US7509460B2 (en) * | 2006-05-04 | 2009-03-24 | Sun Microsystems, Inc. | DRAM remote access cache in local memory in a distributed shared memory system |
US7844584B1 (en) | 2006-06-23 | 2010-11-30 | Netapp, Inc. | System and method for persistently storing lock state information |
US7979701B1 (en) | 2006-09-15 | 2011-07-12 | Netapp, Inc. | Cross mapping graphical interface to show encryption relationships between hosts and storage devices |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7647526B1 (en) | 2006-12-06 | 2010-01-12 | Netapp, Inc. | Reducing reconstruct input/output operations in storage systems |
US7620669B1 (en) | 2006-12-15 | 2009-11-17 | Netapp, Inc. | System and method for enhancing log performance |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
US8688798B1 (en) | 2009-04-03 | 2014-04-01 | Netapp, Inc. | System and method for a shared write address protocol over a remote direct memory access connection |
US9646177B2 (en) * | 2011-04-29 | 2017-05-09 | Altera Corporation | Systems and methods for preventing data remanence in memory systems |
US9524107B2 (en) | 2014-07-30 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Host-based device drivers for enhancing operations in redundant array of independent disks systems |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US10936196B2 (en) * | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5146588A (en) * | 1990-11-26 | 1992-09-08 | Storage Technology Corporation | Redundancy accumulator for disk drive array memory |
US5469566A (en) * | 1992-03-12 | 1995-11-21 | Emc Corporation | Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units |
US5335235A (en) * | 1992-07-07 | 1994-08-02 | Digital Equipment Corporation | FIFO based parity generator |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5603051A (en) * | 1995-06-06 | 1997-02-11 | Hewlett-Packard Company | Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus |
US5729705A (en) * | 1995-07-24 | 1998-03-17 | Symbios Logic Inc. | Method and apparatus for enhancing throughput of disk array data transfers in a controller |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US6161165A (en) * | 1996-11-14 | 2000-12-12 | Emc Corporation | High performance data path with XOR on the fly |
-
1997
- 1997-02-28 US US08/808,396 patent/US5950225A/en not_active Expired - Lifetime
-
1998
- 1998-02-27 AU AU66710/98A patent/AU6671098A/en not_active Abandoned
- 1998-02-27 DE DE69814579T patent/DE69814579T2/de not_active Expired - Lifetime
- 1998-02-27 KR KR10-1998-0708645A patent/KR100352039B1/ko not_active IP Right Cessation
- 1998-02-27 WO PCT/US1998/003833 patent/WO1998038576A1/en active IP Right Grant
- 1998-02-27 AT AT98908761T patent/ATE240551T1/de not_active IP Right Cessation
- 1998-02-27 CN CNB988003813A patent/CN1242330C/zh not_active Expired - Fee Related
- 1998-02-27 EP EP98908761A patent/EP0927395B1/en not_active Expired - Lifetime
- 1998-02-27 JP JP10537872A patent/JP2000514941A/ja active Pending
- 1998-02-27 EP EP03000767A patent/EP1310874A3/en not_active Ceased
-
1999
- 1999-11-30 HK HK99105557A patent/HK1020624A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100352039B1 (ko) | 2003-01-24 |
WO1998038576A1 (en) | 1998-09-03 |
DE69814579T2 (de) | 2004-04-01 |
AU6671098A (en) | 1998-09-18 |
HK1020624A1 (en) | 2000-05-12 |
EP0927395B1 (en) | 2003-05-14 |
EP1310874A3 (en) | 2004-09-22 |
CN1222986A (zh) | 1999-07-14 |
JP2000514941A (ja) | 2000-11-07 |
KR20000065071A (ko) | 2000-11-06 |
EP1310874A2 (en) | 2003-05-14 |
ATE240551T1 (de) | 2003-05-15 |
DE69814579D1 (de) | 2003-06-18 |
EP0927395A1 (en) | 1999-07-07 |
US5950225A (en) | 1999-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1242330C (zh) | 执行并飞“异或”运算的方法和系统 | |
CN1213374C (zh) | 靠近局部输入/输出总线的桥接器中的输入/输出地址转换装置及方法 | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
JP5960517B2 (ja) | フラッシュメディアコントローラの内部のメタデータハンドリング | |
CN1262942C (zh) | 利用无数据事务获得全局促进工具的方法、设备和系统 | |
JP5591917B2 (ja) | 管理型不揮発性メモリのための低レイテンシ読み取り動作 | |
US7379334B2 (en) | Memory card, semiconductor device, and method of controlling memory card | |
EP0847001A2 (en) | Method and arrangement for allowing a computer to communicate with a data storage device | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1761935A (zh) | 半导体存储卡、半导体存储器控制装置以及半导体存储器控制方法 | |
CN1218227A (zh) | 数据处理系统和微型计算机 | |
CN1512353A (zh) | 性能改善的数据存储和方法 | |
CN1014841B (zh) | 产生实际输入/输出命令的设备 | |
CN1248334A (zh) | 闪速存储器系统 | |
CN1509436A (zh) | 以推测方式使高速缓存中的缓存行失效的方法及系统 | |
WO2006009322A2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
CN1795437A (zh) | 用于块内页面分组的方法及设备 | |
CN1143812A (zh) | 存储装置 | |
CN106951374B (zh) | 用于检查块页地址的方法及其装置 | |
CN1851677A (zh) | 嵌入式处理器系统及其数据操作方法 | |
CN1367440A (zh) | 在使用卷标的管线化微处理器中执行结合写入的装置及方法 | |
CN1168025C (zh) | 用于多线程处理机的指令高速缓存器 | |
CN1704912A (zh) | 地址转换器和地址转换方法 | |
CN1188929A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: NETAPP incorporated company Address before: American California Patentee before: Network Appliance Inc. |
|
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: 20060215 Termination date: 20170227 |