The invention relates to mass storage devices. More particularly, some embodiments of the invention relate to an apparatus and method for defect revectoring in a multi-channel mass storage device in an electronic system such as a processor-based system.
Many electronic systems benefit from the use of mass storage devices. In some electronic systems, driver software may be provided to utilize mass storage devices. Some electronic systems may utilize a solid state drive (SSD) as a mass storage device.
Various features of the invention will be apparent from the following description of preferred embodiments as illustrated in the accompanying drawings, in which like reference numerals generally refer to the same parts throughout the drawings. The drawings are not necessarily to scale, the emphasis instead being placed upon illustrating the principles of the invention.
In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular structures, architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the various aspects of the invention. However, it will be apparent to those skilled in the art having the benefit of the present disclosure that the various aspects of the invention may be practiced in other examples that depart from these specific details. In certain instances, descriptions of well known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.
With reference to
In some embodiments of the invention, the controller 14 may further include code to determine the first vertical redirect budget based on a number of all known defects from the plurality of memory channels. For example, the controller 14 may further include code to determine the first vertical redirect budget based on an average number of defects per memory channel. In some embodiments of the invention, the controller 14 may further include code to determine a second vertical redirect budget for a second memory channel of the plurality of memory channels, revector defects in the second memory channel vertically within the second memory channel until the second vertical redirect budget is exceeded, and revector defects in the second memory channel horizontally outside of the second memory channel within another memory channel of the plurality of memory channels after the second vertical redirect budget is exceeded. For example, the first and second vertical budgets may be the same for the first and second memory channels. For example, a single vertical budget may be determined and applied to each memory channel.
With reference to
The processor-based system 20 may further include code stored on the processor-based system 20 to cause the processor-based system to utilize the mass storage device 23. For example, the code may be stored on the mass storage device 23, the system memory 22, or another memory or storage device coupled to the processor-based system 20. For example, the code may be stored as part of a basic input/output system (BIOS) 27 coupled to the ICH 26.
In some embodiments of the processor-based system 20, the code stored on the processor-based system 20 may be configured to cause the processor-based system 20 to determine a first vertical redirect budget for a first memory channel of the plurality of memory channels, revector defects in the first memory channel vertically within the first memory channel until the first vertical redirect budget is exceeded, and revector defects in the first memory channel horizontally outside of the first memory channel within another memory channel of the plurality of memory channels after the first vertical redirect budget is exceeded.
For example, in some embodiments of the processor-based system 20, the code may be further configured to cause the processor-based system 20 to determine the first vertical redirect budget based on a number of all known defects from the plurality of memory channels. For example, the code may be further configured to cause the processor-based system 20 to determine the first vertical redirect budget based on an average number of defects per memory channel. In some embodiments of the processor-based system 20, the code may be further configured to cause the processor-based system to determine a second vertical redirect budget for a second memory channel of the plurality of memory channels, revector defects in the second memory channel vertically within the second memory channel until the second vertical redirect budget is exceeded, and revector defects in the second memory channel horizontally outside of the second memory channel within another memory channel of the plurality of memory channels after the second vertical redirect budget is exceeded.
For example, in some embodiments of the processor-based system 20, all or a portion of the code may be implemented by or executed by a controller 31 which may be integrated with the mass storage device 23. Alternatively, with reference to
With reference to
In some embodiments of the invention, determining the first vertical redirect budget for the first memory channel of the plurality of memory channels may include determining the first vertical redirect budget based on a number of all known defects from the plurality of memory channels (e.g. at block 45). In some embodiments of the invention, determining the first vertical redirect budget for the first memory channel of the plurality of memory channels may include determining the first vertical redirect budget based on an average number of defects per memory channel (e.g. at block 46).
With reference to
Advantageously, some embodiments of the invention may improve defect revectoring in a multi-channel mass storage device. For example, some embodiments of the invention may simultaneously improve two metrics, performance and capacity, in a defect management scheme for a multi-channel mass storage device. For example, all defects in need of revector may be accumulated and thereafter an average revectors per channel may be calculated. The calculated average revectors per channel may be the budget for vertical redirects for each of the channels.
For a particular channel, defects may be revectored as vertical until the number of defects for that particular channel exceeds the budget. After the number of defects for that particular channel exceeds the budget, horizontal redirects may be used for further defects in that particular channel. In practice, some embodiments of the invention may results in a relatively high usage of vertical revectors. If there is a particular memory channel (e.g. a NAND flash memory device) with a high number of defects it will increase the average such that the other memory channels get most or all of their defects as vertical. But the problematic memory channel may get relatively more horizontal revectors (e.g. mostly horizontal revectors depending on the number of defects and the number of channels). Advantageously, some implementations of a defect management policy in accordance with the invention improved sequential bandwidth in a solid state drive by about 20%.
With reference to
With reference to
Those skilled in the art will appreciate that, given the benefit of the present description, a numerous variety of other circuits and combinations of hardware and/or software may be configured to implement various methods, circuits, and systems in accordance with the embodiments described herein and other embodiments of the invention. The examples of
The foregoing and other aspects of the invention are achieved individually and in combination. The invention should not be construed as requiring two or more of such aspects unless expressly required by a particular claim. Moreover, while the invention has been described in connection with what is presently considered to be the preferred examples, it is to be understood that the invention is not limited to the disclosed examples, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and the scope of the invention.