阵列记录装置的改进型记录装置及方法.pdf

上传人:1****2 文档编号:657288 上传时间:2018-03-02 格式:PDF 页数:84 大小:2.64MB
返回 下载 相关 举报
摘要
申请专利号:

CN94106190.6

申请日:

1994.05.24

公开号:

CN1099496A

公开日:

1995.03.01

当前法律状态:

终止

有效性:

无权

法律详情:

专利权的终止(未缴年费专利权终止)授权公告日:1997.4.2|||授权|||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

三菱电机株式会社;

发明人:

水野正博; 小仓史郎; 伊藤一彦; 小川晃; 松本利夫; 马场宏

地址:

日本东京

优先权:

1993.05.24 JP 121502/93

专利代理机构:

中国专利代理(香港)有限公司

代理人:

傅康;张志醒

PDF下载: PDF下载
内容摘要

本发明涉及能减少写入时间的一种阵列记录装置。各种设备用于写入不带冗余数据的数据并在空转时间中更高效地更新冗余数据。在一个实施例中,为每个柱面设置了一个暂时写入道。在读取、更新、与重写数据时,数据是写入暂时写入道中的。由于重写不需要盘转动整个一周,故迅速即发生写入过程。暂时写入道中的数据是在空转状态中不需要同步重定位进盘中的。此外,数据区中的对应块可用于写入数据而不是指定的暂时写入道。

权利要求书

1: 一种阵列记录装置,包括 多个转动的记录设备,各具有一个带有多个块的写入区,并以块为单位存储数据,其特征在于各记录设备具有与写入区相对应的一个暂时写入区,以及 一个阵列控制器,用于存取记录在作为一个组的多个记录设备的块中的数据,所述阵列控制器包括 暂时写装置,用于在数据准备好写入写入区中时,将数据写入暂时写入区中, 存储装置,将对应于写入暂时写入区的数据的写入区的原来的数据记录单元存储在一个存储器中,以及 重写装置,用于根据存储装置所存储的写入区的原来的数据记录单元将写入暂时写入区中的数据重新写入写入区中。
2: 权利要求1的阵列记录装置,其特征在于阵列控制器还包括用于检测记录设备的转动位置的位置检测装置,以及 其特征在于暂时写装置根据该检测装置所检测到的暂时写入区的转动位置,将数据写入暂时写入区中的一个可利用的区中。
3: 权利要求1的阵列记录装置,其特征在于阵列控制器还包括用于检测记录设备的转动位置的位置检测装置, 存储装置存储暂时写装置写入数据的暂时写入区的一个数据位 置,以及 重写装置根据存储装置所存储的暂时写入区的数据位置及位置检测装置所检测到的转动位置,开始重定位数据。
4: 权利要求1的阵列记录装置,其特征在于暂时写装置根据一组数据计算冗余数据,并将冗余数据写入暂时写入区的块中,以及 重写装置将写入暂时写入区的块中的冗余数据重新定位到写入区的原来的块中。
5: 权利要求1的阵列记录装置,其特征在于阵列控制器还包括用于初始化暂时写入区的初始化装置, 其中暂时写装置将待写入区中的数据写入被初始化装置所初始化的暂时写入区中,而不事先从写入区中读取计算冗余数据所必需的一个组中的数据,以及 其中重写装置根据暂时写入区中的数据及原来在写入区中的待更新的组中的数据,计算冗余数据,并将该冗余数据记录在写入区中。
6: 一种阵列记录装置,包括: 多个转动的记录设备,各记录设备具有带有多个块的一个写入区,并以块为单位存储数据,其中记录设备中包含至少一个用于记录冗余数据的冗余设备, 一个阵列控制器,用于存取作为一个组记录在多个记录设备的块中的数据与冗余数据,所述阵列控制器包含: 暂时写装置,用于将数据写入记录设备而不计算冗余数据, 存储装置,用于将暂时写装置写入数据的一个数据位置存储在 一个存储器中,以及 重写装置,用于读取计算一个组中的冗余数据所必需的数据,该组是根据存储装置所存储的数据位置、暂时写装置所写的数据隶属于它们的,根据所读取的数据计算冗余数据,并将冗余数据记录在冗余设备中。
7: 权利要求6的阵列记录装置,其特征在于阵列控制装置还包含同步控制装置,用于将一个冗余设备的转动相位从其它记录设备的转动相位移相一个预定的时间间隔,以及 其中重写装置在冗余设备的转动相位从记录设备的转动相位的移相所提供的预定时间间隔中,计算冗余数据。
8: 一种阵列记录装置,包括: 多个转动的记录设备,每个记录设备具有带有多个块的一个写入区,并以块为单位存储数据,其中各记录设备具有一个高速缓冲存储器, 一个阵列控制器,用于存取作为一个组记录在多个记录设备的块中的数据与冗余数据,其特征在于所述阵列控制器包括 暂时写装置,用于将数据写入记录设备而不计算冗余数据, 存储装置,用于将暂时写装置写入数据的数据位置存储在一个存储器中,以及 重写装置,用于请求将计算冗余数据所必需的数据预取到记录设备中的高速缓冲存储器中,这些数据是未被暂时写装置写入的,在高速缓冲动存储器中的数据的预取结束时,根据存储装置所存储的数据位置,从记录设备的高速缓冲存储器中读取数据,根据所读取的数据计算冗余数据,并将冗余数据记录在一个冗余设备中。
9: 权利要求8的阵列记录装置,其特征在于阵列控制器还包括用于检测记录设备的转动位置的位置检测装置,以及 其中所述重写装置根据位置检测装置所检测到的冗余设备的转动位置,开始计算冗余数据。
10: 一种阵列记录装置,包括: 多个转动的记录设备,每个记录设备具有带有多个块的一个写入区,并以块为单位存储数据,其中每个记录设备包含一个用于存储恢复数据的恢复设备,以及 一个阵列控制器,用于存取作为一个组记录在多个记录设备的块中的数据与冗余数据,所述阵列控制器包括同步装置,用于将恢复设备的转动相位从其它设备的转动相位移相一个预定的时间间隔,以及 重写装置,用于从写入区中读取一组数据,在恢复设备的转动相位与记录设备的转动相位的移相所提供的预定时间间隔中,根据从写入区中读取的一组数据来恢复数据,并将恢复数据存储在恢复设备中。
11: 权利要求10的阵列记录装置,其特征在于阵列控制器还包括用于检测恢复设备的转动位置的位置检测装置,以及 其中重写装置根据位置检测装置所检测到的转动位置开始恢复数据。
12: 权利要求10的阵列记录装置,其特征在于阵列控制器还包括命令栈装置,用于堆放存取记录设备中的数据的命令,并以一种次序执行堆放的命令,以及 其中重写装置生成一条执行重写装置的一种功能的命令,并将 该命令输出到命令栈装置。
13: 权利要求12的阵列记录装置,其特征在于命令栈装置接收带有一个优先级的命令,并根据该优先级确定执行命令的次序,以及 其中重写装置将带有低优先级的命令输出到命令栈装置。
14: 一种阵列记录装置,包括: 多个记录设备,每个记录设备具有带有多个块的一个写入区,并以块为单位存储数据,一个阵列控制器,用于存取作为一个组记录在多个记录设备的块中的数据与冗余数据,该阵列控制器包括 初始化装置,用于将写入区分成多个分区,以便将其它分区中的对应的块定义到一个分区中的一个块上,并初始化各分区; 一个存储器,用于存储初始化信息,该信息表示该块是否被初始化装置初始化,及用于存储分区信息,该信息表示各块的数据已记录在其它分区中的对应的块中的一个分区; 写装置,用于参看存储在存储器中的组中的各块的初始化信息,用于找出表现为已初始化状态的一个组的所有的块,并用于在该组中的所有块表现为初始化状态时,将数据写入找到的该组的块中;以及 存储器更新装置,用于将写装置已写入数据的块的初始化信息更新成这些块不是初始化状态,并在其它分区中的对应块中已写入数据时,登记分区信息与分区以表示数据已记录在该分区中的对应块中。
15: 权利要求14的阵列记录装置,其特征在于存储器存储表示各块是否在使用的使用状态数据,其中初始化装置初始化其在 存储器中的使用状态为不在使用的一个块,以及其中存储器更新装置更新已被初始化装置初始化的块的初始化信息。
16: 权利要求1、6、8、10或14的阵列记录装置,其特征在于存储器为一个非易失性存储器。
17: 一种记录装置,它以一个第一大小的单位存取来自主机的数据,并以一个小于第一大小的第二大小的单位存取记录设备中的数据,包括: 一个高速缓冲存储器,用于存储读自记录设备的数据; 接口装置,用于使用高速缓冲存储器将第一大小单位的数据从主机输入,及向主机输出; 比较装置,用于以每一个第二大小单位,将根据一条写命令的第一大小单位的数据与存储在高速缓冲存储器中的数据进行比较; 更新装置,用于根据比较装置的比较结果,以每一个第二大小单位更新记录设备的数据。
18: 权利要求17的记录装置,其特征在于设置了多个记录设备,其中第二大小的单位是用于存取各记录设备的存取单位,及其中比较装置根据比较结果判定是否有必要更新各记录设备中的数据。
19: 权利要求18的记录装置,其特征在于还包括与所述多个记录设备对应的、用于控制记录设备的多个记录设备控制装置,其中各所述记录设备控制装置包含一个高速缓冲存储器、一个比较装置及一个更新装置,以及其中接口装置将第一大小的单位的数据分成第二大小单位的数据部分,并将各部分数据分配给各记录设备控制装置的高速缓冲存储器。
20: 一种记录方法,用于具有多个用于将数据记录在一个写入区中的记录设备、及用于控制对记录设备的存取的一个阵列控制器的一种阵列记录装置,所述方法包括下述步骤: (a)暂时将数据写入位于各所述多个记录设备中的一个暂时写入区中,来代替写入写入区中;以及 (b)将暂时写入区中的数据重新写入写入区中。
21: 权利要求20的记录方法,其特征在于还包括存储写入暂时写入区中的数据的位置单元以及待写入写入区中的数据的位置单元的步骤,以及其特征在于重写步骤参看所存储的单元以重写该数据。
22: 权利要求21的记录方法,其特征在于还包括检测一个记录设备的转动位置的步骤,以及其中暂时写步骤根据检测步骤检测到的转动位置,开始写入。
23: 权利要求21的记录方法,其特征在于还包括检测一个记录设备的转动位置的步骤,以及其中重写步骤根据检测步骤检测到的转动位置开始重写。
24: 一种记录方法,其特征在于用于具有多个用于在一个写入区中记录数据的记录设备、及用于控制对记录设备的存取的一个阵列控制器的一种阵列记录装置,所述方法包括下述步骤: (a)将数据暂时写入记录设备中,而不计算冗余数据; (b)存储被暂时写步骤写入的数据的位置单元; (c)从所存储的位置单元中读出数据; (d)根据读出步骤所读出的数据,计算冗余数据;以及 (e)将计算步骤计算出的冗余数据重写到一个冗余设备。
25: 权利要求24的记录方法,其特征在于还包括控制记录设备与冗余设备的转动同步、将冗余设备的转动相位从记录设备的转动相位延迟的步骤,以及其中计算步骤在延迟的时间间隔中计算冗余数据。
26: 一种记录方法,用于具有多个用于在一个写入区中记录数据的记录设备、及用于控制对记录设备的存取的一个阵列控制器的一种阵列记录装置,所述方法包括下述步骤: (a)通过一个高速缓冲存储器将数据写入一个指定的记录设备中,而不计算冗余数据; (b)将计算冗余数据所需的数据从其它不指定为用于写入数据的记录设备中预取到高速缓冲存储器中; (c)根据高速缓冲存储器中的数据计算冗余数据;以及 (d)将冗余数据写入记录设备之一中。
27: 一种记录方法,用于具有多个用于在一个写入区中记录数据的记录设备、及一个用于控制对记录设备的存取的阵列控制器的一种阵列记录装置,所述方法包括下述步骤: (a)将写入区分成多个分区,以便在分区中设置对应的冗余组; (b)初始化分区; (c)在分区中搜索对应的冗余组以定位一个初始化的冗余组; (d)将数据写入搜索步骤所找到的初始化冗余组中;以及 (e)将写步骤写入数据的分区存储在原来的冗余组中。
28: 一种记录方法,用于将来自一台机器的以一个第一大小 的单位的数据接收到一个缓冲区中、在一个记录设备中以一个第二大小的单位存取数据的一种记录装置,包括下述步骤: (a)多次将第二大小单位的数据从记录设备中读入缓冲器中; (b)将第一大小单位的数据传送到所述机器; (c)从机器接收第一大小单位的更新数据; (d)将所述更新数据与缓冲器中的数据以第二大小单位进行比较;以及 (e)如果比较步骤以第二大小单位的比较结果显示差别,则以第二大小单位更新记录驱动器中的数据。

