Claims
- 1. A method of sending data from a memory to a host; comprising the step of:
(a) substantially simultaneously:
(i) sending the data from the memory to an interface with the host; and (ii) checking the data for errors.
- 2. The method of claim 1, wherein the data are sent directly from the memory to said interface.
- 3. The method of claim 1, further comprising the step of:
(b) if a number of said errors that is found by said checking is at least as great as a predetermined threshold: correcting the data, thereby providing corrected data.
- 4. The method of claim 3, further comprising the step of:
(c) if said number of said errors that is found by said checking is at least as great as said predetermined threshold: writing said corrected data to the memory.
- 5. The method of claim 4, further comprising the step of:
(d) sending said corrected data from the memory to said interface.
- 6. The method of claim 5, wherein said corrected data is sent directly from the memory to said interface.
- 7. The method of claim 1, further comprising the step of:
(b) if a number of said errors that is found by said checking is less than a predetermined threshold, sending the data from said interface to the host.
- 8. A method of sending data from a memory to a host, the data being stored in a plurality of segments of the memory, the method comprising the steps of:
(a) for each segment: substantially simultaneously:
(i) sending the data from said each segment to a buffer; and (ii) checking the data from said each segment for errors.
- 9. The method of claim 8, wherein the data are sent directly from each segment to said buffer.
- 10. The method of claim 8, further comprising the step of:
(b) for each segment, if a number of said errors that is found by said checking is at least as great as a predetermined threshold: correcting the data that are stored in said each segment, thereby providing corrected data.
- 11. The method of claim 10, further comprising the step of:
(c) for each segment, if said number of said errors that is found by said checking is at least as great as said predetermined threshold: writing said corrected data to said each segment.
- 12. The method of claim 1 further comprising the step of:
(d) for each segment, if said number of said errors that is found by said checking is at least as great as said predetermined threshold: setting an error flag.
- 13. The method of claim 12, wherein said sending of the data from the segments to said buffer is effected until a condition, selected from the group consisting of all the data having been sent to said buffer and said buffer being full, is satisfied, the method further comprising the steps of:
(e) subsequent to said sending of the data from the segments to said buffer:
(i) if said error flag is set, sending the corrected data from the segments to said buffer; (ii) otherwise, sending the data from said buffer to the host.
- 14. The method of claim 13, further comprising the step of:
(f) subsequent to said sending of the data from the segments to said buffer: if said error flag is set, clearing said error flag.
- 15. The method of claim 13, wherein said corrected data are sent directly from the segments to said buffer.
- 16. A data storage device, comprising:
(a) a memory for storing the data; (b) at least part of an interface to a host: and (c) a controller operative to substantially simultaneously:
(i) send the data from the memory to the interface, and (ii) check the data for errors.
- 17. A method of sending data from a memory to a host, comprising the steps of:
(a) sending the data from the memory to a buffer; (b) checking the data for errors; and (c) if a number of said errors that is found by said checking is at least as great as a predetermined threshold:
(i) correcting the data, thereby providing corrected data, and (ii) replacing the data in said buffer with said corrected data.
- 18. The method of claim 17, wherein the data are sent directly from the memory to said buffer.
- 19. The method of claim 17, further comprising the step of:
(d) if said number of errors that is found by said checking is less than said predetermined threshold: sending the data from said buffer to the host.
- 20. The method of claim 17, further comprising the step of:
(d) if said number of errors that is found by said checking is at least as great as said predetermined threshold: writing said corrected data to the memory.
- 21. The method of claim 20, wherein said replacing of the data in said buffer with said corrected data is effected by sending said corrected data from the memory to said buffer.
- 22. The method of claim 21, wherein said corrected data are sent directly from the memory to said buffer.
- 23. A method of sending data from a memory to a host, the data being stored in a plurality of segments of the memory, the method comprising the steps of:
(a) for each segment:
(i) sending the data from each segment to a buffer, (ii) checking the data from said each segment for errors, and (iii) if a number of said errors that is found by said checking is at least as great as a predetermined threshold: setting an error flag.
- 24. The method of claim 23, wherein said data is sent directly from each segment to said buffer.
- 25. The method of claim 23, further comprising the step of:
(b) for each said segment, if said number of said errors that is found by said checking is at least as great as said predetermined threshold: correcting the data that are stored in said each segment, thereby providing corrected data.
- 26. The method of claim 25, further comprising the step of:
(c) for each said segment, if said number of said errors that is found by said checking is at least as great as said predetermined threshold: writing said corrected data to said each segment.
- 27. The method of claim 26, wherein said sending of the data from each segment to said buffer and said checking of the data for errors are effected until a condition, selected from the group consisting of all the data having been sent to said buffer and said buffer being full, is satisfied, the method further comprising the steps of:
(c) subsequent to said sending of the data to said buffer and said checking of the data for errors: if said error flag is set:
(i) clearing said error flag; and (ii) sending the corrected data from the segments to said buffer.
- 28. The method of claim 27, wherein said corrected data is sent directly from the segments to said buffer.
- 29. The method of claim 23, wherein said sending of the data from each segment to said buffer and said checking of the data for errors are effected until a condition, selected from the group consisting of all the data having been sent to said buffer and said buffer being full, is satisfied, the method further comprising the step of:
(b) subsequent to said sending of the data to said buffer and said checking of the data for errors: sending said data from said buffer to the host only if said error flag is cleared.
- 30. A data storage device comprising:
(a) a memory for storing the data; (b) at least part of an interface to a host; and (c) a controller operative:
(i) to send the data from the memory to a buffer in said interface, (ii) to check the data for errors, and (iii) if a number of said errors that is found by said checking is at least as great as a predetermined threshold:
(A) to correct the data, thereby providing corrected data, and (B) to replace the data in said buffer with said corrected data.
Parent Case Info
[0001] This is a continuation-in-part of U.S. Provisional Patent Application No. 60/473,437, filed May 25, 2003
Provisional Applications (1)
|
Number |
Date |
Country |
|
60473437 |
May 2003 |
US |