English:
[0001] The size of the power supply in Redundant Array of Independent Disks (RAID) controllers is conventionally limited to reduce costs. This forces the controller to limit the number of drives that can be spun-up simultaneously. Spinning up a disk drive may comprise bringing the disk pack thereof from an initial state in which the constituent platters that support the data-carrying magnetic material are not rotating to a state in which the constituent platters are spinning at the target or rated revolutions per minute or rpm. For current disk drives, such target rate may be, for example, 5400, 7200, 10,000 or 15,000 rpm. The number of disk drives that are spun-up simultaneously is limited in conventional arrays to limit the aggregate current draw from the power supply to within the specified capacity of the power supply to source such current. Indeed, if the current draw becomes too large, the power supply may fail, causing an unintended reset of the entire array.
[0002] Delayed "Time to First Data", or the period of time elapsed from initiating spin-up to the time at which the disk drive reports that it is ready to process data access commands, is a consequence of this limitation. This "Time to First Data" is significantly greater than the time necessary to spin-up the disk packs of the disk drives as the disk drives, after having reached their target spin rate, must energize the Voice Coil Motor (VCM) of the head disk assembly (HDA) to swing the actuator(s) over the disk surfaces, achieve sync with the encoded servo sectors and report drive readiness. This delay is a cumulative effect, in that the greater the number of drives in the array, the longer the array takes to come to ready state in which all constituent drives have reported that they are ready to process data access commands.
[0004] Fig. 2 is a graphical representation of a conventional array of disk drives and the time elapsed from initial spin-up to the time at which the last group of disk drives spun-up reports that they are ready to process data access commands.
[0005] Fig. 3 is a graph showing the current drawn from a disk drive configured to be incorporated into an array over time, from initiation of spin-up to the time at which the disk drive reports that it is ready to process data access commands, according to one embodiment.
[0006] Fig. 4 is a graphical representation of an array of disk drives, according to one embodiment.
[0007] Fig. 5 is a block diagram of a data storage device controller configured to couple to a plurality of data storage devices, according to one embodiment.
[0008] Fig. 6 is a flowchart of a method according to one embodiment.
[0009] Fig. 1 is a graph showing the current drawn from a disk drive over time, from initiation of spin-up to the time at which the disk drive reports that it is ready to process data access commands. As shown therein, at time t0, the disk drive is commanded to spin-up, at which point the disk drive draws about 1 .44 amperes (A) from the power supply (not shown). This current draw is large, as the disk drive's spindle motor must overcome the inertia of the immobile disk pack, which manifests itself as a large back electro-motive force or BEMF, as seen across the spindle motor power terminals. This current draw continues at about this level until ti , at about 1 .2 seconds after initial spin-up, in the example being developed in Fig. 1 . As the disk drive approaches its target spin rate (for example, 5400, 7200, 10,000 or 15,000 rpm), the current draw decreases, as does the BEMF decreases, as the spindle motor need exert less torque to increase the angular velocity of the disk pack. At about time t2, the disk pack of the disk drive has reached its target spin rate (e.g., the aforementioned (for example, 5400, 7200, 10,000 or 15,000 rpm), whereupon the disk drive performs a number of operations aimed to bring the disk drive in condition to service data access commands. This condition is shown as "Drive Ready" in Fig. 1 , at time t3, about 3.9 seconds after the disk drive was commanded to spin-up, for an exemplary disk drive having the profile shown in Fig. 1 .
[0010] Fig. 2 is a graphical representation of a conventional array of disk drives and the time elapsed from initial spin-up to the time at which the last group of disk drives spun-up reports that they are ready to process data access commands. Fig. 3 shows an array 200 of 25 disk drives, labeled D1 -D25. Such an array 200 may form a RAID. In such an array, the RAID controller, having only a predetermined number of amps from which the disk drives may draw during spin-up and during normal operation, may limit the number of disk drives that are spun-up simultaneously, in order to limit to aggregate current draw of the disk drives to within the specified limits of the RAID power supply. In the example of Fig. 2, the RAID controller (not shown), five disk drives are shown to be spun-up simultaneously, beginning with disk drives D1 through D5. As soon as these drives report "Drive Ready", the next group (i.e., disk drives D6 - D10) of five drives may be spun-up. In turn, as these disk drives report "Drive Ready", the next group D1 1 - D15 may be spun-up, followed by D16-D20 and ending with the last group of disk drives; namely, disk drives D21 -D25. As shown in Fig. 2, the time interval elapsed between the initial group of disk drives being commanded to spin-up and the last group of drives reporting "Drive Ready" is shown in Fig. 2 as t∞nv While there may be some small variation across drives in the timing of the "Drive Ready" signal (assuming all drives within the array 200 are of the same type), such small variations may be safely ignored here.
[0011] Fig. 3 is a graph 300 showing the current drawn from a disk drive configured to be incorporated into an array over time, from initiation of spin-up to the time at which the disk drive reports that it is ready to process data access commands, according to one embodiment. It is to be noted that embodiments are equally applicable to hybrid disk drives; that is, to data storage devices comprising both rotating media and solid state memory. According to one embodiment, the current profile of the constituent disk drives of an array may be used to good advantage in enabling next sequential disk drive(s) to be spun-up sooner than shown in Figs. 1 and 2. According to one embodiment, a predetermined spin rate 302 may be established. This predetermined spin rate may be, as suggested in Fig. 3, less than the target spin rate of the disk drive. Moreover, according to one embodiment, this predetermined spin rate 302 is reached sooner than the disk drive would otherwise reach the disk drive's target spin rate (the aforementioned 5400, 7200, 10,000 or 15,000 rpm) and sooner than the disk drive indicates its readiness to process data access commands. According to one embodiment, the current drawn from the disk drive when the disk drive reaches the predetermined spin rate is sufficiently low as to enable the next disk drive or disk drives to be spun-up without overloading the power supply. Moreover, as shown at 304, the time elapsed between t0, meaning the point in time at which the disk drive was commanded to spin-up and tPredrpm, the time at which the predetermined spin rate has been reached, is less than from t0to t3, the point in time at which the disk drive has indicated that it is ready to process data access commands. Moreover, the interval from to to tpred rpm is less than the time interval from t0to the period in time at which the disk drive has reached its target spin rate. From inspection of the embodiment of Fig. 3, it can be seen that the next sequential disk drive in the array may be spun-up about tSaved = t3- tpred rpm or about 2.1 seconds sooner than would otherwise be the case had controller waited until the disk drive announced Drive Ready at t3 to spin-up the next sequential disk drive(s) or about 750 ms faster than would be the case had the controller waited until the disk drive reached its target spin rate before spinning up one or more next sequential disk drives.
[0012] According to one embodiment, the predetermined spin rate may be predetermined for each kind, type or model of disk drives. Indeed, such predetermined spin rate may be determined by the manufacturer for each disk drive kind, type or model. Alternatively, the predetermined spin rate may be predetermined for each individual disk drive. For example, such predetermined spin rate may be set by the manufacturer at the time of, for example, Initial Burn In or IBI. According to one embodiment, the predetermined spin rate may be a predetermined percentage of the target spin rate. For example, the predetermined spin rate may be selected to be between about 20% and about 90% of the target spin rate of the disk drive. According to one embodiment, the predetermined percentage may be selected to be between about 50% and about 80% of the target spin rate of the disk drive. For example, the predetermined percentage may be selected to be about 75% of the target spin rate of the disk drive. Accordingly, for a 7200 rpm disk drive and a predetermined percentage of 75%, the array controller may command the next sequential disk drive or disk drives to spin-up when the disk drive is determined to have reached a spin rate of about 5,400 rpm.
[0013] Fig. 4 is a graphical representation of an array of disk drives, according to one embodiment. As shown therein, instead of spinning up a next sequential disk drive or disk drives upon the disk drive(s) reporting readiness to process data access commands, the controller may be configured, according to one embodiment, to command the next sequential disk drive or disk drives to spin-up as soon as (or shortly after) the disk drive(s) have reached or exceeded a predetermined spin rate. As shown in Fig. 4, the arrows within the current profiles shown within the disk drives D1 -D25 signal the point in time at which the next sequential drive or drives of the array may be spun-up. As shown in Fig. 4, the entire array 400 may be considered to be ready for unrestricted reads and writes to all of its constituent disk drives when the last disk drive has indicated that it is ready to process data access commands, as noted by the "Drive Ready" legend in Fig. 4. According to one embodiment, the time interval elapsed between t0, the time at which the controller commands the first disk drive or group of disk drives to spin-up and tEmb, the time at which the last disk drive or the last group of disk drives indicates that it is ready to process data access commands, may be less than the corresponding time interval t0to tConv shown in Fig. 2. It is to be understood that tEmb may correspond to the point in time at which the last disk drive reports that it is ready to process data access commands. However, as the disk drives of array 400 may be substantially identical (i.e., same make and model), the disk drives shown in the last spun-up group; namely, disk drives D21 to D25, may report being ready to support data access commands at substantially the same time, with minimal variations from drive to drive. Although such variations are acknowledged, they may be safely ignored herein for purposes of illustration and explanation.
[0014] Fig. 5 is a block diagram of a data storage device controller 502 configured to couple to a plurality of data storage devices, according to one embodiment. As shown, the controller 502 may be configured to couple to a plurality 504 of disk drives. Such plurality of disk drives 504 may be organized as an array of disk drives. For example, reference 504 may denote a RAID. The data storage device (e.g., disk drive) controller 502 may be configured, according to one embodiment, to carry out the method of Fig. 6. As shown therein, block B61 calls for the controller 502 to initiate spin-up of at least one first disk drive of the array. For example, and with reference to Figs. 4 and 5, the controller 502 may command one or more disk drives of the first row (disk drives D1 -D5) to spin-up. Such first disk drives may, therefore, be found in the first row of the disk drives shown in Figs. 4 and 5. It is to be understood that five disk drives per row is shown in Figs. 4 and 5 for illustrative and exemplary purposes only. In an actual implementation, the array 504 may be, for example, a RAID comprising fifty or more disk drives, which may be spatially and/or logically arranged in a manner that is different than that shown in Figs. 4 and 5. As called for by block B52, the controller 502 may determine when each of the one or more first disk drives of the array for which spin-up was initiated reaches a predetermined spin rate that is less than a target spin rate at which the disk drive is ready to process data access commands.
[0015] According to one embodiment, the controller 502 may be configured to poll the disk drives to determine when they have reached the predetermined spin rate. According to one embodiment, code controlling the disk drive spindle motor may be configured to update a status bit when the predetermined spin rate has been reached or exceeded. Such status bit may then be interrogated or polled by the controller 502 to enable the determination of when the predetermined spin rate has been reached. Alternatively, the disk drives of the array 504 may be configured to set one or more page codes of one or more mode pages (e.g., for Small Computer System Interface (SCSI) drives) when the predetermined spin rate has been reached. In this embodiment, the controller 502 may be configured to interrogate the mode page(s) to determine the set page code(s), and to interpret the obtained page codes to determine when the predetermined spin rate has been reached. Alternatively still and according to one embodiment, the controller 502 may be configured to determine when the disk drives have reached the predetermined spin rate by issuing an Inquiry command, in the case wherein the array 504 comprises Serial Advanced Technology Attachment (SATA) disk drives.
[0016] According to one embodiment, the controller 502 and the array of disk drives 504 may be configured such that the controller 502 may determine that the predetermined spin rate has been reached at least about 250ms prior to the disk drives indicating being ready to process data access commands. According to one embodiment, the controller 502 may determine that the predetermined spin rate has been reached at least about 500ms to at least about 2 seconds prior to the disk drives indicating being ready to process data access commands. For example, the controller 502 may determine that the predetermined spin rate has been reached at least about 1 second prior to the disk drives indicating being ready to process data access commands. Other timings are possible. Alternatively still and according to one embodiment, the determination of having reached the predetermined spin rate may be made by the controller 502 monitoring the BEMF exhibited by the disk drives during spin-up. That is, when the disk drive(s) exhibit a BEMF that has dropped to or below a threshold point corresponding to the disk drive having spun-up to the predetermined spin rate, the next sequential disk drive or drives may be commanded to spin-up. According to one embodiment, the firmware of the disk drives of the array 504 may be configured to report to the controller 502 when the predetermined spin rate has been reached. Such reporting may take the form of, for example, setting one or more bits that, when evaluated by a polling controller 502, are indicative of the disk drive having reached its predetermined spin rate.
[0017] Advantageously, embodiments may take good advantage of prior knowledge of the disk drive spin-up, current or BEMF profile of disk drives to enable a greater number of disk drives to be spun-up than is conventionally possible. Alternatively, a smaller power supply may be used than would otherwise be conventionally possible. Parameters other than that described herein may be used to determine when the disk drives have reached the predetermined spin-rate. For example, analysis of the vibrations or audio signature of the drive may be indicative of the current spin rate of the disk drive. Moreover, according to one embodiment, the predetermined spin rate may be dynamically adjusted to ambient conditions that may affect the spin rate of the disk drive or the rate at which the disk drive platters are accelerated to reach their target spin rates. According to one embodiment, the "Time to First Data" may be significantly improved in RAID and other installations.
[0018] While certain embodiments of the disclosure have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Indeed, the novel methods, devices and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure. For example, those skilled in the art will appreciate that in various embodiments, the actual physical and logical structures may differ from those shown in the figures. Depending on the embodiment, certain steps described in the example above may be removed, others may be added. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

