The present disclosure is directed to data storage systems. More specifically, the present disclosure is directed to a data storage device having an internal command queue that is configured to store received commands and execute them in a manner that provides increased power savings without adversely impacting performance.
Many computing systems generate or receive data and store the data in a data storage device such as a hard disk drive (“HDD”). In typical computing systems, when data is accessed or stored, the HDD expends power. For example, when data is requested, the HDD performs a seek and also performs a read command. Each operation causes the HDD to move its actuator arm to position the head and rotate the magnetic media at a certain speed for data access which increases power consumption of the HDD. As power is consumed by the HDD, the temperature of the HDD may increase. As the temperature of the HDD increases, additional power (possibly external to the HDD) may be used to cool the HDD or otherwise maintain the temperature of the HDD. Use of power in this way may cost a consumer or user of the HDD a significant amount of money over the life of the HDD.
It is with respect to these and other general considerations that embodiments have been made. Although relatively specific problems have been discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background.
Reference will now be made to representative embodiments illustrated in the accompanying figures. It should be understood that the following descriptions are not intended to limit the disclosure to one preferred embodiment. To the contrary, each is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the described embodiments as defined by the appended claims.
The use of the same or similar reference numerals in different drawings indicates similar, related, or identical items where appropriate.
Various embodiments are described more fully below with reference to the accompanying drawings, which form a part hereof, and which show specific exemplary embodiments. However, embodiments may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein.
Some embodiments described herein relate to systems and methods for decreasing power consumption of a storage device. As will be explained in detail below, power consumption of a system, and more particularly, power consumption of a data storage device, may be reduced by enabling a command queue associated with the data storage device to store received commands without executing the commands until a predetermined number of commands have been stored in the queue.
More specifically, embodiments of the present disclosure are directed to a data storage device having a power safe write buffer that stores data related various commands that are received from a host device (e.g., data associated with incoming host write commands that are to be written to permanent storage). In some embodiments, the power safe write buffer may be associated with an internal command queue that is configured to the store and enable sorting and/or ordering the received commands.
As briefly discussed above, when a command is received from the host device, and more particularly when a write command is received from the host device, the received command is stored in an internal command queue. The host device may receive an acknowledgement that the write command has been completed, when in fact the data has just been stored in the power safe write buffer. The received commands are continually stored in the command queue until a depth of the internal command queue exceeds a predetermined threshold. When a depth of the internal command queue exceeds a predetermined threshold, one or more of the write commands in the internal command queue are performed. However, if the internal command queue depth does not exceed the predetermined command queue depth threshold, the stored commands are not performed.
The performance of the one or more write commands in the command queue causes the depth of the internal command queue to decrease. The write commands continue to be executed until the depth of the internal command queue reaches a minimum threshold. Once the minimum threshold is met, any commands that have not yet been executed, and any additional received commands, are stored in the internal command queue until the predetermined number of commands is again reached.
Thus, taking the example where the data storage device is an HDD or SSHD, unlike conventional HDD in which in which a peak acceleration of the actuator in the mechanical seek motion is reached for each received command (and in which the peak acceleration is followed by a baseline phase and a braking phase, all of which consumer power), some embodiments of the present disclosure effectively average out the amount of power consumed by executing various commands, including write commands.
For example, the storage device may be given a workload that consists partly or entirely of random writes at arbitrary locations on the storage device. However, because writes may not occur in the disclosed embodiments until a queue depth reaches a predetermined depth, when the writes are eventually performed, the amount of power consumed is averaged (and is therefore lower) across all the write commands performed by the system.
The host device 110 may be configured to send various commands 115 to the storage device 120. The commands 115 can be any number of commands including, but not necessarily limited to: write commands, including both random write commands and sequential write commands and read commands, including both random read command and sequential read commands.
Further, the host device 110 may be configured to provide the commands 115 to the storage device 120 separately, simultaneously, or substantially simultaneously. For example, a read command may be followed by another read command followed by a write command. In some embodiments, each of these commands 115, prior to being provided to the storage device 120, may be stored in a host command queue 112.
When the storage device 120 receives the various commands 115 from the host device 110, the storage device 120 may be configured to return a response 140 to the host device 110. In one example, if the host device 110 sends a read command 115 to the storage device 120, the storage device 120 can send a response 140 to the host device 110 including the requested data. In some embodiments, the response 140 may include a time stamp that indicates when the command 115 was received, when the command 115 was executed or a combination thereof. In another example, the host device 110 may send a write command (e.g., a random write command or a write command that involves a seek) to the storage device 120. In response to receiving the write command, the system memory may send a response to the host device 110 that the write was performed.
Although the response 140 may indicate to the host device 110 that the write command has been completed, the storage device 120 may not have actually executed the command as indicated. For example, the storage device 120 may include, or otherwise be associated with, an internal command queue 125 that stores the write commands. In some situations, the data associated with the write commands maybe temporarily stored in a write buffer (e.g., a power safe write buffer) without actually writing the data to a non-volatile memory 130, which may include non-volatile memory such as rotating magnetic media, solid-state memory or other non-volatile memory. In some embodiments, at some point later, when the commands in the internal command queue 125 are processed, contents of the write buffer (e.g., power safe write buffer) are written to the non-volatile memory 130.
In some embodiments, the data storage device is configured to communicate with the host device 110 that the commands have been successfully executed when the data is in the write buffer only (although the commands have not been executed as discussed above and thus not yet written to the non-volatile memory 130). In some embodiments, the host device 110 may be configured to agree or otherwise grant permission to the storage device 120 to save data in this manner as a power loss may cause the unwritten data to be lost, if the write buffer is not a power safe write buffer.
Although the received commands 115 may not have been executed, in the implementations discussed herein, in one embodiment the storage device 120 includes a power safe write buffer and is thus configured to protect the data from loss even in the event of lost power. For example, in the event of a power loss, the power safe write buffer can still write the unwritten commands to the non-volatile memory 130 by using residual energy (e.g., back electromotive force (EMF)) stored in the spinning disk portion (or energy stored in various capacitors) of the storage device 120 in order to copy all or designated portions of the data in the power safe write buffer and/or commands in the command queue 125 to a serial flash device (or any non-volatile storage device). In some embodiments, the power safe write buffer comprises a non-volatile solid-state flash memory device.
Because the power safe write buffer enables commands to be saved in this manner, the internal command queue 125 associated with the storage device 120 may be effectively decoupled from the host command queue 112 (this is also the case where the write buffer is not power safe as long as such data loss risk is acceptable to the host device). More specifically, the host device 110 may continue to send commands 115 to the storage device 120 because the host device 110 receives acknowledgement from the storage device 120 that the commands have already been completed. Thus, when a response 140 is received by the host device 110, the host device 110 may send one or more additional commands 115 to the storage device 120.
As discussed above, the internal command queue 125 may be configured to store various commands 115 that are received from the host device. More specifically, the internal command queue 125 may store various write commands, including random write commands, in the internal command queue 125. In some embodiments, the internal command queue 125 maintains a queue depth, or a count, that tracks or otherwise stores the number of commands that are stored in the internal command queue 125. In some embodiments, the queue depth is a steady state depth that ranges in powers of two from 1-128 or from 1-64 although other ranges may be used.
When the queue depth of the internal command queue 125 reaches a predetermined threshold amount, the storage device 120 begins executing the commands and storing and/or writing data into the various locations in non-volatile memory 130. For example, if the internal command queue 125 can store up to 64 commands but has a predetermined threshold (e.g., a queue depth) of 50 commands, the stored commands are only executed once the predetermined number of commands has been stored. Although specific examples of queue depth and stored commands have been used, it is contemplated that the queue depth and the predetermined queue depth may be any size.
In some embodiments, the order at which the stored commands are executed may be determined by an ordering algorithm. In other embodiments, a processor and/or control circuitry 135 associated with the storage device 120 and/or the command queue may be configured to determined which commands are executed an in which order. For example, the commands may be sorted, organized or otherwise arranged using an order algorithm such as a rotational positional ordering method to group as many commands together as possible so less time and energy may be taken to write the commands to the various locations in non-volatile memory 130 (e.g., various physical locations on the magnetic media of a HDD). In other embodiments and as will be described below, the commands may be sorted and/or stored using a ladder or elevator sorting technique. As will also be discussed in greater detail below, because the write commands are stored and executed in this manner, less power is consumed for each executed write command. As a result, the cost of operating the system 100 decreases.
As also shown in
For example, in some embodiments, the control circuitry 135 may cause the writes commands to be executed at a slower rate than the commands 115 are received from the host device 110. As such, the depth of the command queue 125 may continue to increase until the predetermined depth is reached. Once the predetermined depth is reached, the commands in the internal command queue are executed such as described above.
For example, commands may be executed at a first rate which causes the depth of the internal command queue 125 to increase. Once the depth of the internal command queue 125 reaches the predetermined threshold, the commands are executed at a second rate that is greater than or faster than the first rate. The commands are executed at this pace until the depth of the internal command queue 125 reaches a predetermined minimum threshold. At that point, execution of received commands may again proceed at the first rate.
As shown in
As shown in the state diagram 300, the storage device may remain in the idle state 310 until a command is received. In some embodiments, the command is received from a host device. In another embodiment, the storage device may remain in the idle state 310 until a command is retrieved from a command queue, such as, for example, the internal command queue of the storage device. As discussed above, the command that is received or retrieved may be a read command or a write command
Regardless of whether the commands are received directly from a host device or retrieved from a command queue, when the command is read (identified in the state diagram as the transition “get a read” 315) the storage device performs the requested read command at state 320. In some embodiments, multiple read commands may be received from the host device and/or retrieved from the command queue. As such, the read commands are performed until the command queue contains no reads (shown by the transition “queue contains no reads” 335) or contains substantially no reads (e.g., the queue depth of the command queue reaches a minimum threshold). Once this occurs, the storage device reenters the idle state 310.
In some embodiments, the system memory may include a determination module configured to determine whether the received commands are write commands or read commands. If the received command is a read command, the read command may be executed and the results returned to the host device without storing the received read command in the internal command queue. However, once the reads have been executed, the storage device 120 returns to the idle state 310 such as discussed above. If the received command is a write command, the write command is stored in an internal command queue that is associated with the storage device 120.
Referring back to
In some embodiments, as writes are being performed, the storage device may be required to perform a read command (shown by transition 340), or a read command may be encountered in the command queue. In such circumstances, flow proceeds to state 320 in which the read operation is performed and the information is returned to the host device. Once the read has been performed and the read queue is empty (shown by transition 335), the storage device may return to the idle state 310.
In the graph of
For example, as shown in
Method 600 begins when a command is received at operation 610 from a host device such as, for example, host device 110 shown and described above with respect to
Once the command has been received from the host device, the received command may be stored 620 in an internal command queue. In some embodiments, the internal command queue may be a power safe write buffer that is configured to store the received commands and/or data associated with the received commands until the commands are actually executed and/or written to a storage location in the system memory. As discussed above, although the command may not actually have been executed by the storage device, the storage device may send a response to the host device that the command has been received and successfully executed.
Once a command has been received and stored in the internal command queue, the depth of the command queue is checked to determine if the depth of the command queue exceeds a predetermined threshold. For example, if the command queue can hold up to sixty-four commands and the threshold amount of stored commands is fifty, a determination may be made as to whether at least fifty write commands have been received and stored in the internal command queue.
If the threshold has not been met or exceeded, flow proceeds to operation 650 and the write commands that are stored in the queue are not performed. The flow moves back to operation 610 in which another command is received from the host device and the process repeats.
However, if operation 630 determines that the queue depth of the internal command queue does exceed the predetermined threshold (e.g., more than fifty write commands are stored in the internal command queue), flow proceeds to operation 640 and one or more write commands in the internal command queue are executed. In some embodiments, operation 640 may be used to flush out the entire command queue. For example, if the depth of the command queue was fifty commands, operation 640 may require that all fifty commands are executed before any additional write commands are stored in the command queue.
In another embodiment, the depth of the command queue may be required to reach a minimum threshold or threshold capacity before the stored commands are no longer executed. Continuing with the example above, if the threshold to trigger operation was fifty commands such as described above, the data storage device may continue to execute the commands until the ten commands remained in the command queue. Once this occurs, the commands from the host are once again stored in the internal command queue. Once this point is reached, the flow proceeds back (not shown) to operation 610 and the process repeats.
In the embodiments described above, the received commands may be stored in the internal command queue without being executed until a queue depth reaches a predetermined depth. However, in some embodiments, any implementation in which the storage device is able to save power while still performing various write commands at a rate that is greater than host command rate is desirable.
For example, in an alternative or additional embodiment, a write performance of a data storage device with a power safe write buffer may be artificially slowed such that the rate of write commands received from the host occurs at a higher rate. Thus, although writes are still being performed, the rate at which the write commands are being received versus the rate at which the writes are being performed causes the depth of the internal command queue to increase. As a result, the depth of the command queue will eventually reach the predetermined depth. Once that point is reached, the commands in the command queue are executed such as described above.
In another implementation, the storage device may be configured to arbitrarily slow actuator seeks when commands are being received from the host device at a slower rate. As a result, power may be saved during the acceleration and deceleration seek phases of writes and/or random writes. In alternative embodiments, the drive may only slow actuator seeks for writes that are to be stored or protected by a power safe write buffer or only when a certain number of commands have been stored in the power safe write buffer.
In yet another embodiment, when determining what commands are to be executed, ladder or elevator sort commands may be used rather than rotational positional ordering sort commands such as described above. In these cases, elevator sorting results in relatively short seeks between commands and thus saves power. Additionally, elevator sorting commands may cause relative long excess latencies which may allow seeks to be slowed. As a result of the slower seeks, less power is consumed. In still yet other embodiments, the elevator sorting may be triggered by low IOPS or when the depth of the command queue is relatively low.
In another implementation, the speed of rotation of the disk may be slowed when commands received from the host device are relatively slow or low. In some embodiments, this may greatly affect power savings as spin power of a disk may represent a signification amount of power in the total drive power of the data storage device.
In still yet other embodiments, write commands, and more specifically data of those write commands, that are associated with a media based cache may be pushed out to a primary data storage in addition to the write commands received from the host device. This implementation may also save power.
Although specific examples have been given, embodiments described herein are directed to saving power by writing data or executing write commands at a rate that is greater than the rate at which the commands are being received from the host. As a result, the received commands can be stored and later executed when a threshold amount of commands have been received.
Once the commands have been stored in the command queue, flow proceeds to operation 720 and a determination is made as to whether the depth of the command queue exceeds predetermined threshold. Upon determining that the depth of the command queue exceeds the threshold, the write commands in the command queue are executed at operation 730. However, upon determining that the depth of the command queue does not exceed the predetermine threshold, the commands in the command queue are not written.
In many embodiments, the method of
As used herein, “non-volatile solid-state memory,” “non-volatile memory,” “NVM,” or variations thereof may refer to solid-state memory such as NAND flash. “Non-volatile memory” may additionally refer to rotating magnetic media. However, embodiments of the present disclosure may also be useful in other hard drives and hybrid drives including both solid-state and hard drive components. Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), MRAM, or other discrete NVM (non-volatile solid-state memory) chips. The non-volatile solid-state memory arrays or storage devices may be physically divided into planes, blocks, pages, and sectors, as is known in the art. Other forms of storage (e.g., battery backed-up volatile DRAM or SRAM devices, magnetic disk drives, etc.) may additionally or alternatively be used.
Additionally, embodiments of the present disclosure are described above with reference to block diagrams and operational illustrations of methods and the like. The operations described may occur out of the order as shown in any of the figures. One or more operations may be removed or executed substantially concurrently. For example, two blocks shown in succession may be executed substantially concurrently. Additionally, the blocks may be executed in the reverse order.
The description and illustration of one or more embodiments provided in this disclosure are not intended to limit or restrict the scope of the present disclosure as claimed. The embodiments, examples, and details provided in this disclosure are considered sufficient to convey possession and enable others to make and use the best mode of the claimed embodiments. Additionally, the claimed embodiments should not be construed as being limited to any embodiment, example, or detail provided above. Regardless of whether shown and described in combination or separately, the various features, including structural features and methodological features, are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate embodiments falling within the spirit of the broader aspects of the embodiments described herein that do not depart from the broader scope of the claimed embodiments.
Number | Name | Date | Kind |
---|---|---|---|
6018789 | Sokolov et al. | Jan 2000 | A |
6065095 | Sokolov et al. | May 2000 | A |
6078452 | Kittilson et al. | Jun 2000 | A |
6081447 | Lofgren et al. | Jun 2000 | A |
6092149 | Hicken et al. | Jul 2000 | A |
6092150 | Sokolov et al. | Jul 2000 | A |
6094707 | Sokolov et al. | Jul 2000 | A |
6105104 | Guttmann et al. | Aug 2000 | A |
6111717 | Cloke et al. | Aug 2000 | A |
6145052 | Howe et al. | Nov 2000 | A |
6175893 | D'Souza et al. | Jan 2001 | B1 |
6178056 | Cloke et al. | Jan 2001 | B1 |
6191909 | Cloke et al. | Feb 2001 | B1 |
6195218 | Guttmann et al. | Feb 2001 | B1 |
6205494 | Williams | Mar 2001 | B1 |
6208477 | Cloke et al. | Mar 2001 | B1 |
6223303 | Billings et al. | Apr 2001 | B1 |
6230233 | Lofgren et al. | May 2001 | B1 |
6246346 | Cloke et al. | Jun 2001 | B1 |
6249393 | Billings et al. | Jun 2001 | B1 |
6256695 | Williams | Jul 2001 | B1 |
6262857 | Hull et al. | Jul 2001 | B1 |
6263459 | Schibilla | Jul 2001 | B1 |
6272694 | Weaver et al. | Aug 2001 | B1 |
6278568 | Cloke et al. | Aug 2001 | B1 |
6279089 | Schibilla et al. | Aug 2001 | B1 |
6289484 | Rothberg et al. | Sep 2001 | B1 |
6292912 | Cloke et al. | Sep 2001 | B1 |
6310740 | Dunbar et al. | Oct 2001 | B1 |
6317850 | Rothberg | Nov 2001 | B1 |
6327106 | Rothberg | Dec 2001 | B1 |
6337778 | Gagne | Jan 2002 | B1 |
6369969 | Christiansen et al. | Apr 2002 | B1 |
6384999 | Schibilla | May 2002 | B1 |
6388833 | Golowka et al. | May 2002 | B1 |
6405342 | Lee | Jun 2002 | B1 |
6408357 | Hanmann et al. | Jun 2002 | B1 |
6408406 | Parris | Jun 2002 | B1 |
6411452 | Cloke | Jun 2002 | B1 |
6411458 | Billings et al. | Jun 2002 | B1 |
6412083 | Rothberg et al. | Jun 2002 | B1 |
6415349 | Hull et al. | Jul 2002 | B1 |
6425128 | Krapf et al. | Jul 2002 | B1 |
6441981 | Cloke et al. | Aug 2002 | B1 |
6442328 | Elliott et al. | Aug 2002 | B1 |
6445524 | Nazarian et al. | Sep 2002 | B1 |
6449767 | Krapf et al. | Sep 2002 | B1 |
6453115 | Boyle | Sep 2002 | B1 |
6470420 | Hospodor | Oct 2002 | B1 |
6480020 | Jung et al. | Nov 2002 | B1 |
6480349 | Kim et al. | Nov 2002 | B1 |
6480932 | Vallis et al. | Nov 2002 | B1 |
6483986 | Krapf | Nov 2002 | B1 |
6487032 | Cloke et al. | Nov 2002 | B1 |
6490635 | Holmes | Dec 2002 | B1 |
6493173 | Kim et al. | Dec 2002 | B1 |
6499083 | Hamlin | Dec 2002 | B1 |
6519104 | Cloke et al. | Feb 2003 | B1 |
6523086 | Lee | Feb 2003 | B1 |
6525892 | Dunbar et al. | Feb 2003 | B1 |
6545830 | Briggs et al. | Apr 2003 | B1 |
6546489 | Frank, Jr. et al. | Apr 2003 | B1 |
6550021 | Dalphy et al. | Apr 2003 | B1 |
6552880 | Dunbar et al. | Apr 2003 | B1 |
6553457 | Wilkins et al. | Apr 2003 | B1 |
6578106 | Price | Jun 2003 | B1 |
6580573 | Hull et al. | Jun 2003 | B1 |
6594183 | Lofgren et al. | Jul 2003 | B1 |
6600620 | Krounbi et al. | Jul 2003 | B1 |
6601137 | Castro et al. | Jul 2003 | B1 |
6603622 | Christiansen et al. | Aug 2003 | B1 |
6603625 | Hospodor et al. | Aug 2003 | B1 |
6604220 | Lee | Aug 2003 | B1 |
6606682 | Dang et al. | Aug 2003 | B1 |
6606714 | Thelin | Aug 2003 | B1 |
6606717 | Yu et al. | Aug 2003 | B1 |
6611393 | Nguyen et al. | Aug 2003 | B1 |
6615312 | Hamlin et al. | Sep 2003 | B1 |
6639748 | Christiansen et al. | Oct 2003 | B1 |
6647481 | Luu et al. | Nov 2003 | B1 |
6654193 | Thelin | Nov 2003 | B1 |
6657810 | Kupferman | Dec 2003 | B1 |
6661591 | Rothberg | Dec 2003 | B1 |
6665772 | Hamlin | Dec 2003 | B1 |
6687073 | Kupferman | Feb 2004 | B1 |
6687078 | Kim | Feb 2004 | B1 |
6687850 | Rothberg | Feb 2004 | B1 |
6690523 | Nguyen et al. | Feb 2004 | B1 |
6690882 | Hanmann et al. | Feb 2004 | B1 |
6691198 | Hamlin | Feb 2004 | B1 |
6691213 | Luu et al. | Feb 2004 | B1 |
6691255 | Rothberg et al. | Feb 2004 | B1 |
6693760 | Krounbi et al. | Feb 2004 | B1 |
6694477 | Lee | Feb 2004 | B1 |
6697914 | Hospodor et al. | Feb 2004 | B1 |
6704153 | Rothberg et al. | Mar 2004 | B1 |
6708251 | Boyle et al. | Mar 2004 | B1 |
6710951 | Cloke | Mar 2004 | B1 |
6711628 | Thelin | Mar 2004 | B1 |
6711635 | Wang | Mar 2004 | B1 |
6711660 | Milne et al. | Mar 2004 | B1 |
6715044 | Lofgren et al. | Mar 2004 | B2 |
6724982 | Hamlin | Apr 2004 | B1 |
6725329 | Ng et al. | Apr 2004 | B1 |
6735650 | Rothberg | May 2004 | B1 |
6735693 | Hamlin | May 2004 | B1 |
6744772 | Eneboe et al. | Jun 2004 | B1 |
6745283 | Dang | Jun 2004 | B1 |
6751402 | Elliott et al. | Jun 2004 | B1 |
6757481 | Nazarian et al. | Jun 2004 | B1 |
6772281 | Hamlin | Aug 2004 | B2 |
6781826 | Goldstone et al. | Aug 2004 | B1 |
6782449 | Codilian et al. | Aug 2004 | B1 |
6791779 | Singh et al. | Sep 2004 | B1 |
6792486 | Hanan et al. | Sep 2004 | B1 |
6799274 | Hamlin | Sep 2004 | B1 |
6811427 | Garrett et al. | Nov 2004 | B2 |
6826003 | Subrahmanyam | Nov 2004 | B1 |
6826614 | Hanmann et al. | Nov 2004 | B1 |
6832041 | Boyle | Dec 2004 | B1 |
6832929 | Garrett et al. | Dec 2004 | B2 |
6845405 | Thelin | Jan 2005 | B1 |
6845427 | Atai-Azimi | Jan 2005 | B1 |
6850443 | Lofgren et al. | Feb 2005 | B2 |
6851055 | Boyle et al. | Feb 2005 | B1 |
6851063 | Boyle et al. | Feb 2005 | B1 |
6853731 | Boyle et al. | Feb 2005 | B1 |
6854022 | Thelin | Feb 2005 | B1 |
6862660 | Wilkins et al. | Mar 2005 | B1 |
6880043 | Castro et al. | Apr 2005 | B1 |
6882486 | Kupferman | Apr 2005 | B1 |
6884085 | Goldstone | Apr 2005 | B1 |
6888831 | Hospodor et al. | May 2005 | B1 |
6892217 | Hanmann et al. | May 2005 | B1 |
6892249 | Codilian et al. | May 2005 | B1 |
6892313 | Codilian et al. | May 2005 | B1 |
6895455 | Rothberg | May 2005 | B1 |
6895500 | Rothberg | May 2005 | B1 |
6898730 | Hanan | May 2005 | B1 |
6910099 | Wang et al. | Jun 2005 | B1 |
6928470 | Hamlin | Aug 2005 | B1 |
6931439 | Hanmann et al. | Aug 2005 | B1 |
6934104 | Kupferman | Aug 2005 | B1 |
6934713 | Schwartz et al. | Aug 2005 | B2 |
6940873 | Boyle et al. | Sep 2005 | B2 |
6943978 | Lee | Sep 2005 | B1 |
6948165 | Luu et al. | Sep 2005 | B1 |
6950267 | Liu et al. | Sep 2005 | B1 |
6954733 | Ellis et al. | Oct 2005 | B1 |
6961814 | Thelin et al. | Nov 2005 | B1 |
6965489 | Lee et al. | Nov 2005 | B1 |
6965563 | Hospodor et al. | Nov 2005 | B1 |
6965966 | Rothberg et al. | Nov 2005 | B1 |
6967799 | Lee | Nov 2005 | B1 |
6968422 | Codilian et al. | Nov 2005 | B1 |
6968450 | Rothberg et al. | Nov 2005 | B1 |
6973495 | Milne et al. | Dec 2005 | B1 |
6973570 | Hamlin | Dec 2005 | B1 |
6976190 | Goldstone | Dec 2005 | B1 |
6983316 | Milne et al. | Jan 2006 | B1 |
6986007 | Procyk et al. | Jan 2006 | B1 |
6986154 | Price et al. | Jan 2006 | B1 |
6995933 | Codilian et al. | Feb 2006 | B1 |
6996501 | Rothberg | Feb 2006 | B1 |
6996669 | Dang et al. | Feb 2006 | B1 |
7002926 | Eneboe et al. | Feb 2006 | B1 |
7003674 | Hamlin | Feb 2006 | B1 |
7006316 | Sargenti, Jr. et al. | Feb 2006 | B1 |
7009820 | Hogg | Mar 2006 | B1 |
7023639 | Kupferman | Apr 2006 | B1 |
7024491 | Hanmann et al. | Apr 2006 | B1 |
7024549 | Luu et al. | Apr 2006 | B1 |
7024614 | Thelin et al. | Apr 2006 | B1 |
7027716 | Boyle et al. | Apr 2006 | B1 |
7028174 | Atai-Azimi et al. | Apr 2006 | B1 |
7031902 | Catiller | Apr 2006 | B1 |
7046465 | Kupferman | May 2006 | B1 |
7046488 | Hogg | May 2006 | B1 |
7050252 | Vallis | May 2006 | B1 |
7054937 | Milne et al. | May 2006 | B1 |
7055000 | Severtson | May 2006 | B1 |
7055167 | Masters | May 2006 | B1 |
7057836 | Kupferman | Jun 2006 | B1 |
7062398 | Rothberg | Jun 2006 | B1 |
7075746 | Kupferman | Jul 2006 | B1 |
7076604 | Thelin | Jul 2006 | B1 |
7082494 | Thelin et al. | Jul 2006 | B1 |
7088538 | Codilian et al. | Aug 2006 | B1 |
7088545 | Singh et al. | Aug 2006 | B1 |
7092186 | Hogg | Aug 2006 | B1 |
7095577 | Codilian et al. | Aug 2006 | B1 |
7099095 | Subrahmanyam et al. | Aug 2006 | B1 |
7106537 | Bennett | Sep 2006 | B1 |
7106947 | Boyle et al. | Sep 2006 | B2 |
7110202 | Vasquez | Sep 2006 | B1 |
7111116 | Boyle et al. | Sep 2006 | B1 |
7114029 | Thelin | Sep 2006 | B1 |
7120737 | Thelin | Oct 2006 | B1 |
7120806 | Codilian et al. | Oct 2006 | B1 |
7126776 | Warren, Jr. et al. | Oct 2006 | B1 |
7129763 | Bennett et al. | Oct 2006 | B1 |
7133600 | Boyle | Nov 2006 | B1 |
7136244 | Rothberg | Nov 2006 | B1 |
7146094 | Boyle | Dec 2006 | B1 |
7149046 | Coker et al. | Dec 2006 | B1 |
7150036 | Milne et al. | Dec 2006 | B1 |
7155616 | Hamlin | Dec 2006 | B1 |
7171108 | Masters et al. | Jan 2007 | B1 |
7171110 | Wilshire | Jan 2007 | B1 |
7194576 | Boyle | Mar 2007 | B1 |
7200698 | Rothberg | Apr 2007 | B1 |
7205805 | Bennett | Apr 2007 | B1 |
7206497 | Boyle et al. | Apr 2007 | B1 |
7215496 | Kupferman et al. | May 2007 | B1 |
7215771 | Hamlin | May 2007 | B1 |
7237054 | Cain et al. | Jun 2007 | B1 |
7240161 | Boyle | Jul 2007 | B1 |
7249365 | Price et al. | Jul 2007 | B1 |
7263709 | Krapf | Aug 2007 | B1 |
7274639 | Codilian et al. | Sep 2007 | B1 |
7274659 | Hospodor | Sep 2007 | B2 |
7275116 | Hanmann et al. | Sep 2007 | B1 |
7280302 | Masiewicz | Oct 2007 | B1 |
7292774 | Masters et al. | Nov 2007 | B1 |
7292775 | Boyle et al. | Nov 2007 | B1 |
7296284 | Price et al. | Nov 2007 | B1 |
7302501 | Cain et al. | Nov 2007 | B1 |
7302579 | Cain et al. | Nov 2007 | B1 |
7318088 | Mann | Jan 2008 | B1 |
7319806 | Willner et al. | Jan 2008 | B1 |
7325244 | Boyle et al. | Jan 2008 | B2 |
7330323 | Singh et al. | Feb 2008 | B1 |
7346790 | Klein | Mar 2008 | B1 |
7366641 | Masiewicz et al. | Apr 2008 | B1 |
7369340 | Dang et al. | May 2008 | B1 |
7369343 | Yeo et al. | May 2008 | B1 |
7372650 | Kupferman | May 2008 | B1 |
7380147 | Sun | May 2008 | B1 |
7392340 | Dang et al. | Jun 2008 | B1 |
7404013 | Masiewicz | Jul 2008 | B1 |
7406545 | Rothberg et al. | Jul 2008 | B1 |
7415571 | Hanan | Aug 2008 | B1 |
7436610 | Thelin | Oct 2008 | B1 |
7437502 | Coker | Oct 2008 | B1 |
7440214 | Ell et al. | Oct 2008 | B1 |
7451344 | Rothberg | Nov 2008 | B1 |
7471483 | Ferris et al. | Dec 2008 | B1 |
7471486 | Coker et al. | Dec 2008 | B1 |
7486060 | Bennett | Feb 2009 | B1 |
7496493 | Stevens | Feb 2009 | B1 |
7518819 | Yu et al. | Apr 2009 | B1 |
7526184 | Parkinen et al. | Apr 2009 | B1 |
7539924 | Vasquez et al. | May 2009 | B1 |
7543117 | Hanan | Jun 2009 | B1 |
7551383 | Kupferman | Jun 2009 | B1 |
7562282 | Rothberg | Jul 2009 | B1 |
7577973 | Kapner, III et al. | Aug 2009 | B1 |
7596797 | Kapner, III et al. | Sep 2009 | B1 |
7599139 | Bombet et al. | Oct 2009 | B1 |
7619841 | Kupferman | Nov 2009 | B1 |
7647544 | Masiewicz | Jan 2010 | B1 |
7649704 | Bombet et al. | Jan 2010 | B1 |
7653927 | Kapner, III et al. | Jan 2010 | B1 |
7656603 | Feb 2010 | B1 | |
7656763 | Jin et al. | Feb 2010 | B1 |
7657149 | Boyle | Feb 2010 | B2 |
7672072 | Boyle et al. | Mar 2010 | B1 |
7673075 | Masiewicz | Mar 2010 | B1 |
7688540 | Mei et al. | Mar 2010 | B1 |
7724461 | McFadyen et al. | May 2010 | B1 |
7725584 | Hanmann et al. | May 2010 | B1 |
7730295 | Lee | Jun 2010 | B1 |
7760458 | Trinh | Jul 2010 | B1 |
7768776 | Szeremeta et al. | Aug 2010 | B1 |
7804657 | Hogg et al. | Sep 2010 | B1 |
7813954 | Price et al. | Oct 2010 | B1 |
7827320 | Stevens | Nov 2010 | B1 |
7839588 | Dang et al. | Nov 2010 | B1 |
7840751 | Lubbers | Nov 2010 | B2 |
7843660 | Yeo | Nov 2010 | B1 |
7852596 | Boyle et al. | Dec 2010 | B2 |
7859782 | Lee | Dec 2010 | B1 |
7872822 | Rothberg | Jan 2011 | B1 |
7898756 | Wang | Mar 2011 | B1 |
7898762 | Guo et al. | Mar 2011 | B1 |
7900037 | Fallone et al. | Mar 2011 | B1 |
7907364 | Boyle et al. | Mar 2011 | B2 |
7925825 | Brittain | Apr 2011 | B2 |
7929234 | Boyle et al. | Apr 2011 | B1 |
7930469 | Brittain | Apr 2011 | B2 |
7933087 | Tsai et al. | Apr 2011 | B1 |
7933090 | Jung et al. | Apr 2011 | B1 |
7934030 | Sargenti, Jr. et al. | Apr 2011 | B1 |
7940491 | Szeremeta et al. | May 2011 | B2 |
7944639 | Wang | May 2011 | B1 |
7945727 | Rothberg et al. | May 2011 | B2 |
7949564 | Hughes et al. | May 2011 | B1 |
7974029 | Tsai et al. | Jul 2011 | B2 |
7974039 | Xu et al. | Jul 2011 | B1 |
7982993 | Tsai et al. | Jul 2011 | B1 |
7984200 | Bombet et al. | Jul 2011 | B1 |
7990648 | Wang | Aug 2011 | B1 |
7992179 | Kapner, III et al. | Aug 2011 | B1 |
8004785 | Tsai et al. | Aug 2011 | B1 |
8006027 | Stevens et al. | Aug 2011 | B1 |
8014094 | Jin | Sep 2011 | B1 |
8014977 | Masiewicz et al. | Sep 2011 | B1 |
8019914 | Vasquez et al. | Sep 2011 | B1 |
8040625 | Boyle et al. | Oct 2011 | B1 |
8078943 | Lee | Dec 2011 | B1 |
8079045 | Krapf et al. | Dec 2011 | B2 |
8082433 | Fallone et al. | Dec 2011 | B1 |
8085487 | Jung et al. | Dec 2011 | B1 |
8089719 | Dakroub | Jan 2012 | B1 |
8090902 | Bennett et al. | Jan 2012 | B1 |
8090906 | Blaha et al. | Jan 2012 | B1 |
8091112 | Elliott et al. | Jan 2012 | B1 |
8094396 | Zhang et al. | Jan 2012 | B1 |
8094401 | Peng et al. | Jan 2012 | B1 |
8116020 | Lee | Feb 2012 | B1 |
8116025 | Chan et al. | Feb 2012 | B1 |
8134793 | Vasquez et al. | Mar 2012 | B1 |
8134798 | Thelin et al. | Mar 2012 | B1 |
8139301 | Li et al. | Mar 2012 | B1 |
8139310 | Hogg | Mar 2012 | B1 |
8144419 | Liu | Mar 2012 | B1 |
8145452 | Masiewicz et al. | Mar 2012 | B1 |
8149528 | Suratman et al. | Apr 2012 | B1 |
8154812 | Boyle et al. | Apr 2012 | B1 |
8159768 | Miyamura | Apr 2012 | B1 |
8161328 | Wilshire | Apr 2012 | B1 |
8164849 | Szeremeta et al. | Apr 2012 | B1 |
8174780 | Tsai et al. | May 2012 | B1 |
8190575 | Ong et al. | May 2012 | B1 |
8194338 | Zhang | Jun 2012 | B1 |
8194340 | Boyle et al. | Jun 2012 | B1 |
8194341 | Boyle | Jun 2012 | B1 |
8201066 | Wang | Jun 2012 | B1 |
8271692 | Dinh et al. | Sep 2012 | B1 |
8279550 | Hogg | Oct 2012 | B1 |
8281218 | Ybarra et al. | Oct 2012 | B1 |
8285923 | Stevens | Oct 2012 | B2 |
8289656 | Huber | Oct 2012 | B1 |
8305705 | Roohr | Nov 2012 | B1 |
8307156 | Codilian et al. | Nov 2012 | B1 |
8310775 | Boguslawski et al. | Nov 2012 | B1 |
8315006 | Chahwan et al. | Nov 2012 | B1 |
8316263 | Gough et al. | Nov 2012 | B1 |
8320067 | Tsai et al. | Nov 2012 | B1 |
8324974 | Bennett | Dec 2012 | B1 |
8332695 | Dalphy et al. | Dec 2012 | B2 |
8341337 | Ong et al. | Dec 2012 | B1 |
8350628 | Bennett | Jan 2013 | B1 |
8356184 | Meyer et al. | Jan 2013 | B1 |
8364992 | Guthrie | Jan 2013 | B2 |
8370683 | Ryan et al. | Feb 2013 | B1 |
8375225 | Ybarra | Feb 2013 | B1 |
8375274 | Bonke | Feb 2013 | B1 |
8380922 | DeForest et al. | Feb 2013 | B1 |
8390948 | Hogg | Mar 2013 | B2 |
8390952 | Szeremeta | Mar 2013 | B1 |
8392689 | Lott | Mar 2013 | B1 |
8407393 | Yolar et al. | Mar 2013 | B1 |
8413010 | Vasquez et al. | Apr 2013 | B1 |
8417566 | Price et al. | Apr 2013 | B2 |
8421663 | Bennett | Apr 2013 | B1 |
8422172 | Dakroub et al. | Apr 2013 | B1 |
8427771 | Tsai | Apr 2013 | B1 |
8429343 | Tsai | Apr 2013 | B1 |
8433937 | Wheelock et al. | Apr 2013 | B1 |
8433977 | Vasquez et al. | Apr 2013 | B1 |
8458526 | Dalphy et al. | Jun 2013 | B2 |
8462466 | Huber | Jun 2013 | B2 |
8467151 | Huber | Jun 2013 | B1 |
8489841 | Strecke et al. | Jul 2013 | B1 |
8493679 | Boguslawski et al. | Jul 2013 | B1 |
8498074 | Mobley et al. | Jul 2013 | B1 |
8499198 | Messenger et al. | Jul 2013 | B1 |
8512049 | Huber et al. | Aug 2013 | B1 |
8514506 | Li et al. | Aug 2013 | B1 |
8531791 | Reid et al. | Sep 2013 | B1 |
8554741 | Malina | Oct 2013 | B1 |
8560759 | Boyle et al. | Oct 2013 | B1 |
8565053 | Chung | Oct 2013 | B1 |
8576511 | Coker et al. | Nov 2013 | B1 |
8578100 | Huynh et al. | Nov 2013 | B1 |
8578242 | Burton et al. | Nov 2013 | B1 |
8589773 | Wang et al. | Nov 2013 | B1 |
8593753 | Anderson | Nov 2013 | B1 |
8595432 | Vinson et al. | Nov 2013 | B1 |
8599510 | Fallone | Dec 2013 | B1 |
8601248 | Thorsted | Dec 2013 | B2 |
8611032 | Champion et al. | Dec 2013 | B2 |
8612650 | Carrie et al. | Dec 2013 | B1 |
8612706 | Madril et al. | Dec 2013 | B1 |
8612798 | Tsai | Dec 2013 | B1 |
8619383 | Jung et al. | Dec 2013 | B1 |
8621115 | Bombet et al. | Dec 2013 | B1 |
8621133 | Boyle | Dec 2013 | B1 |
8626463 | Stevens et al. | Jan 2014 | B2 |
8630052 | Jung et al. | Jan 2014 | B1 |
8630056 | Ong | Jan 2014 | B1 |
8631188 | Heath et al. | Jan 2014 | B1 |
8634158 | Chahwan et al. | Jan 2014 | B1 |
8635412 | Wilshire | Jan 2014 | B1 |
8640007 | Schulze | Jan 2014 | B1 |
8654619 | Cheng | Feb 2014 | B1 |
8661193 | Cobos et al. | Feb 2014 | B1 |
8667248 | Neppalli | Mar 2014 | B1 |
8670205 | Malina et al. | Mar 2014 | B1 |
8683295 | Syu et al. | Mar 2014 | B1 |
8683457 | Hughes et al. | Mar 2014 | B1 |
8687306 | Coker et al. | Apr 2014 | B1 |
8693133 | Lee et al. | Apr 2014 | B1 |
8694841 | Chung et al. | Apr 2014 | B1 |
8699159 | Malina | Apr 2014 | B1 |
8699171 | Boyle | Apr 2014 | B1 |
8699172 | Gunderson et al. | Apr 2014 | B1 |
8699175 | Olds et al. | Apr 2014 | B1 |
8699185 | Teh et al. | Apr 2014 | B1 |
8700850 | Lalouette | Apr 2014 | B1 |
8743502 | Bonke et al. | Jun 2014 | B1 |
8749910 | Dang et al. | Jun 2014 | B1 |
8751699 | Tsai et al. | Jun 2014 | B1 |
8755141 | Dang | Jun 2014 | B1 |
8755143 | Wilson et al. | Jun 2014 | B2 |
8756361 | Pruett et al. | Jun 2014 | B1 |
8756382 | Carlson et al. | Jun 2014 | B1 |
8769593 | Elliott et al. | Jul 2014 | B1 |
8773802 | Anderson et al. | Jul 2014 | B1 |
8780478 | Huynh et al. | Jul 2014 | B1 |
8782334 | Boyle et al. | Jul 2014 | B1 |
8793532 | Tsai et al. | Jul 2014 | B1 |
8797669 | Burton et al. | Aug 2014 | B1 |
8799977 | Kapner, III et al. | Aug 2014 | B1 |
8819375 | Pruett et al. | Aug 2014 | B1 |
8825976 | Jones | Sep 2014 | B1 |
8825977 | Syu et al. | Sep 2014 | B1 |
20010011323 | Ohta | Aug 2001 | A1 |
20030056034 | Olds | Mar 2003 | A1 |
20040202073 | Lai | Oct 2004 | A1 |
20060047897 | Thiessen | Mar 2006 | A1 |
20070016725 | Chu | Jan 2007 | A1 |
20070283086 | Bates | Dec 2007 | A1 |
20080209103 | Haga | Aug 2008 | A1 |
20090006689 | Lubbers | Jan 2009 | A1 |
20090066689 | Yamaguchi | Mar 2009 | A1 |
20090113702 | Hogg | May 2009 | A1 |
20090193121 | Shin | Jul 2009 | A1 |
20100199033 | Nguyen | Aug 2010 | A1 |
20100306551 | Meyer et al. | Dec 2010 | A1 |
20110161555 | Olds | Jun 2011 | A1 |
20110226729 | Hogg | Sep 2011 | A1 |
20110283044 | Olds | Nov 2011 | A1 |
20120159042 | Lott et al. | Jun 2012 | A1 |
20120260047 | Haines | Oct 2012 | A1 |
20120275050 | Wilson et al. | Nov 2012 | A1 |
20120281963 | Krapf et al. | Nov 2012 | A1 |
20120317354 | Yokota | Dec 2012 | A1 |
20120324980 | Nguyen et al. | Dec 2012 | A1 |
20130191607 | Walls | Jul 2013 | A1 |
20130262762 | Igashira | Oct 2013 | A1 |
20130318283 | Small | Nov 2013 | A1 |
20140201424 | Chen et al. | Jul 2014 | A1 |
20150046605 | Barrell | Feb 2015 | A1 |
20150286438 | Simionescu | Oct 2015 | A1 |