1. Technical Field
This disclosure relates to data storage systems for computer systems. More particularly, the disclosure relates to writing selected data to a storage medium.
2. Related Art
Data storage systems provide storage for data of a host system. Data is grouped for storage in units of predetermined size referred to as logical blocks which are written to storage media. When writing the logical blocks of data to storage media, for example, in a solid state drive (SSD) or hybrid drive, data may be written in larger units, for example logical pages (L-pages), made up of a plurality of logical blocks. At times it becomes advantageous to write the same new data in a large number of logical blocks spanning several logical pages in the storage medium, or to write new different data to only some of the logical blocks included in a logical page in the storage medium.
Aspects and features of the present inventive concept will be more apparent by describing example embodiments with reference to the accompanying drawings, in which:
While certain embodiments are described, these embodiments are presented by way of example only, and are not intended to limit the scope of protection. The methods and apparatuses described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions, and changes in the form of the example methods and apparatuses described herein may be made without departing from the scope of protection.
Overview
Solid state drives (SSDs) are employed as data storage systems for computer systems. To modify data stored in a memory location of such a data storage system, data may be written in larger units, for example logical pages, made up of a plurality of logical blocks. For example, a 4 kilobyte (kB) logical page may consist of eight 512 byte logical blocks. At times it becomes advantageous to write identical data into a range of consecutive logical blocks or to modify data in non-consecutive logical blocks within a range of consecutive logical blocks.
System Overview
One aspect of the present inventive concept is directed to a Write Same apparatus and method which writes the same data into a sequential plurality of logical blocks. In one example embodiment of the Write Same apparatus, the apparatus receives a command including a starting logical block address (LBA), a range of LBA's (i.e., a value indicating the number of logical blocks into which data is to be written), and a block of data to be written into the logical blocks.
The Write Same apparatus operates to write the received block of data into each logical block in the specified range of LBA's beginning at the starting LBA. The Write Same apparatus performs a read-modify-write operation (RMW) if the first write operation does not begin on a logical page boundary or the last write operation does not end on a logical page boundary, merging logical page blocks on-the-fly and performing the appropriate bit-modifications.
Another aspect of the present inventive concept is directed to a Skip Write apparatus and method. In one example embodiment of the Skip Write apparatus, the apparatus receives a command including a starting logical block address, a value indicating a range of logical block addresses, and a write mask. Output logical pages are generated by merging logical blocks into logical pages based on corresponding portions of the write mask.
The Skip Write apparatus operates on the logical pages as determined by a write mask, applying hardware optimization to what were formerly software processes. The Skip Write apparatus merges logical page blocks on-the-fly and performs the appropriate bit-modifications based on the write mask.
Write Same
The elements of the data storage apparatus 100 may be integrated on one semiconductor chip or may be separate dies integrated into one semiconductor package. One of ordinary skill in the art will understand that other configurations are possible and are included within the scope of the present inventive concept. For example, the functionalities performed by the described elements may be performed by other elements, and the elements may be combined into fewer elements and/or sub-divided into a greater number of elements.
In one embodiment, the command input device 110 receives a command including a starting logical block address (LBA), a value indicating a range of LBAs, and a logical block of data to be written into the logical blocks within the range of LBAs. For example, the command may be received from a host that is connected to the data storage apparatus 100. The received logical block of data is transferred to the first temporary storage 120. The first temporary storage 120 may be internal or external to the processor 130. The processor 130 duplicates the received logical block of data to generate a logical page with each logical block having the same data as the received logical block of data. For example, for logical page containing eight logical blocks, the processor 130 duplicates the received logical block seven times to generate a logical page containing eight logical blocks each containing the same data.
Each logical block may include, for example but not limited to, about 512 bytes of data, about 1,024 bytes of data, about 2,048 bytes of data, or about 4,096 bytes of data. In some cases, for example when a storage medium is erased or reformatted, the received logical block of data may contain all ones or all zeros, and the value indicating the range of logical block addresses may indicate all of the logical block addresses of the storage medium.
The processor 130 causes the generated logical page to be transferred to the second temporary storage 140. The second temporary storage 140 may be a queue included in a (RMW) module 195. The processor 130 may cause the second temporary storage 140 to be reserved prior to transferring the generated logical page. As shown, the RMW module 195 may additionally include the CRC circuitry 150 and the write circuitry 170.
In one embodiment, the CRC circuitry 150 generates a CRC value based on at least the data and the LBA of each logical block and compares the CRC of the logical block data ready to be written with the CRC of the logical block data as received. If the CRCs do not match, the logical block data to be written is marked invalid. Although CRCs are mentioned in the example embodiments in this disclosure, the use of other error detection mechanisms for example, but not limited to, checksums and hash functions, etc., are possible in some embodiments.
In one embodiment, the write circuitry 170 outputs valid data to the storage medium 190. The counter 180 counts the number of logical blocks written to the storage medium 190 and generates a count value. The comparison circuitry 170 compares the count value to the value indicating a range of LBAs to be written. If the values match, the comparison circuitry 160 generates a signal indicating that the write same operation is complete. In some embodiments, the write same operation is subordinated to other (RMW) operations, so the write circuitry writes the logical page from the second temporary storage into the storage medium as a background task to other write operations involving merging.
In some cases, the first write operation does not begin on a logical page boundary and/or the last write operation does not end on a logical page boundary. In such cases, the (RMW) module 195 performs a RMW operation to modify only the logical blocks specified for the write mask for the corresponding logical page.
In the RMW operation, the generated logical page may be stored in the second temporary storage 140. A second logical page including a plurality of blocks is retrieved from the storage medium 190 by the RMW module 195. Sectors of the generated logical page and second logical page are merged via a plurality of data paths and multiplexers to generate a merged output logical page. In addition, a CRC for the merged output logical page is generated by calculating and accumulating on a block-by-block basis CRC data of the generated logical page and second logical page blocks merged to generate the merged output logical page.
The blocks of at least one of the generated logical page and second logical page are reconstructed into a check-data logical page as the merged output logical page is being generated. Alternatively, both of the generated logical page and second logical page may be reconstructed into check-data logical pages as the merged output logical page as being generated.
A CRC is calculated and accumulated on a block-by-block basis for the check-data logical page, and an error check is performed on the at least one check-data logical page comprising blocks corresponding to those of the generated logical page and second logical page to verify the corresponding blocks of the merged output logical page. Since at least some of the blocks in the check-data logical page are transmitted on a subset of the plurality of data paths that transmits blocks of the merged output logical page, the error check of the at least one check-data logical page verifies the blocks from the at least one check-data logical page in the merged output logical page. In one example embodiment, the error check of both check-data logical pages verifies the blocks of the first and second check-data logical pages in the merged output logical page.
In one embodiment, the RMW module is further configured to calculate a data integrity field for each block and insert the calculated data integrity field between the blocks. Protection schemes for preventing data integrity errors during data transfer are defined by the ANSI T10 Data Integrity Feature (T10 DIF) standard. T10 DIF provides a way to check the integrity of data read and written from a host bus adapter to the disk and back through the storage area network (SAN) fabric. This check is implemented through a data integrity field (DIF) defined in the T10 standard.
A determination is made whether the first logical block address of the duplicated logical page begins at a logical page boundary of a current logical page or if the last logical block address of the duplicated logical page ends at a logical page boundary of a current logical page (230). If so (230-Y), a CRC is calculated as described above in the logical pages written to the storage medium (235). If the first logical block address of the duplicated logical page does not begin at a logical page boundary of a current logical page, or the last logical block address of the duplicated logical page does not correspond to a last logical block address of a current logical page (230-N), a RMW operation is performed to merge the corresponding logical blocks of the duplicated logical page into the current logical page (255).
After the logical page is written to the storage medium, the counter is updated with the number of blocks in the range of logical block addresses written (240). If the value in the counter does not equal the number of logical blocks in the range of logical block addresses to be written (245-N), the LBA is incremented by the number of logical blocks, in the range of logical block addresses, that are written in the current logical page (260), and the process repeats from operation 230. If all the blocks in the range of logical block addresses to be written have been written (245-Y) a write complete signal is generated (250) in the process ends.
Skip Write
The elements of the data storage apparatus 300 may be integrated on one semiconductor chip or may be separate dies integrated into one semiconductor package. One of ordinary skill in the art will understand that other configurations are possible and are included within the scope of the present inventive concept. For example, the functionalities performed by the described elements may be performed by other elements, and the elements may be combined into fewer elements and/or sub-divided into a greater number of elements.
The command input device 310 receives a command including a starting logical block address (LBA), a value indicating a range of LBAs, and a write mask. The write mask specifies LBAs of logical blocks into which logical blocks containing different data will be merged. The new logical blocks associated with the command are received and stored in temporary storage 320. Each logical block may include, for example but not limited to, about 512 bytes of data, about 1,024 bytes of data, about 2,048 bytes of data, or about 4,096 bytes of data.
In one embodiment, the input logic device 330 divides the write mask into portions corresponding to a number of logical blocks comprising a logical page and constructs a first logical page based on a corresponding portion of the write mask. For example, for logical pages containing eight logical blocks, the write mask is divided into portions each containing eight bits as merge indicators associated with LBAs.
In one embodiment, the input logic device 330 constructs the first logical page and retrieves a second logical page from a storage medium, for example storage medium 190 illustrated in
In one example embodiment, the first logical page is stored until a second logical page is retrieved. The second logical page is passed through the Skip Write apparatus 300 block-by-block at about the system clock speed and is merged with the stored first logical page. The first and second logical pages are processed by the first logic device 350 to determine whether the merged output logical page is valid.
Referring to
Conversely, logical blocks of the first logical page 610 which are not specified to merge into the output logical page by the corresponding portion of the write mask 670 are discarded (shown as LBs to discard 620) while logical blocks of the first logical page 610 which are specified to merge into the output logical page (shown as LBs to merge 630) by the corresponding portion of the write mask 670 are merged with the logical blocks to merge 660 of the second logical page 640 to generate the merged output logical page 680. In other words, logical blocks of the first logical page specified by the corresponding portion of the write mask are replaced by corresponding logical blocks of the second logical page in order to generate the merged output logical page and the unused sectors of the first and second logical pages are discarded.
While the above merge operations are described in terms of specified logical blocks of the second logical page which may be merged with logical blocks of the first logical page, one of ordinary skill in the art will appreciate that the scope of the present inventive concept also includes merging specified logical blocks of the first logical page with logical blocks of the second logical page. Also, while illustrated as such in
Referring again to
In one example embodiment, the first logic device 350 reconstructs the first and second logical pages as first and second check-data pages, respectively, and the CRCs of the check-data pages are calculated and accumulated by the first logic device 350 on a block-by-block basis. The first check-data page may include logical blocks that are transmitted on a first subset of data paths different from a subset of data paths that logical blocks of the first logical page merged into the output logical page are transmitted on, and the second check-data page may include logical blocks that are transmitted on a second subset of data paths different from the subset of data paths that logical blocks of the second logical page merged into the output logical page are transmitted on.
After processing the last logical block of the first and second logical pages, the CRC of the first logical page is transmitted to the first logic device 350. Simultaneously, the CRC of the second logical page is transmitted to the first logic device 350.
In one example embodiment, the first logic device 350 performs an error check by comparing the transmitted CRC of the first logical page to the CRC calculated for the first check-data page and compares the transmitted CRC of the second logical page to the CRC calculated for the second check-data page. If the received logical page CRCs matches the CRCs of the check-data pages, the merged output logical page will be valid since logical blocks of the merged output logical page passed through the same logic as the logical blocks of the check-data pages and no errors were introduced. If the CRCs do not match, a message is generated indicating that the merged output logical page is invalid. The validity can be verified this way because at least some of the logical blocks in the check-data page are transmitted on a subset of the plurality of data paths that also transmits logical blocks of the merged output logical page, so that the error check of the at least one check-data page verifies the merged output logical page. The use of output data from the actual merged logical page as part of the calculation of the check-data page CRC ensures that any error introduced along the path of the logical page merging mechanism is detected.
Concurrently with the generation of the merged output logical page, the second logic device 360 generates a CRC for the merged output logical page on a block-by-block basis. After the final logical block of the merged output logical page is outputted, the CRC generated by the second logic device 360 for the merged output logical page is outputted.
In a case where the values of a logical page portion of the write mask are all ones, the second logical page is outputted as the output logical page without being merged. Conversely, in a case where a logical page portion of the write mask values are all zeros, no logical page is outputted and the corresponding logical page data stored in the storage medium is not changed.
Referring again to
If the values in the corresponding portion of the write mask are all the same (435-Y), either new data will be written in all of the LBAs in the logical page corresponding to that portion of the write mask, for example all bits in the corresponding portion of the write mask are set to ‘1’, or no new data needs to be written in the logical page, for example all bits in the corresponding portion of the write mask are set to ‘0’. In the case where new data will be written in all of the LBAs in the logical page (440-Y), a first logical page is constructed using the received logical blocks associated with the command (450). A CRC is calculated for the logical page thus constructed and the logical page is written to the storage medium (470). The counter is incremented based on the number of LBAs processed (475). The value on the counter is compared to the value of the LBA range received in the command (480), and if the counter value matches the LBA range (480-Y), the counter generates a signal indicating that the skip write process is complete (485). Otherwise, the process returns to operation 430.
In the case where no new data needs to be written in the logical page (440-N), no write operation to the storage medium takes place (445). The counter is incremented based on the number of LBAs processed (475). The value on the counter is compared to the value of the LBA range received in the command (480), and if the counter value matches the LBA range (480-Y), the counter generates a signal indicating that the skip write process is complete (485). Otherwise, the process returns to operation 430.
In the case where all the write mask values are not the same (435-N), a second logical page is retrieved (455), and a first logical page is constructed using the received logical blocks associated with the command based on a corresponding portion of the write mask (460). The first and second logical pages are merged with a RMW operation as described above (465). A CRC is calculated for the logical page thus constructed and the logical page is written to the storage medium (470). The counter is incremented based on the number of LBAs processed (475). The value on the counter is compared to the value of the LBA range received in the command (480), and if the counter value matches the LBA range (480-Y), the counter generates a signal indicating that the skip write process is complete (485). Otherwise, the process returns to operation 430.
Operations of the present inventive concept may be performed in the order described, in a different order, or operations may be combined. One of ordinary skill in the art will appreciate that the foregoing processes are exemplary and that other variations are possible without departing from the inventive concept.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the protection. The methods and apparatuses described herein may be embodied in a variety of other forms. Various omissions, substitutions, and/or changes in the form of the example methods and apparatuses described herein may be made without departing from the spirit of the protection.
The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the protection. For example, the example apparatuses and methods disclosed herein can be applied to solid-state drives, hard disk drives, hybrid hard drives, and the like. In addition, other forms of storage, for example, but not limited to, DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc., may additionally or alternatively be used. As another example, the various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware. Also, the features and attributes of the specific example 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 example 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.
Number | Name | Date | Kind |
---|---|---|---|
5008886 | Chinnaswamy et al. | Apr 1991 | A |
5477541 | White et al. | Dec 1995 | A |
5778013 | Jedwab | Jul 1998 | A |
6856556 | Hajeck | Feb 2005 | B1 |
7126857 | Hajeck | Oct 2006 | B2 |
7171604 | Sydir et al. | Jan 2007 | B2 |
7203890 | Normoyle | Apr 2007 | B1 |
7430136 | Merry, Jr. et al. | Sep 2008 | B2 |
7447807 | Merry et al. | Nov 2008 | B1 |
7502256 | Merry, Jr. et al. | Mar 2009 | B2 |
7509441 | Merry et al. | Mar 2009 | B1 |
7596643 | Merry, Jr. et al. | Sep 2009 | B2 |
7653778 | Merry, Jr. et al. | Jan 2010 | B2 |
7685337 | Merry, Jr. et al. | Mar 2010 | B2 |
7685338 | Merry, Jr. et al. | Mar 2010 | B2 |
7685374 | Diggs et al. | Mar 2010 | B2 |
7733712 | Walston et al. | Jun 2010 | B1 |
7765373 | Merry et al. | Jul 2010 | B1 |
7898855 | Merry, Jr. et al. | Mar 2011 | B2 |
7912991 | Merry et al. | Mar 2011 | B1 |
7936603 | Merry, Jr. et al. | May 2011 | B2 |
7962792 | Diggs et al. | Jun 2011 | B2 |
8078918 | Diggs et al. | Dec 2011 | B2 |
8090899 | Syu | Jan 2012 | B1 |
8095851 | Diggs et al. | Jan 2012 | B2 |
8108692 | Merry et al. | Jan 2012 | B1 |
8108753 | Anderson et al. | Jan 2012 | B2 |
8112595 | Bar-El | Feb 2012 | B1 |
8122185 | Merry, Jr. et al. | Feb 2012 | B2 |
8127048 | Merry et al. | Feb 2012 | B1 |
8135903 | Kan | Mar 2012 | B1 |
8151020 | Merry, Jr. et al. | Apr 2012 | B2 |
8161227 | Diggs et al. | Apr 2012 | B1 |
8166245 | Diggs et al. | Apr 2012 | B2 |
8200890 | Terasaki et al. | Jun 2012 | B2 |
8243525 | Kan | Aug 2012 | B1 |
8250320 | Bar-El | Aug 2012 | B1 |
8254172 | Kan | Aug 2012 | B1 |
8261012 | Kan | Sep 2012 | B2 |
8296625 | Diggs et al. | Oct 2012 | B2 |
8312207 | Merry, Jr. et al. | Nov 2012 | B2 |
8316176 | Phan et al. | Nov 2012 | B1 |
8341339 | Boyle et al. | Dec 2012 | B1 |
8375151 | Kan | Feb 2013 | B1 |
8392635 | Booth et al. | Mar 2013 | B2 |
8397107 | Syu et al. | Mar 2013 | B1 |
8407449 | Colon et al. | Mar 2013 | B1 |
8423722 | Deforest et al. | Apr 2013 | B1 |
8433858 | Diggs et al. | Apr 2013 | B1 |
8443167 | Fallone et al. | May 2013 | B1 |
8447920 | Syu | May 2013 | B1 |
8458435 | Rainey, III et al. | Jun 2013 | B1 |
8478930 | Syu | Jul 2013 | B1 |
8489854 | Colon et al. | Jul 2013 | B1 |
8503237 | Horn | Aug 2013 | B1 |
8521972 | Boyle et al. | Aug 2013 | B1 |
8549236 | Diggs et al. | Oct 2013 | B2 |
8583835 | Kan | Nov 2013 | B1 |
8601311 | Horn | Dec 2013 | B2 |
8601313 | Horn | Dec 2013 | B1 |
8612669 | Syu et al. | Dec 2013 | B1 |
8612804 | Kang et al. | Dec 2013 | B1 |
8615681 | Horn | Dec 2013 | B2 |
8638602 | Horn | Jan 2014 | B1 |
8639872 | Boyle et al. | Jan 2014 | B1 |
8683113 | Abasto et al. | Mar 2014 | B2 |
8700834 | Horn et al. | Apr 2014 | B2 |
8700950 | Syu | Apr 2014 | B1 |
8700951 | Call et al. | Apr 2014 | B1 |
8706985 | Boyle et al. | Apr 2014 | B1 |
8707104 | Jean | Apr 2014 | B1 |
8713066 | Lo et al. | Apr 2014 | B1 |
8713357 | Jean et al. | Apr 2014 | B1 |
8719531 | Strange et al. | May 2014 | B2 |
8724422 | Agness et al. | May 2014 | B1 |
8725931 | Kang | May 2014 | B1 |
8745277 | Kan | Jun 2014 | B2 |
8751728 | Syu et al. | Jun 2014 | B1 |
8769190 | Syu et al. | Jul 2014 | B1 |
8769232 | Suryabudi et al. | Jul 2014 | B2 |
8775720 | Meyer et al. | Jul 2014 | B1 |
8782327 | Kang et al. | Jul 2014 | B1 |
8788778 | Boyle | Jul 2014 | B1 |
8788779 | Horn | Jul 2014 | B1 |
8788880 | Gosla et al. | Jul 2014 | B1 |
8793429 | Call et al. | Jul 2014 | B1 |
20070101032 | Nara | May 2007 | A1 |
20080109617 | Forrer et al. | May 2008 | A1 |
20080209141 | Perego et al. | Aug 2008 | A1 |
20080215829 | Lin et al. | Sep 2008 | A1 |
20080270712 | Hwang et al. | Oct 2008 | A1 |
20080282044 | Kimura et al. | Nov 2008 | A1 |
20080320252 | Jansen et al. | Dec 2008 | A1 |
20080320253 | Tomlin et al. | Dec 2008 | A1 |
20090024807 | Hillier, III et al. | Jan 2009 | A1 |
20090024808 | Hillier, III et al. | Jan 2009 | A1 |
20090063792 | Terauchi | Mar 2009 | A1 |
20090089518 | Hobbet et al. | Apr 2009 | A1 |
20090100235 | Fukuguchi | Apr 2009 | A1 |
20090106512 | Jones et al. | Apr 2009 | A1 |
20090132772 | Zhuang et al. | May 2009 | A1 |
20090138672 | Katsuragi et al. | May 2009 | A1 |
20090150624 | Resnick | Jun 2009 | A1 |
20090177850 | Boyd et al. | Jul 2009 | A1 |
20090216966 | Shum et al. | Aug 2009 | A1 |
20090240900 | Sosogi et al. | Sep 2009 | A1 |
20090240901 | Nakamura | Sep 2009 | A1 |
20090276587 | Moyer et al. | Nov 2009 | A1 |
20090287890 | Bolosky | Nov 2009 | A1 |
20090287891 | Nakano | Nov 2009 | A1 |
20090300297 | Ikeuchi et al. | Dec 2009 | A1 |
20090319731 | Kirihata | Dec 2009 | A1 |
20100005253 | Lee et al. | Jan 2010 | A1 |
20100017571 | Nakaji et al. | Jan 2010 | A1 |
20100030978 | Hada et al. | Feb 2010 | A1 |
20100058005 | Matumura et al. | Mar 2010 | A1 |
20100077159 | Jin | Mar 2010 | A1 |
20100082889 | Terasaki et al. | Apr 2010 | A1 |
20100100694 | Hwang et al. | Apr 2010 | A1 |
20100122047 | Vasilievna et al. | May 2010 | A1 |
20100131725 | Perego et al. | May 2010 | A1 |
20100169587 | Atluri et al. | Jul 2010 | A1 |
20100174849 | Walston et al. | Jul 2010 | A1 |
20100174877 | Yagihashi | Jul 2010 | A1 |
20100250793 | Syu | Sep 2010 | A1 |
20100250874 | Farrell et al. | Sep 2010 | A1 |
20100250875 | Leung et al. | Sep 2010 | A1 |
20100268901 | Shaeffer | Oct 2010 | A1 |
20100312975 | Rostedt | Dec 2010 | A1 |
20100318753 | Lai et al. | Dec 2010 | A1 |
20110022809 | Satoh et al. | Jan 2011 | A1 |
20110035560 | Bodrozic et al. | Feb 2011 | A1 |
20110060887 | Thatcher et al. | Mar 2011 | A1 |
20110072222 | Wagner et al. | Mar 2011 | A1 |
20110078392 | Chiras et al. | Mar 2011 | A1 |
20110078393 | Lin | Mar 2011 | A1 |
20110099323 | Syu | Apr 2011 | A1 |
20110099341 | Resnick | Apr 2011 | A1 |
20110153962 | Ozceri et al. | Jun 2011 | A1 |
20110179237 | Lee et al. | Jul 2011 | A1 |
20110197036 | Ishii | Aug 2011 | A1 |
20110208925 | Ajanovic et al. | Aug 2011 | A1 |
20110225378 | Hara | Sep 2011 | A1 |
20110231621 | Liang | Sep 2011 | A1 |
20110231622 | Kawamura et al. | Sep 2011 | A1 |
20110271066 | Ninomiya et al. | Nov 2011 | A1 |
20110283049 | Kang et al. | Nov 2011 | A1 |
20110296120 | Khan | Dec 2011 | A1 |
20110296121 | Lee | Dec 2011 | A1 |
20110302378 | Siebert | Dec 2011 | A1 |
20110302379 | Ohmori | Dec 2011 | A1 |
20120011335 | Asnaashari et al. | Jan 2012 | A1 |
20120089793 | Nazar et al. | Apr 2012 | A1 |
20120102278 | Joffray et al. | Apr 2012 | A1 |
20120117443 | Lee et al. | May 2012 | A1 |
20120144134 | Niwa | Jun 2012 | A1 |
20120221809 | Yoshikawa et al. | Aug 2012 | A1 |
20120239869 | Chiueh et al. | Sep 2012 | A1 |
20120254562 | Morrison et al. | Oct 2012 | A1 |
20120254563 | Ajanovic et al. | Oct 2012 | A1 |
20120260020 | Suryabudi et al. | Oct 2012 | A1 |
20120265953 | Matsuzaki et al. | Oct 2012 | A1 |
20120278531 | Horn | Nov 2012 | A1 |
20120278564 | Goss et al. | Nov 2012 | A1 |
20120284460 | Guda | Nov 2012 | A1 |
20120284587 | Yu et al. | Nov 2012 | A1 |
20120311276 | Dondini et al. | Dec 2012 | A1 |
20120324179 | Farrell et al. | Dec 2012 | A1 |
20120324180 | Asnaashari et al. | Dec 2012 | A1 |
20120324191 | Strange et al. | Dec 2012 | A1 |
20130046941 | Ma et al. | Feb 2013 | A1 |
20130054905 | Porzio et al. | Feb 2013 | A1 |
20130061011 | Woo et al. | Mar 2013 | A1 |
20130067178 | Szegedi et al. | Mar 2013 | A1 |
20130132638 | Horn et al. | May 2013 | A1 |
20130145106 | Kan | Jun 2013 | A1 |
20130166857 | Kawano et al. | Jun 2013 | A1 |
20130191594 | Cleveland et al. | Jul 2013 | A1 |
20130246721 | Fukutomi et al. | Sep 2013 | A1 |
20130254498 | Adachi et al. | Sep 2013 | A1 |
20130262795 | Aono et al. | Oct 2013 | A1 |
20130282993 | Nakanishi et al. | Oct 2013 | A1 |
20130290654 | Sato et al. | Oct 2013 | A1 |
20130290793 | Booth et al. | Oct 2013 | A1 |
20130326165 | Chang et al. | Dec 2013 | A1 |
20130339637 | Ishii et al. | Dec 2013 | A1 |
20140006730 | Zain et al. | Jan 2014 | A1 |
20140006731 | Uluski et al. | Jan 2014 | A1 |
20140025906 | Das Purkayastha | Jan 2014 | A1 |
20140059405 | Syu et al. | Feb 2014 | A1 |
20140068203 | Son et al. | Mar 2014 | A1 |
20140075135 | Choi et al. | Mar 2014 | A1 |
20140101369 | Tomlin et al. | Apr 2014 | A1 |
20140108749 | Sato et al. | Apr 2014 | A1 |
20140115427 | Lu | Apr 2014 | A1 |
20140122814 | Mirichigni et al. | May 2014 | A1 |
20140129785 | Deetz et al. | May 2014 | A1 |
20140133220 | Danilak et al. | May 2014 | A1 |
20140136753 | Tomlin et al. | May 2014 | A1 |
20140149826 | Lu et al. | May 2014 | A1 |
Entry |
---|
Gilbert, Douglas. “sg—write—same(8)—Linux man page” 2009. retrieved from http://linux.die.net/man/8/sg—write—same. |
JEDEC Solid State Technology Association, “Measurement and Reporting of Alpha Particle and Terrestrial Cosmic Ray-Induced Soft Errors in Semiconductor Devices,” JESD89A, Oct. 2006, pp. 1-94. |
Aeonx, et al., “Single event upset,” retrieved from http://en.wikipedia.og/w/index.php?oldid=514476531, revised Sep. 25, 2012, pp. 1-5. |
“Agrawal, et al., “Design Tradeoffs for SSD Performance,” ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference, pp. 57-70.”. |
“Intel Solid-State Drive Optimizer”, published by the Intel Corporation, 2009, pp. 1-8. |
International Search Report and Written Opinion dated Dec. 11, 2014 from related PCT Serial No. PCT/US2014/054426, 15 pages. |
Number | Date | Country | |
---|---|---|---|
20150074358 A1 | Mar 2015 | US |