中文:
[0001]常规地,限制独立磁盘冗余阵列(RAID)控制器中电源的大小以降低成本。这迫使控制器限制能够同时旋转启动的驱动器的数量。旋转启动磁盘驱动器可以包括使其磁盘组从构成盘片不旋转的初始状态达到构成盘片以目标或额定每分钟转数或rpm旋转的状态,所述盘片支持承载数据的磁性材料。对于现今的磁盘驱动器,这样的目标速率可以是诸如5400、7200、10000或15000rpm。在常规阵列中同时旋转启动的磁盘驱动器的数量受到限制以将电源的总电流消耗限制在电源的特定容量内来提供这样的电流。实际上,如果电流消耗变得太大,那么电源可能故障,引起整个阵列的非计划中的重置。
[0002]延迟的“至第一数据的时间”,或从发起旋转启动到磁盘驱动器报告准备好处理数据访问命令的时间所经过的时间段是该限制的结果。该“至第一数据的时间”显著地大于旋转启动磁盘驱动器的磁盘组所必需的时间,这是因为磁盘驱动器在已经达到它们的目标转速后,必须激励头盘组合件(HDA)的音圈电机(VCM)以使(多个)致动器在盘片表面上旋转,实现与已编码的伺服扇区同步并报告驱动器准备就绪。该延迟是一种累积效应,其中阵列中驱动器的数量越大,阵列需要越长的时间进入就绪状态,在所述就绪状态中全部构成驱动器已经报告它们准备好处理数据访问命令。
[0004]图2是常规磁盘驱动器阵列以及从发起旋转启动到最后一组旋转启动的磁盘驱动器报告它们准备好处理数据访问命令的时刻所经过的时间的图形表示。
[0005]图3是示出了根据一个实施例的随着时间从发起旋转启动到磁盘驱动器报告它准备好处理数据访问命令的时刻被配置为并入到阵列中的磁盘驱动器消耗的电流的曲线图。
[0006]图4是根据一个实施例的磁盘驱动器阵列的图形表示。
[0007]图5是根据一个实施例的被配置为耦合到多个数据存储设备的数据存储设备控制器的框图。
[0008]图6是根据一个实施例的方法的流程图。
[0009]图1是示出了随着时间从发起旋转启动到磁盘驱动器报告其准备好处理数据访问命令的时刻磁盘驱动器消耗的电流的曲线图。如其中所示,在时间t0,命令磁盘驱动器旋转启动,在该时间点处磁盘驱动器从电源(未示出)消耗大约1.44安培(A)。由于磁盘驱动器的主轴电机必须克服静止磁盘组的惯性,该惯性本身显示为大的反电动势或BEMF,如在主轴电机电源端子上见到的,因此该电流消耗大。在图1中开发的示例中,该电流消耗以大约该水平持续,直到t1,t1在发起旋转启动后的大约1.2秒。由于磁盘驱动器接近它的目标转速(例如,5400、7200、10000或15000rpm),电流消耗降低,BEMF同样降低,这是因为主轴电机需要施加较小的转矩来增加磁盘组的角速度。在大约时间t2,磁盘驱动器的磁盘组已经达到它的目标转速(例如,上面提到的(例如,5400、7200、10000或15000rpm)),于是磁盘驱动器以使磁盘驱动器处于服务数据访问命令的条件下为目的执行多个操作。对于具有图1中所示的简档的示例性磁盘驱动器,该条件在图1中示为“驱动器就绪”,在时间t3,t3在磁盘驱动器被命令旋转启动后的大约3.9秒。
[0010]图2是常规磁盘驱动器阵列以及从发起旋转启动到最后一组旋转启动的磁盘驱动器报告它们准备好处理数据访问命令的时刻所经过的时间的图形表示。图2示出了25个磁盘驱动器的阵列200,标示为D1-D25。这样的阵列200可以形成RAID。在这样的阵列中,RAID控制器仅具有磁盘驱动器在旋转启动期间和在正常操作期间可以从其中消耗的预定的安培数,其可以限制同时旋转启动的磁盘驱动器的数量,以便于将磁盘驱动器的总电流消耗限制在RAID电源的特定限制范围内。在图2的示例中,RAID控制器(未示出),5个磁盘驱动器被示出为同时旋转启动,从磁盘驱动器D1至D5开始。一旦这些驱动器报告“驱动器就绪”,5个磁盘驱动器构成的下一组(即,磁盘驱动器D6-D10)可以被旋转启动。依次地,当这些磁盘驱动器报告“驱动器就绪”,下一组D11-D15可以被旋转启动,随后是D16-D20以及以磁盘驱动器中的最后一组(即,磁盘驱动器D21-D25)结束。如图2中所示,被命令旋转启动的磁盘驱动器中的起始组与报告“驱动器就绪”的驱动器中的最后一组之间经过的时间间隔在图2中被示为tconv。尽管在发出“驱动器就绪”信号的时刻驱动器上可能有一些小的变化(假设阵列200中的全部驱动器是相同的类型),这里,可以安全地忽略这样的小的变化。
[0011]图3是示出了根据一个实施例的随着时间从发起旋转启动到磁盘驱动器报告它准备好处理数据访问命令的时刻被配置为并入到阵列中的磁盘驱动器的电流消耗的曲线图300。应当注意的是,实施例可等价地应用于混合磁盘驱动器;也就是,应用于包括旋转介质和固态存储器二者的数据存储设备。根据一个实施例,可以使用阵列的构成磁盘驱动器的电流简档,以在使下一顺序的(多个)磁盘驱动器能够比图1和图2中所示的更快地旋转启动上有良好优势。根据一个实施例,可以建立预定的转速302。该预定的转速可以为如图3中所建议的小于磁盘驱动器的目标转速。此外,根据一个实施例,达到该预定的转速302,早于磁盘驱动器将另外达到磁盘驱动器的目标转速(上面提到的5400、7200、10000或15000rpm)并且早于磁盘驱动器指示它准备好处理数据访问命令。根据一个实施例,当磁盘驱动器达到预定的转速时磁盘驱动器消耗的电流是足够低的,以使得下一磁盘驱动器或多个磁盘驱动器能够旋转启动,而不使电源过载。此外,如304处所示,t0和tPredrpm之间经过的时间小于从t0至t3的时间,t0意指磁盘驱动器被命令旋转启动的时间点,tPredrpm是已经达到预定的转速的时间,t3是磁盘驱动器已经指示它准备好处理数据访问命令的时间点。此外,t0到tPredrpm的时间间隔小于t0到磁盘驱动器已经达到它的目标转速的时间段的时间间隔。根据对图3中的实施例的观察,能够看出,与另外的情况使得控制器等待直到磁盘驱动器在t3通知驱动器就绪才旋转启动下一顺序的(多个)磁盘驱动器相比,可以早大约tSaved=t3-tPredrpm或大约2.1秒旋转启动阵列中的下一顺序的磁盘驱动器,或者与情况在旋转启动一个或多个下一顺序的磁盘驱动器之前使控制器等待直到磁盘驱动器达到它的目标转速相比,可以早大约750ms旋转启动阵列中的下一顺序的磁盘驱动器。
[0012]根据一个实施例,可以针对磁盘驱动器的每个种类、类型或型号来预先确定预定转速。实际上,这样的预定转速可以由每个磁盘驱动器种类、类型或型号的制造商来确定。可替代地,可以针对每个单独的磁盘驱动器预先确定预定转速。例如,这样的预定转速可以由制造商在例如初始烧机(InitialBurnIn)或IBI时设置。根据一个实施例,预定转速可以为目标转速的预定的百分比。例如,可以在磁盘驱动器的目标转速的大约20%和大约90%之间选择预定转速。根据一个实施例,可以在磁盘驱动器的目标转速的大约50%和大约80%之间选择预定百分比。例如,预定百分比可以被选择为磁盘驱动器的目标转速的大约75%。因此,对于7200rpm的磁盘驱动器和75%的预定百分比,阵列控制器可以当磁盘驱动器被确定为已经达到大约5400rpm的转速时,命令下一顺序的磁盘驱动器或多个磁盘驱动器旋转启动。
[0013]图4是根据一个实施例的磁盘驱动器阵列的图形表示。如其中所示,替代在(多个)磁盘驱动器报告准备好处理数据访问命令之后旋转启动下一顺序的磁盘驱动器或(多个)磁盘驱动器,根据一个实施例,控制器可以被配置为一旦(或不久之后)(多个)磁盘驱动器达到或超过预定转速则命令下一顺序的磁盘驱动器或多个磁盘驱动器旋转启动。如图4中所示,磁盘驱动器D1-D25内示出的电流简档内的箭头指示阵列中的下一顺序的驱动器或多个驱动器可以被旋转启动的时间点。如图4中所示,当最后的磁盘驱动器已经指示它准备好处理数据访问命令时,如图4中的“驱动器就绪”图例所注释的,则整个阵列400可以被认为准备好对它的构成磁盘驱动器中的全部的不限制的读和写。根据一个实施例,t0到tEmb之间所经过的时间间隔可以小于图2中示出的t0到tConv的对应的时间间隔,t0是控制器命令第一磁盘驱动器或第一组磁盘驱动器旋转启动的时刻,tEmb是最后的磁盘驱动器或最后一组磁盘驱动器指示其已经准备好处理数据访问命令的时刻。应当理解的是,tEmb可以对应于最后的磁盘驱动器报告它准备好处理数据访问命令的时间点。然而,由于阵列400中的磁盘驱动器可以基本上相同(即,相同的制作和型号),所以最后旋转启动的组中示出的磁盘驱动器(即,磁盘驱动器D21至D25)可以基本上同时地报告准备好支持数据访问命令,其中不同的驱动器具有最小变化。尽管确认有这样的变化,但为了示例和说明的目的,它们在此处可以被安全地忽略。
[0014]图5是根据一个实施例的被配置为耦合到多个数据存储设备的数据存储设备控制器502的框图。如所示的,控制器502可以被配置为耦合到多个磁盘驱动器504。这样的多个磁盘驱动器504可以被组织为磁盘驱动器阵列。例如,附图标记504可以表示RAID。根据一个实施例,数据存储设备(例如,磁盘驱动器)控制器502可以被配置为实施图6的方法。如其中所示的,块B61调用控制器502以发起对阵列中的至少一个第一磁盘驱动器的旋转启动。例如,并且参考图4和图5,控制器502可以命令第一行(磁盘驱动器D1-D5)的一个或多个磁盘驱动器旋转启动。这样的第一磁盘驱动器因此可以在图4和图5中示出的磁盘驱动器的第一行中找到。应当理解的是,在图4和5中示出每行5个磁盘驱动器仅出于说明和示例性的目的。在实际的实现方式中,阵列504可以是例如包括五十个或更多磁盘驱动器的RAID,其可以以不同于图4和图5中所示出的方式被空间地和/或逻辑地安排。如块B62所调用的,控制器502可以确定针对其发起旋转启动的阵列中的一个或多个第一磁盘驱动器中的每个何时达到预定转速,所述预定转速小于磁盘驱动器准备好处理数据访问命令的目标转速。当这样的一个或多个第一磁盘驱动器的盘片达到预定转速时,则在块B63处,控制器可以发起对一个或多个第二磁盘驱动器的旋转启动。这样的一个或多个第二磁盘驱动器可以包括阵列504的单个磁盘驱动器,或者可以包括例如磁盘驱动器的整个行(或其他相关分组)。例如,参考图4和图5,控制器502已经确定磁盘驱动器D1-D5每个均已达到预定的转速,其可以命令下一顺序的第二磁盘驱动器D6-D10作为一个组而旋转启动。可替代地,当每个磁盘驱动器D1-D5达到预定转速时,可以进而将第二磁盘驱动器D6-D10中的各个驱动器旋转启动。如果第二磁盘驱动器不是以预定大小的组旋转启动,则控制器502可以确保在任意给定时间旋转启动不超过最大数量的磁盘驱动器,以将总电流消耗保持在电源的特定容量内来提供这样的总电流。
[0015]根据一个实施例,控制器502可以被配置为轮询磁盘驱动器以确定他们何时已经达到预定转速。根据一个实施例,控制磁盘驱动器主轴电机的代码可以被配置为当已经达到或超过预定转速时更新状态位。然后,这样的状态位可以被控制器502询问或轮询以能够确定何时已经达到预定转速。可替代地,阵列504的磁盘驱动器可以被配置为当已经达到预定转速时设置一个或多个模式页面的一个或多个页面代码(例如,对于小型计算机系统接口(SCSI)驱动器)。在该实施例中,控制器502可以被配置为询问(多个)模式页面以确定所设置的页面代码,并且解释所获得的页面代码以确定何时已经达到预定转速。仍可替代地,并根据一个实施例,在阵列504包括串行高级技术附件(SATA)磁盘驱动器的情况中,控制器502可以被配置为通过发出查询(Inquiry)命令来确定何时磁盘驱动器已经达到预定转速。
[0016]根据一个实施例,控制器502和磁盘驱动器阵列504可以被配置,以使得控制器502可以确定,在磁盘驱动器指示准备好处理数据访问命令之前至少大约250ms已经达到预定转速。根据一个实施例,控制器502可以确定,在磁盘驱动器指示准备好处理数据访问命令之前至少大约500ms到至少大约2秒,已经达到预定转速。例如,控制器502可以确定,在磁盘驱动器指示准备好处理数据访问命令之前至少大约1秒,已经达到预定转速。其他时间是可能的。仍可替代地并根据一个实施例,可以通过控制器502监视旋转启动期间磁盘驱动器所表现的BEMF来进行对已经达到预定转速的确定。也就是说,当(多个)磁盘驱动器表现出BEMF已经下降到或低于对应于已经旋转启动的磁盘驱动器达到预定转速的阈值点时,可以命令下一顺序的磁盘驱动器或多个驱动器旋转启动。根据一个实施例,阵列504的磁盘驱动器的固件可以被配置为当已经达到预定转速时向控制器502报告。这样的报告可以采用例如设置一个或多个位的形式,所述一个或多个位当被轮询控制器502估计时指示磁盘驱动器已经达到它的预定转速。
[0017]有利地,实施例可以利用磁盘驱动器旋转启动、磁盘驱动器的电流简档或BEMF简档的现有知识的良好的优点,以使能够旋转启动比常规可能更大数量的磁盘驱动器。可替代地,可以使用比另外的常规可能更小的电源。除了本文所描述的之外的参数可以被用于确定何时磁盘驱动器已经达到预定转速。例如,对驱动器的振动或音频签名的分析可以指示磁盘驱动器当前转速。此外,根据一个实施例,预定转速可以被动态地调整以适应于环境条件,所述环境条件可以影响磁盘驱动器的转速或磁盘驱动器盘片被加速以达到它们的目标转速的速度。根据一个实施例,在RAID或其他装置中可以显著提高“至第一数据的时间”。
[0018]尽管已经描述了本公开的特定实施例,但这些实施例已经仅以示例的方式给出,并且不想要限制本公开的范围。实际上,本文所描述的新颖的方法、设备和系统可以以各种其他形式来实施。此外,可以对本文所描述的方法和系统的形式进行各种省略、替换和改变,而不脱离本公开的精神。所附权利要求和它们的等价物旨在涵盖这样的形式或变型,这将落入本公开的范围和精神之内。例如,本领域技术人员将会意识到,在各种实施例中,实际的物理和逻辑结构可以不同于图中所示出的那些。取决于实施例,上述示例中描述的某些步骤可以被移除,可以添加其他步骤。此外,上面所公开的具体实施例的特征和属性可以以不同的方式被组合以形成另外的实施例,所有这些均落入本公开的范围内。尽管本公开提供了某些优选实施例和应用,其他实施例对那些本领域普通技术人员来说是显而易见的,包括不提供本文阐述的全部特征和优点的实施例,也落入本公开的范围内。因此,本公开的范围旨在仅参照所附权利要求来定义。