具有可重新配置的数据通路的盘阵列控制器的制作方法

文档序号:6755317阅读:182来源:国知局
专利名称:具有可重新配置的数据通路的盘阵列控制器的制作方法
技术领域
本发明涉及数字数据存储系统,并更特别地涉及用于数字数据存储和检索的盘阵列控制器技术的改进。


图1是提供了用于与主机总线相交互的主机接口和用于与多个所连接的盘驱动器相交互的驱动器接口的盘阵列控制器的简化的框图。
图2A是说明了在逻辑数据端口和物理数据端口之间的直接连接的概念图;并且它示出了相应的映射寄存器的内容。
图2B是说明了将四个逻辑端口分配给可用的五个物理数据端口的一个示例的概念图;并且它示出了相应的映射寄存器的内容。
图2C是说明了双驱动器阵列的概念图,其中每一驱动器被分配给五个可用的物理数据端口中的一个;并且它示出了相应的映射寄存器的内容。
图2D是说明了单驱动器系统的概念图,其中逻辑端口0-3将连续循环上的数据转移到物理端口#3;并且它示出了相应的映射寄存器的内容。
图3A说明了在图2A的驱动器配置中在写盘方向的XOR逻辑;并且它示出了相应的映射寄存器的内容。
图3B说明了在用于除了连接于物理端口2的驱动器现在已失效之外与图2A和3A相同的数据通路的读盘方向的XOR逻辑;并再次示出了映射寄存器的内容。
图4是映射寄存器结构的一个示例;所述映射寄存器在阵列控制器的一个实施例之中控制在逻辑和物理数据端口之间的数据通路的配置。
图5A是逻辑端口#1读数据通路中的多路复用器电路的概念图。
图5B说明了阵列控制器的一个实施例中的读盘XOR逻辑。
图6说明了阵列控制器的一个实施例中用于映射寄存器的逻辑端口#1(PP L1)字段的解码器逻辑。
图7A说明了阵列控制器的一个实施例中的从逻辑端口到物理端口的数据通路逻辑(仅对于物理端口#2而说明)。
图7B说明了阵列控制器的一个实施例中的写盘XOR逻辑。
图8说明了用于启用到当前所选择的阵列的全局访问命令的盘地址、选通脉冲和芯片选择逻辑。
图9说明了用于与逻辑驱动器关联的中断信号逻辑。
图10说明了逻辑寻址的硬件实现。
具体实施例方式
映射寄存器用于小型计算机系统的典型的RAID控制器包括到主机系统的接口和到驱动器阵列的接口。图1是提供了用于与主机总线12相交互的主机接口16和用于与多个所连接的盘驱动器14相交互的驱动器接口22的盘阵列控制器10的简化的框图。所述的控制器优选地包括控制处理器20和用于临时存储在主机总线和驱动器之间移动的数据的缓冲存储器18。
需要物理端口用于连接例如盘驱动器的海量存储设备到系统。虽然一些接口能够支持到多个设备的并行数据传输,但物理端口易于成为瓶颈。出于此原因,如图2A所示,高性能RAID控制器对应每一海量存储设备可以有一个物理端口。图2A也示出了相应的映射寄存器24的内容,以下参考图4进一步描述了该内容。
RAID的性能优点之一来自于跨阵列的驱动器划分数据。例如,同时从四个驱动器读数据得到四倍于单个驱动器传输速率的提高。对于图2A中示出的示例,将从四个驱动器得到的十六位数据按逻辑驱动器的顺序合并于发送到缓冲器(图1中的18)的六十四位数据之中。用户数据被划分,即,以预定顺序跨驱动器阵列将用户数据同时分发成段(如16位的字)。我们识别此顺序为始于逻辑驱动器#0并继续直到逻辑驱动器#n-1,其中n是阵列中的驱动器的数量。重复这种划分顺序,以使用户数据的第k段对应于逻辑驱动器(k模n)。以此方式,我们使用逻辑驱动器编号来反映划分顺序。因此,在附图中,四个“逻辑端口”的栈简单地指明了一次划分的一组已排序的四个段。每一“逻辑端口”对应于此次划分的单一段,并且全部栈对应于一组已排序的四个段。
来自每一驱动器的100MBPS的传输速率成为了到缓冲器的400MBPS的传输速率。虚线框26概念地表示了稍后详细描述的数据通路开关。该数据通路开关26提供了在逻辑数据端口和物理数据端口之间可动态配置的数据通路。
具有在逻辑数据端口和物理数据端口之间的直接连接的图2A仅是概念图。在实际应用中,可用的物理数据端口的数量将大于逻辑数据端口的数量。可存在被保留作为“热备份(hot spare)”的端口,或者可将物理端口分组为独立访问的不同子阵列。图2B是将四个逻辑端口(逻辑端口#0到逻辑端口#3)分配给可用的五个物理数据端口(物理端口#0到物理端口#4)的一种可能的分配的示例。例如,大箭头30简单地表明将逻辑端口#1分配给物理端口#2。图2B也示出了相应的映射寄存器24的内容。这里,寄存器中的右边第二个字段对应于逻辑端口#1,并且它包含的值“2”指明了如箭头30所指明的物理端口#2。如稍后所完整描述的,数据通路开关26实现了逻辑端口到物理端口的分配。
图2C示出了双驱动器阵列的示例,其中每一驱动器被分配给五个可用的物理端口中的一个,即物理端口#1和物理端口#2。为了组装缓冲器中的64位的字,必须读每一16位的驱动器两次。在第一次读时,逻辑端口#0和#1的数据分别从物理端口#2和#1获得。在第二次读时,逻辑端口#2和#3分别从物理端口#2和#1获得数据。由处理器20协调这些操作。再一次地,映射寄存器示出了对物理端口#1和#2的分配。
图2D示出了带有连接到物理端口#3的单一驱动器的阵列的示例。对于此配置,通过读同一物理接口四次获得逻辑端口#0到#3的数据。
美国专利号6,018,778中描述的“同步冗余数据传输(Synchronous Redundant Data Transfers)”的特征之一在于,它允许“在传输过程中(On-The-Fly)”处理冗余数据,如美国专利号6,237,052中所描述的。图3A示出了图2A的四驱动器阵列,加上用于计算存储在连接于物理端口#4的驱动器上的冗余数据图形的逻辑36。尽管各种算术和逻辑运算可能被用于产生冗余图形,但在来自逻辑数据端口的数据的相应位之间的逻辑XOR相对于算术运算而言具有如下优点XOR运算不必传递进位。由于使用了XOR,经常将第五驱动器称为“冗余”驱动器或“奇偶”驱动器。
附图中示出的16位宽的总线XOR相当于十六个XOR门,每一XOR门具有四个输入。如图3B中所能够看出的,对XOR函数的使用在读盘和写盘操作之间也是非常对称的。图3B示出了与图3A中所定义的相同的四驱动器阵列,其将数据通路40、42等示出为读盘方向。在这种情况下,连接于物理端口#2的驱动器已失效。因此,用虚线示出不起作用的相应的数据通路44。跨来自其余的数据驱动器(物理端口#0、#1和#3)以及来自冗余驱动器即物理端口#4的数据而计算XOR函数。这种计算重构了存储于失效驱动器之上的数据,并通过数据通路46将结果引导到逻辑端口#2,代替来自失效驱动器的现在不可用的数据。
前述段落说明了在RAID控制器中的一组逻辑端口和一组物理设备端口之间可能存在的各种关系的一些示例。一般而言,使高性能的RAID控制器处理由连接于它的物理端口的海量存储设备的各种子组所构成的多个阵列。如以下进一步所解释的,本发明的一个方面使用了新颖的映射寄存器以及关联的逻辑,以启用存储设备阵列的软件配置并提高性能。
根据本发明的一个实施例,在图4中示出其结构的映射寄存器24控制逻辑和物理数据端口之间的数据通路的配置。(映射寄存器也提供了稍后讨论的其他特征和优点。)在此实施例中,映射寄存器由五个字段组成,每一字段用于在此示例中为L0-L4的五个逻辑数据端口中的一个。将所连接的物理数据端口号装载到寄存器中的每一逻辑数据端口的相应字段中。将逻辑数组端口0的字段中的数据符号表示为PP_L0,PP_L0表明它是与逻辑端口0相关联的物理端口。其后四个字段的值被分别识别为PP_L1、PP_L2、PP_L3和PP_L4。第五个逻辑数据端口是伪端口。PP_L4值被用于为奇偶驱动器分配物理数据端口。
映射寄存器字段能够是几乎任意大小的。例如,八位字段将支持大到256个物理端口的阵列。在说明性的实施例中,仅有五个物理端口,三位的字段就足够了。将五个字段精密地压缩于十六位的寄存器中,并使在附图中标记为“r”的位空闲,用于“保留”。能够使用任何类型的非易失性存储器存储映射寄存器信息。
为说明对映射寄存器的使用,我们将简要地回顾迄今为止所述的每一配置。在图2A中,注意示出了映射寄存器24。PP_L0的值为0,表明了逻辑数据端口#0连接于物理端口#0。下三个值为1、2和3,表明了下三个逻辑数据端口连接于下三个物理数据端口。PP_L4的值为7。在此示例中这不是合法的物理端口号码。值“7”被用于表明在此配置中没有奇偶驱动器。所选择的特定值不是严格的,只要它不是实际的物理端口号码。
再次参考图2B,存储于映射寄存器之中的值表明物理数据端口1、2、4和0分别支持逻辑端口0到3。再一次地,“7”表明未使用奇偶驱动器。
图2C示出了配置用于双驱动器阵列的映射寄存器。注意,逻辑数据端口#2和#3与逻辑端口#0和#1关联于相同的物理端口。前两个逻辑端口在第一物理端口循环中传输数据,而后两个逻辑端口在第二物理端口循环中传输数据。
图2D示出了配置用于单一驱动器情况的映射寄存器。逻辑端口#0到#3将连续循环中的数据传输到物理端口#3。图2的所有变种都是独立于冗余数据逻辑而示出的不同的数据通路配置。
图3A示出了对于与图2A相同的数据驱动器配置的在写盘方向的XOR逻辑。对来自所有四个逻辑数据端口的数据上计算XOR。将结果存储在连接于映射驱动器的逻辑端口#4字段中所规定的物理端口的驱动器上。在此示例中,PP_L4具有值“4”而不是“7”,表明存在奇偶驱动器,且其连接于端口#4。
图3B示出了对于除了连接于物理端口#2的驱动器现在已失效之外与图2A和3A相同的数据通路的在读盘方向的XOR逻辑。用“5”替换逻辑数据端口2的字段PP_L2的内容。合法的物理端口号码是0到4。“5”是用于表明驱动器已失效的保留值。访问伪物理端口号5的任何逻辑数据端口将从XOR的输出获得它的数据。
数据通路开关在前述的讨论中,我们已说明了被装载到映射寄存器的字段中的四个值可以被用于表示四个逻辑数据端口以及连接到5个物理端口的1、2或4个驱动器阵列之间的所有可能的配置,所述驱动器阵列可能有也可能没有冗余驱动器;以及,对于带有冗余驱动器的阵列,可能有也可能没有失效的驱动器。下面将描述怎样将映射寄存器的内容用于配置硬件部件和数据通路。换句话说,以下的讨论提供了数据通路开关26的当前优选的实现的细节,以及怎样由映射寄存器内容配置它。
现在参考图5A,四个逻辑数据端口中的每一个必须能够从五个物理数据端口中的任一个接收数据,或在存在失效驱动器的情况下从读盘XOR接收数据。由于有六种可能的数据源,每一物理数据端口具有相应的十六位宽的六到一的多路复用器50。在图5A中示出了逻辑端口1的多路复用器50,而其他的(逻辑端口#0、#2和#3的)多路复用器都是相同的。多路复用器的选择器或“S”输入连接于映射寄存器的逻辑端口#1字段-“PP_L1”。PP_L1的值0到4分别选择来自物理端口#0到#4的数据,而值“5”选择读盘XOR的输出。
图5B示出了读盘XOR逻辑52。读盘XOR逻辑52是五路输入XOR电路,在优选实施例中为十六位宽(对应于所连接的盘驱动器的数据通路)。(这等同于分别具有五路输入的十六个XOR。)通过相应的也为十六位宽的AND门,例如AND门54,逻辑地限定或“选通”五路输入中的每一路。(这等同于分别具有两路输入的十六个NAND门。)通过相应的五个物理端口选择信号PP0_SEL到PP4_SEL而限定五个NAND门。以下将描述这些信号的生成。
到每一物理端口的数据通路可以来自四个逻辑数据端口中的任一个,或来自写盘XOR。参考图2A-2D示出了示例。虽然映射寄存器的字段识别了每一逻辑数据端口的数据源,但我们并不具有提供了每一物理端口的相应数据的字段。此信息能够来自于我们所不具有的字段。用“1-8(one of eight)”解码器对映射寄存器的三位二进制解码字段的每一字段进行解码。图6示出了用于逻辑端口#1字段的这种解码器66。值PP_L1被解码为L1_P0、L1_P1、L1_P2...L1_P7,其中,名称指明了从源到目标的通路。例如,L1_P2指明了从逻辑端口#1到物理端口#2的通路。
现在参考图7A,示出了从逻辑数据端口到物理数据端口(#0-#4)的数据通路70的多路复用的样本电路。图中示出了物理端口#2的多路复用器72,而其他四个端口的多路复用器(未示出)是相同的。每一多路复用器72由带有全部为十六位宽的五个AND门74以及相应的OR门76的AND/OR阵列组成。(每一AND门等同于分别具有两路输入的十六个AND门。OR门等同于分别具有五路输入的十六个OR门。)对于物理端口#2的多路复用器,通过相应的五个解码器的输出,即所示出的L0_P2、L1_P2、L2_P2、L3_P2和L4_P2,限定来自逻辑数据端口的AND门。
在这一点上,有两个开放的问题要解决。在双驱动器阵列中,给定的物理端口从两个不同的逻辑端口接收数据,尽管在不同的循环中。参考回图6,每一解码器66具有限定它的所有输出的启用输入“EN”。对于双驱动器配置,在第一循环中仅启用逻辑数据端口#0和#1的解码器,而在第二循环中仅启用逻辑数据端口#2和#3的解码器。出于此原因,每次将只能限定图7A中的一个AND门。换句话说,仅将来自所分配的逻辑端口的数据(根据映射寄存器)输入到相应的物理端口。
在其中单一物理端口从所有四个逻辑端口接收数据(参见图2D)的单驱动器阵列中,每次仅启用一个解码器66,因此每次将仅启用一个AND门74选择唯一的数据源(逻辑端口)。另一个开放问题是用于图5B的“PPn_SEL”信号的源。图6示出了对五路输入OR门68的使用,如果在本物理端口和任一逻辑端口之间存在数据通路,所述的五路输入OR门68将对于物理端口“n”维持(assert)PPn_SEL信号。这提供了一种指示,即物理端口是有效的,并可参与到图5B中的读盘XOR中。
全局读和写根据ATA/ATAPI规范,将命令发送到驱动器需要使用编程IO或PIO模式,对于仅支持PIO模式0的设备,所述PIO模式00可以慢至每次访问600ns,而对于支持模式4的设备,所述PIO模式不优于每次访问120ns。单一命令需要八次或更多次访问。如果必须按顺序对所有的驱动器下命令,则此时间需乘以驱动器的数量,并在整个过程中增加相当长的等待时间。能够由每一端口的独立控制器并行发布命令,但这会显著地增加复杂性和成本。
当跨驱动器阵列划分数据时,给定划分数据条的部分将被定位于每一驱动器上同一相对的位置。这使数据地址、逻辑缓冲器地址或LBA对于每一驱动器是相同的。结果,对于阵列的所有驱动器,读给定划分数据条的命令是相同的。且写给定划分数据条的命令也将是相同的。这使逻辑处理器(例如图1中的20)能够在不超过将否则发送一个命令到单一驱动器需要的时间内“广播”通用命令。
如之前所指出的,驱动器阵列可由所连接的驱动器的子组组成。(本发明的优点之一在于,简单地通过将适当的配置字节存储于映射寄存器中而具备简单配置或重新配置将所连接的驱动器组织到已定义的阵列中的能力。)在阵列由所连接驱动器的子组组成的情况下,可以仅将命令(如读和写)“广播”到所选的子组中。必须一次对一个驱动器下命令,或者必须提供某种装置来“屏蔽”不参与到当前阵列中的物理数据端口。图8示出了解决这一问题的一种实现。
参考图8,对于五个物理端口中的前两个(P0和P1),示出了地址、选通脉冲、芯片选择信号CS0、CS1、DA0、DA1、DA2、DIOW和DIOR。注意,这些地址和选通脉冲信号对所有的五个端口是通用的。它们被独立地缓存,以便给定驱动器的失效不能阻碍将这些信号传播到其他驱动器。参见缓冲器80、82。用于给定端口的两个芯片选择信号CS0#、CS1#的输出驱动器由该端口的Pn_SEL信号所限定;参见门84、86。任何未被映射寄存器的当前内容所选择的端口将不维持它的任一芯片选择,并因此将忽略读和写选通脉冲。
似乎“全局读”没有任何意义,因为它意味着将潜在冲突的数据值返回到公共总线上。在当前实施例中,“全局读”使读选通脉冲,即,图8的Pn_DIOR#,被“广播”到所有的物理数据端口。由芯片选择(Pn_CS0#、Pn_CS1#)所限定的那些连接的存储设备将把数据返回到物理端口,在物理端口,在Pn_DIOR#选通脉冲的下降边锁存数据。不会作出尝试将数据的值返回到本地处理器作为这次读循环的结果。
接着本地处理器将使用不同的地址每次一个地读这些端口的每一个,这不会导致对Pn_DIOR#选通脉冲循环的重复,以及不会改变任何已锁存的数据。这些循环不允许本地处理器取出存储于每一数据锁存器中的潜在唯一的值。可需要多至600ns的Pn_DIOR#循环仅被执行一次。为了达到和重复五次Pn_DIOR#循环相比的显著的时间节约,可以每次以15ns取出每一端口中锁存的值。
“全局读”和“全局写”装置允许本地处理器在可能的最少量时间内发送命令到当前所选择的阵列,并从所述阵列中接收控制状态。当通过在映射寄存器中装载新的值而选择不同的子阵列时,控制接口自动更新,而无需其他的代码改变。
状态排序前述的讨论讲述了生成许多物理端口输出,并示出了怎样由映射寄存器操纵它们。这些端口的每一个也具有许多输入信号。再一次地,将这些信号与逻辑驱动器相关联能够最小化软件开销。例如,每一驱动器具有被用于从控制器发出需要服务的信号的中断输出。图9示出了对来自映射寄存器的PP_L0值控制的多路复用器90的使用,以选择与逻辑数据端口零相关联的物理端口的中断。其他逻辑数据端口的每一个具有使用了相应的PP_Ln值以定位其中断的相同的多路复用器(未示出)。在图9中,缓冲器92从每一逻辑数据端口的多路复用器(90等)取得所选的中断。当逻辑处理器(图1中20)通过此缓冲器读中断状态时,该中断以始于位零位置的逻辑数据端口零的逻辑数据端口顺序而出现。能够将同样的技术用于对来自物理数据端口的包括驱动器线缆ID信号和内部FIFO状态信号的内部和外部信号进行排序。该特征使得逻辑固件能够为具有不同数目的物理端口的多个阵列使用共同的代码序列。一旦装载了中断缓冲器92,则所需的状态位总是用于所选的任一阵列的“已排序的”寄存器的最不重要的位。可将位的数量屏蔽减少为端口的实际数量。
中断ANY和ALL来自逻辑数据端口的所选中断能够如图9所示被逻辑AND 94和OR 96,以提供信号“中断ALL”和“中断ANY”。当逻辑处理器已发布命令时,且在任意数据已传输之前,可能想要了解来自任意驱动器的中断,因为一个或多个驱动器可能已拒绝其命令或具有某种其他错误。一旦驱动器已开始传输数据,本地处理器将想要了解何时所有驱动器已维持其中断信号,因为这表明了命令的完成。注意,这类的实现使软件独立于驱动器的数量。(对于双驱动器阵列,来自每一设备的中断信号出现两次,而在单驱动器阵列中,同一驱动器出现四次。AND和ALL信号仍正确地运行。)逻辑地址映射尽管大量的运行时软件利用了以上所述的全局命令和状态,但在特定的设备内仍存在对访问用于初始化和用于处理错误的单独设备的需要。出于此原因,每一物理数据端口出现于逻辑处理器地址空间内的唯一位置。当解码对这些位置的任一个的访问时,根据映射寄存器的内容对已解码的输出进行重新映射。在初始化期间,映射寄存器装载了“身份”图形,即,逻辑设备0指向物理端口0,逻辑设备1指向物理端口1等等。这使物理端口以始于处理器的地址空间中的第一个物理端口位置的顺序而出现。在正常操作中,映射寄存器将装载从逻辑到物理驱动器的映射。如果接着从逻辑端口2接收了中断,则逻辑处理器可通过当装载身份映射时访问了物理端口2的唯一地址空间来访问中断驱动器。这使逻辑驱动器的服务独立于它们所连接的物理数据端口。
在图10中示出了逻辑寻址特征的一种硬件实现。当处理器访问设备端口空间的地址部分时,1-8解码器100解码为每一设备定义了三十二字节空间的处理器地址线五到七。对每一空间的解码维持了相应端口N的解码信号Pn_DEC。对虚拟端口号七的解码是全局访问的信号。P7_DEC信号与其他解码信号102的每一个进行OR,以便对于该端口的特定访问和对于全局访问均维持结果的端口选择信号Pn_SEL(n=0-4)。
接着由来自映射寄存器的PP_Ln值操纵每一端口选择信号。1-8解码器104取得P2_SEL信号,并根据来自映射寄存器的PP_L2值路由该P2_SEL信号,产生了一组信号,信号的形式为L2_P0_CS,表明来自物理端口零并来自逻辑端口二的芯片选择。其他四个逻辑端口的1-8解码器是相同的(未示出)。
每一物理端口具有五路输入的OR门,例如106。示出了物理端口#2的OR门106。它将五个不同源一起进行OR以进行到物理端口#2的芯片选择。注意,对于单驱动器子阵列,将由所有的四个逻辑设备维持芯片选择,而对于双驱动器子阵列,由两个逻辑设备维持芯片选择。
在前述的描述和附图中,我们说明了一类映射寄存器的若干示例;它可以被称为逻辑映射寄存器。如所解释的,它提供了对于已定义阵列中的每一逻辑驱动器的字段,并在此字段中,一个值指明了相应的物理端口号。在被称为物理映射的可选实施例中,寄存器提供了对于每一物理端口或所连接驱动器的字段,并在每一字段中,一个值指明了相应的逻辑端口号。在以下示例中说明了这种可选的映射寄存器。
假设为四个驱动器上所划分的数据定义了阵列。以特定顺序将宽度为划分数据条的数据块存储于每一可用的驱动器中。接着重复此过程。例如,将第一(以及第五、第九等)数据块存储于与物理端口#1连接的驱动器上。将第二(以及第六、第十等)数据块存储于与物理端口#2连接的驱动器上。将第三(以及第七、第十一等)数据块存储于与物理端口#4连接的驱动器上。第一数据块去往逻辑驱动器0,第二数据块去往逻辑驱动器1,第三数据块去往逻辑驱动器2,而第四数据块去往逻辑驱动器3。这种情况的可选的两类映射寄存器如下
逻辑映射

物理映射

很明显,对于本领域技术人员,可对上述的实施例的细节作出许多改变,而不会背离本发明的基础原理。因此,仅应该由以下的权利要求确定本发明的范围。
权利要求
1.一种盘阵列控制器,包括用于连接主机系统的主机接口;用于存储读和写数据的缓冲器;以及盘接口,所述的盘接口包括多个用于连接盘驱动器的物理端口;所述的盘接口还包括在物理端口和缓冲器之间实现可选择的数据通路的开关;以及用于存储映射数据的映射寄存器,其中,所述开关可响应于在映射寄存器中存储的映射数据被配置用于访问由映射数据定义的物理端口的阵列。
2.根据权利要求1的盘阵列控制器,其中,所述的映射数据反映了物理端口间的划分顺序,而所述开关将来自物理端口的数据段排序为逻辑端口的顺序。
3.根据权利要求2的盘阵列控制器,其中,所述的映射数据按照物理端口的规定顺序定义了划分顺序。
4.根据权利要求4的盘阵列控制器,其中所述的盘接口包括一系列逻辑端口,每一逻辑端口用于在盘接口和缓冲器之间传输相应的数据段;以及所述的映射数据包括通过规定每一逻辑端口到一个物理端口的关联而定义期望的盘阵列和划分方案的多个字段。
5.根据权利要求3的盘阵列控制器,其中,所述的映射数据存储于控制器的存储器中。
6.根据权利要求4的盘阵列控制器,其中,将所述映射数据组织为包括对于每一逻辑端口的字段以及存储于所述字段中指明相应的物理端口的值的逻辑映射寄存器。
7.根据权利要求4的盘阵列控制器,其中,将所述映射数据组织为包括对于控制器的每一物理端口的字段以及存储于所述字段中指明相应的逻辑端口的值的物理映射寄存器。
8.根据权利要求4的盘阵列控制器,其中,所述的期望的盘阵列由逻辑端口到可用物理端口的子组的关联所定义。
9.根据权利要求4的盘阵列控制器,其中,所述的映射寄存器包括用于指明是否将冗余驱动器用于阵列中以存储冗余数据的字段。
10.根据权利要求4的盘阵列控制器,其中所述的映射数据定义了盘阵列,该盘阵列包括了数量等于在盘接口和缓冲器之间的数据传输中所使用的逻辑端口的数量的二分之一的物理端口;以及所述的开关可被动态地重新配置用于提供在前一半逻辑端口和所分配的物理端口之间的用于第一次盘访问的第一数据通路,并接着提供在另一半逻辑端口和所分配的物理端口之间的用于第二次盘访问的第二数据通路,以完成缓冲器传输。
11.根据权利要求10的盘阵列控制器,其中,所述的映射数据定义了四个逻辑端口到两个物理端口的盘阵列的关联。
12.根据权利要求4的盘阵列控制器,其中所述的映射数据定义了盘阵列,该盘阵列包括了数量少于在盘接口和缓冲器之间的数据传输中所使用的逻辑端口的数量的物理端口;以及所述的开关可被动态地重新配置用于提供在第一子组的逻辑端口和所分配的物理端口之间的第一数据通路,并接着提供在第二子组的逻辑端口和所分配的物理端口之间的第二数据通路。
13.根据权利要求4的盘阵列控制器,其中,所述的开关将来自缓冲器的写盘数据段引导到物理端口,以便按照映射数据中规定的那样跨已定义的阵列划分数据。
14.一种将命令广播到盘驱动器的阵列的方法,所述方法包括以下步骤在映射寄存器中存储通过识别多个物理端口而定义盘阵列的标记;将命令的一个字节维持于每一已识别的物理端口的数据总线之上;将全局写的选通脉冲维持于所有的已识别的物理端口;以及响应于映射寄存器的内容,仅选择包括于已定义阵列中的物理端口,以便仅由所选择的端口通过接受所维持的命令的字节而响应全局写的选通脉冲。
15.一种从盘阵列全局读控制状态的方法,包括在映射寄存器中存储通过识别多个物理端口而定义盘阵列的标记;将单一全局读的选通脉冲广播到所有已识别的物理端口;响应于映射寄存器的内容,仅选择包括于已定义阵列中的物理端口,以便仅由所选择的端口通过返回所请求的控制状态而响应全局读的选通脉冲;在物理端口中锁存返回的控制状态;以及接着分别访问每一物理端口以获得各个控制状态。
全文摘要
公开了一种盘阵列控制器装置(10),其具有用于与主机(12)相接口的至少两个逻辑端口(逻辑端口#0-逻辑端口#3),以及具有一个或多个物理端口(物理端口#0-物理端口#4),每一物理端口被安置用于将至少一个盘驱动器连接到控制器,并且所述的控制器包括开关(26),所述的开关提供了响应于映射寄存器(24)的内容可动态配置的在逻辑数据端口和物理数据端口之间的数据通路(30)。所述的映射寄存器通过规定每一逻辑端口到一个物理端口的关联而定义了期望的盘驱动器阵列。能够将所述映射寄存器组织为包括了对于控制器的每一逻辑端口的字段的逻辑映射寄存器,以及包括了指定用于RAID操作的冗余阵列的设备。
文档编号G11B21/08GK1777861SQ200480010686
公开日2006年5月24日 申请日期2004年4月21日 优先权日2003年4月21日
发明者迈克尔·C.·斯托罗维兹 申请人:耐特塞尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1