说明书


本发明涉及作为计算机的存储系统的阵列记录装置。更具体地,本发明涉及包含阵列盘驱动器的盘驱动系统的效率及可靠性的改进。

    现已发表了关于包含阵列盘驱动器的盘系统的多种论文与专利。在这些文献中,有一篇来自伯克利加州大学的,关于能极大地改进大量存储数据的可靠性的一种系统的论文:“廉价盘的冗余阵列(RAID)的一例”,ACM SIGMOD(美国计算机协会数据管理专业组)会议记录汇编,芝加哥,伊利诺州,1988年6月。这一论文将改进数据可靠性的系统分成五级,从传统的镜象盘系统至块交错奇偶性校验系统,它们的摘要如下:

    RAID级1

    这是正常的镜象(影象)系统,其中,相同的数据是存储在两组盘驱动器中的。RAID级1的系统已常规地用于要求高可靠性地系统中。然而,由于高冗余度,它们的单位容量成本是高的。

    RAID级2

    数据是采用DRAM(动态随机存取存储器)中的Hamming码(汉明码)位交替在冗余组的数据盘中的。ECC(纠错码)码是写入每组中的多片校验盘中的,使之能够纠正一位的出错。一组中包含10至25片数据盘:例如,十片数据盘需要四片校验盘。在一定程度上,冗余度依然是大的。

    RAID级3

    数据是使用一片专用的奇偶校验盘字节交替在组中的数据盘中的,由于出错位置是从各驱动器的ECC中检测的,因此只需要一片奇偶校验盘。这一级适用于主轴的同步旋转以高速传送数据。

    RAID级4

    数据是使用一片专用的奇偶校验盘块交替在组中的数据盘中的。在频繁存取小量数据时,这一级别是适用的,因为数据存储是以块作为交替单位的,这一点与级3不同。

    RAID级5

    没有专用的奇偶校验盘,这一点与级3与4不同,奇偶校验数据是平均分布与存储在所有盘中的(成带状)。因而,在写时,数据存取并不集中在一个单一的奇偶校验盘驱动器上,从而提高了IOPS(输入输出处理速度)。(写的比例较高时,这一级别较级4效率高)。这一级别所提供的高处理性能及改进的存储器效率都是良好的。

    美国阵列技术公司(Array Techrology Corporation)在未经审查的日本专利公布号2-236714中所公开的“阵列记录装置系统与方法”是知名的传统冗余阵列记录装置的一例。在该阵列技术公司的例中,有可能在主计算机所能有识别与存取的盘驱动器配置中选择冗余级别及盘的逻辑号。

    美国国际商用机器公司在未审查的日本专利公布号62-293355“数据保护系统”中公开了将奇偶校验数据平均分布与存储在所有盘中(成带状)的系统。

    图31示出了未审查的日本专利公布号2-236714中所公开的传统阵列记录装置的一种配置。图31是由下述部分组成的。一个主机接口2(以后称作主机I/F)为一台主计算机1与一个阵列控制器13之间的一个缓冲器。一个微处理器3控制该阵列控制器。一台EOR(“异或”)机器5生成冗余数据并恢复数据。一条数据总线6连接主机I/F2、微处理器3、存储器4及EOR机器5。同时连接在数据总线6上的还有一块CE(用户输入)面板7及多个通道控制器8a,…,8e。阵列控制器控制多台盘驱动器9a,…,9e。盘驱动器9a,…,9c是通过通道10连接在通道控制器8a,…,8e上的。

    图32说明在RAID中冗余数据的生成。如图中所示,五片盘中的一片盘的数据存储其它四片盘的冗余数据(奇偶性)。奇偶性可以通过计算该四片盘的数据的“异或”(XOR)求得。即,奇偶性盘P的奇偶性数据是通过计算盘0、盘1,盘2与盘3的数据的“异或”得出的。这便有可能将这一奇偶性作为冗余数据来恢复数据。例如,当由于某种故障而不能读出盘0的数据时,盘0的数据可通过使用从计算盘1、2、3与奇偶性盘P的数据的“异或”(XOR)所得出的数据加以恢复。

    除了通过计算四片盘的数据的XOR来计算奇偶性的上述方法之外,还有下述的另一种方法。通过读取要写入数据的盘的老数据及存储在奇偶性盘中的当前奇偶性数据,然后计算新数据、老数据及当前的奇偶性数据的XOR,便可得出新的奇偶性数据。这一方法将参照图33加以描述。例如,在新数据DN(2)正在写入盘2的情况中,首先从盘2中读取老数据作为数据DO(2)。同时从奇偶性盘中读取当前奇偶性数据DO(P)。然后,通过计算三个数据DN(2)、DO(2)、DO(P)的“异或”得出新的奇偶性数据DN(P)。将新数据DN(2)存储在盘2中。最后,将新的奇偶性数据DN(P)存储在奇偶性盘中。

    下面描述图31中所示的系统的操作。在图31中,对来自主计算机1的数据的所有存储请求与恢复请求都是通过主机I/F进行的。在存储数据时,来自主计算机1的命令与数据是经由数据总线6暂时存储在存储器4中的。而在恢复数据时,则通过主机I/F2将存储在存储器4中的数据送至主计算机1。

    下面参照图31与34描述RAID级5上的操作。在存储数据时,微处理器3将存储在存储器4中的数据分成数据块,并确定数据将写入的盘驱动器及冗余数据将写入的盘驱动器。在RAID级5上,来自要写入的数据块的老数据对于更新冗余数据是必不可少的,因此在写以前先进行一次读操作。数据在存储器4与数据总线6上的通道控制器8之间传送,且EOR机器5与这一数据传送同步生成冗余数据。

    如图34中所示,例如假定数据块是设置成512字节的。存储奇偶性的块在各盘驱动器中的分布如P1,P2,P3,…所示。这种记录状态称作带状的。D11、D21、D31、D41与P1称作一个冗余组。D12、D22、D32、P2与D51也称作一个冗余组。

    在写1024字节的数据时,这些数据是分成并存储在两块D11与D21中的。同时存储奇偶性数据P1,这一过程依次说明如下。首先,选择图31中的盘驱动器9a与9b用于写入数据,并选择盘驱动器9e用于冗余数据。在微处理器3的控制下启动EOR机器5,并命令连接在数据盘驱动器9a与9b及冗余数据盘驱动器9e上的通道控制器8a、8b与8e在微处理器3的控制下读取老数据,以便计算冗余数据。在完成了从上述数据盘驱动器9a与9b及冗余数据盘驱动器9e读取老数据之后,在微处理器3的指导下进行在数据盘驱动器9a与9b中写入新数据及在冗余数据盘驱动器9e中写入EOR机器5所生成更新后的冗余数据。如上所述,由于在写入数据时,首先必须读取老数据以便生成冗余数据,因此这一过程点用长的时间。

    下面描述数据的读取,在主计算机1请求数据读取时,微处理器3计算存储这些数据的数据块与数据盘驱动器。如果数据是存储在,例如,盘驱动器9c中的,则将一条读命令发布至连接在盘驱动器9c上的通道控制器8c。在完成了从盘驱动器9c的数据读取时,将数据传送至存储器4并通知主计算机1已完成了数据读取。

    下面描述出现故障时,在备用盘上的数据恢复与数据再生。例如,当无法从盘驱动器9c上读取数据时,便进行数据恢复。在无法从盘驱动器9c读取数据时,由微处理器3进行从包含要读取的数据块的冗余组的所有盘驱动器中读取数据,并由EOR机器5恢复无数据3读出的数据块的数据。

    例如,当冗余组是由盘驱动器9a、9b、9c、9d与9e构成时,则从盘驱动器9a、9b、9d与9e中读出数据块。然后,由EOR机器5恢复盘驱动器9c的数据,将数据传送至存储器4,然后通知主计算机1已完成了数据读取。

    如上所述,即使由于盘驱动器的故障而不可能读取时,也有可能恢复数据。从而,提高了数据的可靠性。

    由于传统的阵列记录装置是如上述构成的,问题之一是即使在正常操作中,处理也是费时的,因为在写数据时,首先必须读取数据以生成新的冗余数据。

    已经提出过解决上述问题的某些技术。图35示出了未审查的日本专利公布号4-245352中所公开的“盘驱动器子系统”的一种配置。当一台控制设备从一台处理设备接收一条写命令时,该“盘驱动器子系统”辨别一个高速缓冲存储器中的必要信息的存在,以生成一个奇偶性记录的更新值。当控制设备从处理设备接收写数据时,控制设备通知处理设备已完成了该写命令。不与来自处理的写命令同步,控制设备加载不在高速缓冲存储器中的必要信息,以生成一个奇偶性记录的更新值,并确定与写入该奇偶性记录的更新值。通过上述操作,写请求的处理是在以记录为单位分配数据的一个阵列盘系统中调整执行的。在这一“盘驱动器子系统”中,奇偶性记录的更新值的生成是不同步于从处理设备对控制设备的写请求的,并且写处理的执行也可以是不同步于写请求。然而,虽然奇偶性记录的更新是不同步执行的,控制设备用于更新奇偶性记录所需要的处理时间本身并未得到改进。

    图36示出未审查的日本专利公布号4-127224中所公开的阵列盘系统的一种数据存储方法的直观图。当作为待重写的数据存储在一个缓冲器中的数据被存储在盘驱动器中时,这些数据并不重写入原来存储这些数据的区域中,而是写入不在使用的另一个区域中的。虽然在上述公布中并未描述任何实体装置,但能够设想,由图36中所示的方法,待存储的数据不是重写进该数据原来存储的区域中的,而是写入另一个未在使用中的区域中的。假定每块为1KB(千字节)而一片盘的数据量(不含用于奇偶性的量)为1GB(千兆字节)。每一片盘的块数为1M(兆),从而在阵列盘驱动器中有五片盘时,总块数为5M。假定在5M数据块的范围内允许任何映射变换并且数据可写入一个未使用的任选区域中,则需要图36中所示的一张表。图36中示出了从0至4FFFF的块地址,总共可以指定5M个地址。在数据写入未使用的另一个区域的情况中,为该5M块地址中各地址在表中提供用于实际写入的块地址(23位)、一个使用标志(1位,它表示在该块地址中是否已写入数据)、及一个0(零)标志(1位,它表示该块地址是否已用00(零码)初始化。为了标识5M中之一,用于实际写入的块地址至少需要23位。此外,由于还需要1位作为使用标志及1位作为0标志,一共需要25位的存储区。包含备用位在内存储区需要4个字节。因此,表的存储量为50000h×4字节=20MB。从而,在允许5M的数据块作任意映射变换时需要20MB的存储量。事先在控制设备中的高速缓冲存储器或存储器中提供20MB的存储量会导致硬件构造庞大,从而提高成本。

    本发明的一个目的是得到可减少数据写入所需处理时间的一种阵列记录装置、一种记录装置以及一种记录方法,以解决上述问题。

    本发明的另一个目的为得到以高速执行写过程的一种阵列记录装置、一种记录装置以及一种记录方法。

    根据本发明的一种阵列记录装置的一个方面,在记录设备中提供了与记录设备中的一个专用的写区域相对应的一个暂时写入区,以及一个包括一个暂时写装置、一个存储装置及一个重写装置的阵列控制器。当将数据写入写入区中时,暂时写装置将数据写入与待写入的写入区相对应的暂时写入区中。存储装置存储对应于暂时写装置存储在暂时写入区中的数据的原始写入区的单元信息。重写装置根据存储装置所存储的写入区的单元信息将暂时写入区中的数据重新写入写入区中。

    根据本发明的阵列记录装置的另一方面,包含了检测记录设备的转动位置的一个位置检测装置。当需要暂时写入时,暂时写装置根据该位置所检测到的暂时写入区的转动位置将数据写入暂时写入区的一个开放区中。

    根据本发明的阵列记录装置的另一方面,存储装置在一个存储器中存储有关暂时写装置写入数据的区域的单元信息。重写装置根据存储装置写入存储器中的单元信息及位置检测装置检测到的位置信息起动一个重写操作。

    根据本发明的阵列记录装置的另一方面,在写入更新后的读自写入区的数据的冗余数据时,暂时写装置将对应更新后的冗余数据的一个块写入暂时写入区中。重写装置将暂时写入区中的该块写入写入区中。

    根据本发明的阵列盘驱动器设备的另一方面,包含了初始化暂时写入区的一个初始化装置。暂时写装置将待写入写入区中的数据写入由该初始化装置初始化的暂时写入区中,而不读取写入区中的数据。重写装置根据暂时写入区中的数据及写入区中的数据,计算冗余数据并将计算出的冗余数据写入写入区中。

    根据本发明的阵列记录装置的另一方面,将多个记录设备中的至少一个定义为用于存储冗余数据的一个冗余设备。一个阵列控制器包括一个暂时写装置、一个存储装置及一个重写装置。在将数据写入记录设备中时,暂时写装置将数据写入记录设备而不计算冗余数据。存储装置将暂时写装置所写的数据单元信息存储在存储器中。重写装置根据存储装置所存储的单元信息读取数据,根据读取的数据计算冗余数据并将计算出的冗余数据写入冗余设备中。

    根据本发明的阵列记录装置的另一方面,一个同步控制装置从冗余设备的转动相位移相到除该冗余设备外的其余记录设备的转动相位。重写装置在记录设备与冗余设备的转动相位之间的时间差中计算冗余数据。

    根据本发明的阵列记录装置的另一方面,在该记录设备中装设了暂时存储被存取的数据的一个高速缓冲存储器。当将数据写入记录设备中时,暂时写装置将数据写入记录设备中而不计算冗余数据。存储装置将暂时写装置所写的数据的单元信息存储在存储器中。重写装置对记录设备的高速缓冲存储器生成一条预取计算冗余数据所必需的数据的命令(在该高速缓冲存储器中,没有由暂时写装置写入数据),在结束了预取之后,根据存储装置所写的数据单元信息读取数据,从读出的数据中计算冗余数据,并将计算出的冗余数据写入冗余设备中。

    根据本发明的阵列记录装置的另一方面,一个位置检测装置检测记录设备的转动位置。重写装置根据位置检测装置检测到的冗余设备的单元信息起动重写操作。

    根据本发明的阵列记录装置的另一方面,当存在着用于恢复多个记录设备中的数据的恢复设备时,一个同步控制装置从该恢复设备的转动相位移相到除该恢复设备以外的其余记录设备的转动相位。一个重写装置从记录设备中读取数据,在记录设备与恢复设备的转动相位之间的时间差中从记录设备读出的数据中计算恢复数据,并将恢复数据写入恢复设备中。

    根据本发明的阵列记录装置的另一方面,一个位置检测装置检测恢复设备的转动位置。重写装置根据位置检测装置检测到的转动位置,起动重写操作。

    根据本发明的阵列记录装置的另一方面,一个命令栈装置将存取记录设备的数据的命令进栈并以特定的次序处理进栈的命令。重写装置生成一条重写数据的命令并将其输出至命令栈装置。

    根据本发明的阵列记录装置的另一方面,重写装置降低一条与数据命令的处理优先级并将其输出至命令栈装置。

    根据本发明的阵列记录装置的另一方面,一个初始化装置将记录设备的写入区分成多个具有一定大小的分区,并初始化各分区。一个存储器存储有关初始化及有关每块中的分区的信息。初始化信息表示该块是否已被初始化装置初始化。分区信息表示当数据暂时写入另一分区的块中时写入的块所在的分区。一个写装置在数据写入一组中的块时,参看了写入存储器中的各块的初始化信息,并在该组中的所有的块都在初始化状态中时,将数据写入有关的组的块中。当该组的所有的块并非都在初始化状态中时,写装置参看存储区所存储的另一分区中的各组的块的初始化信息。然后,写装置检测一个所有的块都在初始状态中的组,并将数据写入该组中。一个存储器更新装置更新被写装置写入数据的块的初始化信息,并存储有关分区的信息,该信息指示写入的块数据所在的那个分区。

    根据本发明的阵列记录装置的另一方面,存储器存储表示各块是否在使用的使用状态数据。初始化装置初始化其存储器中的使用状态不在使用的一个块。存储器更新装置更新初始化装置已经初始化的块的初始化信息。

    根据本发明的阵列记录装置的另一方面,其特征在于将一个非易失性存储器用作存储器。

    根据本发明的阵列记录装置的另一方面,一个高速缓冲存储器存储从记录设备读出的数据。一个接口装置使用该高速缓冲存储器以一种第一大小的单位从主机输入及向主机输出数据。根据该接口装置从主机输入的第一大小单位数据的写命令,一个比较装置对根据写命令的以第一大小的单位的数据与存储在高速缓冲存储器中的以一种第二大小为单位的数据进行比较。根据比较结果,一个更新装置以第二大小为单位更新记录设备的数据。

    根据本发明的阵列记录装置的另一方面,配置了多个记录设备。第二大小的单位是用于存取各记录设备的存取单位。根据比较结果,比较装置判定是否需要更新各记录设备中的数据。

    根据本发明的阵列记录装置的另一方面,包含一个与各记录设备相对应的记录设备控制装置。在各记录设备控制装置中设置有高速缓冲存储器、比较装置及更新装置。接口装置将以第一大小为单位的数据分成以第二大小为单位的数据片,并将各数据分配给各记录设备控制装置中所设置的高速缓冲存储器。

    根据本发明的一个方面,用于操作一个阵列记录装置的一种记录方法包括下述步骤:

    (a)在每个记录设备中提供一个暂时写入区;

    (b)在暂时写入区中暂时写入数据,来代替在写入区中写入数据;以及

    (c)将暂时写入区中的数据重写入写入区中。

    根据本发明的另一方面,用于操作一个阵列记录装置的方法还包括存储写入暂时写入区中的数据的所在单元及待写入写入区中的数据的所在单元,以便重写步骤将这些单元提交给重写数据的步骤。

    根据本发明的另一方面,操作方法中还包括检测记录设备的转动位置的步骤,其中的暂时写入步骤根据该检测步骤所检测到的转动位置起动写操作。

    根据本发明的另一方面,操作方法还包括检测记录设备的转动位置的步骤,其中的重写步骤根据检测步骤所检测到的转动位置起动重写操作。

    根据本发明的一个方面,用于阵列记录装置的一种记录方法包括下述步骤:

    (a)提供一个冗余设备;

    (b)将数据暂时写入记录设备中而不计算冗余数据;

    (c)存储暂时写入步骤所写入的数据的所在单元;

    (d)从存储步骤所存储的单元中读取数据;

    (e)根据读取步骤所读取的数据计算冗余数据;以及

    (f)将计算步骤所计算出的冗余数据重写到冗余设备中。

    根据本发明的另一方面,记录方法还包括控制转动的同步的步骤,用以将冗余设备的转动相位从记录设备的转动相位延迟,其中的计算步骤在延迟的时间间隔中计算冗余数据。

    根据本发明的一个方面,用于阵列记录装置的一种记录方法包括下述步骤:

    (a)分别在多个记录设备中提供高速缓冲存储器;

    (b)通过这些高速缓冲存储器,将数据暂时写入指定的记录设备而不计算冗余数据;

    (c)将计算冗余数据所需的数据从不是指定用于由暂时写入步骤写入数据的记录设备中预取到高速缓冲存储器中;

    (d)根据这些高速缓冲存储器中的数据,计算冗余数据;

    以及

    (e)将冗余数据重写到记录设备之一中。

    根据本发明的一个方面,用于阵列记录装置的一种记录方法包括下述步骤:

    (a)将写入区分成多个分区,以便在这些分区中设置对应的冗余组;

    (b)初始化这些分区;

    (c)如果原来的待写入数据的冗余组不是初始化的组,则从分区中对应的组中搜索一个初始化的冗余组;

    (d)将数据写入由搜索步骤所找到的初始化冗余组中;以及

    (e)存储由写入步骤在原来的冗余组中写入数据的分区。

    根据本发明的一个方面,用于记录装置的一种记录方法包括下述步骤:

    (a)分多次将以第二大小为单位的数据从记录设备读入缓冲器中;

    (b)以第一大小为单位传送数据;

    (c)从机器接收以第一大小为单位的更新后的数据;

    (d)从第二大小为单位比较更新的数据与缓冲器中的数据;以及

    (e)如果比较步骤以第二大小为单位的比较结果显示差别,则以第二大小为单位更新记录驱动器中的数据。

    图1示出根据本发明的一个第一实施例的一种阵列记录装置的配置。

    图2示出图1的一种记录设备的配置。

    图3示出根据本发明的一个第一实施例的图1的一种控制装置的配置。

    图4例示根据本发明的所述第一实施例的一张暂时写入信息表。

    图5示出本发明的所述第一实施例的操作的定时图。

    图6示出根据本发明的一个第二实施例的图1的一个命令栈的配置。

    图7示出根据本发明的一个第三实施例的图1的一个记录设备的配置。

    图8示出根据本发明的一个第六实施例的图1的一个控制装置的配置。

    图9示出实施例六的同步控制装置的同步控制方法。

    图10例示实施例六的操作。

    图11例示实施例六的奇偶性更新信息表。

    图12示出实施例六的操作的定时图。

    图13例示根据本发明的一个第七实施例的奇偶性更新信息表。

    图14示出根据本发明的一个第八实施例的一片恢复盘的同步状态。

    图15示出根据一个第九实施例的阵列记录装置的配置。

    图16示出图15的控制装置的配置。

    图17示出实施例九的操作。

    图18例示实施例九的奇偶性更新信息表。

    图19示出实施例九的操作的定时图。

    图20示出根据本发明的一个第十一实施例的控制装置的配置。

    图21例示实施例十一的操作。

    图22例示实施例十一的操作。

    图23例示实施例十一的块地址控制表。

    图24示出实施例十二的控制装置的配置。

    图25例示实施例十二的操作。

    图26示出实施例十二的暂时写入信息表。

    图27示出实施例十三的暂时写入信息表。

    图28示出实施例十四的记录装置的配置。

    图29示出实施例十五的记录装置的配置。

    图30示出实施例十六的记录装置的配置。

    图31示出相关技术的一种阵列记录装置的配置。

    图32例示计算奇偶性的一种方法。

    图33例示计算奇偶性的一种方法。

    图34例示一个数据块及一个冗余组。

    图35示出相关技术的一种阵列盘驱动器的一个例子。

    图36例示相关技术的块地址控制表。

    实施例1

    图1示出本发明的阵列记录装置的一个第一实施例。在图1中,与前面讨论过的相关技术相同的部件或相对应的部件具有相同的参照符号,并在此省略它们的说明。在图1中,一个命令栈14堆放来自主计算机1的命令,一个控制装置15控制该实施例的主要操作。一个定时器16管理每一盘驱动器的盘的转动位置。在本实施例及以后阐明的其它实施例中,为了简化说明,一个块定义为一个扇区。

    在图2中提出了一个盘驱动器的配置。在图2的例中,为每一柱面设置了一个暂时写入道。例如,当一个柱面包含15条道时,第15道用作暂时写入道,而其余的14条道则用作正常写入道。一次读-修改-写的数据并不写入读取它们的原来的扇区中;而是,将数据暂时写入暂时写入道的开放区中最接近的扇区中。

    例如,当在图2中的柱面1的第一道的第一扇区上执行读-修改-写时,在读取与修改第一扇区之后,将数据写入第15道的第三扇区中(从顶上算起的第927扇区)。从完成第一扇区的读出到开始写入第三扇区之间的时间t1中能够利用第一扇区计算出冗余数据,在这种情况下,便有可能将修改后的数据写入第三扇区中。

    例如,当读-修改-写是在从第二柱面的第1500扇区开始的四个连续的扇区的数据上执行时,则如果生成修改与写的数据所需的时间为t2,有可能在完成数据读取后经过时间t2将修改后的数据写入暂时写入道的开放区中,例如从第1930扇区开始。

    图3示出图1中所示的控制装置15的配置。控制装置15包括一个暂时写装置20、一个重写装置30、一个位置检测装置40及一个存储装置50。暂时写装置20将数据写入图2所示的一条暂时写入道或一个暂时写入区中。重写装置30将被暂时写装置写入暂时写入区中的数据写入原来的写入区中。位置检测装置40利用定时器16检测道中的扇区的位置。存储装置50存储被暂时写装置写入暂时写入区中的数据的位置。存储装置50还存储数据原来应当写入的写入区的位置。

    图4示出存储在存储装置50中的暂时写入信息表的一个例子。如图所示,暂时写入信息表含有各盘驱动器的表。在各表中存储有一个原来要写入的写入地址、一个暂时写入地址及定时器16所测定的时间。

    当如图2中所示将第一扇区的数据存储在第927扇区中时,如图4中的表的第一行中所示,对应于原来的写入地址1写入暂时写入地址927。0.75ms(毫秒)存储在时间部分中作为从盘转动的头位置到第三扇区的转动时间。(通常可用一个索引标记检测出盘转动的头位置)。

    类似地,如图2中所示,当暂时将第1500扇区的数据写入第1930扇区时,则存储与它们对应的信息。从盘转动的头位置到写入暂时写入地址中的第1930扇区的时间是作为转动时间存储的。

    由于不需要将数据写入它们原来应当写入的原来写入区,暂时写装置20可以省略盘转动一周的时间。由于暂时写装置20将数据写入暂时写入区的开放区中,数据的暂时写入在盘转动一周以前完成。如果由于暂时写入区已满,而不能暂时写入数据,则和通常一样将数据写入原来的写入区中。因此,即使暂时写入区已满也不会出现问题。

    当暂时写装置暂时写入数据时,存储装置50存储图4中所示的暂时写入信息。位置检测装置40是用于在暂时写装置20将数据写入暂时写入区时,检测一个开放扇区的头位置的。位置检测装置40利用定时器16检测盘的转动位置及能够存储数据的一个扇区位置。存储装置50还存储时间,作为位置检测装置40所检测到扇区位置。

    重写装置30利用暂时写入信息表将数据重新写入数据原来应当写入的地址。重写装置30首先参看暂时写入信息中的时间。然后,重写装置30用位置检测装置40检测转动盘的当前位置,并将当前位置的时间与暂时写入信息表中的时间进行比较。例如,当数据是读自暂时写入地址927时,如果转动位置距盘上的索引标记0.75ms以内,则生成一条读命令。从而,根据该读命令的读数据操作的等待时间便成为零或接近于零,然后从第927扇区中读出数据。重写装置将从暂时写入区中读出的数据重新写入由暂时写入信息表的写入地址所指示的位置中。

    图5为上述操作的时间图。图5示出在读-修改-写盘#2的数据的情况中的时间图。首先,在时间t1从盘#2中读取当前数据DO(2)。接着,在时间t2将读取的数据修改与设置成数据DN(2)。然后,在时间t3生成一条写命令。在时间t5,修改后的数据DN(2)被写入盘#2的暂时写入区中。在传统的设备中,由于盘必须转动一周,所以写命令在时间t8以前不会结束。但是在本例中,写命令在时间t5结束。关于冗余数据,当前冗余数据DO(P)是在时间t4读取的,而新的冗余数据DN(P)则是在时间t4与t6之间生成的。在时间t6生成写命令。生成写命令之后,新的冗余数据DN(P)被写入盘#P的暂时写入道中,这一操作在时间t7结束。由于传统的设备必须等待盘转动一周来写冗余数据,所以写命令在时间t9以前不能结束。

    根据本实施例的阵列记录装置,暂时写入区与特定的写入区对应;例如,它与一个柱面对应。当对数据执行读-修改-写时,暂时写装置20将数据写入暂时写入区中,而不是写入存储原来数据的区中。从而,在盘驱动器正在转动时,没有必要等待盘驱动器转动一周以在相同的位置上写入数据。由于暂时写装置20是将要重写的数据写入暂时写入区的一个开放区中的,没有必要等待盘转动,因此,要重写的数据便能立即写入暂时写入区中。存储装置50存储用于重写被暂时写装置写入暂时区中的数据的单元信息。重写装置30根据存储在存储装置50中的单元信息将暂时写入区中写入的数据,重新写入原来的写入区中。没有必要使重写装置30的操作与暂时写装置20同步。重写装置30的操作可以在记录设备的空转状态中执行。

    根据本实施例的阵列记录装置,检测记录设备的转动位置的位置检测装置40能够检测暂时写装置20应将数据写入的暂时写入区的转动位置。暂时写装置20通过将数据写入位置检测装置40检测到的暂时写入区中的第一个开放区中,而最快地完成暂时写入操作。

    根据本实施例的阵列记录装置,存储装置50存储位置检测装置40检测到的单元信息,而重写装置30则根据存储在存储装置50中的单元信息,就在暂时写装置写入数据的位置的前面开始操作。即,重写装置30能够立即完成读操作,因为重写装置能够在用于从暂时写入区中读取数据所需的时间以前一样多的时间上开始操作。

    根据本实施例的阵列记录装置,暂时写装置20读取计算冗余数据所需要的所有数据,并将在存储的数据及计算出的冗余数据写入暂时写入区中。因此,重写装置30只须读出暂时写入区中的数据并将数据写入原来的写入区中,便能完成重写操作。

    根据本实施例的阵列记录装置,带有后备蓄电池的一个存储器或者诸如快速存储器这样的非易失性存储器用作存储装置50的存储器。因此,如果在尚未计算出与写入冗余数据时,或者在数据尚未写入原来写入的区中时,盘驱动器出现了故障,由于信息并未丢失,便有可能在故障排除后,通过参照非易失性存储器,而以故障前的状态继续计算数据或重写数据。

    根据本实施例,写操作的吞吐量提高到不带奇偶性的阵列的效率,有如上述。此外,本装置的可靠性胜过不带冗余的阵列记录装置。

    实施例2

    在第二实施例中,采用了图1中所示的命令栈14,并将对此加以说明。命令栈14为堆放来自主计算机1的多个存取的一个存储器。命令栈14能够按照优先级堆放各存取命令。主机I/F2将来自主计算机的包含中等优先级或高优先级的存取命令堆放在命令栈14中。此外,控制装置15中的重写装置30堆放包含低优先级的命令。从暂时写入区中将数据重新写入写入区的重写装置30的操作是参照第一实施例说明的。在本实施例中,重写装置并不直接重写,而是将重写命令堆放在命令栈14中。然而,由于这一命令的优先级是低的,直到没有来自主计算机1的需要盘操作的请求之前,是不执行来自重写装置30的重写命令的。重写装置30所生成的用于重写操作的存取命令并不是一条特殊的命令,只是命令将数据从暂时写入信息表中的暂时写入地址传送至写入地址而已,如图4中所示。堆放在命令栈中的多余存取命令是取决于MPU(微处理机)3及存储在存储器4中的程序的标准按照从高到低的优先级执行的。

    图6示出本实施例的一例。来自主计算机1的读命令与写命令是通过主机接口2堆放在命令栈14中的,如用箭头A所示。来自控制装置15中的重写装置30的用于重写数据的再定位命令是如用箭头B所示堆放的。所堆放的来自主计算机1的读命令与写命令是设定在高优先级或中等优先级上的。另一方面,所堆放的来自重写装置30的再定位命令是设定在低优先级上的。MPU3根据存储器4中的程序从高到低的优先级取出命令栈中的命令。取出的命令沿箭头C加载在MPU中并得到处理。

    根据本实施例的阵列记录装置,阵列控制器包括堆放来自处理设备的命令的命令栈。重写装置能通过生成重写数据与写入计算出的冗余数据的命令并将所生成的命令写入命令栈中,而完成重写处理。因此,重写装置没有必要亲自执行实际的重写操作。命令栈中的命令是依据特定的标准取出与执行的。

    根据本实施例的阵列记录装置,从重写装置输出至命令栈的命令是在处理中设置在低优先级上的。由于来自重写装置的命令的优先级低于来自处理设备的命令的优先级,可以在没有来自处理设备的存取命令时执行重写操作。

    实施例3

    前面的实施例在每一个柱面上分配一个暂时写入道。如图7中所示那样在每四个柱面上分配一个暂时写入道也是可取的。另外,在上述实施例中说明将一个道用作一个暂时写入区;但使用多个道作为暂时写入区也是可取的。写入区与暂时写入区的大小是可变的,并且它们的单位大小也是可变的,诸如一个扇区单位、一个道单位、一个柱面单位或一片盘单位。

    实施例4

    虽然所示出的是位置检测装置40利用从索引标记开始转动时间的信息来检测位置的情况,但也可利用转动位置的其它信息。例如,利用定时器16计时来检测扇区在道中的位置可用来代替图4中的暂时写入信息中的时间。除了利用定时器16之外,位置检测装置还能利用其它检测方法来检测转动位置。例如,位置检测装置生成一条对所需要的扇区前面的扇区的读命令,并接收完成这一读命令的操作的通知。完成操作的通知便可用于检测转动的当前位置。

    实施例5

    在上述实施例中陈述了利用存储在暂时写入信息中的时间所检测出的转动位置作为转动位置的情况。但从暂时写入地址中检测时间或扇区位置也是可取的。例如,可以计算出暂时写入地址的第927扇区便是从最上面的扇区算起的第三个扇区,如图2中所示。由于在图2的例中一个道包含66个扇区,可以利用公式927=66×14+3计算出第927扇区为第15道的第三扇区。类似地,用1930=66×29+16计算出第1930扇区为第16扇区。此外,利用扇区的位置可以算出时间。例如,在转动一周为17ms及一个道包含66个扇区的情况中,如图2中所示,可以计算出一个扇区所需的转动时间大约为0.25ms(17ms/66)。因此,可以用3×0.25=0.75算出暂时写入地址是在离开索引标记转动0.75ms处,因为第927扇区是从最上面的扇区算起的第三个扇区。类似地,由于第1930扇区是从最上面算起的第16个扇区,利用16×0.25ms=4.00ms可以算出第1930扇区在离开索引标记转动4ms处。

    如上所述,位置检测装置可用图4中所示的时间或者用扇区位置来检测转动位置。此外,根据地址计算扇区位置也能用于检测转动位置。

    实施例6

    下面说明与本发明相关的阵列记录装置的另一个实施例。图8示出本实施例的控制装置15的配置。本实施例中的整个配置与图1中所示的阵列记录装置相同。然而,控制装置15的配置与图1中的不同。一个暂时写装置20a暂时写入数据而不计算冗余数据。一个重写装置30a根据暂时写装置20a所写的数据计算冗余数据,并更新冗余数据。一个位置检测装置40a检测盘驱动器的转动位置。一个存储装置50a存储暂时写装置暂时写入的数据。一个同步控制装置60a从其他盘驱动器的同步起始移相应写入冗余数据盘的同步。

    图9示出同步控制装置60a的操作。同步控制装置60a将一片冗余盘#P的同步相对于盘#0至#3移相时间t。在本实施例中,设置了一片奇偶性专用盘,并且奇偶性专用盘的转动是落后于其它盘的转动的。奇偶性专用盘在转动中比其它盘落后若干个扇区。

    图10说明当同步控制装置80a使奇偶性专用盘的同步在转动中比其它盘落后若干扇区时如何更新数据。图10中的组代表冗余组。当同时更新冗余组中的四个块中的所有数据时,可从更新数据算出奇偶性。从而,不需要从这些盘中读取老数据的操作。因此,在将数据写入组1与组2的情况中,奇偶性是在写入数据的同时更新的。另一方面,在组0与3的情况中,不事先读取老数据是无法计算奇偶性的,因为只更新了一部分块,这使得操作变慢。

    在本实施例中,当暂时写装置20a判定只有冗余组中的一部分块需要更新(如组0与组3)时。则只更新相关的块,并且此时不更新奇偶性。存储装置50a存储暂时写装置20a所写的冗余组而不更新奇偶性。

    图11示出存储装置50a存储在存储器中的一个奇偶性更新信息表。如图10中所示,由于在更新组0与3的数据时不更新奇偶性,在奇偶性更新信息表中将这两个组登记为更新前奇偶性组。

    重写装置30a检验存储装置50a所存储的奇偶性更新信息表中的标志,以找出一个更新前奇偶性组。当重写装置30a检测到一个更新前奇偶性组时,计算有关冗余组中的奇偶性并将其写入奇偶性专用盘中。在更新了奇偶性的情况中,重写装置30a改变奇偶性更新信息表中的标志以表示奇偶性已经更新。已经更新了奇偶性的组在奇偶性更新信息表中的信息被删除或者用新的数据改写。

    在重写装置30a更新奇偶性时,必需读取冗余组的各块中的数据。例如,为了更新图10中组0的奇偶性,必须读取块0、1、2、3中的数据。这一读操作的定时是由位置检测装置40a确定的。如上面的实施例中所述,位置检测装置是用多种方法检测盘的转动位置。重写装置计算需要用图11中所示的奇偶性更新信息表中的时间更新奇偶性的组的位置,并且例如在组0的位置刚要到来之前生成一条读命令。

    图12为本实施例的定时图。传统上,读命令是在时间t1生成的,而奇偶性则是从已读取的数据与要写入的数据中生成的。然后,盘转动一周以后,即在时间t5,将数据写入。然而,在本实施例中,用于待写入的数据的写命令是在时间t1生成的,并在t2完成写操作。因此,便有可能在t2与t4之间的时间中执行其它的处理。重写装置30a根据图11中所示的时间及位置检测装置40a所检测到的盘转动位置,在时间t4生成读命令。奇偶性是从时间t4与t5之间读取的数据生成的,而写命令则是在时间t5生成的。然后在时间t6处完成命令。

    在定时图中示出的时间t4与t5之间的时间t对应于图9中所示的同步控制装置60a为奇偶性专用盘移相的时间t。因此,时间t为重写装置30a生成读命令的时间至计算出奇偶性与生成写命令的时间之间的一个时间间隔是合适的。在本实施例中,如图11中所示,用时间来表示检测的位置。如前文中的实施例中所述利用扇区位置,或者根据冗余组的号码来计算扇区位置也是可取的。重写装置30a能够直接执行更新奇偶性的操作。此外,生成用于读取冗余组中的数据,计算奇偶性及更新奇偶性的重写命令,并将这一命令输出到命令栈14也是可取的。

    根据本实施例的阵列记录装置,记录设备之一用作存储冗余数据的一个冗余设备。当暂时写装置20a将数据写入记录设备中时,暂时写装置20a将数据写入记录设备而不计算冗余数据。重写装置30a根据存储在存储装置50中的、暂时写装置20a所写的数据的单元信息读取数据,并将从读出的数据中算出的冗余数据存储在冗余设备中。这一重写装置30a的操作不是与暂时写装置20a的操作同步的。

    根据本实施例的阵列记录装置,冗余设备的转动相位是从除该冗余设备外的其余记录设备的转动相位移相的。重写装置在两种转动相位的时间差中计算冗余数据。从而,把冗余设备中与记录设备的转动相位之间的时间差作为重写装置30a读取数据与计算冗余数据所需要地时间便足够了。传统上,必须等待转动一周来写入冗余数据,然而如上所述,将冗余设备的转动相位进行移相,便能以高速度完成写入冗余数据。

    实施例7

    在上述第六实施例中,更新前奇偶性组是登记在奇偶性更新信息表中的。事先令奇偶性更新信息表中的每一个组只有一个标志也是可取的,如图13中所示。标志段中的“0”表示该组的奇偶性未曾更新。例如在图13中,冗余组中的组0与3的标志为“0”,表示组0与3的奇偶性尚未更新。重写装置30a根据奇偶性更新信息表中的标志执行更新组0与3的奇偶性的操作。

    实施例8

    参照实施例6说明从其它盘的同步移相奇偶性专用盘的同步的情况。在本实施例中,将说明由于故障而换盘时在一片新的恢复盘上恢复数据的情况。

    如果如图14中所示,盘#2被损坏而连接上一片恢复盘时,便有必要读取盘#0、#1、#3、#P的数据来恢复盘#2的数据。同步控制装置60a将盘#2的同步从其它转动中的盘的同步移相时间t。在恢复被损坏的数据的情况中,数据的读命令是根据位置检测装置所检测到的位置正好在各冗余组的前面生成的,并且一个读操作、恢复数据、生成对恢复盘的写命令是在时间t中执行的。从而,更新被损坏盘后的恢复操作的效率得以提高。

    根据本实施例的阵列记录装置,提供了在一个记录设备故障时更换与恢复该故障记录设备的一个恢复设备。由于恢复设备的转动相位是从除恢复设备外的其余记录设备移相的,重写装置便能在转动相位的时间差中根据从记录设备中读出的数据计算出恢复数据,及将计算出的恢复数据写入恢复设备中。

    根据本实施例的阵列记录装置,根据通过检测恢复盘的转动位置而检测到的转动位置,重写装置确定从记录设备读出数据与生成恢复数据的时间。

    实施例9

    下面说明与本发明相关的阵列记录装置的另一个实施例。

    图15示出本实施例的阵列记录装置的一例。图15中的CO、C1、C2…C4分别是为各盘驱动器#0、#1、#2…#4设置的高速缓冲存储器。

    图16为图15中所示控制装置15的方框图。一个暂时写装置20b写数据而不写数据时计算奇偶性。一个重写装置30b计算与写冗余组的奇偶性,暂时写装置只是写入冗余组而不更新其奇偶性的。一个存储装置50b存储暂时写装置所写的不带奇偶性的冗余组。一个同步控制装置60b同步所有转动中的盘驱动器。

    图17说明本实施例的操作。组1与2示出冗余组中所有的块被更新的情况。因此,可以不读老数据而生成奇偶信息。从而,当为组1或组2这样的情况生成读命令时,在计算冗余数据后立即写入数据。另一方面,在组0或组3的情况中,当数据需要更新时,必须读取老数据。然而,即使在组0或3的情况中,暂时写装置20b也只能写数据而不更新奇偶性。然后,当暂时写装置20b写入不带奇偶性的数据时,存储装置50b在奇偶性更新信息表中存储有关该组的信息,如图18中所示。

    例如,考虑图17中的组0,所存储的是已经写入数据的一个逻辑地址3及隶属于组0的逻辑地址。如图18中第一行中所示。标志#3表示盘#3的数据已经写入。标志#4表示盘#4是用于存储冗余组的奇偶性的一个区域。时间表示存储冗余组的一个位置。

    考虑组3,所存储的是,地址12与13已更新成逻辑地址,并且这些地址属于组3。标志#1表示盘#1为一片奇偶性盘。标志#2与#3表示盘#2与#3的数据已被更新。时间表示组3所在的位置。图18中的奇偶性更新信息表明存储在存储器中的,并且该存储器是非易失性的。

    各盘驱动器是由同步控制装置60b同步地转动的。定时器16根据各盘驱动器的主轴同步信号测定时间。位置检测装置40b检测各盘的转动位置。当暂时写装置20b指示完成写数据时,存储装置50b将数据的位置存储在图18的时间段中。

    重写装置30b参照奇偶性更新信息表来更新奇偶性。首先,重写装置30b选择一个登记在奇偶性更新信息表中的组。然后,重写装置30b为该组中的标志示出为0的盘生成一条预取该冗余组数据的命令。预取命令请求事先从图15中的盘驱动器中的实际写入区中将数据读出到高速缓冲存储器中。得到预取命令的各盘驱动器将数据制备在该盘驱动器的高速缓冲存储器中。

    例如,考虑图18中组0的情况,由于盘#0、#1、#2的标志为0,重写装置30b为这三个盘驱动器生成的预取命令。得到预取命令的盘驱动器#0、#1、#2在各高速缓冲存储器C0、C1、C2中制备组0的数据。当数据制备在高速缓冲存储器中时,盘驱动器指示预取命令已完成。当重写装置30b接到预取命令完成的指示时,在奇偶性更新信息表中将有关标志从0更新为1。关于对应于盘#3的标志,它已经是1,因为写入的数据保持在刚才写入数据的盘#3的高速缓冲存储器C3中。

    根据上述操作,重写装置30b为未写入的盘执行预取命令,并将冗余组的所有数据制备到高速缓冲存储器中。

    接着,重写装置30b执行计算冗余组0的奇偶性的操作。将奇偶性更新信息表中的时间与位置检测装置算出的盘的转动位置进行比较。正好在待写入奇偶性的位置的前面生成读命令。由于数据已经制备在高速缓冲存储器中,它能够立即被读出,并且根据读出的数据生成与写入奇偶性。

    图19为本实施例的定时图。传统上,老数据是在时间t1读入的,在时间t5计算奇偶性及写入计算结果。另一方面,在本实施例中,暂时写装置20b在时间t1生成写命令并且写操作在时间t2完成。此时,存储装置50b将未更新奇偶性的一个组登记在奇偶性更新信息表中。重写装置30b在时间t2与t4之间生成预取命令。其它处理是在未占用的时间中执行的。用于计算奇偶性的读命令是在时间t4生成的,而奇偶性则是在t4与t5之间的时间中计算的。关于在时间t4的读命令,由于预取命令已将要从盘中读出的数据制备在高速缓冲存储器中,可以无需等待盘转动而将数据读出,因此能以高速得到数据。用于写计算出的奇偶性的写命令是在时间t5生成的而写操作则在时间t6完成。在本实施例中,t4与t5之间的时间(即t)足够用来读取高速缓冲存储器中的数据及生成奇偶性,在短时间内便结束这一时间。如上所述,重写装置30b本身去更新奇偶性或者将一条更新奇偶性的命令输出到命令栈14都是可取的。

    根据本实施例的阵列记录装置,在记录设备中包含高速缓冲存储器。用于计算冗余数据的数据是预取进高速缓冲存储器中的。冗余数据是在高速缓冲存储器中准备好数据时计算的。由于计算冗余数据所需的数据已在记录设备的高速缓冲存储器中,所以重写装置能够立即取得必要的数据来计算冗余数据。

    根据本实施例的阵列记录装置,冗余数据应当写入的位置是事先由位置检测装置检测出的。重写装置的操作开始时间是刚好在冗余数据应当写入的位置前面。冗余数据是在完成计算它的同时存储在冗余设备中的。

    实施例10

    图18中示出了一张奇偶性更新信息表;其它用于存储信息的系统也是可取的。作为奇偶性更新信息需要:(1)一个逻辑地址号,(2)该组的奇偶性盘的一个盘号,(3)从主轴的同步信号开始用时间表示的数据位置,(4)组中写入数据的一个盘号,以及(5)在对盘的预取完成时未写入与记录的盘的一个号码。然而,存储它们的任何格式都是可取的。信息(1)至(5)可用其它信息代替。只要信息(1)至(5)能够从其它信息中计算出或得出,便没有必要存储信息(1)至(5)。

    实施例11

    下面说明与本发明相关的阵列记录装置的另一实施例。

    图20示出根据实施例11的控制装置15的内部配置。其它部件与图1(实施例1)中所示的部件相同。

    在图20中,一个初始化装置70初始化盘的写入区。一个写装置80将数据写入初始化后的块中。一个存储器更新装置90存储已被初始化装置70初始化或者已被写装置写入数据的各块的状态。

    图21说明本实施例的动态映射的概念。如图21中所示,在本实施例中,盘中的写入区是分成多个区的。第一分区定义为区0,第二个定义为区1。图中各块中的每一号码表示块号。阴影块表示已被数据占用。不带阴影的块表示该块在初始状态中,其中由初始化装置存储了00(零码)。

    下面说明将新数据写入这些写入区的情况。当要将新数据写入块1与块0时,由于块1中已经写入了其它数据,所以新数据不能写入它们。作为替代,将数据写入区1的块20与块21,它们对应于区0的块0与块1。在写入新数据时,没有必要事先读取老数据与奇偶性,因为块20与21是在初始状态中的。从而,在将新数据写入区1的情况中,只须生成写命令便能完成处理。存储器更新装置90将数据写入另一块中,而不是数据原来应当写入的块中。

    图22进一步说明动态映射的概念。

    在写入新数据时,如果数据原来应当写入的块在使用着,则检测另一区中的另一块用于写入。检测这一地方的标准是找出无须事先读出老数据的一个地方。即,无须事先读出老数据的情况意味着所有隶属于该冗余组的块都已初始化的情况。初始化装置70事先用00(零码)初始化盘驱动器的全部写入区。当写装置80得到数据应写入的冗余组已经不在初始状态的信息时,写装置检验与各区对应的冗余组以检测出在初始状态中的冗余组,并将数据写入检测到的冗余组。

    图23示出存储在本实施例的存储器中的块地址控制表的一例。这一块地址控制表是分区数为4的情况,即分成的写入区的数为4。块地址的数目是与整个写入区中的所有块的数目一样多的。写入区位表示实际数据写入的各块地址的一个区。由于在本例中区数为4,两位的写入区位足以表示实际数据写入的区。

    在图21中所示的,原来要写入区0的块0与块1的数据被写入了区1的块20与块21的情况中,块地址00的写入区位被从00更新到01。块地址01的写入区位也被从00更新到01。使用标志表示该块是否用于存储数据。1表示正在使用而0则表示尚未使用。在本例中,块地址00的使用标志不变,另一方面,块地址01的使用标志从1改变到0,因为新数据是写入块地址21中的,这意味着原来的数据不在块地址01中。0标志段表示块中的数据是否都是00。0标志段中的0表示00,而0标志段中的1表示存储还有00以外的数据。由于在本例中,新数据是写入块20与21中的,块20与21的0标志被从0更新到1。传统上,动态映射的单元可以在任何地方,这导致地址控制表太大。然而,如本实施例所示,通过将写入区分成多个区,将动态映射限制在对应区的块中并写入数据,可以减小控制表的大小。

    例如,假定每一片盘的块数为1M(兆),在设备中有五片盘时块数成为5M。假定在上述情况中允许自由映射,则块地址控制表需要20MB(兆字节)的存储器。然而,在本实施例中通过划分区域,可以减少存储器。例如,将5M个块分成64个区,并将映射变换限制在区中的对应块中,写入区位需要6位,然而传统上它却需要23位。存储器可以是50000h×1字节=5MB。如上所述,存储量可减少到四分之一,从20MB到5MB。

    块地址控制表是由存储器更新装置90更新的。当数据应当写入的地方被写装置更新时,写入区位、使用标志及0标志被更新。在删除数据时,存储器更新装置90还将使用标志从1更新到0。被初始化装置70初始化时,存储器更新装置90将0标志从1更新到0。

    初始化装置70事先执行将所有盘区为00的操作。如果初始化后的块不断地消耗或者被写装置所用掉,初始状态的冗余组的数目逐渐地减小。因此,初始化装置参看使用标志来检测已被删除的数据。当存在被删除的数据时,初始化装置检测使用标志为0而0标志为1的块,然后,初始化检测到的块。这样,当初始化装置保持周期性地或不时地初始化不使用的或被删除的区时,写装置80便有可能不断地检测到初始化的块。

    当在对应区中检测不到初始化的冗余组时,则可以事先从数据原来应写入的区中读出数据,并且可以执行计算与重写冗余数据的操作。因此,即使在写装置80检测不到初始化的冗余组时,也不会出现问题。

    根据本实施例的阵列记录装置,所有的写入区都是已经事先初始化了的,并将初始化后的写入区分或特定的数目,所以数据总是写入初始化后的区中的。当数据应当写入的区中已有数据时,便在分区中检测一个对应的区。然后,将数据写入检测到的初始状态中的区中。从而,由于要写入的数据总是初始状态的,便没有必要计算冗余数据。然而,由于在写入数据时频繁地出现区域替代,故存储器要存储替代区。如上面在相关技术中所阐明的,在允许自由映射变换时,由于存储器变大而将写入区分成多个区的,存储器并不存储替代块的地址而存储替代分区,因此存储的数据量得以减少。由于为写入而检测的存储区是初始状态的区,所以在存储器中存储的是表示该块是否在初始状态中的信息。

    根据本实施例的阵列记录装置,当将数据写入上述初始状态中的块中时,初始化装置初始化不在使用的块,以免初始化状态中的块用光。然后,为了再次使用该块,将信息更新为在初始状态中以表示该块已被初始化装置初始化。

    如上所述,本实施例的一个特征是通过将数据写入盘的一个开放区中而减少用于写处理的时间。其目的在于通过在一定程度上限制地址变换区而减少控制表的存储量,从而降低成本。

    实施例12

    下面说明本发明的阵列记录装置的另一个实施例。

    图24展示本实施例的控制装置15的配置。在本实施例中,受控制的存储区是分成一个正常数据区及暂时写入区的。一个初始化装置70c初始化暂时写入区。

    一个暂时写装置20C将数据写入由初始化装置70C初始化的暂时写入区中。一个重写装置30c将暂时写装置20c写在暂时写入区中的数据重新写入原来的写入区中。一个位置检测装置40C检测盘的转动位置。一个存储装置50c存储关于暂时写装置所暂时写入的数据的信息。

    图25示出本实施例的操作。在更新组1的盘#0、#1、#3、#4的情况中,传统上需要事先读取老数据并在生成奇偶性后重写。然而,在本实施例中,由于已经事先准备好了暂时写入区并且初始化装置70c已将暂时写入区初始化成00(零数),暂时写装置20c便可将数据写入初始化的暂时写入区而不计算其奇偶性,即整个过程只须一条写命令来完成。从而,在组1中写入数据的情况中,通过将该组的数据写入暂时写入区中的区1中,可以省略事先读取数据。

    图26示出在暂时写装置将数据写入暂时写入区时,存储装置50c存储在存储器中的暂时写入信息表的一例。这一存储器是非易失性的。以便在出现故障时不丢失数据。暂时写入信息表中提供与各区对应的标志与数据地址。标志为1的情况表示暂时写入区中的对应区已被使用。在标志为1的情况中,数据原来要写入的地址是写在数据地址中的。由于在本实施例中组1的数据是暂时写入区1中的,在本实施例中,标志成为1并将组1的地址作为数据地址写入。如图25中所示,区2与区3的暂时写入区尚未使用,所以标志为0而未写入数据地址。

    重写装置30c参看暂时写入信息表以检测标志是否为1。检测到标志为1后,重写装置30c检测有关的区的对应数据地址,并将有关的区中的数据重新写入检测到的数据地址。当重写装置完成重新写入数据时,标志再度变成0。

    由于在标志为0并且数据地址已被写入后,初始化装置70c判定重写已完成,所以初始化装置70c再次初始化暂时写入区。因此,被初始化装置70c初始化的暂时写入区便可再次被暂时写装置20c使用。重写装置30c的重写操作可由重写装置30c自己来执行,或者将重写命令输出到命令栈14也是可取的。

    根据本实施例的阵列记录装置,暂时写装置20c只将要存储的数据直接写入暂时写入区中,而其它实施例的暂时写装置则是在计算冗余数据后将在存储的数据及冗余数据写入暂时写入区中的。因此,本实施例的暂时写装置20c并不计算冗余数据。即,无须读出写入区中的数据,而只将写命令给出的数据写入暂时写入区中。当然,这一暂时写入区是已经事先被初始化装置初始化了的。因此,在将数据写入初始化的暂时写入区的情况中,由于可以不计算冗余数据而写入区数据,只须执行写入处理便够了。重写装置读取暂时写入区中的数据及写入区中的数据以计算冗余数据,并将计算出的冗余数据写入写入区中。重写装置的操作是不与暂时写装置的操作同步的。

    实施例13

    上面已经参照实施例12说明了图26中所示的所采用的暂时写入信息表的情况。采用另一种如图27中所示的暂时写入信息表也是可取的。图27的暂时写入信息表的特点是具有一个时间段。初始化装置70c在系统起动时初始化暂时写入区并同时事先设定暂时写入信息表中的时间。例如,在暂时写入区中的区1是位于索引标记的顶部而区2、3、4是依次序定位的情况中,以时间先后表示各区的位置的时间是设定为如图27中所示的。即,区1为0.00ms,区2为0.25ms,区3为0.50ms等等,是事先设定在时间段中的。

    当暂时写装置20c将数据写入暂时写入区中时,暂时写装置20c检查设定在暂时写入信息表中的时间,以从该暂时写入信息表中检测出在暂时写装置已准备好写数据时最接近的、并且是在初始状态中的一个暂时写入区。然后,暂时写装置20c将数据写入检出到的区中。

    重写装置30c参看暂时写入信息表中的时间,并在从暂时写入区中读取数据的最佳时刻生成对暂时写入区的读命令,该最佳时刻正是根据所参看的时间与位置检测装置40c所检测的盘的转动位置的比较结果所确定的重写数据的时刻。因此,重写装置从暂时写入区的读操作是以没有浪费等待转动时间的高速度执行的。

    实施例14

    下面参照图28说明与本发明相关的记录装置的另一个实施例。在该图中,设置了一台主计算机1。一个控制器13a与主计算机相连。一个盘驱动器9与控制器13a相连。在控制器13a中设置一个高速缓冲存储器4A。在控制器13a中还设置一个比较装置90。数据91、92、93被分别存取与处理。

    其操作如下。主计算机1对盘驱动器的控制器存取一个特定单位大小的读/写。在本例中,对控制器的存取是以4KB为单位执行的。取决于来自主计算机的4KB读命令,控制器13a也以特定的单位存取数据与读出数据,这一单位是在事先定义在控制器13a与盘驱动器9之间的。例如,这里采用1KB作为一个单位执行读操作。控制器13a采用1KB作为单位从盘驱动器9读出数据A、B、C、D,并将数据存储在高速缓冲存储器4a中。将总共4KB的读出数据A、B、C、D传送给主计算机1。主计算机1更新读出的数据。例如,主计算机1将数据B更新成数据X。然后,主计算机生成将4KB的数据A、X、C、D写入盘驱动器9的重写命令。控制器13a接收来自主计算机1的重写命令。比较装置90将存储在高速缓冲存储器4a中的数据与重写命令从主计算机1送来的数据A、X、C、D进行比较。比较是以控制器13a与盘驱动器9之间的存取单位1KB执行的。当比较装置13a判定只有B被更新成X而其余A、C、D未更新时,比较装置90请求盘驱动器9只更新数据X。虽然在每台盘驱动器上受到的命令是来自主计算机1的4KB单位的一条写命令,根据上面所述,比较装置90只取出更新的部分并且只执行被更新的数据的写命令。从主计算机1送来的数据A、X、C、D中的数据A、C、D被忽略并在控制器13a处将其丢弃。

    根据本实施例的盘驱动器,通过利用主机的存取单位与记录设备的存取单位之间的差别,只有最少数量的数据在记录设备中被更新。通常,主机的数据存取单位大于普通记录设备的存取单位。因此,当高速缓冲存储器中存储有由多个存取单位组成的从记录设备中读出的数据时,并当主机所修改与重写的只是一部分读出数据时,比较装置通过比较只检出更新部分,然后只将被更新的数据写入记录设备。即,即使主机生成的所有的数据的写命令,实际上写入记录设备的只是被更新的数据。

    如上所述,由于没有必要写入主计算机送来的写数据中的无须更新的部分,写处理能以高速完成。

    实施例15

    图29示出与本发明相关的记录装置的另一个实施例。该阵列记录装置与实施例14的差别在于它包括多个盘驱动器。一个阵列控制器13b包括与各盘驱动器9a、9b、9c、9d相对应的通道控制器8a、8b、8c、8d。如上所述,一个比较装置91将存储在高速缓冲存储器4a中的尚未更新的数据与来自主计算机的写命令所送来的数据,分别以1KB的单位进行比较。当比较后出现不同数据时,比较装置91对通道控制器生成一条与这些数据相对应的数据更新命令。由于在本例中盘9b的数据已从B更新到X,所以只对通道控制器8b生成写命令。通道控制器8b将数据X写入盘驱动器9b中。其它数据A、C、D被忽略并在阵列控制器13b中被丢弃。

    根据本实施例的盘驱动器,阵列记录装置是由记录设备组组成的,各记录设备以块为单位存取数据,而主机以多个块为单位存取数据。从而,根据比较装置的比较结果,只更新被更新的那些块。

    实施例16

    图30示出与本发明相关的记录装置的另一个实施例,其中在每个通道控制器中有一个比较装置。各通道控制器分别包括一个高速缓冲存储器4a、4b、4c、4d。比较装置将存储在高速缓冲存储器中的读自各盘驱动器的数据与来自主计算机1而由阵列控制器13c分送至各盘的写命令的数据进行比较。由于在本实施例中数据B已被更新成数据X,当通道控制器8b的比较装置91b检测到数据中的差别时,比较装置91b便请求盘驱动器9b写入数据X。通道控制器8a、8c、8d中的比较装置91a、91c、91d检测出高速缓冲存储器中的数据与要写入的数据相同。这时,不向盘9a、9c、9d生成写命令。

    根据本实施例的盘驱动器,高速缓冲存储器是对应于记录设备设置的,而是否需要更新数据是以记录设备为单位判定的。

    虽然在实施例中不是具体地对某一种记录设备阐述的,一种磁盘驱动器、一种激光盘驱动器、一种紧致盘驱动器或诸如此类都可用作记录装置。一起使用不同种类的记录装置也是可取的。

阵列记录装置的改进型记录装置及方法.pdf_第1页
第1页 / 共84页
阵列记录装置的改进型记录装置及方法.pdf_第2页
第2页 / 共84页
阵列记录装置的改进型记录装置及方法.pdf_第3页
第3页 / 共84页
点击查看更多>>
资源描述

《阵列记录装置的改进型记录装置及方法.pdf》由会员分享,可在线阅读,更多相关《阵列记录装置的改进型记录装置及方法.pdf(84页珍藏版)》请在专利查询网上搜索。

本发明涉及能减少写入时间的一种阵列记录装置。各种设备用于写入不带冗余数据的数据并在空转时间中更高效地更新冗余数据。在一个实施例中,为每个柱面设置了一个暂时写入道。在读取、更新、与重写数据时,数据是写入暂时写入道中的。由于重写不需要盘转动整个一周,故迅速即发生写入过程。暂时写入道中的数据是在空转状态中不需要同步重定位进盘中的。此外,数据区中的对应块可用于写入数据而不是指定的暂时写入道。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1