产生、存储和读取多个错误改正编码数据组的设备与方法

文档序号:6779844阅读:204来源:国知局
专利名称:产生、存储和读取多个错误改正编码数据组的设备与方法
技术领域
本发明涉及接收信息并产生、存储和读取由该信息得到的多个错误改 正编码数据组的设备和方法。
背景技术
按照惯例,用于信息存储的系统包含存储控制器和归档(archiving) 存储设备。存储控制器从一个或一个以上的客户机系统接收信息并将该信 息存储在归档存储设备中。

发明内容
所需要的是一种通过产生多个错误改正编码数据组并将所述多个g 改正编码数据组存储在多个数据存储介质上来保护归档信息的设备和方 法。申请人的设备和方法采用巻积编码来由原始数据产生多个冗余错误改 正编码数据组。所述多个错误改正编码数据组于是被存储在不同的存储装 置和/或介质上。在一个或一个以上的存储装置和/或数据存储介质故障且一 个或一个以上的4t^改正编码数据组变得不可用时,可从可用数据组重建 这些丢失的数据组。
申请人的发明包含接收信息以及产生、存储和读取由该信息得出的多 个错误改正编码数据组的设备和方法。申请人的方法提供了一种与(N) 个不同的数据存储介质通信的存储控制器,其中,对于(0的每一个值, 第(i)个数据存储介质包含与其余(N-l)个数据存储介质不同的数据存 储^h质类型,其中,(N)大于或等于2,且其中,(i)大于或等于l且 小于或等于(N)。
申请人的存储控制器接收信息并产生由该信息得出的(N)组错误改 正编码数据。于是,对于(i)的每一个值,该方法选择第(i)个数据存储
介质,并对(i)个中的每一个值,将第(i)组错误改正编码数据写入第(i) 个数据存储介质。
此后,申请人的存储控制器从请求者接收读取该信息的请求。在某些 实施例中,申请人的设备和方法读取(N)个错误改正编码数据组中的每 一个,使用所迷(N)个错误改正编码数据组产生该信息,并将该信息返 回给请求者。


结合附图,通过阅读下面的详细说明,可以更好地理解本发明。在附
图中,相同的参考标号用于表示相同的元素,其中
图1为一框图,其示出了申请人的数据存储系统的一个实施例;
图2为一表格,其列举了申请人的巻积编码算法的一个实施例中所用
的8种状态,其中,被称为"信息"的8个原始位中的每一个包含两个值
中的一个;
图3包含一状态图,其示出了图2所列举的8种状态;
图4A示出了实现图2和3的巻积编码算法的编码电路;
图4B为一表格,其列出了数据存储介质,由图4A的编码器电路所产
生的四个错误改正编码位被编码到该数据存储介质;
图5示出了PRML框架,其用于对由图4A中的编码器电路产生并被:
保存在图4B的数据存储介质中的错误改正编码数据位进行解码;
图6为一表格,其示出了对于原始数据的每一位产生四个错误改正编
码数据位的实例;
图7为一表格,其示出了申请人的方法的一个实施例,该实施例用于
使用可用的错误改正编码数据位来重建丟失的發淡改正编码数据位;
图8示出了PRML框架,其用于实现图7所列出的方法; 图9为一流程图,其概括了申请人的产生和保存多个,改正编码数 据組的方法的步骤;
图10为一流程图,其概括了申请人的读取多个错误改正编码数据组并
视情况可选地使用可用的错误改正编码数据位重建不可用错误改正编码数
据位的方法的步骤;
图11A为第一设备的第一实施例的透视图,其用于在全息 (holographic)数据存储介质中对数据进行编码;
图IIB为图11A中的第一设备的第二实施例的透视图12A为一框图,其示出了在全息数据存储介质中编码数据的第二设
备的第一实施例;
图12B为图12A中的设备的透视图13为图12A与12B中的设备的第二实施例的透视图14为从编码全息数据存储介质读取数据的第一设备的透视图15为从编码全息数据存储介质读取数据的第二设备的透视图。
具体实施例方式
参照附图,在下面的介绍的优选实施例中介绍本发明。在附图中,相 同的标号表示相同或类似的元素。贯穿本说明书提到"一个实施例"、"一 实施例"或类似的措辞意味着与该实施例相联系地介绍的特定特征、结构 或特性被包含在本发明的至少一个实施例中。因此,贯穿本说明书的短语 "在一个实施例中"、"在一实施例中"以及类似##的出现可全部指同 一实施例,但不是必然的。
本发明的所介绍的特征、结构或特性可以以任何适当的方式在一个或 一个以上的实施例中合并。在下面的介绍中,引证多个具体细节,以便提
供本发明的实施例的彻底理解。然而,相关领域技术人员将会意识到,本 发明可在没有一个或一个以上的这些特定细节的情况下实现,或以其他方 法、部件、材料等等实现。在其他情况下,公知结构、材料或操作没有详 细示出或介绍,以免混淆本发明的实施形态。
图1示出了申请人的数据存储系统100。在图l所示出的实施例中, 系统100包含交换访问网络,其中, 一个或一个以上的交换机125被用于 创建交换光纤通道120。在某些实施例中,数据存储系统100使用在光纤 通道("FC")物理层上运行的小型计算机系统接口 (SCSI)协议实现。 在其他实施例中,数据存储系统100可使用其他协议实现,例如InfiniBand、 FICON (光纤通道连接性的专用形式)、TCP/IP、以太网、千兆以太网或 iSCSI。交换机125具有所有主机101、 103、 105、 107、 109以及控制器 131的地址,故任何主机101、 103、 105、 107和/或109能够被可互换地连 接到任何控制器131。
主计算机101、 103、 105、 107和109各自包含计算系统(例如主机 (mainframe )、个人计算机、工作站及其组合),该计算系统包含Windows、 AIX、 Unix、 MVS、 LINUX等操作系统。(Windows是微软公司的注册 商标,AIX是IBM公司的注册商标,MVS是IBM公司的商标,UNIX是 在美国和其他国家专门通过Open Group许可的注册商标,LINUX是Linus Torvald的注册商标)。在某些实施例中,主计算机101、 103、 105、 107 和109还包含存储管理程序。主计算机101、 103、 105、 107和109中的存 储管理程序可包含现有技术中已知的存储管理类程序的功能,其管理到达 以及来自数据存储与检索系统的数据传送,例如在IBM MVS操作系统中 实现的IBM DFSMS。
主计算机101、 103、 105、 107和109分别采用1/0接口 111、 113、 115、 117和119,皮耦合到光纤通道120。 1/0接口111、 113、 115、 117和 119可以为任何类型的I/0接口,例如,FC仲裁环、到光纤通道120的点 到点FC连接或由主计算机101、 103、 105、 107和109使用的其他形式的 一个或一个以上的信号线,以便直接向以及从光纤通道(fabric) 120传送 信息。光纤通道120包含例如一个或一个以上的FC交换机125,其用于连 接两个或两个以上的计算机网络。在某些实施例中,FC交换机125为传统 的路由交换机(router swtich)。在替代实施例中,主计算机101、 103、 105、 107和/或109以点对点配置在没有交换机的情况下被连接到存储控制 器131。
交换机125通过I/0接口 135将主计算机101、 103、 105、 107和109
互连到控制器131。 1/0接口 135可以为任何类型的I/0接口,例如,光纤 通道、InfmiBand、千兆以太网、以太网、TCP/IP、 iSCSI、 SCSI I/O接 口或由FC交换机125用于相应地向以及从控制器131传送信息、并在随 后向多个数据存储介质160、 170、 180、 l卯传送信息的一个或多个信号线。 作为替代的是,数据存储介质160、 170、 180、 190可以彼此在物理上是远 程的,和控制器131—样,因此, 一个灾害可仅仅威胁数据存储介质160、 170、 180、 l卯中的一个。申请人用"数据存储介质"表示与从该数椐存
结合的数据存储介质。
在某些实施例中,数据存储介质160、 170、 180、 190各自包含不同的 数据存储介质类型。在其他的实施例中,数据存储介质160、 170、 180、 l卯各自包含布置在一个全息数据存储介质内的不同的存储位置。
存储阵列130包含控制器131以及存^i殳备160、 170、 180、 l卯。控 制器131与存储设备160、 170、 180、 190可一同位于共用框架或箱体中。 作为替代的是,出于灾难恢复的原因,控制器131和存储设备160、 170、 180、 190可在地理位置上分歉分布在有时4皮称为地理介軟的并行系统综合 体(geoplex)的东西之中。存储设备160、 170、 180和/或190可还具有单 独且不同的控制器,这些控制器结合运行以提供到地理分散的并行系统综 合体中的所述存储设备的访问。
控制器131可取许多不同的形式,并可包含嵌入式系统、分布式控制 系统、个人计算机、工作站等等。在图1的所示出的实施例中,存储控制 器131包含处理器140、元数据控制器148、随才;i^取存储器(RAM ) 154、 非易失性存储器150、特殊电路142、编码数据接口 158以及主机信息接口 132。主机信息接口 132拥有这样的信息134:其将由编码器146在对存储 设备160、 170、 180、 l卯的写入操作过程中编码,或已被解码器144在从 存储设备160、 170、 180、 l卯的读取操作过程中读取和解码。在某些实施 例中,RAM154被用作数据緩存。处理器140、 RAM154、非易失性存储 器150、特殊电路142、元数据控制器148、编码数据接口 158和主机信息接口 132通过总线145彼此通信。
或者,RAM154和/或非易失性存储器150可与特殊电路142、编码数 据接口 158、元数据控制器148、主机信息接口 132 —起位于存储器140 中。处理器140可包含成品微处理器、定制处理器、FPGA、 ASIC或其他 类型的离散逻辑。在某些实施例中,RAM 154净皮用作由主机101、 103、 105、 107和/或109写入的或为主才几101、 103、 105、 107和/或109读取的 数据的緩存,用于保有计算数据、堆栈数据、可执行指令等等。在某些实 施例中,RAM 154被用于从编码器146接收的编码数椐156的、在该数据 被存储在数据存储介质160、 170、 180、 190之前的临时存储。
非易失性存储器150可包含任何类型的非易失性存储器,例如可电擦 除可编程只读存储器(EEPROM)、闪速可编程只读存储器(PROM)、 电M^ RAM、硬盘驱动器或其他类似的装置。非易失性存储器150被 典型地用于保有可执行固件和任何非易失性数据,例如元数据152。
在某些实施例中,编码数据接口 158包含一个或一个以上的通信接口, 其允许处理器140与数据存储介质160、 170、 180、 190通信。主机信息接 口 132允许处理器140与光纤通道120、交换机125以及主机IOI、 103、 105、 107和/或109通信。编码数据接口 158和主机信息接口 132的实例包 含串行接口,例如RS-232、 USB(通用串行总线)、SCSI(小型计算机系 统接口 )、光纤通道、千兆以太网等等。另外,编码数据接口 158和/或主 机信息接口 132可包含例如无线电频率的无线接口 (例如但不限于蓝牙) 或光学通信装置(例如但不限于使用红外频率的装置)。
在某些实施例中,元数据控制器148在处理器140中通过软件、固件、 专用逻辑或其組合实现。另外,元数据控制器148的全部或部分可在控制 器131之外,例如以软件实施方式在主机101、 103、 105、 107和/或109 中的一个之中。元数据控制器148管理与这样的信息相关联的元数据该 信息被接收,以便作为编码数据被存储在存储装置上。在某些实施例中, 元数据控制器148负责对与这样的信息相关联的元数据(即元数据152) 进行产生、改变、维护、存储、检索和处理该信息被^接收,以便作为编码数据被存储。
在某些实施例中,分发器136在处理器140中通过软件、固件、专用 逻辑或其组合实现。另外,分发器136的全部或部分可位于控制器131以 外,例如以软件实施方式在主机101、 103、 105、 107和/或109中的一个 之中。分发器136向RAM分发编码数据(即编码数据156),和/或直接 以一格式(在下面介绍)分发到存储装置,使得在一个或一个存储装置已 发生故障的情况下编码数据和/或源信息可从无故障的存储装置解码和/或 重建。当分发器136向所述多个数据存储介质(例如介质160、 170、 180、 l卯)分发数据时,分发是根据元数据152进行的,故被分发的数据可在其 后从存储装置读取。
特殊电路142提供附加硬件以便使控制器131能够执行独特的功能, 例如用于数据存储介质160、 170、 180、 190、控制器131以及编码器146 的环境冷却的风扇控制。编码器146可被实现为巻积编码器,例如但不限 于巻积编码器400 (图4A)。特殊电路142可包含提供脉宽调制(PWM) 控制、模拟至数据转换(ADC)、数字至模拟转换(DAC)、异或(XOR) 等的电子线路。另外,特殊电路142的全部或部分可位于控制器131外, 例如以軟件实施方式在主机IOI、 103、 105、 107和/或109中的一个之中。
在某些实施例中,编码器146可被实现为巻积编码器。现在参照图2 和3,表格200和状态图300示出了申请人的i更备和方法的一个实施例, 其采用了巻积编码算法。对申请人的设备和方法的介绍不应当被看作是将 申请人:的设备和方法限制为仅使用表格200和状态图300所示的巻积编码 算法。相反,在某些实施例中,申请人的方法采用了不同的巻积编码算法。
图2和3的编码算法包含八种状态S0310、 SJll、 S2312、 S3313、 S4314、 S5315、 S6316、 S7 317。状态之间的不连续跳变在号码和方向上受 到限制。例如,开始于状态S。310的编码过程仅能跳回到Sn310或前跳到 Si 311。类似地,从Si311开始的过程仅能跳到S2 312或S3 313,等等。 状态之间的各个跳变产生一位信息到四位错误改正编码数据的编码,如图 2和3所示。
表格200 (图2)包含四列初始状态201、目标状态202、信息203、 皿改正编码数据204。表格200中总共有十六行,其基于八个状态和从 一种特定状态到下一个马上可能的状态的两种可能的跳变的总计。表格 200是经由状态图300产生的,并在这里被用于说明为产生编码数据的信 息编码。
图3和5示出了原始信息的编码,该信息包含位1111000。在图3中, 编码被示为遵循突出显示的编码路径,该路径包含So310、 Si311、 S3313、 S7317、 S7317、 S6316、 S4314、 S0310。现在参照图2、 3和6, S0310到S^ll 将原始位1编码为四个错误改正编码位1111。 S口ll到S3213将原始位1 编码为四个镅-蔽改正编码位1000。 S3213到S7217将原始位1编码为四个 4晉误改正编码位0001。 S7217到S7217将原始位1编码为四个错误改正编 码位1110。 S7217到S6216将原始位0编码为四个镣溪改正编码位0001。 S^16到S4217将原始位0编码为四个错误改正编码位0110。最后,S4217 到SG210将原始位0编码为四个错误改正编码位1111。
使用上面所述的巻积编码算法,原始信息1111000被编码为四个错误 改正编码数据組,以便存储在存储介质160、 170、 180、 190中。使用图2、 3、 6所示的巻积编码算法,原始信息111100(H皮编码为包含位1101001的 第一错误改正编码数据组,其中,所述第一組错误改正编码数据被存储在 第一数据存储介质160 (图l)中。使用图2、 3、 6所示的巻积编码算法, 原始信息1111000被编码为包含位1001011的笫二错误改正编码数据组, 其中,所述第二組编码数据被存储在第二数据存储介质170 (图1)中。使 用图2、 3、 6所示的巻积编码算法,原始信息1111000被编码为包含位 1001011的第三错误改正编码数据组,其中,所述第三组编码数据被存储 在笫三数据存储介质160 (图1)中。使用图2、 3、 6所示的巻积编码算法, 原始信息1111000被编码为包含位1010101的第四餘误改正编码数据组, 其中,所述笫四组编码数据被存储在第四数据存储介质160 (图1)中。
现在参照图4A与4B,编码器电路400被示为用于表格200 (图2 ) 和状态图300 (图3)所示的巻积编码算法。编码器电路400是编码器146
(图1)在控制器131 (图1)的特殊电路142 (图1)中的一种实施方式。 在其他实施例中,编码器电路400在控制器131外部实现。
编码器电路400 —次一位地接收输入信息流U ( J) 405,用于编码。 编码器电路400包含一 m=3级的移位寄存器,其包含寄存器410、 420、 430。对于编码过程,寄存器410、 420、 430的初始内容优选为0。输入信 息流U (J) 405和寄存器410、 420、 430的输出被有选择地由n=2模-2加 法器相加(对于二进制加法不产生移行(carryover)),所述加法器包含 用于产生输出L(O, J) 440的加法器240、用于产生输出L(l, J) 450 的加法器242、用于产生输出L(2, J) 460的加法器244、用于产生输出 L(3, J) 470的加法器246。加法器可以通过软件、固件、专用逻辑 等等的^(吏用或者在特殊电路142中作为XOR (异或)门实现。
图4B教4t^格480,其显示数据存储介质160得到,改正编码数据 位L(O, J) 440、数据存储介质170得到错误改正编码数据位L (1, J) 450、数据存储介质180得到错误改正编码数据位L (2, J) 460、数据存 储介质190得到错误改正编码数据位L (3, J) 470。
由于才莫-2加法是线性运算,编码器是线性前馈移位寄存器。在緩冲之 后,编码器电路400的输出被写入存储介质160、 170、 180、 190,在那里, 存储介质160接收错误改正编码数据位L (0, J),存储介质170接收错 误改正编码数据位L (1, J),存储介质180接收错误改正编码数据位L (2, J),存储介质l卯接收错误改正编码数据位L (3, J)。
图6以表格形式列举了图3中突出显示的编码路径中所示的编码数据。 图3和6各自示出了用于原始信息1111000的错误改正编码的编码路径 S0210、 SJll、 S3213、 S7217、 S7217、 S6216、 S4214、 S0210。再次参照图 2,表格200包含ENDEC (编码-解码)表,其中,列201示出了多个初始 状态,列202示出了可能的目标状态,列203示出了可能的原始数据位, 列204示出了然后被分别写入数据存储介质160、 170、 180、 190的四个错 误改正编码数据位。
在某些实施例中,数据存储介质160、 170、 180、 190包含不同的数据
存储介质类型,例如但不限于磁带、磁盘、光盘、电子存储装置、全息数
据存储介质等等。在其他实施例中,数据存储介质160、 170、 180、 190 包含布置在一个体全息数据存储介质(volume holographic data storage medium)内的不同的存储位置。
对四个错误改正組进行解码优选为使用图5所示的格式图500。这种 格式图常常被称为部分响应最大似然("PRML")解码。或者,"堆栈 算法"可用于这种解码,且可得到相同的结果。
状态So-s7在图5中示出,其中,寄存器410 (图4) 、 420 (图4)、 430 (图4)的初始内容全为零,且其中,格式图500开始于状态So310A。 从So310A,格式图500跳到So310B或S^11B。格式图500中,状态编号 中从后缀A到后缀B的上升^皮称为分支,当从后缀A跳到后缀B时,分 支索引I为零 从S。310B,格式图500跳到S0310C或S!311C;从S^11B, 跳到S2312C或S3313C,分支索引I为1。从So310C,格式图500跳到S0310D 或S,311D;从SJ11C跳到S2312D或S3313D;从S2312C跳到S4314D或 SS315D;或者从S3313C跳到S6316D或S7317D,分支索引I为2。
格式图500中下面的跳转序列显示出解码工作的全部。从So310D,格 式图500跳到S0310E或S^11E;从SJ11D跳到S2312E或S3313E;从 S2312D跳到S4314E或S5315E;或者从S3313D跳到S6316E或S7317E, 分支索引I为3。另外,从S7317D,格式图500跳到S7317E或S6316E; 从S6316D跳到S5315E或S4314E;从S5315D跳到S3313E或S2312E;或 从S4314D跳到Si311E或S。310E。
典型地,在格式图中将对于分支索引1=3所示出的重复多次。然而, 简洁性仅允许图5中的一次这样的迭代。对于图5的其他部分,格式图被 示为完结,表示解码过程的结束。从Sq310E,格式图300似〖到Sq310F; 从S^11E仅跳到S2312F;从S2312E仅跳到S4314F;从S3313E仅跳到 S6316F;分支索引I为4。另外,从S 317E,格式图300似匕到S6316F; 从S6316E絲到S4314F;从S5315E似t到S2312F;从S4314E彻匕到 So310F。从S0310F,格式图500仅跳到S0310G;从S2312F仅跳到S4314G;分支索引I为5。另外,从S6316F,格式图500仅跳到S4314G;从S^14F 仅跳到So310G。最后,从So310G,格式图300仅跳到S。310H;分支索引 I为6。另外,从S4314G,格式图500仅跳到S。310H。
图7和8示出了重建丢失数据的实例。在图7和8中,数据对于存储 介质Ml和M2整个丢失。然而,图8使用PRML算法,基于最小汉明间 距,确定经过格式解码器图500 (图5 )的正确路径。出于说明目的,仅讨 论数据恢复的三个分支。
数据恢复的第一分支(1=0)包含为数椐lxyl寻找正确的数据恢复路 径,其中,x和y表示由于数据存储介质Ml和M2被损坏或不可用的未 知编码数据。从So310A到So310B的汉明间距为lxyl<xor>0000=lxyl,而 从S。310A到S^11B的汉明间距为lxyl<xor>llll=OxyO。由于从S0310A 到SJ10B的路径具有较小的汉明间距,其为正确路径。
类似地,数据恢复的第二分支(1-1)包含为数据lxyO寻找正确的数 据恢复路径。从S^11B到S2312C的汉明间距为lxyO<xor>0111=lxyl,而 从S^11B到S3313C的汉明间距为Ixy0<xor>1000=0xy0。由于从Si311B 到S3313C的路径具有较小的汉明间距,其为正确路径。
最后,数据恢复的第三分支(1=2)包含为数据Oxyl寻找正确的数据 恢复路径。从S3313C到S6316D的汉明间距为Oxyl<xor>1110=lxyl,而 从S3313C到S7317D的汉明间距为Oxyl<xor>0001=OxyO。由于从S3313C 到S7317D的路径具有较小的汉明间距,其为正确路径。如本领域技术人 员将会明了的那样,数据恢复可能涉及两个分支的同时使用,但编码数据 仍可被恢复。
申请人的发明包含向(N)个数据存储介质读写信息的方法,其中, 该方法由原始信息产生(N)组错误改正编码数据。在某些实施例中,数 据存储服务提供商实现申请人的方法,以便向 一个或一个以上的数据存储 服务用户提供数据存储服务。在某些实施例中,数据存储服务提供商拥有 和/或^^作存储控制器(例如存储控制器131 (图1))以及数据存储介质 160 (图1) 、 170 (图1) 、 180 (图1) 、 190 (图1)。在某些实施例中,
所述一个或一个以上的数据存储服务用户拥有和/或操作一个或一个以上
的主计算机101 (图1) 、 103 (图1) 、 105 (图1) 、 107 (图1)和/或 109 (图1)。
图9概括了申请人的用于产生并M从原始信息得到的(N)组#^ 改正编码数据的方法。在某些实施例中,所述(N)组错误改正编码数据 被写入(N )个数据存储介质,其中,所述(N)个数据存储介质各自包含 不同的数据存储介质类型,例如但不限于磁带、磁盘、光盘、电子数据存 储装置以及全息数据存储介质。在其他实施例中,所述(N)组错误改正 编码数据被写入布置在一个体全息数据存储介质中的(N)个不同的存储 位置。
现在参照图9,在步骤905中,申请人的方法提供例如数据存储系统 100 (图1)的数据存储系统,其中,数据存储系统包含例如存储控制器131
(图1)的存储控制器,该控制器能够由原始信息产生(N)组镣误改正编 码数据。在申请人的设备和方法的某些实施例中,申请人的存储控制器与
(N)个不同的数据存储介质类型通信。在某些实施例中,(N)为2。在 某些实施例中,(N)为4。申请人用"(N)组错误改正编码数据,,表示 从原始信息得到的(N)组数据,其中,如果这(N)组错误编码数据中至 少(N/2)可用,原始信息能被重建。
在步骤910中,申请人的方法判断信息是否已被接收,例如主机信息 接口 132中的信息134。在某些实施例中, 一个或一个以上的主计算机一一 例如一个或一个以上的主计算机101、 103、 105、 107和/或109——向申请 人的存储控制器(例如存储控制器131 (图1))提^(^f言息。在某些实施例 中,步骤910由存储控制器执行,例如存储控制器131 (图1)。在某些实 施例中,步骤910由处理器执行,例如布置在存储控制器中的处理器140
如果申请人的方法判断为该信息还没被接收,则方法继续以监视信息 的接收。或者,如果申请人的方法判断为信息已被接收,则该方法从步骤 910跳到步骤920,在步骤920中,该方法产生第(i)组错误改正编码数
据,其中,(i)在一开始被设置为1,且其中,(i)大于或等于l且小于 或等于(N)。在某些实施例中,步骤910由存储控制器执行,例如存储 控制器131 (图1)。在某些实施例中,步骤910由处理器执行,例如布置 在存储控制器中的处理器140 (图1)。
在步骤930中,申请人的方法选择第(i)个数据存储介质。在某些实 施例中,第(i)个数据存储介质包含磁带。在某些实施例中,第(0个数 据存储介质包含磁盘。在某些实施例中,第(i)个数据存储介质包含光盘, 例如相变光盘、磁-光盘、数字多功能盘(DVD )、高清晰度DVD( HD-DVD ) 或蓝光光盘(Blu-Ray)。在某些实施例中,第(i)个数据存储介质包含 电子数据存储装置。
在某些实施例中,第(i)个数据存储介质包含全息数据存储介质。在 某些实施例中,第(i)个数据存储介质包含布置在全息数据存储介质中的 第一存储位置。
图11A示出了全息信息记录设备1100。设备1100包含激光源1105、 激光束分离器1110、载波束1120、基准束1130。在图IIA所示的实施例 中,设备1100还包含空间光调制器("SLM" ) 1140、数据束1160、镜 1180、全息数据存储介质1195。
通常,SLM 1140为LCD型的装置。信息在SLM1140显示器上被亮 或暗的4象素表示。SLM1140典型地为半透明的。来自激光源1105的激光 被光束分离器1110分为两束,即载波束1120和基准束1130。当光经过SLM 1140时,载波束1120拾取由SLM 1140显示的图4象1150。
基准束1130被镜1180反射,产生反射基准束1190。反射基准束1190 与数据束1160干涉,形成全息图1170。结果得到的全息图1170被存储在 全息存储介质1195中。镜1180典型地为第一表面镜。
现在参照图IIB,在申请人的设备的某些实施例中,镜1180可绕着轴 1182和/或轴1184旋转,使得包含错误改正编码数据组的全息图可在体全 息数据存储介质1195的各处被编码。在某些实施例中,申请人的体全息数 据存储介质包含正方形平行六面体。在某些实施例中,申请人的体全息数 据存储介质包含长方形平行六面体。
在某些实施例中,(N)为4,申请人的设备和方法使用图11B所示 的构造1102,其中,(N )个数据存储介质包含布置在一个全息数据存储 介质中的四种不同的存储位置。在这些实施例中,采用布置在第一位置的 镜1180,第(i)組错误改正编码数据被显示在SLM1140上,包含被显示 的第(i)组4t^改正编码数据的第一全息图在全息数据存储介质1195中 的第一位置上被编码。随后,采用布置在第二位置的镜1180,第(i+l)组 错误改正编码数据被显示在SLM1140上,包含第(i+l)组错误改正编码 数据的第二全息图在全息数据存储介质1195中的笫二位置上被编码。此 后,采用布置在第三位置的镜1180,第(i+2 )組错误改正编码数据纟皮显示 在SLM1140上,包含第(i+2)组發溪改正编码数据的第三全息图在全息 数据存储介质1195中的第三位置上4皮编码。最后,采用布置在第四位置的 镜1180,第(i+3 )组错误改正编码数据被显示在SLM 1140上,包含第(i+3 ) 组错误改正编码数据的第四全息图在全息数据存储介质1195中的第四位 置上被编码。
现在参照图12A与12B,在序列号No.11/412,658的待准申请中介绍 了全息信息记录设备1200,该申请4皮转让给本文的共同受让人,且被并入 此处作为参考。设备1200包含激光源1105、分离器1110、反射空间光调 制器1210和全息存储介质1195。源1105所产生的光被分离器1110分为 基准束1220和载波束1230。使用设备1200,基准束1220不^议射。
在图12B所示出的实施例中,反射空间光调制器("RSLM" )1210 包含数据图像1205。在某些实施例中,反射空间光调制器1210包含一組 件,其包含多个微型镜。在其他实施例中,反射空间光调制器1210包含珪 基液晶("LCOS")显示装置。与LCD中所用的、晶体和电极被夹在极 化玻璃板之间的向列型扭曲液晶不同,LCOS装置具有涂布在硅片表面的 液晶。驱动图像形成的电子电路被蚀刻到涂布有反射(镀铝)表面的芯片 上。偏振器位于光从芯片弹开之前和之后的光通道上。LCOS装置比传统 的LCD显示器易于制造。LCOS装置具有较高的分辨率,因为几百万个寸象
素能被蚀刻在一个芯片上。LCOS装置可比传统LCD显示器小得多。
当光从反射空间光调制器1210反射开时,栽波束1230拾取图像1205, 形成包含图像1205的反射数据束1240。未^L^射的基准束1220与4lt^射 的数据束1240干涉,形成全息图1250。全息图1250在存储介质1195中 形成,由此使得图像有效的存储介质创建包含编码全息图1250的干涉图样 1260。现在参照图13,在某些实施例中,RSLM 1210可绕着轴1212和/ 或轴1214旋转,使得包含数据的全息图能在全息数据存储介质1195的体
(volume)的各处上,皮编码。
现在再次参照图9,在步骤940中,申请人的方法判断是否在数据緩 存和/或RAM中暂存步骤920中的第(i)组错误改正编码数据,以便在后 来传送到步骤930中所选的第(i)个数据存储介质。如果申请人的方法在 步骤中选择对步骤920中的第(0组错误改正编码数据进行暂存,于是, 该方法从步骤940跳到步骤950,在步骤950中,该方法将步骤930中选 择的第(i )个数据存储介质作为编码数据156(图1 )写到数据緩存或RAM
(例如RAM154 (图l))。在某些实施例中,步骤950由存储控制器执 行,例如存储控制器131 (图1)。在某些实施例中,步骤950由处理器执 行,例如布置在存储控制器中的处理器140 (图1)。申请人的方法从步骤 950跳到步骤960。
如果申请人的方法在步骤中选择不暂存步骤920中的第(i)組错误改 正编码数据,则该方法从步骤940跳到步骤960,在步骤960中,该方法 将步骤920中的笫(i)组错误改正编码数据写到步骤930中所选择的第(i) 个数据存储介质。
在某些实施例中,用步骤905中的存储控制器对第(i)个数据存储介 质进行配置(collocate)。申请人用"配置"表示在同一物理封装、底架、 框架等等之中进行布置。在其他实施例中,不用步骤卯5中的存储控制器 对笫(i)个数据存储介质进行配置。
在某些实施例中,步骤960由存储控制器执行,例如存储控制器131 (图1)。在某些实施例中,步骤960由处理器执行,例如布置在存储控
制器中的处理器140 (图1)。
申请人的方法从步骤960跳到步骤970,在步骤970中,该方法判断 是否已产生了所有的(N)组错误改正编码数据,即(i)是否等于(N)。 在某些实施例中,步骤970由存储控制器执行,例如存储控制器131(图1 )。 在某些实施例中,步骤970由处理器执行,例如布置在存储控制器中的处 理器140 (图1)。如果申请人的方法在步骤970中判断为(i)等于(N), 则该方法从步骤970跳到步骤990并结束。
如果申请人的方法在步骤970中判断为(i)不等于(N),则该方法 从步骤970跳到步骤980,在步骤980中,该方法以1累积(i)。在某些 实施例中,步骤980由存储控制器执行,例如存储控制器131 (图1)。在 某些实施例中,步骤980由处理器执行,例如布置在存储控制器中的处理 器140(图1)。申请人的方法从步骤980跳到步骤920,并继续如上所述 的内容。
图IO概括了申请人的方法的读取(N)组4^改正编码数据的步骤。 在某些实施例中,所述(N )组错误改正编码数据净皮存储在(N)个数据存 储介质上,其中,这(N)个数据存储介质中的每一个包含不同的数据存 储介质类型。在其他实施例中,所述(N )組错误改正编码数据被存储在 布置在一个全息数据存储介质中的(N)个不同的存储位置上。
现在参照图10,在步骤1005中,申请人的方法提供数据存储系统, 例如数据存储系统IOO (图1),其中,该数据存储系统包含例如存储控制 器131 (图1)的存储控制器,该控制器能够对(N)组错误改正编码数据 进行解码以重建原始信息。在某些实施例中,步骤1005的存储控制器与(N )
个不同的数据存储介质类型通信。在某些实施例中,(N)为2。在某些实 施例中,(N)为4。申请人用"(N)组错误改正编码数据"表示从原始 信息得到的(N )组数据,其中,如果这(N )组错误编码数据中的至少(N/2 ) 是可用的,原始信息能被重建。
在步骤1010中,申请人的方法判断是否已从请求者接收到读取请求。 在某些实施例中, 一个或一个以上的主计算机,例如一个或一个以上的主计算机101、 103、 105、 107和/或109向申请人的存储控制器(例如存储 控制器131 (图1))提供读取请求。在某些实施例中,步骤1010由存储 控制器执行,例如存储控制器131 (图1)。在某些实施例中,步骤1010 由处理器执^f亍,例如布置在存储控制器中的处理器140 (图1)。
在某些实施例中,对于(i)的每一个值,步骤1010的读取请求识别 第(0组错误改正编码数据、第(i)个数据存储介质以及第(i)个存储 地址,其中,第(i)组错误改正编码数据在第(i)个存储地址上被写到第 (i)个数据存储介质,其中,(i)大于或等于l且小于或等于(N)。在 某些实施例中,第(i)个存储地址包含一个或一个以上的轨道号、 一个或 一个以上的逻辑块地址、 一个或一个以上的文件号等等。
在某些实施例中,用步骤1005中的存储控制器对第(i)个数据存储 介质进行配置。申请人用"配置"表示在同一物理封装、底架、框架等等 之中进行布置。在其他实施例中,不用步骤1005中的存储控制器对第(0 个数据存储介质进行配置。
申请人的方法从步骤1010跳到步骤1020,在步骤1020中,该方法判 断第(i)个数据存储介质是否可用,其中,(i)在一开始被设置为1。在 某些实施例中,步骤1020由包含第(i)个数据存储介质的数据存储装置 执行。在某些实施例中,步骤1020由存储控制器执行,例如存储控制器 131 (图1)。在某些实施例中,步骤1020由处理器执行,例如布置在存 储控制器中的处理器140 (图1)。
如果申请人的方法在步骤1020中判断为第(i)个数据存储介质不可 用,则该方法从步骤1020跳到步骤1060,或者,如果申请人的方法在步 骤1020中判断为第(i)个数据存储介质可用,则该方法从步骤1020跳到 步骤103t),在步骤1030中,该方法判断第(0组错误改正编码数据是否 可读。在某些实施例中,步骤1030由包含笫(i)个数据存储介质的数据 存储装置执行。在某些实施例中,步骤1030由存储控制器执行,例如存储 控制器131 (图1)。在某些实施例中,步骤1030由处理器执行,例如布 置在存储控制器中的处理器140 (图1)。
如果申请人的方法在步骤1030中判断为第(i)组错误改正编码数据 不可读,则该方法从步骤1030跳到步骤1060。或者,如果申请人的方法 在步骤1030中判断为第(i)组错误改正编码数据可读,则该方法从步骤 1030跳到步骤1040,在步骤1040中,该方法从第(i)个数据存储介质读 取第(i)組错误改正编码数据。在某些实施例中,步骤1040由包含第(i) 个数据存储介质的数据存储装置执行。在某些实施例中,步骤1040由存储 控制器执行,例如存储控制器131 (图1)。在某些实施例中,步骤1040 由处理器执行,例如布置在存储控制器中的处理器140 (图1)。
在某些实施例中,(N)个数据存储介质中的一个包含全息数据存储 介质。在其他实施例中,(N)个数据存储介质中的每一个包含一个全息 数据存储介质,其中,(N)个单个的错误改正编码数据組中的每一个,皮 写到在一个全息数据存储介质中布置的不同的存储地址。图14示出了全息 信息读取设备1400。设备1400包含激光源1105、光束分离器1110、全息 存储介质1195、光学传感器1420。光学传感器1420被布置为离全息存储 介质1195足够准确捕捉所投射图像1410的距离。为了读取该全息图,基 准束1130 M射离开镜1180,成为被反射的基准束ll卯,其于是被投射 到全息存储介质1195上。由于基准束1190干扰存储在存储介质1195上的 编码全息图1405,与由SLM1140(图11A)显示的原始图像1150(图11A) 相似的图像1410被投射到光学传感器1420。光学传感器1420于是产生包 含图像1410的第(i)个4^改正编码数据组。
图15示出了全息信息读取设备1500。在上面所述的序列号为 No.11/412,658的待准申请中介绍了设备1500。设备1500包含激光源1105、 视情况可选的光束分离器1110以及光学传感器1420。光源1105和分离器 1110提供基准束1220。
未被反射的基准束1220被指向全息存储介质1195,使得基准束1220 被干涉图样1260 (图12B)衍射,形成与显示在申请人的反射空间光调制 器1210上的原始图像1205 (图12B)相似的图像1510。图像1510被投射 到光学传感器1420。光学传感器1420于是产生包含图像1510的第(i)个
错误改正编码数据组。
在图15所示出的实施例中,全息信息读取设备1500包含光束分离器 1110。在其他实施例中,全息信息读取设备1500不包含光束分离器。在这 些实施例中,激光源1105提供基准束1220,其在无^Jt的情况下被指向 全息存储介质1195,使得基准束1220被干涉图样1260 (图12A)衍射, 形成与显示在申请人的反射空间光调制器1210上的原始图像1205 (图 12B)相似的图像1510。图像1510被投射到光学传感器1420。光学传感 器1420于是产生包含图像1510的第(i)个错误改正编码数据组。
再次参照图10,申请人的方法从步骤1040跳到步骤1050,在步骤1050 中,该方法将第(i)组错误改正编码数据作为编码数据156 (图1)写到 数据緩存或RAM (例如RAM 154 (图1))。在某些实施例中,步骤1050 由存储控制器执行,例如存储控制器131 (图1)。在某些实施例中,步骤 1050由处理器执^f亍,例如布置在存储控制器中的处理器140 (图1 )。
申请人的方法从步骤1050跳到步骤1060,在步骤1060中,该方法判 断是否所有(N)組4綠改正编码数据已被读取或被试图读取,也就是说, (i)是否等于(N)。在某些实施例中,步骤1060由存储控制器执行,例 如存储控制器131 (图1)。在某些实施例中,步骤1060由处理器执行, 例如布置在存储控制器中的处理器140 (图1)。
如果申请人的方法在步骤1060中判断为(i)不等于(N),则该方法 从步骤1060跳到步骤1070,在步骤1070中,该方法以1累积(i)。在某 些实施例中,步骤1070由存储控制器执行,例如存储控制器131 (图1)。 在某些实施例中,步骤1070由处理器执行,例如布置在存储控制器中的处 理器140(图1)。申请人的方法从步骤1070跳到步骤1020,并继续以上 所述的内容。
如果申请人的方法在步骤1060中判断为(0等于(N),则该方法从 步骤1060跳到步骤1080,在步骤1080中,该方法使用被写入数据緩存或 RAM 154的可用错误改正编码数据组重建任何不可用的错误改正编码数 据组。在某些实施例中,步骤1080包含基于如上所迷和图7与8所示的最小汉明距离使用部分响应最大似然("PRML")算法。在某些实施例中, 步骤1080由存储控制器执行,例如存储控制器131 (图1)。在某些实施 例中,步骤1080由处理器执行,例如布置在存储控制器中的处理器140(图 1)。
申请人的方法从步骤1080跳到步骤10卯,在步骤10卯中,该方法使 用步骤1040中读取的一个或一个以上的错误改正编码数据组、视情况可选 地结合步骤1080中产生的一个或一个以上的重建错误改正编码数据组,产 生步骤1010中请求的信息。在某些实施例中,步骤1090由存储控制器执 行,例如存储控制器131 (图1)。在某些实施例中,步骤10卯由处理器 执行,例如布置在存储控制器中的处理器140 (图1)。
申请人的方法从步骤10卯跳到步骤1095,在步骤1095中,该方法将 步骤1090中的信息返回到步骤1010中的请求者。在某些实施例中,申请 人的方法在步骤1095中将步骤1090中的信息提供到一个或一个的主计算 机,例如主计算机IOI、 103、 105、 107和/或109 (均为图1中的)中的一 个或一个以上。申请人的方法可还包含将任何丢失的4H^改正编码数据组 写入其被试图读取的位置,或者,其可将丟失的错误改正编码数据组写入 新的位置或用新位置更新元数据。
在某些实施例中,图9和/或图10中所列的单个步骤可被合并、省略 或重新排序。
在某些实施例中,申请人的发明包含驻留存储器150 (图1)的指令, 在存储器150中,这些指令由处理器(例如处理器140 (图1))执行,以 便执行图9所列的步骤910、 920、 930、 940、 950、 960、 970和/或980中 的一个或一个以上,和/或图10所列的步骤1010、 1020、 1030、 1040、 1050、 1060、 1070、 1080、 1090和/或1095中的一个或一个以上。
在其他实施例中,申请人的发明包含驻留在任何其他计算机程序产品 中的指令,其中,这些指令由系统100内部或外部的计算机执行,用于执 行图9所列的步骤910、 920、 930、 940、 950、 960、 970和/或980中的一 个或一个以上,和/或图IO所列的步骤IOIO、 1020、 1030、 1040、 1050、
1060、 1070、 1080、 1090和/或1095中的一个或一个以上。在任一情况下, 该指令可在信息存储介质中被编码,该介质包含例如磁信息存储介质、光 信息存储介质、电子信息存储介质等等。申请人用"电子存储介质"表示 例如PROM、 EPROM、 EEPROM、闪速PROM、压缩闪存、智能介质 等装置。
尽管详细说明了本发明的优选实施例,应当明了,在不脱离所附权利 要求书所述的本发明的范围的情况下,本领域技术人员可想到对这些实施 例的j奮改和改变。
权利要求
1.一种产生、存储以及读取多个错误改正编码数据组的方法,该方法包含以下步骤提供与(N)个不同的数据存储介质通信的存储控制器,其中,对于(i)的每一个值,第(i)个数据存储介质包括与其余(N-1)个数据存储介质不同的数据存储介质类型,其中,(N)大于或等于2,且其中,(i)大于或等于1且小于或等于(N);向所述存储控制器提供信息;产生(N)组错误改正编码数据;对于(i)的每一个值,选择第(i)个数据存储介质;以及对于(i)的每一个值,将第(i)组错误改正编码数据写入第(i)个数据存储介质。
2. 根据权利要求l的方法,其中提供存储控制器的所述步骤还包含提供包含巻积编码器的存储控制 器,该编码器包含巻积编码算法;且产生(N)组错误改正编码数据的所述步骤由所述巻积编码器使用所 述巻积编码算法执行。
3. 根据权利要求2的方法,其中,提供存储控制器的所述步骤还包含 提供包含数据緩存的存储控制器,所述方法还包含这样的步骤对于(i) 的每一个值,在将第(i)组错误改正编码数据写入第(i)个数据存储介质 之前,将所述第(0组错误改正编码数据存入所述数据緩存。
4. 根据权利要求l的方法,其还包含这样的步骤M带、磁盘、光 盘、电子数据存储装置和全息数据存储介质中选择所述(N)个数据存储 介质。
5. 根据权利要求l的方法,其中,所述(N)个数据存储介质包含布 置在全息数据存储介质中的(N)个不同的数据存储位置。
6. 根据权利要求l的方法,其还包含以下步骤从请求者接收读取所述信息的请求; 读取所述(N)个错误改正编码数据组中的每一个; 使用所述(N)个错误改正编码数据组产生所述信息;以及 将所述信息返回到所述请求者。
7. 根据权利要求6的方法,其中,所述读取步骤还包含 对于(i)的每一个值,判断第(i)个数据存储介质是否可用;在第(i)个数据存储介质可用的条件下可操作地,判断第(i)个错误 改正编码数据组是否可读;以及在第(i)个错误改正编码数据组可读的条件下可操作地,读取第(i) 个错误改正编码数据组并将所述第(i)个错误改正编码数据组写到数据緩 存。
8. 根据权利要求7的方法,其中,产生所述信息的所述步骤还包含以 下步骤判断错误改正编码数据組是否不可用;以及在错误改正编码数据组不可用的条件下可操作地,使用部分响应最大 似然算法重建所述不可用的错误改正编码数据组。
9. 一种用于产生、存储以及读取多个错误改正编码数据组的存储控制 器,其包含巻积编码器、巻积编码算法以及在其中布置有计算机可读程序 代码的计算机可读介质,其中,所述存储控制器与(N)个不同的数据存 储介质通信,其中,对于(i)的每一个值,第(i)个数据存储介质包括与 其余(N-l)个数据存储介质不同的数据存储介质类型,其中,(N)大于 或等于2,且其中,(i)大于或等于1且小于或等于(N),所述计算机 可读程序代码包含一 系列计算机可读的程序步骤,以便完成接收信息;由所述巻积编码器使用所迷巻积编码算法产生(N)组错误改正编码 数据;对于(i)的每一个值,选择第(i)个数据存储介质;以及对于(i)的每一个值,将第(i)組错误改正编码数据写入第(i)个数据存储介质。
10. 根据权利要求9的存储控制器,其中,所述(N)个数据存储介 质选自磁带、磁盘、光盘、电子数据存储装置和全息数据存储介质。
11. 根据权利要求9的存储控制器,其中,所述(N)个数据存储介 质包含布置在体全息数据存储介质中的(N)个不同的数据存储位置。
12. 根据权利要求9的存储控制器,所述计算机可读程序代码还包含 一系列计算机可读程序步骤,以便完成从请求者接收读取所述信息的请求; 读取所述(N)个错误改正编码数据组中的每一个; 使用所述(N)个错误改正编码数据组产生所述信息;以及 将所述信息返回到所述请求者。
13. 根据权利要求12的存储控制器,产生所述信息的所述计算机可读 程序代码还包含一系列计算机可读程序步骤,以便完成对于(i)的每一个值,判断错误改正编码数据组是否可用;在第(i)个错误改正编码数据组可用的条件下可操作地,读取第(i)个错误改正编码数据组;以及在第(i)个错误改正编码数据组不可用的条件下可操作地,使用部分响应最大似然算法重建第(0个错误改正编码数据组。
14. 一种计算机系统,其包含用于实现方法l-8中的任意一种的装置。
15. —种提供数据存储服务的方法,其包含以下步骤 提供包含巻积编码器的存储控制器,该编码器包含巻积编码算法,其中,所述存储控制器与(N)个不同的数据存储介质通信,其中,对于(i) 的每一个值,第(i)个数据存储介质包括与其余(N-l)个数据存储介质 不同的数据存储介质类型,其中,(N)大于或等于2,且其中,(i)大 于或等于l且小于或等于(N); 从数据存储月艮务用户接收信息;由所述巻积编码器使用所述巻积编码算法产生(N)组错误改正编码 数据;对于(i)的每一个值,选择第(i)个数据存储介质;以及对于(i)的每一个值,将第(i)组错误改正编码数据写入第(i)个数据存储介质。
16.根据权利要求15的方法,其还包含以下步骤从所述数据存储服务用户接收读取所述信息的请求; 读取所述(N)个错误改正编码数据组中的每一个;使用所述(N)个错误改正编码数据组产生所述信息;以及将所述信息返回到所述数据存储服务用户。
全文摘要
公开了一种接收信息并使用该信息产生、存储以及读取多个错误改正编码数据组的设备和方法。申请人的存储控制器接收信息并产生(N)组错误改正编码数据,其中,(N)大于或等于2。该方法对于(i)的每一个值将第(i)组错误改正编码数据写入第(i)个数据存储介质,其中,(i)大于或等于1且小于或等于(N)。如果申请人的存储控制器接收到读取该信息的请求,则申请人的方法读取(N)个错误改正编码数据组中的每一个,使用(N)个错误改正编码数据组产生该信息,并将该信息返回到请求者。
文档编号G11B20/10GK101206893SQ20071018662
公开日2008年6月25日 申请日期2007年11月14日 优先权日2006年12月20日
发明者C·A·克莱恩, D·J·维纳尔斯基, N·豪施泰因 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1